
:root{
  --bg:#0b0a09; --bg2:#100e0c; --cream:#F4EFE7; --gold:#C6A15B; --gold-soft:#e0c489; --gold-deep:#a8853f;
  --muted:#8d867c; --line:rgba(198,161,91,.22); --ease:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;}
html.lenis,html.lenis body{height:auto;}
.lenis.lenis-smooth{scroll-behavior:auto!important;}
.lenis.lenis-stopped{overflow:hidden;}
body{background:var(--bg);color:var(--cream);font-family:'Jost',sans-serif;font-weight:300;font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
h1,h2,h3{font-family:'Playfair Display',serif;font-weight:600;line-height:.98;letter-spacing:-.015em;}
::selection{background:var(--gold);color:#0b0a09;}
.wrap{width:min(92vw,1400px);margin:0 auto;}
.up{text-transform:uppercase;}
.eyebrow{font-size:12px;letter-spacing:.34em;text-transform:uppercase;color:var(--gold);display:inline-flex;align-items:center;gap:14px;}
.eyebrow::before{content:"";width:30px;height:1px;background:var(--gold);}

/* cursor */
.cursor,.cursor-d{display:none!important;position:fixed;top:0;left:0;z-index:9999;pointer-events:none;border-radius:50%;mix-blend-mode:difference;}
.cursor{width:46px;height:46px;border:1px solid rgba(255,255,255,.6);transform:translate(-50%,-50%);transition:width .35s var(--ease),height .35s var(--ease),background .35s,border-color .35s;display:flex;align-items:center;justify-content:center;}
.cursor.big{width:96px;height:96px;background:var(--gold);border-color:var(--gold);mix-blend-mode:normal;}
.cursor .clabel{font-family:'Jost';font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#0b0a09;opacity:0;transition:.3s;}
.cursor.big .clabel{opacity:1;}
.cursor-d{width:6px;height:6px;background:#fff;transform:translate(-50%,-50%);}
@media(hover:none){.cursor,.cursor-d{display:none;}body{cursor:auto;}}

/* preloader */
.pre{position:fixed;inset:0;z-index:9000;background:var(--bg);display:flex;align-items:center;justify-content:center;flex-direction:column;}
.pre .pl-brand{font-family:'Playfair Display',serif;font-style:italic;font-weight:600;font-size:clamp(1.6rem,4vw,3rem);color:var(--cream);overflow:hidden;}
.pre .pl-brand span{display:inline-block;transform:translateY(110%);}
.pre .pl-count{position:absolute;bottom:7vh;right:7vw;font-family:'Playfair Display',serif;font-size:clamp(3rem,12vw,11rem);color:var(--gold);line-height:1;}
.pre-panel{position:fixed;inset:0;z-index:8999;background:var(--bg2);transform:translateY(0);}

/* nav */
.nav{position:fixed;top:0;left:0;width:100%;z-index:800;padding:26px 0;background:linear-gradient(180deg,rgba(11,10,9,.82),rgba(11,10,9,0));}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;}
.nav .brand{font-family:'Playfair Display',serif;font-weight:700;font-size:1.15rem;color:#fff;letter-spacing:.01em;display:inline-flex;align-items:center;gap:12px;}
.nav .brand i{color:var(--gold);font-style:normal;}
.nav .brand .logo-ic{width:40px;height:40px;flex:none;display:block;}
.nav .links{display:flex;gap:34px;align-items:center;}
.nav .links a{font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:#fff;position:relative;}
.nav .links a::after{content:"";position:absolute;left:0;bottom:-5px;width:0;height:1px;background:#fff;transition:width .4s var(--ease);}
.nav .links a:hover::after{width:100%;}
.nav .menu-btn{display:none;}
@media(max-width:900px){.nav .links{display:none;}.nav .menu-btn{display:block;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#fff;}}
/* services dropdown */
.dd{position:relative;}
.dd>a::after{content:"▾";font-size:9px;margin-left:7px;color:var(--gold);}
.dd-menu{position:absolute;top:calc(100% + 16px);left:50%;transform:translate(-50%,10px);background:rgba(13,12,11,.97);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:8px;padding:20px;display:grid;grid-template-columns:1fr 1fr;gap:2px 28px;width:560px;opacity:0;visibility:hidden;transition:opacity .35s var(--ease),transform .35s var(--ease),visibility .35s;box-shadow:0 30px 70px -20px rgba(0,0,0,.7);}
.dd:hover .dd-menu,.dd:focus-within .dd-menu{opacity:1;visibility:visible;transform:translate(-50%,0);}
.dd-menu::before{content:"";position:absolute;top:-16px;left:0;width:100%;height:16px;}
.dd-menu a{display:block;padding:9px 10px;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:rgba(244,239,231,.85);border-radius:4px;transition:.3s;}
.dd-menu a:hover{color:var(--gold-soft);background:rgba(198,161,91,.08);}
/* mobile full-screen menu */
.mobile-menu{position:fixed;inset:0;background:rgba(9,8,7,.98);z-index:950;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:12vh 9vw;opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s;overflow-y:auto;}
.mobile-menu.open{opacity:1;visibility:visible;}
.mobile-menu .mm-main{font-family:'Playfair Display',serif;font-size:clamp(1.6rem,6.5vw,2.4rem);color:var(--cream);padding:7px 0;}
.mobile-menu .mm-label{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin:20px 0 8px;}
.mobile-menu .mm-svcs{display:grid;grid-template-columns:1fr 1fr;gap:5px 18px;}
.mobile-menu .mm-svcs a{font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:rgba(244,239,231,.75);padding:5px 0;}
.mobile-menu .mm-close{position:absolute;top:24px;right:26px;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);background:none;border:none;cursor:pointer;font-family:'Jost',sans-serif;}
/* financing strip */
.finstrip{position:relative;padding:15vh 0;text-align:center;overflow:hidden;background:var(--bg2);}
.finstrip img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.finstrip::after{content:"";position:absolute;inset:0;background:rgba(10,9,8,.84);}
.finstrip .wrap{position:relative;z-index:2;max-width:780px;}
.finstrip h2{font-size:clamp(2rem,5.5vw,4rem);color:#fff;text-transform:uppercase;line-height:1;}
.finstrip h2 em{font-style:italic;color:var(--gold-soft);text-transform:none;font-weight:500;}
.finstrip p{color:rgba(244,239,231,.75);margin:24px auto 38px;max-width:540px;}
.finstrip .btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
/* service areas */
.areas{padding:9vh 0 10vh;border-top:1px solid var(--line);}
.areas h3{font-family:'Playfair Display',serif;font-size:clamp(1.4rem,3vw,1.9rem);color:#fff;margin-bottom:10px;}
.areas p.sub{color:var(--muted);margin-bottom:24px;font-size:.98rem;max-width:640px;}
.pillrow{display:flex;flex-wrap:wrap;gap:10px;}
.pill{border:1px solid var(--line);border-radius:60px;padding:10px 20px;font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;color:rgba(244,239,231,.8);}

/* hero */
.hero{position:relative;height:100svh;min-height:640px;overflow:hidden;display:flex;align-items:flex-end;}
.hero-media{position:absolute;inset:0;overflow:hidden;}
.hero-media img{width:100%;height:120%;object-fit:cover;will-change:transform;}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,10,9,.66),rgba(11,10,9,.28) 40%,rgba(11,10,9,.85));}
.hero-inner{position:relative;z-index:3;width:100%;padding-bottom:8vh;}
.hero h1{font-size:clamp(2.4rem,7vw,5.6rem);font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:-.02em;}
.hero h1 .line{display:block;overflow:hidden;}
.hero h1 .line > span{display:inline-block;transform:translateY(105%);}
.hero h1 em{font-style:italic;font-weight:500;color:var(--gold-soft);font-family:'Playfair Display';text-transform:none;}
.hero-row{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-top:34px;flex-wrap:wrap;}
.hero-sub{max-width:440px;color:rgba(244,239,231,.82);font-size:1.05rem;}
.hero-cta{display:flex;gap:16px;flex-wrap:wrap;}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:12px;font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;padding:20px 34px;border-radius:60px;border:1px solid var(--gold);color:#0b0a09;background:var(--gold);transition:background .4s,color .4s,border-color .4s;will-change:transform;}
.btn.alt{background:transparent;color:#fff;border-color:rgba(255,255,255,.4);}
.btn.alt:hover{border-color:var(--gold);color:var(--gold-soft);}
.btn:hover{background:var(--gold-deep);border-color:var(--gold-deep);color:#fff;}
.btn .dot{width:7px;height:7px;border-radius:50%;background:currentColor;}

/* marquee */
.marquee{padding:34px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;white-space:nowrap;background:var(--bg);}
.marquee.gold{background:var(--gold);border:none;}
.mq-track{display:inline-flex;gap:54px;will-change:transform;}
.mq-track span{font-family:'Playfair Display',serif;font-style:italic;font-size:clamp(1.6rem,4vw,3rem);color:var(--cream);}
.marquee.gold .mq-track span{color:#0b0a09;font-style:normal;font-weight:700;text-transform:uppercase;letter-spacing:-.01em;}
.marquee.gold .mq-track span.s{font-family:'Jost';font-weight:400;font-size:clamp(1rem,2vw,1.4rem);letter-spacing:.2em;display:inline-flex;align-items:center;}

/* sections */
section{position:relative;}
.pad{padding:14vh 0;}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;margin-bottom:7vh;}
.sec-head h2{font-size:clamp(2.4rem,6.5vw,6rem);color:#fff;text-transform:uppercase;}
.sec-head h2 em{font-style:italic;text-transform:none;color:var(--gold-soft);font-weight:500;}
.sec-head .meta{max-width:360px;color:var(--muted);font-size:1rem;}

/* horizontal transformations */
.horiz{height:100svh;overflow:hidden;background:var(--bg2);}
.horiz-track{display:flex;height:100%;align-items:center;gap:5vw;padding:0 7vw;will-change:transform;}
.h-intro{flex:0 0 auto;width:42vw;min-width:320px;}
.h-intro h2{font-size:clamp(2.4rem,6vw,5rem);color:#fff;text-transform:uppercase;}
.h-intro h2 em{font-style:italic;text-transform:none;color:var(--gold-soft);font-weight:500;}
.h-intro p{margin-top:24px;max-width:380px;color:var(--muted);}
.hcard{flex:0 0 auto;width:40vw;min-width:300px;height:64vh;position:relative;border-radius:6px;overflow:hidden;}
.hcard img{width:100%;height:100%;object-fit:cover;will-change:transform;transform:scale(1.12);}
.hcard .cap{position:absolute;left:30px;bottom:28px;z-index:3;}
.hcard .cap .n{font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-soft);}
.hcard .cap .t{font-family:'Playfair Display';font-size:1.7rem;color:#fff;margin-top:6px;}
.hcard::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(8,7,6,.8),transparent 55%);}
.hcard .idx{position:absolute;top:24px;right:28px;z-index:3;font-family:'Playfair Display';font-size:1.1rem;color:rgba(255,255,255,.5);}
@media(max-width:900px){.horiz{height:auto;}.horiz-track{flex-direction:column;height:auto;padding:12vh 7vw;gap:30px;}.h-intro,.hcard{width:100%;}.hcard{height:60vh;}}

/* before/after */
.ba{background:var(--bg);}
.ba-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;}
@media(max-width:900px){.ba-grid{grid-template-columns:1fr;}}
.compare{position:relative;width:100%;aspect-ratio:4/3;overflow:hidden;border-radius:6px;user-select:none;border:1px solid var(--line);}
.compare img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;}
.compare .after-img{clip-path:inset(0 50% 0 0);z-index:2;}
.compare .lbl{position:absolute;top:16px;font-size:10px;letter-spacing:.24em;text-transform:uppercase;padding:6px 12px;background:rgba(11,10,9,.6);border:1px solid rgba(255,255,255,.16);z-index:4;}
.compare .lbl.b{right:16px;}.compare .lbl.a{left:16px;color:var(--gold-soft);border-color:var(--line);}
.compare .handle{position:absolute;top:0;bottom:0;left:50%;width:2px;background:var(--gold);z-index:5;}
.compare .handle .g{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:48px;height:48px;border-radius:50%;background:var(--gold);display:flex;align-items:center;justify-content:center;color:#0b0a09;}
.compare .handle .g svg{width:20px;height:20px;}
.compare .ttl{position:absolute;left:18px;bottom:16px;z-index:4;font-family:'Playfair Display';font-size:1.3rem;color:#fff;}

/* services alternating rows */
.srows{display:flex;flex-direction:column;gap:9vh;}
.srow{display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:center;}
.srow:nth-child(even) .srow-media{order:2;}
.srow-media{overflow:hidden;border-radius:6px;aspect-ratio:4/3;}
.srow-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease);will-change:transform;}
.srow:hover .srow-media img{transform:scale(1.06);}
.srow-num{font-family:'Playfair Display';font-size:1.05rem;letter-spacing:.22em;color:var(--gold);margin-bottom:16px;}
.srow-text h3{font-size:clamp(1.9rem,4.4vw,3.3rem);color:#fff;text-transform:uppercase;line-height:1;}
.srow-text p{margin:20px 0 28px;color:var(--muted);max-width:440px;font-size:1.04rem;}
.srow-link{display:inline-flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-soft);border-bottom:1px solid var(--line);padding-bottom:8px;transition:gap .4s,color .4s,border-color .4s;}
.srow-link:hover{color:#fff;border-color:var(--gold);gap:20px;}
.srow-link svg{width:16px;height:16px;}
@media(max-width:900px){.srow{grid-template-columns:1fr;gap:22px;}.srow:nth-child(even) .srow-media{order:0;}.srow-media{order:-1;aspect-ratio:16/10;}}

/* statement */
.statement{padding:18vh 0;text-align:center;}
.statement h2{font-size:clamp(2rem,6vw,5.4rem);color:#fff;line-height:1.04;max-width:16ch;margin:0 auto;text-transform:uppercase;}
.statement h2 em{font-style:italic;text-transform:none;color:var(--gold-soft);font-weight:500;}
.statement .sub{margin:34px auto 0;max-width:560px;color:var(--muted);font-size:1.08rem;}
.stat-row{display:flex;justify-content:center;gap:7vw;margin-top:8vh;flex-wrap:wrap;}
.stat-row .s .n{font-family:'Playfair Display';font-size:clamp(2.4rem,5vw,4rem);color:var(--gold);}
.stat-row .s .l{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-top:8px;}

/* gallery */
.gal-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:22px;}
.gcell{position:relative;overflow:hidden;border-radius:6px;cursor:pointer;}
.gcell img{width:100%;height:100%;object-fit:cover;will-change:transform;transition:transform 1.1s var(--ease);}
.gcell:hover img{transform:scale(1.07);}
.gcell .gc{position:absolute;left:20px;bottom:16px;z-index:3;opacity:0;transform:translateY(10px);transition:.5s;}
.gcell::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(8,7,6,.7),transparent 60%);opacity:0;transition:.5s;}
.gcell:hover .gc{opacity:1;transform:none;}.gcell:hover::after{opacity:1;}
.gc .c{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-soft);}
.gc .t{font-family:'Playfair Display';font-size:1.2rem;color:#fff;margin-top:4px;}
.g-a{grid-column:span 7;height:62vh;}.g-b{grid-column:span 5;height:62vh;}
.g-c{grid-column:span 4;height:46vh;}.g-d{grid-column:span 4;height:46vh;}.g-e{grid-column:span 4;height:46vh;}
.g-f{grid-column:span 5;height:56vh;}.g-g{grid-column:span 7;height:56vh;}
@media(max-width:900px){.gal-grid{grid-template-columns:1fr 1fr;}.g-a,.g-b,.g-c,.g-d,.g-e,.g-f,.g-g{grid-column:span 1;height:40vh;}}

/* testimonials */
.tests{background:var(--bg2);}
.t-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
@media(max-width:900px){.t-grid{grid-template-columns:1fr;}}
.tcell{border:1px solid var(--line);padding:40px 34px;border-radius:6px;background:rgba(255,255,255,.02);}
.tcell .stars{display:flex;gap:4px;color:var(--gold);margin-bottom:18px;}
.tcell .stars svg{width:16px;height:16px;}
.tcell p{font-family:'Playfair Display';font-style:italic;font-size:1.25rem;color:var(--cream);line-height:1.5;}
.tcell .who{margin-top:24px;display:flex;align-items:center;gap:12px;}
.tcell .av{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--gold-deep));display:flex;align-items:center;justify-content:center;color:#0b0a09;font-family:'Playfair Display';}
.tcell .nm{font-size:.92rem;color:#fff;}.tcell .lo{font-size:.78rem;color:var(--muted);}

/* CTA / footer */
.cta{padding:20vh 0 8vh;text-align:center;position:relative;overflow:hidden;}
.cta h2{font-size:clamp(2.4rem,8vw,6.5rem);color:#fff;text-transform:uppercase;line-height:.94;}
.cta h2 em{font-style:italic;text-transform:none;color:var(--gold-soft);font-weight:500;}
.cta .csub{margin:30px auto 44px;max-width:520px;color:var(--muted);}
.foot{border-top:1px solid var(--line);padding:50px 0 40px;}
.foot-grid{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;}
.foot-col h4{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:18px;}
.foot-col a,.foot-col p{display:block;color:var(--muted);font-size:.95rem;margin-bottom:10px;transition:color .3s;}
.foot-col a:hover{color:var(--cream);}
.foot-brand{font-family:'Playfair Display';font-size:1.6rem;color:#fff;max-width:320px;}
.foot-brand i{color:var(--gold);font-style:normal;}
.foot-bottom{margin-top:50px;padding-top:24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:.82rem;color:var(--muted);}

/* contact form */
.cform{max-width:760px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:18px;text-align:left;}
.cform .f{display:flex;flex-direction:column;gap:8px;}
.cform .f.full{grid-column:span 2;}
.cform label{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);}
.cform input,.cform select,.cform textarea{background:rgba(255,255,255,.03);border:1px solid var(--line);color:#fff;padding:15px 16px;border-radius:6px;font-family:'Jost';font-size:15px;font-weight:300;}
.cform textarea{min-height:120px;resize:vertical;}
.cform input:focus,.cform select:focus,.cform textarea:focus{outline:none;border-color:var(--gold);}
.cform select option{background:#100e0c;}
.cform .sub-row{grid-column:span 2;display:flex;gap:14px;align-items:center;flex-wrap:wrap;}
.form-ok{display:none;grid-column:span 2;color:var(--gold-soft);border:1px solid var(--line);padding:14px;border-radius:6px;}
.form-ok.on{display:block;}
@media(max-width:760px){.cform{grid-template-columns:1fr;}.cform .f.full,.cform .sub-row,.form-ok{grid-column:span 1;}}

/* reveal */
.rv{opacity:0;transform:translateY(40px);}
.mobile-bar{position:fixed;left:0;bottom:0;width:100%;z-index:700;display:none;grid-template-columns:1fr 1fr;}
.mobile-bar a{padding:15px;text-align:center;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;}
.mobile-bar .c{background:#0b0a09;color:#fff;border-top:1px solid var(--line);}
.mobile-bar .q{background:var(--gold);color:#0b0a09;}
@media(max-width:900px){.mobile-bar{display:grid;}.cursor,.cursor-d{display:none;}}
