/* ============================================================
   TK FITNESS PGH, hand-built comp
   Modeled on Gen-X Renovation (storytelling-left hero + in-hero
   lead-form card + checkmark trust bullets). Recolored and
   retyped to TK's REAL logo: editorial black/bone with a single
   signal-orange action color, Bodoni Moda display.
   REAL PROSPECT, no fabricated reviews, quotes, or counts.
   Section/component classes are BEM so the Bricks convert stays
   mechanical (one owner per layer).
   ============================================================ */

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;font-size:16px;overflow-x:clip;}
body{font-family:var(--f-body);color:var(--ink);background:var(--paper);line-height:1.62;-webkit-font-smoothing:antialiased;}
a{text-decoration:none;color:inherit;}
img{max-width:100%;display:block;height:auto;}
button{font:inherit;}
h1,h2,h3,h4{font-family:var(--f-display);line-height:1.14;font-weight:700;letter-spacing:-.005em;}
.container{max-width:var(--container);margin:0 auto;padding:0 32px;}
.container--tight{max-width:var(--container-tight);}
@media(max-width:600px){.container{padding-left:20px;padding-right:20px;}}

.eyebrow{font-family:var(--f-body);font-weight:700;text-transform:uppercase;letter-spacing:.2em;font-size:.7rem;color:var(--flame-text);}
.eyebrow--muted{color:var(--ink-muted);}
.eyebrow--light{color:var(--flame-soft);}
.section{padding:var(--section-y) 0;}
.section--alt{background:var(--bone);}
.section--ink{background:var(--ink);color:var(--bone);}
.section--ink h2,.section--ink h3{color:var(--paper);}
.section__head{max-width:760px;margin-bottom:52px;}
.section__head--center{margin-left:auto;margin-right:auto;text-align:center;}
.section__title{font-size:clamp(1.75rem,3.3vw,2.6rem);margin:14px 0 16px;text-transform:uppercase;letter-spacing:.005em;font-weight:800;}
.section__lead{font-size:1.06rem;color:var(--ink-muted);}
.section--ink .section__lead{color:rgba(245,242,236,.72);}
.rule{width:56px;height:2px;background:var(--flame);margin:0 0 22px;}
.section__head--center .rule{margin-left:auto;margin-right:auto;}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--f-body);
  font-weight:800;font-size:.8rem;text-transform:uppercase;letter-spacing:.09em;padding:18px 34px;
  border-radius:var(--radius);border:2px solid transparent;cursor:pointer;white-space:nowrap;
  transition:transform .16s ease,box-shadow .16s ease,background .16s ease,color .16s ease;}
