  :root{
    --quarry:#1a1a17;        /* near-black warm charcoal, wet basalt */
    --quarry-2:#23231f;      /* slightly lifted dark panel */
    --limestone:#ece6d9;     /* warm limestone off-white */
    --marble:#f6f3ec;        /* lighter marble white */
    --sand:#cbb89a;          /* warm sandstone */
    --sand-deep:#a78a63;     /* deeper sand for text on light */
    --patina:#6f8a78;        /* verdigris / oxidized bronze */
    --patina-deep:#41584b;   /* deep patina for text on light */
    --patina-bright:#8fae9a; /* brighter verdigris for dark bg accents */
    --graphite:#46453f;      /* mid gray body text on light */
    --line-dark:rgba(236,230,217,.14);
    --line-light:rgba(26,26,23,.13);

    --maxw:1240px;
    --gut:clamp(20px,5vw,72px);
    --sp:clamp(72px,11vw,150px); /* vertical section rhythm */

    --f-display:"Cinzel",Georgia,serif;
    --f-body:"Archivo",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  }

  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

  body{
    font-family:var(--f-body);
    background:var(--limestone);
    color:var(--quarry);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
    overflow-x:hidden;
  }

  /* ---- shared structural devices ---- */
  .wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gut)}
  .section{padding-block:var(--sp)}
  .eyebrow{
    font-family:var(--f-body);
    font-size:.72rem;font-weight:600;
    letter-spacing:.32em;text-transform:uppercase;
    color:var(--patina-deep);
    display:flex;align-items:center;gap:.85em;
  }
  .eyebrow::before{content:"";width:34px;height:1px;background:var(--sand-deep);display:inline-block;flex:none}
  .eyebrow.on-dark{color:var(--patina-bright)}
  .eyebrow.on-dark::before{background:var(--sand)}
  .eyebrow.centered{justify-content:center}

  h1,h2,h3{font-weight:400;line-height:1.04;letter-spacing:.01em}
  .display{font-family:var(--f-display)}
  p{max-width:62ch}

  a{color:inherit}

  /* ---- buttons ---- */
  .btn{
    --bg:var(--quarry);--fg:var(--limestone);--bd:var(--quarry);
    display:inline-flex;align-items:center;gap:.7em;
    font-family:var(--f-body);font-weight:600;font-size:.82rem;
    letter-spacing:.14em;text-transform:uppercase;text-decoration:none;
    padding:1.05em 1.7em;border:1px solid var(--bd);
    background:var(--bg);color:var(--fg);
    cursor:pointer;position:relative;overflow:hidden;
    transition:color .45s ease,background .45s ease,border-color .45s ease;
  }
  .btn .arr{transition:transform .45s cubic-bezier(.2,.7,.2,1)}
  .btn:hover .arr{transform:translateX(5px)}
  .btn--ghost{--bg:transparent;--fg:var(--quarry);--bd:rgba(26,26,23,.35)}
  .btn--ghost:hover{--bg:var(--quarry);--fg:var(--limestone);--bd:var(--quarry)}
  .btn--patina{--bg:var(--patina-deep);--fg:var(--limestone);--bd:var(--patina-deep)}
  .btn--patina:hover{--bg:transparent;--fg:var(--patina-deep)}
  .btn--on-dark{--bg:var(--limestone);--fg:var(--quarry);--bd:var(--limestone)}
  .btn--on-dark.btn--ghost{--bg:transparent;--fg:var(--limestone);--bd:rgba(236,230,217,.4)}
  .btn--on-dark.btn--ghost:hover{--bg:var(--limestone);--fg:var(--quarry);--bd:var(--limestone)}

  /* ============ NAV ============ */
  header.nav{
    position:sticky;top:0;z-index:60;
    background:rgba(26,26,23,.0);
    backdrop-filter:blur(0);
    transition:background .4s ease,backdrop-filter .4s ease,border-color .4s ease;
    border-bottom:1px solid transparent;
  }
  header.nav.scrolled{
    background:rgba(20,20,17,.86);
    backdrop-filter:blur(11px);
    border-bottom:1px solid var(--line-dark);
  }
  .nav-in{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;height:74px}
  .brand{display:flex;flex-direction:column;line-height:1;text-decoration:none;color:var(--limestone)}
  .brand b{font-family:var(--f-display);font-weight:600;font-size:1.12rem;letter-spacing:.18em}
  .brand span{font-family:var(--f-body);font-weight:500;font-size:.56rem;letter-spacing:.42em;text-transform:uppercase;color:var(--patina-bright);margin-top:.45em}
  .nav-links{display:flex;align-items:center;gap:2.1rem}
  .nav-links a{
    color:var(--limestone);text-decoration:none;font-size:.8rem;font-weight:500;
    letter-spacing:.08em;opacity:.82;position:relative;padding-block:.4em;
    transition:opacity .3s ease;
  }
  .nav-links a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--patina-bright);transition:width .35s ease}
  .nav-links a:hover{opacity:1}
  .nav-links a:hover::after{width:100%}
  .nav-cta{display:flex;align-items:center;gap:1.2rem}
  .nav-phone{color:var(--limestone);text-decoration:none;font-family:var(--f-display);font-weight:500;font-size:.96rem;letter-spacing:.06em;white-space:nowrap}
  .nav-phone:hover{color:var(--patina-bright)}
  .nav-toggle{display:none;background:none;border:1px solid var(--line-dark);width:44px;height:40px;cursor:pointer;flex-direction:column;gap:5px;align-items:center;justify-content:center}
  .nav-toggle span{display:block;width:20px;height:1.5px;background:var(--limestone);transition:.3s}

  /* ============ HERO ============ */
  .hero{
    position:relative;background:var(--quarry);color:var(--limestone);
    min-height:100svh;display:flex;align-items:center;
    margin-top:-74px;padding-top:74px;
    overflow:hidden;
  }
  /* layered stone-grain + vignette */
  .hero::before{
    content:"";position:absolute;inset:0;z-index:0;
    background:
      radial-gradient(120% 90% at 78% 8%, rgba(111,138,120,.16), transparent 55%),
      radial-gradient(95% 80% at 12% 100%, rgba(203,184,154,.10), transparent 60%),
      linear-gradient(180deg,#15150f 0%, #1d1d18 55%, #161613 100%);
  }
  .hero .grain{position:absolute;inset:0;z-index:1;opacity:.5;mix-blend-mode:overlay;pointer-events:none}
  .hero-in{position:relative;z-index:3;width:100%;padding-block:clamp(40px,9vh,110px)}
  .hero-loc{margin-bottom:clamp(26px,5vh,46px)}

  /* engraved inscription — legible limestone letters with carved depth */
  .carved{
    font-family:var(--f-display);
    font-weight:600;
    font-size:clamp(2.9rem,10.5vw,8.6rem);
    line-height:.98;
    letter-spacing:.015em;
    color:var(--limestone);
    position:relative;
    /* subtle relief: faint top highlight + soft drop for separation from texture */
    text-shadow:
      0 1px 0 rgba(255,255,255,.10),
      0 2px 1px rgba(0,0,0,.55),
      0 14px 36px rgba(0,0,0,.45);
  }
  .carved .ln{display:block;position:relative}
  .carved .ln.accent{color:#cdb89a}        /* warm sandstone second line */
  .carved .ln::after{ /* raking sheen sweep — a shimmer over already-visible text */
    content:attr(data-t);
    position:absolute;inset:0;
    color:transparent;
    background:linear-gradient(100deg,
      transparent 0%, transparent 40%,
      rgba(255,250,240,.95) 49%, rgba(243,236,221,.55) 54%,
      transparent 64%, transparent 100%);
    background-size:280% 100%;
    background-position:200% 0;
    -webkit-background-clip:text;background-clip:text;
    pointer-events:none;opacity:0;
  }
  .hero.lit .carved .ln::after{animation:rake 2.4s cubic-bezier(.5,0,.2,1) .5s 1 forwards}
  .hero.lit .carved .ln:nth-child(2)::after{animation-delay:.78s}
  @keyframes rake{
    0%{background-position:200% 0;opacity:0}
    12%{opacity:1}
    88%{opacity:1}
    100%{background-position:-130% 0;opacity:0}
  }

  .hero-sub{
    font-size:clamp(1.04rem,1.55vw,1.34rem);
    line-height:1.55;color:rgba(236,230,217,.82);font-weight:300;
    max-width:46ch;margin-top:clamp(30px,5vh,44px);
  }
  .hero-sub b{font-weight:600;color:var(--limestone)}
  .hero-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:clamp(34px,5vh,48px)}
  .scroll-cue{
    position:absolute;left:var(--gut);bottom:26px;z-index:3;
    display:flex;align-items:center;gap:.8em;
    font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(236,230,217,.5);
  }
  .scroll-cue .dot{width:1px;height:34px;background:linear-gradient(var(--patina-bright),transparent);animation:fall 2.4s ease-in-out infinite}
  @keyframes fall{0%,100%{transform:scaleY(.3);transform-origin:top;opacity:.4}50%{transform:scaleY(1);opacity:1}}

  /* ============ CREDENTIAL BAND ============ */
  .creds{background:var(--quarry-2);color:var(--limestone);border-block:1px solid var(--line-dark)}
  .creds-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
  .cred{padding:clamp(34px,5vw,52px) clamp(20px,3vw,40px);border-left:1px solid var(--line-dark);position:relative}
  .cred:first-child{border-left:none}
  .cred .n{font-family:var(--f-display);font-size:clamp(2.1rem,4vw,3rem);font-weight:600;color:var(--limestone);line-height:1}
  .cred .n em{font-style:normal;color:var(--patina-bright)}
  .cred .lab{margin-top:.7em;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(236,230,217,.62);line-height:1.5}

  /* ============ generic light section heading ============ */
  .lede{display:grid;grid-template-columns:1fr;gap:clamp(18px,2.4vw,26px);max-width:none}
  .head-xl{font-family:var(--f-display);font-weight:500;font-size:clamp(2.1rem,4.6vw,3.7rem);letter-spacing:.005em}
  .head-xl em{font-style:italic;font-family:Georgia,serif;color:var(--patina-deep)}
  .muted{color:var(--graphite)}

  /* ============ SERVICES ============ */
  #restoration{background:var(--marble)}
  .svc-top{display:grid;grid-template-columns:1fr;gap:24px;max-width:760px;margin-bottom:clamp(48px,7vw,82px)}
  .svc-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,2.6vw,34px)}
  .svc{
    position:relative;background:var(--limestone);
    border:1px solid var(--line-light);
    padding:clamp(30px,3.6vw,52px);
    display:flex;flex-direction:column;
    overflow:hidden;transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s ease;
  }
  .svc::before{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:var(--patina);transition:width .6s cubic-bezier(.2,.7,.2,1)}
  .svc:hover{transform:translateY(-6px);box-shadow:0 26px 50px -30px rgba(26,26,23,.5)}
  .svc:hover::before{width:100%}
  .svc-ix{font-family:var(--f-display);font-size:.92rem;letter-spacing:.2em;color:var(--sand-deep)}
  .svc h3{font-family:var(--f-display);font-weight:500;font-size:clamp(1.55rem,2.6vw,2.15rem);margin:.55em 0 .5em}
  .svc-desc{color:var(--graphite);font-size:.98rem;margin-bottom:1.6em}
  .svc-desc b{color:var(--quarry);font-weight:600}
  .svc ul{list-style:none;display:grid;gap:.05em;margin-top:auto}
  .svc li{display:flex;align-items:baseline;gap:.85em;padding:.62em 0;border-top:1px solid var(--line-light);font-size:.93rem;color:var(--graphite)}
  .svc li::before{content:"";width:6px;height:6px;flex:none;background:var(--patina);transform:rotate(45deg);transform-origin:center;margin-top:.45em}
  .svc-foot{margin-top:1.8em}
  .svc-foot a{color:var(--patina-deep);text-decoration:none;font-weight:600;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;display:inline-flex;gap:.6em;align-items:center}
  .svc-foot a .arr{transition:transform .4s ease}
  .svc-foot a:hover .arr{transform:translateX(5px)}

  /* ============ BEFORE / AFTER (signature proof) ============ */
  .proof{background:var(--quarry);color:var(--limestone)}
  .proof-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:clamp(40px,5vw,60px)}
  .proof-top .head-xl{color:var(--limestone)}
  .proof-top .head-xl em{color:var(--patina-bright)}
  .ba{
    position:relative;width:100%;aspect-ratio:16/8;max-height:560px;
    border:1px solid var(--line-dark);overflow:hidden;
    user-select:none;touch-action:none;cursor:ew-resize;
    background:#222;
  }
  .ba-layer{position:absolute;inset:0;overflow:hidden}
  .ba-layer svg.ba-art{position:absolute;inset:0;width:100%;height:100%;display:block}
  /* restored (clean) underneath */
  .ba-after{background:#d7d3c7}
  /* weathered on top, clipped */
  .ba-before{clip-path:inset(0 50% 0 0);background:#a9a596}
  .ba-tag{position:absolute;top:16px;z-index:4;font-size:.64rem;letter-spacing:.26em;text-transform:uppercase;font-weight:600;padding:.5em .85em;background:rgba(20,20,17,.62);backdrop-filter:blur(4px);color:var(--limestone)}
  .ba-tag.before{left:16px}
  .ba-tag.after{right:16px;background:rgba(65,88,75,.8)}
  .ba-handle{
    position:absolute;top:0;bottom:0;left:50%;width:2px;background:var(--limestone);z-index:5;transform:translateX(-1px);
  }
  .ba-knob{
    position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
    width:54px;height:54px;border-radius:50%;background:var(--limestone);color:var(--quarry);
    display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px rgba(0,0,0,.5);
  }
  .ba-knob svg{width:26px;height:26px}
  .ba input[type=range]{
    position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0;z-index:6;
  }
  .ba input[type=range]:focus-visible + .ba-handle .ba-knob{outline:3px solid var(--patina-bright);outline-offset:3px}
  .proof-note{margin-top:1.6em;color:rgba(236,230,217,.62);font-size:.9rem;max-width:62ch}

  /* ============ PROCESS ============ */
  #process{background:var(--limestone)}
  .proc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:clamp(40px,5vw,60px);border-top:1px solid var(--line-light)}
  .step{padding:clamp(30px,3vw,42px) clamp(18px,2vw,30px) 0;border-left:1px solid var(--line-light)}
  .step:first-child{border-left:none;padding-left:0}
  .step .num{font-family:var(--f-display);font-size:.8rem;letter-spacing:.2em;color:var(--patina-deep)}
  .step h4{font-family:var(--f-display);font-weight:500;font-size:1.3rem;margin:.7em 0 .5em}
  .step p{font-size:.92rem;color:var(--graphite)}

  /* ============ MATERIALS ============ */
  .mat{background:var(--quarry-2);color:var(--limestone)}
  .mat-top{max-width:680px;margin-bottom:clamp(40px,5vw,60px)}
  .mat-top .head-xl{color:var(--limestone)}
  .mat-top .head-xl em{color:var(--patina-bright)}
  .mat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-dark);border:1px solid var(--line-dark)}
  .mat-cell{background:var(--quarry-2);padding:clamp(26px,3vw,40px);transition:background .5s ease}
  .mat-cell:hover{background:var(--quarry)}
  .mat-cell .mn{font-family:var(--f-display);font-weight:500;font-size:clamp(1.3rem,2.2vw,1.7rem)}
  .mat-cell .md{font-size:.84rem;color:rgba(236,230,217,.55);margin-top:.5em;letter-spacing:.02em}
  .mat-cell .mi{font-size:.7rem;letter-spacing:.2em;color:var(--patina-bright);margin-bottom:.9em;font-weight:600}

  /* ============ TESTIMONIALS ============ */
  .quotes{background:var(--marble)}
  .quotes-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,40px);margin-top:clamp(40px,5vw,56px)}
  .q{padding:clamp(32px,3.4vw,48px);border:1px solid var(--line-light);background:var(--limestone);position:relative}
  .q .mark{font-family:var(--f-display);font-size:4rem;line-height:.6;color:var(--sand);height:.5em;display:block}
  .q blockquote{font-family:var(--f-display);font-weight:400;font-size:clamp(1.25rem,2vw,1.7rem);line-height:1.32;margin:.3em 0 1.1em;color:var(--quarry)}
  .q cite{font-style:normal;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--patina-deep);font-weight:600}
  .q .stars{color:var(--sand-deep);letter-spacing:.2em;margin-bottom:1em;font-size:.85rem}

  /* ============ AFFILIATIONS ============ */
  .affil{background:var(--limestone);border-top:1px solid var(--line-light)}
  .affil-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:30px;padding-block:clamp(40px,5vw,58px)}
  .affil .lab{font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--sand-deep);font-weight:600}
  .affil .marks{display:flex;flex-wrap:wrap;gap:clamp(28px,5vw,64px);align-items:center}
  .affil .mk{font-family:var(--f-display);font-weight:500;font-size:1.05rem;letter-spacing:.04em;color:var(--graphite);opacity:.78;transition:opacity .3s,color .3s}
  .affil .mk span{display:block;font-family:var(--f-body);font-weight:500;font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--sand-deep);margin-top:.3em}
  .affil .mk:hover{opacity:1;color:var(--patina-deep)}

  /* ============ CONTACT ============ */
  .contact{background:var(--quarry);color:var(--limestone);position:relative;overflow:hidden}
  .contact::before{content:"";position:absolute;inset:0;background:radial-gradient(80% 100% at 85% 0%,rgba(111,138,120,.16),transparent 60%);z-index:0}
  .contact .wrap{position:relative;z-index:2}
  .contact-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,6vw,90px);align-items:start}
  .contact h2{font-family:var(--f-display);font-weight:500;font-size:clamp(2.2rem,4.6vw,3.6rem);line-height:1.05;color:var(--limestone)}
  .contact h2 em{font-style:italic;font-family:Georgia,serif;color:var(--patina-bright)}
  .contact-lead{color:rgba(236,230,217,.78);margin:1.2em 0 2em;font-weight:300;font-size:1.06rem}
  .info-row{display:flex;gap:1.1em;padding:1.15em 0;border-top:1px solid var(--line-dark);align-items:flex-start}
  .info-row:last-child{border-bottom:1px solid var(--line-dark)}
  .info-row .k{font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--patina-bright);font-weight:600;min-width:96px;padding-top:.35em}
  .info-row .v{font-size:1.02rem;color:var(--limestone)}
  .info-row .v a{color:var(--limestone);text-decoration:none}
  .info-row .v a:hover{color:var(--patina-bright)}
  .info-row .v .big{font-family:var(--f-display);font-size:1.5rem;font-weight:500;letter-spacing:.04em}
  .hours-line{display:flex;justify-content:space-between;gap:1em;font-size:.92rem;color:rgba(236,230,217,.78);padding:.18em 0;max-width:260px}
  .hours-line.closed{color:rgba(236,230,217,.4)}

  /* form */
  .form{background:rgba(236,230,217,.04);border:1px solid var(--line-dark);padding:clamp(26px,3vw,40px)}
  .form h3{font-family:var(--f-display);font-weight:500;font-size:1.4rem;margin-bottom:.3em;color:var(--limestone)}
  .form p.sm{font-size:.86rem;color:rgba(236,230,217,.6);margin-bottom:1.6em}
  .field{margin-bottom:1.05rem}
  .field label{display:block;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(236,230,217,.6);margin-bottom:.55em;font-weight:600}
  .field input,.field select,.field textarea{
    width:100%;background:rgba(20,20,17,.45);border:1px solid var(--line-dark);
    color:var(--limestone);font-family:var(--f-body);font-size:.96rem;padding:.85em 1em;
    transition:border-color .3s,background .3s;
  }
  .field textarea{resize:vertical;min-height:96px}
  .field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--patina-bright);background:rgba(20,20,17,.7)}
  .field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%238fae9a' stroke-width='1.4'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1em center;background-size:12px}
  .form .btn{width:100%;justify-content:center;margin-top:.4em}
  .form-note{font-size:.74rem;color:rgba(236,230,217,.42);margin-top:1em;text-align:center}
  .two{display:grid;grid-template-columns:1fr 1fr;gap:1rem}

  /* ============ FOOTER ============ */
  footer{background:#121210;color:rgba(236,230,217,.6);padding-block:clamp(50px,6vw,72px) clamp(28px,3vw,36px);border-top:1px solid var(--line-dark)}
  .foot-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:40px;padding-bottom:clamp(36px,4vw,48px);border-bottom:1px solid var(--line-dark)}
  .foot-brand b{font-family:var(--f-display);font-weight:600;font-size:1.3rem;letter-spacing:.16em;color:var(--limestone);display:block}
  .foot-brand span{font-size:.6rem;letter-spacing:.4em;text-transform:uppercase;color:var(--patina-bright);display:block;margin-top:.6em}
  .foot-brand p{margin-top:1.3em;font-size:.9rem;max-width:34ch;color:rgba(236,230,217,.55)}
  .foot-cols{display:flex;gap:clamp(40px,7vw,90px);flex-wrap:wrap}
  .foot-col h5{font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--sand-deep);margin-bottom:1.2em;font-weight:600}
  .foot-col a{display:block;text-decoration:none;color:rgba(236,230,217,.62);font-size:.92rem;padding:.4em 0;transition:color .3s}
  .foot-col a:hover{color:var(--patina-bright)}
  .foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;margin-top:clamp(24px,3vw,32px);font-size:.74rem;color:rgba(236,230,217,.38)}
  .foot-bottom a{color:rgba(236,230,217,.5);text-decoration:none}
  .foot-bottom a:hover{color:var(--patina-bright)}

  /* ============ scroll reveal ============ */
  .reveal{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
  .reveal.in{opacity:1;transform:none}
  .reveal[data-d="1"]{transition-delay:.08s}
  .reveal[data-d="2"]{transition-delay:.16s}
  .reveal[data-d="3"]{transition-delay:.24s}

  :focus-visible{outline:2px solid var(--patina-bright);outline-offset:3px}

  /* ============ RESPONSIVE ============ */
  @media (max-width:900px){
    .nav-links{display:none}
    .nav-toggle{display:flex}
    .nav-phone{display:none}
    .creds-grid{grid-template-columns:1fr 1fr}
    .cred:nth-child(1),.cred:nth-child(2){border-bottom:1px solid var(--line-dark)}
    .cred:nth-child(3){border-left:none}
    .svc-grid{grid-template-columns:1fr}
    .proc-grid{grid-template-columns:1fr 1fr}
    .step:nth-child(3){border-left:none;padding-left:0}
    .step:nth-child(n+3){border-top:1px solid var(--line-light);margin-top:0}
    .mat-grid{grid-template-columns:1fr 1fr}
    .quotes-grid{grid-template-columns:1fr}
    .contact-grid{grid-template-columns:1fr}
    .foot-top{flex-direction:column}
  }
  @media (max-width:560px){
    .creds-grid{grid-template-columns:1fr}
    .cred{border-left:none;border-bottom:1px solid var(--line-dark)}
    .cred:last-child{border-bottom:none}
    .mat-grid{grid-template-columns:1fr}
    .proc-grid{grid-template-columns:1fr}
    .step{border-left:none;padding-left:0;border-top:1px solid var(--line-light)}
    .step:first-child{border-top:none}
    .two{grid-template-columns:1fr}
    .ba{aspect-ratio:4/3}
  }

  /* mobile menu */
  .mobile-menu{position:fixed;inset:0;z-index:70;background:rgba(18,18,15,.97);backdrop-filter:blur(8px);display:flex;flex-direction:column;justify-content:center;padding:var(--gut);transform:translateY(-100%);transition:transform .5s cubic-bezier(.2,.7,.2,1);opacity:0;pointer-events:none}
  .mobile-menu.open{transform:none;opacity:1;pointer-events:auto}
  .mobile-menu a{color:var(--limestone);text-decoration:none;font-family:var(--f-display);font-size:2rem;padding:.4em 0;border-bottom:1px solid var(--line-dark)}
  .mobile-menu .mclose{position:absolute;top:24px;right:var(--gut);background:none;border:none;color:var(--limestone);font-size:2rem;cursor:pointer;line-height:1}
  .mobile-menu .mphone{margin-top:2rem;font-family:var(--f-display);color:var(--patina-bright);font-size:1.4rem;text-decoration:none}

  @media (prefers-reduced-motion:reduce){
    .reveal{opacity:1;transform:none;transition:none}
    .hero.lit .carved .ln::after{animation:none;background-position:-120% 0}
    .scroll-cue .dot{animation:none}
  }

/* ============================================================
   MULTI-PAGE COMPONENTS  (mid-tier buildout)
   ============================================================ */

/* active nav link */
.nav-links a.active{opacity:1}
.nav-links a.active::after{width:100%}

/* ---------- inner page hero ---------- */
.page-hero{
  position:relative;background:var(--quarry);color:var(--limestone);
  margin-top:-74px;padding-top:calc(74px + clamp(48px,9vh,96px));
  padding-bottom:clamp(52px,9vh,104px);overflow:hidden;
}
.page-hero::before{
  content:"";position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(120% 100% at 82% 0%, rgba(111,138,120,.16), transparent 58%),
    radial-gradient(90% 90% at 0% 100%, rgba(203,184,154,.09), transparent 60%),
    linear-gradient(180deg,#15150f,#1d1d18 60%,#161613);
}
.page-hero .grain{position:absolute;inset:0;z-index:1;opacity:.45;mix-blend-mode:overlay;pointer-events:none}
.page-hero .wrap{position:relative;z-index:3}
.crumbs{display:flex;gap:.7em;align-items:center;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(236,230,217,.5);margin-bottom:clamp(20px,4vh,34px)}
.crumbs a{color:rgba(236,230,217,.7);text-decoration:none}
.crumbs a:hover{color:var(--patina-bright)}
.crumbs span{color:rgba(236,230,217,.3)}
.page-hero h1{
  font-family:var(--f-display);font-weight:600;
  font-size:clamp(2.5rem,6vw,4.6rem);line-height:1.02;letter-spacing:.01em;
  max-width:18ch;
}
.page-hero h1 em{font-style:italic;font-family:Georgia,serif;color:var(--sand)}
.page-hero .ph-sub{
  margin-top:clamp(20px,3vh,30px);max-width:54ch;
  font-size:clamp(1.02rem,1.5vw,1.24rem);font-weight:300;color:rgba(236,230,217,.8);line-height:1.55;
}
.page-hero .ph-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:clamp(28px,4vh,40px)}
.page-hero .ph-meta{display:flex;flex-wrap:wrap;gap:clamp(20px,3vw,44px);margin-top:clamp(34px,5vh,52px);padding-top:clamp(22px,3vh,30px);border-top:1px solid var(--line-dark)}
.page-hero .ph-meta div{font-size:.78rem;letter-spacing:.04em;color:rgba(236,230,217,.62)}
.page-hero .ph-meta b{display:block;font-family:var(--f-display);font-weight:500;font-size:1.5rem;color:var(--limestone);margin-bottom:.25em}
.page-hero .ph-meta b em{font-style:normal;color:var(--patina-bright)}

/* ---------- split content block ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(34px,6vw,90px);align-items:center}
.split.narrow-l{grid-template-columns:.9fr 1.1fr}
.split .col p{color:var(--graphite);margin-top:1.1em}
.split .col p:first-of-type{margin-top:1.4em}
.prose-h{font-family:var(--f-display);font-weight:500;font-size:clamp(1.8rem,3.4vw,2.7rem);line-height:1.08;letter-spacing:.005em}
.prose-h em{font-style:italic;font-family:Georgia,serif;color:var(--patina-deep)}
.figure-stone{
  position:relative;aspect-ratio:4/5;border:1px solid var(--line-light);overflow:hidden;
  background:
    linear-gradient(135deg,rgba(255,255,255,.4),transparent 34%),
    radial-gradient(80% 110% at 28% 8%, #f3efe6, #e2dccd 68%, #d2cab5);
}
.figure-stone.dark{
  background:
    radial-gradient(60% 80% at 25% 18%, rgba(111,138,120,.22), transparent 60%),
    linear-gradient(150deg,#3a3a32,#262621 60%,#1c1c18);
  border-color:var(--line-dark);
}
.figure-stone .cap{position:absolute;left:0;bottom:0;right:0;padding:1em 1.2em;background:linear-gradient(transparent,rgba(20,20,17,.72));color:var(--limestone);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase}
.figure-stone .ftex{position:absolute;inset:0;opacity:.4;mix-blend-mode:overlay}

/* ---------- "what's included" grid ---------- */
.incl{background:var(--marble)}
.incl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,26px);margin-top:clamp(38px,5vw,56px)}
.incl-card{background:var(--limestone);border:1px solid var(--line-light);padding:clamp(24px,2.6vw,34px);transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s ease}
.incl-card:hover{transform:translateY(-5px);box-shadow:0 22px 44px -28px rgba(26,26,23,.45)}
.incl-card .ic{width:34px;height:34px;color:var(--patina-deep);margin-bottom:1em}
.incl-card h4{font-family:var(--f-display);font-weight:500;font-size:1.22rem;margin-bottom:.5em}
.incl-card p{font-size:.92rem;color:var(--graphite)}

