:root {
  --ink: #102b39;
  --ink-soft: #36515d;
  --navy: #0d4960;
  --navy-deep: #073344;
  --teal: #1b8e98;
  --aqua: #70c5c1;
  --coral: #e43d76;
  --sand: #f4efe6;
  --cream: #fbfaf7;
  --white: #ffffff;
  --line: rgba(13, 73, 96, .14);
  --line-dark: rgba(255,255,255,.16);
  --shadow: 0 24px 70px rgba(16, 43, 57, .12);
  --radius-lg: 32px;
  --radius-md: 22px;
  --radius-sm: 14px;
  --shell: min(1180px, calc(100% - 40px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--cream);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { color: inherit; }

.skip-link {
  position: fixed;
  left: 16px;
  top: -80px;
  z-index: 999;
  background: var(--white);
  color: var(--navy);
  padding: 12px 16px;
  border-radius: 8px;
  box-shadow: var(--shadow);
}
.skip-link:focus { top: 16px; }

.shell { width: var(--shell); margin-inline: auto; }
.section-pad { padding: 112px 0; }
.eyebrow {
  margin: 0 0 16px;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: .75rem;
  font-weight: 800;
  color: var(--teal);
}
.eyebrow.light { color: #a5e3df; }
.section-heading { max-width: 760px; margin-bottom: 48px; }
.section-heading h2, .process-copy h2, .faq-heading h2, .professional-grid h2 {
  margin: 0;
  font-size: clamp(2.2rem, 5vw, 4.6rem);
  line-height: 1.02;
  letter-spacing: -.055em;
  font-weight: 900;
}
.section-heading > p:last-child { font-size: 1.06rem; color: var(--ink-soft); max-width: 670px; }
.split-heading { max-width: none; display: grid; grid-template-columns: 1.15fr .85fr; gap: 70px; align-items: end; }
.split-heading > p { margin: 0; padding-bottom: 8px; }

.button {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 22px;
  border-radius: 999px;
  font-weight: 800;
  border: 1px solid transparent;
  transition: transform .2s ease, background .2s ease, border-color .2s ease, color .2s ease;
}
.button:hover { transform: translateY(-2px); }
.button:focus-visible, a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid rgba(228, 61, 118, .35); outline-offset: 3px; }
.button-primary { color: var(--white); background: var(--navy); box-shadow: 0 10px 30px rgba(13, 73, 96, .18); }
.button-primary:hover { background: var(--navy-deep); }
.button-secondary { border-color: var(--line); background: rgba(255,255,255,.7); color: var(--navy); }
.button-secondary:hover { border-color: var(--teal); }
.button-small { min-height: 44px; padding-inline: 18px; font-size: .88rem; }
.button-light { background: var(--white); color: var(--navy); }
.button-ghost-light { color: var(--white); border-color: rgba(255,255,255,.38); }
.button-ghost-light:hover { background: rgba(255,255,255,.08); }
.text-link { font-weight: 800; color: var(--navy); }
.text-link:hover { color: var(--teal); }

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(251,250,247,.88);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid transparent;
  transition: border-color .25s ease, box-shadow .25s ease;
}
.hero-kicker-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 28px;
}

.hero-kicker {
  margin: 0;
}

.hero-exams-mini {
  display: inline-flex;
  align-items: baseline;
  gap: 7px;
  flex-shrink: 0;

  padding: 9px 15px;
  border: 1px solid rgba(8, 115, 137, 0.12);
  border-radius: 999px;

  background: rgba(232, 245, 247, 0.9);
  color: #087389;
  white-space: nowrap;
}

.hero-exams-mini strong {
  font-size: 1.1rem;
  font-weight: 900;
  line-height: 1;
}

.hero-exams-mini span {
  font-size: 0.8rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.02em;
}

@media (max-width: 700px) {
  .hero-kicker-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 22px;
  }

  .hero-exams-mini {
    padding: 8px 13px;
  }
 }
.site-header.is-scrolled { border-color: var(--line); box-shadow: 0 8px 30px rgba(16,43,57,.06); }
.header-inner { min-height: 80px; display: flex; align-items: center; gap: 28px; }
.brand { flex: 0 0 auto; }
.main-nav { display: flex; align-items: center; gap: 26px; margin-left: auto; }
.main-nav a { font-size: .88rem; font-weight: 700; color: var(--ink-soft); }
.main-nav a:hover { color: var(--navy); }
.menu-toggle { display: none; margin-left: auto; width: 44px; height: 44px; border: 0; background: transparent; padding: 10px; }
.menu-toggle span { display: block; width: 100%; height: 2px; margin: 5px 0; background: var(--navy); transition: .2s; }