.btn svg{width:17px;height:17px;}
.btn--flame{background:var(--flame-btn);color:var(--on-accent);box-shadow:var(--shadow-flame);}
.btn--flame:hover{background:var(--flame-btn-hover);color:var(--on-accent);transform:translateY(-3px);box-shadow:0 18px 38px rgba(113,200,208,.4);}
.btn--ink{background:var(--ink);color:var(--bone);box-shadow:0 10px 24px rgba(11,11,12,.3);}
.btn--ink:hover{background:var(--ink-2);transform:translateY(-3px);}
.btn--bone{background:var(--bone);color:var(--ink);box-shadow:0 10px 26px rgba(0,0,0,.28);}
.btn--bone:hover{background:#fff;transform:translateY(-3px);}
.btn--outline{background:transparent;color:var(--ink);border-color:var(--ink);}
.btn--outline:hover{background:var(--ink);color:var(--bone);transform:translateY(-3px);}
.btn--block{width:100%;}


/* ---------- Accessibility ---------- */
.skip{position:absolute;left:-9999px;top:0;z-index:300;background:var(--flame-btn);color:var(--on-accent);
  font-weight:800;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;padding:14px 20px;}
.skip:focus{left:0;}
:focus-visible{outline:3px solid var(--flame);outline-offset:3px;}
.header :focus-visible,.footer :focus-visible,.hero :focus-visible{outline-color:var(--flame-soft);}
.leadform input:focus-visible,.leadform select:focus-visible{outline-offset:0;}

/* ---------- Utility bar ---------- */
.utility{background:var(--ink);color:rgba(245,242,236,.8);font-size:.78rem;border-bottom:1px solid var(--ink-line);}
.utility .container{display:flex;align-items:center;justify-content:space-between;min-height:40px;gap:18px;}
.utility__item{display:flex;align-items:center;gap:8px;white-space:nowrap;}
.utility__item svg{width:14px;height:14px;color:var(--flame-soft);flex-shrink:0;}
.utility strong{color:var(--paper);font-weight:600;}
@media(max-width:900px){.utility__hide-md{display:none;}.utility .container{justify-content:center;}}
@media(max-width:640px){.utility__item{white-space:normal;text-align:center;}
  .utility .container{padding-top:8px;padding-bottom:8px;}
  .utility{font-size:.72rem;}}

/* ---------- Header ---------- */
.header{position:sticky;top:0;z-index:60;background:var(--ink);border-bottom:1px solid var(--ink-line);transition:box-shadow .28s ease;}
.header .container{display:flex;align-items:center;gap:26px;height:88px;transition:height .28s ease;}
.header.is-scrolled{box-shadow:0 10px 30px rgba(0,0,0,.4);}
.header.is-scrolled .container{height:70px;}
.header.is-scrolled .brand__logo{height:44px;}
.brand{display:flex;align-items:center;flex-shrink:0;}
.brand__logo{height:58px;width:auto;transition:height .28s ease;}

.nav{display:flex;align-items:center;margin-left:auto;}
.nav__items{display:flex;align-items:center;gap:2px;}
.nav__head,.nav__foot,.nav__close{display:none;}
.nav-overlay{display:none;}
.nav__item{position:relative;}
.nav__link{display:flex;align-items:center;gap:6px;font-weight:600;font-size:.88rem;color:rgba(245,242,236,.86);
  padding:11px 13px;position:relative;cursor:pointer;letter-spacing:.01em;}
.nav__link:hover{color:var(--paper);}
.nav__link .caret{width:11px;height:11px;opacity:.7;transition:transform .2s ease;}
.nav__item:hover .nav__link .caret{transform:rotate(180deg);}
.nav__link::after{content:"";position:absolute;left:13px;right:13px;bottom:5px;height:2px;background:var(--flame);
  transform:scaleX(0);transform-origin:left;transition:transform .18s ease;}
.nav__link:hover::after,.nav__item:hover .nav__link::after{transform:scaleX(1);}
.nav__link.is-current::after{transform:scaleX(1);}
.nav__menu{position:absolute;top:100%;left:0;min-width:264px;background:var(--paper);border:1px solid var(--rule);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:8px;opacity:0;visibility:hidden;
  transform:translateY(9px);transition:opacity .18s ease,transform .18s ease,visibility .18s;z-index:70;}
.nav__menu::before{content:"";position:absolute;top:-14px;left:0;right:0;height:14px;}
.nav__item:hover .nav__menu,.nav__item:focus-within .nav__menu{opacity:1;visibility:visible;transform:translateY(0);}
.nav__menu a{display:block;padding:12px 14px;border-radius:var(--radius);font-size:.9rem;font-weight:500;
  color:var(--ink);white-space:nowrap;transition:background .14s ease,color .14s ease;}
.nav__menu a:hover{background:var(--bone);color:var(--flame-deep);}

.header__cta{display:flex;align-items:center;gap:18px;flex-shrink:0;}
.header__phone{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15;}
.header__phone .num{font-family:var(--f-display);font-weight:600;font-size:1.2rem;color:var(--paper);display:flex;align-items:center;gap:8px;}
.header__phone .num svg{width:15px;height:15px;color:var(--flame);}
.header__phone .lbl{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:rgba(245,242,236,.5);}
.header__mobile-phone{display:none;}
.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px;}
.hamburger span{width:26px;height:2px;background:var(--bone);border-radius:2px;transition:.2s;}

