:root{
  --cream: #F7F2E7;
  --cream-deep: #EDE2D0;
  --rust: #A8502E;
  --rust-deep: #8A3F23;
  --sage: #5E6E4F;
  --sage-deep: #47543A;
  --ink: #2B2620;
  --gold: #8C7A3A;
  --line: rgba(43,38,32,0.12);
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}

body{
  background:var(--cream);
  color:var(--ink);
  font-family:'Work Sans', sans-serif;
  font-weight:400;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

h1,h2,h3{
  font-family:'Fraunces', serif;
  font-weight:500;
  letter-spacing:-0.01em;
  color:var(--ink);
}

.eyebrow{
  font-size:0.72rem;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--rust);
  font-weight:600;
}

a{color:inherit; text-decoration:none;}
img{display:block; max-width:100%;}

.wrap{
  max-width:1240px;
  margin:0 auto;
  padding:0 48px;
}

/* ---------- NAV ---------- */
header{
  position:sticky;
  top:0; left:0; right:0;
  z-index:20;
  padding:24px 0;
  background:rgba(247,242,231,0.88);
  backdrop-filter:blur(10px);
  border-bottom:1px solid transparent;
  transition:border-color 0.3s ease;
}
header.on-hero{
  position:absolute;
  background:transparent;
  backdrop-filter:none;
}
nav.wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.brandmark{
  display:flex;
  align-items:center;
  gap:12px;
}
.brandmark img{
  width:40px; height:40px;
  border-radius:50%;
  background:var(--cream);
}
.brandmark span{
  font-family:'Fraunces', serif;
  font-size:1rem;
  font-weight:500;
  letter-spacing:0.01em;
}
.navlinks{
  display:flex;
  gap:26px;
  font-size:0.82rem;
  letter-spacing:0.02em;
}
.navlinks a{
  position:relative;
  padding-bottom:4px;
  opacity:0.85;
}
.navlinks a.active{opacity:1; color:var(--rust);}
.navlinks a:hover{opacity:1;}
.navlinks a::after{
  content:'';
  position:absolute;
  left:0; bottom:0;
  width:0; height:1px;
  background:var(--rust);
  transition:width 0.3s ease;
}
.navlinks a:hover::after{width:100%;}
.nav-cta{
  font-size:0.82rem;
  letter-spacing:0.04em;
  padding:10px 22px;
  border:1px solid var(--ink);
  border-radius:2px;
  transition:background 0.25s ease, color 0.25s ease;
}
.nav-cta:hover{background:var(--ink); color:var(--cream);}
@media (max-width:900px){ .navlinks{display:none;} }

/* ---------- PAGE HERO (interior pages) ---------- */
.page-hero{
  padding:190px 0 110px;
  border-bottom:1px solid var(--line);
  position:relative;
  overflow:hidden;
}
.page-hero .wrap{
  display:grid;
  grid-template-columns:1.3fr 0.7fr;
  gap:60px;
  align-items:end;
}
.page-hero h1{
  font-size:clamp(2.2rem, 4.6vw, 3.6rem);
  line-height:1.08;
  max-width:14ch;
}
.page-hero h1 em{font-style:italic; color:var(--rust); font-weight:400;}
.page-hero p{
  font-size:1rem;
  color:rgba(43,38,32,0.72);
  max-width:34ch;
  padding-bottom:6px;
}
.page-hero .eyebrow{display:block; margin-bottom:20px;}

/* ---------- BIG HERO (home only) ---------- */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:flex-end;
  background:
    radial-gradient(ellipse at 78% 18%, rgba(168,80,46,0.10), transparent 55%),
    radial-gradient(ellipse at 15% 85%, rgba(94,110,79,0.10), transparent 50%),
    var(--cream);
  overflow:hidden;
}
.hero-branch{
  position:absolute;
  top:-40px; right:-60px;
  width:520px;
  opacity:0.9;
}
.hero-inner{position:relative; width:100%; padding:0 0 90px 0;}
.hero .wrap{
  display:grid;
  grid-template-columns:1.4fr 0.6fr;
  gap:60px;
  align-items:end;
}
.hero h1{
  font-size:clamp(2.6rem, 6vw, 5.1rem);
  line-height:1.02;
  max-width:11ch;
}
.hero h1 em{font-style:italic; color:var(--rust); font-weight:400;}
.hero-sub{padding-bottom:6px;}
.hero-sub p{
  font-size:1.02rem;
  max-width:34ch;
  color:rgba(43,38,32,0.75);
  margin-top:22px;
}
.scroll-cue{
  display:flex; align-items:center; gap:12px;
  margin-top:52px;
  font-size:0.78rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:rgba(43,38,32,0.55);
}
.scroll-cue .stem{width:38px; height:1px; background:rgba(43,38,32,0.4); position:relative;}
.scroll-cue .stem::after{
  content:''; position:absolute; right:0; top:-2px;
  width:5px; height:5px; border-radius:50%;
  background:var(--rust);
  animation:drift 2.2s ease-in-out infinite;
}
@keyframes drift{0%,100%{transform:translateX(0);} 50%{transform:translateX(6px);}}