/* ---------- spec / detail list ---------- */
.spec-list{margin-top:clamp(30px,4vw,44px);border-top:1px solid var(--line-light)}
.spec-list .row{display:grid;grid-template-columns:minmax(140px,.4fr) 1fr;gap:clamp(14px,3vw,40px);padding:1.25em 0;border-bottom:1px solid var(--line-light)}
.spec-list dt{font-family:var(--f-display);font-size:1.05rem;color:var(--quarry)}
.spec-list dd{color:var(--graphite);font-size:.96rem}

/* ---------- guarantee / trust panel ---------- */
.guarantee{background:var(--quarry-2);color:var(--limestone);border:1px solid var(--line-dark);padding:clamp(34px,5vw,60px);display:grid;grid-template-columns:auto 1fr;gap:clamp(24px,4vw,52px);align-items:center}
.seal{width:clamp(86px,12vw,120px);height:clamp(86px,12vw,120px);border-radius:50%;border:1px solid var(--patina-bright);display:flex;align-items:center;justify-content:center;flex:none;position:relative}
.seal::before{content:"";position:absolute;inset:7px;border-radius:50%;border:1px solid rgba(143,174,154,.35)}
.seal span{font-family:var(--f-display);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;text-align:center;color:var(--patina-bright);line-height:1.5}
.guarantee h3{font-family:var(--f-display);font-weight:500;font-size:clamp(1.5rem,2.6vw,2.1rem);margin-bottom:.5em;color:var(--limestone)}
.guarantee p{color:rgba(236,230,217,.74);max-width:60ch}