@media(max-width:1140px){.nav__link{padding:11px 9px;font-size:.83rem;}.header__phone .lbl{display:none;}}
@media(max-width:980px){
  .nav-overlay{display:block;position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(2px);
    opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s;z-index:190;}
  .nav-overlay.is-open{opacity:1;visibility:visible;}
  .nav{position:fixed;top:0;right:0;left:auto;height:100dvh;width:90%;max-width:400px;margin-left:0;
    flex-direction:column;align-items:stretch;background:var(--ink);color:var(--bone);
    transform:translateX(105%);transition:transform .36s cubic-bezier(.4,0,.2,1);
    z-index:200;overflow-y:auto;box-shadow:-24px 0 60px rgba(0,0,0,.55);}
  .nav{visibility:hidden;transition:transform .36s cubic-bezier(.4,0,.2,1),visibility .36s;}
  .nav.is-open{transform:translateX(0);visibility:visible;transition-delay:0s;}
  .nav__head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px;
    border-bottom:1px solid var(--ink-line);position:sticky;top:0;background:var(--ink);z-index:2;}
  .nav__head img{height:34px;width:auto;}
  .nav__close{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;
    background:rgba(245,242,236,.1);border:0;color:var(--bone);cursor:pointer;flex-shrink:0;transition:background .15s ease;}
  .nav__close:hover{background:var(--flame);color:var(--on-accent);}
  .nav__close svg{width:20px;height:20px;}
  .nav__items{display:block;padding:4px 0 0;}
  .nav__item{border-bottom:1px solid rgba(245,242,236,.08);}
  .nav__link{display:flex;align-items:center;justify-content:space-between;padding:17px 22px;
    font-family:var(--f-display);font-weight:700;font-size:1.16rem;color:var(--bone);}
  .nav__link--solo{border-bottom:1px solid rgba(245,242,236,.08);}
  .nav__link::after{display:none;}
  .nav__link .caret{width:16px;height:16px;opacity:.9;transition:transform .28s ease,color .2s ease;}
  .nav__item.is-expanded .nav__link .caret{transform:rotate(180deg);color:var(--flame-soft);}
  .nav__menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;border-radius:0;
    min-width:0;padding:0;background:rgba(0,0,0,.32);max-height:0;overflow:hidden;transition:max-height .32s ease;}
  .nav__menu::before{display:none;}
  .nav__item.is-expanded .nav__menu{max-height:420px;}
  .nav__menu a{display:flex;align-items:center;gap:11px;padding:14px 22px;font-size:.98rem;font-weight:600;
    color:rgba(245,242,236,.8);border-bottom:1px solid rgba(245,242,236,.06);border-radius:0;white-space:normal;}
  .nav__menu a::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--flame);flex-shrink:0;}
  .nav__menu a:hover,.nav__menu a:active{background:rgba(245,242,236,.05);color:var(--paper);}
  .nav__foot{display:block;margin-top:auto;padding:22px 22px calc(26px + env(safe-area-inset-bottom));background:rgba(0,0,0,.3);}
  .nav__cta{width:100%;justify-content:center;margin-bottom:14px;}
  .nav__call{display:flex;align-items:center;justify-content:center;gap:11px;color:var(--paper);
    font-family:var(--f-display);font-weight:700;font-size:1.5rem;}
  .nav__call svg{width:20px;height:20px;color:var(--flame-soft);}
  .nav__note{text-align:center;font-size:.76rem;color:rgba(245,242,236,.55);margin-top:8px;}
  .nav__social{display:flex;justify-content:center;gap:12px;margin-top:20px;}
  .nav__social a{width:44px;height:44px;border-radius:50%;background:rgba(245,242,236,.1);display:flex;
    align-items:center;justify-content:center;transition:background .15s ease,transform .15s ease;}
  .nav__social a:hover{background:var(--flame);color:var(--on-accent);transform:translateY(-2px);}
  .nav__social svg{width:18px;height:18px;color:var(--bone);}
  /* .header owns a stacking context (z-index:60), so the drawer's own z-index
     cannot beat the overlay from inside it. Lift the header while open. */
  body.is-nav-open{overflow:hidden;}
  body.is-nav-open .header{z-index:200;}
  .header__cta{margin-left:auto;}
  .header__cta .btn{display:none;}
  .header__phone{display:none;}
  /* a 25px icon is not a touch target. 44px minimum, per WCAG 2.5.5. */
  .header__mobile-phone{display:inline-flex;align-items:center;justify-content:center;
    min-width:44px;min-height:44px;color:var(--bone);border-radius:50%;}
  .header__mobile-phone:hover{background:rgba(245,242,236,.08);}
  .header__mobile-phone svg{width:25px;height:25px;color:var(--flame);}
  .hamburger{display:flex;position:relative;z-index:210;}
  .hamburger.is-active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .hamburger.is-active span:nth-child(2){opacity:0;}
  .hamburger.is-active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  body.is-nav-open .hamburger,body.is-nav-open .header__mobile-phone{opacity:0;pointer-events:none;transition:opacity .2s ease;}
}
@media(max-width:520px){.header .container{gap:10px;}.brand__logo{height:34px;}.header.is-scrolled .brand__logo{height:30px;}}

/* ---------- Hero (Gen-X storytelling-left + form card) ---------- */
.hero{position:relative;background:var(--ink);color:var(--bone);overflow:hidden;padding:74px 0 86px;}
.hero__media{position:absolute;inset:0;z-index:0;}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:36% 50%;filter:brightness(1.04);}
.hero__media--studio img{object-position:70% 44%;filter:brightness(1.16);}
.hero__media--consult img{object-position:52% 34%;filter:brightness(1.06) contrast(1.02);}
.hero__scrim{position:absolute;inset:0;z-index:1;background:
  linear-gradient(97deg,rgba(11,11,12,.95) 0%,rgba(11,11,12,.88) 26%,rgba(11,11,12,.62) 44%,rgba(11,11,12,.3) 62%,rgba(11,11,12,.12) 100%);}
.hero__scrim::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,11,12,.42),transparent 34%,rgba(11,11,12,.6));}
.hero .container{position:relative;z-index:3;display:grid;grid-template-columns:1.08fr .92fr;gap:56px;align-items:center;}
.hero__copy{max-width:600px;}
.hero__h1{font-family:var(--f-body);font-weight:700;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--flame-soft);margin-bottom:18px;}
.hero__h2{font-family:var(--f-display);font-weight:800;font-size:clamp(2.1rem,4.1vw,3.35rem);line-height:1.1;text-transform:uppercase;letter-spacing:.01em;
  letter-spacing:-.02em;color:var(--paper);margin-bottom:20px;}
