/* ============================================================
   A.A. DEVELOPMENT — Site Design System
   Language: "Lavinia" — cream, deep green, copper, editorial serif
   ============================================================ */

:root{
  --cream:      #F4EFE3;
  --cream-deep: #EDE7D6;
  --paper:      #FBF8F0;
  --green:      #1E3A2B;   /* headings, panels */
  --green-deep: #16291F;
  --ink:        #33352C;   /* body text */
  --ink-soft:   #6A6C5F;
  --copper:     #A85C33;   /* labels, accents */
  --oxblood:    #7E3B2C;   /* rare emphasis */
  --hairline:   rgba(30,58,43,.18);
  --hairline-strong: rgba(30,58,43,.55);
}

*{ margin:0; padding:0; box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
  background:var(--cream);
  color:var(--ink);
  font-family:'Inter',-apple-system,'Helvetica Neue',Arial,sans-serif;
  font-weight:300;
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

img{ display:block; width:100%; height:auto; }

a{ color:inherit; text-decoration:none; }

/* ---------- type ---------- */

h1,h2,h3,.serif{
  font-family:'Fraunces',Georgia,serif;
  font-weight:500;
  color:var(--green);
  line-height:1.08;
  letter-spacing:-0.01em;
}

h1{ font-size:clamp(2.6rem,6vw,4.6rem); }
h2{ font-size:clamp(1.9rem,3.6vw,2.9rem); }
h3{ font-size:clamp(1.25rem,2vw,1.55rem); }

.italic-sub{
  font-family:'Fraunces',Georgia,serif;
  font-style:italic;
  font-weight:400;
  font-size:clamp(1.15rem,2.2vw,1.5rem);
  color:var(--green);
  opacity:.85;
  line-height:1.4;
}

.kicker{
  font-size:.68rem;
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--copper);
}

.kicker--green{ color:var(--green); opacity:.75; }

.num{
  font-family:'Fraunces',Georgia,serif;
  font-style:italic;
  color:var(--copper);
  font-size:1.35rem;
  margin-right:.75rem;
}

p.lead{ font-size:1.18rem; line-height:1.7; }

/* ---------- layout ---------- */

.wrap{ max-width:1180px; margin:0 auto; padding:0 clamp(20px,4vw,48px); }
.wrap--narrow{ max-width:860px; }

section{ padding:clamp(3.2rem,7vw,6.5rem) 0; }

.rule{ border:none; border-top:1px solid var(--hairline-strong); }
.rule--soft{ border-top:1px solid var(--hairline); }

.section-head{
  display:flex; align-items:baseline; gap:1rem;
  padding-bottom:1.1rem; margin-bottom:2.6rem;
  border-bottom:1px solid var(--hairline-strong);
}

/* ---------- header / nav ---------- */

header.site{
  border-bottom:1px solid var(--hairline);
  background:var(--cream);
  position:sticky; top:0; z-index:50;
}

.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:1.15rem clamp(20px,4vw,48px);
  max-width:1320px; margin:0 auto;
}

.wordmark{
  font-size:.82rem; font-weight:500;
  letter-spacing:.26em; text-transform:uppercase;
  color:var(--green);
  display:inline-flex; align-items:center; gap:.8rem;
}
.wm-text span{ color:var(--copper); }
.seal{ width:44px; height:44px; flex:none; transition:transform .6s cubic-bezier(.2,.6,.2,1); }
a.wordmark:hover .seal{ transform:rotate(-8deg); }
/* footer lockup mirrors the header exactly: same seal size, same gap, same baseline */
footer.site .wordmark{ margin-bottom:2.4rem; }

.nav-links{ display:flex; gap:2.2rem; align-items:center; }

.nav-links a{
  font-size:.7rem; font-weight:500;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--green);
  padding-bottom:3px;
  border-bottom:1px solid transparent;
  transition:border-color .25s ease, color .25s ease;
}
.nav-links a:hover{ border-color:var(--copper); color:var(--copper); }
.nav-links a.active{ border-color:var(--hairline-strong); }

