:root{--ink:#0c1526;--navy:#16243c;--bronze:#b18a56;--bronze-hi:#d9b67f;--cream:#fce1b6;--paper:#f6f4ef;--text:#1d2a44;--muted:#5f6678;--steel:#8a9bb8;--line:rgba(255,255,255,.1);--line-dark:rgba(22,36,60,.12);--fd:'Oswald',sans-serif;--fb:'Public Sans',system-ui,sans-serif;--fm:'IBM Plex Mono',monospace}
*{margin:0;padding:0;box-sizing:border-box}
html{overflow-x:hidden;overflow-x:clip;max-width:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{font-family:var(--fb);background:var(--ink);color:var(--text);overflow-x:hidden;overflow-x:clip;max-width:100%;-webkit-font-smoothing:antialiased}
iframe,embed,object,video{max-width:100%}
::selection{background:var(--bronze);color:var(--ink)}
::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--ink)}::-webkit-scrollbar-thumb{background:var(--bronze);border:2px solid var(--ink)}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
.wrap{max-width:1440px;margin:0 auto;padding:0 clamp(20px,4vw,56px)}
/* nav */
nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:18px clamp(20px,4vw,56px);transition:transform .45s cubic-bezier(.65,0,.35,1),background .35s,border-color .35s;border-bottom:1px solid transparent}
nav.solid{background:rgba(12,21,38,.9);backdrop-filter:blur(14px);border-color:var(--line)}
nav.hidden{transform:translateY(-110%)}
.nav-logo{display:flex;align-items:center;flex-shrink:0;line-height:0}
.nav-logo img{display:block;height:52px;width:auto;transition:height .35s}
nav.solid .nav-logo img{height:42px}
.nav-links{display:flex;gap:34px;align-items:center}
.nav-links a{font-family:var(--fm);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.72);position:relative;padding:4px 0;transition:color .25s}
.nav-links a::after{content:'';position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--bronze);transform:scaleX(0);transform-origin:right;transition:transform .35s cubic-bezier(.65,0,.35,1)}
.nav-links a:hover{color:#fff}
.nav-links a:hover::after{transform:scaleX(1);transform-origin:left}
.nav-cta{font-family:var(--fm);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);background:var(--bronze);border:1px solid var(--bronze);padding:11px 22px;transition:background .25s,color .25s}
.nav-cta:hover{background:transparent;color:var(--bronze)}
#menuBtn{display:none;background:none;border:0;width:34px;height:26px;position:relative;z-index:130;cursor:pointer}
#menuBtn span{position:absolute;left:0;width:100%;height:2px;background:#fff;transition:all .3s}
#menuBtn span:nth-child(1){top:4px}#menuBtn span:nth-child(2){top:12px}#menuBtn span:nth-child(3){top:20px}
#menuBtn.open span:nth-child(1){top:12px;transform:rotate(45deg)}#menuBtn.open span:nth-child(2){opacity:0}#menuBtn.open span:nth-child(3){top:12px;transform:rotate(-45deg)}
#mobileMenu{position:fixed;inset:0;z-index:120;background:var(--ink);display:flex;flex-direction:column;justify-content:center;padding:0 clamp(24px,8vw,80px);gap:6px;clip-path:inset(0 0 100% 0);transition:clip-path .6s cubic-bezier(.76,0,.24,1)}
#mobileMenu.open{clip-path:inset(0 0 0 0)}
#mobileMenu a{font-family:var(--fd);font-weight:600;text-transform:uppercase;font-size:clamp(32px,9vw,54px);color:#fff;line-height:1.25;display:flex;align-items:baseline;gap:16px;border-bottom:1px solid var(--line);padding:10px 0}
#mobileMenu a small{font-family:var(--fm);font-size:12px;color:var(--bronze);letter-spacing:.2em}
@media(max-width:900px){.nav-links,.nav-cta{display:none}#menuBtn{display:block}.nav-logo img{height:44px}nav.solid .nav-logo img{height:38px}}@media(max-width:820px){.svc-hero{min-height:92svh}.svc-hero .inner{padding-top:110px}.crumbs{font-size:10px;letter-spacing:.16em}}
/* hero */
.svc-hero{position:relative;min-height:78svh;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}
.svc-hero .bg{position:absolute;inset:-10% 0;z-index:0}
.svc-hero .bg img{width:100%;height:100%;object-fit:cover}
.svc-hero .shade{position:absolute;inset:0;z-index:1;background:linear-gradient(100deg,rgba(12,21,38,.95) 0%,rgba(12,21,38,.8) 46%,rgba(12,21,38,.35) 100%),linear-gradient(to top,var(--ink) 0%,transparent 24%)}
.svc-hero .inner{position:relative;z-index:2;width:100%;padding-bottom:clamp(48px,6vw,80px)}
.crumbs{display:flex;align-items:center;gap:10px;font-family:var(--fm);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--steel);margin-bottom:26px;flex-wrap:wrap}
.crumbs a{color:var(--bronze-hi);transition:color .25s}
.crumbs a:hover{color:var(--cream)}
.crumbs .sep{color:rgba(255,255,255,.3)}
h1{font-family:var(--fd);font-weight:700;text-transform:uppercase;font-size:clamp(40px,6.6vw,92px);line-height:1;letter-spacing:-.01em;color:#fff;max-width:1000px}
h1 .h-line{display:block;overflow:hidden}
h1 .h-line>span{display:block;transform:translateY(112%);animation:rise 1s cubic-bezier(.19,1,.22,1) forwards}
h1 .h-line:nth-child(2)>span{animation-delay:.12s}
h1 .accent{color:var(--bronze)}
@keyframes rise{to{transform:translateY(0)}}
.svc-tagline{margin-top:22px;font-size:clamp(16px,1.6vw,19px);line-height:1.65;color:#cfd6e4;max-width:560px}
.svc-chips{display:flex;gap:0;flex-wrap:wrap;margin-top:34px;border:1px solid var(--line);width:100%;max-width:100%;background:rgba(12,21,38,.55);backdrop-filter:blur(6px)}
.svc-chips span{font-family:var(--fm);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--cream);padding:13px 20px;border-right:1px solid var(--line)}
.svc-chips span:last-child{border-right:0}
/* sections */
section{position:relative}
.eyebrow{font-family:var(--fm);font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--bronze);display:flex;align-items:center;gap:14px;margin-bottom:18px}
.eyebrow::before{content:'';width:40px;height:1px;background:var(--bronze)}
h2{font-family:var(--fd);font-weight:700;text-transform:uppercase;font-size:clamp(30px,3.8vw,52px);line-height:1.02;letter-spacing:-.01em}
h2 .thin{font-weight:400;color:transparent;-webkit-text-stroke:1px rgba(22,36,60,.5)}
.dark-sec h2 .thin{-webkit-text-stroke-color:rgba(255,255,255,.55)}
.reveal{opacity:0;transform:translateY(40px);transition:opacity .9s cubic-bezier(.19,1,.22,1),transform .9s cubic-bezier(.19,1,.22,1)}
.reveal.in{opacity:1;transform:none}
.overview{background:var(--paper);padding:clamp(72px,9vw,130px) 0}
.ov-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(36px,5vw,80px);align-items:start;min-width:0}
.ov-grid>*,.db-grid>*{min-width:0;max-width:100%}
.ov-copy p{font-size:16.5px;line-height:1.75;color:var(--muted);margin-bottom:18px}
.brand-on-light{display:block;height:clamp(84px,14vw,112px);width:auto;margin:0 0 22px}
.ov-copy .lead{font-size:19px;color:var(--text);font-weight:500}
.hl-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.hl-chips span{font-family:var(--fm);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--navy);border:1px solid var(--line-dark);padding:11px 16px;background:#fff;transition:background .25s,color .25s}
.hl-chips span:hover{background:var(--navy);color:var(--cream)}
.ov-img{position:sticky;top:110px}
.ov-img .frame{overflow:hidden}
.ov-img img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform 1.2s cubic-bezier(.19,1,.22,1)}
.ov-img .frame:hover img{transform:scale(1.04)}
.ov-img .cap{font-family:var(--fm);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-top:14px;display:flex;gap:12px;align-items:center}
.ov-img .cap::before{content:'';width:32px;height:1px;background:var(--bronze)}
@media(max-width:960px){.ov-grid{grid-template-columns:1fr}.ov-img{position:static}}
/* included */
.included{background:#fff;padding:clamp(72px,9vw,130px) 0}
.inc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line-dark);border:1px solid var(--line-dark);margin-top:clamp(36px,5vw,56px)}
.inc-item{background:#fff;padding:clamp(24px,2.6vw,36px);display:flex;gap:20px;align-items:flex-start;transition:background .3s}
.inc-item:hover{background:var(--paper)}
.inc-item .n{font-family:var(--fm);font-size:12px;letter-spacing:.16em;color:var(--bronze);padding-top:3px}
.inc-item h3{font-family:var(--fd);font-weight:600;text-transform:uppercase;font-size:19px;color:var(--navy);margin-bottom:8px}
.inc-item p{font-size:14.5px;line-height:1.6;color:var(--muted)}
@media(max-width:760px){.inc-grid{grid-template-columns:1fr}}
/* detail band */
.detail-band{background:var(--navy);color:#fff;padding:clamp(72px,9vw,130px) 0}
.db-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(36px,5vw,80px);align-items:center}
.db-img{overflow:hidden}
.db-img img{width:100%;aspect-ratio:16/11;object-fit:cover}
.db-copy .eyebrow{color:var(--bronze-hi)}
.db-copy p{font-size:16.5px;line-height:1.75;color:#aeb9cf;margin-top:20px}
.db-stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:36px}
.db-stats div{background:var(--navy);padding:20px}
.db-stats .k{font-family:var(--fm);font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--steel);display:block;margin-bottom:6px}
.db-stats .v{font-family:var(--fd);font-weight:600;font-size:20px;text-transform:uppercase;color:var(--cream)}
@media(max-width:960px){.db-grid{grid-template-columns:1fr}}
/* faq */
.faq{background:var(--paper);padding:clamp(72px,9vw,130px) 0}
.faq-list{max-width:920px;border-top:1px solid var(--line-dark);margin-top:clamp(30px,4vw,48px)}
.faq-item{border-bottom:1px solid var(--line-dark)}
.faq-q{width:100%;background:none;border:0;cursor:pointer;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 8px;font-family:var(--fd);font-weight:500;text-transform:uppercase;letter-spacing:.03em;font-size:clamp(16px,1.9vw,21px);color:var(--navy);transition:color .25s}
.faq-q:hover{color:var(--bronze)}
.faq-q .fi{font-family:var(--fm);font-size:18px;color:var(--bronze);transition:transform .35s;flex-shrink:0}
.faq-item.open .fi{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.65,0,.35,1)}
.faq-a p{padding:0 8px 26px;font-size:15.5px;line-height:1.7;color:var(--muted);max-width:720px}
/* other services */
.others{background:var(--ink);padding:clamp(72px,9vw,130px) 0;border-top:1px solid var(--line)}
.other-list{border-top:1px solid var(--line);margin-top:clamp(30px,4vw,48px)}
.other-list a{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 8px;border-bottom:1px solid var(--line);font-family:var(--fd);font-weight:600;text-transform:uppercase;font-size:clamp(18px,2.2vw,28px);color:#fff;transition:color .25s,padding-left .35s cubic-bezier(.65,0,.35,1)}
.other-list a:hover{color:var(--bronze);padding-left:24px}
.other-list a .arr{font-family:var(--fm);font-size:14px;color:var(--bronze);letter-spacing:.1em}
/* cta */
.cta-band{background:var(--bronze);position:relative;overflow:hidden}
.cta-band .wrap{display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;padding-top:clamp(52px,7vw,80px);padding-bottom:clamp(52px,7vw,80px)}
.cta-band h2{color:var(--ink)}
.cta-band p{font-size:17px;color:rgba(12,21,38,.72);margin-top:10px;font-weight:500}
.btn{font-family:var(--fd);font-weight:600;text-transform:uppercase;letter-spacing:.14em;font-size:15px;padding:18px 38px;border:1px solid var(--ink);position:relative;overflow:hidden;transition:color .3s;background:transparent;color:var(--cream);display:inline-block;cursor:pointer}
.btn span{position:relative;z-index:2}
.btn::before{content:'';position:absolute;inset:0;background:var(--ink);transform:scaleX(1);transform-origin:left;transition:transform .45s cubic-bezier(.76,0,.24,1);z-index:1}
.btn:hover::before{transform:scaleX(0);transform-origin:right}
.btn:hover{color:var(--ink)}
.cta-ghost{position:absolute;right:-1%;bottom:-38%;font-family:var(--fd);font-weight:700;text-transform:uppercase;font-size:clamp(110px,20vw,300px);line-height:1;color:transparent;-webkit-text-stroke:1px rgba(12,21,38,.14);pointer-events:none;user-select:none;white-space:nowrap}
/* footer */
footer{background:var(--ink);border-top:1px solid var(--line);color:#fff}
.foot-top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:clamp(32px,5vw,80px);padding:clamp(52px,7vw,84px) 0}
.foot-logo{margin-bottom:18px;line-height:0}
.foot-logo img{display:block;height:clamp(84px,13vw,118px);width:auto}
.foot-top p{font-size:14.5px;line-height:1.7;color:var(--steel);max-width:340px}
.foot-col h4{font-family:var(--fm);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--bronze);margin-bottom:22px}
.foot-col a,.foot-col span{display:block;font-size:14.5px;color:#aeb9cf;padding:7px 0;transition:color .25s}
.foot-col a:hover{color:var(--cream)}
.foot-bottom{border-top:1px solid var(--line);padding:24px 0;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:var(--fm);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--steel)}
@media(max-width:820px){.foot-top{grid-template-columns:1fr}}
#toTop{position:fixed;right:26px;bottom:26px;z-index:90;width:48px;height:48px;border:1px solid var(--bronze);background:rgba(12,21,38,.8);backdrop-filter:blur(8px);color:var(--bronze);font-size:18px;opacity:0;pointer-events:none;transition:opacity .3s,background .25s,color .25s;cursor:pointer}
#toTop.on{opacity:1;pointer-events:auto}
#toTop:hover{background:var(--bronze);color:var(--ink)}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