.hero__h2 em{font-style:normal;color:var(--flame-soft);}
.hero__lead{font-size:1.1rem;color:rgba(245,242,236,.86);max-width:520px;margin-bottom:26px;}
.hero__rule{width:100%;max-width:330px;height:1px;background:var(--rule-dark);margin-bottom:24px;}
.hero__bullets{display:grid;gap:11px;margin-bottom:28px;}
.hero__bullet{display:flex;align-items:flex-start;gap:11px;font-size:.98rem;color:rgba(245,242,236,.94);}
.hero__bullet svg{width:19px;height:19px;color:var(--flame);flex-shrink:0;margin-top:2px;}
.hero__bullet b{font-weight:700;color:var(--paper);}
.hero__actions{display:flex;gap:14px;flex-wrap:wrap;}

/* ---------- Lead form card ---------- */
.leadform{background:var(--paper);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden;color:var(--ink);}
.leadform__head{background:var(--ink);color:var(--bone);padding:22px 28px 20px;text-align:center;border-bottom:3px solid var(--flame);}
.leadform__kicker{font-family:var(--f-body);font-weight:700;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--flame-soft);}
.leadform__title{font-family:var(--f-display);font-size:1.85rem;color:var(--paper);margin:8px 0 4px;line-height:1.1;}
.leadform__sub{font-size:.85rem;color:rgba(245,242,236,.7);}
.leadform__body{padding:24px 28px 28px;display:grid;gap:12px;}
.leadform__row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.leadform input,.leadform select,.leadform textarea{width:100%;font-family:var(--f-body);font-size:.95rem;color:var(--ink);
  background:var(--bone);border:1px solid var(--rule);border-radius:var(--radius);padding:14px 15px;transition:border-color .15s ease,background .15s ease;}