/* ---------- email capture / lead magnet ---------- */
.optin{position:relative;background:var(--quarry);color:var(--limestone);overflow:hidden}
.optin::before{content:"";position:absolute;inset:0;background:radial-gradient(70% 130% at 88% 50%,rgba(111,138,120,.2),transparent 60%);z-index:0}
.optin .wrap{position:relative;z-index:2}
.optin-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,5vw,72px);align-items:center}
.optin .eyebrow.on-dark{margin-bottom:1.1em}
.optin h2{font-family:var(--f-display);font-weight:500;font-size:clamp(1.8rem,3.4vw,2.8rem);line-height:1.08;color:var(--limestone)}
.optin h2 em{font-style:italic;font-family:Georgia,serif;color:var(--patina-bright)}
.optin p.sub{color:rgba(236,230,217,.74);margin-top:1em;max-width:46ch}
.optin .ofeat{display:flex;gap:1.4em;margin-top:1.5em;flex-wrap:wrap}
.optin .ofeat li{list-style:none;font-size:.84rem;color:rgba(236,230,217,.66);display:flex;align-items:center;gap:.5em}
.optin .ofeat li::before{content:"";width:7px;height:7px;background:var(--patina-bright);transform:rotate(45deg);flex:none}
.optin-form{display:flex;flex-direction:column;gap:.85rem;background:rgba(236,230,217,.05);border:1px solid var(--line-dark);padding:clamp(24px,3vw,34px)}
.optin-form label{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(236,230,217,.6);font-weight:600}
.optin-form input{background:rgba(20,20,17,.5);border:1px solid var(--line-dark);color:var(--limestone);font-family:var(--f-body);font-size:1rem;padding:.95em 1.1em;transition:border-color .3s,background .3s}
.optin-form input:focus{outline:none;border-color:var(--patina-bright);background:rgba(20,20,17,.72)}
.optin-form .btn{justify-content:center;margin-top:.2em}
.optin-form .fine{font-size:.72rem;color:rgba(236,230,217,.42);text-align:center}

