/* =========================================================================
   Well Done Tree Service — dark landing with forest-green accent
   Palette: Ink #141414 · White/Silver #FFFFFF/#DFDFDF · Green #3DB44C · Tree Brown #764B2B
   Accent tokens keep legacy "--gold-*" names so the whole system reskins from :root.
   ========================================================================= */

:root {
  /* surfaces */
  --base:#141414; --raised:#1a1a1a; --card:#2a2a2a; --charcoal:#575755;
  --overlay:rgba(20,20,20,.72);
  /* text */
  --white:#fff; --silver:#dfdfdf; --muted:#a8a8a6; --on-gold:#0e0e0e;
  /* brand accent — Well Done Tree green (#3DB44C) + tree brown for depth.
     Names keep the legacy "gold" keys so every existing rule reskins at once. */
  --gold:#3db44c; --gold-hi:#7bd98a; --gold-deep:#2e8b3d;
  --brown:#764b2b; --brown-hi:#9a6a3f; --accent-soft-green:#8eb792;
  --gold-soft:rgba(61,180,76,.13); --gold-line:rgba(61,180,76,.35);
  --grad-gold:linear-gradient(180deg,#5fce6f 0%,#3db44c 48%,#2e8b3d 100%);
  --sheen:linear-gradient(100deg,#2e8b3d,#3db44c 35%,#b7efc0 50%,#3db44c 65%,#2e8b3d);
  /* lines + shadow */
  --border:rgba(255,255,255,.10); --border-strong:rgba(255,255,255,.18);
  --hair:linear-gradient(90deg,transparent,var(--gold-line) 50%,transparent);
  --sh-md:0 6px 18px rgba(0,0,0,.45); --sh-lg:0 18px 48px rgba(0,0,0,.55);
  --sh-xl:0 30px 80px rgba(0,0,0,.62); --sh-gold:0 10px 30px rgba(61,180,76,.22);
  /* radius */
  --r-sm:8px; --r-md:14px; --r-lg:20px; --r-xl:28px; --r-pill:999px;
  /* layout */
  --container:1200px; --gutter:clamp(20px,5vw,40px);
  --measure-faq:680px; --measure-form:540px;
  --pad:clamp(64px,9vw,128px); --pad-sm:clamp(40px,6vw,72px);
  /* type */
  --serif:"Cormorant Garamond","Times New Roman",Georgia,serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --fs-h1:clamp(2.35rem,1.35rem + 4.5vw,4.5rem);
  --fs-h2:clamp(1.9rem,1.3rem + 2.6vw,3.05rem);
  --fs-h3:clamp(1.4rem,1.15rem + 1vw,1.8rem);
  --fs-lead:clamp(1.18rem,1.08rem + .55vw,1.45rem);
  --fs-body:clamp(1.06rem,1rem + .3vw,1.2rem);
  --fs-eyebrow:clamp(.82rem,.77rem + .2vw,.92rem);
  /* motion */
  --ease:cubic-bezier(.22,1,.36,1); --ease-out:cubic-bezier(.16,1,.3,1);
  --dur-fast:160ms; --dur:260ms; --dur-slow:560ms;
  --z-nav:100; --z-float:90; --z-modal:200;
}

/* ---------- reset / base ---------- */
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:84px;color-scheme:dark}
/* fill the iOS safe areas (notch/home-bar) with the site's dark base so the top reads seamless */
html,body{background:var(--base)}
body{
  font-family:var(--sans);font-size:var(--fs-body);line-height:1.62;
  color:var(--silver);background:var(--base);overflow-x:hidden;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
/* matte-stone vignette so flat black reads as a deep surface, not a dead color */
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(120% 90% at 50% 0%,rgba(61,180,76,.06),transparent 42%),
             radial-gradient(140% 120% at 50% 100%,rgba(0,0,0,.5),transparent 55%);
}
main,header,footer,section{position:relative;z-index:1}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
ul{list-style:none;padding:0}
.svg-defs{position:absolute;width:0;height:0;overflow:hidden}
.icon{width:1.15em;height:1.15em;display:inline-block;vertical-align:middle;fill:currentColor;flex:none}
.icon--gold{color:var(--gold)}

.skip-link{position:absolute;left:-9999px;top:0;z-index:300;background:var(--gold);color:var(--on-gold);
  padding:10px 16px;border-radius:0 0 var(--r-sm) 0;font-weight:600}
.skip-link:focus{left:0}

:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}

/* ---------- typography ---------- */
h1,h2,h3{font-family:var(--serif);font-weight:600;color:var(--white);line-height:1.1;letter-spacing:-.012em}
h1{font-size:var(--fs-h1);line-height:1.06;letter-spacing:-.018em;text-wrap:balance}
h2{font-size:var(--fs-h2);text-wrap:balance}
h3{font-size:var(--fs-h3)}
p{color:var(--silver)}
.lead{font-family:var(--sans);font-size:var(--fs-lead);line-height:1.55;color:var(--silver);max-width:46ch}
.eyebrow{display:flex;align-items:center;gap:.6em;font-family:var(--sans);font-weight:600;
  font-size:var(--fs-eyebrow);letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.eyebrow .tick{width:26px;height:2px;background:var(--grad-gold);border-radius:2px;flex:none}
.eyebrow--center{justify-content:center}
.gold-word{background:var(--sheen);-webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent}
.link-gold{color:var(--gold);font-weight:600;display:inline-flex;align-items:center;gap:.35em}
.link-gold .icon{transition:transform var(--dur) var(--ease)}
.link-gold:hover .icon{transform:translateX(4px)}

/* ---------- layout ---------- */
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:var(--pad)}
.section--raised{background:var(--raised)}
.sec-head{max-width:62ch;margin-bottom:clamp(2rem,1rem + 3vw,3.25rem);display:grid;gap:.85rem}
.sec-head--center{margin-inline:auto;text-align:center;justify-items:center}
.sec-foot{margin-top:2.25rem;text-align:center;color:var(--muted)}

/* ---------- buttons (exactly two styles) ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  min-height:48px;padding:.75rem 1.6rem;border-radius:var(--r-pill);font-family:var(--sans);
  font-weight:600;letter-spacing:.01em;white-space:nowrap;
  transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),
    background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}
.btn .icon{width:1.05em;height:1.05em}
.btn--gold{background:var(--grad-gold);color:var(--on-gold);box-shadow:var(--sh-gold)}
.btn--gold:hover{transform:translateY(-2px);box-shadow:0 14px 38px rgba(61,180,76,.32)}
.btn--gold:active{transform:translateY(0) scale(.98)}
.btn--ghost{background:transparent;color:var(--white);border:1px solid var(--gold-line)}
.btn--ghost:hover{background:var(--gold-soft);border-color:var(--gold)}
.btn--ghost .icon{color:var(--gold)}
.btn--sm{min-height:44px;padding:.55rem 1.15rem;font-size:.92rem}
.btn--block{width:100%}

/* ---------- nav ---------- */
.nav{position:fixed;inset-inline:0;top:0;z-index:var(--z-nav);
  padding-top:max(.5rem,env(safe-area-inset-top));
  transition:background var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.nav__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  min-height:64px;padding-block:.55rem}
.nav.is-scrolled{background:rgba(20,20,20,.82);backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);box-shadow:0 1px 0 var(--gold-line),var(--sh-md)}
.brand{display:flex;align-items:center;gap:.6rem;min-width:0}
.brand__mark{width:46px;height:auto;flex:none}
.brand__word{font-family:var(--serif);font-weight:600;font-size:1.18rem;letter-spacing:.01em;
  color:var(--white);white-space:nowrap}
.brand__word-em{color:var(--gold)}
.nav__links{display:none;gap:1.6rem}
.nav__links a{display:inline-flex;align-items:center;min-height:44px;font-size:.92rem;color:var(--silver);position:relative;padding-block:.55rem;letter-spacing:.01em}
.nav__links a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;
  background:var(--grad-gold);transform:scaleX(0);transform-origin:left;transition:transform var(--dur) var(--ease)}
.nav__links a:hover{color:var(--white)}
.nav__links a:hover::after{transform:scaleX(1)}
.nav__actions{display:flex;align-items:center;gap:.7rem}
.nav__tel{display:none;align-items:center;gap:.45rem;min-height:44px;padding-block:.5rem;color:var(--gold);font-weight:600;font-size:.95rem}
.nav__tel:hover{color:var(--gold-hi)}

/* ---------- hero ---------- */
.hero{min-height:88vh;min-height:min(92svh, 780px);display:flex;align-items:center;
  padding-top:clamp(96px,12vh,140px);padding-bottom:clamp(48px,8vh,88px);overflow:hidden}
.hero__media{position:absolute;inset:0;z-index:0}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:center 66%}
.hero__scrim{position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(20,20,20,.55),rgba(20,20,20,.14) 32%,rgba(20,20,20,.26) 62%,rgba(20,20,20,.6) 88%,var(--base) 100%),
    linear-gradient(90deg,rgba(20,20,20,.84),rgba(20,20,20,.40) 56%,rgba(20,20,20,.05) 100%)}
.hero__inner{position:relative;z-index:2}
.hero__copy{max-width:660px;display:grid;gap:1.15rem}
.hero__copy h1{text-shadow:0 2px 16px rgba(0,0,0,.82),0 1px 3px rgba(0,0,0,.6)}
.hero__rating{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.stars{display:inline-flex;gap:2px;color:var(--gold)}
.stars .icon{width:1.15rem;height:1.15rem}
.hero__rating-label{color:var(--silver);font-weight:500;font-size:.95rem}
.hero__cta{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.4rem}
.hero__proof{display:flex;flex-wrap:wrap;gap:1.1rem 1.5rem;margin-top:.7rem;color:var(--silver);font-size:.92rem}
.hero__proof li{display:flex;align-items:center;gap:.45rem}
.hero__proof .icon{width:1.15rem;height:1.15rem}

/* ---------- trust strip ---------- */
.trust{padding-block:clamp(28px,4vw,40px);position:relative}
.trust::before,.trust::after{content:"";position:absolute;inset-inline:0;height:1px;background:var(--hair)}
.trust::before{top:0}.trust::after{bottom:0}
.trust__inner{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;
  gap:.9rem 1.4rem;text-align:center}
.trust__item{display:flex;align-items:center;gap:.55rem;color:var(--silver);font-size:.9rem;
  font-weight:500;letter-spacing:.01em}
.trust__item .icon{width:1.3rem;height:1.3rem}
.trust__item:not(:last-child){padding-right:1.4rem;border-right:1px solid var(--border)}

/* ---------- CTA bands ---------- */
.ctaband{position:relative;padding-block:var(--pad-sm);overflow:hidden;
  background:var(--raised);isolation:isolate}
.ctaband::before,.ctaband::after{content:"";position:absolute;inset-inline:0;height:1px;background:var(--hair);z-index:2}
.ctaband::before{top:0}.ctaband::after{bottom:0}
/* CTA band photo treatment moved to dedicated cinematic .ctaband__media layers — see POLISH v3 block */
.ctaband__inner{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1.3rem}
.ctaband__line{font-family:var(--serif);font-size:clamp(1.5rem,1.1rem + 1.9vw,2.4rem);
  line-height:1.18;color:var(--white);max-width:24ch}
.ctaband__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem}

