/* ===========================
   STEAM LION — PREMIUM CSS v5
   =========================== */

:root {
  --navy:       #13183F;
  --navy-light: #171E49;
  --navy-mid:   #1A2251;
  --navy-deep:  #12153A;
  --blue-accent:#1D2D69;
  --white:      #ffffff;
  --off-white:  #eef2ff;
  --silver:     #a8b2c8;
  --gold:       #E2C675;
  --gold-light: #EDD68A;
  --text-muted: #7a8ba8;
  --border:     rgba(168,178,200,0.16);
  --radius:     12px;
  --radius-lg:  18px;
  --shadow:     0 8px 40px rgba(0,0,0,0.3);
  --shadow-gold:0 4px 24px rgba(226,198,117,0.28);
  --transition: 0.25s ease;
  --header-h:   72px;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
  font-family: 'Georgia','Times New Roman',serif;
  background: var(--navy);
  color: var(--white);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

/* ===== TYPOGRAPHY ===== */
h1,h2,h3,h4 { font-family:'Georgia',serif; line-height:1.2; letter-spacing:-0.01em; }
h1 { font-size: clamp(1.9rem,4.5vw,3.2rem); font-weight:700; }
h2 { font-size: clamp(1.45rem,3vw,2.2rem); font-weight:700; }
h3 { font-size: 1.15rem; font-weight:600; }
p  { font-family:'Georgia',serif; }
a  { color:inherit; text-decoration:none; }
ul { list-style:none; }

/* ===== CONTAINER ===== */
.container { max-width:1160px; margin:0 auto; padding:0 24px; }
.text-center { text-align:center; }

/* ===== SECTION ===== */
.section { padding: 52px 0; background:var(--navy); }
.section-label {
  font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--gold); margin-bottom:10px; font-family:'Georgia',serif;
}
.section-title { color:var(--white); margin-bottom:20px; }
.body-text { color:var(--silver); font-size:1rem; max-width:620px; margin-bottom:24px; }

/* ===== BUTTONS ===== */
.btn {
  display:inline-flex; align-items:center; justify-content:center;
  gap:8px; padding:13px 28px; border-radius:6px; font-size:0.93rem;
  font-weight:600; letter-spacing:0.04em; cursor:pointer;
  transition:all var(--transition); border:2px solid transparent;
  white-space:nowrap; font-family:'Georgia',serif;
}
.btn-call    { background:var(--gold); color:var(--navy); border-color:var(--gold); }
.btn-call:hover { background:var(--gold-light); border-color:var(--gold-light); transform:translateY(-2px); box-shadow:var(--shadow-gold); }
.btn-outline { background:transparent; color:var(--white); border-color:rgba(255,255,255,0.35); }
.btn-outline:hover { background:rgba(255,255,255,0.08); border-color:var(--white); transform:translateY(-2px); }
.btn-gold    { background:transparent; color:var(--gold); border-color:var(--gold); }
.btn-gold:hover { background:var(--gold); color:var(--navy); transform:translateY(-2px); box-shadow:var(--shadow-gold); }
.btn-primary { background:var(--blue-accent); color:var(--white); border-color:var(--blue-accent); }
.btn-primary:hover { background:var(--navy-mid); transform:translateY(-2px); }
.btn-sm { padding:9px 20px; font-size:0.85rem; }

/* ===== HEADER ===== */
.site-header {
  position:fixed; top:0; left:0; right:0;
  height:var(--header-h);
  background:rgba(9,18,42,0.97);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--border);
  z-index:1000;
}
.header-inner {
  max-width:1200px; margin:0 auto; padding:0 28px;
  height:100%; display:flex; align-items:center; gap:0;
}
.logo-link { display:flex; align-items:center; text-decoration:none; flex-shrink:0; }
.logo-img  { height:20px; width:auto; display:block; }

/* ── Header "Call Now" button ── */
.header-phone {
  margin-left:12px;
  display:inline-flex; align-items:center; gap:7px;
  padding:9px 20px;
  background:var(--gold);
  color:var(--navy);
  font-size:0.88rem;
  font-weight:800;
  letter-spacing:0.06em;
  text-transform:uppercase;
  text-decoration:none;
  border-radius:8px;
  white-space:nowrap;
  flex-shrink:0;
  transition:background 0.2s, box-shadow 0.2s, transform 0.2s;
  box-shadow:0 2px 10px rgba(226,198,117,0.25);
}
.header-phone:hover {
  background:var(--gold-light);
  box-shadow:var(--shadow-gold);
  transform:translateY(-1px);
}

/* ── Hamburger toggle ── */
.nav-toggle {
  display:flex; flex-direction:column; justify-content:center; gap:6px;
  background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.15);
  cursor:pointer; padding:10px 12px; margin-left:auto; flex-shrink:0;
  border-radius:8px; transition:background 0.2s, border-color 0.2s;
}
.nav-toggle:hover {
  background:rgba(226,198,117,0.12);
  border-color:rgba(226,198,117,0.4);
}
.nav-toggle span {
  display:block; width:30px; height:3px;
  background:var(--white); border-radius:3px;
  transition:transform 0.25s, opacity 0.25s;
}
/* Animated X when open */
.nav-toggle.open span:nth-child(1) { transform:translateY(9px) rotate(45deg); }
.nav-toggle.open span:nth-child(2) { opacity:0; transform:scaleX(0); }
.nav-toggle.open span:nth-child(3) { transform:translateY(-9px) rotate(-45deg); }

/* ── Dropdown nav menu ── */
.main-nav {
  position:fixed;
  top:var(--header-h);
  right:0;
  width:min(360px, 92vw);
  background:rgba(12,16,48,0.55);
  backdrop-filter:blur(28px) saturate(160%);
  -webkit-backdrop-filter:blur(28px) saturate(160%);
  border-left:1px solid rgba(226,198,117,0.25);
  border-bottom:1px solid rgba(226,198,117,0.25);
  border-radius:0 0 0 16px;
  box-shadow:-6px 14px 52px rgba(0,0,0,0.45);
  overflow:hidden;
  max-height:0;
  transition:max-height 0.35s cubic-bezier(0.4,0,0.2,1);
  z-index:999;
}
.main-nav.open { max-height:600px; }
.main-nav ul {
  list-style:none; margin:0; padding:16px 16px 20px;
  display:flex; flex-direction:column; gap:8px;
}
.main-nav a {
  display:block;
  padding:13px 22px;
  font-size:0.92rem; font-weight:800;
  color:rgba(255,255,255,0.92);
  text-decoration:none;
  letter-spacing:0.06em;
  text-transform:uppercase;
  white-space:nowrap;
  background:rgba(255,255,255,0.07);
  border:1px solid rgba(255,255,255,0.14);
  border-radius:8px;
  transition:color 0.2s, background 0.2s, border-color 0.2s,
             box-shadow 0.2s, transform 0.15s;
}
.main-nav a:hover {
  color:var(--navy);
  background:var(--gold);
  border-color:var(--gold);
  box-shadow:0 4px 18px rgba(226,198,117,0.4);
  transform:translateX(-3px);
}
.main-nav a.active {
  color:var(--gold);
  background:rgba(226,198,117,0.12);
  border-color:rgba(226,198,117,0.45);
}

/* ── Overlay when menu open ── */
.nav-overlay {
  display:none; position:fixed; inset:0; z-index:998;
}
.nav-overlay.open { display:block; }

/* hide legacy header-call button */
.header-call { display:none !important; }

/* ===== HERO ===== */
.hero {
  position:relative; width:100%; min-height:100vh;
  display:flex; align-items:flex-start;
  overflow:hidden;
}
.hero-home {
  background:url('https://media.base44.com/images/public/6a18be827fabee404d73a110/37b313418_hero-steam-lion.png') center/cover no-repeat;
}
.hero-overlay-home {
  position:absolute; inset:0;
  background:
    linear-gradient(to right,
      rgba(19,24,63,0.74) 0%,
      rgba(19,24,63,0.62) 28%,
      rgba(19,24,63,0.10) 50%,
      rgba(19,24,63,0.10) 50%,
      rgba(19,24,63,0.62) 72%,
      rgba(19,24,63,0.74) 100%
    );
  z-index:1;
}
/* Bottom fade — extended upward behind motto */
.hero-home::after {
  content:'';
  position:absolute; bottom:0; left:0; right:0;
  height:280px;
  background:linear-gradient(to bottom,
    transparent 0%,
    rgba(7,14,34,0.4) 40%,
    rgba(7,14,34,0.82) 70%,
    var(--navy) 100%
  );
  z-index:2;
}

.hero-content-centered {
  position:relative; z-index:3;
  width:42%;
  min-width:280px;
  max-width:460px;
  margin-left: clamp(28px, 3.5vw, 56px);
  margin-top: calc(var(--header-h) + 48px);
  margin-bottom: 60px;
  padding:28px 32px 32px;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:16px;              /* even breathing room between all child elements */
  background:none;
  border-radius:0;
}

/* ─────────────────────────────────────────────────────────────
   HERO — RIGHT SIDE GRAPHIC BLOCK
   Transparent PNG floats over the hero, centered vertically
   in the hero and horizontally between the lion and right edge
──────────────────────────────────────────────────────────── */
/* ─────────────────────────────────────────────────────────────
   HERO — RIGHT-SIDE CREDENTIAL STACK  (desktop only)
   Three badge graphics + two decorative dividers stacked
   vertically, centered in the right half of the hero.

   Top-align: approx the lion-icon top in the left logo
   Bottom-align: approx the last line of the hero body text
   ("healthier.") — achieved by using the same top/margin-top
   as the left content block and matching its bottom rhythm.
──────────────────────────────────────────────────────────── */
.hero-feature-block {
  position: absolute;
  z-index: 3;
  /* Right half — horizontally center the stack within it */
  right: 0;
  width: 50%;
  /* Vertical span: start at same top offset as left content, end at same bottom */
  top: calc(var(--header-h) + 48px);
  bottom: 60px;
  display: flex;
  align-items: center;      /* vertically center the inner stack */
  justify-content: center;  /* horizontally center within the right half */
  pointer-events: none;
}

/* Inner flex column — the actual stacked graphics */
.hero-cred-stack {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;   /* even distribution top-to-bottom */
  /* Fill the full height of the parent so space-between works correctly */
  height: 100%;
  width: clamp(200px, 26vw, 340px);
  pointer-events: none;
}

/* Badge graphics — each one scales to fill available width */
.hero-cred-badge-img {
  width: 100%;
  height: auto;
  display: block;
  /* Remove the black background — these PNGs have black fills, use mix-blend-mode
     to let them sit naturally over the dark hero shading */
  mix-blend-mode: screen;
  filter: drop-shadow(0 2px 12px rgba(0,0,0,0.5));
  flex-shrink: 0;
}

/* Decorative divider lines */
.hero-cred-divider-img {
  width: clamp(120px, 18vw, 240px);
  height: auto;
  display: block;
  mix-blend-mode: screen;
  opacity: 0.75;
  flex-shrink: 0;
}

/* ── Hide entire block on mobile ── */
@media (max-width: 767px) {
  .hero-feature-block { display: none !important; }
}



/* Hero grunge logo */
.hero-grunge-logo {
  width: clamp(220px, 28vw, 320px);
  max-width:100%;
  height:auto;
  margin-bottom:8px;     /* extra breathing room below the wordmark/divider line */
  filter:drop-shadow(0 6px 28px rgba(0,0,0,0.35));
}

.hero-sub {
  color:rgba(255,255,255,0.88); font-size:clamp(0.92rem,1.3vw,1.05rem);
  margin-bottom:0;       /* gap on parent handles spacing */
  line-height:1.65;
  text-align:center;
}
/* width matches the phone number so both lines break evenly */
.hero-sub-narrow {
  max-width:520px;       /* wide enough for both lines on desktop */
  white-space:normal;
  text-align:center;
}

.hero-btns-centered { display:flex; gap:12px; flex-wrap:wrap; justify-content:center; }

/* ===== CINEMATIC TRANSITIONS ===== */
.cinematic-transition {
  background: var(--navy);
  padding: 40px 0 0;
  text-align:center;
  position:relative;
}
.cinematic-transition::after {
  content:'';
  display:block;
  height:64px;
  background:linear-gradient(to bottom, var(--navy), transparent);
  position:absolute; bottom:-64px; left:0; right:0;
  z-index:2;
  pointer-events:none;
}
.cinematic-transition-mid {
  padding-top:0;
  margin-top:0;
}
.cinematic-label {
  padding: 24px 0 32px;
}
.cinematic-label .section-label { margin-bottom:8px; }
.cinematic-label .section-title { margin-bottom:0; }

/* ===== SERVICE FULL-WIDTH IMAGE ===== */
/* ===== SERVICE PHOTO + OVERLAY CARD ===== */
.service-photo-wrap {
  position:relative;
  width:100%;
  overflow:hidden;
}
/* Top fade: navy into photo */
.service-photo-wrap::before {
  content:'';
  position:absolute; top:0; left:0; right:0;
  height:120px;
  background:linear-gradient(to bottom, var(--navy) 0%, transparent 100%);
  z-index:2;
  pointer-events:none;
}
/* Bottom fade: photo into navy */
.service-photo-wrap::after {
  content:'';
  position:absolute; bottom:0; left:0; right:0;
  height:160px;
  background:linear-gradient(to top, var(--navy) 0%, transparent 100%);
  z-index:2;
  pointer-events:none;
}
.service-full-img {
  width:100%;
  height:clamp(420px,55vw,680px);
  background-size:cover;
  background-position:center;
  display:block;
}
.carpet-full-img {
  background-image:url('https://media.base44.com/images/public/6a18be827fabee404d73a110/17f1522dd_hero-carpet-cleaning.jpg');
}
.furniture-full-img {
  background-image:url('https://media.base44.com/images/public/6a18be827fabee404d73a110/d9013769f_hero-furniture-cleaning.png');
}