/* ---------- FAQ accordion ---------- */
.faq-list{margin-top:clamp(38px,5vw,54px);border-top:1px solid var(--line-light)}
.faq-item{border-bottom:1px solid var(--line-light)}
.faq-item summary{
  list-style:none;cursor:pointer;padding:1.4em 0;display:flex;align-items:center;justify-content:space-between;gap:1.5em;
  font-family:var(--f-display);font-weight:500;font-size:clamp(1.05rem,1.8vw,1.35rem);color:var(--quarry);
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item .pm{position:relative;width:20px;height:20px;flex:none}
.faq-item .pm::before,.faq-item .pm::after{content:"";position:absolute;background:var(--patina-deep);transition:transform .35s ease}
.faq-item .pm::before{top:9px;left:0;width:20px;height:2px}
.faq-item .pm::after{left:9px;top:0;width:2px;height:20px}
.faq-item[open] .pm::after{transform:scaleY(0)}
.faq-item .ans{padding:0 0 1.5em;color:var(--graphite);max-width:70ch;font-size:.98rem}
.faq-item .ans p{margin-bottom:.8em}

/* ---------- CTA band ---------- */
.cta-band{position:relative;background:var(--quarry);color:var(--limestone);text-align:center;overflow:hidden}
.cta-band::before{content:"";position:absolute;inset:0;background:radial-gradient(70% 120% at 50% 0%,rgba(111,138,120,.18),transparent 62%);z-index:0}
.cta-band .wrap{position:relative;z-index:2}
.cta-band .eyebrow{justify-content:center}
.cta-band h2{font-family:var(--f-display);font-weight:500;font-size:clamp(2rem,4.4vw,3.4rem);line-height:1.06;color:var(--limestone);margin:.5em auto 0;max-width:20ch}
.cta-band h2 em{font-style:italic;font-family:Georgia,serif;color:var(--patina-bright)}
.cta-band p{color:rgba(236,230,217,.74);margin:1.1em auto 0;max-width:50ch}
.cta-band .actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-top:clamp(28px,4vw,40px)}
.cta-band .phone-lg{display:block;margin-top:1.6em;font-family:var(--f-display);font-size:1.1rem;letter-spacing:.04em;color:var(--patina-bright);text-decoration:none}