.nav-cta{
  border:1px solid var(--green) !important;
  padding:.62rem 1.3rem !important;
  transition:background .25s ease, color .25s ease !important;
}
.nav-cta:hover{ background:var(--green); color:var(--cream) !important; border-color:var(--green) !important; }

.nav-toggle{ display:none; background:none; border:none; cursor:pointer; }
.nav-toggle span{ display:block; width:24px; height:1.5px; background:var(--green); margin:5px 0; }

/* ---------- hero ---------- */

.hero{ padding-top:clamp(3rem,6vw,5.5rem); padding-bottom:0; }

.hero .kicker{ margin-bottom:1.6rem; display:block; }

.hero h1{ max-width:15ch; margin-bottom:1.4rem; }

.hero .italic-sub{ max-width:34ch; margin-bottom:3rem; }

.hero-media{ margin-top:clamp(2rem,4vw,3.5rem); }

.media-frame{ position:relative; }

.media-caption{
  background:var(--green);
  color:var(--cream);
  padding:1rem clamp(1.1rem,2.5vw,2rem);
  display:flex; flex-wrap:wrap; gap:.4rem 2rem;
  align-items:baseline;
  font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
}
.media-caption strong{ color:#D9B48F; font-weight:500; letter-spacing:.2em; }

/* ---------- statement / panels ---------- */

.panel{
  background:var(--green);
  color:#EAE4D3;
  padding:clamp(2.4rem,5vw,4rem);
  border-radius:2px;
}
.panel .kicker{ color:#C9946B; margin-bottom:1.3rem; display:block; }
.panel h2,.panel h3{ color:var(--paper); }
.panel p{ color:#D8D2C0; }

.panel--oxblood{ background:var(--oxblood); }
.panel--oxblood .kicker{ color:#E3B49A; }
.panel--oxblood p{ color:#EFDACC; }

blockquote.pull{
  font-family:'Fraunces',Georgia,serif;
  font-style:italic;
  font-size:clamp(1.4rem,2.8vw,2rem);
  color:var(--green);
  line-height:1.35;
  max-width:26ch;
}

/* ---------- project cards ---------- */

.grid{ display:grid; gap:clamp(1.6rem,3vw,2.8rem); }
.grid-2{ grid-template-columns:repeat(2,1fr); }
.grid-3{ grid-template-columns:repeat(3,1fr); }

.card{ display:block; }

.card .thumb{
  aspect-ratio:4/3; overflow:hidden; background:var(--cream-deep);
}
.card .thumb img{
  height:100%; object-fit:cover;
  transition:transform .8s cubic-bezier(.2,.6,.2,1), filter .8s ease;
}
.card:hover .thumb img{ transform:scale(1.035); }

.card-meta{ padding-top:1.05rem; border-top:1px solid var(--hairline-strong); margin-top:0; }
.card .thumb + .card-meta{ border-top:none; }

.card-status{
  font-size:.64rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--copper); font-weight:500;
  display:block; margin-bottom:.45rem;
}
.card h3{ margin-bottom:.3rem; }
.card .town{
  font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft);
}
.card .goto{
  display:inline-block; margin-top:.8rem;
  font-size:.68rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--green); border-bottom:1px solid var(--hairline-strong);
  padding-bottom:2px; transition:color .25s, border-color .25s;
}
.card:hover .goto{ color:var(--copper); border-color:var(--copper); }

/* ---------- spec tables (Lavinia signature) ---------- */

.spec{ width:100%; border-collapse:collapse; }
.spec th, .spec td{
  text-align:left; vertical-align:top;
  padding:1.05rem 1rem 1.05rem 0;
  border-bottom:1px solid var(--hairline);
}
.spec th{
  font-size:.66rem; font-weight:500;
  letter-spacing:.2em; text-transform:uppercase;
  color:var(--copper); width:220px;
  padding-top:1.2rem;
}
.spec td{ font-size:1rem; color:var(--ink); }
.spec tr:first-child th, .spec tr:first-child td{ border-top:2px solid var(--green); }
.spec td strong{ font-weight:500; color:var(--green); }
.spec .result{ font-family:'Fraunces',Georgia,serif; font-size:1.15rem; color:var(--green); white-space:nowrap; }

/* ---------- process ---------- */

.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:2rem; }
.step{ border-top:2px solid var(--green); padding-top:1.1rem; }
.step .kicker{ display:block; margin-bottom:.6rem; }
.step h3{ margin-bottom:.55rem; font-size:1.2rem; }
.step p{ font-size:.92rem; color:var(--ink-soft); }

/* ---------- CTA band ---------- */

.cta-band{ text-align:left; }
.cta-band .panel{ display:flex; flex-wrap:wrap; gap:2rem; align-items:center; justify-content:space-between; }
.cta-band h2{ max-width:20ch; font-size:clamp(1.6rem,3vw,2.3rem); }

.btn{
  display:inline-block;
  font-size:.7rem; font-weight:500;
  letter-spacing:.2em; text-transform:uppercase;
  padding:1rem 2.1rem;
  border:1px solid var(--cream);
  color:var(--cream);
  transition:background .3s, color .3s;
  white-space:nowrap;
}
.btn:hover{ background:var(--cream); color:var(--green); }

.btn--green{ border-color:var(--green); color:var(--green); }
.btn--green:hover{ background:var(--green); color:var(--cream); }

/* ---------- project page ---------- */

.project-hero{ padding-bottom:0; }
.project-hero .status-line{
  display:flex; gap:1.5rem; flex-wrap:wrap; align-items:baseline;
  margin:1.4rem 0 2.4rem;
}
.price{
  font-family:'Fraunces',Georgia,serif;
  font-size:1.5rem; color:var(--green);
}

.gallery-2{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:10px; }

.story{ max-width:64ch; }
.story p + p{ margin-top:1.2rem; }

/* ---------- inquiry / form ---------- */

.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; }
.field{ display:flex; flex-direction:column; gap:.45rem; }
.field.full{ grid-column:1 / -1; }
.field label{
  font-size:.66rem; font-weight:500; letter-spacing:.2em;
  text-transform:uppercase; color:var(--copper);
}
.field input, .field select, .field textarea{
  background:var(--paper);
  border:1px solid var(--hairline-strong);
  padding:.95rem 1rem;
  font-family:'Inter',sans-serif; font-size:.95rem; font-weight:300;
  color:var(--ink);
  border-radius:0;
  transition:border-color .25s;
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--green);
}
textarea{ min-height:150px; resize:vertical; }