/* Frosted glass card — small square, right or left aligned */
.service-overlay-card {
  position:absolute;
  top:50%;
  right:5%;
  transform:translateY(-50%);
  width:clamp(240px, 28vw, 320px);
  background:rgba(255,255,255,0.22);
  backdrop-filter:blur(28px) saturate(1.6);
  -webkit-backdrop-filter:blur(28px) saturate(1.6);
  border:1px solid rgba(255,255,255,0.28);
  border-radius:16px;
  padding:28px 24px 26px;
  z-index:4;
  box-shadow:0 8px 32px rgba(0,0,0,0.22);
  min-height:clamp(320px, 42vh, 520px);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.service-overlay-card.card-left {
  right:auto;
  left:5%;
  top:50%;
  transform:translateY(-50%);
}
/* Card heading */
.service-overlay-card .card-heading {
  display:block;
  background:var(--gold);
  color:var(--navy);
  font-family:'Arial Black','Arial','sans-serif';
  font-size:0.78rem;
  font-weight:900;
  letter-spacing:0.05em;
  text-transform:uppercase;
  text-align:center;
  padding:9px 12px 8px;
  margin:-28px -24px 16px -24px; /* bleed to card edges */
  border-radius:14px 14px 0 0;
  line-height:1.2;
  text-shadow:none;
}
/* Bullet list inside card */
.service-overlay-card .card-list {
  list-style:none;
  margin:0 0 16px;
  padding:0;
}
.service-overlay-card .card-list li {
  color:var(--navy);
  font-size:0.9rem;
  font-weight:600;
  line-height:1.6;
  padding:7px 0 7px 18px;
  position:relative;
  border-bottom:1px solid rgba(9,18,42,0.12);
  font-family:'Georgia',serif;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.service-overlay-card .card-list li:last-child { border-bottom:none; }
.service-overlay-card .card-list li::before {
  content:'›';
  position:absolute;
  left:2px;
  color:var(--navy);
  font-weight:700;
  font-size:1rem;
  line-height:1.4;
}
.service-overlay-card .btn {
  margin-top:0;
  font-size:0.78rem;
  padding:9px 14px;
  width:100%;
  justify-content:center;
}
.service-overlay-card .body-text {
  color:var(--navy);
  font-size:0.82rem;
  margin-bottom:12px;
  max-width:100%;
  line-height:1.6;
}

/* Legacy — keep for inner pages */
.img-to-navy-fade { display:none; }
.service-body-section { display:none; }

/* ===== ADD-ON HOMEPAGE SECTION ===== */
.addon-homepage-section {
  background: var(--navy);
  border-top:1px solid var(--border);
}
.addon-cards-grid {
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:20px;
}
.addon-card {
  background:rgba(255,255,255,0.04);
  border:1px solid var(--border);
  border-radius:var(--radius);
  overflow:hidden;
  transition:border-color var(--transition), transform var(--transition);
  display:flex;
  flex-direction:column;
  position:relative;
}
.addon-card:hover { border-color:rgba(201,168,76,0.4); transform:translateY(-2px); }
.addon-card-wide {
  grid-column: auto;
  max-width:100%;
  margin:0;
}
.addon-card-img {
  width:100%;
  height:180px;
  object-fit:cover;
  display:block;
  flex-shrink:0;
  position:relative;
  z-index:0;
}
.addon-card-body {
  padding:14px 18px 20px;
  flex:1;
  display:flex;
  flex-direction:column;
  position:relative;
  z-index:1;
  background:rgba(255,255,255,0.04);
}
.addon-icon { display:none; }
.addon-card-wide .addon-icon { display:none; }
.addon-title { color:var(--white); margin-bottom:6px; font-size:1.0rem; margin-top:0; }
.addon-desc { color:var(--silver); font-size:0.9rem; line-height:1.7; }

/* ===== OFFERS FULL SECTION ===== */
.offers-full-section {
  background:var(--navy);
  padding:80px 0;
}
.offer-full-row {
  display:grid;
  grid-template-columns:40% 1fr;
  grid-template-rows:auto 1fr;
  grid-template-areas:
    "img  header"
    "img  body";
  align-items:stretch;
  background:rgba(9,18,42,0.85);
  border:2px dashed rgba(255,255,255,0.55);
  border-radius:var(--radius-lg);
  overflow:hidden;
  margin-bottom:28px;
  transition: border-color var(--transition), box-shadow var(--transition);
  box-shadow:0 4px 32px rgba(0,0,0,0.3);
  position:relative;
  min-height:260px;
  height:auto;
}
.offer-full-row:hover {
  border-color:rgba(226,198,117,0.7);
  box-shadow:0 6px 40px rgba(226,198,117,0.18);
}
.offer-full-row:last-child { margin-bottom:0; }
.offer-full-row-alt {
  grid-template-columns:1fr 40%;
  grid-template-areas:
    "header img"
    "body   img";
}

.offer-full-img {
  grid-area: img;
  width:100%;
  min-height:260px;
  background-size:cover;
  background-position:center;
}
.offer-combo-img {
  background-image:url('images/steam-lion-home-furniture-combo.jpg');
  background-size:cover;
}
.offer-prepay-img {
  background-image:url('images/steam-lion-pps-program.png'),
    url('https://media.base44.com/images/public/6a18be827fabee404d73a110/adee0aebc_ChatGPTImageJun8202609_02_05PM.png');
  background-size:90% auto, 90% auto;
  background-position:center, center;
  background-repeat:no-repeat, no-repeat;
  background-color:#1a1d4a;
}
.offer-prepay-img::after {
  content:'';
}

.offer-full-content {
  grid-area: body;
  padding:0;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  overflow:visible;
  min-width:0;
}
/* Gold header band — matches process card style */
.offer-coupon-header {
  grid-area: header;
  background:var(--gold);
  color:var(--navy);
  font-family:'Arial Black','Impact','Arial',sans-serif;
  font-size:clamp(1.1rem,1.8vw,1.6rem);
  font-weight:900;
  letter-spacing:0.05em;
  text-transform:uppercase;
  text-align:center;
  padding:14px 20px 12px;
  line-height:1.15;
  flex-shrink:0;
  display:flex;
  align-items:center;
  justify-content:center;
}
.offer-body {
  padding:24px 32px 28px;
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:flex-start;
  flex:1;
  gap:24px;
  min-height:140px;
  box-sizing:border-box;
  overflow:visible;
}
/* Discount block wrapper — just the stacked pct/off column */
.offer-discount-block {
  /* Transparent wrapper — layout handled by offer-body */
  display:contents;
}
.offer-pct-stack {
  display:flex;
  flex-direction:column;
  align-items:stretch;   /* stretch so OFF matches PCT width */
  line-height:0.9;
  flex-shrink:0;
  min-width:clamp(90px,12vw,140px);
}
.offer-pct {
  font-family:'Arial Black','Impact','Arial',sans-serif;
  font-size:clamp(3.6rem,6.5vw,5.8rem);
  font-weight:900;
  color:#ffffff;
  -webkit-text-stroke:1px rgba(255,255,255,0.3);
  text-shadow:0 3px 14px rgba(0,0,0,0.5);
  letter-spacing:-0.03em;
  line-height:1;
  text-align:center;
}
/* Smaller superscript % — less dominant than the number */
.offer-pct .pct-sym {
  font-size:0.48em;
  vertical-align:super;
  letter-spacing:0;
  -webkit-text-stroke:0.5px rgba(255,255,255,0.3);
}
.offer-off {
  font-family:'Arial Black','Impact','Arial',sans-serif;
  /* Larger font, tight spacing — width-match comes from font size, not letter spacing */
  font-size:clamp(2.6rem,4.4vw,4.0rem);
  font-weight:900;
  color:#ffffff;
  letter-spacing:-0.02em;   /* tight, no stretching */
  text-indent:0;
  text-align:center;
  width:100%;
  line-height:1;
}
.offer-text-side {
  flex:1;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
}
.offer-badge { display:none; } /* replaced by offer-pct-stack */
.offer-badge-best { display:none; }
.offer-badge-prepay { display:none; }
.offer-badge-prepay .pps-main { display:none; }
.offer-badge-prepay .pps-sub { display:none; }
.offer-title {
  /* now handled by offer-coupon-header — repurpose for sub-head if needed */
  display:none;
}
.offer-desc {
  color:#ffffff;
  font-size:0.95rem;
  line-height:1.65;
  margin-top:0;
  margin-bottom:14px;
}

/* ===== CTA SECTION ===== */
.cta-section { background:var(--navy); border-top:1px solid var(--border); }
.cta-title { max-width:480px; margin:0 auto 14px; }
.cta-sub { color:var(--silver); max-width:500px; margin:0 auto 28px; font-size:0.95rem; }
.cta-btns { display:flex; justify-content:center; gap:12px; flex-wrap:wrap; }

/* ===== FOOTER ===== */
.site-footer { background:var(--navy-deep); border-top:1px solid var(--border); }
.footer-inner { padding:52px 24px 32px; text-align:center; }
.footer-logo { height:22px; margin-bottom:14px; opacity:0.9; }
/* Footer brand block — centered stacked */
.footer-brand { margin-bottom:24px; }
.footer-brand-name {
  display:none; /* removed per design — logo already shows name */
}
.footer-brand-tagline {
  color:var(--silver);
  font-size:0.82rem;
  letter-spacing:0.04em;
  margin-bottom:14px;
}
.footer-address {
  color:var(--silver);
  font-size:0.84rem;
  line-height:1.75;
  margin-bottom:14px;
}
.footer-contact-line {
  display:flex;
  justify-content:center;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:24px;
  font-size:0.9rem;
}
.footer-contact-line a {
  color:rgba(255,255,255,0.82);
  text-decoration:none;
  font-weight:600;
  transition:color var(--transition);
  letter-spacing:0.02em;
}
.footer-contact-line a:hover { color:var(--gold); }
.footer-contact-line .footer-sep {
  color:var(--border);
  font-size:1rem;
}
.footer-links { display:flex; flex-wrap:wrap; justify-content:center; gap:16px; margin-bottom:24px; }
.footer-links a { color:var(--silver); font-size:0.82rem; transition:color var(--transition); }
.footer-links a:hover { color:var(--white); }
.footer-copy { color:var(--text-muted); font-size:0.77rem; }
/* Legacy footer-contact (hide old block) */
.footer-contact { display:none; }
.footer-tagline { display:none; }

/* ===== INNER PAGE HEROES ===== */
.hero-inner {
  position:relative; width:100%;
  padding-top: 48px;
  padding-bottom: 52px;
  background:linear-gradient(160deg, var(--navy-deep) 0%, var(--navy) 50%, var(--navy-mid) 100%);
  overflow:hidden;
}
.hero-inner .container { position:relative; z-index:2; }
.hero-inner .section-label { margin-bottom:8px; }
.hero-inner .section-title { margin-bottom:12px; }
.hero-inner .body-text { margin-bottom:0; }

/* ===== PROCESS FLOW (Carpet/Furniture pages) ===== */
.process-flow { display:flex; flex-direction:column; align-items:center; gap:0; position:relative; padding:20px 0; }
.process-flow::before {
  content:''; position:absolute; top:0; bottom:0; left:50%;
  width:3px; transform:translateX(-50%);
  background:linear-gradient(to bottom, var(--gold), var(--gold-light), var(--gold));
  border-radius:2px;
}
.process-step { position:relative; z-index:1; display:flex; align-items:center; gap:16px; padding:18px 0; }
.step-circle {
  width:42px; height:42px; border-radius:50%;
  background:var(--navy-mid); border:2px solid var(--gold);
  display:flex; align-items:center; justify-content:center;
  font-weight:700; color:var(--gold); font-size:0.9rem; flex-shrink:0;
}
.step-text { color:var(--silver); font-size:0.93rem; max-width:340px; }

/* ===== RESULTS ROW (Furniture page) ===== */
.results-row {
  display:flex; gap:16px; flex-wrap:nowrap;
}
.results-row .result-item {
  flex:1; min-width:0; text-align:center; padding:20px 12px;
  background:rgba(255,255,255,0.04); border:1px solid var(--border);
  border-radius:var(--radius);
}
.results-row .result-icon { font-size:1.5rem; margin-bottom:8px; }
.results-row .result-label { color:var(--silver); font-size:0.82rem; }

/* ===== DIFF ROW (About page) ===== */
.diff-row {
  display:flex; gap:16px; flex-wrap:nowrap;
}
.diff-row .diff-item {
  flex:1; min-width:0; text-align:center; padding:20px 12px;
  background:rgba(255,255,255,0.04); border:1px solid var(--border);
  border-radius:var(--radius);
}
.diff-row .diff-icon { font-size:1.5rem; margin-bottom:8px; }
.diff-row .diff-label { color:var(--silver); font-size:0.82rem; }

/* ===== OFFERS PAGE 2x2 GRID ===== */
.offers-page-grid {
  display:grid; grid-template-columns:repeat(2,1fr); gap:20px;
}
.offers-page-card {
  background:rgba(255,255,255,0.04); border:1px solid var(--border);
  border-radius:var(--radius); padding:28px 24px;
  transition:border-color var(--transition);
}
.offers-page-card:hover { border-color:rgba(201,168,76,0.4); }

/* ===== ADD-ON SECTION LABEL (inner pages) ===== */
.addon-section-label {
  font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--gold); margin-bottom:12px;
}

/* ===== FAQ ===== */
.faq-item { border-bottom:1px solid var(--border); }
.faq-q {
  display:flex; justify-content:space-between; align-items:center;
  padding:20px 0; cursor:pointer; font-weight:600; color:var(--white);
  font-size:1.02rem; transition:color var(--transition);
}
.faq-q:hover { color:var(--gold); }
.faq-q .faq-icon { font-size:1.3rem; color:var(--gold); transition:transform var(--transition); }
.faq-item.active .faq-icon { transform:rotate(45deg); }
.faq-a { max-height:0; overflow:hidden; transition:max-height 0.35s ease; }
.faq-item.active .faq-a { max-height:300px; }
.faq-a-inner { padding-bottom:20px; color:var(--silver); font-size:0.93rem; line-height:1.7; }

/* ===== REVIEWS ===== */
.review-card {
  background:rgba(255,255,255,0.04); border:1px solid var(--border);
  border-radius:var(--radius); padding:28px 24px; margin-bottom:16px;
  transition:border-color var(--transition);
}
.review-card:hover { border-color:rgba(226,198,117,0.4); }
.review-stars { color:var(--gold); font-size:0.9rem; margin-bottom:10px; }
.review-text { color:var(--silver); font-size:0.93rem; line-height:1.7; margin-bottom:12px; }
.review-name { color:var(--text-muted); font-size:0.82rem; }

/* ===== CONTACT FORM ===== */
.contact-form-card {
  background:rgba(255,255,255,0.04); border:1px solid var(--border);
  border-radius:var(--radius-lg); padding:36px 32px; max-width:580px;
}
.form-group { margin-bottom:18px; }
.form-group label { display:block; margin-bottom:6px; font-size:0.85rem; color:var(--silver); }
.form-group input,
.form-group select,
.form-group textarea {
  width:100%; padding:12px 14px; background:rgba(255,255,255,0.06);
  border:1px solid var(--border); border-radius:8px; color:var(--white);
  font-family:'Georgia',serif; font-size:0.93rem; outline:none;
  transition:border-color var(--transition);
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus { border-color:var(--gold); }
.form-group textarea { min-height:100px; resize:vertical; }

/* ===== PREPAY CALCULATOR ===== */
.prepay-card {
  background:rgba(255,255,255,0.04); border:1px solid var(--border);
  border-radius:var(--radius-lg); padding:36px 32px; max-width:620px;
}
.prepay-total {
  font-size:2rem; font-weight:700; color:var(--gold); margin:20px 0;
}
.prepay-note { color:var(--text-muted); font-size:0.82rem; }

/* ===== SERVICE BANNER (legacy inner pages) ===== */
.service-banner-section { background:var(--navy); width:100%; }
.service-banner-title-overlay { padding:44px 0 16px; background:var(--navy); }
.service-banner-title-overlay .section-label { margin-bottom:6px; }
.service-banner-title-overlay .section-title { margin-bottom:0; }
.carpet-banner-img {
  width:100%; height:clamp(260px,38vw,480px);
  background-image:url('https://media.base44.com/images/public/6a18be827fabee404d73a110/17f1522dd_hero-carpet-cleaning.jpg');
  background-size:cover; background-position:center; display:block;
}
.furniture-banner-img {
  width:100%; height:clamp(260px,38vw,480px);
  background-image:url('https://media.base44.com/images/public/6a18be827fabee404d73a110/d9013769f_hero-furniture-cleaning.png');
  background-size:cover; background-position:center; display:block;
}
.service-banner-body {
  padding:36px 0 48px;
  background:var(--navy);
}
.service-banner-alt .service-banner-body { background:var(--navy); }
.service-banner-inner { max-width:680px; }
.service-banner-inner .body-text { margin-bottom:16px; }

/* Banner add-on pills */
.banner-addons { display:flex; flex-wrap:wrap; gap:8px; margin-top:4px; }
.banner-addon {
  display:inline-flex; align-items:center; gap:6px;
  background:rgba(255,255,255,0.05); border:1px solid rgba(201,168,76,0.22);
  border-radius:20px; padding:5px 13px; font-size:0.8rem;
  color:var(--silver); white-space:nowrap;
}
.addon-dot { color:var(--gold); font-size:0.55rem; }

/* ===== RESPONSIVE ===== */
@media(max-width:900px){
  /* nav is now always a right-side dropdown — no mobile overrides needed */
  .header-call { display:none !important; }

  /* hero responsive */
  .hero-content-centered {
    width:90%; max-width:420px;
    margin-left:auto; margin-right:auto;
    margin-top: calc(var(--header-h) + 36px);
    padding-top:0;
    align-items:center;
  }

  .addon-cards-grid { grid-template-columns:repeat(2,1fr); }
  .addon-card-wide { max-width:100%; }

  /* offer-full-row handled by mobile-only block */
  .offer-body { padding:20px 20px 24px; }
  .offer-pct { font-size:2.6rem; }
  .offer-off  { font-size:1.6rem; }
  .offer-prepay-label { font-size:2.0rem; }
  .offer-prepay-sub { font-size:0.8rem; letter-spacing:0.02em; }
  .offer-coupon-header { font-size:1rem; }
  .offer-discount-block { gap:16px; }
  .offer-best-badge { display:none; }

  .offers-page-grid { grid-template-columns:1fr; }
  .results-row { flex-wrap:wrap; }
  .results-row .result-item { flex:1 1 calc(50% - 8px); }
  .diff-row { flex-wrap:wrap; }
  .diff-row .diff-item { flex:1 1 calc(50% - 8px); }
}

@media(max-width:600px){
  .hero-btns-centered { flex-direction:column; align-items:center; }
  .hero-btns-centered .btn { width:100%; max-width:260px; }
  .hero-grunge-logo { width:clamp(180px,55vw,240px); }
  .service-banner-title-overlay { padding:32px 0 12px; }
  .cta-btns { flex-direction:column; align-items:center; }
  .cta-btns .btn { width:100%; max-width:280px; }
}

@media(max-width:700px){
  .service-overlay-card {
    position:relative;
    bottom:auto; left:auto; transform:none;
    width:100%; border-radius:0;
    margin-top:-60px;
    border-left:none; border-right:none;
  }
  .service-photo-wrap::after { height:80px; }
  .addon-cards-grid { grid-template-columns:repeat(2,1fr); }
  .addon-card-wide { max-width:100%; }
}

/* ===== HOMEPAGE ENLARGED LABELS ===== */
.homepage-label {
  font-size:1.44rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:10px;
  font-family:'Georgia',serif;
  font-weight:600;
}

/* ===== FAQ HOMEPAGE ===== */
.faq-home-section { background:var(--navy); border-top:1px solid var(--border); }
.faq-home-section .faq-item { border-bottom:1px solid var(--border); }
.faq-home-section .faq-q {
  display:flex; justify-content:space-between; align-items:center;
  padding:18px 0; cursor:pointer; font-weight:600; color:var(--white);
  font-size:1.0rem; transition:color var(--transition);
}
.faq-home-section .faq-q:hover { color:var(--gold); }
.faq-home-section .faq-q .faq-icon { font-size:1.2rem; color:var(--gold); transition:transform var(--transition); flex-shrink:0; margin-left:12px; }
.faq-home-section .faq-item.active .faq-icon { transform:rotate(45deg); }
.faq-home-section .faq-a { max-height:0; overflow:hidden; transition:max-height 0.35s ease; }
.faq-home-section .faq-item.active .faq-a { max-height:200px; }
.faq-home-section .faq-a-inner { padding-bottom:18px; color:var(--silver); font-size:0.92rem; line-height:1.7; }

/* ===== CONSULTATION CTA BOTTOM ===== */
.consult-cta-section {
  background:linear-gradient(160deg, var(--navy-mid) 0%, var(--navy) 60%, var(--navy-deep) 100%);
  border-top:1px solid rgba(226,198,117,0.25);
  padding:72px 0;
  text-align:center;
}
.consult-cta-section .section-label {
  margin-bottom:10px;
  font-size:1.44rem;
  letter-spacing:0.18em;
  font-weight:600;
}
.consult-cta-section h2 { margin-bottom:16px; white-space:nowrap; font-size:clamp(1.1rem,2.2vw,2rem); }
.consult-cta-section p { color:var(--silver); max-width:420px; margin:0 auto 28px; font-size:0.92rem; }
.consult-cta-btns { display:flex; justify-content:center; gap:14px; flex-wrap:wrap; }

/* ===== ADDON LOGO SLOT ===== */
.addon-logo-slot {
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(255,255,255,0.03);
  border:1px solid var(--border);
  border-radius:var(--radius);
  min-height:260px;
}
.addon-logo-slot img {
  width:100%;
  max-width:200px;
  height:auto;
  opacity:0.9;
  filter:drop-shadow(0 4px 16px rgba(226,198,117,0.18));
}


/* ===== PPRPS SECTION ===== */
.pprps-section {
  background:linear-gradient(160deg, var(--navy-mid) 0%, var(--navy) 100%);
  border-top:1px solid rgba(226,198,117,0.22);
  padding:64px 0;
  text-align:center;
}
.pprps-section .section-label { margin-bottom:10px; }
.pprps-section h2 { margin-bottom:14px; font-size:clamp(1.4rem,2.5vw,2rem); }
.pprps-section p { color:var(--silver); max-width:480px; margin:0 auto 28px; font-size:0.92rem; line-height:1.7; }
.pprps-name { color:var(--gold); font-weight:700; }

/* ===== HERO PHONE ===== */
.hero-phone {
  margin-top:0;          /* gap on parent handles spacing */
  margin-bottom:0;
  color:rgba(255,255,255,0.97);
  font-size:clamp(1.55rem,2.6vw,2.1rem);
  font-family:'Georgia',serif;
  font-weight:700;
  letter-spacing:0.06em;
  text-decoration:none;
  display:block;
  text-align:center;
  text-shadow:0 2px 14px rgba(0,0,0,0.45);
  transition:color 0.2s;
  width:fit-content;
  margin-left:auto;
  margin-right:auto;
}
.hero-phone:hover { color:var(--gold); }
.hero-phone-label { display:none; }


/* ===== SERVICE PHOTO CAROUSEL ===== */
.service-carousel {
  position:relative;
  width:100%;
  height:clamp(420px,55vw,680px);
  overflow:hidden;
  display:block;
}
/* When carousel replaces service-full-img, give wrap the same height */
.service-photo-wrap:has(.service-carousel) {
  height:clamp(420px,55vw,680px);
}

/* Carousel container fallback — shows CDN image if local files not uploaded yet */
#carpet-carousel {
  background:url('https://media.base44.com/images/public/6a18be827fabee404d73a110/17f1522dd_hero-carpet-cleaning.jpg') center/cover no-repeat;
}
#furniture-carousel {
  background:url('https://media.base44.com/images/public/6a18be827fabee404d73a110/d9013769f_hero-furniture-cleaning.png') center/cover no-repeat;
}
.carousel-slide {
  position:absolute;
  inset:0;
  background-color:var(--navy-mid); /* fallback if image file missing */
  background-size:cover;
  background-position:center;
  opacity:0;
  transition:opacity 1s ease-in-out;
}
.carousel-slide.active { opacity:1; }

/* Carousel dots */
.carousel-dots {
  position:absolute;
  bottom:176px; /* sits above the bottom fade overlay */
  left:50%;
  transform:translateX(-50%);
  display:flex;
  gap:8px;
  z-index:5;
}
.carousel-dot {
  width:9px;
  height:9px;
  border-radius:50%;
  background:rgba(255,255,255,0.35);
  border:1.5px solid rgba(255,255,255,0.6);
  cursor:pointer;
  transition:background 0.25s, transform 0.2s;
}
.carousel-dot.active {
  background:var(--gold);
  border-color:var(--gold);
  transform:scale(1.25);
}

/* Logo slot phone */
.addon-logo-phone {
  color:rgba(255,255,255,0.92);
  font-size:clamp(1.1rem,1.5vw,1.35rem);
  font-family:'Georgia',serif;
  font-weight:700;
  letter-spacing:0.06em;
  margin-top:12px;
  text-align:center;
  display:block;
  text-decoration:none;
  text-shadow:0 1px 8px rgba(0,0,0,0.3);
}
.addon-logo-phone:hover { color:var(--gold); }

/* ===== FOOTER CONTACT BLOCK ===== */
.footer-contact {
  margin-bottom:20px;
  color:var(--silver);
  font-size:0.85rem;
  line-height:1.8;
}
.footer-contact a {
  color:var(--silver);
  text-decoration:none;
  transition:color var(--transition);
}
.footer-contact a:hover { color:var(--white); }
.footer-contact strong { color:var(--white); font-weight:600; display:block; margin-bottom:2px; }

/* ===== HERO MOTTO ===== */
.hero-motto-wrap {
  position:absolute;
  /* Moved down — bottom of motto grazes the dark navy fade at the hero base */
  bottom:clamp(10px,2vw,20px);
  left:0;
  right:0;
  text-align:center;
  z-index:5;
  pointer-events:none;
}
.hero-motto {
  display:block;
  /* PNG image version — text inside the span is hidden, img shown instead */
}
.hero-motto-img {
  display:block;
  width:clamp(340px,58vw,750px);
  max-width:calc(100vw - 32px);
  height:auto;
  margin:0 auto;
  filter:drop-shadow(0 3px 20px rgba(0,0,0,0.80));
  opacity:0.96;
}


/* ===== SERVICE AREA SECTION ===== */
.service-area-section {
  background:var(--navy);
  border-top:1px solid var(--border);
  padding:80px 0 70px;
}
.service-area-section .section-title {
  margin-bottom:32px;
}
.service-area-map {
  width:100%;
  max-width:860px;
  margin:0 auto 36px;
  border-radius:var(--radius-lg);
  overflow:hidden;
  border:1px solid var(--border);
  box-shadow:0 8px 40px rgba(0,0,0,0.35);
}
.service-area-map iframe {
  display:block;
  width:100%;
  height:420px;
  border:none;
}
.service-area-desc {
  max-width:760px;
  margin:0 auto 18px;
  color:var(--silver);
  font-size:0.95rem;
  line-height:1.75;
  text-align:center;
}
.service-area-cities {
  max-width:760px;
  margin:0 auto;
  color:rgba(255,255,255,0.7);
  font-size:0.88rem;
  line-height:1.9;
  text-align:center;
  letter-spacing:0.01em;
}

/* Best Value starburst */
.offer-best-badge { display:none; }
/* PPS prepay display block */
.offer-prepay-display {
  display:flex;
  flex-direction:column;
  align-items:center;
  line-height:0.9;
  flex-shrink:0;
  min-width:clamp(90px,12vw,140px);
  gap:0;
}
.offer-prepay-label {
  font-family:'Arial Black','Impact','Arial',sans-serif;
  /* ~3/8in smaller: 5.8rem max → 4.2rem max */
  font-size:clamp(2.5rem,4.8vw,4.2rem);
  font-weight:900;
  color:#ffffff;
  text-transform:uppercase;
  letter-spacing:-0.02em;  /* tight — no gaps between P, P, S */
  text-indent:0;
  -webkit-text-stroke:1px rgba(255,255,255,0.3);
  text-shadow:0 3px 14px rgba(0,0,0,0.5);
  line-height:1;
  text-align:center;
}
.offer-prepay-sub {
  font-family:'Arial Black','Impact','Arial',sans-serif;
  /* Width-match new PPS: 4.2 × (3/7) ≈ 1.8rem max */
  font-size:clamp(1.0rem,1.85vw,1.85rem);
  font-weight:900;
  color:#ffffff;
  letter-spacing:0.02em;
  text-indent:0;
  text-transform:uppercase;
  text-align:center;
}