/* ---------- reviews ---------- */
.reviews__agg{display:flex;align-items:center;gap:.85rem;flex-wrap:wrap;
  margin-bottom:2.25rem;padding-bottom:1.6rem;border-bottom:1px solid var(--border)}
.reviews__score{font-family:var(--serif);font-size:clamp(2.6rem,1.8rem + 3vw,3.6rem);font-weight:700;line-height:1}
.reviews__agg .stars .icon{width:1.4rem;height:1.4rem}
.reviews__agg-label{color:var(--muted);font-size:.95rem}
.reviews__agg-label strong{color:var(--silver)}
.reviews__grid{display:grid;gap:1.25rem}
.rev-card{position:relative;background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);
  padding:1.6rem;display:flex;flex-direction:column;gap:1rem;overflow:hidden;
  transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}
.rev-card:hover{border-color:var(--gold-line);transform:translateY(-3px)}
.rev-card__glyph{position:absolute;top:.7rem;right:1rem;width:3.4rem;height:3.4rem;color:var(--gold);opacity:.1}
.rev-card .stars .icon{width:1.05rem;height:1.05rem}
.rev-card__body{color:var(--silver);font-size:.98rem;line-height:1.65;font-style:italic;
  display:-webkit-box;-webkit-line-clamp:8;line-clamp:8;-webkit-box-orient:vertical;overflow:hidden}
.rev-card__by{display:flex;align-items:center;gap:.7rem;margin-top:auto;padding-top:.4rem}
.avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;flex:none;
  background:var(--grad-gold);color:var(--on-gold);font-weight:700;font-family:var(--serif);font-size:1.1rem;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25)}
.rev-card__meta{display:grid}
.rev-card__meta strong{color:var(--white);font-size:.95rem}
.rev-card__meta span{color:var(--muted);font-size:.8rem;letter-spacing:.02em}
.reviews__out{margin-top:1.8rem;color:var(--muted);font-size:.95rem}
.reviews__out a{color:var(--gold);font-weight:600}
.reviews__out a:hover{color:var(--gold-hi)}

/* ---------- featured projects ---------- */
.projects__grid{display:grid;gap:1.25rem}
.proj{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);
  padding:1.6rem;display:flex;flex-direction:column;gap:.75rem;
  transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}
.proj__name{margin-top:.1rem}
.proj__meta{margin-top:auto;padding-top:.5rem}
.proj:hover{border-color:var(--gold-line);transform:translateY(-3px)}
.proj__stat{font-family:var(--serif);font-weight:700;line-height:.9;display:flex;align-items:baseline;gap:.4rem}
.proj__stat>.gold-word{font-size:clamp(3rem,2rem + 4vw,4.6rem)}
.proj__stat-unit{font-family:var(--sans);font-size:.85rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.proj__name{color:var(--white)}
.proj__desc{color:var(--silver);font-size:.96rem}
.proj__meta{color:var(--muted);font-size:.8rem;letter-spacing:.03em;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.proj__meta .dot{width:3px;height:3px;border-radius:50%;background:var(--gold);display:inline-block}
.proj__pills{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.3rem}
.proj__pills li{font-size:.72rem;letter-spacing:.02em;color:var(--gold);border:1px solid var(--gold-line);
  border-radius:var(--r-pill);padding:.28rem .7rem;background:var(--gold-soft)}

/* ---------- services ---------- */
.services__grid{display:grid;gap:1.1rem}
.svc{background:var(--card);border:1px solid var(--border);border-radius:var(--r-md);padding:1.5rem;
  display:grid;gap:.55rem;align-content:start;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}
.svc:hover{border-color:var(--gold-line);transform:translateY(-3px)}
.svc__icon{width:2rem;height:2rem;margin-bottom:.2rem}
.svc h3{color:var(--white);font-size:1.3rem}
.svc p{color:var(--silver);font-size:.95rem}
.services__seo{margin-top:2rem;max-width:80ch;color:var(--muted);font-size:.95rem;line-height:1.7}

/* ---------- reusable swipe carousel (reviews / projects / services) ---------- */
.carousel{position:relative}
.carousel__track{display:flex;gap:1.25rem;overflow-x:auto;scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;
  align-items:stretch;padding:6px;margin:-6px;scroll-padding-inline:6px}
.carousel__track::-webkit-scrollbar{display:none}
.carousel__slide{flex:0 0 86%;scroll-snap-align:center;min-width:0;margin:0}
.carousel__controls{display:flex;align-items:center;justify-content:center;gap:1.1rem;margin-top:1.6rem}
.carousel__arrow{width:46px;height:46px;border-radius:50%;border:1px solid var(--gold-line);
  background:transparent;color:var(--gold);font-size:1.5rem;line-height:1;display:grid;place-items:center;
  transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}
.carousel__arrow:hover{background:var(--gold);color:var(--on-gold);border-color:var(--gold)}
.carousel__arrow:disabled{opacity:.3;cursor:default}
.carousel__arrow:disabled:hover{background:transparent;color:var(--gold);border-color:var(--gold-line)}
.carousel__dots{display:flex;gap:.5rem;align-items:center}
.carousel__dot{width:24px;height:24px;min-width:24px;border:0;background:transparent;padding:0;cursor:pointer;
  display:grid;place-items:center}
.carousel__dot::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--border-strong);
  transition:width var(--dur) var(--ease),background var(--dur) var(--ease)}
.carousel__dot.is-active::before{width:24px;border-radius:99px;background:var(--gold)}
@media(min-width:600px){.carousel__slide{flex-basis:calc((100% - 1.25rem)/2)}}
@media(min-width:1024px){.carousel__slide{flex-basis:calc((100% - 2.5rem)/3)}}

/* ---------- work gallery ---------- */
.gallery{display:grid;gap:.85rem;grid-auto-flow:column;grid-auto-columns:78%;grid-template-rows:repeat(2,150px);
  overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);
  scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;margin-inline:calc(var(--gutter)*-1);
  padding-inline:var(--gutter)}
.gallery::-webkit-scrollbar{display:none}
.tile{position:relative;border-radius:var(--r-lg);overflow:hidden;scroll-snap-align:start;
  border:1px solid var(--border);padding:0;display:block;grid-row:span 1}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.6));
  opacity:.85;transition:opacity var(--dur) var(--ease)}
.tile:hover img,.tile:focus-visible img{transform:scale(1.05)}
.tile:hover{border-color:var(--gold-line)}
.tile__cap{position:absolute;left:.9rem;bottom:.8rem;z-index:2;color:var(--white);font-size:.85rem;
  font-weight:500;letter-spacing:.01em;text-shadow:0 1px 6px rgba(0,0,0,.8)}
.tile--feature{grid-row:span 2}

/* ---------- FAQ ---------- */
.faq__wrap{max-width:var(--measure-faq)}
.faq__list{display:grid}
.faq-item{border-top:1px solid var(--border)}
.faq-item:last-of-type{border-bottom:1px solid var(--border)}
.faq-item summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:1.15rem .25rem;cursor:pointer;font-family:var(--serif);font-size:1.18rem;color:var(--white);
  transition:color var(--dur-fast) var(--ease)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:hover{color:var(--gold-hi)}
.faq-item__icon{position:relative;width:22px;height:22px;flex:none}
.faq-item__icon::before,.faq-item__icon::after{content:"";position:absolute;background:var(--gold);
  border-radius:2px;transition:transform var(--dur) var(--ease),opacity var(--dur) var(--ease)}
.faq-item__icon::before{top:50%;left:0;right:0;height:2px;transform:translateY(-50%)}
.faq-item__icon::after{left:50%;top:0;bottom:0;width:2px;transform:translateX(-50%)}
.faq-item[open] .faq-item__icon::after{transform:translateX(-50%) rotate(90deg);opacity:0}
.faq-item__a{padding:0 .25rem 1.3rem;color:var(--silver);font-size:.98rem;line-height:1.7;max-width:62ch;
  border-left:2px solid var(--gold-line);padding-left:1rem;margin-bottom:.2rem}
.faq__cta{display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center;margin-top:2.5rem}
.faq__cta p{color:var(--muted)}

/* ---------- quote form ---------- */
.quote__grid{display:grid;gap:clamp(2.5rem,2rem + 3vw,4rem)}
.quote__pitch{display:grid;gap:1.1rem;align-content:start}
.quote__points{display:grid;gap:.7rem;margin-top:.3rem}
.quote__points li{display:flex;align-items:center;gap:.65rem;color:var(--silver);font-size:.98rem}
.quote__points .icon{width:1.3rem;height:1.3rem}
.quote__call{display:inline-flex;align-items:center;gap:.8rem;margin-top:.6rem;padding:.9rem 1.2rem;
  border:1px solid var(--gold-line);border-radius:var(--r-md);background:var(--gold-soft);width:fit-content}
.quote__call:hover{border-color:var(--gold)}
.quote__call .icon{width:1.6rem;height:1.6rem}
.quote__call-k{display:block;font-size:.78rem;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}
.quote__call strong{font-family:var(--serif);font-size:1.4rem;color:var(--white)}

.form-card{background:var(--card);border:1px solid var(--border-strong);border-top:3px solid var(--gold);
  border-radius:var(--r-lg);box-shadow:var(--sh-lg);padding:clamp(1.5rem,1.1rem + 1.6vw,2.25rem);
  display:grid;gap:.85rem;max-width:var(--measure-form);width:100%}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.field-row{display:grid;gap:.35rem}
.field-row label{font-size:.82rem;font-weight:600;letter-spacing:.03em;color:var(--silver);text-transform:uppercase}
.field-row .req{color:var(--gold)}
.field-row .opt{color:var(--muted);font-weight:400;text-transform:none;letter-spacing:0}
.field{width:100%;min-height:50px;background:var(--raised);border:1px solid var(--border-strong);
  border-radius:var(--r-sm);padding:.7rem .9rem;color:var(--white);
  transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}
