@font-face{font-family:"Inter";font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/inter-400.woff) format("woff")}@font-face{font-family:"Inter";font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/inter-500.woff) format("woff")}@font-face{font-family:"Inter Display";font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/inter-display-500.woff) format("woff")}@font-face{font-family:"Pagella";font-weight:400;font-style:italic;font-display:swap;src:url(../fonts/pagella-italic.woff) format("woff")}@font-face{font-family:"Inter Fallback";src:local("Arial"),local("Helvetica");size-adjust:107.4%;ascent-override:90.2%;descent-override:22.5%;line-gap-override:0%}:root{--navy-950:#070f1e;--navy-900:#0b1b33;--navy-800:#12294a;--navy-700:#1b3a66;--navy-600:#2a4f82;--blue-300:#9fb4d0;--blue-100:#dce5f0;--blue-50:#eef2f8;--paper:#f7f5f0;--paper-2:#efebe2;--white:#ffffff;--champagne-200:#eadfc8;--champagne-400:#d4c29a;--gold-500:#b89b5e;--gold-700:#7a6330;--gray-100:#eef0f3;--ink:#0b1b33;--ink-soft:#3f4e66;--ink-mute:#5a667a;--line:rgba(11,27,51,0.12);--line-strong:rgba(11,27,51,0.22);--ok:#1e6b4a;--err:#a32b2b;--font-sans:"Inter","Inter Fallback",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-display:"Inter Display","Inter","Inter Fallback",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--font-serif:"Pagella","Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;--fs-xs:0.8125rem;--fs-sm:0.9375rem;--fs-base:1.0625rem;--fs-md:1.1875rem;--fs-lg:clamp(1.3rem,1.15rem + 0.6vw,1.6rem);--fs-xl:clamp(1.75rem,1.3rem + 1.8vw,2.5rem);--fs-2xl:clamp(2.1rem,1.4rem + 3vw,3.75rem);--fs-hero:clamp(2.5rem,1.35rem + 5.2vw,5.5rem);--sp-1:0.25rem;--sp-2:0.5rem;--sp-3:0.75rem;--sp-4:1rem;--sp-5:1.5rem;--sp-6:2rem;--sp-7:3rem;--sp-8:4rem;--sp-9:6rem;--section:clamp(4rem,3rem + 5vw,8rem);--gutter:clamp(1.25rem,0.5rem + 3.5vw,2.5rem);--container:1240px;--header-h:68px;--r-sm:10px;--r-md:16px;--r-lg:24px;--r-xl:32px;--r-pill:999px;--shadow-1:0 1px 2px rgba(11,27,51,0.06),0 10px 24px -14px rgba(11,27,51,0.2);--shadow-2:0 2px 4px rgba(11,27,51,0.05),0 28px 50px -28px rgba(11,27,51,0.32);--shadow-3:0 4px 8px rgba(11,27,51,0.06),0 44px 80px -36px rgba(11,27,51,0.45);--ease-out:cubic-bezier(0.22,1,0.36,1);--ease-io:cubic-bezier(0.65,0,0.35,1);--dur-1:0.18s;--dur-2:0.35s;--dur-3:0.8s}@media (min-width:900px){:root{--header-h:76px}}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 1rem)}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{margin:0;font-family:var(--font-sans);font-size:var(--fs-base);line-height:1.6;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:clip}img,svg,video{display:block;max-width:100%;height:auto}h1,h2,h3,h4{margin:0;font-family:var(--font-display);font-weight:500;letter-spacing:-0.03em;line-height:1.08;text-wrap:balance}h1{font-size:var(--fs-hero);letter-spacing:-0.04em;line-height:1.02}h2{font-size:var(--fs-2xl)}h3{font-size:var(--fs-lg);letter-spacing:-0.02em;line-height:1.2}h4{font-size:var(--fs-md);letter-spacing:-0.01em}p{margin:0}ul,ol{margin:0;padding:0}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:0.2em}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}mark.todo{background:#ffe9a8;color:#5c4400;padding:0 0.25em;border-radius:4px;font-weight:500}:target{scroll-margin-top:calc(var(--header-h) + 1rem)}.accent{font-family:var(--font-serif);font-style:italic;font-weight:400;letter-spacing:-0.01em;color:var(--gold-700)}.on-dark .accent,.dark .accent{color:var(--champagne-400)}:focus-visible{outline:2px solid var(--navy-600);outline-offset:3px;border-radius:6px}.dark :focus-visible,.on-dark :focus-visible{outline-color:var(--champagne-400)}.sr-only{position:absolute !important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:fixed;left:1rem;top:-4rem;z-index:200;background:var(--navy-900);color:#fff;padding:0.75rem 1.1rem;border-radius:var(--r-pill);text-decoration:none;transition:top var(--dur-1)}.skip-link:focus{top:1rem}.container{width:min(100% - 2 * var(--gutter),var(--container));margin-inline:auto}.container--narrow{width:min(100% - 2 * var(--gutter),760px);margin-inline:auto}.section{padding-block:var(--section)}.section--tight{padding-block:calc(var(--section) * 0.6)}.section--alt{background:var(--paper-2)}.section--white{background:var(--white)}.dark,.on-dark{color:var(--paper);--line:rgba(255,255,255,0.14);--ink-soft:#c3cee0;--ink-mute:#9fb0c9}.eyebrow{display:inline-flex;align-items:center;gap:0.75rem;font-size:var(--fs-xs);font-weight:500;letter-spacing:0.14em;text-transform:uppercase;color:var(--gold-700)}.eyebrow::before{content:"";width:1.75rem;height:1px;background:currentColor;opacity:0.7}.on-dark .eyebrow,.dark .eyebrow{color:var(--champagne-400)}.lead{font-size:var(--fs-md);line-height:1.6;color:var(--ink-soft);max-width:60ch}.muted{color:var(--ink-mute)}.section-head{display:grid;gap:var(--sp-4);max-width:46rem;margin-bottom:clamp(2rem,4vw,3.5rem)}.section-head--center{margin-inline:auto;text-align:center;justify-items:center}.section-head--split{max-width:none;grid-template-columns:1fr;align-items:end}@media (min-width:900px){.section-head--split{grid-template-columns:minmax(0,1fr) auto}}.icon{width:1.25em;height:1.25em;flex:none;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.icon--fill{fill:currentColor;stroke:none}.btn{--btn-bg:var(--navy-900);--btn-fg:var(--paper);--btn-bd:transparent;display:inline-flex;align-items:center;justify-content:center;gap:0.6rem;min-height:3.25rem;padding:0 1.6rem;border-radius:var(--r-pill);background:var(--btn-bg);color:var(--btn-fg);border:1px solid var(--btn-bd);font-size:var(--fs-sm);font-weight:500;letter-spacing:-0.005em;line-height:1;text-decoration:none;white-space:nowrap;transition:transform var(--dur-2) var(--ease-out),background-color var(--dur-2),border-color var(--dur-2),color var(--dur-2),box-shadow var(--dur-2);box-shadow:0 1px 0 rgba(255,255,255,0.12) inset,0 10px 24px -12px rgba(11,27,51,0.5)}@media (max-width:400px){.btn{white-space:normal;text-align:center;line-height:1.25;max-width:100%;padding-block:0.7rem}}.btn .icon{width:1.1em;height:1.1em;transition:transform var(--dur-2) var(--ease-out)}.btn:hover{--btn-bg:var(--navy-700);transform:translateY(-1px)}.btn:hover .icon--arrow{transform:translateX(3px)}.btn:active{transform:translateY(0)}.btn--accent{--btn-bg:var(--champagne-200);--btn-fg:var(--navy-900);box-shadow:0 1px 0 rgba(255,255,255,0.5) inset,0 12px 28px -14px rgba(0,0,0,0.55)}.btn--accent:hover{--btn-bg:#f3ead7}.btn--outline{--btn-bg:transparent;--btn-fg:var(--ink);--btn-bd:var(--line-strong);box-shadow:none}.btn--outline:hover{--btn-bg:var(--navy-900);--btn-fg:var(--paper);--btn-bd:var(--navy-900)}.btn--outline-light{--btn-bg:rgba(255,255,255,0.04);--btn-fg:#fff;--btn-bd:rgba(255,255,255,0.32);box-shadow:none}.btn--outline-light:hover{--btn-bg:rgba(255,255,255,0.12);--btn-bd:rgba(255,255,255,0.6)}.btn--sm{min-height:2.75rem;padding:0 1.2rem}.btn--block{width:100%}.btn[disabled],.btn[aria-disabled="true"]{opacity:0.55;pointer-events:none}.link-arrow{display:inline-flex;align-items:center;gap:0.5rem;font-weight:500;font-size:var(--fs-sm);text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:2px}.link-arrow .icon{width:1em;height:1em;transition:transform var(--dur-2) var(--ease-out)}.link-arrow:hover .icon{transform:translateX(3px)}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:0.75rem 1rem}.badge{display:inline-flex;align-items:center;gap:0.4rem;padding:0.3rem 0.75rem;border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:500;background:var(--blue-50);color:var(--navy-700);border:1px solid rgba(27,58,102,0.12)}.badge--gold{background:rgba(212,194,154,0.25);color:var(--gold-700);border-color:rgba(184,155,94,0.3)}.on-dark .badge{background:rgba(255,255,255,0.08);color:var(--champagne-200);border-color:rgba(255,255,255,0.16)}@media (scripting:enabled) and (prefers-reduced-motion:no-preference){[data-reveal]{opacity:0;transform:translate3d(0,22px,0);transition:opacity var(--dur-3) var(--ease-out),transform var(--dur-3) var(--ease-out);transition-delay:calc(var(--d,0) * 80ms)}[data-reveal].is-in{opacity:1;transform:none}@keyframes rise{from{opacity:0;transform:translate3d(0,22px,0)}to{opacity:1;transform:none}}[data-rise]{animation:rise 0.9s var(--ease-out) both;animation-delay:calc(var(--i,0) * 90ms + 60ms)}}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.001ms !important;animation-iteration-count:1 !important;transition-duration:0.001ms !important;scroll-behavior:auto !important}}.site-header{position:sticky;top:0;z-index:60;background:rgba(247,245,240,0.86);-webkit-backdrop-filter:saturate(1.6) blur(18px);backdrop-filter:saturate(1.6) blur(18px);border-bottom:1px solid transparent;transition:border-color var(--dur-2),background-color var(--dur-2)}.site-header[data-scrolled]{border-color:var(--line);background:rgba(247,245,240,0.94)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;height:var(--header-h)}.logo{display:inline-flex;align-items:center;gap:0.7rem;text-decoration:none;color:var(--ink);flex:none}.logo__img{height:44px;width:auto}@media (min-width:900px){.logo__img{height:54px}}.site-footer .logo__img{height:64px}.logo__mark{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:12px;background:var(--navy-900);color:var(--champagne-200);font:500 0.95rem var(--font-display);letter-spacing:0.02em;box-shadow:inset 0 0 0 1px rgba(212,194,154,0.35)}.logo__text{display:grid;line-height:1;font-family:var(--font-display);font-weight:500;letter-spacing:0.06em;font-size:1rem}.logo__text small{margin-top:0.3rem;font-family:var(--font-sans);font-size:0.625rem;font-weight:500;letter-spacing:0.28em;color:var(--gold-700)}.on-dark .logo{color:var(--paper)}.on-dark .logo__text small{color:var(--champagne-400)}.nav{display:none}.nav__list{display:flex;align-items:center;gap:0.15rem;list-style:none}.nav__link{position:relative;display:inline-flex;align-items:center;gap:0.35rem;padding:0.55rem 0.8rem;border-radius:var(--r-pill);font-size:var(--fs-sm);color:var(--ink-soft);text-decoration:none;background:none;border:0;white-space:nowrap;transition:color var(--dur-1),background-color var(--dur-1)}.nav__link:hover,.nav__link[aria-expanded="true"]{color:var(--ink);background:rgba(11,27,51,0.05)}.nav__link[aria-current="page"],.nav__link[data-active]{color:var(--ink)}.nav__link[aria-current="page"]::after,.nav__link[data-active]::after{content:"";position:absolute;left:0.8rem;right:0.8rem;bottom:0.2rem;height:1px;background:var(--gold-500)}.nav__link .icon{width:0.9em;height:0.9em;transition:transform var(--dur-2) var(--ease-out)}.nav__link[aria-expanded="true"] .icon{transform:rotate(180deg)}.nav__item{position:relative}.mega{position:absolute;top:calc(100% + 0.6rem);left:50%;width:min(46rem,90vw);transform:translate(-50%,8px);opacity:0;visibility:hidden;transition:opacity var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out),visibility 0s linear var(--dur-2);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-3);padding:0.75rem}.nav__item:hover>.mega,.nav__item:focus-within>.mega,.nav__item[data-open]>.mega{opacity:1;visibility:visible;transform:translate(-50%,0);transition-delay:0s}.mega__grid{display:grid;grid-template-columns:1fr 1fr;gap:0.25rem;list-style:none}.mega__link{display:grid;gap:0.15rem;padding:0.8rem 1rem;border-radius:var(--r-md);text-decoration:none;transition:background-color var(--dur-1)}.mega__link:hover{background:rgba(11,27,51,0.05)}.mega__link strong{font-family:var(--font-display);font-weight:500;font-size:1rem;letter-spacing:-0.01em}.mega__link span{font-size:var(--fs-xs);color:var(--ink-mute);line-height:1.4}.mega__link--all{background:var(--navy-900);color:var(--paper)}.mega__link--all:hover{background:var(--navy-700)}.mega__link--all span{color:var(--blue-300)}.header-actions{display:flex;align-items:center;gap:0.6rem}.header-phone{display:none;align-items:center;gap:0.5rem;font-size:var(--fs-sm);font-weight:500;text-decoration:none;padding:0.5rem 0.7rem;border-radius:var(--r-pill)}.header-phone:hover{background:rgba(11,27,51,0.05)}.header-cta{display:none}.menu-toggle{display:inline-grid;place-items:center;width:2.9rem;height:2.9rem;border-radius:50%;border:1px solid var(--line-strong);background:transparent;position:relative}.menu-toggle span{position:absolute;left:50%;width:1.1rem;height:1.5px;background:var(--ink);border-radius:2px;transform:translateX(-50%);transition:transform var(--dur-2) var(--ease-out),opacity var(--dur-1)}.menu-toggle span:nth-child(1){top:calc(50% - 4px)}.menu-toggle span:nth-child(2){top:calc(50% + 3px)}.site-header[data-menu-open] .menu-toggle span:nth-child(1){transform:translateX(-50%) translateY(3.5px) rotate(45deg)}.site-header[data-menu-open] .menu-toggle span:nth-child(2){transform:translateX(-50%) translateY(-3.5px) rotate(-45deg)}@media (min-width:1180px){.nav{display:block}.menu-toggle{display:none}.header-cta{display:inline-flex}}@media (min-width:1400px){.header-phone{display:inline-flex}}.mobile-nav{position:fixed;inset:var(--header-h) 0 0 0;z-index:55;background:var(--paper);overflow-y:auto;padding:1rem var(--gutter) calc(6rem + env(safe-area-inset-bottom));transform:translateY(-8px);opacity:0;visibility:hidden;transition:opacity var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out),visibility 0s linear var(--dur-2)}.site-header[data-menu-open] + .mobile-nav{opacity:1;visibility:visible;transform:none;transition-delay:0s}.mobile-nav__list{list-style:none;display:grid}.mobile-nav__list>li{border-bottom:1px solid var(--line)}.mobile-nav a,.mobile-nav summary{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 0.25rem;font-family:var(--font-display);font-size:1.5rem;letter-spacing:-0.02em;text-decoration:none;cursor:pointer;list-style:none}.mobile-nav summary::-webkit-details-marker{display:none}.mobile-nav details[open] summary .icon{transform:rotate(180deg)}.mobile-nav summary .icon{transition:transform var(--dur-2) var(--ease-out)}.mobile-nav__sub{list-style:none;padding:0 0 0.75rem 0.5rem;display:grid}.mobile-nav__sub a{font-family:var(--font-sans);font-size:1.0625rem;letter-spacing:0;padding:0.7rem 0.25rem;color:var(--ink-soft)}.mobile-nav__foot{display:grid;gap:0.75rem;margin-top:1.75rem}.mobile-nav__meta{margin-top:1.5rem;display:grid;gap:0.35rem;font-size:var(--fs-sm);color:var(--ink-mute)}html[data-lock]{overflow:hidden}@media (min-width:1180px){.mobile-nav{display:none}}.mobile-bar{position:fixed;left:0;right:0;bottom:0;z-index:50;display:grid;grid-template-columns:1fr 1.25fr;gap:0.6rem;padding:0.6rem var(--gutter) calc(0.6rem + env(safe-area-inset-bottom));background:rgba(247,245,240,0.9);-webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);border-top:1px solid var(--line);transition:transform var(--dur-2) var(--ease-out)}.mobile-bar .btn{min-height:3rem;min-width:0;padding-inline:0.9rem;white-space:nowrap}.mobile-bar>*{min-width:0}@media (max-width:359px){.mobile-bar .btn{font-size:0.8125rem;padding-inline:0.7rem;gap:0.4rem}}@media (min-width:900px){.mobile-bar{display:none}}@media (max-width:899px){body:not([data-no-bar]){padding-bottom:calc(4.5rem + env(safe-area-inset-bottom))}body[data-no-bar] .mobile-bar{display:none}}.site-footer{background:var(--navy-950);color:#c3cee0;padding-top:clamp(3.5rem,7vw,6rem);position:relative;overflow:hidden}.site-footer::before{content:"";position:absolute;inset:0 0 auto 0;height:1px;background:linear-gradient(90deg,transparent,rgba(212,194,154,0.5),transparent)}.footer-grid{display:grid;gap:2.5rem;grid-template-columns:1fr}@media (min-width:640px){.footer-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1040px){.footer-grid{grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:3rem}}.footer-brand p{margin-top:1rem;max-width:30ch;font-size:var(--fs-sm);color:#9fb0c9}.footer-title{font-family:var(--font-sans);font-size:var(--fs-xs);font-weight:500;letter-spacing:0.14em;text-transform:uppercase;color:var(--champagne-400);margin-bottom:1rem}.footer-list{list-style:none;display:grid;gap:0.55rem;font-size:var(--fs-sm)}.footer-list a{text-decoration:none;color:#c3cee0;transition:color var(--dur-1)}.footer-list a:hover{color:#fff;text-decoration:underline}.footer-contact{display:grid;gap:0.7rem;font-size:var(--fs-sm);font-style:normal}.footer-contact a{display:inline-flex;align-items:center;gap:0.6rem;text-decoration:none}.footer-contact a:hover{color:#fff}.footer-contact .icon{color:var(--champagne-400);width:1.1em;height:1.1em}.footer-hours{margin-top:1rem;display:grid;gap:0.25rem;font-size:var(--fs-sm)}.footer-hours div{display:flex;justify-content:space-between;gap:1rem;max-width:18rem}.footer-hours dt{color:#9fb0c9}.footer-hours dd{margin:0}.footer-social{display:flex;gap:0.6rem;margin-top:1.25rem}.footer-social a{display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:50%;border:1px solid rgba(255,255,255,0.18);transition:background-color var(--dur-2),border-color var(--dur-2)}.footer-social a:hover{background:rgba(255,255,255,0.1);border-color:rgba(255,255,255,0.4)}.footer-bottom{margin-top:clamp(2.5rem,5vw,4rem);padding-block:1.5rem;border-top:1px solid rgba(255,255,255,0.1);display:flex;flex-wrap:wrap;justify-content:space-between;gap:0.75rem 2rem;font-size:var(--fs-xs);color:#8396b3}.footer-bottom ul{display:flex;flex-wrap:wrap;gap:0.5rem 1.5rem;list-style:none}.footer-bottom a{text-decoration:none}.footer-bottom a:hover{color:#fff;text-decoration:underline}.footer-cta{display:grid;gap:0.75rem;margin-top:1.5rem;max-width:16rem}.hero{position:relative;isolation:isolate;background:var(--navy-900);color:var(--paper);overflow:clip}.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(60rem 36rem at 88% 8%,rgba(42,79,130,0.6),transparent 62%),radial-gradient(40rem 30rem at -5% 100%,rgba(184,155,94,0.16),transparent 62%)}.hero__grid{display:grid;gap:2.75rem;padding-block:clamp(2.5rem,6vw,5rem) clamp(6rem,11vw,9rem);align-items:center}@media (min-width:1000px){.hero__grid{grid-template-columns:minmax(0,1.12fr) minmax(0,0.88fr);gap:4rem}}.hero__pill{display:inline-flex;align-items:center;gap:0.6rem;padding:0.4rem 0.9rem 0.4rem 0.5rem;border-radius:var(--r-pill);background:rgba(255,255,255,0.07);border:1px solid rgba(255,255,255,0.14);font-size:var(--fs-xs);color:var(--champagne-200)}.hero__pill i{width:1.5rem;height:1.5rem;border-radius:50%;display:grid;place-items:center;background:rgba(212,194,154,0.2);color:var(--champagne-400)}.hero__pill .icon{width:0.85rem;height:0.85rem}.hero h1{margin-top:1.5rem;max-width:14ch}.hero__lead{margin-top:1.5rem;max-width:52ch;font-size:var(--fs-md);color:#c3cee0}.hero__actions{margin-top:2.25rem}.hero__note{margin-top:1.5rem;display:flex;align-items:center;gap:0.6rem;font-size:var(--fs-sm);color:#9fb0c9}.hero__note .icon{color:var(--champagne-400);width:1.05em;height:1.05em}.hero--photo::before{display:none}.hero__bg{position:absolute;inset:0;z-index:-2}.hero__bg picture,.hero__bg img{display:block;width:100%;height:100%}.hero__bg img{object-fit:cover;object-position:70% 50%}.hero__shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(8,20,40,0.1) 0%,rgba(8,20,40,0.25) 20%,rgba(8,20,40,0.9) 46%,rgba(8,20,40,0.95) 100%)}.hero--photo .hero__grid{padding-top:clamp(11rem,54vw,17rem)}.hero--photo .hero__grid{grid-template-columns:minmax(0,1fr);min-height:min(88vh,48rem);align-content:center}@media (min-width:900px){.hero--photo .hero__grid{padding-top:clamp(2.5rem,6vw,5rem)}}.hero--photo .hero__grid>div{max-width:40rem}.hero--photo h1{max-width:15ch;text-shadow:0 2px 24px rgba(8,20,40,0.45)}.hero--photo .hero__note{margin-top:1rem}.hero__proof{list-style:none;margin-top:1.5rem;display:flex;flex-wrap:wrap;gap:0.6rem 1.25rem;font-size:var(--fs-sm);color:#dce5f0}.hero__proof li{display:inline-flex;align-items:center;gap:0.5rem}.hero__proof .stars{display:inline-flex;gap:2px;color:var(--champagne-400)}.hero__proof .stars .icon{width:0.9rem;height:0.9rem}@media (min-width:900px){.hero__shade{background:linear-gradient(90deg,rgba(8,20,40,0.9) 0%,rgba(8,20,40,0.8) 38%,rgba(8,20,40,0.35) 58%,rgba(8,20,40,0.08) 80%,rgba(8,20,40,0) 100%)}}.hero-art{position:relative;aspect-ratio:4 / 4.4;border-radius:var(--r-xl);overflow:hidden;isolation:isolate;background:linear-gradient(165deg,#1d3d6b 0%,#0f2548 46%,#081428 100%);box-shadow:0 50px 90px -40px rgba(0,0,0,0.7),inset 0 0 0 1px rgba(255,255,255,0.09);max-height:40rem;width:100%}@media (min-width:1000px){.hero-art{aspect-ratio:4 / 5;max-height:none}}.hero-art img.hero-art__photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.hero-art__window{position:absolute;top:9%;left:15%;width:50%;height:40%;border-radius:22px 22px 4px 4px;background:linear-gradient(180deg,rgba(235,242,250,0.95),rgba(159,180,208,0.45));box-shadow:0 0 140px 20px rgba(220,229,240,0.35)}.hero-art__window::before,.hero-art__window::after{content:"";position:absolute;background:rgba(11,27,51,0.42)}.hero-art__window::before{left:50%;top:0;bottom:0;width:3px;transform:translateX(-50%)}.hero-art__window::after{top:46%;left:0;right:0;height:3px}.hero-art__floor{position:absolute;left:-60%;right:-60%;bottom:-6%;height:64%;transform-origin:50% 100%;transform:perspective(620px) rotateX(66deg);background:linear-gradient(to top,rgba(234,223,200,0.34),rgba(159,180,208,0.14) 55%,transparent 100%),repeating-linear-gradient(90deg,rgba(255,255,255,0.2) 0 1px,transparent 1px 84px),repeating-linear-gradient(0deg,rgba(255,255,255,0.2) 0 1px,transparent 1px 84px);-webkit-mask-image:linear-gradient(to top,#000 28%,transparent 100%);mask-image:linear-gradient(to top,#000 28%,transparent 100%)}.hero-art__reflect{position:absolute;top:50%;left:15%;width:50%;height:34%;background:linear-gradient(to bottom,rgba(220,229,240,0.34),transparent 90%);filter:blur(10px);transform:skewX(-8deg)}.hero-art__beam{position:absolute;inset:-10% -20%;background:linear-gradient(112deg,transparent 34%,rgba(255,255,255,0.17) 46%,rgba(234,223,200,0.3) 52%,transparent 64%);mix-blend-mode:screen;will-change:transform}@media (prefers-reduced-motion:no-preference){.hero-art__beam{animation:beam 11s var(--ease-io) infinite alternate}@keyframes beam{from{transform:translate3d(-22%,0,0)}to{transform:translate3d(22%,0,0)}}}.hero-art__glass{position:absolute;inset:0;background:radial-gradient(60% 40% at 20% 0%,rgba(255,255,255,0.16),transparent 70%);pointer-events:none}.chip{position:absolute;display:flex;align-items:center;gap:0.8rem;padding:0.85rem 1.1rem;border-radius:20px;color:#fff;background:rgba(11,27,51,0.74);-webkit-backdrop-filter:blur(16px) saturate(1.5);backdrop-filter:blur(16px) saturate(1.5);border:1px solid rgba(255,255,255,0.2);box-shadow:0 24px 40px -22px rgba(0,0,0,0.6)}.chip__num{font:500 2.6rem/0.9 var(--font-display);letter-spacing:-0.05em}.chip__txt{font-size:var(--fs-xs);line-height:1.3;color:#dce5f0}.chip--a{left:1rem;bottom:1rem}.chip--b{right:1rem;top:50%;flex-direction:column;align-items:flex-start;gap:0.25rem}.chip--b .stars{display:flex;gap:2px;color:var(--champagne-400)}.chip--b .stars .icon{width:0.95rem;height:0.95rem}@media (min-width:640px){.chip--a{left:1.5rem;bottom:1.5rem}.chip--b{right:1.5rem}}.trust{position:relative;z-index:3;margin-top:calc(-1 * clamp(3rem,6vw,4.5rem))}.trust__grid{display:grid;grid-template-columns:repeat(2,1fr);background:var(--white);border-radius:var(--r-lg);border:1px solid rgba(11,27,51,0.07);box-shadow:var(--shadow-2);overflow:hidden;list-style:none}.trust__item{padding:1.4rem 1.25rem 1.5rem;display:grid;gap:0.35rem;align-content:start;border-left:1px solid var(--line);border-top:1px solid var(--line)}.trust__item:nth-child(-n + 2){border-top:0}.trust__item:nth-child(odd){border-left:0}.trust__value{display:flex;align-items:baseline;gap:0.35rem;font:500 clamp(2.1rem,1.6rem + 2.2vw,3.1rem) / 1 var(--font-display);letter-spacing:-0.045em}.trust__value small{font:italic 400 1.1rem var(--font-serif);color:var(--gold-700);letter-spacing:0}.trust__value .icon{width:0.6em;height:0.6em;color:var(--gold-500);align-self:center}.trust__label{font-size:var(--fs-sm);color:var(--ink-soft);line-height:1.35}.trust__word{font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:clamp(1.75rem,1.4rem + 1.5vw,2.4rem);letter-spacing:-0.01em;line-height:1.1}@media (min-width:900px){.trust__grid{grid-template-columns:repeat(4,1fr)}.trust__item{border-top:0;padding:1.75rem 1.75rem 1.9rem}.trust__item:nth-child(odd){border-left:1px solid var(--line)}.trust__item:first-child{border-left:0}}.panel-dark{position:relative;isolation:isolate;overflow:hidden;background:var(--navy-900);color:var(--paper);border-radius:var(--r-xl);padding:clamp(1.75rem,5vw,4.5rem)}.panel-dark::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(40rem 26rem at 100% 0%,rgba(42,79,130,0.55),transparent 65%),radial-gradient(30rem 20rem at 0% 100%,rgba(184,155,94,0.14),transparent 65%)}.syndic__grid{display:grid;gap:clamp(2rem,5vw,4rem)}@media (min-width:1000px){.syndic__grid{grid-template-columns:1fr 1fr;align-items:start}}.syndic__head h2{margin-top:1rem;font-size:var(--fs-2xl)}.syndic__head .lead{margin-top:1.25rem;color:#c3cee0}.syndic__head .actions{margin-top:2rem}.steps{list-style:none;counter-reset:step;margin-top:2.25rem}.steps li{counter-increment:step;position:relative;padding:1.1rem 0 1.1rem 3.6rem;border-top:1px solid rgba(255,255,255,0.13)}.steps li:last-child{border-bottom:1px solid rgba(255,255,255,0.13)}.steps li::before{content:counter(step);position:absolute;left:0;top:1.05rem;width:2.6rem;height:2.6rem;border-radius:50%;display:grid;place-items:center;font:italic 400 1.2rem var(--font-serif);color:var(--champagne-400);border:1px solid rgba(212,194,154,0.45)}.steps strong{display:block;font:500 1.1rem var(--font-display);letter-spacing:-0.01em}.steps span{display:block;margin-top:0.2rem;color:#b7c4d9;font-size:var(--fs-sm)}.points{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,14rem),1fr));gap:0.75rem;list-style:none}.point{padding:1.1rem 1.15rem 1.2rem;border-radius:var(--r-md);background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.1);transition:background-color var(--dur-2),transform var(--dur-2) var(--ease-out),border-color var(--dur-2)}.point:hover{background:rgba(255,255,255,0.09);border-color:rgba(212,194,154,0.35);transform:translateY(-2px)}.point .icon{color:var(--champagne-400);margin-bottom:0.75rem}.point strong{display:block;font:500 1.02rem var(--font-display);letter-spacing:-0.01em}.point span{display:block;margin-top:0.3rem;font-size:var(--fs-sm);color:#b7c4d9;line-height:1.45}.point--wide{grid-column:1 / -1}.service-feature{display:grid;border-radius:var(--r-xl);overflow:hidden;background:linear-gradient(135deg,var(--champagne-200),#f3ecdc 55%,var(--white));border:1px solid rgba(184,155,94,0.3);box-shadow:var(--shadow-1);text-decoration:none;transition:box-shadow var(--dur-3) var(--ease-out),transform var(--dur-3) var(--ease-out)}.service-feature:hover{box-shadow:var(--shadow-2);transform:translateY(-3px)}@media (min-width:900px){.service-feature{grid-template-columns:1.05fr 1fr}}.service-feature__media{position:relative;min-height:15rem;overflow:hidden;background:var(--blue-100)}.service-feature__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-out)}.service-feature:hover .service-feature__media img{transform:scale(1.035)}.service-feature__body{padding:clamp(1.5rem,4vw,3rem);display:grid;gap:1rem;align-content:center}.service-feature__body h3{font-size:var(--fs-xl)}.service-feature__body p{color:var(--ink-soft)}.chips{display:flex;flex-wrap:wrap;gap:0.5rem;list-style:none}.chip-s{padding:0.35rem 0.8rem;border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:500;background:rgba(255,255,255,0.7);border:1px solid rgba(184,155,94,0.3);color:var(--navy-800)}.services-grid{display:grid;gap:1.1rem;grid-template-columns:1fr;margin-top:1.1rem;list-style:none}@media (min-width:640px){.services-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1100px){.services-grid{grid-template-columns:repeat(4,1fr)}}.service-card{display:flex;flex-direction:column;height:100%;border-radius:var(--r-lg);overflow:hidden;background:var(--white);border:1px solid var(--line);text-decoration:none;transition:transform var(--dur-3) var(--ease-out),box-shadow var(--dur-3) var(--ease-out),border-color var(--dur-2)}.service-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-2);border-color:var(--line-strong)}.service-card__media{position:relative;aspect-ratio:16 / 10;overflow:hidden;background:var(--blue-100)}.service-card__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-out)}.service-card:hover .service-card__media img{transform:scale(1.045)}.service-card__body{display:flex;flex-direction:column;flex:1;gap:0.6rem;padding:1.15rem 1.3rem 1.35rem}.service-card__tag{font-size:0.6875rem;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;color:var(--gold-700)}.service-card h3{font-size:1.25rem}.service-card p{color:var(--ink-soft);font-size:var(--fs-sm);line-height:1.5}.service-card__more{margin-top:auto;padding-top:0.5rem;display:inline-flex;align-items:center;gap:0.4rem;font-size:var(--fs-sm);font-weight:500}.service-card__more .icon{width:1em;height:1em;transition:transform var(--dur-2) var(--ease-out)}.service-card:hover .service-card__more .icon{transform:translateX(4px)}.about{display:grid;gap:clamp(2rem,6vw,5rem);align-items:center}@media (min-width:1000px){.about{grid-template-columns:1fr 1fr}.about--flip .about__media{order:2}}.about__text{display:grid;gap:1.25rem}.about__text h2{font-size:var(--fs-2xl);margin-top:0.25rem}.about__text p{color:var(--ink-soft)}.pillars{display:grid;gap:0.9rem;margin-top:0.75rem;list-style:none}.pillars li{display:grid;grid-template-columns:auto 1fr;gap:0.9rem;padding-top:0.9rem;border-top:1px solid var(--line)}.pillars .icon{color:var(--gold-700);margin-top:0.15rem}.pillars strong{display:block;font:500 1.05rem var(--font-display);letter-spacing:-0.01em}.pillars span{color:var(--ink-soft);font-size:var(--fs-sm)}.about__visual{position:relative;aspect-ratio:4 / 4.6;border-radius:var(--r-xl);overflow:hidden;background:radial-gradient(70% 55% at 30% 15%,#fff,transparent 70%),linear-gradient(160deg,var(--champagne-200),#d9c9a4);box-shadow:var(--shadow-2);display:grid;place-items:center;text-align:center;isolation:isolate}.about__visual::before{content:"";position:absolute;inset:1.1rem;border-radius:calc(var(--r-xl) - 14px);border:1px solid rgba(11,27,51,0.18)}.about__visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.about__num{font:italic 400 clamp(7rem,5rem + 10vw,13rem) / 0.85 var(--font-serif);letter-spacing:-0.04em;color:var(--navy-900)}.about__cap{margin-top:1rem;font:500 1.1rem var(--font-display);letter-spacing:-0.01em;color:var(--navy-800)}.about__cap small{display:block;margin-top:0.4rem;font:500 0.6875rem var(--font-sans);letter-spacing:0.2em;text-transform:uppercase;color:var(--navy-700)}.about__badge{position:absolute;left:1.5rem;bottom:1.5rem;z-index:2;padding:0.7rem 1rem;border-radius:16px;background:rgba(247,245,240,0.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:var(--fs-xs);font-weight:500;box-shadow:var(--shadow-1)}.ph-flag{position:absolute;right:0.9rem;top:0.9rem;z-index:4;font-size:0.6875rem;letter-spacing:0.04em;padding:0.25rem 0.6rem;border-radius:var(--r-pill);background:rgba(11,27,51,0.7);color:#fff}.ba{--pos:50%;position:relative;width:100%;margin-inline:auto;aspect-ratio:var(--r,1.6);max-width:calc(78vh * var(--r,1.6));border-radius:var(--r-lg);overflow:hidden;background:var(--navy-900);box-shadow:var(--shadow-3);user-select:none;-webkit-user-select:none;touch-action:pan-y;isolation:isolate}.ba__layer{position:absolute;inset:0}.ba__layer img{width:100%;height:100%;object-fit:cover;-webkit-user-drag:none}.ba__after{clip-path:inset(0 0 0 var(--pos))}.ba__line{position:absolute;top:0;bottom:0;left:var(--pos);width:2px;margin-left:-1px;background:rgba(255,255,255,0.95);box-shadow:0 0 0 1px rgba(11,27,51,0.12),0 0 24px rgba(0,0,0,0.25);pointer-events:none}.ba__knob{position:absolute;top:50%;left:var(--pos);width:3.4rem;height:3.4rem;margin:-1.7rem 0 0 -1.7rem;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,0.96);color:var(--navy-900);box-shadow:0 10px 28px -8px rgba(0,0,0,0.5);pointer-events:none;transition:transform var(--dur-2) var(--ease-out),box-shadow var(--dur-2)}.ba__knob .icon{width:1.6rem;height:1.6rem;stroke-width:1.8}.ba:hover .ba__knob,.ba[data-drag] .ba__knob{transform:scale(1.06)}.ba__range{touch-action:pan-y;position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;z-index:3}.ba__range:focus-visible ~ .ba__knob{box-shadow:0 0 0 4px rgba(184,155,94,0.75),0 10px 28px -8px rgba(0,0,0,0.5)}.ba__tag{position:absolute;top:1rem;z-index:2;padding:0.35rem 0.85rem;border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:500;letter-spacing:0.04em;background:rgba(11,27,51,0.62);color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;transition:opacity var(--dur-2)}.ba__tag--before{left:1rem}.ba__tag--after{right:1rem;background:rgba(247,245,240,0.85);color:var(--navy-900)}.ba__flag{position:absolute;left:50%;bottom:0.9rem;z-index:2;transform:translateX(-50%);padding:0.25rem 0.7rem;border-radius:var(--r-pill);font-size:0.6875rem;letter-spacing:0.04em;background:rgba(11,27,51,0.7);color:#fff;white-space:nowrap;pointer-events:none}.ba[data-placeholder] .ba__before img{filter:grayscale(0.5) brightness(0.74) contrast(0.9) sepia(0.28)}.ba[data-placeholder] .ba__before::after{content:"";position:absolute;inset:0;mix-blend-mode:multiply;opacity:0.85;background:radial-gradient(18% 14% at 18% 28%,rgba(70,58,38,0.5),transparent 70%),radial-gradient(22% 16% at 72% 64%,rgba(60,52,40,0.42),transparent 70%),radial-gradient(12% 10% at 46% 82%,rgba(60,50,30,0.38),transparent 70%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .32 0 0 0 0 .26 0 0 0 0 .16 0 0 0 .75 -.12'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.ba[data-placeholder] .ba__after img { filter: saturate(1.05) brightness(1.04); }
.ba-viewer { display: grid; gap: 1.25rem; }
.ba-thumbs { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: 0.75rem; list-style: none; }
.ba-thumb { display: grid; gap: 0.5rem; width: 100%; padding: 0.4rem 0.4rem 0.7rem; text-align: left; background: transparent; border: 1px solid transparent; border-radius: var(--r-md); transition: background-color var(--dur-2), border-color var(--dur-2); }
.ba-thumb:hover { background: rgba(11, 27, 51, 0.04); }
.ba-thumb[aria-pressed="true"] { background: var(--white); border-color: var(--line-strong); box-shadow: var(--shadow-1); }
.ba-thumb picture { display: contents; }
.ba-thumb img { aspect-ratio: 4 / 3; width: 100%; object-fit: cover; border-radius: 10px; }
.ba-thumb span { font-size: var(--fs-sm); font-weight: 500; line-height: 1.25; padding-inline: 0.2rem; }
.ba-thumb small { display: block; margin-top: 0.1rem; font-weight: 400; font-size: var(--fs-xs); color: var(--ink-mute); }
.ba-caption { display: grid; gap: 0.35rem; }
.ba-caption h3 { font-size: var(--fs-lg); }
.ba-caption p { color: var(--ink-soft); font-size: var(--fs-sm); max-width: 62ch; }
.ba-caption .ba-caption__meta { color: var(--ink); }
.ba-caption .ba-caption__cta { color: var(--ink); font-weight: 500; }
.ba-caption .ba-caption__cta .link-arrow { white-space: nowrap; }
.ba-meta { display: flex; flex-wrap: wrap; gap: 0.5rem; }


.why { display: grid; gap: clamp(2rem, 5vw, 4rem); }
@media (min-width: 1000px) { .why { grid-template-columns: 5fr 7fr; } .why__head { position: sticky; top: calc(var(--header-h) + 2rem); align-self: start; } }
.why__head { display: grid; gap: 1.25rem; align-content: start; }
.why__list { list-style: none; counter-reset: w; }
.why__item { counter-increment: w; display: grid; grid-template-columns: 3.5rem 1fr; gap: 0.5rem 1rem; padding: 1.5rem 0; border-top: 1px solid var(--line); }
.why__item:last-child { border-bottom: 1px solid var(--line); }
.why__item::before { content: counter(w, decimal-leading-zero); font: italic 400 1.5rem var(--font-serif); color: var(--gold-700); line-height: 1.3; }
.why__item h3 { font-size: 1.3rem; }
.why__item p { grid-column: 2; color: var(--ink-soft); font-size: var(--fs-sm); line-height: 1.6; max-width: 52ch; }


.rating { display: flex; align-items: center; gap: 1.1rem; flex-wrap: wrap; }
.rating__score { font: 500 clamp(3rem, 2rem + 4vw, 4.5rem) / 0.9 var(--font-display); letter-spacing: -0.05em; }
.stars { display: inline-flex; gap: 3px; color: var(--gold-500); }
.stars .icon { width: 1.05rem; height: 1.05rem; }
.rating__meta { display: grid; gap: 0.2rem; font-size: var(--fs-sm); color: var(--ink-soft); }
.reviews-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; margin-top: 2.5rem; list-style: none; }
@media (min-width: 720px) { .reviews-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .reviews-grid { grid-template-columns: repeat(3, 1fr); } }
.review { display: flex; flex-direction: column; gap: 1rem; height: 100%; padding: 1.6rem; border-radius: var(--r-lg); background: var(--white); border: 1px solid var(--line); }
.review blockquote { margin: 0; font-family: var(--font-serif); font-style: italic; font-size: 1.2rem; line-height: 1.45; letter-spacing: -0.005em; flex: 1; }
.review footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; font-size: var(--fs-sm); color: var(--ink-mute); }
.review footer strong { color: var(--ink); font-weight: 500; }
.review--todo { border-style: dashed; background: transparent; }


