/* ═══════════════════════════════════════════════════════════════════
   RESCU WELLNESS — GLOBAL DESIGN SYSTEM v3.0
   4-Color Brand: Ox · Tangerine · Lavender · Cerulean
   Typography: Montserrat throughout
   Infographic-inspired visual language — applied sitewide
   One Body. One Life. One Rescu.
═══════════════════════════════════════════════════════════════════ */

/* ── GOOGLE FONTS ── */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,200;0,300;0,400;0,600;0,700;0,800;0,900;1,300;1,400&display=swap');

/* ── ROOT: 4-COLOR SYSTEM ── */
:root {
  /* ═══ OFFICIAL RESCU BRAND PALETTE 2021 ═══
     Source: RescuLife_BrandGuidelines_AA_2021 */

  /* PRIMARY PALETTE */
  --ox:        #481B2E;   /* OX — primary dark plum (was var(--ox)) */
  --tang:      #E7714D;   /* TANGERINE — action/CTA (was var(--tang)) */
  --lav:       #BAA5C0;   /* LAVENDER — soft accent (was var(--lav)) */
  --cerulean:  #DCDFE7;   /* CERULEAN — oxygen/science (was var(--cerulean)) */
  --cer:       #DCDFE7;   /* alias for cerulean */
  --fawn-warm: #F9E3DB;   /* FAWN — warmth/recovery */
  --chalk:     #F7F7F7;   /* CHALK — near white */

  /* FUNCTIONAL EXTENSIONS */
  --ox2:       #5a2438;   /* OX hover */
  --ox3:       #6b2d44;   /* OX active */
  --tang2:     #c75c35;   /* TANG pressed */
  --tang-t:    #f0957a;   /* TANG tint — subtle glows */
  --lav2:      #d4c8da;   /* LAV tint */
  --cer2:      #eaecf2;   /* CERULEAN tint */

  /* TEXT (on dark OX backgrounds) */
  --fawn:      #f7f2ec;   /* Near-white warm — on dark bg */
  --fawn2:     rgba(247,242,236,.55);  /* Muted */
  --fawn3:     rgba(247,242,236,.28);  /* Very muted */

  /* TEXT (on light backgrounds) */
  --text:      var(--ox);
  --text-body: rgba(72,27,46,.72);
  --text-muted:rgba(72,27,46,.42);
  --border:    rgba(72,27,46,.10);
  --border-strong: rgba(72,27,46,.22);

  /* LEON PILLAR COLORS */
  --leon-l:  var(--tang);      /* Light:     Tangerine */
  --leon-e1: var(--lav);       /* Energy:    Lavender */
  --leon-e2: #DCDFE7;          /* Exercise:  Cerulean */
  --leon-o:  var(--tang2);     /* Oxygen:    Tang shade */
  --leon-n:  var(--lav2);      /* Nutrition: Lav tint */

  /* PATHWAY CYCLE */
  --p1: var(--tang);
  --p2: var(--lav);
  --p3: var(--cerulean);

  /* SHADOWS */
  --shadow-tang: 0 8px 24px rgba(231,113,77,.28);
  --shadow-md:   0 4px 12px rgba(72,27,46,.10);
  --shadow-lg:   0 16px 40px rgba(72,27,46,.12);

  /* TYPOGRAPHY — Montserrat only (brand spec) */
  --font:  'Montserrat', 'Helvetica Neue', Arial, sans-serif;
  --disp:  'Bebas Neue', 'Arial Narrow', sans-serif;
  --mono:  'JetBrains Mono', 'Courier New', monospace;

  /* EASING */
  --ease:   cubic-bezier(0.16, 1, 0.3, 1);
  --ease2:  cubic-bezier(0.76, 0, 0.24, 1);
  --spring: cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* ── RESET & BASE ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; overflow-x: hidden; }
body {
  background: #0e0608;
  color: var(--fawn);
  font-family: var(--font);
  font-weight: 400;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
  max-width: 100%;
}

/* ── GRAIN TEXTURE (ambient depth) ── */
body::after {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9997;
  opacity: .025;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 200px;
}

