/* ══════════════════════════════════════════════════════════════
   Volcano Pump Out
   Palette logic: volcanic ground. Dark basalt sections carry
   ember glows; light sections carry faint sediment strata. One
   accent family — magma orange through gold — carries every
   action. Orange button = something you can do.
   ══════════════════════════════════════════════════════════════ */

:root{
  --basalt:#150F0D;
  --soil:#221812;
  --crust:#33241C;
  --crust-2:#4A362A;

  --magma:#E2481A;
  --magma-dk:#A5300D;
  --lava:#FF6A2B;
  --ember:#F59E1B;
  --gold:#FFC24A;

  --ash:#F5F1EA;
  --ash-2:#E9E1D4;
  --ink:#1B1310;
  --mute:#7A675B;
  --mute-lt:#B9A899;

  --display:'Big Shoulders Display','Arial Narrow',sans-serif;
  --body:'Barlow',system-ui,-apple-system,sans-serif;
  --util:'Barlow Condensed','Barlow',sans-serif;

  --wrap:1200px;
  --pad:clamp(1.15rem,4vw,2rem);
  --sec-y:clamp(4rem,9vw,7.5rem);
  --r:14px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}
body{
  margin:0;
  font-family:var(--body);
  font-size:clamp(1rem,.96rem + .2vw,1.075rem);
  line-height:1.6;
  color:var(--ink);
  background:var(--ash);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,h4{margin:0}
p{margin:0 0 1em}
ul,ol{margin:0;padding:0;list-style:none}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad)}

.skip{position:absolute;left:-9999px;top:0;z-index:999;background:var(--ember);color:var(--basalt);padding:.7rem 1.1rem;font-weight:700}
.skip:focus{left:.5rem;top:.5rem}

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

/* ── type scale ─────────────────────────────────────────── */
.h2{
  font-family:var(--display);
  font-weight:800;
  font-size:clamp(2.1rem,1.3rem + 3.4vw,3.9rem);
  line-height:.95;
  letter-spacing:-.005em;
  text-wrap:balance;
  color:var(--ink);
}
.h2--light{color:var(--ash)}

.lede{font-size:1.1rem;color:var(--mute);max-width:52ch;text-wrap:pretty;margin-top:.9rem}
.sechead{max-width:62ch;margin-bottom:clamp(2rem,4vw,3.25rem)}
.sechead--light .lede{color:var(--mute-lt)}

/* ── buttons ────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  font-family:var(--util);
  font-weight:700;font-size:1.06rem;letter-spacing:.055em;text-transform:uppercase;
  padding:.82rem 1.35rem;border:2px solid transparent;border-radius:10px;
  text-decoration:none;cursor:pointer;white-space:nowrap;
  transition:transform .16s ease,box-shadow .16s ease,background .16s ease,color .16s ease;
}
.btn svg{width:1.1em;height:1.1em;fill:currentColor;flex:none}
.btn--lg{font-size:1.18rem;padding:1.02rem 1.7rem}
.btn--full{width:100%}

.btn--call,
.btn--lava{
  background:linear-gradient(180deg,var(--lava),var(--magma));
  color:#fff;
  box-shadow:0 4px 0 var(--magma-dk);
  text-shadow:0 1px 2px rgba(0,0,0,.22);
}
.btn--call:hover,
.btn--lava:hover{background:linear-gradient(180deg,#FF7C42,var(--lava));transform:translateY(-2px);box-shadow:0 6px 0 var(--magma-dk)}
.btn--call:active,
.btn--lava:active{transform:translateY(2px);box-shadow:0 1px 0 var(--magma-dk)}

.btn--ghost{background:transparent;color:var(--ash);border-color:rgba(245,241,234,.32)}
.btn--ghost:hover{border-color:var(--ash);background:rgba(245,241,234,.07)}

.btn--dark{background:var(--basalt);color:var(--ash)}
.btn--dark:hover{background:var(--crust);transform:translateY(-2px)}

/* ── alert bar ──────────────────────────────────────────── */
.alertbar{background:var(--crust);color:var(--ash);text-align:center;position:relative;z-index:60}
.alertbar p{
  margin:0;padding:.52rem 1rem;
  font-family:var(--util);font-size:1rem;letter-spacing:.05em;
  text-transform:uppercase;font-weight:600;color:var(--gold);
}
.alertbar a{color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}

