/* Shared reading and layout refinements, 12 October 2026. */
:root{--reading-measure:72ch}
main :is(.content-layout,.page-hero-grid,.grid,.section-heading,.actions,.cta-band)>*{min-width:0}
main :is(h1,h2,h3,h4){overflow-wrap:break-word;text-wrap:balance}
main :is(.article,.learning-prose,.planning-card,.sidebar) :is(p,li,a){overflow-wrap:anywhere}
main :is(.article,.learning-prose)>p{max-width:var(--reading-measure)}
main :is(.article,.learning-prose) :is(h2,h3){scroll-margin-top:calc(var(--header-height,110px) + 24px)}
.article :is(ul,ol){padding-inline-start:1.4em}
.article-contents{padding:22px 24px;margin:0 0 36px;border:1px solid var(--line);border-left:3px solid var(--blue);border-radius:12px;background:var(--card)}
.article-contents .kicker{margin-bottom:10px;font-size:.7rem}
.article-contents ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 24px}
.article-contents li,.article-contents li+li{margin:0;min-width:0}
.article-contents a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:8px 0;font-size:.88rem;line-height:1.5;text-decoration:none;color:var(--ink)}
.article-contents a:hover{text-decoration:underline;color:var(--blue)}
.article-contents a>span{flex:none;color:var(--blue)}
.article-contents+h2{margin-top:0}
.table-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;margin-block:24px;border-radius:8px}
.table-scroll:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
.article .table-scroll table{display:table;margin:0;width:100%;min-width:500px}
.table-scroll th{color:var(--ink)}
:root body .depth-route-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:16px}
:root body .depth-route-grid>.depth-route{flex:1 1 calc(20% - 13px);min-width:0;padding:clamp(18px,2vw,24px)}
:root body .depth-route-grid>.depth-route h3{font-size:clamp(1.02rem,1.35vw,1.16rem);line-height:1.4}
main .faq>summary{line-height:1.5;min-height:48px;padding-block:18px;padding-right:38px;overflow-wrap:break-word}
main :is(.sidebar,.at-glance){overflow-wrap:anywhere}
main .sidebar .links a{display:block;min-height:44px;padding-block:9px;line-height:1.55}
:root:not([data-theme=dark]) .article-contents{background:#fff;box-shadow:0 8px 24px #17345208}
:root:not([data-theme=dark]) .planning-label{color:#425970}
[data-theme=dark] .planning-label{color:#bdcde0}
.planning-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:20px}
.planning-card{display:flex;flex-direction:column;gap:14px;min-width:0;padding:26px;border:1px solid var(--line);border-top:3px solid var(--gold,var(--blue));border-radius:15px;background:var(--card);color:var(--ink);text-decoration:none}
.planning-card h3{font-size:1.25rem;line-height:1.4;margin:0}
.planning-card p{color:var(--muted);font-size:.94rem;margin:0}
.planning-card .kicker{font-size:.67rem;margin:0}
.planning-card .card-link{margin-top:auto;padding-top:8px;line-height:1.5}
.planning-card:hover{border-color:var(--blue);box-shadow:var(--shadow)}
.planning-related{border-block:1px solid var(--line);background:var(--soft)}
.planning-label{font-size:.84rem;margin-bottom:24px}
.planning-step+.planning-step{border-top:1px solid var(--line);margin-top:32px;padding-top:12px}
.planning-checklist{padding:26px;margin:32px 0;border:1px solid var(--line);border-radius:14px;background:var(--soft)}
.article .planning-checklist h2{margin-top:0;font-size:1.5rem}
.planning-checklist li{padding-block:3px}
.planning-contact{align-self:start}
.planning-contact .small{margin-top:20px}
.planning-editorial{margin-top:32px;padding-top:20px;border-top:1px solid var(--line)}
.planning-sources h2{font-size:1.2rem}.planning-sources a{font-size:.875rem}
/* Avoid tall sticky sidebars obscuring their final links on short screens. */
@media(max-height:780px){main .sidebar{position:static}}
@media(max-width:1200px){:root body .depth-route-grid>.depth-route{flex-basis:calc(33.333% - 16px);max-width:calc(33.333% - 11px)}}
@media(max-width:1000px){main .content-layout{grid-template-columns:minmax(0,1fr);gap:36px}main .sidebar{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.planning-card-grid{gap:16px}}
@media(max-width:760px){
 main .section{padding-block:56px}
 main .page-hero h1{font-size:clamp(2rem,7.3vw,2.7rem);line-height:1.15}
 main :is(.article h2,.planning-related h2){font-size:clamp(1.5rem,5.8vw,1.9rem);line-height:1.25}
 :root body .depth-route-grid>.depth-route{flex-basis:calc(50% - 8px);max-width:calc(50% - 8px)}
 .article-contents{padding:18px;margin-bottom:28px}.article-contents ul{grid-template-columns:1fr;gap:0}
 .article-contents a{font-size:.94rem}
 main .sidebar{grid-template-columns:1fr}
 main .sidebar>div{padding:22px}
 .planning-card{padding:22px}.planning-checklist{padding:20px}
}
@media(max-width:560px){:root body .depth-route-grid>.depth-route{flex-basis:100%;max-width:none}.planning-card-grid{grid-template-columns:1fr}}
@media print{.article-contents,.planning-contact{display:none}.planning-card,.planning-step,.planning-checklist{break-inside:avoid}.planning-related{background:#fff}.table-scroll{overflow:visible}.article .table-scroll table{min-width:0}}

/* Consistent reading surfaces and touch behaviour across the page system. */
main :is(.btn,button,summary){overflow-wrap:break-word}
main .btn{max-width:100%;white-space:normal;text-align:center}
main :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--blue);outline-offset:4px}
main :is(input,select,textarea){min-width:0;max-width:100%;scroll-margin-block:140px}
main :is(.grid,.content-layout,.page-hero-grid,.pg-layout,.learning-layout){min-width:0}
.guide-meta{display:flex;flex-wrap:wrap;gap:9px 18px;color:var(--muted);font-size:.8rem;margin:0 0 30px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.guide-meta span{line-height:1.6}.guide-meta span+span::before{content:'·';margin-right:18px;color:var(--blue)}
.planning-guide .article{padding:clamp(22px,3vw,42px);border:1px solid var(--line);border-radius:20px;background:var(--card);box-shadow:var(--shadow)}
.planning-guide .article-contents{background:var(--soft);box-shadow:none}
.planning-step{position:relative}.guide-chapter{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;margin-top:12px;border:1px solid var(--line);border-radius:10px;color:var(--blue);font-size:.8rem;font-weight:700;background:var(--soft)}
.planning-step h2{margin-top:16px}.planning-step p,.planning-step li{line-height:1.85}
.planning-step li+li{margin-top:8px}.planning-card{box-shadow:var(--shadow);transition:border-color .18s ease,box-shadow .18s ease}
.planning-sources{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:22px;margin-top:30px}
.planning-sources h2{margin-top:0}.planning-sources li+li{margin-top:12px}.planning-sources a{text-underline-offset:4px;overflow-wrap:anywhere}
.planning-contact>div{border:1px solid var(--line);box-shadow:var(--shadow)}
[data-theme=dark] .planning-guide .article{box-shadow:0 16px 38px #0002}
[data-theme=dark] .planning-card:hover{background:var(--soft)}
@media(max-width:760px){
 main :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea){font-size:16px}
 main .actions{row-gap:12px}main .actions>.btn{min-height:48px}
 .planning-guide .article{padding:22px 18px;border-radius:14px}
 .planning-guide .article-contents{padding:16px}.planning-sources{padding:18px}
 .guide-meta{gap:8px 12px}.guide-meta span+span::before{margin-right:12px}
 .pg-sources summary{min-height:44px;display:list-item;align-content:center}
}
@media(max-width:400px){main .actions>.btn{flex-basis:100%}.planning-guide .article{padding:20px 15px}.guide-meta span+span::before{content:none}.guide-meta span{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){.planning-card{transition:none}}
@media print{.planning-guide .article{padding:0;border:0;box-shadow:none}.guide-meta{display:none}.planning-sources{background:transparent}}