/* PPS card — two-column layout matching other offer cards */
.offer-pps-body {
  padding:24px 32px 28px;
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:flex-start;
  flex:1;
  gap:24px;
  min-height:120px;
}
.offer-pps-body .offer-prepay-display {
  flex-shrink:0;
}
/* PPS left column: stacked PPS/PROGRAM + button */
.offer-pps-left {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:14px;
  flex-shrink:0;
  min-width:clamp(90px,12vw,140px);
}
/* PPS right column: description text */
.offer-pps-right {
  flex:1;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

/* Smaller button for PPS left column */
.btn-pps {
  font-size:0.8rem;
  padding:9px 18px;
}

/* ===== TWO-COLUMN LIST LAYOUT (carpet / furniture pages) ===== */
.two-col-lists {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px 56px;
  margin-top:8px;
}
.two-col-list-title {
  font-family:'Georgia',serif;
  font-size:clamp(1.1rem,1.8vw,1.4rem);
  color:#ffffff;
  margin-bottom:20px;
  margin-top:10px;
}
.service-detail-list {
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.service-detail-list li {
  display:flex;
  align-items:flex-start;
  gap:10px;
  color:rgba(255,255,255,0.84);
  font-size:0.97rem;
  line-height:1.5;
}
.service-detail-list li::before {
  content:'✦';
  color:var(--gold);
  font-size:0.7rem;
  flex-shrink:0;
  margin-top:4px;
}
@media (max-width:680px) {
  .two-col-lists { grid-template-columns:1fr; gap:36px; }
}

/* ===================================================
   HOMEPAGE TRUST BAR
   =================================================== */
.hero-trust-bar {
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:0;
  margin-top:22px;
  padding:10px 20px;
  background:rgba(7,14,34,0.55);
  border:1px solid rgba(226,198,117,0.28);
  border-radius:4px;
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}
.trust-item {
  display:flex;
  align-items:center;
  gap:6px;
  color:rgba(255,255,255,0.88);
  font-size:clamp(0.72rem,1.1vw,0.82rem);
  font-weight:500;
  letter-spacing:0.03em;
  padding:4px 14px;
  white-space:nowrap;
}
.trust-check {
  color:var(--gold);
  font-weight:700;
  font-size:0.85em;
}
.trust-divider {
  width:1px;
  height:18px;
  background:rgba(226,198,117,0.35);
  flex-shrink:0;
}
@media (max-width:640px) {
  .trust-divider { display:none; }
  .trust-item { padding:3px 10px; font-size:0.72rem; }
  .hero-trust-bar { gap:4px; }
}

/* ===================================================
   ABOUT PAGE — OWNER SECTION
   =================================================== */
.about-owner-section { padding-top:64px; padding-bottom:64px; }
.about-owner-grid {
  display:grid;
  grid-template-columns:1fr 1.6fr;
  gap:56px;
  align-items:start;
}
.about-owner-photo-wrap {
  position:sticky;
  top:calc(var(--header-h) + 24px);
  padding: 12px 0 20px;
}
.about-owner-photo {
  width:100%;
  border-radius:4px;
  display:block;
  border:2px solid rgba(226,198,117,0.3);
  box-shadow:0 16px 56px rgba(0,0,0,0.5);
  object-fit:cover;
  margin-bottom: 16px;
  aspect-ratio:3/4;
}
.about-owner-caption {
  margin-top:14px;
  text-align:center;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.about-owner-name {
  color:#ffffff;
  font-family:'Georgia',serif;
  font-size:1.1rem;
  font-weight:600;
}
.about-owner-title {
  color:var(--gold);
  font-size:0.78rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
}
.about-owner-text-col .body-text { max-width:100%; }
@media (max-width:800px) {
  .about-owner-grid { grid-template-columns:1fr; gap:36px; }
  .about-owner-photo-wrap { position:static; }
  .about-owner-photo { aspect-ratio:4/3; }
}

/* Owner photo — full portrait display (no aspect-ratio crop) */
.about-owner-photo-full {
  aspect-ratio: unset !important;
  height: auto !important;
  max-height: none !important;
  width: 100% !important;
  object-fit: contain !important;
}

/* ===================================================
   ABOUT PAGE — CERTIFICATIONS
   =================================================== */
.about-cert-section { background:rgba(255,255,255,0.02); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.cert-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:20px;
  margin:36px 0 32px;
}
.cert-card {
  display:flex;
  gap:18px;
  align-items:flex-start;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(226,198,117,0.2);
  border-radius:6px;
  padding:22px 24px;
  transition:border-color 0.25s;
}
.cert-card:hover { border-color:rgba(226,198,117,0.45); }
.cert-card-icon { font-size:1.8rem; flex-shrink:0; margin-top:2px; }
.cert-card-label {
  font-size:0.7rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--gold);
  font-weight:600;
  margin-bottom:4px;
}
.cert-card-title {
  font-family:'Georgia',serif;
  font-size:1.05rem;
  color:#ffffff;
  margin:0 0 8px;
}
.cert-card-desc {
  color:var(--silver);
  font-size:0.88rem;
  line-height:1.55;
  margin:0;
}
.iicrc-note {
  display:flex;
  align-items:flex-start;
  gap:18px;
  padding:18px 22px;
  border:1px solid rgba(226,198,117,0.18);
  border-radius:4px;
  background:rgba(226,198,117,0.05);
}
.iicrc-note p {
  color:var(--silver);
  font-size:0.87rem;
  line-height:1.55;
  margin:0;
}
.iicrc-badge {
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  width:56px;
  height:56px;
  border-radius:50%;
  background:var(--gold);
  color:var(--navy);
  font-family:'Arial Black','Impact',sans-serif;
  font-size:0.78rem;
  font-weight:900;
  letter-spacing:0.04em;
  text-align:center;
}
@media (max-width:680px) {
  .cert-grid { grid-template-columns:1fr; }
}

/* ===================================================
   ABOUT PAGE — WHY THE LION
   =================================================== */
.about-lion-section {
  position:relative;
  overflow:hidden;
  background:var(--navy);
  border-top:1px solid var(--border);
}
.about-lion-bg-mark {
  position:absolute;
  right:-80px;
  top:50%;
  transform:translateY(-50%);
  font-size:clamp(280px,32vw,420px);
  color:rgba(226,198,117,0.04);
  line-height:1;
  pointer-events:none;
  user-select:none;
  font-family:'Georgia',serif;
}
.lion-traits-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
  margin:36px 0 40px;
}
.lion-trait-card {
  background:rgba(255,255,255,0.03);
  border:1px solid rgba(226,198,117,0.16);
  border-radius:6px;
  padding:24px 20px;
  transition:border-color 0.25s, background 0.25s;
}
.lion-trait-card:hover {
  border-color:rgba(226,198,117,0.4);
  background:rgba(226,198,117,0.04);
}
.lion-trait-symbol {
  color:var(--gold);
  font-size:1.1rem;
  margin-bottom:12px;
}
.lion-trait-title {
  font-family:'Georgia',serif;
  font-size:1.05rem;
  color:#ffffff;
  margin:0 0 10px;
}
.lion-trait-desc {
  color:var(--silver);
  font-size:0.88rem;
  line-height:1.6;
  margin:0;
}
.lion-quote {
  border-left:3px solid var(--gold);
  margin:0;
  padding:20px 0 20px 28px;
  max-width:720px;
}
.lion-quote p, .lion-quote {
  font-family:'Georgia',serif;
  font-size:1.05rem;
  font-style:italic;
  color:rgba(255,255,255,0.88);
  line-height:1.65;
}
.lion-quote cite {
  display:block;
  margin-top:12px;
  font-size:0.82rem;
  font-style:normal;
  color:var(--gold);
  letter-spacing:0.06em;
  text-transform:uppercase;
}
@media (max-width:800px) {
  .lion-traits-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:480px) {
  .lion-traits-grid { grid-template-columns:1fr; }
}

/* ===================================================
   SERVICE PAGES — VISUAL STEP CARDS
   =================================================== */
.svc-process-section { background:rgba(255,255,255,0.02); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.svc-step-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
  margin-top:36px;
}
.svc-step-grid-6 {
  grid-template-columns:repeat(3,1fr);
}
.svc-step-card {
  background:rgba(255,255,255,0.04);
  border:1px solid var(--border);
  border-radius:6px;
  padding:22px 18px 24px;
  display:flex;
  flex-direction:column;
  gap:6px;
  transition:border-color 0.25s;
}
.svc-step-card:hover { border-color:rgba(226,198,117,0.4); }
.svc-step-num {
  font-family:'Arial Black','Impact',sans-serif;
  font-size:0.7rem;
  font-weight:900;
  color:var(--gold);
  letter-spacing:0.08em;
}
.svc-step-icon { font-size:1.6rem; margin:4px 0 6px; }
.svc-step-title {
  font-family:'Georgia',serif;
  font-size:0.98rem;
  color:#ffffff;
  margin:0 0 6px;
}
.svc-step-desc {
  color:var(--silver);
  font-size:0.85rem;
  line-height:1.6;
  margin:0;
}
@media (max-width:900px) {
  .svc-step-grid { grid-template-columns:repeat(2,1fr); }
  .svc-step-grid-6 { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:520px) {
  .svc-step-grid, .svc-step-grid-6 { grid-template-columns:1fr; }
}

/* ===================================================
   CARPET PAGE — BENEFITS WITH IMAGE
   =================================================== */
.svc-benefits-section { background:var(--navy); }
.svc-benefits-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:52px;
  align-items:center;
}
.svc-benefits-img {
  width:100%;
  aspect-ratio:4/3;
  background-size:cover;
  background-position:center;
  border-radius:4px;
  border:1px solid rgba(226,198,117,0.2);
  box-shadow:0 12px 40px rgba(0,0,0,0.45);
}
.svc-benefits-list { max-width:100%; }
@media (max-width:780px) {
  .svc-benefits-grid { grid-template-columns:1fr; gap:32px; }
}

/* ===================================================
   CARPET PAGE — ADD-ON DETAIL CARDS
   =================================================== */
.addon-detail-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
  margin-top:32px;
}
.addon-detail-card {
  background:rgba(255,255,255,0.04);
  border:1px solid var(--border);
  border-radius:6px;
  padding:22px 18px;
  display:flex;
  flex-direction:column;
  gap:8px;
  transition:border-color 0.25s;
}
.addon-detail-card:hover { border-color:rgba(226,198,117,0.4); }
.addon-detail-icon { font-size:1.8rem; }
.addon-detail-title {
  font-family:'Georgia',serif;
  font-size:0.98rem;
  color:#ffffff;
  margin:0;
}
.addon-detail-desc {
  color:var(--silver);
  font-size:0.85rem;
  line-height:1.6;
  margin:0;
}
@media (max-width:800px) {
  .addon-detail-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:480px) {
  .addon-detail-grid { grid-template-columns:1fr; }
}

/* ===================================================
   CARPET PAGE — TRUST SECTION
   =================================================== */
.svc-trust-section { background:rgba(255,255,255,0.02); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.svc-trust-grid {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:16px;
  margin-top:36px;
}
.svc-trust-item {
  text-align:center;
  padding:22px 14px;
  background:rgba(255,255,255,0.03);
  border:1px solid var(--border);
  border-radius:6px;
}
.svc-trust-icon { font-size:1.6rem; margin-bottom:10px; }
.svc-trust-item h4 {
  font-family:'Georgia',serif;
  font-size:0.9rem;
  color:#ffffff;
  margin:0 0 8px;
}
.svc-trust-item p {
  color:var(--silver);
  font-size:0.8rem;
  line-height:1.55;
  margin:0;
}
@media (max-width:900px) {
  .svc-trust-grid { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:560px) {
  .svc-trust-grid { grid-template-columns:repeat(2,1fr); }
}

/* ===================================================
   UPHOLSTERY PAGE — FURNITURE TYPES GRID
   =================================================== */
.furniture-types-grid {
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:12px;
  margin-top:32px;
}
.furniture-type-card {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  padding:18px 10px;
  background:rgba(255,255,255,0.04);
  border:1px solid var(--border);
  border-radius:6px;
  text-align:center;
  font-size:0.8rem;
  color:var(--silver);
  transition:border-color 0.25s;
}
.furniture-type-card:hover { border-color:rgba(226,198,117,0.4); }
.furniture-type-icon { font-size:1.5rem; }
@media (max-width:900px) {
  .furniture-types-grid { grid-template-columns:repeat(4,1fr); }
}
@media (max-width:560px) {
  .furniture-types-grid { grid-template-columns:repeat(2,1fr); }
}

/* ===================================================
   UPHOLSTERY PAGE — COMMON PROBLEMS
   =================================================== */
.problems-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  margin-top:32px;
}
.problem-card {
  background:rgba(255,255,255,0.04);
  border:1px solid var(--border);
  border-radius:6px;
  padding:22px 18px;
  transition:border-color 0.25s;
}
.problem-card:hover { border-color:rgba(226,198,117,0.35); }
.problem-icon { font-size:1.6rem; margin-bottom:10px; }
.problem-title {
  font-family:'Georgia',serif;
  font-size:0.98rem;
  color:#ffffff;
  margin:0 0 8px;
}
.problem-desc {
  color:var(--silver);
  font-size:0.85rem;
  line-height:1.6;
  margin:0;
}
@media (max-width:780px) {
  .problems-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:480px) {
  .problems-grid { grid-template-columns:1fr; }
}

/* ===================================================
   UPHOLSTERY PAGE — BEFORE & AFTER
   =================================================== */
.before-after-grid {
  display:grid;
  grid-template-columns:1fr 1fr 1fr 1fr;
  gap:16px;
  margin-top:32px;
}
.before-after-card {
  position:relative;
  border-radius:6px;
  overflow:hidden;
  aspect-ratio:4/3;
  border:1px solid var(--border);
}
.before-after-placeholder {
  background:rgba(255,255,255,0.03);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
}
.ba-label {
  position:absolute;
  top:12px;
  left:14px;
  background:rgba(226,198,117,0.9);
  color:var(--navy);
  font-size:0.7rem;
  font-weight:700;
  letter-spacing:0.1em;
  text-transform:uppercase;
  padding:3px 9px;
  border-radius:2px;
}
.ba-label-after { background:rgba(255,255,255,0.85); }
.ba-placeholder-inner {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  color:var(--silver);
  font-size:0.8rem;
  padding-top:20px;
}
.ba-placeholder-icon { font-size:2rem; opacity:0.4; }
@media (max-width:700px) {
  .before-after-grid { grid-template-columns:1fr 1fr; }
}

/* ===================================================
   FOOTER — SERVICE AREAS
   =================================================== */
.footer-service-areas {
  margin-top:20px;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,0.07);
}
.footer-areas-label {
  font-size:0.7rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--gold);
  font-weight:600;
  margin:0 0 6px;
}
.footer-areas-list {
  color:var(--silver);
  font-size:0.8rem;
  line-height:1.7;
  margin:0;
}
/* Clickable footer service area links */
.footer-areas-links {
  display:flex;
  flex-wrap:wrap;
  gap:6px 10px;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.footer-area-link {
  color:var(--silver);
  font-size:0.8rem;
  text-decoration:none;
  transition:color 0.2s;
  line-height:1.7;
}
.footer-area-link:hover {
  color:var(--gold);
  text-decoration:underline;
}


/* ===================================================
   STEAM LION CREDENTIAL ICONS — print-matched style
   White line-art SVGs in circular borders (from door hanger)
   =================================================== */

.sl-icon-badge {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  text-align:center;
}
.sl-icon-circle {
  width:68px;
  height:68px;
  border-radius:50%;
  border:2px solid rgba(255,255,255,0.50);
  background:rgba(255,255,255,0.05);
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  transition:border-color 0.3s, background 0.3s, transform 0.3s, box-shadow 0.3s;
  box-shadow:0 0 16px rgba(255,255,255,0.07), inset 0 0 8px rgba(255,255,255,0.03);
  cursor:default;
}
.sl-icon-circle:hover {
  border-color:rgba(226,198,117,0.75);
  background:rgba(226,198,117,0.08);
  box-shadow:0 8px 28px rgba(226,198,117,0.22), inset 0 0 10px rgba(226,198,117,0.05);
}
.sl-icon-circle svg {
  width:34px;
  height:34px;
  opacity:0.90;
  filter:drop-shadow(0 1px 4px rgba(255,255,255,0.2));
}
.sl-icon-label {
  font-size:0.68rem;
  font-weight:600;
  letter-spacing:0.09em;
  text-transform:uppercase;
  color:rgba(255,255,255,0.75);
  line-height:1.35;
  max-width:82px;
}

/* Floating animation */
@keyframes sl-float {
  0%,100% { transform:translateY(0px); }
  50%      { transform:translateY(-6px); }
}
.sl-icon-circle.sl-float {
  animation:sl-float 3.8s ease-in-out infinite;
}
.sl-icon-badge:nth-child(2) .sl-icon-circle.sl-float { animation-delay:0.45s; }
.sl-icon-badge:nth-child(3) .sl-icon-circle.sl-float { animation-delay:0.9s; }
.sl-icon-badge:nth-child(4) .sl-icon-circle.sl-float { animation-delay:1.35s; }
.sl-icon-badge:nth-child(5) .sl-icon-circle.sl-float { animation-delay:1.8s; }
.sl-icon-badge:nth-child(6) .sl-icon-circle.sl-float { animation-delay:2.25s; }

/* Pause float on hover */
.sl-icon-circle.sl-float:hover {
  animation-play-state:paused;
  transform:translateY(-5px);
}

/* Credential strip — 5-icon row */
.credential-strip {
  display:flex;
  justify-content:center;
  align-items:flex-start;
  gap:clamp(18px,4.5vw,60px);
  flex-wrap:wrap;
  padding:44px 0 16px;
}

/* Process icon row */
.process-icon-row {
  display:flex;
  justify-content:center;
  align-items:flex-start;
  gap:clamp(10px,2.5vw,32px);
  flex-wrap:wrap;
  margin:36px 0 8px;
}
.process-icon-row .sl-icon-circle { width:56px; height:56px; }
.process-icon-row .sl-icon-circle svg { width:26px; height:26px; }
.process-icon-row .sl-icon-label { font-size:0.60rem; max-width:62px; }

/* Add-on icon row */
.addon-icon-row {
  display:flex;
  justify-content:center;
  align-items:flex-start;
  gap:clamp(12px,3vw,44px);
  flex-wrap:wrap;
  margin:28px 0 8px;
}
.addon-icon-row .sl-icon-circle { width:62px; height:62px; }
.addon-icon-row .sl-icon-circle svg { width:29px; height:29px; }
.addon-icon-row .sl-icon-label { font-size:0.63rem; max-width:72px; }

/* Trust bar on homepage — smaller variant */
.hero-trust-icons {
  display:flex;
  justify-content:center;
  align-items:flex-start;
  gap:clamp(14px,3.5vw,44px);
  flex-wrap:wrap;
  margin-top:18px;
}
.hero-trust-icons .sl-icon-circle { width:52px; height:52px; }
.hero-trust-icons .sl-icon-circle svg { width:24px; height:24px; }
.hero-trust-icons .sl-icon-label { font-size:0.58rem; max-width:60px; color:rgba(255,255,255,0.8); }

/* ═══════════════════════════════════════════════════════
   STEAM LION — UNIFIED BADGE ICON SYSTEM v2
   Solid, chiseled, vintage — matches print collateral
   ═══════════════════════════════════════════════════════ */

/* Badge wrapper */
.sl-badge-wrap {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  text-align:center;
}

/* The circular badge */
.sl-badge {
  border-radius:50%;
  border:2.5px solid rgba(255,255,255,0.60);
  background:radial-gradient(circle at 38% 38%,
    rgba(255,255,255,0.14) 0%,
    rgba(255,255,255,0.05) 55%,
    rgba(0,0,0,0.15) 100%);
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  transition:border-color 0.3s, background 0.3s, transform 0.3s, box-shadow 0.3s;
  box-shadow:0 2px 10px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.2), inset 0 -1px 0 rgba(0,0,0,0.2);
  /* Slight emboss / chiseled effect */
  filter:drop-shadow(0 1px 3px rgba(0,0,0,0.5));
}
.sl-badge:hover {
  border-color:rgba(226,198,117,0.85);
  background:radial-gradient(circle at 38% 38%,
    rgba(226,198,117,0.18) 0%,
    rgba(226,198,117,0.07) 55%,
    rgba(0,0,0,0.10) 100%);
  box-shadow:0 6px 22px rgba(226,198,117,0.25), inset 0 1px 0 rgba(255,255,255,0.25);
}
.sl-badge svg {
  filter:drop-shadow(0 1px 5px rgba(255,255,255,0.25)) drop-shadow(0 0 8px rgba(255,255,255,0.08));
}

/* Sizes */
.badge-sm { width:56px; height:56px; }
.badge-sm svg { width:26px; height:26px; }
.badge-md { width:72px; height:72px; }
.badge-md svg { width:36px; height:36px; }
.badge-lg { width:88px; height:88px; }
.badge-lg svg { width:44px; height:44px; }