/* ── header — basalt bar over a moving lava seam ────────── */
.head{
  position:sticky;top:0;z-index:50;
  background:linear-gradient(180deg,#1B1310,var(--basalt));
  box-shadow:0 10px 26px -16px rgba(0,0,0,.95);
}
.head::after{ /* the lava seam */
  content:"";position:absolute;left:0;right:0;bottom:0;height:3px;
  background:linear-gradient(90deg,var(--magma),var(--ember),var(--gold),var(--lava),var(--magma));
  background-size:220% 100%;
  animation:seam 9s linear infinite;
}
@keyframes seam{to{background-position:-220% 0}}

.head__inner{display:flex;align-items:center;gap:1rem;min-height:70px}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;margin-right:auto}
.brand__txt{display:flex;flex-direction:column;line-height:1}
.brand__txt b{
  font-family:var(--display);font-weight:900;font-size:1.62rem;
  letter-spacing:.035em;text-transform:uppercase;color:var(--ash);
}
.brand__txt i{
  font-family:var(--util);font-style:normal;font-size:.78rem;
  letter-spacing:.34em;text-transform:uppercase;color:var(--ember);
  margin-top:.22rem;
}

.nav{display:none;gap:.15rem}
.nav a{
  position:relative;
  font-family:var(--util);font-weight:600;font-size:1.02rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--mute-lt);text-decoration:none;
  padding:.55rem .7rem;transition:color .15s;
}
.nav a::after{ /* rising lava underline */
  content:"";position:absolute;left:.7rem;right:.7rem;bottom:.3rem;height:2px;
  background:linear-gradient(90deg,var(--magma),var(--gold));
  transform:scaleX(0);transform-origin:left;
  transition:transform .22s ease;
}
.nav a:hover{color:var(--ash)}
.nav a:hover::after{transform:scaleX(1)}

/* ── animated brand mark ────────────────────────────────── */
.volc{width:40px;height:40px;flex:none;overflow:visible}
.volc__cone{filter:drop-shadow(0 2px 6px rgba(0,0,0,.5))}

/* molten crater, breathing */
.volc__crater{
  fill:var(--gold);
  filter:drop-shadow(0 0 5px rgba(255,140,40,.95));
  animation:volcGlow 2.6s ease-in-out infinite;
  transform-origin:24px 16px;
}
@keyframes volcGlow{
  0%,100%{opacity:.85;transform:scaleX(.96)}
  50%{opacity:1;transform:scaleX(1.06)}
}

/* lava creeping down the cone */
.volc__flow{
  fill:none;stroke-linecap:round;
  stroke:var(--magma);
  stroke-dasharray:66 34;      /* pathLength=100: long streak, one gap */
  filter:drop-shadow(0 0 3px rgba(255,106,43,.6));
  animation:volcFlow 4.5s linear infinite;
}
.volc__flow--a{stroke-width:2.3;stroke:var(--lava);animation-duration:5.4s}
.volc__flow--b{stroke-width:3;animation-duration:4.2s;animation-delay:-1.6s}
.volc__flow--c{stroke-width:2;stroke:var(--ember);animation-duration:6.2s;animation-delay:-3.1s}
@keyframes volcFlow{
  from{stroke-dashoffset:100}
  to{stroke-dashoffset:0}
}

/* embers arcing out of the crater */
.volc__ember{
  fill:var(--lava);
  animation:volcErupt var(--dur,3s) var(--delay,0s) cubic-bezier(.3,.5,.6,1) infinite;
  transform-origin:24px 16px;
}
.volc__ember:nth-child(even){fill:var(--gold)}
@keyframes volcErupt{
  0%   {transform:translate(0,2px) scale(.3);opacity:0}
  12%  {opacity:1}
  45%  {transform:translate(calc(var(--dx) * .55),-11px) scale(1)}
  72%  {opacity:.9}
  100% {transform:translate(var(--dx),1px) scale(.25);opacity:0}
}