.field::placeholder{color:var(--muted)}
textarea.field{min-height:92px;resize:vertical;line-height:1.5}
select.field{appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%233db44c' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.4rem}
.field:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-soft)}
.field.is-invalid{border-color:#e0726a;box-shadow:0 0 0 3px rgba(224,114,106,.15)}
.consent-row{display:flex;gap:.7rem;align-items:flex-start;margin-top:.3rem}
.consent-row input{margin-top:.2rem;width:18px;height:18px;accent-color:var(--gold);flex:none}
.consent{font-size:.76rem;line-height:1.5;color:var(--muted)}
.consent a{color:var(--gold);text-decoration:underline}
.form-note{font-size:.8rem;color:var(--muted);line-height:1.5;margin-top:.2rem}
.form-note a{color:var(--gold);font-weight:600}
.form-status{font-size:.9rem;font-weight:600;min-height:1.2em}
.form-status.is-ok{color:var(--gold-hi)}
.form-status.is-err{color:#e8908a}

/* ---------- footer ---------- */
.footer{background:var(--base);padding-block:clamp(3rem,5vw,4.5rem) 2rem;border-top:1px solid var(--border)}
.footer__cta{text-align:center;display:grid;gap:.7rem;justify-items:center;margin-bottom:2.6rem}
.footer__cta-h{font-size:clamp(1.8rem,1.3rem + 2.2vw,2.7rem)}
.footer__cta p{color:var(--silver)}
.footer__cta-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-top:.6rem}
.footer__rule{height:1px;background:var(--hair);margin-bottom:2.4rem}
.footer__main{display:grid;gap:2rem;margin-bottom:2.2rem}
.lockup{display:grid;justify-items:start;gap:.5rem}
.lockup__mark{width:128px;height:auto}
.lockup__word{font-family:var(--serif);font-weight:600;font-size:1.35rem;letter-spacing:.08em;color:var(--white)}
.lockup__div{display:flex;align-items:center;gap:.6rem;width:100%;max-width:240px}
.lockup__div i{flex:1;height:1px;background:var(--gold-line)}
.lockup__diamond{width:8px;height:8px;background:var(--grad-gold);transform:rotate(45deg);flex:none}
.lockup__tag{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.footer__nap h3,.footer__social h3{font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);margin-bottom:.9rem;font-family:var(--sans);font-weight:600}
.footer__nap{display:grid;gap:.55rem;align-content:start}
.footer__nap a,.footer__nap p{display:flex;align-items:center;gap:.5rem;color:var(--silver);font-size:.95rem}
.footer__nap a:hover{color:var(--gold)}
.footer__hours{color:var(--muted)!important;font-size:.85rem!important}
.footer__icons{display:flex;gap:.7rem}
.footer__icons a{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;
  border:1px solid var(--border);color:var(--silver);
  transition:color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}
.footer__icons a:hover{color:var(--on-gold);background:var(--gold);border-color:var(--gold)}
.footer__icons .icon{width:1.25rem;height:1.25rem}
.footer__bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;
  padding-top:1.6rem;border-top:1px solid var(--border)}
.footer__bar p{color:var(--muted);font-size:.82rem}
.footer__legal{display:flex;gap:1.2rem}
.footer__legal a{color:var(--muted);font-size:.82rem}
.footer__legal a:hover{color:var(--gold)}
.footer__bp{display:inline-flex;align-items:center;gap:.4rem;color:var(--muted);font-size:.82rem;
  border:1px solid var(--border);border-radius:var(--r-pill);padding:.4rem .9rem}
.footer__bp .icon{width:.95rem;height:.95rem;color:var(--gold);transition:transform var(--dur) var(--ease)}
.footer__bp:hover{color:var(--silver);border-color:var(--gold-line)}
.footer__bp:hover .icon{transform:translateX(3px)}

/* ---------- floating call ---------- */
.float-call{position:fixed;right:max(1rem,env(safe-area-inset-right));
  bottom:max(1rem,env(safe-area-inset-bottom));z-index:var(--z-float);
  display:inline-flex;align-items:center;gap:.5rem;min-height:54px;padding:0 1.2rem;
  background:var(--grad-gold);color:var(--on-gold);border-radius:var(--r-pill);font-weight:700;
  box-shadow:var(--sh-gold),var(--sh-lg);opacity:0;transform:translateY(14px);pointer-events:none;
  transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease)}
.float-call.is-on{opacity:1;transform:none;pointer-events:auto}
.float-call .icon{width:1.25rem;height:1.25rem}

/* ---------- lightbox ---------- */
.lightbox{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;
  background:rgba(10,10,10,.94);padding:clamp(1rem,4vw,3rem);opacity:0;transition:opacity var(--dur) var(--ease)}
.lightbox.is-open{opacity:1}
.lightbox[hidden]{display:none}
.lightbox__img{max-width:100%;max-height:88vh;border-radius:var(--r-md);box-shadow:var(--sh-xl);
  border:1px solid var(--border)}
.lightbox__close{position:absolute;top:clamp(1rem,3vw,2rem);right:clamp(1rem,3vw,2rem);
  width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.08);color:var(--white);
  display:grid;place-items:center}
.lightbox__close:hover{background:var(--gold);color:var(--on-gold)}
.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;
  background:rgba(255,255,255,.08);color:var(--white);display:grid;place-items:center}
.lightbox__nav:hover{background:var(--gold);color:var(--on-gold)}
.lightbox__nav--prev{left:clamp(.5rem,2vw,1.5rem)}.lightbox__nav--prev .icon{transform:rotate(180deg)}
.lightbox__nav--next{right:clamp(.5rem,2vw,1.5rem)}

/* ---------- reveal motion (cinematic: mask/blur + stagger) ---------- */
.reveal{transition:opacity var(--dur-reveal) var(--ease-out),transform var(--dur-reveal) var(--ease-entrance),filter var(--dur-reveal) var(--ease-out)}
.js .reveal{opacity:0;transform:translateY(20px);filter:blur(6px);will-change:opacity,transform}
.reveal.is-in{opacity:1;transform:none;filter:none}
.reveal--clip{clip-path:inset(0 0 100% 0);transform:none;filter:none;
  transition:clip-path var(--dur-reveal) var(--ease-entrance),opacity var(--dur-reveal) var(--ease-out)}
.reveal--clip.is-in{clip-path:inset(0 0 0 0)}
[data-reveal-group] .reveal{transition-delay:0ms}
[data-reveal-group] .reveal:nth-child(2){transition-delay:var(--stagger)}
[data-reveal-group] .reveal:nth-child(3){transition-delay:calc(var(--stagger)*2)}
[data-reveal-group] .reveal:nth-child(4){transition-delay:calc(var(--stagger)*3)}
[data-reveal-group] .reveal:nth-child(5){transition-delay:calc(var(--stagger)*4)}

/* =========================================================================
   CINEMATIC LAYER (open-design: Lamborghini discipline + Bugatti monumental)
   CSP-safe (no CDN), reduced-motion gated, transform/opacity/filter only.
   ========================================================================= */
:root{
  --display:"Fraunces","Cormorant Garamond",Georgia,serif;
  --ease-entrance:cubic-bezier(.22,1,.36,1);
  --ease-emph:cubic-bezier(.2,0,0,1);
  --dur-micro:120ms; --dur-ui:200ms; --dur-reveal:640ms; --stagger:90ms;
  --fs-monogram:clamp(3.6rem,2rem + 9vw,8rem); --track-display:-.03em; --leading-display:1;
}
@media(max-width:640px){:root{--dur-reveal:480ms;--stagger:70ms;--fs-monogram:clamp(3rem,1.4rem + 10vw,5rem)}}

h1,h2,.ctaband__line{font-feature-settings:"liga" 1,"dlig" 1,"kern" 1}
.count,[data-countup],.reviews__score,.proj__stat>.gold-word,.footer__nap{
  font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1,"lnum" 1}

/* one-shot brushed-gold sheen (logo on load, gold buttons on hover) */
.sheen{position:relative;overflow:hidden}
.sheen::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  background:linear-gradient(100deg,transparent 32%,rgba(255,255,255,.20) 50%,transparent 68%);
  transform:translateX(-130%)}
.sheen--once.is-lit::after{animation:sheenSweep 900ms var(--ease-out) 1 both}
.btn--gold.sheen::after{background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.28) 50%,transparent 65%)}
@media(hover:hover){.btn--gold.sheen:hover::after{animation:sheenSweep 700ms var(--ease-out) 1 both}}
@keyframes sheenSweep{to{transform:translateX(130%)}}

/* hero: monumental wordmark, Ken-Burns, spotlight, mask-wipe headline, scroll cue */
.hero__inner{position:relative}
.hero__monogram{position:absolute;top:clamp(-8px,-2vh,0px);left:0;z-index:0;
  font-family:var(--display);font-weight:500;font-size:var(--fs-monogram);line-height:var(--leading-display);
  letter-spacing:var(--track-display);text-transform:uppercase;color:rgba(255,255,255,.05);
  pointer-events:none;white-space:nowrap;opacity:0;transition:opacity 900ms var(--ease-out) 120ms}
.hero__monogram.is-in{opacity:1}
.dot-gold{color:var(--gold);-webkit-text-fill-color:var(--gold)}
.hero__kb{transform:scale(1);transform-origin:60% 40%;will-change:transform}
.hero.is-ready .hero__kb{animation:kenburns 26s ease-in-out 1 both}
@keyframes kenburns{0%{transform:scale(1) translate3d(0,0,0)}100%{transform:scale(1.06) translate3d(0,-1.2%,0)}}
.hero__spotlight{position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;
  transition:opacity var(--dur) var(--ease);
  background:radial-gradient(240px 240px at var(--mx,50%) var(--my,40%),rgba(61,180,76,.12),transparent 70%)}
.has-pointer .hero__spotlight.is-active{opacity:1}
.hero h1{position:relative;z-index:2}
.mask-line{display:block;overflow:hidden;padding-bottom:.3em;margin-bottom:-.18em}
.mask-line>span{display:block;transition:transform var(--dur-reveal) var(--ease-entrance)}
.js .mask-line>span{transform:translateY(150%)}
.mask-line.is-in>span{transform:translateY(0)}
.hero h1 .mask-line:nth-child(2).is-in>span{transition-delay:90ms}
.hero h1 .mask-line:nth-child(3).is-in>span{transition-delay:180ms}
.hero__h1-tail{display:block;font-size:.6em;color:var(--silver);margin-top:.4em;letter-spacing:0;line-height:1.32;
  transition:opacity var(--dur-reveal) var(--ease) 320ms}
