:root{
    --cream:#FAF7F2;
    --cream-2:#F3EDE3;
    --burgundy:#6B1E2E;
    --burgundy-deep:#4F1424;
    --burg-mid:#C4697A;
    --blush:#F0D9DE;
    --stone:#8A7E74;
    --ink:#4F1424;

    --display:"Cormorant Garamond",Georgia,serif;
    --sans:"Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;

    --measure:68rem;
    --gap:clamp(1rem,3vw,2rem);
    --section-y:clamp(4.5rem,10vw,8rem);
  }

  *,*::before,*::after{box-sizing:border-box}
  html{-webkit-text-size-adjust:100%}
  body{
    margin:0;
    background:var(--cream);
    color:var(--ink);
    font-family:var(--sans);
    font-size:clamp(1rem,0.96rem + 0.2vw,1.0625rem);
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }
  .wrap{width:min(100% - 2.5rem,var(--measure));margin-inline:auto}

  h1,h2,h3{font-family:var(--display);font-weight:500;line-height:1.06;margin:0;letter-spacing:-0.01em}
  h1{font-size:clamp(2.9rem,1.6rem + 5.4vw,5.4rem)}
  h2{font-size:clamp(2.1rem,1.4rem + 3vw,3.4rem)}
  h3{font-size:clamp(1.35rem,1.1rem + 1vw,1.7rem)}
  em{font-style:italic}
  p{margin:0 0 1.1rem}
  a{color:inherit}

  .eyebrow{
    font-family:var(--sans);font-size:0.72rem;font-weight:800;
    letter-spacing:0.22em;text-transform:uppercase;color:var(--burg-mid);
    margin:0 0 1.4rem;
  }
  .lede{font-size:clamp(1.08rem,1rem + 0.5vw,1.3rem);color:var(--stone);max-width:44ch}

  /* ---------- header ---------- */
  header{position:sticky;top:0;z-index:20;background:rgba(250,247,242,.92);backdrop-filter:blur(8px);border-bottom:1px solid rgba(107,30,46,.09)}
  .bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0}
  .mark{font-family:var(--sans);font-weight:800;font-size:1.35rem;letter-spacing:-0.035em;color:var(--burgundy);text-decoration:none}
  .navlinks{display:flex;align-items:center;gap:clamp(1rem,3vw,2.25rem)}
  .navlinks a{font-size:0.9rem;font-weight:500;text-decoration:none;color:var(--stone)}
  .navlinks a:hover{color:var(--burgundy)}
  .nav-hide{display:none}
  @media(min-width:720px){.nav-hide{display:inline}}

  /* ---------- buttons ---------- */
  .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
    font-family:var(--sans);font-weight:600;font-size:0.95rem;
    padding:.85rem 1.6rem;border-radius:999px;text-decoration:none;
    border:1px solid var(--burgundy);transition:transform .18s ease,background .18s ease,color .18s ease;
  }
  .btn-primary{background:var(--burgundy);color:var(--cream)}
  .btn-primary:hover{background:var(--burgundy-deep);transform:translateY(-1px)}
  .btn-ghost{background:transparent;color:var(--burgundy)}
  .btn-ghost:hover{background:rgba(107,30,46,.06)}
  .btn-invert{background:var(--cream);color:var(--burgundy);border-color:var(--cream)}
  .btn-invert:hover{transform:translateY(-1px)}
  .btn:focus-visible,a:focus-visible{outline:2px solid var(--burg-mid);outline-offset:3px}

  /* ---------- hero ---------- */
  .hero{padding:clamp(3.5rem,9vw,7rem) 0 clamp(3rem,7vw,5rem)}
  .hero h1{max-width:16ch;margin-bottom:1.6rem}
  .hero .lede{margin-bottom:2.2rem}
  .cta-row{display:flex;flex-wrap:wrap;gap:.85rem;align-items:center}
  .cta-note{font-size:.83rem;color:var(--stone);margin:1.1rem 0 0}

  /* ---------- contrast strip (signature) ---------- */
  .contrast{border-top:1px solid rgba(107,30,46,.12);border-bottom:1px solid rgba(107,30,46,.12);background:var(--cream-2)}
  .contrast-inner{display:grid;grid-template-columns:1fr;gap:0}
  @media(min-width:800px){.contrast-inner{grid-template-columns:1fr 1fr}}
  .panel{padding:clamp(2.4rem,5vw,3.6rem) clamp(1rem,3vw,2.6rem)}
  .panel + .panel{border-top:1px solid rgba(107,30,46,.12)}
  @media(min-width:800px){.panel + .panel{border-top:0;border-left:1px solid rgba(107,30,46,.12)}}
  .panel h3{margin-bottom:1rem}
  .panel.without h3{color:var(--stone)}
  .tally{list-style:none;margin:0;padding:0;font-size:.97rem;color:var(--stone)}
  .tally li{padding:.42rem 0;display:flex;gap:.7rem;align-items:baseline}
  .tally li::before{content:"";flex:0 0 auto;width:14px;height:1px;background:var(--burg-mid);transform:translateY(-4px)}
  .panel.with .tally li{color:var(--ink)}

  /* ---------- sections ---------- */
  section{padding:var(--section-y) 0}
  .section-head{max-width:52ch;margin-bottom:clamp(2.4rem,5vw,3.6rem)}
  .section-head h2{margin-bottom:1.1rem}

  /* steps */
  .steps{display:grid;gap:clamp(1.6rem,4vw,2.6rem);grid-template-columns:1fr}
  @media(min-width:760px){.steps{grid-template-columns:repeat(3,1fr)}}
  .step{border-top:2px solid var(--burgundy);padding-top:1.3rem}
  .step .n{font-family:var(--display);font-size:2.6rem;line-height:1;color:var(--burg-mid);display:block;margin-bottom:.7rem}
  .step h3{margin-bottom:.6rem;font-size:1.3rem}
  .step p{color:var(--stone);font-size:.97rem;margin:0}

  /* categories */
  .cats{display:grid;gap:1px;background:rgba(107,30,46,.13);border:1px solid rgba(107,30,46,.13);grid-template-columns:1fr}
  @media(min-width:620px){.cats{grid-template-columns:1fr 1fr}}
  @media(min-width:960px){.cats{grid-template-columns:repeat(3,1fr)}}
  .cat{background:var(--cream);padding:1.6rem 1.5rem}
  .cat h3{font-size:1.28rem;margin-bottom:.4rem}
  .cat p{font-size:.9rem;color:var(--stone);margin:0}
  .cats-note{margin-top:1.4rem;font-size:.92rem;color:var(--stone)}

  /* supplier block */
  .suppliers{background:var(--burgundy);color:var(--cream)}
  .suppliers .eyebrow{color:var(--blush)}
  .suppliers h2{color:var(--cream)}
  .suppliers .lede{color:var(--blush)}
  .offer{display:grid;gap:clamp(1.4rem,3vw,2.4rem);grid-template-columns:1fr;margin:clamp(2.2rem,5vw,3.2rem) 0}
  @media(min-width:760px){.offer{grid-template-columns:repeat(2,1fr)}}
  .offer-item{border-top:1px solid rgba(240,217,222,.34);padding-top:1.1rem}
  .offer-item h3{color:var(--cream);font-size:1.25rem;margin-bottom:.45rem}
  .offer-item p{color:var(--blush);font-size:.95rem;margin:0}

  /* rate card */
  .rates{margin-top:clamp(2.4rem,5vw,3.4rem)}
  .rates h3{color:var(--cream);margin-bottom:.6rem}
  .rates > p{color:var(--blush);font-size:.95rem;max-width:56ch}

  /* faq */
  details{border-bottom:1px solid rgba(107,30,46,.14);padding:1.15rem 0}
  details summary{
    cursor:pointer;list-style:none;font-family:var(--display);
    font-size:clamp(1.2rem,1.05rem + .5vw,1.45rem);color:var(--ink);
    display:flex;justify-content:space-between;gap:1.4rem;align-items:baseline;
  }
  details summary::-webkit-details-marker{display:none}
  details summary::after{content:"+";font-family:var(--sans);font-weight:500;color:var(--burg-mid);flex:0 0 auto}
  details[open] summary::after{content:"–"}
  details p{margin:.9rem 0 0;color:var(--stone);max-width:62ch;font-size:.97rem}

  /* closing */
  .closing{text-align:center}
  .closing h2{margin-bottom:1.2rem;max-width:20ch;margin-inline:auto}
  .closing .lede{margin-inline:auto;margin-bottom:2rem}
  .closing .cta-row{justify-content:center}

  footer{border-top:1px solid rgba(107,30,46,.12);padding:2.6rem 0;font-size:.87rem;color:var(--stone)}
  .foot{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center}
  .foot a{text-decoration:none}
  .foot a:hover{color:var(--burgundy)}

  @media(prefers-reduced-motion:reduce){
    *{animation:none!important;transition:none!important}
  }

