 /* ============ TOKENS ============ */
 :root{
    --ink:#0E3B36;
    --ink-2:#0A2925;
    --ivory:#F6F3EC;
    --paper:#FFFFFF;
    --lime:#DCE85A;
    --coral:#FF8464;
    --aqua:#BFE3DD;
    --text-dark:#10231F;
    --text-mute:#4C625D;
    --text-light:#F6F3EC;
    --radius-lg:28px;
    --radius-md:16px;
    --ease:cubic-bezier(.22,.9,.25,1);
    --shadow-soft: 0 20px 60px -20px rgba(14,59,54,.25);
  }

  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Manrope',sans-serif;
    background:var(--ivory);
    color:var(--text-dark);
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
  }
  img{display:block;max-width:100%;}
  a{color:inherit;text-decoration:none;}
  ul{list-style:none;}
  button{font-family:inherit;border:none;background:none;cursor:pointer;}
  h1,h2,h3,h4{font-family:'Fraunces',serif;font-weight:500;letter-spacing:-0.01em;line-height:1.05;}
  .eyebrow{
    font-size:.72rem;
    letter-spacing:.22em;
    text-transform:uppercase;
    font-weight:700;
    color:var(--ink);
    display:inline-flex;
    align-items:center;
    gap:.6em;
  }
  .eyebrow::before{
    content:"";
    width:22px;height:1px;background:var(--ink);
    display:inline-block;
  }
  .section{
    padding:min(11vw,140px) min(6vw,80px);
    max-width:1400px;
    margin:0 auto;
  }
  .btn{
    display:inline-flex;
    align-items:center;
    gap:.6em;
    padding:1em 1.9em;
    border-radius:100px;
    font-weight:700;
    font-size:.88rem;
    letter-spacing:.01em;
    transition:transform .45s var(--ease), box-shadow .45s var(--ease), background .3s ease, color .3s ease;
    white-space:nowrap;
  }
  .btn-primary{
    background:var(--ink);
    color:var(--lime);
  }
  .btn-primary:hover{
    transform:translateY(-3px) scale(1.03);
    box-shadow:0 18px 40px -12px rgba(14,59,54,.55);
  }
  .btn-ghost{
    background:transparent;
    color:var(--ink);
    border:1.5px solid rgba(14,59,54,.25);
  }
  .btn-ghost:hover{
    background:var(--ink);
    color:var(--ivory);
    transform:translateY(-3px);
    border-color:var(--ink);
  }
  .btn-light{
    background:var(--lime);
    color:var(--ink);
  }
  .btn-light:hover{
    transform:translateY(-3px) scale(1.03);
    box-shadow:0 18px 40px -12px rgba(220,232,90,.5);
  }

  /* reveal on scroll */
  .reveal{
    opacity:0;
    transform:translateY(36px);
    transition:opacity 1s var(--ease), transform 1s var(--ease);
  }
  .reveal.visible{opacity:1;transform:translateY(0);}
  .reveal-delay-1.visible{transition-delay:.1s;}
  .reveal-delay-2.visible{transition-delay:.22s;}
  .reveal-delay-3.visible{transition-delay:.34s;}

  /* ============ NAV ============ */
  header{
    position:fixed;top:0;left:0;right:0;z-index:1000;
    padding:26px min(6vw,80px);
    display:flex;align-items:center;justify-content:space-between;
    transition:padding .4s var(--ease), background .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
    background:transparent;
    border-bottom:1px solid transparent;
  }
  header:not(.scrolled){
    background:rgba(7,31,28,.55);
    backdrop-filter:blur(16px) saturate(1.25);
    border-bottom-color:rgba(246,243,236,.1);
  }
  header:not(.scrolled) .logo,
  header:not(.scrolled) nav.links:not(.open) a,
  header:not(.scrolled) .nav-phone a{color:var(--text-light);}
  header:not(.scrolled) nav.links:not(.open) a::after{background:var(--lime);}
  header:not(.scrolled) .burger span{background:var(--text-light);}
  header:not(.scrolled) .btn-primary{
    background:var(--lime);
    color:var(--ink);
  }
  header:not(.scrolled) .nav-phone{color:rgba(246,243,236,.72);}
  /* Open mobile menu must stay readable over the ivory panel even on the hero */
  header:not(.scrolled) nav.links.open a,
  header.scrolled nav.links.open a,
  nav.links.open a{color:var(--ink);}
  header:not(.scrolled) nav.links.open a::after,
  header.scrolled nav.links.open a::after,
  nav.links.open a::after{background:var(--ink);}
  header.scrolled{
    padding:14px min(6vw,80px);
    background:rgba(246,243,236,.78);
    backdrop-filter:blur(14px) saturate(1.4);
    box-shadow:0 8px 30px -18px rgba(14,59,54,.35);
  }
  .logo{
    display:flex;
    flex-direction:row;
    align-items:center;
    gap:.7rem;
    color:var(--ink);
    max-width:min(360px, 48vw);
  }
  .logo-img{
    width:auto;
    height:48px;
    max-width:56px;
    object-fit:contain;
    object-position:center;
    display:block;
    flex-shrink:0;
    background:#fff;
    border-radius:10px;
    padding:4px;
  }
  .logo-text{
    display:flex;
    flex-direction:column;
    gap:.18rem;
    min-width:0;
    line-height:1.15;
  }
  .logo-name{
    font-family:'Fraunces',serif;
    font-size:clamp(.78rem, 1.35vw, 1rem);
    font-weight:600;
    letter-spacing:-0.01em;
  }
  .logo-id{
    font-family:'Manrope',sans-serif;
    font-size:.62rem;
    font-weight:600;
    letter-spacing:.02em;
    color:var(--text-mute);
    white-space:nowrap;
  }
  header:not(.scrolled) .logo-id{color:rgba(246,243,236,.72);}
  .logo .dot{
    width:9px;height:9px;border-radius:50%;
    background:var(--lime);
    box-shadow:0 0 0 5px rgba(220,232,90,.35);
  }
  nav.links{
    display:flex;gap:2.4rem;
    font-size:.87rem;font-weight:600;
  }
  nav.links a{
    position:relative;color:var(--ink);
    padding-bottom:4px;
  }
  nav.links a::after{
    content:"";position:absolute;left:0;bottom:0;
    width:0;height:1.5px;background:var(--ink);
    transition:width .35s var(--ease);
  }
  nav.links a:hover::after{width:100%;}
  .nav-cta{display:flex;align-items:center;gap:1.2rem;}
  .nav-phone{
    display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;
    font-size:.78rem;font-weight:700;letter-spacing:.02em;
    color:var(--text-mute);
  }
  .nav-phone a{color:var(--ink);white-space:nowrap;}
  .nav-phone a:hover{color:var(--teal);}
  .nav-phone-num{
    margin-left:.35rem;
    padding-left:.55rem;
    border-left:1px solid rgba(14,59,54,.18);
  }
  header:not(.scrolled) .nav-phone-num{border-left-color:rgba(246,243,236,.28);}
  .cta-mobile{display:none;}
  .burger{display:none;flex-direction:column;gap:5px;cursor:pointer;}
  .burger span{width:24px;height:2px;background:var(--ink);}

  /* ============ HERO ============ */
  .hero{
    position:relative;
    height:100vh;
    height:100dvh;
    max-height:100dvh;
    min-height:0;
    display:flex;
    align-items:stretch;
    overflow:hidden;
    border-radius:0 0 var(--radius-lg) var(--radius-lg);
    background:var(--ink-2);
  }
  .hero-bg{
    position:absolute;inset:0;z-index:0;
  }
  .hero-bg img{
    width:100%;height:100%;
    object-fit:cover;
    object-position:center center;
  }
  .hero-bg::after{
    content:"";
    position:absolute;inset:0;
    background:
      linear-gradient(105deg, rgba(7,31,28,.82) 0%, rgba(7,31,28,.55) 42%, rgba(7,31,28,.2) 72%, rgba(7,31,28,.12) 100%),
      linear-gradient(180deg, rgba(7,31,28,.2) 0%, transparent 40%, rgba(7,31,28,.35) 100%);
  }
  .hero-panel{
    position:relative;z-index:2;
    display:flex;flex-direction:column;justify-content:center;
    padding:clamp(88px, 11vh, 120px) clamp(1.5rem, 4.5vw, 64px) clamp(2rem, 5vh, 56px);
    width:min(640px, 100%);
    background:transparent;
  }
  .hero-panel::before,
  .hero-panel::after{display:none;}
  .hero-content{
    position:relative;z-index:1;
    max-width:520px;
    animation:hero-in 1s var(--ease) both;
  }
  @keyframes hero-in{
    from{opacity:0;transform:translateY(28px);}
    to{opacity:1;transform:translateY(0);}
  }
  .hero-kicker{
    display:inline-flex;align-items:center;gap:.65rem;
    padding:.62rem 1rem;
    border-radius:100px;
    font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
    color:var(--lime);
    background:rgba(14,59,54,.45);
    border:1px solid rgba(220,232,90,.22);
    margin-bottom:1.35rem;
  }
  .hero-business-id{
    display:none;
    font-family:'Manrope',sans-serif;
    font-size:.72rem;
    font-weight:600;
    letter-spacing:.03em;
    color:rgba(246,243,236,.8);
    margin:0 0 1.1rem;
  }
  .hero-kicker::before{
    content:"";
    width:7px;height:7px;border-radius:50%;
    background:var(--lime);
    box-shadow:0 0 12px rgba(220,232,90,.65);
    animation:hero-pulse 2.4s ease-in-out infinite;
  }
  @keyframes hero-pulse{
    0%,100%{opacity:1;transform:scale(1);}
    50%{opacity:.65;transform:scale(.88);}
  }
  .hero h1{
    font-size:clamp(2.2rem, 4.2vw, 3.8rem);
    margin:0 0 1rem;
    color:var(--text-light);
    line-height:1.02;
    max-width:11ch;
  }
  .hero h1 em{
    font-style:italic;
    color:var(--lime);
    display:block;
    margin-top:.08em;
  }
  .hero-lead{
    font-size:.98rem;
    color:rgba(246,243,236,.78);
    line-height:1.65;
    margin-bottom:1.5rem;
    max-width:420px;
  }
  .hero-actions{display:flex;gap:.85rem;flex-wrap:wrap;}
  .hero-actions .btn-ghost{
    border-color:rgba(246,243,236,.32);
    color:var(--text-light);
  }
  .hero-actions .btn-ghost:hover{
    background:var(--text-light);
    color:var(--ink);
    border-color:var(--text-light);
  }
  .scroll-cue{
    position:absolute;bottom:28px;left:min(22%, 180px);
    transform:translateX(-50%);
    z-index:3;display:flex;flex-direction:column;align-items:center;gap:8px;
    color:rgba(246,243,236,.65);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;
  }
  .scroll-cue .line{
    width:1px;height:34px;background:rgba(246,243,236,.35);
    position:relative;overflow:hidden;
  }
  .scroll-cue .line::after{
    content:"";position:absolute;top:-34px;left:0;width:100%;height:34px;
    background:var(--lime);
    animation:scrolldrop 2.2s ease-in-out infinite;
  }
  @keyframes scrolldrop{
    0%{top:-34px;}
    60%{top:34px;}
    100%{top:34px;}
  }

  /* ============ TRUST BAR ============ */
  .trust{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:2rem;
    padding:60px min(6vw,80px);
    max-width:1100px;margin:0 auto;
  }
  .trust-item{text-align:center;border-right:1px solid rgba(14,59,54,.12);}
  .trust-item:last-child{border-right:none;}
  .trust-num{
    font-family:'Fraunces',serif;font-size:clamp(2rem,3.4vw,2.8rem);
    font-weight:500;color:var(--ink);
  }
  .trust-label{
    font-size:.78rem;color:var(--text-mute);margin-top:.4rem;
    letter-spacing:.02em;
  }

  /* ============ SECTION HEAD ============ */
  .section-head{
    display:flex;justify-content:space-between;align-items:flex-end;
    gap:2rem;margin-bottom:3.4rem;flex-wrap:wrap;
  }
  .section-head h2{
    font-size:clamp(2rem,4vw,3.2rem);
    margin-top:.5rem;
    max-width:620px;
  }
  .section-head p{
    color:var(--text-mute);max-width:360px;font-size:1rem;line-height:1.6;
  }

  /* ============ BEFORE/AFTER (signature) ============ */
  .reveal-section{
    background:var(--ivory);
    border-radius:0;
    color:var(--text-dark);
    margin:0;
    padding:min(10vw,120px) min(6vw,80px);
    max-width:none;
  }
  .reveal-inner{max-width:1400px;margin:0 auto;}
  .reveal-layout{
    display:grid;
    grid-template-columns:minmax(280px,.9fr) 1.1fr;
    gap:clamp(2rem, 5vw, 4.5rem);
    align-items:center;
  }
  .reveal-copy h2{
    font-size:clamp(2rem, 3.8vw, 3rem);
    color:var(--ink);
    margin-top:.5rem;
    max-width:420px;
  }
  .reveal-copy > p{
    color:var(--text-mute);
    line-height:1.65;
    margin-top:1rem;
    max-width:400px;
  }
  .reveal-points{
    margin-top:1.8rem;
    display:flex;flex-direction:column;gap:.85rem;
  }
  .reveal-points li{
    display:flex;align-items:flex-start;gap:.85rem;
    padding:.9rem 1rem;
    border-radius:var(--radius-md);
    background:var(--paper);
    border:1px solid rgba(14,59,54,.08);
    box-shadow:0 8px 24px -16px rgba(14,59,54,.18);
  }
  .reveal-points li::before{
    content:"";
    width:8px;height:8px;border-radius:50%;
    background:var(--lime);
    margin-top:.45rem;flex-shrink:0;
    box-shadow:0 0 0 4px rgba(220,232,90,.25);
  }
  .reveal-points strong{
    display:block;font-size:.92rem;color:var(--ink);margin-bottom:.15rem;
  }
  .reveal-points span{font-size:.82rem;color:var(--text-mute);line-height:1.45;}
  .reveal-hint{
    margin-top:1.4rem;
    font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;
    font-weight:700;color:var(--ink);opacity:.65;
  }
  .reveal-visual{position:relative;}
  .ba-frame{
    position:relative;
    padding:14px;
    border-radius:calc(var(--radius-lg) + 6px);
    background:linear-gradient(145deg, var(--ink) 0%, #0c4a42 100%);
    box-shadow:0 32px 80px -28px rgba(14,59,54,.45);
  }
  .ba-frame::before{
    content:"";
    position:absolute;inset:0;border-radius:inherit;
    padding:1px;
    background:linear-gradient(135deg, rgba(220,232,90,.45), rgba(191,227,221,.2), transparent);
    -webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite:xor;
    mask-composite:exclude;
    pointer-events:none;
  }
  .ba-metrics{
    display:grid;grid-template-columns:1fr 1fr;gap:.75rem;
    margin-top:.85rem;
  }
  .ba-metric{
    padding:.75rem 1rem;
    border-radius:12px;
    background:rgba(246,243,236,.08);
    border:1px solid rgba(246,243,236,.12);
    text-align:center;
  }
  .ba-metric span{
    display:block;font-size:.65rem;letter-spacing:.14em;
    text-transform:uppercase;font-weight:700;
    color:rgba(246,243,236,.55);margin-bottom:.25rem;
  }
  .ba-metric strong{font-family:'Fraunces',serif;font-size:1.1rem;color:var(--lime);font-weight:500;}
  .ba-metric.after-metric strong{color:var(--aqua);}

  .ba-wrap{
    position:relative;
    width:100%;
    aspect-ratio:16/9;
    border-radius:var(--radius-md);
    overflow:hidden;
    cursor:ew-resize;
    box-shadow:var(--shadow-soft);
    user-select:none;
    touch-action:none;
  }
  .ba-wrap img{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
    pointer-events:none;
  }
  .ba-after{z-index:1;}
  .ba-before{
    z-index:2;
    filter:grayscale(55%) brightness(.72) contrast(.92) sepia(.12) saturate(1.1);
    clip-path:inset(0 50% 0 0);
  }
  .ba-tag{
    position:absolute;top:22px;
    padding:.5em 1.1em;border-radius:100px;
    font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;
    z-index:3;backdrop-filter:blur(6px);
  }
  .ba-tag.before{left:22px;background:rgba(16,35,31,.55);color:#fff;}
  .ba-tag.after{right:22px;background:rgba(220,232,90,.92);color:var(--ink);}
  .ba-handle{
    position:absolute;top:0;bottom:0;left:50%;
    width:0;z-index:4;
    transform:translateX(-50%);
    pointer-events:none;
  }
  .ba-handle::before{
    content:"";position:absolute;top:0;bottom:0;left:0;width:2px;
    background:var(--ivory);
  }
  .ba-grip{
    position:absolute;top:50%;left:0;transform:translate(-50%,-50%);
    width:52px;height:52px;border-radius:50%;
    background:var(--ivory);
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 8px 24px -6px rgba(0,0,0,.4);
  }
  .ba-grip svg{width:20px;height:20px;}

  /* ============ SERVICES ============ */
  .services-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1.6rem;
  }
  .service-card{
    position:relative;
    border-radius:var(--radius-md);
    overflow:hidden;
    aspect-ratio:4/5;
    background:var(--ink);
    transition:transform .6s var(--ease), box-shadow .6s var(--ease);
  }
  .service-card:hover{
    transform:translateY(-10px);
    box-shadow:var(--shadow-soft);
  }
  .service-card .img-wrap{position:absolute;inset:0;overflow:hidden;}
  .service-card img{
    width:100%;height:100%;object-fit:cover;
    transition:transform 1s var(--ease), filter .6s ease;
  }
  .service-card:hover img{transform:scale(1.14);}
  .service-card::after{
    content:"";position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(10,41,37,0) 30%, rgba(10,41,37,.92) 100%);
    z-index:1;
  }
  .service-info{
    position:absolute;left:0;right:0;bottom:0;z-index:2;
    padding:1.8rem;color:var(--text-light);
  }
  .service-num{
    font-size:.75rem;color:var(--lime);font-weight:700;letter-spacing:.1em;
  }
  .service-info h3{
    font-size:1.4rem;margin:.35rem 0 .5rem;color:var(--text-light);
  }
  .service-info p{
    font-size:.86rem;color:rgba(246,243,236,.72);
    max-height:0;opacity:0;overflow:hidden;
    transition:max-height .5s var(--ease), opacity .4s ease;
  }
  .service-card:hover .service-info p{max-height:80px;opacity:1;}
  .service-arrow{
    position:absolute;top:1.6rem;right:1.6rem;z-index:2;
    width:40px;height:40px;border-radius:50%;
    background:rgba(246,243,236,.14);
    display:flex;align-items:center;justify-content:center;
    transition:transform .5s var(--ease), background .4s ease;
  }
  .service-card:hover .service-arrow{
    background:var(--lime);
    transform:rotate(45deg);
  }
  .service-arrow svg{width:16px;height:16px;stroke:var(--text-light);transition:stroke .4s ease;}
  .service-card:hover .service-arrow svg{stroke:var(--ink);}

  /* ============ PROCESS ============ */
  .process{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:2rem;
    position:relative;
  }
  .process-line{
    position:absolute;top:26px;left:0;right:0;height:1px;
    background:rgba(14,59,54,.15);
    overflow:hidden;
  }
  .process-line-fill{
    position:absolute;top:0;left:0;height:100%;width:0%;
    background:var(--ink);
    transition:width 1.8s var(--ease);
  }
  .process-step{position:relative;padding-top:70px;}
  .process-index{
    position:absolute;top:0;left:0;
    width:52px;height:52px;border-radius:50%;
    background:var(--paper);
    border:1.5px solid rgba(14,59,54,.18);
    display:flex;align-items:center;justify-content:center;
    font-family:'Fraunces',serif;font-size:1.1rem;color:var(--ink);
    transition:background .5s var(--ease), color .5s var(--ease), transform .5s var(--ease), border-color .5s ease;
  }
  .process-step.visible .process-index{
    background:var(--ink);color:var(--lime);border-color:var(--ink);
    transform:scale(1.06);
  }
  .process-step h3{font-size:1.2rem;margin-bottom:.6rem;}
  .process-step p{color:var(--text-mute);font-size:.92rem;line-height:1.6;}

  /* ============ GALLERY (before / after) ============ */
  .gallery-ba-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:1.25rem;
  }
  @media (min-width:1100px){
    .gallery-ba-grid{
      grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .gallery-ba-card:last-child:nth-child(odd){
      grid-column:1 / -1;
      max-width:560px;
      justify-self:center;
      width:100%;
    }
  }
  .gallery-ba-card{
    background:var(--paper);
    border-radius:var(--radius-md);
    border:1px solid rgba(14,59,54,.08);
    overflow:hidden;
    display:flex;
    flex-direction:column;
  }
  .gallery-ba-card h3{
    font-size:1rem;
    padding:1rem 1.1rem .35rem;
    color:var(--ink);
  }
  .gallery-ba-card > p{
    font-size:.82rem;
    color:var(--text-mute);
    padding:0 1.1rem 1rem;
    line-height:1.5;
  }
  .gallery-ba-pair{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:3px;
    flex:1;
    min-height:0;
  }
  .gallery-ba-pair figure{
    position:relative;
    margin:0;
    aspect-ratio:4 / 3;
    overflow:hidden;
    background:var(--ink);
  }
  .gallery-ba-pair img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .8s var(--ease);
  }
  .gallery-ba-card:hover img{transform:scale(1.06);}
  .gallery-ba-pair figcaption{
    position:absolute;
    left:.65rem;
    bottom:.65rem;
    padding:.28rem .6rem;
    border-radius:999px;
    font-size:.68rem;
    font-weight:700;
    letter-spacing:.06em;
    text-transform:uppercase;
    background:rgba(10,41,37,.78);
    color:var(--text-light);
    backdrop-filter:blur(6px);
  }
  .gallery-ba-pair figure.after figcaption{
    background:rgba(220,232,90,.92);
    color:var(--ink);
  }

  /* ============ TESTIMONIALS ============ */
  .testi-track{
    display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;
  }
  .testi-card{
    background:var(--paper);
    border-radius:var(--radius-md);
    padding:2.2rem;
    border:1px solid rgba(14,59,54,.1);
    transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s ease;
  }
  .testi-card:hover{
    transform:translateY(-8px);
    box-shadow:var(--shadow-soft);
    border-color:transparent;
  }
  .testi-stars{color:var(--coral);letter-spacing:2px;margin-bottom:1.1rem;font-size:.95rem;}
  .testi-card p{font-size:1.02rem;line-height:1.65;color:var(--text-dark);margin-bottom:1.6rem;font-family:'Fraunces',serif;font-weight:400;}
  .testi-person{display:flex;align-items:center;gap:.8rem;}
  .testi-avatar{
    width:42px;height:42px;border-radius:50%;
    background:var(--aqua);
    display:flex;align-items:center;justify-content:center;
    font-family:'Fraunces',serif;font-weight:600;color:var(--ink);
  }
  .testi-name{font-size:.88rem;font-weight:700;}
  .testi-loc{font-size:.78rem;color:var(--text-mute);}

  /* ============ CTA BANNER ============ */
  .cta-banner{
    background:var(--ink);
    border-radius:var(--radius-lg);
    margin:0 min(3vw,40px);
    padding:min(9vw,110px) min(6vw,70px);
    text-align:center;
    color:var(--text-light);
    position:relative;
    overflow:hidden;
  }
  .cta-banner::before{
    content:"";position:absolute;width:600px;height:600px;
    background:radial-gradient(circle, rgba(220,232,90,.16), transparent 70%);
    top:-200px;right:-150px;
  }
  .cta-banner h2{
    font-size:clamp(2.2rem,5vw,4rem);
    max-width:780px;margin:0 auto 1.4rem;
    color:var(--text-light);
    position:relative;
  }
  .cta-banner p{
    color:rgba(246,243,236,.72);max-width:480px;margin:0 auto 2.4rem;
    position:relative;
  }
  .cta-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;position:relative;}

  /* ============ FOOTER ============ */
  footer{
    padding:80px min(6vw,80px) 30px;
    max-width:1400px;margin:0 auto;
  }
  .footer-top{
    display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:3rem;
    padding-bottom:56px;
    border-bottom:1px solid rgba(14,59,54,.12);
  }
  .footer-brand .logo{margin-bottom:1rem;max-width:280px;align-items:flex-start;}
  .footer-brand .logo-img{height:56px;max-width:64px;background:transparent;padding:0;}
  .footer-brand .logo-id{color:var(--text-mute);}
  .footer-brand p{color:var(--text-mute);font-size:.9rem;max-width:280px;line-height:1.6;}
  .footer-col h4{
    font-family:'Manrope',sans-serif;font-size:.78rem;letter-spacing:.14em;
    text-transform:uppercase;font-weight:800;margin-bottom:1.1rem;color:var(--ink);
  }
  .footer-col ul li{margin-bottom:.7rem;}
  .footer-col ul li a{
    font-size:.9rem;color:var(--text-mute);transition:color .3s ease, padding-left .3s ease;
  }
  .footer-col ul li a:hover{color:var(--ink);padding-left:4px;}
  .footer-form{display:flex;gap:.6rem;margin-top:1rem;}
  .footer-form input{
    flex:1;padding:.9em 1.1em;border-radius:100px;border:1.5px solid rgba(14,59,54,.2);
    font-family:inherit;font-size:.85rem;background:transparent;color:var(--text-dark);
  }
  .footer-form input:focus{outline:none;border-color:var(--ink);}
  .footer-form button{
    width:46px;height:46px;border-radius:50%;background:var(--ink);color:var(--lime);
    display:flex;align-items:center;justify-content:center;flex-shrink:0;
    transition:transform .4s var(--ease);
  }
  .footer-form button:hover{transform:rotate(45deg) scale(1.06);}
  .footer-bottom{
    display:flex;justify-content:space-between;align-items:center;
    padding-top:26px;flex-wrap:wrap;gap:1rem;
    font-size:.8rem;color:var(--text-mute);
  }
  .socials{display:flex;gap:1rem;}
  .socials a{
    width:36px;height:36px;border-radius:50%;border:1.5px solid rgba(14,59,54,.2);
    display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;
    transition:background .3s ease, color .3s ease, transform .3s ease;
  }
  .socials a:hover{background:var(--ink);color:var(--lime);transform:translateY(-3px);}

  /* ============ RESPONSIVE ============ */
  @media (max-width:1024px){
    .hero{
      display:flex;
      height:min(100dvh, 760px);
      max-height:none;
      min-height:520px;
    }
    .hero-panel{
      width:100%;
      justify-content:flex-end;
      padding:1.35rem min(6vw,80px) 2rem;
      overflow:visible;
    }
    .hero-bg::after{
      background:
        linear-gradient(180deg, rgba(7,31,28,.45) 0%, rgba(7,31,28,.55) 40%, rgba(7,31,28,.88) 100%),
        linear-gradient(90deg, rgba(7,31,28,.55) 0%, transparent 60%);
    }
    .hero-content{max-width:640px;}
    .hero h1{max-width:14ch;font-size:clamp(1.9rem, 6.5vw, 2.8rem);margin-bottom:.75rem;}
    .hero-kicker{margin-bottom:.85rem;padding:.5rem .85rem;font-size:.65rem;}
    .hero-lead{font-size:.9rem;margin-bottom:1.1rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
    .scroll-cue{display:none;}
    .services-grid{grid-template-columns:repeat(2,1fr);}
    .process{grid-template-columns:repeat(2,1fr);row-gap:3rem;}
    .process-line{display:none;}
    .trust{
      display:flex;
      flex-direction:row;
      flex-wrap:nowrap;
      align-items:flex-start;
      justify-content:space-between;
      gap:1rem;
    }
    .trust-item{flex:1 1 0;min-width:0;}
    .testi-track{grid-template-columns:1fr;}
    .footer-top{grid-template-columns:1fr 1fr;row-gap:2.4rem;}
  }
  @media (max-width:760px){
    header{
      padding:12px max(4vw, 14px);
      align-items:center;
      gap:.75rem;
    }
    header.scrolled{padding:10px max(4vw, 14px);}
    .logo{
      flex-shrink:1;
      max-width:min(210px, 52vw);
      gap:.45rem;
    }
    .logo-img{height:36px;max-width:40px;padding:2px;border-radius:8px;}
    .logo-name{font-size:.72rem;}
    .logo-id{display:none;}
    .hero-business-id{
      display:block;
      margin:.85rem 0 1.15rem;
    }
    .hero-kicker{margin-bottom:0;}
    nav.links{
      display:none;
      position:fixed;
      top:66px;
      left:16px;
      right:16px;
      z-index:1002;
      background:var(--ivory);
      border-radius:20px;
      padding:18px 20px;
      flex-direction:column;
      gap:1.1rem;
      box-shadow:0 20px 50px -20px rgba(14,59,54,.4);
    }
    nav.links.open{display:flex;}
    nav.links.open a,
    header:not(.scrolled) nav.links.open a{
      color:var(--ink) !important;
      opacity:1;
      visibility:visible;
    }
    nav.links.open a::after,
    header:not(.scrolled) nav.links.open a::after{
      background:var(--ink) !important;
    }
    .nav-phone{display:none;}
    .nav-cta{
      margin-left:auto;
      gap:.55rem;
      align-items:center;
      flex-shrink:0;
    }
    .cta-desktop{display:none;}
    .cta-mobile{display:inline;}
    .burger{
      display:flex;
      margin:0;
      padding:0;
      width:40px;
      height:40px;
      flex-shrink:0;
      align-items:center;
      justify-content:center;
      gap:5px;
    }
    .nav-cta .btn-primary{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      height:40px;
      padding:0 1em;
      font-size:.78rem;
      letter-spacing:0;
      line-height:1;
      white-space:nowrap;
    }
    .hero{
      height:min(100dvh, 640px);
      min-height:460px;
      max-height:none;
    }
    .hero-panel{
      padding:1.1rem 5vw 1.5rem;
      justify-content:flex-end;
      flex:none;
      width:100%;
    }
    .hero-content{margin:0;}
    .hero-actions{margin-bottom:0;}
    .hero h1{
      font-size:clamp(1.75rem, 8vw, 2.35rem);
      max-width:12ch;
    }
    .hero-lead{font-size:.86rem;-webkit-line-clamp:2;margin-bottom:1rem;}
    .hero-actions .btn{padding:.7em 1.15em;font-size:.82rem;}
    .hero-bg img{object-position:center 20%;}
    .services-grid{grid-template-columns:1fr;gap:1rem;}
    .service-card{aspect-ratio:16 / 9;}
    .service-info{padding:1.15rem 1.25rem;}
    .service-info h3{font-size:1.15rem;margin:.25rem 0 .35rem;}
    .service-info p{
      max-height:none;opacity:1;
      font-size:.8rem;line-height:1.4;
      display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
    }
    .service-arrow{top:1rem;right:1rem;width:34px;height:34px;}
    .trust{
      display:flex;
      flex-direction:row;
      flex-wrap:nowrap;
      align-items:flex-start;
      justify-content:space-between;
      gap:.5rem;
      padding:28px max(3vw, 12px);
      max-width:none;
      margin:0;
    }
    .trust-item{
      flex:1 1 0;
      min-width:0;
      border-right:1px solid rgba(14,59,54,.12);
      border-bottom:none;
      padding:0 .35rem;
      padding-bottom:0;
    }
    .trust-item:last-child{border-right:none;border-bottom:none;padding-bottom:0;}
    .trust-num{font-size:clamp(1.25rem, 5vw, 1.7rem);}
    .trust-label{font-size:.62rem;line-height:1.25;margin-top:.25rem;}
    .gallery-ba-grid{grid-template-columns:1fr;gap:1rem;}
    .gallery-ba-pair figure{aspect-ratio:1 / 1;}
    .section-head{flex-direction:column;align-items:flex-start;}
    .footer-top{grid-template-columns:1fr;}
    .footer-brand{display:none;}
    .cta-banner{margin:0 4vw;}
    .reveal-layout{grid-template-columns:1fr;}
    .reveal-copy h2{max-width:none;}
    .reveal-section{padding:min(12vw,100px) 5vw;}
  }

  @media (prefers-reduced-motion: reduce){
    *{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important;}
  }

  :focus-visible{outline:2px solid var(--ink); outline-offset:3px;}

  .booking-modal{
    position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:2000;padding:1.25rem;
  }
  .booking-modal.open{display:flex;}
  .booking-backdrop{
    position:absolute;inset:0;
    background:rgba(7,31,28,.72);
    backdrop-filter:blur(10px) saturate(1.2);
  }
  .booking-panel{
    position:relative;z-index:1;
    width:min(100%, 980px);
    height:min(720px, calc(100vh - 2.5rem));
    height:min(720px, calc(100dvh - 2.5rem));
    max-height:calc(100vh - 2.5rem);
    max-height:calc(100dvh - 2.5rem);
    overflow:hidden;
    display:grid;
    grid-template-columns:minmax(260px, 34%) minmax(0, 1fr);
    grid-template-rows:minmax(0, 1fr);
    border-radius:var(--radius-lg);
    border:1px solid rgba(246,243,236,.12);
    box-shadow:0 40px 100px -24px rgba(0,0,0,.55);
    animation:booking-in .45s var(--ease);
  }
  @keyframes booking-in{
    from{opacity:0;transform:translateY(24px) scale(.98);}
    to{opacity:1;transform:translateY(0) scale(1);}
  }
  .booking-aside{
    padding:2rem 1.8rem;
    background:
      radial-gradient(circle at 20% 15%, rgba(220,232,90,.16) 0%, transparent 45%),
      linear-gradient(165deg, var(--ink-2) 0%, var(--ink) 100%);
    color:var(--text-light);
    display:flex;
    flex-direction:column;
    gap:1.4rem;
    overflow:hidden;
    min-height:0;
  }
  .booking-aside .eyebrow{color:var(--lime);}
  .booking-aside .eyebrow::before{background:var(--lime);}
  .booking-aside h2{
    font-size:clamp(1.6rem, 2.4vw, 2.1rem);
    color:var(--text-light);
    line-height:1.1;
  }
  .booking-aside > p{
    font-size:.9rem;
    line-height:1.65;
    color:rgba(246,243,236,.72);
  }
  .booking-steps{
    display:flex;flex-direction:column;gap:.75rem;margin-top:auto;
  }
  .booking-step{
    display:flex;align-items:center;gap:.75rem;
    font-size:.82rem;color:rgba(246,243,236,.55);
    transition:color .25s ease;
  }
  .booking-step-num{
    width:28px;height:28px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    font-weight:700;font-size:.75rem;
    background:rgba(246,243,236,.08);
    border:1px solid rgba(246,243,236,.14);
    flex-shrink:0;
    transition:background .25s ease, color .25s ease, border-color .25s ease;
  }
  .booking-step.active{color:var(--lime);}
  .booking-step.active .booking-step-num{
    background:var(--lime);color:var(--ink);border-color:var(--lime);
  }
  .booking-step.done{color:rgba(246,243,236,.85);}
  .booking-step.done .booking-step-num{
    background:rgba(220,232,90,.22);color:var(--lime);border-color:rgba(220,232,90,.45);
  }
  .booking-trust{
    display:flex;flex-direction:column;gap:.55rem;
    padding-top:1rem;border-top:1px solid rgba(246,243,236,.12);
    font-size:.78rem;color:rgba(246,243,236,.6);
  }
  .booking-trust span{display:flex;align-items:center;gap:.45rem;}
  .booking-trust span::before{
    content:"";width:6px;height:6px;border-radius:50%;background:var(--lime);
  }
  .booking-main{
    background:var(--paper);
    padding:2rem 2rem 1.6rem;
    overflow-x:hidden;
    overflow-y:auto;
    min-height:0;
    max-height:none;
    height:100%;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
  }
  .booking-main-header{
    display:flex;justify-content:space-between;align-items:flex-start;
    gap:1rem;margin-bottom:1.4rem;
  }
  .booking-main-header p{
    color:var(--text-mute);font-size:.9rem;line-height:1.6;max-width:420px;
  }
  .booking-section-title{
    font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;
    font-weight:700;color:var(--ink);margin-bottom:.85rem;
  }
  .booking-services{
    display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem;
    margin-bottom:1.5rem;
  }
  .booking-service-card{
    text-align:left;padding:.85rem .95rem;
    border-radius:var(--radius-md);
    border:1.5px solid rgba(14,59,54,.12);
    background:var(--ivory);
    cursor:pointer;
    transition:border-color .3s ease, background .3s ease, transform .3s var(--ease), box-shadow .3s ease;
  }
  .booking-service-card:hover{
    border-color:rgba(14,59,54,.28);
    transform:translateY(-2px);
  }
  .booking-service-card.active{
    border-color:var(--ink);
    background:rgba(14,59,54,.06);
    box-shadow:0 10px 24px -14px rgba(14,59,54,.35);
  }
  .booking-service-card.active .booking-service-icon{
    background:var(--ink);
    border-color:var(--ink);
    color:var(--lime);
  }
  .booking-service-card strong{
    display:block;font-size:.88rem;color:var(--ink);margin-bottom:.2rem;
  }
  .booking-service-card span{
    font-size:.72rem;color:var(--text-mute);line-height:1.4;
  }
  .booking-service-icon{
    width:38px;height:38px;border-radius:11px;
    background:linear-gradient(145deg, rgba(191,227,221,.35), rgba(14,59,54,.08));
    border:1px solid rgba(14,59,54,.1);
    display:flex;align-items:center;justify-content:center;
    margin-bottom:.5rem;
    color:var(--ink);
  }
  .booking-service-icon svg{
    width:20px;height:20px;
    stroke:currentColor;fill:none;
    stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;
  }
  .booking-select-hidden{
    position:absolute;width:1px;height:1px;padding:0;margin:-1px;
    overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
  }
  .booking-form-grid{
    display:grid;grid-template-columns:1fr 1fr;gap:0 1rem;
  }
  .booking-form-grid > label{min-width:0;}
  .booking-form-grid .field-full{grid-column:1 / -1;}
  .booking-panel label{
    display:block;font-size:.78rem;font-weight:600;
    letter-spacing:.04em;text-transform:uppercase;
    color:var(--text-mute);margin-bottom:1rem;
  }
  .booking-panel input,
  .booking-panel select,
  .booking-panel textarea{
    width:100%;max-width:100%;padding:.9rem 1rem;border-radius:12px;
    border:1.5px solid rgba(14,59,54,.14);
    font:inherit;font-size:.92rem;color:var(--ink);
    background:var(--ivory);margin-top:.45rem;
    transition:border-color .25s ease, box-shadow .25s ease, background .25s ease;
  }
  .booking-panel input[type="text"],
  .booking-panel input[type="email"],
  .booking-panel input[type="date"],
  .booking-panel input[type="time"]{
    display:block;
    height:3.2rem;
    min-height:3.2rem;
    line-height:1.25;
    padding:.75rem 1rem;
  }
  .booking-panel input[type="date"],
  .booking-panel input[type="time"]{
    appearance:none;
    -webkit-appearance:none;
    color-scheme:light;
  }
  .booking-panel input[type="date"]::-webkit-calendar-picker-indicator,
  .booking-panel input[type="time"]::-webkit-calendar-picker-indicator{
    opacity:.55;
    cursor:pointer;
  }
  .booking-panel input:focus,
  .booking-panel select:focus,
  .booking-panel textarea:focus{
    outline:none;border-color:var(--ink);
    box-shadow:0 0 0 3px rgba(14,59,54,.1);
    background:var(--paper);
  }
  .booking-panel textarea{min-height:96px;resize:vertical;}
  .booking-panel select{
    appearance:none;
    background:var(--ivory) url('data:image/svg+xml,%3Csvg width="10" height="7" viewBox="0 0 10 7" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M1 1l4 4 4-4" stroke="%230E3B36" stroke-width="2" fill="none"/%3E%3C/svg%3E') no-repeat right 1rem center/10px 7px;
  }
  .booking-panel .form-actions{
    display:flex;gap:.75rem;flex-wrap:wrap;justify-content:flex-end;
    margin-top:1.4rem;padding-top:1.2rem;
    border-top:1px solid rgba(14,59,54,.1);
  }
  .booking-panel .form-note{
    margin-top:.85rem;font-size:.8rem;color:var(--text-mute);line-height:1.5;
  }
  .booking-panel .modal-close{
    position:absolute;top:16px;right:16px;z-index:3;
    width:40px;height:40px;border-radius:50%;
    background:rgba(14,59,54,.08);
    display:flex;align-items:center;justify-content:center;
    font-size:1.35rem;line-height:1;color:var(--ink);cursor:pointer;
    border:none;
    transition:background .25s ease, transform .25s var(--ease);
  }
  .booking-panel .modal-close:hover{
    background:rgba(14,59,54,.14);transform:rotate(90deg);
  }
  .booking-panel .hidden{display:none;}
  @media (max-width:820px){
    .booking-modal{
      align-items:stretch;
      justify-content:stretch;
      padding:0;
      overflow:hidden;
    }
    .booking-panel{
      grid-template-columns:1fr;
      grid-template-rows:auto minmax(0, 1fr);
      width:100%;
      height:100vh;
      height:100dvh;
      max-height:100vh;
      max-height:100dvh;
      border-radius:0;
      overflow:hidden;
    }
    .booking-aside{
      padding:1.25rem 1.25rem 1rem;
      gap:.85rem;
      padding-right:3.5rem;
      overflow:hidden;
      flex-shrink:0;
    }
    .booking-aside h2{font-size:1.45rem;}
    .booking-aside > p{
      font-size:.82rem;
      display:-webkit-box;
      -webkit-line-clamp:2;
      -webkit-box-orient:vertical;
      overflow:hidden;
    }
    .booking-steps{
      flex-direction:row;
      flex-wrap:nowrap;
      gap:.45rem;
      margin-top:0;
      overflow-x:auto;
    }
    .booking-step{font-size:.72rem;white-space:nowrap;}
    .booking-step-num{width:24px;height:24px;font-size:.68rem;}
    .booking-trust{display:none;}
    .booking-main{
      padding:1.25rem 1.25rem calc(1.35rem + env(safe-area-inset-bottom, 0px));
      overflow-y:auto;
      min-height:0;
      height:auto;
    }
    .booking-services{grid-template-columns:1fr;}
    .booking-form-grid{grid-template-columns:1fr;}
    .booking-panel .modal-close{
      position:absolute;
      top:max(12px, env(safe-area-inset-top, 0px));
      right:max(12px, env(safe-area-inset-right, 0px));
      z-index:5;
      width:44px;height:44px;
      background:rgba(246,243,236,.16);
      color:var(--text-light);
      box-shadow:none;
      border:1px solid rgba(246,243,236,.2);
    }
    .booking-panel .modal-close:hover{
      background:rgba(246,243,236,.24);transform:none;
    }
  }

  /* ============ FLOAT CONTACT ============ */
  .float-contact{
    position:fixed;
    right:max(16px, env(safe-area-inset-right, 0px));
    bottom:max(18px, env(safe-area-inset-bottom, 0px));
    z-index:2147483647;
    display:flex;
    flex-direction:column;
    gap:.7rem;
    pointer-events:none;
  }
  .float-btn{
    pointer-events:auto;
    width:54px;height:54px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 14px 34px -12px rgba(0,0,0,.45);
    transition:transform .25s var(--ease), box-shadow .25s ease;
  }
  .float-btn:hover{transform:translateY(-3px) scale(1.04);}
  .float-btn svg{width:24px;height:24px;fill:currentColor;}
  .float-call{
    background:var(--ink);
    color:var(--lime);
  }
  .float-wa{
    background:#25D366;
    color:#fff;
  }
  .booking-modal.open ~ .float-contact{opacity:0;pointer-events:none;visibility:hidden;}
  @media (max-width:760px){
    .float-btn{width:50px;height:50px;}
    .float-btn svg{width:22px;height:22px;}
  }