/* ================= fonts (self-hosted web subsets, see assets/fonts/LICENSE.txt) ================= */
@font-face{font-family:"Bodoni Moda";src:url("assets/fonts/bodoni-moda.woff2") format("woff2");font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:"Montserrat";src:url("assets/fonts/montserrat.woff2") format("woff2");font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:"Bodoni Fallback";src:local("Times New Roman Bold"),local("TimesNewRomanPS-BoldMT"),local("Liberation Serif Bold");font-weight:400 700;size-adjust:111.3%;ascent-override:101%;descent-override:36%;line-gap-override:0%}
@font-face{font-family:"Montserrat Fallback";src:local("Arial"),local("ArialMT"),local("Liberation Sans"),local("Roboto");size-adjust:112%;ascent-override:86.4%;descent-override:22.4%;line-gap-override:0%}

body{margin:0;background:#f4fafc}
html{scroll-behavior:smooth}
a{color:#0b1620}a:hover{color:#8c6c22}

/* ================= tokens + base ================= */
.fg{--ink:#0b1620;--ink2:#2c3a46;--muted:#566673;--line:rgba(11,22,32,.10);--line2:rgba(11,22,32,.16);--sky50:#f4fafc;--sky100:#eaf4f8;--sky200:#dcecf3;--sky300:#cfe3ec;--goldgrad:linear-gradient(135deg,#ecd29b 0%,#d7ae63 42%,#c99b48 78%,#e6c98c 100%);--ease:cubic-bezier(.32,.72,0,1);--gold-ink:#8c6c22;--gold-icon:#a98432;--gold-text:linear-gradient(100deg,#ad7c2a 0%,#d4a64d 42%,#bf8c33 66%,#a0722a 100%);--serif:"Bodoni Moda","Bodoni Fallback",Didot,"Times New Roman",serif;--sans:"Montserrat","Montserrat Fallback",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--pad:clamp(20px,4.4vw,48px);position:relative;font-family:var(--sans);font-size:16px;line-height:1.6;color:var(--ink2);background:var(--sky50);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:clip}
.fg *,.fg *::before,.fg *::after{box-sizing:border-box}
:where(.fg) :where(h1,h2,h3,h4,p,figure,blockquote){margin:0}
:where(.fg) :where(ul,ol){margin:0;padding:0;list-style:none}
.fg img{display:block;max-width:100%}
:where(.fg) button{font:inherit;color:inherit}
.fg :focus-visible{outline:2px solid #a98432;outline-offset:3px}
.skip{position:absolute;left:16px;top:-80px;z-index:100;padding:12px 16px;border-radius:12px;background:#0b1620;color:#fff;font-weight:600;text-decoration:none}
.skip:focus{top:16px;color:#fff}

/* ================= layout ================= */
.wrap{position:relative;z-index:1;width:100%;max-width:1248px;margin:0 auto;padding-inline:var(--pad)}
.section{position:relative;padding-block:clamp(88px,9vw,136px)}
.head{display:flex;flex-direction:column;align-items:center;gap:18px;max-width:720px;margin:0 auto clamp(48px,5vw,72px);text-align:center}
.head .lead{max-width:580px}

/* ================= type ================= */
.eyebrow{display:inline-flex;align-items:center;gap:14px;font-size:12px;line-height:16px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--muted)}
.eyebrow::before,.eyebrow.both::after{content:"";width:32px;height:1px;flex:none;background:currentColor;opacity:.5}
.eyebrow.both::after{margin-left:-.26em}
.eyebrow.gold{color:#d7ae63}
@media (max-width:389px){.eyebrow{letter-spacing:.2em}.eyebrow.both::after{margin-left:-.2em}}
@media (max-width:359px){.eyebrow{gap:10px;font-size:11px;letter-spacing:.16em}.eyebrow::before,.eyebrow.both::after{width:22px}.eyebrow.both::after{margin-left:-.16em}}
@media (max-width:329px){.hero .eyebrow::before{display:none}}
.h1,.h2,.h3,.serif{font-family:var(--serif);font-weight:620;font-variation-settings:"opsz" 10;color:var(--ink);text-wrap:balance}
.h1{font-size:clamp(2.5rem,1.5rem + 2.9vw,4rem);line-height:1.06;letter-spacing:-.012em}
.h1 .line{display:block}
@media (max-width:389px){.h1{font-size:clamp(1.875rem,11.76vw - 4.7px,2.5rem)}}
.h2{font-size:clamp(2rem,1.6rem + 1.7vw,3rem);line-height:1.1;letter-spacing:-.01em}
.h3{font-size:clamp(1.25rem,1.15rem + .4vw,1.5rem);line-height:1.25;letter-spacing:-.005em}
.lead{font-size:clamp(1.0625rem,1rem + .25vw,1.1875rem);line-height:1.65;color:var(--ink2);text-wrap:pretty}
.body{font-size:16px;line-height:1.65;color:var(--ink2);text-wrap:pretty}
.gt{background:var(--gold-text);-webkit-background-clip:text;background-clip:text;color:transparent}
.gt-light{background:linear-gradient(100deg,#f3dfb0 0%,#d7ae63 55%,#c99b48 100%);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ================= icons ================= */
.ic{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.ic-sm{width:16px;height:16px}
.ic-fill{fill:currentColor;stroke:none}
.stars{display:inline-flex;gap:2px;color:#d7ae63}
.stars svg{width:14px;height:14px;fill:currentColor}
.gmark{width:18px;height:18px;flex:none}

/* ================= glass (Kilian's recipe) ================= */
.glass{position:relative;isolation:isolate;border:1px solid rgba(255,255,255,.75);border-radius:24px;background:linear-gradient(145deg,rgba(255,255,255,.40) 0%,rgba(255,255,255,.26) 26%,rgba(231,242,248,.20) 54%,rgba(255,255,255,.14) 100%),linear-gradient(180deg,rgba(255,255,255,.28) 0%,rgba(255,255,255,.14) 42%,rgba(183,212,226,.14) 100%),rgba(255,255,255,.20);-webkit-backdrop-filter:blur(22px) saturate(170%) brightness(1.04);backdrop-filter:blur(22px) saturate(170%) brightness(1.04);box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 12px 22px rgba(255,255,255,.14),inset 0 -10px 18px rgba(126,169,191,.06)}
.glass::before{content:"";position:absolute;left:12px;right:12px;top:10px;height:30%;border-radius:14px;background:linear-gradient(180deg,rgba(255,255,255,.70) 0%,rgba(255,255,255,.28) 45%,rgba(255,255,255,0) 100%);opacity:.95;z-index:-1;pointer-events:none}
.glass::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(70% 82% at 84% 84%,rgba(43,125,179,.10) 0%,rgba(43,125,179,0) 72%),radial-gradient(48% 48% at 16% 10%,rgba(255,255,255,.24) 0%,rgba(255,255,255,0) 62%),radial-gradient(50% 50% at 50% 50%,rgba(107,156,177,.06) 0%,rgba(107,156,177,0) 78%);z-index:-2;pointer-events:none}
@media (min-width:768px){.glass{box-shadow:0 30px 60px -36px rgba(16,52,82,.34),0 14px 30px rgba(16,52,82,.05),inset 0 1px 0 rgba(255,255,255,.95),inset 0 12px 22px rgba(255,255,255,.14),inset 0 -10px 18px rgba(126,169,191,.06)}}

/* ================= buttons ================= */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:0 28px;border:0;border-radius:14px;font-family:var(--sans);font-size:16px;line-height:24px;font-weight:600;letter-spacing:.005em;text-decoration:none;white-space:nowrap;cursor:pointer;transition:transform .6s var(--ease),box-shadow .6s var(--ease),background-position .9s var(--ease),background-color .6s var(--ease),color .6s var(--ease)}
.btn:active{transform:scale(.98)}
.btn .ic{width:18px;height:18px;stroke-width:1.8;transition:transform .6s var(--ease)}
.btn:hover .ic-arrow{transform:translateX(3px)}
.btn-gold{color:#0b1620;background-image:linear-gradient(135deg,#ecd29b 0%,#d7ae63 38%,#c99b48 68%,#e6c98c 100%);background-size:200% 200%;background-position:0% 50%;box-shadow:inset 0 1px 0 rgba(255,255,255,.6),inset 0 -1px 0 rgba(120,80,20,.2),0 12px 26px -8px rgba(199,152,66,.5)}
.btn-gold:hover{color:#0b1620;background-position:100% 50%;transform:translateY(-2px);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),inset 0 -1px 0 rgba(120,80,20,.2),0 18px 34px -10px rgba(199,152,66,.6)}
.btn-line{color:var(--ink);background:rgba(255,255,255,.45);box-shadow:inset 0 0 0 1px var(--line2)}
.btn-line:hover{color:var(--ink);background:#fff;transform:translateY(-2px)}
.btn-ghost-dark{color:#f4fafc;background:rgba(255,255,255,.04);box-shadow:inset 0 0 0 1px rgba(255,255,255,.22)}
.btn-ghost-dark:hover{color:#fff;background:rgba(255,255,255,.09);transform:translateY(-2px)}
.btn-block{width:100%}
.btn-sm{min-height:44px;padding:0 18px;border-radius:12px;font-size:14px;line-height:20px}

/* ================= hero background ================= */
.bg-hero{position:absolute;left:0;right:0;top:0;height:2300px;z-index:0;pointer-events:none;overflow:hidden;background:radial-gradient(50% 32% at 86% 12%,rgba(133,183,235,.42) 0%,rgba(133,183,235,0) 70%),radial-gradient(42% 30% at 4% 30%,rgba(56,138,221,.14) 0%,rgba(56,138,221,0) 70%),radial-gradient(38% 22% at 72% 44%,rgba(215,174,99,.11) 0%,rgba(215,174,99,0) 70%),radial-gradient(55% 25% at 22% 64%,rgba(133,183,235,.28) 0%,rgba(133,183,235,0) 72%),radial-gradient(45% 20% at 84% 78%,rgba(87,152,205,.16) 0%,rgba(87,152,205,0) 72%),linear-gradient(180deg,#d4e7ef 0%,#e4f0f6 28%,#eef6fa 55%,#f4fafc 85%)}
.blob{position:absolute;border-radius:50%;will-change:transform;animation:drift 26s ease-in-out infinite alternate}
.blob-a{width:640px;height:640px;right:-140px;top:40px;background:radial-gradient(circle,rgba(133,183,235,.40) 0%,rgba(133,183,235,0) 68%)}
.blob-b{width:540px;height:540px;left:-180px;top:560px;background:radial-gradient(circle,rgba(87,152,205,.18) 0%,rgba(87,152,205,0) 68%);animation-duration:32s;animation-direction:alternate-reverse}
.watermark{position:absolute;color:#d7ae63;opacity:.10;pointer-events:none}
.watermark svg{display:block;width:100%;height:auto;fill:currentColor}
.wm-hero{right:-3%;top:520px;width:min(780px,92vw);transform:rotate(-6deg)}
@media (max-width:767px){.bg-hero{background:radial-gradient(90% 20% at 96% 4%,rgba(133,183,235,.22) 0%,rgba(133,183,235,0) 70%),radial-gradient(70% 18% at 0% 30%,rgba(56,138,221,.06) 0%,rgba(56,138,221,0) 70%),radial-gradient(70% 14% at 86% 44%,rgba(215,174,99,.09) 0%,rgba(215,174,99,0) 70%),radial-gradient(90% 16% at 16% 66%,rgba(133,183,235,.16) 0%,rgba(133,183,235,0) 72%),linear-gradient(180deg,#e6f1f6 0%,#edf5f9 24%,#f1f8fb 52%,#f4fafc 80%)}.blob-a{width:440px;height:440px;right:-250px;top:-60px;background:radial-gradient(circle,rgba(133,183,235,.22) 0%,rgba(133,183,235,0) 68%)}.blob-b{width:400px;height:400px;left:-230px;top:620px;opacity:.7}}
@keyframes drift{0%{transform:translate3d(0,0,0) scale(1)}100%{transform:translate3d(-48px,36px,0) scale(1.08)}}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
@keyframes ring{0%{opacity:.85;transform:scale(1)}100%{opacity:0;transform:scale(1.55)}}

/* ================= top bar ================= */
.topbar{position:relative;z-index:2;display:flex;justify-content:center;padding:9px 16px;background:rgba(255,255,255,.5);border-bottom:1px solid var(--line)}
.topbar a{display:inline-flex;align-items:center;gap:10px;white-space:nowrap;font-size:13px;line-height:18px;color:var(--ink2);text-decoration:none}
.topbar a:hover{color:var(--ink)}
.topbar strong{font-weight:700;color:var(--ink)}
.topbar .gmark{width:16px;height:16px}
.topbar .stars svg{width:13px;height:13px}
.tb-short{display:none}
@media (max-width:374px){.tb-long{display:none}.tb-short{display:inline}}

/* ================= nav ================= */
.nav-wrap{position:relative;z-index:50;padding-top:14px}
@media (min-width:1024px){.nav-wrap{position:sticky;top:0}}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:60px;padding:8px 8px 8px 20px;border-radius:22px}
.nav::before{border-radius:14px}
.logo{display:block;flex:none;line-height:0}
.logo img{height:30px;width:auto}
.nav-right{display:flex;align-items:center;gap:28px}
.nav-links{display:none;align-items:center;gap:28px}
.nav-link{position:relative;padding:12px 2px;font-size:14px;line-height:20px;font-weight:500;color:var(--ink);text-decoration:none}
.nav-link::after{content:"";position:absolute;left:2px;right:2px;bottom:8px;height:1px;background:#c99b48;transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.nav-link:hover{color:var(--ink)}
.nav-link:hover::after{transform:scaleX(1)}
.nav-div{display:none;width:1px;height:24px;background:var(--line2)}
.nav-phone{display:none;align-items:center;gap:8px;font-size:14px;line-height:20px;font-weight:600;color:var(--ink);text-decoration:none}
.nav-phone .ic{color:var(--gold-icon)}
.nav-cta{display:none}
.burger{position:relative;width:44px;height:44px;flex:none;display:grid;place-items:center;border:1px solid rgba(255,255,255,.95);border-radius:14px;background:rgba(255,255,255,.6);cursor:pointer;box-shadow:0 2px 8px rgba(16,52,82,.06)}
.burger span{position:absolute;left:13px;right:13px;height:1.5px;border-radius:2px;background:var(--ink);transition:transform .7s var(--ease)}
.burger span:first-child{top:17px}
.burger span:last-child{top:24px;left:17px}
@media (min-width:1024px){.nav{min-height:64px;padding:10px 10px 10px 28px}.logo img{height:34px}.nav-links,.nav-phone,.nav-cta{display:inline-flex}.nav-div{display:block}.burger{display:none}}

/* ================= hero ================= */
.hero{position:relative;z-index:1;padding-top:clamp(36px,6vw,80px)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"copy" "media" "actions";gap:36px}
.hero-copy{grid-area:copy;display:flex;flex-direction:column;gap:22px}
.hero-media{grid-area:media;position:relative}
.hero-actions{grid-area:actions;display:flex;flex-direction:column;gap:22px}
.hero .lead{max-width:540px}
@media (min-width:1024px){.hero-grid{grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);grid-template-areas:"copy media" "actions media";column-gap:clamp(48px,5vw,88px);row-gap:36px;align-items:center}.hero-copy{align-self:end}.hero-actions{align-self:start}}
.cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px}
.call-link{display:inline-flex;align-items:center;gap:8px;padding:12px 0;font-size:16px;line-height:24px;font-weight:600;color:var(--ink);text-decoration:none}
.call-link span{font-weight:500;color:var(--muted)}
.assure{display:flex;flex-wrap:wrap;gap:10px 22px}
.assure li{display:inline-flex;align-items:center;gap:8px;font-size:14px;line-height:20px;font-weight:500;color:var(--ink2)}
.assure .ic{width:16px;height:16px;color:var(--gold-icon);stroke-width:2}
@media (max-width:599px){.cta-row{justify-content:center}.cta-row .btn{width:100%}.assure{flex-direction:column;gap:10px}}

.video{padding:10px;border-radius:30px}
.video::before{border-radius:22px}
.video-frame{position:relative;border-radius:22px;overflow:hidden;aspect-ratio:16/9;background:#0b1620}
.video-frame img{width:100%;height:100%;object-fit:cover;object-position:50% 42%;transition:transform 1.6s var(--ease)}
.video:hover .video-frame img{transform:scale(1.03)}
.video-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,22,32,.30) 0%,rgba(11,22,32,0) 26%,rgba(11,22,32,0) 64%,rgba(11,22,32,.40) 100%);pointer-events:none}
.play{position:absolute;left:50%;top:60%;z-index:2;width:80px;height:80px;margin:-40px 0 0 -40px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--goldgrad);color:#0b1620;cursor:pointer;box-shadow:0 14px 30px rgba(11,22,32,.35);transition:transform .6s var(--ease)}
.play::before{content:"";position:absolute;inset:0;border-radius:50%;box-shadow:0 0 0 1.5px rgba(255,255,255,.75);animation:ring 2.8s var(--ease) infinite;pointer-events:none}
.play:hover{transform:scale(1.07)}
.play svg{width:28px;height:28px;margin-left:4px}
.video-pill{position:absolute;left:16px;top:16px;z-index:2;display:inline-flex;align-items:center;gap:8px;padding:7px 12px 7px 10px;border-radius:999px;background:rgba(11,22,32,.40);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.18);color:#fff;font-size:12px;line-height:16px;font-weight:600;letter-spacing:.04em}
.video-pill i{width:6px;height:6px;border-radius:50%;background:#e6c98c}
.seal{position:absolute;z-index:4;top:-20px;right:-4px;width:72px;height:72px;border-radius:50%}
.seal svg{display:block;width:100%;height:100%}
.s-ring{fill:none;stroke-width:.6}
.s-ring-in{stroke-width:.8;stroke-dasharray:.1 2.3;stroke-linecap:round}
.s-text{font-family:var(--sans);font-size:8.2px;font-weight:600;letter-spacing:2.4px;text-anchor:middle}
@media (min-width:1024px){.seal{width:84px;height:84px;top:-28px;right:-14px}}
@media (min-width:1280px){.seal{width:92px;height:92px;top:-32px;right:-27px}}
/* B · pearl glass */
.seal-pearl{background:radial-gradient(120% 120% at 30% 18%,rgba(255,255,255,.94) 0%,rgba(242,249,252,.82) 100%);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);box-shadow:0 10px 22px -14px rgba(16,52,82,.30),inset 0 1px 0 #fff,inset 0 0 0 1px rgba(201,155,72,.32)}
.seal-pearl .s-ring{stroke:#c99b48;opacity:.62}
.seal-pearl .s-text{fill:#8c6c22}
.seal-pearl .s-dot{fill:#c99b48;opacity:.7}
.intro{display:flex;align-items:center;gap:16px;margin-top:16px;padding:14px 20px 14px 14px;border-radius:22px}
.intro::before{display:none}
.intro-face{width:56px;height:56px;flex:none;border-radius:50%;object-fit:cover;border:2px solid #fff;box-shadow:0 4px 14px rgba(16,52,82,.18)}
.intro p{font-size:14px;line-height:21px;color:var(--ink2);text-wrap:pretty}
.intro strong{font-weight:600;color:var(--ink)}
@media (min-width:600px){.hero-media{padding-bottom:48px}.intro{position:absolute;z-index:3;left:-16px;bottom:0;width:min(420px,72%);margin:0}}
@media (min-width:1024px){.intro{left:-28px;width:min(380px,82%)}}
@media (min-width:1024px) and (max-width:1279px){.hero-media{padding-bottom:64px}.intro{width:min(360px,88%)}.intro p{font-size:13px;line-height:19px}}
@media (min-width:1280px){.intro{left:-44px;width:min(430px,86%)}}

.cue{display:flex;flex-direction:column;align-items:center;gap:12px;width:max-content;margin:clamp(56px,7vw,88px) auto 0;padding:8px 16px;text-decoration:none;color:var(--ink)}
.cue:hover{color:var(--ink)}
.cue-label{margin-right:-.26em;font-size:12px;line-height:16px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--ink2)}
.chev{width:36px;height:21px;fill:none;stroke:url(#chevGold) #c99b48;stroke-width:3;stroke-linejoin:miter;stroke-linecap:square;animation:bob 2.4s ease-in-out infinite}

/* ================= quote + form ================= */
.quote{padding-top:clamp(40px,4vw,56px);background:radial-gradient(40% 32% at 12% 36%,rgba(133,183,235,.26) 0%,rgba(133,183,235,0) 70%),radial-gradient(34% 30% at 90% 58%,rgba(215,174,99,.09) 0%,rgba(215,174,99,0) 70%),radial-gradient(50% 30% at 50% 78%,rgba(87,152,205,.14) 0%,rgba(87,152,205,0) 72%)}
.form-card{max-width:880px;margin:0 auto;padding:clamp(22px,3.2vw,36px);border-radius:30px}
.form-card::before{border-radius:22px}
.form-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.form-kicker{display:inline-flex;align-items:center;gap:8px;font-size:12px;line-height:16px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.form-kicker .ic{width:16px;height:16px;color:var(--gold-icon);stroke-width:1.8}
.form-step{font-size:12px;line-height:16px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
@media (max-width:374px){.form-head{gap:8px}.form-kicker,.form-step{font-size:10.5px;letter-spacing:.08em;white-space:nowrap}.form-kicker{gap:6px}.form-kicker .ic{width:14px;height:14px}}
.progress{position:relative;height:3px;margin-top:14px;border-radius:999px;background:rgba(11,22,32,.08);overflow:hidden}
.progress span{position:absolute;top:0;bottom:0;left:0;border-radius:inherit;background:var(--goldgrad)}
.form-q{margin-top:clamp(28px,3vw,36px);text-align:center;font-size:clamp(1.5rem,1.3rem + .8vw,2rem);line-height:1.2}
.form-hint{margin-top:10px;text-align:center;font-size:14px;line-height:20px;color:var(--muted)}
.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:26px}
@media (min-width:720px){.tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}}
.tile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:140px;padding:26px 12px 20px;border:1px solid rgba(255,255,255,.95);border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.80) 0%,rgba(255,255,255,.52) 100%);color:var(--ink);font-size:14px;line-height:20px;font-weight:600;text-align:center;cursor:pointer;box-shadow:0 1px 2px rgba(16,52,82,.05),0 10px 22px -16px rgba(16,52,82,.30),inset 0 1px 0 #fff;transition:transform .6s var(--ease),box-shadow .6s var(--ease),background-color .6s var(--ease),border-color .6s var(--ease)}
.tile:hover{transform:translateY(-3px);box-shadow:0 1px 2px rgba(16,52,82,.05),0 18px 30px -16px rgba(16,52,82,.34),inset 0 1px 0 #fff}
.tile .ic{width:40px;height:40px;stroke-width:1.15}
.radio{position:absolute;top:12px;right:12px;width:18px;height:18px;border-radius:50%;border:1.5px solid rgba(11,22,32,.22);background:#fff}
.tile.is-on{border-color:rgba(201,155,72,.9);background:linear-gradient(180deg,#fffaf0 0%,rgba(255,255,255,.88) 100%);box-shadow:0 0 0 4px rgba(215,174,99,.18),0 16px 30px -14px rgba(16,52,82,.28)}
.tile.is-on .radio{border:0;background:var(--goldgrad);box-shadow:inset 0 0 0 4.5px #fffaf0}
.form-actions{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:26px}
.form-actions .btn{width:100%;max-width:420px}
.micro{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 14px;font-size:12px;line-height:16px;font-weight:500;color:var(--muted)}
.micro i{width:3px;height:3px;border-radius:50%;background:#c99b48}
.assure-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:1040px;margin:clamp(40px,4vw,56px) auto 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.assure-row li{display:flex;align-items:center;gap:12px;padding:20px 16px;font-size:14px;line-height:20px;font-weight:600;color:var(--ink)}
.assure-row .ic{width:22px;height:22px;color:var(--gold-icon);stroke-width:1.4}
@media (min-width:900px){.assure-row{grid-template-columns:repeat(4,minmax(0,1fr))}.assure-row li{justify-content:center}.assure-row li+li{border-left:1px solid var(--line)}}
@media (max-width:899px){.assure-row li{flex-direction:column;align-items:flex-start;gap:10px}.assure-row li:nth-child(2n){border-left:1px solid var(--line)}.assure-row li:nth-child(n+3){border-top:1px solid var(--line)}}

/* ================= services ================= */
.services{background:radial-gradient(45% 35% at 92% 18%,rgba(133,183,235,.24) 0%,rgba(133,183,235,0) 70%),radial-gradient(40% 30% at 4% 82%,rgba(56,138,221,.10) 0%,rgba(56,138,221,0) 70%)}
.svc{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "media" "list";gap:clamp(32px,4vw,48px)}
.svc-head{grid-area:head;display:flex;flex-direction:column;align-items:center;gap:18px;max-width:640px;margin:0 auto;text-align:center}
.svc-media{grid-area:media;padding:10px;border-radius:30px}
.svc-media::before{border-radius:22px}
.svc-frame{position:relative;border-radius:22px;overflow:hidden;aspect-ratio:4/3;background:#2c3a46}
.svc-frame img{width:100%;height:100%;object-fit:cover;object-position:60% 50%}
@media (min-width:600px) and (max-width:1023px){.svc-frame{aspect-ratio:16/10}}
.svc-body{grid-area:list}
.svc-list{border-top:1px solid var(--line)}
.svc-item{display:grid;grid-template-columns:56px minmax(0,1fr);gap:20px;padding:28px 0;border-bottom:1px solid var(--line)}
.svc-ic{width:56px;height:56px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(168,121,47,.35);background:rgba(255,255,255,.65);color:var(--ink);box-shadow:inset 0 1px 0 #fff}
.svc-ic .ic{width:26px;height:26px;stroke-width:1.3}
.svc-title{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.svc-item .body{margin-top:8px}
.tag{display:inline-flex;padding:3px 10px;border-radius:999px;border:1px solid rgba(169,132,50,.45);font-family:var(--sans);font-size:11px;line-height:16px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink)}
.svc-inc{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:14px;font-size:12px;line-height:16px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.svc-inc i{width:3px;height:3px;border-radius:50%;background:#c99b48}
.svc-incl{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:22px}
.svc-incl li{display:inline-flex;align-items:center;gap:8px;font-size:14px;line-height:20px;font-weight:600;color:var(--ink)}
.svc-incl .ic{color:var(--gold-icon);stroke-width:2}
/* desktop: the clip sits on the left as one picture for all three services, the services stack on the right */
@media (min-width:1024px){.svc{grid-template-columns:minmax(0,.96fr) minmax(0,1fr);grid-template-areas:"head head" "media list";column-gap:clamp(56px,6vw,96px);row-gap:clamp(48px,4.6vw,64px);align-items:center;max-width:1152px;margin:0 auto}.svc-head{max-width:720px}.svc-frame{aspect-ratio:16/9}.svc-item{gap:22px;padding:24px 0}.svc-item .body{max-width:44ch}}
@media (min-width:1024px) and (max-width:1279px){.svc{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:48px}}

/* ================= steps ================= */
.steps{background:radial-gradient(40% 40% at 12% 50%,rgba(133,183,235,.18) 0%,rgba(133,183,235,0) 70%),radial-gradient(35% 35% at 88% 40%,rgba(215,174,99,.07) 0%,rgba(215,174,99,0) 70%)}
.timeline{display:grid;grid-template-columns:minmax(0,1fr);max-width:1152px;margin:0 auto}
.tl-step{position:relative;display:grid;grid-template-columns:52px minmax(0,1fr);column-gap:20px;padding-bottom:36px}
.tl-top{grid-column:1;grid-row:1 / span 2;display:flex;flex-direction:column;align-items:center;gap:14px}
.tl-num{font-family:var(--serif);font-weight:620;font-variation-settings:"opsz" 10;font-size:40px;line-height:1;background:var(--gold-text);-webkit-background-clip:text;background-clip:text;color:transparent}
.tl-line{flex:1;width:1px;min-height:24px;background:linear-gradient(180deg,rgba(201,155,72,.65) 0%,rgba(11,22,32,.08) 100%)}
.tl-step .h3,.tl-step .body{grid-column:2}
.tl-step .h3{padding-top:6px}
.tl-step .body{margin-top:10px;max-width:34ch}
.tl-step:last-child{padding-bottom:0}
.tl-step:last-child .tl-line{display:none}
@media (min-width:900px){.timeline{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto auto auto;column-gap:36px}.tl-step{display:block;padding:0}@supports (grid-template-rows:subgrid){.tl-step{display:grid;grid-row:span 3;grid-template-columns:minmax(0,1fr);grid-template-rows:subgrid;align-content:start}.tl-top,.tl-step .h3,.tl-step .body{grid-column:auto;grid-row:auto}}.tl-top{flex-direction:row;gap:18px;margin-bottom:24px}.tl-num{font-size:56px}.tl-line{flex:1;width:auto;height:1px;min-height:0;background:linear-gradient(90deg,rgba(201,155,72,.65) 0%,rgba(11,22,32,.08) 100%)}.tl-step:last-child .tl-line{display:block;background:linear-gradient(90deg,rgba(201,155,72,.65) 0%,rgba(11,22,32,0) 100%)}.tl-step .h3{padding-top:0}}
.center-cta{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:clamp(48px,5vw,64px)}
.center-cta small{font-size:12px;line-height:16px;font-weight:500;color:var(--muted)}

/* ================= reviews ================= */
.reviews{background:radial-gradient(46% 30% at 16% 46%,rgba(56,138,221,.14) 0%,rgba(56,138,221,0) 70%),radial-gradient(60% 40% at 50% 100%,rgba(133,183,235,.30) 0%,rgba(133,183,235,0) 72%),radial-gradient(34% 26% at 76% 66%,rgba(133,183,235,.20) 0%,rgba(133,183,235,0) 72%)}
.rev-wrap{display:flex;flex-direction:column;gap:28px}
.rating-top{display:none}
.rev-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 48px) / 3);gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:24px;margin:-24px -24px -36px;padding:24px 24px 60px;scrollbar-width:none}
.rev-track::-webkit-scrollbar{display:none}
@media (min-width:768px){.rev-track{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 24px,#000 calc(100% - 24px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 24px,#000 calc(100% - 24px),transparent 100%)}}
.rev{display:flex;flex-direction:column;gap:18px;min-height:310px;padding:28px;border-radius:24px;scroll-snap-align:start}
.rev-top{display:flex;align-items:center;justify-content:space-between}
.rev-text{flex:1;font-size:16px;line-height:1.7;color:var(--ink2)}
.rev-text strong{font-weight:600;color:var(--ink)}
.rev-foot{display:flex;align-items:center;gap:12px;padding-top:18px;border-top:1px solid rgba(11,22,32,.07)}
.avatar{position:relative;width:40px;height:40px;flex:none;display:grid;place-items:center;overflow:hidden;border-radius:50%;color:#fff;font-size:14px;line-height:20px;font-weight:600;border:2px solid rgba(255,255,255,.95);box-shadow:0 2px 8px rgba(16,52,82,.12)}
.avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%}
.av1{background:linear-gradient(135deg,#3d5566,#22313d)}
.av2{background:linear-gradient(135deg,#c9a46a,#9c7a45)}
.av3{background:linear-gradient(135deg,#3f8fa8,#256a80)}
.av4{background:linear-gradient(135deg,#7c95a8,#53697b)}
.rev-name{font-size:14px;line-height:20px;font-weight:600;color:var(--ink)}
.rev-src{font-size:12px;line-height:16px;color:var(--muted)}
.rev-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:28px;border-top:1px solid var(--line)}
.rating{display:flex;align-items:center;gap:18px}
.rating-num{font-family:var(--serif);font-weight:620;font-variation-settings:"opsz" 10;font-size:52px;line-height:1}
.rating-meta{display:flex;flex-direction:column;gap:6px;font-size:14px;line-height:20px;color:var(--ink2)}
.rating-meta .row{display:inline-flex;align-items:center;gap:8px}
.rating-meta strong{font-weight:600;color:var(--ink)}
.arrows{display:flex;align-items:center;gap:12px}
.arrow{width:48px;height:48px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.95);border-radius:50%;background:rgba(255,255,255,.6);color:var(--ink);cursor:pointer;box-shadow:0 2px 8px rgba(16,52,82,.06);transition:transform .6s var(--ease),background-color .6s var(--ease)}
.arrow:hover{background:#fff;transform:translateY(-2px)}
.dots{display:none;gap:8px}
.dots span{width:6px;height:6px;border-radius:999px;background:rgba(11,22,32,.18)}
.dots span.on{width:20px;background:#c99b48}
@media (min-width:768px) and (max-width:1023px){.rev-track{grid-auto-columns:calc((100% - 24px) / 2)}}
@media (max-width:767px){.rating-top{display:flex;flex-direction:column;align-items:center;gap:10px;padding:22px 20px;border-radius:22px;text-align:center}.rating-top .rating-num{font-size:48px}.rating-top .row{display:inline-flex;align-items:center;gap:8px;font-size:14px;line-height:20px;color:var(--ink2)}.rating-top strong{font-weight:600;color:var(--ink)}.rev-track{grid-auto-columns:86%;gap:16px;margin:-24px calc(var(--pad) * -1) -36px;padding:24px var(--pad) 60px;scroll-padding-inline:var(--pad)}.rev{padding:24px}.rev-bar{justify-content:center;border-top:0;padding-top:0}.rev-bar .rating{display:none}.dots{display:flex}}

/* ================= plans (dark) ================= */
.plans{overflow:hidden;color:#c9d3db;background:linear-gradient(180deg,#121f2d 0%,#0e1824 50%,#0a1018 100%)}
.plans::before{content:"";position:absolute;inset:0;background:radial-gradient(50% 35% at 50% 0%,rgba(215,174,99,.12) 0%,rgba(215,174,99,0) 70%),radial-gradient(40% 30% at 90% 70%,rgba(56,138,221,.10) 0%,rgba(56,138,221,0) 70%);pointer-events:none}
.wm-plans{left:50%;top:50%;width:min(1180px,150vw);transform:translate(-50%,-36%);opacity:.06}
.plans .h2{color:#f4fafc}
.plans .lead{color:#aab6c0}
.price-hint{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.10);font-size:14px;line-height:20px;color:#d9e1e7}
.price-hint .ic{color:#d7ae63}
.plan-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:stretch;max-width:560px;margin:0 auto}
@media (min-width:1024px){.plan-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-width:none}}
.plan{position:relative;display:flex;flex-direction:column;padding:36px 30px 30px;border-radius:24px;border:1px solid rgba(255,255,255,.10);background:linear-gradient(160deg,rgba(255,255,255,.075) 0%,rgba(255,255,255,.02) 60%);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 24px 48px rgba(0,0,0,.25);transition:transform .8s var(--ease),border-color .8s var(--ease)}
.plan:hover{transform:translateY(-6px);border-color:rgba(255,255,255,.2)}
.plan.featured{border-color:rgba(215,174,99,.55);background:linear-gradient(160deg,rgba(215,174,99,.15) 0%,rgba(255,255,255,.03) 55%);box-shadow:inset 0 1px 0 rgba(255,236,200,.18),0 30px 60px rgba(0,0,0,.35),0 0 90px rgba(215,174,99,.10)}
.plan.featured:hover{border-color:rgba(215,174,99,.8)}
@media (max-width:1023px){.plan.featured{order:-1}}
.badge{position:absolute;top:-13px;left:30px;padding:4px 12px;border-radius:999px;background:var(--goldgrad);color:#0b1620;font-size:12px;line-height:16px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 6px 16px rgba(199,152,66,.3)}
.plan-name{font-size:13px;line-height:20px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#fff}
.plan-desc{margin-top:8px;min-height:40px;font-size:14px;line-height:20px;color:#9fadb8}
.plan-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-top:26px}
.price-big{font-family:var(--serif);font-weight:620;font-variation-settings:"opsz" 10;font-size:clamp(2.25rem,2rem + 1vw,3rem);line-height:1;color:#fff}
.price-big.gt-light{color:transparent}
.price-unit{font-size:14px;line-height:20px;color:#9fadb8}
.plan-list{display:flex;flex-direction:column;gap:13px;margin:26px 0 30px;padding-top:26px;border-top:1px solid rgba(255,255,255,.08)}
.plan-list li{display:flex;align-items:flex-start;gap:12px;font-size:14px;line-height:20px;color:#dfe6eb}
.plan-list li .ic{margin-top:2px;color:#d7ae63;stroke-width:2}
.plan-list li.off{color:#8a97a2}
.plan-list li.off .ic{color:#5d6a75}
.plan-list strong{color:#fff;font-weight:600}
.plan .btn{width:100%;margin-top:auto}
.plan-notes{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-top:40px}
@media (min-width:768px){.plan-notes{grid-template-columns:repeat(2,minmax(0,1fr))}}
.pnote{display:flex;align-items:flex-start;gap:16px;padding:22px 24px;border-radius:20px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.pnote h3{font-size:16px;line-height:24px;font-weight:600;color:#fff}
.pnote p{margin-top:4px;font-size:14px;line-height:20px;color:#9fadb8;text-wrap:pretty}
.pnote-ic{width:44px;height:44px;flex:none;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(215,174,99,.45);color:#e6c98c}
.smile-badge{width:44px;height:44px;flex:none;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(201,155,72,.55);background:rgba(255,255,255,.65);color:#c99b48;box-shadow:inset 0 1px 0 #fff}
.smile-badge svg{width:24px;height:auto;margin-top:4px;fill:currentColor}
.plans .smile-badge{background:rgba(255,255,255,.04);border-color:rgba(215,174,99,.45);box-shadow:none;color:#e6c98c}

/* ================= faq ================= */
.faq{background:radial-gradient(40% 30% at 8% 18%,rgba(133,183,235,.22) 0%,rgba(133,183,235,0) 70%),radial-gradient(35% 30% at 92% 72%,rgba(133,183,235,.18) 0%,rgba(133,183,235,0) 70%)}
.faq-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:32px}
.faq-side{display:contents}
.faq-head{order:1;display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center}
.faq-main{order:2}
.contact-card{order:3;display:flex;flex-direction:column;gap:6px;padding:24px;border-radius:24px}
.contact-card .h3{margin-bottom:8px}
.contact-link{display:inline-flex;align-items:center;gap:12px;padding:8px 0;font-size:16px;line-height:24px;font-weight:600;color:var(--ink);text-decoration:none}
.contact-link .ic{color:var(--gold-icon)}
.nowrap,.menu-call strong{white-space:nowrap}
@media (min-width:1024px){.faq-grid{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:72px;align-items:start}.faq-side{display:flex;flex-direction:column;gap:32px;position:sticky;top:120px}.faq-head{align-items:flex-start;text-align:left}}
.faq-panel{border-radius:24px;padding:4px 0}
.faq-panel::before{border-radius:16px}
.qa+.qa{border-top:1px solid rgba(11,22,32,.08)}
.qa summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px;padding:18px 24px;list-style:none;cursor:pointer;font-size:16px;line-height:24px;font-weight:600;color:var(--ink)}
.qa summary::-webkit-details-marker{display:none}
.qa summary:hover .qa-icon{background:#fff}
.qa-icon{width:32px;height:32px;flex:none;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.75);border:1px solid rgba(11,22,32,.07);color:var(--ink);transition:transform .6s var(--ease),background-color .6s var(--ease)}
.qa[open] .qa-icon{transform:rotate(180deg);background:var(--goldgrad);border-color:transparent}
.qa-body{max-width:64ch;padding:0 24px 24px;font-size:16px;line-height:1.65;color:var(--ink2);text-wrap:pretty}
.qa-body strong{color:var(--ink);font-weight:600}
.faq-more{display:none}
@media (max-width:767px){.qa summary{min-height:60px;padding:16px 20px}.qa-body{padding:0 20px 20px}.faq-panel:not(.is-all) .qa.more{display:none}.faq-more{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:52px;margin-top:14px;border:0;border-radius:14px;background:rgba(255,255,255,.55);box-shadow:inset 0 0 0 1px var(--line2);font-size:15px;line-height:22px;font-weight:600;color:var(--ink);cursor:pointer}.faq-more .ic{width:16px;height:16px;stroke-width:2}.faq-panel.is-all+.faq-more .ic{transform:rotate(180deg)}}

/* ================= final cta ================= */
.final{background:radial-gradient(50% 35% at 15% 22%,rgba(133,183,235,.34) 0%,rgba(133,183,235,0) 70%),radial-gradient(45% 35% at 88% 40%,rgba(215,174,99,.12) 0%,rgba(215,174,99,0) 70%),radial-gradient(60% 35% at 50% 100%,rgba(87,152,205,.22) 0%,rgba(87,152,205,0) 72%),linear-gradient(180deg,rgba(220,236,243,0) 0%,#dcecf3 55%,#cfe3ec 100%)}
.final-inner{display:flex;flex-direction:column;align-items:center;gap:20px;max-width:880px;margin:0 auto;text-align:center}
.final-inner .lead{max-width:600px}
.proof-pill{display:inline-flex;align-items:center;gap:10px;padding:6px 16px 6px 6px;border-radius:999px;border:1px solid rgba(255,255,255,.9);background:rgba(255,255,255,.55);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 1px 2px rgba(16,52,82,.04),inset 0 1px 0 #fff;font-size:15px;line-height:20px;color:var(--ink2)}
.proof-pill strong{color:var(--ink);font-weight:700}
.proof-pill .pp-num{margin-left:2px}
.proof-pill .stars svg{width:15px;height:15px}
.sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.avs{display:flex}
.avs .avatar{width:32px;height:32px;font-size:12px;line-height:16px;box-shadow:none}
.avs .avatar+.avatar{margin-left:-9px}
.benefits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;width:100%;margin:12px 0 16px;text-align:left;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.benefit{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:18px 14px}
.benefit:nth-child(2n){border-left:1px solid var(--line)}
.benefit:nth-child(n+3){border-top:1px solid var(--line)}
.benefit .ic{width:22px;height:22px;margin-top:2px;color:var(--gold-icon);stroke-width:1.4}
.benefit h3{font-size:15px;line-height:22px;font-weight:600;color:var(--ink)}
.benefit p{font-size:14px;line-height:20px;color:var(--muted)}
@media (min-width:768px){.benefit{padding:20px}}
@media (min-width:1024px){.final-inner{max-width:1040px}.benefits{grid-template-columns:repeat(4,minmax(0,1fr))}.benefit{gap:12px;padding:24px 22px}.benefit:nth-child(n+3){border-top:0}.benefit+.benefit{border-left:1px solid var(--line)}}
.final .form-card{width:100%;text-align:left}
.g-note{display:flex;align-items:center;justify-content:center;gap:14px;max-width:560px;margin:28px auto 0;font-size:14px;line-height:20px;color:var(--ink2);text-align:left;text-wrap:balance}
.g-note strong{color:var(--ink);font-weight:600}

/* ================= footer ================= */
.footer{position:relative;overflow:hidden;padding-block:clamp(64px,7vw,88px) 32px;color:#9fadb8;background:linear-gradient(180deg,#121f2d 0%,#0a1018 100%)}
.wm-foot{right:-8%;bottom:-18%;width:min(640px,110vw);opacity:.05}
.foot-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:40px}
@media (min-width:600px){.foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1200px){.foot-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,.8fr) minmax(0,1.1fr)}}
.foot-brand img{height:34px;width:auto}
.foot-brand p{margin-top:20px;max-width:280px;font-size:14px;line-height:22px}
.foot-col h3{margin-bottom:16px;font-size:12px;line-height:16px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#f4fafc}
.foot-col li+li{margin-top:4px}
.foot-link{display:inline-flex;align-items:center;gap:10px;padding:6px 0;font-size:14px;line-height:20px;color:#c3ced6;text-decoration:none;transition:color .5s var(--ease)}
.foot-link:hover{color:#e6c98c}
.foot-link .ic{width:16px;height:16px;color:#d7ae63}
.foot-cta p{margin-bottom:16px;font-size:14px;line-height:22px}
.foot-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;margin-top:56px;padding-top:24px;border-top:1px solid rgba(255,255,255,.08);font-size:12px;line-height:16px}
.foot-legal{display:flex;flex-wrap:wrap;gap:8px 24px}
.foot-legal a{color:#9fadb8;text-decoration:none}
.foot-legal a:hover{color:#e6c98c}
@media (max-width:1023px){.footer{padding-bottom:120px}}

/* ================= sticky mobile cta ================= */
.sticky-cta{position:fixed;left:12px;right:12px;bottom:12px;z-index:60;display:flex;gap:8px;padding:8px;border-radius:20px;background:rgba(11,22,32,.80);-webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%);border:1px solid rgba(255,255,255,.12);box-shadow:0 16px 36px rgba(11,22,32,.28)}
.sticky-cta .btn{flex:1 1 auto;min-width:0;min-height:52px;padding:0 16px}
.lbl-short{display:none}
@media (max-width:374px){.sticky-cta{left:10px;right:10px;bottom:10px;gap:6px;padding:6px}.sticky-cta .btn{padding:0 12px;font-size:15px}.lbl-long{display:none}.lbl-short{display:inline}}
@media (max-width:299px){.sticky-call{display:none}}
.sticky-call{width:52px;height:52px;flex:none;display:grid;place-items:center;border-radius:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:#fff;text-decoration:none}
.sticky-call:hover{color:#fff;background:rgba(255,255,255,.14)}
@media (min-width:1024px){.sticky-cta{display:none}}

/* ================= mobile menu ================= */
.menu{position:fixed;inset:0;z-index:90;display:flex;visibility:hidden;opacity:0;pointer-events:none;flex-direction:column;overflow:hidden;background:rgba(244,250,252,.96);-webkit-backdrop-filter:blur(28px) saturate(160%);backdrop-filter:blur(28px) saturate(160%)}
.fg.menu-open .menu{visibility:visible;opacity:1;pointer-events:auto}
.fg.menu-open .sticky-cta{opacity:0;visibility:hidden}
@media (min-width:1024px){.fg .menu{display:none}}
.menu-top{display:flex;align-items:center;justify-content:space-between;padding-top:49px}
.menu-bar{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:60px;padding:8px 8px 8px 20px;border-radius:22px}
.menu-bar::before{border-radius:14px}
.menu-close{width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.95);border-radius:14px;background:rgba(255,255,255,.7);color:var(--ink);cursor:pointer}
.menu-links{display:flex;flex-direction:column;margin-top:48px}
.menu-link{display:flex;align-items:center;gap:18px;padding:22px 4px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.menu-link:first-child{border-top:1px solid var(--line)}
.menu-link:hover{color:var(--ink)}
.ml-num{font-size:12px;line-height:16px;font-weight:600;letter-spacing:.2em;color:var(--gold-ink)}
.ml-text{flex:1;font-family:var(--serif);font-weight:620;font-variation-settings:"opsz" 10;font-size:40px;line-height:1.1;letter-spacing:-.01em}
.menu-link .ic{width:22px;height:22px;color:var(--ink);stroke-width:1.4}
.menu-foot{display:flex;flex-direction:column;align-items:center;gap:18px;margin-top:auto;padding-bottom:36px}
.menu-rating{display:inline-flex;align-items:center;gap:10px;font-size:13px;line-height:18px;color:var(--ink2);text-decoration:none}
.menu-rating strong{font-weight:700;color:var(--ink)}
.menu-call{display:inline-flex;align-items:center;gap:8px;padding:8px 0;font-size:15px;line-height:22px;font-weight:500;color:var(--ink2);text-decoration:none}
.menu-call strong{font-weight:600;color:var(--ink)}
.menu-call .ic{color:var(--gold-icon)}
.wm-menu{left:-18%;bottom:20%;width:140%;opacity:.07;transform:rotate(-8deg)}



/* ================= smooth scrolling (Lenis) ================= */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:clip}
.lenis.lenis-smooth iframe{pointer-events:none}

/* ================= hero: arrives on its own, no waiting for scripts ================= */
@keyframes rise{from{opacity:0;transform:translate3d(0,26px,0)}}
.hero-copy>*{animation:rise 1s var(--ease) backwards}
.hero-copy>:nth-child(2){animation-delay:.08s}
.hero-copy>:nth-child(3){animation-delay:.16s}
.hero-media{animation:rise 1.2s var(--ease) .14s backwards}
.hero-actions{animation:rise 1.1s var(--ease) .24s backwards}
.cue{animation:rise 1s var(--ease) .5s backwards}

/* ================= scroll reveal ================= */
.reveal{opacity:0;transform:translate3d(0,28px,0);transition:opacity 1s var(--ease),transform 1.2s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal-d1{transition-delay:.1s}
.reveal-d2{transition-delay:.2s}
/* section heads also come into focus */
.head.reveal,.svc-head.reveal,.faq-head-wrap.reveal{filter:blur(6px);transition:opacity 1s var(--ease),transform 1.2s var(--ease),filter 1.1s var(--ease)}
.head.reveal.in,.svc-head.reveal.in,.faq-head-wrap.reveal.in{filter:none}
.reveal .eyebrow::before,.reveal .eyebrow.both::after{transform:scaleX(0);transition:transform 1.2s var(--ease) .25s}
.reveal .eyebrow::before{transform-origin:right}
.reveal .eyebrow.both::after{transform-origin:left}
.reveal.in .eyebrow::before,.reveal.in .eyebrow.both::after{transform:none}
/* groups: children follow one after another */
.stagger>*{opacity:0}
.stagger.in>*{opacity:1;animation:rise 1.1s var(--ease) backwards;animation-delay:calc(var(--i,0) * 90ms)}
/* the services clip opens up like a window being unveiled */
.svc-media .svc-frame{clip-path:inset(9% 11% round 22px);transition:clip-path 1.6s var(--ease) .1s}
.svc-media.in .svc-frame{clip-path:inset(0 round 22px)}
.svc-media .svc-frame img,.svc-media .svc-frame video{transform:scale(1.1);transition:transform 2.2s var(--ease) .1s,opacity .4s var(--ease)}
.svc-media.in .svc-frame img,.svc-media.in .svc-frame video{transform:none}
.no-js .reveal,.no-js .stagger>*{opacity:1;transform:none;filter:none;animation:none}
.no-js .svc-media .svc-frame{clip-path:none}

/* ================= gold that catches the light once ================= */
.gt.sheen{background-image:linear-gradient(100deg,rgba(255,250,236,0) 42%,rgba(255,250,236,.9) 50%,rgba(255,250,236,0) 58%),var(--gold-text);background-size:280% 100%,100% 100%;background-repeat:no-repeat;background-position:160% 0,0 0}
.hero .gt.sheen{animation:sheen 2s var(--ease) 2.4s 1 both}
.in .gt.sheen{animation:sheen 1.9s var(--ease) .6s 1 both}
@keyframes sheen{from{background-position:160% 0,0 0}to{background-position:-60% 0,0 0}}

/* ================= things that float ================= */
@keyframes sealFloat{0%,100%{transform:translate3d(0,0,0) rotate(-2deg)}50%{transform:translate3d(0,-5px,0) rotate(2deg)}}
.seal{animation:sealIn 1.2s var(--ease) .7s backwards,sealFloat 7s ease-in-out 1.9s infinite}
@keyframes sealIn{from{opacity:0;transform:scale(.6) rotate(-24deg)}}
@keyframes drift2{0%{transform:translate3d(0,0,0) scale(1)}100%{transform:translate3d(60px,-30px,0) scale(1.12)}}
@keyframes wmFloat{0%,100%{transform:translate(-50%,-36%)}50%{transform:translate(-50%,-38.5%)}}
.wm-plans{animation:wmFloat 16s ease-in-out infinite}
.final{overflow:hidden}
.final::before,.final::after{content:"";position:absolute;z-index:0;border-radius:50%;pointer-events:none;will-change:transform}
.final::before{width:620px;height:620px;left:-200px;top:12%;background:radial-gradient(circle,rgba(133,183,235,.30) 0%,rgba(133,183,235,0) 68%);animation:drift 28s ease-in-out infinite alternate}
.final::after{width:520px;height:520px;right:-160px;top:30%;background:radial-gradient(circle,rgba(215,174,99,.13) 0%,rgba(215,174,99,0) 68%);animation:drift2 34s ease-in-out infinite alternate}
.is-off .blob,.is-off.final::before,.is-off.final::after,.is-off .wm-plans{animation-play-state:paused}

/* ================= intro video (Bunny Stream) =================
   Our cover stays on top. Bunny's player waits underneath, prepared after the
   page has loaded, and the cover fades away the moment the video runs. */
.video{cursor:pointer}
.video.is-playing{cursor:auto}
.video-frame picture{position:relative;z-index:1;transition:opacity .8s var(--ease),visibility 0s linear 0s}
.video-frame::after{z-index:1;transition:opacity .5s var(--ease)}
.video-frame iframe{position:absolute;inset:0;z-index:0;width:100%;height:100%;border:0;pointer-events:none}
.video-frame.is-playing iframe{pointer-events:auto}
.lenis.lenis-smooth .video-frame iframe{pointer-events:none}
.video-frame.is-playing picture{opacity:0;visibility:hidden;transition:opacity .8s var(--ease),visibility 0s linear .8s}
.video-frame.is-playing::after,.video-frame.is-playing .play,.video-frame.is-playing .video-pill{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .4s var(--ease),visibility 0s linear .4s}
.video-frame.is-loading .play{transform:scale(.94)}
.video-frame.is-loading .play::before{animation:none;opacity:0}
.video-frame.is-loading .play svg{opacity:0}
.video-frame.is-loading .play::after{content:"";position:absolute;inset:26px;border-radius:50%;border:2px solid rgba(11,22,32,.18);border-top-color:#0b1620;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
/* tablets and computers: Kilian's intro label sits on the video, so it bows out
   when the video starts and never covers the player's controls */
@media (min-width:600px){
.intro{transition:opacity .45s var(--ease),transform .6s var(--ease),visibility 0s linear 0s}
.hero-media.video-on .intro{opacity:0;visibility:hidden;pointer-events:none;transform:translate3d(0,12px,0) scale(.98);transition:opacity .35s var(--ease),transform .5s var(--ease),visibility 0s linear .5s}
}

/* ================= services clip ================= */
.video-frame picture,.svc-frame picture{display:block;width:100%;height:100%}
.svc-frame video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.svc-frame.has-video img{opacity:0}

/* ================= burger + menu: a calm fade, links follow one by one ================= */
.burger span{transition:transform .7s var(--ease),width .7s var(--ease),left .7s var(--ease),right .7s var(--ease)}
.fg.menu-open .burger span:first-child{transform:translateY(3.5px) rotate(45deg)}
.fg.menu-open .burger span:last-child{left:13px;transform:translateY(-3px) rotate(-45deg)}
.menu{transition:opacity .45s var(--ease),visibility 0s linear .45s}
.fg.menu-open .menu{transition:opacity .6s var(--ease),visibility 0s}
.menu-bar{opacity:0;transform:translate3d(0,-10px,0);transition:opacity .4s var(--ease),transform .6s var(--ease)}
.fg.menu-open .menu-bar{opacity:1;transform:none;transition-delay:.06s}
.menu-link{position:relative;border-color:transparent!important;opacity:0;transform:translate3d(0,30px,0);transition:opacity .35s var(--ease),transform .5s var(--ease)}
.menu-link::before,.menu-link::after{content:"";position:absolute;left:0;right:0;height:1px;background:var(--line);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.menu-link::after{bottom:-1px}
.menu-link:first-child::before{top:-1px}
.menu-link:not(:first-child)::before{display:none}
.fg.menu-open .menu-link{opacity:1;transform:none;transition:opacity .8s var(--ease),transform 1s var(--ease)}
.fg.menu-open .menu-link::before,.fg.menu-open .menu-link::after{transform:none;transition:transform 1.1s var(--ease) .3s}
.fg.menu-open .menu-link:nth-child(1){transition-delay:.12s}
.fg.menu-open .menu-link:nth-child(2){transition-delay:.2s}
.menu-foot{opacity:0;transform:translate3d(0,20px,0);transition:opacity .35s var(--ease),transform .5s var(--ease)}
.fg.menu-open .menu-foot{opacity:1;transform:none;transition:opacity .9s var(--ease) .3s,transform 1.1s var(--ease) .3s}
.wm-menu{transition:opacity 1.4s var(--ease)}
.fg:not(.menu-open) .wm-menu{opacity:0}
body.menu-open{overflow:hidden}

/* ================= faq answers ================= */
.qa-body{overflow:hidden}
.qa[open] .qa-body{animation:qaIn .6s var(--ease)}
@keyframes qaIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* ================= sticky bar: glides in, then catches the light ================= */
.sticky-cta{visibility:hidden;opacity:0;transform:translate3d(0,calc(100% + 28px),0) scale(.94);transition:transform .7s var(--ease),opacity .45s var(--ease),visibility 0s linear .7s}
.sticky-cta.in{visibility:visible;opacity:1;transform:none;transition:transform 1s var(--ease),opacity .6s var(--ease),visibility 0s}
.sticky-cta .btn-gold{overflow:hidden}
.sticky-cta .btn-gold::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,rgba(255,255,255,0) 32%,rgba(255,255,255,.6) 50%,rgba(255,255,255,0) 68%);transform:translateX(-120%);pointer-events:none}
.sticky-cta.in .btn-gold::after{animation:btnSheen 1.5s var(--ease) .55s 1 both}
@keyframes btnSheen{to{transform:translateX(120%)}}
.sticky-call{opacity:0;transform:translate3d(10px,0,0);transition:opacity .4s var(--ease),transform .6s var(--ease)}
.sticky-cta.in .sticky-call{opacity:1;transform:none;transition:opacity .8s var(--ease) .2s,transform 1s var(--ease) .2s}

/* ================= desktop nav: hides on scroll down, returns on scroll up ================= */
@media (min-width:1024px){
.nav-wrap{transition:transform .7s var(--ease)}
.nav-wrap.nav-hidden{transform:translate3d(0,calc(-100% - 60px),0)}
}

/* ================= reviews: free drag with mouse, native swipe on touch ================= */
.rev-track{overscroll-behavior-x:contain;-webkit-tap-highlight-color:transparent}
.rev-track img,.rev-track svg{-webkit-user-drag:none}
@media (hover:hover) and (pointer:fine){.rev-track{cursor:grab}}
.rev-track.is-drag,.rev-track.is-glide{scroll-snap-type:none}
.rev-track.is-drag{cursor:grabbing;-webkit-user-select:none;user-select:none}

/* ================= misc ================= */
.arrow[disabled]{opacity:.35;cursor:default;transform:none}
.arrow[disabled]:hover{background:rgba(255,255,255,.6);transform:none}

@media (prefers-reduced-motion:reduce){.fg *,.fg *::before,.fg *::after{animation:none!important;transition:none!important}html{scroll-behavior:auto}.reveal,.stagger>*{opacity:1!important;transform:none!important;filter:none!important}.svc-media .svc-frame{clip-path:none!important}.svc-media .svc-frame img{transform:none!important}.sticky-cta.in{transform:none}.menu-link,.menu-foot,.menu-bar{opacity:1;transform:none}.reveal .eyebrow::before,.reveal .eyebrow.both::after{transform:none}}