/* Step number overlay */
.badge-num {
  position:absolute;
  top:-8px; left:-8px;
  width:24px; height:24px;
  border-radius:50%;
  background:var(--gold);
  color:#0a1428;
  font-size:0.72rem;
  font-weight:800;
  display:flex;
  align-items:center;
  justify-content:center;
  border:2px solid rgba(255,255,255,0.3);
  box-shadow:0 2px 6px rgba(0,0,0,0.4);
  z-index:2;
}

/* Label */
.sl-badge-label {
  font-size:0.70rem;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:rgba(255,255,255,0.82);
  line-height:1.35;
  max-width:88px;
}

/* Float animation */
@keyframes sl-badge-float {
  0%,100% { transform:translateY(0); }
  50%      { transform:translateY(-7px); }
}
.sl-float { animation:sl-badge-float 4s ease-in-out infinite; }
.sl-badge-wrap:nth-child(2) .sl-float { animation-delay:0.5s; }
.sl-badge-wrap:nth-child(3) .sl-float { animation-delay:1.0s; }
.sl-badge-wrap:nth-child(4) .sl-float { animation-delay:1.5s; }
.sl-badge-wrap:nth-child(5) .sl-float { animation-delay:2.0s; }
.sl-badge-wrap:nth-child(6) .sl-float { animation-delay:2.5s; }
.sl-badge-wrap:nth-child(7) .sl-float { animation-delay:3.0s; }
.sl-badge-wrap:nth-child(8) .sl-float { animation-delay:3.5s; }
.sl-float:hover { animation-play-state:paused; transform:translateY(-6px); }

/* ── Badge Rows ── */
.badge-row {
  display:flex;
  justify-content:center;
  align-items:flex-start;
  gap:clamp(16px,3.5vw,50px);
  flex-wrap:wrap;
  padding:36px 0 8px;
}
.badge-row-sm { gap:clamp(12px,2.5vw,36px); }
.badge-row-sm .badge-md { width:58px; height:58px; }
.badge-row-sm .badge-md svg { width:28px; height:28px; }
.badge-row-sm .sl-badge-label { font-size:0.64rem; max-width:70px; }

/* ── Process grid (numbered step cards) ── */
.process-card-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(130px,1fr));
  gap:20px;
  margin:36px 0 8px;
}
.process-card {
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.12);
  border-radius:10px;
  padding:24px 16px 20px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  text-align:center;
  transition:border-color 0.3s, background 0.3s;
}
.process-card:hover {
  border-color:rgba(226,198,117,0.4);
  background:rgba(226,198,117,0.04);
}
.process-card-title {
  font-size:0.82rem;
  font-weight:700;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:rgba(255,255,255,0.9);
  line-height:1.3;
}
.process-card-desc {
  font-size:0.74rem;
  color:rgba(255,255,255,0.60);
  line-height:1.5;
}

/* ── Cert grid (about page) ── */
.cert-card-v2 {
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.14);
  border-top:3px solid var(--gold);
  border-radius:8px;
  padding:32px 24px 28px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;
  text-align:center;
  transition:border-color 0.3s, background 0.3s;
}
.cert-card-v2:hover {
  background:rgba(226,198,117,0.04);
  border-color:rgba(226,198,117,0.35);
}
.cert-grid-v2 {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px,1fr));
  gap:24px;
  margin-top:40px;
}
.cert-card-v2 h3 {
  font-size:0.95rem;
  font-weight:700;
  color:var(--white);
  margin:0;
  letter-spacing:0.04em;
}
.cert-card-v2 p {
  font-size:0.78rem;
  color:rgba(255,255,255,0.65);
  line-height:1.55;
  margin:0;
}
.cert-card-v2 .cert-label {
  font-size:0.62rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--gold);
  font-weight:700;
}

/* ── Lion trait cards v2 ── */
.lion-trait-grid-v2 {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(160px,1fr));
  gap:20px;
  margin:36px 0;
}
.lion-trait-card-v2 {
  background:rgba(255,255,255,0.03);
  border:1px solid rgba(255,255,255,0.10);
  border-radius:8px;
  padding:28px 20px 24px;
  text-align:center;
  transition:border-color 0.3s;
}
.lion-trait-card-v2:hover { border-color:rgba(226,198,117,0.35); }
.lion-trait-card-v2 .trait-icon { margin-bottom:14px; }
.lion-trait-card-v2 h4 {
  font-size:0.9rem;
  font-weight:700;
  color:var(--gold);
  letter-spacing:0.08em;
  text-transform:uppercase;
  margin:0 0 8px;
}
.lion-trait-card-v2 p {
  font-size:0.77rem;
  color:rgba(255,255,255,0.65);
  line-height:1.55;
  margin:0;
}

/* ── Diff cards v2 ── */
.diff-card-v2 {
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.12);
  border-radius:8px;
  padding:28px 20px 24px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  text-align:center;
  transition:border-color 0.3s;
}
.diff-card-v2:hover { border-color:rgba(226,198,117,0.35); }
.diff-card-v2 h3 { font-size:0.88rem; font-weight:700; color:var(--white); margin:0; letter-spacing:0.05em; }
.diff-card-v2 p { font-size:0.76rem; color:rgba(255,255,255,0.62); line-height:1.5; margin:0; }

/* ── Problem cards ── */
.problem-card-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(150px,1fr));
  gap:20px;
  margin-top:36px;
}
.problem-card-v2 {
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.12);
  border-radius:8px;
  padding:28px 16px 22px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  text-align:center;
  transition:border-color 0.3s;
}
.problem-card-v2:hover { border-color:rgba(226,198,117,0.35); }
.problem-card-v2 h4 { font-size:0.84rem; font-weight:700; color:var(--white); margin:0; letter-spacing:0.05em; }
.problem-card-v2 p { font-size:0.73rem; color:rgba(255,255,255,0.60); line-height:1.5; margin:0; }

/* ── Furn type tiles ── */
.furn-tile-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(110px,1fr));
  gap:18px;
  margin-top:36px;
}
.furn-tile {
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.12);
  border-radius:8px;
  padding:24px 12px 20px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  text-align:center;
  transition:border-color 0.3s;
}
.furn-tile:hover { border-color:rgba(226,198,117,0.4); }
.furn-tile span {
  font-size:0.70rem;
  font-weight:700;
  letter-spacing:0.07em;
  text-transform:uppercase;
  color:rgba(255,255,255,0.80);
}

/* ── Trust CTA section ── */
.svc-cta-trust-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(160px,1fr));
  gap:20px;
  margin:36px 0;
}

/* ── Benefits check list ── */
.benefits-list { list-style:none; padding:0; margin:0; }
.benefits-list li {
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:10px 0;
  border-bottom:1px solid rgba(255,255,255,0.07);
  color:rgba(255,255,255,0.85);
  font-size:0.9rem;
  line-height:1.4;
}
.benefits-list li:last-child { border-bottom:none; }
.benefits-list li::before {
  content:'✦';
  color:var(--gold);
  font-size:0.75rem;
  margin-top:2px;
  flex-shrink:0;
}

/* B&A placeholder */
.ba-placeholder-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin-top:32px;
}
.ba-placeholder {
  aspect-ratio:4/3;
  border:2px dashed rgba(226,198,117,0.35);
  border-radius:8px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
  color:rgba(255,255,255,0.45);
  font-size:0.82rem;
  font-weight:600;
  letter-spacing:0.08em;
  text-transform:uppercase;
  background:rgba(255,255,255,0.02);
}
.ba-placeholder-icon { font-size:2rem; opacity:0.35; }

/* ── Responsive ── */
@media(max-width:640px){
  .process-card-grid { grid-template-columns:repeat(2,1fr); gap:14px; }
  .process-card { padding:18px 12px 16px; }
  .cert-grid-v2 { grid-template-columns:1fr 1fr; }
  .lion-trait-grid-v2 { grid-template-columns:1fr 1fr; }
  .furn-tile-grid { grid-template-columns:repeat(3,1fr); }
  .ba-placeholder-grid { grid-template-columns:1fr; }
  .badge-row { gap:18px; }
  .badge-md { width:60px; height:60px; }
  .badge-md svg { width:30px; height:30px; }
  .badge-lg { width:72px; height:72px; }
  .badge-lg svg { width:36px; height:36px; }
}


/* ═══════════════════════════════════════
   HERO — RIGHT SIDE CREDENTIAL LIST
   ═══════════════════════════════════════ */
.hero-cred-list {
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  right:clamp(20px, 5vw, 80px);
  z-index:4;
  max-width:280px;
}
.hero-cred-list ul {
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.hero-cred-list li {
  display:flex;
  align-items:center;
  gap:12px;
  color:rgba(255,255,255,0.95);
  font-size:clamp(0.78rem,1.1vw,0.90rem);
  font-weight:600;
  letter-spacing:0.04em;
  text-shadow:0 1px 6px rgba(0,0,0,0.7);
}
.hero-cred-icon {
  width:32px;
  height:32px;
  flex-shrink:0;
  filter:drop-shadow(0 1px 4px rgba(0,0,0,0.6));
}
/* Hide on small screens where the lion fills the width */
@media (max-width:860px) {
  .hero-cred-list { display:none; }
}

/* ═══════════════════════════════════════════════════════
   SERVICE PAGE HERO CAROUSEL
   ═══════════════════════════════════════════════════════ */
.svc-hero-carousel-wrap { position:relative; width:100%; }
.svc-hero-carousel {
  position:relative;
  width:100%;
  height:clamp(380px, 52vw, 640px);
  overflow:hidden;
}
.svc-hero-slide {
  position:absolute; inset:0;
  background-size:cover;
  background-position:center;
  opacity:0;
  transition:opacity 1.2s ease;
}
.svc-hero-slide.active { opacity:1; }
.svc-hero-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to right,
    rgba(7,14,34,0.88) 0%,
    rgba(7,14,34,0.70) 40%,
    rgba(7,14,34,0.30) 75%,
    rgba(7,14,34,0.10) 100%
  );
  display:flex;
  align-items:center;
  z-index:2;
  padding:40px 0;
}
.svc-hero-overlay .container { position:relative; z-index:3; }
.svc-hero-sub {
  color:rgba(255,255,255,0.88);
  font-size:clamp(0.92rem,1.3vw,1.05rem);
  max-width:520px;
  margin-bottom:28px;
  line-height:1.6;
}
.svc-hero-dots {
  position:absolute;
  bottom:18px;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  gap:8px;
  z-index:4;
}
.svc-hero-dot {
  width:8px; height:8px;
  border-radius:50%;
  background:rgba(255,255,255,0.45);
  cursor:pointer;
  transition:background 0.3s;
}
.svc-hero-dot.active { background:var(--gold); }

/* ═══════════════════════════════════════════════════════
   VERTICAL STEP ROWS (process lists)
   ═══════════════════════════════════════════════════════ */
.step-list {
  display:flex;
  flex-direction:column;
  gap:0;
  margin-top:36px;
}
.step-row {
  display:grid;
  grid-template-columns:64px 56px 1fr;
  align-items:center;
  gap:20px;
  padding:22px 24px;
  border-bottom:1px solid rgba(255,255,255,0.08);
  transition:background 0.25s;
}
.step-row:first-child { border-top:1px solid rgba(255,255,255,0.08); border-radius:8px 8px 0 0; }
.step-row:last-child { border-radius:0 0 8px 8px; }
.step-row:hover { background:rgba(226,198,117,0.05); }
.step-num {
  font-size:clamp(2rem,4vw,3rem);
  font-weight:900;
  font-family:'Arial Black',Arial,sans-serif;
  color:rgba(226,198,117,0.35);
  line-height:1;
  text-align:right;
  user-select:none;
}
.step-icon-wrap {
  display:flex;
  align-items:center;
  justify-content:center;
}
.step-icon {
  width:40px;
  height:40px;
  filter:drop-shadow(0 1px 5px rgba(255,255,255,0.18));
}
.step-text { display:flex; flex-direction:column; gap:4px; }
.step-title {
  font-size:0.96rem;
  font-weight:700;
  color:var(--white);
  letter-spacing:0.04em;
  margin:0;
}
.step-desc {
  font-size:0.82rem;
  color:rgba(255,255,255,0.65);
  line-height:1.55;
  margin:0;
}
/* Intro line — keep on one line */
.step-intro-line {
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:100%;
}

/* ═══════════════════════════════════════════════════════
   BENEFITS TWO-COLUMN
   ═══════════════════════════════════════════════════════ */
.benefits-two-col {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  align-items:center;
  margin-top:32px;
}
.benefits-img-col img.benefits-img {
  width:100%;
  border-radius:10px;
  object-fit:cover;
  aspect-ratio:4/3;
  border:1px solid var(--border);
}

/* ═══════════════════════════════════════════════════════
   ADD-ON GRID v3
   ═══════════════════════════════════════════════════════ */
.addon-grid-v3 {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:20px;
}
.addon-card-v3 {
  display:flex;
  align-items:flex-start;
  gap:16px;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.12);
  border-radius:8px;
  padding:22px 20px;
  transition:border-color 0.3s;
}
.addon-card-v3:hover { border-color:rgba(226,198,117,0.35); }
.addon-icon-v3 {
  width:36px;
  height:36px;
  flex-shrink:0;
  margin-top:2px;
  filter:drop-shadow(0 1px 4px rgba(255,255,255,0.18));
}
.addon-title-v3 {
  font-size:0.88rem;
  font-weight:700;
  color:var(--white);
  letter-spacing:0.04em;
  margin-bottom:6px;
}
.addon-desc-v3 {
  font-size:0.78rem;
  color:rgba(255,255,255,0.62);
  line-height:1.5;
  margin:0;
}

/* ═══════════════════════════════════════════════════════
   COMMERCIAL SECTION
   ═══════════════════════════════════════════════════════ */
.commercial-two-col {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  align-items:start;
  margin-top:28px;
}
.commercial-list {
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:0;
}
.commercial-list li {
  padding:11px 16px;
  border-bottom:1px solid rgba(255,255,255,0.08);
  color:rgba(255,255,255,0.82);
  font-size:0.88rem;
  font-weight:500;
  letter-spacing:0.03em;
}
.commercial-list li:first-child { border-top:1px solid rgba(255,255,255,0.08); }
.commercial-list li::before { content:'✦ '; color:var(--gold); font-size:0.7rem; }

/* ═══════════════════════════════════════════════════════
   FURNITURE PHOTO GRID
   ═══════════════════════════════════════════════════════ */
.furn-photo-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(160px, 1fr));
  gap:16px;
}
.furn-photo-tile {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  text-align:center;
}
.furn-photo-tile img {
  width:100%;
  aspect-ratio:1;
  object-fit:cover;
  border-radius:8px;
  border:1px solid rgba(255,255,255,0.12);
  transition:border-color 0.3s;
}
.furn-photo-tile:hover img { border-color:rgba(226,198,117,0.45); }
.furn-photo-tile span {
  font-size:0.74rem;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:rgba(255,255,255,0.78);
}

/* ═══════════════════════════════════════════════════════
   BEFORE & AFTER PLACEHOLDERS v2
   ═══════════════════════════════════════════════════════ */
.ba-placeholder {
  aspect-ratio:4/3;
  border:2px dashed rgba(226,198,117,0.30);
  border-radius:8px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,0.02);
}
.ba-ph-label {
  font-size:0.80rem;
  font-weight:700;
  letter-spacing:0.10em;
  text-transform:uppercase;
  color:rgba(255,255,255,0.35);
}

/* ═══════════════════════════════════════════════════════
   RESPONSIVE — step rows + grids
   ═══════════════════════════════════════════════════════ */
@media(max-width:768px){
  .step-row { grid-template-columns:44px 40px 1fr; gap:12px; padding:16px 12px; }
  .step-num { font-size:1.8rem; }
  .step-icon { width:32px; height:32px; }
  .benefits-two-col { grid-template-columns:1fr; }
  .commercial-two-col { grid-template-columns:1fr; }
  .furn-photo-grid { grid-template-columns:repeat(3,1fr); }
  .svc-hero-carousel { height:clamp(300px,65vw,480px); }
  .step-intro-line { white-space:normal; }
}
@media(max-width:480px){
  .furn-photo-grid { grid-template-columns:repeat(2,1fr); }
  .addon-grid-v3 { grid-template-columns:1fr; }
  .ba-placeholder-grid { grid-template-columns:1fr; }
}

/* ═══════════════════════════════════════════════════════
   SERVICE PAGE TYPOGRAPHY & LAYOUT v3
   ═══════════════════════════════════════════════════════ */

/* Large all-caps page title in hero */
.svc-page-title {
  font-family:'Arial Black', Arial, sans-serif;
  font-size:clamp(2rem, 5vw, 3.4rem);
  font-weight:900;
  letter-spacing:0.06em;
  color:#fff;
  text-transform:uppercase;
  line-height:1.05;
  margin:0 0 16px;
  text-shadow:0 2px 16px rgba(0,0,0,0.55);
}

/* Section headings — all-caps, restrained */
.svc-section-heading {
  font-family:'Arial Black', Arial, sans-serif;
  font-size:clamp(1.1rem, 2.2vw, 1.5rem);
  font-weight:900;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:#fff;
  margin:0 0 24px;
  line-height:1.15;
}
/* Center all section headings by default */
.svc-section-heading {
  text-align: center;
}

/* Second subline in hero (lighter weight) */
.svc-hero-sub2 {
  color:rgba(255,255,255,0.75);
  font-size:clamp(0.84rem, 1.2vw, 0.96rem);
  margin-top:8px;
  line-height:1.55;
  max-width:520px;
}

/* Intro section — wider readable column */
.svc-intro-section { padding-bottom:40px; }
.svc-intro-container { max-width:90%; width:90%; margin:0 auto; }
.svc-intro-container .body-text { font-size:1.02rem; line-height:1.75; margin-bottom:16px; }

/* Goal line — italic, gold accent */
.svc-goal-line {
  font-style:italic;
  color:var(--gold);
  font-size:1.05rem;
  font-weight:600;
  margin-top:8px;
  letter-spacing:0.02em;
}

/* Process subhead — single line, no wrap */
.svc-process-sub {
  color:rgba(255,255,255,0.70);
  font-size:0.92rem;
  margin-bottom:32px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* ═══════════════════════════════════════════════════════
   WHY CHOOSE SECTION
   ═══════════════════════════════════════════════════════ */
.why-section { padding-top:64px; padding-bottom:72px; }
.why-heading { margin-bottom:36px; }
.why-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:24px;
}
.why-card {
  display:flex;
  align-items:flex-start;
  gap:16px;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.10);
  border-left:3px solid var(--gold);
  border-radius:6px;
  padding:22px 20px;
  transition:background 0.25s, border-color 0.25s;
}
.why-card:hover {
  background:rgba(226,198,117,0.06);
  border-color:rgba(226,198,117,0.45);
}
.why-icon {
  width:40px;
  height:40px;
  flex-shrink:0;
  margin-top:2px;
  filter:drop-shadow(0 1px 4px rgba(255,255,255,0.15));
}
.why-card-text { display:flex; flex-direction:column; gap:5px; }
.why-card-title {
  font-size:0.90rem;
  font-weight:800;
  color:#fff;
  letter-spacing:0.05em;
  text-transform:uppercase;
}
.why-card-desc {
  font-size:0.78rem;
  color:rgba(255,255,255,0.62);
  line-height:1.55;
  margin:0;
}

/* ═══════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════ */
@media(max-width:768px){
  .svc-process-sub { white-space:normal; }
  .why-grid { grid-template-columns:1fr; gap:16px; }
  .svc-page-title { font-size:clamp(1.6rem,8vw,2.4rem); }
  .svc-section-heading { font-size:clamp(1rem,4vw,1.25rem); }
}

/* ═══════════════════════════════════════════════════════
   STEP LIST v2 — inline format, no icons
   ═══════════════════════════════════════════════════════ */
.step-list-v2 {
  display:flex;
  flex-direction:column;
  gap:0;
  margin-top:28px;
}
.step-row-v2 {
  display:flex;
  align-items:baseline;
  gap:18px;
  padding:14px 0;
  border-bottom:1px solid rgba(255,255,255,0.07);
}
.step-row-v2:first-child { border-top:1px solid rgba(255,255,255,0.07); }
.step-num-v2 {
  font-size:clamp(1.8rem,3vw,2.6rem);
  font-weight:900;
  font-family:'Arial Black',Arial,sans-serif;
  color:var(--gold);
  line-height:1;
  min-width:44px;
  text-align:right;
  flex-shrink:0;
  user-select:none;
}
.step-inline {
  flex:1;
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:4px;
  font-size:clamp(0.84rem,1.15vw,0.94rem);
  line-height:1.55;
}
.step-title-v2 {
  font-weight:800;
  color:#fff;
  font-size:clamp(0.90rem,1.25vw,1.0rem);
  letter-spacing:0.02em;
  white-space:nowrap;
}
.step-dash {
  color:rgba(255,255,255,0.50);
  flex-shrink:0;
}
.step-desc-inline {
  color:rgba(255,255,255,0.72);
}
.optional-tag {
  font-size:0.68rem;
  font-weight:800;
  letter-spacing:0.10em;
  color:var(--gold);
  white-space:nowrap;
  padding:1px 6px;
  border:1px solid rgba(226,198,117,0.45);
  border-radius:3px;
  vertical-align:middle;
  margin-left:2px;
}

