:root{
  --cream:#F8F0E7; --grey:#F4F4F4; --white:#fff;
  --charcoal:#3C3C3C; --dark:#141414; --dark-2:#080808;
  --tan:#C2AE97; --tan-deep:#A98F73;
  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{font-size:clamp(15px,1.05vw,20px);scroll-behavior:auto}
body{font-family:var(--sans);background:var(--cream);color:var(--charcoal);font-weight:400;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.04;letter-spacing:.005em}
.italic{font-style:italic}
.wrap{width:min(90vw,1360px);margin-inline:auto}
.eyebrow{font-family:var(--sans);font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--tan-deep)}

/* buttons: ghost outline, uppercase */
.btn{display:inline-block;font-family:var(--sans);font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;padding:1.05em 2.6em;border:1px solid var(--tan);color:var(--charcoal);background:transparent;cursor:pointer;transition:.35s ease}
.btn:hover{background:var(--tan);color:var(--white);border-color:var(--tan)}
.btn--light{border-color:rgba(255,255,255,.6);color:var(--white)}
.btn--light:hover{background:var(--white);color:var(--dark);border-color:var(--white)}

/* nav: centered wordmark, flanking links */
.nav{position:fixed;inset:0 0 auto 0;z-index:60;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:2rem;padding:1.5rem clamp(1.4rem,3vw,2.6rem);transition:background .4s,padding .4s,color .4s;color:var(--white)}
.nav.scrolled{background:var(--cream);color:var(--charcoal);padding-block:1rem;box-shadow:0 1px 0 rgba(60,60,60,.1)}
.nav__links{display:flex;gap:2rem;font-family:var(--sans);font-size:.78rem;letter-spacing:.13em;text-transform:uppercase}
.nav__links a{opacity:.9;transition:opacity .3s}.nav__links a:hover{opacity:.55}
.nav__links.right{justify-content:flex-end}
.nav__logo{font-family:var(--serif);font-size:1.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;text-align:center;white-space:nowrap}
.nav__burger{display:none}

/* hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;color:var(--white);overflow:hidden}
.hero__img{position:absolute;inset:0}
.hero__img img{width:100%;height:100%;object-fit:cover;transform:scale(1.05);animation:kb 18s ease-out forwards}
@keyframes kb{to{transform:scale(1)}}
.hero__img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,20,20,.4) 0%,rgba(20,20,20,0) 26%,rgba(20,20,20,.16) 48%,rgba(20,20,20,.84) 100%),radial-gradient(130% 85% at 14% 100%,rgba(20,20,20,.55) 0%,rgba(20,20,20,0) 56%)}
.hero__inner{position:relative;z-index:2;width:100%;padding:0 clamp(1.4rem,4vw,4rem) clamp(2.4rem,5vw,4.5rem)}
.hero h1{font-size:clamp(3.2rem,8.5vw,8rem);max-width:16ch}
.hero__sub{font-family:var(--sans);font-size:clamp(.95rem,1.3vw,1.15rem);letter-spacing:.04em;margin-top:1.1rem;max-width:44ch;opacity:.94}
.hero__cta{margin-top:1.9rem}

/* shared reveal image */
.reveal-img{position:relative;overflow:hidden}
.reveal-img img{width:100%;height:100%;object-fit:cover}
.reveal-img .cover{position:absolute;inset:0;background:var(--cream);z-index:2;transform-origin:bottom}

