/* Shared reading and touch scale, loaded after each section stylesheet. */
:root { --paper:#f7f9f8; --muted:#52636e; --line:#d7e1dd; }
body { font-size:1rem; line-height:1.65; }
img { height:auto; }
h1,h2,h3,h4,.display { letter-spacing:-.025em; overflow-wrap:break-word; }
h1 { font-size:clamp(2rem,4.4vw,3.5rem); line-height:1.14; }
h2 { font-size:clamp(1.75rem,3.3vw,2.5rem); line-height:1.22; }
h3 { line-height:1.3; }
.small,.hero-note,.breadcrumb,.book-meta,.status,.route-num,.plan .eyebrow,.kicker,.hero-tag { font-size:.875rem; }
.kicker,.hero-tag,.book-meta,.plan .eyebrow { letter-spacing:.035em; }
.hero-tag { text-transform:none; border:0; padding:0; background:transparent; border-radius:0; }
.hero-tag:before,.kicker:before { display:none; }
.btn { min-height:48px; padding:12px 20px; font-size:1rem; line-height:1.45; border-radius:10px; text-align:center; }
.btn.secondary { background:#fff; border-color:#b7c9c1; }
.link,.filter,.portal-tabs a,.navlinks,.navlinks .btn { font-size:.9375rem; }
.nav { min-height:80px; height:auto; padding:10px 0; gap:24px; }
.brand { width:210px; }
.brand img { height:auto; width:100%; }
.navlinks { gap:20px; }
.navlinks .btn { padding:10px 16px; }
.menu { min-width:76px; min-height:44px; font-size:.9375rem; font-weight:600; border-radius:10px; color:var(--navy); }
.portal-hero { background:#f7f9f8; padding:48px 0; }
.portal-grid { grid-template-columns:1.05fr 1fr; gap:52px; }
.mobility-hero h1 { font-size:clamp(2rem,4.2vw,3.5rem); line-height:1.16; margin:18px 0 22px; max-width:20ch; letter-spacing:-.03em; }
.portal-hero .lead { font-size:1.125rem; line-height:1.65; margin-bottom:26px; }
.hero-photo>img { border-radius:20px; }
.photo-note { border-radius:12px; }
.photo-note span { font-size:.875rem; }
.portal-proof { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:28px; padding-top:24px; border-top:1px solid var(--line); font-size:.875rem; }
.portal-proof strong { font-size:1rem; line-height:1.4; margin-bottom:6px; }
.wayfinder { padding:18px 0; }
.wayfinder strong,.wayfinder a { font-size:1rem; }
.wayfinder a { padding:12px; border:1px solid var(--line); border-radius:10px; }
.page-head h1,.portal-head h1 { font-size:clamp(2rem,4vw,3.25rem); line-height:1.16; }
.page-head,.portal-head { padding:36px 0 28px; }
.branch,.resource-tile,.route,.plan { border-radius:14px; }
.branch p,.route p,.step p,.plan li,.plan .small,.book-card p,.faq p,.product-info ul,.product-details ul { font-size:1rem; line-height:1.65; }
.branch h3,.resource-tile h2 { font-size:1.375rem; letter-spacing:-.02em; }
.branch { min-height:250px; }
.foot-links,.foot-bottom,.credentials span,.fields label { font-size:.875rem; }
.foot-links a { padding:4px 0; }
.book-grid { gap:28px 22px; }
.book-frame { min-height:0; padding:24px; border-radius:12px; }
.book-frame img { width:100%; max-width:168px; height:auto; aspect-ratio:auto; object-fit:contain; }
.book-meta { margin:16px 0 8px; font-weight:600; text-transform:none; }
.book-card h3 { font-size:1.25rem; line-height:1.35; }
.book-bottom { flex-wrap:wrap; gap:8px; font-size:1rem; }
.book-bottom span { font-size:.875rem; }
.book-bottom .link { font-size:.9375rem; }
.product-layout { display:grid; grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr); grid-template-areas:'cover intro' 'cover details'; align-items:start; gap:32px 60px; padding:8px 0 64px; }
.product-info { grid-area:intro; min-width:0; }
.product-info h1 { font-size:clamp(2rem,3.5vw,3rem); line-height:1.18; margin:14px 0 18px; }
.product-info .lead { font-size:1.125rem; line-height:1.6; }
.product-info .hero-note { margin:14px 0 0; }
.product-cover { grid-area:cover; margin:0; display:flex; flex-direction:column; align-items:center; gap:20px; padding:30px; position:sticky; top:108px; border:1px solid var(--line); border-radius:16px; background:#eaf1ed; }
.product-cover img { width:100%; max-width:300px; height:auto; aspect-ratio:auto; object-fit:contain; }
.product-cover figcaption { font-size:.875rem; line-height:1.5; text-align:center; color:#405a51; }
.product-details { grid-area:details; min-width:0; }
.product-details h2 { font-size:1.5rem; margin:30px 0 16px; }
.product-details h2:first-child { margin-top:0; }
.product-details ul { padding-left:22px; }
.product-details li { margin:10px 0; }
.price-line { display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 14px; font-size:2rem; margin:22px 0; }
.price-line small { font:400 .875rem/1.5 'DM Sans',Arial,sans-serif; max-width:24ch; }
.breadcrumb { line-height:1.6; overflow-wrap:anywhere; margin-bottom:24px; }
.plan .price span { font-size:.875rem; }
.plan ul { margin-bottom:24px; }
.actions { gap:12px; }
.wrap>* { min-width:0; }
@media (max-width:1100px) {
  .navlinks { display:none; }
  .menu { display:block; }
  .navlinks.open { display:flex; position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch; gap:4px; padding:16px max(20px,calc((100% - 900px)/2)); background:#fff; border-bottom:1px solid var(--line); box-shadow:0 12px 24px #16332315; max-height:calc(100dvh - 80px); overflow-y:auto; }
  .navlinks a { min-height:48px; display:flex; align-items:center; padding:12px 16px; border-radius:8px; font-size:1rem; }
  .navlinks a[aria-current=page] { background:var(--mint); text-decoration:none; }
  .navlinks .btn { margin-top:8px; }
}
@media (max-width:760px) {
  .wrap { width:calc(100% - 40px); }
  header .nav { min-height:68px; padding:8px 0; }
  .brand { width:176px; }
  .brand img { height:auto; }
  .navlinks.open { top:100%; max-height:calc(100dvh - 68px); }
  html { scroll-padding-top:88px; }
  section { padding:44px 0; }
  .portal-hero { padding:30px 0 32px; }
  .portal-grid { grid-template-columns:1fr; gap:28px; }
  .mobility-hero h1 { font-size:clamp(2rem,7.6vw,2.5rem); line-height:1.18; margin:16px 0 18px; max-width:21ch; }
  .portal-hero .lead { font-size:1rem; line-height:1.65; margin-bottom:22px; }
  .portal-hero .actions { display:grid; grid-template-columns:1fr; }
  .portal-proof { grid-template-columns:1fr; gap:12px; padding-top:20px; margin-top:24px; }
  .portal-proof>div { display:grid; grid-template-columns:1fr; gap:0; }
  .portal-proof strong { margin-bottom:0; }
  .hero-photo>img { aspect-ratio:1.5; border-radius:16px; }
  .photo-note { margin:-24px 12px 0; }
  .hero-tag { font-size:.875rem; line-height:1.5; letter-spacing:0; }
  .page-head h1,.portal-head h1 { font-size:2rem; }
  .portal-head,.page-head { padding-top:28px; }
  .wayfinder .wrap { grid-template-columns:1fr 1fr; gap:10px; }
  .wayfinder strong { grid-column:1/-1; margin-bottom:4px; }
  .wayfinder a { border:1px solid var(--line); font-size:.9375rem; padding:12px; }
  .branch { padding:22px; min-height:0; }
  .branch p { margin-bottom:18px; }
  .branch .link { min-height:32px; }
  .product-layout { grid-template-columns:1fr; grid-template-areas:'intro' 'cover' 'details'; gap:28px; padding-bottom:48px; }
  .product-info h1 { font-size:1.875rem; }
  .product-info .lead { font-size:1rem; }
  .product-info .actions { display:grid; }
  .product-cover { position:static; padding:24px; gap:16px; }
  .product-cover img { max-width:260px; }
  .book-grid { grid-template-columns:1fr; gap:16px; }
  .book-card { display:grid; grid-template-columns:100px minmax(0,1fr); gap:6px 16px; padding:18px; border:1px solid var(--line); border-radius:14px; background:#fff; align-items:start; }
  .book-frame { grid-column:1; grid-row:1/5; padding:8px; min-height:0; border-radius:8px; }
  .book-frame img { height:auto; width:100%; max-width:none; border-left-width:2px; }
  .book-meta,.book-card h3,.book-card p,.book-bottom { grid-column:2; margin:0; }
  .book-meta { font-size:.8125rem; line-height:1.5; letter-spacing:0; }
  .book-card h3 { font-size:1.125rem; line-height:1.35; }
  .book-card p { font-size:.9375rem; line-height:1.55; margin:4px 0 8px; }
  .book-bottom { margin-top:6px; padding-top:10px; flex-direction:column; align-items:flex-start; }
  .book-bottom span { display:inline; }
  .book-bottom .link { font-size:.9375rem; padding:4px 0; }
  .filters { gap:8px; margin:18px 0; }
  .filter { min-height:44px; padding:10px 14px; }
  .foot-links { display:grid; grid-template-columns:1fr; gap:24px; }
  .foot-logo { width:200px; height:auto; }
  .cta h2 { font-size:1.75rem; }
}
@media (max-width:380px) {
  .wrap { width:calc(100% - 32px); }
  .book-card { grid-template-columns:80px minmax(0,1fr); gap:6px 12px; padding:14px; }
  .book-frame { padding:6px; }
  .brand { width:166px; }
}