/* Wide container for process sections */
.container-wide {
  max-width:960px;
  width:100%;
  margin:0 auto;
  padding:0 clamp(16px,4vw,48px);
}

/* ═══════════════════════════════════════════════════════
   TWO-COLUMN SERVICE SECTIONS (residential / commercial)
   ═══════════════════════════════════════════════════════ */
.svc-two-col-section { padding-top:64px; padding-bottom:64px; }
.svc-two-col-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:52px;
  align-items:center;
}
.svc-two-col-img { overflow:hidden; border-radius:10px; }
.svc-col-img {
  width:100%;
  height:400px;
  object-fit:cover;
  display:block;
  border-radius:10px;
  border:1px solid rgba(255,255,255,0.10);
}
.svc-two-col-text { display:flex; flex-direction:column; gap:0; }
.svc-two-col-text .body-text { margin-bottom:14px; }

/* ═══════════════════════════════════════════════════════
   HERO CENTERED OVERLAY
   ═══════════════════════════════════════════════════════ */
.svc-hero-overlay-centered {
  justify-content:center;
}
.svc-hero-sub-lg {
  font-size:clamp(1.0rem,1.6vw,1.18rem) !important;
  line-height:1.55;
  color:rgba(255,255,255,0.92) !important;
}
/* Stacked two-line title */
.svc-title-stacked {
  line-height:1.0;
}

/* ═══════════════════════════════════════════════════════
   ADD-ON GRID v4 — no icons, equal height
   ═══════════════════════════════════════════════════════ */
.addon-grid-v4 {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
  gap:16px;
  align-items:stretch;
}
.addon-card-v4 {
  display:flex;
  flex-direction:column;
  gap:8px;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.12);
  border-radius:8px;
  padding:22px 20px;
  transition:border-color 0.3s;
}
.addon-card-v4:hover { border-color:rgba(226,198,117,0.35); }

/* One-line addon intro */
.addon-intro-line {
  color:rgba(255,255,255,0.68);
  font-size:0.88rem;
  margin-bottom:24px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* ═══════════════════════════════════════════════════════
   FURNITURE PHOTO ROW — single row, 6 items
   ═══════════════════════════════════════════════════════ */
.furn-photo-row {
  display:grid;
  grid-template-columns:repeat(6, 1fr);
  gap:14px;
}
.furn-photo-row .furn-photo-tile img {
  aspect-ratio:3/4;
  object-fit:cover;
  width:100%;
  border-radius:8px;
  border:1px solid rgba(255,255,255,0.12);
  transition:border-color 0.3s;
}
.furn-photo-row .furn-photo-tile:hover img { border-color:rgba(226,198,117,0.45); }

/* ═══════════════════════════════════════════════════════
   ABOUT PAGE — credential bar
   ═══════════════════════════════════════════════════════ */
.about-cred-bar {
  margin-top:var(--header-h);
  background:rgba(226,198,117,0.08);
  border-bottom:1px solid rgba(226,198,117,0.22);
  padding:14px 0;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:0;
}
.about-cred-item {
  font-size:clamp(0.78rem,1.2vw,0.90rem);
  font-weight:700;
  color:var(--gold);
  letter-spacing:0.06em;
  text-transform:uppercase;
  padding:0 24px;
}
.about-cred-divider {
  color:rgba(226,198,117,0.40);
  font-size:1.1rem;
}

/* ═══════════════════════════════════════════════════════
   FAQ PAGE — no hero gap, accordion
   ═══════════════════════════════════════════════════════ */
.faq-page-main {
  padding-top:40px;
  padding-bottom:80px;
  min-height:70vh;
}
.faq-container { max-width:800px; }
.faq-page-title {
  font-size:clamp(1.6rem,3.5vw,2.4rem);
  font-weight:900;
  color:#fff;
  margin-bottom:8px;
  letter-spacing:0.02em;
}
.faq-page-sub {
  color:rgba(255,255,255,0.60);
  font-size:0.92rem;
  margin-bottom:40px;
}
/* Bold, larger question text */
.faq-question-lg {
  font-size:clamp(0.94rem,1.4vw,1.05rem) !important;
  font-weight:700 !important;
  letter-spacing:0.01em;
}
/* Tighter spacing between items */
.faq-list .faq-item {
  border-bottom:1px solid rgba(255,255,255,0.10);
  margin-bottom:0;
}
.faq-list .faq-item:first-child {
  border-top:1px solid rgba(255,255,255,0.10);
}

/* ═══════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════ */
@media(max-width:768px){
  .svc-two-col-grid { grid-template-columns:1fr; gap:28px; }
  .svc-col-img { height:260px; }
  .furn-photo-row { grid-template-columns:repeat(3,1fr); }
  .addon-grid-v4 { grid-template-columns:1fr 1fr; }
  .addon-intro-line { white-space:normal; }
  .step-row-v2 { gap:12px; }
  .step-num-v2 { min-width:32px; font-size:1.6rem; }
  .about-cred-item { padding:0 12px; }
}
@media(max-width:480px){
  .furn-photo-row { grid-template-columns:repeat(2,1fr); }
  .addon-grid-v4 { grid-template-columns:1fr; }
  .step-inline { flex-wrap:wrap; }
}

/* ═══════════════════════════════════════════════════════
   ADDON + SIGN — inline before "Add-On Services" heading
   ═══════════════════════════════════════════════════════ */
.addon-plus-sign {
  font-size:1.6em;
  font-weight:900;
  color:var(--gold);
  margin-right:0.18em;
  line-height:1;
  vertical-align:middle;
  display:inline-block;
  transform:translateY(-0.05em);
  text-shadow:0 0 12px rgba(226,198,117,0.5);
}

/* ═══════════════════════════════════════════════════════
   ABOUT PAGE — inline credential line above heading
   ═══════════════════════════════════════════════════════ */
.about-inline-cred {
  font-size:clamp(0.82rem,1.2vw,0.96rem);
  font-weight:700;
  color:rgba(255,255,255,0.72);
  letter-spacing:0.06em;
  text-transform:uppercase;
  margin:0 0 10px;
  white-space:nowrap;
}

/* ═══════════════════════════════════════════════════════
   FAQ ACCORDION — faq-question / faq-answer classes
   (used on faq.html standalone page)
   ═══════════════════════════════════════════════════════ */

/* The button / question row */
.faq-list .faq-question {
  display:flex;
  justify-content:space-between;
  align-items:center;
  width:100%;
  padding:18px 0;
  background:none;
  border:none;
  border-top:1px solid rgba(255,255,255,0.10);
  cursor:pointer;
  font-size:clamp(1.0rem, 1.5vw, 1.1rem);
  font-weight:800;
  color:#fff;
  text-align:left;
  letter-spacing:0.01em;
  line-height:1.35;
  transition:color 0.2s;
}
.faq-list .faq-question:hover { color:var(--gold); }
.faq-list .faq-item:last-child .faq-question { border-bottom:1px solid rgba(255,255,255,0.10); }

/* The +/× icon */
.faq-list .faq-question .faq-icon {
  font-size:1.5rem;
  font-weight:400;
  color:var(--gold);
  margin-left:20px;
  flex-shrink:0;
  transition:transform 0.25s ease;
  line-height:1;
}

/* Rotate + to × when open */
.faq-list .faq-item.active .faq-question .faq-icon,
.faq-list .faq-item.open .faq-question .faq-icon { transform:rotate(45deg); }

/* Answer — hidden by default, revealed via max-height transition */
.faq-list .faq-answer {
  max-height:0;
  overflow:hidden;
  transition:max-height 0.35s ease;
}
.faq-list .faq-item.active .faq-answer,
.faq-list .faq-item.open .faq-answer { max-height:400px; }

/* Answer inner padding */
.faq-list .faq-answer p {
  padding:0 0 20px;
  color:rgba(255,255,255,0.70);
  font-size:0.94rem;
  line-height:1.75;
  margin:0;
}

/* Tighter item spacing — no extra margin */
.faq-list .faq-item { margin:0; }


/* ═══════════════════════════════════════════════════════
   CONTACT PAGE — No hero, padded title, compact form
   ═══════════════════════════════════════════════════════ */

.contact-page-section {
  padding-top: 48px;
  padding-bottom: 64px;
}

.contact-page-container {
  max-width: 860px;
}

.contact-page-header {
  text-align: center;
  margin-bottom: 40px;
}

.contact-page-title {
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  margin: 8px 0 12px;
}

.contact-page-sub {
  color: var(--silver);
  max-width: 600px;
  margin: 0 auto;
  font-size: 0.97rem;
  line-height: 1.65;
}

.contact-form-wrap {
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 36px 40px 40px;
}

@media (max-width: 600px) {
  .contact-form-wrap { padding: 24px 16px 28px; }
}

.consult-form-grid {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* Section headings inside form */
.form-section-head {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
  border-bottom: 1px solid rgba(226,198,117,0.25);
  padding-bottom: 8px;
  margin: 28px 0 16px;
}
.form-section-head:first-child { margin-top: 0; }

.form-section-sub {
  color: var(--silver);
  border-color: rgba(255,255,255,0.1);
  margin-top: 22px;
}

.form-section-note {
  font-size: 0.8rem;
  color: rgba(255,255,255,0.45);
  margin: -10px 0 12px;
}

/* 2-column and 3-column rows */
.form-row-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 16px;
}
.form-row-3 {
  display: grid;
  grid-template-columns: 1fr 80px 100px;
  gap: 16px;
  margin-bottom: 16px;
}

@media (max-width: 600px) {
  .form-row-2, .form-row-3 { grid-template-columns: 1fr; }
}

/* Checkbox grid layouts */
.checkbox-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: 10px 16px;
  margin-bottom: 16px;
}

.concerns-grid {
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}

.check-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.88rem;
  color: rgba(255,255,255,0.82);
  cursor: pointer;
  flex-wrap: wrap;
}

.check-item input[type="checkbox"] {
  accent-color: var(--gold);
  width: 15px;
  height: 15px;
  flex-shrink: 0;
  cursor: pointer;
}

.check-with-qty {
  flex-direction: row;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

.qty-inline {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.78rem;
  color: var(--silver);
  white-space: nowrap;
}

.qty-input {
  width: 48px !important;
  padding: 3px 6px !important;
  font-size: 0.8rem !important;
  text-align: center;
  border-radius: 4px !important;
  background: rgba(255,255,255,0.07) !important;
  border: 1px solid rgba(255,255,255,0.18) !important;
  color: var(--white) !important;
}

.consult-submit-btn {
  width: 100%;
  padding: 16px;
}

/* ═══════════════════════════════════════════════════════
   ABOUT PAGE — Two-column sections
   ═══════════════════════════════════════════════════════ */

.about-two-col-section .container.about-two-col-container {
  max-width: 1100px;
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 56px;
  align-items: start;
}

.about-two-col-container.about-two-col-reverse {
  grid-template-columns: 380px 1fr;
}

@media (max-width: 900px) {
  .about-two-col-container,
  .about-two-col-container.about-two-col-reverse {
    grid-template-columns: 1fr;
  }
  .about-two-col-reverse .about-two-col-img { order: -1; }
}

.about-two-col-text {
  padding-top: 8px;
}

/* Photo frame — same proportions as the Lucky photo */
.about-photo-frame {
  width: 100%;
  aspect-ratio: 3 / 4;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--navy-deep);
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Logo variant — show Steam Lion logo centered on dark bg */
.about-logo-frame {
  aspect-ratio: 4 / 3;
  padding: 40px;
  background: linear-gradient(135deg, var(--navy-deep) 0%, rgba(19,24,63,0.95) 100%);
}

.about-logo-inset {
  width: 100%;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 4px 24px rgba(226,198,117,0.2));
}

/* Lion crop — background positioned to center on the lion */
.about-lion-frame {
  aspect-ratio: 16 / 9;
  max-height: 340px;
  background: var(--navy-deep);
  position: relative;
  border-radius: 12px;
  overflow: hidden;
}

.about-lion-crop {
  position: absolute;
  inset: 0;
  background-image: url('https://media.base44.com/images/public/6a18be827fabee404d73a110/37b313418_hero-steam-lion.png');
  background-size: 280%;
  background-position: 68% 12%;
  background-repeat: no-repeat;
}


/* ═══════════════════════════════════════════════════════
   TIME SLOT PICKER
   ═══════════════════════════════════════════════════════ */

.slot-picker-container {
  margin: 4px 0 16px;
}

.slot-week-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  gap: 12px;
}

.slot-week-label {
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--silver);
  flex: 1;
  text-align: center;
}

.slot-nav-btn {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.15);
  color: var(--silver);
  padding: 7px 14px;
  border-radius: 6px;
  font-size: 0.8rem;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.2s, color 0.2s;
}
.slot-nav-btn:hover:not(:disabled) {
  background: rgba(226,198,117,0.15);
  color: var(--gold);
  border-color: var(--gold);
}
.slot-nav-btn:disabled {
  opacity: 0.3;
  cursor: default;
}

.slot-days-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}

@media (max-width: 700px) {
  .slot-days-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 420px) {
  .slot-days-grid { grid-template-columns: 1fr; }
}

.slot-day-col {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.slot-day-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gold);
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(226,198,117,0.2);
  margin-bottom: 2px;
}

.slot-btn {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.12);
  color: rgba(255,255,255,0.75);
  padding: 8px 10px;
  border-radius: 6px;
  font-size: 0.78rem;
  cursor: pointer;
  text-align: center;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
  line-height: 1.3;
}
.slot-btn:hover {
  background: rgba(226,198,117,0.12);
  border-color: rgba(226,198,117,0.5);
  color: #fff;
}
.slot-btn-selected {
  background: var(--gold) !important;
  border-color: var(--gold) !important;
  color: #000 !important;
  font-weight: 700;
}

.slot-btn-booked {
  background: rgba(255,255,255,0.04) !important;
  border-color: rgba(255,255,255,0.1) !important;
  color: rgba(255,255,255,0.28) !important;
  cursor: not-allowed !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.slot-selected-confirm {
  margin-top: 14px;
  padding: 12px 16px;
  background: rgba(226,198,117,0.1);
  border: 1px solid rgba(226,198,117,0.35);
  border-radius: 8px;
  font-size: 0.88rem;
  color: rgba(255,255,255,0.85);
}
.slot-selected-confirm strong {
  color: var(--gold);
}


/* ── Special Offers: button fix ── */
.offer-full-content .btn,
.offer-body .btn,
.offer-full-row .btn {
  display: inline-block !important;
  width: auto !important;
  align-self: center;
  margin-top: 16px;
  padding: 12px 28px;
  white-space: nowrap;
}

/* ── Special Offers: body padding restore ── */
.offer-body {
  padding: 24px 28px 24px !important;
}

/* ── Special Offers: text column proper width ── */
.offer-text-col {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

/* ── Special Offers: Pre-Pay card body layout ── */
.offer-prepay-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 24px 28px 28px;
  gap: 14px;
}
.offer-prepay-body .btn {
  display: inline-block !important;
  width: auto !important;
  padding: 12px 32px;
  margin-top: 4px;
}

/* Quote beneath owner photo — same width, no left border offset */
.about-photo-quote {
  border-left:3px solid var(--gold);
  margin:20px 0 0 0;
  padding:16px 0 16px 20px;
  max-width:100%;
  text-align:left;
}
.about-photo-quote p,
.about-photo-quote {
  font-family:'Georgia',serif;
  font-size:0.95rem;
  font-style:italic;
  color:rgba(255,255,255,0.85);
  line-height:1.6;
}
.about-photo-quote cite {
  display:block;
  margin-top:10px;
  font-size:0.78rem;
  font-style:normal;
  color:var(--gold);
  letter-spacing:0.06em;
  text-transform:uppercase;
}

/* Large "Book a Consultation" header on contact page */
.contact-page-main-title {
  font-family:'Georgia',serif;
  font-size:clamp(2.2rem,5vw,4rem);
  font-weight:700;
  color:#ffffff;
  line-height:1.1;
  margin-bottom:14px;
  letter-spacing:-0.01em;
}

/* ── Add-on cards with photos (carpet cleaning page) ── */
.addon-card-photo {
  padding:0 !important;
  overflow:hidden;
}
.addon-card-img-wrap {
  width:100%;
  height:160px;
  overflow:hidden;
  flex-shrink:0;
}
.addon-card-img-wrap .addon-card-img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform 0.4s ease;
}
.addon-card-photo:hover .addon-card-img { transform:scale(1.04); }
.addon-card-photo .addon-title-v3 {
  padding:14px 18px 4px;
}
.addon-card-photo .addon-desc-v3 {
  padding:0 18px 18px;
}

/* ══ Full-width intro section (carpet & furniture pages) ══ */
.svc-fullwidth-intro {
  padding-top: 32px;
  padding-bottom: 36px;
  width: 100%;
}
.svc-fullwidth-container {
  width: 88%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0;
}
.svc-fullwidth-container .body-text {
  font-size: 1.02rem;
  line-height: 1.78;
  margin-bottom: 16px;
  max-width: 100%;
  width: 100%;
}
.svc-fullwidth-container .svc-section-heading {
  margin-bottom: 18px;
}
@media (max-width: 800px) {
  .svc-fullwidth-container {
    width: 92%;
  }
}

/* ══ About page — Why The Lion circular icon ══ */
.about-lion-icon-col {
  display: flex;
  align-items: center;
  justify-content: center;
}
.about-lion-icon-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}
.about-lion-icon-img {
  width: 100%;
  max-width: 400px;
  height: auto;
  aspect-ratio: 1 / 1;
  border-radius: 12px;
  object-fit: contain;
  display: block;
  border: 1px solid rgba(226,198,117,0.25);
  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5);
  background: rgba(34, 32, 95, 0.35);
  padding: 12px;
  box-sizing: border-box;
}
/* Square override — full logo visible, no crop */
.about-lion-icon-square {
  border-radius: 12px !important;
  object-fit: contain !important;
  aspect-ratio: unset !important;
  background: rgba(34, 32, 95, 0.35) !important;
  padding: 12px !important;
  max-width: 380px !important;
}
@media (max-width: 800px) {
  .about-lion-icon-img {
    max-width: 280px;
    margin: 0 auto;
  }
}

/* ══ Intro section large body text — matches hero subtitle size ══ */
.svc-intro-large-text {
  font-size: clamp(1.0rem, 1.6vw, 1.18rem) !important;
  line-height: 1.78 !important;
  color: rgba(255,255,255,0.88) !important;
}

/* ═══════════════════════════════════════════════════════════════════
   MOBILE LAYOUT FIXES — all breakpoints
   Only affects screens ≤768px unless noted
   ═══════════════════════════════════════════════════════════════════ */

/* ─── GLOBAL: svc hero button row ─── */
.svc-hero-btn-row {
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}