/* ── GLOBAL TYPOGRAPHY ── */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font);
  font-weight: 900;
  line-height: .88;
  letter-spacing: -1px;
  color: var(--fawn);
  text-transform: uppercase;
}
h1 { font-size: clamp(52px, 10vw, 140px); letter-spacing: -3px; }
h2 { font-size: clamp(36px, 6vw, 80px); letter-spacing: -2px; }
h3 { font-size: clamp(22px, 3vw, 36px); letter-spacing: -1px; }

p { font-weight: 300; line-height: 1.78; color: var(--fawn2); }

/* ── EYEBROW LABELS ── */
.ey, [class*="eyebrow"] {
  font-family: var(--font) !important;
  font-size: 9px !important;
  font-weight: 800 !important;
  letter-spacing: 5px !important;
  text-transform: uppercase;
  color: var(--tang);
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
}
.ey::before, [class*="eyebrow"]::before {
  content: '';
  width: 28px; height: 1px;
  background: currentColor;
  flex-shrink: 0;
}

/* ── SECTION SUBTITLES (italic Montserrat 300) ── */
.sub {
  font-family: var(--font) !important;
  font-size: clamp(14px, 1.8vw, 18px) !important;
  font-weight: 300 !important;
  font-style: italic !important;
  color: var(--fawn2) !important;
  line-height: 1.75;
  max-width: 560px;
}

/* ── SECTIONS ── */
.sec { padding: clamp(64px, 8vw, 120px) 6vw; }
.mx  { max-width: 1360px; margin: 0 auto; }

/* ── INFOGRAPHIC-STYLE CARDS ── */
/* Base card — used for services, pillars, proof, team */
.card, .sc, .mc, .lp, .pc, .proof-card, .team-card, .pillar {
  background: var(--ox2);
  position: relative;
  overflow: hidden;
  transition: transform .45s var(--ease), background .3s;
}
.card:hover, .sc:hover, .mc:hover { transform: translateY(-6px); }

/* Left-border accent (infographic pillar style) */
.card-accent-left {
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: var(--tang);
  transition: width .35s var(--ease);
}
.card:hover .card-accent-left { width: 5px; }

/* Top-border accent (infographic pathway style) */
.card-accent-top {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: var(--tang);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .4s var(--ease);
}
.card:hover .card-accent-top { transform: scaleX(1); }

/* ── SERVICE GRID ── */
.svc-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3px;
}

/* ── BUTTONS ── */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 14px 28px;
  font-family: var(--font) !important;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  text-decoration: none;
  transition: all .35s var(--ease);
  cursor: pointer;
  border: none;
  min-height: 48px;
  position: relative;
  overflow: hidden;
}
.btn::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,.06);
  opacity: 0;
  transition: opacity .2s;
}
.btn:hover::after { opacity: 1; }
.btn:active { transform: scale(.97); }

.btn-t, .btn-primary-rescu {
  background: var(--tang) !important;
  color: #fff !important;
}
.btn-t:hover, .btn-primary-rescu:hover {
  background: var(--tang2) !important;
  transform: translateY(-2px);
  box-shadow: 0 16px 40px rgba(232,116,74,.35);
}
.btn-o, .btn-ghost-rescu {
  background: transparent !important;
  border: 1px solid rgba(247,242,236,.2) !important;
  color: var(--fawn) !important;
}
.btn-o:hover, .btn-ghost-rescu:hover {
  border-color: var(--tang) !important;
  color: var(--tang) !important;
}
.btn-wa {
  background: #25d366 !important;
  color: #fff !important;
}
.btn-lav {
  background: var(--lav) !important;
  color: var(--ox) !important;
}
.btn-cer {
  background: var(--cer) !important;
  color: #fff !important;
}

/* ── PILL TAGS (infographic style) ── */
.tag, .lp-tag, .pc-svc, .sc-bx, .ev {
  font-family: var(--font) !important;
  font-size: 8px !important;
  font-weight: 700 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase;
  padding: 3px 9px;
  border: 1px solid currentColor;
  color: var(--tang);
  border-color: rgba(232,116,74,.3);
  background: rgba(232,116,74,.04);
  transition: all .2s;
}

