/* =====================================================================================================================
   APPLE-PREMIUM LAYER (branch apple-premium). Loaded after main.css; overrides only. Principles: generous whitespace,
   one idea per section, big confident headlines, restrained colour (teal = accent), full-bleed imagery, precise type,
   quiet sticky nav, subtle motion, consistent rounded tiles, fewer CTAs, minimal footer.
   Contrast: #24606D on white 7.07:1, white on #24606D 7.07:1, #86B6C1 on #000 9.6:1, #000 on #86B6C1 9.6:1.
   ===================================================================================================================== */
:root{--sec:clamp(5rem,11vw,9.5rem);--r-tile:1.75rem;--hdr:3.5rem;--ease-a:cubic-bezier(.25,.1,.25,1);--muted-a:#56636a}

/* ---------- type: tighter tracking, clear scale ---------- */
body{font-size:1.0625rem;line-height:1.55;letter-spacing:-.003em}
h1,h2,h3,h4{letter-spacing:-.022em}
.h1{font-size:clamp(2.5rem,6vw,5rem);letter-spacing:-.04em;line-height:1.02}
.h2{font-size:clamp(2.25rem,5.2vw,4.25rem);letter-spacing:-.038em;line-height:1.04;font-weight:800}
.h2--s{font-size:clamp(1.75rem,3.4vw,2.75rem)}
h3{letter-spacing:-.018em}
.lede,.sec__p{font-size:clamp(1.125rem,1.7vw,1.375rem);line-height:1.45;color:var(--fg2);opacity:1;font-weight:500;letter-spacing:-.01em}
/* eyebrows: quiet label, not a pill */
.eyebrow{background:none!important;border:0!important;padding:0!important;border-radius:0;font:600 .875rem/1.3 var(--f-h);letter-spacing:-.005em;text-transform:none;color:var(--eyebrow)}
.hero--v .eyebrow,.sec.dark .eyebrow,.cta .eyebrow{color:#c9edf6!important}

/* accent words: solid accent colour, no shimmer */
.h2 em,.h2 em .w{animation:none!important}

/* ---------- section rhythm + simplification ---------- */
.sec{padding-block:var(--sec)}
.sec::before,.sec::after,.phead::before,.phead::after,.cta::before,.cta::after,.fx-orb{display:none!important}
.sec:not(.dark):not(.soft),html[data-theme="light"] .sec:not(.dark):not(.soft){background:var(--canvas)!important}
.sec.soft,html[data-theme="light"] .sec.soft{background:var(--surface)!important}
html[data-theme="dark"] .sec.soft{background:var(--surface-2)!important}
@media (prefers-color-scheme:light){html:not([data-theme="dark"]) .sec.soft{background:var(--surface)!important}}
@media (prefers-color-scheme:dark){html:not([data-theme="light"]) .sec.soft{background:var(--surface-2)!important}}
.sec.dark,.cta{background:linear-gradient(180deg,#071d23 0%,#0f3640 100%)!important}
.sec__head{max-width:52rem;margin-bottom:clamp(2.5rem,5vw,4.5rem)}
.sec:not(.sec--split):not(.sec--vert) .sec__head{margin-inline:auto;text-align:center}
.sec:not(.sec--split):not(.sec--vert) .sec__head .sec__p{margin-inline:auto}
.sec:not(.sec--split):not(.sec--vert) .sec__head .eyebrow{margin-inline:auto}
.page-home .sec__more{text-align:center;margin-top:clamp(2rem,4vw,3rem)}
.phead{padding-block:clamp(3.5rem,9vw,7rem) clamp(2.5rem,6vw,4.5rem)}

/* ---------- hero: full-bleed, centred, two CTAs ---------- */
.hero--v{min-height:min(92svh,62rem);display:flex;align-items:center;padding-block:clamp(5rem,12vw,9rem) clamp(3rem,7vw,5rem);box-shadow:none}
.hero--v::after{display:none}
.hero__shade{background:linear-gradient(180deg,rgba(7,29,35,.5) 0%,rgba(7,29,35,.4) 40%,rgba(7,29,35,.82) 100%)}
.hero--v .hero__in{text-align:center}
.hero--v .hero__eb{margin-inline:auto}
.hero--v .tagline{font-size:clamp(2.75rem,9vw,8rem);letter-spacing:-.05em;line-height:.95}
.hero--v .hero__row{grid-template-columns:1fr!important;justify-items:center;gap:clamp(1.5rem,3vw,2.25rem)}
.hero--v .lede{max-width:44rem;margin-inline:auto;font-size:clamp(1.0625rem,1.6vw,1.3125rem)}
.hero--v .hero__cta{justify-content:center!important}
.hero--v .hero__tools{justify-content:center;font-size:.875rem}
.hero--v .hero__tools .tl{color:#fff!important;background:none!important;text-decoration:underline;text-underline-offset:.22em}

/* ---------- facts: plain big numbers, no cards ---------- */
.facts{padding-block:clamp(3.5rem,8vw,6rem)}
.facts__g{gap:clamp(1.5rem,4vw,3rem)}
.facts__g div{background:none!important;box-shadow:none!important;color:var(--fg)!important;padding:0!important;min-height:0;text-align:center;border-radius:0}
.facts__g div::before{display:none}
.facts dt{color:var(--fg2)!important;opacity:1;text-transform:none;letter-spacing:0;font:600 .9375rem var(--f-h)}
.facts .num{color:var(--fg)!important;-webkit-text-fill-color:currentColor!important;font-size:clamp(2rem,4.2vw,3.5rem)!important;letter-spacing:-.04em!important}
.facts .sub{color:var(--fg2)!important}

/* ---------- nav: thin glass bar ---------- */
.hdr{border-bottom:1px solid color-mix(in srgb,var(--fg) 8%,transparent);background:color-mix(in srgb,var(--canvas) 78%,transparent);-webkit-backdrop-filter:saturate(1.8) blur(20px);backdrop-filter:saturate(1.8) blur(20px)}
.hdr__in{min-height:3.5rem}
.logo img{height:1.9rem}
.nav a{font-weight:500!important;font-size:.8125rem!important;color:var(--fg)!important;opacity:.82;background:none!important;letter-spacing:0}
.nav li a:hover{opacity:1}
.nav li a[aria-current]{opacity:1;background:none!important;color:var(--fg)!important;box-shadow:inset 0 -2px 0 var(--blue)}
.nav__tel{font-weight:600!important}
.theme-btn,.menu-btn{border-color:transparent;background:transparent}
.theme-btn:hover{transform:none}
@media (min-width:68em){.nav .btn--sm{min-height:2.25rem;padding:.35rem .95rem;font-size:.8125rem}}

/* ---------- buttons: solid pills, no sheen, no magnetic drift ---------- */
.btn{min-height:2.875rem;padding:.7rem 1.4rem;border-radius:999px;font:600 1rem/1.1 var(--f-b);letter-spacing:-.01em;box-shadow:none!important;translate:none!important;transform:none!important}
.btn::before{display:none!important}
.btn:not(.btn--line):not(.btn--ghost):not(.btn--dark){background:#24606D!important;border-color:#24606D!important;color:#fff!important}
.btn:not(.btn--line):not(.btn--ghost):not(.btn--dark):hover{background:#1a4a56!important;border-color:#1a4a56!important}
html[data-theme="dark"] .btn:not(.btn--line):not(.btn--ghost):not(.btn--dark),.sec.dark .btn:not(.btn--line):not(.btn--ghost):not(.btn--dark),.cta .btn:not(.btn--line):not(.btn--ghost):not(.btn--dark),.hero--v .btn:not(.btn--line):not(.btn--ghost):not(.btn--dark){background:#86B6C1!important;border-color:#86B6C1!important;color:#000!important}
html[data-theme="dark"] .btn:not(.btn--line):not(.btn--ghost):not(.btn--dark):hover,.sec.dark .btn:not(.btn--line):not(.btn--ghost):not(.btn--dark):hover,.cta .btn:not(.btn--line):not(.btn--ghost):not(.btn--dark):hover,.hero--v .btn:not(.btn--line):not(.btn--ghost):not(.btn--dark):hover{background:#c9edf6!important;border-color:#c9edf6!important}
@media (prefers-color-scheme:dark){html:not([data-theme="light"]) .btn:not(.btn--line):not(.btn--ghost):not(.btn--dark){background:#86B6C1!important;border-color:#86B6C1!important;color:#000!important}html:not([data-theme="light"]) .btn:not(.btn--line):not(.btn--ghost):not(.btn--dark):hover{background:#c9edf6!important;border-color:#c9edf6!important}}
.btn--line,.btn--ghost{background:transparent;border-color:currentColor;color:var(--link)}
.btn--line:hover,.btn--ghost:hover{background:var(--fg);border-color:var(--fg);color:var(--canvas)}
.btn:focus-visible{outline:3px solid var(--focus);outline-offset:3px}

/* ---------- tiles: one radius, no borders, soft surfaces ---------- */
.tcard,.pcard,.aud__c,.cities li,.pillars article,.rows__i,.intake-card,.answer,.reviews-cta,.sec--reviews .tcard,.sec--reviews .reviews-card{border-radius:var(--r-tile)!important;border-color:transparent!important;box-shadow:none!important}
.pcard,.aud__c,.rows__i,.cities li,.pillars article,.tcard{background:var(--surface)}
.sec.soft .pcard,.sec.soft .aud__c,.sec.soft .tcard,.sec--reviews .tcard,.sec--reviews .reviews-card,.sec--reviews .reviews-cta{background:var(--canvas)!important}
.pcard__img,.aud__c picture,.aud__c img{border-radius:var(--r-tile) var(--r-tile) 0 0}
.vthumb,.reelbox,.stage__frame,.ind picture{border-radius:var(--r-tile)}
.cities li::before,.pillars article::before{display:none}
.fx-spot::after{display:none}
@media (hover:hover) and (pointer:fine){.fx-spot:hover{translate:none}.pcard,.aud__c{transition:transform .5s var(--ease-a)}.pcard:hover,.aud__c:hover{transform:scale(1.012)}}
.rows{gap:.75rem}
.rows__i a{padding:clamp(1.25rem,2.4vw,1.75rem)}
.rows__i a:hover{background:var(--surface-2)}
.rows__n{opacity:.7}
.steps__n{background:rgba(255,255,255,.12)!important;box-shadow:none!important}

/* ---------- vertical video / phone mockup ---------- */
.vert{display:grid;gap:clamp(2.5rem,6vw,5rem);align-items:center}
@media (min-width:56em){.vert{grid-template-columns:1fr 1fr}}
.vert__copy{max-width:30rem}
.vert__copy .h2{font-size:clamp(2.5rem,6vw,5rem)}
.vert__cta{margin-top:1.75rem}
.vphone{margin:0 auto;width:min(19rem,74vw);justify-self:center}
.vphone__body{position:relative;aspect-ratio:9/19.3;border-radius:3.1rem;padding:.7rem;background:linear-gradient(145deg,#2a2f31,#0b0d0e 45%,#1d2224);box-shadow:inset 0 0 0 1.5px #4a5154,inset 0 0 0 5px #0b0d0e,0 40px 80px -30px rgba(7,29,35,.55),0 20px 40px -24px rgba(0,0,0,.45)}
.vphone__btn{position:absolute;width:3px;background:#30363a;border-radius:2px}
.vphone__btn--a{left:-3px;top:18%;height:6%}.vphone__btn--b{left:-3px;top:27%;height:10%}.vphone__btn--c{right:-3px;top:24%;height:14%}
.vphone__screen{position:relative;height:100%;border-radius:2.45rem;overflow:hidden;background:#000;isolation:isolate}
.vphone__v{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vphone__island{position:absolute;top:.6rem;left:50%;translate:-50% 0;width:31%;height:1.55rem;border-radius:999px;background:#000;z-index:3}
.vphone__ui{position:absolute;inset:0;z-index:2;color:#fff;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.35) 0%,transparent 18%,transparent 62%,rgba(0,0,0,.6) 100%)}
.vphone__top{position:absolute;left:1rem;right:1rem;top:2.75rem;display:flex;justify-content:space-between;align-items:center;font:700 1.05rem var(--f-h);letter-spacing:-.02em}
.vphone__rail{list-style:none;position:absolute;right:.65rem;bottom:5.5rem;display:grid;gap:1.15rem;filter:drop-shadow(0 1px 3px rgba(0,0,0,.5))}
.vphone__meta{position:absolute;left:.9rem;right:3.6rem;bottom:1.1rem;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.vphone__handle{display:flex;align-items:center;gap:.5rem;margin:0 0 .35rem;font:700 .8125rem var(--f-h)}
.vphone__avatar{width:1.6rem;height:1.6rem;border-radius:50%;flex:none;background:linear-gradient(135deg,#358597,#5ab8ce);box-shadow:0 0 0 2px #fff}
.vphone__cap{margin:0;font-size:.75rem;line-height:1.35}
.vphone__play{position:absolute;z-index:4;left:50%;top:50%;translate:-50% -50%;width:3.75rem;height:3.75rem;border-radius:50%;border:0;display:grid;place-items:center;background:rgba(0,0,0,.55);color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:opacity .3s var(--ease-a)}
.vphone__play[hidden]{display:none}
.vphone__play .i-pause{display:none}
.vphone.is-playing .vphone__play{opacity:0}
.vphone.is-playing .vphone__play:hover,.vphone.is-playing .vphone__play:focus-visible{opacity:1}
.vphone.is-playing .vphone__play .i-pause{display:block}.vphone.is-playing .vphone__play .i-play{display:none}
.vphone__play:focus-visible{outline:3px solid #fff;outline-offset:3px}
.vphone__fc{margin-top:1rem;text-align:center;font-size:.875rem;color:var(--fg2)}

/* ---------- CTA band: centred, one idea ---------- */
.cta{padding-block:clamp(5rem,11vw,9rem)}
@media (min-width:60em){.cta__in{background:none!important;border:0!important;box-shadow:none!important;padding:0!important}}
.cta__act{background:none!important;border:0!important;box-shadow:none!important;padding:0!important;-webkit-backdrop-filter:none;backdrop-filter:none}

/* ---------- footer: quiet, small, light ---------- */
.ftr{background:var(--surface-2)!important;color:var(--fg2);font-size:.8125rem;line-height:1.5;padding-block:clamp(2.5rem,5vw,3.5rem) 6rem}
.ftr::before,.ftr::after{display:none!important}
.ftr a,.ftr .tl--on-grad,.ftr__reviews .tl{color:var(--fg2)!important;text-decoration:none}
.ftr a:hover,.ftr .tl--on-grad:hover{color:var(--fg)!important;text-decoration:underline}
.ftr__h{color:var(--fg)!important;font:600 .8125rem var(--f-b);letter-spacing:0;text-transform:none;margin-bottom:.6rem}
.ftr__tag{color:var(--fg)!important;font-weight:600}
.ftr__bar{border-top:1px solid var(--hair)!important;color:var(--fg2)!important}
.ftr .logo--f img{height:1.9rem}
.ftr__reviews .tl{text-decoration:underline!important}
@media (min-width:60em){.ftr{padding-bottom:2.5rem}}

/* ---------- motion: subtler reveal ---------- */
.js .rv{transform:translateY(16px);transition:opacity 1s var(--ease-a),transform 1s var(--ease-a)}
.js .vgrid>.rv,.js .pgrid>.rv,.js .tgrid>.rv,.js .aud>.rv,.js .indlist>.rv{transform:translateY(20px)}
.js .rv.in,.js .vgrid>.rv.in,.js .pgrid>.rv.in,.js .tgrid>.rv.in,.js .aud>.rv.in,.js .indlist>.rv.in{transform:none}
.sprog{height:2px;box-shadow:none}
@media (prefers-reduced-motion:reduce){.js .rv,.js .vgrid>.rv,.js .pgrid>.rv,.js .tgrid>.rv,.js .aud>.rv,.js .indlist>.rv{opacity:1;transform:none}.pcard:hover,.aud__c:hover{transform:none}}
@media (forced-colors:active){.vphone__body{border:2px solid CanvasText}}
@media (min-width:68em){.js .nav__cta,.nav__cta{flex-wrap:nowrap;gap:1rem}.nav__tel{font-size:.8125rem!important;white-space:nowrap}}
/* footer is light now: undo the on-gradient token overrides from main.css */
.ftr{--fg2:#33403f;--link:#24606D;--focus:#24606D;--muted:#56636a}
html[data-theme="dark"] .ftr{--fg2:#c9cfd1;--link:#86B6C1;--focus:#86B6C1;--muted:#a5adb0}
@media (prefers-color-scheme:dark){html:not([data-theme="light"]) .ftr{--fg2:#c9cfd1;--link:#86B6C1;--focus:#86B6C1;--muted:#a5adb0}}
.ftr address,.ftr p{color:var(--fg2)}
.rows__n{opacity:1}
.nav .btn,.nav__tel{opacity:1!important}
.nav .btn{color:#fff!important}
html[data-theme="dark"] .nav .btn{color:#000!important}
@media (prefers-color-scheme:dark){html:not([data-theme="light"]) .nav .btn{color:#000!important}}

/* iPad (landscape) YouTube / commercial mockup */
.sec--wide{padding-top:0}
@media (min-width:56em){.vert--wide{grid-template-columns:1.35fr 1fr}}
.vpad{margin:0 auto;width:100%;max-width:44rem;justify-self:center}
.vpad__body{position:relative;aspect-ratio:4/3;border-radius:2rem;padding:clamp(.7rem,2.2vw,1.15rem);background:linear-gradient(145deg,#2a2f31,#0b0d0e 45%,#1d2224);box-shadow:inset 0 0 0 1.5px #4a5154,inset 0 0 0 5px #0b0d0e,0 40px 80px -30px rgba(7,29,35,.55),0 20px 40px -24px rgba(0,0,0,.45)}
.vpad__cam{position:absolute;left:50%;top:calc(clamp(.7rem,2.2vw,1.15rem)/2);translate:-50% -50%;width:6px;height:6px;border-radius:50%;background:#1b2a30;box-shadow:0 0 0 1px #000}
.vpad__screen{position:relative;height:100%;border-radius:1.1rem;overflow:hidden;background:#0f0f0f;display:flex;flex-direction:column;justify-content:center;isolation:isolate}
.vpad__frame{position:relative;aspect-ratio:16/9;background:#000}
.vpad__v{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vpad__ui{position:absolute;left:0;right:0;bottom:0;padding:1.2rem .8rem .5rem;color:#fff;pointer-events:none;background:linear-gradient(transparent,rgba(0,0,0,.6))}
.vpad__bar{height:3px;background:rgba(255,255,255,.3);border-radius:2px;margin-bottom:.45rem}
.vpad__prog{display:block;height:100%;width:0;background:#ff0033;border-radius:2px}
.vpad.is-playing .vpad__prog{animation:vpadp 28.7s linear infinite}
@keyframes vpadp{to{width:100%}}
.vpad__ctrls{display:flex;align-items:center;gap:.8rem}.vpad__sp{flex:1}.vpad__yt{display:flex}
.vpad__info{padding:clamp(.5rem,1.6vw,.9rem) clamp(.6rem,1.8vw,1rem);color:#f1f1f1}
.vpad__title{margin:0 0 .35rem;font:600 clamp(.8rem,1.6vw,1rem)/1.3 var(--f-h)}
.vpad__ch{display:flex;align-items:center;gap:.5rem;margin:0;font-size:clamp(.7rem,1.3vw,.8125rem);color:#aaa}
.vpad__ch .vphone__avatar{width:1.4rem;height:1.4rem;box-shadow:none}
.vpad__play{position:absolute;z-index:4;left:50%;top:50%;translate:-50% -50%;width:3.75rem;height:3.75rem;border-radius:50%;border:0;display:grid;place-items:center;background:rgba(0,0,0,.55);color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:opacity .3s var(--ease-a)}
.vpad__play[hidden]{display:none}.vpad__play .i-pause{display:none}
.vpad.is-playing .vpad__play{opacity:0}
.vpad.is-playing .vpad__play:hover,.vpad.is-playing .vpad__play:focus-visible{opacity:1}
.vpad.is-playing .vpad__play .i-pause{display:block}.vpad.is-playing .vpad__play .i-play{display:none}
.vpad__play:focus-visible{outline:3px solid #fff;outline-offset:3px}
@media (max-width:56em){.vert--wide .vert__copy{order:-1}}
@media (max-width:30em){.vpad__info{display:none}.vpad__ctrls svg{width:14px;height:14px}}
@media (prefers-reduced-motion:reduce){.vpad.is-playing .vpad__prog{animation:none}}
@media (forced-colors:active){.vpad__body{border:2px solid CanvasText}}

/* Apple-style scroll flow (html.sf is only set by scroll.js when motion is allowed) */
.sf .hero__img,.sf .hero__v{transform:translate3d(0,var(--sf-y,0),0) scale(var(--sf-s,1));will-change:transform}
.sf .hero--v .hero__h{opacity:var(--sf-o,1);transform:translate3d(0,var(--sf-ty,0),0)}
.sf .vphone__body,.sf .vpad__body{transform:translate3d(0,var(--sf-ty,0),0) scale(var(--sf-s,1));opacity:var(--sf-o,1);will-change:transform,opacity}
.sf .sec .h2{transform:scale(var(--sf-s,1));opacity:var(--sf-o,1);transform-origin:0 100%}
.sf .sec__head .h2,.sf .sec--reviews .h2{transform-origin:50% 100%}
@media (min-width:56em){
 .sf .story{height:260vh;padding:0}
 .sf .story__pin{position:sticky;top:0;min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding-block:4rem}
 .sf .story .steps>li{opacity:.28;transition:opacity .5s var(--ease-a),transform .5s var(--ease-a)}
 .sf .story .steps>li.is-past{opacity:.6}
 .sf .story .steps>li.is-on{opacity:1;transform:translateY(-6px)}
 .sf .story__pin::after{content:"";position:absolute;left:0;bottom:2rem;height:2px;width:100%;background:currentColor;opacity:.5;transform:scaleX(var(--sf-p,0));transform-origin:0 50%}
 .sf .story__pin{position:sticky}
}
/* footer sits flat on the page (no panel/card), like apple.com */
.ftr,html[data-theme] .ftr{background:var(--bg)!important;border:0!important;border-radius:0!important;box-shadow:none!important;margin:0!important;max-width:none}
.ftr>.wrap,.ftr__grid,.ftr__grid>*{background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important}
.ftr .fx-orb{display:none!important}
.ftr .ftr__bar{border-width:1px 0 0!important;border-style:solid!important;border-color:var(--hair)!important}
.vert__cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:.75rem 1.25rem}
.vert__cta>*{margin:0!important}
.vert__cta .tl{display:inline-flex;align-items:center;min-height:2.75rem;line-height:1.2}
/* facts row: big values never break mid-word ("California"). Each cell is a size container; the number scales to its width. */
.facts__g>div{min-width:0;container-type:inline-size}
.facts .num{white-space:nowrap;overflow-wrap:normal;word-break:keep-all;hyphens:none;font-size:clamp(1.6rem,3.4vw,3rem)!important}
@supports (font-size:1cqi){.facts .num{font-size:min(3.5rem,max(1.25rem,14.5cqi))!important}}