@media (max-width: 768px) {

  /* ═══════════════════════════════
     HOME PAGE — HERO SHADING
     ═══════════════════════════════ */
  .hero-overlay-home {
    background: rgba(7, 14, 34, 0.72) !important;
  }
  .hero-home::after {
    background: linear-gradient(to bottom,
      transparent 0%,
      rgba(7,14,34,0.55) 40%,
      rgba(7,14,34,0.88) 72%,
      var(--navy) 100%
    ) !important;
  }

  /* ═══════════════════════════════
     HOME PAGE — CORE SERVICE SECTIONS
     ═══════════════════════════════ */
  /* Stack: label/title → image → card */
  .service-photo-wrap {
    display: flex !important;
    flex-direction: column !important;
    position: static !important;
    overflow: visible !important;
  }
  /* Kill the desktop fade overlays — they cover the card on mobile */
  .service-photo-wrap::before,
  .service-photo-wrap::after { display: none !important; }
  .service-carousel {
    order: 1;
    width: 100%;
  }
  .service-overlay-card {
    position: static !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    transform: none !important;
    width: 100% !important;
    margin-top: 0 !important;
    border-radius: 10px !important;
    border-left: none !important;
    border-right: none !important;
    order: 2;
    z-index: auto !important;
    /* No background or glass effect on mobile — content lives directly on page */
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
  }

  /* ═══════════════════════════════
     HOME PAGE — ADD-ON CARDS: single column
     ═══════════════════════════════ */
  .addon-homepage-section .addon-cards-grid {
    grid-template-columns: 1fr !important;
  }
  /* Make addon-logo-slot a proper card-like block in the flow */
  .addon-logo-slot {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 32px 20px !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius) !important;
    background: rgba(255,255,255,0.04) !important;
  }
  /* Ensure addon-card body is always visible */
  .addon-card-body {
    display: flex !important;
    flex-direction: column !important;
    position: relative !important;
    z-index: 1 !important;
    background: rgba(255,255,255,0.04) !important;
  }
  .addon-title { display: block !important; }
  .addon-desc  { display: block !important; }

  /* offer-full-row: handled by mobile-only block below */
  /* Header moves to top of card */
  .offer-coupon-header {
    font-size: clamp(1.3rem, 5.5vw, 1.7rem) !important;
    padding: 16px 16px 14px !important;
    text-align: center !important;
    width: 100% !important;
    box-sizing: border-box !important;
    white-space: nowrap !important;
  }
  /* Discount % — bigger on mobile, same size for number + OFF */
  .offer-pct {
    font-size: clamp(4.5rem, 22vw, 7rem) !important;
  }
  .offer-off {
    font-size: clamp(3.375rem, 16.5vw, 5.25rem) !important;
  }
  .offer-body {
    padding: 16px 20px 20px !important;
  }
  .offer-discount-block {
    flex-direction: column !important;
    gap: 0 !important;
    align-items: center !important;
  }
  .offer-text-side {
    width: 100% !important;
    padding: 0 !important;
    margin-top: 14px !important;
  }
  /* PPS card — same structure as others */
  .offer-pps-body {
    flex-direction: column !important;
    padding: 16px 20px 20px !important;
    gap: 16px !important;
  }
  .offer-pps-left {
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 12px !important;
  }
  .offer-pps-right {
    width: 100% !important;
    padding: 0 !important;
  }
  .offer-pps-right .offer-desc {
    display: block !important;
    color: var(--silver) !important;
    font-size: 0.9rem !important;
    line-height: 1.65 !important;
  }

  /* ═══════════════════════════════
     CARPET & FURNITURE — SVC HERO
     ═══════════════════════════════ */
  .svc-hero-overlay,
  .svc-hero-overlay-centered {
    position: relative !important;
    inset: auto !important;
    background: var(--navy) !important;
    padding: 28px 20px 24px !important;
    display: block !important;
  }
  .svc-hero-carousel-wrap {
    display: flex !important;
    flex-direction: column !important;
  }
  /* Slides show as the image */
  .svc-hero-carousel {
    position: relative !important;
    width: 100% !important;
  }
  .svc-hero-overlay .container,
  .svc-hero-overlay-centered .container {
    padding: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    text-align: center !important;
  }
  .svc-page-title {
    font-size: clamp(1.6rem, 7vw, 2.4rem) !important;
    white-space: normal !important;
    word-break: break-word !important;
    hyphens: auto !important;
  }
  .svc-hero-sub,
  .svc-hero-sub-lg {
    font-size: 0.95rem !important;
    max-width: 100% !important;
    white-space: normal !important;
    margin: 10px auto 20px !important;
  }
  /* Stack hero buttons vertically, centered */
  .svc-hero-btn-row {
    flex-direction: column !important;
    align-items: center !important;
    gap: 10px !important;
  }
  .svc-hero-btn-row .btn {
    width: 100% !important;
    max-width: 300px !important;
    text-align: center !important;
  }

  /* ═══════════════════════════════
     CARPET & FURNITURE — ADD-ON GRID v4
     ═══════════════════════════════ */
  .addon-grid-v4 {
    grid-template-columns: 1fr !important;
  }

  /* ═══════════════════════════════
     ABOUT PAGE — OWNER SECTION
     ═══════════════════════════════ */
  .about-owner-section {
    padding-top: calc(var(--header-h) + 24px) !important;
  }
  .about-owner-grid {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }
  .about-owner-photo-wrap {
    position: static !important;
    width: 100% !important;
  }
  .about-owner-photo {
    aspect-ratio: unset !important;
    height: auto !important;
    object-fit: contain !important;
    width: 100% !important;
  }
  .about-owner-name {
    font-size: 1.25rem !important;
  }
  .about-owner-title {
    font-size: 0.88rem !important;
  }

  /* ═══════════════════════════════
     ABOUT PAGE — TWO-COL SECTIONS
     (Steam Lion Difference + Why The Lion)
     ═══════════════════════════════ */
  .about-two-col-container,
  .about-two-col-container.about-two-col-reverse {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 20px !important;
    box-sizing: border-box !important;
  }
  /* Image always first on mobile */
  .about-two-col-img {
    order: -1 !important;
    width: 100% !important;
  }
  .about-two-col-reverse .about-two-col-img {
    order: -1 !important;
  }
  .about-two-col-text {
    width: 100% !important;
    padding: 0 !important;
  }
  .about-photo-frame,
  .about-logo-frame,
  .about-lion-icon-col {
    width: 100% !important;
    max-width: 100% !important;
  }
  /* Lion icon full-width on mobile */
  .about-lion-icon-img {
    max-width: 280px !important;
    margin: 0 auto !important;
  }

  /* ═══════════════════════════════
     ABOUT PAGE — CERTIFICATIONS
     ═══════════════════════════════ */
  .about-cert-section .container {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 20px !important;
    box-sizing: border-box !important;
  }
  .cert-grid-v2 {
    grid-template-columns: 1fr !important;
  }
  .cert-card-v2 {
    width: 100% !important;
  }

  /* ═══════════════════════════════
     GENERAL ABOUT — all containers full-width
     ═══════════════════════════════ */
  .about-owner-section .container,
  .about-cert-section .container,
  .about-two-col-section .container {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box !important;
  }

} /* end @media (max-width: 768px) */


/* ═══════════════════════════════════════════════════════
   ABOUT PAGE — Vintage logo in Why The Lion section
   ═══════════════════════════════════════════════════════ */