/* ---------- next service card ---------- */
.next-svc{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;padding:clamp(30px,4vw,48px);border:1px solid var(--line-light);background:var(--marble);transition:background .4s ease}
.next-svc:hover{background:var(--limestone)}
.next-svc .nlabel{font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--sand-deep);font-weight:600;margin-bottom:.6em}
.next-svc h3{font-family:var(--f-display);font-weight:500;font-size:clamp(1.5rem,2.6vw,2.1rem)}
.next-svc a.btn{flex:none}

/* ---------- values grid (about) ---------- */
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-light);border:1px solid var(--line-light);margin-top:clamp(40px,5vw,58px)}
.val{background:var(--limestone);padding:clamp(28px,3vw,42px)}
.val .vn{font-family:var(--f-display);font-size:.8rem;letter-spacing:.2em;color:var(--patina-deep);margin-bottom:1em}
.val h4{font-family:var(--f-display);font-weight:500;font-size:1.35rem;margin-bottom:.5em}
.val p{font-size:.94rem;color:var(--graphite)}

/* ---------- big pull stat (about) ---------- */
.pull{font-family:var(--f-display);font-weight:400;font-size:clamp(1.6rem,3.2vw,2.6rem);line-height:1.25;color:var(--quarry);max-width:20ch}
.pull em{font-style:italic;font-family:Georgia,serif;color:var(--patina-deep)}