/* ---------- footer ---------- */

footer.site{
  background:var(--green-deep);
  color:#B9BDA9;
  padding:clamp(3rem,6vw,4.5rem) 0 2.2rem;
  margin-top:clamp(2rem,5vw,4rem);
}
footer .wordmark{ color:var(--paper); margin-bottom:2.2rem; display:inline-flex; align-items:center; }
footer .wordmark span{ color:#C9946B; }

.foot-grid{ display:grid; grid-template-columns:2fr 1fr 1fr; gap:2.5rem; margin-bottom:3rem; }
.foot-grid .kicker{ color:#C9946B; display:block; margin-bottom:.9rem; }
.foot-grid a{ transition:color .25s; }
.foot-grid a:hover{ color:var(--paper); }
.foot-grid p, .foot-grid a{ font-size:.92rem; line-height:2; display:block; }

.foot-legal{
  border-top:1px solid rgba(244,239,227,.14);
  padding-top:1.6rem;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem;
  font-size:.72rem; letter-spacing:.08em; color:#8A8F7C;
}

/* ---------- utilities ---------- */

.mt-1{ margin-top:1rem; } .mt-2{ margin-top:2rem; } .mt-3{ margin-top:3rem; }
.mb-1{ margin-bottom:1rem; } .mb-2{ margin-bottom:2rem; } .mb-3{ margin-bottom:3rem; }
.two-col{ display:grid; grid-template-columns:1fr 1.2fr; gap:clamp(2rem,5vw,4.5rem); align-items:start; }

/* ============================================================
   WOW LAYER — cinematic motion, editorial breaks
   ============================================================ */

/* ---------- full-bleed cinematic hero ---------- */

.hero-cinema{
  position:relative;
  height:min(92vh,940px); min-height:580px;
  overflow:hidden;
  display:flex; align-items:flex-end;
  background:var(--green-deep);
}
.hero-cinema .bg{ position:absolute; inset:0; }
.hero-cinema .bg img{
  width:100%; height:100%; object-fit:cover;
  animation:kenburns 16s cubic-bezier(.2,.5,.3,1) forwards;
  transform-origin:60% 40%;
}
@keyframes kenburns{ from{ transform:scale(1.14); } to{ transform:scale(1.02); } }
.hero-cinema .veil{
  position:absolute; inset:0;
  background:linear-gradient(180deg,
    rgba(22,41,31,.34) 0%,
    rgba(22,41,31,.06) 42%,
    rgba(22,41,31,.60) 72%,
    rgba(20,37,28,.94) 100%);
}
.hero-cinema .hero-content h1,
.hero-cinema .hero-content .kicker,
.hero-cinema .hero-content .italic-sub,
.hero-cinema .hero-fact{
  text-shadow:0 1px 30px rgba(20,37,28,.45), 0 1px 2px rgba(20,37,28,.25);
}
.hero-cinema .hero-content{
  position:relative; z-index:2; width:100%;
  max-width:1320px; margin:0 auto;
  padding:0 clamp(20px,4vw,48px) clamp(2.6rem,5vw,4.2rem);
  color:var(--paper);
}
.hero-cinema .kicker{ color:#D9B48F; display:block; margin-bottom:1.5rem; }
.hero-cinema h1{
  color:var(--paper);
  font-size:clamp(2.9rem,7.2vw,6rem);
  max-width:14ch; text-wrap:balance;
  margin-bottom:1.2rem;
}
.hero-cinema h1 em{ font-style:italic; font-weight:400; color:#D9B48F; }
.hero-cinema .italic-sub{ color:#E9E2CE; max-width:40ch; margin-bottom:2.6rem; }
.hero-fact{
  border-top:1px solid rgba(244,239,227,.32);
  padding-top:1.25rem;
  display:flex; flex-wrap:wrap; gap:.5rem 2.4rem; align-items:baseline;
  font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:#C9C3AE;
}
.hero-fact strong{ color:#D9B48F; font-weight:500; letter-spacing:.22em; }

/* ---------- marquee ---------- */

.marquee{
  overflow:hidden;
  border-top:1px solid var(--hairline-strong);
  border-bottom:1px solid var(--hairline-strong);
  padding:1.4rem 0;
  background:var(--cream);
  -webkit-mask-image:linear-gradient(90deg, transparent 0%, #000 14%, #000 86%, transparent 100%);
          mask-image:linear-gradient(90deg, transparent 0%, #000 14%, #000 86%, transparent 100%);
}
.marquee-track{
  display:flex; gap:4.4rem; width:max-content;
  animation:marq 72s linear infinite;
}
.marquee-track span{
  font-family:'Fraunces',Georgia,serif; font-style:italic; font-weight:400;
  font-size:clamp(1.25rem,2.3vw,1.8rem);
  color:var(--green); white-space:nowrap;
  opacity:.92;
}
.marquee-track i{
  font-style:normal; color:var(--copper);
  font-size:.6rem; align-self:center; opacity:.8;
}
@keyframes marq{ to{ transform:translateX(-50%); } }
.marquee:hover .marquee-track{ animation-play-state:paused; }

/* ---------- scroll reveal ---------- */

.rv{
  opacity:0; transform:translateY(30px);
  transition:opacity 1s cubic-bezier(.2,.6,.2,1), transform 1s cubic-bezier(.2,.6,.2,1);
  transition-delay:var(--d,0s);
}
.rv.in{ opacity:1; transform:none; }
tr.rv{ transform:none; }               /* rows fade only — no layout glitch */

/* fine photographic fade: images settle into focus */
.thumb.rv, .media-frame.rv{ transform:none; }
.thumb.rv{
  opacity:0; filter:blur(14px);
  transition:opacity 1.25s ease var(--d,0s), filter 1.6s cubic-bezier(.2,.6,.2,1) var(--d,0s);
}
.thumb.rv.in{ opacity:1; filter:blur(0); }
.media-frame.rv > img{
  opacity:0; filter:blur(14px) brightness(1.03);
  transition:opacity 1.25s ease var(--d,0s), filter 1.6s cubic-bezier(.2,.6,.2,1) var(--d,0s);
}
.media-frame.rv.in > img{ opacity:1; filter:blur(0) brightness(1); }
.media-frame.rv .media-caption{
  opacity:0; transform:translateY(10px);
  transition:opacity .9s ease calc(var(--d,0s) + .35s), transform .9s ease calc(var(--d,0s) + .35s);
}
.media-frame.rv.in .media-caption{ opacity:1; transform:none; }

/* ---------- ghost numerals ---------- */

.section-head{ position:relative; overflow:visible; }
.section-head .num{
  position:absolute; right:0; bottom:-.6rem;
  font-size:clamp(4.5rem,10vw,8rem);
  opacity:.09; margin:0; line-height:1;
  pointer-events:none;
}

/* ---------- editorial stagger ---------- */

@media (min-width:901px){
  .grid-3 > *:nth-child(3n+2){ margin-top:3rem; }
  .grid-3 > *:nth-child(3n+3){ margin-top:6rem; }
  .grid-2 > *:nth-child(2n){ margin-top:3.5rem; }
}

/* ---------- parallax frames ---------- */

.media-frame{ overflow:hidden; }
.media-frame > img{ will-change:transform; transform:scale(1.1); }

/* project heroes go cinematic */
.project-hero .media-frame > img{
  aspect-ratio:21/10; object-fit:cover;
}
/* natural frames: show the entire residence, no crop, no parallax zoom */
.media-frame.frame-natural > img,
.project-hero .media-frame.frame-natural > img{
  aspect-ratio:auto; object-fit:unset; transform:none;
}
.gallery-2 img{ aspect-ratio:3/2; object-fit:cover; }

/* ---------- hover polish ---------- */

.btn{ transition:background .35s, color .35s, letter-spacing .35s; }
.btn:hover{ letter-spacing:.28em; }
.card .thumb img{ filter:saturate(.96); }
.card:hover .thumb img{ transform:scale(1.05); filter:saturate(1.05) brightness(1.02); }
.spec tr{ transition:background .3s; }
.spec tr:hover{ background:rgba(30,58,43,.035); }

/* ---------- footer watermark ---------- */

footer.site{ position:relative; overflow:hidden; }
footer.site::after{
  content:"A.A.";
  position:absolute; right:-1%; bottom:-22%;
  font-family:'Fraunces',Georgia,serif; font-style:italic;
  font-size:clamp(11rem,26vw,22rem); line-height:1;
  color:rgba(244,239,227,.045);
  pointer-events:none;
}
footer.site .wrap{ position:relative; z-index:1; }

/* ---------- fixes & new elements ---------- */

/* caption must paint above parallax-transformed image */
.media-caption{ position:relative; z-index:3; }

/* secondary project frame */
.media-frame--plain{ margin-top:10px; }
.media-frame--plain img{ aspect-ratio:21/10; object-fit:cover; }

/* film embed */
.film-wrap{ aspect-ratio:16/9; background:var(--green-deep); }
.film-wrap iframe{ width:100%; height:100%; border:0; display:block; }

/* instagram icon */
.nav-ig{ display:inline-flex; align-items:center; color:var(--green); transition:color .25s, transform .3s; }
.nav-ig:hover{ color:var(--copper); transform:translateY(-1px); }

/* discrete client/investor access */
.portal-link{
  font-size:.68rem; letter-spacing:.16em; text-transform:uppercase;
  color:#6E7361; border-bottom:1px solid transparent;
  transition:color .3s, border-color .3s;
}
.portal-link:hover{ color:var(--paper); border-color:rgba(244,239,227,.4); }

/* seal is an image now */
img.seal{ border-radius:50%; }

/* regions block, statement section */
.regions p{
  display:flex; align-items:baseline; gap:1.2rem;
  font-size:.74rem; letter-spacing:.13em; text-transform:uppercase;
  color:var(--ink-soft);
  padding:.55rem 0; margin:0;
  border-top:1px solid var(--hairline);
}
.regions p:last-child{ border-bottom:1px solid var(--hairline); }
.regions span{
  color:var(--copper); font-weight:500; letter-spacing:.2em;
  flex:none; width:140px;
}
@media (max-width:640px){
  .regions p{ flex-direction:column; gap:.25rem; }
  .regions span{ width:auto; }
}

/* mobile: cinema hero + marquee proportions */
@media (max-width:640px){
  .hero-cinema{ height:88vh; min-height:520px; }
  .hero-fact{ gap:.4rem 1.2rem; font-size:.62rem; }
  .marquee-track span{ font-size:1.15rem; }
  .section-head .num{ font-size:4rem; bottom:0; }
  .nav-ig{ padding:1.1rem clamp(20px,4vw,48px); }
}

/* ---------- lightbox (sold-project photography) ---------- */

.lb-overlay{
  position:fixed; inset:0; z-index:200;
  background:rgba(20,37,28,.94);
  display:flex; align-items:center; justify-content:center; gap:1rem;
  opacity:0; pointer-events:none; transition:opacity .45s ease;
  padding:clamp(10px,3vw,40px);
}
.lb-overlay.open{ opacity:1; pointer-events:auto; }
.lb-stage{ max-width:min(1200px,86vw); margin:0; text-align:center; }
.lb-stage img{
  max-width:100%; max-height:76vh; width:auto; height:auto;
  margin:0 auto; display:block;
  box-shadow:0 30px 80px rgba(0,0,0,.45);
  transition:opacity .5s ease;
}
.lb-stage figcaption{
  margin-top:1.2rem; color:#D8D2C0;
  font-size:.72rem; letter-spacing:.18em; text-transform:uppercase;
  display:flex; gap:2rem; justify-content:center; align-items:baseline; flex-wrap:wrap;
}
.lb-stage figcaption strong{
  font-family:'Fraunces',Georgia,serif; font-style:italic; font-weight:400;
  font-size:1.05rem; letter-spacing:.04em; text-transform:none; color:var(--paper);
}
.lb-close, .lb-prev, .lb-next{
  background:none; border:1px solid rgba(244,239,227,.35);
  color:var(--paper); cursor:pointer;
  width:52px; height:52px; border-radius:50%;
  font-size:1.15rem; line-height:1;
  transition:background .3s, border-color .3s;
  flex:none;
}
.lb-close{ position:absolute; top:clamp(14px,3vw,30px); right:clamp(14px,3vw,30px); font-size:1.6rem; }
.lb-close:hover, .lb-prev:hover, .lb-next:hover{ background:rgba(244,239,227,.12); border-color:var(--paper); }
.lb-overlay.single .lb-prev, .lb-overlay.single .lb-next{ display:none; }
@media (max-width:640px){
  .lb-prev, .lb-next{ position:absolute; bottom:18px; }
  .lb-prev{ left:18px; } .lb-next{ right:18px; }
  .lb-stage img{ max-height:64vh; }
}

/* ---------- reduced motion ---------- */

@media (prefers-reduced-motion:reduce){
  .rv, .thumb.rv, .media-frame.rv > img, .media-frame.rv .media-caption{ opacity:1; transform:none; filter:none; transition:none; }
  .hero-cinema .bg img{ animation:none; }
  .marquee-track{ animation:none; }
  .media-frame > img{ transform:none; }
}

/* ---------- responsive ---------- */

@media (max-width:900px){
  .grid-3{ grid-template-columns:repeat(2,1fr); }
  .steps{ grid-template-columns:repeat(2,1fr); }
  .two-col{ grid-template-columns:1fr; }
  .foot-grid{ grid-template-columns:1fr 1fr; }
}

@media (max-width:640px){
  .nav-links{
    display:none;
    position:absolute; top:100%; left:0; right:0;
    background:var(--cream);
    flex-direction:column; gap:0;
    border-bottom:1px solid var(--hairline);
  }
  .nav-links.open{ display:flex; }
  .nav-links a{ padding:1.1rem clamp(20px,4vw,48px); width:100%; border-bottom:1px solid var(--hairline); }
  .nav-cta{ border:none !important; }
  .nav-toggle{ display:block; }
  .grid-2,.grid-3{ grid-template-columns:1fr; }
  .steps{ grid-template-columns:1fr; }
  .form-grid{ grid-template-columns:1fr; }
  .gallery-2{ grid-template-columns:1fr; }
  .spec th{ width:130px; }
  .foot-grid{ grid-template-columns:1fr; }
}


/* ============================================================
   V2 LAYER — sharper hierarchy, soft-black type, bronze rules,
   proof bar, facts strips, refined buttons, sticky mobile CTA
   ============================================================ */

:root{ --soft-black:#26261F; --bronze:rgba(168,92,51,.42); }

h1,h2,h3,.serif{ color:var(--soft-black); }
blockquote.pull{ color:var(--soft-black); }
.price, .spec .result, .spec td strong{ color:var(--soft-black); }
.italic-sub{ color:#3D3E35; }
.hero-cinema h1, .hero-cinema .italic-sub{ color:var(--paper); }
.hero-cinema .italic-sub{ color:#E9E2CE; }
.panel h2, .panel h3{ color:var(--paper); }
.spec tr:first-child th, .spec tr:first-child td{ border-top:2px solid var(--soft-black); }
.section-head{ border-bottom:1px solid var(--bronze); }
.step{ border-top:2px solid var(--soft-black); }

/* refined buttons */
.btn{ padding:.85rem 1.7rem; font-size:.66rem; }
.nav-cta{ padding:.55rem 1.15rem !important; }
.hero-ctas{ display:flex; gap:.9rem; flex-wrap:wrap; margin-bottom:2.6rem; }

/* proof bar */
.proof-bar{ padding:1.7rem 0; border-bottom:1px solid var(--hairline-strong); }
.proof-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.6rem 2.4rem; }
.proof-item .kicker{ display:block; margin-bottom:.4rem; }
.proof-item strong{
  font-family:'Fraunces',Georgia,serif; font-weight:500;
  color:var(--soft-black); font-size:1.02rem; line-height:1.35; display:block;
}
@media (max-width:900px){ .proof-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .proof-grid{ grid-template-columns:1fr; gap:1.1rem; } }

/* quieter marquee */
.marquee{ padding:1.05rem 0; opacity:.85; }
.marquee-track{ animation-duration:110s; gap:4.8rem; }
.marquee-track span{ font-size:clamp(1.02rem,1.8vw,1.4rem); opacity:.85; }

/* premium cards */
.card{ transition:transform .55s cubic-bezier(.2,.6,.2,1); }
.card:hover{ transform:translateY(-4px); }
.card-desc{ display:block; font-size:.85rem; color:var(--ink-soft); margin-top:.35rem; line-height:1.5; }

/* facts strip */
.facts{
  display:flex; flex-wrap:wrap; gap:.55rem 1.8rem;
  border-top:1px solid var(--bronze); border-bottom:1px solid var(--hairline);
  padding:.95rem 0; margin:0 0 2rem;
  font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft);
}

/* plans note + trust note */
.plans-note{
  font-size:.72rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-soft); margin:0 0 1.4rem;
}
.trust-note{ font-size:.8rem; color:var(--ink-soft); margin-top:1.2rem; letter-spacing:.04em; }

/* sticky mobile inquiry */
.sticky-cta{ display:none; }
@media (max-width:640px){
  .sticky-cta{
    display:block; position:fixed; left:16px; right:16px; bottom:14px; z-index:120;
    background:var(--green); color:var(--cream); text-align:center;
    padding:1.05rem; font-size:.68rem; font-weight:500;
    letter-spacing:.22em; text-transform:uppercase;
    box-shadow:0 12px 34px rgba(20,37,28,.35);
  }
  main{ padding-bottom:64px; }
}

/* subtle page entrance */
body{ animation:pageIn .55s ease both; }
@keyframes pageIn{ from{ opacity:0; } to{ opacity:1; } }
@media (prefers-reduced-motion:reduce){ body{ animation:none; } }