.leadform input::placeholder,.leadform textarea::placeholder{color:#8B9098;}
.leadform input:focus,.leadform select:focus,.leadform textarea:focus{outline:none;border-color:var(--flame);background:var(--paper);}
.leadform select{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B7076' stroke-width='2.4'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:15px;padding-right:40px;}
.leadform__fine{font-size:.76rem;color:var(--ink-muted);text-align:center;line-height:1.5;}
.leadform__fine b{color:var(--ink);}

@media(max-width:1080px){
  .hero .container{grid-template-columns:1fr;gap:38px;}
  .hero__copy{max-width:none;}
  .hero__media img{object-position:64% 34%;}
  .leadform{max-width:520px;}
}
@media(max-width:1080px){
  /* a horizontal scrim only works next to a side-by-side form; stacked, it must run top-down */
  .hero__scrim{background:linear-gradient(178deg,rgba(11,11,12,.9) 0%,rgba(11,11,12,.72) 34%,rgba(11,11,12,.82) 74%,rgba(11,11,12,.94) 100%);}
  .hero__media img{object-position:66% 38%;}
}
@media(max-width:600px){
  .hero{padding:30px 0 40px;}
  .hero__h1{font-size:.68rem;letter-spacing:.13em;margin-bottom:12px;}
  .hero__h2{font-size:clamp(2.1rem,9.2vw,2.9rem);margin-bottom:14px;}
  .hero__lead{font-size:.98rem;margin-bottom:18px;}
  .hero__rule{margin-bottom:16px;}
  .hero__bullets{gap:9px;margin-bottom:20px;}
  .hero__bullet{font-size:.92rem;}
  .demo-flag{font-size:.7rem;padding:7px 16px;line-height:1.35;}
  .leadform__body{padding:20px 20px 24px;}
  .leadform__head{padding:18px 20px 16px;}
  .leadform__row{grid-template-columns:1fr;}
  .hero__actions .btn{width:100%;}
}

/* ---------- Credential bar ---------- */
.creds{background:var(--bone);border-bottom:1px solid var(--rule);}
.creds .container{display:grid;grid-template-columns:repeat(4,1fr);gap:0;}
.cred{display:flex;align-items:center;gap:14px;padding:26px 26px;}
.cred + .cred{border-left:1px solid var(--rule);}
.cred svg{width:26px;height:26px;color:var(--flame);flex-shrink:0;}
.cred__label{font-family:var(--f-display);font-weight:700;font-size:1.05rem;line-height:1.2;}
.cred__note{font-size:.78rem;color:var(--ink-muted);margin-top:2px;}
@media(max-width:1140px){
  /* 4 across gets too tight for "Corrective Exercise" before the old 900px break */
  .creds .container{grid-template-columns:1fr 1fr;padding:0;}
  .cred{padding:20px;}
  .cred:nth-child(odd){border-left:0;}
  .cred:nth-child(n+3){border-top:1px solid var(--rule);}
}
@media(max-width:560px){
  /* two columns of ~150px still wrapped two-word labels, so phones get one per row */
  .creds .container{grid-template-columns:1fr;}
  .cred{padding:15px 20px;gap:14px;}
  .cred + .cred{border-left:0;border-top:1px solid var(--rule);}
  .cred:nth-child(n+3){border-top:1px solid var(--rule);}
  .cred svg{width:22px;height:22px;}
  .cred__label{font-size:1rem;}
}

/* ---------- Service cards ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.svc-grid--two{grid-template-columns:repeat(2,1fr);gap:30px;}
@media(max-width:880px){.svc-grid--two{grid-template-columns:1fr;}}
.svc{background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-lg);overflow:hidden;
  display:flex;flex-direction:column;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;}
.svc:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);border-color:var(--ink);}
.svc__media{aspect-ratio:3/2;overflow:hidden;background:var(--ink);}
.svc__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.svc:hover .svc__media img{transform:scale(1.05);}
.svc__body{padding:26px 26px 28px;display:flex;flex-direction:column;flex:1;}
.svc__title{font-size:1.22rem;margin-bottom:10px;text-transform:uppercase;letter-spacing:.01em;}
.svc__price{font-family:var(--f-body);font-weight:800;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--flame-deep);margin-bottom:10px;}
.svc__text{font-size:.96rem;color:var(--ink-muted);margin-bottom:18px;}
.svc__list{list-style:none;display:grid;gap:8px;margin-bottom:22px;}
.svc__list li{display:flex;align-items:flex-start;gap:9px;font-size:.92rem;}
.svc__list svg{width:16px;height:16px;color:var(--flame);flex-shrink:0;margin-top:3px;}
.svc__link{margin-top:auto;font-family:var(--f-body);font-weight:800;font-size:.78rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink);display:inline-flex;align-items:center;gap:8px;}
.svc__link svg{width:15px;height:15px;transition:transform .18s ease;}
.svc:hover .svc__link{color:var(--flame-deep);}
.svc:hover .svc__link svg{transform:translateX(4px);}
/* The centred 560px column used to kick in at 980px, which pushed the service cards
   up to 138px inside the gutter every other section shares. Hold three columns to
   760px, then go full width so the left edge stays put. */
@media(max-width:980px){.svc-grid{gap:18px;}}
/* three columns still read well at 900px; by 880 the titles and the card CTA
   both wrap, so one column is the better trade below that. */
@media(max-width:880px){.svc-grid{grid-template-columns:1fr;}}
@media(max-width:880px) and (min-width:601px){.svc__media{aspect-ratio:21/9;}}

/* ---------- Split (story / why) ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
/* grid items default to min-width:auto, so an image's intrinsic width can force
   a track wider than its container. Every grid child here may shrink. */
.split > *,.hero .container > *,.cta .container > *,.svc-grid > *,.tiles > *,.rates > *{min-width:0;}
.split--reverse .split__media{order:2;}
.split__media{position:relative;}
.split__media img{border-radius:var(--radius-lg);width:100%;height:auto;}
.split__badge{position:absolute;bottom:-22px;left:-22px;background:var(--flame-btn);color:var(--on-accent);padding:18px 22px;
  border-radius:var(--radius-lg);box-shadow:var(--shadow-md);max-width:220px;}
.split__badge b{font-family:var(--f-display);font-size:2.1rem;display:block;line-height:1;}
.split__badge span{font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;}
.checklist{list-style:none;display:grid;gap:13px;margin:22px 0 30px;}
.checklist li{display:flex;align-items:flex-start;gap:12px;font-size:1rem;}
.checklist svg{width:19px;height:19px;color:var(--flame);flex-shrink:0;margin-top:3px;}
.checklist b{font-weight:700;}
@media(max-width:980px){
  .split{grid-template-columns:1fr;gap:44px;}
  .split--reverse .split__media{order:0;}
  .split__badge{left:16px;bottom:-18px;}
}

/* ---------- Rates ---------- */
.rates{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
.rate{background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-lg);padding:40px 36px;position:relative;display:flex;flex-direction:column;}
.rate .btn{margin-top:auto;align-self:flex-start;}
.rate--feature{background:var(--ink);color:var(--bone);border-color:var(--ink);}
.rate--feature .rate__label{color:var(--flame-soft);}
.rate__free{display:inline-block;align-self:flex-start;background:var(--flame-btn);color:var(--on-accent);
  font-family:var(--f-body);font-weight:800;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;
  padding:7px 13px;border-radius:var(--radius);margin-bottom:16px;}
.rate--feature .rate__free{background:var(--flame-btn);}
.rate__label{font-family:var(--f-body);font-weight:800;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--flame-text);}
.rate__title{font-size:1.35rem;margin:12px 0 8px;text-transform:uppercase;letter-spacing:.01em;}
.rate--feature .rate__title{color:var(--paper);}
.rate__price{font-family:var(--f-display);font-size:3.3rem;line-height:1;margin:14px 0 6px;}
.rate--feature .rate__price{color:var(--paper);}
.rate__unit{font-family:var(--f-body);font-size:.95rem;font-weight:600;color:var(--ink-muted);}
.rate--feature .rate__unit{color:rgba(245,242,236,.66);}
.rate__text{font-size:.96rem;color:var(--ink-muted);margin:16px 0 20px;}
.rate--feature .rate__text{color:rgba(245,242,236,.8);}
@media(max-width:760px){.rates{grid-template-columns:1fr;}}

.asterisk{font-size:.5em;vertical-align:super;color:var(--flame-text);}
.fineprint{margin-top:26px;font-size:.85rem;color:var(--ink-muted);text-align:center;}
.fineprint a{text-decoration:underline;}
.section--ink .fineprint{color:rgba(245,242,236,.66);}

/* ---------- Process ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--rule);border-radius:var(--radius-lg);overflow:hidden;}
.step{padding:38px 30px;background:var(--paper);}
.step + .step{border-left:1px solid var(--rule);}
.step__num{font-family:var(--f-display);font-size:3rem;line-height:1;color:#8A8F95;margin-bottom:14px;}
.step:hover .step__num{color:var(--flame);transition:color .2s ease;}
.step__title{font-size:1.2rem;margin-bottom:9px;}
.step__text{font-size:.97rem;color:var(--ink-muted);}
@media(max-width:980px){
  .steps{grid-template-columns:1fr 1fr;}
  .step:nth-child(odd){border-left:0;}
  .step:nth-child(n+3){border-top:1px solid var(--rule);}
}
@media(max-width:560px){.steps{grid-template-columns:1fr;}.step{border-left:0!important;}.step + .step{border-top:1px solid var(--rule);}.step{padding:24px 22px;}}

/* ---------- Statement band ---------- */
.statement{position:relative;background:var(--ink);color:var(--bone);padding:110px 0;overflow:hidden;}
.statement__media{position:absolute;inset:0;}
.statement__media img{width:100%;height:100%;object-fit:cover;opacity:.34;}
.statement__media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,11,12,.94),rgba(11,11,12,.62));}
.statement .container{position:relative;z-index:2;}
.statement__quote{font-family:var(--f-display);font-weight:800;font-size:clamp(1.8rem,3.6vw,2.9rem);line-height:1.16;text-transform:uppercase;letter-spacing:.005em;
  max-width:900px;color:var(--paper);}