/* ---------- reviews page ---------- */
.rev-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(18px,2.4vw,28px);margin-top:clamp(40px,5vw,56px)}
.rev-grid .q.feature{grid-column:1 / -1;background:var(--quarry);color:var(--limestone);border-color:var(--line-dark)}
.rev-grid .q.feature blockquote{color:var(--limestone);font-size:clamp(1.5rem,2.6vw,2.1rem)}
.rev-grid .q.feature cite{color:var(--patina-bright)}
.placeholder-note{margin-top:2.5em;padding:1.2em 1.4em;border:1px dashed var(--sand-deep);background:rgba(167,138,99,.07);color:var(--graphite);font-size:.86rem}
.placeholder-note b{color:var(--sand-deep)}

/* ---------- contact page map placeholder ---------- */
.map-card{aspect-ratio:16/9;border:1px solid var(--line-light);background:
  repeating-linear-gradient(0deg,transparent,transparent 38px,rgba(26,26,23,.05) 39px),
  repeating-linear-gradient(90deg,transparent,transparent 38px,rgba(26,26,23,.05) 39px),
  var(--marble);
  display:flex;align-items:center;justify-content:center;position:relative;margin-top:clamp(28px,4vw,40px)}
.map-card .pin{display:flex;flex-direction:column;align-items:center;gap:.6em;color:var(--patina-deep)}
.map-card .pin span{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600}

