:root{
  --ink:#141414;
  --ink-soft:#3a3a3a;
  --muted:#6a6a6a;
  --line:#e6e4df;
  --bg:#faf8f4;
  --paper:#ffffff;
  --accent:#2f3a2b;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:hidden}
body{
  font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  font-weight:400;
  color:var(--ink);
  background:var(--bg);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  max-width:100%;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}

h1,h2,h3{
  font-family:'Fraunces',Georgia,serif;
  font-weight:400;
  letter-spacing:-0.01em;
  line-height:1.1;
  color:var(--ink);
}
h1{font-size:clamp(2.4rem,5.5vw,4.8rem)}
h2{font-size:clamp(1.9rem,3.6vw,3rem)}
h3{font-size:1.25rem;font-weight:500}

.eyebrow,.section-label{
  font-family:'Inter',sans-serif;
  text-transform:uppercase;
  letter-spacing:0.18em;
  font-size:0.72rem;
  color:var(--muted);
  font-weight:500;
}

.lede{
  font-size:1.05rem;
  color:var(--ink-soft);
  max-width:56ch;
}

/* Focus states */
a:focus-visible,
button:focus-visible{
  outline:2px solid var(--ink);
  outline-offset:3px;
  border-radius:2px;
}
.nav a:focus-visible,
.nav button:focus-visible{
  outline-color:currentColor;
}

/* Skip link */
.skip-link{
  position:absolute;
  left:-9999px;
  top:0;
  background:var(--ink);
  color:#fff;
  padding:0.75rem 1rem;
  z-index:100;
  font-size:0.85rem;
  letter-spacing:0.08em;
}
.skip-link:focus{left:1rem;top:1rem}

/* NAV */
.nav{
  position:fixed;
  top:0;left:0;right:0;
  z-index:40;
  padding:0.9rem 1rem;
  color:#fff;
}
.nav-pill{
  max-width:1400px;
  margin:0 auto;
  border:1px solid transparent;
  border-radius:999px;
  background:transparent;
  box-shadow:none;
  transition:max-width 350ms ease-in-out,
             background-color 350ms ease-in-out,
             border-color 350ms ease-in-out,
             box-shadow 350ms ease-in-out,
             backdrop-filter 350ms ease-in-out;
  position:relative;
}
.nav-inner{
  display:flex;justify-content:space-between;align-items:center;
  gap:2rem;
  padding:0.5rem 1.2rem;
  height:3.6rem;
  transition:padding 350ms ease-in-out,height 350ms ease-in-out;
}
.nav .brand{
  font-family:'Fraunces',serif;
  font-size:1.25rem;
  letter-spacing:-0.01em;
  display:inline-flex;
  align-items:baseline;
  line-height:1;
}
.brand-ever{
  font-family:'Fraunces',Georgia,serif;
  font-style:italic;
  font-weight:400;
}
.brand-shade{
  font-family:'Inter',sans-serif;
  font-style:normal;
  font-weight:800;
  letter-spacing:-0.015em;
}
.nav nav{display:flex;gap:1.8rem;align-items:center}
.nav nav a{
  font-size:0.8rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  opacity:0.9;
  transition:opacity .2s,color .2s;
}
.nav nav a:hover{opacity:1}
.nav-cta{
  border:1px solid currentColor;
  padding:0.5rem 1rem;
  border-radius:999px;
  opacity:0.9;
}

/* Scrolled state — shrinks into a centred pill */
.nav.is-scrolled .nav-pill{
  max-width:720px;
  background:rgba(20,20,20,0.78);
  border-color:rgba(255,255,255,0.12);
  box-shadow:0 10px 30px rgba(0,0,0,0.25);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.nav.is-scrolled .nav-inner{
  padding:0.4rem 1.2rem;
  height:3rem;
}
.nav.is-scrolled,
.nav.is-scrolled .nav nav a,
.nav.is-scrolled .brand{
  color:#fff;
}

/* Hamburger toggle */
.nav-toggle{
  display:none;
  background:none;
  border:0;
  padding:10px;
  cursor:pointer;
  color:inherit;
}
.nav-toggle span{
  display:block;
  width:22px;
  height:1.5px;
  background:currentColor;
  margin:5px 0;
  transition:transform .25s ease, opacity .2s ease;
}
.nav.is-open .nav-toggle span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav.is-open .nav-toggle span:nth-child(2){opacity:0}
.nav.is-open .nav-toggle span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

@media(max-width:720px){
  .nav-toggle{display:block}
  .nav nav{
    display:none;
    position:absolute;
    top:calc(100% + 8px);
    left:0;right:0;
    flex-direction:column;
    align-items:stretch;
    gap:0.1rem;
    background:rgba(20,20,20,0.94);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    border:1px solid rgba(255,255,255,0.12);
    border-radius:20px;
    padding:0.8rem 1.2rem;
    box-shadow:0 12px 30px rgba(0,0,0,0.25);
  }
  .nav.is-open nav{display:flex}
  .nav nav a{
    color:#fff;
    padding:0.9rem 0.4rem;
    font-size:0.95rem;
    letter-spacing:0.06em;
    min-height:44px;
    display:flex;
    align-items:center;
  }
  .nav nav .nav-cta{
    border:1px solid rgba(255,255,255,0.4);
    padding:0.8rem 1rem;
    margin-top:0.4rem;
    justify-content:center;
  }
}

/* HERO */
.hero{
  position:relative;
  height:100vh;
  min-height:620px;
  overflow:hidden;
  background:#2a2a28;
}
.hero img{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  filter:brightness(0.78);
}
.hero-scrim{
  position:absolute;inset:0;
  background:
    linear-gradient(to bottom, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 55%, rgba(0,0,0,0.35) 100%);
  pointer-events:none;
}
.hero-copy{
  position:absolute;
  left:2rem;right:2rem;bottom:10vh;
  max-width:1400px;
  margin:0 auto;
  color:#fff;
}
@media(min-width:900px){
  .hero-copy{left:50%;transform:translateX(-50%);width:calc(100% - 4rem)}
}
.hero-copy .eyebrow{color:rgba(255,255,255,0.85)}
.hero-copy h1{color:#fff;margin:1rem 0 2rem;max-width:16ch}
.hero-copy .btn{margin-top:6px}

.btn{
  display:inline-block;
  padding:0.95rem 1.6rem;
  background:var(--ink);
  color:#fff;
  border:1px solid var(--ink);
  border-radius:999px;
  font-size:0.88rem;
  letter-spacing:0.04em;
  transition:transform .2s,background .2s;
}
.btn:hover{transform:translateY(-1px)}
.btn-light{background:#fff;color:var(--ink);border-color:#fff}

/* INTRO */
.intro{padding:clamp(4rem,10vw,8rem) 2rem}
.intro-inner{
  max-width:1100px;margin:0 auto;
  display:grid;gap:1.6rem;
}
.intro h2{max-width:22ch}

/* FEATURE */
.feature{
  position:relative;
  overflow:hidden;
}
.feature img{
  width:100%;
  height:clamp(380px,70vh,720px);
  object-fit:cover;
}
.feature-scrim{
  position:absolute;inset:0;
  background:linear-gradient(to top, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0) 55%);
  pointer-events:none;
}
.feature-copy{
  position:absolute;
  left:2rem;bottom:2rem;right:2rem;
  max-width:1400px;
  margin:0 auto;
  color:#fff;
}
@media(min-width:900px){
  .feature-copy{left:50%;transform:translateX(-50%);width:calc(100% - 4rem)}
  .feature-quote{max-width:34ch}
}
.feature-copy .eyebrow{color:rgba(255,255,255,0.9);margin-bottom:0.8rem}
.feature-quote{
  font-family:'Fraunces',Georgia,serif;
  font-size:clamp(1.3rem,2.4vw,2rem);
  line-height:1.25;
  font-weight:300;
  letter-spacing:-0.01em;
}

/* STUDIOS */
.studios{
  padding:clamp(3rem,6vw,5rem) 2rem clamp(5rem,10vw,8rem);
  background:var(--paper);
  border-top:1px solid var(--line);
}
.studios-head{
  max-width:1100px;margin:0 auto clamp(2.5rem,5vw,4rem);
  display:grid;gap:1.2rem;
}
.studios-head h2{max-width:18ch}

.studio-grid{
  max-width:1400px;margin:0 auto;
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(1.5rem,3vw,2.5rem);
}
@media(min-width:900px){
  .studio-grid{
    grid-template-columns:repeat(3,1fr);
    grid-auto-rows:auto;
  }
  .studio--final{
    grid-column:1 / -1;
    margin:clamp(2.5rem,5vw,4rem) auto 0;
    max-width:820px;
    padding:clamp(14px,1.2vw,20px);
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:18px;
    box-shadow:0 28px 60px -24px rgba(20,20,20,0.25);
    position:relative;
    text-align:center;
  }
  .studio--final img{
    aspect-ratio:3/2;
    border-radius:14px;
  }
  .studio--final figcaption{
    padding:1.25rem 0.4rem 0.4rem;
  }
}
.studio{
  display:flex;flex-direction:column;gap:1.2rem;
}
.studio img{
  aspect-ratio:4/3;
  object-fit:cover;
  width:100%;
  border-radius:14px;
  transform-origin:center center;
}
.studio figcaption{padding:0 0.2rem}
.studio .num{
  font-family:'Fraunces',serif;
  font-size:0.85rem;
  color:var(--muted);
  letter-spacing:0.1em;
  display:block;
  margin-bottom:0.5rem;
}
.studio h3{margin-bottom:0.5rem}
.studio p{color:var(--ink-soft);font-size:0.95rem}

/* Desktop choreographed animation */
@media(min-width:900px) and (prefers-reduced-motion: no-preference){
  .studio-grid .studio--step,
  .studio-grid .studio--final{
    opacity:0;
  }
  .studio-grid .studio--step{position:relative}
  .studio-grid .studio--step:nth-of-type(2){z-index:1}
  .studio-grid .studio--final{position:relative;z-index:2}

  .studio-grid.play .studio--final{
    animation:finalReveal 1.4s cubic-bezier(.22,1,.36,1) 0s both;
  }
  .studio-grid.play .studio--step:nth-of-type(1){
    animation:slideInLeft 1.35s cubic-bezier(.22,1,.36,1) .05s both;
  }
  .studio-grid.play .studio--step:nth-of-type(3){
    animation:slideInRight 1.25s cubic-bezier(.22,1,.36,1) .15s both;
  }
  .studio-grid.play .studio--step:nth-of-type(2){
    animation:riseFromBehind 1.25s cubic-bezier(.22,1,.36,1) .2s both;
  }

  @keyframes slideInLeft{
    0%   {opacity:0; transform:translateX(-100vw);}
    10%  {opacity:1;}
    100% {opacity:1; transform:translateX(0);}
  }
  @keyframes slideInRight{
    0%   {opacity:0; transform:translateX(100vw);}
    10%  {opacity:1;}
    100% {opacity:1; transform:translateX(0);}
  }
  @keyframes riseFromBehind{
    0%   {opacity:0; transform:translateY(clamp(420px,45vw,560px));}
    8%   {opacity:1;}
    100% {opacity:1; transform:translateY(0);}
  }
  @keyframes finalReveal{
    0%   {opacity:0; transform:scale(.985);}
    100% {opacity:1; transform:scale(1);}
  }

  /* Scroll-scrubbed variant */
  @supports (animation-timeline: view()) {
    .studio-grid{
      view-timeline-name:--studioGridTl;
      view-timeline-axis:block;
    }
    .studio-grid .studio--final,
    .studio-grid.play .studio--final{
      animation:finalReveal linear both;
      animation-timeline:--studioGridTl;
      animation-range:entry 0% entry 60%;
    }
    .studio-grid .studio--step:nth-of-type(1),
    .studio-grid.play .studio--step:nth-of-type(1){
      animation:slideInLeft linear both;
      animation-timeline:--studioGridTl;
      animation-range:entry 5% entry 65%;
    }
    .studio-grid .studio--step:nth-of-type(3),
    .studio-grid.play .studio--step:nth-of-type(3){
      animation:slideInRight linear both;
      animation-timeline:--studioGridTl;
      animation-range:entry 10% entry 65%;
    }
    .studio-grid .studio--step:nth-of-type(2),
    .studio-grid.play .studio--step:nth-of-type(2){
      animation:riseFromBehind linear both;
      animation-timeline:--studioGridTl;
      animation-range:entry 15% entry 65%;
    }
  }
}
/* Mobile / reduced motion: just show the cards */
@media(max-width:899px), (prefers-reduced-motion: reduce){
  .studio-grid .studio--step,
  .studio-grid .studio--final{opacity:1}
}

/* TESTIMONIALS */
.testimonials{
  padding:clamp(4rem,8vw,7rem) 2rem;
  background:var(--bg);
  border-top:1px solid var(--line);
}
.testimonials-inner{
  max-width:1100px;margin:0 auto;
  display:grid;gap:2rem;
}
.testimonials h2{max-width:40ch;margin:0}
.testimonials-heading{display:grid;grid-template-columns:1fr;gap:1rem}
.testimonials-heading .google-review{margin:0 auto}
.google-review{max-width:130px;width:100%;height:auto;display:block}
@media(min-width:720px){
  .testimonials-heading{grid-template-columns:repeat(3,1fr);gap:2.5rem;align-items:end}
  .testimonials-heading h2{grid-column:1 / -1;grid-row:1;justify-self:start;max-width:none}
  .testimonials-heading .google-review{grid-column:3;grid-row:1;justify-self:center;margin:0}
}
.testimonial-list{
  list-style:none;
  display:grid;
  grid-template-columns:1fr;
  gap:2rem;
  margin-top:1rem;
}
@media(min-width:720px){
  .testimonial-list{grid-template-columns:repeat(3,1fr);gap:2.5rem}
}
.testimonial-list li{
  display:grid;gap:1rem;
  padding:1.6rem 0 0;
  border-top:1px solid var(--line);
}
.testimonial-list blockquote{
  font-family:'Fraunces',Georgia,serif;
  font-size:1.1rem;
  line-height:1.4;
  color:var(--ink);
  font-weight:300;
  letter-spacing:-0.005em;
}
.testimonial-list .cite{
  font-size:0.78rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--muted);
}
.placeholder-note{
  margin-top:1.5rem;
  padding:1rem 1.2rem;
  border:1px dashed var(--muted);
  border-radius:4px;
  color:var(--muted);
  font-size:0.85rem;
  font-style:italic;
  max-width:48ch;
}

/* CTA */
.cta{
  padding:clamp(4rem,8vw,7rem) 2rem;
  background:var(--accent);
  color:#fff;
}
.cta-inner{
  max-width:900px;margin:0 auto;text-align:center;
  display:grid;gap:1.4rem;justify-items:center;
}
.cta h2{color:#fff;max-width:22ch}
.cta p{color:rgba(255,255,255,0.82);max-width:50ch}

/* FOOTER */
.footer{
  background:var(--ink);
  color:#cfcfcf;
  padding:3.5rem 2rem 2.5rem;
}
.footer-inner{
  display:flex;flex-direction:column;align-items:center;
  gap:1.2rem;
  text-align:center;
}
.vine-sig{
  width:100%;
  max-width:480px;
  height:auto;
  display:block;
  overflow:visible;
}
.vine-wordmark{
  stroke-dasharray:2600;
  stroke-dashoffset:2600;
}
.vine-sig .leaf{
  opacity:0;
  transform:scale(0);
  transform-origin:center;
  transform-box:fill-box;
}
.vine-sig.draw .vine-wordmark{
  animation:drawVineText 5s cubic-bezier(.45,0,.35,1) .2s forwards;
}
.vine-sig.draw .leaf{animation:popLeaf .55s cubic-bezier(.3,1.3,.5,1) forwards}
.vine-sig.draw .vl1{animation-delay:3.0s}
.vine-sig.draw .vl2{animation-delay:3.8s}
.vine-sig.draw .vl3{animation-delay:4.4s}

.footer .tagline{color:#9a9a9a;font-size:0.9rem}
.footer-links{justify-content:center}

@keyframes drawVineText{
  0%   {stroke-dashoffset:2600}
  100% {stroke-dashoffset:0}
}
@keyframes popLeaf{
  0%  {opacity:0; transform:scale(0)}
  60% {opacity:1; transform:scale(1.15)}
  100%{opacity:1; transform:scale(1)}
}

@media (prefers-reduced-motion: reduce){
  .vine-wordmark{stroke-dashoffset:0}
  .vine-sig .leaf{opacity:1; transform:scale(1)}
  .vine-sig.draw .vine-wordmark,
  .vine-sig.draw .leaf{animation:none}
}
.footer-inner{
  max-width:760px;
  margin:0 auto;
}
.footer .brand{
  font-family:'Fraunces',serif;
  color:#fff;
  font-size:1.15rem;
  margin-bottom:0.4rem;
}
.footer .muted{color:#9a9a9a;font-size:0.9rem}
.footer .small{font-size:0.78rem;width:100%;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #2a2a2a}
.footer-links{display:flex;gap:1.6rem;flex-wrap:wrap}
.footer-links a{font-size:0.9rem;color:#cfcfcf}
.footer-links a:hover{color:#fff}
.credit-link{color:#cfcfcf;border-bottom:1px solid #3a3a3a;padding-bottom:1px}
.credit-link:hover{color:#fff;border-color:#fff}

/* COMING SOON */
.soon{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:4rem 2rem;
  text-align:center;
}
.soon-inner{max-width:620px;display:grid;gap:1.4rem;justify-items:center}
.soon h1{font-size:clamp(2.4rem,5vw,3.8rem)}
.soon p{color:var(--ink-soft)}
.soon .note{
  margin-top:1rem;
  padding:1.2rem 1.4rem;
  border:1px dashed var(--muted);
  border-radius:4px;
  color:var(--muted);
  font-size:0.88rem;
  font-style:italic;
  max-width:48ch;
}
.soon .back{
  margin-top:1rem;
  font-size:0.85rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  border-bottom:1px solid var(--ink);
  padding-bottom:2px;
}

/* NAV on light pages — dark text at rest, pill inverts on scroll */
.nav--light{color:var(--ink)}
.nav--light .nav-cta{border-color:var(--ink)}
/* Non-hero pages need top padding so fixed nav doesn't overlap content */
body:has(.soon),
body:has(.product),
body:has(.gallery),
body:has(.contact-page),
body:has(.thanks){padding-top:5rem}

/* ============ POPUP ENQUIRY MODAL ============ */
.popup{
  position:fixed;
  inset:0;
  z-index:90;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:1.5rem;
}
.popup[hidden]{display:none}
.popup-backdrop{
  position:absolute;inset:0;
  background:rgba(0,0,0,0.55);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  animation:popupFade .3s ease;
}
.popup-card{
  position:relative;
  background:var(--paper);
  border-radius:6px;
  padding:clamp(1.6rem,4vw,2.4rem);
  max-width:480px;
  width:100%;
  max-height:90vh;
  overflow-y:auto;
  box-shadow:0 20px 60px rgba(0,0,0,0.4);
  animation:popupRise .35s cubic-bezier(.2,1,.4,1);
}
.popup-close{
  position:absolute;
  top:0.5rem;right:0.7rem;
  background:none;border:0;
  font-size:1.8rem;line-height:1;
  cursor:pointer;
  color:var(--muted);
  padding:0.25rem 0.55rem;
  z-index:1;
}
.popup-close:hover{color:var(--ink)}
.popup .section-label{margin-bottom:0.6rem}
.popup h2{
  font-size:clamp(1.45rem,3vw,1.85rem);
  margin-bottom:0.6rem;
  max-width:18ch;
}
.popup-sub{
  color:var(--ink-soft);
  font-size:0.92rem;
  margin-bottom:1.4rem;
  max-width:36ch;
}
@keyframes popupFade{from{opacity:0}to{opacity:1}}
@keyframes popupRise{
  from{opacity:0;transform:translateY(20px) scale(0.97)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@media (prefers-reduced-motion: reduce){
  .popup-backdrop,.popup-card{animation:none}
}

/* ============ WHATSAPP FLOATING BUTTON ============ */
.wa-float{
  position:fixed;
  bottom:1.4rem;
  right:1.4rem;
  width:3.6rem;
  height:3.6rem;
  border-radius:50%;
  background:#25D366;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 8px 24px rgba(0,0,0,0.22);
  z-index:60;
  transition:transform .2s ease, box-shadow .2s ease;
}
.wa-float:hover{
  transform:scale(1.08);
  box-shadow:0 10px 30px rgba(0,0,0,0.30);
}
.wa-float:focus-visible{outline-color:#25D366}
.wa-float svg{width:1.9rem;height:1.9rem;display:block;fill:#fff}

/* ============ TRUST STATS BAND ============ */
.trust{
  background:var(--ink);
  color:#fff;
  padding:clamp(2.5rem,5vw,4rem) 2rem;
}
.trust-inner{
  max-width:1200px;margin:0 auto;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:2.2rem 1rem;
}
@media(min-width:680px){
  .trust-inner{grid-template-columns:repeat(3,1fr)}
}
@media(min-width:920px){
  .trust-inner{grid-template-columns:repeat(5,1fr);gap:1.2rem}
}
.trust-stat{
  text-align:center;
  display:grid;gap:0.45rem;
  padding:0 0.4rem;
  position:relative;
}
@media(max-width:679px){
  .trust-stat--hide-mobile{display:none}
}
@media(min-width:920px){
  .trust-stat + .trust-stat::before{
    content:"";
    position:absolute;left:0;top:18%;bottom:18%;
    width:1px;background:rgba(255,255,255,0.12);
  }
}
.trust-stat .stat-num{
  font-family:'Fraunces',Georgia,serif;
  font-weight:400;
  font-size:clamp(1.9rem,3.4vw,2.6rem);
  letter-spacing:-0.01em;
  line-height:1;
  color:#fff;
}
.trust-stat .stat-label{
  font-family:'Inter',sans-serif;
  text-transform:uppercase;
  letter-spacing:0.16em;
  font-size:0.7rem;
  color:rgba(255,255,255,0.72);
  font-weight:500;
}
.trust-stat .stat-sub{
  font-size:0.78rem;
  color:rgba(255,255,255,0.5);
  margin-top:0.1rem;
}

/* ============ KEY FEATURES 6-UP ============ */
.features{
  padding:clamp(4rem,8vw,7rem) 2rem;
  background:var(--bg);
}
.features-head{
  max-width:1200px;margin:0 auto clamp(2rem,4vw,3.5rem);
  display:grid;gap:1rem;
}
.features-head h2{max-width:22ch}
.features-grid{
  max-width:1200px;margin:0 auto;
  display:grid;
  grid-template-columns:1fr;
  gap:2rem 1.6rem;
}
@media(min-width:640px){
  .features-grid{grid-template-columns:repeat(2,1fr)}
}
@media(min-width:980px){
  .features-grid{grid-template-columns:repeat(3,1fr);gap:2.4rem 1.8rem}
}
.feat{
  display:grid;
  gap:0.9rem;
}
.feat img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  border-radius:3px;
  background:var(--line);
}
.feat h3{
  font-family:'Fraunces',Georgia,serif;
  font-size:1.2rem;
  font-weight:500;
  margin:0;
}
.feat p{
  color:var(--ink-soft);
  font-size:0.92rem;
  line-height:1.55;
}

/* ============ SIZES TEASER ============ */
.sizes-teaser{
  padding:clamp(4rem,8vw,6rem) 2rem;
  background:var(--paper);
  border-top:1px solid var(--line);
}
.sizes-teaser-inner{
  max-width:1200px;margin:0 auto;
  display:grid;gap:2rem;
  grid-template-columns:1fr;
  align-items:center;
}
@media(min-width:880px){
  .sizes-teaser-inner{
    grid-template-columns:1.05fr 1fr;
    gap:3.5rem;
  }
}
.sizes-teaser-content{display:grid;gap:1.4rem;justify-items:start}
.sizes-teaser-image{
  width:100%;
  border-radius:3px;
  aspect-ratio:4/3;
  object-fit:cover;
  display:block;
}
.sizes-teaser h2{max-width:18ch}
.sizes-row{
  display:flex;flex-wrap:wrap;gap:0.6rem;
  width:100%;
  margin-top:0.4rem;
}
.size-chip{
  font-family:'Fraunces',Georgia,serif;
  font-size:clamp(1.05rem,1.8vw,1.3rem);
  font-weight:400;
  padding:0.6rem 1.1rem;
  border:1px solid var(--line);
  border-radius:4px;
  color:var(--ink);
  background:var(--bg);
  letter-spacing:0.01em;
}
.sizes-meta{
  color:var(--muted);
  font-size:0.92rem;
}
.sizes-link{
  display:inline-flex;
  align-items:center;
  gap:0.4rem;
  font-size:0.92rem;
  letter-spacing:0.02em;
  border-bottom:1px solid var(--ink);
  padding-bottom:2px;
  font-weight:500;
  margin-top:0.4rem;
}
.sizes-link:hover{opacity:0.7}

/* ============ FINAL CTA — phone + WhatsApp ============ */
.cta-contact{
  display:grid;gap:1.1rem;
  margin-top:0.8rem;
  justify-items:center;
}
.cta-phone{
  font-family:'Fraunces',Georgia,serif;
  font-size:clamp(1.5rem,3vw,2rem);
  color:#fff;
  letter-spacing:0.01em;
}
.cta-phone:hover{opacity:0.85}
.cta-wa{
  display:inline-flex;align-items:center;gap:0.6rem;
  background:#25D366;color:#fff;
  padding:0.85rem 1.5rem;
  border-radius:999px;
  font-weight:600;
  font-size:0.95rem;
  letter-spacing:0.02em;
  transition:transform .15s ease, box-shadow .2s ease;
}
.cta-wa svg{width:1.15rem;height:1.15rem;fill:#fff}
.cta-wa:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(37,211,102,0.35)}
.cta-note{
  font-size:0.85rem;
  color:rgba(255,255,255,0.6);
  margin-top:0.3rem;
}

/* ============ ENQUIRY FORM ============ */
.enquiry{
  padding:clamp(4rem,8vw,7rem) 2rem;
  background:var(--paper);
  border-top:1px solid var(--line);
}
.enquiry-inner{
  max-width:560px;margin:0 auto;
  display:grid;gap:2rem;
}
.enquiry-head{display:grid;gap:0.7rem;text-align:center;justify-items:center}
.enquiry-head h2{max-width:18ch}
.enquiry-head p{color:var(--ink-soft);font-size:0.95rem;max-width:42ch}
.enquiry-form{display:grid;gap:1.1rem;position:relative}
.field-row{display:grid;grid-template-columns:1fr;gap:1.1rem}
@media(min-width:520px){.field-row{grid-template-columns:1fr 1fr}}
.field{display:grid;gap:0.4rem}
.field label{
  font-family:'Inter',sans-serif;
  font-size:0.72rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:500;
}
.field label .req{color:#a83434;margin-left:0.15rem}
.field input,
.field select{
  font-family:'Inter',sans-serif;
  font-size:1rem;
  padding:0.85rem 1rem;
  border:1px solid var(--line);
  border-radius:3px;
  background:var(--bg);
  color:var(--ink);
  width:100%;
  transition:border-color .15s ease, background-color .15s ease;
  -webkit-appearance:none;appearance:none;
}
.field select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23141414' stroke-width='1.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 1rem center;
  padding-right:2.5rem;
}
.field input:focus,
.field select:focus{
  outline:none;
  border-color:var(--ink);
  background:var(--paper);
}
.field.has-error input,
.field.has-error select{border-color:#a83434;background:#fcf3f3}
.field-error{
  font-size:0.78rem;
  color:#a83434;
  display:none;
}
.field.has-error .field-error{display:block}
.honeypot{position:absolute !important;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
.enquiry-form .btn{
  width:100%;
  justify-content:center;
  padding:1rem 1.4rem;
  margin-top:0.4rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.enquiry-form .btn[disabled]{opacity:0.6;cursor:wait}
.form-message{
  padding:0.9rem 1rem;
  border-radius:3px;
  font-size:0.9rem;
  display:none;
  line-height:1.45;
}
.form-message.is-error{
  display:block;
  background:#fae9e9;color:#7a1f1f;border:1px solid #e8c9c9;
}
.form-privacy{
  font-size:0.78rem;
  color:var(--muted);
  text-align:center;
  margin:0;
}
.form-privacy a{
  border-bottom:1px solid var(--muted);
  padding-bottom:1px;
}
.form-privacy a:hover{color:var(--ink);border-bottom-color:var(--ink)}

/* ============ CONTACT PAGE (form layout) ============ */
.contact-page{padding:clamp(4rem,8vw,7rem) 2rem}
.contact-inner{
  max-width:1100px;margin:0 auto;
  display:grid;gap:clamp(2.5rem,5vw,4rem);
  grid-template-columns:1fr;
  align-items:start;
}
@media(min-width:880px){
  .contact-inner{grid-template-columns:1fr 1.1fr;gap:5rem}
}
.contact-intro{display:grid;gap:1.2rem}
.contact-intro h1{font-size:clamp(2rem,4.2vw,3rem)}
.contact-direct{display:grid;gap:0.8rem;margin-top:1.5rem}
.contact-direct a{
  font-family:'Fraunces',Georgia,serif;
  font-size:1.4rem;
  letter-spacing:0.01em;
  border-bottom:1px solid var(--line);
  padding:0.6rem 0;
  display:block;
}
.contact-direct a:hover{border-bottom-color:var(--ink)}
.contact-direct .label{
  font-family:'Inter',sans-serif;
  font-size:0.72rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:500;
  margin-bottom:0.2rem;
}
.contact-form-wrap{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:4px;
  padding:clamp(1.6rem,3vw,2.4rem);
}

/* ============ THANK YOU PAGE ============ */
.thanks{
  min-height:88vh;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  text-align:center;
  padding:5rem 2rem 4rem;
  gap:2rem;
}
.thanks .vine-sig{
  max-width:720px;
  width:100%;
}
.thanks .vine-wordmark{stroke-width:1.1}
.thanks-copy{display:grid;gap:1rem;justify-items:center;max-width:560px}
.thanks-copy h1{font-size:clamp(2rem,4vw,2.8rem)}
.thanks-copy p{color:var(--ink-soft);font-size:1.05rem;max-width:42ch}
.thanks .back{
  display:inline-flex;align-items:center;gap:0.4rem;
  font-size:0.92rem;
  border-bottom:1px solid var(--ink);
  padding-bottom:2px;
  font-weight:500;
  margin-top:1rem;
}
.thanks .back:hover{opacity:0.7}

/* ============ LEGAL PAGES (terms, privacy) ============ */
.legal .product-head{max-width:60ch}
.legal h1{font-size:clamp(2rem,4vw,2.8rem)}
.legal-meta{
  font-size:0.82rem;
  color:var(--muted);
  letter-spacing:0.04em;
}
.legal-warning{
  margin-top:0.8rem;
  padding:0.9rem 1.1rem;
  background:#fff7e6;
  border:1px solid #f0e0b0;
  border-radius:4px;
  font-size:0.9rem;
  color:#5a4717;
}
.legal-block{display:grid;gap:0.8rem;max-width:62ch}
.legal-block h2{
  font-size:clamp(1.2rem,2vw,1.45rem);
  margin-top:0.5rem;
}
.legal-block p,
.legal-block li{
  font-size:0.95rem;
  color:var(--ink-soft);
  line-height:1.6;
}
.legal-block a{
  border-bottom:1px solid var(--ink);
  padding-bottom:1px;
}
.legal-block a:hover{opacity:0.7}

/* ============ GALLERY GRID ============ */
.gallery{
  padding:clamp(4rem,8vw,6rem) 2rem;
}
.gallery-head{
  max-width:1400px;margin:0 auto clamp(2rem,4vw,3rem);
  display:grid;gap:0.8rem;
}
.gallery-head h1{font-size:clamp(1.9rem,3.6vw,3rem);max-width:24ch}
.gallery-pricing{
  max-width:1400px;
  margin:clamp(2.5rem,5vw,4rem) auto 0;
  padding:clamp(1.8rem,4vw,2.6rem);
  border:1px solid var(--line);
  border-radius:14px;
  display:grid;
  gap:0.5rem;
  justify-items:start;
  background:var(--paper-2,transparent);
}
.gallery-price-from{
  font-family:'Fraunces',Georgia,serif;
  font-size:clamp(2rem,4vw,2.8rem);
  line-height:1.05;
}
.gallery-price-from strong{font-weight:500}
.gallery-price-note{color:var(--muted);font-size:0.92rem;max-width:40ch}
.gallery-note{
  font-size:0.82rem;
  color:var(--muted);
  font-style:italic;
  max-width:60ch;
}
.gallery-grid{
  max-width:1400px;margin:0 auto;
  display:grid;
  grid-template-columns:1fr;
  gap:0.6rem;
}
@media(min-width:560px){
  .gallery-grid{grid-template-columns:repeat(2,1fr);gap:0.8rem}
}
@media(min-width:920px){
  .gallery-grid{grid-template-columns:repeat(3,1fr);gap:1rem}
}
.gallery-grid figure{
  margin:0;
  overflow:hidden;
  border-radius:2px;
  background:var(--line);
}
.gallery-grid img{
  width:100%;
  height:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  display:block;
  transition:transform .5s ease;
}
.gallery-grid figure:hover img{transform:scale(1.03)}

/* ============ PRODUCT PAGE — Gazebos / studios.html ============ */
.product{padding:clamp(4rem,8vw,6rem) 2rem;background:var(--bg)}
.product-inner{max-width:1100px;margin:0 auto;display:grid;gap:clamp(2.5rem,5vw,4rem)}
.product-head{display:grid;gap:1rem;max-width:60ch}
.price-table{
  width:100%;
  border-collapse:collapse;
  font-size:0.95rem;
}
.price-table th,
.price-table td{
  text-align:left;
  padding:0.95rem 0.6rem;
  border-bottom:1px solid var(--line);
  vertical-align:top;
}
.price-table th{
  font-family:'Inter',sans-serif;
  font-weight:500;
  font-size:0.74rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--muted);
}
.price-table td.size{
  font-family:'Fraunces',Georgia,serif;
  font-size:1.1rem;
}
.price-table td.price{
  font-family:'Fraunces',Georgia,serif;
  font-size:1.1rem;
  text-align:right;
  white-space:nowrap;
}
.price-note{
  font-size:0.85rem;
  color:var(--muted);
  font-style:italic;
}
.product-block{display:grid;gap:1rem}
.product-block h2{font-size:clamp(1.5rem,2.6vw,2rem)}
.finish-list,.feature-list{
  list-style:none;display:grid;gap:0.7rem;
  font-size:0.95rem;color:var(--ink-soft);
}
.finish-list li::before,.feature-list li::before{
  content:"— ";color:var(--muted);
}

/* Spec sheet — two-column key/value list */
.spec-list{
  display:grid;
  gap:0;
  border-top:1px solid var(--line);
}
.spec-row{
  display:grid;
  grid-template-columns:1fr;
  gap:0.25rem;
  padding:1rem 0;
  border-bottom:1px solid var(--line);
}
@media(min-width:600px){
  .spec-row{
    grid-template-columns:170px 1fr;
    gap:1.5rem;
    align-items:baseline;
    padding:1.15rem 0;
  }
}
.spec-row dt{
  font-family:'Inter',sans-serif;
  font-size:0.74rem;
  font-weight:500;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--muted);
}
.spec-row dd{
  font-family:'Fraunces',Georgia,serif;
  font-size:1.05rem;
  color:var(--ink);
  line-height:1.4;
  margin:0;
}

/* Reduced-motion overrides */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .nav-pill,
  .nav-inner{transition:none}
  .nav-toggle span{transition:none}
  .wa-float,.cta-wa{transition:none}
}