.statement__quote em{font-style:normal;color:var(--flame-soft);}
.statement__attr{margin-top:22px;font-size:.82rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:rgba(245,242,236,.6);}
@media(max-width:600px){.statement{padding:66px 0;}}

/* ---------- Audience tiles ---------- */
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.tile{background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-lg);padding:28px 24px;}
.tile svg{width:28px;height:28px;color:var(--flame);margin-bottom:16px;}
.tile__title{font-size:1.15rem;margin-bottom:9px;}
.tile__text{font-size:.92rem;color:var(--ink-muted);}
@media(max-width:1000px){.tiles{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){
  .tiles{grid-template-columns:1fr;}
  .tile{padding:22px 20px;}
}

/* ---------- Compare ---------- */
.compare{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--rule);border-radius:var(--radius-lg);overflow:hidden;background:var(--paper);}
.compare__col{padding:34px 32px;}
.compare__col + .compare__col{border-left:1px solid var(--rule);}
.compare__title{font-size:1.3rem;margin-bottom:6px;text-transform:uppercase;letter-spacing:.01em;}
.compare__price{font-family:var(--f-body);font-weight:800;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--flame-text);margin-bottom:18px;}
@media(max-width:760px){.compare{grid-template-columns:1fr;}.compare__col + .compare__col{border-left:0;border-top:1px solid var(--rule);}}

/* ---------- FAQ ---------- */
.faq{max-width:880px;margin:0 auto;}
.faq__item{border-bottom:1px solid var(--rule);}
.faq__q{width:100%;background:none;border:0;text-align:left;cursor:pointer;padding:24px 46px 24px 0;position:relative;
  font-family:var(--f-display);font-weight:700;font-size:1.16rem;color:var(--ink);line-height:1.3;}
.faq__q::after{content:"";position:absolute;right:8px;top:50%;width:12px;height:12px;margin-top:-9px;
  border-right:2px solid var(--flame);border-bottom:2px solid var(--flame);transform:rotate(45deg);transition:transform .24s ease;}
.faq__item.is-open .faq__q::after{transform:rotate(225deg);margin-top:-3px;}
.faq__a{max-height:0;overflow:hidden;transition:max-height .3s ease;}
.faq__item.is-open .faq__a{max-height:460px;}
.faq__a p{padding:0 40px 24px 0;color:var(--ink-muted);font-size:.99rem;}

/* ---------- Service area ---------- */
.areas{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px;}
.areas span{background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius);padding:9px 15px;font-size:.88rem;font-weight:500;}
.section--ink .areas span{background:rgba(245,242,236,.06);border-color:var(--rule-dark);color:var(--bone);}