.zone { display: grid; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
@media (min-width: 1000px) { .zone { grid-template-columns: 1fr 1fr; } }
.cities { list-style: none; counter-reset: c; }
.cities li { counter-increment: c; display: flex; align-items: baseline; gap: 1rem; padding: 0.85rem 0; border-top: 1px solid var(--line); font: 500 clamp(1.5rem, 1.1rem + 1.6vw, 2.4rem) / 1.1 var(--font-display); letter-spacing: -0.03em; }
.cities li:last-child { border-bottom: 1px solid var(--line); }
.cities li::before { content: counter(c, decimal-leading-zero); font: italic 400 0.95rem var(--font-serif); letter-spacing: 0; color: var(--gold-700); min-width: 1.8rem; }
.cities li.more { font-size: var(--fs-md); color: var(--ink-soft); font-weight: 400; letter-spacing: 0; }
.cities li.more::before { content: "+"; font-style: normal; }


.faq { display: grid; list-style: none; }
.faq details { border-top: 1px solid var(--line); }
.faq details:last-child { border-bottom: 1px solid var(--line); }
.faq summary { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.35rem 0.25rem; cursor: pointer; list-style: none; font: 500 clamp(1.1rem, 1rem + 0.5vw, 1.35rem) / 1.3 var(--font-display); letter-spacing: -0.015em; transition: color var(--dur-1); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary:hover { color: var(--navy-600); }
.faq summary .icon { width: 1.3rem; height: 1.3rem; color: var(--gold-700); transition: transform var(--dur-2) var(--ease-out); }
.faq details[open] summary .icon { transform: rotate(45deg); }
.faq__answer { padding: 0 0.25rem 1.5rem; max-width: 70ch; color: var(--ink-soft); }
.faq__answer p + p { margin-top: 0.75rem; }
@media (prefers-reduced-motion: no-preference) { .faq details[open] .faq__answer { animation: fade-in 0.45s var(--ease-out); } @keyframes fade-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } } }


.cta-final { position: relative; isolation: isolate; overflow: hidden; border-radius: var(--r-xl); background: var(--navy-900); color: var(--paper); text-align: center; padding: clamp(3rem, 8vw, 6.5rem) var(--gutter); }
.cta-final::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(34rem 20rem at 15% 0%, rgba(42, 79, 130, 0.65), transparent 65%), radial-gradient(30rem 20rem at 90% 100%, rgba(184, 155, 94, 0.2), transparent 65%); }
.cta-final h2 { font-size: var(--fs-hero); letter-spacing: -0.04em; }
.cta-final p { margin: 1.5rem auto 0; max-width: 46ch; font-size: var(--fs-md); color: #c3cee0; }
.cta-final .actions { justify-content: center; margin-top: 2.5rem; }
.cta-final .cta-final__note { margin-top: 1.75rem; font-size: var(--fs-sm); color: #9fb0c9; }


.page-hero { padding-block: clamp(2.5rem, 6vw, 5rem) clamp(2.5rem, 5vw, 4rem); }
.page-hero h1 { font-size: clamp(2.2rem, 1.4rem + 4vw, 4.5rem); max-width: 18ch; margin-top: 1rem; }
.page-hero .lead { margin-top: 1.5rem; }
.page-hero .actions { margin-top: 2rem; }
.crumbs { display: flex; flex-wrap: wrap; gap: 0.4rem; list-style: none; font-size: var(--fs-xs); color: var(--ink-mute); margin-bottom: 1.5rem; }
.crumbs li + li::before { content: "/"; margin-right: 0.4rem; opacity: 0.5; }
.crumbs a { text-decoration: none; }
.crumbs a:hover { text-decoration: underline; }
.on-dark .crumbs { color: #9fb0c9; }


.svc-hero { position: relative; isolation: isolate; background: var(--navy-900); color: var(--paper); overflow: clip; }
.svc-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(48rem 30rem at 92% 0%, rgba(42, 79, 130, 0.6), transparent 62%), radial-gradient(34rem 24rem at -5% 100%, rgba(184, 155, 94, 0.15), transparent 62%); }
.svc-hero__grid { display: grid; gap: 2.5rem; padding-block: clamp(1.75rem, 4vw, 3.5rem) clamp(3rem, 7vw, 5.5rem); align-items: center; }
.svc-hero h1 { font-size: clamp(2rem, 1.15rem + 3.3vw, 3.8rem); margin-top: 1.1rem; max-width: 19ch; text-wrap: balance; }
.svc-hero .lead { margin-top: 1.25rem; color: #c3cee0; max-width: 54ch; }
.svc-hero .actions { margin-top: 2rem; }
.svc-hero__media { position: relative; border-radius: var(--r-xl); overflow: hidden; aspect-ratio: 4 / 3; border: 1px solid rgba(255, 255, 255, 0.14); box-shadow: var(--shadow-3); background: var(--navy-800); }
.svc-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.svc-hero__media picture { display: contents; }
.svc-hero__badge { position: absolute; left: 1rem; bottom: 1rem; padding: 0.5rem 0.85rem; border-radius: var(--r-pill); background: rgba(11, 27, 51, 0.72); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.16); color: var(--champagne-200); font-size: var(--fs-xs); letter-spacing: 0.04em; }
@media (min-width: 960px) { .svc-hero__grid { grid-template-columns: 1.1fr 0.9fr; gap: 4rem; } }

.ps { display: grid; gap: 2.25rem; }
.ps h2 { font-size: var(--fs-2xl); text-wrap: balance; }
.ps__problem > p { margin-top: 1.1rem; color: var(--ink-soft); }
.pain { list-style: none; margin-top: 1.5rem; display: grid; gap: 0.6rem; }
.pain li { display: flex; gap: 0.8rem; align-items: flex-start; padding: 0.85rem 1rem; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--white); font-size: var(--fs-sm); color: var(--ink-soft); }
.pain li::before { content: ""; flex: none; width: 0.5rem; height: 0.5rem; margin-top: 0.5rem; border-radius: 50%; background: var(--gold-500); }
.ps__solution { background: var(--white); border: 1px solid var(--line); border-radius: var(--r-xl); padding: clamp(1.5rem, 4vw, 2.75rem); box-shadow: var(--shadow-1); }
.ps__solution p { margin-top: 1.1rem; color: var(--ink-soft); }
.ps__solution .eyebrow { margin-bottom: 1rem; }
@media (min-width: 900px) { .ps { grid-template-columns: 1fr 1fr; gap: clamp(2.5rem, 5vw, 5rem); align-items: start; } }

.scope { list-style: none; display: flex; flex-wrap: wrap; gap: 0.6rem; }
.scope li { display: inline-flex; align-items: center; gap: 0.55rem; padding: 0.6rem 1rem 0.6rem 0.8rem; border-radius: var(--r-pill); background: var(--white); border: 1px solid var(--line-strong); font-size: var(--fs-sm); font-weight: 500; }
.scope .icon { width: 1rem; height: 1rem; color: var(--gold-700); }

.method { list-style: none; display: grid; gap: 1rem; counter-reset: m; }
.method li { counter-increment: m; position: relative; padding: 3.4rem 1.4rem 1.5rem; background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); }
.method li::before { content: counter(m, decimal-leading-zero); position: absolute; left: 1.4rem; top: 1.15rem; font: italic 400 1.6rem var(--font-serif); color: var(--gold-700); }
.method li::after { content: ""; position: absolute; left: 1.4rem; right: 1.4rem; top: 3.1rem; height: 1px; background: var(--line); }
.method h3 { font-size: var(--fs-md); letter-spacing: -0.01em; }
.method p { margin-top: 0.5rem; font-size: var(--fs-sm); color: var(--ink-soft); }
@media (min-width: 640px) { .method { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1040px) { .method { grid-template-columns: repeat(4, 1fr); } }

.benefits { list-style: none; display: grid; gap: 0; }
.benefits li { display: grid; grid-template-columns: auto 1fr; gap: 0.25rem 1.1rem; padding: 1.4rem 0; border-top: 1px solid var(--line-strong); }
.benefits li:last-child { border-bottom: 1px solid var(--line-strong); }
.benefits .icon { grid-row: span 2; width: 1.35rem; height: 1.35rem; margin-top: 0.2rem; color: var(--gold-700); }
.benefits h3 { font-size: var(--fs-md); letter-spacing: -0.01em; }
.benefits p { color: var(--ink-soft); font-size: var(--fs-sm); max-width: 52ch; }
@media (min-width: 860px) { .benefits { grid-template-columns: 1fr 1fr; column-gap: clamp(2rem, 5vw, 4.5rem); } .benefits li:nth-last-child(2):nth-child(odd) { border-bottom: 1px solid var(--line-strong); } }

.split-head { display: grid; gap: 1rem; margin-bottom: clamp(1.75rem, 4vw, 3rem); max-width: 40rem; }
.split-head h2 { font-size: var(--fs-2xl); text-wrap: balance; }
.note { display: flex; gap: 1rem; padding: 1.25rem 1.4rem; border-radius: var(--r-md); border: 1px solid rgba(184, 155, 94, 0.45); border-left-width: 4px; background: #fbf7ec; color: var(--ink-soft); font-size: var(--fs-sm); max-width: 62rem; }
.note .icon { flex: none; width: 1.25rem; height: 1.25rem; color: var(--gold-700); margin-top: 0.15rem; }
.note strong { color: var(--ink); font-weight: 500; }

.contract { display: grid; gap: 2rem; }
.contract h2 { font-size: var(--fs-2xl); text-wrap: balance; }
.contract p { margin-top: 1rem; color: #c3cee0; max-width: 52ch; }
.contract__list { list-style: none; display: grid; gap: 0.7rem; align-content: start; }
.contract__list li { display: flex; gap: 0.85rem; align-items: center; padding: 1rem 1.15rem; border-radius: var(--r-md); background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.1); }
.contract__list .icon { flex: none; color: var(--champagne-400); }
@media (min-width: 900px) { .contract { grid-template-columns: 1.1fr 0.9fr; gap: 4rem; align-items: center; } }

.svc-real { display: grid; gap: 1.75rem; }
.svc-real figure { display: grid; gap: 0.9rem; margin: 0; }
.svc-real figcaption strong { display: block; font: 500 var(--fs-md) var(--font-display); letter-spacing: -0.01em; }
.svc-real figcaption span { font-size: var(--fs-sm); color: var(--ink-mute); }
@media (min-width: 800px) { .svc-real { grid-template-columns: 1fr 1fr; gap: 2rem; } }

.audience-cols { display: grid; gap: 1rem; }
.audience { padding: 1.6rem; background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); }
.audience h3 { font-size: var(--fs-md); display: flex; align-items: center; gap: 0.6rem; }
.audience h3 .icon { color: var(--gold-700); }
.audience ul { list-style: none; margin-top: 1rem; display: grid; gap: 0.15rem; }
.audience a { display: flex; justify-content: space-between; gap: 1rem; padding: 0.55rem 0; border-bottom: 1px solid var(--line); text-decoration: none; font-size: var(--fs-sm); }
.audience a:hover { color: var(--navy-600); }
.audience a .icon { width: 1rem; height: 1rem; color: var(--gold-700); flex: none; margin-top: 0.2rem; }
@media (min-width: 860px) { .audience-cols { grid-template-columns: repeat(3, 1fr); } }
.dark .crumbs { color: #9fb0c9; }


.story__todo { font-size: var(--fs-sm); color: var(--ink-mute); }
.years { display: grid; gap: 1.75rem; }
.years h2 { font-size: var(--fs-2xl); max-width: 16ch; }
.years__text { display: grid; gap: 1.1rem; color: var(--ink-soft); max-width: 62ch; }
@media (min-width: 900px) { .years { grid-template-columns: 1fr 1.1fr; gap: clamp(2.5rem, 6vw, 6rem); align-items: start; } }

.values { list-style: none; display: grid; gap: 1rem; }
.values li { position: relative; padding: 1.6rem 1.5rem 1.5rem; background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); }
.values__n { display: block; margin-bottom: 0.9rem; font: italic 400 1.4rem var(--font-serif); color: var(--gold-700); }
.values h3 { font-size: var(--fs-md); letter-spacing: -0.01em; }
.values p { margin-top: 0.5rem; font-size: var(--fs-sm); color: var(--ink-soft); }
@media (min-width: 640px) { .values { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .values { grid-template-columns: repeat(3, 1fr); } }

.way { list-style: none; display: grid; gap: 0; counter-reset: w; max-width: 52rem; }
.way li { counter-increment: w; position: relative; display: grid; gap: 0.3rem; padding: 1.5rem 0 1.5rem 3.6rem; border-top: 1px solid var(--line-strong); }
.way li:last-child { border-bottom: 1px solid var(--line-strong); }
.way li::before { content: counter(w, decimal-leading-zero); position: absolute; left: 0; top: 1.45rem; font: italic 400 1.5rem var(--font-serif); color: var(--gold-700); }
.way h3 { font-size: var(--fs-md); letter-spacing: -0.01em; }
.way p { color: var(--ink-soft); font-size: var(--fs-sm); max-width: 56ch; }

.vision { display: grid; gap: 1.25rem; }
.vision h2 { font-size: var(--fs-2xl); max-width: 18ch; }
.vision__text { display: grid; gap: 1rem; color: #c3cee0; max-width: 62ch; }
@media (min-width: 900px) { .vision { grid-template-columns: 1fr 1fr; column-gap: 4rem; } .vision .eyebrow { grid-column: 1 / -1; } }

.faq-nav, .filters { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.faq-nav { margin-bottom: 2.5rem; }
.fchip { display: inline-flex; align-items: center; min-height: 2.5rem; padding: 0 1.1rem; border-radius: var(--r-pill); border: 1px solid var(--line-strong); background: transparent; color: var(--ink); font-size: var(--fs-sm); font-weight: 500; text-decoration: none; transition: background-color var(--dur-2), color var(--dur-2), border-color var(--dur-2); }
.fchip:hover { border-color: var(--navy-900); }
.fchip[aria-pressed="true"] { background: var(--navy-900); color: var(--paper); border-color: var(--navy-900); }
.faq-cat { margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.faq-cat > h2 { font-size: var(--fs-xl); margin-bottom: 1.25rem; }

.review-cta { display: grid; gap: 1.25rem; padding: clamp(1.5rem, 4vw, 2.5rem); background: var(--white); border: 1px solid var(--line); border-radius: var(--r-xl); align-items: center; }
.review-cta h2 { font-size: var(--fs-xl); }
.review-cta .lead { margin-top: 0.5rem; }
@media (min-width: 860px) { .review-cta { grid-template-columns: 1fr auto; } }
code { font-size: 0.9em; background: var(--gray-100); padding: 0.1em 0.35em; border-radius: 5px; }


.contact-grid { display: grid; gap: 1.25rem; }
@media (min-width: 960px) { .contact-grid { grid-template-columns: 0.9fr 1.1fr; gap: 1.75rem; align-items: stretch; } }
.contact-cards { display: grid; gap: 0.85rem; align-content: start; }
.contact-card { display: flex; gap: 1.1rem; align-items: flex-start; padding: 1.3rem 1.4rem; background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); text-decoration: none; transition: border-color var(--dur-2), box-shadow var(--dur-2), transform var(--dur-2) var(--ease-out); }
a.contact-card:hover { border-color: var(--line-strong); box-shadow: var(--shadow-1); transform: translateY(-2px); }
.contact-card > .icon { width: 1.5rem; height: 1.5rem; margin-top: 0.15rem; color: var(--gold-700); }
.contact-card small { display: block; font-size: var(--fs-xs); letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-mute); }
.contact-card strong { display: block; margin-top: 0.15rem; font: 500 var(--fs-md) / 1.35 var(--font-display); letter-spacing: -0.01em; overflow-wrap: anywhere; }
.hours { margin: 0.35rem 0 0; display: grid; gap: 0.25rem; font-size: var(--fs-sm); }
.hours div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.15rem 1.5rem; }
.hours dt { color: var(--ink-soft); }
.hours dd { margin: 0; font-weight: 500; }
.contact-card--hours > span { flex: 1; }

.map-box { position: relative; min-height: 22rem; border-radius: var(--r-xl); overflow: hidden; background: var(--navy-900); border: 1px solid var(--line); display: grid; }
.map-box iframe { width: 100%; height: 100%; min-height: 22rem; border: 0; display: block; }
.map-box__facade { position: relative; isolation: isolate; display: grid; gap: 0.5rem; place-content: center; justify-items: center; text-align: center; padding: 2rem 1.5rem 4rem; color: var(--paper); background: radial-gradient(30rem 20rem at 80% 0%, rgba(42, 79, 130, 0.65), transparent 65%), radial-gradient(24rem 16rem at 0% 100%, rgba(184, 155, 94, 0.18), transparent 65%), var(--navy-900); }
.map-box__facade strong { font: 500 var(--fs-lg) var(--font-display); letter-spacing: -0.02em; }
.map-box__facade > span { color: #c3cee0; font-size: var(--fs-sm); }
.map-box__facade .btn { margin-top: 1rem; --btn-bg: var(--champagne-200); --btn-fg: var(--navy-900); }
.map-box__facade small { max-width: 34ch; margin-top: 0.75rem; font-size: var(--fs-xs); color: #9fb0c9; }
.map-box__facade small a { color: #c3cee0; }
.map-box__pin { display: grid; place-items: center; width: 3.5rem; height: 3.5rem; border-radius: 50%; background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.18); color: var(--champagne-400); }
.map-box__pin .icon { width: 1.5rem; height: 1.5rem; }
.map-box__link { position: absolute; left: 1.25rem; bottom: 1rem; z-index: 2; color: #fff; font-size: var(--fs-xs); background: rgba(11, 27, 51, 0.72); padding: 0.4rem 0.85rem; border-radius: var(--r-pill); border-bottom: 0; backdrop-filter: blur(8px); }
.map-box[data-loaded] .map-box__facade { display: none; }

.ways { list-style: none; display: grid; gap: 1rem; }
.ways li { display: grid; gap: 0.75rem; align-content: start; padding: 1.75rem; background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); }
.ways li > .icon { width: 1.6rem; height: 1.6rem; color: var(--gold-700); }
.ways p { color: var(--ink-soft); font-size: var(--fs-sm); }
.ways .btn { justify-self: start; margin-top: 0.5rem; }
@media (min-width: 860px) { .ways { grid-template-columns: repeat(3, 1fr); } }


.filters { margin-bottom: 2rem; }
@media (scripting: none) { .filters { display: none; } }
.rgrid { list-style: none; display: grid; gap: 1.25rem; }
@media (min-width: 640px) { .rgrid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1040px) { .rgrid { grid-template-columns: repeat(3, 1fr); } }
.rgrid li[hidden], .ba-thumbs li[hidden] { display: none; }
.rcard { display: grid; height: 100%; background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; transition: box-shadow var(--dur-2), transform var(--dur-2) var(--ease-out); }
.rcard:hover { box-shadow: var(--shadow-2); transform: translateY(-3px); }
.rcard__media { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--navy-900); }
.rcard__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.9s var(--ease-out); }
.rcard__media picture { display: contents; }
.rcard__prestation { font-size: var(--fs-sm); color: var(--ink); }
.rcard:hover .rcard__media img { transform: scale(1.04); }
.rcard__body { display: grid; gap: 0.6rem; align-content: start; padding: 1.3rem 1.4rem 1.5rem; }
.rcard__tags { list-style: none; display: flex; flex-wrap: wrap; gap: 0.35rem; }
.rcard__tags li { padding: 0.15rem 0.6rem; border-radius: var(--r-pill); font-size: var(--fs-xs); background: var(--blue-50); color: var(--navy-700); }
.rcard h2 { font-size: var(--fs-md); letter-spacing: -0.01em; line-height: 1.25; }
.rcard__body p { font-size: var(--fs-sm); color: var(--ink-soft); }
.rcard__body .rcard__meta { color: var(--ink-mute); font-size: var(--fs-xs); }
.rcard__body .rcard__meta:empty { display: none; }
.rcard .link-arrow { justify-self: start; margin-top: 0.4rem; }
.empty-state { display: grid; gap: 1rem; justify-items: center; text-align: center; max-width: 38rem; margin-inline: auto; padding: clamp(2rem, 6vw, 4rem) 1rem; }
.empty-state h2 { font-size: var(--fs-xl); }
.empty-state p { color: var(--ink-soft); }
.empty { color: var(--ink-soft); text-align: center; padding-block: 3rem; }


.blog-grid { list-style: none; display: grid; gap: 1.25rem; }
@media (min-width: 720px) { .blog-grid { grid-template-columns: repeat(2, 1fr); } }
.post-card { display: grid; height: 100%; background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; text-decoration: none; transition: box-shadow var(--dur-2), transform var(--dur-2) var(--ease-out); }
.post-card:hover { box-shadow: var(--shadow-2); transform: translateY(-3px); }
.post-card__media { aspect-ratio: 16 / 9; overflow: hidden; background: var(--navy-900); }
.post-card__media img { width: 100%; height: 100%; object-fit: cover; }
.post-card__body { display: grid; gap: 0.7rem; align-content: start; padding: 1.5rem; }
.post-card__meta { font-size: var(--fs-xs); letter-spacing: 0.08em; text-transform: uppercase; color: var(--gold-700); }
.post-card h2 { font-size: var(--fs-lg); }
.post-card p { color: var(--ink-soft); font-size: var(--fs-sm); }
.post-head { padding-block: clamp(2.5rem, 6vw, 4.5rem) 1rem; }
.post-head h1 { font-size: clamp(2rem, 1.3rem + 3.2vw, 3.6rem); margin-top: 1rem; }
.post-head .lead { margin-top: 1.25rem; }
.post-head__meta { margin-top: 1.25rem; font-size: var(--fs-sm); color: var(--ink-mute); }
.toc { margin: 2rem 0; padding: 1.25rem 1.5rem; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--white); font-size: var(--fs-sm); }
.toc ol { margin: 0.6rem 0 0; padding-left: 1.2rem; display: grid; gap: 0.3rem; }
.toc a { text-decoration: none; color: var(--ink-soft); }
.toc a:hover { color: var(--navy-600); text-decoration: underline; }
.prose { color: var(--ink-soft); font-size: var(--fs-md); line-height: 1.75; }
.prose > * + * { margin-top: 1.1rem; }
.prose h2 { margin-top: 2.75rem; font-size: var(--fs-xl); color: var(--ink); }
.prose h3 { margin-top: 2rem; font-size: var(--fs-lg); color: var(--ink); }
.prose h2 + *, .prose h3 + * { margin-top: 0.9rem; }
.prose ul, .prose ol { padding-left: 1.3rem; display: grid; gap: 0.4rem; }
.prose li::marker { color: var(--gold-700); }
.prose strong { color: var(--ink); font-weight: 500; }
.prose a { color: var(--navy-600); }
.prose blockquote { margin-inline: 0; padding-left: 1.25rem; border-left: 3px solid var(--gold-500); font-family: var(--font-serif); font-style: italic; }
.prose hr { border: 0; border-top: 1px solid var(--line); margin-block: 2rem; }
.post-cta { margin: 3.5rem 0 clamp(3rem, 6vw, 5rem); padding: clamp(1.5rem, 4vw, 2.5rem); border-radius: var(--r-xl); background: var(--navy-900); color: var(--paper); display: grid; gap: 1rem; }
.post-cta h2 { font-size: var(--fs-xl); }
.post-cta p { color: #c3cee0; }


.quote-layout { display: grid; gap: 2rem; align-items: start; }
@media (min-width: 1000px) { .quote-layout { grid-template-columns: minmax(0, 1fr) 22rem; gap: 3rem; } .quote-aside { position: sticky; top: calc(var(--header-h) + 1.25rem); } }
.quote-aside { display: grid; gap: 1rem; }
.aside-card { padding: 1.5rem; background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); display: grid; gap: 0.75rem; }
.aside-card h2 { font-size: var(--fs-md); letter-spacing: -0.01em; }
.aside-card p { font-size: var(--fs-sm); color: var(--ink-soft); }
.aside-card--dark { background: var(--navy-900); border-color: transparent; color: var(--paper); }
.aside-card--dark p { color: #c3cee0; }
.aside-link { display: inline-flex; align-items: center; gap: 0.6rem; font: 500 var(--fs-md) var(--font-display); text-decoration: none; }
.aside-link .icon { color: var(--gold-700); }
.steps--light { margin: 0 !important; list-style: none; counter-reset: s; display: grid; gap: 0.9rem; }
.steps--light li { counter-increment: s; position: relative; display: grid; gap: 0.15rem; padding-left: 2.4rem; font-size: var(--fs-sm); }
.steps--light li::before { content: counter(s); position: absolute; left: 0; top: 0.05rem; width: 1.6rem; height: 1.6rem; display: grid; place-items: center; border-radius: 50%; background: var(--champagne-200); color: var(--navy-900); font: 500 0.8rem var(--font-display); }
.steps--light strong { font-weight: 500; }
.steps--light span { color: var(--ink-soft); }

.form { display: grid; gap: 1.5rem; }
.fs { margin: 0; padding: clamp(1.25rem, 3vw, 2rem); background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); display: grid; gap: 1.25rem; min-width: 0; }
.fs > legend { float: left; width: 100%; padding: 0; margin-bottom: 1.25rem; display: flex; align-items: center; gap: 0.75rem; font: 500 var(--fs-md) var(--font-display); letter-spacing: -0.01em; }
.fs > legend + * { clear: both; }
.fs__n { display: grid; place-items: center; width: 1.8rem; height: 1.8rem; border-radius: 50%; background: var(--navy-900); color: var(--paper); font: 500 0.85rem var(--font-display); }
.grid2 { display: grid; gap: 1.1rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .grid2 { grid-template-columns: 1fr 1fr; } .grid2 .field--wide { grid-column: 1 / -1; } }

.field { display: grid; gap: 0.4rem; align-content: start; min-width: 0; }
.field label, .label { font-size: var(--fs-sm); font-weight: 500; }
.req { color: var(--err); }
.opt { font-weight: 400; color: var(--ink-mute); font-size: var(--fs-xs); }
.field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]), .field select, .field textarea {
  width: 100%; min-height: 3.25rem; padding: 0.75rem 1rem; border-radius: var(--r-md); border: 1px solid var(--line-strong); background: var(--paper); color: var(--ink); font-size: 1rem;
  transition: border-color var(--dur-1), box-shadow var(--dur-1), background-color var(--dur-1);
}
.field textarea { min-height: 8rem; resize: vertical; line-height: 1.5; }
.field input:hover, .field select:hover, .field textarea:hover { border-color: var(--navy-600); }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--navy-600); background: var(--white); box-shadow: 0 0 0 4px rgba(42, 79, 130, 0.18); }
.field input::placeholder, .field textarea::placeholder { color: #7f8a9c; }
.field.is-invalid input, .field.is-invalid select, .field.is-invalid textarea { border-color: var(--err); background: #fdf4f4; }
.field__hint { font-size: var(--fs-xs); color: var(--ink-mute); }
.field__error { font-size: var(--fs-sm); color: var(--err); font-weight: 500; display: flex; gap: 0.4rem; }
.field__error[hidden] { display: none; }
.select { position: relative; }
.select select { appearance: none; -webkit-appearance: none; padding-right: 2.75rem; }
.select .icon { position: absolute; right: 1rem; top: 50%; margin-top: -0.625em; pointer-events: none; color: var(--ink-mute); }

.choices { margin: 0; padding: 0; border: 0; min-width: 0; display: grid; gap: 0.6rem; }
.choices legend { padding: 0; margin-bottom: 0.5rem; font-size: var(--fs-sm); font-weight: 500; }
.choices__grid { display: grid; gap: 0.6rem; grid-template-columns: 1fr; }
@media (min-width: 560px) { .choices__grid { grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); } }
.choice { position: relative; display: block; cursor: pointer; }
.choice input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.choice span { display: flex; align-items: center; gap: 0.7rem; min-height: 3.25rem; padding: 0.7rem 1rem; border-radius: var(--r-md); border: 1px solid var(--line-strong); background: var(--paper); font-size: var(--fs-sm); font-weight: 500; transition: border-color var(--dur-1), background-color var(--dur-1), box-shadow var(--dur-1); }
.choice span::before { content: ""; flex: none; width: 1.1rem; height: 1.1rem; border-radius: 50%; border: 1.5px solid var(--line-strong); background: var(--white); transition: border-color var(--dur-1), box-shadow var(--dur-1); }
.choice:hover span { border-color: var(--navy-600); }
.choice input:checked + span { border-color: var(--navy-900); background: var(--white); box-shadow: 0 0 0 1px var(--navy-900); }
.choice input:checked + span::before { border-color: var(--navy-900); box-shadow: inset 0 0 0 4px var(--white); background: var(--navy-900); }
.choice input:focus-visible + span { outline: 2px solid var(--navy-600); outline-offset: 3px; }
.choices.is-invalid .choice span { border-color: var(--err); }

.check { display: flex; gap: 0.8rem; align-items: flex-start; font-size: var(--fs-sm); color: var(--ink-soft); cursor: pointer; font-weight: 400 !important; }
.check input { flex: none; width: 1.3rem; height: 1.3rem; margin: 0.1rem 0 0; accent-color: var(--navy-900); }
.check a { color: var(--navy-600); }
.consent.is-invalid .check { color: var(--err); }

.drop { position: relative; display: flex; gap: 1rem; align-items: center; padding: 1.25rem 1.4rem; border: 1.5px dashed var(--line-strong); border-radius: var(--r-md); background: var(--paper); cursor: pointer; transition: border-color var(--dur-1), background-color var(--dur-1); }
.drop:hover, .drop.is-over, .drop:focus-within { border-color: var(--navy-600); background: var(--white); }
.drop .icon { flex: none; width: 1.6rem; height: 1.6rem; color: var(--gold-700); }
.drop strong { display: block; font-weight: 500; }
.drop small { display: block; margin-top: 0.15rem; color: var(--ink-mute); font-size: var(--fs-xs); line-height: 1.45; }
.drop input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%; }
.thumbs { list-style: none; display: flex; flex-wrap: wrap; gap: 0.6rem; }
.thumbs:empty { display: none; }
.thumbs li { position: relative; }
.thumbs img { width: 6rem; height: 6rem; object-fit: cover; border-radius: var(--r-sm); border: 1px solid var(--line); }
.thumbs button { position: absolute; right: -0.4rem; top: -0.4rem; width: 1.7rem; height: 1.7rem; border-radius: 50%; border: 2px solid var(--white); background: var(--navy-900); color: #fff; font-size: 1.1rem; line-height: 1; display: grid; place-items: center; padding: 0; }
@media (scripting: none) { [data-needs-js] { display: none !important; } }

.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-status { padding: 0.9rem 1.1rem; border-radius: var(--r-md); font-size: var(--fs-sm); font-weight: 500; }
.form-status[hidden] { display: none; }
.form-status[data-kind="error"] { background: #fdf0f0; color: var(--err); border: 1px solid rgba(163, 43, 43, 0.3); }
.form-status[data-kind="info"] { background: var(--blue-50); color: var(--navy-700); border: 1px solid rgba(27, 58, 102, 0.15); }
.form-actions { display: grid; gap: 1rem; justify-items: start; }
.form-actions .btn[disabled] { opacity: 0.6; cursor: progress; }
.form-note { font-size: var(--fs-xs); color: var(--ink-mute); }
.form-note a { color: var(--navy-600); }

.success { display: grid; gap: 1rem; justify-items: center; text-align: center; padding: clamp(2rem, 6vw, 4rem) 1.5rem; background: var(--white); border: 1px solid var(--line); border-radius: var(--r-xl); }
.success[hidden] { display: none; }
.success h2 { font-size: var(--fs-xl); max-width: 22ch; }
.success p { color: var(--ink-soft); max-width: 46ch; }
.success__icon { display: grid; place-items: center; width: 4rem; height: 4rem; border-radius: 50%; background: var(--champagne-200); color: var(--navy-900); }
.success__icon .icon { width: 1.8rem; height: 1.8rem; stroke-width: 2; }
.msg-layout { display: grid; gap: 2rem; }
@media (min-width: 960px) { .msg-layout { grid-template-columns: 0.8fr 1.2fr; gap: 4rem; align-items: start; } }


.booking { display: grid; gap: 1.5rem; }
@media (min-width: 720px) { .booking { grid-template-columns: minmax(0, 22rem) minmax(0, 1fr); gap: 2rem; } }
.cal__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.75rem; }
.cal__head strong { font: 500 var(--fs-md) var(--font-display); text-transform: capitalize; }
.cal__nav { width: 2.75rem; height: 2.75rem; border-radius: 50%; border: 1px solid var(--line-strong); background: var(--paper); font-size: 1.4rem; line-height: 1; display: grid; place-items: center; }
.cal__nav:hover:not([disabled]) { border-color: var(--navy-900); }
.cal__nav[disabled] { opacity: 0.35; cursor: not-allowed; }
.cal__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 0.25rem; }
.booking > * { min-width: 0; }
@media (max-width: 400px) { .fs { padding-inline: 1rem; } .cal__day { min-height: 2.25rem; font-size: 0.8125rem; } }
.cal__dow { text-align: center; font-size: var(--fs-xs); color: var(--ink-mute); padding-block: 0.4rem; }
.cal__day { aspect-ratio: 1; min-height: 2.5rem; border-radius: var(--r-sm); border: 1px solid transparent; background: transparent; font-size: var(--fs-sm); font-weight: 500; transition: background-color var(--dur-1), border-color var(--dur-1); }
.cal__day:hover:not([aria-disabled="true"]) { background: var(--blue-50); border-color: var(--line-strong); }
.cal__day[aria-disabled="true"] { color: #a4adbb; cursor: not-allowed; font-weight: 400; text-decoration: line-through; text-decoration-color: rgba(0, 0, 0, 0.18); }
.cal__day.is-today { border-color: var(--gold-500); }
.cal__day[aria-pressed="true"] { background: var(--navy-900); color: var(--paper); border-color: var(--navy-900); }
.slots__title { font-size: var(--fs-md); text-transform: capitalize; margin-bottom: 0.9rem; }
.slots__list { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(5rem, 1fr)); gap: 0.5rem; }
.slot { width: 100%; min-height: 2.75rem; border-radius: var(--r-pill); border: 1px solid var(--line-strong); background: var(--paper); font-size: var(--fs-sm); font-weight: 500; }
.slot:hover:not([aria-disabled="true"]) { border-color: var(--navy-900); background: var(--white); }
.slot[aria-pressed="true"]{background:var(--navy-900);color:var(--paper);border-color:var(--navy-900)}.slot.is-taken{opacity:0.4;text-decoration:line-through;cursor:not-allowed}.slots__note{margin-top:1rem;font-size:var(--fs-xs);color:var(--ink-mute);max-width:46ch}.chosen{padding:0.9rem 1.1rem;border-radius:var(--r-md);background:#fbf7ec;border:1px solid rgba(184,155,94,0.45);font-weight:500;font-size:var(--fs-sm)}[data-booking-details]{display:grid;gap:1.5rem}[data-booking-details][hidden]{display:none}
/* Carte 35 ans : version bleu marine */
.about__visual{background:radial-gradient(60% 45% at 80% 0%,rgba(42,79,130,.6),transparent 70%),radial-gradient(50% 35% at 0% 100%,rgba(184,155,94,.18),transparent 70%),linear-gradient(160deg,var(--navy-800),var(--navy-950))}
.about__visual::before{border-color:rgba(212,194,154,.35)}
.about__visual .about__num{color:var(--champagne-200)}
.about__visual .about__cap{color:var(--paper)}
.about__visual .about__cap small{color:var(--champagne-400)}
.about__tags{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:1.75rem;padding:0 1.5rem}
.about__tags li{padding:.35rem .85rem;border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:500;color:var(--champagne-200);background:rgba(255,255,255,.07);border:1px solid rgba(212,194,154,.3)}

/* Réalisations : cartes pleine largeur (montages avant/après) */
.rgrid .rgrid__wide{grid-column:1/-1}
.rcard--wide{grid-template-columns:1fr}
.rcard--wide .rcard__media{aspect-ratio:auto;background:var(--paper-2)}
.rcard--wide .rcard__media img{height:auto;object-fit:contain}
.rcard--wide:hover .rcard__media img{transform:none}
.rcard--wide .rcard__body{align-content:center}
@media (min-width:1000px){.rcard--wide{grid-template-columns:1.5fr 1fr}.rcard--wide .rcard__body{padding:2rem}}