.about-vintage-logo-col {
  display: flex;
  align-items: center;
  justify-content: center;
}
.about-vintage-logo-wrap {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.about-vintage-logo-img {
  width: 100%;
  max-width: 380px;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 50%;
  box-shadow: 0 12px 48px rgba(0,0,0,0.5);
  border: 3px solid rgba(200, 151, 58, 0.35);
}
/* Circular container for the Steam Lion Difference icon */
.about-diff-icon-wrap-circular {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.about-diff-icon-circular {
  width: 320px !important;
  max-width: 320px !important;
  height: 320px !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  box-shadow: 0 12px 48px rgba(0,0,0,0.5) !important;
  border: 2px solid rgba(226,198,117,0.35) !important;
}

@media (max-width: 768px) {
  .about-vintage-logo-col {
    width: 100% !important;
    order: -1 !important;
  }
  .about-vintage-logo-img {
    max-width: 100% !important;
  }
}


/* ═══════════════════════════════════════════════════════
   PROCESS BOX — taller header, larger text, orange button
   ═══════════════════════════════════════════════════════ */

/* Taller heading with larger text, wraps to 2 lines */
.service-overlay-card .card-heading {
  font-size: 0.95rem !important;
  padding: 14px 12px 13px !important;
  line-height: 1.35 !important;
  letter-spacing: 0.04em !important;
}

/* Orange/black "View" button */
.btn-process-view {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: #E2C675;
  color: #111111 !important;
  border: 2px solid #E2C675;
  border-radius: var(--radius);
  font-family: 'Arial Black', Arial, sans-serif;
  font-size: 0.82rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 11px 16px;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
  width: 100%;
  text-align: center;
  margin-top: 0;
}
.btn-process-view:hover {
  background: #f0d48a;
  border-color: #f0d48a;
  color: #000000 !important;
  transform: translateY(-2px);
  box-shadow: 0 4px 18px rgba(226, 198, 117, 0.45);
}

/* Mobile — keep button full-width */
@media (max-width: 768px) {
  .btn-process-view {
    width: 100% !important;
    max-width: 300px !important;
  }
}


/* Slightly larger body text for carpet residential/commercial sections */
.svc-body-lg {
  font-size: clamp(1.0rem, 1.5vw, 1.12rem) !important;
  line-height: 1.78 !important;
  color: rgba(255,255,255,0.88) !important;
}


/* ── Offer terms / disclaimer line ── */
.offer-terms {
  color: rgba(255,255,255,0.45);
  font-size: 0.78rem;
  line-height: 1.5;
  margin: 0 0 10px;
  font-style: italic;
  border-top: 1px solid rgba(255,255,255,0.1);
  padding-top: 10px;
}


/* ────────────────────────────────────────────────────────────
   DESKTOP HIDE — mobile-only helper elements
   ──────────────────────────────────────────────────────────── */
.hero-home-mobile-img { display: none; }
.mobile-br            { display: none; }

/* ────────────────────────────────────────────────────────────
   DESKTOP — Addon rows restructured
   ──────────────────────────────────────────────────────────── */
@media (min-width: 768px) {
  /* Row 2: Odor | Logo | Scotchgard — uniform 3 equal columns */
  .addon-row-2 {
    grid-template-columns: repeat(3, 1fr) !important;
  }
  /* Logo slot stretches to match card height */
  .addon-row-2 .addon-logo-slot {
    min-height: 0 !important;   /* let the grid row dictate height */
    height: 100% !important;
    align-self: stretch !important;
  }
}

/* ────────────────────────────────────────────────────────────
   WHAT WE CLEAN — landscape image tiles (BOTH mobile & desktop)
   ──────────────────────────────────────────────────────────── */
.furn-photo-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.furn-photo-row .furn-photo-tile img {
  aspect-ratio: 4/3 !important;
  object-fit: cover;
  width: 100%;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,0.12);
  transition: border-color 0.3s;
}
@media (min-width: 768px) {
  .furn-photo-row {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 18px;
  }
}

/* Loveseat tile — uses default furn-photo-tile img rules (object-fit:cover) */

/* ─── desktop-br: shown by default, hidden on mobile ─── */
.desktop-br { display: inline; }

/* ─── mobile-br: hidden by default, shown on mobile ─── */
.mobile-br { display: none; }

/* ─── Service hero title two-line variant (base — works with mobile overrides) ─── */
.svc-page-title-twolines {
  white-space: normal;
}

/* ════════════════════════════════════════════════════════════
   MOBILE-ONLY LAYOUT PASS  (max-width: 767px)
════════════════════════════════════════════════════════════ */
@media (max-width: 767px) {

/* ─────────────────────────────────────────────
   MOBILE NAV
───────────────────────────────────────────── */
.main-nav {
  background: rgba(6, 10, 30, 0.96) !important;
  backdrop-filter: blur(14px) saturate(120%) !important;
  -webkit-backdrop-filter: blur(14px) saturate(120%) !important;
}
.mobile-br { display: inline !important; }
.desktop-br { display: none !important; }

/* ═══════════════════════════════════════════════════════
   HOMEPAGE — HERO  (approved — DO NOT TOUCH)
═══════════════════════════════════════════════════════ */
.hero-home {
  background-image: url('https://media.base44.com/images/public/6a18be827fabee404d73a110/37b313418_hero-steam-lion.png') !important;
  background-size: cover !important;
  background-position: center center !important;
  min-height: 100svh !important;
  height: auto !important;
  padding: 0 !important;
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.hero-overlay-home {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(
    to bottom,
    rgba(15,12,60,0.72) 0%,
    rgba(15,12,60,0.60) 50%,
    rgba(15,12,60,0.85) 100%
  ) !important;
  z-index: 1 !important;
}
.hero-content.hero-content-centered {
  position: relative !important;
  z-index: 2 !important;
  transform: none !important;
  top: auto !important; left: auto !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: calc(var(--header-h) + 24px) 24px 48px !important;
  background: transparent !important;
  text-align: center !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 0 !important;
  box-sizing: border-box !important;
  min-height: 100svh !important;
  justify-content: center !important;
}
.hero-content.hero-content-centered::before { display: none !important; }
.hero-home::after {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  bottom: 0 !important; left: 0 !important; right: 0 !important;
  height: 80px !important;
  background: linear-gradient(to bottom, transparent, var(--navy)) !important;
  z-index: 3 !important;
  pointer-events: none !important;
}
.hero-grunge-logo {
  width: min(260px, 78vw) !important;
  height: auto !important;
  margin-bottom: 18px !important;
}
.hero-phone {
  font-size: clamp(1.25rem, 5.5vw, 1.5rem) !important;
  letter-spacing: 0.04em !important;
  margin-bottom: 14px !important;
  display: block !important;
}
.hero-sub.hero-sub-narrow {
  font-size: 0.95rem !important;
  line-height: 1.7 !important;
  white-space: normal !important;
  max-width: 100% !important;
  margin-bottom: 24px !important;
  text-align: center !important;
  color: rgba(255,255,255,0.88) !important;
}
.hero-btns.hero-btns-centered {
  display: flex !important;
  flex-direction: column-reverse !important;
  align-items: center !important;
  gap: 12px !important;
  width: 100% !important;
  max-width: 320px !important;
}
.hero-btns.hero-btns-centered .btn {
  width: 100% !important;
  text-align: center !important;
}
.hero-home-mobile-img { display: none !important; }
/* Hide right-side feature block on mobile (already handled above, belt-and-suspenders) */
.hero-feature-block { display: none !important; }

/* ═══════════════════════════════════════════════════════
   HOMEPAGE — CORE SERVICES SECTION
   Architecture: each service = label > title > image > card
   Cards must be fully visible, never overlapping
═══════════════════════════════════════════════════════ */

/* Cinematic label block — just the label + title, no image here */
.cinematic-transition {
  background: var(--navy) !important;
  padding: 32px 20px 0 !important;
  margin-top: 0 !important;
  position: relative !important;
}
.cinematic-transition::after { display: none !important; }
.cinematic-transition .cinematic-label { margin-bottom: 6px !important; }
.cinematic-transition .section-title {
  margin-bottom: 0 !important;
  font-size: clamp(1.5rem, 7vw, 2rem) !important;
}

/* Service photo wrap — becomes a simple flex column */
.service-photo-wrap {
  display: flex !important;
  flex-direction: column !important;
  position: static !important;
  overflow: visible !important;
  background: var(--navy) !important;
  height: auto !important;
  min-height: unset !important;
}
/* Override the desktop :has() fixed height so cards are never clipped */
.service-photo-wrap:has(.service-carousel) {
  height: auto !important;
  min-height: unset !important;
  overflow: visible !important;
}
.service-photo-wrap::before,
.service-photo-wrap::after { display: none !important; }

/* Carousel image — standalone image block */
.service-carousel {
  width: 100% !important;
  height: 260px !important;
  position: relative !important;
  flex-shrink: 0 !important;
  overflow: hidden !important;
  /* No mask — let image show cleanly */
  -webkit-mask-image: none !important;
  mask-image: none !important;
  margin-top: 16px !important;
}

/* Process card — fully static block beneath carousel, never overlapping */
.service-overlay-card,
.service-overlay-card.card-left {
  position: static !important;
  transform: none !important;
  top: auto !important; left: auto !important;
  right: auto !important; bottom: auto !important;
  width: calc(100% - 32px) !important;
  max-width: 100% !important;
  margin: 20px 16px 32px !important;
  border-radius: 10px !important;
  z-index: auto !important;
  flex-shrink: 0 !important;
  height: auto !important;
  overflow: visible !important;
  /* No background — content lives directly on page, no blue overlay */
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  background: transparent !important;
  border: none !important;
  border-top: 3px solid rgba(226,198,117,0.6) !important;
  box-shadow: none !important;
}

/* Ensure card content is fully visible */
.service-overlay-card .card-steps,
.service-overlay-card .step-row {
  display: block !important;
  overflow: visible !important;
}

/* Add-On Services: show heading + clear spacing above section */
.addon-homepage-section {
  padding-top: 8px !important;
  position: relative !important;
  z-index: auto !important;
  background: var(--navy) !important;
}
.addon-section-title {
  display: block !important;
  visibility: visible !important;
  font-size: clamp(1.2rem, 5vw, 1.6rem) !important;
  margin-bottom: 20px !important;
  text-align: center !important;
}
.addon-plus-sign {
  display: inline !important;
  visibility: visible !important;
}
.addon-cards-grid {
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
}
.addon-row-2 .addon-logo-slot { order: 99 !important; }

/* ═══════════════════════════════════════════════════════
   HOMEPAGE — SPECIAL OFFERS
   Discount on one line, as large as possible
═══════════════════════════════════════════════════════ */
.offer-full-row,
.offer-full-row-alt {
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
  border-radius: 12px !important;
  margin-bottom: 28px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
.offer-coupon-header {
  order: 1 !important;
  width: 100% !important;
  font-size: clamp(1.3rem, 5.5vw, 1.7rem) !important;
  padding: 16px 16px 14px !important;
  box-sizing: border-box !important;
  text-align: center !important;
  letter-spacing: 0.01em !important;
  white-space: nowrap !important;
}
.offer-full-img {
  order: 2 !important;
  width: 100% !important;
  height: 210px !important;
  min-height: unset !important;
  flex-shrink: 0 !important;
  background-size: cover !important;
  background-position: center !important;
}
.offer-combo-img {
  order: 2 !important;
  height: 210px !important;
  min-height: unset !important;
  background-size: cover !important;
  background-position: center !important;
}
.offer-full-content {
  order: 3 !important;
  width: 100% !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  overflow: visible !important;
}
.offer-full-content .offer-coupon-header { display: none !important; }
.offer-body {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  padding: 20px 20px 24px !important;
  gap: 0 !important;
  box-sizing: border-box !important;
  width: 100% !important;
  overflow: visible !important;
}
/* Discount block — percentage + OFF on ONE LINE, large as possible */
.offer-discount-block {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  gap: 0 !important;
  overflow: visible !important;
  padding: 8px 0 4px !important;
}
/* Percentage + OFF on one line, centered */
.offer-pct-stack {
  display: flex !important;
  flex-direction: row !important;
  align-items: baseline !important;
  justify-content: center !important;
  width: 100% !important;
  gap: 6px !important;
}
/* Percentage number — huge, same scale as OFF */
.offer-pct {
  font-size: clamp(5rem, 24vw, 8rem) !important;
  line-height: 1 !important;
  display: inline-block !important;
  font-family: 'Arial Black', 'Arial', sans-serif !important;
  font-weight: 900 !important;
  color: var(--gold) !important;
}
.offer-pct .pct-sym {
  font-size: 0.5em !important;
  vertical-align: super !important;
}
/* OFF text — same scale as the percentage number */
.offer-off {
  font-size: clamp(3.75rem, 18vw, 6rem) !important;
  margin-left: 6px !important;
  line-height: 1 !important;
  display: inline-block !important;
  letter-spacing: 0.02em !important;
  font-family: 'Arial Black', 'Arial', sans-serif !important;
  font-weight: 900 !important;
  color: var(--gold) !important;
  vertical-align: baseline !important;
}
/* Text side */
.offer-text-side {
  width: 100% !important;
  flex: unset !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 12px !important;
  overflow: visible !important;
  margin-top: 14px !important;
}
.offer-desc {
  font-size: 0.92rem !important;
  line-height: 1.65 !important;
  white-space: normal !important;
  word-wrap: break-word !important;
  overflow-wrap: break-word !important;
  width: 100% !important;
  text-align: center !important;
}
.offer-terms {
  font-size: 0.75rem !important;
  white-space: normal !important;
  word-wrap: break-word !important;
  overflow-wrap: break-word !important;
  width: 100% !important;
  text-align: center !important;
}
.offer-text-side .btn {
  width: 100% !important;
  max-width: 300px !important;
  text-align: center !important;
  margin-top: 0 !important;
  font-size: 0.9rem !important;
  padding: 11px 20px !important;
}

/* ═══════════════════════════════════════════════════════
   HOMEPAGE — BOTTOM CTA
═══════════════════════════════════════════════════════ */
.consult-cta-section .consult-cta-btns {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 12px !important;
}
.consult-cta-section .consult-cta-btns a[data-estimate-mode] { display: none !important; }

/* ═══════════════════════════════════════════════════════
   CARPET / UPHOLSTERY PAGE — HERO
   Title centered on image (horizontal + vertical center)
   Description + buttons in static block below
═══════════════════════════════════════════════════════ */
.svc-hero-carousel-wrap {
  display: flex !important;
  flex-direction: column !important;
  margin-top: 0 !important;
}
div[style*="margin-top:var(--header-h)"].svc-hero-carousel-wrap,
div[style*="margin-top: var(--header-h)"].svc-hero-carousel-wrap {
  margin-top: 0 !important;
}
.svc-hero-carousel {
  position: relative !important;
  height: 300px !important;
  width: 100% !important;
  overflow: hidden !important;
  flex-shrink: 0 !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
}
/* Overlay: full coverage, title centered in middle of image */
.svc-hero-overlay,
.svc-hero-overlay-centered {
  position: absolute !important;
  inset: 0 !important;
  background: rgba(10, 8, 40, 0.48) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 20px !important;
  z-index: 2 !important;
}
.svc-hero-overlay .container,
.svc-hero-overlay-centered .container {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  text-align: center !important;
}
/* Title — centered horizontally + vertically in image */
.svc-page-title {
  font-size: clamp(2.2rem, 10vw, 3rem) !important;
  white-space: pre-line !important;
  text-align: center !important;
  margin: 0 !important;
  line-height: 1.15 !important;
  text-shadow: 0 2px 16px rgba(0,0,0,0.8) !important;
}
/* Hide desc + buttons from overlay — they go in .svc-hero-below */
.svc-hero-sub,
.svc-hero-sub-lg,
.svc-hero-btn-row {
  display: none !important;
}
/* Below-hero static block */
.svc-hero-below {
  background: var(--navy) !important;
  padding: 20px 20px 28px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 14px !important;
  text-align: center !important;
}
.svc-hero-below .svc-hero-sub-lg {
  display: block !important;
  font-size: 0.93rem !important;
  white-space: normal !important;
  max-width: 100% !important;
  text-align: center !important;
  line-height: 1.75 !important;
  color: rgba(255,255,255,0.85) !important;
}
.svc-hero-below .svc-hero-btn-row {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 10px !important;
  width: 100% !important;
  max-width: 320px !important;
}
.svc-hero-below .svc-hero-btn-row .btn {
  width: 100% !important;
  text-align: center !important;
}
.svc-hero-dots { bottom: 8px !important; position: absolute !important; z-index: 3 !important; }

/* ═══════════════════════════════════════════════════════
   CARPET PAGE — PROFESSIONAL CLEANING MATTERS
   Order: Heading > Photo > Para1 > Para2
═══════════════════════════════════════════════════════ */
/* svc-fullwidth-intro-carpet removed — section now uses .container */
.svc-heading-professional-matters {
  font-size: clamp(1.1rem, 2.2vw, 1.5rem) !important;
  white-space: normal !important;
  word-break: break-word !important;
  overflow-wrap: break-word !important;
  text-align: left !important;
  margin-bottom: 16px !important;
  max-width: 100% !important;
}
@media (max-width: 767px) {
  .svc-heading-professional-matters {
    font-size: clamp(0.88rem, 4vw, 1rem) !important;
    white-space: nowrap !important;
    text-align: left !important;
  }
}
/* Show the hidden mobile photo */
.mobile-section-photo {
  display: block !important;
  width: 100% !important;
  margin-bottom: 16px !important;
}
.mobile-section-photo img {
  width: 100% !important;
  height: 220px !important;
  object-fit: cover !important;
  border-radius: 10px !important;
  display: block !important;
}
.svc-intro-para-1,
.svc-intro-para-2 {
  font-size: 0.93rem !important;
  line-height: 1.7 !important;
  max-width: 100% !important;
}

/* ═══════════════════════════════════════════════════════
   CARPET PAGE — RESIDENTIAL + COMMERCIAL
   Order: Heading > Photo > Para1 > Para2
═══════════════════════════════════════════════════════ */
.svc-two-col-grid {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}
.svc-two-col-text {
  display: flex !important;
  flex-direction: column !important;
  order: 1 !important;
  padding: 22px 0 8px !important;
  width: 100% !important;
  max-width: 100% !important;
}
.svc-two-col-text .svc-section-heading {
  order: 1 !important;
  margin-bottom: 0 !important;
  text-align: left !important;
}
.svc-two-col-text .body-text {
  order: 3 !important;
  margin-top: 12px !important;
}
.svc-two-col-img {
  order: 2 !important;
  width: 100% !important;
  max-width: 100% !important;
}
.svc-two-col-img img {
  width: 100% !important;
  height: 220px !important;
  object-fit: cover !important;
  border-radius: 10px !important;
  display: block !important;
}

/* ═══════════════════════════════════════════════════════
   UPHOLSTERY PAGE — YOUR FURNITURE DESERVES BETTER
   Order: Heading > Photo > Description
═══════════════════════════════════════════════════════ */
.svc-fullwidth-intro-furniture {
  padding: 28px 20px 24px !important;
}
.svc-fullwidth-intro-furniture .svc-fullwidth-container {
  max-width: 100% !important;
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}
.svc-fullwidth-intro-furniture .svc-section-heading {
  text-align: center !important;
  margin-bottom: 16px !important;
}
.mobile-furn-intro-photo {
  display: block !important;
  width: 100% !important;
  margin-bottom: 16px !important;
}
.mobile-furn-intro-photo img {
  width: 100% !important;
  height: 220px !important;
  object-fit: cover !important;
  border-radius: 10px !important;
  display: block !important;
}

/* ═══════════════════════════════════════════════════════
   UPHOLSTERY PAGE — WHAT WE CLEAN
   Single column, full-width cards, large images
═══════════════════════════════════════════════════════ */
.furn-photo-row {
  grid-template-columns: 1fr !important;
  gap: 20px !important;
}
.furn-photo-tile {
  width: 100% !important;
  max-width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}
.furn-photo-tile img {
  width: 100% !important;
  height: 240px !important;
  object-fit: cover !important;
  border-radius: 10px !important;
  display: block !important;
}
.furn-photo-tile span {
  font-size: 1rem !important;
  margin-top: 10px !important;
}
/* Loveseat tile — matches all other furniture tiles */
.furn-tile-loveseat img {
  object-fit: cover !important;
  background: transparent !important;
  height: 240px !important;
}

/* ═══════════════════════════════════════════════════════
   UPHOLSTERY PAGE — ADD-ON SERVICES (unchanged)
═══════════════════════════════════════════════════════ */
.addon-grid-v4.addon-grid-photo {
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
}
.addon-card-v4.addon-card-photo {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  border-radius: 10px !important;
  overflow: hidden !important;
}
.addon-card-img-wrap {
  width: 100% !important;
  height: 180px !important;
  overflow: hidden !important;
  border-radius: 10px 10px 0 0 !important;
  flex-shrink: 0 !important;
}
.addon-card-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

/* ═══════════════════════════════════════════════════════
   ABOUT PAGE — FULL REBUILD
   Single centered column, all content full-width
═══════════════════════════════════════════════════════ */
.about-owner-section {
  padding-top: calc(var(--header-h) + 24px) !important;
}
.about-owner-section .container {
  padding: 0 20px !important;
  max-width: 100% !important;
  width: 100% !important;
  box-sizing: border-box !important;
  overflow: visible !important;
}
.about-owner-grid {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  width: 100% !important;
  overflow: visible !important;
}
/* Photo column: first */
.about-owner-photo-col {
  order: 1 !important;
  padding-top: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}
.about-owner-photo-wrap {
  width: 100% !important;
  position: static !important;
}
.about-owner-photo {
  width: 100% !important;
  aspect-ratio: unset !important;
  height: auto !important;
  object-fit: cover !important;
  border-radius: 10px !important;
  display: block !important;
  max-width: 100% !important;
}
.about-owner-caption {
  text-align: center !important;
  margin-top: 12px !important;
}
.about-owner-name {
  font-size: 1.2rem !important;
  display: block !important;
  text-align: center !important;
}
.about-owner-title {
  font-size: 0.9rem !important;
  display: block !important;
  text-align: center !important;
  margin-top: 4px !important;
}
.lion-quote.about-photo-quote {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  text-align: center !important;
  margin: 16px 0 0 !important;
  font-size: 0.88rem !important;
  line-height: 1.65 !important;
  white-space: normal !important;
  word-wrap: break-word !important;
}
/* Text column: second */
.about-owner-text-col {
  order: 2 !important;
  width: 100% !important;
  max-width: 100% !important;
  padding-top: 24px !important;
  overflow: visible !important;
  box-sizing: border-box !important;
}
.about-inline-cred {
  text-align: center !important;
  font-size: 0.82rem !important;
  white-space: normal !important;
  word-wrap: break-word !important;
  width: 100% !important;
  max-width: 100% !important;
}
.about-owner-text-col .section-title {
  font-size: clamp(1.3rem, 6vw, 1.8rem) !important;
  white-space: normal !important;
  line-height: 1.25 !important;
  text-align: center !important;
  margin-bottom: 16px !important;
}
.about-owner-text-col .body-text {
  font-size: 0.95rem !important;
  max-width: 100% !important;
  width: 100% !important;
  overflow: visible !important;
  word-wrap: break-word !important;
  overflow-wrap: break-word !important;
  white-space: normal !important;
  box-sizing: border-box !important;
}
/* Van photo — show on mobile, centered */
.about-van-photo {
  display: block !important;
  width: 100% !important;
  margin: 20px 0 !important;
}
.about-van-img {
  width: 100% !important;
  height: auto !important;
  border-radius: 10px !important;
  display: block !important;
  object-fit: cover !important;
}

/* Steam Lion Difference — centered single column */
.about-difference-section .container,
.about-why-lion-section .container {
  padding: 0 20px !important;
  max-width: 100% !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
.about-two-col-container {
  display: flex !important;
  flex-direction: column !important;
  gap: 24px !important;
  width: 100% !important;
  overflow: visible !important;
}
.about-two-col-text,
.about-two-col-img {
  width: 100% !important;
  max-width: 100% !important;
  order: unset !important;
}
.about-difference-section .about-two-col-text { order: 2 !important; }
.about-difference-section .about-lion-icon-col { order: 1 !important; }
.about-lion-icon-wrap {
  display: flex !important;
  justify-content: center !important;
  width: 100% !important;
}
.about-lion-icon-img {
  width: min(200px, 55vw) !important;
  height: auto !important;
}
.about-lion-icon-img.about-lion-icon-square {
  border-radius: 10px !important;
  object-fit: contain !important;
  aspect-ratio: unset !important;
  height: auto !important;
  padding: 10px !important;
  background: rgba(34, 32, 95, 0.35) !important;
}
.about-difference-section .section-title,
.about-difference-section .body-text {
  text-align: center !important;
  max-width: 100% !important;
  white-space: normal !important;
  word-wrap: break-word !important;
}

/* Why The Lion — image first, then heading, then text */
.about-why-lion-section .about-two-col-container {
  flex-direction: column !important;
}
.about-why-lion-section .about-vintage-logo-col { display: none !important; }
.about-why-lion-section .about-two-col-text { order: 1 !important; }
.about-why-lion-img-wrap {
  display: block !important;
  width: 100% !important;
  margin-bottom: 16px !important;
}
.about-why-lion-img {
  width: 100% !important;
  max-width: 340px !important;
  height: auto !important;
  border-radius: 12px !important;
  object-fit: contain !important;
  border: 1px solid rgba(226,198,117,0.25) !important;
  box-shadow: 0 12px 48px rgba(0,0,0,0.5) !important;
  background: rgba(34, 32, 95, 0.35) !important;
  padding: 12px !important;
  box-sizing: border-box !important;
}
.about-why-lion-section .section-title,
.about-why-lion-section .body-text {
  text-align: center !important;
  max-width: 100% !important;
  white-space: normal !important;
  word-wrap: break-word !important;
}

/* Industry Training & Certifications — full width */
.about-cert-section {
  padding: 32px 20px !important;
  box-sizing: border-box !important;
}
.about-cert-section .container {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  text-align: center !important;
}
.about-cert-section .section-title,
.about-cert-section .section-label,
.about-cert-section .body-text {
  text-align: center !important;
  max-width: 100% !important;
  white-space: normal !important;
  word-wrap: break-word !important;
}
.cert-grid-v2 {
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
  width: 100% !important;
}
.cert-card-v2 {
  width: 100% !important;
  max-width: 100% !important;
  padding: 18px !important;
  box-sizing: border-box !important;
  text-align: center !important;
}

/* CTA section */
.cta-section .section-title {
  font-size: clamp(1.1rem, 4.5vw, 1.5rem) !important;
  white-space: normal !important;
  text-align: center !important;
}

/* ═══════════════════════════════════════════════════════
   FAQ PAGE
═══════════════════════════════════════════════════════ */
/* Title: FAQs — large, one line, small "s" */
.faq-page-title {
  font-size: clamp(2.4rem, 11vw, 3.2rem) !important;
  text-align: center !important;
  white-space: nowrap !important;
  margin-bottom: 6px !important;
}
.faq-title-s {
  font-size: 0.62em !important;
  vertical-align: baseline !important;
  position: relative !important;
  top: 0.08em !important;
}
/* Remove AI Estimate from FAQ CTA on mobile */
.faq-page-main .btn[href="#ai-estimate"],
.faq-container .btn[href="#ai-estimate"],
.faq-container a[data-estimate-mode] {
  display: none !important;
}

/* ═══════════════════════════════════════════════════════
   FAQ / SITEWIDE FOOTER — larger Steam Lion brand + phone
═══════════════════════════════════════════════════════ */
.footer-brand {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 6px !important;
}
.footer-logo {
  height: auto !important;
  width: min(200px, 55vw) !important;
  display: block !important;
}
.footer-brand-tagline {
  font-size: clamp(0.95rem, 4vw, 1.15rem) !important;
  text-align: center !important;
  letter-spacing: 0.02em !important;
  white-space: normal !important;
  word-wrap: break-word !important;
}
/* Phone number — match tagline width, significantly larger */
.footer-contact-line a[href^="tel"] {
  font-size: clamp(1.15rem, 5vw, 1.4rem) !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  display: block !important;
  text-align: center !important;
}
.footer-contact-line {
  text-align: center !important;
}

/* Footer logo-slot phone (add-on section) */
.addon-logo-phone {
  font-size: 1.1rem !important;
  font-weight: 600 !important;
}


/* ═══════════════════════════════════════════════════════
   MOBILE HOMEPAGE REBUILD — FINAL
   Order: Hero → Core Label → Carousel Image → Step Card → repeat
   All text visible, proper gradient fades, no overlapping
═══════════════════════════════════════════════════════ */

/* ── HERO: full viewport, image + overlay + centered content ── */
.hero-home {
  background-image: url('https://media.base44.com/images/public/6a18be827fabee404d73a110/37b313418_hero-steam-lion.png') !important;
  background-size: cover !important;
  background-position: center center !important;
  min-height: 100svh !important;
  height: auto !important;
  padding: 0 !important;
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
}
/* Strong overlay so all text and buttons are clearly readable */
.hero-overlay-home {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(
    to bottom,
    rgba(15,12,60,0.75) 0%,
    rgba(15,12,60,0.60) 50%,
    rgba(15,12,60,0.88) 100%
  ) !important;
  z-index: 1 !important;
}
/* Bottom fade: hero bleeds seamlessly into first Core Services label */
.hero-home::after {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  bottom: 0 !important; left: 0 !important; right: 0 !important;
  height: 100px !important;
  background: linear-gradient(to bottom, transparent 0%, var(--navy) 100%) !important;
  z-index: 3 !important;
  pointer-events: none !important;
}
/* Hero content — centered, padded for header */
.hero-content.hero-content-centered {
  position: relative !important;
  z-index: 2 !important;
  transform: none !important;
  top: auto !important; left: auto !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: calc(var(--header-h) + 32px) 24px 80px !important;
  background: transparent !important;
  text-align: center !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 0 !important;
  box-sizing: border-box !important;
  min-height: 100svh !important;
  justify-content: center !important;
}
.hero-content.hero-content-centered::before { display: none !important; }
/* Logo */
.hero-grunge-logo {
  width: min(260px, 78vw) !important;
  height: auto !important;
  margin-bottom: 18px !important;
}
/* Phone */
.hero-phone {
  font-size: clamp(1.25rem, 5.5vw, 1.5rem) !important;
  letter-spacing: 0.04em !important;
  margin-bottom: 14px !important;
  display: block !important;
}
/* Supporting text */
.hero-sub.hero-sub-narrow {
  font-size: 0.95rem !important;
  line-height: 1.7 !important;
  white-space: normal !important;
  max-width: 100% !important;
  margin-bottom: 28px !important;
  text-align: center !important;
  color: rgba(255,255,255,0.90) !important;
}
/* Buttons — stacked, full width, centered */
.hero-btns.hero-btns-centered {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 12px !important;
  width: 100% !important;
  max-width: 320px !important;
}
.hero-btns.hero-btns-centered .btn {
  width: 100% !important;
  text-align: center !important;
}
/* Hide desktop feature block */
.hero-feature-block { display: none !important; }
.hero-home-mobile-img { display: none !important; }

/* ── CORE SERVICE LABEL SECTIONS (Carpet + Upholstery headers) ──
   Each sits on navy background with gradient fades above & below.
   Top fade: comes from above (hero bottom or card bottom).
   Bottom fade: bleeds into the carousel image below.
*/
/* Upholstery label: give breathing room from the carpet card above */
.cinematic-transition-mid {
  padding-top: 8px !important;
  margin-top: 0 !important;
}
.cinematic-transition {
  background: var(--navy) !important;
  padding: 32px 20px 0 !important;
  margin-top: 0 !important;
  position: relative !important;
  z-index: 2 !important;
}
/* Remove desktop's bottom fade arrow — we handle fades via service-photo-wrap */
.cinematic-transition::after { display: none !important; }
/* Section label + title styling */
.cinematic-transition .homepage-label {
  margin-bottom: 4px !important;
  letter-spacing: 0.12em !important;
}
.cinematic-transition .cinematic-label {
  margin-bottom: 6px !important;
  padding-bottom: 24px !important;
}
.cinematic-transition .section-title {
  margin-bottom: 0 !important;
  font-size: clamp(1.5rem, 7vw, 2rem) !important;
}

/* ── SERVICE PHOTO WRAP: flex column — label already above, card goes below ── */
.service-photo-wrap {
  display: flex !important;
  flex-direction: column !important;
  position: relative !important;
  overflow: visible !important;
  background: transparent !important;
  height: auto !important;
  min-height: unset !important;
  z-index: 1 !important;
}
.service-photo-wrap:has(.service-carousel) {
  height: auto !important;
  min-height: unset !important;
  overflow: visible !important;
}
/* Remove desktop pseudo-element fades (handled manually via gradient divs) */
.service-photo-wrap::before,
.service-photo-wrap::after { display: none !important; }

/* ── CAROUSEL: image block, fixed height, no masking ── */
.service-carousel {
  order: 1 !important;
  width: 100% !important;
  height: 280px !important;
  position: relative !important;
  flex-shrink: 0 !important;
  overflow: hidden !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
  margin-top: 0 !important;
  /* Top fade: navy bleeds into top of image from the cinematic label above */
  /* Use a pseudo-element overlay to fade the top of the image */
}
/* Top gradient fade over the image (navy → transparent) */
.service-carousel::before {
  content: '' !important;
  position: absolute !important;
  top: 0 !important; left: 0 !important; right: 0 !important;
  height: 60px !important;
  background: linear-gradient(to bottom, var(--navy) 0%, transparent 100%) !important;
  z-index: 3 !important;
  pointer-events: none !important;
  display: block !important;
}
/* Bottom gradient fade: image fades into navy toward the card below */
.service-carousel::after {
  content: '' !important;
  position: absolute !important;
  bottom: 0 !important; left: 0 !important; right: 0 !important;
  height: 80px !important;
  background: linear-gradient(to top, var(--navy) 0%, transparent 100%) !important;
  z-index: 3 !important;
  pointer-events: none !important;
  display: block !important;
}

/* ── STEP-BY-STEP CARD: fully static block below image, independent section ── */
.service-overlay-card,
.service-overlay-card.card-left {
  order: 2 !important;
  position: static !important;
  transform: none !important;
  top: auto !important; left: auto !important;
  right: auto !important; bottom: auto !important;
  width: calc(100% - 32px) !important;
  max-width: 100% !important;
  margin: 16px 16px 40px !important;
  border-radius: 12px !important;
  z-index: auto !important;
  flex-shrink: 0 !important;
  height: auto !important;
  overflow: visible !important;
  /* Card background: dark navy with gold border for visibility */
  background: rgba(7, 14, 40, 0.92) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: none !important;
  border-top: 3px solid var(--gold) !important;
  border-radius: 0 0 12px 12px !important;
  box-shadow: 0 8px 32px rgba(0,0,0,0.45) !important;
  padding: 0 0 20px 0 !important;
}
/* Card heading: gold bar spanning full width */
.service-overlay-card .card-heading {
  display: block !important;
  background: var(--gold) !important;
  color: var(--navy) !important;
  font-family: 'Arial Black', Arial, sans-serif !important;
  font-size: 0.9rem !important;
  font-weight: 900 !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
  text-align: center !important;
  padding: 13px 16px 12px !important;
  margin: 0 0 16px 0 !important;
  border-radius: 0 !important;
  line-height: 1.25 !important;
  text-shadow: none !important;
}
/* Card list items: white text on dark background */
.service-overlay-card .card-list {
  list-style: none !important;
  margin: 0 0 16px !important;
  padding: 0 20px !important;
}
.service-overlay-card .card-list li {
  color: rgba(255, 255, 255, 0.92) !important;
  font-size: 0.92rem !important;
  font-weight: 500 !important;
  line-height: 1.6 !important;
  padding: 8px 0 8px 18px !important;
  position: relative !important;
  border-bottom: 1px solid rgba(255,255,255,0.10) !important;
  font-family: 'Georgia', serif !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: unset !important;
}
.service-overlay-card .card-list li:last-child {
  border-bottom: none !important;
}
.service-overlay-card .card-list li::before {
  content: '›' !important;
  position: absolute !important;
  left: 2px !important;
  color: var(--gold) !important;
  font-weight: 700 !important;
  font-size: 1.1rem !important;
  line-height: 1.4 !important;
}
/* View button */
.service-overlay-card .btn-process-view {
  display: block !important;
  width: calc(100% - 40px) !important;
  max-width: 100% !important;
  margin: 4px 20px 0 !important;
  text-align: center !important;
}
/* Ensure card steps always visible */
.service-overlay-card .card-steps,
.service-overlay-card .step-row {
  display: block !important;
  overflow: visible !important;
}

/* Upholstery service-photo-wrap: bottom spacing before Add-Ons */
.service-photo-wrap-furniture {
  margin-bottom: 8px !important;
}

} /* end @media (max-width: 767px) */

/* ════ DESKTOP REFINEMENT PASS — MOBILE-SAFE OVERRIDES ════ */

/* ── Hide the mobile duplicate content block on desktop ── */
@media (min-width: 768px) {
  .svc-hero-below { display: none !important; }
}

/* ── Restore single-line service page titles on desktop ── */
@media (min-width: 768px) {
  .svc-page-title,
  .svc-page-title.svc-page-title-twolines,
  .svc-title-upholstery {
    white-space: nowrap !important;
  }
  /* Remove any <br> injected into titles on desktop */
  .svc-page-title br { display: none !important; }
}

/* ── About page: hide van photo and Why The Lion inserted image on desktop ── */
@media (min-width: 768px) {
  .about-van-photo { display: none !important; }
  .about-why-lion-img-wrap { display: none !important; }
}

/* ── About page: caption on one horizontal line ── */
@media (min-width: 768px) {
  .about-owner-caption {
    flex-direction: row !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 6px !important;
    flex-wrap: wrap !important;
  }
  .about-owner-name {
    font-size: 1.05rem !important;
  }
  .about-owner-title {
    font-size: 0.85rem !important;
  }
  .about-owner-name::after {
    content: ' —';
    color: var(--gold);
    font-style: normal;
  }
  /* Make photo column larger */
  .about-owner-grid {
    grid-template-columns: 1fr 1.8fr !important;
    gap: 52px !important;
  }
  .about-owner-photo {
    aspect-ratio: 3/4 !important;
  }
  /* Lion quote wraps naturally — remove narrow constraint */
  .lion-quote.about-photo-quote {
    max-width: 100% !important;
    white-space: normal !important;
    font-size: 0.85rem !important;
    line-height: 1.65 !important;
  }
}

/* ── About page: cert section body text full width ── */
@media (min-width: 768px) {
  .about-cert-section .body-text {
    max-width: 100% !important;
  }
}

/* ── Special Offers page: center header block ── */
@media (min-width: 768px) {
  .hero-inner .container {
    text-align: center !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
  }
  .hero-inner .section-label,
  .hero-inner .section-title,
  .hero-inner .body-text {
    text-align: center !important;
    max-width: 640px !important;
  }
}

/* ── Special Offers: cta-sub balanced two lines ── */
@media (min-width: 768px) {
  .cta-section .cta-sub {
    max-width: 440px !important;
    text-align: center !important;
    margin: 0 auto 28px !important;
  }
}

/* ── GLOBAL DESKTOP FOOTER — Larger text, same layout ── */
@media (min-width: 768px) {
  .footer-brand-tagline {
    font-size: 1.0rem !important;
    letter-spacing: 0.02em !important;
  }
  .footer-address {
    font-size: 0.95rem !important;
    line-height: 1.8 !important;
  }
  .footer-contact-line {
    font-size: 1.0rem !important;
  }
  .footer-contact-line a {
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em !important;
  }
  .footer-links a {
    font-size: 0.92rem !important;
  }
  .footer-areas-label {
    font-size: 0.78rem !important;
    letter-spacing: 0.12em !important;
  }
  .footer-areas-list {
    font-size: 0.90rem !important;
    line-height: 1.8 !important;
  }
  .footer-area-link {
    font-size: 0.90rem !important;
  }
  .footer-areas-links {
    gap: 4px 8px;
  }
  .footer-copy {
    font-size: 0.82rem !important;
  }
}


/* ── Homepage CTA — single centered button ── */
@media (min-width: 768px) {
  .consult-cta-btns-single {
    display: flex !important;
    justify-content: center !important;
    width: 100% !important;
  }
  .consult-cta-btns-single .btn {
    min-width: 240px !important;
    text-align: center !important;
  }
}

/* end desktop refinement */

/* ══════════════════════════════════════════════════════════════
   CARPET PAGE — STACKED SECTIONS (heading → image → text)
══════════════════════════════════════════════════════════════ */
.svc-stacked-section {
  padding: var(--section-pad, 64px 0);
}
.svc-stacked-section .svc-section-heading {
  margin-bottom: 24px;
  max-width: 100%;
}
.svc-stacked-img {
  width: 100%;
  margin-bottom: 28px;
  border-radius: 8px;
  overflow: hidden;
  max-height: 480px;
}
.svc-stacked-img img {
  width: 100%;
  height: 100%;
  max-height: 480px;
  object-fit: cover;
  display: block;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,0.1);
}
.svc-stacked-text {
  max-width: 100%;
  width: 100%;
}
/* Force body-text paragraphs to full width inside stacked photo sections */
.svc-stacked-text .body-text,
.svc-stacked-text p.body-text {
  max-width: 100% !important;
  width: 100% !important;
}
@media (max-width: 767px) {
  .svc-stacked-section {
    padding: 36px 0 !important;
  }
  .svc-stacked-img {
    max-height: 260px !important;
    margin-bottom: 20px !important;
  }
  .svc-stacked-img img {
    max-height: 260px !important;
  }
}

/* why-cleaning-photo removed — image now uses svc-stacked-img */

/* ══════════════════════════════════════════════════════════════
   FURNITURE PAGE — YOUR FURNITURE DESERVES BETTER PHOTO
   Desktop + Mobile
══════════════════════════════════════════════════════════════ */
.furn-deserves-photo {
  width: 100%;
  margin: 20px 0 24px;
  border-radius: 8px;
  overflow: hidden;
  max-height: 520px;
}
.furn-deserves-img {
  width: 100%;
  height: auto;
  max-height: 520px;
  object-fit: cover;
  display: block;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,0.1);
}
@media (max-width: 767px) {
  .furn-deserves-photo {
    max-height: 240px !important;
    margin: 14px 0 18px !important;
    border-radius: 8px !important;
  }
  .furn-deserves-img {
    max-height: 240px !important;
  }
}

/* ══════════════════════════════════════════════════════════════
   ABOUT PAGE — Why The Lion: vintage logo SQUARE on mobile
══════════════════════════════════════════════════════════════ */
@media (max-width: 767px) {
  .about-lion-icon-img.about-lion-icon-square {
    border-radius: 10px !important;
    object-fit: contain !important;
    aspect-ratio: unset !important;
    padding: 10px !important;
    background: rgba(34, 32, 95, 0.35) !important;
    width: min(220px, 60vw) !important;
    height: auto !important;
  }
}

/* ══════════════════════════════════════════════════════════════
   CARPET CLEANING PAGE — PROCESS ROWS (full-width horizontal)
   Image left / text right on desktop, stacked on mobile
══════════════════════════════════════════════════════════════ */
.cc-process-rows {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin-top: 16px;
}
.cc-process-row {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 10px;
  overflow: hidden;
  transition: border-color 0.3s;
  min-height: 220px;
}
.cc-process-row:hover { border-color: rgba(226,198,117,0.35); }
.cc-process-row-img {
  width: 340px;
  min-width: 340px;
  height: auto;
  overflow: hidden;
  flex-shrink: 0;
  position: relative;
}
.cc-process-row-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.cc-process-row:hover .cc-process-row-img img { transform: scale(1.03); }
.cc-process-row-img-placeholder {
  width: 100%;
  height: 100%;
  min-height: 220px;
  background: linear-gradient(135deg, rgba(226,198,117,0.08) 0%, rgba(34,32,95,0.3) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 20px;
}
.cc-process-row-img-placeholder span {
  font-size: 0.78rem;
  color: rgba(255,255,255,0.35);
  font-style: italic;
  line-height: 1.5;
  max-width: 260px;
}
.cc-process-row-num {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
  font-size: 2.0rem;
  font-weight: 900;
  font-family: 'Arial Black', Arial, sans-serif;
  color: var(--gold);
  line-height: 1;
  text-shadow: 0 2px 8px rgba(0,0,0,0.7);
  user-select: none;
}
.cc-process-row-body {
  padding: 24px 28px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
  justify-content: center;
}
.cc-process-row-title {
  font-family: 'Arial Black', Arial, sans-serif;
  font-size: 1.0rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #fff;
  line-height: 1.3;
  margin: 0;
}
.cc-process-row-text {
  color: rgba(255,255,255,0.82);
  font-size: 1.0rem;
  line-height: 1.75;
  margin: 0;
  max-width: 680px;
}
.cc-process-badge {
  display: inline-block;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.10em;
  color: var(--gold);
  white-space: nowrap;
  padding: 2px 7px;
  border: 1px solid rgba(226,198,117,0.45);
  border-radius: 3px;
  vertical-align: middle;
  margin-left: 4px;
}
@media (max-width: 767px) {
  .cc-process-row {
    flex-direction: column;
    min-height: auto;
  }
  .cc-process-row-img {
    width: 100%;
    min-width: 100%;
    height: 220px;
  }
  .cc-process-row-img-placeholder {
    min-height: 220px;
  }
  .cc-process-row-body {
    padding: 20px 18px;
  }
  .cc-process-row-text {
    font-size: 0.92rem;
  }
}

/* ══════════════════════════════════════════════════════════════
   CARPET CLEANING PAGE — CONDITIONS (5 text cards, no icons)
══════════════════════════════════════════════════════════════ */
.cc-conditions-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 16px;
}
.cc-condition-item {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 10px;
  padding: 28px 28px;
  transition: border-color 0.3s;
}
.cc-condition-item:hover { border-color: rgba(226,198,117,0.35); }
.cc-condition-item-title {
  font-family: 'Arial Black', Arial, sans-serif;
  font-size: 1.0rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #fff;
  line-height: 1.3;
  margin: 0 0 12px;
}
.cc-condition-item-text {
  max-width: 100% !important;
  width: 100% !important;
  color: rgba(255,255,255,0.78);
  font-size: 1rem;
  line-height: 1.75;
  margin: 0 0 8px;
}
.cc-condition-item-text + .cc-condition-item-text {
  margin-top: 10px;
}
@media (max-width: 767px) {
  .cc-condition-item {
    padding: 22px 20px;
  }
  .cc-condition-item-text {
    font-size: 0.92rem;
  }
}

/* ══════════════════════════════════════════════════════════════
   CARPET CLEANING PAGE — ADD-ON SERVICES (simple list)
══════════════════════════════════════════════════════════════ */
.cc-addon-list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 16px;
}
.cc-addon-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(226,198,117,0.30);
  border-radius: 6px;
  padding: 12px 20px;
  font-family: 'Arial Black', Arial, sans-serif;
  font-size: 0.88rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  color: #fff;
  text-transform: uppercase;
}
.cc-addon-item-dot {
  color: var(--gold);
  font-size: 1.1rem;
}

