/* Inner pages: programs, enquire, right-for-me, families, arrive, privacy. */

.page-hero { position: relative; padding: calc(var(--crisis-h) + var(--nav-h) + clamp(48px, 8vw, 120px)) 0 clamp(48px, 7vw, 96px); overflow: hidden; }
.page-hero__grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(28px, 5vw, 80px); align-items: end; }
.page-hero h1 { margin: 16px 0 0; }
.page-hero h1 em { color: var(--sapphire-deep); }
.page-hero .lede { margin: 0; }
.page-hero--image { color: #fff; min-height: 78vh; display: flex; align-items: flex-end; }
.page-hero--image .page-hero__bg { position: absolute; inset: 0; }
.page-hero--image .page-hero__bg img, .page-hero--image .page-hero__bg video { width: 100%; height: 100%; object-fit: cover; }
.page-hero--image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(5, 22, 56, .55), rgba(5, 22, 56, .1) 40%, rgba(5, 22, 56, .65)); }
.page-hero--image .wrap { position: relative; z-index: 1; }
.page-hero--image h1 em { color: #CFE3FF; }
.page-hero--image .lede { color: rgba(255, 255, 255, .88); }
@media (max-width: 900px) { .page-hero__grid { grid-template-columns: 1fr; } }

/* ---------- programs: comparison + calculator ---------- */
.compare { width: 100%; border-collapse: collapse; font-size: .9375rem; background: #fff; border-radius: var(--radius-lg); overflow: hidden; }
.compare th, .compare td { padding: 16px 18px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: top; }
.compare thead th { font-family: var(--serif); font-weight: 400; font-size: 1.35rem; background: var(--paper); }
.compare tbody th { font-weight: 600; color: var(--ink-2); width: 22%; }
.compare .yes::before { content: "◆ "; color: var(--sapphire); font-size: .7em; }
.compare .no { color: var(--ink-3); }
.compare-wrap { overflow-x: auto; border-radius: var(--radius-lg); box-shadow: 0 1px 0 var(--line), 0 30px 60px -44px rgba(20, 24, 28, .4); }
.compare-wrap:focus-visible { outline-offset: 4px; }

.calc { display: grid; grid-template-columns: 1fr 1fr; gap: 0; background: #fff; border-radius: var(--radius-lg); overflow: hidden; box-shadow: 0 30px 70px -44px rgba(20, 24, 28, .45); }
.calc__in { padding: clamp(24px, 3.4vw, 48px); display: grid; gap: 22px; }
.calc__out { padding: clamp(24px, 3.4vw, 48px); background: var(--sapphire-night); color: #fff; display: grid; align-content: space-between; gap: 28px; }
.calc__big { font-family: var(--serif); font-size: clamp(3.2rem, 6vw, 5.4rem); line-height: 1; }
.calc__big small { font-family: var(--sans); font-size: .9rem; color: rgba(255, 255, 255, .7); }
.calc__rows { display: grid; gap: 8px; font-size: .9375rem; }
.calc__rows div { display: flex; justify-content: space-between; border-bottom: 1px solid rgba(255, 255, 255, .12); padding-bottom: 8px; }
.calc__rows span { color: rgba(255, 255, 255, .7); }
.calc__fine { font-size: .78rem; color: rgba(255, 255, 255, .6); }
.range-row { display: grid; gap: 8px; }
.range-row__top { display: flex; justify-content: space-between; font-size: .875rem; font-weight: 600; color: var(--ink-2); }
.range-row output { font-family: var(--serif); font-size: 1.3rem; font-weight: 400; color: var(--ink); }
@media (max-width: 900px) { .calc { grid-template-columns: 1fr; } }

.fund-steps { counter-reset: f; list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.fund-steps li { counter-increment: f; position: relative; padding: 16px 18px 16px 58px; background: #fff; border-radius: var(--radius); border: 1px solid var(--line); }
.fund-steps li::before { content: counter(f); position: absolute; left: 16px; top: 14px; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--ink); display: grid; place-items: center; font-family: var(--serif); font-weight: 600; }

/* ---------- enquire ---------- */
.enq { display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(24px, 4vw, 64px); align-items: start; }
.enq__form { background: #fff; border-radius: var(--radius-lg); padding: clamp(24px, 3.4vw, 48px); box-shadow: 0 30px 70px -44px rgba(20, 24, 28, .45); }
.enq__step { border: 0; padding: 0; margin: 0 0 28px; display: grid; gap: 14px; }
.enq__step legend { font-family: var(--serif); font-size: 1.6rem; margin-bottom: 4px; padding: 0; }
.enq__step legend small { display: block; font-family: var(--sans); font-size: .8125rem; color: var(--ink-3); margin-top: 4px; }
.enq__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.enq__aside { position: sticky; top: calc(var(--crisis-h) + var(--nav-h) + 20px); display: grid; gap: 14px; }
.enq__urgent { display: none; background: var(--ink); color: #fff; border-radius: var(--radius); padding: 18px 20px; }
.enq__urgent.is-on { display: block; animation: logIn .5s var(--ease); }
.enq__urgent a { color: #fff; font-weight: 600; }
.discreet { display: flex; gap: 14px; align-items: flex-start; background: var(--mist); border-radius: var(--radius); padding: 14px 16px; }
.discreet .switch { border: 0; padding: 0; }
.err { color: #9B2C2C; font-size: .8125rem; min-height: 1em; }
.input[aria-invalid="true"] { border-color: #C0392B; }
@keyframes logIn { from { opacity: 0; transform: translateY(-6px); } }
@media (max-width: 900px) { .enq { grid-template-columns: 1fr; } .enq__aside { position: static; } .enq__row { grid-template-columns: 1fr; } }

.tracker { display: none; }
.tracker.is-on { display: block; }
.tracker__code { font-family: var(--serif); font-size: clamp(2.6rem, 5vw, 4rem); letter-spacing: .04em; margin: 6px 0 4px; }
.tl { list-style: none; margin: 26px 0 0; padding: 0; position: relative; }
.tl::before { content: ""; position: absolute; left: 11px; top: 8px; bottom: 8px; width: 1px; background: var(--line); }
.tl li { position: relative; padding: 0 0 22px 42px; }
.tl li::before { content: ""; position: absolute; left: 4px; top: 5px; width: 15px; height: 15px; border-radius: 50%; background: #fff; border: 1px solid rgba(20, 24, 28, .3); }
.tl li.is-done::before { background: var(--sapphire); border-color: var(--sapphire); box-shadow: 0 0 0 4px rgba(15, 82, 186, .15); }
.tl li.is-now::before { background: #fff; border: 2px solid var(--sapphire); animation: pulseRing 2s infinite; }
@keyframes pulseRing { 50% { box-shadow: 0 0 0 6px rgba(15, 82, 186, .12); } }
.tl b { display: block; }
.tl small { color: var(--ink-3); }

/* ---------- right for me ---------- */
.quiz { max-width: 760px; margin: 0 auto; background: #fff; border-radius: var(--radius-lg); padding: clamp(24px, 4vw, 56px); box-shadow: 0 30px 70px -44px rgba(20, 24, 28, .45); }
.quiz__bar { height: 3px; background: var(--mist); border-radius: 3px; overflow: hidden; margin-bottom: 26px; }
.quiz__bar i { display: block; height: 100%; width: 0; background: var(--sapphire); transition: width .6s var(--ease); }
.quiz__q { display: none; }
.quiz__q.is-on { display: block; animation: logIn .5s var(--ease); }
.quiz__q h2 { font-size: clamp(1.9rem, 3.4vw, 2.8rem); margin-bottom: 20px; }
.opt { display: flex; width: 100%; text-align: left; gap: 14px; align-items: center; padding: 16px 18px; margin-top: 10px; border-radius: var(--radius); border: 1px solid rgba(20, 24, 28, .16); background: #fff; font-size: 1rem; transition: all .25s var(--ease); }
.opt:hover { border-color: var(--sapphire); background: var(--mist); }
.opt::before { content: ""; width: 18px; height: 18px; border-radius: 50%; border: 1px solid rgba(20, 24, 28, .35); flex: none; }
.quiz__nav { display: flex; justify-content: space-between; margin-top: 22px; }
.quiz__back { background: none; border: 0; color: var(--ink-3); font-weight: 600; padding: 8px 0; }
.result { display: none; }
.result.is-on { display: block; animation: logIn .5s var(--ease); }
.result h2 { font-size: clamp(2rem, 3.6vw, 3rem); margin: 10px 0 14px; }
.result--care { border-left: 3px solid var(--ink); padding-left: 20px; }
.result .btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }

/* ---------- families ---------- */
.modules { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.module { background: #fff; border-radius: var(--radius); padding: 20px; border: 1px solid var(--line); display: grid; gap: 8px; align-content: start; }
.module b { font-family: var(--serif); font-weight: 400; font-size: 1.35rem; line-height: 1.15; }
.module span { font-size: var(--fs-label); color: var(--ink-3); letter-spacing: var(--track-label); text-transform: uppercase; font-weight: 500; }
.module p { font-size: .875rem; color: var(--ink-2); margin: 0; }
.share-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.share-grid ul { margin: 0; padding-left: 18px; display: grid; gap: 6px; font-size: .9375rem; }
@media (max-width: 1000px) { .modules { grid-template-columns: 1fr 1fr; } }
@media (max-width: 700px) { .modules, .share-grid { grid-template-columns: 1fr; } }

/* ---------- arrive ---------- */
.countdown { display: flex; gap: clamp(12px, 3vw, 36px); margin-top: 18px; }
.countdown div { display: grid; }
.countdown b { font-family: var(--serif); font-weight: 400; font-size: clamp(3rem, 7vw, 6rem); line-height: .9; }
.countdown span { font-size: var(--fs-label); letter-spacing: var(--track-label); text-transform: uppercase; color: rgba(255, 255, 255, .7); margin-top: 6px; }
.packing { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 64px); align-items: start; }
.pack-list { list-style: none; margin: 0; padding: 0; background: #fff; border-radius: var(--radius-lg); padding: 10px 22px; box-shadow: 0 30px 60px -44px rgba(20, 24, 28, .4); }
.pack-list li { border-bottom: 1px solid var(--line); }
.pack-list li:last-child { border-bottom: 0; }
.pack-list label { display: flex; align-items: center; gap: 14px; min-height: 44px; padding: 14px 0; cursor: pointer; }
.pack-list input { flex: none; width: 20px; height: 20px; accent-color: var(--sapphire); }
.pack-list input:checked + span { text-decoration: line-through; color: var(--ink-3); }
.pack-meter { display: flex; align-items: center; gap: 12px; font-size: .875rem; color: var(--ink-2); margin: 14px 0 0; }
.pack-meter i { flex: 1; height: 4px; border-radius: 4px; background: var(--bone); position: relative; overflow: hidden; }
.pack-meter i b { position: absolute; inset: 0; width: 0; background: var(--sapphire); transition: width .4s var(--ease); }
.arrive-day { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.arrive-day li { background: #fff; border-radius: var(--radius); padding: 22px; border: 1px solid var(--line); }
.arrive-day time { font-family: var(--serif); font-weight: 600; color: var(--sapphire); font-size: 1.3rem; }
.arrive-day h3 { font-size: 1.4rem; margin: 6px 0; }
.arrive-day p { font-size: .9rem; color: var(--ink-2); margin: 0; }
@media (max-width: 900px) { .packing, .arrive-day { grid-template-columns: 1fr; } }

/* ---------- prose ---------- */
.prose { max-width: 720px; }
.prose h2 { font-size: clamp(1.7rem, 2.6vw, 2.3rem); margin: 48px 0 12px; }
.prose p, .prose li { color: var(--ink-2); }
.prose ul { padding-left: 20px; display: grid; gap: 6px; }

.cta-band { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 22px; padding: clamp(28px, 4vw, 48px); border-radius: var(--radius-lg); background: var(--sapphire-night); color: #fff; background-image: radial-gradient(80% 90% at 100% 0%, rgba(15, 82, 186, .45), transparent 60%); }
.cta-band h2 { font-size: clamp(1.9rem, 3.2vw, 2.8rem); max-width: 16em; }
.cta-band .btns { display: flex; gap: 10px; flex-wrap: wrap; }

/* ---------- tour grid ---------- */
.tour { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: clamp(180px, 20vw, 280px); gap: 12px; }
.tour__item { position: relative; margin: 0; border-radius: var(--radius); overflow: hidden; background: #cfd6de; }
.tour__item--big { grid-column: span 2; grid-row: span 2; }
.tour__item--wide { grid-column: span 2; }
.tour__item video { width: 100%; height: 100%; object-fit: cover; }
.tour__item figcaption { position: absolute; left: 14px; bottom: 12px; color: #fff; font-family: var(--serif); font-size: 1.35rem; text-shadow: 0 1px 14px rgba(0, 0, 0, .5); }
@media (max-width: 800px) { .tour { grid-template-columns: 1fr 1fr; } .tour__item--big { grid-row: span 1; } }
.page-hero__bg video { position: absolute; inset: 0; opacity: 0; transition: opacity 1s var(--ease); }
.page-hero__bg video.is-playing { opacity: 1; }

/* transition house split (programs) */
.th__grid { align-items: center; gap: clamp(24px, 5vw, 80px); }
.th__img { margin: 0; aspect-ratio: 3 / 2; }
.th__img img { height: 112%; margin-top: -6%; }
.th__text { display: grid; gap: 14px; }
.th__text .h2 { margin: 0; }

/* ---------- for lawyers (23 Oct): Surfers Paradise hero, sapphire night court section, a path that ends in the city ---------- */
.legal-hero { min-height: 92vh; min-height: 92svh; }
.legal-hero::after { background: linear-gradient(180deg, rgba(5, 22, 56, .55) 0%, rgba(5, 22, 56, .08) 38%, rgba(5, 22, 56, .55) 72%, rgba(5, 22, 56, .9) 100%); }
.legal-ctas { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 24px; }
.legal-strip { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: clamp(40px, 6vw, 80px); border-top: 1px solid rgba(255, 255, 255, .35); }
.legal-strip > div { padding: 20px 20px 4px 0; display: grid; gap: 6px; }
.legal-strip > div + div { padding-left: 20px; border-left: 1px solid rgba(255, 255, 255, .18); }
.legal-strip b { font-weight: 600; font-size: 1.1rem; line-height: 1.2; color: #fff; }
.legal-strip span { font-size: var(--fs-small); color: rgba(255, 255, 255, .75); }
.legal-court { background-image: radial-gradient(70% 60% at 100% 0%, rgba(15, 82, 186, .55), transparent 70%); }
.legal-court h2 em { color: var(--dawn); }
.legal-docs { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.legal-doc { border: 1px solid rgba(255, 255, 255, .12); border-radius: 22px; padding: 24px; background: rgba(255, 255, 255, .04); backdrop-filter: blur(6px); }
.legal-doc__n { font-size: var(--fs-label); letter-spacing: var(--track-label); color: var(--dawn); }
.legal-doc h3 { font-size: 1.25rem; margin: 14px 0 8px; color: #fff; }
.legal-doc p { font-size: var(--fs-small); color: rgba(233, 236, 245, .72); margin: 0; line-height: 1.6; }
.legal-life h2 em { color: var(--sapphire); }
.legal-path { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(14px, 2vw, 24px); }
.legal-path__card { margin: 0; }
.legal-path__card .media { aspect-ratio: 4 / 5; border-radius: 22px; overflow: hidden; }
.legal-path__card img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.legal-path__card:hover img { transform: scale(1.04); }
.legal-path__card figcaption { display: grid; gap: 6px; padding-top: 18px; }
.legal-path__n { font-size: var(--fs-label); font-weight: 500; letter-spacing: var(--track-label); text-transform: uppercase; color: var(--sapphire); }
.legal-path__card b { font-size: 1.4rem; font-weight: 600; letter-spacing: -.02em; }
.legal-path__card figcaption > span:last-child { font-size: var(--fs-small); color: var(--ink-2); line-height: 1.6; }
.legal-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(16px, 2.4vw, 32px); }
.legal-steps li { border-top: 1px solid var(--ink); padding-top: 18px; }
.legal-steps .serif { font-size: 2.6rem; line-height: 1; color: var(--sapphire); }
.legal-steps h3 { font-size: 1.25rem; margin: 12px 0 8px; }
.legal-steps p { font-size: var(--fs-small); color: var(--ink-2); margin: 0; }
.legal-call { background: var(--sapphire); color: #fff; }
.legal-call a { color: #fff; }
.enq__legal { background: var(--sapphire); }
@media (max-width: 900px) { .legal-strip, .legal-steps { grid-template-columns: 1fr 1fr; } .legal-strip > div:nth-child(3) { padding-left: 0; border-left: 0; } .legal-docs, .legal-path { grid-template-columns: 1fr; } .legal-path__card .media { aspect-ratio: 16 / 10; } }
@media (max-width: 560px) { .legal-steps { grid-template-columns: 1fr; } .legal-strip > div { padding-right: 12px; } }
@media (prefers-reduced-motion: reduce) { .legal-path__card img { transition: none; } .legal-path__card:hover img { transform: none; } }

/* ---------- funding + referrers (23 Oct) ---------- */
.fund-prices { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--ink); }
.fund-prices > div { display: grid; gap: 6px; padding: 22px 22px 0 0; }
.fund-prices > div + div { padding-left: 22px; border-left: 1px solid var(--line); }
.fund-prices b { font-size: clamp(2.4rem, 4.6vw, 3.8rem); font-weight: 600; letter-spacing: -.03em; line-height: 1; color: var(--sapphire); }
.fund-prices small { font-size: var(--fs-small); color: var(--ink-2); }
.fund-ways { background-image: radial-gradient(70% 60% at 0% 0%, rgba(15, 82, 186, .55), transparent 70%); }
.fund-ways h2 em { color: var(--dawn); }
.fund-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.fund-card { border: 1px solid rgba(255, 255, 255, .12); border-radius: 22px; padding: 24px; background: rgba(255, 255, 255, .03); }
.fund-card--yes { background: rgba(156, 200, 255, .08); border-color: rgba(156, 200, 255, .3); }
.fund-card__k { font-size: var(--fs-label); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--dawn); margin: 0 0 12px; }
.fund-card h3 { font-size: 1.3rem; color: #fff; margin: 0 0 8px; }
.fund-card p:last-child { font-size: var(--fs-small); line-height: 1.6; color: rgba(233, 236, 245, .75); margin: 0; }
.fund-card a { color: #fff; }
.ref-checks { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--ink); }
.ref-checks > div { display: grid; gap: 8px; align-content: start; padding: 22px 22px 26px 0; border-bottom: 1px solid var(--line); }
.ref-checks > div:not(:nth-child(3n + 1)) { padding-left: 22px; border-left: 1px solid var(--line); }
.ref-checks b { font-size: 1.2rem; font-weight: 600; }
.ref-checks span { font-size: var(--fs-small); color: var(--ink-2); line-height: 1.6; }
@media (max-width: 900px) { .fund-grid, .ref-checks { grid-template-columns: 1fr 1fr; } .ref-checks > div { padding-left: 0 !important; border-left: 0 !important; padding-right: 16px; } }
@media (max-width: 600px) { .fund-prices, .fund-grid, .ref-checks { grid-template-columns: 1fr; } .fund-prices > div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--line); padding-top: 18px; } }

/* ---------- book a call (23 Oct, demo) ---------- */
.book__days, .book__slots { display: flex; flex-wrap: wrap; gap: 6px; }
.book__slots { margin-top: 10px; }
.book button { font: inherit; font-size: .8125rem; min-height: 44px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--line); background: #fff; color: var(--ink); cursor: pointer; }
.book button[aria-pressed="true"] { background: var(--sapphire); border-color: var(--sapphire); color: #fff; }
.book button:focus-visible { outline: 2px solid var(--sapphire); outline-offset: 2px; }
.book__ok { margin: 12px 0 0; color: var(--sapphire); font-weight: 600; }
.book__ok:empty { display: none; }

/* ---------- Hugo audit (23 Oct): after a photo hero the inner pages go cream with ruled lists, like the home page;
   the translucent card grids only remain on navy sections ---------- */
.section--paper.legal-court, .section--paper.fund-ways { background-image: none; }
.section--paper.legal-court h2 em, .section--paper.fund-ways h2 em { color: var(--sapphire); }
.section--paper .legal-docs { gap: 0 clamp(24px, 3vw, 48px); border-top: 1px solid var(--ink); }
.section--paper .legal-doc { background: none; backdrop-filter: none; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: 22px 0 24px; }
.section--paper .legal-doc__n { color: var(--sapphire); }
.section--paper .legal-doc h3 { color: var(--ink); margin-top: 8px; }
.section--paper .legal-doc p { color: var(--ink-2); }
.section--paper .fund-grid { gap: 0 clamp(24px, 3vw, 48px); border-top: 1px solid var(--ink); }
.section--paper .fund-card, .section--paper .fund-card--yes { background: none; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: 22px 0 24px; }
.section--paper .fund-card__k { color: var(--sapphire); }
.section--paper .fund-card--yes .fund-card__k::before { content: "● "; color: var(--dawn); }
.section--paper .fund-card h3 { color: var(--ink); }
.section--paper .fund-card p:last-child { color: var(--ink-2); }
.section--paper .fund-card a { color: var(--sapphire); }
/* phone photo heroes: the copy sits low over bright towers and rooms, so the bottom of the frame is darkened more */
@media (max-width: 760px) {
  .page-hero--image::after { background: linear-gradient(180deg, rgba(5, 22, 56, .55) 0%, rgba(5, 22, 56, .25) 30%, rgba(5, 22, 56, .72) 58%, rgba(5, 22, 56, .9) 100%); }
  .legal-hero::after { background: linear-gradient(180deg, rgba(5, 22, 56, .5) 0%, rgba(5, 22, 56, .55) 30%, rgba(5, 22, 56, .82) 55%, rgba(5, 22, 56, .94) 100%); }
}

/* ---------- 23 Oct 2026 (Hugo audit 2): closing bands, not boxes ----------
   The section that holds the closing line becomes a full-bleed bone band; the line itself is type and two buttons,
   no rounded box, no radial glow. */
.section:has(> .wrap > .cta-band) { background: var(--bone); border-top: 1px solid var(--line); padding-block: clamp(64px, 8vw, 112px) !important; }
.cta-band { background: none !important; background-image: none !important; color: var(--ink); padding: 0; border-radius: 0; align-items: flex-end; }
.cta-band h2 { color: var(--ink); font-size: clamp(2.2rem, 4.4vw, 4rem); max-width: 14em; }
.cta-band p { color: var(--ink-2); }
.cta-band :focus-visible { outline-color: var(--sapphire) !important; }
.cta-band .btn--light { --bg: var(--ink); --fg: #fff; }
.cta-band .btn--ghost, .cta-band .hero__ghost { color: var(--ink) !important; border-color: rgba(20, 24, 28, .4); }
.legal-court, .fund-ways { background-image: none !important; }

/* ---------- one signature move per inner page (23 Oct 2026) ---------- */
/* arrive: the hour-by-hour row is a timeline whose rule draws across as you read, each hour lighting in turn */
.arrive-day { position: relative; gap: 0; padding-top: 34px; }
.arrive-day::before, .arrive-day::after { content: ""; position: absolute; left: 0; right: 0; top: 7px; height: 1px; background: var(--line); }
.arrive-day::after { background: var(--sapphire); transform-origin: left; transform: scaleX(var(--draw, 1)); }
.arrive-day li { background: none; border: 0; border-radius: 0; padding: 0 clamp(14px, 2vw, 28px) 0 0; position: relative; }
.arrive-day li::before { content: ""; position: absolute; top: -32px; left: 0; width: 11px; height: 11px; border-radius: 50%; background: var(--paper); border: 1px solid var(--ink-3); transition: background .4s var(--ease), border-color .4s var(--ease); }
.arrive-day li.is-lit::before { background: var(--sapphire); border-color: var(--sapphire); }
.arrive-day time { font-weight: 500; font-size: clamp(1.6rem, 2.4vw, 2.2rem); letter-spacing: -.02em; }
@media (max-width: 900px) {
  .arrive-day { padding-top: 0; padding-left: 30px; gap: 26px; }
  .arrive-day::before, .arrive-day::after { left: 5px; right: auto; top: 0; bottom: 0; width: 1px; height: auto; }
  .arrive-day::after { transform-origin: top; transform: scaleY(var(--draw, 1)); }
  .arrive-day li::before { top: 6px; left: -30px; }
}
.countdown__note { color: rgba(255, 255, 255, .78); margin-top: 10px; }
.page-hero .countdown { margin-top: clamp(22px, 3vh, 34px); }
.tour__item::before { content: ""; position: absolute; inset: auto 0 0 0; height: 55%; z-index: 2; pointer-events: none; background: linear-gradient(0deg, rgba(5, 22, 56, .7), rgba(5, 22, 56, 0)); }
.tour__item figcaption { z-index: 3; }

/* legal: court date to coast, a route line draws through the three stages while the photos wipe open in order */
.legal-path { position: relative; padding-top: 30px; }
.legal-path::before, .legal-path::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: var(--line); }
.legal-path::after { background: var(--sapphire); transform-origin: left; transform: scaleX(var(--draw, 1)); }
.legal-path__card .media { border-radius: var(--radius); clip-path: inset(0 0 calc((1 - var(--k, 1)) * 100%) 0); }
@media (max-width: 900px) { .legal-path { grid-template-columns: 1fr; } .legal-path__card .media { aspect-ratio: 4 / 3; } }

/* funding: the prices are the hero moment, set at display size in the serif italic numerals */
.fund-prices b { font-family: var(--accent); font-style: normal; font-weight: 500; font-size: clamp(3rem, 6vw, 5.5rem); letter-spacing: -.03em; color: var(--ink); }
.fund-prices > div { padding-top: 26px; }

/* careers + families: modules are a ruled list, not five equal cards */
.modules { grid-template-columns: 1fr; gap: 0; border-top: 1px solid var(--ink); }
.module { grid-template-columns: minmax(120px, .7fr) 1.2fr 2fr; align-items: baseline; gap: 6px 28px; background: none; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: 18px 0; }
.module b { font-size: clamp(1.25rem, 1.8vw, 1.6rem); }
.module p { font-size: 1rem; }
@media (max-width: 760px) { .module { grid-template-columns: 1fr; } }

/* programs: the comparison table tracks the column you point at */
.compare td, .compare th { transition: background .25s var(--ease); }
.compare .is-col { background: rgba(15, 82, 186, .05); }
.compare-wrap { box-shadow: none; border: 1px solid var(--line); }

/* programs (23 Oct, pass 3): the table is the one focal object; its notes are a quiet ruled line, not two boxes */
.compare b.serif { font-family: var(--accent); font-style: normal; font-weight: 500; font-size: clamp(1.7rem, 2.2vw, 2.1rem); letter-spacing: -.02em; }
.compare-notes { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(20px, 4vw, 64px); margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); font-size: .9375rem; color: var(--ink-2); }
.compare-notes p { margin: 0; max-width: 60ch; }
.compare-notes b { color: var(--ink); }
@media (max-width: 760px) { .compare-notes { grid-template-columns: 1fr; } }
/* treat both: a dense bone band, headline and copy side by side, links not buttons */
.dual__grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: clamp(24px, 5vw, 80px); row-gap: 12px; align-items: end; }
.dual__grid .eyebrow { grid-column: 1 / -1; }
.dual__grid h2 { margin: 0; font-size: clamp(2.2rem, 4vw, 3.6rem); }
.dual__p { margin: 0; color: var(--ink-2); max-width: 46ch; }
.dual__links { grid-column: 2; display: flex; flex-wrap: wrap; gap: 10px 26px; margin: 8px 0 0; }
@media (max-width: 900px) { .dual__grid { grid-template-columns: 1fr; } .dual__links { grid-column: 1; } }

/* inner pages: no lone chapter numbers; sections are separated by surface and a hairline instead */
body:not([data-page="home"]) .chapter { display: none; }
body:not([data-page="home"]) main > .section + .section:not(.section--night):not(.section--bone):not(.section--paper) { border-top: 1px solid var(--line); }
/* call cards (legal, referrers): ruled, cream, the number set large in the serif italic; no navy box */
.card.legal-call { background: none; color: var(--ink); border: 0; border-top: 2px solid var(--ink); border-radius: 0; padding: 18px 0 6px; }
.legal-call .eyebrow--light { color: var(--ink-2); }
.legal-call .eyebrow--light::before { background: var(--sapphire); box-shadow: 0 0 0 3px rgba(15, 82, 186, .14); }
.legal-call a { color: var(--ink); }
.legal-call a[href^="tel"] { font-family: var(--accent); font-style: normal; font-weight: 500; font-size: clamp(2.2rem, 3.4vw, 3rem); letter-spacing: -.02em; text-decoration: none; }
.legal-call :focus-visible { outline-color: var(--sapphire) !important; }
/* stronger inner-page moves: route lines draw through every step list, items arrive in turn as the line reaches them */
.legal-steps[data-draw] { position: relative; }
.legal-steps[data-draw]::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: var(--sapphire); transform-origin: left; transform: scaleX(var(--draw, 1)); z-index: 1; }
[data-draw] > li, .modules[data-draw] > .module { opacity: calc(.28 + var(--k, 1) * .72); transition: opacity .2s linear; }
.modules[data-draw] { position: relative; border-top-color: var(--line); }
.modules[data-draw]::after { content: ""; position: absolute; left: 0; right: 0; top: -1px; height: 1px; background: var(--ink); transform-origin: left; transform: scaleX(var(--draw, 1)); }
/* funding: each price rises out of a mask as the row comes in */
.fund-prices b { display: block; overflow: hidden; }
.fund-prices[data-reveal] b { clip-path: inset(0 0 0 0); }
.reduced [data-draw] > li, .reduced .modules[data-draw] > .module { opacity: 1; transform: none; }
.tour__item img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* enquiry tracker (24 Oct 2026): the auto-reply and the opt-in "remember this code" */
.tracker__reply { margin: 14px 0 0; padding: 12px 14px; border-left: 2px solid var(--sapphire); background: rgba(15, 82, 186, .05); font-size: 1rem; line-height: 1.5; }
.tracker__reply:empty { display: none; }
.send-err { display: block; margin-top: 12px; }

/* ---------- 31 Oct 2026 (Hugo, go-live pass): phone photo heroes, photo above the words ----------
   90% of visitors are on phones. White copy over a bright room needed a 90% navy veil, which turned every daytime
   photo into night. On phones the photo now sits bright in its own band and the copy follows on navy, joined by a
   short fade. Desktop keeps the full-bleed photo. */
@media (max-width: 760px) {
  .page-hero--image { display: block; min-height: 0; padding-top: 0; background: var(--sapphire-night); }
  .page-hero--image .page-hero__bg { position: relative; inset: auto; height: clamp(300px, 52svh, 460px); }
  .page-hero--image::after, .page-hero--image.legal-hero::after {
    inset: 0 0 auto 0; height: clamp(300px, 52svh, 460px);
    background: linear-gradient(180deg, rgba(5, 22, 56, .5) 0%, rgba(5, 22, 56, 0) 30%, rgba(5, 22, 56, 0) 66%, var(--sapphire-night) 100%);
  }
  .page-hero--image .wrap { margin-top: -40px; }
}
/* phones: the comparison table was squeezed into 390 px (ten-line cells). Give each program column a readable
   width, keep the row labels pinned while it scrolls sideways */
@media (max-width: 760px) {
  .compare { min-width: 760px; font-size: .9375rem; }
  .compare th, .compare td { padding: 14px 14px; }
  .compare tbody th, .compare thead th:first-child { position: sticky; left: 0; z-index: 1; background: var(--paper); width: 108px; min-width: 108px; box-shadow: 1px 0 0 var(--line); }
}

/* 1 Nov 2026 (Hugo pre-launch audit) */
.fund-partners { margin: clamp(40px, 6vw, 72px) 0 18px; }
.compare-hint { display: none; font-size: var(--fs-label); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--ink-2); margin: 0 0 10px; }
@media (max-width: 900px) { .compare-hint { display: block; } }
.fund-ways + .section--paper { padding-top: clamp(24px, 4vw, 56px); }
/* MAX design audit: the white logo needs a top scrim over bright hero photos */
.page-hero--image .page-hero__bg::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 34%; z-index: 1; pointer-events: none; background: linear-gradient(to bottom, rgba(10, 16, 30, .55), transparent); }