/* ── STAT BLOCKS (infographic numbers) ── */
.stat-block, .hs {
  background: var(--ox2);
  padding: 24px 20px;
  text-align: center;
  position: relative;
  overflow: hidden;
  transition: transform .35s var(--ease);
}
.stat-block::before, .hs::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: var(--tang);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .4s var(--ease);
}
.stat-block:hover::before, .hs:hover::before { transform: scaleX(1); }
.stat-block:hover, .hs:hover { transform: translateY(-4px); }

.stat-n, .hs-n {
  font-family: var(--font) !important;
  font-size: clamp(32px, 5vw, 56px);
  font-weight: 900;
  letter-spacing: -2px;
  color: var(--tang);
  line-height: 1;
}
.stat-l, .hs-l {
  font-family: var(--font) !important;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--fawn3);
  margin-top: 6px;
}

/* ── TICKER ── */
.tkr { overflow: hidden; background: var(--tang); padding: 10px 0; }
.tkr-t {
  display: flex;
  gap: 44px;
  animation: tickScroll 30s linear infinite;
  white-space: nowrap;
  will-change: transform;
}
.tki {
  font-family: var(--font) !important;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: #fff;
  flex-shrink: 0;
}
.tkr:hover .tkr-t { animation-play-state: paused; }
@keyframes tickScroll { to { transform: translateX(-50%); } }

/* ── SCROLL REVEAL ── */
.rv {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .85s var(--ease), transform .85s var(--ease);
  animation: rv-fallback 0.01s 2.5s forwards;
}
@keyframes rv-fallback {
  to { opacity: 1; transform: none; }
}
.rv.on { opacity: 1; transform: none; }
.rv.d1 { transition-delay: .1s; }
.rv.d2 { transition-delay: .22s; }
.rv.d3 { transition-delay: .34s; }
.rv.d4 { transition-delay: .46s; }
.slide-l { transform: translateX(-32px) !important; }
.slide-r { transform: translateX(32px) !important; }

/* ── PROOF / TESTIMONIAL ── */
.proof-quote {
  font-family: var(--font) !important;
  font-style: italic;
  font-weight: 300;
  font-size: clamp(15px, 2vw, 20px);
  color: var(--fawn);
  opacity: .75;
  line-height: 1.65;
  margin-bottom: 16px;
}
.proof-attr {
  font-family: var(--font) !important;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--fawn3);
}

/* ── NAV (infographic-branded) ── */
nav { font-family: var(--font) !important; }
.nm > a, .nav-dd-trigger, .nm-start, .nav-dd a, .nav-back, .n-phone {
  font-family: var(--font) !important;
  font-weight: 700 !important;
  letter-spacing: 2px !important;
}
.nm-start { color: var(--tang) !important; }
.n-cta, .nav-call, .nav-cta {
  font-family: var(--font) !important;
  font-weight: 800 !important;
  letter-spacing: 2.5px !important;
  background: var(--tang) !important;
  color: #fff !important;
}
.n-cta:hover, .nav-call:hover, .nav-cta:hover {
  background: var(--tang2) !important;
}

/* ── MOBILE MENU ── */
.mob-body a, .mob-section {
  font-family: var(--font) !important;
  font-weight: 700 !important;
  letter-spacing: 2px !important;
}

/* ── MEMBERSHIP GRID ── */
#mem-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 3px;
}
.mc-price { font-family: var(--font) !important; font-weight: 900 !important; letter-spacing: -2px; }
.mc-tier  { font-family: var(--font) !important; font-weight: 900 !important; letter-spacing: 1px; text-transform: uppercase; }
.mc-name  { font-family: var(--font) !important; font-weight: 700 !important; letter-spacing: 3px; text-transform: uppercase; }

/* ── COLOR REPLACEMENTS (gold→tang/cer, mint→cer tint) ── */
/* Gold was used for Exercise pillar and some accents — now Cerulean */
[style*="--gold"] { --gold: var(--cer) !important; }
[style*="color:var(--gold)"] { color: var(--cer) !important; }
[style*="color:var(--mint)"] { color: var(--lav2) !important; }
[style*="background:var(--mint)"] { background: var(--cer) !important; }
[style*="background:var(--gold)"] { background: var(--tang) !important; }
[style*="stroke:var(--gold)"] { stroke: var(--cer) !important; }
[style*="stroke:var(--mint)"] { stroke: var(--cer) !important; }