/* gallery-intro block */
.gallery{padding:clamp(5.5rem,10vw,10rem) 0}
.gallery__grid{display:grid;grid-template-columns:1fr 1.12fr;gap:clamp(2.4rem,5.5vw,5rem);align-items:start}
.gallery__left h2{font-size:clamp(2.5rem,5vw,4.3rem);max-width:14ch}
.gallery__left p{color:#5c574f;max-width:36ch;margin-top:1.2rem}
.gallery__arrows{display:flex;gap:1.2rem;margin-top:1.6rem;color:var(--tan-deep)}
.gallery__arrows button{background:none;border:0;cursor:pointer;color:inherit;font-size:1.5rem;line-height:1;transition:opacity .2s}
.gallery__arrows button:hover{opacity:.5}
.gallery__small{aspect-ratio:4/3;margin-top:clamp(2rem,4vw,3.5rem)}
.gallery__big{aspect-ratio:1/1;position:relative}
.gallery__big .glabel{position:absolute;left:1.1rem;bottom:1rem;color:#fff;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;z-index:3}
.gallery__right p{color:#5c574f;max-width:40ch;margin:1.6rem 0}
.gallery__right .btn{display:block;text-align:center}

/* feature split */
.feature{background:var(--cream)}
.feature__grid{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
.feature__body{display:flex;flex-direction:column;justify-content:center;padding:clamp(3rem,6vw,6.5rem)}
.feature__body h2{font-size:clamp(2.2rem,4.8vw,3.9rem);margin:.7rem 0 1.3rem;max-width:15ch}
.feature__body p{color:#5c574f;max-width:40ch;margin-bottom:1.9rem}
.feature__img{position:relative;overflow:hidden;min-height:clamp(26rem,36vw,38rem)}
.feature__img img{width:100%;height:100%;object-fit:cover}
.feature__badge{position:absolute;left:1.6rem;bottom:1.6rem;background:rgba(20,20,20,.72);color:var(--cream);padding:.85rem 1.25rem;font-size:.8rem;letter-spacing:.02em;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.feature__badge .star{color:#E0B24E}

/* dark showcase carousel */
.dshow{background:var(--dark);color:var(--cream);padding:clamp(4rem,7.5vw,7rem) 0;overflow:hidden}
.dshow__stage{display:grid;grid-template-columns:1.5fr .5fr;align-items:center}
.dshow__img{position:relative;aspect-ratio:16/10;overflow:hidden}
.dshow__swatch{position:relative;z-index:2;width:min(15rem,92%);aspect-ratio:3/4;margin-left:-5rem;box-shadow:0 24px 60px rgba(0,0,0,.55)}
.dshow__swatch img{width:100%;height:100%;object-fit:cover}
.dshow__swatch .vlabel{position:absolute;left:calc(100% + .7rem);top:0;writing-mode:vertical-rl;font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--tan)}
.dshow__meta{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-top:2.6rem;flex-wrap:wrap}
.dshow__labels{display:flex;gap:2.6rem}
.dshow__labels .k{font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;opacity:.55;margin-bottom:.25rem}
.dshow__labels .v{font-family:var(--serif);font-size:1.35rem}
.dshow__meta .btns{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}

/* brands / proof strip */
.brands{padding:clamp(3.5rem,7vw,6rem) 0;background:var(--grey);text-align:center}
.brands .eyebrow{margin-bottom:2rem;display:block}
.brands__lead{font-family:var(--serif);font-style:italic;font-size:1.25rem;color:var(--tan-deep);margin-bottom:2rem}
.brands__logos{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1.4rem 3rem;max-width:60rem;margin:0 auto}
.bl{font-family:var(--serif);font-size:1.95rem;color:var(--charcoal);opacity:.78;letter-spacing:.01em}
.brands__proof{margin-top:2.6rem;display:flex;flex-wrap:wrap;justify-content:center;gap:1rem 2.6rem;font-size:.95rem;color:#5c574f;border-top:1px solid rgba(60,60,60,.14);padding-top:2rem;max-width:48rem;margin-inline:auto}
.brands__proof b{color:var(--tan-deep)}
.brands__proof .star{color:#C99A3A;letter-spacing:.1em}

/* curated dark cinematic band */
.curated{background:var(--dark);color:var(--cream);padding:clamp(4.5rem,9vw,8rem) 0;overflow:hidden}
.curated .reveal-img .cover{background:var(--dark)}
.curated__intro{text-align:center;margin:0 auto clamp(2.8rem,5vw,4rem)}
.curated__intro h2{font-size:clamp(2.4rem,5.2vw,4.4rem);margin-bottom:1.1rem}
.curated__intro p{opacity:.85;margin:0 auto;max-width:46ch}
.swatches{display:grid;grid-template-columns:repeat(6,1fr);gap:1rem}
.swatch{text-align:center}
.swatch .reveal-img{aspect-ratio:1;margin-bottom:.8rem}
.swatch .n{font-family:var(--serif);font-size:1.3rem;color:var(--cream)}
.swatch .k{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--tan)}
.floors__cta{text-align:center;margin-top:clamp(2.6rem,5vw,3.6rem)}

/* showroom / locations */
.showroom{background:var(--dark);color:var(--cream);padding:clamp(4.5rem,9vw,8rem) 0}
.showroom__head{text-align:center;max-width:48ch;margin:0 auto clamp(2.6rem,5vw,3.8rem)}
.showroom__head h2{font-size:clamp(2.6rem,5.4vw,4.4rem);margin-bottom:1rem}
.showroom__note{font-size:.95rem;color:var(--tan);opacity:.9;max-width:44ch;margin:0 auto}
.locs{display:grid;grid-template-columns:repeat(3,1fr);gap:2.2rem;max-width:60rem;margin:0 auto clamp(2.4rem,4vw,3rem)}
.loc{border-top:1px solid rgba(248,240,231,.18);padding-top:1.2rem}
.loc h4{font-family:var(--serif);font-size:1.6rem;font-weight:500;margin-bottom:.35rem}
.loc p{font-size:.9rem;opacity:.8;line-height:1.6}
.showroom__cta{text-align:center}

/* CTA */
.cta{padding:clamp(6rem,11vw,11rem) 0;background:var(--cream);text-align:center}
.cta h2{font-size:clamp(3rem,6.4vw,5.6rem);max-width:18ch;margin:0 auto 1.2rem}
.cta p{max-width:40ch;margin:0 auto 2rem;color:#5c574f}
.cta__imgs{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin-top:clamp(2.6rem,5vw,4rem)}
.cta__imgs .reveal-img{aspect-ratio:4/3}

/* footer */
.foot{background:var(--dark-2);color:var(--cream)}
.foot__cols{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;padding:clamp(3.5rem,7vw,5.5rem) 0 clamp(2rem,4vw,3rem)}
.foot__col h4{font-family:var(--serif);font-weight:500;font-size:1.85rem;margin-bottom:1.7rem}
.foot__col a,.foot__col p{display:block;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;opacity:.58;margin-bottom:.85rem;line-height:1.6;transition:opacity .2s,color .2s}
.foot__col a:hover{opacity:1;color:var(--tan)}
.foot__social{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:1.8rem 0;border-top:1px solid rgba(248,240,231,.14);flex-wrap:wrap}
.foot__icons{display:flex;gap:1.3rem}
.foot__icons a{opacity:.6;transition:opacity .2s}.foot__icons a:hover{opacity:1}
.foot__icons svg{width:19px;height:19px;fill:var(--cream);display:block}
.foot__news{font-family:var(--serif);font-size:1.9rem;display:flex;align-items:center;gap:1.2rem}
.foot__news input{background:transparent;border:0;border-bottom:1px solid rgba(248,240,231,.35);color:var(--cream);font-family:var(--sans);font-size:.85rem;letter-spacing:.04em;padding:.5rem 0;width:16rem}
.foot__news input:focus{outline:none;border-color:var(--tan)}
.foot__news input::placeholder{color:rgba(248,240,231,.45)}
.foot__legal{display:flex;justify-content:space-between;gap:1.5rem 2.6rem;flex-wrap:wrap;padding:1.8rem 0;border-top:1px solid rgba(248,240,231,.14);font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;opacity:.55}
.foot__legal a{transition:opacity .2s,color .2s}.foot__legal a:hover{opacity:1;color:var(--tan)}
.foot__copy{background:var(--cream);color:var(--charcoal);text-align:center;padding:2.2rem 1rem;font-size:.78rem;position:relative}
.foot__copy span{position:relative;z-index:2}
.foot__copy .credit{opacity:.6;margin-left:1rem}
.foot__copy::before{content:"";position:absolute;inset:0;opacity:.05;background:radial-gradient(circle at center, transparent 62%, var(--tan-deep) 63%);background-size:34px 34px;pointer-events:none}

.fade-up{opacity:0;transform:translateY(26px)}
.animated-heading .line{overflow:hidden;padding-bottom:.04em}

@media(max-width:900px){
  .nav{grid-template-columns:auto 1fr;gap:1rem}
  .nav__links{display:none}
  .nav__burger{display:block;justify-self:end}
  .nav__logo{text-align:left;font-size:1.4rem}
  .hero__img img{object-position:24% center}
  .gallery__grid,.feature__grid{grid-template-columns:1fr}
  .locs{grid-template-columns:1fr;max-width:26rem}
  .dshow__stage{grid-template-columns:1fr;gap:1.5rem}
  .dshow__swatch{margin-left:0;width:min(12rem,60%)}
  .dshow__swatch .vlabel{display:none}
  .swatches{grid-template-columns:repeat(3,1fr)}
  .cta__imgs{grid-template-columns:1fr}
  .foot__cols{grid-template-columns:repeat(2,1fr)}
  .foot__news{font-size:1.2rem}
  .showroom__img{min-height:60vw}
}
@media(prefers-reduced-motion:reduce){.fade-up{opacity:1;transform:none}.reveal-img .cover{display:none}.hero__img img{animation:none;transform:none}}

/* ===================== SUB-PAGE COMPONENTS ===================== */
.pagehero{position:relative;min-height:60vh;display:flex;align-items:flex-end;color:var(--white);overflow:hidden}
.pagehero__img{position:absolute;inset:0}
.pagehero__img img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);animation:kb 16s ease-out forwards}
.pagehero__img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,20,20,.42),rgba(20,20,20,0) 42%,rgba(20,20,20,.72)),radial-gradient(120% 80% at 14% 100%,rgba(20,20,20,.5),rgba(20,20,20,0) 55%)}
.pagehero__inner{position:relative;z-index:2;width:100%;padding:0 clamp(1.4rem,4vw,4rem) clamp(2.4rem,4vw,3.6rem)}
.pagehero .crumb{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;opacity:.85;margin-bottom:1rem}
.pagehero .crumb a{opacity:.85}.pagehero .crumb a:hover{opacity:1}
.pagehero h1{font-size:clamp(2.8rem,6.5vw,6rem);max-width:16ch}
.pagehero p{font-family:var(--sans);font-size:clamp(1rem,1.3vw,1.15rem);margin-top:1.1rem;max-width:46ch;opacity:.94}

.prose{padding:clamp(4.5rem,9vw,8rem) 0}
.prose__wrap{max-width:64ch;margin:0 auto}
.prose__wrap.lead>p:first-of-type{font-family:var(--serif);font-size:1.7rem;line-height:1.4;color:var(--charcoal);margin-bottom:1.6rem}
.prose h2{font-size:clamp(2rem,4vw,3.2rem);margin:2.4rem 0 1rem}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:1.6rem;margin:1.6rem 0 .6rem}
.prose p{color:#5c574f;margin-bottom:1.2rem}
.prose ul{list-style:none;margin:1rem 0 1.8rem}
.prose li{color:#5c574f;padding-left:1.5rem;position:relative;margin-bottom:.7rem}
.prose li::before{content:"";position:absolute;left:0;top:.75em;width:.6rem;height:1px;background:var(--tan-deep)}

.split{padding:clamp(3.5rem,7vw,6.5rem) 0}
.split+.split{padding-top:0}
.split__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.split--rev .split__media{order:2}
.split__media{aspect-ratio:4/3}
.split__body h2{font-size:clamp(2rem,4.2vw,3.4rem);margin-bottom:1.1rem}
.split__body p{color:#5c574f;margin-bottom:1rem;max-width:46ch}

.section-pad{padding:clamp(4rem,8vw,7rem) 0}
.section-head{text-align:center;max-width:44ch;margin:0 auto clamp(2.4rem,5vw,3.6rem)}
.section-head h2{font-size:clamp(2.4rem,5vw,4rem);margin-bottom:.8rem}
.section-head p{color:#5c574f}

.specs{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:1.6rem;margin:2.2rem 0}
.spec{border-top:1px solid rgba(60,60,60,.16);padding-top:1rem}
.spec .k{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--tan-deep);margin-bottom:.35rem}
.spec .v{font-family:var(--serif);font-size:1.3rem}

.brandgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1.4rem,2.5vw,2.2rem)}
.brandcard{background:var(--white);border:1px solid rgba(60,60,60,.12);padding:clamp(1.8rem,3vw,2.6rem)}
.brandcard h3{font-size:1.9rem;margin-bottom:.6rem}
.brandcard p{color:#5c574f;font-size:.95rem}

.services{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:clamp(1.4rem,3vw,2.4rem)}
.servicecard{border-top:2px solid var(--tan);padding-top:1.4rem}
.servicecard .num{font-family:var(--serif);font-size:1.15rem;color:var(--tan-deep);margin-bottom:.5rem}
.servicecard h3{font-size:1.6rem;margin-bottom:.6rem}
.servicecard p{color:#5c574f;font-size:.95rem}

.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.grid3 .reveal-img{aspect-ratio:4/3}
.gallerygrid{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;grid-auto-flow:dense}
.gallerygrid .reveal-img{aspect-ratio:1}
.gallerygrid .reveal-img.tall{grid-row:span 2;aspect-ratio:auto}
.gallerygrid .reveal-img.wide{grid-column:span 2}

.contactgrid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem)}
.contactinfo h3{font-size:1.7rem;margin:1.8rem 0 .4rem}
.contactinfo h3:first-child{margin-top:0}
.contactinfo p,.contactinfo a{display:block;color:#5c574f;line-height:1.7}
.contactinfo a:hover{color:var(--tan-deep)}
.form{display:grid;gap:1rem}
.form input,.form textarea{border:1px solid rgba(60,60,60,.2);background:var(--white);padding:.95rem 1rem;font-family:var(--sans);font-size:.95rem;color:var(--charcoal)}
.form textarea{min-height:8rem;resize:vertical}
.form input:focus,.form textarea:focus{outline:none;border-color:var(--tan)}

.newslist{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.4rem,3vw,2.2rem)}
.newscard .reveal-img{aspect-ratio:3/2;margin-bottom:1rem}
.newscard h3{font-size:1.4rem;margin-bottom:.5rem;line-height:1.2}
.newscard p{color:#5c574f;font-size:.92rem}
.newscard .date{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--tan-deep);margin-bottom:.5rem}

@media(max-width:900px){
  .split__grid,.brandgrid,.contactgrid{grid-template-columns:1fr}
  .split--rev .split__media{order:0}
  .grid3,.newslist{grid-template-columns:1fr 1fr}
  .gallerygrid{grid-template-columns:repeat(2,1fr)}
}