@media (max-width:900px){
  .split,.optin-grid,.guarantee{grid-template-columns:1fr;gap:clamp(28px,5vw,44px)}
  .split.narrow-l{grid-template-columns:1fr}
  .incl-grid{grid-template-columns:1fr 1fr}
  .values-grid{grid-template-columns:1fr}
  .rev-grid{grid-template-columns:1fr}
  .guarantee{text-align:center;justify-items:center}
  .seal{margin:0 auto}
}
@media (max-width:560px){
  .incl-grid{grid-template-columns:1fr}
  .spec-list .row{grid-template-columns:1fr;gap:.4em}
  .page-hero h1{font-size:clamp(2.1rem,9vw,3rem)}
}

/* ================================================================
   ANIMATION & INTERACTION ENHANCEMENTS
   ================================================================ */

/* --- page load sweep bar --- */
.load-bar{position:fixed;top:0;left:0;height:3px;z-index:999;background:linear-gradient(90deg,var(--patina),var(--sand),var(--patina-bright));pointer-events:none;transition:width .5s cubic-bezier(.4,0,.2,1),opacity .5s ease .3s}

/* --- scroll progress bar --- */
.scrl-bar{position:fixed;top:74px;left:0;height:2px;z-index:61;background:linear-gradient(90deg,var(--patina-bright),var(--sand));pointer-events:none;width:0;transition:top .4s ease}
header.nav.scrolled ~ .scrl-bar{top:74px}

/* --- hero entrance sequence --- */
.hero-loc{opacity:0;transform:translateX(-18px);transition:opacity .6s ease .25s,transform .6s cubic-bezier(.2,.7,.2,1) .25s}
.hero.lit .hero-loc{opacity:1;transform:none}
.hero-actions{opacity:0;transform:translateY(14px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1)}
.hero-actions.ha-vis{opacity:1;transform:none}
@keyframes cueFade{to{opacity:1}}
.scroll-cue{opacity:0;animation:cueFade .6s ease 2.6s forwards}

/* --- word-split (hero-sub) --- */
.w-wrap{display:inline-block;overflow:hidden;vertical-align:bottom;line-height:1.28em}
.w-inner{display:inline-block;transform:translateY(108%);opacity:0;will-change:transform,opacity;transition:transform .78s cubic-bezier(.2,.7,.2,1),opacity .5s ease}
.hero-sub.ws-on .w-inner{transform:translateY(0);opacity:1}

/* --- directional reveals on split layouts --- */
.split > .reveal:first-child:not(.in){transform:translateX(-30px) !important}
.split > .reveal:nth-child(2):not(.in){transform:translateX(30px) !important}

/* --- process connecting track --- */
.proc-grid{position:relative}
.proc-track{position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--patina-bright),var(--patina),var(--patina-bright),transparent);transform-origin:left center;transform:scaleX(0);transition:transform 1.6s cubic-bezier(.25,.7,.2,1)}
.proc-grid.proc-fired .proc-track{transform:scaleX(1)}
@keyframes numPop{from{opacity:0;transform:scale(.5) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}
.proc-grid.proc-fired .step .num{animation:numPop .55s cubic-bezier(.2,.7,.2,1) both}
.proc-grid.proc-fired .step:nth-child(2) .num{animation-delay:.18s}
.proc-grid.proc-fired .step:nth-child(3) .num{animation-delay:.36s}
.proc-grid.proc-fired .step:nth-child(4) .num{animation-delay:.54s}

/* --- guarantee seal float --- */
@keyframes sealFloat{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-8px) rotate(.6deg)}}
.seal{animation:sealFloat 6s ease-in-out infinite}