/* ── FAQ ACCORDIONS ── */
details summary {
  font-family: var(--font) !important;
  font-weight: 800;
  letter-spacing: 1px;
  font-size: 15px;
  cursor: pointer;
  transition: color .2s;
}
details[open] summary, details summary:hover { color: var(--tang); }
details p {
  font-family: var(--font) !important;
  font-weight: 300;
  font-size: 13px;
  color: var(--fawn2);
  line-height: 1.8;
  margin-top: 12px;
}

/* ── CARD BODY TEXT ── */
.card-d, .card-t, .sc-d, .sc-n, .lp-d, .lp-t, .pc-d, .pc-t, .b-tagline, .b-includes {
  font-family: var(--font) !important;
}
.card-t, .sc-n, .lp-t, .pc-t, .b-name {
  font-weight: 800 !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
}
.card-d, .sc-d, .lp-d, .pc-d {
  font-weight: 300 !important;
  font-size: 12px !important;
  line-height: 1.78 !important;
}

/* ── FORM ELEMENTS ── */
input, select, textarea, button {
  font-family: var(--font) !important;
}

/* ── BUNDLE CARDS ── */
.b-name, .b-label { font-family: var(--font) !important; }
.b-name { font-weight: 900 !important; letter-spacing: -1px !important; text-transform: uppercase !important; }
.b-buy  { font-family: var(--font) !important; font-weight: 800 !important; letter-spacing: 2px !important; }

/* ── BOOK PAGE ── */
.book-h1, .fb-h { font-family: var(--font) !important; font-weight: 900 !important; letter-spacing: -1px !important; text-transform: uppercase !important; }
.book-tab { font-family: var(--font) !important; font-weight: 700 !important; letter-spacing: 2px !important; }
.trial-card-name { font-family: var(--font) !important; font-weight: 700 !important; }

/* ── SCROLLBAR ── */
::-webkit-scrollbar { width: 2px; height: 2px; }
::-webkit-scrollbar-track { background: var(--ox); }
::-webkit-scrollbar-thumb { background: var(--tang); }

/* ── SELECTION ── */
::selection { background: rgba(232,116,74,.25); color: var(--fawn); }
:focus-visible { outline: 2px solid var(--tang); outline-offset: 3px; }

/* ── MOBILE ── */
@media (max-width: 900px) {
  .svc-grid { grid-template-columns: 1fr 1fr; }
  #mem-grid { grid-template-columns: 1fr !important; overflow-x: visible !important; }
  #bundles-grid { grid-template-columns: 1fr !important; }
  h1 { letter-spacing: -2px; }
  h2 { letter-spacing: -1px; }
}
@media (max-width: 540px) {
  .svc-grid { grid-template-columns: 1fr; }
}