/* ---------- STATEMENT (asymmetric) ---------- */
.statement{padding:150px 0 130px; border-top:1px solid var(--line);}
.statement.tight{padding:100px 0;}
.statement .wrap{display:grid; grid-template-columns:0.85fr 1.15fr; gap:70px;}
.statement .label-col{padding-top:8px;}
.statement .label-col .eyebrow{margin-bottom:18px; display:block;}
.statement h2{
  font-size:clamp(1.7rem, 2.6vw, 2.5rem);
  line-height:1.3; font-weight:400; max-width:22ch;
}
.statement h2 .accent{color:var(--sage); font-style:italic;}
.statement p.body-copy{
  color:rgba(43,38,32,0.72);
  font-size:1rem;
  max-width:56ch;
  margin-top:10px;
}

/* ---------- PROCESS (alternating blocks) ---------- */
.process{padding:40px 0 60px;}
.process-row{
  display:grid; grid-template-columns:1fr 1fr;
  gap:80px; align-items:center; padding:90px 0;
  border-top:1px solid var(--line);
}
.process-row:nth-child(even) .process-media{order:2;}
.process-media{
  aspect-ratio:4/5; border-radius:2px;
  background:linear-gradient(155deg, var(--cream-deep), #E2D5BC 60%, #D8C9A9);
  position:relative; overflow:hidden;
}
.process-media.alt{background:linear-gradient(155deg, #E7DCC4, var(--cream-deep) 60%, #DCCDAE);}
.process-media.sage{background:linear-gradient(155deg, #C7CEBB, #AEB89C 60%, #97A480);}
.process-media::before{
  content:''; position:absolute; inset:0;
  background:
    radial-gradient(circle at 30% 25%, rgba(255,255,255,0.5), transparent 40%),
    radial-gradient(circle at 70% 75%, rgba(94,110,79,0.12), transparent 45%);
}
.process-index{
  font-family:'Fraunces', serif; font-size:0.85rem;
  color:var(--gold); letter-spacing:0.08em;
  margin-bottom:22px; display:block;
}
.process-copy h3{font-size:clamp(1.5rem, 2.4vw, 2.1rem); font-weight:400; max-width:18ch; margin-bottom:20px;}
.process-copy p{color:rgba(43,38,32,0.72); max-width:44ch; font-size:0.98rem; margin-bottom:14px;}
.process-copy ul{list-style:none; margin-top:18px;}
.process-copy ul li{
  font-size:0.92rem; color:rgba(43,38,32,0.75);
  padding:10px 0; border-top:1px solid var(--line);
}
.process-copy ul li:first-child{border-top:none;}
.process-copy ul li strong{color:var(--ink); font-weight:500;}

/* ---------- COLLECTIONS ---------- */
.collections{padding:130px 0; background:var(--cream-deep);}
.collections.on-cream{background:var(--cream);}
.collections-head{
  display:flex; justify-content:space-between; align-items:flex-end;
  margin-bottom:64px; gap:40px; flex-wrap:wrap;
}
.collections-head h2{font-size:clamp(1.9rem, 3vw, 2.6rem); font-weight:400; max-width:16ch;}
.collections-head p{max-width:32ch; color:rgba(43,38,32,0.7); font-size:0.95rem; padding-bottom:6px;}
.collection-grid{
  display:grid; grid-template-columns:1.3fr 1fr 1fr;
  grid-template-rows:auto auto; gap:24px;
}
.collection-grid.even{grid-template-columns:repeat(3, 1fr);}
.collection-card{
  background:var(--cream); border:1px solid var(--line);
  padding:38px 32px; position:relative;
  transition:transform 0.35s ease, box-shadow 0.35s ease;
}
.collection-card:hover{transform:translateY(-4px); box-shadow:0 20px 40px -20px rgba(43,38,32,0.18);}
.collection-grid:not(.even) .collection-card:first-child{
  grid-row:span 2; display:flex; flex-direction:column; justify-content:flex-end;
  min-height:420px; background:linear-gradient(165deg, #3F4A34, var(--sage-deep)); color:var(--cream);
}
.collection-grid:not(.even) .collection-card:first-child .eyebrow{color:var(--cream); opacity:0.7;}
.collection-grid:not(.even) .collection-card:first-child h3{color:var(--cream);}
.collection-grid:not(.even) .collection-card:first-child p{color:rgba(247,242,231,0.75);}
.collection-card .eyebrow{display:block; margin-bottom:14px;}
.collection-card h3{font-size:1.35rem; font-weight:400; margin-bottom:12px;}
.collection-card p{font-size:0.88rem; color:rgba(43,38,32,0.65);}
.collection-card .swatch{
  width:100%; height:120px; border-radius:2px; margin-bottom:22px;
  background:linear-gradient(140deg, var(--cream-deep), #DCCDAE);
}

/* ---------- TRUST ---------- */
.trust{padding:140px 0 120px;}
.trust.tight{padding:0 0 120px;}
.trust-quote{max-width:820px; margin:0 auto 90px; text-align:center;}
.trust-quote .mark{font-family:'Fraunces', serif; font-size:3.5rem; color:var(--rust); line-height:1; margin-bottom:10px;}
.trust-quote p{
  font-family:'Fraunces', serif; font-size:clamp(1.3rem, 2.6vw, 1.9rem);
  font-weight:400; font-style:italic; line-height:1.5; color:var(--ink);
}
.trust-quote cite{
  display:block; margin-top:26px; font-style:normal;
  font-family:'Work Sans', sans-serif; font-size:0.8rem;
  letter-spacing:0.1em; text-transform:uppercase; color:rgba(43,38,32,0.55);
}
.clients{
  display:flex; justify-content:space-between; align-items:center;
  flex-wrap:wrap; gap:36px; padding-top:56px; border-top:1px solid var(--line);
}
.clients .eyebrow{width:100%; margin-bottom:8px;}
.client-name{font-family:'Fraunces', serif; font-size:1.15rem; color:rgba(43,38,32,0.4); letter-spacing:0.02em;}

.cert-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:70px;
}
.cert-card{
  border:1px solid var(--line); padding:30px 26px; text-align:left;
}
.cert-card .eyebrow{display:block; margin-bottom:10px;}
.cert-card h4{font-family:'Fraunces', serif; font-weight:500; font-size:1.02rem; margin-bottom:8px;}
.cert-card p{font-size:0.85rem; color:rgba(43,38,32,0.62);}

.testimonial-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:30px; margin-top:16px;
}
.testimonial-card{
  border:1px solid var(--line); padding:36px 32px; background:var(--cream);
}
.testimonial-card p{
  font-family:'Fraunces', serif; font-style:italic; font-size:1.05rem;
  line-height:1.55; margin-bottom:20px;
}
.testimonial-card cite{
  font-style:normal; font-size:0.78rem; letter-spacing:0.08em;
  text-transform:uppercase; color:rgba(43,38,32,0.55);
}

.photo-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:70px;
}
.photo-tile{aspect-ratio:1; border-radius:2px; background:linear-gradient(145deg, var(--cream-deep), #DCCDAE);}
.photo-tile.tall{aspect-ratio:3/4;}
.photo-tile.sage{background:linear-gradient(145deg, #C7CEBB, #97A480);}
.photo-tile.rust{background:linear-gradient(145deg, #D8A88C, #A8502E);}

/* ---------- SHOWROOM ---------- */
.showroom{padding:0 0 40px;}
.showroom-inner{
  background:var(--sage-deep); color:var(--cream); padding:110px 0;
  position:relative; overflow:hidden;
}
.showroom-inner::before{
  content:''; position:absolute; bottom:-100px; left:-80px;
  width:360px; height:360px; border-radius:50%;
  background:radial-gradient(circle, rgba(168,80,46,0.18), transparent 70%);
}
.showroom .wrap{display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; position:relative;}
.showroom .eyebrow{color:#D8B98C;}
.showroom h2{color:var(--cream); font-size:clamp(1.9rem, 3vw, 2.6rem); font-weight:400; max-width:14ch; margin-top:18px;}
.showroom-details{display:flex; flex-direction:column; gap:26px;}
.showroom-details .row{border-top:1px solid rgba(247,242,231,0.18); padding-top:20px;}
.showroom-details .row .k{
  font-size:0.75rem; letter-spacing:0.14em; text-transform:uppercase; color:#D8B98C;
  display:block; margin-bottom:8px;
}
.showroom-details .row .v{font-size:1.02rem; color:rgba(247,242,231,0.9);}

.map-block{
  margin-top:70px; border:1px solid var(--line); aspect-ratio:16/6;
  background:linear-gradient(135deg, var(--cream-deep), #DCCDAE);
  display:flex; align-items:center; justify-content:center;
}
.map-block span{font-size:0.8rem; letter-spacing:0.1em; text-transform:uppercase; color:rgba(43,38,32,0.5);}

/* ---------- FORM (contact) ---------- */
.contact-layout{
  display:grid; grid-template-columns:0.9fr 1.1fr; gap:70px; padding:20px 0 130px;
}
.contact-info .row{border-top:1px solid var(--line); padding:22px 0;}
.contact-info .row:first-child{border-top:none;}
.contact-info .row .k{
  font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--rust);
  display:block; margin-bottom:8px;
}
.contact-info .row .v{font-size:1rem; color:rgba(43,38,32,0.8);}
.form-panel{background:var(--cream-deep); padding:48px; border-radius:2px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:20px;}
.field{display:flex; flex-direction:column; gap:8px;}
.field.full{grid-column:1/-1;}
.field label{
  font-size:0.75rem; letter-spacing:0.08em; text-transform:uppercase; color:rgba(43,38,32,0.6);
}
.field input, .field select, .field textarea{
  border:1px solid var(--line); background:var(--cream);
  padding:13px 14px; font-family:'Work Sans', sans-serif; font-size:0.92rem; color:var(--ink);
  border-radius:1px;
}
.field textarea{resize:vertical; min-height:110px;}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--rust);
}
.submit-btn{
  margin-top:8px; width:100%; padding:15px; background:var(--ink); color:var(--cream);
  border:none; font-family:'Work Sans', sans-serif; font-size:0.9rem; letter-spacing:0.05em;
  cursor:pointer; transition:background 0.25s ease;
}
.submit-btn:hover{background:var(--rust-deep);}

/* ---------- FOOTER ---------- */
footer{padding:80px 0 44px; border-top:1px solid var(--line);}
.footer-top{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:50px; padding-bottom:64px; border-bottom:1px solid var(--line);}
.footer-brand .brandmark{margin-bottom:18px;}
.footer-brand p{max-width:30ch; font-size:0.88rem; color:rgba(43,38,32,0.6);}
.footer-col h4{font-family:'Fraunces', serif; font-weight:500; font-size:0.9rem; margin-bottom:18px;}
.footer-col a{display:block; font-size:0.88rem; color:rgba(43,38,32,0.65); margin-bottom:12px;}
.footer-col a:hover{color:var(--rust);}
.footer-bottom{display:flex; justify-content:space-between; padding-top:32px; font-size:0.78rem; color:rgba(43,38,32,0.5); letter-spacing:0.03em;}

@media (max-width:900px){
  .wrap{padding:0 24px;}
  .hero .wrap, .statement .wrap, .process-row, .showroom .wrap, .page-hero .wrap, .contact-layout{grid-template-columns:1fr;}
  .process-row:nth-child(even) .process-media{order:0;}
  .collection-grid, .collection-grid.even{grid-template-columns:1fr;}
  .collection-grid:not(.even) .collection-card:first-child{min-height:300px;}
  .footer-top{grid-template-columns:1fr 1fr;}
  .hero-branch{width:340px; opacity:0.5;}
  .cert-grid, .photo-grid, .testimonial-grid{grid-template-columns:1fr 1fr;}
  .form-row{grid-template-columns:1fr;}
}
