@font-face{font-family:'Bebas Neue';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/bebas-neue.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/barlow-condensed-700.woff2') format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/barlow-700.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/inter-400.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/inter-600.woff2') format('woff2')}

/* ============================================================
   CHICAGO FLEET WRAPS — UNIFIED DESIGN SYSTEM v2
   Merges cfwforever raw power with wrap-artist-studio polish
   Brand: Gold #FFD700 · Black #0A0A0A · Surface #16181A
   Type: Bebas Neue (display) · Barlow Condensed (headings) · Inter (body)
   ALL CONTENT IS STATIC HTML — FULLY GOOGLE-CRAWLABLE
   ============================================================ */

/* ── DESIGN TOKENS ─────────────────────────────────────────── */
:root{
  --gold:#FFD700;--gold-dark:#e6c200;--gold-glow:rgba(245,197,24,.18);
  --black:#0A0A0A;--surface:#16181A;--dark:#1C1C1C;--steel:#242424;--card-bg:#1a1c1e;
  --text:rgba(255,255,255,.92);--muted:rgba(255,255,255,.55);--subtle:rgba(255,255,255,.35);
  --border:rgba(255,255,255,.10);--border-hover:rgba(255,255,255,.22);--border-gold:rgba(245,197,24,.25);
  --H:'Barlow Condensed','Barlow Condensed Fallback',sans-serif;
  --B:'Barlow Condensed','Barlow','Barlow Fallback',sans-serif;
  --D:'Bebas Neue','Barlow Condensed',sans-serif;
  --radius:12px;--radius-lg:20px;--radius-xl:28px;
  --shadow-sm:0 2px 8px rgba(0,0,0,.35);--shadow-md:0 4px 20px rgba(0,0,0,.45);
  --shadow-lg:0 8px 40px rgba(0,0,0,.6);--shadow-gold:0 4px 24px rgba(245,197,24,.25);
}