/* ── PRINT ── */
@media print {
  nav, #svc-quicknav, #mob-cta-bar, #cursor-dot, #cursor-ring,
  body::after { display: none !important; }
  body { background: #fff !important; color: #000 !important; }
}

/* ── IMAGE CENTERING DEFAULTS (sitewide) ──
   Cover images without an explicit object-position default to dead-center,
   which crops faces/subjects badly on tall mobile viewports. Bias the crop
   toward the upper-center where subjects usually sit. Inline object-position
   on specific images still wins over this default. */
img {
  object-position: center 30%;
}
/* Full-bleed band images read better centered horizontally, slightly high vertically */
[style*="height:300px"] img,
[style*="height:320px"] img,
[style*="height:340px"] img,
[style*="height: 300px"] img {
  object-position: center 28% !important;
}

/* ── HEADLINE OVERFLOW GUARD (mobile) ──
   Large display H1s with long single words (e.g. "HYPERBARIC") can overflow
   narrow viewports. Cap the effective min size and prevent horizontal bleed. */
@media (max-width: 600px) {
  #lp-h1 { font-size: clamp(44px, 11vw, 72px) !important; word-break: normal; overflow-wrap: break-word; }
}
@media (max-width: 400px) {
  #lp-h1 { font-size: clamp(38px, 10.5vw, 60px) !important; }
}
/* Belt-and-suspenders: nothing should cause horizontal scroll */
html, body { overflow-x: hidden; max-width: 100%; }

/* ── SERVICE-PAGE NAV — mobile compaction ──
   Service pages use an inline <nav id="nav"> with .nright buttons.
   On mobile the long "Book · 914-401-8552" wraps; tighten and shorten. */
@media (max-width: 600px) {
  nav#nav { padding: 8px 4vw !important; }
  nav#nav .nright { gap: 7px !important; }
  nav#nav .nright .btn { padding: 9px 12px !important; font-size: 9px !important; letter-spacing: 1.5px !important; white-space: nowrap; }
  nav#nav img { max-height: 30px; width: auto; }
  /* Shorten the phone CTA: hide the number, keep "Book" */
  nav#nav .nright .btn-t { font-size: 0 !important; }
  nav#nav .nright .btn-t::before { content: "Book"; font-size: 10px; letter-spacing: 1.5px; }
}

/* ════════════════════════════════════════════════════════════════
   UNIVERSAL MOBILE HARDENING (v32)
   Guarantees: no horizontal overflow, headlines always fit,
   hero image panels never bleed, photos centered & fully visible.
   ════════════════════════════════════════════════════════════════ */
@media (max-width: 900px) {
  /* 1. Absolute no horizontal scroll, anywhere */
  html, body { overflow-x: hidden !important; max-width: 100vw !important; }
  * { max-width: 100vw; }

  /* 2. Any right-anchored absolute image panel is hidden on mobile
        (these are decorative side images that bleed off-screen) */
  section [style*="position:absolute"][style*="right:0"][style*="width:4"],
  section [style*="position:absolute"][style*="right:0"][style*="width:5"],
  section [style*="position: absolute"][style*="right: 0"] { display: none !important; }

  /* 3. Service-page hero headlines (#lp-h1 and bare h1 in hero) always fit */
  #lp-h1, section > div > h1, .lp-hero h1 {
    font-size: clamp(34px, 9.5vw, 60px) !important;
    line-height: .92 !important;
    letter-spacing: -1.5px !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    hyphens: none !important;
    max-width: 100% !important;
  }

  /* 4. Hero content containers fill width once side panel is gone */
  section [style*="max-width:680px"],
  section [style*="max-width:860px"],
  section [style*="max-width:560px"],
  section [style*="max-width:580px"],
  section [style*="max-width:520px"] { max-width: 100% !important; }

  /* 5. Hero section side padding sane on mobile (was 52px) */
  section[style*="padding:0 0 52px 52px"] { padding: 0 20px 40px 20px !important; }
}

/* ════════════════════════════════════════════════════════════════
   PHOTO CENTERING — subjects fully visible, not edge-cropped
   ════════════════════════════════════════════════════════════════ */
/* Default: bias crop slightly above center where faces/subjects sit */
img { object-position: center 30%; }
/* Hero/feature images: true center so the whole scene reads */
.hero-img,
[style*="object-fit:cover"][style*="height:100%"],
section img[style*="object-fit:cover"] { object-position: center center; }
/* On mobile, fixed-height photo bands shouldn't zoom-crop subjects out */
@media (max-width: 760px) {
  [style*="height:300px"] img, [style*="height:320px"] img,
  [style*="height:340px"] img, [style*="height:400px"] img,
  [style*="max-height:400px"], [style*="max-height:440px"] {
    object-position: center center !important;
  }
}

/* ════════════════════════════════════════════════════════════════
   FULL PHOTO VISIBILITY (v34)
   Content/feature images show the ENTIRE photo (contain, not crop).
   Full-bleed hero backgrounds (absolute/inset:0) keep cover.
   ════════════════════════════════════════════════════════════════ */
/* Content images in normal flow → show whole photo */
img[style*="object-fit:cover"]:not([style*="position:absolute"]):not([style*="inset:0"]):not(.hero-img) {
  object-fit: contain !important;
  background: #2a0f1c;
  object-position: center center !important;
}
/* Before/after grids, result photos → contain so faces aren't cut */
[style*="display:block"] img[style*="cover"],
.ba-img, .result-img, .grid img {
  object-fit: contain !important;
  background: #1a0810;
}
@media (max-width: 760px) {
  img[style*="object-fit:cover"]:not([style*="position:absolute"]):not([style*="inset:0"]):not(.hero-img) {
    object-fit: contain !important;
    max-height: none !important;
    height: auto !important;
  }
}