.brand:hover .volc__crater{animation-duration:1.2s}
.brand:hover .volc__ember{animation-duration:1.6s}

.head__call{display:none}

.burger{
  width:44px;height:40px;display:grid;place-content:center;gap:5px;
  background:transparent;border:1px solid rgba(245,241,234,.25);border-radius:9px;cursor:pointer;
}
.burger span{display:block;width:20px;height:2px;background:var(--ash);transition:transform .22s,opacity .18s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.nav.is-open{
  display:flex;flex-direction:column;gap:.15rem;
  position:absolute;left:0;right:0;top:100%;
  background:var(--basalt);border-bottom:1px solid rgba(245,241,234,.12);
  padding:.6rem var(--pad) 1.1rem;
}
.nav.is-open a{font-size:1.15rem;padding:.7rem .4rem}
.nav.is-open a::after{display:none}

/* ── hero ───────────────────────────────────────────────── */
.hero{position:relative;background:var(--basalt);color:var(--ash);overflow:hidden;isolation:isolate}
.hero__heat{
  position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(58% 52% at 18% 0%,rgba(226,72,26,.38),transparent 66%),
    radial-gradient(46% 40% at 86% 4%,rgba(245,158,27,.22),transparent 70%),
    radial-gradient(70% 44% at 50% 108%,rgba(226,72,26,.14),transparent 62%);
}
.hero__grid{
  display:grid;gap:clamp(1.85rem,4vw,3rem);
  padding-block:clamp(2.5rem,5.5vw,4rem) clamp(2.5rem,5vw,3.75rem);
}
.hero__h1{
  font-family:var(--display);
  font-weight:900;
  font-size:clamp(3.1rem,2rem + 5.6vw,5.7rem);
  line-height:.85;
  letter-spacing:-.015em;
  text-transform:uppercase;
  margin:0 0 1.1rem;
}
.hero__h1 span{display:block}
.hero__h1 em{
  font-style:normal;
  color:var(--lava);
  text-shadow:0 0 34px rgba(255,106,43,.45);
}
.hero__sub{font-size:clamp(1.06rem,1rem + .35vw,1.24rem);color:#D9CCC1;max-width:47ch;text-wrap:pretty}
.hero__cta{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.5rem 0 1.1rem}
.hero__cta .btn{flex:1 1 auto;min-width:min(100%,15rem)}
.hero__rating{margin:0;font-size:.98rem;color:var(--mute-lt);display:flex;flex-wrap:wrap;align-items:center;gap:.45rem}
.hero__rating b{color:var(--ash);font-size:1.08rem}
.hero__rating a{color:var(--mute-lt);text-underline-offset:3px}
.hero__rating a:hover{color:var(--gold)}
.stars{color:var(--gold);letter-spacing:.1em;margin:0}

.hero__shot{position:relative;margin:0}
.hero__shot img{
  border-radius:var(--r);
  border:1px solid rgba(245,241,234,.14);
  box-shadow:0 26px 60px -22px rgba(0,0,0,.85);
  aspect-ratio:4/3;object-fit:cover;width:100%;
}

/* the ground opens up */
.strata{display:block;position:relative;height:26px}
.strata__turf{ /* molten seam where dark meets light */
  position:absolute;inset:0 0 auto;height:5px;
  background:linear-gradient(90deg,var(--magma),var(--ember) 30%,var(--gold) 55%,var(--lava) 80%,var(--magma));
}
.strata__soil{
  position:absolute;inset:5px 0 0;
  background:linear-gradient(180deg,var(--crust-2),var(--crust));
}

/* ── interior page hero ─────────────────────────────────── */
.pagehero{
  position:relative;background:var(--basalt);color:var(--ash);
  overflow:hidden;isolation:isolate;
}
.pagehero__inner{padding-block:clamp(1.6rem,4vw,2.5rem) clamp(2.5rem,6vw,4rem)}
.pagehero__h1{
  font-family:var(--display);font-weight:900;
  font-size:clamp(2.6rem,1.6rem + 4.4vw,4.9rem);
  line-height:.88;letter-spacing:-.015em;text-transform:uppercase;
  margin:0 0 1rem;max-width:18ch;
}
.pagehero__sub{
  font-size:clamp(1.04rem,1rem + .3vw,1.2rem);
  color:#D9CCC1;max-width:56ch;text-wrap:pretty;margin-bottom:1.6rem;
}
.pagehero__cta{display:flex;flex-wrap:wrap;gap:.75rem}
.pagehero__cta .btn{flex:1 1 auto;min-width:min(100%,15rem)}

.crumbs{
  display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;
  font-family:var(--util);font-size:.9rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--mute-lt);margin-bottom:1.5rem;
}
.crumbs a{color:var(--ember);text-decoration:none}
.crumbs a:hover{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.crumbs > *:not(:last-child)::after{content:"/";margin-left:.5rem;color:var(--crust-2)}
.crumbs [aria-current]{color:var(--ash)}

/* ── split: media beside prose ──────────────────────────── */
.split{display:grid;gap:clamp(1.75rem,4vw,3.25rem);align-items:center}
.split__media img{
  width:100%;border-radius:var(--r);aspect-ratio:4/3;object-fit:cover;
  border:1px solid rgba(27,19,16,.12);
  box-shadow:0 18px 44px -30px rgba(27,19,16,.65);
}
.split__body .h2{margin-bottom:1rem}
.prose p{color:var(--mute);max-width:56ch}
.prose p:last-of-type{margin-bottom:1.5rem}

/* ── related links ──────────────────────────────────────── */
.linklist{display:grid;gap:.9rem}
.linklist a{
  display:flex;flex-direction:column;gap:.2rem;text-decoration:none;
  padding:1.15rem 1.25rem;border-radius:var(--r);
  background:#fff;border:1px solid rgba(27,19,16,.1);
  box-shadow:0 10px 30px -26px rgba(27,19,16,.5);
  transition:transform .16s ease,border-color .16s ease;
}
.linklist a:hover{transform:translateY(-2px);border-color:var(--magma)}
.linklist b{
  font-family:var(--display);font-weight:800;font-size:1.32rem;line-height:1.05;
}
.linklist span{color:var(--mute);font-size:.95rem}

/* ── service area ───────────────────────────────────────── */
.areas{display:grid;gap:clamp(2.5rem,5vw,3.5rem)}
.areablock .h2{margin-bottom:1.25rem}
.arealinks{display:grid;gap:.55rem 1.5rem}
.arealinks a{
  font-family:var(--display);font-weight:700;font-size:1.42rem;
  text-decoration:none;color:var(--ink);
  display:inline-block;padding:.1rem 0;
  border-bottom:2px solid transparent;transition:color .15s,border-color .15s;
}
.arealinks a:hover{color:var(--magma);border-bottom-color:var(--magma)}
.arealinks--lg a{font-size:1.6rem}
.area__extra{margin:1.15rem 0 0;color:var(--mute);font-size:.98rem}

/* ── closing CTA band ───────────────────────────────────── */
.cta{text-align:center;max-width:44rem;margin-inline:auto}
.cta .h2{margin-bottom:.8rem}
.cta > p{color:#CFC1B6;max-width:46ch;margin-inline:auto}
.cta__row{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin:1.6rem 0 1.1rem}
.cta__fine{
  margin:0;font-family:var(--util);font-size:.9rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ember);
}

/* ── trust ──────────────────────────────────────────────── */
.trust{
  background:
    radial-gradient(60% 130% at 50% -30%,rgba(226,72,26,.18),transparent 60%),
    linear-gradient(180deg,#3B2B21,var(--crust));
  color:var(--ash);
}
.trust__row{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:1.35rem 1rem;padding-block:1.8rem;
}
.trust__row div{display:flex;flex-direction:column;gap:.15rem;border-left:3px solid var(--ember);padding-left:.85rem}
.trust__row b{
  font-family:var(--display);font-weight:800;font-size:1.42rem;
  letter-spacing:.01em;text-transform:uppercase;line-height:1;
}
.trust__row span{font-size:.9rem;color:var(--mute-lt);line-height:1.35}

/* ── sections ───────────────────────────────────────────── */
.sec{padding-block:var(--sec-y)}

/* light ground: faint sediment strata + warm glow */
.sec--light{
  background:
    radial-gradient(48% 34% at 8% 0%,rgba(226,72,26,.08),transparent 62%),
    radial-gradient(42% 30% at 96% 100%,rgba(245,158,27,.09),transparent 64%),
    repeating-linear-gradient(180deg,rgba(27,19,16,.03) 0 1px,transparent 1px 88px),
    linear-gradient(180deg,#F8F4EC,var(--ash));
  color:var(--ink);
}

/* dark chambers: ember glows in the corners */
.sec--dark{
  background:
    radial-gradient(56% 46% at 88% 4%,rgba(226,72,26,.2),transparent 62%),
    radial-gradient(46% 42% at 2% 98%,rgba(245,158,27,.1),transparent 62%),
    linear-gradient(180deg,#1A120F,var(--basalt));
  color:var(--ash);
}
.sec--dark p{color:#CFC1B6}

/* faq: dotted survey-grid over aged paper */
.sec--faq{
  background:
    radial-gradient(rgba(27,19,16,.055) 1px,transparent 1.4px),
    radial-gradient(52% 36% at 90% 0%,rgba(226,72,26,.07),transparent 60%),
    linear-gradient(180deg,#EFE8DA,var(--ash-2));
  background-size:26px 26px,auto,auto;
  color:var(--ink);
}

/* book: deep soil with magma rising from below */
.sec--book{
  background:
    radial-gradient(70% 55% at 50% 115%,rgba(226,72,26,.3),transparent 64%),
    radial-gradient(40% 30% at 8% 0%,rgba(245,158,27,.08),transparent 60%),
    linear-gradient(180deg,var(--soil),#191008);
  color:var(--ash);
}

/* ── service cards ──────────────────────────────────────── */
.cards{display:grid;gap:1.5rem}

.card{
  background:#fff;border:1px solid rgba(27,19,16,.1);border-radius:var(--r);
  overflow:hidden;display:flex;flex-direction:column;
  box-shadow:0 10px 30px -24px rgba(27,19,16,.55);
  transition:transform .2s ease,box-shadow .2s ease;
}
.card:hover{transform:translateY(-3px);box-shadow:0 18px 40px -24px rgba(27,19,16,.5)}
.card img{aspect-ratio:16/10;object-fit:cover;width:100%}
.card__body{padding:1.5rem clamp(1.25rem,3vw,1.85rem) 1.75rem}
.card h3{
  font-family:var(--display);font-weight:800;
  font-size:clamp(1.55rem,1.2rem + 1.1vw,2.05rem);
  line-height:1;letter-spacing:-.005em;margin-bottom:.6rem;
}
.card p{color:var(--mute);margin-bottom:1rem}
.card h3 a{text-decoration:none}
.card h3 a:hover{color:var(--magma)}
.card__more{margin:1.1rem 0 0}
.card__more a{
  font-family:var(--util);font-weight:700;font-size:1rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--magma);text-decoration:none;
}
.card__more a:hover{text-decoration:underline;text-underline-offset:4px}
.also__item h3 a{text-decoration:none}
.also__item h3 a:hover{color:var(--magma)}

/* the smaller jobs — plain type on the ground, no boxes */
.also{display:grid;gap:2rem;margin-top:clamp(2.25rem,5vw,3.5rem)}
.also__item h3{
  font-family:var(--display);font-weight:800;font-size:1.5rem;
  line-height:1.05;margin-bottom:.45rem;
}
.also__item p{margin:0;color:var(--mute);font-size:.99rem;max-width:44ch}

.ticks{display:grid;gap:.45rem}
.ticks li{position:relative;padding-left:1.65rem;font-size:.97rem;color:var(--ink)}
.ticks li::before{
  content:"";position:absolute;left:0;top:.42em;
  width:.72rem;height:.4rem;border-left:2.5px solid var(--magma);border-bottom:2.5px solid var(--magma);
  transform:rotate(-45deg);
}

/* ── offer / coupon ─────────────────────────────────────── */
.offer__inner{display:grid;gap:clamp(1.75rem,4vw,3rem);align-items:center}
.coupon{
  background:linear-gradient(155deg,var(--gold),var(--ember) 70%,#E8880F);
  color:var(--basalt);border-radius:var(--r);
  padding:1.9rem 1.5rem;text-align:center;
  border:2px dashed rgba(21,15,13,.4);
  box-shadow:0 24px 55px -24px rgba(245,158,27,.65);
  max-width:22rem;
  transform:rotate(-1.2deg);
}
.coupon p{color:var(--basalt)}
.coupon .coupon__hdr{
  font-family:var(--util);font-weight:700;font-size:.88rem;letter-spacing:.2em;
  text-transform:uppercase;color:#6B3F03;margin:0 0 .3rem;
}
.coupon__amt{
  font-family:var(--display);font-weight:900;font-size:5.6rem;line-height:.8;
  margin:0;letter-spacing:-.02em;
}
.coupon__amt span{font-size:.42em;vertical-align:super;margin-right:.04em}
.coupon__lbl{
  font-family:var(--util);font-weight:600;font-size:1.28rem;letter-spacing:.08em;
  text-transform:uppercase;margin:.45rem 0 .8rem;
}
.coupon .coupon__fine{margin:0;font-size:.86rem;color:rgba(21,15,13,.78)}
.offer .h2{margin-bottom:.85rem}
.offer__copy p{max-width:50ch}
.offer__copy .btn{margin-top:.6rem}

/* ── steps ──────────────────────────────────────────────── */
.steps{display:grid;gap:1.25rem}
.step{
  position:relative;background:#fff;border-radius:var(--r);
  border:1px solid rgba(27,19,16,.1);
  box-shadow:0 10px 30px -24px rgba(27,19,16,.55);
  padding:1.5rem 1.4rem 1.6rem 4.35rem;
}
.step__n{
  position:absolute;left:1.25rem;top:1.45rem;
  width:2.25rem;height:2.25rem;border-radius:50%;
  display:grid;place-content:center;
  background:var(--basalt);color:var(--gold);
  font-family:var(--display);font-weight:800;font-size:1.3rem;line-height:1;
}
.step h3{
  font-family:var(--display);font-weight:800;font-size:1.5rem;
  line-height:1.05;margin-bottom:.4rem;
}
.step p{margin:0;color:var(--mute);font-size:.99rem}

.showcase{margin:clamp(2rem,4vw,3rem) 0 0}
.showcase img{
  border-radius:var(--r);width:100%;
  aspect-ratio:16/9;object-fit:cover;object-position:center 38%;
  border:1px solid rgba(27,19,16,.12);
  box-shadow:0 18px 44px -28px rgba(27,19,16,.6);
}
.showcase figcaption{
  font-family:var(--util);font-size:.95rem;letter-spacing:.09em;text-transform:uppercase;
  color:var(--mute);margin-top:.7rem;
}

/* ── reviews ────────────────────────────────────────────── */
.quotes{display:grid;gap:1.15rem}
.quote{
  margin:0;background:rgba(255,255,255,.035);
  border:1px solid rgba(245,241,234,.12);
  border-radius:var(--r);padding:1.5rem 1.45rem 1.35rem;
  display:flex;flex-direction:column;gap:.15rem;
}
.quote .stars{font-size:1.02rem;margin-bottom:.5rem}
.quote p{color:#DCD0C6;font-size:1.02rem;text-wrap:pretty}
.quote p:last-of-type{margin-bottom:.85rem}
.quote cite{
  font-family:var(--util);font-style:normal;font-weight:700;font-size:.95rem;
  letter-spacing:.13em;text-transform:uppercase;color:var(--gold);margin-top:auto;
}

/* ── service area ───────────────────────────────────────── */
.area__grid{display:grid;gap:clamp(2rem,5vw,3.5rem)}
.area__grid .btn{margin-top:.5rem}
.area__grid .lede{margin-bottom:1.4rem}
.counties{display:grid;gap:1.9rem;margin:0;align-content:start}
.counties dt{
  font-family:var(--display);font-weight:800;font-size:1.6rem;
  line-height:1;text-transform:uppercase;letter-spacing:.01em;
  margin-bottom:.4rem;
}
.counties dd{margin:0;color:var(--mute);font-size:1.04rem;line-height:1.8;max-width:56ch}

/* ── faq ────────────────────────────────────────────────── */
.faq__wrap{max-width:52rem}
.faq{border-top:1px solid rgba(27,19,16,.16)}
.faq details{border-bottom:1px solid rgba(27,19,16,.16)}
.faq summary{
  list-style:none;cursor:pointer;
  display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;
  padding:1.1rem .2rem;
  font-family:var(--display);font-weight:700;
  font-size:clamp(1.22rem,1.05rem + .6vw,1.5rem);line-height:1.15;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"";flex:none;margin-top:.35em;
  width:.62rem;height:.62rem;
  border-right:2.5px solid var(--magma);border-bottom:2.5px solid var(--magma);
  transform:rotate(45deg);transition:transform .22s ease;
}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq summary:hover{color:var(--magma)}
.faq details div{padding:0 .2rem 1.25rem}
.faq details p{margin:0;color:var(--mute);max-width:60ch}

/* ── book ───────────────────────────────────────────────── */
.book__grid{display:grid;gap:clamp(2rem,5vw,3.5rem)}
.book__copy p{color:#CFC1B6;max-width:46ch}
.contact{display:grid;gap:1.1rem;margin-top:1.9rem}
.contact li{display:flex;flex-direction:column;gap:.15rem}
.contact span{
  font-family:var(--util);font-size:.85rem;letter-spacing:.17em;
  text-transform:uppercase;color:var(--ember);
}
.contact a,.contact b{color:var(--ash);text-decoration:none;font-weight:500}
.contact a:hover{color:var(--gold)}
.contact__big{
  font-family:var(--display)!important;font-weight:800;font-size:2.15rem!important;
  line-height:1;letter-spacing:.005em;
}

.form{
  background:rgba(21,15,13,.72);
  border:1px solid rgba(245,241,234,.15);
  border-radius:var(--r);padding:clamp(1.35rem,3vw,2rem);
  box-shadow:0 30px 60px -38px rgba(0,0,0,.9);
}
.row{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.95rem}
.row label{
  font-family:var(--util);font-weight:600;font-size:.88rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--mute-lt);
}
.row input,.row select,.row textarea{
  font-family:var(--body);font-size:1rem;color:var(--ash);
  background:rgba(245,241,234,.06);
  border:1px solid rgba(245,241,234,.2);border-radius:9px;
  padding:.72rem .85rem;width:100%;
}
.row textarea{resize:vertical;min-height:5rem}
.row select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--mute-lt) 50%),linear-gradient(135deg,var(--mute-lt) 50%,transparent 50%);background-position:calc(100% - 18px) 1.28rem,calc(100% - 12px) 1.28rem;background-size:6px 6px;background-repeat:no-repeat}
.row select option{background:var(--basalt);color:var(--ash)}
.row input:focus,.row select:focus,.row textarea:focus{border-color:var(--ember);background:rgba(245,241,234,.1)}
.row input[aria-invalid="true"]{border-color:var(--lava)}
.form__note{margin:.9rem 0 0;font-size:.9rem;color:var(--mute-lt);text-align:center}
.form__note.is-ok{color:var(--gold)}
.form__note.is-err{color:var(--lava)}

/* ── footer ─────────────────────────────────────────────── */
.foot{
  background:
    radial-gradient(50% 60% at 50% 0%,rgba(226,72,26,.08),transparent 60%),
    var(--basalt);
  color:var(--mute-lt);padding-top:clamp(2.75rem,6vw,4rem);
}
.foot__grid{display:grid;gap:2rem;padding-bottom:2.5rem}
.foot__brand img{width:170px;margin:-1rem 0 .25rem -14px}
.foot__brand p{margin:0;font-size:.96rem;line-height:1.55}
.foot h4{
  font-family:var(--util);font-weight:700;font-size:.88rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ember);margin-bottom:.85rem;
}
.foot li{margin-bottom:.5rem;font-size:.96rem;line-height:1.5}
.foot li a{text-decoration:none}
.foot li a:hover{color:var(--gold)}
.foot__bar{
  display:flex;flex-wrap:wrap;gap:.4rem 1.5rem;justify-content:space-between;
  border-top:1px solid rgba(245,241,234,.12);
  padding-block:1.15rem;font-size:.86rem;
}
.foot__bar p{margin:0}

/* ── mobile call bar ────────────────────────────────────── */
.callbar{
  position:fixed;left:0;right:0;bottom:0;z-index:55;
  padding:.6rem var(--pad) calc(.6rem + env(safe-area-inset-bottom));
  background:var(--basalt);
  border-top:1px solid rgba(245,241,234,.14);
  box-shadow:0 -10px 30px -18px rgba(0,0,0,.9);
  transform:translateY(110%);transition:transform .28s ease;
}
.callbar.is-up{transform:translateY(0)}

/* ══ breakpoints ══════════════════════════════════════════ */
@media (min-width:600px){
  .also{grid-template-columns:repeat(3,1fr);gap:2.25rem 2.5rem}
  .quotes{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .arealinks{grid-template-columns:repeat(2,1fr)}
  .linklist{grid-template-columns:repeat(3,1fr)}
}

@media (min-width:860px){
  .trust__row{grid-template-columns:repeat(4,1fr);padding-block:2.1rem}
  .cards{grid-template-columns:repeat(2,1fr)}
  .cards--auto{grid-template-columns:repeat(auto-fit,minmax(20rem,1fr))}
  .split{grid-template-columns:1fr 1fr}
  .areas{grid-template-columns:repeat(2,1fr);align-items:start}
  .arealinks{grid-template-columns:repeat(2,1fr)}
  .offer__inner{grid-template-columns:auto 1fr;gap:clamp(2rem,5vw,4rem)}
  .book__grid{grid-template-columns:1fr 1fr;align-items:start}
  .area__grid{grid-template-columns:1fr 1.15fr;align-items:start}
  .foot__grid{grid-template-columns:1.5fr 1fr 1fr 1.2fr}
}

@media (min-width:1000px){
  .nav{display:flex}
  .head__call{display:inline-flex;padding:.6rem 1.05rem;font-size:.98rem}
  .burger{display:none}
  .callbar{display:none}
  .hero__grid{grid-template-columns:1.08fr .92fr;align-items:center}
  .hero__cta .btn{flex:0 1 auto;min-width:0}
  .quotes{grid-template-columns:repeat(3,1fr)}
  .steps{grid-template-columns:repeat(4,1fr)}
  .hero__shot img{aspect-ratio:5/4}
}

@media (min-width:1180px){
  .volc{width:46px;height:46px}
}

/* ── reveal on scroll ───────────────────────────────────── */
.rv{opacity:0;transform:translateY(20px)}
.rv.in{opacity:1;transform:none;transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.3,1)}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .rv{opacity:1;transform:none}
  /* keep the volcano legible when frozen: lava visible, embers parked */
  .volc__flow{stroke-dasharray:none}
  .volc__ember{opacity:0}
  .volc__crater{opacity:1;transform:none}
}
