/* Engineering Atlas: semantic wayfinding, using existing content and routes. */
.sem-hero{padding-block:56px 44px;border-bottom:1px solid var(--line)}
.sem-hero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:80px;align-items:center}
.sem-eyebrow{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);margin-bottom:24px}
.sem-hero h1{font-size:clamp(40px,5vw,74px);letter-spacing:-.05em;line-height:1.08;margin-bottom:28px}
.sem-hero .lead{font-size:18px;max-width:62ch;margin-bottom:28px}
.sem-circuit{width:100%;max-width:360px;display:block;margin-left:auto;aspect-ratio:1.4;background:#e7eff0}
.sem-icon{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.sem-hero-nav,.sem-page-nav{display:flex;gap:8px 20px;flex-wrap:wrap;margin-top:24px;font-size:13px;line-height:1.6}
.sem-hero-nav a,.sem-page-nav a{display:inline-flex;align-items:center;min-height:40px;color:var(--blue);border-bottom:1px solid var(--line)}
.sem-page-nav{margin:24px 0 16px;font-size:12px;letter-spacing:0}
.sem-section{padding-block:64px}
.sem-heading{display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:end;margin-bottom:32px;padding-top:18px;border-top:1px solid var(--line)}
.sem-heading h2{font-size:clamp(28px,3.1vw,44px);letter-spacing:-.035em;margin:0}
.sem-heading>p{font-size:14px;line-height:1.7;color:var(--muted);margin:0;max-width:55ch}
.sem-routes{display:grid;grid-template-columns:1fr 1fr;gap:0 48px}
.sem-route{display:grid;grid-template-columns:32px minmax(0,1fr) 20px;gap:18px;padding:25px 0;border-bottom:1px solid var(--line);align-items:start;min-width:0}
.sem-route .sem-icon{color:var(--blue);margin-top:4px}
.sem-route h3{font-size:23px;line-height:1.25;letter-spacing:-.025em;margin:0 0 8px}
.sem-route p{font-size:13px;color:var(--muted);line-height:1.65;margin:0}
.sem-route>.sem-arrow{color:var(--blue);font-size:18px}
.sem-route:hover h3{color:var(--blue)}
.sem-band{background:#e7eff0;border-block:1px solid #c4d2d5}
.sem-band .sem-heading{border-top:0;padding-top:0}
.sem-links{list-style:none;padding:0;margin:0;display:grid;gap:0}
.sem-links li{margin:0;border-bottom:1px solid var(--line)}
.sem-links a{display:flex;justify-content:space-between;gap:20px;align-items:start;padding:17px 0;min-height:52px;font-size:15px;line-height:1.65;overflow-wrap:anywhere}
.sem-links a span{min-width:0}.sem-links a:after{content:'↗';color:var(--blue);flex-shrink:0}
.sem-link-columns{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.sem-link-columns h3{font-size:21px;margin-bottom:20px}
.sem-case-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.sem-case{display:flex;flex-direction:column;justify-content:space-between;gap:20px;padding:24px 0;border-top:2px solid var(--blue);min-height:170px}
.sem-case h3{font-size:23px;line-height:1.3;margin:0;letter-spacing:-.025em}
.sem-case>span{font-size:12px;color:var(--blue)}
.sem-equipment-note{font-size:13px;color:var(--muted);margin:24px 0 0}
.sem-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.sem-choice-grid article{padding-top:24px;border-top:1px solid var(--line)}
.sem-choice-grid .sem-icon{color:var(--blue);margin-bottom:20px}
.sem-choice-grid h3{font-size:22px;margin-bottom:14px}
.sem-choice-grid p{font-size:14px;line-height:1.7;color:var(--muted);margin:0}
.sem-guide{border-top:1px solid var(--line);padding-block:56px;margin-top:48px}
.sem-guide>.sem-guide-head{display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:end;margin-bottom:32px}
.sem-guide-head h2{font-size:clamp(28px,3vw,42px);margin:0;letter-spacing:-.035em}
.sem-guide-head p{font-size:14px;color:var(--muted);margin:0;line-height:1.7}
.sem-guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px 48px}
.sem-guide-grid>section{min-width:0}
.sem-guide-grid h3{font-size:23px;margin-bottom:14px}
.sem-guide .sem-links a{font-size:14px;min-height:48px;padding:14px 0}
.sem-budget{border-block:1px solid var(--line);padding-block:48px;margin-block:32px}
.sem-budget h2{font-size:32px;margin-bottom:24px}
.sem-budget p{font-size:15px;max-width:80ch;line-height:1.75}
.sem-budget .sem-choice-grid{margin-block:32px}
.sem-budget .sem-choice-grid p{font-size:13px}
.sem-original{border-top:1px solid var(--line);padding-block:28px;margin-block:24px 48px}
.sem-original>summary{cursor:pointer;font-size:17px;min-height:44px;color:var(--blue)}
.sem-original>.sem-preserved{margin-top:32px}
.sem-preserved>.wrap{width:100%}.sem-preserved>.legacy-content>.wrap{width:100%}
.sem-office-jump{display:flex;flex-wrap:wrap;gap:12px 28px;padding-block:24px;border-block:1px solid var(--line);margin-block:32px}
.sem-office-jump a{min-height:44px;display:inline-flex;align-items:center;font-size:16px;color:var(--blue)}
@media(max-width:1000px){.sem-hero-grid{gap:40px;grid-template-columns:1.3fr .7fr}.sem-case-list{gap:24px}.sem-route{gap:12px}.sem-routes{gap:0 28px}.sem-route h3{font-size:21px}}
@media(max-width:760px){.sem-hero-grid{grid-template-columns:1fr}.sem-circuit{max-width:300px;margin:0}.sem-heading,.sem-guide>.sem-guide-head{grid-template-columns:1fr;gap:20px}.sem-link-columns,.sem-guide-grid{gap:32px}.sem-case-list{grid-template-columns:1fr}.sem-case{min-height:0;padding-block:20px;gap:16px}.sem-choice-grid{gap:24px}.sem-choice-grid h3{font-size:20px}}
@media(max-width:600px){.sem-hero{padding-block:36px 32px}.sem-hero h1{font-size:38px;line-height:1.13}.sem-hero .lead{font-size:16px}.sem-circuit{max-width:250px}.sem-hero-grid{gap:24px}.sem-section{padding-block:44px}.sem-heading{gap:18px;margin-bottom:24px}.sem-heading h2{font-size:30px}.sem-routes,.sem-link-columns,.sem-guide-grid,.sem-choice-grid{grid-template-columns:1fr}.sem-route{padding-block:22px}.sem-route h3{font-size:22px}.sem-route .sem-icon{width:26px;height:26px}.sem-guide{padding-block:40px;margin-top:32px}.sem-guide-head h2{font-size:30px}.sem-guide-grid{gap:32px}.sem-budget{padding-block:32px}.sem-budget h2{font-size:28px}.sem-page-nav{font-size:12px;gap:4px 16px}.sem-original{margin-block:16px 32px}.sem-case h3{font-size:22px}.sem-hero-nav{gap:4px 18px}}
@media(prefers-reduced-motion:reduce){.sem-route,.sem-links a{transition:none}}

/* Typography audit 2026-11-11: semantic explanations stay body-sized on phones. */
@media(max-width:700px){
 .sem-heading>p,
 .sem-route p,
 .sem-choice-grid p,
 .sem-guide-head p,
 .sem-budget p,
 .sem-budget .sem-choice-grid p{font-size:16px;line-height:1.65}
}