/* ---------- CTA band ---------- */
.cta{position:relative;background:var(--ink);color:var(--bone);padding:var(--section-y) 0;overflow:hidden;}
.cta__media{position:absolute;inset:0;}
.cta__media img{width:100%;height:100%;object-fit:cover;opacity:.28;}
.cta__media::after{content:"";position:absolute;inset:0;background:linear-gradient(94deg,rgba(11,11,12,.95),rgba(11,11,12,.66));}
.cta .container{position:relative;z-index:2;display:grid;grid-template-columns:1.02fr .98fr;gap:56px;align-items:center;}
.cta__title{font-size:clamp(1.75rem,3.3vw,2.6rem);color:var(--paper);margin:14px 0 18px;text-transform:uppercase;letter-spacing:.005em;font-weight:800;}
.cta__text{font-size:1.06rem;color:rgba(245,242,236,.82);margin-bottom:26px;}
.cta__points{list-style:none;display:grid;gap:12px;}
.cta__points li{display:flex;align-items:flex-start;gap:12px;font-size:1rem;}
.cta__points svg{width:19px;height:19px;color:var(--flame-soft);flex-shrink:0;margin-top:3px;}
@media(max-width:1080px){.cta .container{grid-template-columns:1fr;gap:38px;}.cta .leadform{max-width:520px;}}

/* ---------- Footer ---------- */
.footer{background:var(--ink);color:rgba(245,242,236,.72);}
.footer__trust{border-bottom:1px solid var(--ink-line);}
.footer__trust .container{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:0;padding-top:22px;padding-bottom:22px;}
.fbadge{display:flex;align-items:center;gap:9px;padding:4px 26px;font-size:.84rem;font-weight:600;color:rgba(245,242,236,.86);position:relative;}
.fbadge svg{width:17px;height:17px;color:var(--flame);}
.fbadge:not(:last-child)::after{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);width:1px;height:18px;background:var(--ink-line);}
.footer__grid{display:grid;grid-template-columns:1.35fr .95fr .95fr 1.05fr;gap:48px;
  align-items:start;padding:58px 0 46px;}
.footer__col{min-width:0;}
.footer__col a.btn{color:var(--on-accent);}  /* .footer__col a beats .btn--flame on specificity */
.footer__cta{margin-top:18px;padding:15px 26px;font-size:.74rem;}
.footer__logo{height:44px;width:auto;margin-bottom:20px;}
.footer__tagline{font-family:var(--f-display);font-weight:700;font-size:.78rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--flame);margin:-8px 0 14px;}
.footer__about{font-size:.92rem;line-height:1.7;margin-bottom:20px;}
.footer__col h3{font-family:var(--f-body);font-weight:800;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--paper);margin-bottom:16px;}
.footer__col a,.footer__col p{display:block;font-size:.92rem;color:rgba(245,242,236,.72);padding:5px 0;transition:color .14s ease;}
.footer__col a:hover{color:var(--flame-soft);}
.footer__phone{font-family:var(--f-display);font-weight:700;font-size:1.6rem;color:var(--paper)!important;padding:2px 0!important;}
.footer__note{font-size:.76rem;color:rgba(245,242,236,.5);margin-top:10px;}

/* Service-area coverage band. It used to live inside the contact column, which ran
   that column 260px taller than the other three and left the footer visibly lopsided.
   Full width, it balances the grid and reads as a stronger local signal. */
.footer__areas{display:grid;grid-template-columns:.8fr 2fr;gap:40px;align-items:start;
  padding:34px 0 44px;border-top:1px solid var(--ink-line);}
.footer__areas h3{font-family:var(--f-body);font-weight:800;font-size:.74rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--paper);margin-bottom:10px;}
.footer__areas-label p{font-size:.88rem;color:rgba(245,242,236,.6);line-height:1.6;max-width:320px;}
.footer__areas-list{display:flex;flex-wrap:wrap;gap:9px;}
.footer__areas-list a{font-size:.85rem;font-weight:500;color:rgba(245,242,236,.76);
  background:rgba(245,242,236,.05);border:1px solid var(--rule-dark);border-radius:var(--radius);
  padding:8px 14px;transition:background .14s ease,color .14s ease,border-color .14s ease;}
.footer__areas-list a:hover{background:var(--flame-btn);border-color:var(--flame-btn);color:var(--on-accent);}
@media(max-width:900px){.footer__areas{grid-template-columns:1fr;gap:22px;padding:28px 0 34px;}}
@media(max-width:600px){.footer__areas-list a{font-size:.8rem;padding:7px 12px;}}
.footer__bar{border-top:1px solid var(--ink-line);}
.footer__bar .container{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;padding-top:22px;padding-bottom:22px;font-size:.82rem;}
.totop{display:inline-flex;align-items:center;gap:8px;color:rgba(245,242,236,.72);font-weight:600;}
.totop:hover{color:var(--paper);}
.totop svg{width:15px;height:15px;color:var(--flame-soft);}
.footer__social{display:flex;gap:10px;}
.footer__social a{width:38px;height:38px;border-radius:50%;background:rgba(245,242,236,.08);display:flex;align-items:center;justify-content:center;transition:background .15s ease;}
.footer__social a:hover{background:var(--flame);}
.footer__social a:hover svg{color:var(--on-accent);}
.footer__social svg{width:17px;height:17px;color:var(--bone);}
@media(max-width:980px){
  .footer__grid{grid-template-columns:1fr 1fr;gap:34px 40px;}
  /* brand and contact span the full width so neither leaves a dead half-row */
  .footer__col:first-child,.footer__col:last-child{grid-column:1 / -1;}
}
/* the contact row only goes horizontal where there is room for it; on a phone the
   grid is already single-column and this would cram phone, email and CTA onto one line */