.hero { position: relative; overflow: hidden; padding-top: 82px; background: radial-gradient(circle at 78% 20%, rgba(112,197,193,.14), transparent 28%), linear-gradient(180deg, #fbfaf7 0%, #f7f3ec 100%); }
.hero-glow { position: absolute; border-radius: 50%; filter: blur(10px); opacity: .52; pointer-events: none; }
.hero-glow-a { width: 420px; height: 420px; background: rgba(112,197,193,.22); right: -180px; top: 90px; }
.hero-glow-b { width: 260px; height: 260px; background: rgba(228,61,118,.1); left: -120px; bottom: 80px; }
.hero-grid { position: relative; display: grid; grid-template-columns: 1.05fr .95fr; gap: 70px; align-items: center; }
.hero-copy h1 { margin: 0; max-width: 780px; font-size: clamp(3rem, 6vw, 6.2rem); line-height: .94; letter-spacing: -.07em; font-weight: 750; }
.hero-copy h1 span { color: var(--teal); }
.hero-lead { max-width: 680px; margin: 28px 0 0; font-size: clamp(1.08rem, 1.8vw, 1.28rem); color: var(--ink-soft); }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 34px; }
.trust-list { display: flex; flex-wrap: wrap; gap: 12px 24px; list-style: none; padding: 0; margin: 28px 0 0; color: var(--ink-soft); font-size: .88rem; font-weight: 700; }
.trust-list li { position: relative; padding-left: 14px; }
.trust-list li::before { content: ""; position: absolute; left: 0; top: .7em; width: 5px; height: 5px; border-radius: 50%; background: var(--coral); }

.hero-system { min-height: 560px; position: relative; isolation: isolate; }
.system-orbit { position: absolute; border: 1px solid rgba(13,73,96,.15); border-radius: 50%; inset: 50%; transform: translate(-50%,-50%); }
.orbit-one { width: 440px; height: 440px; animation: spin 42s linear infinite; }
.orbit-two { width: 320px; height: 320px; border-style: dashed; animation: spinReverse 32s linear infinite; }
.system-core { position: absolute; inset: 50% auto auto 50%; transform: translate(-50%,-50%); width: 210px; height: 210px; border-radius: 50%; background: linear-gradient(145deg, var(--navy), #16697a); color: var(--white); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; box-shadow: 0 28px 70px rgba(13,73,96,.26); z-index: 3; }
.system-core::before { content:""; position:absolute; inset: 12px; border: 1px solid rgba(255,255,255,.17); border-radius: 50%; }
.core-kicker { font-size: .62rem; letter-spacing: .2em; opacity: .7; }
.system-core strong { font-size: 2rem; line-height: 1; letter-spacing: -.05em; margin: 8px 0; }
.system-core small { max-width: 150px; font-size: .68rem; opacity: .74; }
.system-node { position: absolute; width: 145px; min-height: 88px; padding: 16px; border-radius: 18px; background: rgba(255,255,255,.88); border: 1px solid rgba(13,73,96,.12); box-shadow: 0 18px 40px rgba(16,43,57,.1); backdrop-filter: blur(12px); z-index: 5; transition: transform .25s ease, border-color .25s ease; }
.system-node:hover { transform: translateY(-4px); border-color: rgba(27,142,152,.48); }
.system-node span { display:block; font-size: .63rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--teal); }
.system-node strong { display:block; margin-top: 5px; font-size: 1rem; line-height: 1.2; }
.node-a { top: 40px; left: 30px; }
.node-b { top: 68px; right: 10px; }
.node-c { bottom: 78px; left: 8px; }
.node-d { bottom: 38px; right: 22px; }
.micro-dots { position:absolute; inset: 0; background-image: radial-gradient(rgba(13,73,96,.16) 1px, transparent 1px); background-size: 24px 24px; mask-image: radial-gradient(circle at center, black 0%, transparent 70%); z-index: -1; }
.hero-statement { position: relative; margin-top: 90px; padding-top: 34px; border-top: 1px solid var(--line); display: grid; grid-template-columns: .7fr 1.3fr; gap: 40px; align-items: baseline; }
.hero-statement p { margin:0; text-transform: uppercase; letter-spacing: .15em; font-weight: 800; font-size: .75rem; color: var(--teal); }
.hero-statement h2 { margin: 0; font-size: clamp(1.8rem,4vw,3.7rem); line-height: 1.05; letter-spacing: -.05em; }

.route-section { background: var(--white); }
.route-layout { display: grid; grid-template-columns: .95fr 1.05fr; gap: 28px; }
.route-options { display: grid; gap: 10px; }
.route-option { width:100%; display:grid; grid-template-columns: 42px 1fr; gap: 14px; align-items:start; text-align:left; padding: 18px; border: 1px solid var(--line); border-radius: 18px; background: var(--cream); cursor:pointer; transition: .2s; }
.route-option:hover { border-color: rgba(27,142,152,.45); transform: translateX(3px); }
.route-option.is-active { background: var(--navy); color: var(--white); border-color: var(--navy); box-shadow: 0 16px 36px rgba(13,73,96,.18); }
.route-number { width: 42px; height: 42px; display:grid; place-items:center; border-radius: 50%; background: rgba(27,142,152,.1); color: var(--teal); font-size: .72rem; font-weight:900; }
.route-option.is-active .route-number { background: rgba(255,255,255,.12); color: #a5e3df; }
.route-option strong, .route-option small { display:block; }
.route-option strong { font-size: 1rem; }
.route-option small { margin-top: 4px; color: var(--ink-soft); line-height: 1.4; }
.route-option.is-active small { color: rgba(255,255,255,.68); }
.route-result { border-radius: 28px; padding: clamp(28px,5vw,58px); background: linear-gradient(145deg, var(--sand), #f9f6f0); border: 1px solid rgba(13,73,96,.08); min-height: 100%; display:flex; flex-direction:column; justify-content:center; }
.result-label { margin:0 0 12px; color: var(--coral); text-transform:uppercase; letter-spacing:.15em; font-weight:900; font-size:.72rem; }
.route-result h3 { margin:0; font-size: clamp(1.8rem,3vw,3.1rem); line-height:1.02; letter-spacing:-.05em; }
.route-result > p:not(.result-label) { color: var(--ink-soft); font-size:1.05rem; }
.result-actions { display:flex; align-items:center; flex-wrap:wrap; gap:18px; margin-top:22px; }
.result-note { display:grid; grid-template-columns:28px 1fr; gap:12px; margin-top:36px; padding-top:22px; border-top:1px solid var(--line); }
.result-note span { width:26px; height:26px; border-radius:50%; display:grid; place-items:center; background:rgba(27,142,152,.12); color:var(--teal); font-weight:900; font-size:.8rem; }
.result-note p { margin:0; font-size:.82rem; color:var(--ink-soft); }

.areas { background: var(--sand); }
.area-grid { display:grid; grid-template-columns: repeat(2, 1fr); gap:18px; }
.area-card { padding: 34px; border-radius: 26px; background: rgba(255,255,255,.74); border:1px solid rgba(13,73,96,.09); transition: transform .25s ease, box-shadow .25s ease; }
.area-card:hover { transform: translateY(-4px); box-shadow: 0 20px 50px rgba(16,43,57,.08); }
.area-card-featured { background: var(--navy); color:var(--white); }
.area-icon { width:52px; height:52px; border-radius:16px; display:grid; place-items:center; background:rgba(27,142,152,.1); margin-bottom:26px; position:relative; overflow:hidden; }
.area-card-featured .area-icon { background:rgba(255,255,255,.1); }
.area-icon span, .area-icon span::before, .area-icon span::after { display:block; position:absolute; content:""; }
.icon-digestive span { width:20px; height:30px; border:3px solid #a5e3df; border-radius:50% 50% 45% 45%; transform:rotate(18deg); }
.icon-digestive span::after { width:9px; height:9px; border-radius:50%; background:var(--coral); right:-7px; bottom:3px; }
.icon-metabolic span { width:30px; height:30px; border:3px solid var(--teal); border-radius:50%; }
.icon-metabolic span::before { width:8px; height:8px; background:var(--coral); border-radius:50%; left:8px; top:8px; }
.icon-metabolic span::after { width:38px; height:2px; background:var(--teal); left:-7px; top:14px; transform:rotate(-35deg); }
.icon-special span { width:30px; height:16px; border:3px solid var(--teal); border-radius:50%; }
.icon-special span::before { width:4px; height:4px; border-radius:50%; background:var(--coral); left:5px; top:3px; box-shadow:10px 2px 0 var(--coral), 18px -1px 0 var(--coral); }
.icon-general span { width:18px; height:30px; border:3px solid var(--teal); border-radius:5px 5px 12px 12px; }
.icon-general span::before { width:8px; height:3px; background:var(--teal); left:2px; top:-7px; }
.card-code { margin:0; font-size:.68rem; font-weight:900; letter-spacing:.14em; color:var(--teal); }
.area-card-featured .card-code { color:#a5e3df; }
.area-card h3 { margin:6px 0 12px; font-size:2rem; letter-spacing:-.04em; }
.area-card > p:not(.card-code) { color:var(--ink-soft); }
.area-card-featured > p:not(.card-code) { color:rgba(255,255,255,.7); }
.area-card ul { list-style:none; padding:0; margin:24px 0 30px; display:grid; gap:9px; }
.area-card li { position:relative; padding-left:18px; font-size:.9rem; font-weight:700; }
.area-card li::before { content:""; position:absolute; left:0; top:.65em; width:6px; height:6px; border-radius:50%; background:var(--coral); }
.card-link { font-weight:900; display:inline-flex; gap:8px; align-items:center; color:var(--navy); }
.area-card-featured .card-link { color:#a5e3df; }

.ecosystem { background: var(--cream); }
.ecosystem-map { display:grid; grid-template-columns:.72fr 1.28fr; gap:46px; align-items:center; }
.ecosystem-parent { min-height:480px; position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.parent-chip { width:min(310px,100%); padding:16px 20px; border:1px solid var(--line); background:var(--white); border-radius:16px; box-shadow:0 12px 30px rgba(16,43,57,.07); position:relative; z-index:2; }
.parent-chip span, .parent-chip strong { display:block; text-align:center; }
.parent-chip span { font-size:.68rem; color:var(--teal); text-transform:uppercase; letter-spacing:.12em; font-weight:900; }
.parent-chip strong { margin-top:4px; }
.parent-line { width:1px; height:66px; background:linear-gradient(var(--line), var(--teal)); }
.mother-card { width:280px; height:280px; border-radius:50%; background:linear-gradient(145deg, var(--navy), #176c7b); color:var(--white); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; box-shadow:0 28px 70px rgba(13,73,96,.25); position:relative; }
.mother-card::before, .mother-card::after { content:""; position:absolute; border-radius:50%; border:1px solid rgba(27,142,152,.18); }
.mother-card::before { inset:-42px; }
.mother-card::after { inset:-84px; border-style:dashed; }
.mother-card p { margin:0; text-transform:uppercase; font-size:.68rem; letter-spacing:.16em; color:#a5e3df; font-weight:900; }
.mother-card h3 { margin:8px 0; font-size:3rem; line-height:1; letter-spacing:-.06em; }
.mother-card span { font-size:.75rem; opacity:.7; }
.ecosystem-sites { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.ecosystem-site { min-height:220px; padding:26px; border:1px solid var(--line); border-radius:22px; background:var(--white); display:flex; flex-direction:column; transition:.25s; }
.ecosystem-site:hover { transform:translateY(-4px); border-color:rgba(27,142,152,.45); box-shadow:0 18px 45px rgba(16,43,57,.08); }
.ecosystem-site span { display:block; font-size:.65rem; color:var(--teal); letter-spacing:.1em; text-transform:uppercase; font-weight:900; }
.ecosystem-site strong { display:block; margin-top:4px; font-size:1.35rem; }
.ecosystem-site p { color:var(--ink-soft); font-size:.9rem; }
.ecosystem-site b { margin-top:auto; color:var(--navy); font-size:.85rem; }

.process { background:var(--navy-deep); color:var(--white); }
.process-shell { display:grid; grid-template-columns:.9fr 1.1fr; gap:80px; align-items:start; }
.process-copy { position:sticky; top:120px; }
.process-copy > p:not(.eyebrow) { color:rgba(255,255,255,.68); }
.process-copy blockquote { margin:30px 0; padding:22px 0 22px 22px; border-left:2px solid var(--coral); font-size:1.08rem; font-weight:700; }
.process .button-secondary { background:transparent; color:var(--white); border-color:rgba(255,255,255,.24); }
.process-steps { list-style:none; padding:0; margin:0; display:grid; gap:14px; counter-reset:steps; }
.process-steps li { display:grid; grid-template-columns:58px 1fr; gap:18px; padding:26px; border-radius:20px; background:rgba(255,255,255,.055); border:1px solid rgba(255,255,255,.08); }
.process-steps > li > span { width:48px; height:48px; display:grid; place-items:center; border-radius:50%; background:rgba(112,197,193,.11); color:#a5e3df; font-weight:900; }
.process-steps strong { font-size:1.05rem; }
.process-steps p { margin:6px 0 0; color:rgba(255,255,255,.6); font-size:.9rem; }

.principles { background:var(--cream); padding-top:76px; padding-bottom:76px; }
.principles-banner { border-radius:32px; padding:clamp(30px,6vw,68px); background:linear-gradient(135deg, #0d4960 0%, #0a3b50 55%, #166978 100%); color:var(--white); display:grid; grid-template-columns:1.2fr .8fr; gap:60px; align-items:center; overflow:hidden; position:relative; }
.principles-banner::after { content:""; position:absolute; width:340px; height:340px; border-radius:50%; border:1px solid rgba(255,255,255,.1); right:-130px; top:-160px; box-shadow:0 0 0 50px rgba(255,255,255,.025),0 0 0 100px rgba(255,255,255,.018); }
.principles-banner h2 { margin:0; font-size:clamp(2rem,4vw,4.1rem); line-height:1.01; letter-spacing:-.055em; }
.principle-points { display:grid; gap:12px; position:relative; z-index:2; }
.principle-points span { display:flex; align-items:center; gap:14px; padding:12px 0; border-bottom:1px solid rgba(255,255,255,.12); font-weight:700; }
.principle-points b { color:#a5e3df; font-size:.72rem; letter-spacing:.08em; }

.for-professionals { background:var(--white); }
.professional-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.professional-grid > div:last-child > p { margin-top:0; color:var(--ink-soft); font-size:1.08rem; }
.professional-actions { display:flex; flex-wrap:wrap; gap:18px; align-items:center; margin-top:28px; }

.faq { background:var(--sand); }
.faq-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:80px; align-items:start; }
.faq-heading { position:sticky; top:120px; }
.accordion { border-top:1px solid var(--line); }
.accordion details { border-bottom:1px solid var(--line); }
.accordion summary { list-style:none; cursor:pointer; padding:24px 44px 24px 0; font-size:1.08rem; font-weight:800; position:relative; }
.accordion summary::-webkit-details-marker { display:none; }
.accordion summary::after { content:"+"; position:absolute; right:4px; top:20px; font-size:1.5rem; color:var(--teal); }
.accordion details[open] summary::after { content:"−"; }
.accordion details div { padding:0 46px 24px 0; color:var(--ink-soft); }
.accordion details div p { margin:0; }

.final-cta { background:var(--cream); }
.final-card { border-radius:34px; padding:clamp(34px,6vw,70px); background:linear-gradient(135deg, var(--coral), #cf2f66 45%, var(--navy)); color:var(--white); display:grid; grid-template-columns:1.2fr .8fr; gap:50px; align-items:center; }
.final-card h2 { margin:0; font-size:clamp(2.1rem,4vw,4.4rem); line-height:1; letter-spacing:-.055em; }
.final-card p:not(.eyebrow) { color:rgba(255,255,255,.78); }
.final-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:12px; }

.site-footer { background:#062c3a; color:rgba(255,255,255,.72); padding:72px 0 24px; }
.footer-grid { display:grid; grid-template-columns:1.35fr repeat(3,1fr); gap:46px; }
.footer-brand p { max-width:300px; }
.footer-note { font-size:.78rem; opacity:.65; }
.site-footer h3 { margin:0 0 16px; color:var(--white); font-size:.86rem; text-transform:uppercase; letter-spacing:.11em; }
.site-footer a { display:block; margin:9px 0; font-size:.88rem; }
.site-footer a:hover { color:#a5e3df; }
.footer-bottom { margin-top:52px; padding-top:20px; border-top:1px solid var(--line-dark); display:flex; justify-content:space-between; gap:20px; font-size:.78rem; }
.footer-bottom p { margin:0; }

.reveal { opacity:0; transform:translateY(18px); transition:opacity .65s ease, transform .65s ease; }
.reveal.is-visible { opacity:1; transform:none; }
@keyframes spin { to { transform:translate(-50%,-50%) rotate(360deg); } }
@keyframes spinReverse { to { transform:translate(-50%,-50%) rotate(-360deg); } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
  .reveal { opacity:1; transform:none; }
}

@media (max-width: 1050px) {
  .main-nav { gap:16px; }
  .main-nav a { font-size:.8rem; }
  .hero-grid { gap:30px; }
  .system-node { width:128px; }
  .process-shell { gap:44px; }
  .faq-grid { gap:48px; }
}

@media (max-width: 900px) {
  :root { --shell:min(100% - 28px, 760px); }
  .section-pad { padding:84px 0; }
  .menu-toggle { display:block; }
  .header-cta { display:none; }
  .main-nav { position:absolute; top:80px; left:14px; right:14px; padding:18px; border:1px solid var(--line); border-radius:18px; background:rgba(251,250,247,.98); box-shadow:var(--shadow); display:none; flex-direction:column; align-items:stretch; gap:0; }
  .main-nav.is-open { display:flex; }
  .main-nav a { padding:12px 8px; font-size:.95rem; }
  .hero-grid, .route-layout, .ecosystem-map, .process-shell, .professional-grid, .faq-grid, .final-card { grid-template-columns:1fr; }
  .hero-copy { text-align:center; }
  .hero-copy h1, .hero-lead { margin-inline:auto; }
  .hero-actions, .trust-list { justify-content:center; }
  .hero-system { min-height:520px; max-width:600px; margin:0 auto; width:100%; }
  .hero-statement { grid-template-columns:1fr; gap:10px; text-align:center; }
  .split-heading { grid-template-columns:1fr; gap:18px; }
  .area-grid { grid-template-columns:1fr; }
  .ecosystem-parent { min-height:430px; }
  .process-copy, .faq-heading { position:static; }
  .principles-banner { grid-template-columns:1fr; gap:36px; }
  .final-actions { justify-content:flex-start; }
  .footer-grid { grid-template-columns:1.2fr 1fr 1fr; }
  .footer-grid > div:last-child { grid-column:2 / 4; }
}

@media (max-width: 620px) {
  :root { --shell:calc(100% - 22px); }
  .section-pad { padding:68px 0; }
  .header-inner { min-height:70px; }
  .main-nav { top:70px; }
  .brand img { width:154px; }
  .hero { padding-top:52px; }
  .hero-copy h1 { font-size:clamp(2.75rem,15vw,4.4rem); }
  .hero-actions .button { width:100%; }
  .trust-list { display:grid; gap:6px; text-align:left; justify-content:start; width:max-content; margin-inline:auto; }
  .hero-system { min-height:430px; }
  .orbit-one { width:330px; height:330px; }
  .orbit-two { width:240px; height:240px; }
  .system-core { width:165px; height:165px; }
  .system-core strong { font-size:1.55rem; }
  .system-node { width:116px; padding:12px; min-height:76px; }
  .system-node strong { font-size:.86rem; }
  .node-a { top:24px; left:0; }
  .node-b { top:34px; right:0; }
  .node-c { bottom:52px; left:0; }
  .node-d { bottom:34px; right:0; }
  .route-option { grid-template-columns:36px 1fr; padding:15px; }
  .route-number { width:36px; height:36px; }
  .route-result { padding:28px 22px; }
  .result-actions .button { width:100%; }
  .area-card { padding:26px 22px; }
  .ecosystem-sites { grid-template-columns:1fr; }
  .ecosystem-parent { min-height:390px; }
  .mother-card { width:220px; height:220px; }
  .mother-card h3 { font-size:2.4rem; }
  .process-steps li { grid-template-columns:46px 1fr; padding:20px; }
  .process-steps > li > span { width:40px; height:40px; }
  .principles-banner, .final-card { border-radius:24px; padding:30px 22px; }
  .professional-actions .button { width:100%; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-grid > div:first-child, .footer-grid > div:last-child { grid-column:1 / -1; }
  .footer-bottom { flex-direction:column; }
}