/* --- CTA band breathe pulse --- */
@keyframes btnBreathe{0%,100%{box-shadow:0 0 0 0 rgba(143,174,154,0)}55%{box-shadow:0 0 0 12px rgba(143,174,154,.14)}}
.cta-band .btn--on-dark{animation:btnBreathe 3.8s ease-in-out 1.5s infinite}

/* --- mat-cell shimmer on hover --- */
.mat-cell{position:relative;overflow:hidden}
.mat-cell::after{content:"";position:absolute;inset:0;background:linear-gradient(108deg,transparent 28%,rgba(143,174,154,.09) 46%,rgba(203,184,154,.08) 54%,transparent 72%);background-size:260% 100%;background-position:210% 0;opacity:0;pointer-events:none}
.mat-cell:hover::after{opacity:1;animation:cellShimmer .9s cubic-bezier(.4,0,.2,1) forwards}
@keyframes cellShimmer{from{background-position:210% 0}to{background-position:-110% 0}}

/* --- mat-grid staggered entrance --- */
.mat-grid .mat-cell:nth-child(1).reveal{transition-delay:.00s}
.mat-grid .mat-cell:nth-child(2).reveal{transition-delay:.07s}
.mat-grid .mat-cell:nth-child(3).reveal{transition-delay:.14s}
.mat-grid .mat-cell:nth-child(4).reveal{transition-delay:.21s}
.mat-grid .mat-cell:nth-child(5).reveal{transition-delay:.28s}
.mat-grid .mat-cell:nth-child(6).reveal{transition-delay:.35s}

/* --- incl-grid staggered entrance --- */
.incl-grid .incl-card:nth-child(1){transition-delay:.00s}
.incl-grid .incl-card:nth-child(2){transition-delay:.08s}
.incl-grid .incl-card:nth-child(3){transition-delay:.16s}
.incl-grid .incl-card:nth-child(4){transition-delay:.24s}
.incl-grid .incl-card:nth-child(5){transition-delay:.32s}
.incl-grid .incl-card:nth-child(6){transition-delay:.40s}

/* --- incl-card top accent line --- */
.incl-card{position:relative;overflow:hidden}
.incl-card::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--patina),var(--patina-bright));transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.incl-card:hover::before{transform:scaleX(1)}

/* --- val (about values) hover line --- */
.val{transition:background .4s ease;position:relative;overflow:hidden}
.val::after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--patina),var(--patina-bright),transparent);transform:scaleX(0);transform-origin:left;transition:transform .55s cubic-bezier(.2,.7,.2,1)}
.val:hover{background:#e2ddd0}
.val:hover::after{transform:scaleX(1)}

/* --- quote card hover tilt --- */
.q{transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s ease}
.q:hover{transform:translateY(-5px) rotate(-.25deg);box-shadow:0 22px 44px -28px rgba(26,26,23,.5)}

/* --- next-svc letter-spacing on hover --- */
.next-svc{transition:background .4s ease}
.next-svc h3{display:inline-block;transition:letter-spacing .4s ease,transform .4s cubic-bezier(.2,.7,.2,1)}
.next-svc:hover h3{letter-spacing:.03em}

/* --- button lift + shadow on hover --- */
.btn{transition:transform .3s cubic-bezier(.2,.7,.2,1),color .4s ease,background .4s ease,border-color .4s ease,box-shadow .3s ease}
.btn:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 10px 22px -12px rgba(26,26,23,.45)}
.btn:not(:disabled):active{transform:translateY(0);box-shadow:none;transition-duration:.1s}

/* --- footer link indent on hover --- */
.foot-col a{position:relative;padding-left:0;transition:color .3s ease,padding-left .3s ease}
.foot-col a::before{content:"—";position:absolute;left:0;opacity:0;color:var(--patina-bright);transform:translateX(-8px);transition:opacity .3s ease,transform .3s ease}
.foot-col a:hover{padding-left:1.3em;color:var(--patina-bright)}
.foot-col a:hover::before{opacity:1;transform:none}

/* --- info-row key highlight --- */
.info-row{transition:background .3s ease}
.info-row:hover{background:rgba(143,174,154,.06)}
.info-row .k{transition:color .3s ease}
.info-row:hover .k{color:var(--patina-bright)}

/* --- counter number glow on land --- */
@keyframes numGlow{0%{text-shadow:0 0 0 rgba(143,174,154,0)}40%{text-shadow:0 0 20px rgba(143,174,154,.4)}100%{text-shadow:none}}
.cred.counted .n{animation:numGlow .9s ease forwards}

/* --- svc card step number pop --- */
.svc-ix{transition:color .3s ease,letter-spacing .3s ease}
.svc:hover .svc-ix{color:var(--patina);letter-spacing:.26em}

/* --- optin form field focus ring --- */
.optin-form input:focus,.field input:focus,.field select:focus,.field textarea:focus{box-shadow:0 0 0 3px rgba(143,174,154,.2)}

/* --- page hero meta item count-up glow --- */
@keyframes metaSlide{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.ph-meta div{animation:metaSlide .6s cubic-bezier(.2,.7,.2,1) both}
.ph-meta div:nth-child(1){animation-delay:.3s}
.ph-meta div:nth-child(2){animation-delay:.48s}
.ph-meta div:nth-child(3){animation-delay:.66s}

/* REDUCED MOTION OVERRIDES */
@media (prefers-reduced-motion:reduce){
  .seal,.cta-band .btn--on-dark,.scroll-cue{animation:none}
  .mat-cell::after,.incl-card::before,.val::after{display:none}
  .proc-track{transition:none}
  .load-bar,.scrl-bar{display:none}
  .w-inner{transform:none;opacity:1}
  .hero-actions{opacity:1;transform:none}
  .hero-loc{opacity:1;transform:none}
  .scroll-cue{opacity:1}
  .ph-meta div{animation:none}
}
