  :root{
    /* Palette per brand board — var names are legacy:
       cream/sand = Sand grounds, ink = Obsidian,
       terracotta = Clay, forest = Fig, sage = Sage. */
    --cream:       #f1ece1;
    --sand:        #e6dfd1;
    --ink:         #221d21;
    --ink-soft:    #5d5356;
    --terracotta:  #b26a58;
    --terracotta-d:#9a5545;
    --forest:      #4a2f3b;
    --forest-deep: #332028;
    --sage:        #8b9478;
    --sage-light:  #e4e7d9;
    --line:        rgba(34,29,33,.14);
    --radius:16px;
    --sans: "Hanken Grotesk", "Avenir Next", "Segoe UI", system-ui, sans-serif;
    --serif: "Fraunces", Georgia, serif;
  }
  *{ box-sizing:border-box; margin:0; padding:0; }
  html{ scroll-behavior:smooth; }
  body{
    font-family:var(--sans); background:var(--cream); color:var(--ink);
    line-height:1.6; font-size:17px; -webkit-font-smoothing:antialiased;
  }
  img{ max-width:100%; display:block; }
  a{ color:inherit; }
  .wrap{ max-width:1200px; margin:0 auto; padding:0 28px; }

  .kicker{
    font-size:12.5px; font-weight:700; letter-spacing:.3em;
    text-transform:uppercase; color:var(--terracotta);
  }

  /* ---------- scroll reveal ---------- */
  .reveal{
    opacity:0; transform:translateY(26px);
    transition:opacity .7s ease, transform .8s cubic-bezier(.16,1,.3,1);
    transition-delay:var(--d, 0s);
  }
  .reveal.in{ opacity:1; transform:none; }
  @media (prefers-reduced-motion: reduce){
    .reveal{ opacity:1; transform:none; transition:none; }
    .badge svg{ animation:none; }
    html{ scroll-behavior:auto; }
  }

  /* ---------- scroll progress ---------- */
  .progress{
    position:fixed; top:0; left:0; right:0; height:3px; z-index:70;
    background:var(--terracotta); transform:scaleX(0); transform-origin:left;
  }

  /* ---------- buttons ---------- */
  .btn{
    display:inline-flex; align-items:center; gap:10px;
    padding:16px 30px; border-radius:999px;
    font-family:var(--sans); font-weight:700; font-size:13px;
    letter-spacing:.16em; text-transform:uppercase;
    text-decoration:none; transition:all .18s ease; cursor:pointer; border:none;
  }
  .btn:hover{ transform:translateY(-1px); }
  .btn-primary{ background:#5d3a4d; color:#f6efe6; box-shadow:0 8px 24px rgba(51,32,40,.30); }
  .btn-primary:hover{ background:var(--forest); }
  .btn-ghost{ background:rgba(246,239,230,.08); color:#f6efe6; border:1.5px solid rgba(246,239,230,.85); backdrop-filter:blur(4px); }
  .btn-ghost:hover{ background:rgba(246,239,230,.2); }
  .btn-outline{ background:transparent; color:var(--ink); border:1.5px solid var(--ink); }
  .btn-outline:hover{ background:var(--ink); color:var(--cream); }
  .btn-light{ background:var(--cream); color:var(--forest); }
  .btn-light:hover{ background:#fff; }
  .btn .arrow{ font-size:15px; transition:transform .18s ease; }
  .btn:hover .arrow{ transform:translateX(3px); }

  /* ---------- header ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:50; padding:22px 0;
    transition:background .3s ease, box-shadow .3s ease, padding .3s ease;
  }
  header.scrolled{
    background:rgba(241,236,225,.94); backdrop-filter:blur(10px);
    box-shadow:0 2px 24px rgba(34,29,33,.08); padding:10px 0;
  }
  .nav{ display:flex; align-items:center; justify-content:space-between; gap:24px; }
  .logo{ display:block; text-decoration:none; text-align:center; }
  .logo img{ width:180px; height:auto; display:block; transition:width .3s ease; margin:0 auto; }
  .logo .logo-tag{
    display:block; margin-top:4px; font-size:10px; font-weight:600;
    letter-spacing:.32em; text-transform:uppercase; color:var(--ink-soft);
  }
  header.scrolled .logo img{ width:126px; }
  header.scrolled .logo .logo-tag{ display:none; }
  nav.links{ display:flex; gap:34px; align-items:center; }
  nav.links a{
    text-decoration:none; font-weight:600; font-size:13px;
    letter-spacing:.14em; text-transform:uppercase; color:var(--ink);
    padding-bottom:5px; border-bottom:2px solid transparent;
  }
  nav.links a:hover{ color:var(--terracotta); }
  nav.links a.active{ border-bottom-color:var(--terracotta); }
  .nav > .btn{ padding:13px 24px; }

  .menu-btn{
    display:none; flex-direction:column; align-items:center; justify-content:center;
    width:46px; height:46px; border-radius:50%;
    background:var(--ink); border:none; cursor:pointer; z-index:56;
  }
  .menu-btn span{
    display:block; width:20px; height:2px; background:var(--cream);
    transition:transform .3s ease, opacity .3s ease; position:relative;
  }
  .menu-btn span + span{ margin-top:5px; }
  .menu-btn.open span:first-child{ transform:translateY(3.5px) rotate(45deg); }
  .menu-btn.open span:last-child{ transform:translateY(-3.5px) rotate(-45deg); }

  .mobile-menu{
    position:fixed; top:0; left:0; right:0; z-index:45;
    background:var(--cream); box-shadow:0 18px 40px rgba(34,29,33,.14);
    padding:104px 28px 30px; display:flex; flex-direction:column; gap:4px;
    transform:translateY(-102%); transition:transform .38s cubic-bezier(.16,1,.3,1);
  }
  .mobile-menu.open{ transform:none; }
  .mobile-menu a{
    text-decoration:none; font-weight:600; font-size:15px;
    letter-spacing:.12em; text-transform:uppercase; color:var(--ink);
    padding:13px 4px; border-bottom:1px solid var(--line);
  }
  .mobile-menu a:last-of-type{ border-bottom:none; }
  .mobile-menu .btn{ margin-top:14px; justify-content:center; }
  .mobile-menu a.btn-primary{ color:#f6efe6; border-bottom:none; }

  @media (max-width:1020px){
    nav.links{ display:none; }
    .nav > .btn{ display:none; }
    .menu-btn{ display:flex; }
  }

  /* ---------- hero ---------- */
  .hero{
    position:relative; min-height:84vh; display:flex; align-items:center;
    background:
      linear-gradient(180deg, rgba(241,236,225,.97) 0%, rgba(241,236,225,.85) 12%, rgba(241,236,225,.45) 24%, rgba(241,236,225,0) 40%),
      linear-gradient(100deg, rgba(40,25,32,.55) 0%, rgba(40,25,32,.30) 36%, rgba(40,25,32,.04) 62%, rgba(40,25,32,0) 100%),
      url("assets/hero-bg.webp") center right / cover no-repeat,
      var(--forest);
  }
  .hero-inner{ position:relative; width:100%; padding-top:184px; padding-bottom:56px; }
  @media (max-width:700px){
    .hero{
      min-height:82vh;
      background:
        linear-gradient(180deg, rgba(241,236,225,.95) 0%, rgba(241,236,225,.7) 14%, rgba(241,236,225,0) 34%),
        linear-gradient(rgba(40,25,32,.44), rgba(40,25,32,.44)),
        url("assets/hero-bg.webp") 58% center / cover no-repeat,
        var(--forest);
    }
    .hero-inner{ padding-top:150px; padding-bottom:64px; }
  }
  .hero .kicker{ color:#eeddca; text-shadow:0 1px 12px rgba(40,25,32,.35); }
  .hero h1{
    font-family:var(--serif); font-weight:300; line-height:1.04;
    font-size:clamp(42px,6.6vw,82px); color:#f6efe6; margin:14px 0 18px;
    max-width:17ch; text-shadow:0 2px 28px rgba(40,25,32,.35);
  }
  .hero h1 em{ font-style:italic; font-weight:300; }
  .hero .rule{ width:52px; height:2px; background:#f6efe6; opacity:.9; margin:0 0 18px 4px; }
  .hero p.lede{
    color:#f6efe6; font-size:clamp(16px,1.4vw,18px); max-width:46ch; line-height:1.6;
    text-shadow:0 1px 16px rgba(40,25,32,.45);
  }
  .hero-ctas{ display:flex; gap:14px; margin-top:26px; flex-wrap:wrap; }

  .badge{
    position:absolute; right:4.5%; bottom:56px; width:118px; height:118px; opacity:.92;
  }
  .badge svg{ width:100%; height:100%; animation:spin 26s linear infinite; }
  @keyframes spin{ to{ transform:rotate(360deg); } }
  @media (max-width:900px){ .badge{ display:none; } }

  /* ---------- feature strip ---------- */
  .strip{ background:var(--cream); border-bottom:1px solid var(--line); }
  .strip-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
  .strip-item{
    display:flex; gap:14px; align-items:center; padding:20px 24px;
    border-left:1px solid var(--line);
  }
  .strip-item:first-child{ border-left:none; }
  .strip-item svg{ flex:none; color:#5d3a4d; }
  .strip-item h3{ font-size:13.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:#5d3a4d; }
  .strip-item p{ font-size:14px; color:var(--ink-soft); margin-top:2px; }
  @media (max-width:960px){
    .strip-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
    .strip-item:nth-child(3){ border-left:none; }
    .strip-item{ border-top:1px solid var(--line); }
    .strip-item:nth-child(-n+2){ border-top:none; }
  }
  @media (max-width:560px){
    .strip-grid{ grid-template-columns:minmax(0,1fr); }
    .strip-item{ border-left:none; border-top:1px solid var(--line); padding:22px 4px; }
    .strip-item:first-child{ border-top:none; }
  }

  /* ---------- sections ---------- */
  section{ padding:clamp(64px,9vw,104px) 0; scroll-margin-top:72px; }
  .sec-head{ max-width:900px; margin-bottom:clamp(32px,4vw,52px); }
  .sec-head h2{
    font-family:var(--serif); font-weight:400; font-size:clamp(38px,5.2vw,68px);
    line-height:1.08; color:var(--ink); margin-top:16px;
  }
  .sec-head h2 em{ font-style:italic; }
  .sec-head h2.fit{ font-size:clamp(30px,4.3vw,54px); }
  .sec-head p{ margin-top:18px; color:var(--ink-soft); max-width:56ch; }

  /* how it works */
  .how{ background:var(--cream); }
  .how-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:32px; }
  .how-head h2{
    font-family:var(--serif); font-weight:400; color:var(--ink);
    font-size:clamp(38px,5.2vw,68px); line-height:1.08; margin-top:16px;
  }
  .how-sub{ font-family:var(--serif); font-size:clamp(19px,1.9vw,24px); color:#4a4246; margin-top:14px; }

  .wall-line{ margin:30px 0 46px; }
  .wall-line svg{ width:100%; height:auto; display:block; }

  .steps{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(24px,3vw,44px); }
  .step{ display:grid; grid-template-columns:minmax(0,1fr) clamp(120px,10vw,180px); gap:20px; align-items:start; }
  .step-num{ font-family:var(--serif); font-weight:300; font-size:clamp(48px,4.6vw,68px); line-height:1; }
  .step:nth-child(1) .step-num{ color:#5d3a4d; }
  .step:nth-child(2) .step-num{ color:var(--terracotta); }
  .step:nth-child(3) .step-num{ color:var(--sage); }
  .step h3{ font-family:var(--serif); font-weight:400; font-size:clamp(20px,1.8vw,24px); line-height:1.25; margin:10px 0 12px; color:var(--ink); }
  .step p{ font-size:15px; color:var(--ink-soft); }
  .step-meta{ display:flex; gap:10px; align-items:center; margin-top:18px; color:var(--ink); }
  .step-meta svg{ flex:none; }
  .step-meta span{ font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
  .step-photo{ border-radius:10px; overflow:hidden; aspect-ratio:3/4; background:var(--sand); }
  .step-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
  @media (max-width:980px){
    .steps{ grid-template-columns:minmax(0,1fr); }
    .step{ grid-template-columns:minmax(0,1fr) clamp(140px,32vw,220px); }
  }
  @media (max-width:480px){
    .step{ grid-template-columns:minmax(0,1fr); }
    .step-photo{ aspect-ratio:16/10; }
  }

  .how-cta{
    margin-top:clamp(40px,6vw,64px); padding-top:clamp(28px,4vw,40px);
    border-top:1px solid var(--line);
    display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
  }
  .how-cta .big{ font-family:var(--serif); font-size:clamp(24px,2.6vw,32px); color:var(--ink); }
  .how-cta .place{ display:flex; align-items:center; gap:14px; font-size:11.5px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft); line-height:1.9; }
  .how-cta .place::before{ content:""; display:block; width:36px; height:2px; background:var(--ink-soft); }

  /* solutions */
  .sol-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:32px; }
  .sol-head h2{
    font-family:var(--serif); font-weight:400; color:var(--ink);
    font-size:clamp(38px,5.2vw,68px); line-height:1.08; margin-top:16px;
  }
  .sol-head h2 em{ font-style:italic; }
  .sol-lede{ margin-top:18px; color:var(--ink-soft); max-width:56ch; }
  .sol-lede + .sol-lede{ margin-top:12px; }
  .sol-title{ font-family:var(--serif); font-weight:400; color:var(--ink); font-size:clamp(22px,2.2vw,28px); line-height:1.2; margin:0 0 12px; }
  .sol-copy{ font-size:15.5px; color:var(--ink-soft); max-width:36ch; }
  .sol-tag{ margin-top:20px; }
  .sol-tag::before{ content:""; display:block; width:28px; height:2px; background:var(--ink-soft); margin-bottom:12px; }
  .sol-tag span{ font-size:11px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--ink); line-height:2; display:block; }

  .sol-row3{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(24px,3.5vw,44px); margin-top:clamp(32px,4vw,52px); }
  .sol-photo{ border-radius:10px; overflow:hidden; background:var(--sand); }
  .sol-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
  .sol-card .sol-photo{ aspect-ratio:4/3; margin-bottom:22px; }
  .sol-item{ display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:20px; align-items:start; }
  .sol-item .sol-photo{ aspect-ratio:3/4; }
  @media (max-width:880px){
    .sol-row3{ grid-template-columns:minmax(0,1fr); }
    .sol-card .sol-photo{ aspect-ratio:16/9; }
  }
  @media (max-width:480px){
    .sol-item{ grid-template-columns:minmax(0,1fr); }
    .sol-item .sol-photo{ aspect-ratio:16/10; }
  }

  /* escape guarantee band */
  .gband{ background:var(--forest); padding:clamp(48px,7vw,84px) 0; margin-top:clamp(40px,6vw,64px); }
  .gband .wrap{ display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:40px; align-items:center; }
  .gband .kicker{ color:#d8a08d; }
  .gband h2{
    font-family:var(--serif); font-weight:400; color:#f6efe6;
    font-size:clamp(32px,4.4vw,54px); line-height:1.16; margin:16px 0 20px;
  }
  .gband h2 em{ font-style:italic; }
  .gband .gcopy{ color:var(--sand); max-width:52ch; }
  .gband .gcopy + .gcopy{ margin-top:12px; }
  .gband .gtag{ margin-top:26px; font-size:11.5px; font-weight:700; letter-spacing:.24em; text-transform:uppercase; color:#f6efe6; }
  .gband .gfine{ margin-top:16px; font-size:12.5px; color:var(--sand); opacity:.7; }
  .gband-art svg{ width:min(100%,380px); height:auto; display:block; margin-left:auto; }
  .gband-label{ margin-top:12px; text-align:right; font-size:11px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--sand); line-height:2; }
  @media (max-width:880px){ .gband .wrap{ grid-template-columns:minmax(0,1fr); } .gband-art{ display:none; } }

  /* solutions bottom row */
  .sol-bottom{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(32px,5vw,64px); margin-top:clamp(48px,6vw,88px); }
  .sol-bottom .sol-item + .sol-item{ border-left:1px solid var(--line); padding-left:clamp(24px,4vw,56px); }
  @media (max-width:880px){
    .sol-bottom{ grid-template-columns:minmax(0,1fr); }
    .sol-bottom .sol-item + .sol-item{ border-left:none; padding-left:0; border-top:1px solid var(--line); padding-top:32px; }
  }

  /* about */
  .about-cols{ display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:clamp(32px,5vw,72px); align-items:start; }
  .about-story p{ color:var(--ink-soft); margin-bottom:14px; max-width:58ch; }
  .about-story strong{ color:var(--ink); font-weight:600; }
  .about-photo{ border-radius:var(--radius); overflow:hidden; background:var(--sand); max-width:340px; justify-self:end; }
  .about-photo img{ width:100%; height:100%; object-fit:cover; display:block; aspect-ratio:1/1; }
  @media (max-width:820px){ .about-photo{ justify-self:start; max-width:300px; } }
  .about-close{
    margin-top:clamp(40px,5vw,60px); text-align:center;
    font-size:12.5px; font-weight:700; letter-spacing:.32em; text-transform:uppercase; color:var(--terracotta-d);
  }
  @media (max-width:820px){
    .about-cols{ grid-template-columns:minmax(0,1fr); }
  }

  /* gallery */
  .gallery{ background:var(--forest); padding:clamp(44px,5.5vw,68px) 0; }
  .gallery .sec-head{ margin-bottom:clamp(20px,2.5vw,32px); }
  .gallery .sec-head h2{ color:var(--cream); }
  .gallery .sec-head p{ color:var(--sand); opacity:.85; }
  .shots{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
  .shot{
    aspect-ratio:3/2; border-radius:var(--radius); overflow:hidden;
    background:linear-gradient(160deg, #5c3c4b, #332028);
    border:1px solid rgba(241,236,225,.14);
    display:grid; place-items:center; text-align:center; padding:20px;
  }
  .shot p{ color:var(--sand); font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; opacity:.6; line-height:1.8; }
  .shot img{ width:100%; height:100%; object-fit:cover; display:block; }
  .gallery-more{ margin-top:24px; }
  @media (max-width:820px){ .shots{ grid-template-columns:minmax(0,1fr); } .shot{ aspect-ratio:16/9; } }

  /* faq */
  .faq-list{ max-width:780px; }
  details{ border-bottom:1px solid var(--line); padding:2px 0; }
  details summary{
    cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center;
    gap:20px; padding:15px 0; font-family:var(--serif); font-size:clamp(17px,1.6vw,20px); color:var(--ink);
  }
  details summary::-webkit-details-marker{ display:none; }
  details summary::after{
    content:"+"; font-family:var(--sans); font-weight:400; font-size:26px; color:var(--terracotta);
    transition:transform .2s ease; flex:none; line-height:1;
  }
  details[open] summary::after{ transform:rotate(45deg); }
  details p{ padding:0 40px 12px 0; color:var(--ink-soft); }
  details p:last-of-type{ padding-bottom:20px; }
  details .fine{ font-size:13px; opacity:.8; }

  /* final CTA */
  .contact{ background:var(--sand); }
  .cta-final{ position:relative; overflow:hidden; background:var(--cream); }
  .cta-final::before{
    content:""; position:absolute; top:0; right:0;
    width:min(56%,820px); height:min(76%,540px);
    background:url("assets/cta-cat.webp") right top / cover no-repeat;
    -webkit-mask-image:radial-gradient(130% 130% at 100% 0%, #000 52%, transparent 76%);
    mask-image:radial-gradient(130% 130% at 100% 0%, #000 52%, transparent 76%);
    pointer-events:none;
  }
  .cta-final .wrap{ position:relative; }
  @media (max-width:1000px){ .cta-final::before{ display:none; } }
  .cta-steps{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(24px,3.5vw,44px); margin-top:8px; position:relative; }
  .cta-head{ display:flex; align-items:center; gap:14px; margin-bottom:16px; }
  .cta-icon{
    width:52px; height:52px; border-radius:50%; flex:none;
    display:grid; place-items:center;
  }
  .i-fig{ background:#e8dde3; color:#5d3a4d; }
  .i-clay{ background:#f0ddd5; color:var(--terracotta-d); }
  .i-sage{ background:var(--sage-light); color:#6c7a5c; }
  .cta-num{ font-family:var(--serif); font-weight:300; font-size:clamp(40px,4vw,56px); line-height:1; }
  .num-a{ color:#5d3a4d; }
  .num-b{ color:var(--terracotta); }
  .num-c{ color:var(--sage); }
  .num-rule{ flex:1; height:1.5px; background:var(--line); max-width:120px; }
  .cta-step h3{ font-weight:800; font-size:14px; letter-spacing:.12em; text-transform:uppercase; margin:0 0 8px; }
  .cta-step p{ font-size:15px; color:var(--ink-soft); max-width:40ch; }
  .cta-step .btn{ margin-top:18px; }
  .cta-step .cta-tag{ margin-top:16px; font-size:11.5px; font-weight:700; letter-spacing:.24em; text-transform:uppercase; color:var(--terracotta-d); }
  .cta-step .cta-tag::before{ content:""; display:block; width:28px; height:2px; background:var(--terracotta); margin-bottom:10px; }
  .cta-meta{
    display:flex; align-items:center; gap:8px; margin-top:14px;
    font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft);
    white-space:nowrap;
  }
  .cta-meta svg{ flex:none; }
  @media (max-width:480px){ .cta-meta{ white-space:normal; } }
  @media (max-width:820px){
    .cta-steps{ gap:0; margin-top:0; }
    .cta-step{ padding:30px 0; border-top:1px solid var(--line); }
    .cta-step:first-child{ border-top:none; padding-top:12px; }
    .cta-head{ margin-bottom:12px; }
    .cta-step .btn{ margin-top:16px; }
  }
  .cta-alt{ margin-top:44px; font-size:14.5px; color:var(--ink-soft); }
  .cta-alt a{ font-weight:700; color:var(--ink); }
  @media (max-width:820px){ .cta-steps{ grid-template-columns:minmax(0,1fr); } }

  /* gallery page masonry */
  .masonry{ columns:3 300px; column-gap:18px; }
  .masonry .m-item{ break-inside:avoid; margin-bottom:18px; border-radius:12px; overflow:hidden; background:var(--sand); }
  .masonry img{ width:100%; height:auto; display:block; }

  /* footer */
  footer{
    background:var(--forest-deep); color:var(--sand); padding:56px 0 40px; font-size:14.5px;
  }
  footer a{ color:var(--sand); text-decoration:none; }
  .foot{ display:flex; flex-direction:column; gap:16px; align-items:flex-start; }
  .foot > img{ height:64px; width:auto; filter:invert(1); opacity:.95; }
  .foot .fserif{ font-family:var(--serif); font-size:clamp(15px,1.3vw,17px); color:var(--cream); opacity:.85; }
  .foot-links{ display:flex; flex-wrap:wrap; gap:6px 12px; margin-top:8px; font-size:12px; letter-spacing:.14em; text-transform:uppercase; font-weight:600; }
  .foot-links span{ opacity:.4; }
  .foot-links a{ opacity:.85; }
  .foot-links a:hover{ opacity:1; color:#fff; }
  .foot-bottom{
    width:100%; margin-top:26px; padding-top:20px; border-top:1px solid rgba(241,236,225,.15);
    font-size:12px; opacity:.65; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  }

  /* floating whatsapp */
  .wa-float{
    position:fixed; right:22px; bottom:22px; z-index:60;
    width:58px; height:58px; border-radius:50%;
    background:#25D366; display:grid; place-items:center;
    box-shadow:0 10px 26px rgba(0,0,0,.25); transition:transform .15s ease;
  }
  .wa-float:hover{ transform:scale(1.06); }

  /* second hero lede paragraph */
  .hero p.lede + p.lede{ margin-top:10px; }

  /* solid header for subpages (no hero behind it) */
  header.solid{ background:rgba(241,236,225,.94); backdrop-filter:blur(10px); box-shadow:0 2px 24px rgba(34,29,33,.08); padding:10px 0; }
  header.solid .logo img{ width:126px; }
  header.solid .logo-tag{ display:none; }

  /* home FAQ teaser link */
  .faq-more{ margin-top:36px; }

  /* short viewports: keep the hero CTAs above the fold */
  @media (min-width:701px) and (max-height:780px){
    .hero-inner{ padding-top:150px; padding-bottom:56px; }
    .hero h1{ font-size:clamp(40px,5.8vw,66px); }
  }

  /* divider between How it works and Our solutions; band closes the section flush */
  #solutions{ border-top:1px solid var(--line); padding-bottom:0; }

  /* estimate + contact page */
  .est-grid{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:clamp(28px,4vw,56px); align-items:start; }
  @media (max-width:900px){ .est-grid{ grid-template-columns:minmax(0,1fr); } }
  .panel{ background:#faf7f0; border:1px solid var(--line); border-radius:var(--radius); padding:clamp(24px,3vw,36px); }
  .panel h3{ font-family:var(--serif); font-weight:400; font-size:clamp(22px,2vw,27px); margin-bottom:6px; }
  .panel .panel-sub{ font-size:14px; color:var(--ink-soft); margin-bottom:22px; }
  .field{ margin-bottom:16px; }
  .field label{ display:block; font-size:11.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; margin-bottom:7px; color:var(--ink); }
  .field input, .field select, .field textarea{
    width:100%; padding:12px 14px; border:1.5px solid var(--line); border-radius:10px;
    background:var(--cream); font-family:var(--sans); font-size:15px; color:var(--ink);
  }
  .field textarea{ min-height:130px; resize:vertical; }
  .field input:focus, .field select:focus, .field textarea:focus{ outline:2px solid var(--terracotta); border-color:transparent; }
  .field-row{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
  @media (max-width:480px){ .field-row{ grid-template-columns:minmax(0,1fr); } }
  .calc-result{ margin-top:20px; padding:20px 22px; background:var(--sage-light); border-radius:12px; }
  .calc-result .range-label{ font-size:11.5px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-soft); }
  .calc-result .range{ font-family:var(--serif); font-size:clamp(26px,2.6vw,34px); color:var(--forest); margin-top:4px; }
  .calc-note{ font-size:12.5px; color:var(--ink-soft); margin-top:10px; line-height:1.6; }
  .calc-use{ margin-top:16px; }
  .form-status{ margin-top:14px; font-size:14.5px; display:none; }
  .form-status.show{ display:block; }
  .form-status.ok{ color:#4c7a4c; }
  .form-status.err{ color:#a23b32; }
  .hp{ position:absolute; left:-9999px; opacity:0; height:0; overflow:hidden; }

  /* subpages: tighter vertical rhythm */
  .tight section{ padding:clamp(36px,5vw,60px) 0; }
  .tight .sec-head{ margin-bottom:clamp(24px,3vw,40px); }
  .tight .how-cta{ margin-top:clamp(28px,4vw,44px); padding-top:clamp(20px,3vw,32px); }

  /* footer row + legal */
  .foot-row{ width:100%; display:flex; justify-content:space-between; align-items:baseline; gap:16px 32px; flex-wrap:wrap; margin-top:4px; }
  .foot-legal a{ opacity:.85; }
  .foot-legal a:hover{ opacity:1; color:#fff; }

  /* legal pages */
  .legal{ max-width:780px; }
  .legal .updated{ font-size:13px; color:var(--ink-soft); opacity:.8; margin-top:-14px; margin-bottom:34px; }
  .legal h3{ font-family:var(--serif); font-weight:400; font-size:23px; color:var(--ink); margin:36px 0 10px; }
  .legal p, .legal li{ font-size:15.5px; color:var(--ink-soft); margin-bottom:12px; line-height:1.7; }
  .legal ul{ padding-left:22px; margin-bottom:12px; }
  .legal li{ margin-bottom:6px; }
  .legal strong{ color:var(--ink); }
  .legal a{ font-weight:600; }

  /* mobile: trim the landing page */
  @media (max-width:700px){
    #gallery, #faq{ display:none; }
    .hero{
      background:
        linear-gradient(180deg, rgba(241,236,225,.95) 0%, rgba(241,236,225,.7) 14%, rgba(241,236,225,0) 34%),
        linear-gradient(rgba(40,25,32,.44), rgba(40,25,32,.44)),
        url("assets/hero-bg-m.webp") 58% center / cover no-repeat,
        var(--forest);
    }
  }

  /* sticky mobile CTA bar */
  .sticky-cta{
    position:fixed; left:0; right:0; bottom:0; z-index:58; display:none;
    padding:10px 16px calc(10px + env(safe-area-inset-bottom));
    background:rgba(241,236,225,.96); backdrop-filter:blur(10px);
    box-shadow:0 -6px 24px rgba(34,29,33,.14);
    transform:translateY(110%); transition:transform .3s ease;
  }
  .sticky-cta.show{ transform:none; }
  .sticky-cta .btn{ width:100%; justify-content:center; }
  .wa-float{ transition:transform .15s ease, bottom .3s ease; }
  @media (max-width:700px){
    .sticky-cta{ display:block; }
    body.cta-up .wa-float{ bottom:88px; }

    /* how it works: text only on phones */
    .step-photo{ display:none; }
    .step{ grid-template-columns:minmax(0,1fr); }
  }