@media(min-width:601px) and (max-width:980px){
  .footer__col:last-child{display:flex;flex-wrap:wrap;align-items:center;gap:6px 28px;}
  .footer__col:last-child h4{flex:0 0 100%;margin-bottom:4px;}
  .footer__col:last-child .footer__note{flex:0 0 100%;order:3;margin-top:0;}
  .footer__cta{margin-top:0;margin-left:auto;}
}
@media(max-width:600px){.footer__cta{width:100%;}}
@media(max-width:600px){
  .footer__grid{grid-template-columns:1fr;padding:40px 0;}
  .footer__trust .container{gap:10px 0;}
  .fbadge{padding:4px 14px;}
  .fbadge:not(:last-child)::after{display:none;}
  .footer__bar .container{justify-content:center;text-align:center;}
}

/* ---------- Mobile action bar ---------- */
.action-bar{display:none;}
@media(max-width:780px){
  .action-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:80;background:var(--ink);box-shadow:0 -6px 20px rgba(0,0,0,.4);}
  .action-bar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 6px;
    color:var(--bone);font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-right:1px solid var(--ink-line);}
  .action-bar a:last-child{border-right:0;}
  .action-bar a.is-primary{background:var(--flame-btn);color:var(--on-accent);}
  .action-bar svg{width:19px;height:19px;}
  body{padding-bottom:62px;}
}

/* ---------- Placeholder flag (demo only) ---------- */
.demo-flag{background:var(--ink-3);color:var(--flame);font-family:var(--f-body);font-weight:700;font-size:.76rem;
  letter-spacing:.06em;text-align:center;padding:9px 20px;}
.demo-flag b{text-transform:uppercase;letter-spacing:.14em;}

/* ---------- Landing page variants ---------- */
.lp-header{background:var(--ink);border-bottom:1px solid var(--ink-line);}
.lp-header .container{display:flex;align-items:center;justify-content:space-between;gap:20px;height:78px;}
.lp-header__phone{display:flex;align-items:center;gap:9px;font-family:var(--f-display);font-weight:700;font-size:1.3rem;color:var(--paper);}
.lp-header__phone svg{width:17px;height:17px;color:var(--flame);}
@media(max-width:600px){.lp-header .container{height:64px;}.lp-header__phone{font-size:1.05rem;}}

/* ---------- Inner page hero ---------- */
.page-hero{position:relative;background:var(--ink);color:var(--bone);padding:78px 0;overflow:hidden;}
.page-hero__media{position:absolute;inset:0;}
.page-hero__media img{width:100%;height:100%;object-fit:cover;opacity:.4;}
.page-hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(96deg,rgba(11,11,12,.94),rgba(11,11,12,.6));}
.page-hero .container{position:relative;z-index:2;}
.page-hero__h1{font-family:var(--f-body);font-weight:700;font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;color:var(--flame-soft);margin-bottom:16px;}
.page-hero__h2{font-family:var(--f-display);font-weight:800;font-size:clamp(1.95rem,3.8vw,3rem);line-height:1.12;text-transform:uppercase;letter-spacing:.005em;color:var(--paper);margin-bottom:18px;max-width:820px;}
.page-hero__lead{font-size:1.08rem;color:rgba(245,242,236,.84);max-width:640px;margin-bottom:26px;}
.crumbs{font-size:.8rem;color:rgba(245,242,236,.55);margin-bottom:20px;}
.crumbs a:hover{color:var(--flame-soft);}
@media(max-width:600px){.page-hero{padding:48px 0;}}

/* ---------- Prose ---------- */
.prose{max-width:760px;}
.prose h2,.prose h3{font-size:1.6rem;margin:34px 0 12px;}
.prose h2:first-child,.prose h3:first-child{margin-top:0;}
.prose p{margin-bottom:16px;color:var(--ink-muted);}
.prose strong{color:var(--ink);}
.prose ul{list-style:none;display:grid;gap:11px;margin:0 0 20px;}
.prose ul li{display:flex;align-items:flex-start;gap:11px;color:var(--ink-muted);}
.prose ul svg{width:18px;height:18px;color:var(--flame);flex-shrink:0;margin-top:4px;}

/* ---------- Reveal ---------- */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease;}
.reveal.is-in{opacity:1;transform:none;}
.svc-grid .svc:nth-child(2){transition-delay:.08s}
.svc-grid .svc:nth-child(3){transition-delay:.16s}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.01ms!important;}
  .reveal{opacity:1!important;transform:none!important;}
}
@media(max-width:600px){
  :root{--section-y:var(--section-y-sm);}
  .section__head{margin-bottom:34px;}
  /* long CTA labels must never set the page's scroll width */
  .btn{white-space:normal;text-align:center;padding-left:24px;padding-right:24px;max-width:100%;}
}