/* ── RESET ──────────────────────────────────────────────────── */
*{margin:0;padding:0;box-sizing:border-box}
h1{font-family:var(--H);font-size:clamp(2.4rem,5.5vw,3.8rem);font-weight:900;color:#fff;line-height:1.02;letter-spacing:.01em;text-transform:uppercase}
html{scroll-behavior:smooth;overflow-x:hidden}
body{background:var(--black);color:var(--text);font-family:var(--B);font-size:16px;line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}

/* ── PERFORMANCE ────────────────────────────────────────────── */
.sec,.ctab,footer{content-visibility:auto;contain-intrinsic-size:auto 600px}
.sc img,.pi img,.simg img{aspect-ratio:auto;height:auto}
.sc img{aspect-ratio:10/3;height:120px}

/* ── TRUST RIBBON ───────────────────────────────────────────── */
.trib{position:sticky;top:0;z-index:10000;background:#111;border-bottom:1px solid var(--border);padding:7px 0;overflow:hidden;white-space:nowrap}
.trib-inner{display:inline-flex;gap:40px;animation:ticker 35s linear infinite}
.trib-inner span{font-size:.74rem;color:rgba(255,255,255,.5);font-family:var(--H);font-weight:600;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
.trib-inner span strong{color:var(--gold)}
@keyframes ticker{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ── HEADER ─────────────────────────────────────────────────── */
header{position:sticky;top:30px;z-index:9999;isolation:isolate;background:rgba(10,10,10,.96);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);will-change:transform;overflow:visible}
.hbar{flex-wrap:nowrap;max-width:1400px;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:20px;height:64px;overflow:visible}
.logo{font-family:var(--H);font-size:1.25rem;font-weight:900;color:#fff;cursor:pointer;flex-shrink:0;letter-spacing:.02em}
.logo span{color:var(--gold)}
nav{display:flex;flex-wrap:nowrap;align-items:center;gap:4px;margin-left:10px}
.ni{position:relative}
.ni>button{background:none;border:none;color:rgba(255,255,255,.72);font-family:var(--B);font-size:.84rem;padding:8px 12px;cursor:pointer;border-radius:8px;transition:.15s;display:flex;align-items:center;gap:4px;min-height:44px;letter-spacing:.01em}
.ni>button:hover,.ni>button.act{color:#fff;background:rgba(255,255,255,.07)}
.ni>button svg{opacity:.55;transition:.15s}
.ni:hover>button svg{opacity:1}
.drop{display:none;position:absolute;top:calc(100% + 4px);left:0;background:#181818;border:1px solid var(--border);border-radius:var(--radius);padding:6px;min-width:220px;box-shadow:var(--shadow-lg);z-index:200}
.drop::before{content:'';position:absolute;top:-10px;left:0;right:0;height:10px}
.ni:hover .drop{display:block}
.drop a{display:block;padding:9px 12px;color:rgba(255,255,255,.72);font-size:.82rem;border-radius:8px;cursor:pointer;text-decoration:none;transition:.12s}
.drop a:hover{background:rgba(255,255,255,.07);color:#fff}
.drop hr{border:none;border-top:1px solid var(--border);margin:4px 0}
.hright{margin-left:auto;display:flex;align-items:center;gap:10px}
.hphone{color:var(--gold);font-family:var(--H);font-weight:800;font-size:.95rem;text-decoration:none;letter-spacing:.12em}
.hphone:hover{color:#fff}
.hsm{display:flex;align-items:center;gap:8px}
.hsm a{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:rgba(255,255,255,.06);border:1px solid var(--border);transition:.15s;text-decoration:none}
.hsm a:hover{background:rgba(255,255,255,.12);border-color:var(--border-hover)}
.hsm svg{display:block}
.gmb-header{display:flex;align-items:center;gap:6px;padding:5px 12px;background:rgba(245,197,24,.08);border:1px solid var(--border-gold);border-radius:20px;text-decoration:none;cursor:pointer;transition:.15s}
.gmb-header:hover{background:rgba(245,197,24,.14);border-color:rgba(245,197,24,.4)}
.gmb-header svg{flex-shrink:0}
.gmb-header span{font-size:.74rem;font-weight:700;color:var(--gold);font-family:var(--H);letter-spacing:.04em}
.gmb-header small{font-size:.68rem;color:rgba(255,255,255,.6);display:block;line-height:1;min-width:7ch}
.gmb-header .gs{color:var(--gold);font-size:.8rem}
.hambtn{display:none;background:none;border:1px solid var(--border);color:#fff;padding:8px 12px;border-radius:8px;cursor:pointer;font-size:.9rem}

/* ── CLIENT MARQUEE ─────────────────────────────────────────── */
@keyframes marqueeScroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.client-badge{font-family:var(--H);font-weight:700;font-size:1.1rem;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.6);white-space:nowrap;padding:8px 0;transition:color .3s}
.client-badge:hover{color:var(--gold)}
.client-marquee:hover{animation-play-state:paused}

/* ── BUTTONS ────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 26px;border-radius:var(--radius);font-family:var(--H);font-size:.95rem;font-weight:800;cursor:pointer;text-decoration:none;border:2px solid transparent;transition:all .18s cubic-bezier(.4,0,.2,1);letter-spacing:.03em}
.btn.bg{background:var(--gold);color:#000;border-color:var(--gold)}
.btn.bg:hover{background:#e6b800;border-color:#e6b800;transform:translateY(-2px);box-shadow:var(--shadow-gold)}
.btn.bo{background:transparent;border-color:rgba(255,255,255,.22);color:#fff}
.btn.bo:hover{border-color:var(--gold);color:var(--gold);background:rgba(245,197,24,.06)}
.pulse{animation:pulse 2.4s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(245,197,24,.4)}60%{box-shadow:0 0 0 14px rgba(245,197,24,0)}}

/* ── SECTIONS ───────────────────────────────────────────────── */
.sec{padding:72px 0}
.sec.sd{background:var(--dark)}
.sec.sb{background:var(--surface)}
.w{max-width:1140px;margin:0 auto;padding:0 24px}
.lbl{display:inline-block;font-family:var(--H);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--gold);background:rgba(245,197,24,.1);border:1px solid var(--border-gold);padding:4px 12px;border-radius:20px;margin-bottom:12px}
.sh{margin-bottom:28px}
.sh h2{font-family:var(--H);font-size:2.1rem;font-weight:900;line-height:1.12;color:#fff;letter-spacing:.01em}
.shc{text-align:center}
.shc h2{font-size:2.4rem}
.lead{font-size:1.05rem;color:rgba(255,255,255,.75);line-height:1.72;font-family:var(--B)}

/* ── GRIDS ──────────────────────────────────────────────────── */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
.g3{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.simg img{border-radius:var(--radius-lg);width:100%;object-fit:cover;box-shadow:var(--shadow-md)}

/* ── CARDS ──────────────────────────────────────────────────── */
.card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px;transition:all .2s cubic-bezier(.4,0,.2,1)}
.card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-md);transform:translateY(-3px)}
.card-gold{border-color:var(--border-gold);background:rgba(245,197,24,.04)}
.card-gold:hover{border-color:rgba(245,197,24,.45);box-shadow:var(--shadow-gold)}

/* ── STAT COUNTERS ──────────────────────────────────────────── */
.cstat{background:#111;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.ccols{display:grid;grid-template-columns:repeat(4,1fr);gap:0;text-align:center}
.cc{padding:32px 20px;border-right:1px solid var(--border)}
.cc:last-child{border-right:none}
.cc.cw{background:var(--steel);border-radius:var(--radius);border:1px solid var(--border)}
.cn{display:block;font-family:var(--H);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px}
.cv{display:block;font-family:var(--D);font-size:3rem;font-weight:400;color:var(--gold);line-height:1;min-width:4ch;letter-spacing:.02em}
.cs{display:block;font-size:.74rem;color:var(--muted);margin-top:5px;line-height:1.45}

/* ── REVIEW GRID ────────────────────────────────────────────── */
.rev-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.rv{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;transition:all .2s ease}
.rv:hover{border-color:var(--border-gold);transform:translateY(-2px);box-shadow:var(--shadow-md)}
.rv .rn{color:var(--gold);font-size:1rem;margin-bottom:10px}
.rv p{font-size:.85rem;color:rgba(255,255,255,.75);line-height:1.68;margin-bottom:12px;font-style:italic}
.rv strong{font-size:.78rem;color:rgba(255,255,255,.6)}

/* ── REVIEW CARDS (.rev-card structure used on homepage) ─────── */
.rev-card{
  background:#111;
  border:1px solid rgba(255,255,255,.08);
  border-top:3px solid var(--gold);
  border-radius:var(--radius-lg);
  padding:22px 22px 20px;
  display:flex;
  flex-direction:column;
  gap:14px;
  transition:all .2s ease;
  position:relative;
}
.rev-card:hover{
  border-color:rgba(255,255,255,.12);
  border-top-color:var(--gold);
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(0,0,0,.35);
}
.rev-card .rev-header{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.rev-card .rev-avatar{
  width:42px;
  height:42px;
  border-radius:50%;
  background:linear-gradient(135deg,var(--gold) 0%,#c9a516 100%);
  color:#0A0A0A;
  font-family:var(--H);
  font-weight:900;
  font-size:.95rem;
  letter-spacing:.02em;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.rev-card .rev-meta{
  display:flex;
  flex-direction:column;
  gap:1px;
  flex:1;
  min-width:0;
}
.rev-card .rev-name{
  font-family:var(--H);
  font-size:.98rem;
  font-weight:700;
  color:#fff;
  letter-spacing:.01em;
  line-height:1.2;
}
.rev-card .rev-date{
  font-family:'Barlow Condensed',sans-serif;
  font-size:.78rem;
  color:rgba(255,255,255,.6);
  letter-spacing:.04em;
  text-transform:uppercase;
}
.rev-card .rev-stars{
  color:var(--gold);
  font-size:.95rem;
  letter-spacing:.05em;
  margin-left:auto;
  flex-shrink:0;
}
.rev-card .rev-text{
  color:rgba(255,255,255,.82);
  font-size:.93rem;
  line-height:1.65;
  margin:0;
  font-style:italic;
}

.gmb-stars{font-size:1.4rem;color:var(--gold);margin-bottom:4px}
.gmb-stars strong{color:#fff;font-size:1rem;margin-left:4px}
.gmb-strip{background:rgba(245,197,24,.05);border:1px solid var(--border-gold);border-radius:var(--radius);padding:14px 20px;display:inline-block}

/* ── GMB WIDGET ─────────────────────────────────────────────── */
.gmb{margin-top:20px}
.gmbi{background:var(--steel);border:1px solid rgba(245,197,24,.15);border-radius:var(--radius);padding:18px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.gmbr{display:flex;align-items:center;gap:6px}
.gmbs{color:var(--gold);font-size:1.2rem}
.gmbn{font-family:var(--H);font-size:1.5rem;font-weight:900;color:#fff}
.gmbc{font-size:.75rem;color:var(--muted);font-family:var(--H)}
.gmbp{flex:1}
.gmbp strong{display:block;color:#fff;font-size:.9rem}
.gmbp span{font-size:.75rem;color:var(--muted)}
.gmbl{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--gold);color:#000;border-radius:8px;font-family:var(--H);font-weight:800;font-size:.82rem;text-decoration:none;transition:.15s;white-space:nowrap}
.gmbl:hover{background:#e6b800}

/* ── NAV SERVICE GRID ───────────────────────────────────────── */
.sgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.sc{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:18px;cursor:pointer;transition:all .18s ease;display:flex;flex-direction:column;gap:6px}
.sc:hover{border-color:var(--gold);background:rgba(245,197,24,.04)}
.sc .sci{font-size:1.4rem}
.sc strong{font-family:var(--H);font-size:.95rem;font-weight:800;color:#fff}
.sc span{font-size:.78rem;color:var(--muted)}
.igrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.ic{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;cursor:pointer;transition:.18s;font-family:var(--H);font-size:.9rem;font-weight:700;color:rgba(255,255,255,.7);text-align:center}
.ic:hover{border-color:var(--gold);color:var(--gold)}

/* ── PROCESS STEPS (studio grid style) ─────────────────────── */
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.process-step{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:all .22s ease;position:relative}
.process-step:hover{border-color:var(--border-gold);transform:translateY(-4px);box-shadow:var(--shadow-gold)}
.process-step img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.process-step-body{padding:18px 20px}
.process-num{position:absolute;top:12px;right:12px;background:var(--gold);color:#000;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--H);font-weight:900;font-size:.95rem;box-shadow:var(--shadow-sm)}
.process-step-body h3{font-family:var(--H);font-size:1.1rem;font-weight:800;color:#fff;margin-bottom:6px}
.process-step-body p{font-size:.82rem;color:var(--muted);line-height:1.55}
/* legacy vertical process steps */
.psteps{display:flex;flex-direction:column;gap:0}
.ps{display:flex;gap:20px;align-items:flex-start;padding:20px 0;border-bottom:1px solid var(--border)}
.ps:last-child{border-bottom:none}
.psn{width:36px;height:36px;background:var(--gold);color:#000;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--H);font-weight:900;font-size:1rem;flex-shrink:0}
.ps strong{display:block;margin-bottom:6px;font-family:var(--H);font-size:.95rem;font-weight:800;color:#fff}
.ps p{font-size:.84rem;color:rgba(255,255,255,.55);margin:0;line-height:1.65}

/* ── GALLERY / PORTFOLIO ────────────────────────────────────── */
.pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.pgrid.sm{grid-template-columns:repeat(4,1fr)}
.pi{position:relative;overflow:hidden;border-radius:var(--radius-lg);aspect-ratio:4/3;cursor:pointer}
.pi img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.4,0,.2,1)}
.pi:hover img{transform:scale(1.07)}
.pcap,.pi-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.82));padding:16px 14px 12px;font-size:.78rem;font-family:var(--H);font-weight:700;color:#fff;transform:translateY(4px);transition:.2s}
.pi:hover .pcap,.pi:hover .pi-overlay{transform:translateY(0)}

/* ── PRICING TABLE ──────────────────────────────────────────── */
.ptw{overflow-x:auto;margin-top:20px}
.pt,.ptable{width:100%;border-collapse:collapse;font-size:.86rem}
.pt th,.ptable th{background:var(--gold);color:#000;font-family:var(--H);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;padding:12px 16px;text-align:left}
.pt th:first-child,.ptable th:first-child{border-radius:var(--radius) 0 0 0}
.pt th:last-child,.ptable th:last-child{border-radius:0 var(--radius) 0 0}
.pt td,.ptable td{padding:12px 14px;border-bottom:1px solid var(--border);color:rgba(255,255,255,.82);vertical-align:top;font-family:var(--B)}
.pt tr:last-child td,.ptable tr:last-child td{border-bottom:none}
.pt tr:nth-child(even) td,.ptable tr:nth-child(even) td{background:rgba(255,255,255,.03)}
.pt tr:hover td,.ptable tr:hover td{background:rgba(245,197,24,.05)}
.pt td:first-child,.ptable td:first-child{font-weight:600;color:#fff}
.pc,.ptable td strong{font-family:var(--H);font-size:1rem;font-weight:800;color:var(--gold)}
.ptnote{font-size:.75rem;color:rgba(255,255,255,.6);margin-top:10px;line-height:1.6}

/* ── TRUST BADGES ───────────────────────────────────────────── */
.tbadges{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.tb,.tbadge{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:20px;transition:all .18s ease}
.tb:hover,.tbadge:hover{border-color:var(--border-gold);box-shadow:var(--shadow-gold)}
.tb{display:flex;align-items:center;gap:12px}
.tbi,.tbadge-icon{font-size:1.6rem;flex-shrink:0;display:block;margin-bottom:8px}
.tb .tbi{margin-bottom:0}
.tb div{display:flex;flex-direction:column}
.tb strong,.tbadge h4{font-family:var(--H);font-size:.88rem;font-weight:800;color:#fff;margin-bottom:4px}
.tb span,.tbadge p{font-size:.74rem;color:var(--muted)}

/* ── AEO ANSWER BLOCKS ──────────────────────────────────────── */
.aeo-block{background:var(--card-bg);border:1px solid var(--border);border-left:3px solid var(--gold);border-radius:0 var(--radius) var(--radius) 0;padding:22px 24px;margin-bottom:16px;transition:border-color .18s}
.aeo-block:hover{border-color:var(--border-gold);border-left-color:var(--gold)}
.aeo-block h2{font-family:var(--H);font-size:1.15rem;font-weight:800;color:#fff;margin-bottom:10px;letter-spacing:.01em}
.aeo-answer{font-size:.9rem;color:rgba(255,255,255,.78);line-height:1.72;font-family:var(--B)}

/* ── FAQ ────────────────────────────────────────────────────── */
.fl,.faq-list{display:flex;flex-direction:column;gap:8px;list-style:none;padding:0}
.fi,.fq-item{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:border-color .18s}
.fi:hover,.fq-item:hover{border-color:var(--border-hover)}
.fq{width:100%;background:none;border:none;color:#fff;text-align:left;padding:16px 18px;cursor:pointer;font-family:var(--H);font-size:.95rem;font-weight:700;display:flex;justify-content:space-between;align-items:center;gap:12px;transition:.15s;min-height:48px}
.fq:hover{color:var(--gold)}
.fq .ico{color:var(--gold);font-size:1.2rem;flex-shrink:0;transition:transform .2s}
.fq.open .ico{transform:rotate(45deg)}
.fi[open],.fq-item[open]{border-color:var(--border-gold)}
.fi[open] summary,.fq-item[open] summary{color:var(--gold)}
.fa{display:none;padding:4px 18px 16px;border-top:1px solid var(--border)}
.fa p{font-size:.86rem;color:rgba(255,255,255,.72);line-height:1.7;margin:0}
.fa.vis{display:block}

/* ── SOCIAL HUB ─────────────────────────────────────────────── */
.sm-hub{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;max-width:860px;margin:0 auto}
.sm-card{display:flex;align-items:center;gap:14px;padding:18px 20px;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);text-decoration:none;color:#fff;transition:all .18s ease}
.sm-card:hover{border-color:var(--border-hover);background:#2a2a2a;transform:translateY(-3px);box-shadow:var(--shadow-md)}
.sm-card div{flex:1}
.sm-card strong{display:block;font-family:var(--H);font-size:.95rem;font-weight:800;color:#fff}
.sm-card span{font-size:.75rem;color:var(--muted)}
.sm-arr{color:var(--gold);font-size:1rem}
.ft-sm{display:flex;gap:10px;margin-top:16px}
.ft-sm a{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:rgba(255,255,255,.07);border:1px solid var(--border);border-radius:8px;transition:.15s;text-decoration:none}
.ft-sm a:hover{background:rgba(245,197,24,.15);border-color:rgba(245,197,24,.3)}
.ft-sm svg{display:block;width:18px;height:18px}
.smico{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--steel);border:1px solid var(--border);border-radius:8px;color:#fff;text-decoration:none;font-size:.82rem;font-family:var(--H);font-weight:700;transition:.15s}
.smico:hover{border-color:var(--border-hover);background:#2a2a2a}
.smb{margin-top:20px}

/* ── HERO ───────────────────────────────────────────────────── */
.hero{position:relative;min-height:calc(90vh - 64px);display:flex;align-items:center;overflow:hidden}
.hero-static-bg{position:absolute;inset:0;z-index:0}
.hero-static-bg img{width:100%;height:100%;object-fit:cover;object-position:center}
.overlay-gradient{position:absolute;inset:0;z-index:1;background:linear-gradient(105deg,rgba(0,0,0,.88) 0%,rgba(0,0,0,.65) 55%,rgba(0,0,0,.35) 100%)}
.slide-content{position:relative;z-index:3;padding:0 24px;max-width:1140px;margin:0 auto;width:100%}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--H);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--gold);background:rgba(245,197,24,.1);border:1px solid var(--border-gold);padding:5px 14px;border-radius:20px;margin-bottom:20px}
.headline{font-family:var(--D);font-size:clamp(3rem,7vw,6.5rem);font-weight:400;line-height:.96;color:#fff;letter-spacing:.02em;text-shadow:0 4px 32px rgba(0,0,0,.5);margin-bottom:8px}
.headline span{color:var(--gold)}
.subline{font-family:var(--H);font-size:clamp(1.1rem,2.5vw,1.6rem);font-weight:600;color:rgba(255,255,255,.78);letter-spacing:.04em;margin-bottom:28px;line-height:1.3}
.hbtns{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px}
.accent-bar{position:absolute;bottom:0;left:0;right:0;z-index:2;height:4px;background:linear-gradient(90deg,var(--gold) 0%,transparent 100%);transform-origin:left}
.accent-bar.top{top:0;bottom:auto;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.scanlines{position:absolute;inset:0;z-index:2;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.04) 2px,rgba(0,0,0,.04) 4px);pointer-events:none}
.diag-stripe{position:absolute;bottom:0;right:0;z-index:2;width:35%;height:100%;background:linear-gradient(135deg,transparent 40%,rgba(245,197,24,.04) 100%);pointer-events:none}

/* ── PAGE HERO BANNER (suburb/service pages) ────────────────── */
.ph,.page-hero-banner{position:relative;min-height:580px;display:flex;align-items:flex-end;overflow:hidden;background:var(--dark)}
.page-hero-banner .w{padding-top:80px}
.ph img,.hbg,.page-hero-banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 55%;z-index:0}
.ph::after,.page-hero-banner::after{content:'';position:absolute;inset:0;z-index:1;z-index:2;max-width:1140px;margin:0 auto;padding:48px 24px 40px;width:100%}
.phi h1,.page-hero-banner .hero-h2{font-family:var(--D);font-size:clamp(2.2rem,5vw,3.8rem);font-weight:400;color:#fff;margin:0;line-height:1.05;text-shadow:0 2px 16px rgba(0,0,0,.5);letter-spacing:.02em}
.phi h1 span,.page-hero-banner .hero-h2 span{color:var(--gold)}
.phi p,.page-hero-banner .hero-sub{font-family:var(--H);font-size:1.23rem;font-weight:600;color:rgba(255,255,255,.72);margin-top:10px;letter-spacing:.03em}
.breadcrumb{display:flex;align-items:center;gap:6px;font-size:.75rem;color:rgba(255,255,255,.6);font-family:var(--B);margin-bottom:12px}
.breadcrumb a{color:rgba(255,255,255,.6);text-decoration:none;transition:.12s}
.breadcrumb a:hover{color:var(--gold)}
.breadcrumb span{color:rgba(255,255,255,.6)}
.ebar{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 8px}
.ebi{font-family:var(--H);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:rgba(255,255,255,.5);background:rgba(255,255,255,.06);border:1px solid var(--border);border-radius:20px;padding:5px 12px}

/* ── SERVICE AREA LINKS ─────────────────────────────────────── */
.rlinks{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.rlink{background:rgba(255,255,255,.04);border:1px solid var(--border);color:rgba(255,255,255,.87);padding:9px 18px;border-radius:var(--radius);font-family:var(--H);font-size:.82rem;font-weight:700;cursor:pointer;transition:all .15s ease;text-decoration:none;letter-spacing:.02em}
.rlink:hover{border-color:var(--gold);color:var(--gold);background:rgba(245,197,24,.06)}

/* ── CTA BANNER ─────────────────────────────────────────────── */
.ctab{background:linear-gradient(135deg,var(--dark) 0%,#1a1400 100%);border-top:1px solid var(--border-gold);border-bottom:1px solid var(--border-gold);padding:56px 0}
.ctai{display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap}
.ctai h2{font-family:var(--D);font-size:clamp(2rem,4vw,3.2rem);font-weight:400;color:#fff;letter-spacing:.03em;line-height:1.05}
.ctai h2 span{color:var(--gold)}
.ctai p{font-size:.95rem;color:rgba(255,255,255,.7);margin-top:8px;font-family:var(--B)}

/* ── LISTS ──────────────────────────────────────────────────── */
.cl2{list-style:none;padding:0;display:flex;flex-direction:column;gap:8px}
.cl2 li{font-size:.88rem;color:rgba(255,255,255,.82);padding-left:18px;position:relative;line-height:1.55}
.cl2 li::before{content:"\2713";position:absolute;left:0;color:var(--gold);font-weight:700}

/* ── CONTACT BOXES ──────────────────────────────────────────── */
.cbox{display:flex;gap:14px;align-items:flex-start;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:16px}
.clab{font-family:var(--H);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:3px}

/* ── FORM ───────────────────────────────────────────────────── */
.flbl{display:block;font-family:var(--H);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:rgba(255,255,255,.6);margin-bottom:6px}
.finp{width:100%;background:var(--black);border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:11px 14px;color:#fff;font-family:var(--B);font-size:.9rem;transition:.15s;outline:none}
.finp:focus{border-color:var(--gold)}
textarea.finp{min-height:120px}

/* ── ABOUT ──────────────────────────────────────────────────── */
.astat{background:rgba(245,197,24,.06);border:1px solid rgba(245,197,24,.15);border-radius:var(--radius-lg);padding:28px;margin:28px 0}

/* ── BEFORE/AFTER SLIDER ────────────────────────────────────── */
.ba-slider{position:relative;width:100%;max-width:900px;margin:0 auto;aspect-ratio:16/9;overflow:hidden;border-radius:var(--radius-lg);cursor:col-resize;user-select:none;box-shadow:var(--shadow-lg)}
.ba-before,.ba-after{position:absolute;inset:0;background-size:cover;background-position:center}
.ba-before{clip-path:inset(0 50% 0 0)}
.ba-label{position:absolute;top:16px;font-family:var(--H);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;padding:4px 12px;border-radius:20px}
.ba-label.before-lbl{left:16px;background:rgba(0,0,0,.6);color:rgba(255,255,255,.7)}
.ba-label.after-lbl{right:16px;background:rgba(245,197,24,.9);color:#000}
.ba-handle{position:absolute;top:0;left:50%;transform:translateX(-50%);width:44px;height:100%;display:flex;flex-direction:column;align-items:center;pointer-events:none}
.ba-handle-line{flex:1;width:2px;background:rgba(255,255,255,.9)}
.ba-handle-circle{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:var(--gold);display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 3px rgba(0,0,0,.5),var(--shadow-md)}

/* ── STICKY MOBILE CTA ──────────────────────────────────────── */
.sc2{display:none;position:fixed;bottom:0;left:0;right:0;z-index:990;background:rgba(10,10,10,.97);border-top:1px solid var(--border);padding:10px 16px;gap:10px;backdrop-filter:blur(10px)}
.sc2 a,.sc2 button{flex:1;text-align:center;padding:10px;border-radius:var(--radius);font-family:var(--H);font-weight:800;font-size:.88rem;cursor:pointer}
.sc2 a{background:var(--gold);color:#000;text-decoration:none}
.sc2 button{background:none;border:1px solid var(--border);color:#fff}

/* ── FLOATING PHONE ─────────────────────────────────────────── */
.fp{position:fixed;bottom:80px;right:20px;z-index:980;background:var(--gold);color:#000;width:52px;height:52px;border-radius:50%;display:none;align-items:center;justify-content:center;font-size:1.3rem;text-decoration:none;box-shadow:var(--shadow-gold);transition:.2s}
.fp:hover{transform:scale(1.12)}

/* ── FOOTER ─────────────────────────────────────────────────── */
footer{background:#080808;border-top:2px solid var(--gold);padding:56px 0 28px}
.fg{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:40px;max-width:1140px;margin:0 auto;padding:0 24px}
.fb h4,.fb .footer-heading{font-family:var(--H);font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.6);margin-bottom:14px}
.fb p,.fb a{display:block;font-size:.82rem;color:rgba(255,255,255,.52);text-decoration:none;margin-bottom:6px;line-height:1.5;transition:.12s}
.fb a:hover{color:var(--gold)}
.fbot{max-width:1140px;margin:36px auto 0;padding:20px 24px 0;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.fbot span{font-size:.75rem;color:rgba(255,255,255,.6)}
.fbot .fsm{display:flex;gap:10px}
.fbot .fsm a{color:rgba(255,255,255,.6);font-size:.75rem;text-decoration:none;transition:.12s}
.fbot .fsm a:hover{color:var(--gold)}

/* ── MOBILE NAV ─────────────────────────────────────────────── */
.mnav{display:none;flex-direction:column;gap:2px;padding:12px 16px;background:#111;border-top:1px solid var(--border);overflow-x:hidden}
.mnav.open{display:flex}
.mnav a{padding:10px 14px;color:rgba(255,255,255,.7);font-size:.88rem;border-radius:8px;cursor:pointer;text-decoration:none;display:block}
.mnav a:hover{background:rgba(255,255,255,.06);color:#fff}
.mnav .mg{font-family:var(--H);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.6);padding:10px 14px 4px}

/* ── ANIMATIONS ─────────────────────────────────────────────── */
@keyframes slideUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.animate-slide-up{animation:slideUp .7s cubic-bezier(.4,0,.2,1) both}
.animate-fade-in{animation:fadeIn .6s ease both}
.animate-float{animation:float 5s ease-in-out infinite}

/* ── RESPONSIVE ─────────────────────────────────────────────── */
@media(max-width:1300px){.hright .hsm{display:none}}
@media(max-width:900px){.hright .gmb-header{display:none}}
@media(max-width:1100px){.sm-hub{grid-template-columns:repeat(2,1fr)}.hright .hphone{font-size:.78rem}.ni>button{font-size:.76rem;padding:6px 8px}.hright .btn{font-size:.76rem;padding:7px 14px}.process-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.g2{grid-template-columns:1fr}.g3{grid-template-columns:repeat(2,1fr)}.ccols{grid-template-columns:repeat(2,1fr)}.rev-grid{grid-template-columns:repeat(2,1fr)}.tbadges{grid-template-columns:repeat(2,1fr)}.sgrid{grid-template-columns:repeat(2,1fr)}.igrid{grid-template-columns:repeat(2,1fr)}.process-grid{grid-template-columns:repeat(2,1fr)}.services{grid-template-columns:repeat(2,1fr)}.container ul.services{grid-template-columns:repeat(2,1fr)}.content ul.services{grid-template-columns:repeat(2,1fr)}.container .expertise ul{grid-template-columns:repeat(2,1fr)}.ip-vtype-grid{grid-template-columns:repeat(2,1fr)}.ip-gallery-grid{grid-template-columns:repeat(2,1fr)}.ip-why-list{grid-template-columns:1fr}.team-port-grid{grid-template-columns:repeat(2,1fr)}.pgrid{grid-template-columns:repeat(2,1fr)}.pgrid.sm{grid-template-columns:repeat(2,1fr)}.container .cfw-gallery-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:768px){header{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(10,10,10,.99)}nav{display:none}.hambtn{display:block}.hright .hsm{display:none}.sc2{display:flex}.fp{display:flex}.pgrid,.pgrid.sm{grid-template-columns:repeat(2,1fr)}.sm-hub{grid-template-columns:1fr}.tbadges{grid-template-columns:1fr}.ctai{flex-direction:column;align-items:flex-start}.fg{grid-template-columns:1fr 1fr}.ccols{grid-template-columns:1fr 1fr}.headline{font-size:clamp(2.4rem,9vw,4rem)}.process-grid{grid-template-columns:1fr 1fr}.services{grid-template-columns:repeat(2,1fr)}.rev-grid{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.pgrid,.pgrid.sm{grid-template-columns:1fr}.fg{grid-template-columns:1fr}.hbtns{flex-direction:column}.process-grid{grid-template-columns:1fr}.igrid{grid-template-columns:1fr}.services{grid-template-columns:1fr}.container ul.services{grid-template-columns:1fr}.content ul.services{grid-template-columns:1fr}.container .expertise ul{grid-template-columns:1fr}.ip-vtype-grid{grid-template-columns:1fr}.ip-gallery-grid{grid-template-columns:1fr}.g3{grid-template-columns:1fr 1fr}.rev-grid{grid-template-columns:1fr}.container .cfw-gallery-grid{grid-template-columns:1fr 1fr}.team-port-grid{grid-template-columns:1fr 1fr}}

/* ── ACCESSIBILITY ──────────────────────────────────────────── */
*:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:4px}
.skip-nav{position:absolute;top:-100%;left:50%;transform:translateX(-50%);background:var(--gold);color:#000;padding:12px 24px;z-index:9999;font-family:var(--H);font-weight:800;border-radius:0 0 8px 8px;transition:transform .2s;text-decoration:none}
.skip-nav:focus{top:0}

/* ── REDUCED MOTION ─────────────────────────────────────────── */
@media(prefers-reduced-motion:reduce){*{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important;scroll-behavior:auto!important}.trib-inner{animation:none}}

/* ── HIGH CONTRAST ──────────────────────────────────────────── */
@media(prefers-contrast:high){.btn.bg{border:2px solid #000}.drop{border:2px solid #fff}}

/* ── TOUCH TARGETS (WCAG 2.5.8) ────────────────────────────── */
@media(pointer:coarse){.ni>button{min-height:44px;min-width:44px}.drop a{min-height:44px;display:flex;align-items:center}.mnav a{min-height:44px;display:flex;align-items:center}.btn{min-height:44px}.hambtn{min-height:44px;min-width:44px}.rlink{min-height:44px;display:inline-flex;align-items:center}.fq{min-height:48px}.fp{width:56px;height:56px}}

/* ── PRINT ──────────────────────────────────────────────────── */
@media print{header,.trib,.sc2,.fp,footer,.mnav{display:none!important}body{background:#fff;color:#000}.sec{padding:20px 0}a{color:#000;text-decoration:underline}}

/* -- CLIENT TRUST BADGE BAR -- */
.trust-badge{display:inline-block;padding:5px 12px;border:1px solid rgba(201,168,76,0.25);border-radius:20px;font-family:"Barlow Condensed",sans-serif;font-size:12px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,0.65);background:rgba(201,168,76,0.05);white-space:nowrap;transition:border-color .2s,color .2s}
.trust-badge:hover{border-color:rgba(201,168,76,0.6);color:rgba(255,255,255,0.9)}
/* -- TEAM PORTFOLIO GRID (About page) -- */
.team-section{padding:80px 0;background:var(--surface)}
.team-intro{text-align:center;color:var(--muted);font-size:1.05rem;max-width:700px;margin:0 auto 52px;line-height:1.72}
.team-port-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.team-port-card{background:var(--card-bg);border:1px solid var(--border);border-top:3px solid var(--gold);border-radius:0 0 var(--radius-lg) var(--radius-lg);overflow:hidden;transition:transform .22s,box-shadow .22s}
.team-port-card:hover{transform:translateY(-5px);box-shadow:0 12px 40px rgba(0,0,0,.5),0 0 0 1px var(--border-gold)}
.team-port-img{position:relative;overflow:hidden;background:#111}
.team-port-img img{width:100%;height:auto;object-fit:contain;display:block;transition:transform .4s cubic-bezier(.4,0,.2,1)}
.team-port-card:hover .team-port-img img{transform:scale(1.06)}
.team-port-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 55%,rgba(0,0,0,.55) 100%);pointer-events:none}
.team-port-body{padding:18px 20px 22px;border-top:1px solid var(--border)}
.team-port-role{font-family:var(--H);font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:6px}
.team-port-body h3{font-family:var(--H);font-size:1.3rem;font-weight:800;color:#fff;margin-bottom:10px;letter-spacing:.02em}
.team-port-body p{font-size:.84rem;color:var(--muted);line-height:1.65}
/* team-port 900px handled in main breakpoint */
@media(max-width:560px){.team-port-grid{grid-template-columns:1fr}}

/* ── SERVICE PAGE LAYOUT ────────────────────────────────────── */
.content{max-width:900px;margin:0 auto;padding:60px 24px}
.body-text{font-size:.97rem;color:rgba(255,255,255,.7);line-height:1.7;margin-bottom:18px}
.speakable{font-size:1.05rem;color:rgba(255,255,255,.78);line-height:1.72}
/* ── TRUST / STAT BAR ───────────────────────────────────────── */
.trust{display:flex;flex-wrap:wrap;gap:24px;margin:32px 0;padding:20px;background:rgba(245,197,24,.04);border:1px solid rgba(245,197,24,.12);border-radius:12px}
.trust span{font-size:.85rem;color:rgba(255,255,255,.6)}
.trust strong{color:var(--gold)}
/* ── SERVICES LIST ──────────────────────────────────────────── */
.services{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:16px 0 28px}
.services li{padding:10px 14px;background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:8px;font-size:.93rem;color:rgba(255,255,255,.75)}
.services li strong{color:var(--gold)}
/* ── PRICING TABLE ──────────────────────────────────────────── */
.pricing-table{width:100%;border-collapse:collapse;margin:16px auto 28px}
.pricing-table th,.pricing-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border);font-size:.93rem}
.pricing-table th{color:var(--gold);font-family:var(--H);font-weight:700;background:rgba(245,197,24,.04)}
.pricing-table td{color:rgba(255,255,255,.7)}
.pricing-table tr:hover td{background:rgba(255,255,255,.02)}
/* ── FAQ ITEMS ──────────────────────────────────────────────── */
.faq-item{margin:18px 0;padding:18px;background:rgba(255,255,255,.02);border:1px solid var(--border);border-radius:10px}
.faq-item h3{margin:0 0 8px;font-size:1rem;color:var(--gold,#FFD700);font-family:var(--H)}
.faq-item p{font-size:.92rem;color:rgba(255,255,255,.65);margin:0}
/* ── SERVICE PAGE BUTTONS ───────────────────────────────────── */
.btn-primary{background:var(--gold);color:#000;border-color:var(--gold)}
.btn-primary:hover{background:#e0b000}
.btn-est{display:inline-flex;align-items:center;padding:9px 18px;border-radius:8px;font-family:var(--H);font-size:.82rem;font-weight:800;text-decoration:none;background:var(--gold);color:#000}
.cta-bar{margin-top:32px;display:flex;gap:12px;flex-wrap:wrap;align-items:center}
/* ── BREADCRUMB ─────────────────────────────────────────────── */
.breadcrumb{padding:12px 0;color:rgba(255,255,255,.6);font-size:.85rem}
.breadcrumb a{color:rgba(255,255,255,.5);text-decoration:none}
.breadcrumb a:hover{color:var(--gold)}
/* ── RELATED LINKS ──────────────────────────────────────────── */
.related-links{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 28px}
.related-links a{color:var(--gold);text-decoration:none;font-size:.9rem;padding:6px 14px;border:1px solid rgba(245,197,24,.25);border-radius:6px;transition:.2s}
.related-links a:hover{background:rgba(245,197,24,.1)}
/* ── SUPPLEMENTAL IMAGE BLOCK ───────────────────────────────── */
.supp-image-block{margin:2.5rem 0;border-radius:8px;overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,.4)}
.supp-image-block img{width:100%;height:auto;max-height:420px;object-fit:cover;display:block}
.supp-image-block figcaption{background:#1a1a1a;color:rgba(255,255,255,.6);font-size:13px;padding:10px 16px;letter-spacing:.5px}
/* ── FOOTER SERVICE PAGE VARIANT ───────────────────────────── */
.footer-inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:32px}
.footer-inner h4,.footer-inner .footer-heading{color:var(--gold);font-family:var(--H);margin-bottom:12px;font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em}
.footer-inner a{display:block;color:rgba(255,255,255,.5);text-decoration:none;font-size:.88rem;padding:3px 0;transition:.12s}
.footer-inner a:hover{color:var(--gold)}
.footer-inner p{color:rgba(255,255,255,.5);font-size:.88rem;line-height:1.5;margin-bottom:6px}
.footer-bottom{text-align:center;color:rgba(255,255,255,.6);font-size:.78rem;margin-top:32px;padding-top:20px;border-top:1px solid var(--border)}
/* ── GMB HEADER BADGE (service pages) ──────────────────────── */
.gmb-hdr{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid rgba(245,197,24,.4);border-radius:999px;background:rgba(245,197,24,.08);text-decoration:none}
.gmb-hdr span{color:var(--gold);font-family:var(--H);font-weight:700;font-size:.82rem;line-height:1}
/* ── GMB MAP BLOCK ──────────────────────────────────────────── */
.gmb-map{margin:40px 0;padding:28px;background:rgba(255,255,255,.02);border:1px solid var(--border);border-radius:14px}
.gmb-map h2{margin:0 0 16px}
.gmb-map iframe{border:0;border-radius:10px;display:block;margin-bottom:16px}
/* ── SERVICE PAGE RESPONSIVE ────────────────────────────────── */
@media(max-width:768px){.content{padding:40px 16px}.pricing-table{font-size:.85rem}.cta-bar{flex-direction:column;align-items:flex-start}}

/* ── BASE TYPOGRAPHY (interior pages) ──────────────────────── */
.container{max-width:960px;margin:0 auto;padding:60px 28px 80px}
.container h1{font-family:var(--H);font-size:clamp(2rem,5vw,2.8rem);font-weight:900;color:#fff;line-height:1.12;letter-spacing:.01em;margin-bottom:18px;border-left:4px solid var(--gold);padding-left:16px}
.container h2{font-family:var(--H);font-size:clamp(1.4rem,3.5vw,1.95rem);font-weight:800;color:#fff;line-height:1.18;letter-spacing:.01em;margin:44px 0 14px;padding-top:8px}
.container h3{font-family:var(--H);font-size:clamp(1.1rem,2.5vw,1.4rem);font-weight:700;color:var(--gold);letter-spacing:.02em;margin:28px 0 10px}
.container p{font-size:.97rem;color:rgba(255,255,255,.78);line-height:1.78;margin-bottom:16px}
.container p.lead{font-size:1.08rem;color:rgba(255,255,255,.85);line-height:1.75;margin-bottom:28px;font-weight:400}
.container ul,.container ol{margin:0 0 20px 22px;padding:0}
.container li{font-size:.95rem;color:rgba(255,255,255,.72);line-height:1.72;margin-bottom:8px}
.container ul li::marker{color:var(--gold)}
.container strong{color:#fff;font-weight:700}
.container em{color:var(--gold);font-style:normal;font-weight:600}
.container a{color:var(--gold);text-decoration:none;border-bottom:1px solid rgba(245,197,24,.25);transition:border-color .15s}
.container a:hover{border-bottom-color:var(--gold)}
.container section{margin-bottom:40px}
.container .overview{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px;margin:32px 0;border-left:4px solid var(--gold)}
.container .overview h2{margin-top:0}
.container .expertise ul{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;list-style:none;margin:0 0 20px 0}
.container .expertise li{background:rgba(245,197,24,.06);border:1px solid var(--border-gold);border-radius:8px;padding:10px 14px;font-size:.88rem;color:rgba(255,255,255,.8)}
.container .expertise li::before{content:'✓ ';color:var(--gold);font-weight:700}
.container .service-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin:32px 0}
.container .industry-applications,.container .service-areas{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:24px}
.container .industry-applications h3,.container .service-areas h3{margin-top:0;color:var(--gold)}
.container .final-cta{background:linear-gradient(135deg,var(--surface) 0%,rgba(245,197,24,.08) 100%);border:1px solid var(--border-gold);border-radius:var(--radius-lg);padding:40px;text-align:center;margin:48px 0 0}
.container .final-cta h2{margin-top:0;font-size:clamp(1.6rem,4vw,2.2rem);color:#fff}
.container .cfw-gallery-section{margin-top:48px;border-top:1px solid var(--border);padding-top:40px}
.container .cfw-gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:20px}
.container .cfw-gallery-item img{width:100%;border-radius:var(--radius);aspect-ratio:3/2;object-fit:cover;display:block;transition:transform .2s}
.container .cfw-gallery-item:hover img{transform:scale(1.02)}

/* ── FAQ ITEMS ──────────────────────────────────────────────── */
.container .faq-item{border:1px solid var(--border);border-radius:var(--radius);padding:20px 24px;margin-bottom:12px;background:var(--card-bg)}
.container .faq-item h3{margin:0 0 8px;font-size:1rem;color:#fff;font-family:var(--B);font-weight:700}
.container .faq-item p{margin:0;font-size:.9rem}

/* ── SERVICES LIST ──────────────────────────────────────────── */
.container ul.services{list-style:none;margin-left:0;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.container ul.services li{background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:8px;padding:10px 14px;font-size:.88rem}
.container ul.services li em{color:var(--gold);font-style:normal;font-weight:600;display:block;margin-bottom:2px}
.container ul.services li strong{color:#fff}

/* ── PROCESS STEPS (ol) ─────────────────────────────────────── */
.container ol.process{list-style:none;margin:0 0 28px;counter-reset:step}
.container ol.process li{counter-increment:step;display:flex;gap:16px;margin-bottom:20px;align-items:flex-start}
.container ol.process li::before{content:counter(step);min-width:36px;height:36px;background:var(--gold);color:#000;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--H);font-weight:900;font-size:1rem;flex-shrink:0}

/* ── CTA BAR ────────────────────────────────────────────────── */
.container .cta-bar,.cta-bar{display:flex;gap:14px;flex-wrap:wrap;margin:28px 0}
.container .cta-bar a,.cta-bar a{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;border-radius:var(--radius);font-family:var(--H);font-size:1rem;font-weight:800;text-decoration:none;border:2px solid transparent;transition:all .18s;letter-spacing:.03em;cursor:pointer}
.container .cta-bar a.btn-primary,.btn-primary{background:var(--gold);color:#000 !important;border-color:var(--gold)}
.container .cta-bar a.btn-primary:hover,.btn-primary:hover{background:#e6b800;transform:translateY(-2px);box-shadow:var(--shadow-gold)}
.container .cta-bar a:not(.btn-primary):not([style*="background:#FFD700"]):not([style*="background:#ffd700"]),.cta-bar a:not(.btn-primary):not([style*="background:#FFD700"]):not([style*="background:#ffd700"]){background:transparent;color:rgba(255,255,255,.8) !important;border-color:rgba(255,255,255,.22)}
.container .cta-bar a:not(.btn-primary):not([style*="background:#FFD700"]):not([style*="background:#ffd700"]):hover{border-color:var(--gold);color:var(--gold) !important}

/* ── TRUST BADGES ───────────────────────────────────────────── */
.container .trust{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0;padding:16px 20px;background:rgba(245,197,24,.04);border:1px solid var(--border-gold);border-radius:var(--radius)}
.container .trust span{font-size:.82rem;color:rgba(255,255,255,.7);font-family:var(--H);font-weight:600;letter-spacing:.02em}
.container .trust strong{color:var(--gold)}

/* ── BREADCRUMB ─────────────────────────────────────────────── */
.container .breadcrumb,.breadcrumb{font-size:.8rem;color:var(--muted);margin-bottom:24px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.container .breadcrumb a,.breadcrumb a{color:rgba(255,255,255,.5);text-decoration:none;border:none}
.container .breadcrumb a:hover,.breadcrumb a:hover{color:var(--gold)}

/* ── .content CLASS PAGES (same treatment) ──────────────────── */
.content{max-width:960px;margin:0 auto;padding:60px 28px 80px}
.content h1{font-family:var(--H);font-size:clamp(2rem,5vw,2.8rem);font-weight:900;color:#fff;line-height:1.12;letter-spacing:.01em;margin-bottom:18px;border-left:4px solid var(--gold);padding-left:16px}
.content h2{font-family:var(--H);font-size:clamp(1.4rem,3.5vw,1.95rem);font-weight:800;color:#fff;line-height:1.18;letter-spacing:.01em;margin:44px 0 14px}
.content h3{font-family:var(--H);font-size:clamp(1.1rem,2.5vw,1.4rem);font-weight:700;color:var(--gold);letter-spacing:.02em;margin:28px 0 10px}
.content p,.content .body-text{font-size:.97rem;color:rgba(255,255,255,.78);line-height:1.78;margin-bottom:16px}
.content p.lead{font-size:1.08rem;color:rgba(255,255,255,.85);line-height:1.75;margin-bottom:28px}
.content ul,.content ol{margin:0 0 20px 22px}
.content li{font-size:.95rem;color:rgba(255,255,255,.72);line-height:1.72;margin-bottom:8px}
.content ul li::marker{color:var(--gold)}
.content strong{color:#fff;font-weight:700}
.content em{color:var(--gold);font-style:normal;font-weight:600}
.content a{color:var(--gold);text-decoration:none;border-bottom:1px solid rgba(245,197,24,.25);transition:border-color .15s}
.content a:hover{border-bottom-color:var(--gold)}
.content ul.services{list-style:none;margin-left:0;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.content ul.services li{background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:8px;padding:10px 14px;font-size:.88rem}
.content ul.services li em{color:var(--gold);display:block;margin-bottom:2px}
.content .faq-item{border:1px solid var(--border);border-radius:var(--radius);padding:20px 24px;margin-bottom:12px;background:var(--card-bg)}
.content .faq-item h3{margin:0 0 8px;font-size:1rem;color:#fff;font-family:var(--B);font-weight:700}
.content .faq-item p{margin:0;font-size:.9rem}
.content .trust{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0;padding:16px 20px;background:rgba(245,197,24,.04);border:1px solid var(--border-gold);border-radius:var(--radius)}
.content .trust span{font-size:.82rem;color:rgba(255,255,255,.7);font-family:var(--H);font-weight:600}
.content .trust strong{color:var(--gold)}
.content .cta-bar{display:flex;gap:14px;flex-wrap:wrap;margin:28px 0}
.content .cta-bar a{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;border-radius:var(--radius);font-family:var(--H);font-size:1rem;font-weight:800;text-decoration:none;border:2px solid transparent;transition:all .18s;letter-spacing:.03em;cursor:pointer}
.content .cta-bar a.btn-primary{background:var(--gold);color:#000 !important;border-color:var(--gold)}
.content .cta-bar a.btn-primary:hover{background:#e6b800;transform:translateY(-2px)}
.content .cta-bar a:not(.btn-primary):not([style*="background:#FFD700"]):not([style*="background:#ffd700"]){background:transparent;color:rgba(255,255,255,.8) !important;border-color:rgba(255,255,255,.22)}
.content .cta-bar a:not(.btn-primary):not([style*="background:#FFD700"]):not([style*="background:#ffd700"]):hover{border-color:var(--gold);color:var(--gold) !important}

/* ── MOBILE INTERIOR PAGES ───────────────────────────────────── */
@media(max-width:768px){
  .container,.content{padding:36px 18px 60px}
  .container .service-grid,.container .g2{grid-template-columns:1fr}
  .container ul.services,.content ul.services{grid-template-columns:1fr 1fr}
  .container img[style*="float"]{float:none !important;width:100% !important;margin:0 0 20px 0 !important}
}

/* ══════════════════════════════════════════════════════════════
   INTERIOR PAGE SYSTEM (ip-*)
   Designer layout: split intro, trust strip, why/photo alternating,
   vehicle grid, photo gallery, mid-CTA, FAQ.
   Images placed for conversion — not decoration.
   ══════════════════════════════════════════════════════════════ */

/* ── MAIN WRAPPER ────────────────────────────────────────────── */
.ip-main{background:var(--black);color:var(--text)}
.ip-wrap{max-width:1160px;margin:0 auto;padding:0 28px}

/* ── LABELS ──────────────────────────────────────────────────── */
.ip-label{display:inline-block;font-family:var(--H);font-size:.7rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.14em;color:var(--gold);
  background:rgba(245,197,24,.09);border:1px solid rgba(245,197,24,.2);
  padding:4px 14px;border-radius:20px;margin-bottom:14px}

/* ── INTRO SPLIT ─────────────────────────────────────────────── */
.ip-intro{padding:72px 0 60px;border-bottom:1px solid var(--border)}
.ip-intro-text h1{font-family:var(--H);font-size:clamp(2.2rem,5vw,3.2rem);
  font-weight:900;color:#fff;line-height:1.08;letter-spacing:.01em;
  margin-bottom:12px;border-left:4px solid var(--gold);padding-left:18px}
.ip-subtitle{font-family:var(--H);font-size:clamp(1rem,2.5vw,1.3rem);
  font-weight:700;color:var(--gold);letter-spacing:.04em;margin-bottom:18px;
  padding-left:22px}
.ip-lead{font-size:1rem;color:rgba(255,255,255,.78);line-height:1.78;
  margin-bottom:28px;max-width:600px}
.ip-wrap .ip-intro > .ip-wrap,.ip-intro-text{flex:1 1 0}

/* TWO-COL SPLIT */
.ip-intro .ip-wrap{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}

/* Photo side */
.ip-intro-img{position:relative}
.ip-intro-img img{width:100%;border-radius:16px;object-fit:cover;
  aspect-ratio:4/3;display:block;
  box-shadow:0 12px 60px rgba(0,0,0,.7),0 0 0 1px rgba(245,197,24,.12)}
.ip-img-badge{position:absolute;bottom:-14px;left:20px;
  background:var(--gold);color:#000;font-family:var(--H);font-size:.78rem;
  font-weight:900;letter-spacing:.06em;text-transform:uppercase;
  padding:8px 18px;border-radius:8px;box-shadow:var(--shadow-md);
  white-space:nowrap}

/* ── CTA BAR ─────────────────────────────────────────────────── */
.ip-cta-bar{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px}
.ip-btn-primary{display:inline-flex;align-items:center;gap:8px;
  padding:15px 30px;background:var(--gold);color:#000 !important;
  border-radius:var(--radius);font-family:var(--H);font-size:1rem;
  font-weight:900;text-decoration:none;letter-spacing:.04em;
  border:2px solid var(--gold);transition:all .18s;cursor:pointer}
.ip-btn-primary:hover{background:#e6b800;border-color:#e6b800;
  transform:translateY(-2px);box-shadow:var(--shadow-gold)}
.ip-btn-secondary{display:inline-flex;align-items:center;gap:8px;
  padding:15px 24px;background:transparent;color:#fff !important;
  border-radius:var(--radius);font-family:var(--H);font-size:1rem;
  font-weight:800;text-decoration:none;letter-spacing:.03em;
  border:2px solid rgba(255,255,255,.2);transition:all .18s}
.ip-btn-secondary:hover{border-color:var(--gold);color:var(--gold) !important}

/* ── TRUST STRIP ─────────────────────────────────────────────── */
.ip-trust-strip{background:var(--surface);border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);padding:36px 0}
.ip-trust-items{display:flex;justify-content:space-between;align-items:center;
  gap:20px;flex-wrap:wrap}
.ip-trust-item{text-align:center;flex:1 1 160px}
.ip-trust-num{display:block;font-family:var(--D);font-size:2rem;color:var(--gold);
  line-height:1;letter-spacing:.02em}
.ip-trust-label{display:block;font-family:var(--H);font-size:.72rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.6);
  margin-top:4px}

/* ── WHY SECTION ─────────────────────────────────────────────── */
.ip-why{padding:80px 0;background:var(--dark)}
.ip-why-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.ip-why-text h2{font-family:var(--H);font-size:clamp(1.6rem,3.5vw,2.4rem);
  font-weight:900;color:#fff;line-height:1.1;margin-bottom:18px;letter-spacing:.01em}
.ip-why-text p{font-size:.97rem;color:rgba(255,255,255,.75);line-height:1.78;
  margin-bottom:24px}
.ip-why-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ip-why-list li{display:flex;align-items:center;gap:10px;
  font-size:.9rem;color:rgba(255,255,255,.72);padding:10px 14px;
  background:rgba(245,197,24,.05);border:1px solid rgba(245,197,24,.12);
  border-radius:8px}
.ip-why-list li::before{content:'✓';color:var(--gold);font-weight:900;flex-shrink:0;font-size:1rem}
.ip-why-list strong{color:#fff;font-weight:700}
.ip-why-img{position:relative}
.ip-why-img img{width:100%;border-radius:16px;object-fit:cover;
  aspect-ratio:4/3;display:block;box-shadow:0 8px 40px rgba(0,0,0,.6)}
/* Decorative gold corner accent */
.ip-why-img::before{content:'';position:absolute;top:-10px;right:-10px;
  width:80px;height:80px;border-top:3px solid var(--gold);
  border-right:3px solid var(--gold);border-radius:0 12px 0 0;z-index:1}

/* ── VEHICLE TYPES ────────────────────────────────────────────── */
.ip-vehicles{padding:80px 0}
.ip-vehicles h2{font-family:var(--H);font-size:clamp(1.6rem,3.5vw,2.2rem);
  font-weight:900;color:#fff;margin-bottom:36px;letter-spacing:.01em}
.ip-vtype-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.vtype-card{background:var(--card-bg);border:1px solid var(--border);
  border-radius:var(--radius);padding:22px 20px;
  transition:border-color .18s,transform .18s}
.vtype-card:hover{border-color:rgba(245,197,24,.3);transform:translateY(-2px)}
.vtype-name{font-family:var(--H);font-size:1rem;font-weight:800;
  color:var(--gold);margin-bottom:8px;letter-spacing:.02em}
.vtype-desc{font-size:.84rem;color:rgba(255,255,255,.6);line-height:1.6}

/* ── GALLERY ─────────────────────────────────────────────────── */
.ip-gallery{padding:80px 0;background:var(--surface)}
.ip-gallery h2{font-family:var(--H);font-size:clamp(1.6rem,3.5vw,2.2rem);
  font-weight:900;color:#fff;margin-bottom:10px;letter-spacing:.01em}
.ip-gallery-sub{font-size:.9rem;color:rgba(255,255,255,.5);margin-bottom:36px}
.ip-gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.gallery-item{overflow:hidden;border-radius:var(--radius-lg);
  border:1px solid var(--border);cursor:pointer;
  transition:border-color .2s,transform .2s}
.gallery-item:hover{border-color:rgba(245,197,24,.3);transform:scale(1.01)}
.gallery-item img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block;
  transition:transform .3s}
.gallery-item:hover img{transform:scale(1.04)}

/* ── MID CTA ─────────────────────────────────────────────────── */
.ip-mid-cta{padding:72px 0;background:var(--dark)}
.ip-mid-cta-box{display:flex;align-items:center;justify-content:space-between;
  gap:40px;background:linear-gradient(135deg,rgba(245,197,24,.07) 0%,rgba(245,197,24,.02) 100%);
  border:1px solid rgba(245,197,24,.25);border-radius:var(--radius-xl);
  padding:48px 52px;flex-wrap:wrap}
.ip-mid-cta-text h2{font-family:var(--H);font-size:clamp(1.5rem,3vw,2.2rem);
  font-weight:900;color:#fff;margin-bottom:8px;letter-spacing:.01em}
.ip-mid-cta-text p{font-size:.92rem;color:rgba(255,255,255,.6);margin:0}
.ip-mid-cta-actions{display:flex;gap:14px;flex-wrap:wrap;flex-shrink:0}

/* ── FAQ ─────────────────────────────────────────────────────── */
.ip-faq{padding:80px 0}
.ip-faq h2{font-family:var(--H);font-size:clamp(1.6rem,3.5vw,2.2rem);
  font-weight:900;color:#fff;margin-bottom:36px;letter-spacing:.01em}
.ip-faq-list{display:flex;flex-direction:column;gap:12px;max-width:840px}
.faq-item{background:var(--card-bg);border:1px solid var(--border);
  border-radius:var(--radius);overflow:hidden;
  transition:border-color .18s}
.faq-item:hover{border-color:rgba(245,197,24,.25)}
.faq-q{padding:20px 24px;font-family:var(--H);font-size:1.05rem;font-weight:800;
  color:#fff;letter-spacing:.01em;cursor:pointer;
  display:flex;justify-content:space-between;align-items:center}
.faq-q::after{content:'+';color:var(--gold);font-size:1.4rem;font-weight:400;flex-shrink:0}
.faq-a{padding:0 24px 20px;font-size:.92rem;color:rgba(255,255,255,.68);
  line-height:1.72;border-top:1px solid var(--border);padding-top:14px}

/* ── MOBILE ──────────────────────────────────────────────────── */
@media(max-width:900px){
  .ip-intro .ip-wrap{grid-template-columns:1fr;gap:40px}
  .ip-intro-img{order:-1}
  .ip-why-grid{grid-template-columns:1fr;gap:40px}
  .ip-why-img{order:-1}
  .ip-vtype-grid{grid-template-columns:repeat(2,1fr)}
  .ip-gallery-grid{grid-template-columns:repeat(2,1fr)}
  .ip-mid-cta-box{flex-direction:column;padding:36px 28px;text-align:center}
  .ip-mid-cta-actions{justify-content:center}
  .ip-trust-items{justify-content:center}
}
@media(max-width:600px){
  .ip-vtype-grid{grid-template-columns:1fr}
  .ip-gallery-grid{grid-template-columns:1fr}
  .ip-cta-bar{flex-direction:column}
  .ip-mid-cta-actions{flex-direction:column;width:100%}
  .ip-mid-cta-actions a{text-align:center;justify-content:center}
  .ip-intro-text h1{font-size:2rem}
}

/* ===== CLIENT PILL TICKER =====*/
.logo-belt-section{padding:28px 0;background:#0a0a0a;border-top:1px solid rgba(255,255,255,0.07);border-bottom:1px solid rgba(255,255,255,0.07);overflow:hidden}
.logo-belt-label{font-family:var(--H);font-size:10px;letter-spacing:4px;text-transform:uppercase;color:rgba(255,255,255,.6);text-align:center;margin:0 0 16px}
.logo-belt-wrap{overflow:hidden;width:100%;-webkit-mask-image:linear-gradient(to right,transparent 0%,black 6%,black 94%,transparent 100%);mask-image:linear-gradient(to right,transparent 0%,black 6%,black 94%,transparent 100%)}
.logo-belt{display:flex;width:max-content;align-items:center}
.belt-track{display:flex;align-items:center;gap:10px;padding:0 5px;animation:pillScroll 45s linear infinite;flex-shrink:0}
.logo-belt-wrap:hover .belt-track{animation-play-state:paused}
@keyframes pillScroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.client-pill{display:inline-flex;align-items:center;padding:7px 18px;background:rgba(245,197,24,0.08);border:1px solid rgba(245,197,24,0.35);border-radius:999px;font-family:var(--H);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);white-space:nowrap;flex-shrink:0;transition:background .2s,border-color .2s;cursor:default}
.client-pill:hover{background:rgba(245,197,24,0.18);border-color:rgba(245,197,24,0.7)}


/* ═══════════════════════════════════════════════════════════════
   RENT THE BAY — Page Styles (horizontal layout)
   ═══════════════════════════════════════════════════════════════ */

/* ── SHARED SECTION WRAPPER ─────────────────────────────────── */
.rtb-hero,.rtb-aeo,.rtb-included,.rtb-pricing,.rtb-print,.rtb-who,.rtb-rules,.rtb-faq,.rtb-cta-final{padding-left:28px;padding-right:28px;box-sizing:border-box}
.rtb-hero-inner,.rtb-aeo,.rtb-included>*:not(.rtb-pouch-section),.rtb-pricing>*,.rtb-print>*,.rtb-who>*,.rtb-rules>*,.rtb-faq>*,.rtb-cta-final>*{max-width:1100px;margin-left:auto;margin-right:auto}
.rtb-section-label{font-family:var(--H);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.16em;color:var(--gold);opacity:.7;margin-bottom:8px;display:block}
.rtb-section-sub{font-size:.92rem;color:rgba(255,255,255,.62);line-height:1.72;max-width:780px;margin-bottom:24px}
.rtb-gold{color:var(--gold);font-weight:700}

/* ── HERO ────────────────────────────────────────────────────── */
.rtb-hero{background:linear-gradient(135deg,#0a0a0a 0%,#141414 60%,#0a0a0a 100%);padding-top:60px;padding-bottom:60px;border-bottom:1px solid var(--border)}
.rtb-hero-inner{display:grid;grid-template-columns:1fr auto;gap:56px;align-items:center}
.rtb-eyebrow{font-family:var(--H);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--gold);background:rgba(245,197,24,.09);border:1px solid rgba(245,197,24,.2);padding:4px 14px;border-radius:20px;display:inline-block;margin-bottom:14px}
.rtb-hero-text h1{font-family:var(--H);font-size:clamp(2.2rem,5vw,3.4rem);font-weight:900;color:#fff;line-height:1.06;letter-spacing:.01em;margin-bottom:12px}
.rtb-hero-text h1 span{color:var(--gold)}
.rtb-sub{font-size:.96rem;color:rgba(255,255,255,.68);line-height:1.74;max-width:560px;margin-bottom:24px}
.rtb-hero-ctas{display:flex;gap:12px;flex-wrap:wrap}
.rtb-cta-gold{display:inline-flex;align-items:center;gap:7px;padding:14px 24px;background:var(--gold);color:#000;border-radius:var(--radius);font-family:var(--H);font-size:.95rem;font-weight:900;text-decoration:none;letter-spacing:.04em;transition:all .18s;border:2px solid var(--gold);white-space:nowrap}
.rtb-cta-gold:hover{background:#e6b800;transform:translateY(-2px);box-shadow:var(--shadow-gold)}
.rtb-cta-outline{display:inline-flex;align-items:center;gap:7px;padding:14px 20px;background:transparent;color:#fff;border-radius:var(--radius);font-family:var(--H);font-size:.95rem;font-weight:800;text-decoration:none;letter-spacing:.03em;transition:all .18s;border:2px solid rgba(255,255,255,.2);white-space:nowrap}
.rtb-cta-outline:hover{border-color:var(--gold);color:var(--gold)}
.rtb-hero-stats{display:flex;flex-direction:column;gap:2px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;min-width:200px}
.rtb-stat{background:var(--steel);padding:16px 24px;display:flex;align-items:center;gap:14px}
.rtb-stat-num{font-family:var(--D);font-size:2rem;color:var(--gold);line-height:1;letter-spacing:.02em;flex-shrink:0;min-width:60px}
.rtb-stat-lbl{font-family:var(--H);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.5)}

/* ── AEO ANSWER BLOCK ────────────────────────────────────────── */
.rtb-aeo{padding-top:36px;padding-bottom:36px;font-size:.92rem;color:rgba(255,255,255,.65);line-height:1.8}
.rtb-aeo h2{font-family:var(--H);font-size:1rem;font-weight:800;color:var(--gold);margin-bottom:8px;letter-spacing:.02em}

/* ── INCLUDED (BAY ESSENTIALS) — horizontal table rows ──────── */
.rtb-included{padding-top:64px;padding-bottom:64px;background:var(--dark)}
.rtb-included h2{font-family:var(--H);font-size:clamp(1.5rem,3vw,2.2rem);font-weight:900;color:#fff;margin-bottom:8px;letter-spacing:.01em}
.rtb-included-grid{display:flex;flex-direction:column;gap:2px;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:40px}
.rtb-inc-card{display:grid;grid-template-columns:48px 200px 1fr;align-items:center;gap:0;background:var(--card-bg);border-bottom:1px solid var(--border);padding:14px 20px;transition:background .15s}
.rtb-inc-card:last-child{border-bottom:none}
.rtb-inc-card:hover{background:var(--steel)}
.rtb-inc-icon{font-size:1.4rem;text-align:center}
.rtb-inc-title{font-family:var(--H);font-size:.88rem;font-weight:800;color:var(--gold);letter-spacing:.02em;padding:0 16px}
.rtb-inc-card p{font-size:.83rem;color:rgba(255,255,255,.58);line-height:1.6;margin:0}

/* ── WRAP POUCH ──────────────────────────────────────────────── */
.rtb-pouch-section{margin-top:40px;padding-top:40px;border-top:1px solid var(--border);max-width:1100px;margin-left:auto;margin-right:auto}
.rtb-pouch-section h2{font-family:var(--H);font-size:clamp(1.3rem,2.5vw,1.8rem);font-weight:900;color:#fff;margin-bottom:8px}
.rtb-pouch-contents{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:20px}
.rtb-pouch-label{font-family:var(--H);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--gold);margin-bottom:14px;display:block}
.rtb-pouch-tools{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.rtb-tool-item{display:flex;align-items:center;gap:8px;font-size:.82rem;color:rgba(255,255,255,.7);padding:7px 10px;background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:6px}
.rtb-tool-icon{font-size:1rem;flex-shrink:0}
.rtb-pouch-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px}
.rtb-pouch-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:20px;text-align:center}
.rtb-pouch-card-eyebrow{font-family:var(--H);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:6px;display:block}
.rtb-pouch-card-price{font-family:var(--D);font-size:2.6rem;color:var(--gold);line-height:1;letter-spacing:.02em;margin-bottom:4px}
.rtb-pouch-card-badge{display:inline-block;background:rgba(245,197,24,.12);border:1px solid var(--border-gold);border-radius:20px;padding:3px 10px;font-family:var(--H);font-size:.65rem;font-weight:700;color:var(--gold);margin-bottom:10px;text-transform:uppercase;letter-spacing:.08em}
.rtb-pouch-card p{font-size:.82rem;color:rgba(255,255,255,.58);line-height:1.6}
.rtb-pouch-card-buy,.rtb-pouch-card-own{display:block;font-size:.8rem;color:rgba(255,255,255,.5);margin-top:4px}
.rtb-pouch-math{margin-top:16px;background:rgba(245,197,24,.05);border:1px solid var(--border-gold);border-radius:var(--radius);padding:16px 20px;font-size:.86rem;color:rgba(255,255,255,.65);line-height:1.7}

/* ── PRICING — horizontal rows ───────────────────────────────── */
.rtb-pricing{padding-top:64px;padding-bottom:64px;background:var(--black)}
.rtb-pricing h2{font-family:var(--H);font-size:clamp(1.5rem,3vw,2.2rem);font-weight:900;color:#fff;margin-bottom:8px;letter-spacing:.01em}
/* Side-by-side pricing table */
.rtb-pricing-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:32px}
.rtb-price-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}
.rtb-price-card-featured{border-color:var(--border-gold);box-shadow:var(--shadow-gold)}
.rtb-price-card-header{padding:16px 24px;background:var(--steel);border-bottom:1px solid var(--border);font-family:var(--H);font-size:1rem;font-weight:800;color:#fff;display:flex;align-items:center;gap:10px}
.rtb-price-card-badge{display:inline-block;background:var(--gold);color:#000;font-family:var(--H);font-size:.65rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;padding:3px 10px;border-radius:20px}
.rtb-price-card-body{padding:0}
.rtb-price-row{display:grid;grid-template-columns:1fr auto;align-items:center;padding:12px 24px;border-bottom:1px solid rgba(255,255,255,.06);font-size:.88rem;color:rgba(255,255,255,.72)}
.rtb-price-row:last-child{border-bottom:none}
.rtb-price-val{font-family:var(--H);font-size:1.05rem;font-weight:800;color:#fff;text-align:right;white-space:nowrap}
.rtb-price-val.rtb-gold{color:var(--gold)}
.rtb-book-btn{display:block;text-align:center;padding:13px 20px;background:var(--steel);color:rgba(255,255,255,.8);border-radius:0 0 var(--radius-lg) var(--radius-lg);font-family:var(--H);font-size:.88rem;font-weight:800;text-decoration:none;letter-spacing:.03em;border-top:1px solid var(--border);transition:background .18s,color .18s}
.rtb-book-btn:hover{background:rgba(255,255,255,.08);color:#fff}
.rtb-book-btn-gold{background:var(--gold);color:#000}
.rtb-book-btn-gold:hover{background:#e6b800;color:#000}

/* Membership math box */
.rtb-math-box{background:var(--card-bg);border:1px solid var(--border-gold);border-radius:var(--radius-lg);overflow:hidden;max-width:1100px;margin:0 auto}
.rtb-math-title{font-family:var(--H);font-size:1rem;font-weight:800;color:#fff;padding:16px 24px;background:var(--steel);border-bottom:1px solid var(--border)}
.rtb-math-grid{display:grid;grid-template-columns:1fr 60px 1fr}
.rtb-math-col{padding:20px 24px}
.rtb-math-col-win{background:rgba(245,197,24,.04)}
.rtb-math-label{font-family:var(--H);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:12px;display:block}
.rtb-math-row{display:grid;grid-template-columns:1fr auto;gap:8px;font-size:.85rem;color:rgba(255,255,255,.65);padding:8px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.rtb-math-total{display:grid;grid-template-columns:1fr auto;gap:8px;font-family:var(--H);font-size:.95rem;font-weight:800;color:#fff;padding:10px 0 0;margin-top:4px;border-bottom:none}
.rtb-math-total-win{color:var(--gold)}
.rtb-math-save{font-family:var(--H);font-size:.85rem;font-weight:700;color:var(--gold);margin-top:12px;padding:8px 12px;background:rgba(245,197,24,.08);border-radius:6px;text-align:center}
.rtb-math-vs{display:flex;align-items:center;justify-content:center;font-family:var(--D);font-size:1.4rem;color:var(--muted);border-left:1px solid var(--border);border-right:1px solid var(--border)}
.rtb-math-note{font-size:.8rem;color:var(--muted);padding:14px 24px;border-top:1px solid var(--border);text-align:center;line-height:1.65}

/* ── PRINT SERVICES — horizontal rows ───────────────────────── */
.rtb-print{padding-top:64px;padding-bottom:64px;background:var(--surface)}
.rtb-print h2{font-family:var(--H);font-size:clamp(1.5rem,3vw,2.2rem);font-weight:900;color:#fff;margin-bottom:8px;letter-spacing:.01em}
.rtb-print-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}
.rtb-print-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}
.rtb-print-card-rush{border-color:rgba(255,100,30,.3)}
.rtb-print-card-header{padding:14px 20px;background:var(--steel);border-bottom:1px solid var(--border);font-family:var(--H);font-size:.95rem;font-weight:800;color:#fff;display:flex;align-items:center;justify-content:space-between}
.rtb-print-card-badge{background:rgba(245,197,24,.12);border:1px solid var(--border-gold);border-radius:20px;padding:3px 10px;font-family:var(--H);font-size:.65rem;font-weight:700;color:var(--gold);text-transform:uppercase;letter-spacing:.08em}
.rtb-print-card-rush .rtb-print-card-badge{background:rgba(255,80,0,.15);border-color:rgba(255,80,0,.3);color:#ff7040}
.rtb-print-price{font-family:var(--D);font-size:2.2rem;color:var(--gold);line-height:1;letter-spacing:.02em;padding:16px 20px 8px}
.rtb-print-list{list-style:none;margin:0;padding:0 20px 16px;display:flex;flex-direction:column;gap:4px}
.rtb-print-list li{font-size:.82rem;color:rgba(255,255,255,.6);padding:5px 0;border-bottom:1px solid rgba(255,255,255,.05);display:flex;gap:8px}
.rtb-print-list li:last-child{border-bottom:none}
.rtb-print-note{background:rgba(245,197,24,.04);border:1px solid var(--border-gold);border-radius:var(--radius);padding:16px 20px;font-size:.85rem;color:rgba(255,255,255,.62);line-height:1.7;max-width:1100px;margin:0 auto 0}

/* Print email form (inline in card) */
.rtb-email-form{display:flex;flex-direction:column;gap:8px;padding:16px 20px;border-top:1px solid var(--border)}
.rtb-email-input{background:var(--steel);border:1px solid var(--border);border-radius:8px;padding:10px 14px;color:#fff;font-family:var(--B);font-size:.86rem;width:100%;box-sizing:border-box}
.rtb-email-input:focus{outline:none;border-color:var(--gold)}
.rtb-email-note{font-size:.75rem;color:var(--muted);margin-top:2px}

/* Print calculator */
.rtb-calc-box{background:var(--card-bg);border:1px solid var(--border-gold);border-radius:var(--radius-lg);padding:24px;max-width:1100px;margin:24px auto 0}
.rtb-calc-title{font-family:var(--H);font-size:.95rem;font-weight:800;color:#fff;margin-bottom:16px}
.rtb-calc-row{display:grid;grid-template-columns:160px 1fr;align-items:center;gap:12px;margin-bottom:10px}
.rtb-calc-row label{font-family:var(--H);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.rtb-calc-row input,.rtb-calc-row select{background:var(--steel);border:1px solid var(--border);border-radius:8px;padding:9px 14px;color:#fff;font-family:var(--B);font-size:.88rem}
.rtb-calc-btn{padding:12px 24px;background:var(--gold);color:#000;border:none;border-radius:var(--radius);font-family:var(--H);font-size:.9rem;font-weight:900;letter-spacing:.04em;cursor:pointer;margin-top:8px;transition:background .18s}
.rtb-calc-btn:hover{background:#e6b800}
.rtb-calc-result{padding:14px 20px;background:rgba(245,197,24,.06);border:1px solid var(--border-gold);border-radius:var(--radius);margin-top:12px;font-family:var(--H);font-size:1rem;font-weight:700;color:var(--gold)}

/* ── WHO IS THIS FOR — horizontal rows ──────────────────────── */
.rtb-who{padding-top:64px;padding-bottom:64px;background:var(--dark)}
.rtb-who h2{font-family:var(--H);font-size:clamp(1.5rem,3vw,2.2rem);font-weight:900;color:#fff;margin-bottom:24px;letter-spacing:.01em}
.rtb-who-grid{display:flex;flex-direction:column;gap:2px;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}
.rtb-who-card{display:grid;grid-template-columns:56px 220px 1fr;align-items:center;gap:0;background:var(--card-bg);border-bottom:1px solid var(--border);padding:16px 20px;transition:background .15s}
.rtb-who-card:last-child{border-bottom:none}
.rtb-who-card:hover{background:var(--steel)}
.rtb-who-icon{font-size:1.6rem;text-align:center}
.rtb-who-card h3{font-family:var(--H);font-size:.9rem;font-weight:800;color:var(--gold);letter-spacing:.02em;padding:0 16px}
.rtb-who-card p{font-size:.83rem;color:rgba(255,255,255,.58);line-height:1.62;margin:0}

/* ── HOUSE RULES — horizontal rows ──────────────────────────── */
.rtb-rules{padding-top:64px;padding-bottom:64px;background:var(--black)}
.rtb-rules h2{font-family:var(--H);font-size:clamp(1.5rem,3vw,2.2rem);font-weight:900;color:#fff;margin-bottom:8px;letter-spacing:.01em}
.rtb-rules-grid{display:flex;flex-direction:column;gap:2px;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-top:24px}
.rtb-rule-card{display:grid;grid-template-columns:56px 220px 1fr;align-items:center;gap:0;background:var(--card-bg);border-bottom:1px solid var(--border);padding:16px 20px;transition:background .15s}
.rtb-rule-card:last-child{border-bottom:none}
.rtb-rule-card:hover{background:var(--steel)}
.rtb-rule-num{font-family:var(--D);font-size:1.5rem;color:var(--gold);line-height:1;text-align:center;opacity:.6}
.rtb-rule-title{font-family:var(--H);font-size:.9rem;font-weight:800;color:#fff;padding:0 16px}
.rtb-rule-zero{font-size:.83rem;color:rgba(255,255,255,.55);line-height:1.62;margin:0}

/* ── FAQ — horizontal rows ───────────────────────────────────── */
.rtb-faq{padding-top:64px;padding-bottom:64px;background:var(--surface)}
.rtb-faq h2{font-family:var(--H);font-size:clamp(1.5rem,3vw,2.2rem);font-weight:900;color:#fff;margin-bottom:24px;letter-spacing:.01em}
.rtb-faq-grid{display:flex;flex-direction:column;gap:2px;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}
.rtb-faq-item{display:grid;grid-template-columns:260px 1fr;gap:0;background:var(--card-bg);border-bottom:1px solid var(--border);padding:16px 24px;transition:background .15s;align-items:start}
.rtb-faq-item:last-child{border-bottom:none}
.rtb-faq-item:hover{background:var(--steel)}
.rtb-faq-item h3{font-family:var(--H);font-size:.88rem;font-weight:800;color:var(--gold);letter-spacing:.01em;padding-right:20px;line-height:1.4}
.rtb-faq-item p{font-size:.83rem;color:rgba(255,255,255,.62);line-height:1.68;margin:0}

/* ── FINAL CTA ───────────────────────────────────────────────── */
.rtb-cta-final{padding-top:64px;padding-bottom:64px;background:linear-gradient(135deg,rgba(245,197,24,.07) 0%,rgba(245,197,24,.02) 100%);border-top:1px solid var(--border-gold)}
.rtb-cta-final h2{font-family:var(--H);font-size:clamp(1.6rem,3.5vw,2.6rem);font-weight:900;color:#fff;margin-bottom:10px;letter-spacing:.01em;text-align:center}
.rtb-cta-final p{text-align:center;color:rgba(255,255,255,.62);font-size:.94rem;margin-bottom:24px}
.rtb-cta-final-btns{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}

/* ── ADDRESS ─────────────────────────────────────────────────── */
.rtb-address{font-size:.82rem;color:rgba(255,255,255,.6);margin-top:6px}

/* ── RESPONSIVE ──────────────────────────────────────────────── */
@media(max-width:900px){
  .rtb-hero-inner{grid-template-columns:1fr;gap:32px}
  .rtb-hero-stats{flex-direction:row;flex-wrap:wrap}
  .rtb-stat{flex:1 1 45%}
  .rtb-pricing-grid,.rtb-print-grid{grid-template-columns:1fr}
  .rtb-inc-card{grid-template-columns:40px 1fr;grid-template-rows:auto auto;gap:0}
  .rtb-inc-title{padding:0;padding-left:12px;grid-column:2}
  .rtb-inc-card p{grid-column:2;padding-left:12px;margin-top:4px}
  .rtb-who-card,.rtb-rule-card{grid-template-columns:46px 1fr;grid-template-rows:auto auto}
  .rtb-who-card p,.rtb-rule-zero{grid-column:2;padding-left:12px;margin-top:4px}
  .rtb-who-card h3{padding-left:12px;padding-right:0}
  .rtb-rule-title{padding-left:12px;padding-right:0}
  .rtb-faq-item{grid-template-columns:1fr;gap:6px}
  .rtb-math-grid{grid-template-columns:1fr}
  .rtb-math-vs{border:none;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:10px 0;font-size:1rem}
  .rtb-pouch-tools{grid-template-columns:repeat(3,1fr)}
  .rtb-pouch-cards{grid-template-columns:1fr}
  .rtb-calc-row{grid-template-columns:1fr}
}
@media(max-width:600px){
  .rtb-hero,.rtb-aeo,.rtb-included,.rtb-pricing,.rtb-print,.rtb-who,.rtb-rules,.rtb-faq,.rtb-cta-final{padding-left:16px;padding-right:16px}
  .rtb-hero-stats{display:grid;grid-template-columns:1fr 1fr}
  .rtb-pouch-tools{grid-template-columns:1fr 1fr}
  .rtb-cta-final-btns{flex-direction:column;align-items:stretch;max-width:320px;margin:0 auto}
  .rtb-pricing-grid{gap:12px}
}

/* ═══════════════════════════════════════════════════════════════
   GLOBAL FORM STYLES — applies site-wide to all inputs/selects
   ═══════════════════════════════════════════════════════════════ */

/* ── Base input/select/textarea reset ─────────────────────── */
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=submit]):not([type=button]),
select,
textarea{
  width:100%;
  box-sizing:border-box;
  background:#1e2022;
  border:1px solid rgba(255,255,255,.12);
  border-radius:9px;
  padding:12px 16px;
  color:#fff;
  font-family:var(--B);
  font-size:.9rem;
  line-height:1.5;
  outline:none;
  -webkit-appearance:none;
  appearance:none;
  transition:border-color .18s, box-shadow .18s, background .18s;
}
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=submit]):not([type=button]):hover,
select:hover,
textarea:hover{
  border-color:rgba(255,255,255,.22);
  background:#222426;
}
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=submit]):not([type=button]):focus,
select:focus,
textarea:focus{
  border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(245,197,24,.12);
  background:#222426;
}
select{
  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 d='M1 1l5 5 5-5' stroke='rgba(255,255,255,.4)' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  padding-right:38px;
  cursor:pointer;
}
select option{background:#1e2022;color:#fff}
textarea{resize:vertical;min-height:100px}
::placeholder{color:rgba(255,255,255,.6)}

/* ── Labels ────────────────────────────────────────────────── */
label,
.field-label,
.flbl{
  display:block;
  font-family:var(--H);
  font-size:.72rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:rgba(255,255,255,.6);
  margin-bottom:6px;
}

/* ── Field group / form group wrappers ─────────────────────── */
.field-group,
.form-group,
.est-fg{
  display:flex;
  flex-direction:column;
  gap:5px;
}

/* ── Booking / schedule form card ──────────────────────────── */
.booking-form{
  background:var(--card-bg);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  overflow:hidden;
}
.booking-form h3{
  font-family:var(--H);
  font-size:1rem;
  font-weight:900;
  color:#fff;
  letter-spacing:.02em;
  padding:18px 24px;
  background:var(--steel);
  border-bottom:1px solid var(--border);
}
.booking-form>*:not(h3){
  padding:0 24px;
}
.booking-form .field-group{
  padding:0;
  margin-bottom:12px;
}
.booking-form>.field-group:first-of-type{
  margin-top:20px;
}

/* ── Submit / CTA buttons inside forms ─────────────────────── */
button[type=submit],
input[type=submit],
.submit-btn,
.form-submit,
.booking-submit{
  display:block;
  width:100%;
  padding:14px 20px;
  background:var(--gold);
  color:#000;
  border:none;
  border-radius:var(--radius);
  font-family:var(--H);
  font-size:1rem;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
  cursor:pointer;
  transition:background .18s, transform .18s, box-shadow .18s;
  text-align:center;
  margin-top:6px;
}
button[type=submit]:hover,
input[type=submit]:hover,
.submit-btn:hover,
.form-submit:hover,
.booking-submit:hover{
  background:#e6b800;
  transform:translateY(-2px);
  box-shadow:var(--shadow-gold);
}

/* ── Checkbox / radio ──────────────────────────────────────── */
input[type=checkbox],
input[type=radio]{
  width:16px;
  height:16px;
  accent-color:var(--gold);
  cursor:pointer;
  flex-shrink:0;
}

/* ── Contact page form ─────────────────────────────────────── */
.contact-form input,
.contact-form select,
.contact-form textarea{
  margin-bottom:0;
}

/* ── RTB print email form (overrides) ─────────────────────── */
.rtb-email-input{
  background:#1e2022 !important;
  border:1px solid rgba(255,255,255,.12) !important;
  border-radius:9px !important;
  padding:11px 14px !important;
}
.rtb-email-input:focus{
  border-color:var(--gold) !important;
  box-shadow:0 0 0 3px rgba(245,197,24,.12) !important;
}

/* ── Calculator inputs ─────────────────────────────────────── */
.rtb-calc-row input,
.rtb-calc-row select{
  background:#1e2022;
  border:1px solid rgba(255,255,255,.12);
  border-radius:9px;
  padding:10px 14px;
  color:#fff;
}
.rtb-calc-row input:focus,
.rtb-calc-row select:focus{
  border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(245,197,24,.12);
}

/* ── Form error state ──────────────────────────────────────── */
input:invalid:not(:placeholder-shown),
select:invalid:not(:placeholder-shown){
  border-color:rgba(255,80,80,.4);
}

/* ── Inline quote form (homepage widget) ──────────────────── */
.iqf-wrap input,
.iqf-wrap select,
.inline-quote input,
.inline-quote select{
  background:#1e2022;
}

/* ═══════════════════════════════════════════════════════════════
   GOOGLE REVIEWS GRID — about page + any page using .rv-grid
   ═══════════════════════════════════════════════════════════════ */

.rv-section{margin:24px 0 40px}
.rv-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:20px}
.rv-badge{font-family:var(--H);font-size:.82rem;font-weight:700;letter-spacing:.05em;color:rgba(255,255,255,.75);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:6px 14px}
.rv-link{font-family:var(--H);font-size:.78rem;font-weight:700;color:var(--gold);text-transform:uppercase;letter-spacing:.08em;text-decoration:none}
.rv-link:hover{text-decoration:underline}
.rv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.rv{background:var(--card-bg,#1a1c1e);border:1px solid rgba(255,255,255,.09);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:12px;transition:border-color .2s,transform .2s}
.rv:hover{border-color:var(--border-gold);transform:translateY(-2px)}
.rv-top{display:flex;align-items:center;gap:10px}
.rv-avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;flex-shrink:0;border:2px solid rgba(255,255,255,.1)}
.rv-initials{width:44px;height:44px;border-radius:50%;background:var(--gold);color:#000;font-family:var(--H);font-weight:900;font-size:1rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.rv-name{font-family:var(--H);font-size:.88rem;font-weight:800;color:#fff;line-height:1.2}
.rv-stars{color:var(--gold);font-size:.75rem;letter-spacing:.05em;line-height:1}
.rv-google{margin-left:auto;opacity:.5;flex-shrink:0}
.rv-text{font-size:.85rem;color:rgba(255,255,255,.68);line-height:1.65;flex:1}
.rv-time{font-size:.72rem;color:rgba(255,255,255,.6);font-family:var(--H);letter-spacing:.04em;text-transform:uppercase}

/* ═══════════════════════════════════════════════════════════════
   IMAGE SIZING FIXES — Uniform proportional images site-wide
   Overrides all inline float/width styles on content images
   ═══════════════════════════════════════════════════════════════ */

/* Floated right — lock to same size + ratio */
img[style*="float:right"],
img[style*="float: right"] {
  width: min(420px, 44%) !important;
  height: auto !important;
  aspect-ratio: 16/10 !important;
  object-fit: cover !important;
  margin: 0 0 28px 32px !important;
  border-radius: 10px !important;
  display: block !important;
  float: right !important;
}

/* Floated left — match exactly */
img[style*="float:left"],
img[style*="float: left"] {
  width: min(420px, 44%) !important;
  height: auto !important;
  aspect-ratio: 16/10 !important;
  object-fit: cover !important;
  margin: 0 32px 28px 0 !important;
  border-radius: 10px !important;
  display: block !important;
  float: left !important;
}

/* Full-width centred solo images */
img[style*="width:100%;max-width:860px"],
img[style*="width: 100%;"] {
  width: 100% !important;
  max-width: 860px !important;
  height: auto !important;
  aspect-ratio: 16/9 !important;
  object-fit: cover !important;
  display: block !important;
  margin: 32px auto !important;
  border-radius: 10px !important;
}

/* Photo grid — enforce 4:3 across all grids */
.cfw-photo-grid img,
.service-grid img,
.photo-grid img {
  width: 100% !important;
  aspect-ratio: 4/3 !important;
  object-fit: cover !important;
  height: auto !important;
  display: block !important;
}

/* Mobile — stack all floats */
@media (max-width: 680px) {
  img[style*="float:right"],
  img[style*="float: right"],
  img[style*="float:left"],
  img[style*="float: left"] {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 20px 0 !important;
    aspect-ratio: 16/9 !important;
  }
}


/* ── HERO TEXT OVERLAY ───────────────────────────────────────── */
.hero-eyebrow{font-family:var(--H);font-size:clamp(1.4rem,3.5vw,2.6rem);font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--gold);margin-bottom:16px;opacity:1;line-height:1.2}
.hero-text{position:absolute;z-index:10;left:5%;bottom:15%;max-width:90%}
.hero-accent{display:none}
.hero .hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0}
.hero-bg:not(.hero .hero-bg){display:none}
.page-hero-banner::before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(to right,rgba(0,0,0,.72) 0%,rgba(0,0,0,.45) 60%,rgba(0,0,0,.15) 100%)}
.page-hero-banner .hero-text{z-index:10}
.page-hero-banner .hero-h2{font-family:var(--D);font-size:clamp(2.8rem,7vw,5rem);font-weight:400;color:#fff;margin:0;line-height:.95;text-shadow:0 2px 20px rgba(0,0,0,.7);letter-spacing:.02em}
.page-hero-banner .hero-h2 span{color:var(--gold)}
@media(max-width:768px){.hero-text{left:24px;right:24px}.page-hero-banner .hero-h2{font-size:clamp(2rem,8vw,3rem)}}

/* ── LAYOUT CENTERING FIX ─────────────────────────────────────────── */
main{width:100%}
.content,.container{max-width:960px;margin:0 auto;padding:60px 28px 80px}
main>.content,main>.container{margin-left:auto;margin-right:auto}
@media(max-width:768px){.content,.container{padding:36px 18px 60px}}


/* ══════════════════════════════════════════════════════════════
   UNIVERSAL HERO FONT STANDARDIZATION
   Matches commercial-vehicle-wraps-chicago exactly — site-wide
   ══════════════════════════════════════════════════════════════ */

/* Force Bebas Neue on ALL hero titles regardless of page inline styles */
.page-hero-banner .hero-eyebrow,
.hero-eyebrow {
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: clamp(1.4rem,3.5vw,2.6rem) !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
  color: var(--gold) !important;
  margin-bottom: 14px !important;
  display: block !important;
  opacity: 1 !important;
}

.page-hero-banner .hero-h2,
.hero-h2 {
  font-family: 'Bebas Neue', 'Barlow Condensed', sans-serif !important;
  font-size: clamp(2.4rem, 6vw, 4.2rem) !important;
  font-weight: 400 !important;
  line-height: .95 !important;
  color: #fff !important;
  text-shadow: 0 2px 20px rgba(0,0,0,.7) !important;
  letter-spacing: .03em !important;
  margin: 0 !important;
  display: block !important;
}

.page-hero-banner .hero-h2 span,
.hero-h2 span {
  color: var(--gold) !important;
}

.page-hero-banner .hero-text {
  position: absolute !important;
  z-index: 10 !important;
  left: 5% !important;
  bottom: 15% !important;
  max-width: 60% !important;
}

/* Gradient overlay on every hero */
.page-hero-banner {
  position: relative !important;
  overflow: hidden !important;
}

.page-hero-banner::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  background: linear-gradient(to right, rgba(0,0,0,.75) 0%, rgba(0,0,0,.45) 55%, rgba(0,0,0,.1) 100%) !important;
  pointer-events: none !important;
}

.page-hero-banner .hero-bg,
.page-hero-banner img.hero-bg {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
}

@media(max-width: 768px) {
  .page-hero-banner {
    min-height: 420px !important;
  }
  .page-hero-banner .hero-text {
    left: 24px !important;
    right: 24px !important;
    max-width: 90% !important;
    bottom: 12% !important;
  }
  .page-hero-banner .hero-h2 {
    font-size: clamp(2rem, 9vw, 3rem) !important;
  }
}

/* ── POLISH LAYER — Micro-animations, consistent hovers, card shadows ── */
/* Appended 2026-04-02. No existing rules modified. */

/* 1. Standardize card-like hover: subtle lift + gold shadow */
.sc:hover,
.ic:hover,
.gmbi:hover,
.gmbl:hover,
.aeo-block:hover,
.smico:hover,
.trust-badge:hover,
.vtype-card:hover,
.ip-btn-secondary:hover,
.client-pill:hover,
.rlink:hover {
  box-shadow: 0 4px 16px rgba(245,197,24,.12);
  transform: translateY(-2px);
}

/* 2. Add hover to card-like elements that had none */
.ebi,
.cbox,
.astat,
.gmb-strip,
.overview,
.service-areas,
.ip-label,
.ip-img-badge {
  transition: border-color .22s ease, box-shadow .22s ease;
}
.ebi:hover,
.cbox:hover,
.astat:hover {
  border-color: var(--border-hover);
  box-shadow: 0 2px 12px rgba(0,0,0,.3);
}

/* 3. FAQ items — consistent hover lift across all page types */
.fq-item:hover,
.faq-item:hover,
.fi:hover {
  border-color: rgba(245,197,24,.25);
  box-shadow: 0 2px 10px rgba(245,197,24,.08);
  transform: translateY(-1px);
}

/* 4. Smooth transitions for elements that were missing them */
.sc,
.ic,
.gmbi,
.gmbl,
.smico,
.rlink,
.client-pill,
.vtype-card,
.ip-btn-secondary,
.ebi,
.cbox,
.astat,
.fq-item,
.faq-item,
.fi {
  transition: all .22s cubic-bezier(.4,0,.2,1);
}

/* 5. Gallery image hover — consistent scale + shadow */
.pi:hover,
.gallery-item:hover,
.cfw-gallery-item:hover {
  box-shadow: 0 6px 24px rgba(0,0,0,.5);
}

/* 6. Button micro-interaction — subtle scale on active press */
.btn:active {
  transform: translateY(0) scale(.97);
  transition-duration: .08s;
}
.btn.bo:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(245,197,24,.1);
}

/* 7. Social media icons — consistent glow on hover */
.hsm a:hover,
.ft-sm a:hover,
.fbot .fsm a:hover {
  box-shadow: 0 0 12px rgba(245,197,24,.15);
  transform: translateY(-1px);
}

/* 8. Table row hover — subtle highlight */
.pt tr:hover td,
.ptable tr:hover td {
  box-shadow: inset 0 0 0 1px rgba(245,197,24,.08);
}

/* 9. Navigation dropdown — entrance animation */
.ni:hover .drop {
  animation: dropIn .18s cubic-bezier(.4,0,.2,1);
}
@keyframes dropIn {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: translateY(0); }
}

/* 10. Process step cards — enhanced lift */
.process-step:hover {
  box-shadow: 0 8px 28px rgba(245,197,24,.15);
}

/* 11. Review cards — subtle lift on hover */
.rv:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(0,0,0,.4);
}

/* 12. Stats counter — subtle gold glow on hover */
.cc {
  transition: background .22s ease;
}
.cc:hover {
  background: rgba(245,197,24,.03);
}
.cc:hover .cv {
  text-shadow: 0 0 20px rgba(245,197,24,.3);
}

/* 13. Breadcrumb links — smooth color transition */
.breadcrumb a {
  transition: color .15s ease;
}

/* 14. Label/eyebrow badges — subtle pulse on hover */
.lbl:hover,
.eyebrow:hover {
  border-color: rgba(245,197,24,.45);
  box-shadow: 0 0 8px rgba(245,197,24,.12);
}

/* 15. Focus-visible rings for accessibility */
.btn:focus-visible,
.fq:focus-visible,
.sc:focus-visible,
.card:focus-visible,
.sm-card:focus-visible,
a:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
}

/* 16. Image loading placeholder — prevent layout shift */
img {
  background-color: var(--steel);
}

/* 17. Link underline animation for content areas */
.container a,
.content a {
  text-decoration-color: transparent;
  text-underline-offset: 3px;
  transition: color .15s ease, text-decoration-color .15s ease, border-bottom-color .15s ease;
}
.container a:hover,
.content a:hover {
  text-decoration-color: var(--gold);
}

/* 18. Team/portfolio cards — consistent with other cards */
.team-port-card:hover {
  box-shadow: 0 8px 28px rgba(0,0,0,.5);
}

/* 19. GMB header badge — subtle glow */
.gmb-header:hover {
  box-shadow: 0 0 12px rgba(245,197,24,.12);
}

/* ── POLISH LAYER 2 — GPU hints, transition cleanup, remaining hovers ── */
/* Appended 2026-04-02. No existing rules modified. */

/* 20. GPU acceleration hints for frequently animated elements */
.sc, .ic, .card, .sm-card, .rv, .pi, .process-step,
.team-port-card, .btn, .fi, .fq-item, .faq-item,
.gallery-item, .cfw-gallery-item, .vtype-card {
  will-change: transform;
}

/* 21. Standardize .12s footer/nav transitions to .15s for consistency */
.drop a { transition: color .15s ease, background .15s ease; }
.fb p, .fb a { transition: color .15s ease; }
.fbot .fsm a { transition: color .15s ease, box-shadow .15s ease; }
.footer-inner a { transition: color .15s ease; }

/* 22. Process-step rows — border glow on hover (168 uses, no hover) */
.ps {
  transition: border-color .22s ease, background .22s ease;
}
.ps:hover {
  border-color: rgba(245,197,24,.18);
  background: rgba(245,197,24,.02);
}

/* 23. Section images — subtle shadow lift on hover */
.simg img {
  transition: box-shadow .22s ease, transform .22s ease;
}
.simg:hover img {
  box-shadow: 0 8px 32px rgba(0,0,0,.5);
  transform: translateY(-2px);
}

/* 24. CTA bar — subtle gold border pulse on scroll-into-view */
.ctab {
  transition: border-color .22s ease;
}

/* 25. Pricing table wrapper — subtle border on hover */
.ptw {
  transition: border-color .22s ease;
}

/* 26. Pricing note — fade-in on table hover */
.ptnote {
  transition: color .22s ease;
}
.ptw:hover + .ptnote,
.ptw:hover ~ .ptnote {
  color: rgba(255,255,255,.6);
}

/* 27. Page hero overlay — ensure smooth text rendering */
.phi {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* 28. Eyebrow bar badges — consistent hover with labels */
.ebar .lbl {
  transition: border-color .15s ease, box-shadow .15s ease, color .15s ease;
}

/* 29. Scroll-reveal elements — GPU-accelerated entrance */
.reveal {
  will-change: transform, opacity;
}

/* 30. Client badge (marquee) — smooth color transition */
.client-badge {
  transition: color .22s ease;
}

/* 31. Footer column headings — subtle gold accent on hover */
.footer-col h4,
.fb h4 {
  transition: color .15s ease;
}
.footer-col:hover h4,
.fb:hover h4 {
  color: var(--gold);
}

/* 32. Form inputs — consistent focus glow */
.finp:focus,
input:focus,
select:focus,
textarea:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(245,197,24,.12);
  outline: none;
}

/* 33. Portfolio image caption — smoother reveal */
.pcap, .pi-overlay {
  transition: transform .22s cubic-bezier(.4,0,.2,1), opacity .22s ease;
}

/* 34. Related links section — consistent with rlink hover */
.related-links a {
  transition: all .15s ease;
}
.related-links a:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(245,197,24,.1);
}

/* 35. Section heading — subtle text-shadow on section hover */
.sec:hover > .w > .sh h2,
.sec:hover > .w > .shc h2 {
  text-shadow: 0 0 40px rgba(245,197,24,.08);
}

/* 36. Mobile spacing tightening */
@media (max-width: 768px) {
  .sec { padding-top: 40px; padding-bottom: 40px; }
  .sh { margin-bottom: 20px; }
  .ctab { padding: 40px 0; }
  .ph, .page-hero-banner { min-height: 420px; }
}

/* 37. Reduced motion — disable all new animations for accessibility */
@media (prefers-reduced-motion: reduce) {
  .sc, .ic, .card, .sm-card, .rv, .pi, .process-step,
  .team-port-card, .btn, .fi, .fq-item, .faq-item,
  .gallery-item, .cfw-gallery-item, .vtype-card, .reveal {
    will-change: auto;
    transition: none !important;
  }
  .ps:hover, .simg:hover img, .ptw:hover,
  .footer-col:hover h4, .fb:hover h4 {
    transform: none !important;
  }
}

/* ── HUB-SPOKE / INTERNAL LINKS — constrain width, baked in by stamp script ── */
.hub-spoke-links,
.internal-links-section {
  max-width: 1140px;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 24px !important;
  padding-right: 24px !important;
  box-sizing: border-box;
}
.hub-spoke-links h3 {
  font-family: var(--H);
  font-size: 1rem;
  letter-spacing: .06em;
  color: var(--gold) !important;
  margin-bottom: 10px;
}
.hub-spoke-links p { margin: 0; line-height: 2.2; }
.hub-spoke-links a { color: var(--gold) !important; text-decoration: none !important; }
.hub-spoke-links a:hover { color: #fff !important; }

/* ── GALLERY GRIDS — 4 columns, no exceptions ─────────────────────────────── */
.cfw-photo-grid,
.ip-gallery-grid,
.port-grid,
.pgrid,
.igrid,
.sgrid,
.gallery-grid,
.photo-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 10px;
}
.cfw-photo-grid a,
.cfw-photo-grid img,
.ip-gallery-grid img,
.port-grid .pi,
.pgrid .pi,
.igrid a,
.sgrid .sc,
.gallery-grid .gallery-item,
.photo-grid a {
  aspect-ratio: 4/3;
  overflow: hidden;
  border-radius: 4px;
  display: block;
}
.cfw-photo-grid img,
.ip-gallery-grid img,
.port-grid .pi img,
.pgrid .pi img,
.igrid a img,
.sgrid .sc img,
.gallery-grid .gallery-item img,
.photo-grid a img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
}
.cfw-photo-grid a:hover img,
.ip-gallery-grid a:hover img,
.port-grid .pi:hover img,
.pgrid .pi:hover img,
.gallery-grid .gallery-item:hover img,
.photo-grid a:hover img {
  transform: scale(1.04);
}
/* Mobile — 2 columns on small screens */
@media (max-width: 768px) {
  .cfw-photo-grid,
  .ip-gallery-grid,
  .port-grid,
  .pgrid,
  .igrid,
  .sgrid,
  .gallery-grid,
  .photo-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 480px) {
  .cfw-photo-grid,
  .ip-gallery-grid,
  .port-grid,
  .pgrid,
  .igrid,
  .sgrid,
  .gallery-grid,
  .photo-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

/* Hide loose hero elements that escaped their container */
main > .hero-bg{display:none!important}
main > .hero-text{display:none!important}

/* ── HERO LEAK FIX — hide floating hero-bg/hero-text outside containers ── */
body > .hero-bg,
body > .hero-text,
main > .hero-bg,
main > .hero-text,
div > .hero-bg:not(.hero .hero-bg):not(.page-hero-banner .hero-bg),
div > .hero-text:not(.hero .hero-text):not(.page-hero-banner .hero-text) {
  display: none !important;
}

/* ════════════════════════════════════════════════════════════
   UNIVERSAL HERO H1 OVERLAY — works on ALL page types
   The H1 that follows .page-hero-banner visually overlaps
   the bottom of the hero image via negative margin-top
   ════════════════════════════════════════════════════════════ */

/* 1. Remove bottom gap on banner so overlay works */
.page-hero-banner {
  margin-bottom: 0 !important;
}

/* 2. The phb-overlay div (injected on some pages) */
.phb-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 10;
  padding: 32px 40px 40px;
  background: linear-gradient(to top, rgba(0,0,0,.82) 0%, rgba(0,0,0,.4) 60%, transparent 100%);
}
.phb-overlay h1 {
  font-family: var(--D, 'Bebas Neue', var(--H)) !important;
  font-size: clamp(2.4rem, 6vw, 5rem) !important;
  font-weight: 900 !important;
  color: #fff !important;
  line-height: 1 !important;
  text-shadow: 0 2px 20px rgba(0,0,0,.7) !important;
  margin: 0 !important;
  letter-spacing: .01em !important;
}

/* 3. For pages WITHOUT phb-overlay div: pull the content container
   up so the H1 inside it visually overlaps the hero image.
   Uses negative margin-top to pull up, with gradient background strip */
.page-hero-banner + .content,
.page-hero-banner + div > .content,
.page-hero-banner + .w.page-body,
.page-hero-banner + .container {
  position: relative;
  z-index: 5;
}

/* 4. The H1 inside the content area — keep it large and impactful */
.content > h1,
.w.page-body > nav + h1,
.container > nav + h1,
.content > nav + h1 {
  font-family: var(--D, 'Bebas Neue', var(--H)) !important;
  font-size: clamp(2.4rem, 6vw, 4.5rem) !important;
  font-weight: 900 !important;
  line-height: 1.05 !important;
  color: #fff !important;
  margin-bottom: 20px !important;
  border-left: 5px solid var(--gold);
  padding-left: 20px;
}

/* 5. ip-main pages — H1 already looks great in the split layout, keep as-is */
.ip-main h1 {
  font-size: clamp(2rem, 5vw, 3.4rem) !important;
}

@media(max-width: 768px) {
  .phb-overlay { padding: 20px 20px 24px; }
  .phb-overlay h1 { font-size: clamp(1.8rem, 8vw, 2.8rem) !important; }
  .content > h1, .w.page-body > nav + h1 { font-size: clamp(1.8rem, 7vw, 2.6rem) !important; }
}

.cfw-gallery{display:grid;gap:12px;width:100%}
.cfw-gallery-cols-4{grid-template-columns:repeat(4,1fr)}
.cfw-gallery-cols-3{grid-template-columns:repeat(3,1fr)}
.cfw-gallery-cols-2{grid-template-columns:repeat(2,1fr)}
.cfw-gallery .cfw-gallery-item img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius,8px);display:block}
@media(max-width:768px){.cfw-gallery-cols-4,.cfw-gallery-cols-3{grid-template-columns:repeat(2,1fr)}}

/* phb-overlay: always sits at bottom of banner, regardless of height */
.page-hero-banner {
  display: block;
}
.page-hero-banner img:first-child {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  z-index: 0 !important;
}

/* ── ADDITIONAL GALLERY FIXES ──────────────────────────────────────────────── */

/* 1. .grid class used in page body as a plain photo grid (no CSS defined) */
.grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 10px;
  width: 100%;
  max-width: 1140px;
  margin: 0 auto;
}
.grid img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: 6px;
  display: block;
}

/* 2. .cfw-photo-grid — inline <style> gets stripped by stamp script,
   so these rules must live here permanently */
.cfw-photo-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 12px;
  width: 100%;
}
.cfw-photo-grid a {
  display: block;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.08);
  transition: border-color .2s, transform .2s;
  aspect-ratio: 4/3;
}
.cfw-photo-grid a:hover {
  border-color: var(--gold, #FFD700);
  transform: translateY(-3px);
}
.cfw-photo-grid img {
  width: 100%;
  height: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
}

/* 3. standalone .cfw-gallery (catalog injected) must sit in a constrained container */
.cfw-gallery:not(.cfw-gallery-cols-4):not(.cfw-gallery-cols-3):not(.cfw-gallery-cols-2) {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 24px;
  box-sizing: border-box;
}
.cfw-gallery-title {
  font-family: var(--H);
  font-size: 1.1rem;
  color: var(--gold);
  letter-spacing: .06em;
  margin-bottom: 14px;
  text-transform: uppercase;
}

@media (max-width: 768px) {
  .grid,
  .cfw-photo-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}


/* ═══════════════════════════════════════════════════════════════════
   MOBILE FIRST — COMPREHENSIVE FIX
   Consolidated, authoritative mobile rules. Overrides fragmented rules above.
   ═══════════════════════════════════════════════════════════════════ */

/* ── GLOBAL OVERFLOW CONTAINMENT ─────────────────────────────────── */
html, body {
  overflow-x: hidden !important;
  max-width: 100vw;
}

/* ── HEADER / NAV ─────────────────────────────────────────────────── */
@media (max-width: 768px) {

  /* Prevent header from causing horizontal scroll */
  header {
    overflow: hidden !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  /* hbar: logo left, phone center, hamburger right */
  .hbar {
    max-width: 100% !important;
    padding: 0 16px !important;
    gap: 0 !important;
    justify-content: space-between !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  /* Logo stays compact */
  .hbar .logo {
    flex-shrink: 0;
    max-width: 120px;
  }
  .hbar .logo img {
    max-height: 36px;
    width: auto;
  }

  /* Desktop nav: hidden (already set, reinforcing) */
  .hbar nav, .hnav {
    display: none !important;
  }

  /* hright: collapse to essentials only */
  .hright {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex-shrink: 0 !important;
    overflow: hidden !important;
  }

  /* Hide desktop-only header buttons/links on mobile */
  .hright .hphone[href^="mailto"],
  .hright a[href="/portfolio/"],
  .hright a[href*="estimate"]:not(.btn),
  .hright .gsm,
  .hright .gmb,
  .hright .hstar,
  .hsm { display: none !important; }

  /* Keep call button + hamburger */
  .hphone[href^="tel"] {
    display: flex !important;
    font-size: .75rem !important;
    padding: 7px 10px !important;
    white-space: nowrap;
  }

  /* Show hamburger */
  .hambtn {
    display: flex !important;
    flex-shrink: 0;
    padding: 8px !important;
  }

  /* Hide Google reviews star strip */
  .gmb-row, a.gmb-strip { display: none !important; }

  /* ── TICKER/TRIB ──────────────────────────────────────────────────
     trib already has overflow:hidden, but the inner animation
     can still cause reflow — contain it */
  .trib {
    overflow: hidden !important;
    max-width: 100vw !important;
  }
  .trib-inner {
    /* Keep animation but ensure no reflow outside container */
    will-change: transform;
  }

  /* ── LOGO BELT ────────────────────────────────────────────────────
     logo-belt-wrap already has overflow:hidden — reinforce */
  .logo-belt-section {
    overflow: hidden !important;
    max-width: 100vw !important;
  }
  .logo-belt-wrap {
    overflow: hidden !important;
    max-width: 100% !important;
  }

  /* ── PAGE CONTAINERS ──────────────────────────────────────────────*/
  .w, .content, .container {
    max-width: 100% !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box !important;
    overflow: hidden;
  }

  /* ── HERO BANNER ──────────────────────────────────────────────────*/
  .page-hero-banner {
    min-height: 320px !important;
    overflow: hidden !important;
  }
  .phb-content, .phb-overlay {
    padding: 20px 16px !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .phb-overlay h1,
  .phb-content h1,
  .page-hero-banner h1 {
    font-size: clamp(1.6rem, 7vw, 2.4rem) !important;
    line-height: 1.1 !important;
  }

  /* ── SECTION GRIDS → single column ───────────────────────────────*/
  .g2, .g3, .g4,
  [class*="grid-2"], [class*="grid-3"], [class*="grid-4"],
  .service-grid, .ip-why-grid, .ip-vtype-grid,
  .sm-hub, .tbadges, .process-grid, .services,
  .rev-grid, .ccols {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  /* ── BUTTONS ──────────────────────────────────────────────────────*/
  .btn {
    display: inline-block;
    white-space: nowrap;
    font-size: .9rem !important;
  }

  /* CTA bar: stack vertically */
  .ctab, .cta-bar, .ctai {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px !important;
  }
  .ctab .btn, .cta-bar .btn {
    text-align: center !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  /* ── FOOTER ───────────────────────────────────────────────────────*/
  .fg {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }
  footer {
    overflow: hidden !important;
    max-width: 100vw !important;
  }

  /* ── TABLES ───────────────────────────────────────────────────────*/
  table {
    display: block !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    max-width: 100% !important;
  }

  /* ── TYPOGRAPHY ───────────────────────────────────────────────────*/
  .sh h2, h2 { font-size: clamp(1.5rem, 6vw, 2.2rem) !important; }
  h3 { font-size: clamp(1.1rem, 4.5vw, 1.5rem) !important; }
  p, li { font-size: clamp(.88rem, 3.5vw, 1rem); line-height: 1.65; }

  /* ── SERVICE PAIN BAR ─────────────────────────────────────────────*/
  #service-pain-bar > div {
    grid-template-columns: 1fr !important;
    max-width: 100% !important;
  }
  #service-pain-bar > div > div {
    border-right: none !important;
    border-bottom: 1px solid #222 !important;
    padding: 20px 0 !important;
  }

  /* ── STATS ROW ────────────────────────────────────────────────────*/
  [style*="repeat(4,1fr)"] {
    grid-template-columns: repeat(2, 1fr) !important;
  }

}

/* ── 480px and below ──────────────────────────────────────────────── */
@media (max-width: 480px) {

  .hbar { padding: 0 12px !important; }

  .phb-overlay h1,
  .phb-content h1,
  .page-hero-banner h1 {
    font-size: clamp(1.4rem, 8vw, 2rem) !important;
  }

  .page-hero-banner {
    min-height: 280px !important;
  }

  /* 4-col stat bars → 2 col on small phones */
  [style*="repeat(4,1fr)"] {
    grid-template-columns: 1fr 1fr !important;
  }

  /* Hero CTAs: full width stacked */
  .page-hero-banner .btn,
  .phb-content .btn,
  .phb-overlay .btn {
    width: 100% !important;
    text-align: center !important;
    box-sizing: border-box !important;
  }

  p, li { font-size: .86rem !important; }

}

/* ═══════════════════════════════════════════════════════════════════
   MOBILE INLINE STYLE OVERRIDES — !important needed because these 
   elements have inline style= attributes that override class rules.
   Targets: homepage review grid, service pain bar, video grid,
   any inline grid-template-columns on mobile.
   ═══════════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {

  /* Override inline grid-template-columns:repeat(3,1fr) — e.g. review grid */
  [style*="grid-template-columns:repeat(3"] {
    grid-template-columns: 1fr !important;
  }
  /* Override inline grid-template-columns:repeat(4,1fr) — pain bar, stats */
  [style*="grid-template-columns:repeat(4"] {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  /* Override inline display:grid with repeat(2,1fr) — video grid etc */
  [style*="grid-template-columns:repeat(2"],
  [style*="grid-template-columns: repeat(2"] {
    grid-template-columns: 1fr !important;
  }
  /* Override inline grid-template-columns:1fr 1fr — two-col inline grids */
  [style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 1fr !important;
  }
  /* Override inline max-width hard values that might restrict container */
  /* Note: max-width is fine on mobile — it constrains, not expands */

  /* Service pain bar — 4-col inline grid */
  #service-pain-bar > div[style],
  [style*="repeat(4,1fr)"] {
    grid-template-columns: 1fr !important;
    max-width: 100% !important;
  }
  /* Pain bar child columns — remove right border, add bottom */
  #service-pain-bar [style*="border-right"] {
    border-right: none !important;
    border-bottom: 1px solid #333 !important;
    padding: 16px 0 !important;
  }

  /* Review grid — enforce single column */
  #home-reviews,
  .rev-grid {
    grid-template-columns: 1fr !important;
    display: grid !important;
  }

  /* Any inline-styled grid inside .w or .content → collapse to 1 col */
  .w > [style*="display:grid"],
  .w > [style*="display: grid"],
  .content > [style*="display:grid"],
  .content > [style*="display: grid"] {
    grid-template-columns: 1fr !important;
  }

  /* Video testimonials 2-col inline grid */
  [style*="grid-template-columns:repeat(2,1fr)"][style*="max-width:960px"] {
    grid-template-columns: 1fr !important;
    max-width: 100% !important;
  }

  /* Prevent any element from causing horizontal overflow */
  * {
    max-width: 100vw;
    box-sizing: border-box;
  }
  img, video, iframe, svg {
    max-width: 100% !important;
    height: auto;
  }
}

@media (max-width: 480px) {
  /* Tighten everything on small phones */
  [style*="grid-template-columns:repeat(3"] {
    grid-template-columns: 1fr !important;
  }
  [style*="grid-template-columns:repeat(4"] {
    grid-template-columns: 1fr !important;
  }
  [style*="grid-template-columns:repeat(2"] {
    grid-template-columns: 1fr !important;
  }
  /* Font size floor */
  h1 { font-size: clamp(1.6rem, 8vw, 2.2rem) !important; }
  h2 { font-size: clamp(1.3rem, 6vw, 1.8rem) !important; }
}

/* ── INDUSTRY PHOTO CARDS ──────────────────────────────────────────── */
.ind-photo-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.ind-photo-card{position:relative;overflow:hidden;border-radius:var(--radius);aspect-ratio:4/3;display:block;text-decoration:none}
.ind-photo-card img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;display:block}
.ind-photo-card:hover img{transform:scale(1.06)}
.ind-photo-card span{position:absolute;bottom:0;left:0;right:0;padding:10px 12px;background:linear-gradient(transparent,rgba(0,0,0,.78));color:#fff;font-family:var(--H);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em}
@media(max-width:768px){.ind-photo-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.ind-photo-grid{grid-template-columns:repeat(2,1fr);gap:6px}}

/* ── HERO SUB NEON SIGN FLICKER ─────────────────────────────────────── */
@keyframes neon-flicker {
  0%,19%,21%,23%,25%,54%,56%,100% {
    opacity:1;
    text-shadow:0 0 8px rgba(255,255,255,.9),0 0 20px rgba(255,255,255,.5);
  }
  20%,24%,55% {
    opacity:.4;
    text-shadow:none;
  }
}
.page-hero-banner .hero-sub,
.hero-sub {
  animation: neon-flicker 4s infinite !important;
}
/* ── HERO EYEBROW NEON SIGN FLICKER ─────────────────────────────────── */
@keyframes eyebrow-flicker {
  0%,18%,20%,22%,60%,62%,64%,100% {
    opacity:1;
    text-shadow:0 0 10px rgba(255,215,0,.9),0 0 24px rgba(255,215,0,.5);
  }
  19%,21%,61%,63% {
    opacity:.25;
    text-shadow:none;
  }
}
.page-hero-banner .hero-eyebrow,
.hero-eyebrow {
  animation: eyebrow-flicker 5s infinite !important;
}

/* ── AUTO-CONTAIN LOOSE BODY CONTENT (2026-04-23) ──────────────────────────
   Direct children of <main> that aren't hero/full-width elements get the
   standard 960px max-width with auto centering. Fixes bottom-of-page
   edge-to-edge bleed on pages with bare h2/p/section/div children of main.
   Inline style max-width values override this rule via CSS specificity.
*/
main > h1,
main > h2,
main > h3,
main > h4,
main > p,
main > ul:not(.services),
main > ol,
main > blockquote,
main > figure,
main > table,
main > section:not(.page-hero-banner):not(.hero):not(.hero-banner):not(.full-width):not([class*="full-bleed"]):not([class*="hero"]),
main > div:not(.container):not(.content):not(.page-hero-banner):not(.hero):not(.hero-banner):not(.full-width):not([class*="hero"]):not([class*="full-bleed"]):not(.vbg-img) {
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
  box-sizing: border-box;
}

/* The .services list had columns:2 styling; preserve it but contain its width */
main > ul.services {
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 48px;
  padding-right: 48px;
  box-sizing: border-box;
}

/* Prevent double-padding on nested containers */
main > section > .container,
main > section > .content,
main > div > .container,
main > div > .content {
  padding-left: 0;
  padding-right: 0;
  max-width: 100%;
}

/* Wider constraint for explicit 1100+ content blocks that just need centering */
main > section[style*="max-width:1100"],
main > section[style*="max-width: 1100"],
main > div[style*="max-width:1100"],
main > div[style*="max-width: 1100"],
main > section[style*="max-width:1200"],
main > section[style*="max-width: 1200"],
main > div[style*="max-width:1200"],
main > div[style*="max-width: 1200"] {
  margin-left: auto;
  margin-right: auto;
}

/* Photo gallery block placeholder — keep it invisible and zero-height */
main > .photo-gallery-block,
main > section.photo-gallery-block {
  max-width: 960px;
}


/* ═══════════════════════════════════════════════════════════════ */
/* HOMEPAGE HEAVY RESTRUCTURE — NEW COMPONENT STYLES (2026-05-08) */
/* ═══════════════════════════════════════════════════════════════ */

/* ── BENTO GALLERY ─────────────────────────────────────────────── */
.bento-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-auto-rows:160px;
  gap:14px;
  max-width:1200px;
  margin:0 auto;
}
.bento-grid .b-tile{
  position:relative;
  border-radius:14px;
  overflow:hidden;
  background:#0a0a0a;
  border:1px solid rgba(255,255,255,.06);
  cursor:pointer;
  transition:transform .25s ease, border-color .25s ease;
}
.bento-grid .b-tile:hover{
  transform:translateY(-3px);
  border-color:rgba(245,197,24,.4);
}
.bento-grid .b-tile img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .35s ease;
}
.bento-grid .b-tile:hover img{ transform:scale(1.05); }
.bento-grid .b-tile .b-cap{
  position:absolute;
  left:0;right:0;bottom:0;
  padding:14px 16px;
  background:linear-gradient(to top,rgba(0,0,0,.85) 0%,rgba(0,0,0,.0) 100%);
  color:#fff;
  font-family:'Bebas Neue',sans-serif;
  font-size:1rem;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.bento-grid .b-tile.b-hero{ grid-column:span 2; grid-row:span 2; }
.bento-grid .b-tile.b-wide{ grid-column:span 2; grid-row:span 1; }
.bento-grid .b-tile.b-tall{ grid-column:span 1; grid-row:span 2; }
@media(max-width:900px){
  .bento-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:140px}
  .bento-grid .b-tile.b-hero{grid-column:span 2;grid-row:span 2}
  .bento-grid .b-tile.b-wide{grid-column:span 2;grid-row:span 1}
  .bento-grid .b-tile.b-tall{grid-column:span 1;grid-row:span 2}
}
@media(max-width:540px){
  .bento-grid{grid-template-columns:1fr;grid-auto-rows:200px;gap:12px}
  .bento-grid .b-tile,.bento-grid .b-tile.b-hero,.bento-grid .b-tile.b-wide,.bento-grid .b-tile.b-tall{grid-column:span 1;grid-row:span 1}
}

/* ── INTERACTIVE PRICING SLIDER ─────────────────────────────────── */
.price-slider{
  max-width:920px;
  margin:0 auto;
  background:linear-gradient(135deg,rgba(245,197,24,.05) 0%,rgba(20,20,20,.6) 100%);
  border:1px solid rgba(245,197,24,.2);
  border-radius:16px;
  padding:36px 32px;
}
.price-slider .ps-readout{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:24px;
  margin-bottom:28px;
  padding-bottom:24px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.price-slider .ps-readout > div{ text-align:center; }
.price-slider .ps-readout .ps-num{
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(1.8rem,4.5vw,2.8rem);
  color:#FFD700;
  line-height:1;
  font-weight:900;
}
.price-slider .ps-readout .ps-lbl{
  font-family:'Barlow Condensed',sans-serif;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.18em;
  color:rgba(255,255,255,.55);
  margin-top:6px;
}
.price-slider .ps-track{
  position:relative;
  margin:18px 0 8px;
}
.price-slider input[type="range"]{
  width:100%;
  height:6px;
  background:rgba(255,255,255,.1);
  border-radius:3px;
  outline:none;
  -webkit-appearance:none;
  appearance:none;
}
.price-slider input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none;
  width:24px;
  height:24px;
  border-radius:50%;
  background:#FFD700;
  cursor:pointer;
  box-shadow:0 2px 8px rgba(245,197,24,.5);
  transition:transform .15s ease;
}
.price-slider input[type="range"]::-webkit-slider-thumb:hover{ transform:scale(1.15); }
.price-slider input[type="range"]::-moz-range-thumb{
  width:24px;height:24px;border-radius:50%;background:#FFD700;cursor:pointer;border:none;
  box-shadow:0 2px 8px rgba(245,197,24,.5);
}
.price-slider .ps-ticks{
  display:flex;
  justify-content:space-between;
  margin-top:8px;
  font-family:'Barlow Condensed',sans-serif;
  font-size:.74rem;
  color:rgba(255,255,255,.6);
  letter-spacing:.04em;
}
.price-slider .ps-cta{
  display:flex;
  justify-content:center;
  margin-top:24px;
  gap:12px;
  flex-wrap:wrap;
}

/* ── PROCESS TIMELINE ───────────────────────────────────────────── */
.process-timeline{
  position:relative;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:32px;
  max-width:1080px;
  margin:0 auto;
  padding:20px 0;
}
.process-timeline::before{
  content:"";
  position:absolute;
  top:38px;
  left:12%;right:12%;
  height:2px;
  background:linear-gradient(to right,rgba(245,197,24,.5) 0%,rgba(245,197,24,.5) 100%);
  z-index:0;
}
.process-timeline .pt-step{
  position:relative;
  z-index:1;
  text-align:center;
  padding:0 12px;
}
.process-timeline .pt-day{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:76px;
  height:76px;
  border-radius:50%;
  background:#0a0a0a;
  border:2px solid #FFD700;
  font-family:'Bebas Neue',sans-serif;
  font-size:1.2rem;
  color:#FFD700;
  letter-spacing:.04em;
  margin:0 auto 18px;
  position:relative;
}
.process-timeline .pt-day strong{
  font-size:1.8rem;
  line-height:1;
  display:block;
}
.process-timeline .pt-title{
  font-family:'Bebas Neue',sans-serif;
  font-size:1.5rem;
  color:#fff;
  letter-spacing:.02em;
  margin:0 0 10px;
  text-transform:uppercase;
}
.process-timeline .pt-text{
  font-family:'Barlow Condensed',sans-serif;
  color:rgba(255,255,255,.7);
  font-size:.95rem;
  line-height:1.6;
  margin:0;
}
@media(max-width:780px){
  .process-timeline{grid-template-columns:1fr;gap:24px}
  .process-timeline::before{display:none}
}

/* ── BEFORE/AFTER SLIDER ────────────────────────────────────────── */
.ba-slider{
  position:relative;
  max-width:1100px;
  margin:0 auto;
  border-radius:14px;
  overflow:hidden;
  user-select:none;
  aspect-ratio:16/9;
  background:#000;
  border:1px solid rgba(255,255,255,.1);
}
.ba-slider .ba-img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.ba-slider .ba-after-wrap{
  position:absolute;
  inset:0;
  width:50%;
  overflow:hidden;
}
.ba-slider .ba-after-wrap .ba-img{
  width:200%;
  max-width:none;
}
.ba-slider .ba-handle{
  position:absolute;
  top:0;bottom:0;
  left:50%;
  width:4px;
  background:#FFD700;
  cursor:ew-resize;
  z-index:5;
  box-shadow:0 0 14px rgba(245,197,24,.6);
}
.ba-slider .ba-handle::after{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  width:48px;
  height:48px;
  border-radius:50%;
  background:#FFD700;
  border:3px solid #0a0a0a;
  box-shadow:0 4px 12px rgba(0,0,0,.4);
}
.ba-slider .ba-handle::before{
  content:"⇄";
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  z-index:6;
  font-size:1.3rem;
  color:#0a0a0a;
  font-weight:900;
}
.ba-slider .ba-tag{
  position:absolute;
  top:18px;
  padding:6px 14px;
  background:rgba(0,0,0,.7);
  color:#fff;
  font-family:'Bebas Neue',sans-serif;
  letter-spacing:.1em;
  font-size:.85rem;
  border-radius:4px;
  z-index:4;
}
.ba-slider .ba-tag.ba-tag-before{ left:18px; }
.ba-slider .ba-tag.ba-tag-after{ right:18px; background:rgba(245,197,24,.85);color:#0a0a0a; }

/* ── FINAL CTA SECTION ──────────────────────────────────────────── */
.final-cta{
  background:linear-gradient(135deg,#0a0a0a 0%,#161616 100%);
  border-top:3px solid #FFD700;
  border-bottom:3px solid #FFD700;
  padding:64px 24px;
  text-align:center;
}
.final-cta h2{
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(2rem,5vw,3.5rem);
  color:#fff;
  letter-spacing:.02em;
  margin:0 0 12px;
  text-transform:uppercase;
}
.final-cta h2 span{ color:#FFD700; }
.final-cta p{
  font-family:'Barlow Condensed',sans-serif;
  font-size:1.1rem;
  color:rgba(255,255,255,.75);
  max-width:580px;
  margin:0 auto 28px;
  line-height:1.55;
}
.final-cta .fc-buttons{
  display:flex;
  gap:14px;
  justify-content:center;
  flex-wrap:wrap;
}
.final-cta .fc-trust{
  margin-top:24px;
  font-family:'Barlow Condensed',sans-serif;
  font-size:.85rem;
  color:rgba(255,255,255,.5);
  letter-spacing:.04em;
}


/* ═══════════════════════════════════════════════════════════════════════
   CONTENT-OUTSIDE-CONTAINER FIX
   ───────────────────────────────────────────────────────────────────────
   Some pages have HTML where ad-hoc <h2>, <p>, <div>, <ul>, <ol>, <nav>,
   <aside>, <details>, and <table> elements sit as direct children of <main>
   without being wrapped in a .content container. This causes them to span
   the full viewport width and break visual rhythm.
   
   Catch any direct child of <main> that is one of those loose tags and
   center it within the same max-width as .content (900px). This is a
   pure visual fix — does NOT modify HTML structure.
   ═══════════════════════════════════════════════════════════════════════ */
main > h1,
main > h2,
main > h3,
main > h4,
main > h5,
main > h6,
main > p,
main > ul,
main > ol,
main > nav,
main > aside,
main > details,
main > table,
main > pre,
main > blockquote,
main > .faq-item,
main > .info-gain-data,
main > .content-wrap,
main > .cta-bar,
main > .hub-spoke-links {
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
  box-sizing: border-box;
}

/* Loose <div> children of <main> that aren't already containers also need centering.
   Excludes hero banner, sections, full-width CTAs, and known-correct wrappers. */
main > div:not(.page-hero-banner):not([class*="hero"]):not(.cta-block):not([class*="trib"]):not([class*="full-width"]) {
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
  box-sizing: border-box;
}

/* Sections that contain their own .content wrapper should NOT get extra padding */
main > section { width: 100%; }

/* Gallery section needs proper centering — was sitting flush left on broken pages */
main > .cfw-gallery-section,
main .cfw-gallery-section,
.cfw-gallery-section .content {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
  box-sizing: border-box;
}
.cfw-gallery {
  display: grid;
  gap: 12px;
  width: 100%;
}
.cfw-gallery.cfw-gallery-cols-4 {
  grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 900px) {
  .cfw-gallery.cfw-gallery-cols-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .cfw-gallery.cfw-gallery-cols-4 { grid-template-columns: 1fr; }
}
.cfw-gallery-item {
  border-radius: 8px;
  overflow: hidden;
  background: #1a1a1a;
}
.cfw-gallery-item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 3/2;
}

/* Mobile: tighter padding */
@media (max-width: 600px) {
  main > h1, main > h2, main > h3, main > h4, main > h5, main > h6,
  main > p, main > ul, main > ol, main > nav, main > aside, main > details,
  main > table, main > pre, main > blockquote, main > .faq-item, main > .info-gain-data,
  main > .content-wrap, main > .cta-bar, main > .hub-spoke-links,
  main > div:not(.page-hero-banner):not([class*="hero"]):not(.cta-block):not([class*="trib"]):not([class*="full-width"]) {
    padding-left: 18px;
    padding-right: 18px;
  }
}
/* end CONTENT-OUTSIDE-CONTAINER FIX */
/* ─── HERO OVERLAY POSITIONING FIX ─────────────────────────────────────
   Some pages (vehicle-wraps-chicago and similar) use a simplified hero
   with .page-hero-banner having an inline style="overflow:hidden;..." 
   that lacks position:relative, causing .phb-overlay (which is absolutely
   positioned) to fall back to the body and render flush at viewport edge.
   
   Force position:relative on .page-hero-banner so .phb-overlay anchors
   correctly. The overlay's own padding (32px 40px 40px) then takes effect.
   ─────────────────────────────────────────────────────────────────────── */
.page-hero-banner { position: relative !important; }

/* For pages where the H1 follows directly inside hero (no .phb-overlay),
   ensure it has its own padding to match the rest of the page */
.page-hero-banner h1:not(.phb-overlay h1):not(.hero-h2) {
  padding: 24px 24px;
  margin: 0;
}

/* Loose <p class="hero-h2"> elements directly in <main> (a subhead pattern
   on some pages where the H2 sits OUTSIDE the hero banner) need centering */
main > p.hero-h2,
main > .hero-h2 {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 24px;
  box-sizing: border-box;
}

/* And the lone <p class="last-updated"> bits sometimes also need it */
main > p.last-updated {
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
  box-sizing: border-box;
}
/* end HERO OVERLAY POSITIONING FIX */


/* ─── HERO TEXT ALIGNMENT — match body column ───────────────────────
   Body content is centered in max-width:960px. Hero overlay was
   spanning full viewport with H1 starting at 40px padding (overlay
   left edge), making it visually misaligned with body text below.
   ──────────────────────────────────────────────────────────────────── */
.page-hero-banner .phb-overlay {
  padding: 0 !important;
  background: linear-gradient(to top, rgba(0,0,0,.85) 0%, rgba(0,0,0,.45) 60%, transparent 100%) !important;
}
.page-hero-banner .phb-overlay > * {
  max-width: 960px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 32px 24px 40px !important;
  box-sizing: border-box !important;
}
.page-hero-banner .phb-overlay h1 {
  text-align: left !important;
}

/* Subhead .hero-h2 directly in main: center within body column */
main > p.hero-h2,
main > .hero-h2 {
  max-width: 960px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 24px 24px 0 !important;
  box-sizing: border-box !important;
  text-align: left !important;
}
/* end HERO TEXT ALIGNMENT */

/* ============================================================
   HONEYPOT — Hide spam-catcher fields visually but keep in DOM
   Fixes CFW-001 (visible "Don't fill:" / "Do not fill:" labels)
   ============================================================ */
.fhoney,
.honeypot {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.fhoney input,
.honeypot input,
.fhoney label,
.honeypot label {
  display: none !important;
}


/* ════════════════════════════════════════════════════════
   CFW-006 — Slimmed nav (Services | Industries | Gallery | Pricing | Get a Quote)
   ════════════════════════════════════════════════════════ */

/* Direct top-level link items (Gallery, Pricing) */
nav[aria-label="Main navigation"] .ni-link {
  display: flex;
  align-items: center;
}
nav[aria-label="Main navigation"] .ni-link > a {
  color: inherit;
  text-decoration: none;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 600;
  font-size: 0.95rem;
  padding: 8px 14px;
  letter-spacing: 0.01em;
}
nav[aria-label="Main navigation"] .ni-link > a:hover {
  color: #FFD700;
}

/* Sticky yellow Get-a-Quote CTA in nav */
nav[aria-label="Main navigation"] .nav-cta-quote {
  background: #FFD700;
  color: #0A0A0A !important;
  font-family: 'Bebas Neue', 'Barlow Condensed', sans-serif;
  font-weight: 900;
  font-size: 0.95rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  padding: 10px 18px;
  border-radius: 4px;
  margin-left: 12px;
  display: inline-flex;
  align-items: center;
  transition: transform 0.15s ease, background 0.15s ease;
}
nav[aria-label="Main navigation"] .nav-cta-quote:hover {
  background: #FFD700;
  transform: translateY(-1px);
}

/* Mobile responsive: collapse nav into hamburger at narrow widths */
@media (max-width: 900px) {
  nav[aria-label="Main navigation"] .ni-link {
    width: 100%;
  }
  nav[aria-label="Main navigation"] .nav-cta-quote {
    margin: 8px 0;
    align-self: flex-start;
  }
}
/* end CFW-006 slimmed nav */


/* CFW-GALLERY-FIX-2026-05-16 */
/* Gallery styling — applies regardless of .container wrapper */
.cfw-gallery-section {
  margin: 48px auto;
  max-width: 1200px;
  padding: 0 24px;
}
.cfw-gallery-section h2 {
  text-align: center;
  margin-bottom: 28px;
  font-family: var(--H, 'Bebas Neue', sans-serif);
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  letter-spacing: .01em;
  color: #fff;
}
.cfw-gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  max-width: 1200px;
  margin: 0 auto;
  justify-content: center;
  align-items: stretch;
}
.cfw-gallery.cfw-gallery-cols-2 { grid-template-columns: repeat(2, 1fr); }
.cfw-gallery.cfw-gallery-cols-3 { grid-template-columns: repeat(3, 1fr); }
.cfw-gallery.cfw-gallery-cols-4 { grid-template-columns: repeat(4, 1fr); }
.cfw-gallery.cfw-gallery-cols-6 { grid-template-columns: repeat(6, 1fr); }
.cfw-gallery-item {
  margin: 0;
  overflow: hidden;
  border-radius: 8px;
  background: #0F0F0F;
  border: 1px solid #1f1f1f;
}
.cfw-gallery-item img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  transition: transform .25s ease;
}
.cfw-gallery-item:hover img { transform: scale(1.03); }
@media(max-width: 900px) {
  .cfw-gallery,
  .cfw-gallery.cfw-gallery-cols-3,
  .cfw-gallery.cfw-gallery-cols-4,
  .cfw-gallery.cfw-gallery-cols-6 { grid-template-columns: repeat(2, 1fr); }
}
@media(max-width: 480px) {
  .cfw-gallery,
  .cfw-gallery.cfw-gallery-cols-3,
  .cfw-gallery.cfw-gallery-cols-4,
  .cfw-gallery.cfw-gallery-cols-6 { grid-template-columns: 1fr; }
}


/* ═══════════════════════════════════════════════════════════════════
   HERO OVERLAY ANCHOR FIX (2026-05-23)
   
   Problem: .phb-overlay was position:absolute with no top/bottom anchor.
   When overlay content (H1 + byline + Quick Answer block) exceeded banner
   height (~580px), overlay positioned to its natural location placing
   its top above the banner. Visible result: hero content bleeds up into
   the header area on pages with verbose hero content.
   
   Fix: anchor overlay with inset:auto 0 0 0 (bottom-aligned, full width).
   Banner overflow:hidden clips any overflow. Overlay padding-bottom keeps
   content visible above bottom edge.
   ═══════════════════════════════════════════════════════════════════ */
.page-hero-banner {
  position: relative !important;
  display: block !important;
  overflow: hidden !important;
}

.page-hero-banner > img:first-of-type {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  z-index: 0 !important;
}

.page-hero-banner .phb-overlay {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  top: auto !important;
  max-height: 100% !important;
  overflow: hidden !important;
  z-index: 2 !important;
  background: linear-gradient(to top, rgba(0,0,0,.92) 0%, rgba(0,0,0,.65) 50%, rgba(0,0,0,.15) 100%) !important;
  padding: 24px 0 !important;
}

.page-hero-banner .phb-overlay > * {
  max-width: 960px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 24px !important;
  padding-right: 24px !important;
  box-sizing: border-box !important;
}

.page-hero-banner .phb-overlay h1 {
  color: #fff !important;
  text-align: left !important;
  font-family: 'Bebas Neue', sans-serif !important;
  font-size: clamp(2rem, 4.5vw, 3.4rem) !important;
  line-height: 1.05 !important;
  margin: 0 !important;
  text-shadow: 0 2px 16px rgba(0,0,0,.6) !important;
}

.page-hero-banner .phb-overlay h1 span {
  color: #FFD700 !important;
  display: inline !important;
}

/* Byline + Quick Answer often included inside .phb-overlay but render
   better BELOW the hero on the page. Keep them in DOM (for schema/speakable)
   but visually move them below the banner using transform tricks. Simpler:
   relocate via the chrome-injection script (separate fix). For now, scale
   them down inside the overlay and trim height so they fit. */
.page-hero-banner .phb-overlay .article-byline {
  display: none !important; /* Hide visually; can be moved out via JS later */
}
.page-hero-banner .phb-overlay .aeo-answer-block {
  display: none !important; /* Hidden visually; schema/speakable preserved via separate render below */
}

/* On mobile, hero auto-fits with smaller max-height */
@media (max-width: 768px) {
  .page-hero-banner {
    min-height: 280px !important;
    max-height: 420px !important;
  }
  .page-hero-banner .phb-overlay h1 {
    font-size: clamp(1.5rem, 6vw, 2.2rem) !important;
  }
}
/* end HERO OVERLAY ANCHOR FIX */

/* ===== RESKIN PASS: fluid width + footer hub (2026-06-22) ===== */
.content,.container,.content-wrap,.cfw-gallery-section,.internal-links-section,section.w{max-width:min(1680px,94vw) !important;margin-left:auto !important;margin-right:auto !important}

.cfw-footer-hub{background:#0a0a0a;border-top:1px solid #2a2a2a;padding:54px 0 26px;color:#9a9a9a}
.cfw-footer-hub .fh-wrap{max-width:min(1840px,92vw);margin:0 auto;padding:0 28px}
.cfw-footer-hub .fh-top{display:block}
.cfw-footer-hub .fh-brand{margin-bottom:36px}
.cfw-footer-hub .fh-brand .fh-logo{font-family:var(--H,'Bebas Neue');font-size:30px;letter-spacing:1px;color:#fff}
.cfw-footer-hub .fh-brand .fh-logo b{color:#FFD700;font-weight:400}
.cfw-footer-hub .fh-brand p{font-size:15px;margin:8px 0;max-width:520px}
.cfw-footer-hub .fh-certs{font-size:13px;letter-spacing:2px;color:#FFD700}
.cfw-footer-hub .fh-links{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:28px}
.cfw-footer-hub .fh-col h4{font-family:var(--H,'Bebas Neue');font-size:20px;letter-spacing:1px;color:#FFD700;margin:0 0 10px}
.cfw-footer-hub .fh-col a{display:block;font-size:14.5px;color:#bdbdbd;text-decoration:none;padding:3px 0}
.cfw-footer-hub .fh-col a:hover{color:#FFD700}
.cfw-footer-hub .fh-bottom{border-top:1px solid #2a2a2a;margin-top:32px;padding-top:18px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:13px;letter-spacing:.5px}
@media(max-width:900px){.cfw-footer-hub .fh-links{grid-template-columns:repeat(2,1fr);gap:22px}}
.fhoney{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* ===== UNIFIED HEADER (matches homepage) 2026-06-23 ===== */
.cfw-hdr{position:sticky;top:0;z-index:1000;background:#0a0a0a;border-bottom:1px solid #1e1e1e;font-family:"Barlow Condensed",sans-serif}
.cfw-hdr .trib{background:#000!important;color:#FFD700!important;font-size:12px!important;text-align:center!important;padding:6px!important;letter-spacing:1.2px!important;border-bottom:1px solid #2a2a2a!important;animation:none!important;white-space:normal!important;overflow:visible!important;height:auto!important;display:block!important}
.cfw-nav{display:flex;align-items:center;justify-content:space-between;max-width:min(1680px,94vw);margin:0 auto;padding:13px 24px;gap:22px}
.cfw-logo{font-family:"Bebas Neue",sans-serif;font-size:27px;letter-spacing:1px;color:#fff;text-decoration:none;white-space:nowrap}
.cfw-logo b{color:#FFD700;font-weight:400}
.cfw-links{display:flex;align-items:center;gap:24px;margin-left:auto}
.cfw-links>a{color:#cfcfcf;text-decoration:none;font-weight:600;font-size:15px;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}
.cfw-links>a:hover{color:#FFD700}
.cfw-cta{background:#FFD700;color:#0a0a0a!important;padding:10px 19px;border-radius:5px}
.cfw-cta:hover{filter:brightness(1.06)}
.cfw-drop{position:relative}
.cfw-drop>button{background:none;border:0;color:#cfcfcf;font:inherit;font-weight:600;font-size:15px;letter-spacing:.07em;text-transform:uppercase;cursor:pointer;padding:0}
.cfw-drop>button:hover{color:#FFD700}
.cfw-menu{position:absolute;top:150%;left:0;background:#111;border:1px solid #2a2a2a;border-radius:6px;padding:8px;min-width:240px;display:none;flex-direction:column;gap:1px;box-shadow:0 14px 34px rgba(0,0,0,.55);z-index:1001}
.cfw-drop:hover .cfw-menu,.cfw-drop.open .cfw-menu{display:flex}
.cfw-menu a{color:#cfcfcf;text-decoration:none;padding:7px 12px;font-size:14.5px;border-radius:4px;white-space:nowrap}
.cfw-menu a:hover{background:#1c1c1c;color:#FFD700}
.cfw-burger{display:none;background:none;border:0;cursor:pointer;width:38px;height:30px;padding:5px}
.cfw-burger span{display:block;height:3px;background:#FFD700;margin:4px 0;border-radius:2px;transition:.3s}
@media(max-width:980px){
 .cfw-burger{display:block}
 .cfw-links{display:none;position:absolute;top:100%;left:0;right:0;background:#0a0a0a;flex-direction:column;align-items:flex-start;padding:16px 24px;gap:14px;border-bottom:1px solid #2a2a2a}
 .cfw-links.open{display:flex}
 .cfw-menu{position:static;display:flex;border:0;box-shadow:none;padding:2px 0 2px 12px;min-width:0;background:none}
 .cfw-drop:hover .cfw-menu{display:none}.cfw-drop.open .cfw-menu{display:flex}
}

/* ===== CENTER-FIX: center all content wrappers (kill left-veer) 2026-06-23 ===== */
main>section,main>div,main>article,section.sec,.sec,.w,.page-body,.aeo-answer-block,.aeo-answer,.content,.container,.content-wrap,.internal-links-section,.cfw-gallery-section{margin-left:auto !important;margin-right:auto !important}
/* Internal linking matrix - related pages */
.cfw-related{background:var(--surface,#16181A);border-top:1px solid var(--border,rgba(255,255,255,.10));padding:46px 20px}
.cfw-related-inner{max-width:1100px;margin:0 auto}
.cfw-related h2{font-family:'Bebas Neue',sans-serif;color:var(--gold,#FFD700);font-size:27px;letter-spacing:1px;margin:0 0 18px;text-transform:uppercase}
.cfw-related ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:6px 30px}
.cfw-related li{margin:0}
.cfw-related a{color:var(--text,rgba(255,255,255,.85));text-decoration:none;font-size:15px;display:block;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.06);transition:color .18s}
.cfw-related a:hover{color:var(--gold,#FFD700)}

/* ============================================================================
   LAYOUT AXIS REPAIR — 2026-08-09
   Measured, not inferred: at 1440px, 155 of the 175 .content pages rendered
   their article body on more than one horizontal centre axis. Two real causes,
   both fixed here. Everything else on those pages already centres at 960px.
   ========================================================================= */

/* CAUSE 1 — the 2026-06-22 reskin pass widened the article body wrapper to
   94vw with !important, but every `main > *` sibling (h2, p, ul, table, figure,
   section) stayed at the authored 960px. So the intro block, breadcrumb, CTA
   bar and trust strip sat on a 1354px axis while the headings and body copy
   they belong to sat on a 960px axis — a 197px step, left and right, in the
   middle of the article. Restore 960 for the article body only; the wide
   gallery / internal-links / section.w containers keep the fluid width. */
main > .content,
main > .container,
main > .content-wrap,
main > .internal-links-section { max-width: 960px !important; }

/* CAUSE 2 — a shorthand `margin` sets margin-left and margin-right, so any
   `margin: 16px 0 28px` (class rule) or inline `style="margin:1.5rem 0 .5rem"`
   silently cancels the auto-centering above and slams the element against the
   left gutter at x=0 while its neighbours sit at x=240. Author `!important`
   beats an inline declaration, which is what this needs to reach the inline
   cases. Horizontal only — vertical rhythm is left alone. */
main > table,
main > figure,
main > p.last-updated,
main > .supp-image-block { margin-left: auto !important; margin-right: auto !important; }


/* ── CFW consolidated footer (cfw-ft) ─────────────────────────────── */
.cfw-ft{background:#0A0A0A;border-top:2px solid #FFD700;color:rgba(255,255,255,.72);
 font-family:'Barlow Condensed',sans-serif;padding:52px 20px 0}
.cfw-ft-in{max-width:1200px;margin:0 auto}
.cfw-ft-top{display:grid;grid-template-columns:1.4fr repeat(5,1fr);gap:34px 28px;
 padding-bottom:36px;border-bottom:1px solid rgba(255,215,0,.22)}
.cfw-ft-brand .cfw-ft-logo{font-family:'Bebas Neue',sans-serif;font-size:1.6rem;letter-spacing:.04em;
 color:#fff;line-height:1;margin-bottom:12px}
.cfw-ft-brand .cfw-ft-logo b{color:#FFD700;font-weight:400}
.cfw-ft-brand p{margin:0 0 14px;font-size:.95rem;line-height:1.6;color:rgba(255,255,255,.6);max-width:34ch}
.cfw-ft-addr{font-size:.92rem;line-height:1.7;color:rgba(255,255,255,.6)}
.cfw-ft-addr a{color:#FFD700;text-decoration:none;font-weight:700}
.cfw-ft-addr a:hover{text-decoration:underline}
.cfw-ft-certs{margin-top:14px;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;
 color:rgba(255,255,255,.6);line-height:1.9}
.cfw-ft-cta{display:inline-block;margin-top:16px;background:#FFD700;color:#0A0A0A;
 font-family:'Bebas Neue',sans-serif;font-size:1.05rem;letter-spacing:.08em;
 padding:11px 22px;border-radius:6px;text-decoration:none}
.cfw-ft-cta:hover{opacity:.88}
.cfw-ft-col h3{font-family:'Bebas Neue',sans-serif;font-size:.95rem;letter-spacing:.14em;
 text-transform:uppercase;color:#FFD700;margin:0 0 12px;font-weight:400}
.cfw-ft-col ul{list-style:none;margin:0;padding:0}
.cfw-ft-col li{margin:0 0 7px}
.cfw-ft-col a{color:rgba(255,255,255,.66);text-decoration:none;font-size:.93rem;line-height:1.45}
.cfw-ft-col a:hover{color:#FFD700}
.cfw-ft-bot{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;justify-content:space-between;
 padding:18px 0 22px;font-size:.83rem;color:rgba(255,255,255,.6)}
.cfw-ft-bot nav{display:flex;flex-wrap:wrap;gap:16px}
.cfw-ft-bot a{color:rgba(255,255,255,.55);text-decoration:none}
.cfw-ft-bot a:hover{color:#FFD700}
@media(max-width:1100px){.cfw-ft-top{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.cfw-ft-top{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.cfw-ft-top{grid-template-columns:1fr;gap:26px}.cfw-ft{padding-top:38px}}

/* ── Desktop mega menu (.mnav-mega) — desktop only; mobile keeps simple list ── */
.cfw-mega{display:none}
.cfw-mega-btn{background:none;border:0;color:#cfcfcf;font:inherit;font-weight:600;font-size:15px;
 letter-spacing:.07em;text-transform:uppercase;cursor:pointer;padding:0}
.cfw-mega-btn:hover,.cfw-mega-btn[aria-expanded="true"]{color:#FFD700}
.mnav-mega{display:none}
.mnav-mega .mnav-col .mnav-h{font-family:'Bebas Neue',sans-serif;font-size:.9rem;letter-spacing:.14em;
 text-transform:uppercase;color:#FFD700;margin:0 0 10px;font-weight:400}
.mnav-mega .mnav-col a{display:block;color:rgba(255,255,255,.7);text-decoration:none;
 font-size:.92rem;line-height:1.5;padding:5px 0}
.mnav-mega .mnav-col a:hover{color:#FFD700}
@media(min-width:981px){
 .cfw-mega{display:block}
 .cfw-hdr{position:sticky}
 .mnav-mega{position:absolute;top:100%;left:0;right:0;background:#0f0f0f;
  border-bottom:2px solid #FFD700;box-shadow:0 18px 40px rgba(0,0,0,.55);z-index:1002;
  padding:30px 40px 34px}
 .mnav-mega.open{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px 40px;max-width:1400px;margin:0 auto}
}
@media(max-width:980px){
 .mnav-mega{display:none !important}
 .cfw-mega{display:none !important}
}


/* === 2026-09-30 production audit accessibility/layout hardening === */
.cfw-ft-certs{color:rgba(255,255,255,.78)!important}
.cfw-ft-bot{color:rgba(255,255,255,.72)!important}
.cfw-ft-bot a,.cfw-ft-col a{color:rgba(255,255,255,.82)!important}
main p a,main li a,main td a,main blockquote a,.aeo-answer a,.aeo-answer-block a{
  text-decoration:underline;
  text-decoration-thickness:.08em;
  text-underline-offset:.14em;
}
.grid>*,[class*="grid"]>*,[class*="card"],[class*="col"],main section>*{min-width:0}
main p,main li,main td,main th,[class*="card"]{overflow-wrap:anywhere;word-break:normal}
[style*="overflow-x:auto"],.ptw,.table-wrap,.scroll-x,[class*="scroll"]{
  scrollbar-width:thin;
}
[style*="overflow-x:auto"]:focus,.ptw:focus,.table-wrap:focus,.scroll-x:focus,[class*="scroll"]:focus{
  outline:2px solid #FFD700;
  outline-offset:3px;
}
img{max-width:100%;height:auto}
.gallery-item img,.related-card img,.process-step img,.team-port-img img,.supp-image-block img,
[class*="hero"] img,[class*="card"] img{
  object-fit:cover;
}
@media(max-width:768px){
  body{padding-bottom:max(104px,calc(92px + env(safe-area-inset-bottom)))!important}
  .hero,.ph,.page-hero-banner{min-height:auto}
  .cfw-sticky,#sticky-cta{max-height:92px}
  main{overflow-x:clip}
  .ptw,.table-wrap,.scroll-x,[style*="overflow-x:auto"]{max-width:100%;overscroll-behavior-inline:contain}
}

/* Content links that no other rule styles rendered in browser-default blue
   (#0000EE on near-black, 2.1:1). Zero specificity: any existing link style wins.
   CFW 1000 accessibility pass, 2026-10-02. */
:where(main, article, section, .cfw-fleet-xref) :where(p, li, td, dd, figcaption, blockquote, span) :where(a:not([class])){color:#FFD700;text-decoration:underline;text-underline-offset:2px}
/* ...except inside light or gold blocks (inline background #fxxxxx / white): dark, still underlined */
:where([style*="background:#f" i], [style*="background: #f" i], [style*="background:white" i], [style*="background-color:#f" i]) :where(a:not([class])){color:#0A0A0A}
/* .btn-primary / .btn-secondary used without the .btn base (8 service pages):
   give them the .btn shape. Zero specificity, so a page's own button rules still win. */
:where(a.btn-primary:not(.btn), a.btn-secondary:not(.btn)){display:inline-flex;align-items:center;gap:8px;margin:6px 8px 6px 0;padding:13px 26px;border-radius:var(--radius,6px);font-family:var(--H,'Barlow Condensed',sans-serif);font-size:.95rem;font-weight:800;letter-spacing:.03em;text-decoration:none;border:2px solid transparent;line-height:1.2}
:where(a.btn-secondary:not(.btn)){background:transparent;color:#FFD700;border-color:#FFD700}
:where(a.btn-secondary:not(.btn)):hover{background:rgba(255,215,0,.08)}
a.btn-primary:not(.btn),a.btn-secondary:not(.btn){text-decoration:none}
/* card and widget links whose children carry the styling: no browser-default blue */
:where(a.related-card, a.gmb-header){color:inherit;text-decoration:none}