/* ══════════════════════════════════════════════════════════════
   SERVICE AREAS — BREADCRUMBS, CITY CARDS, CITY PAGE LAYOUT
══════════════════════════════════════════════════════════════ */

/* ── Breadcrumbs ── */
.sa-breadcrumbs {
  padding: 14px 0 0;
  margin-top: var(--header-h);
}
.sa-breadcrumb-bar {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  font-size: 0.78rem;
  letter-spacing: 0.03em;
}
.sa-breadcrumb-bar a {
  color: var(--gold);
  text-decoration: none;
  transition: color 0.2s;
}
.sa-breadcrumb-bar a:hover { color: var(--gold-light); }
.sa-breadcrumb-sep {
  color: rgba(255,255,255,0.35);
  font-size: 0.72rem;
}
.sa-breadcrumb-current {
  color: rgba(255,255,255,0.60);
  font-weight: 600;
}
@media (max-width: 767px) {
  .sa-breadcrumb-bar { padding: 0 16px; font-size: 0.72rem; }
}

/* ── Service Areas Hero ── */
.sa-hero {
  position: relative;
  min-height: 62vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background-image:
    linear-gradient(to bottom, rgba(10,14,40,0.55) 0%, rgba(10,14,40,0.45) 50%, rgba(10,14,40,0.88) 100%),
    url('https://images.unsplash.com/photo-1502082553048-f009c37129b9?w=1600&q=85');
  background-size: cover;
  background-position: center 40%;
  background-repeat: no-repeat;
  padding: 60px 24px 50px;
}
.sa-hero-inner {
  max-width: 760px;
  margin: 0 auto;
}
.sa-hero h1 {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(2.2rem, 5vw, 3.6rem);
  font-style: italic;
  font-weight: 800;
  color: #fff;
  line-height: 1.12;
  margin: 0 0 14px;
}
.sa-hero-sub {
  font-size: clamp(0.92rem, 1.6vw, 1.08rem);
  color: rgba(255,255,255,0.78);
  line-height: 1.65;
  max-width: 1160px;
  margin: 0 auto 26px;
}
.sa-hero-btns {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}

/* ── Intro section ── */
.sa-intro {
  padding: 52px 0 44px;
}
.sa-intro-inner {
  max-width: 820px;
  margin: 0 auto;
  padding: 0 24px;
}
.sa-intro p {
  color: rgba(255,255,255,0.74);
  font-size: 1rem;
  line-height: 1.75;
  margin-bottom: 16px;
}

/* ── Group heading ── */
.sa-group {
  padding: 48px 0;
}
.sa-group:first-of-type { padding-top: 0; }
.sa-group-title {
  font-family: 'Arial Black', Arial, sans-serif;
  font-size: clamp(1.1rem, 2.2vw, 1.4rem);
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fff;
  margin: 0 0 10px;
}
.sa-group-desc {
  color: rgba(255,255,255,0.66);
  font-size: 0.92rem;
  line-height: 1.65;
  max-width: 720px;
  margin: 0 0 28px;
}

/* ── City Cards Grid (North Shore) ── */
.sa-city-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.sa-city-card {
  display: flex;
  flex-direction: column;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 10px;
  overflow: hidden;
  transition: border-color 0.3s, transform 0.3s;
  text-decoration: none;
}
.sa-city-card:hover {
  border-color: rgba(226,198,117,0.40);
  transform: translateY(-3px);
}
.sa-city-card-img {
  width: 100%;
  height: 170px;
  object-fit: cover;
  display: block;
}
.sa-city-card-body {
  padding: 18px 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}
.sa-city-card-name {
  font-family: 'Arial Black', Arial, sans-serif;
  font-size: 1.0rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  color: #fff;
  margin: 0;
}
.sa-city-card-desc {
  color: rgba(255,255,255,0.68);
  font-size: 0.82rem;
  line-height: 1.55;
  margin: 0;
  flex: 1;
}
.sa-city-card-btn {
  display: inline-block;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gold);
  border: 1px solid var(--gold);
  border-radius: 4px;
  padding: 7px 14px;
  text-align: center;
  transition: background 0.2s, color 0.2s;
  margin-top: 4px;
}
.sa-city-card:hover .sa-city-card-btn {
  background: var(--gold);
  color: var(--navy);
}

/* ── Coming Soon Cards (Chicago) ── */
.sa-soon-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.sa-soon-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  background: rgba(255,255,255,0.02);
  border: 1px dashed rgba(255,255,255,0.14);
  border-radius: 10px;
  padding: 28px 18px 24px;
  gap: 8px;
}
.sa-soon-card-name {
  font-family: 'Arial Black', Arial, sans-serif;
  font-size: 0.92rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  color: rgba(255,255,255,0.55);
  margin: 0;
}
.sa-soon-card-text {
  color: rgba(255,255,255,0.38);
  font-size: 0.76rem;
  line-height: 1.5;
  margin: 0;
}

/* ── Responsive grids ── */
@media (max-width: 1000px) {
  .sa-city-grid, .sa-soon-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .sa-city-grid, .sa-soon-grid { grid-template-columns: 1fr; }
  .sa-hero { min-height: 50vh; padding: 40px 20px 36px; }
}

/* ══════════════════════════════════════════════════════════════
   CITY PAGE LAYOUT — individual /service-areas/[city] pages
══════════════════════════════════════════════════════════════ */

/* ── City Hero ── */
.city-hero {
  position: relative;
  min-height: 60vh;
  display: flex;
  align-items: center;
  background-size: cover;
  background-position: center 40%;
  background-repeat: no-repeat;
  padding: 60px 24px 50px;
}
.city-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(10,14,40,0.55) 0%, rgba(10,14,40,0.42) 50%, rgba(10,14,40,0.88) 100%);
  z-index: 0;
}
.city-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
}
.city-hero h1 {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(2.0rem, 4.5vw, 3.4rem);
  font-style: italic;
  font-weight: 800;
  color: #fff;
  line-height: 1.12;
  margin: 0 0 14px;
}
.city-hero-sub {
  font-size: clamp(0.92rem, 1.6vw, 1.08rem);
  color: rgba(255,255,255,0.78);
  line-height: 1.65;
  max-width: 600px;
  margin: 0 auto 26px;
}
.city-hero-btns {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}

/* ── City content sections ── */
.city-section {
  padding: 52px 0;
  border-top: 1px solid var(--border);
}
.city-section:first-of-type { border-top: none; }
.city-section-inner {
  max-width: 820px;
  margin: 0 auto;
  padding: 0 24px;
}
.city-section h2 {
  font-family: 'Arial Black', Arial, sans-serif;
  font-size: clamp(1.1rem, 2.2vw, 1.4rem);
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #fff;
  margin: 0 0 20px;
  text-align: center;
}
.city-section p {
  color: rgba(255,255,255,0.74);
  font-size: 1rem;
  line-height: 1.75;
  margin-bottom: 14px;
}

/* ── City service cards ── */
.city-svc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 16px;
  margin-top: 24px;
}
.city-svc-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 8px;
  padding: 22px 16px;
  text-decoration: none;
  transition: border-color 0.3s;
  gap: 8px;
}
.city-svc-card:hover { border-color: rgba(226,198,117,0.35); }
.city-svc-card-icon {
  width: 40px;
  height: 40px;
  fill: none;
  opacity: 0.85;
}
.city-svc-card-name {
  font-family: 'Arial Black', Arial, sans-serif;
  font-size: 0.82rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  color: var(--gold);
  text-transform: uppercase;
  margin: 0;
}

/* ── Nearby areas links ── */
.city-nearby-list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 20px;
}
.city-nearby-link {
  display: inline-block;
  font-size: 0.84rem;
  font-weight: 600;
  color: var(--gold);
  border: 1px solid rgba(226,198,117,0.35);
  border-radius: 4px;
  padding: 8px 16px;
  text-decoration: none;
  transition: background 0.2s, color 0.2s;
}
.city-nearby-link:hover {
  background: rgba(226,198,117,0.12);
  color: var(--gold-light);
}

/* ── City CTA section ── */
.city-cta {
  padding: 56px 0 60px;
  border-top: 1px solid var(--border);
}
.city-cta-inner {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
  padding: 0 24px;
}
.city-cta h2 {
  font-family: 'Arial Black', Arial, sans-serif;
  font-size: clamp(1.1rem, 2.2vw, 1.4rem);
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #fff;
  margin: 0 0 16px;
  text-align: center;
}
.city-cta-text {
  color: rgba(255,255,255,0.74);
  font-size: 1rem;
  line-height: 1.7;
  margin-bottom: 24px;
}
.city-cta-btns {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}
@media (max-width: 767px) {
  .city-hero { min-height: 48vh; padding: 40px 20px 36px; }
  .city-section { padding: 36px 0 !important; }
  .city-section-inner { padding: 0 16px; }
}

/* Full-width text wrapper for carpet cleaning lower sections */
.section > .container > .svc-stacked-text {
  max-width: 100%;
  width: 100%;
}
.section > .container > .svc-stacked-text .body-text,
.section > .container > .svc-stacked-text p.body-text {
  max-width: 100% !important;
  width: 100% !important;
}

/* ===================================================
   STANDARD SERVICE AREAS SECTION (sitewide)
   =================================================== */
.sa-standard-section .sa-heading-centered {
  text-align: center !important;
  margin-bottom: 28px;
}
.sa-standard-section .sa-cities-centered {
  justify-content: center;
}

/* Center all h1/h2 headings sitewide */
h1, h2 {
  text-align: center !important;
}

/* ══ Carpet Conditions — floating text blocks with gold accent markers ══ */
.cc-conditions-float {
  display: flex;
  flex-direction: column;
  gap: 36px;
  margin-top: 28px;
}
.cc-condition-float {
  max-width: 900px;
  margin: 0 auto;
  width: 100%;
}
.cc-condition-float-title {
  font-family: 'Arial Black', Arial, sans-serif;
  font-size: 1.05rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #fff;
  line-height: 1.3;
  margin: 0 0 12px;
  display: flex;
  align-items: baseline;
  gap: 10px;
}
.cc-condition-marker {
  color: var(--gold);
  font-size: 0.85rem;
  flex-shrink: 0;
  line-height: 1;
}
.cc-condition-float-text {
  color: rgba(255,255,255,0.78);
  font-size: 1rem;
  line-height: 1.75;
  margin: 0;
}
@media (max-width: 767px) {
  .cc-conditions-float { gap: 28px; }
  .cc-condition-float-text { font-size: 0.92rem; }
  .cc-condition-float-title { font-size: 0.95rem; }
}

/* ══ Upholstery Process — clean card grid ══ */
.upholstery-process-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 20px;
  margin-top: 8px;
}
.upholstery-process-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 10px;
  padding: 24px 22px;
  transition: border-color 0.3s, transform 0.2s;
}
.upholstery-process-card:hover {
  border-color: rgba(226,198,117,0.30);
}
.upholstery-process-card-title {
  font-family: 'Arial Black', Arial, sans-serif;
  font-size: 0.92rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 12px;
  line-height: 1.3;
}
.upholstery-process-card-text {
  color: rgba(255,255,255,0.75);
  font-size: 0.92rem;
  line-height: 1.7;
  margin: 0;
}
@media (max-width: 767px) {
  .upholstery-process-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .upholstery-process-card {
    padding: 20px 18px;
  }
  .upholstery-process-card-text {
    font-size: 0.88rem;
  }
}

/* ═══ Accessibility: visually-hidden (SEO-safe H1 / screen-reader text) ═══ */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