.js .hero__h1-tail{opacity:0}
.hero__copy.is-in .hero__h1-tail,.hero h1 .mask-line:nth-child(3).is-in~.hero__h1-tail{opacity:1}
.scroll-cue{display:inline-flex;align-items:center;gap:.55rem;margin-top:1.5rem;
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.scroll-cue__dot{position:relative;width:20px;height:32px;border:1px solid var(--gold-line);border-radius:12px;flex:none}
.scroll-cue__dot::after{content:"";position:absolute;left:50%;top:6px;width:3px;height:7px;margin-left:-1.5px;
  border-radius:2px;background:var(--gold);animation:scrollNudge 1.8s var(--ease) infinite}
@keyframes scrollNudge{0%,100%{transform:translateY(0);opacity:1}50%{transform:translateY(8px);opacity:.4}}

/* gold-foil section seams + chiaroscuro page-turn */
.seam{display:block;height:1px;width:100%;margin-bottom:clamp(1.5rem,4vw,2.6rem);position:relative;overflow:visible;
  background:linear-gradient(90deg,transparent,var(--gold-line) 50%,transparent);opacity:0;
  transition:opacity var(--dur-reveal) var(--ease)}
.seam.is-in{opacity:1}
.seam::after{content:"";position:absolute;top:-1px;left:0;height:3px;width:22%;
  background:linear-gradient(90deg,transparent,var(--gold-hi),transparent);filter:blur(1px);transform:translateX(-120%)}
.seam.is-in::after{animation:seamSweep 1100ms var(--ease-out) 1 both}
@keyframes seamSweep{to{transform:translateX(560%)}}
.projects{background:linear-gradient(180deg,var(--base),#171717)}

/* static film grain → black reads as honed stone (no animation = no motion liability) */
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:2;opacity:.035;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
  background-size:120px 120px}

/* carousel: edge fades + active-card emphasis */
.carousel{position:relative;-webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.carousel__slide{transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease-entrance),border-color var(--dur) var(--ease)}
.carousel__slide:not(.is-current){opacity:.82}
.carousel__dot.is-active{box-shadow:0 0 0 4px var(--gold-soft)}
@media(min-width:1024px){.carousel{-webkit-mask-image:none;mask-image:none}.carousel__slide{opacity:1!important}}

/* lightbox cinematic zoom-in + tile hover */
.lightbox{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.lightbox__img{transform:scale(.96);opacity:0;
  transition:transform var(--dur-ui) var(--ease-entrance),opacity var(--dur-ui) var(--ease)}
.lightbox.is-open .lightbox__img{transform:scale(1);opacity:1}
.tile__cap{transition:transform var(--dur) var(--ease-entrance),color var(--dur) var(--ease)}
@media(hover:hover){.tile:hover .tile__cap{color:var(--gold-hi)}.tile:hover{box-shadow:0 0 0 1px var(--gold-line),var(--sh-lg)}}

/* magnetic gold CTA + nav condense refinement */
.btn--magnetic{will-change:transform}
.nav .brand__mark{transition:width var(--dur) var(--ease-entrance)}
.nav.is-scrolled .brand__mark{width:38px}
.nav-sentinel{position:absolute;top:0;left:0;width:1px;height:1px}

/* reviews leave-a-review CTA */
.reviews__out{margin-top:2.2rem;display:flex;flex-direction:column;align-items:center;gap:.9rem;text-align:center}
.reviews__out-line{font-family:var(--serif);font-size:clamp(1.4rem,1.1rem + 1.4vw,2rem);color:var(--white)}
.reviews__out .btn--gold{min-width:230px}
.reviews__out-alt{color:var(--muted);font-size:.9rem}
.reviews__out-alt:hover{color:var(--gold)}

/* ============ RESPONSIVE ============ */
@media(min-width:600px){
  .reviews__grid{grid-template-columns:repeat(2,1fr)}
  .rev-card--wide{grid-column:1/-1}
  .projects__grid{grid-template-columns:repeat(2,1fr)}
  .services__grid{grid-template-columns:repeat(2,1fr)}
}
@media(min-width:768px){
  .gallery{grid-auto-flow:row;grid-template-columns:repeat(2,1fr);grid-auto-rows:200px;
    overflow:visible;margin-inline:0;padding-inline:0}
  .tile--feature{grid-column:span 2}
}
@media(min-width:880px){
  .services__grid{grid-template-columns:repeat(3,1fr)}
}
@media(min-width:1024px){
  .nav__links{display:flex}
  .nav__tel{display:inline-flex}
  .hero__copy{max-width:620px}
  .reviews__grid{grid-template-columns:repeat(3,1fr)}
  .rev-card--wide{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem}
  .rev-card--wide .rev-card__body{flex:1 1 60%;min-width:280px}
  .projects__grid{grid-template-columns:1.3fr 1fr;grid-auto-rows:1fr}
  .proj--feature{grid-row:span 2;background:linear-gradient(180deg,#262626,#1c1c1c)}
  .gallery{grid-template-columns:repeat(4,1fr);grid-auto-rows:215px}
  .tile--feature{grid-column:span 2;grid-row:span 2}
  .quote__grid{grid-template-columns:1fr minmax(0,var(--measure-form));align-items:start}
  .form-card{margin-inline:0}
}
@media(min-width:1024px) and (min-height:560px){
  .hero{min-height:100vh;min-height:100dvh}
}

/* mobile button comfort */
@media(max-width:560px){
  .hero__cta .btn,.ctaband__actions .btn,.footer__cta-actions .btn{width:100%}
  .nav__word{font-size:1.05rem}
  .float-call__label{display:none}
  .float-call{min-width:54px;justify-content:center;padding:0;width:54px;height:54px;border-radius:50%}
}

/* ============ REDUCED MOTION ============ */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1!important;transform:none!important;filter:none!important;clip-path:none!important}
  .reveal--clip{clip-path:none!important}
  .mask-line>span{transform:none!important}
  .hero__h1-tail,.hero__monogram{opacity:1!important}
  .hero__kb{animation:none!important;transform:none!important}
  .hero__spotlight{display:none!important}
  [data-parallax]{transform:none!important}
  .sheen::after,.seam::after,.scroll-cue__dot::after{animation:none!important}
  .btn--magnetic{transform:none!important}
  .float-call{transition:none}
}

/* ============ SUB-PAGES (legal · thank-you · 404) ============ */
.subnav{position:sticky;top:0;z-index:var(--z-nav);background:rgba(20,20,20,.9);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 1px 0 var(--gold-line)}
.subnav__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:62px}
.prose-wrap{padding-block:clamp(2.5rem,6vw,5rem)}
.prose{max-width:760px;margin-inline:auto}
.prose h1{font-size:clamp(2.2rem,1.4rem + 3vw,3.4rem);margin-bottom:.4rem}
.prose .muted{color:var(--muted);margin-bottom:1.4rem}
.prose h2{font-size:1.45rem;color:var(--gold-hi);margin:2rem 0 .5rem}
.prose p{color:var(--silver);margin-bottom:1rem;line-height:1.75}
.prose strong{color:var(--white)}
.prose a{color:var(--gold);text-decoration:underline}
.center-screen{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px;text-align:center}
.panel{max-width:600px;width:100%;background:var(--card);border:1px solid var(--border-strong);
  border-top:3px solid var(--gold);border-radius:var(--r-xl);padding:clamp(28px,6vw,52px);box-shadow:var(--sh-xl)}
.panel .eyebrow{justify-content:center;margin-bottom:1rem}
.panel h1{font-size:clamp(2rem,1.4rem + 3vw,3rem);margin-bottom:.7rem}
.panel p{color:var(--silver);margin-bottom:1.6rem}
.panel__actions{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center}

/* ===================================================================
   APPROVED WIREFRAME REVISION (2026-06-16) — additive only.
   New classes + scoped overrides for the restructured page. The :root
   tokens are NOT touched; CSS for removed components is left as dead
   rules to minimise regression surface.
   =================================================================== */

/* --- Hero: bigger scoped type, white Google badge, trust line --- */
.hero h1{font-size:clamp(2.9rem,1.9rem + 5vw,5.4rem)}
.hero__lead{font-size:clamp(1.2rem,1.05rem + .7vw,1.6rem);color:var(--silver);max-width:36ch}
.hero__badge{justify-self:start;display:inline-flex;align-items:center;gap:.7rem;
  background:rgba(22,22,22,.82);border:1px solid var(--gold-line);border-radius:var(--r-md);
  padding:.6rem .95rem;box-shadow:var(--sh-md)}
.hero__eyebrow{justify-content:flex-start;text-align:left}
.hero__badge .stars{color:var(--gold)}
.hero__badge .stars .icon{width:1rem;height:1rem}
.hero__badge-text{display:flex;flex-direction:column;line-height:1.12;font-family:var(--sans)}
.hero__badge-text strong{color:var(--white);font-weight:700;font-size:.95rem;letter-spacing:.005em}
.hero__badge-sub{color:var(--silver);font-size:.78rem}
.hero__cta .btn--block{max-width:380px}
.hero__trustline{max-width:380px;text-align:center;color:var(--silver);font-size:.92rem;
  letter-spacing:.01em;margin-top:.1rem}

/* --- CTA bands: italic line + capped full-width button --- */
.ctaband__line{font-style:italic}
.ctaband__actions{width:100%}
.ctaband__actions .btn--block{max-width:420px;margin-inline:auto}

/* --- Reviews: divider + clean reviewer name (source label removed) --- */
.reviews__carousel{margin-top:.5rem}
.rev-card__divider{border:0;height:1px;width:100%;background:var(--border);margin:.1rem 0 .2rem}
.rev-card__name{color:var(--white);font-weight:600;font-size:1rem;font-family:var(--serif);letter-spacing:.01em}

/* --- Gallery: 2-row horizontal-scroll grid (reuses the carousel engine) --- */
.gallery-carousel .gal-col{display:flex;flex-direction:column;gap:.85rem;height:clamp(320px,84vw,440px)}
.gallery-carousel .tile{flex:1;min-height:0;height:auto;width:100%;display:block}
.gallery-carousel .tile::after{display:none}

/* --- Quote: centered single column --- */
.quote__wrap{max-width:600px;margin-inline:auto;display:grid;gap:clamp(1.6rem,1.1rem + 2vw,2.6rem)}
.quote__head{margin-inline:auto;max-width:36ch}
.quote__wrap .form-card{margin-inline:auto}

/* --- Footer: two-part (grey CTA card + black id bar) --- */
.btn--dark{background:var(--base);color:var(--white);border:1px solid var(--border-strong)}
.btn--dark:hover{background:#0e0e0e;border-color:var(--gold-line)}
.btn--dark .icon{color:var(--gold)}
.footer__cta2{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);
  padding:clamp(1.5rem,1rem + 3vw,2.4rem);display:grid;justify-items:center;gap:1.1rem;
  text-align:center;margin-bottom:2rem}
.footer__cta2 .btn--block{max-width:420px;margin-inline:auto}
.footer__cta2 .footer__icons{justify-content:center}
.footer__social-label{color:var(--muted);font-size:.74rem;letter-spacing:.18em;text-transform:uppercase}
.footer__idbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;
  padding-block:1.5rem;border-top:1px solid var(--border);margin-bottom:.4rem}
.footer__id{display:flex;align-items:center;gap:.7rem}
.footer__logo-circle{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;flex:none;
  border:1px solid var(--gold-line);background:var(--raised)}
.footer__logo-circle svg{width:30px;height:auto}
.footer__id-word{font-family:var(--serif);font-weight:600;font-size:1.05rem;color:var(--white)}
.footer__id-contact{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;color:var(--muted);font-size:.85rem}
.footer__id-contact a{color:var(--silver)}
.footer__id-contact a:hover{color:var(--gold)}

/* --- Long eyebrow used as a section label (reviews/gallery): soften tracking so a sentence reads well --- */
.reviews .eyebrow--center,.work .eyebrow--center{flex-wrap:wrap;letter-spacing:.14em;
  max-width:34ch;margin-inline:auto;row-gap:.25rem;justify-content:center}

/* ===================================================================
   LEGIBILITY PASS (2026-06-17) — raise small text site-wide so the
   whole site is easier to read (not just one element). Tokens for
   body/lead/eyebrow/h3 were also bumped in :root.
   =================================================================== */
.field-row label{font-size:.95rem}
.consent{font-size:.9rem;line-height:1.6}
.form-note{font-size:1rem;line-height:1.55}
.form-status{font-size:1rem}
.footer__bar p,.footer__legal a,.footer__bp{font-size:.92rem}
.footer__social-label{font-size:.84rem}
.footer__id-contact{font-size:.96rem}
.footer__id-word{font-size:1.12rem}
.hero__badge-text strong{font-size:1.02rem}
.hero__badge-sub{font-size:.9rem}
.hero__trustline{font-size:1.04rem}
.rev-card__body{font-size:1.1rem;line-height:1.72}
.rev-card__name{font-size:1.1rem}
.faq-item__a{font-size:1.1rem;line-height:1.75}
.faq-item summary{font-size:clamp(1.22rem,1.05rem + .65vw,1.5rem)}
.sec-foot{font-size:1.02rem}
.prose p,.prose li{font-size:1.06rem;line-height:1.78}
.prose h2{font-size:1.55rem}
.btn{font-size:1.02rem}
.btn--sm{font-size:.98rem}

/* --- Reviews: Leave-a-Google-review CTA (re-added per request) --- */
.reviews__cta{margin-top:1.7rem;text-align:center}
.reviews__cta .link-gold{font-size:1.05rem;justify-content:center}

/* ===================================================================
   CONTACT FORM + FOOTER CALL CARD — premium redesign (2026-06-17)
   =================================================================== */
.btn--lg{min-height:58px;font-size:1.08rem;padding:1rem 1.9rem}

/* --- Premium quote form --- */
.form-card--lux{position:relative;overflow:hidden;border:1px solid var(--gold-line);
  border-radius:var(--r-xl);box-shadow:var(--sh-xl);gap:1.15rem;
  padding:clamp(2.4rem, 1.7rem + 3.6vw, 4rem);
  background:radial-gradient(120% 80% at 50% -10%,rgba(61,180,76,.10),transparent 60%),
    linear-gradient(180deg,#242424,#1b1b1b)}
.form-card--lux::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--grad-gold)}
.form-card__head{display:grid;justify-items:center;text-align:center;gap:.55rem;margin-bottom:.5rem}
.form-card__chip{display:inline-flex;align-items:center;gap:.55rem;background:var(--gold-soft);
  border:1px solid var(--gold-line);color:var(--gold-hi);border-radius:var(--r-pill);
  padding:.42rem .95rem;font-size:.9rem;font-weight:600}
.form-card__chip .stars{color:var(--gold)}
.form-card__chip .stars .icon{width:.95rem;height:.95rem}
.form-card__micro{color:var(--muted);font-size:.95rem;max-width:36ch}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.field2{position:relative}
.field2--full{grid-column:1 / -1}
.field2__input{width:100%;height:60px;background:var(--raised);border:1px solid var(--border-strong);
  border-radius:var(--r-md);color:var(--white);padding:1.5rem .95rem .45rem 3rem;font-size:1.02rem;
  appearance:none;-webkit-appearance:none;
  transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}
.field2__input::placeholder{color:transparent}
.field2__input:hover{border-color:var(--gold-line)}
.field2__input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-soft);background:#1f1f1f}
.field2__input.is-invalid{border-color:#e0795f;box-shadow:0 0 0 3px rgba(224,121,95,.18)}
.field2__icon{position:absolute;left:1rem;top:30px;transform:translateY(-50%);color:var(--gold);
  pointer-events:none;display:grid;place-items:center}
.field2__icon .icon{width:1.25rem;height:1.25rem}
.field2__label{position:absolute;left:3rem;top:30px;transform:translateY(-50%);color:var(--muted);
  font-size:1.02rem;pointer-events:none;transition:all var(--dur-fast) var(--ease)}
.field2__input:focus ~ .field2__label,
.field2__input:not(:placeholder-shown) ~ .field2__label,
.field2__label--up{top:13px;transform:none;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--gold-hi);font-weight:600}
.field2--select .field2__input{cursor:pointer;padding-right:2.8rem}
.field2--select .field2__input option{background:#1c1c1c;color:var(--white)}
.field2__chevron{position:absolute;right:1.1rem;top:30px;transform:translateY(-50%) rotate(90deg);
  width:1rem;height:1rem;color:var(--gold);pointer-events:none}
@media(max-width:520px){.form-grid{grid-template-columns:1fr}}

/* --- Footer "prefer to talk" call card --- */
.footer__cta2{position:relative;overflow:hidden;border:1px solid var(--gold-line);border-radius:var(--r-xl);
  box-shadow:var(--sh-lg);display:grid;justify-items:center;text-align:center;gap:.45rem;
  margin:0 auto 2.2rem;max-width:680px;
  padding:clamp(2rem,1.4rem + 3vw,3rem) clamp(1.4rem,1rem + 3vw,2.5rem);
  background:radial-gradient(110% 80% at 50% 0%,rgba(61,180,76,.12),transparent 55%),
    linear-gradient(180deg,#242424,#1b1b1b)}
.footer__cta2-badge{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;
  background:var(--gold-soft);border:1px solid var(--gold-line);color:var(--gold);margin-bottom:.6rem}
.footer__cta2-badge .icon{width:1.7rem;height:1.7rem}
.footer__cta2-eyebrow{display:inline-flex;align-items:center;gap:.5em;font-size:var(--fs-eyebrow);
  font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.footer__cta2-eyebrow .tick{width:24px;height:2px;background:var(--grad-gold);border-radius:2px;flex:none}
.footer__cta2-title{font-family:var(--serif);color:var(--white);font-size:clamp(1.6rem,1.2rem + 1.8vw,2.3rem)}
.footer__cta2-phone{display:inline-block;font-family:var(--serif);font-weight:600;line-height:1.1;
  font-size:clamp(1.75rem,1.35rem + 2.2vw,2.8rem);margin:.25rem 0 .15rem;
  background:var(--sheen);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.footer__cta2-phone:hover{filter:brightness(1.08)}
.footer__cta2-sub{color:var(--muted);font-size:.98rem}
.footer__social-row{display:grid;justify-items:center;gap:.7rem;margin-top:1.4rem;padding-top:1.4rem;
  border-top:1px solid var(--border);width:100%;max-width:340px}
.footer__social-row .footer__icons{justify-content:center}
.footer__cta2 .footer__icons a{border-color:var(--gold-line);color:var(--gold)}
.footer__cta2 .footer__icons a:hover{color:var(--on-gold);background:var(--gold);border-color:var(--gold)}

/* ===================================================================
   POLISH v2 (2026-06-17) — desktop presence, focal points, consistency
   =================================================================== */

/* Hero: gold accent becomes the focal beat; tighten eyebrow tracking */
.hero h1 .gold-word{font-weight:700;filter:drop-shadow(0 1px 4px rgba(0,0,0,.7))}
.eyebrow{letter-spacing:.18em}

/* Reviews: faint serif quote glyph fills the card; tighter controls; centered pill CTA */
.rev-card::before{content:"\201C";position:absolute;top:.1rem;right:1.1rem;font-family:var(--serif);
  font-size:4.2rem;line-height:1;color:var(--gold);opacity:.14;pointer-events:none}
.carousel__controls{margin-top:1rem}
.reviews__cta-btn .icon:first-child{color:var(--gold)}

/* Contact form: desktop 2-col (trust pitch + form); mobile stays single + centered */
.quote__layout{display:grid;gap:clamp(2rem,1.5rem + 2vw,3.25rem);max-width:560px;margin-inline:auto;justify-items:center}
.quote__pitch{display:grid;gap:1.25rem;align-content:start;width:100%}
.quote__head{display:grid;justify-items:center;text-align:center;gap:.85rem;margin-inline:auto;max-width:36ch}
.quote__points{display:none;gap:.85rem;margin-top:.2rem}
.quote__points li{display:flex;align-items:center;gap:.7rem;color:var(--silver);font-size:1.05rem}
.quote__points .icon{width:1.4rem;height:1.4rem;color:var(--gold);flex:none}
.quote__call2{display:none;align-items:center;gap:.85rem;width:fit-content;padding:.85rem 1.2rem;
  border:1px solid var(--gold-line);border-radius:var(--r-md);background:var(--gold-soft)}
.quote__call2:hover{border-color:var(--gold)}
.quote__call2 .icon{width:1.7rem;height:1.7rem;color:var(--gold);flex:none}
.quote__call2-k{display:block;font-size:.8rem;color:var(--muted);letter-spacing:.05em;text-transform:uppercase}
.quote__call2 strong{display:block;font-family:var(--serif);font-size:1.5rem;color:var(--white)}
@media(min-width:920px){
  .quote__layout{grid-template-columns:1fr 1.04fr;align-items:center;justify-items:stretch;max-width:1060px}
  .quote__head{justify-items:start;text-align:left;margin-inline:0;max-width:42ch}
  .quote__head .eyebrow--center{justify-content:flex-start}
  .quote__points{display:grid}
  .quote__call2{display:inline-flex}
  .form-card--lux{margin:0}
}

/* Consent: breathing room + bigger checkbox target */
.consent-row{margin-top:.6rem;gap:.7rem}
.consent-row input[type="checkbox"]{width:22px;height:22px;flex:none;accent-color:var(--gold);margin-top:.15rem}

/* Footer call card: more desktop presence + clean sub line + larger socials */
.footer__cta2{max-width:760px}
.footer__cta2-sub{max-width:40ch;margin-inline:auto}
.footer__cta2 .footer__icons a{width:48px;height:48px}
@media(min-width:760px){.footer__cta2{padding-inline:clamp(2.5rem,1rem + 6vw,4rem)}}

/* ===================================================================
   POLISH v3 (2026-06-17) — CTA boxes redesigned cinematic + roomy
   (4-agent design pass; every selector scoped to its box, no collisions)
   =================================================================== */

/* ---- CTA Band 1 — .ctaband--polished (cinematic "book now") ---- */
.ctaband--polished{background:var(--base);padding-block:clamp(76px,11vw,148px);min-height:clamp(420px,48vw,560px);display:flex;align-items:center}
.ctaband--polished .ctaband__media{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.ctaband--polished .ctaband__media::before{content:"";position:absolute;inset:-2%;background:url("assets/gallery-polished-floor.webp") center/cover no-repeat;transform:scale(1.06);transform-origin:50% 40%;will-change:transform;filter:brightness(1.22) contrast(1.03)}
.ctaband--polished .ctaband__media::after{content:"";position:absolute;inset:0;background:
  radial-gradient(120% 78% at 50% 46%, rgba(10,10,10,.10) 0%, rgba(12,12,12,.30) 46%, rgba(14,14,14,.56) 100%),
  linear-gradient(118deg, rgba(10,10,10,.40) 0%, rgba(12,12,12,.10) 42%, rgba(10,10,10,.38) 100%),
  linear-gradient(180deg, rgba(20,20,20,0) 60%, rgba(18,18,18,.34) 84%, var(--base) 100%),
  linear-gradient(0deg, rgba(20,20,20,0) 62%, rgba(20,20,20,.5) 84%, var(--base) 100%)}
.ctaband--polished .ctaband__glow{position:absolute;inset:0;z-index:1;pointer-events:none;background:
  radial-gradient(58% 42% at 50% -6%, rgba(183,239,192,.22) 0%, rgba(61,180,76,.10) 34%, transparent 64%),
  radial-gradient(40% 26% at 78% 8%, rgba(61,180,76,.10) 0%, transparent 70%);mix-blend-mode:screen}
.ctaband--polished .ctaband__inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;gap:clamp(1.4rem,1rem + 1.6vw,2.1rem);max-width:680px;padding-inline:clamp(8px,2vw,24px)}
.ctaband--polished .ctaband__eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--sans);font-size:var(--fs-eyebrow);letter-spacing:.18em;text-transform:uppercase;margin:0;font-weight:600;background:var(--sheen);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;filter:drop-shadow(0 1px 2px rgba(0,0,0,.85))}
.ctaband--polished .ctaband__eyebrow::before{content:"";width:30px;height:2px;border-radius:2px;background:var(--grad-gold);flex:none}
.ctaband--polished .ctaband__line{font-family:var(--serif);font-style:italic;font-size:clamp(1.7rem,1.15rem + 2.4vw,2.85rem);line-height:1.16;color:var(--white);max-width:20ch;margin:0 auto;text-shadow:0 2px 18px rgba(0,0,0,.85),0 1px 3px rgba(0,0,0,.7)}
.ctaband--polished .ctaband__line em{font-style:italic;background:var(--sheen);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;filter:drop-shadow(0 1px 3px rgba(0,0,0,.8))}
.ctaband--polished .ctaband__actions{display:flex;justify-content:center;width:100%;margin-top:.2rem}
.ctaband--polished .ctaband__actions .btn--block{width:100%;max-width:clamp(260px,72vw,360px);margin-inline:auto;box-shadow:var(--sh-gold),var(--sh-lg)}
.ctaband--polished .ctaband__note{margin:0;font-family:var(--sans);font-size:.92rem;letter-spacing:.02em;color:var(--silver)}
@media (prefers-reduced-motion: no-preference){.ctaband--polished .ctaband__media::before{animation:ctaband-polished-kb 26s ease-in-out infinite alternate}}
@keyframes ctaband-polished-kb{from{transform:scale(1.06) translate3d(0,0,0)}to{transform:scale(1.14) translate3d(-1.4%,-1.8%,0)}}
@media (max-width:480px){.ctaband--polished{padding-block:clamp(60px,16vw,96px);min-height:0}.ctaband--polished .ctaband__actions .btn--block{max-width:100%}}

/* ---- CTA Band 2 — .ctaband--quiet (framed plate, no photo) ---- */
.ctaband--quiet{padding-block:clamp(64px,4rem + 5vw,120px);background:
  radial-gradient(120% 90% at 50% -10%, rgba(61,180,76,.14), transparent 58%),
  radial-gradient(90% 70% at 50% 120%, rgba(61,180,76,.05), transparent 60%),
  linear-gradient(180deg,#202020 0%,#191919 52%,var(--base) 100%)}
.ctaband--quiet::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(140% 120% at 80% 0%, rgba(255,255,255,.035), transparent 55%)}
.ctaband--quiet .ctaband__inner{position:relative;z-index:1;width:100%;max-width:600px;margin-inline:auto;gap:clamp(1.1rem,.8rem + 1vw,1.6rem);padding:clamp(2.4rem,1.6rem + 4vw,3.6rem) clamp(1.6rem,1rem + 4vw,3.2rem);border:1px solid var(--gold-line);border-radius:var(--r-xl);background:
  radial-gradient(115% 80% at 50% 0%, rgba(61,180,76,.10), transparent 55%),
  linear-gradient(180deg,rgba(42,42,42,.55),rgba(24,24,24,.55));box-shadow:var(--sh-lg), inset 0 1px 0 rgba(255,255,255,.04)}
.ctaband--quiet .ctaband__eyebrow{display:inline-flex;align-items:center;gap:.6rem;margin:0;font-family:var(--sans);font-weight:600;font-size:var(--fs-eyebrow);letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.ctaband--quiet .ctaband__eyebrow .tick{width:26px;height:2px;border-radius:2px;background:var(--grad-gold);flex:none}
.ctaband--quiet .ctaband__line{margin:0;font-family:var(--serif);font-size:clamp(1.65rem,1.25rem + 2vw,2.6rem);line-height:1.16;color:var(--white);max-width:22ch;font-style:italic}
.ctaband--quiet .ctaband__line .gold-em{background:var(--sheen);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;font-style:italic}
.ctaband--quiet .ctaband__sub{margin:0;color:var(--muted);font-size:.96rem;letter-spacing:.01em;max-width:34ch}
.ctaband--quiet .ctaband__rule{width:64px;height:1px;border:0;margin:.2rem 0;background:var(--grad-gold);opacity:.7}
.ctaband--quiet .ctaband__actions{margin-top:.3rem}
.ctaband--quiet .ctaband__actions .btn--block{width:100%;max-width:clamp(260px,70vw,360px);margin-inline:auto}
@media (max-width:480px){.ctaband--quiet .ctaband__line{font-size:clamp(1.5rem,1.2rem + 3vw,1.9rem)}}

/* ---- CTA Band 3 — .ctaband--residential (cinematic) ---- */
.ctaband--residential{background:#141414;background-image:none;padding-block:clamp(76px,11vw,150px);isolation:isolate}
.ctaband--residential__media{position:absolute;inset:-6%;z-index:0;background-image:url("assets/gallery-light-residential-floor.webp");background-size:cover;background-position:center 38%;transform:scale(1.04);will-change:transform;filter:brightness(1.18) contrast(1.02)}
.ctaband--residential__grade{position:absolute;inset:0;z-index:1;background:
  radial-gradient(120% 78% at 50% 50%, rgba(15,15,15,.12) 0%, rgba(15,15,15,.38) 58%, rgba(15,15,15,.62) 100%),
  linear-gradient(180deg, #141414 0%, rgba(20,20,20,.5) 12%, rgba(20,20,20,.14) 36%, rgba(20,20,20,.26) 66%, #141414 100%)}
.ctaband--residential__leak{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(60% 42% at 50% -6%, rgba(61,180,76,.16) 0%, rgba(61,180,76,.05) 42%, transparent 70%);mix-blend-mode:screen}
.ctaband--residential__inner{position:relative;z-index:2;max-width:640px;padding-inline:clamp(8px,4vw,32px);gap:1.6rem}
.ctaband--residential__eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--sans);font-size:.8rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;background:var(--sheen);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;filter:drop-shadow(0 1px 2px rgba(0,0,0,.85))}
.ctaband--residential__tick{width:24px;height:2px;border-radius:2px;background:var(--grad-gold);flex:none}
.ctaband--residential__line{max-width:18ch;text-wrap:balance;text-shadow:0 2px 18px rgba(0,0,0,.85),0 1px 3px rgba(0,0,0,.7)}
.ctaband--residential__actions{margin-top:.4rem}
.ctaband--residential__actions .btn--block{width:clamp(260px,72vw,420px);margin-inline:auto}
@media (prefers-reduced-motion: no-preference){.ctaband--residential__media{animation:ctabandResidentialKB 26s ease-in-out infinite alternate}@keyframes ctabandResidentialKB{from{transform:scale(1.04) translate3d(0,0,0)}to{transform:scale(1.12) translate3d(0,-1.4%,0)}}}
@media (max-width:480px){.ctaband--residential__inner{padding-inline:8px}.ctaband--residential__line{max-width:22ch}}

/* ---- Footer CTA card — .footer__cta2--lux (cinematic) ---- */
.footer__cta2--lux{position:relative;isolation:isolate;overflow:hidden;display:block;text-align:center;border:1px solid var(--gold-line);border-radius:var(--r-xl);box-shadow:var(--sh-lg),inset 0 1px 0 rgba(255,255,255,.04);margin:0 auto clamp(2.4rem,1.8rem + 2.5vw,3.4rem);max-width:680px;padding:0;background:linear-gradient(180deg,#202020,#171717 62%,#141414)}
.footer__cta2--lux .footer__cta2-media{position:absolute;inset:0;z-index:0;background-image:url("assets/gallery-metallic-floor-wide.webp");background-size:cover;background-position:center 35%;opacity:.72;transform:scale(1.06);transform-origin:50% 40%;filter:brightness(1.22)}
.footer__cta2--lux .footer__cta2-scrim{position:absolute;inset:0;z-index:1;background:
  radial-gradient(120% 95% at 50% 12%,rgba(20,20,20,.06),rgba(20,20,20,.4) 60%,#141414 100%),
  linear-gradient(180deg,rgba(20,20,20,.34) 0%,rgba(20,20,20,.04) 40%,rgba(20,20,20,.4) 84%,#141414 100%)}
.footer__cta2--lux .footer__cta2-title{text-shadow:0 1px 10px rgba(0,0,0,.78),0 1px 3px rgba(0,0,0,.6)}
.footer__cta2--lux .footer__cta2-phone{filter:drop-shadow(0 1px 3px rgba(0,0,0,.85))}
.footer__cta2--lux .footer__cta2-sub{text-shadow:0 1px 6px rgba(0,0,0,.7)}
.footer__cta2--lux .footer__social-label{text-shadow:0 1px 5px rgba(0,0,0,.7)}
.footer__cta2--lux .footer__cta2-leak{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(90% 60% at 50% -6%,rgba(61,180,76,.20),rgba(61,180,76,.07) 40%,transparent 66%);mix-blend-mode:screen}
.footer__cta2--lux .footer__cta2-inner{position:relative;z-index:2;display:grid;justify-items:center;gap:.85rem;width:100%;max-width:460px;margin-inline:auto;padding:clamp(4rem, 3rem + 4.5vw, 5.6rem) clamp(2.2rem, 1.5rem + 5vw, 3.6rem)}
.footer__cta2--lux .footer__cta2-badge{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;margin:0 0 .9rem;background:radial-gradient(120% 120% at 50% 22%,rgba(61,180,76,.22),rgba(61,180,76,.08));border:1px solid var(--gold-line);color:var(--gold);box-shadow:0 8px 26px rgba(0,0,0,.4),inset 0 0 0 1px rgba(255,255,255,.04)}
.footer__cta2--lux .footer__cta2-badge .icon{width:1.55rem;height:1.55rem}
.footer__cta2--lux .footer__cta2-eyebrow{display:inline-flex;align-items:center;gap:.55em;margin:0;font-size:var(--fs-eyebrow);letter-spacing:.2em;text-transform:uppercase;font-weight:600;background:var(--sheen);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;filter:drop-shadow(0 1px 2px rgba(0,0,0,.85))}
.footer__cta2--lux .footer__cta2-eyebrow .tick{width:26px;height:2px;background:var(--grad-gold);border-radius:2px;flex:none}
.footer__cta2--lux .footer__cta2-title{margin:0;font-family:var(--serif);color:var(--white);font-size:clamp(1.55rem,1.15rem + 1.7vw,2.2rem);line-height:1.15}
.footer__cta2--lux .footer__cta2-phone{display:inline-block;margin:.15rem 0 .1rem;font-family:var(--serif);font-weight:600;font-size:clamp(1.95rem,1.4rem + 2.6vw,3rem);line-height:1.05;letter-spacing:.01em;background:var(--sheen);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;min-height:44px;transition:filter var(--dur-fast) var(--ease)}
.footer__cta2--lux .footer__cta2-phone:hover{filter:brightness(1.1)}
.footer__cta2--lux .footer__cta2-phone:focus-visible{outline:2px solid var(--gold);outline-offset:6px;border-radius:6px}
.footer__cta2--lux .footer__cta2-sub{margin:0;max-width:34ch;margin-inline:auto;color:var(--silver);font-size:.96rem;line-height:1.5}
.footer__cta2--lux .footer__cta2-hr{width:min(72%,260px);height:1px;margin:1.5rem auto .35rem;background:var(--hair)}
.footer__cta2--lux .footer__social-row{display:grid;justify-items:center;gap:.95rem;margin:0;padding:0;border:0;width:100%}
.footer__cta2--lux .footer__social-label{color:var(--muted);font-size:.76rem;letter-spacing:.2em;text-transform:uppercase}
.footer__cta2--lux .footer__icons{display:flex;justify-content:center;gap:.85rem}
.footer__cta2--lux .footer__icons a{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--gold-line);background:rgba(61,180,76,.06);color:var(--silver);transition:color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}
.footer__cta2--lux .footer__icons a:hover{color:var(--on-gold);background:var(--gold);border-color:var(--gold);transform:translateY(-2px)}
.footer__cta2--lux .footer__icons a:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.footer__cta2--lux .footer__icons .icon{width:1.3rem;height:1.3rem}
@media (prefers-reduced-motion: no-preference){.footer__cta2--lux .footer__cta2-media{animation:footerCta2KenBurns 30s var(--ease) infinite alternate}}
@keyframes footerCta2KenBurns{from{transform:scale(1.06) translate3d(0,0,0)}to{transform:scale(1.14) translate3d(0,-2.2%,0)}}
@media (max-width:380px){.footer__cta2--lux .footer__cta2-inner{padding-inline:1.6rem}.footer__cta2--lux .footer__cta2-sub{max-width:30ch}}

/* Carousels advance exactly one slide — snap-stop stops momentum from skipping past a slide */
.carousel__slide{scroll-snap-stop:always}

/* ===================================================================
   WIREFRAME FIDELITY PASS (2026-06-17) — restructure every section to
   the client's desktop + mobile wireframes while KEEPING the dark-luxury
   palette / type. Additive + scoped; :root untouched. This supersedes
   the cinematic full-bleed hero, photo CTA bands, 2-col form and footer
   photo card — their old rules go dead now that the markup dropped the
   .hero__media / .ctaband--polished|quiet|residential / .quote__layout /
   .footer__cta2--lux classes.
   =================================================================== */

/* ---- Brand: real horizontal logo (transparent) in nav + footer ---- */
.brand__logo{height:clamp(90px,10.4vw,112px);width:auto;display:block;
  transition:height var(--dur) var(--ease-entrance)}
.nav.is-scrolled .brand__logo{height:clamp(75px,9vw,93px)}
.footer__id-logo{height:104px;width:auto;display:block}
@media(max-width:560px){.brand__logo{height:85px}}

/* ---- Nav: desktop Google trust pill (mobile = logo + Quote only) ---- */
.nav__pill{display:none}
@media(min-width:1024px){
  .nav__pill{display:inline-flex;align-items:center;gap:.45rem;white-space:nowrap;
    border:1px solid var(--gold-line);border-radius:var(--r-pill);padding:.46rem .9rem;
    font-size:.86rem;font-weight:600;letter-spacing:.02em;color:var(--silver)}
  .nav__pill .icon{width:1rem;height:1rem;color:var(--gold)}
  .nav__pill:hover{border-color:var(--gold);color:var(--white)}
}

/* ---- Hero: copy + framed photo. Mobile stacks copy → photo → CTA;
        desktop splits copy (left) / photo (right). Full warranty headline. ---- */
.hero--split{min-height:0;display:block;overflow:visible;align-items:stretch;
  padding-top:clamp(104px,15vh,156px);padding-bottom:clamp(40px,7vw,84px)}
.hero--split .hero__inner{display:flex;flex-direction:column;gap:clamp(1.3rem,1rem + 1.6vw,2.1rem)}
.hero--split .hero__copy{max-width:none;display:grid;gap:1.05rem}
.hero--split .hero__eyebrow{align-self:start;display:inline-flex;width:auto;gap:.5em;
  border:1px solid var(--gold-line);border-radius:var(--r-pill);padding:.5rem 1rem;
  color:var(--gold);letter-spacing:.13em;background:var(--gold-soft)}
.hero--split .hero__copy h1{text-shadow:none}
.hero--split .hero__lead{max-width:46ch;font-size:clamp(1rem,.92rem + .42vw,1.24rem);line-height:1.5;color:var(--muted)}
.hero__figure{position:relative;margin:0;border-radius:var(--r-lg);overflow:hidden;
  border:1px solid var(--border);box-shadow:var(--sh-lg)}
.hero__photo{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:16/11;max-height:60vh}
.hero__figure .hero__badge{position:absolute;left:clamp(.7rem,4%,1.15rem);bottom:clamp(.7rem,4%,1.15rem);
  z-index:3;margin:0;justify-self:auto;background:rgba(18,18,18,.86);
  -webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}
.hero__actions{display:grid;gap:.7rem;justify-items:center}
.hero--split .hero__actions .btn--block{width:100%;max-width:420px}
.hero--split .hero__trustline{margin:0;text-align:center}
@media(min-width:1024px){
  .hero--split .hero__inner{display:grid;grid-template-columns:1.02fr .98fr;
    column-gap:clamp(2.4rem,4vw,4.5rem);row-gap:clamp(1.3rem,1.6vw,1.9rem);align-items:center}
  .hero--split .hero__copy{grid-column:1;grid-row:1;align-self:end}
  .hero--split .hero__actions{grid-column:1;grid-row:2;justify-items:start;align-self:start}
  .hero--split .hero__figure{grid-column:2;grid-row:1 / span 2;align-self:stretch;height:100%}
  .hero--split .hero__photo{aspect-ratio:auto;height:100%;max-height:none;min-height:clamp(430px,46vw,580px)}
  .hero--split .hero__actions .btn--block{width:auto;min-width:248px}
  .hero--split .hero__trustline{text-align:left}
}

/* ---- CTA strips: flat single line + button (replaces the cinematic bands) ---- */
.ctaband--flat{background:var(--raised);min-height:0;display:block;
  padding-block:clamp(2rem,1.4rem + 2.6vw,3.2rem)}
.ctaband--flat .ctaband__inner{display:flex;flex-direction:column;align-items:center;
  text-align:center;gap:1.15rem;max-width:none}
.ctaband--flat .ctaband__line{margin:0;font-family:var(--serif);font-style:italic;color:var(--white);
  font-size:clamp(1.4rem,1.1rem + 1.4vw,2.05rem);line-height:1.2;max-width:32ch}
.ctaband--flat .ctaband__line em{font-style:italic;background:var(--sheen);
  -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.ctaband--flat .ctaband__actions{width:100%;justify-content:center}
.ctaband--flat .ctaband__actions .btn{width:100%;max-width:360px;margin-inline:auto}
@media(min-width:768px){
  .ctaband--flat .ctaband__inner{flex-direction:row;justify-content:space-between;text-align:left;gap:1.6rem}
  .ctaband--flat .ctaband__line{max-width:40ch}
  .ctaband--flat .ctaband__actions{width:auto}
  .ctaband--flat .ctaband__actions .btn{width:auto;max-width:none;margin:0;min-width:230px}
  .ctaband--flat--center .ctaband__inner{justify-content:center;gap:clamp(1.5rem,3vw,2.4rem)}
}

/* ---- Gallery: desktop static grid (4 across, 5th centers); mobile keeps the 2-row scroll ---- */
@media(min-width:1024px){
  .gallery-carousel{-webkit-mask-image:none;mask-image:none}
  .gallery-carousel .carousel__track{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;
    overflow:visible;scroll-snap-type:none;padding:0;margin:0}
  .gallery-carousel .gal-col{display:contents}
  .gallery-carousel .tile{flex:0 0 calc((100% - 3rem) / 4);width:auto;height:auto;
    aspect-ratio:4/3;min-height:0}
  .gallery-carousel .carousel__controls{display:none!important}
}

/* ---- Quote form: centered single column (pitch sidebar + "prefer to talk" removed) ---- */
.quote .quote__wrap{max-width:600px;margin-inline:auto;display:grid;justify-items:center;
  gap:clamp(1.6rem,1.1rem + 2vw,2.6rem)}
.quote__wrap .quote__head{display:grid;justify-items:center;text-align:center;gap:.85rem;
  margin:0 auto;max-width:42ch}
.quote__wrap .quote__head .eyebrow--center{justify-content:center}
.quote__wrap .form-card{margin-inline:auto;width:100%}

/* ---- Footer CTA: flat premium block (Call button + socials); photo card retired ---- */
.footer__cta2--flat{position:relative;overflow:hidden;display:grid;justify-items:center;text-align:center;
  gap:1.3rem;max-width:680px;margin:0 auto clamp(2rem,1.6rem + 2vw,3rem);
  padding:clamp(2.2rem,1.6rem + 3vw,3.2rem) clamp(1.6rem,1rem + 4vw,3rem);
  border:1px solid var(--gold-line);border-radius:var(--r-xl);box-shadow:var(--sh-lg);
  background:radial-gradient(110% 80% at 50% 0%,rgba(61,180,76,.10),transparent 55%),
    linear-gradient(180deg,#242424,#1b1b1b)}
.footer__cta2--flat::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--grad-gold)}
.footer__cta2--flat .btn--block{max-width:420px;margin-inline:auto}
.footer__cta2--flat .footer__social-row{display:grid;justify-items:center;gap:.8rem;width:100%;
  max-width:340px;margin:0;padding-top:1.3rem;border-top:1px solid var(--border)}
.footer__cta2--flat .footer__social-label{color:var(--muted);font-size:.84rem;
  letter-spacing:.18em;text-transform:uppercase}
.footer__cta2--flat .footer__icons{display:flex;justify-content:center;gap:.85rem}
.footer__cta2--flat .footer__icons a{width:48px;height:48px;border:1px solid var(--gold-line);color:var(--gold)}
.footer__cta2--flat .footer__icons a:hover{color:var(--on-gold);background:var(--gold);border-color:var(--gold)}

/* ---- Google "G" logo: NO css fill (keeps the 4 brand colours), just sizing ---- */
.g-logo{width:1.15em;height:1.15em;display:inline-block;vertical-align:middle;flex:none}

/* ---- Hero badge: G logo + (stars / label / area) column ---- */
.hero__badge-g{width:1.6rem;height:1.6rem}
.hero__badge .hero__badge-text{gap:.1rem}
.hero__badge .stars .icon{width:.92rem;height:.92rem}

/* ---- Trust banner: row of TRUE trust marks (reuses .trust strip; gold icons, hairline dividers) ---- */
.trust--banner{padding-block:clamp(1.5rem,1.1rem + 1.5vw,2.3rem)}
.trust--banner .trust__inner{gap:.7rem 1.5rem}
.trust__item{font-size:.98rem;color:var(--silver);font-weight:500}
.trust__item .icon{width:1.25rem;height:1.25rem;color:var(--gold)}
.trust__item strong{color:var(--white);font-weight:700}
.trust__item--google{gap:.5rem}
.trust__item--google .g-logo{width:1.35rem;height:1.35rem}
@media(max-width:640px){
  .trust--banner .trust__inner{column-gap:1rem;row-gap:.55rem}
  .trust__item:not(:last-child){padding-right:1rem}
  .trust__item{font-size:.9rem}
}

/* ---- Hero MOBILE: full-bleed background image with overlaid copy (phone reverts to the
        full-background hero per request; desktop ≥1024 keeps the copy + framed-photo split) ---- */
@media(max-width:1023px){
  .hero--split{position:relative;display:flex;align-items:center;overflow:hidden;
    min-height:92svh;min-height:92vh;
    padding-top:clamp(108px,18vh,168px);padding-bottom:clamp(2.2rem,8vw,4rem)}
  .hero--split .hero__inner{position:static;display:flex;flex-direction:column;gap:1.05rem}
  .hero--split .hero__figure{position:absolute;inset:0;z-index:0;margin:0;border:0;border-radius:0;
    box-shadow:none;height:100%}
  .hero--split .hero__photo{height:100%;max-height:none;aspect-ratio:auto;object-fit:cover;object-position:center 60%}
  .hero--split .hero__figure::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
    background:linear-gradient(180deg,rgba(18,18,18,.66) 0%,rgba(18,18,18,.30) 30%,rgba(18,18,18,.40) 60%,rgba(20,20,20,.88) 90%,var(--base) 100%),
      linear-gradient(90deg,rgba(18,18,18,.55),rgba(18,18,18,.05) 70%)}
  .hero--split .hero__figure .hero__badge{display:none}
  .hero--split .hero__copy,.hero--split .hero__actions{position:relative;z-index:2}
  .hero--split .hero__copy h1{text-shadow:0 2px 16px rgba(0,0,0,.85),0 1px 3px rgba(0,0,0,.6)}
  .hero--split .hero__copy h1 .gold-word{filter:drop-shadow(0 1px 5px rgba(0,0,0,.8))}
  .hero--split .hero__h1-tail{color:var(--silver);text-shadow:0 1px 8px rgba(0,0,0,.85)}
  .hero--split .hero__lead{color:var(--silver);text-shadow:0 1px 8px rgba(0,0,0,.85)}
  .hero--split .hero__eyebrow{background:rgba(18,18,18,.5);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
  .hero--split .hero__actions .btn--block{width:100%;max-width:none}
  .hero--split .hero__trustline{text-align:left;color:var(--silver);text-shadow:0 1px 6px rgba(0,0,0,.8)}
}

/* ===================================================================
   FINAL TWEAKS (2026-06-18)
   =================================================================== */
/* Lining figures on serif headings so "1" renders as a real numeral, not "I"
   (Cormorant Garamond defaults to old-style figures where the 1 looks like a capital I). */
h1, h2, h3, .hero h1, .hero__h1-tail, .ctaband__line {
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1, "kern" 1, "liga" 1;
}
/* Google mark on each review card (sits at the end of the reviewer row) — 30% larger */
.rev-card__g{width:1.56rem;height:1.56rem;margin-left:auto;flex:none}
/* Thank-you page: branded logo above the panel */
.thankyou__logo{display:block;margin:0 auto 1.5rem;width:230px;max-width:72%;height:auto}
/* Google mark in the quote-form rating chip */
.form-card__chip-g{width:1.05rem;height:1.05rem;flex:none}

/* ===================================================================
   HERO — full-bleed background video (Well Done Tree, 2026-06-22)
   Portrait phone footage cover-fills; poster <img> sits beneath the
   video so reduced-motion (video hidden) still shows a still frame.
   Mobile shows the whole hero down to the trust line without scrolling.
   =================================================================== */
.hero--video{min-height:100svh;display:flex;align-items:center;position:relative;overflow:hidden;
  padding-top:clamp(150px,18vh,196px);padding-bottom:clamp(40px,8vh,84px)}
.hero--video .hero__media{position:absolute;inset:0;z-index:0;background:#0d130f}
.hero--video .hero__poster,.hero__video{position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center 38%}
.hero--video .hero__scrim{position:absolute;inset:0;z-index:1;background:
  linear-gradient(180deg,rgba(12,14,12,.66),rgba(12,14,12,.28) 30%,rgba(12,14,12,.40) 62%,rgba(14,16,14,.85) 90%,var(--base) 100%),
  linear-gradient(90deg,rgba(12,14,12,.82),rgba(12,14,12,.34) 58%,rgba(12,14,12,.04) 100%)}
.hero--video .hero__inner{position:relative;z-index:2}
.hero--video .hero__copy{max-width:660px;display:grid;gap:1.1rem}
.hero--video .hero__copy h1{text-shadow:0 2px 22px rgba(0,0,0,.82),0 1px 3px rgba(0,0,0,.6)}
/* Accent word must stay bright/legible over the dark video (override the dark-ended sheen) */
.hero--video h1 .gold-word{background:none;-webkit-background-clip:border-box;background-clip:border-box;
  -webkit-text-fill-color:#9be8a6;color:#9be8a6;filter:drop-shadow(0 2px 9px rgba(0,0,0,.9))}
.hero--video .hero__lead{color:#eaf1ea;text-shadow:0 1px 10px rgba(0,0,0,.7);max-width:46ch}
.hero--video .hero__eyebrow{justify-content:flex-start;color:var(--gold-hi)}
.hero--video .hero__actions{margin-top:.35rem;display:grid;gap:.65rem;max-width:380px}
.hero--video .hero__trustline{text-align:center;color:#dfe8df;font-size:1rem;
  text-shadow:0 1px 6px rgba(0,0,0,.8)}
@media(prefers-reduced-motion:reduce){.hero__video{display:none}}
@media(max-width:560px){
  .hero--video{padding-top:clamp(126px,28vw,160px)}
  .hero--video .hero__copy{gap:.7rem}
  .hero--video .hero__copy h1{font-size:clamp(2.3rem,1.7rem + 4vw,3rem)}
  .hero--video .hero__lead{font-size:1rem;line-height:1.45}
  .hero--video .hero__actions{max-width:none}
  .hero--video .hero__actions .btn{width:100%}
}
@media(min-width:1024px){.hero--video{min-height:100dvh}.hero--video .hero__copy{max-width:620px}}