/* ---------- forms ---------- */
.form-page{padding:clamp(3rem,7vw,5rem) 0 clamp(3.5rem,8vw,6rem)}
.form-intro{max-width:52ch;margin-bottom:clamp(2.2rem,5vw,3rem)}
.form-intro h1{font-size:clamp(2.4rem,1.5rem + 3.6vw,4rem);margin-bottom:1.1rem}
form.stagd{max-width:44rem}
.field{margin-bottom:1.5rem}
.field label{display:block;font-family:var(--sans);font-size:.86rem;font-weight:600;margin-bottom:.45rem;color:var(--ink)}
.field .hint{display:block;font-weight:400;color:var(--stone);font-size:.8rem;margin-top:.2rem}
.field input,.field select,.field textarea{
  width:100%;font-family:var(--sans);font-size:1rem;color:var(--ink);
  background:#fff;border:1px solid rgba(107,30,46,.22);border-radius:10px;
  padding:.8rem .9rem;transition:border-color .15s ease,box-shadow .15s ease;
}
.field textarea{min-height:8rem;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--burgundy);box-shadow:0 0 0 3px rgba(196,105,122,.18);
}
.field-row{display:grid;gap:1.5rem;grid-template-columns:1fr}
@media(min-width:640px){.field-row{grid-template-columns:1fr 1fr}}
.checkline{display:flex;gap:.7rem;align-items:flex-start;font-size:.92rem;color:var(--stone)}
.checkline input{width:auto;margin-top:.25rem;flex:0 0 auto}
.form-foot{margin-top:2rem;display:flex;flex-wrap:wrap;gap:1rem;align-items:center}
.form-foot .note{font-size:.84rem;color:var(--stone);margin:0}
.hp{position:absolute;left:-9999px}

/* ---------- thanks / 404 ---------- */
.centre-page{min-height:60vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:clamp(4rem,10vw,8rem) 0}
.centre-page h1{margin-bottom:1.2rem;max-width:18ch;margin-inline:auto}
.centre-page .lede{margin-inline:auto;margin-bottom:2rem}