/* ── HERO SIDE PANEL — hide on mobile (class-based, reliable) ── */
@media (max-width: 900px) {
  .hero-side-panel { display: none !important; }
}

/* ════════════════════════════════════════════════════════════
   SITE FOOTER — used by membership, about, champions, contact, rf-microneedling
   ════════════════════════════════════════════════════════════ */
.site-footer{background:#0a0506;color:var(--fawn);padding:clamp(48px,7vw,80px) 6vw clamp(32px,4vw,48px);border-top:1px solid rgba(247,242,236,.08)}
.site-footer .wrap{max-width:1200px;margin:0 auto}
.site-footer .footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;gap:clamp(24px,3vw,48px);margin-bottom:48px}
.site-footer .footer-brand .logo{font-family:var(--font);font-weight:900;font-size:28px;letter-spacing:-1px;color:var(--fawn);margin-bottom:12px}
.site-footer .footer-brand .logo em{color:var(--tang);font-style:normal}
.site-footer .footer-brand .tagline{font-size:12px;font-weight:600;letter-spacing:1px;text-transform:lowercase;color:var(--tang);margin-bottom:20px}
.site-footer .footer-brand address{font-style:normal;font-size:13px;font-weight:300;line-height:1.9;color:rgba(247,242,236,.6)}
.site-footer .footer-col h4{font-family:var(--font);font-size:11px;font-weight:800;letter-spacing:2.5px;text-transform:uppercase;color:var(--fawn);margin-bottom:16px}
.site-footer .footer-col ul{list-style:none !important;margin:0;padding:0;display:grid;gap:10px}
.site-footer .footer-col ul li{margin:0;padding:0;list-style:none !important}
.site-footer .footer-col ul li a{font-size:13px !important;font-weight:300 !important;color:rgba(247,242,236,.6) !important;text-decoration:none !important;transition:color .2s;display:inline-block;padding:1px 0}
.site-footer .footer-col ul li a:hover{color:var(--tang) !important}
.site-footer .footer-bottom{border-top:1px solid rgba(247,242,236,.08);padding-top:28px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.site-footer .footer-copy{font-size:11px;font-weight:300;color:rgba(247,242,236,.35);line-height:1.7;max-width:720px}
.site-footer .footer-leon{display:flex;gap:6px;font-family:var(--disp,'Bebas Neue');font-size:28px;letter-spacing:4px;flex-wrap:nowrap;white-space:nowrap}
.site-footer .footer-leon span:nth-child(1){color:var(--tang)}
.site-footer .footer-leon span:nth-child(2){color:var(--lav)}
.site-footer .footer-leon span:nth-child(3){color:var(--cer)}
.site-footer .footer-leon span:nth-child(4){color:var(--lav)}
@media(max-width:900px){
  .site-footer .footer-grid{grid-template-columns:1fr 1fr;gap:32px 24px}
  .site-footer .footer-brand{grid-column:1/-1}
}
@media(max-width:520px){
  .site-footer .footer-grid{grid-template-columns:1fr 1fr;gap:24px 20px}
  .site-footer .footer-brand{grid-column:1/-1}
  .site-footer .footer-bottom{flex-direction:column;align-items:flex-start;gap:18px}
  .site-footer .footer-leon{flex-wrap:nowrap;white-space:nowrap;font-size:24px;letter-spacing:3px}
}

/* ── DEFINITIVE NAV LOGO FIX (overrides all) ──
   The service nav logo <img> must never render at native size.
   Applies at every breakpoint, beats earlier/media-gated rules. */
nav#nav a.nl img,
nav#nav .nl img,
#nav a img {
  height: 34px !important;
  max-height: 34px !important;
  width: auto !important;
  max-width: 160px !important;
  object-fit: contain !important;
  display: block !important;
}
@media (max-width: 600px) {
  nav#nav a.nl img, nav#nav .nl img, #nav a img {
    height: 30px !important;
    max-height: 30px !important;
  }
}
