/* ============================================================
   VICTORIOUS — DESIGN SYSTEM v2 (full-width, image-led)
   ============================================================ */
:root {
  --accent:     #E31937;
  --accent-dk:  #B3122B;
  --accent-soft:#FDEDEF;
  --bg:         #FBF8F2;
  --surface:    #FFFFFF;
  --trust-band: #F4F1EC;
  --ink:        #141414;
  --ink-soft:   #5A5A5A;
  --ink-mute:   #8A8580;
  --line:       rgba(20,20,20,0.10);
  --line-soft:  rgba(20,20,20,0.06);
  --maxw: 1280px;
  --pad-x: clamp(1.15rem, 4vw, 3rem);
  --radius: 14px;
  --radius-sm: 10px;
  --radius-lg: 22px;
  --shadow-sm: 0 1px 2px rgba(20,20,20,.04), 0 4px 16px rgba(20,20,20,.05);
  --shadow-md: 0 6px 30px rgba(20,20,20,.08);
  --shadow-lg: 0 18px 50px rgba(20,20,20,.14);
  --ease: cubic-bezier(.2,.7,.2,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
  --font-head: 'Plus Jakarta Sans', -apple-system, system-ui, sans-serif;
  --font-body: 'Inter', -apple-system, system-ui, sans-serif;
  --a11y-scale: 1;
  /* Inner pages */
  --bg-alt: var(--trust-band);
  --header-h: 72px;
  --sticky-top: calc(var(--header-h) + 1rem);
  --section-y: clamp(2.5rem, 5vw, 4rem);
  --section-y-sm: clamp(1.5rem, 3vw, 2.25rem);
  --text-h2: clamp(1.35rem, 2.5vw, 1.85rem);
  --text-lead: clamp(1.02rem, 1.8vw, 1.12rem);
  --star: #F5A623;
  --hero-eyebrow: #FFB3BF;
}
html.a11y-dark {
  --bg: #141418;
  --surface: #1e1e24;
  --trust-band: #18181e;
  --ink: #f2f2f4;
  --ink-soft: #c4c4cc;
  --ink-mute: #9898a4;
  --line: rgba(255,255,255,.14);
  --line-soft: rgba(255,255,255,.08);
  --accent-soft: rgba(227,25,55,.18);
}
html.a11y-dark .home-fold { background: linear-gradient(180deg, #1a1a20 0%, var(--bg) 100%); }
html.a11y-dark .fold-partners, html.a11y-dark .fold-mini-stat, html.a11y-dark .svc-detail-card, html.a11y-dark .fold-form, html.a11y-dark .quote-form { background: var(--surface); }
html.a11y-dark .header-bar { background: var(--surface); border-color: var(--line); }
html.a11y-contrast {
  --bg: #fff;
  --surface: #fff;
  --ink: #000;
  --ink-soft: #1a1a1a;
  --line: #000;
  --line-soft: rgba(0,0,0,.25);
}
html.a11y-contrast.a11y-dark {
  --bg: #000;
  --surface: #0a0a0a;
  --ink: #fff;
  --ink-soft: #e8e8e8;
  --line: #fff;
}
html.a11y-links a:not(.btn) { text-decoration: underline !important; text-underline-offset: 3px; text-decoration-thickness: 2px; }
html.a11y-motion * { animation: none !important; transition-duration: .01ms !important; }
html.a11y-spacing body { line-height: 1.8; letter-spacing: .02em; word-spacing: .04em; }
html.a11y-spacing p, html.a11y-spacing li, html.a11y-spacing .fold-lead { line-height: 1.75; }
html { font-size: calc(100% * var(--a11y-scale)); }
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { background: var(--bg); color: var(--ink); font-family: var(--font-body); font-size: 17px; line-height: 1.65; overflow-x: hidden; -webkit-font-smoothing: antialiased; }
::selection { background: var(--accent); color: #fff; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
button { font-family: inherit; cursor: pointer; border: 0; background: none; color: inherit; }
h1, h2, h3, h4 { font-family: var(--font-head); font-weight: 700; line-height: 1.12; letter-spacing: -.02em; color: var(--ink); }
.container { width: 100%; max-width: var(--maxw); margin: 0 auto; padding-left: var(--pad-x); padding-right: var(--pad-x); }

.eyebrow { display: inline-flex; align-items: center; gap: .5rem; font-family: var(--font-head); font-weight: 600; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); }
.eyebrow .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 4px rgba(227,25,55,.14); }
.eyebrow.on-dark { color: #FFB3BF; }
.eyebrow.on-dark .dot { background: #FFB3BF; box-shadow: 0 0 0 4px rgba(255,179,191,.2); }

.section-head { max-width: 740px; margin-bottom: clamp(2rem, 4vw, 3.25rem); }
.section-head.center { margin-left: auto; margin-right: auto; text-align: center; }
.section-head h2 { font-size: clamp(1.85rem, 3.6vw, 2.85rem); margin: .75rem 0 .75rem; }
.section-head p { color: var(--ink-soft); font-size: 1.05rem; }
.section-head.center .eyebrow { justify-content: center; }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: .55rem; font-family: var(--font-head); font-weight: 700; font-size: .98rem; padding: .92rem 1.5rem; border-radius: 100px; transition: transform .25s var(--ease), box-shadow .25s var(--ease), background .25s, color .25s; white-space: nowrap; text-align: center; }
.btn svg { width: 18px; height: 18px; flex-shrink: 0; }
.btn-primary { background: var(--accent); color: #fff; box-shadow: 0 6px 20px rgba(227,25,55,.28); }
.btn-primary:hover { background: var(--accent-dk); transform: translateY(-2px); box-shadow: 0 10px 28px rgba(227,25,55,.36); }
.btn-dark { background: var(--ink); color: #fff; }
.btn-dark:hover { background: #000; transform: translateY(-2px); }
.btn-outline { background: transparent; color: var(--ink); border: 1.5px solid var(--line); }
.btn-outline:hover { border-color: var(--accent); color: var(--accent); transform: translateY(-2px); }
.btn-white { background: #fff; color: var(--accent); }
.btn-white:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.btn-ghost-light { background: rgba(255,255,255,.14); color: #fff; border: 1.5px solid rgba(255,255,255,.35); backdrop-filter: blur(6px); }
.btn-ghost-light:hover { background: rgba(255,255,255,.24); transform: translateY(-2px); }
.btn-lg { padding: 1.05rem 1.85rem; font-size: 1.05rem; }

/* ============ CONSOLIDATED STICKY HEADER ============ */
.site-header { position: sticky; top: 0; z-index: 100; background: #fff; width: 100%; border-bottom: 1px solid var(--line); transition: box-shadow .3s; }
.site-header.scrolled { box-shadow: 0 4px 24px rgba(0,0,0,.1); }
.header-bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .65rem var(--pad-x); border-bottom: 1px solid var(--line-soft); max-width: var(--maxw); margin: 0 auto; }
.brand { display: flex; align-items: center; gap: .65rem; flex-shrink: 0; }
.brand-logo { height: clamp(40px, 5vw, 52px); width: auto; }
.brand-text { display: flex; flex-direction: column; line-height: 1; }
.brand-name { font-family: var(--font-head); font-weight: 800; font-size: clamp(1rem, 1.6vw, 1.18rem); letter-spacing: -.01em; color: var(--ink); }
.brand-sub { font-size: .6rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-mute); font-weight: 600; margin-top: 3px; }
.header-bar-right { display: flex; align-items: center; gap: .75rem; flex-shrink: 0; }
.header-trust-pill { display: inline-flex; align-items: center; gap: .45rem; font-family: var(--font-head); font-size: .76rem; font-weight: 600; color: var(--ink-soft); padding: .4rem .75rem; background: var(--bg); border-radius: 100px; border: 1px solid var(--line-soft); white-space: nowrap; }
.header-trust-pill svg { width: 13px; height: 13px; color: #F5A623; flex-shrink: 0; }
.header-trust-pill .acc { color: var(--accent); font-weight: 800; }
.header-phone { display: inline-flex; align-items: center; gap: .45rem; font-family: var(--font-head); font-weight: 800; font-size: clamp(.92rem, 1.4vw, 1.1rem); color: var(--ink); transition: color .2s; white-space: nowrap; }
.header-phone:hover { color: var(--accent); }
.header-phone .ph-ic { width: 36px; height: 36px; border-radius: 50%; background: var(--accent); color: #fff; display: grid; place-items: center; flex-shrink: 0; }
.header-phone .ph-ic svg { width: 17px; height: 17px; }
.header-bar .btn { padding: .55rem 1.1rem; font-size: .88rem; }
.nav-wrap { display: contents; }
.nav-inner { display: flex; align-items: center; justify-content: space-between; padding: 0 var(--pad-x); min-height: 48px; max-width: var(--maxw); margin: 0 auto; }

/* legacy compat */
.header-wrap { display: contents; }
.header { display: contents; }
.header-right { display: none; }

/* Nav with dropdowns — on light sticky bar */
.nav { display: flex; align-items: center; gap: 0; flex-wrap: wrap; }
.nav-item { position: relative; }
.nav-link { display: inline-flex; align-items: center; gap: .3rem; font-family: var(--font-head); font-weight: 600; font-size: .82rem; color: var(--ink); padding: .6rem .65rem; border-radius: 6px; transition: color .2s, background .2s; }
.nav-link:hover { color: var(--accent); background: rgba(227,25,55,.06); }
.nav-link .caret { width: 12px; height: 12px; transition: transform .25s; opacity: .6; }
.nav-item:hover .nav-link .caret { transform: rotate(180deg); }

.dropdown { position: absolute; top: calc(100% + 8px); left: 0; min-width: 280px; background: #fff; border: 1px solid var(--line-soft); border-radius: var(--radius); box-shadow: var(--shadow-lg); padding: .6rem; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .25s var(--ease), transform .25s var(--ease), visibility .25s; z-index: 50; }
.nav-item:hover .dropdown, .nav-item:focus-within .dropdown { opacity: 1; visibility: visible; transform: translateY(0); }
.dropdown a { display: flex; align-items: flex-start; gap: .65rem; padding: .65rem .75rem; border-radius: 8px; transition: background .2s; }
.dropdown a:hover { background: var(--bg); }
.dropdown a .d-ic { width: 34px; height: 34px; border-radius: 8px; background: var(--accent-soft); color: var(--accent); display: grid; place-items: center; flex-shrink: 0; }
.dropdown a .d-ic svg { width: 18px; height: 18px; }
.dropdown a strong { display: block; font-family: var(--font-head); font-weight: 700; font-size: .9rem; color: var(--ink); }
.dropdown a span { font-size: .78rem; color: var(--ink-soft); }

/* Dropdown wide (services) */
.dropdown.wide { min-width: 540px; display: grid; grid-template-columns: 1fr 1fr; gap: .2rem; }

/* Mega menu (full-width panels) */
.mega { position: absolute; top: calc(100% + 0px); left: 50%; transform: translateX(-50%); width: max-content; max-width: min(920px, 96vw); background: #fff; border-radius: 0 0 var(--radius) var(--radius); box-shadow: var(--shadow-lg); padding: 0; opacity: 0; visibility: hidden; transform: translateX(-50%) translateY(8px); transition: opacity .25s var(--ease), transform .25s var(--ease), visibility .25s; z-index: 50; border: 1px solid var(--line); border-top: 3px solid var(--accent); }
.mega.xl { max-width: min(1080px, 98vw); }
.nav-item:last-child .mega, .nav-item:nth-last-child(2) .mega, .nav-item:nth-last-child(3) .mega { left: auto; right: 0; transform: translateX(0) translateY(8px); }
.nav-item:last-child:hover .mega, .nav-item:nth-last-child(2):hover .mega, .nav-item:nth-last-child(3):hover .mega, .nav-item:last-child:focus-within .mega, .nav-item:nth-last-child(2):focus-within .mega, .nav-item:nth-last-child(3):focus-within .mega { transform: translateX(0) translateY(0); }
.nav-item:hover .mega, .nav-item:focus-within .mega { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
.mega-head { padding: 1rem 1.5rem .75rem; border-bottom: 1px solid var(--line-soft); }
.mega-head .mega-title { font-family: var(--font-head); font-weight: 700; font-size: .82rem; letter-spacing: .08em; text-transform: uppercase; color: var(--accent); }
.mega-body { display: grid; grid-template-columns: 1fr 1fr 280px; gap: 0; }
.mega-col { padding: .85rem .75rem; }
.mega-col h5 { font-family: var(--font-head); font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-mute); padding: .4rem .75rem; margin-bottom: .25rem; }
.mega-col a { display: flex; align-items: flex-start; gap: .65rem; padding: .55rem .75rem; border-radius: 8px; transition: background .2s; }
.mega-col a:hover { background: var(--bg); }
.mega-col a .mi { width: 32px; height: 32px; border-radius: 8px; background: var(--accent-soft); color: var(--accent); display: grid; place-items: center; flex-shrink: 0; }
.mega-col a .mi svg { width: 16px; height: 16px; }
.mega-col a strong { display: block; font-family: var(--font-head); font-weight: 700; font-size: .88rem; color: var(--ink); line-height: 1.2; }
.mega-col a small { display: block; font-size: .76rem; color: var(--ink-soft); margin-top: 1px; }
.mega-feat { padding: 1rem; display: flex; flex-direction: column; gap: .75rem; background: var(--bg); border-left: 1px solid var(--line-soft); }
.mega-feat img { width: 100%; aspect-ratio: 16/10; object-fit: cover; border-radius: var(--radius-sm); }
.mega-feat h4 { font-size: 1rem; margin-bottom: .15rem; }
.mega-feat p { font-size: .82rem; color: var(--ink-soft); margin-bottom: .5rem; }
.mega-feat .btn { padding: .55rem 1rem; font-size: .85rem; width: 100%; }
/* Two-column mega (shop) */
.mega.two .mega-body { grid-template-columns: 1fr 280px; }
.mega-body.col4 { grid-template-columns: repeat(4, 1fr); }
.mega-body.col3feat { grid-template-columns: 1fr 1fr 1fr 260px; }
.mega-body.col2feat { grid-template-columns: minmax(0, 1fr) 280px; }
.mega-body.col2feat .mega-feat { align-self: stretch; justify-content: space-between; min-height: 100%; }
.mega-sub-links { display: flex; flex-direction: column; gap: .1rem; padding: 0 .75rem .45rem 2.85rem; margin-top: -.2rem; }
.mega-sub-links a { display: block; font-size: .76rem; font-weight: 500; color: var(--ink-soft); padding: .28rem 0; transition: color .2s; }
.mega-sub-links a:hover { color: var(--accent); }
.mega-sub-links a::before { content: '→ '; opacity: .45; font-size: .7rem; }
.mega-gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .55rem; padding: .85rem; }
.mega-gallery-grid a { position: relative; border-radius: 10px; overflow: hidden; display: block; }
.mega-gallery-grid img { width: 100%; aspect-ratio: 4/3; object-fit: cover; transition: transform .35s var(--ease); }
.mega-gallery-grid a:hover img { transform: scale(1.06); }
.mega-gallery-grid span { position: absolute; bottom: 0; left: 0; right: 0; padding: .45rem .55rem; font-family: var(--font-head); font-size: .72rem; font-weight: 700; color: #fff; background: linear-gradient(0deg, rgba(0,0,0,.65), transparent); }
.mega-blog-list { padding: .85rem .75rem; display: flex; flex-direction: column; gap: .15rem; }
.mega-blog-list a { display: flex; align-items: flex-start; gap: .65rem; padding: .55rem .75rem; border-radius: 8px; transition: background .2s; }
.mega-blog-list a:hover { background: var(--bg); }
.mega-blog-list .tag { font-size: .65rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--accent); margin-bottom: .15rem; }
.mega-blog-list strong { font-family: var(--font-head); font-size: .88rem; display: block; line-height: 1.25; }
.mega-blog-list small { font-size: .76rem; color: var(--ink-soft); }
.mega-areas-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; padding: .5rem 0; align-items: stretch; min-width: 0; }
.mega-areas-grid .mega-col {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: .65rem .75rem;
  border-right: 1px solid var(--line-soft);
}
.mega-areas-grid .mega-col:last-child { border-right: 0; }
.mega-areas-grid .mega-col > a { padding: .45rem .75rem; }
.mega-areas-grid .city-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .15rem .65rem;
  padding: 0 .75rem .55rem 3.25rem;
  margin-top: -.25rem;
  margin-bottom: .35rem;
}
.mega-areas-grid .city-list a {
  font-size: .74rem;
  color: var(--ink-soft);
  padding: .12rem 0;
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mega-areas-grid .city-list a:hover { color: var(--accent); }
.mega-areas-grid .city-list a::after { content: none; }

.header-right { display: flex; align-items: center; gap: .85rem; }
.header-phone { display: inline-flex; align-items: center; gap: .5rem; font-family: var(--font-head); font-weight: 700; font-size: 1.02rem; color: var(--ink); }
.header-phone .ph-ic { width: 38px; height: 38px; border-radius: 50%; background: var(--accent); color: #fff; display: grid; place-items: center; flex-shrink: 0; }
.header-phone .ph-ic svg { width: 18px; height: 18px; }
.header-phone:hover { color: var(--accent); }
.header-phone small { display: block; font-size: .68rem; font-weight: 500; color: var(--ink-mute); letter-spacing: .06em; text-transform: uppercase; }

.menu-btn { display: none; width: 44px; height: 44px; border-radius: var(--radius-sm); background: var(--ink); color: #fff; align-items: center; justify-content: center; }
.menu-btn svg { width: 22px; height: 22px; }

/* Mobile drawer */
.mobile-drawer { position: fixed; inset: 0; z-index: 200; background: rgba(20,20,20,.5); opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s; }
.mobile-drawer.open { opacity: 1; visibility: visible; }
.mobile-panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(380px, 88vw); background: var(--bg); transform: translateX(100%); transition: transform .35s var(--ease); overflow-y: auto; padding: 1.25rem; }
.mobile-drawer.open .mobile-panel { transform: none; }
.mobile-panel-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--line-soft); }
.mobile-close { width: 40px; height: 40px; border-radius: 10px; border: 1px solid var(--line); display: grid; place-items: center; }
.mobile-close svg { width: 20px; height: 20px; }
.mobile-section { margin-bottom: 1.25rem; }
.mobile-section h5 { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-mute); font-family: var(--font-head); font-weight: 700; margin-bottom: .5rem; }
.mobile-section a { display: block; padding: .55rem 0; font-family: var(--font-head); font-weight: 600; font-size: 1rem; color: var(--ink); border-bottom: 1px solid var(--line-soft); }
.mobile-section a:last-child { border-bottom: 0; }
.mobile-cta { display: flex; flex-direction: column; gap: .65rem; margin-top: 1.5rem; }

/* ============ HOME FOLD — bright, conversion-first above-the-fold ============ */
.home-fold { position: relative; background: linear-gradient(90deg, rgba(227,25,55,.09) 0%, rgba(255,240,242,.04) 12%, transparent 28%, transparent 72%, rgba(255,248,235,.05) 88%, rgba(245,166,35,.1) 100%), linear-gradient(180deg, #fff 0%, var(--bg) 100%); border-bottom: 1px solid var(--line-soft); overflow: hidden; }
.fold-bg { position: absolute; inset: 0; pointer-events: none; z-index: 0; overflow: hidden; }
.fold-bg .fold-side-glow { position: absolute; top: -8%; bottom: -8%; width: min(42vw, 560px); }
.fold-bg .fold-side-glow--left { left: -4%; background: radial-gradient(ellipse 85% 75% at 0% 48%, rgba(227,25,55,.42) 0%, rgba(255,90,110,.18) 38%, rgba(227,25,55,.06) 58%, transparent 78%); animation: sideGlowL 14s ease-in-out infinite; }
.fold-bg .fold-side-glow--right { right: -4%; background: radial-gradient(ellipse 85% 75% at 100% 52%, rgba(245,166,35,.38) 0%, rgba(255,120,80,.16) 36%, rgba(227,25,55,.08) 55%, transparent 76%); animation: sideGlowR 16s ease-in-out infinite; }
@keyframes sideGlowL { 0%, 100% { opacity: .88; transform: translateX(0) scale(1); } 50% { opacity: 1; transform: translateX(18px) scale(1.03); } }
@keyframes sideGlowR { 0%, 100% { opacity: .85; transform: translateX(0) scale(1); } 50% { opacity: 1; transform: translateX(-16px) scale(1.03); } }
.fold-bg .fold-particles { position: absolute; inset: 0; opacity: .55; background-image: radial-gradient(circle, rgba(227,25,55,.55) 1.5px, transparent 1.5px), radial-gradient(circle, rgba(245,166,35,.35) 1px, transparent 1px); background-size: 44px 44px, 68px 68px; background-position: 0 0, 22px 22px; -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 18%, transparent 34%, transparent 66%, #000 82%, #000 100%); mask-image: linear-gradient(90deg, #000 0%, #000 18%, transparent 34%, transparent 66%, #000 82%, #000 100%); animation: particleDrift 36s linear infinite; }
@keyframes particleDrift { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(0, -44px, 0); } }
.fold-bg .orb { position: absolute; border-radius: 50%; filter: blur(42px); opacity: .78; animation: orbFloat 14s ease-in-out infinite; will-change: transform; }
.fold-bg .orb--tl { width: 480px; height: 480px; background: radial-gradient(circle at 40% 40%, rgba(227,25,55,.55) 0%, rgba(227,25,55,.2) 45%, transparent 70%); top: -160px; left: -120px; animation-delay: 0s; }
.fold-bg .orb--tr { width: 400px; height: 400px; background: radial-gradient(circle at 60% 35%, rgba(245,166,35,.5) 0%, rgba(255,120,90,.18) 50%, transparent 72%); top: 5%; right: -100px; animation-delay: -4s; }
.fold-bg .orb--bl { width: 340px; height: 340px; background: radial-gradient(circle, rgba(227,25,55,.4) 0%, transparent 68%); bottom: 12%; left: 22%; animation-delay: -9s; opacity: .5; }
.fold-bg .orb--fl { width: 580px; height: 580px; background: radial-gradient(circle at 65% 50%, rgba(227,25,55,.5) 0%, rgba(255,80,100,.22) 42%, transparent 68%); top: 28%; left: -240px; animation-delay: -2s; animation-duration: 17s; }
.fold-bg .orb--fr { width: 540px; height: 540px; background: radial-gradient(circle at 35% 45%, rgba(245,166,35,.48) 0%, rgba(227,25,55,.2) 45%, transparent 70%); top: 32%; right: -220px; animation-delay: -6s; animation-duration: 19s; }
.fold-bg .orb--sl { width: 320px; height: 320px; background: radial-gradient(circle, rgba(227,25,55,.45) 0%, transparent 65%); bottom: 5%; left: -60px; animation-delay: -11s; animation-duration: 13s; }
.fold-bg .orb--sr { width: 300px; height: 300px; background: radial-gradient(circle, rgba(255,107,122,.42) 0%, transparent 65%); top: 58%; right: -50px; animation-delay: -8s; animation-duration: 15s; }
@keyframes orbFloat { 0%, 100% { transform: translate(0, 0) scale(1); } 33% { transform: translate(28px, -22px) scale(1.06); } 66% { transform: translate(-18px, 14px) scale(.96); } }
.home-fold > *:not(.fold-bg) { position: relative; z-index: 1; }
.fold-top { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(1.5rem, 4vw, 2.75rem); align-items: stretch; padding: clamp(1.75rem, 4vw, 2.75rem) var(--pad-x) clamp(1.25rem, 3vw, 2rem); max-width: var(--maxw); margin: 0 auto; }
.fold-copy { position: relative; display: flex; flex-direction: column; }
.fold-copy h1 { font-size: clamp(2rem, 4.2vw, 3.15rem); font-weight: 800; line-height: 1.08; margin: .65rem 0 .85rem; color: var(--ink); animation: foldTitleIn .9s var(--ease-out) both; }
.fold-copy h1 .hl { color: var(--accent); background: linear-gradient(90deg, var(--accent-dk), var(--accent), #ff6b7a, var(--accent)); background-size: 300% auto; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; animation: hlShimmer 5s linear infinite; }
@keyframes hlShimmer { to { background-position: 300% center; } }
@keyframes foldTitleIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
.fold-lead { font-size: clamp(1rem, 1.6vw, 1.12rem); color: var(--ink-soft); margin-bottom: 1.5rem; max-width: 540px; line-height: 1.6; animation: foldTitleIn .9s .12s var(--ease-out) both; }
.fold-lead strong { color: var(--ink); font-weight: 600; }
.fold-pills { display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: 1.25rem; }
.fold-pill { display: inline-flex; align-items: center; gap: .35rem; font-family: var(--font-head); font-size: .76rem; font-weight: 600; color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 100px; padding: .38rem .75rem; white-space: nowrap; transition: transform .25s var(--ease), border-color .25s, box-shadow .25s; }
.fold-pill:hover { transform: translateY(-1px); border-color: rgba(227,25,55,.25); box-shadow: var(--shadow-sm); }
.fold-pill svg { width: 14px; height: 14px; color: var(--accent); flex-shrink: 0; }
.fold-pill.accent { background: var(--accent-soft); border-color: rgba(227,25,55,.15); color: var(--accent-dk); }
.fold-cta { display: flex; flex-wrap: wrap; gap: .65rem; margin-bottom: 1.35rem; }
.fold-mini-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: .55rem; margin-bottom: 1.15rem; max-width: 420px; animation: foldTitleIn .9s .18s var(--ease-out) both; }
.fold-mini-stat { background: #fff; border: 1px solid var(--line-soft); border-radius: var(--radius-sm); padding: .65rem .75rem; text-align: center; box-shadow: var(--shadow-sm); transition: transform .25s var(--ease), border-color .25s; }
.fold-mini-stat:hover { transform: translateY(-2px); border-color: rgba(227,25,55,.2); }
.fold-mini-stat .num { display: block; font-family: var(--font-head); font-weight: 800; font-size: 1.35rem; line-height: 1; color: var(--accent); letter-spacing: -.02em; }
.fold-mini-stat .lbl { display: block; font-size: .68rem; font-weight: 600; color: var(--ink-soft); margin-top: .25rem; line-height: 1.25; }
.fold-partners { background: #fff; border: 1px solid var(--line-soft); border-radius: var(--radius); padding: 1rem 1.1rem 1.05rem; box-shadow: var(--shadow-sm); animation: foldTitleIn .9s .28s var(--ease-out) both; flex: 1; display: flex; flex-direction: column; transition: box-shadow .35s var(--ease), border-color .35s; position: relative; overflow: hidden; min-height: clamp(280px, 34vh, 380px); }
.fold-partners:hover { box-shadow: var(--shadow-md); border-color: rgba(227,25,55,.12); }
.fold-partners-label { font-family: var(--font-head); font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-mute); margin-bottom: .75rem; }
.fold-partners-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .65rem .85rem; align-items: center; margin-bottom: .85rem; }
.fold-partners-grid a { display: flex; align-items: center; justify-content: center; padding: .45rem .55rem; border-radius: 8px; background: var(--bg); border: 1px solid var(--line-soft); min-height: 52px; transition: transform .2s, box-shadow .2s, border-color .2s; }
.fold-partners-grid a:hover { transform: translateY(-2px); box-shadow: var(--shadow-sm); border-color: rgba(227,25,55,.15); }
.fold-partners-grid img { max-height: 36px; width: auto; max-width: 100%; object-fit: contain; }
.fold-partners-grid .partner-badge { grid-column: 1 / -1; display: flex; flex-direction: row; justify-content: center; align-items: center; gap: .75rem; padding: .55rem 1rem; background: linear-gradient(135deg, #fff 0%, var(--accent-soft) 100%); border: 1px solid rgba(227,25,55,.12); border-radius: 8px; min-height: auto; }
.fold-cta .btn-primary { animation: ctaPulse 3s ease-in-out infinite; }
@keyframes ctaPulse { 0%, 100% { box-shadow: 0 6px 20px rgba(227,25,55,.28); } 50% { box-shadow: 0 10px 34px rgba(227,25,55,.42); } }
.fold-trust-logos { display: none; }
.fold-visual { position: relative; display: flex; flex-direction: column; flex: 1; min-height: 100%; height: 100%; }
.fold-aside { display: flex; flex-direction: column; height: 100%; animation: foldAsideIn 1s .2s var(--ease-out) both; }
.fold-photo-wrap { position: relative; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-lg); border: 1px solid var(--line-soft); flex: 1 1 auto; min-height: clamp(210px, 28vh, 340px); aspect-ratio: auto; }
.fold-photo-badge { position: absolute; top: .85rem; left: .85rem; z-index: 4; display: inline-flex; align-items: center; gap: .45rem; background: rgba(255,255,255,.94); backdrop-filter: blur(8px); border: 1px solid var(--line-soft); border-radius: 100px; padding: .4rem .75rem .4rem .45rem; font-family: var(--font-head); font-size: .74rem; font-weight: 700; color: var(--ink); box-shadow: var(--shadow-sm); animation: foldBadgeIn .8s .5s var(--ease-out) both; }
.fold-photo-badge .dot { width: 8px; height: 8px; border-radius: 50%; background: #22a06b; box-shadow: 0 0 0 3px rgba(34,160,107,.2); animation: livePulse 2s ease-in-out infinite; }
@keyframes livePulse { 0%, 100% { opacity: 1; } 50% { opacity: .55; } }
@keyframes foldBadgeIn { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
.fold-photo-dots { position: absolute; bottom: .85rem; left: 50%; transform: translateX(-50%); z-index: 4; display: flex; gap: .35rem; }
.fold-photo-dots span { width: 7px; height: 7px; border-radius: 50%; background: rgba(255,255,255,.45); border: 1px solid rgba(255,255,255,.6); animation: dotCycle 18s ease-in-out infinite; }
.fold-photo-dots span:nth-child(1) { animation-delay: 0s; }
.fold-photo-dots span:nth-child(2) { animation-delay: 6s; }
.fold-photo-dots span:nth-child(3) { animation-delay: 12s; }
@keyframes dotCycle { 0%, 28% { background: #fff; transform: scale(1.15); } 33%, 100% { background: rgba(255,255,255,.4); transform: scale(1); } }
.fold-form-overlay { flex-shrink: 0; margin-top: auto; padding-top: .85rem; z-index: 5; }
.fold-form { background: #fff; border: 1px solid var(--line-soft); border-top: 3px solid var(--accent); border-radius: var(--radius-lg); padding: 1.15rem 1.25rem 1.25rem; box-shadow: 0 14px 44px rgba(20,20,20,.11); animation: foldFormIn 1s .35s var(--ease-out) both; transition: box-shadow .3s var(--ease), transform .3s var(--ease); }
.fold-form:hover { box-shadow: 0 18px 50px rgba(227,25,55,.12); transform: translateY(-2px); }
@keyframes foldFormIn { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.fold-form h3 { display: flex; align-items: center; gap: .5rem; font-size: 1.1rem; margin-bottom: .2rem; }
.fold-form h3::before { content: ''; width: 4px; height: 1.1rem; background: var(--accent); border-radius: 2px; flex-shrink: 0; }
.fold-photo-wrap .fold-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  will-change: transform, opacity;
  animation: foldCrossfade 18s ease-in-out infinite;
}
.fold-photo-wrap img.fold-photo:nth-of-type(1) {
  transform-origin: 22% 35%;
  animation: foldCrossfade 18s ease-in-out infinite, foldKenBurns1 18s ease-in-out infinite;
}
.fold-photo-wrap img.fold-photo:nth-of-type(2) {
  transform-origin: center center;
  animation: foldCrossfade 18s ease-in-out infinite, foldKenBurns2 18s ease-in-out infinite;
  animation-delay: 6s;
}
.fold-photo-wrap img.fold-photo:nth-of-type(3) {
  transform-origin: 78% 62%;
  animation: foldCrossfade 18s ease-in-out infinite, foldKenBurns3 18s ease-in-out infinite;
  animation-delay: 12s;
}
@keyframes foldCrossfade {
  0%, 28% { opacity: 1; }
  33%, 95% { opacity: 0; }
  100% { opacity: 0; }
}
@keyframes foldKenBurns1 {
  0% { transform: scale(1.05) translate(-1.5%, -0.8%); }
  28% { transform: scale(1.14) translate(1.2%, 1%); }
  33%, 100% { transform: scale(1.05) translate(-1.5%, -0.8%); }
}
@keyframes foldKenBurns2 {
  0% { transform: scale(1.1) translate(1.5%, 0.5%); }
  28% { transform: scale(1.04) translate(-1%, -0.5%); }
  33%, 100% { transform: scale(1.1) translate(1.5%, 0.5%); }
}
@keyframes foldKenBurns3 {
  0% { transform: scale(1.06) translate(-0.5%, 1%); }
  28% { transform: scale(1.15) translate(1.5%, -1%); }
  33%, 100% { transform: scale(1.06) translate(-0.5%, 1%); }
}
.fold-photo-wrap::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,20,20,.08) 0%, transparent 35%, transparent 55%, rgba(20,20,20,.12) 100%); pointer-events: none; z-index: 2; }
@keyframes foldAsideIn { from { opacity: 0; transform: translateX(24px); } to { opacity: 1; transform: none; } }
.fold-partners-grid .partner-badge .hs-yr { font-family: var(--font-head); font-weight: 800; font-size: 1.1rem; line-height: 1; color: var(--accent); }
.fold-partners-grid .partner-badge .hs-lbl { font-size: .58rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); text-align: center; line-height: 1.2; }
.fold-cred-list { display: grid; grid-template-columns: 1fr 1fr; gap: .35rem .65rem; list-style: none; padding-top: .75rem; border-top: 1px solid var(--line-soft); margin-top: auto; }
.fold-cred-list li { display: flex; align-items: center; gap: .4rem; font-size: .72rem; font-weight: 500; color: var(--ink-soft); line-height: 1.25; }
.fold-cred-list li svg { width: 14px; height: 14px; color: #22a06b; flex-shrink: 0; }
.fold-phone-lg { display: inline-flex; align-items: center; gap: .55rem; font-family: var(--font-head); font-weight: 800; font-size: clamp(1.05rem, 2vw, 1.35rem); color: var(--ink); margin-bottom: 1rem; }
.fold-phone-lg svg { width: 20px; height: 20px; color: var(--accent); }
.fold-phone-lg:hover { color: var(--accent); }
.fold-form .sub { font-size: .84rem; color: var(--ink-soft); margin-bottom: .85rem; }
.fold-form .field { margin-bottom: .65rem; }
.fold-form .field label { font-size: .76rem; margin-bottom: .25rem; }
.fold-form .field input, .fold-form .field select { padding: .65rem .8rem; font-size: .9rem; background: var(--bg); }
.fold-form .btn { width: 100%; padding: .78rem 1rem; font-size: .92rem; margin-top: .15rem; }
.fold-form-trust { display: flex; align-items: center; gap: .4rem; margin-top: .65rem; font-size: .72rem; color: var(--ink-mute); }
.fold-form-trust svg { width: 13px; height: 13px; color: #5ec5a0; }
.fold-services { padding: clamp(1.25rem, 3vw, 2rem) var(--pad-x) clamp(1.5rem, 3vw, 2.25rem); max-width: var(--maxw); margin: 0 auto; background: linear-gradient(180deg, transparent 0%, rgba(227,25,55,.02) 100%); }
.fold-services-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem 1rem; margin-bottom: 1rem; }
.fold-services-head h2 { font-size: clamp(1.25rem, 2.2vw, 1.55rem); font-weight: 800; position: relative; padding-bottom: .35rem; }
.fold-services-head h2::after { content: ''; position: absolute; left: 0; bottom: 0; width: 36px; height: 3px; background: var(--accent); border-radius: 2px; }
.fold-services-head p { font-size: .88rem; color: var(--ink-soft); }
.svc-quick-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .9rem; }
.fold-trust-bar .trust-ic { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; flex-shrink: 0; }
.fold-trust-bar .trust-stat { display: flex; align-items: center; gap: .65rem; min-width: 0; }
.fold-trust-bar .trust-ic svg { width: 18px; height: 18px; }
.fold-trust-bar .trust-ic .yr-num { font-family: var(--font-head); font-weight: 800; font-size: .95rem; line-height: 1; }
.fold-trust-bar .trust-ic .yr-num .acc { font-size: .75rem; }
.fold-trust-bar .trust-txt { display: flex; flex-direction: column; line-height: 1.2; min-width: 0; }
.fold-trust-bar .trust-txt strong { font-family: var(--font-head); font-weight: 800; font-size: .88rem; color: var(--ink); }
.fold-trust-bar .trust-txt small { font-size: .72rem; color: var(--ink-mute); font-weight: 500; }
.fold-reviews { padding: clamp(1.5rem, 3vw, 2.25rem) var(--pad-x) clamp(2rem, 4vw, 2.75rem); max-width: var(--maxw); margin: 0 auto; background: var(--bg); }
.fold-reviews-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: 1rem; }
.fold-reviews-head h2 { font-size: clamp(1.2rem, 2vw, 1.45rem); font-weight: 800; }
.fold-reviews-head p { font-size: .88rem; color: var(--ink-soft); max-width: 420px; }
.fold-reviews-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .85rem; }
.fold-review { background: #fff; border: 1px solid var(--line-soft); border-radius: var(--radius); padding: 1.1rem 1.15rem; display: flex; flex-direction: column; }
.fold-review .stars { display: inline-flex; gap: 1px; margin-bottom: .55rem; }
.fold-review .stars svg { width: 14px; height: 14px; color: #F5A623; }
.fold-review blockquote { font-size: .88rem; line-height: 1.5; color: var(--ink); flex-grow: 1; margin-bottom: .75rem; }
.fold-review .who { font-family: var(--font-head); font-weight: 700; font-size: .82rem; color: var(--ink); }
.fold-review .src { font-size: .72rem; color: #00b07a; font-weight: 600; margin-top: .15rem; }

/* Mobile sticky call bar */
.mobile-call-bar { display: none; position: fixed; bottom: 0; left: 0; right: 0; z-index: 900; background: #fff; border-top: 1px solid var(--line-soft); padding: .55rem var(--pad-x); box-shadow: 0 -4px 20px rgba(0,0,0,.08); gap: .5rem; }
.mobile-call-bar a { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: .4rem; font-family: var(--font-head); font-weight: 700; font-size: .88rem; padding: .72rem .85rem; border-radius: var(--radius-sm); text-decoration: none; }
.mobile-call-bar .call { background: var(--accent); color: #fff; }
.mobile-call-bar .quote { background: var(--ink); color: #fff; }

/* legacy hero hidden — kept for JS compat if needed */
.hero { display: none; }

/* ============ SECTION GENERIC ============ */
.section { padding: clamp(3.5rem, 7vw, 6rem) 0; scroll-margin-top: 100px; position: relative; }
.section.tight { padding: clamp(2.5rem, 5vw, 4rem) 0; }
.section-head.center h2::after { content: ''; display: block; width: 52px; height: 3px; background: linear-gradient(90deg, var(--accent), #ff6b7a); border-radius: 2px; margin: .9rem auto 0; }
.services-section { background: var(--surface); border-top: 1px solid var(--line-soft); position: relative; overflow: hidden; }
.services-section::before { content: ''; position: absolute; inset: 0; background-image: repeating-linear-gradient(-12deg, transparent, transparent 38px, rgba(227,25,55,.025) 38px, rgba(227,25,55,.025) 39px); pointer-events: none; opacity: .7; }
.services-section > .container { position: relative; z-index: 1; }

/* Services detail — equal catalog grid */
.services-detail-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.15rem; }
.svc-detail-card { background: #fff; border: 1px solid var(--line-soft); border-radius: var(--radius); overflow: hidden; box-shadow: 0 2px 10px rgba(20,20,20,.04); transition: box-shadow .3s var(--ease), border-color .3s, transform .3s var(--ease); }
.svc-detail-card:hover { box-shadow: 0 14px 36px rgba(20,20,20,.1); border-color: rgba(227,25,55,.22); transform: translateY(-3px); }
.svc-detail-card.is-hero { grid-column: 1 / -1; border-color: rgba(227,25,55,.18); box-shadow: 0 4px 20px rgba(227,25,55,.08); }
.svc-detail-inner { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: inherit; }
.svc-detail-card.is-hero .svc-detail-inner { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); min-height: 0; }
.svc-detail-media { position: relative; height: 196px; overflow: hidden; background: var(--bg); flex-shrink: 0; }
.svc-detail-card.is-hero .svc-detail-media { height: auto; min-height: 260px; }
.svc-detail-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .65s var(--ease); }
.svc-detail-card:hover .svc-detail-media img { transform: scale(1.05); }
.svc-detail-pop { position: absolute; top: .75rem; left: .75rem; z-index: 2; font-family: var(--font-head); font-weight: 700; font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; background: var(--accent); color: #fff; padding: .22rem .55rem; border-radius: 100px; }
.svc-detail-body { padding: 1.15rem 1.25rem 1.25rem; display: flex; flex-direction: column; flex: 1; min-height: 0; }
.svc-detail-card.is-hero .svc-detail-body { padding: clamp(1.25rem, 2.5vw, 1.75rem) clamp(1.25rem, 2.5vw, 1.85rem); justify-content: center; }
.svc-detail-body h3 { font-family: var(--font-head); font-size: 1.08rem; font-weight: 800; line-height: 1.25; margin-bottom: .45rem; color: var(--ink); }
.svc-detail-card.is-hero .svc-detail-body h3 { font-size: clamp(1.25rem, 2vw, 1.55rem); margin-bottom: .55rem; }
.svc-detail-body > p { font-size: .94rem; line-height: 1.55; color: var(--ink-soft); margin-bottom: .75rem; }
.svc-detail-card.is-hero .svc-detail-body > p { font-size: 1rem; max-width: 52ch; }
.svc-detail-bullets { list-style: none; display: flex; flex-direction: column; gap: .38rem; margin: 0 0 .85rem; flex: 1; }
.svc-detail-bullets li { font-size: .86rem; line-height: 1.4; color: var(--ink); font-weight: 500; padding-left: 1.1rem; position: relative; }
.svc-detail-bullets li::before { content: ''; position: absolute; left: 0; top: .48rem; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); }
.svc-detail-link { display: inline-flex; align-items: center; gap: .35rem; margin-top: auto; padding-top: .7rem; border-top: 1px solid var(--line-soft); font-family: var(--font-head); font-weight: 700; font-size: .86rem; color: var(--accent); transition: gap .2s; }
.svc-detail-card:hover .svc-detail-link { gap: .55rem; }
.svc-detail-link svg { width: 14px; height: 14px; flex-shrink: 0; }

/* Services detail — scroll guide arrow */
.services-detail-stage { position: relative; }
.svc-detail-path {
  display: none;
  pointer-events: none;
}
@media (min-width: 960px) {
  .services-detail-stage {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 1.35rem;
    align-items: stretch;
  }
  .svc-detail-path {
    display: block;
    position: relative;
    min-height: 100%;
  }
  .svc-detail-path-track,
  .svc-detail-path-fill {
    position: absolute;
    left: 50%;
    top: 0;
    width: 3px;
    transform: translateX(-50%);
    border-radius: 3px;
  }
  .svc-detail-path-track {
    bottom: 0;
    background: linear-gradient(180deg, rgba(227,25,55,.08) 0%, rgba(227,25,55,.22) 100%);
  }
  .svc-detail-path-fill {
    height: 0;
    background: linear-gradient(180deg, var(--accent), #ff6b7a);
    box-shadow: 0 0 12px rgba(227,25,55,.35);
    transition: height .55s cubic-bezier(.22, 1, .36, 1);
  }
  .svc-detail-pointer {
    position: absolute;
    left: 50%;
    top: 0;
    width: 38px;
    height: 38px;
    margin-left: -19px;
    margin-top: -19px;
    border-radius: 50%;
    background: var(--accent);
    color: #fff;
    display: grid;
    place-items: center;
    box-shadow: 0 6px 22px rgba(227,25,55,.38);
    transform: translateY(var(--svc-pointer-y, 0px));
    transition: transform .55s cubic-bezier(.22, 1, .36, 1);
    z-index: 2;
  }
  .svc-detail-pointer svg { width: 18px; height: 18px; }
  body.has-svc-detail-motion .svc-detail-pointer { animation: svcPointerPulse 2.4s ease-in-out infinite; }
}
@keyframes svcPointerPulse {
  0%, 100% { box-shadow: 0 6px 22px rgba(227,25,55,.38); }
  50% { box-shadow: 0 10px 30px rgba(227,25,55,.55); }
}
body.has-svc-detail-motion .svc-detail-card {
  transition: box-shadow .45s var(--ease), border-color .45s, transform .45s var(--ease);
}
body.has-svc-detail-motion .svc-detail-card.is-spotlight {
  border-color: rgba(227,25,55,.32);
  box-shadow: 0 18px 44px rgba(227,25,55,.14);
  transform: translateY(-4px);
}
body.has-svc-detail-motion .svc-detail-card.is-spotlight .svc-detail-media img {
  transform: scale(1.04);
}
@media (max-width: 959px) {
  body.has-svc-detail-motion .svc-detail-card.is-spotlight {
    transform: translateY(-3px);
  }
}
@media (prefers-reduced-motion: no-preference) {
  body.has-svc-detail-motion .services-section:not(.is-visible) .svc-detail-card {
    opacity: 0;
    transform: translateY(22px);
  }
  body.has-svc-detail-motion .services-section.is-visible .svc-detail-card {
    animation: svcDetailCardIn .65s cubic-bezier(.22, 1, .36, 1) both;
  }
  body.has-svc-detail-motion .services-section.is-visible .svc-detail-card:nth-child(1) { animation-delay: .04s; }
  body.has-svc-detail-motion .services-section.is-visible .svc-detail-card:nth-child(2) { animation-delay: .10s; }
  body.has-svc-detail-motion .services-section.is-visible .svc-detail-card:nth-child(3) { animation-delay: .16s; }
  body.has-svc-detail-motion .services-section.is-visible .svc-detail-card:nth-child(4) { animation-delay: .22s; }
  body.has-svc-detail-motion .services-section.is-visible .svc-detail-card:nth-child(5) { animation-delay: .28s; }
  body.has-svc-detail-motion .services-section.is-visible .svc-detail-card:nth-child(6) { animation-delay: .34s; }
  body.has-svc-detail-motion .services-section.is-visible .svc-detail-card:nth-child(7) { animation-delay: .40s; }
}
@keyframes svcDetailCardIn {
  from { opacity: 0; transform: translateY(22px); }
  to { opacity: 1; transform: none; }
}

.services-cta-strip { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 1.5rem; margin-top: 1.35rem; padding: 1rem 1.25rem; background: var(--ink); color: #fff; border-radius: var(--radius); }
.services-cta-strip p { font-family: var(--font-head); font-weight: 700; font-size: 1.02rem; margin: 0; max-width: 520px; line-height: 1.4; }
.services-cta-strip p span { display: block; font-weight: 500; font-size: .88rem; color: rgba(255,255,255,.7); margin-top: .2rem; }
.services-cta-strip .cta-actions { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.services-cta-strip .cta-phone { font-family: var(--font-head); font-weight: 800; font-size: 1.15rem; color: #fff; display: inline-flex; align-items: center; gap: .45rem; }
.services-cta-strip .cta-phone svg { width: 18px; height: 18px; color: var(--accent); }

/* ============ WHY VICTORIOUS ============ */
.why { background: var(--bg); border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); position: relative; }
.why::before { content: ''; position: absolute; top: 0; right: 0; width: 40%; height: 60%; background: radial-gradient(circle at 80% 20%, rgba(227,25,55,.06) 0%, transparent 55%); pointer-events: none; }
.why-visual { position: relative; }
.why-img { width: 100%; aspect-ratio: 5/4.3; object-fit: cover; border-radius: var(--radius-lg); box-shadow: var(--shadow-md); transition: transform .6s var(--ease), box-shadow .6s; }
.why-visual:hover .why-img { transform: scale(1.02); box-shadow: var(--shadow-lg); }
.why-quote-card { position: absolute; bottom: -24px; right: -16px; left: 16px; background: var(--ink); color: #fff; border-radius: var(--radius); padding: 1.3rem 1.5rem; box-shadow: var(--shadow-lg); max-width: 380px; transition: transform .35s var(--ease), box-shadow .35s; }
.why-visual:hover .why-quote-card { transform: translateY(-4px); box-shadow: 0 24px 56px rgba(20,20,20,.25); }
.why-quote-card blockquote { font-family: var(--font-head); font-weight: 600; font-size: 1.02rem; line-height: 1.45; }
.why-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; position: relative; z-index: 1; }
.why-quote-card cite { display: block; margin-top: .65rem; font-size: .8rem; color: rgba(255,255,255,.65); font-style: normal; font-weight: 500; }
.why-quote-card .mark { font-size: 2.4rem; line-height: 0; color: var(--accent); font-family: Georgia, serif; vertical-align: -.45em; margin-right: .15rem; }
.why-copy h2 { font-size: clamp(1.85rem, 3.5vw, 2.7rem); margin: .75rem 0 1rem; }
.why-copy > p { color: var(--ink-soft); font-size: 1.05rem; margin-bottom: 1.6rem; }
.diffs { display: flex; flex-direction: column; gap: 1.35rem; margin: 1.5rem 0; }
.diff { display: flex; gap: 1rem; padding: .65rem .75rem; margin: -.65rem -.75rem; border-radius: var(--radius-sm); transition: background .25s, transform .25s; }
.diff:hover { background: rgba(227,25,55,.04); transform: translateX(4px); }
.diff .ic { width: 46px; height: 46px; border-radius: 12px; flex-shrink: 0; background: var(--accent-soft); color: var(--accent); display: grid; place-items: center; transition: transform .3s var(--ease), background .3s; }
.diff:hover .ic { transform: scale(1.08); background: var(--accent); color: #fff; }
.diff .ic svg { width: 24px; height: 24px; }
.diff h4 { font-size: 1.06rem; margin-bottom: .25rem; }
.diff p { font-size: .94rem; color: var(--ink-soft); }
.shop-banner { margin-top: 1.6rem; padding: 1.1rem 1.3rem; background: var(--accent-soft); border-radius: var(--radius); border-left: 4px solid var(--accent); display: flex; align-items: center; gap: .9rem; transition: transform .3s var(--ease), box-shadow .3s; }
.shop-banner:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(227,25,55,.12); }
.shop-banner .ic { width: 40px; height: 40px; border-radius: 10px; background: var(--accent); color: #fff; display: grid; place-items: center; flex-shrink: 0; }
.shop-banner .ic svg { width: 22px; height: 22px; }
.shop-banner strong { font-family: var(--font-head); display: block; font-size: .98rem; }
.shop-banner span { font-size: .86rem; color: var(--ink-soft); }

/* ============ HOW WE WORK ============ */
.process-section { background: var(--ink); color: #fff; position: relative; overflow: hidden; }
.process-section::before { content: ''; position: absolute; top: -20%; right: -10%; width: 50%; height: 80%; background: radial-gradient(circle, rgba(227,25,55,.18) 0%, transparent 60%); }
.process-section .section-head h2 { color: #fff; }
.process-section .section-head p { color: rgba(255,255,255,.7); }
.process-section .eyebrow { color: #FF6B7A; }
.process-section .eyebrow .dot { background: #FF6B7A; box-shadow: 0 0 0 4px rgba(255,107,122,.2); }
.steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; position: relative; }
.step { position: relative; padding: 1.85rem 1.5rem 1.6rem; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); border-radius: var(--radius); transition: transform .35s var(--ease), background .35s, border-color .35s, box-shadow .35s; display: flex; flex-direction: column; align-items: flex-start; backdrop-filter: blur(8px); overflow: hidden; }
.step::before { content: ''; position: absolute; top: 0; left: -100%; width: 60%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255,255,255,.08), transparent); transition: left .6s var(--ease); }
.step:hover::before { left: 120%; }
.step:hover { transform: translateY(-8px); background: rgba(227,25,55,.14); border-color: rgba(227,25,55,.45); box-shadow: 0 16px 40px rgba(0,0,0,.25); }
.step .step-head { display: flex; align-items: center; gap: .75rem; margin-bottom: 1rem; width: 100%; }
.step .ic { width: 52px; height: 52px; border-radius: 14px; background: var(--accent); color: #fff; display: grid; place-items: center; flex-shrink: 0; }
.step .ic svg { width: 26px; height: 26px; }
.step .num { font-family: var(--font-head); font-weight: 800; font-size: 2.2rem; color: rgba(255,255,255,.15); margin-left: auto; line-height: 1; }
.step h4 { font-size: 1.12rem; margin-bottom: .5rem; color: #fff; }
.step p { font-size: .92rem; color: rgba(255,255,255,.7); }
/* connector line between steps */
.steps::before { content: ''; position: absolute; top: 48px; left: 12%; right: 12%; height: 2px; background: linear-gradient(90deg, transparent, rgba(227,25,55,.4) 20%, rgba(227,25,55,.4) 80%, transparent); z-index: 0; }
@media (max-width: 1024px) { .steps::before { display: none; } }

/* ============ GALLERY ============ */
.gallery-section { background: var(--trust-band); border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); }
.gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 180px; gap: .85rem; }
.gallery-item { position: relative; overflow: hidden; border-radius: var(--radius); box-shadow: 0 2px 8px rgba(20,20,20,.06); transition: box-shadow .35s, transform .35s; }
.gallery-item:hover { box-shadow: 0 12px 32px rgba(20,20,20,.14); transform: translateY(-2px); }
.gallery-item .gal-stack { position: absolute; inset: 0; }
.gallery-item .gal-slide { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; animation: galCross 24s ease-in-out infinite; }
.gallery-item .gal-slide:nth-child(1) { animation-delay: 0s; }
.gallery-item:not(.gal-cycle) .gal-slide:nth-child(1) { position: relative; opacity: 1; animation: none; }
.gallery-item:not(.gal-cycle) .gal-slide:not(:first-child) { display: none; }
.gallery-item.gal-cycle .gal-slide { position: absolute; animation: galCross 24s ease-in-out infinite; }
.gallery-item.gal-cycle .gal-slide:nth-child(1) { animation-delay: 0s; }
.gallery-item.gal-cycle .gal-slide:nth-child(2) { animation-delay: 8s; }
.gallery-item.gal-cycle .gal-slide:nth-child(3) { animation-delay: 16s; }
@keyframes galCross { 0%, 28% { opacity: 1; transform: scale(1.02); } 33%, 95% { opacity: 0; transform: scale(1.06); } 100% { opacity: 0; } }
.gallery-item .cap { opacity: 1; transform: none; font-size: .82rem; }
.gallery-item img:not(.gal-slide) { width: 100%; height: 100%; object-fit: cover; }
.gallery-item::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(20,20,20,.6) 0%, transparent 50%); opacity: 0; transition: opacity .3s; }
.gallery-item:hover::after { opacity: 1; }
.gallery-item .cap { position: absolute; bottom: .75rem; left: .85rem; right: .85rem; color: #fff; font-family: var(--font-head); font-weight: 600; font-size: .85rem; opacity: 0; transform: translateY(8px); transition: opacity .3s, transform .3s; z-index: 2; }
.gallery-item:hover .cap { opacity: 1; transform: none; }
.gallery-item.tall { grid-row: span 2; }
.gallery-item.wide { grid-column: span 2; }

/* ============ REVIEWS ============ */
.reviews { background: var(--surface); border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); }
.review-platforms { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1rem 2.5rem; margin-bottom: clamp(2rem, 4vw, 3rem); padding-bottom: clamp(2rem, 4vw, 3rem); border-bottom: 1px solid var(--line-soft); }
.platform { display: flex; align-items: center; gap: .9rem; transition: transform .25s; }
.platform:hover { transform: scale(1.03); }
.platform .score { font-family: var(--font-head); font-weight: 800; font-size: 1.9rem; color: var(--ink); line-height: 1; }
.platform .meta { font-size: .82rem; color: var(--ink-soft); }
.platform .meta strong { display: block; color: var(--ink); font-weight: 700; }
.platform .plogo { height: 44px; width: auto; object-fit: contain; }
.platform .plogo-wrap { display: grid; place-items: center; min-width: 52px; }
.review-card .when { display: block; font-size: .72rem; color: var(--ink-mute); margin-top: .15rem; }
.reviews-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
/* Reviews loop slider */
.reviews-track-wrap { overflow: hidden; position: relative; -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); }
.reviews-track { display: flex; gap: 1.25rem; width: max-content; animation: reviewloop 50s linear infinite; }
.reviews-track:hover { animation-play-state: paused; }
@keyframes reviewloop { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.review-card { background: var(--bg); border: 1px solid var(--line-soft); border-radius: var(--radius); padding: 1.5rem; display: flex; flex-direction: column; width: 360px; flex-shrink: 0; transition: transform .35s var(--ease), box-shadow .35s, border-color .35s; }
.review-card .stars { margin-bottom: .85rem; display: inline-flex; gap: 1px; }
.review-card .stars svg { width: 17px; height: 17px; color: #F5A623; }
.review-card blockquote { font-size: .98rem; line-height: 1.55; color: var(--ink); margin-bottom: 1.1rem; flex-grow: 1; }
.review-card .who { display: flex; align-items: center; gap: .75rem; padding-top: 1rem; border-top: 1px solid var(--line-soft); }
.review-card .avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--accent-soft); color: var(--accent); display: grid; place-items: center; font-family: var(--font-head); font-weight: 800; font-size: .9rem; flex-shrink: 0; }
.review-card .who strong { display: block; font-size: .9rem; font-weight: 700; }
.review-card .who span { font-size: .78rem; color: var(--ink-mute); }
.review-card .verified { display: inline-flex; align-items: center; gap: .3rem; font-size: .72rem; color: #00b07a; font-weight: 600; margin-top: .25rem; }
.review-card .verified svg { width: 13px; height: 13px; }
.reviews-cta { text-align: center; margin-top: clamp(2rem, 4vw, 2.75rem); }

/* ============ SERVICE AREAS (skyline mosaic + region grid) ============ */
.areas-section { padding: 0; background: var(--surface); border-top: 1px solid var(--line-soft); }
.areas-header { text-align: center; padding: clamp(3rem,6vw,5rem) var(--pad-x) clamp(1.5rem,3vw,2rem); }
.areas-header .eyebrow { justify-content: center; }
.areas-header h2 { font-size: clamp(1.85rem, 3.6vw, 2.85rem); margin: .75rem 0 .75rem; }
.areas-header p { color: var(--ink-soft); font-size: 1.05rem; max-width: 640px; margin: 0 auto; }
.areas-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 3px; background: var(--ink); }
.area-card { position: relative; aspect-ratio: 5/4; overflow: hidden; text-decoration: none; display: block; transition: transform .35s var(--ease); }
.area-card:hover { transform: scale(1.02); z-index: 2; }
.area-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease), filter .4s; filter: saturate(.95) contrast(1.03) brightness(.95); }
.area-card::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(15,15,15,.82) 0%, rgba(15,15,15,.25) 50%, rgba(15,15,15,.08) 100%); transition: background .3s; }
.area-card:hover img { transform: scale(1.06); filter: saturate(.95) contrast(1.05) brightness(.95); }
.area-card:hover::after { background: linear-gradient(0deg, rgba(227,25,55,.78) 0%, rgba(15,15,15,.35) 55%, rgba(15,15,15,.12) 100%); }
.area-card .area-info { position: absolute; bottom: 0; left: 0; right: 0; z-index: 2; padding: clamp(1rem, 2vw, 1.4rem); color: #fff; }
.area-card .area-info h4 { color: #fff; font-size: clamp(1.05rem, 1.6vw, 1.35rem); font-weight: 800; margin-bottom: .2rem; line-height: 1.1; }
.area-card .area-info p { color: rgba(255,255,255,.82); font-size: .78rem; margin: 0; }
.area-card .area-pin { position: absolute; top: clamp(.65rem, 1.2vw, .85rem); right: clamp(.65rem, 1.2vw, .85rem); z-index: 2; width: 32px; height: 32px; border-radius: 50%; background: rgba(255,255,255,.92); color: var(--accent); display: grid; place-items: center; backdrop-filter: blur(4px); }
.area-card .area-pin svg { width: 15px; height: 15px; }
.reg-grid { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid var(--line); background: var(--bg); }
.reg-col { padding: clamp(1.25rem, 2.5vw, 1.75rem) clamp(1rem, 2vw, 1.5rem); border-right: 1px solid var(--line-soft); transition: background .25s; }
.reg-col:hover { background: rgba(227,25,55,.03); }
.reg-col:last-child { border-right: 0; }
.reg-col h3 { font-family: var(--font-head); font-size: 1rem; font-weight: 800; color: var(--ink); margin-bottom: .65rem; }
.reg-col ul { list-style: none; display: flex; flex-direction: column; gap: .35rem; }
.reg-col li { font-size: .84rem; color: var(--ink-soft); }
.reg-col li::before { content: '·'; color: var(--accent); font-weight: 800; margin-right: .35rem; }
.areas-cta-bar { background: var(--ink); color: #fff; width: 100%; }
.areas-cta-bar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  flex-wrap: wrap;
  padding-top: 1.35rem;
  padding-bottom: 1.35rem;
}
.areas-cta-bar p { font-family: var(--font-head); font-weight: 700; font-size: clamp(1rem, 2vw, 1.25rem); max-width: 640px; margin: 0; }
.areas-note { text-align: center; padding: 1.25rem var(--pad-x) clamp(2rem,4vw,3rem); font-size: .92rem; color: var(--ink-soft); background: var(--bg); }
.areas-note a { color: var(--accent); font-weight: 700; }

/* ============ FINAL CTA + QUOTE FORM ============ */
.cta-section { background: var(--ink); color: #fff; overflow: hidden; position: relative; }
.cta-section::before { content: ''; position: absolute; top: -30%; right: -10%; width: 50%; height: 160%; background: radial-gradient(circle, rgba(227,25,55,.22) 0%, transparent 60%); }
.cta-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; position: relative; }
.cta-copy h2 { color: #fff; font-size: clamp(1.9rem, 3.6vw, 2.8rem); margin-bottom: 1rem; }
.cta-copy p { color: rgba(255,255,255,.8); font-size: 1.08rem; margin-bottom: 1.75rem; max-width: 480px; }
.cta-benefits { list-style: none; display: flex; flex-direction: column; gap: .85rem; margin-bottom: 2rem; }
.cta-benefits li { display: flex; align-items: center; gap: .65rem; font-size: .96rem; }
.cta-benefits svg { width: 20px; height: 20px; color: #5ec5a0; flex-shrink: 0; }
.cta-phone-block { display: inline-flex; align-items: center; gap: .85rem; padding: 1rem 1.4rem; background: rgba(255,255,255,.08); border-radius: var(--radius); border: 1px solid rgba(255,255,255,.15); transition: background .3s, transform .3s, border-color .3s; }
.cta-phone-block:hover { background: rgba(255,255,255,.12); transform: translateY(-2px); border-color: rgba(227,25,55,.4); }
.cta-phone-block .lbl { font-size: .76rem; color: rgba(255,255,255,.65); text-transform: uppercase; letter-spacing: .1em; font-weight: 600; }
.cta-phone-block .num { font-family: var(--font-head); font-weight: 800; font-size: 1.5rem; color: #fff; }
.cta-phone-block svg { width: 26px; height: 26px; color: var(--accent); }
.quote-form { background: #fff; color: var(--ink); border-radius: var(--radius-lg); padding: clamp(1.5rem, 3vw, 2.25rem); box-shadow: var(--shadow-lg); border-top: 4px solid var(--accent); transition: transform .4s var(--ease), box-shadow .4s; }
/* ============ SECTION POLISH — unique identity per block (no scroll-reveal) ============ */
.fold-partners::before { content: ''; position: absolute; inset: 0; opacity: .045; background-image: repeating-linear-gradient(92deg, transparent, transparent 18px, var(--ink) 18px, var(--ink) 19px), repeating-linear-gradient(2deg, transparent, transparent 42px, var(--ink) 42px, var(--ink) 43px); pointer-events: none; }
.fold-partners > * { position: relative; z-index: 1; }
.fold-partners-grid a { opacity: 0; animation: partnerIn .55s var(--ease-out) forwards; }
.fold-partners-grid a:nth-child(1) { animation-delay: .45s; }
.fold-partners-grid a:nth-child(2) { animation-delay: .52s; }
.fold-partners-grid a:nth-child(3) { animation-delay: .59s; }
.fold-partners-grid a:nth-child(4) { animation-delay: .66s; }
.fold-partners-grid a:nth-child(5) { animation-delay: .73s; }
.fold-partners-grid a:nth-child(6) { animation-delay: .8s; }
.fold-partners-grid .partner-badge { animation: partnerIn .55s .88s var(--ease-out) forwards; opacity: 0; }
@keyframes partnerIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.fold-cred-list li svg { animation: checkDraw .6s var(--ease-out) both; }
.fold-cred-list li:nth-child(1) svg { animation-delay: .95s; }
.fold-cred-list li:nth-child(2) svg { animation-delay: 1.02s; }
.fold-cred-list li:nth-child(3) svg { animation-delay: 1.09s; }
.fold-cred-list li:nth-child(4) svg { animation-delay: 1.16s; }
.fold-cred-list li:nth-child(5) svg { animation-delay: 1.23s; }
.fold-cred-list li:nth-child(6) svg { animation-delay: 1.3s; }
@keyframes checkDraw { from { opacity: 0; transform: scale(.6); } to { opacity: 1; transform: none; } }
.fold-mini-stat .num[data-count] { font-variant-numeric: tabular-nums; }

/* Showroom swatch strip */
.fold-services { border-top: 1px solid var(--line-soft); position: relative; overflow: hidden; }
.fold-services::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 80% 60% at 50% 100%, rgba(227,25,55,.06) 0%, transparent 70%);
  pointer-events: none;
}
.fold-services-head { position: relative; z-index: 1; }
.fold-services-head h2::after { width: 36px; transition: width .65s .15s cubic-bezier(.22, 1, .36, 1); }
.svc-quick-grid { position: relative; z-index: 1; }
.svc-quick {
  position: relative;
  display: flex;
  text-decoration: none;
  background: #fff;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  box-shadow: 0 2px 8px rgba(20,20,20,.05);
  transition: box-shadow .4s var(--ease), border-color .35s, transform .4s var(--ease);
  flex-direction: column;
  align-items: stretch;
  padding: 0;
  min-height: clamp(156px, 19vw, 184px);
  overflow: hidden;
  gap: 0;
}
.svc-quick .sq-thumb {
  position: relative;
  flex: 1 1 auto;
  height: clamp(96px, 13vw, 124px);
  min-height: 96px;
  overflow: hidden;
  background: var(--bg);
}
.svc-quick .sq-thumb::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 35%, rgba(20,20,20,.22) 100%);
  pointer-events: none;
  opacity: .75;
  transition: opacity .35s;
  z-index: 1;
}
.svc-quick .sq-thumb img, .svc-quick .sq-thumb .sq-ic { width: 100%; height: 100%; border-radius: 0; object-fit: cover; transition: transform .65s var(--ease); }
.svc-quick .sq-thumb .sq-ic { display: grid; place-items: center; background: linear-gradient(145deg, var(--accent-soft) 0%, rgba(227,25,55,.08) 100%); }
.svc-quick .sq-thumb .sq-ic svg { width: 28px; height: 28px; color: var(--accent); }
.svc-quick .sq-label {
  padding: .72rem .9rem .85rem;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: clamp(.78rem, 1.05vw, .86rem);
  line-height: 1.3;
  color: var(--ink);
  border-top: 3px solid var(--accent);
  background: #fff;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  min-height: 3.25rem;
  transition: color .25s, background .25s;
}
.svc-quick::before {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, var(--accent), #ff6b7a);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .45s var(--ease);
  z-index: 2;
}
.svc-quick:hover .sq-thumb img { transform: scale(1.12); }
.svc-quick:hover .sq-thumb::after { opacity: 1; }
.svc-quick:hover {
  border-color: rgba(227,25,55,.35);
  transform: translateY(-5px);
  box-shadow: 0 14px 34px rgba(227,25,55,.14);
}
.svc-quick:hover::before { transform: scaleX(1); }
.svc-quick:hover .sq-label { color: var(--accent); }

@media (prefers-reduced-motion: no-preference) {
  body.has-fold-motion .fold-services:not(.is-visible) .fold-services-head { opacity: 0; transform: translateY(16px); }
  body.has-fold-motion .fold-services.is-visible .fold-services-head { animation: foldSvcHeadIn .75s cubic-bezier(.22, 1, .36, 1) both; }
  body.has-fold-motion .fold-services:not(.is-visible) .svc-quick {
    opacity: 0;
    transform: perspective(900px) rotateX(10deg) translateY(28px) scale(.95);
  }
  body.has-fold-motion .fold-services.is-visible .svc-quick { animation: foldSvcCardIn .72s cubic-bezier(.22, 1, .36, 1) both; }
  body.has-fold-motion .fold-services.is-visible .svc-quick:nth-child(1) { animation-delay: .06s; }
  body.has-fold-motion .fold-services.is-visible .svc-quick:nth-child(2) { animation-delay: .12s; }
  body.has-fold-motion .fold-services.is-visible .svc-quick:nth-child(3) { animation-delay: .18s; }
  body.has-fold-motion .fold-services.is-visible .svc-quick:nth-child(4) { animation-delay: .24s; }
  body.has-fold-motion .fold-services.is-visible .svc-quick:nth-child(5) { animation-delay: .30s; }
  body.has-fold-motion .fold-services.is-visible .svc-quick:nth-child(6) { animation-delay: .36s; }
  body.has-fold-motion .fold-services.is-visible .svc-quick:nth-child(7) { animation-delay: .42s; }
  body.has-fold-motion .fold-services.is-visible .svc-quick:nth-child(8) { animation-delay: .48s; }
  body.has-fold-motion .fold-services-head h2::after { width: 0; }
  body.has-fold-motion .fold-services.is-visible .fold-services-head h2::after { width: 36px; }
}
@keyframes foldSvcHeadIn { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes foldSvcCardIn { from { opacity: 0; transform: perspective(900px) rotateX(10deg) translateY(28px) scale(.95); } to { opacity: 1; transform: none; } }
html.a11y-motion .fold-services .fold-services-head,
html.a11y-motion .fold-services .svc-quick { opacity: 1 !important; transform: none !important; animation: none !important; }
html.a11y-motion .fold-services-head h2::after { width: 36px; }
html.a11y-motion .svc-detail-card { opacity: 1 !important; transform: none !important; animation: none !important; }
html.a11y-motion .svc-detail-pointer { animation: none !important; }

/* Trust ribbon */
.fold-trust-bar { background: var(--ink); border: 0; }
.fold-trust-bar-inner { max-width: var(--maxw); margin: 0 auto; padding: .85rem var(--pad-x); display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0; }
.fold-trust-bar .trust-stat { flex: 1 1 auto; max-width: none; background: transparent; border: 0; border-radius: 0; padding: .35rem 1.25rem; color: #fff; animation: trustBreathe 4s ease-in-out infinite; }
.fold-trust-bar .trust-stat:nth-child(2) { animation-delay: -.8s; }
.fold-trust-bar .trust-stat:nth-child(3) { animation-delay: -1.6s; }
.fold-trust-bar .trust-stat:nth-child(4) { animation-delay: -2.4s; }
.fold-trust-bar .trust-stat:nth-child(5) { animation-delay: -3.2s; }
@keyframes trustBreathe { 0%, 100% { opacity: 1; } 50% { opacity: .82; } }
.fold-trust-bar .trust-stat + .trust-stat { border-left: 1px solid rgba(255,255,255,.12); }
.fold-trust-bar .trust-stat:hover { transform: none; box-shadow: none; opacity: 1; }
.fold-trust-bar .trust-ic { background: rgba(255,255,255,.1); color: #fff; }
.fold-trust-bar .trust-ic .yr-num { color: #fff; }
.fold-trust-bar .trust-txt strong { color: #fff; }
.fold-trust-bar .trust-txt small { color: rgba(255,255,255,.65); }


/* Why manifesto timeline */
.why-quote-card { animation: quoteFloat 6s ease-in-out infinite; }
@keyframes quoteFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
.why-visual:hover .why-quote-card { animation-play-state: paused; transform: translateY(-4px); }
.why-visual::after { content: ''; position: absolute; inset: 0; border-radius: var(--radius-lg); background: radial-gradient(circle at 30% 20%, transparent 40%, rgba(20,20,20,.1) 100%); pointer-events: none; }
.diffs { border-left: 2px solid rgba(227,25,55,.2); padding-left: 1.25rem; margin-left: .35rem; }
.diff { position: relative; padding-left: .5rem; }
.diff::before { content: attr(data-step); position: absolute; left: -2.15rem; top: .15rem; font-family: var(--font-head); font-weight: 800; font-size: .72rem; color: var(--accent); letter-spacing: .04em; }
.diff:hover { background: rgba(227,25,55,.04); padding-left: .75rem; }
.shop-banner { background: linear-gradient(135deg, var(--accent-soft) 0%, #fff 100%); }
.shop-banner .ic { animation: vanBob 3s ease-in-out infinite; }
@keyframes vanBob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }

/* Process journey */
.steps::before { background: linear-gradient(90deg, transparent, rgba(227,25,55,.5) 25%, rgba(227,25,55,.5) 75%, transparent); background-size: 200% 100%; animation: dashSlide 4s linear infinite; }
@keyframes dashSlide { from { background-position: 100% 0; } to { background-position: -100% 0; } }
.step:nth-child(1) .ic { background: #F5A623; }
.step:nth-child(2) .ic { background: rgba(255,255,255,.92); color: var(--ink); }
.step:nth-child(3) .ic { background: var(--accent); }
.step:nth-child(4) .ic { background: #22a06b; }
.step:hover p { max-height: 4em; opacity: 1; }
.step p { transition: opacity .3s; }
.step .num { font-size: 1.75rem; color: rgba(255,255,255,.22); }

/* Gallery portfolio wall */
.gallery-section { background: #eae6df; }
.gallery-grid { gap: 6px; background: var(--ink); padding: 6px; border-radius: var(--radius); }
.gallery-item .cap { backdrop-filter: blur(8px); background: rgba(20,20,20,.35); border-radius: 6px; padding: .35rem .5rem; left: .65rem; right: .65rem; bottom: .65rem; }

/* Reviews medals */
.reviews { position: relative; overflow: hidden; }
.reviews::before { content: '1,000+'; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-family: var(--font-head); font-weight: 800; font-size: clamp(6rem, 18vw, 12rem); color: rgba(227,25,55,.04); pointer-events: none; white-space: nowrap; }
.review-platforms { gap: 1.5rem; }
.platform { background: #fff; border: 1px solid var(--line-soft); border-radius: var(--radius); padding: 1rem 1.35rem; box-shadow: var(--shadow-sm); min-width: 240px; }
.platform.platform-google { border-top: 4px solid #F5A623; }
.platform.platform-hs { border-top: 4px solid var(--accent); }
.review-card { transform: rotate(0deg); transition: transform .35s var(--ease), box-shadow .35s; }
.review-card:hover { transform: rotate(-.6deg) translateY(-3px); box-shadow: 0 12px 32px rgba(20,20,20,.1); border-color: rgba(227,25,55,.15); }

/* Areas region accents */
.reg-col:nth-child(1) { border-top: 3px solid var(--accent); }
.reg-col:nth-child(2) { border-top: 3px solid #F5A623; }
.reg-col:nth-child(3) { border-top: 3px solid #6366f1; }
.reg-col:nth-child(4) { border-top: 3px solid #22a06b; }
.reg-col:nth-child(5) { border-top: 3px solid #0ea5e9; }
.area-card:hover .area-pin { animation: pinBounce .45s var(--ease-out); }
@keyframes pinBounce { 0%, 100% { transform: translateY(0); } 40% { transform: translateY(-5px); } 70% { transform: translateY(2px); } }
.areas-cta-bar { position: relative; overflow: hidden; }
.areas-cta-bar::before { content: ''; position: absolute; right: 5%; top: 50%; transform: translateY(-50%); width: 180px; height: 120px; opacity: .06; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 80' fill='none' stroke='white' stroke-width='2'%3E%3Cpath d='M10 65 L25 45 L40 55 L55 35 L70 50 L85 30 L100 40 L110 25'/%3E%3Ccircle cx='55' cy='35' r='4' fill='white'/%3E%3C/svg%3E") center/contain no-repeat; pointer-events: none; }

/* Final CTA closing room */
.cta-section::after { content: ''; position: absolute; inset: 0; opacity: .035; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); pointer-events: none; }
.cta-lockup { font-family: var(--font-head); font-weight: 800; font-size: clamp(2.5rem, 5vw, 4rem); line-height: 1; color: rgba(255,255,255,.08); margin-bottom: 1rem; letter-spacing: -.03em; }
.cta-lockup em { font-style: normal; color: rgba(227,25,55,.35); }
.cta-phone-block { animation: phoneGlow 3.5s ease-in-out infinite; }
@keyframes phoneGlow { 0%, 100% { box-shadow: 0 0 0 0 rgba(227,25,55,0); } 50% { box-shadow: 0 0 0 6px rgba(227,25,55,.12); } }
.quote-form { position: relative; z-index: 1; }

/* Services detail grid responsive */
@media (max-width: 1024px) {
  .services-detail-grid { grid-template-columns: repeat(2, 1fr); }
  .svc-detail-card.is-hero .svc-detail-inner { grid-template-columns: 1fr; }
  .svc-detail-card.is-hero .svc-detail-media { min-height: 220px; height: 220px; }
  .services-cta-strip { flex-direction: column; text-align: center; }
  .services-cta-strip .cta-actions { justify-content: center; }
  .warranty-grid { grid-template-columns: repeat(2, 1fr); }
  .faq-layout { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .fold-trust-bar .trust-stat + .trust-stat { border-left: 0; border-top: 1px solid rgba(255,255,255,.1); }
  .fold-trust-bar-inner { gap: .5rem; }
  .platform { min-width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .fold-bg .orb, .fold-bg .fold-particles, .fold-bg .fold-side-glow, .fold-photo-wrap .fold-photo, .fold-cta .btn-primary, .fold-copy h1, .fold-copy h1 .hl, .fold-lead, .fold-aside, .fold-photo-badge, .fold-photo-dots span, .fold-form, .fold-partners-grid a, .fold-partners-grid .partner-badge, .fold-cred-list li svg, .why-quote-card, .shop-banner .ic, .steps::before, .fold-trust-bar .trust-stat, .cta-phone-block, .gal-slide, .fold-services.is-visible .fold-services-head, .fold-services.is-visible .svc-quick { animation: none !important; }
  .fold-services .fold-services-head, .fold-services .svc-quick { opacity: 1; transform: none; }
  body.has-fold-motion .fold-services.is-visible .fold-services-head,
  body.has-fold-motion .fold-services.is-visible .svc-quick { animation: none !important; }
  body.has-svc-detail-motion .services-section.is-visible .svc-detail-card { animation: none !important; }
  body.has-svc-detail-motion .svc-detail-card { opacity: 1; transform: none; }
  body.has-svc-detail-motion .svc-detail-pointer { animation: none !important; }
  .svc-detail-path-fill { transition: none; }
  .fold-bg .fold-particles { opacity: .2; }
  .fold-bg .orb { opacity: .25; }
  .gal-slide { opacity: 0; }
  .gal-slide:first-child { opacity: 1; position: relative; }
  .fold-partners-grid a, .fold-partners-grid .partner-badge { opacity: 1; }
  .fold-photo-wrap .fold-photo { opacity: 1; position: relative; transform: none !important; }
  .fold-photo-wrap .fold-photo:not(:first-child) { display: none; }
}
.quote-form h3 { font-size: 1.45rem; margin-bottom: .35rem; }
.quote-form .sub { font-size: .92rem; color: var(--ink-soft); margin-bottom: 1.5rem; }
.field { margin-bottom: 1rem; }
.field label { display: block; font-family: var(--font-head); font-weight: 600; font-size: .82rem; margin-bottom: .4rem; color: var(--ink); }
.field input, .field select, .field textarea { width: 100%; padding: .8rem .95rem; border: 1.5px solid var(--line); border-radius: var(--radius-sm); font-family: var(--font-body); font-size: .95rem; color: var(--ink); background: var(--bg); transition: border-color .2s, box-shadow .2s; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(227,25,55,.12); }
.field textarea { resize: vertical; min-height: 80px; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.quote-form .btn { width: 100%; margin-top: .35rem; }
.form-trust { display: flex; align-items: center; gap: .5rem; margin-top: 1rem; font-size: .78rem; color: var(--ink-mute); }
.form-trust svg { width: 15px; height: 15px; color: #5ec5a0; }

/* ============ FOOTER (full-width) ============ */
.footer { background: #0E0E0E; color: rgba(255,255,255,.7); padding: clamp(3rem, 5vw, 4rem) 0 1.5rem; }
.footer-grid { display: grid; grid-template-columns: 1.5fr repeat(5, 1fr); gap: 1.75rem; padding-bottom: 2.5rem; border-bottom: 1px solid rgba(255,255,255,.1); }
.footer-brand .brand-logo { height: 52px; margin-bottom: 1.1rem; background: #fff; padding: 8px 14px; border-radius: 10px; width: auto; }
.footer-brand p { font-size: .92rem; line-height: 1.6; max-width: 320px; margin-bottom: 1.25rem; }
.footer-brand .footer-badges { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.25rem; }
.footer-brand .footer-badges img { height: 36px; width: auto; border-radius: 6px; }
.footer-trust-row { display: flex; flex-wrap: wrap; gap: .5rem .85rem; margin-top: 1rem; }
.footer-trust-row span { display: inline-flex; align-items: center; gap: .35rem; font-size: .78rem; color: rgba(255,255,255,.65); font-weight: 500; }
.footer-trust-row svg { width: 15px; height: 15px; color: var(--accent); flex-shrink: 0; }
.footer-cert-band { background: rgba(255,255,255,.04); border-top: 1px solid rgba(255,255,255,.08); padding: 1.1rem 0; margin-top: 2rem; }
.footer-cert-band .container { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: clamp(1rem, 3vw, 2.5rem); }
.footer-cert-band img { height: 42px; width: auto; max-width: 140px; object-fit: contain; opacity: .92; filter: none; background: #fff; padding: 6px 10px; border-radius: 8px; }
.footer-cert-band img:hover { opacity: 1; transform: scale(1.03); transition: transform .2s, opacity .2s; }
.warranty-section { background: linear-gradient(180deg, var(--surface) 0%, var(--bg) 100%); border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); }
.warranty-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.warranty-card { background: #fff; border: 1px solid var(--line-soft); border-radius: var(--radius); padding: 1.35rem 1.2rem; text-align: center; transition: box-shadow .3s, border-color .3s; }
.warranty-card:hover { box-shadow: var(--shadow-md); border-color: rgba(227,25,55,.2); }
.warranty-card .w-ic { width: 52px; height: 52px; border-radius: 14px; background: var(--accent-soft); color: var(--accent); display: grid; place-items: center; margin: 0 auto .85rem; }
.warranty-card .w-ic svg { width: 26px; height: 26px; }
.warranty-card h4 { font-size: 1rem; margin-bottom: .4rem; }
.warranty-card p { font-size: .88rem; color: var(--ink-soft); line-height: 1.45; margin: 0; }

/* ============ FAQ ============ */
.faq-section { background: var(--bg); border-bottom: 1px solid var(--line-soft); }
.faq-layout { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(2rem, 4vw, 3.5rem); align-items: start; }
.faq-intro h2 { font-size: clamp(1.75rem, 3vw, 2.4rem); margin: .65rem 0 .75rem; }
.faq-intro p { color: var(--ink-soft); font-size: 1.02rem; margin-bottom: 1.25rem; }
.faq-intro .btn { margin-top: .25rem; }
.faq-list { display: flex; flex-direction: column; gap: .55rem; }
.faq-item { background: #fff; border: 1px solid var(--line-soft); border-radius: var(--radius-sm); overflow: hidden; }
.faq-item summary { font-family: var(--font-head); font-weight: 700; font-size: .95rem; padding: 1rem 1.15rem; cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: '+'; font-size: 1.25rem; color: var(--accent); font-weight: 800; line-height: 1; flex-shrink: 0; }
.faq-item[open] summary::after { content: '−'; }
.faq-item[open] summary { border-bottom: 1px solid var(--line-soft); color: var(--accent-dk); }
.faq-item .faq-a { padding: .85rem 1.15rem 1.1rem; font-size: .92rem; color: var(--ink-soft); line-height: 1.55; }
.footer-social { display: flex; gap: .6rem; }
.footer-social a { width: 38px; height: 38px; border-radius: 10px; background: rgba(255,255,255,.08); display: grid; place-items: center; transition: background .2s, transform .2s; }
.footer-social a:hover { background: var(--accent); transform: translateY(-2px); }
.footer-social svg { width: 18px; height: 18px; }
.footer-col h4 { color: #fff; font-size: .82rem; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 1.1rem; font-weight: 700; }
.footer-col ul { list-style: none; display: flex; flex-direction: column; gap: .6rem; }
.footer-col a { font-size: .9rem; transition: color .2s; }
.footer-col a:hover { color: var(--accent); }
.footer-contact li { display: flex; gap: .6rem; font-size: .9rem; margin-bottom: .65rem; align-items: flex-start; }
.footer-contact svg { width: 17px; height: 17px; color: var(--accent); flex-shrink: 0; margin-top: 2px; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; padding-top: 1.75rem; font-size: .82rem; color: rgba(255,255,255,.5); }
.footer-bottom a { color: rgba(255,255,255,.6); }
.footer-bottom a:hover { color: var(--accent); }

/* ============ ACCESSIBILITY WIDGET (bottom-left) ============ */
.a11y-fab { position: fixed; bottom: 1.5rem; left: 1.5rem; z-index: 299; width: 52px; height: 52px; border-radius: 50%; background: var(--ink); color: #fff; display: grid; place-items: center; box-shadow: 0 6px 22px rgba(20,20,20,.22); border: 2px solid rgba(255,255,255,.15); transition: transform .25s var(--ease), background .2s; }
.a11y-fab:hover { transform: scale(1.06); background: #2a2a2a; }
.a11y-fab svg { width: 26px; height: 26px; }
.a11y-fab[aria-expanded="true"] { background: var(--accent); border-color: var(--accent); }
.a11y-panel { position: fixed; bottom: 5.25rem; left: 1.5rem; z-index: 299; width: min(280px, calc(100vw - 2rem)); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-lg); padding: 0; display: none; flex-direction: column; overflow: hidden; }
.a11y-panel.is-open { display: flex; animation: chatin .28s var(--ease-out); }
.a11y-panel-head { display: flex; align-items: center; justify-content: space-between; padding: .85rem 1rem; border-bottom: 1px solid var(--line-soft); background: var(--bg); }
.a11y-panel-head strong { font-family: var(--font-head); font-size: .92rem; }
.a11y-panel-close { width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center; color: var(--ink-soft); transition: background .2s; }
.a11y-panel-close:hover { background: var(--line-soft); color: var(--ink); }
.a11y-panel-close svg { width: 16px; height: 16px; }
.a11y-actions { display: flex; flex-direction: column; padding: .5rem; gap: .25rem; }
.a11y-actions button { display: flex; align-items: center; gap: .65rem; width: 100%; text-align: left; padding: .65rem .75rem; border-radius: var(--radius-sm); font-family: var(--font-head); font-weight: 600; font-size: .86rem; color: var(--ink); transition: background .2s; }
.a11y-actions button:hover { background: var(--accent-soft); color: var(--accent-dk); }
.a11y-actions button.is-on { background: var(--accent-soft); color: var(--accent); box-shadow: inset 0 0 0 1.5px rgba(227,25,55,.25); }
.a11y-actions button svg { width: 18px; height: 18px; flex-shrink: 0; color: var(--accent); }
.a11y-actions .a11y-reset { margin-top: .25rem; border-top: 1px solid var(--line-soft); border-radius: 0 0 var(--radius-sm) var(--radius-sm); padding-top: .75rem; color: var(--ink-soft); font-weight: 600; }
.a11y-actions .a11y-reset svg { color: var(--ink-mute); }
.a11y-text-row { display: grid; grid-template-columns: 1fr 1fr; gap: .25rem; padding: 0 .5rem .25rem; }
.a11y-text-row button { justify-content: center; font-size: .82rem; padding: .55rem; }

/* ============ AI CHATBOT WIDGET ============ */
.chat-fab { position: fixed; bottom: 1.5rem; right: 1.5rem; z-index: 300; width: 60px; height: 60px; border-radius: 50%; background: var(--accent); color: #fff; display: grid; place-items: center; box-shadow: 0 8px 28px rgba(227,25,55,.4); cursor: pointer; transition: transform .25s var(--ease); animation: chatpulse 2.5s ease-in-out infinite; }
.chat-fab:hover { transform: scale(1.08); }
.chat-fab svg { width: 28px; height: 28px; }
.chat-fab .badge-dot { position: absolute; top: 4px; right: 4px; width: 14px; height: 14px; border-radius: 50%; background: #5ec5a0; border: 2px solid var(--accent); }
@keyframes chatpulse { 0%,100%{box-shadow:0 8px 28px rgba(227,25,55,.4);} 50%{box-shadow:0 8px 36px rgba(227,25,55,.6);} }
.chat-fab.is-open { display: none; }
.chat-window { position: fixed; bottom: 1.5rem; right: 1.5rem; z-index: 301; width: min(380px, calc(100vw - 2rem)); max-height: min(560px, calc(100vh - 3rem)); background: #fff; border-radius: 18px; box-shadow: 0 24px 60px rgba(20,20,20,.25); display: none; flex-direction: column; overflow: hidden; border: 1px solid var(--line); }
.chat-window.is-open { display: flex; animation: chatin .3s var(--ease-out); }
@keyframes chatin { from { opacity: 0; transform: translateY(16px) scale(.96); } to { opacity: 1; transform: none; } }
.chat-head { background: var(--accent); color: #fff; padding: 1rem 1.25rem; display: flex; align-items: center; gap: .75rem; }
.chat-head .avatar { width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,.2); display: grid; place-items: center; flex-shrink: 0; }
.chat-head .avatar svg { width: 22px; height: 22px; }
.chat-head .info strong { display: block; font-family: var(--font-head); font-weight: 700; font-size: .98rem; }
.chat-head .info span { font-size: .74rem; opacity: .9; display: flex; align-items: center; gap: .3rem; }
.chat-head .info span::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: #5ec5a0; }
.chat-close { margin-left: auto; width: 32px; height: 32px; border-radius: 8px; background: rgba(255,255,255,.15); display: grid; place-items: center; cursor: pointer; color: #fff; }
.chat-close svg { width: 18px; height: 18px; }
.chat-body { flex: 1; overflow-y: auto; padding: 1.25rem; display: flex; flex-direction: column; gap: .85rem; background: var(--bg); }
.chat-msg { max-width: 82%; padding: .75rem 1rem; border-radius: 14px; font-size: .9rem; line-height: 1.5; }
.chat-msg.bot { background: #fff; border: 1px solid var(--line-soft); border-bottom-left-radius: 4px; align-self: flex-start; }
.chat-msg.user { background: var(--accent); color: #fff; border-bottom-right-radius: 4px; align-self: flex-end; }
.chat-quick { display: flex; flex-wrap: wrap; gap: .5rem; padding: 0 1.25rem .75rem; background: var(--bg); }
.chat-quick button { font-family: var(--font-head); font-weight: 600; font-size: .8rem; padding: .5rem .85rem; border-radius: 100px; background: #fff; border: 1px solid var(--accent); color: var(--accent); cursor: pointer; transition: background .2s, color .2s; }
.chat-quick button:hover { background: var(--accent); color: #fff; }
.chat-input { display: flex; gap: .5rem; padding: .85rem; border-top: 1px solid var(--line-soft); background: #fff; align-items: center; }
.chat-attach-btn { width: 42px; height: 42px; border-radius: 50%; background: #fff; border: 1.5px solid var(--line); color: var(--ink-soft); display: grid; place-items: center; cursor: pointer; flex-shrink: 0; transition: border-color .2s, color .2s; }
.chat-attach-btn:hover { border-color: var(--accent); color: var(--accent); }
.chat-attach-btn svg { width: 18px; height: 18px; }
.chat-attach-zone { padding: .75rem 1rem; background: #fff7f8; border-top: 1px dashed rgba(227,25,55,.35); text-align: center; }
.chat-attach-zone.is-drag { background: #ffe8ec; border-color: var(--accent); }
.chat-attach-zone p { margin: 0; font-size: .78rem; color: var(--ink-soft); line-height: 1.45; }
.chat-handoff { padding: 0 .25rem; }
.chat-handoff-btn { width: 100%; margin-top: .35rem; padding: .65rem .85rem; border-radius: 999px; border: none; background: var(--accent); color: #fff; font-weight: 700; font-size: .82rem; cursor: pointer; }
.chat-handoff-btn:hover { filter: brightness(1.05); }
.chat-prefill-note { color: var(--accent); font-weight: 600; margin-bottom: .65rem !important; }
.fold-form .field textarea { width: 100%; padding: .65rem .8rem; font-size: .9rem; background: var(--bg); border: 1px solid var(--line-soft); border-radius: var(--radius); resize: vertical; min-height: 3.2rem; font-family: inherit; }
.chat-msg.has-image { padding: .5rem; background: #fff; border: 1px solid var(--line-soft); }
.chat-msg.has-image img { display: block; max-width: 200px; max-height: 160px; border-radius: 10px; object-fit: cover; }
.chat-msg.has-image .chat-msg-caption { padding: .45rem .5rem 0; font-size: .85rem; line-height: 1.45; }
.chat-msg.user.has-image { background: var(--accent); border-color: transparent; }
.chat-msg.user.has-image .chat-msg-caption { color: #fff; }
.chat-input input { flex: 1; padding: .7rem .9rem; border: 1.5px solid var(--line); border-radius: 100px; font-family: var(--font-body); font-size: .9rem; }
.chat-input input:focus { outline: none; border-color: var(--accent); }
.chat-input button { width: 42px; height: 42px; border-radius: 50%; background: var(--accent); color: #fff; display: grid; place-items: center; cursor: pointer; flex-shrink: 0; transition: transform .2s; }
.chat-input button:hover { transform: scale(1.05); }
.chat-input button svg { width: 18px; height: 18px; }

/* ============ RESPONSIVE ============ */
@media (max-width: 1100px) {
  .footer-grid { grid-template-columns: 1.6fr 1fr 1fr; }
  .footer-grid .footer-col:nth-child(n+5) { grid-column: span 1; }
}
@media (max-width: 1024px) {
  .fold-top { grid-template-columns: 1fr; align-items: start; }
  .fold-partners { min-height: 0; }
  .fold-aside { height: auto; }
  .fold-visual { min-height: auto; height: auto; }
  .fold-photo-wrap { flex: none; aspect-ratio: 16/10; max-height: 320px; min-height: auto; }
  .fold-form-overlay { margin-top: 0; padding-top: .85rem; }
  .fold-partners-grid { grid-template-columns: repeat(2, 1fr); }
  .fold-mini-stats { max-width: none; }
  .svc-quick-grid { grid-template-columns: repeat(2, 1fr); }
  .fold-reviews-grid { grid-template-columns: 1fr; }
  .nav-inner .nav { display: none; }
  .header-bar .btn { display: none; }
  .header-trust-pill { display: none; }
  .menu-btn { display: flex; }
  .nav-inner { justify-content: flex-end; }
  .gallery-grid { grid-template-columns: repeat(3, 1fr); }
  .why-grid { grid-template-columns: 1fr; }
  .why-visual { max-width: 500px; }
  .steps { grid-template-columns: repeat(2, 1fr); }
  .cta-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .reg-grid { grid-template-columns: repeat(3, 1fr); }
  .reg-col:nth-child(3) { border-right: 0; }
  .reg-col:nth-child(4), .reg-col:nth-child(5) { border-top: 1px solid var(--line-soft); }
  .dropdown.wide { min-width: 280px; grid-template-columns: 1fr; }
  .mega, .nav-item .mega, .nav-item .dropdown { display: none !important; }
}
@media (max-width: 820px) {
  .header-phone span:not(.ph-ic) { display: none; }
  .hero h1 { font-size: clamp(2rem, 7vw, 2.8rem); }
}
@media (max-width: 680px) {
  .svc-quick-grid { grid-template-columns: 1fr; }
  .fold-cta .btn-lg { width: 100%; justify-content: center; }
  .fold-reviews-grid { grid-template-columns: 1fr; }
  .mobile-call-bar { display: flex; }
  body { font-size: 16px; padding-bottom: 4.5rem; }
  .header-bar { padding: .55rem var(--pad-x); }
  .services-detail-grid { grid-template-columns: 1fr; }
  .svc-detail-card.is-hero .svc-detail-media { min-height: 200px; height: 200px; }
  .warranty-grid { grid-template-columns: 1fr; }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 150px; }
  .reviews-grid { grid-template-columns: 1fr; }
  .areas-grid { grid-template-columns: repeat(2, 1fr); }
  .area-card { aspect-ratio: 1/1; }
  .reg-grid { grid-template-columns: 1fr 1fr; }
  .reg-col { border-right: 0; border-bottom: 1px solid var(--line-soft); }
  .reg-col:nth-child(odd) { border-right: 1px solid var(--line-soft); }
  .trust-band-inner { justify-content: center; }
  .trust-band-stats { justify-content: center; }
  .footer-grid { grid-template-columns: 1fr; gap: 1.75rem; }
  .field-row { grid-template-columns: 1fr; }
  .why-quote-card { position: static; margin-top: 1rem; max-width: none; }
  .review-platforms { gap: 1.25rem; }
  .hero-dots { bottom: 2.5rem; }
  .chat-fab { width: 54px; height: 54px; bottom: 1rem; right: 1rem; }
  .chat-window { bottom: 1rem; right: .5rem; left: auto; width: auto; max-width: calc(100vw - 1rem); }
  .a11y-fab { width: 48px; height: 48px; bottom: 1rem; left: 1rem; }
  .a11y-panel { bottom: 4.5rem; left: 1rem; width: min(280px, calc(100vw - 2rem)); }
  .fold-bg .fold-particles { opacity: .4; }
  .fold-bg .orb { opacity: .55; filter: blur(36px); }
  .areas-cta-bar-inner { justify-content: center; text-align: center; }
}
@media (max-width: 460px) {
  .gallery-grid { grid-template-columns: 1fr; }
  .hero-content { text-align: center; }
  .hero-cta { justify-content: center; }
  .reg-grid { grid-template-columns: 1fr; }
  .reg-col:nth-child(odd) { border-right: 0; }
}

/* ============ MOBILE v1 — homepage + global touch polish ============ */
@media (max-width: 1024px) {
  .brand { min-width: 0; }
  .header-bar-right { gap: .5rem; }
  .nav-inner { display: none; }
  body .section { scroll-margin-top: 72px; }
  .fold-trust-bar-inner {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0;
  }
  .fold-trust-bar .trust-stat {
    flex: none;
    min-width: 0;
    padding: .55rem .85rem;
  }
  .fold-trust-bar .trust-stat:nth-child(odd) { border-right: 1px solid rgba(255,255,255,.1); }
  .fold-trust-bar .trust-stat:nth-child(even) { border-right: 0; }
  .fold-trust-bar .trust-stat:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.1); }
  .fold-trust-bar .trust-stat + .trust-stat { border-left: 0; }
}
@media (max-width: 680px) {
  .brand-text { display: none; }
  .header-bar { gap: .65rem; padding: .5rem var(--pad-x); }
  .header-bar-right { gap: .35rem; }
  .header-phone .ph-ic { width: 34px; height: 34px; }
  .menu-btn { flex-shrink: 0; }
  .fold-top { padding-top: 1.25rem; padding-bottom: 1rem; gap: 1.25rem; }
  .fold-copy h1 { font-size: clamp(1.72rem, 7.5vw, 2.25rem); }
  .fold-lead { font-size: .98rem; margin-bottom: 1rem; }
  .fold-cta { gap: .55rem; }
  .fold-cta .btn { flex: 1 1 calc(50% - .3rem); min-width: 0; justify-content: center; white-space: normal; text-align: center; padding: .82rem 1rem; font-size: .92rem; }
  .fold-cta .btn-lg { flex: 1 1 100%; }
  .fold-cred-list { grid-template-columns: 1fr; gap: .45rem; }
  .fold-partners-grid .partner-badge { flex-direction: column; text-align: center; gap: .35rem; padding: .65rem .85rem; }
  .fold-trust-bar-inner { grid-template-columns: 1fr; }
  .fold-trust-bar .trust-stat { padding: .65rem 1rem; }
  .fold-trust-bar .trust-stat:nth-child(odd) { border-right: 0; }
  .fold-trust-bar .trust-stat + .trust-stat { border-top: 1px solid rgba(255,255,255,.1); }
  .fold-services-head { flex-direction: column; align-items: flex-start; gap: .35rem; }
  .svc-quick { min-height: clamp(148px, 42vw, 168px); }
  .svc-quick .sq-label { font-size: .84rem; padding: .75rem .9rem .85rem; }
  .svc-quick .sq-thumb { height: clamp(88px, 24vw, 104px); min-height: 88px; }
  .services-cta-strip { padding: 1rem; text-align: center; }
  .services-cta-strip .cta-actions { width: 100%; justify-content: stretch; }
  .services-cta-strip .cta-actions .btn { flex: 1 1 auto; justify-content: center; min-width: calc(50% - .35rem); }
  .services-cta-strip .cta-phone { font-size: 1.05rem; }
  .why-visual { max-width: none; margin: 0 auto; }
  .diffs { margin-left: 0; padding-left: 1.35rem; }
  .diff::before { left: -1.75rem; }
  .shop-banner { flex-direction: row; flex-wrap: wrap; padding: 1rem; }
  .steps { grid-template-columns: 1fr; gap: .85rem; }
  .step { padding: 1.25rem 1.15rem 1.1rem; }
  .step .num { font-size: 1.75rem; }
  .review-card { width: min(300px, calc(100vw - 2.5rem)); }
  .platform { min-width: 0; width: 100%; max-width: 360px; }
  .areas-cta-bar-inner { flex-direction: column; align-items: stretch; text-align: center; gap: .85rem; }
  .areas-cta-bar .btn { width: 100%; justify-content: center; }
  .cta-copy { text-align: center; }
  .cta-copy p { margin-left: auto; margin-right: auto; }
  .cta-benefits { max-width: 360px; margin-left: auto; margin-right: auto; }
  .cta-phone-block { width: 100%; justify-content: center; box-sizing: border-box; }
  .cta-lockup { font-size: clamp(2rem, 11vw, 2.75rem); }
  .footer-brand p { max-width: none; }
  .chat-fab { bottom: calc(4.75rem + env(safe-area-inset-bottom, 0px)); right: .85rem; }
  .chat-window { bottom: calc(4.75rem + env(safe-area-inset-bottom, 0px)); }
  .a11y-fab { bottom: calc(4.75rem + env(safe-area-inset-bottom, 0px)); left: .85rem; }
  .a11y-panel { bottom: calc(8.5rem + env(safe-area-inset-bottom, 0px)); }
  .mobile-call-bar {
    padding: .55rem var(--pad-x) calc(.55rem + env(safe-area-inset-bottom, 0px));
  }
  body { padding-bottom: calc(4.5rem + env(safe-area-inset-bottom, 0px)); }
  .section { padding: clamp(2.25rem, 5vw, 3rem) 0; }
  .section.tight { padding: clamp(1.75rem, 4vw, 2.25rem) 0; }
  .mobile-panel {
    width: min(100vw, 100%);
    max-width: 100%;
    padding-bottom: calc(1.25rem + env(safe-area-inset-bottom, 0px));
  }
  .mobile-section a {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: .6rem 0;
  }
  .mobile-cta .btn { width: 100%; justify-content: center; white-space: normal; }
  .footer-bottom { flex-direction: column; text-align: center; align-items: center; }
  .footer-cert-band .container { gap: .75rem; }
  .footer-cert-band img { height: 36px; max-width: 120px; }
  .faq-item summary { min-height: 44px; padding: .85rem 1rem; font-size: .92rem; }
  .warranty-card { padding: 1.15rem 1rem; }
  .gallery-item .cap { opacity: 1; transform: none; }
  .fold-photo-wrap { max-height: 280px; }
  .fold-form:hover, .fold-partners:hover, .svc-detail-card:hover { transform: none; }
  .field input, .field select, .field textarea,
  .fold-form .field input, .fold-form .field select { font-size: 16px; }
  .quote-form { padding: 1.25rem; }
  .faq-intro .btn { width: 100%; justify-content: center; }
  .fold-reviews-head { flex-direction: column; align-items: flex-start; gap: .35rem; }
  .fold-reviews-head p { max-width: none; }
  .services-cta-strip p { font-size: .95rem; }
}
@media (max-width: 380px) {
  :root { --pad-x: 1rem; }
  .fold-mini-stats { gap: .4rem; }
  .fold-mini-stat { padding: .5rem .35rem; }
  .fold-mini-stat .num { font-size: 1.12rem; }
  .fold-mini-stat .lbl { font-size: .58rem; line-height: 1.2; }
  .fold-pill { font-size: .68rem; padding: .3rem .55rem; }
  .fold-form { padding: 1rem; }
  .services-cta-strip .cta-actions .btn { min-width: 100%; }
  .review-platforms { gap: .75rem; padding-bottom: 1.5rem; margin-bottom: 1.5rem; }
  .mobile-call-bar a { font-size: .82rem; padding: .68rem .65rem; }
  .fold-cta .btn { flex: 1 1 100%; }
}

/* ============ WOOCOMMERCE ============ */
.header-cart {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 10px;
  border: 1px solid var(--line-soft);
  background: #fff;
  color: var(--ink);
  transition: border-color .2s, box-shadow .2s, color .2s;
}
.header-cart svg { width: 20px; height: 20px; }
.header-cart:hover { border-color: rgba(227,25,55,.35); color: var(--accent); box-shadow: var(--shadow-sm); }
.header-cart-count {
  position: absolute;
  top: -4px;
  right: -4px;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border-radius: 100px;
  background: var(--accent);
  color: #fff;
  font-family: var(--font-head);
  font-size: .68rem;
  font-weight: 800;
  display: grid;
  place-items: center;
  line-height: 1;
}
.woo-page { padding: var(--section-y-sm) 0 var(--section-y); }
.woo-page .woocommerce-products-header { margin-bottom: 1.25rem; }
.woo-page .woocommerce-products-header__title {
  font-family: var(--font-head);
  font-size: clamp(1.5rem, 3vw, 2rem);
  margin: 0 0 .35rem;
}
.woo-page .woocommerce-result-count,
.woo-page .woocommerce-ordering { font-size: .88rem; color: var(--ink-soft); }
.shop-woo-products { margin-top: 0; }
.shop-woo-grid .products,
.woo-page ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.shop-woo-grid .products::before,
.shop-woo-grid .products::after,
.woo-page ul.products::before,
.woo-page ul.products::after { display: none; }
.shop-woo-grid .product,
.woo-page ul.products li.product {
  float: none !important;
  width: 100% !important;
  margin: 0 !important;
  background: #fff;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: box-shadow .3s var(--ease), border-color .3s, transform .3s var(--ease);
}
.shop-woo-grid .product:hover,
.woo-page ul.products li.product:hover {
  border-color: rgba(227,25,55,.28);
  box-shadow: 0 14px 36px rgba(227,25,55,.12);
  transform: translateY(-3px);
}
.shop-woo-grid .woocommerce-loop-product__link,
.woo-page ul.products li.product a.woocommerce-LoopProduct-link {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: inherit;
}
.shop-woo-grid .product img,
.woo-page ul.products li.product img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  background: var(--bg);
}
.shop-woo-grid .woocommerce-loop-product__title,
.woo-page ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--font-head);
  font-size: .92rem;
  line-height: 1.35;
  padding: .85rem 1rem 0;
  margin: 0;
  color: var(--ink);
}
.shop-woo-grid .price,
.woo-page ul.products li.product .price {
  padding: .45rem 1rem 1rem;
  font-family: var(--font-head);
  font-weight: 800;
  color: var(--accent);
  font-size: 1rem;
}
.shop-woo-grid .price del,
.woo-page ul.products li.product .price del {
  color: var(--ink-mute);
  font-weight: 600;
  font-size: .82rem;
  margin-right: .35rem;
}
.shop-woo-grid span.onsale,
.woo-page span.onsale {
  position: absolute;
  top: .65rem;
  left: .65rem;
  z-index: 2;
  background: var(--accent);
  color: #fff;
  font-family: var(--font-head);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: .22rem .55rem;
  border-radius: 100px;
}
.shop-woo-grid .product,
.woo-page ul.products li.product { position: relative; }
.woo-page .single-product .product {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(1.25rem, 3vw, 2rem);
  align-items: start;
}
.woo-page .single-product .product_title {
  font-family: var(--font-head);
  font-size: clamp(1.35rem, 2.5vw, 1.85rem);
  margin: 0 0 .75rem;
}
.woo-page .single-product .price {
  font-family: var(--font-head);
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--accent);
  margin-bottom: 1rem;
}
.woo-page .single-product .woocommerce-product-details__short-description {
  color: var(--ink-soft);
  line-height: 1.6;
  margin-bottom: 1rem;
}
.woo-page .cart,
.woo-page .woocommerce-cart-form,
.woo-page .woocommerce-checkout {
  background: #fff;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-lg);
  padding: clamp(1rem, 2vw, 1.5rem);
  box-shadow: var(--shadow-sm);
}
.woo-page table.shop_table {
  width: 100%;
  border-collapse: collapse;
  font-size: .92rem;
}
.woo-page table.shop_table th,
.woo-page table.shop_table td {
  padding: .75rem .5rem;
  border-bottom: 1px solid var(--line-soft);
  text-align: left;
}
.woo-page .button,
.woo-page button.button,
.woo-page a.button,
.woo-page input.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: .88rem;
  padding: .72rem 1.15rem;
  border-radius: var(--radius-sm);
  border: none;
  background: var(--accent);
  color: #fff !important;
  text-decoration: none;
  cursor: pointer;
  transition: background .2s, transform .2s;
}
.woo-page .button:hover,
.woo-page button.button:hover,
.woo-page a.button:hover { background: #c91530; transform: translateY(-1px); }
.woo-page .button.alt { background: var(--ink); }
.woo-page .checkout-button { width: 100%; margin-top: .75rem; }
@media (max-width: 900px) {
  .shop-woo-grid .products,
  .woo-page ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .woo-page .single-product .product { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .shop-woo-grid .products,
  .woo-page ul.products { grid-template-columns: 1fr; }
  .header-cart { width: 38px; height: 38px; }
}

/* --- Estimate tool (KB §5.6) --- */
.estimate-tool-section {
  padding: clamp(2.5rem, 5vw, 4rem) 0;
  background: linear-gradient(180deg, #fafafa 0%, #fff 100%);
}
.estimate-tool-grid {
  display: grid;
  gap: 2rem;
  grid-template-columns: 1fr;
}
@media (min-width: 900px) {
  .estimate-tool-grid { grid-template-columns: 1fr 1fr; align-items: start; }
}
.estimate-tool-notes { margin: 1rem 0 0; padding-left: 1.1rem; color: var(--ink-soft); }
.estimate-tool-notes li { margin-bottom: .35rem; }
.estimate-tool-checks { display: grid; gap: .5rem; }
.estimate-tool-checks label { display: flex; gap: .5rem; align-items: center; font-size: .92rem; }
.estimate-tool-result {
  margin-top: 1rem;
  padding: 1rem;
  border-radius: var(--radius, 12px);
  background: #f3f8f4;
  border: 1px solid #d7eadb;
}
.estimate-tool-range { font-size: 1.15rem; font-weight: 700; margin: 0 0 .5rem; }
.estimate-tool-disclaimer { font-size: .88rem; color: var(--ink-soft); margin: 0 0 1rem; }
.woo-kb-notice {
  margin: 1rem 0;
  padding: .85rem 1rem;
  border-radius: 10px;
  background: #fff8e6;
  border: 1px solid #f0dfa8;
  font-size: .9rem;
}
.woo-kb-unit { font-size: .85em; color: var(--ink-soft); font-weight: 500; }
/* ============ INNER PAGES ============ */
body.page-inner { background: var(--bg); }

/* Photo-backed page hero — set --page-hero-image per page */
.page-hero {
  position: relative;
  padding: clamp(3rem, 6vw, 5rem) 0 clamp(2.5rem, 5vw, 3.5rem);
  min-height: clamp(280px, 42vh, 420px);
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  border-bottom: none;
}
.page-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: var(--page-hero-image, url('https://www.victoriousflooring.com/wp-content/uploads/2022/04/Living-Room-Wall-to-Wall-Carpet.webp'));
  background-size: cover;
  background-position: center 42%;
  transform: scale(1.03);
}
.page-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(105deg, rgba(10,8,8,.88) 0%, rgba(20,14,16,.72) 42%, rgba(20,20,20,.52) 100%),
    linear-gradient(0deg, rgba(20,20,20,.55) 0%, transparent 45%);
}
.page-hero .container { position: relative; z-index: 1; }
.page-hero .eyebrow { color: #FFB3BF; }
.page-hero .eyebrow .dot { background: #FFB3BF; box-shadow: 0 0 0 4px rgba(255,179,191,.22); }
.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .35rem .5rem;
  font-size: .82rem;
  color: rgba(255,255,255,.62);
  margin-bottom: 1rem;
}
.breadcrumb a { color: rgba(255,255,255,.82); transition: color .2s; }
.breadcrumb a:hover { color: #fff; }
.breadcrumb .sep { opacity: .45; user-select: none; }
.breadcrumb span:last-child { color: rgba(255,255,255,.55); }
.page-hero h1 {
  font-size: clamp(2rem, 4.5vw, 3.2rem);
  max-width: 16ch;
  margin-bottom: .85rem;
  color: #fff;
}
.page-hero .page-lead {
  font-size: clamp(1.02rem, 1.8vw, 1.12rem);
  color: rgba(255,255,255,.82);
  max-width: 52ch;
  line-height: 1.65;
}
.page-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 1.35rem;
}
.page-hero-actions .btn-outline {
  border-color: rgba(255,255,255,.45);
  color: #fff;
  background: rgba(255,255,255,.08);
  backdrop-filter: blur(6px);
}
.page-hero-actions .btn-outline:hover {
  border-color: #fff;
  background: rgba(255,255,255,.16);
  color: #fff;
}
.page-hero-trust {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem 1.25rem;
  margin-top: 1.25rem;
  font-family: var(--font-head);
  font-size: .82rem;
  font-weight: 600;
  color: rgba(255,255,255,.72);
}
.page-hero-trust span { display: inline-flex; align-items: center; gap: .35rem; }
.page-hero-trust svg { width: 15px; height: 15px; color: #F5A623; }

.inner-main { padding-bottom: 0; }
.inner-section { padding: clamp(2.5rem, 5vw, 4rem) 0; }
.inner-section.alt { background: var(--trust-band); border-block: 1px solid var(--line-soft); }

/* Services hub — catalog layout (distinct from homepage detail grid) */
.svc-hub-wrap { padding: clamp(2rem, 4vw, 3rem) 0 clamp(3rem, 5vw, 4rem); }
.svc-hub-layout {
  display: grid;
  grid-template-columns: minmax(200px, 220px) 1fr;
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: start;
}
.svc-hub-nav {
  position: sticky;
  top: calc(72px + 1rem);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 1.15rem;
  box-shadow: var(--shadow-sm);
}
.svc-hub-nav h3 {
  font-size: .72rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-mute);
  margin-bottom: .65rem;
}
.svc-hub-nav a {
  display: block;
  font-family: var(--font-head);
  font-size: .88rem;
  font-weight: 600;
  padding: .5rem .65rem;
  border-radius: 8px;
  color: var(--ink-soft);
  transition: background .2s, color .2s;
}
.svc-hub-nav a:hover { background: var(--accent-soft); color: var(--accent); }
.svc-hub-featured {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 0;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-md);
  margin-bottom: 2rem;
  transition: transform .3s var(--ease), box-shadow .3s;
}
.svc-hub-featured:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); }
.svc-hub-featured-media { position: relative; min-height: 220px; }
.svc-hub-featured-media img { width: 100%; height: 100%; object-fit: cover; }
.svc-hub-featured-badge {
  position: absolute;
  top: 1rem;
  left: 1rem;
  font-family: var(--font-head);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  background: var(--accent);
  color: #fff;
  padding: .35rem .65rem;
  border-radius: 100px;
}
.svc-hub-featured-body {
  padding: clamp(1.25rem, 2.5vw, 2rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.svc-hub-featured-body h2 { font-size: clamp(1.35rem, 2.2vw, 1.75rem); margin-bottom: .55rem; }
.svc-hub-featured-body p { color: var(--ink-soft); font-size: .98rem; margin-bottom: 1rem; }
.svc-hub-featured-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1.1rem; }
.svc-hub-featured-tags span {
  font-size: .74rem;
  font-weight: 600;
  padding: .28rem .6rem;
  border-radius: 100px;
  background: var(--bg);
  border: 1px solid var(--line-soft);
  color: var(--ink-soft);
}
.svc-hub-group { margin-bottom: 2.25rem; scroll-margin-top: 96px; }
.svc-hub-group-head {
  display: flex;
  align-items: baseline;
  gap: .75rem;
  margin-bottom: 1rem;
  padding-bottom: .65rem;
  border-bottom: 2px solid var(--accent-soft);
}
.svc-hub-group-head h2 { font-size: clamp(1.15rem, 2vw, 1.45rem); }
.svc-hub-group-head span { font-size: .82rem; color: var(--ink-mute); font-weight: 500; }
.svc-hub-list { display: flex; flex-direction: column; gap: .55rem; }
.svc-hub-sub-links {
  display: flex; flex-wrap: wrap; gap: .4rem .65rem;
  padding: 0 0 .75rem 120px; margin-top: -.35rem;
}
.svc-hub-sub-links a {
  font-size: .78rem; font-weight: 600; color: var(--accent);
  text-decoration: none; padding: .2rem .55rem;
  background: rgba(0,119,182,.08); border-radius: 999px;
}
.svc-hub-sub-links a:hover { background: rgba(0,119,182,.15); }
@media (max-width: 640px) { .svc-hub-sub-links { padding-left: 0; } }
.svc-hub-item {
  display: grid;
  grid-template-columns: 120px 1fr auto;
  gap: 1rem;
  align-items: center;
  padding: .85rem 1rem;
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  transition: border-color .25s, box-shadow .25s, transform .25s var(--ease);
}
.svc-hub-item:hover {
  border-color: rgba(227,25,55,.25);
  box-shadow: var(--shadow-sm);
  transform: translateX(4px);
}
.svc-hub-item-thumb {
  width: 120px;
  aspect-ratio: 4/3;
  border-radius: var(--radius-sm);
  overflow: hidden;
  flex-shrink: 0;
}
.svc-hub-item-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s var(--ease); }
.svc-hub-item:hover .svc-hub-item-thumb img { transform: scale(1.06); }
.svc-hub-item-body h3 { font-size: 1.02rem; margin-bottom: .2rem; line-height: 1.25; }
.svc-hub-item-body p { font-size: .86rem; color: var(--ink-soft); line-height: 1.45; margin: 0; }
.svc-hub-item-arrow {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--accent-soft);
  color: var(--accent);
  display: grid;
  place-items: center;
  flex-shrink: 0;
  transition: background .2s, color .2s;
}
.svc-hub-item:hover .svc-hub-item-arrow { background: var(--accent); color: #fff; }
.svc-hub-item-arrow svg { width: 16px; height: 16px; }
.inner-cta-bar {
  background: var(--ink);
  color: #fff;
  padding: clamp(2rem, 4vw, 2.75rem) 0;
  margin-top: 1rem;
}
.inner-cta-bar .container {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
}
.inner-cta-bar h2 { color: #fff; font-size: clamp(1.35rem, 2.5vw, 1.85rem); margin-bottom: .35rem; }
.inner-cta-bar p { color: rgba(255,255,255,.72); font-size: .98rem; max-width: 42ch; }
.inner-cta-bar-actions { display: flex; flex-wrap: wrap; gap: .65rem; }

/* —— Services hub expanded —— */
.svc-hub-stats-bar {
  position: relative;
  z-index: 2;
  margin-top: -2rem;
  margin-bottom: .5rem;
}
.svc-hub-stats-bar .container {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .65rem;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 1rem 1.15rem;
  box-shadow: var(--shadow-md);
}
.svc-hub-stat {
  text-align: center;
  padding: .5rem .35rem;
  border-right: 1px solid var(--line-soft);
}
.svc-hub-stat:last-child { border-right: 0; }
.svc-hub-stat strong {
  display: block;
  font-family: var(--font-head);
  font-size: clamp(1.25rem, 2vw, 1.55rem);
  font-weight: 800;
  color: var(--accent);
  line-height: 1.1;
}
.svc-hub-stat span { font-size: .76rem; color: var(--ink-soft); font-weight: 500; margin-top: .2rem; display: block; }

.svc-hub-intro {
  padding: clamp(1.75rem, 3vw, 2.5rem) 0 .5rem;
}
.svc-hub-intro-grid {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: clamp(1.25rem, 3vw, 2rem);
  align-items: start;
}
.svc-hub-intro h2 { font-size: clamp(1.45rem, 2.8vw, 2rem); margin-bottom: .75rem; }
.svc-hub-intro p { color: var(--ink-soft); font-size: 1.02rem; margin-bottom: .85rem; }
.svc-hub-intro-points {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .55rem .85rem;
  margin-top: 1rem;
}
.svc-hub-intro-points li {
  display: flex;
  align-items: flex-start;
  gap: .45rem;
  font-size: .88rem;
  font-weight: 600;
  color: var(--ink-soft);
  list-style: none;
}
.svc-hub-intro-points svg { width: 16px; height: 16px; color: var(--accent); flex-shrink: 0; margin-top: 2px; }
.svc-hub-intro-card {
  background: linear-gradient(145deg, var(--accent-soft) 0%, var(--surface) 100%);
  border: 1px solid rgba(227,25,55,.15);
  border-radius: var(--radius-lg);
  padding: 1.35rem;
}
.svc-hub-intro-card h3 { font-size: 1.05rem; margin-bottom: .5rem; }
.svc-hub-intro-card p { font-size: .9rem; color: var(--ink-soft); margin-bottom: 1rem; }
.svc-hub-intro-card .btn { width: 100%; }

.svc-hub-nav .nav-cta {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line-soft);
}
.svc-hub-nav .nav-cta p { font-size: .78rem; color: var(--ink-mute); margin-bottom: .55rem; }
.svc-hub-nav .nav-cta .btn { width: 100%; font-size: .85rem; padding: .55rem .85rem; }
.svc-hub-nav .nav-phone {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  margin-top: .5rem;
  font-family: var(--font-head);
  font-weight: 800;
  font-size: .92rem;
  color: var(--ink);
}
.svc-hub-nav .nav-phone:hover { color: var(--accent); }

.svc-hub-group-intro {
  font-size: .95rem;
  color: var(--ink-soft);
  line-height: 1.6;
  margin: -.35rem 0 1rem;
  max-width: 62ch;
}

.svc-hub-item--rich {
  grid-template-columns: 140px 1fr auto;
  padding: 1rem 1.1rem;
  align-items: flex-start;
}
.svc-hub-item--rich .svc-hub-item-thumb { width: 140px; aspect-ratio: 5/4; }
.svc-hub-item-tags {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  margin: .45rem 0 .55rem;
}
.svc-hub-item-tags span {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: .22rem .5rem;
  border-radius: 100px;
  background: var(--bg);
  border: 1px solid var(--line-soft);
  color: var(--ink-mute);
}
.svc-hub-item-bullets {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .22rem;
}
.svc-hub-item-bullets li {
  font-size: .8rem;
  color: var(--ink-soft);
  padding-left: .85rem;
  position: relative;
  line-height: 1.4;
}
.svc-hub-item-bullets li::before {
  content: '';
  position: absolute;
  left: 0;
  top: .45em;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--accent);
}

.svc-hub-specialty {
  margin-top: 1.25rem;
  padding: 1.15rem;
  background: var(--trust-band);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-lg);
}
.svc-hub-specialty-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: .85rem;
  flex-wrap: wrap;
}
.svc-hub-specialty-head h3 { font-size: .95rem; }
.svc-hub-specialty-head span { font-size: .78rem; color: var(--ink-mute); }
.svc-hub-specialty-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: .55rem;
}
.svc-hub-specialty-card {
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  padding: .7rem .75rem;
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-sm);
  transition: border-color .2s, box-shadow .2s;
}
.svc-hub-specialty-card:hover { border-color: rgba(227,25,55,.22); box-shadow: var(--shadow-sm); }
.svc-hub-specialty-card img {
  width: 52px;
  height: 52px;
  object-fit: cover;
  border-radius: 8px;
  flex-shrink: 0;
}
.svc-hub-specialty-card strong {
  display: block;
  font-family: var(--font-head);
  font-size: .82rem;
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: .15rem;
}
.svc-hub-specialty-card small { font-size: .74rem; color: var(--ink-soft); line-height: 1.35; display: block; }

.svc-hub-band {
  padding: clamp(2.5rem, 5vw, 3.75rem) 0;
  border-block: 1px solid var(--line-soft);
}
.svc-hub-band.alt { background: var(--trust-band); }
.svc-hub-band-head {
  max-width: 640px;
  margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
}
.svc-hub-band-head.center { margin-left: auto; margin-right: auto; text-align: center; }
.svc-hub-band-head h2 { font-size: clamp(1.45rem, 2.8vw, 2rem); margin: .65rem 0 .55rem; }
.svc-hub-band-head p { color: var(--ink-soft); font-size: 1.02rem; }

.svc-hub-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}
.svc-hub-step {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 1.15rem;
  position: relative;
  transition: transform .25s var(--ease), box-shadow .25s;
}
.svc-hub-step:hover { transform: translateY(-3px); box-shadow: var(--shadow-sm); }
.svc-hub-step-num {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--accent);
  color: #fff;
  font-family: var(--font-head);
  font-weight: 800;
  font-size: .88rem;
  display: grid;
  place-items: center;
  margin-bottom: .75rem;
}
.svc-hub-step h3 { font-size: .98rem; margin-bottom: .35rem; }
.svc-hub-step p { font-size: .84rem; color: var(--ink-soft); line-height: 1.45; margin: 0; }

.svc-hub-promise-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}
.svc-hub-promise-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 1.15rem;
  text-align: center;
}
.svc-hub-promise-card .ic {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--accent-soft);
  color: var(--accent);
  display: grid;
  place-items: center;
  margin: 0 auto .65rem;
}
.svc-hub-promise-card .ic svg { width: 22px; height: 22px; }
.svc-hub-promise-card h3 { font-size: .95rem; margin-bottom: .35rem; }
.svc-hub-promise-card p { font-size: .82rem; color: var(--ink-soft); line-height: 1.45; margin: 0; }

.svc-hub-shop {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-md);
}
.svc-hub-shop-media { min-height: 260px; }
.svc-hub-shop-media img { width: 100%; height: 100%; object-fit: cover; }
.svc-hub-shop-body {
  padding: clamp(1.5rem, 3vw, 2.25rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.svc-hub-shop-body h2 { font-size: clamp(1.25rem, 2.2vw, 1.65rem); margin-bottom: .55rem; }
.svc-hub-shop-body p { color: var(--ink-soft); font-size: .95rem; margin-bottom: 1rem; }
.svc-hub-shop-list { list-style: none; margin: 0 0 1.15rem; padding: 0; }
.svc-hub-shop-list li {
  font-size: .88rem;
  color: var(--ink-soft);
  padding: .3rem 0 .3rem 1.1rem;
  position: relative;
}
.svc-hub-shop-list li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: var(--accent);
  font-weight: 700;
}

.svc-hub-faq-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .65rem;
}
.svc-hub-faq-grid details {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: .85rem 1rem;
}
.svc-hub-faq-grid summary {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: .92rem;
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
}
.svc-hub-faq-grid summary::-webkit-details-marker { display: none; }
.svc-hub-faq-grid summary::after { content: '+'; font-size: 1.1rem; color: var(--accent); font-weight: 800; }
.svc-hub-faq-grid details[open] summary::after { content: '−'; }
.svc-hub-faq-grid .faq-a {
  font-size: .86rem;
  color: var(--ink-soft);
  line-height: 1.55;
  margin-top: .65rem;
  padding-top: .65rem;
  border-top: 1px solid var(--line-soft);
}

.svc-hub-reviews {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
.svc-hub-review {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 1.15rem;
}
.svc-hub-review-stars { color: #F5A623; font-size: .85rem; letter-spacing: .1em; margin-bottom: .55rem; }
.svc-hub-review q {
  display: block;
  font-size: .88rem;
  color: var(--ink-soft);
  line-height: 1.55;
  font-style: normal;
  margin-bottom: .65rem;
}
.svc-hub-review cite {
  font-family: var(--font-head);
  font-size: .78rem;
  font-weight: 700;
  font-style: normal;
  color: var(--ink-mute);
}

.inner-split {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: start;
}
.content-prose { color: var(--ink-soft); font-size: 1.02rem; }
.content-prose h2, .content-prose h3 {
  color: var(--ink);
  margin: 1.75rem 0 .65rem;
  font-size: clamp(1.25rem, 2vw, 1.55rem);
}
.content-prose p { margin-bottom: 1rem; }
.content-prose ul, .content-prose ol { margin: 0 0 1rem 1.15rem; }
.content-prose li { margin-bottom: .4rem; }
.content-prose a { color: var(--accent); text-decoration: underline; text-underline-offset: 2px; }
.inner-aside-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 1.35rem;
  box-shadow: var(--shadow-sm);
  position: sticky;
  top: calc(72px + 1rem);
}
.inner-aside-card h3 { font-size: 1.1rem; margin-bottom: .65rem; }
.inner-aside-card p { font-size: .92rem; color: var(--ink-soft); margin-bottom: 1rem; }
.inner-aside-card .btn { width: 100%; }
.inner-aside-list { display: flex; flex-direction: column; gap: .35rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line-soft); }
.inner-aside-list a {
  font-family: var(--font-head);
  font-size: .88rem;
  font-weight: 600;
  padding: .45rem 0;
  color: var(--ink-soft);
  transition: color .2s;
}
.inner-aside-list a:hover, .inner-aside-list a.is-active { color: var(--accent); font-weight: 700; }
.inner-aside-label {
  display: block;
  font-family: var(--font-head);
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--ink-mute);
  margin-bottom: .25rem;
}
.svc-page-aside-phone {
  display: block;
  text-align: center;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--ink);
  margin: .75rem 0 .25rem;
  transition: color .2s;
}
.svc-page-aside-phone:hover { color: var(--accent); }

/* —— Service detail pages —— */
.svc-page-stats-bar {
  position: relative;
  z-index: 2;
  margin-top: -2rem;
  margin-bottom: .5rem;
}
.svc-page-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .65rem;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 1rem 1.15rem;
  box-shadow: var(--shadow-md);
}
.svc-page-stat {
  text-align: center;
  padding: .5rem .35rem;
  border-right: 1px solid var(--line-soft);
}
.svc-page-stat:last-child { border-right: 0; }
.svc-page-stat strong {
  display: block;
  font-family: var(--font-head);
  font-size: clamp(1.25rem, 2vw, 1.55rem);
  font-weight: 800;
  color: var(--accent);
  line-height: 1.1;
}
.svc-page-stat span {
  font-size: .76rem;
  color: var(--ink-soft);
  font-weight: 500;
  margin-top: .2rem;
  display: block;
}
.svc-page-body { padding: clamp(1.5rem, 3vw, 2.25rem) 0 clamp(2rem, 4vw, 3rem); }
.svc-page-split {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: start;
}
.svc-page-content > * + * { margin-top: clamp(1.75rem, 3vw, 2.5rem); }
.svc-page-intro h2 { margin-top: 0; }
.svc-page-bullets {
  list-style: none;
  margin: 1.25rem 0 0;
  padding: 0;
  display: grid;
  gap: .55rem;
}
.svc-page-bullets li {
  position: relative;
  padding-left: 1.35rem;
  font-size: .95rem;
  color: var(--ink-soft);
  line-height: 1.5;
}
.svc-page-bullets li::before {
  content: '';
  position: absolute;
  left: 0;
  top: .55em;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--accent);
}
.svc-page-sub {
  font-size: .92rem;
  color: var(--ink-mute);
  margin: -.35rem 0 1rem;
}
.svc-page-includes-wrap h2,
.svc-page-process-wrap h2,
.svc-page-gallery-wrap h2,
.svc-page-faq-wrap h2 {
  font-size: clamp(1.25rem, 2vw, 1.55rem);
  margin-bottom: .75rem;
}
.svc-page-includes {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: .85rem;
}
.svc-page-include {
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  padding: 1rem 1.05rem;
  transition: border-color .25s, box-shadow .25s;
}
.svc-page-include:hover {
  border-color: rgba(227,25,55,.22);
  box-shadow: var(--shadow-sm);
}
.svc-page-include .ic { font-size: 1.35rem; margin-bottom: .45rem; line-height: 1; }
.svc-page-include h3 { font-size: .98rem; margin-bottom: .35rem; }
.svc-page-include p { font-size: .86rem; color: var(--ink-soft); line-height: 1.5; margin: 0; }
.svc-page-process {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .75rem;
}
.svc-page-step {
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  padding: 1rem .85rem;
}
.svc-page-step .num {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--accent-soft);
  color: var(--accent);
  font-family: var(--font-head);
  font-size: .82rem;
  font-weight: 800;
  display: grid;
  place-items: center;
  margin-bottom: .55rem;
}
.svc-page-step h3 { font-size: .92rem; margin-bottom: .35rem; line-height: 1.25; }
.svc-page-step p { font-size: .82rem; color: var(--ink-soft); line-height: 1.45; margin: 0; }
.svc-page-gallery {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: .85rem;
}
.svc-page-gal-item {
  margin: 0;
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--line-soft);
  background: var(--surface);
}
.svc-page-gal-item img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
  transition: transform .4s var(--ease);
}
.svc-page-gal-item:hover img { transform: scale(1.04); }
.svc-page-gal-item figcaption {
  padding: .55rem .75rem;
  font-family: var(--font-head);
  font-size: .78rem;
  font-weight: 600;
  color: var(--ink-mute);
}
.svc-page-faq {
  display: flex;
  flex-direction: column;
  gap: .55rem;
}
.svc-page-faq details {
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  overflow: hidden;
}
.svc-page-faq summary {
  padding: .85rem 1rem;
  font-family: var(--font-head);
  font-size: .92rem;
  font-weight: 600;
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  transition: color .2s, background .2s;
}
.svc-page-faq summary::-webkit-details-marker { display: none; }
.svc-page-faq summary::after {
  content: '+';
  font-size: 1.15rem;
  font-weight: 400;
  color: var(--accent);
  flex-shrink: 0;
}
.svc-page-faq details[open] summary::after { content: '−'; }
.svc-page-faq details[open] summary { color: var(--accent); background: var(--accent-soft); }
.svc-page-faq .faq-a {
  padding: 0 1rem .85rem;
  font-size: .88rem;
  color: var(--ink-soft);
  line-height: 1.55;
}
.svc-page-areas {
  background: var(--bg);
  border: 1px dashed var(--line);
  border-radius: var(--radius);
  padding: 1rem 1.15rem;
}
.svc-page-areas h3 { font-size: .92rem; margin-bottom: .35rem; }
.svc-page-areas p { font-size: .86rem; color: var(--ink-soft); margin: 0; line-height: 1.55; }

.page-hero--compact {
  min-height: clamp(220px, 32vh, 320px);
  padding-bottom: clamp(2rem, 4vw, 2.75rem);
}

/* —— About page (visual-first) —— */
.about-body { padding: clamp(1.5rem, 3vw, 2.5rem) 0 clamp(2rem, 4vw, 3rem); }
.about-body > * + * { margin-top: clamp(2rem, 4vw, 3rem); }
.about-story-grid { margin-bottom: 0; }
.about-trust-logos {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
  margin: 1.25rem 0;
}
.about-trust-logos img { height: 36px; width: auto; object-fit: contain; }
.about-trust-logos img:last-child { height: 52px; }
.about-milestones {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .85rem;
}
.about-milestone {
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-lg);
  overflow: hidden;
  text-align: center;
  padding-bottom: .85rem;
}
.about-milestone-img {
  aspect-ratio: 16/10;
  overflow: hidden;
  background: var(--ink);
}
.about-milestone-img img { width: 100%; height: 100%; object-fit: cover; }
.about-milestone-year {
  display: inline-block;
  margin: .65rem 0 .25rem;
  font-family: var(--font-head);
  font-size: .78rem;
  font-weight: 800;
  color: var(--accent);
  background: var(--accent-soft);
  padding: .2rem .55rem;
  border-radius: 999px;
}
.about-milestone h3 { font-size: .88rem; padding: 0 .65rem; line-height: 1.3; }
.about-mosaic {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: .55rem;
}
.about-mosaic-item {
  margin: 0;
  border-radius: var(--radius);
  overflow: hidden;
  aspect-ratio: 1;
}
.about-mosaic-item--wide { grid-column: span 2; aspect-ratio: 2/1; }
.about-mosaic-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s var(--ease); }
.about-mosaic-item:hover img { transform: scale(1.05); }
.about-highlights {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: .65rem;
}
.about-highlight {
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  padding: .85rem .65rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .45rem;
}
.about-highlight-icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--accent-soft);
  color: var(--accent);
  display: grid;
  place-items: center;
}
.about-highlight-icon svg { width: 20px; height: 20px; }
.about-highlight span:last-child {
  font-family: var(--font-head);
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--ink);
}
.about-founder-split {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: clamp(1.25rem, 3vw, 2rem);
  align-items: start;
}
.about-founder-photo {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--line);
  box-shadow: var(--shadow-md);
}
.about-founder-photo > img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; }
.about-founder-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  padding: .75rem;
  background: var(--surface);
  border-top: 1px solid var(--line-soft);
}
.about-founder-badge img { max-height: 36px; width: auto; object-fit: contain; }
.about-founder-copy h2 { margin-bottom: .65rem; }
.about-founder-copy p { font-size: .95rem; color: var(--ink-soft); line-height: 1.55; margin-bottom: 1rem; }
.about-video {
  position: relative;
  aspect-ratio: 16/9;
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--ink);
}
.about-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.about-press-wrap h2 { font-size: clamp(1.15rem, 2vw, 1.45rem); margin-bottom: .85rem; }
.about-press-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .75rem;
}
.about-press-card {
  display: flex;
  flex-direction: column;
  gap: .45rem;
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  padding: 1rem;
  min-height: 120px;
  transition: border-color .25s, box-shadow .25s, transform .25s var(--ease);
}
.about-press-card:hover {
  border-color: rgba(227,25,55,.25);
  box-shadow: var(--shadow-sm);
  transform: translateY(-2px);
}
.about-press-icon {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--accent-soft);
  color: var(--accent);
  display: grid;
  place-items: center;
}
.about-press-icon svg { width: 16px; height: 16px; }
.about-press-card h3 { font-size: .88rem; line-height: 1.3; flex: 1; }
.about-press-link { font-family: var(--font-head); font-size: .76rem; font-weight: 700; color: var(--accent); }

/* —— Contact page (visual-first) —— */
.contact-body { padding: clamp(1.5rem, 3vw, 2.25rem) 0 clamp(1.25rem, 2.5vw, 2rem); }
.contact-split {
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  gap: clamp(1.25rem, 3vw, 2rem);
  align-items: start;
}
.contact-channels { display: grid; gap: .65rem; margin-bottom: 1rem; }
.contact-channel {
  display: flex;
  align-items: center;
  gap: .85rem;
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-lg);
  padding: .95rem 1.05rem;
  transition: border-color .2s, box-shadow .2s, transform .2s var(--ease);
}
a.contact-channel:hover {
  border-color: rgba(227,25,55,.28);
  box-shadow: var(--shadow-sm);
  transform: translateX(3px);
}
.contact-channel-icon {
  flex-shrink: 0;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
}
.contact-channel-icon svg { width: 22px; height: 22px; }
.contact-channel-icon--phone { background: linear-gradient(135deg, #E31937, #c41230); }
.contact-channel-icon--email { background: linear-gradient(135deg, #2d3748, #1a202c); }
.contact-channel-icon--map { background: linear-gradient(135deg, #E31937, #ff6b7a); color: #fff; }
.contact-channel-label {
  display: block;
  font-family: var(--font-head);
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--ink-mute);
  margin-bottom: .15rem;
}
.contact-channel strong { display: block; font-size: 1.02rem; color: var(--ink); line-height: 1.25; }
.contact-channel span:last-child { font-size: .82rem; color: var(--ink-soft); margin-top: .15rem; display: block; }
.contact-virtual {
  display: flex;
  align-items: center;
  gap: .85rem;
  background: var(--bg);
  border: 1px dashed var(--line);
  border-radius: var(--radius-lg);
  padding: .95rem 1.05rem;
}
.contact-virtual-icon {
  width: 44px;
  height: 44px;
  border-radius: var(--radius);
  background: var(--accent-soft);
  color: var(--accent);
  display: grid;
  place-items: center;
  flex-shrink: 0;
}
.contact-virtual-icon svg { width: 22px; height: 22px; }
.contact-virtual strong { display: block; font-size: .92rem; margin-bottom: .45rem; }
.contact-virtual-tags { display: flex; flex-wrap: wrap; gap: .35rem; }
.contact-virtual-tags span {
  font-family: var(--font-head);
  font-size: .72rem;
  font-weight: 700;
  padding: .25rem .55rem;
  border-radius: 999px;
  background: var(--surface);
  border: 1px solid var(--line-soft);
  color: var(--ink-soft);
}
.contact-form-wrap .quote-form { margin: 0; }

.contact-areas-section {
  padding: clamp(1.75rem, 3vw, 2.5rem) 0 clamp(2rem, 4vw, 3rem);
  background: var(--bg);
  border-top: 1px solid var(--line-soft);
}
.contact-areas-head {
  text-align: center;
  max-width: 52ch;
  margin: 0 auto 1.35rem;
}
.contact-areas-head h2 { font-size: clamp(1.35rem, 2.5vw, 1.85rem); margin-bottom: .35rem; }
.contact-areas-head p { font-size: .92rem; color: var(--ink-soft); margin: 0; }
.contact-regions-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 3px;
  background: var(--ink);
  margin-bottom: 1rem;
}
.contact-region-card {
  position: relative;
  aspect-ratio: 4/5;
  overflow: hidden;
  display: block;
}
.contact-region-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s var(--ease), filter .35s;
  filter: saturate(.92) brightness(.92);
}
.contact-region-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(10,8,8,.88) 0%, rgba(10,8,8,.25) 55%, rgba(10,8,8,.1) 100%);
  transition: background .3s;
}
.contact-region-card:hover img { transform: scale(1.06); filter: saturate(.95) brightness(.95); }
.contact-region-card:hover::after {
  background: linear-gradient(0deg, rgba(227,25,55,.75) 0%, rgba(10,8,8,.35) 55%, rgba(10,8,8,.12) 100%);
}
.contact-region-pin {
  position: absolute;
  top: .65rem;
  right: .65rem;
  z-index: 2;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255,255,255,.92);
  color: var(--accent);
  display: grid;
  place-items: center;
}
.contact-region-pin svg { width: 15px; height: 15px; }
.contact-region-badge {
  position: absolute;
  top: .65rem;
  left: .65rem;
  z-index: 2;
  font-family: var(--font-head);
  font-size: .68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  background: var(--accent);
  color: #fff;
  padding: .25rem .5rem;
  border-radius: 999px;
}
.contact-region-overlay {
  position: absolute;
  inset: auto 0 0;
  z-index: 2;
  padding: .85rem .75rem;
  color: #fff;
}
.contact-region-overlay h3 {
  color: #fff;
  font-size: clamp(1rem, 1.4vw, 1.2rem);
  font-weight: 800;
  margin-bottom: .45rem;
}
.contact-city-chips { display: flex; flex-wrap: wrap; gap: .3rem; }
.contact-city-chip {
  font-family: var(--font-head);
  font-size: .68rem;
  font-weight: 600;
  padding: .2rem .45rem;
  border-radius: 999px;
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.22);
  color: rgba(255,255,255,.92);
  backdrop-filter: blur(4px);
}
.contact-areas-note {
  text-align: center;
  font-size: .88rem;
  color: var(--ink-soft);
  margin: 0;
}
.contact-areas-note a { color: var(--accent); font-weight: 700; }

/* —— Gallery page —— */
.gal-page-body { padding: clamp(1.5rem, 3vw, 2.5rem) 0 clamp(2rem, 4vw, 3rem); }
.gal-page-filters {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-bottom: 1.25rem;
}
.gal-page-filter {
  font-family: var(--font-head);
  font-size: .82rem;
  font-weight: 600;
  padding: .45rem .85rem;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--ink-soft);
  cursor: pointer;
  transition: background .2s, border-color .2s, color .2s;
}
.gal-page-filter:hover { border-color: rgba(227,25,55,.3); color: var(--accent); }
.gal-page-filter.is-active {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
.gal-page-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .75rem;
}
.gal-page-item {
  position: relative;
  display: block;
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--line-soft);
  aspect-ratio: 4/3;
  background: var(--surface);
  transition: opacity .25s, transform .25s var(--ease);
}
.gal-page-item.is-hidden { display: none; }
.gal-page-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s var(--ease);
}
.gal-page-item:hover img { transform: scale(1.05); }
.gal-page-cap {
  position: absolute;
  inset: auto 0 0;
  padding: .55rem .65rem;
  background: linear-gradient(transparent, rgba(10,8,8,.82));
  color: #fff;
  font-family: var(--font-head);
  font-size: .72rem;
  font-weight: 600;
  line-height: 1.3;
  opacity: 0;
  transition: opacity .25s;
}
.gal-page-item:hover .gal-page-cap { opacity: 1; }

/* —— Contact page (legacy removed — see visual-first block above) —— */

/* —— FAQ page —— */
.faq-page-body { padding: clamp(1.5rem, 3vw, 2.5rem) 0 clamp(2rem, 4vw, 3rem); }
.faq-page-layout {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: clamp(1.25rem, 3vw, 2rem);
  align-items: start;
}
.faq-page-nav {
  position: sticky;
  top: calc(72px + 1rem);
  display: flex;
  flex-direction: column;
  gap: .35rem;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 1rem;
  box-shadow: var(--shadow-sm);
}
.faq-page-nav a {
  font-family: var(--font-head);
  font-size: .88rem;
  font-weight: 600;
  color: var(--ink-soft);
  padding: .4rem 0;
  transition: color .2s;
}
.faq-page-nav a:hover { color: var(--accent); }
.faq-page-sections > * + * { margin-top: 2rem; }
.faq-page-section h2 {
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  margin-bottom: .75rem;
  padding-bottom: .5rem;
  border-bottom: 2px solid var(--accent-soft);
}
.faq-page-list { display: flex; flex-direction: column; gap: .55rem; }
.faq-page-item {
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  overflow: hidden;
}
.faq-page-item summary {
  padding: .85rem 1rem;
  font-family: var(--font-head);
  font-size: .92rem;
  font-weight: 600;
  cursor: pointer;
  list-style: none;
}
.faq-page-item summary::-webkit-details-marker { display: none; }
.faq-page-item[open] summary { color: var(--accent); background: var(--accent-soft); }
.faq-page-item .faq-a {
  padding: 0 1rem .85rem;
  font-size: .88rem;
  color: var(--ink-soft);
  line-height: 1.55;
}

/* --- Shop-at-Home --- */
.shop-hero-split {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 2.5rem;
  align-items: start;
  padding: 2.5rem 0 1.5rem;
}
.shop-hero-photo {
  margin: 0;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-md);
}
.shop-hero-photo img { width: 100%; display: block; aspect-ratio: 4/3; object-fit: cover; }
.shop-hero-photo figcaption {
  padding: .65rem 1rem;
  font-size: .82rem;
  color: var(--ink-soft);
  background: var(--bg-alt);
}
.shop-benefits {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
.shop-benefits--col { grid-template-columns: 1fr; }
.shop-benefit {
  padding: 1rem;
  background: var(--bg-alt);
  border-radius: var(--radius);
  border: 1px solid var(--line-soft);
}
.shop-benefit-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin-bottom: .65rem;
  border-radius: 50%;
  background: var(--accent-soft);
  color: var(--accent);
}
.shop-benefit-icon svg { width: 20px; height: 20px; }
.shop-benefit h3 { font-size: .95rem; margin: 0 0 .35rem; font-family: var(--font-head); }
.shop-benefit p { margin: 0; font-size: .85rem; color: var(--ink-soft); line-height: 1.45; }

.shop-steps-wrap, .shop-cards-wrap { padding: 2rem 0; }
.shop-steps-wrap h2, .shop-cards-wrap h2 {
  font-family: var(--font-head);
  font-size: 1.35rem;
  margin-bottom: 1.25rem;
}
.shop-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}
.shop-step {
  display: flex;
  gap: .75rem;
  padding: 1rem;
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
}
.shop-step-icon {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--accent);
  color: #fff;
}
.shop-step-icon svg { width: 18px; height: 18px; }
.shop-step strong { display: block; font-size: .9rem; margin-bottom: .2rem; }
.shop-step span { font-size: .82rem; color: var(--ink-soft); line-height: 1.4; }

.shop-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}
.shop-card {
  display: flex;
  flex-direction: column;
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--line-soft);
  background: var(--surface);
  text-decoration: none;
  color: inherit;
  transition: box-shadow .2s, transform .2s;
}
.shop-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.shop-card img { width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.shop-card-tag {
  position: absolute;
  margin: .65rem;
  padding: .25rem .55rem;
  font-size: .72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  background: var(--accent);
  color: #fff;
  border-radius: 999px;
}
.shop-card { position: relative; }
.shop-card-body { padding: 1rem 1.1rem 1.15rem; }
.shop-card-body h3 { font-size: 1rem; margin: 0 0 .35rem; font-family: var(--font-head); }
.shop-card-body p { margin: 0 0 .5rem; font-size: .85rem; color: var(--ink-soft); }
.shop-card-link { font-size: .85rem; font-weight: 600; color: var(--accent); }

.shop-brands-bar {
  margin-top: 1.5rem;
  padding: 2rem 0;
  background: var(--bg-alt);
  border-top: 1px solid var(--line-soft);
}
.shop-brands-label {
  text-align: center;
  font-size: .82rem;
  color: var(--ink-soft);
  margin: 0 0 1rem;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.shop-brands {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
}
.shop-brands img {
  height: 36px;
  width: auto;
  max-width: 100px;
  object-fit: contain;
  filter: grayscale(1);
  opacity: .75;
  transition: filter .2s, opacity .2s;
}
.shop-brands img:hover { filter: none; opacity: 1; }

.shop-sub-body { padding: 2rem 0; }
.shop-sub-split {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 2rem;
  align-items: start;
}
.shop-sub-copy { font-size: .92rem; }

/* --- Area pages --- */
.area-hero { position: relative; }
.area-hero-badge {
  display: inline-block;
  margin-bottom: .5rem;
  padding: .3rem .65rem;
  font-size: .75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  background: var(--accent);
  color: #fff;
  border-radius: 999px;
}
.area-body { padding: 0 0 1rem; }
.area-seo-copy { margin: clamp(1.25rem, 3vw, 2rem) auto; max-width: var(--maxw); }
.area-perks {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  padding: 2rem 0 1.5rem;
}
.area-perk {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 1.25rem 1rem;
  background: var(--bg-alt);
  border-radius: var(--radius);
  border: 1px solid var(--line-soft);
}
.area-perk img { margin-bottom: .5rem; }
.area-perk strong { font-size: .95rem; font-family: var(--font-head); }
.area-perk span { font-size: .82rem; color: var(--ink-soft); }

.area-gallery-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .75rem;
  padding-bottom: 2rem;
}
.area-gal-item {
  margin: 0;
  border-radius: var(--radius);
  overflow: hidden;
  aspect-ratio: 4/3;
}
.area-gal-item img { width: 100%; height: 100%; object-fit: cover; display: block; }

.area-services-wrap h2, .area-nb-wrap h2 {
  font-family: var(--font-head);
  font-size: 1.2rem;
  margin-bottom: 1rem;
}
.area-services {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  padding-bottom: 2rem;
}
.area-svc-card {
  display: flex;
  flex-direction: column;
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--line-soft);
  text-decoration: none;
  color: inherit;
  transition: box-shadow .2s;
}
.area-svc-card:hover { box-shadow: var(--shadow-md); }
.area-svc-card img { width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.area-svc-card span {
  padding: .65rem .75rem;
  font-size: .88rem;
  font-weight: 600;
  font-family: var(--font-head);
  background: var(--surface);
}

.area-nb-wrap { padding-bottom: 2rem; }
.area-nb-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.area-nb-chip {
  padding: .4rem .85rem;
  font-size: .85rem;
  background: var(--bg-alt);
  border: 1px solid var(--line-soft);
  border-radius: 999px;
}

/* --- Areas hub --- */
.areas-hub-body { padding: 2rem 0; }
.areas-hub-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}
.areas-hub-card {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  aspect-ratio: 4/5;
  text-decoration: none;
  color: #fff;
}
.areas-hub-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s;
}
.areas-hub-card:hover img { transform: scale(1.05); }
.areas-hub-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 1rem;
  background: linear-gradient(transparent 40%, rgba(0,0,0,.75));
}
.areas-hub-overlay h3 { margin: 0; font-size: 1.1rem; font-family: var(--font-head); }
.areas-hub-overlay span { font-size: .82rem; opacity: .9; }
.areas-hub-badge {
  position: absolute;
  top: .65rem;
  left: .65rem;
  z-index: 1;
  padding: .25rem .55rem;
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  background: var(--accent);
  border-radius: 999px;
}
.areas-hub-card--soon { opacity: .92; }

/* --- Reviews page --- */
.reviews-page-body { padding: 2rem 0 2.5rem; }
.reviews-page-platforms { margin-bottom: 2rem; padding-bottom: 2rem; border-bottom: 1px solid var(--line-soft); }
.reviews-page-platforms .btn { margin-left: auto; }
.reviews-awards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin-bottom: 2.5rem;
}
.reviews-award {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 1.25rem 1rem;
  background: var(--bg-alt);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
}
.reviews-award img { height: 48px; width: auto; object-fit: contain; margin-bottom: .65rem; }
.reviews-award strong { font-size: .88rem; font-family: var(--font-head); }
.reviews-award span { font-size: .78rem; color: var(--ink-soft); }
.reviews-section-title {
  font-family: var(--font-head);
  font-size: 1.25rem;
  margin-bottom: 1.25rem;
}
.reviews-page-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-bottom: 2rem;
}
.reviews-page-card { width: auto; flex-shrink: 1; }
.reviews-page-links {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 2.5rem;
}
.reviews-ext-link {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  padding: .75rem 1.15rem;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  text-decoration: none;
  color: inherit;
  font-weight: 600;
  font-size: .9rem;
  transition: box-shadow .2s;
}
.reviews-ext-link img { height: 28px; width: auto; }
.reviews-ext-link:hover { box-shadow: var(--shadow-md); }
.reviews-maps-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.25rem;
}
.reviews-map-card {
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--surface);
}
.reviews-map-head { padding: 1rem 1.1rem .75rem; }
.reviews-map-head h3 { margin: 0 0 .25rem; font-size: 1rem; font-family: var(--font-head); }
.reviews-map-head span { font-size: .82rem; color: var(--ink-soft); }
.reviews-map-card iframe { width: 100%; height: 280px; border: 0; display: block; }

/* --- References --- */
.references-body { padding: 0 0 1rem; }
.ref-logo-marquee {
  overflow: hidden;
  padding: 1.75rem 0;
  background: var(--bg-alt);
  border-bottom: 1px solid var(--line-soft);
  margin-bottom: 2rem;
}
.ref-logo-track {
  display: flex;
  gap: 2rem;
  width: max-content;
  animation: ref-marquee 40s linear infinite;
}
.ref-logo-track img {
  width: 72px;
  height: 72px;
  object-fit: contain;
  border-radius: var(--radius);
  background: #fff;
  padding: .35rem;
  border: 1px solid var(--line-soft);
}
@keyframes ref-marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.ref-spotlight {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 2rem;
  align-items: center;
  margin-bottom: 2.5rem;
}
.ref-spotlight img { width: 100%; border-radius: var(--radius-lg); aspect-ratio: 16/10; object-fit: cover; }
.ref-spotlight h2 { font-family: var(--font-head); font-size: 1.35rem; margin-bottom: .65rem; }
.ref-spotlight p { font-size: .92rem; color: var(--ink-soft); line-height: 1.55; margin-bottom: 1rem; }
.ref-categories {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.25rem;
}
.ref-category {
  padding: 1.25rem;
  background: var(--bg-alt);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-lg);
}
.ref-category-head {
  display: flex;
  gap: .85rem;
  align-items: flex-start;
  margin-bottom: 1rem;
}
.ref-category-icon {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--accent-soft);
  color: var(--accent);
}
.ref-category-icon svg { width: 22px; height: 22px; }
.ref-category h3 { margin: 0 0 .2rem; font-size: 1rem; font-family: var(--font-head); }
.ref-count { font-size: .78rem; color: var(--ink-soft); font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.ref-chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.ref-chip {
  padding: .35rem .7rem;
  font-size: .8rem;
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: 999px;
}
.ref-chip--more { background: var(--accent-soft); color: var(--accent); font-weight: 600; border-color: transparent; }

/* --- Partners --- */
.partners-body { padding: 2rem 0; }
.partners-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}
.partner-card {
  display: flex;
  flex-direction: column;
  padding: 1.25rem;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-lg);
  background: var(--surface);
}
.partner-card-icon {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--accent-soft);
  color: var(--accent);
  margin-bottom: .75rem;
}
.partner-card-icon svg { width: 20px; height: 20px; }
.partner-tag {
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--accent);
  margin-bottom: .35rem;
}
.partner-card h3 { margin: 0 0 .5rem; font-size: 1rem; font-family: var(--font-head); }
.partner-card p { margin: 0 0 1rem; font-size: .85rem; color: var(--ink-soft); line-height: 1.45; flex-grow: 1; }
.partner-card-foot { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; padding-top: .75rem; border-top: 1px solid var(--line-soft); }
.partner-phone { font-weight: 700; font-size: .88rem; color: inherit; text-decoration: none; }
.partner-card-link { font-size: .85rem; font-weight: 600; color: var(--accent); text-decoration: none; }

/* --- Legal --- */
.page-hero--legal { min-height: auto; padding-bottom: 2rem; }
.legal-body { padding: 2rem 0 3rem; }
.legal-layout {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 2.5rem;
  align-items: start;
}
.legal-nav {
  position: sticky;
  top: 6rem;
  display: flex;
  flex-direction: column;
  gap: .35rem;
}
.legal-nav a {
  font-size: .85rem;
  color: var(--ink-soft);
  text-decoration: none;
  padding: .35rem 0;
  border-bottom: 1px solid transparent;
}
.legal-nav a:hover { color: var(--accent); }
.legal-section { margin-bottom: 2rem; }
.legal-section h2 {
  font-family: var(--font-head);
  font-size: 1.1rem;
  margin-bottom: .65rem;
  padding-bottom: .5rem;
  border-bottom: 1px solid var(--line-soft);
}
.legal-prose { font-size: .9rem; color: var(--ink-soft); line-height: 1.6; }
.legal-prose p { margin: 0 0 .75rem; }
.legal-prose a { color: var(--accent); }

/* --- Payment --- */
.payment-body { padding: 2rem 0 3rem; }
.payment-split {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 2.5rem;
  align-items: start;
}
.payment-methods h2, .payment-form-wrap h2 {
  font-family: var(--font-head);
  font-size: 1.2rem;
  margin-bottom: 1rem;
}
.payment-methods-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .75rem;
  margin-bottom: 1rem;
}
.payment-method {
  padding: .85rem 1rem;
  background: var(--bg-alt);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
}
.payment-method strong { display: block; font-size: .9rem; margin-bottom: .2rem; }
.payment-method span { font-size: .82rem; color: var(--ink-soft); }
.payment-note { font-size: .85rem; color: var(--ink-soft); }
.payment-sub { font-size: .88rem; color: var(--ink-soft); margin-bottom: 1.25rem; }
.payment-form-wrap {
  padding: 1.5rem;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-lg);
  background: var(--surface);
}
.payment-paypal .payment-field { margin-bottom: 1rem; }
.payment-paypal label { display: block; font-size: .85rem; font-weight: 600; margin-bottom: .35rem; }
.payment-paypal input {
  width: 100%;
  max-width: 100%;
  padding: .6rem .75rem;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  font-size: .95rem;
}
.payment-error { color: var(--accent); font-size: .82rem; text-align: center; }
#paypal-button-container { margin-top: 1rem; text-align: center; }

/* --- Blog --- */
.blog-body { padding: 2rem 0 2.5rem; }
.blog-section-label {
  font-family: var(--font-head);
  font-size: 1.15rem;
  margin-bottom: 1rem;
}
.blog-featured {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  margin-bottom: 2.5rem;
}
.blog-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}
.blog-filters { display: flex; flex-wrap: wrap; gap: .45rem; }
.blog-filter {
  padding: .4rem .85rem;
  font-size: .82rem;
  font-weight: 600;
  font-family: var(--font-head);
  border: 1px solid var(--line-soft);
  border-radius: 999px;
  background: var(--surface);
  color: var(--ink-soft);
  cursor: pointer;
  transition: background .2s, color .2s, border-color .2s;
}
.blog-filter:hover { border-color: var(--accent); color: var(--accent); }
.blog-filter.is-active {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
.blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}
.blog-card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--surface);
  text-decoration: none;
  color: inherit;
  transition: box-shadow .2s, transform .2s;
}
.blog-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.blog-card.is-hidden { display: none; }
.blog-card-img { margin: 0; aspect-ratio: 16/10; overflow: hidden; }
.blog-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.blog-card-body { padding: 1rem 1.1rem 1.15rem; display: flex; flex-direction: column; flex-grow: 1; }
.blog-card-tag {
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--accent);
  margin-bottom: .4rem;
}
.blog-card h3 { margin: 0 0 .45rem; font-size: .98rem; font-family: var(--font-head); line-height: 1.35; }
.blog-card p { margin: 0 0 .65rem; font-size: .84rem; color: var(--ink-soft); line-height: 1.45; flex-grow: 1; }
.blog-card-meta { font-size: .78rem; color: var(--ink-mute); }
.blog-empty { text-align: center; color: var(--ink-soft); padding: 2rem 0; }

.blog-post-hero .blog-post-tag {
  display: inline-block;
  margin-bottom: .5rem;
  padding: .3rem .65rem;
  font-size: .75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  background: var(--accent);
  color: #fff;
  border-radius: 999px;
}
.blog-post-date { font-size: .88rem; color: rgba(255,255,255,.85); margin-top: .5rem; }
.blog-post-body { padding: 2rem 0 2.5rem; }
.blog-post-layout {
  display: grid;
  grid-template-columns: 1fr 260px;
  gap: 2.5rem;
  align-items: start;
}
.blog-prose { font-size: .95rem; line-height: 1.65; }
.blog-prose h1, .blog-prose h2, .blog-prose h3 {
  font-family: var(--font-head);
  margin: 1.5rem 0 .65rem;
  line-height: 1.3;
}
.blog-prose h1 { font-size: 1.35rem; }
.blog-prose h2 { font-size: 1.15rem; }
.blog-prose p { margin: 0 0 1rem; color: var(--ink-soft); }
.blog-prose ul, .blog-prose ol { margin: 0 0 1rem 1.25rem; color: var(--ink-soft); }
.blog-prose li { margin-bottom: .35rem; }
.blog-prose a { color: var(--accent); }
.blog-prose img { max-width: 100%; height: auto; border-radius: var(--radius); margin: 1rem 0; }
.blog-prose iframe { width: 100%; min-height: 320px; border: 0; border-radius: var(--radius); margin: 1rem 0; }
.blog-related {
  position: sticky;
  top: 6rem;
  padding: 1.15rem;
  background: var(--bg-alt);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-lg);
}
.blog-related h3 { font-size: .95rem; font-family: var(--font-head); margin: 0 0 .85rem; }
.blog-related-item {
  display: block;
  padding: .65rem 0;
  border-bottom: 1px solid var(--line-soft);
  text-decoration: none;
  color: inherit;
}
.blog-related-item:last-child { border-bottom: 0; padding-bottom: 0; }
.blog-related-item strong { display: block; font-size: .85rem; line-height: 1.35; margin-bottom: .2rem; }
.blog-related-item span { font-size: .75rem; color: var(--ink-mute); }
.blog-related-item:hover strong { color: var(--accent); }

/* --- Mission / Careers --- */
.mission-body, .careers-body { padding: 2rem 0 2.5rem; }
.mission-split {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 2.5rem;
  align-items: start;
}
.mission-photo { margin: 0; border-radius: var(--radius-lg); overflow: hidden; }
.mission-photo img { width: 100%; display: block; aspect-ratio: 4/3; object-fit: cover; }
.mission-photo figcaption { padding: .65rem 1rem; font-size: .82rem; color: var(--ink-soft); background: var(--bg-alt); }
.mission-copy h2 { font-family: var(--font-head); font-size: 1.25rem; margin-bottom: .65rem; }
.mission-copy > p { font-size: .92rem; color: var(--ink-soft); line-height: 1.55; margin-bottom: 1.25rem; }
.mission-pillars { display: grid; gap: .85rem; }
.mission-pillar {
  padding: 1rem 1.1rem;
  background: var(--bg-alt);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
}
.mission-pillar-icon {
  width: 40px; height: 40px;
  display: grid; place-items: center;
  border-radius: 50%;
  background: var(--accent-soft);
  color: var(--accent);
  margin-bottom: .55rem;
}
.mission-pillar-icon svg { width: 20px; height: 20px; }
.mission-pillar h3 { margin: 0 0 .35rem; font-size: .95rem; font-family: var(--font-head); }
.mission-pillar p { margin: 0; font-size: .85rem; color: var(--ink-soft); line-height: 1.45; }

.careers-intro { font-size: .95rem; color: var(--ink-soft); line-height: 1.55; margin-bottom: 1.5rem; max-width: 52rem; }
.careers-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; margin-bottom: 1.5rem; }
.career-card {
  padding: 1.25rem;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-lg);
  background: var(--surface);
}
.career-icon {
  width: 44px; height: 44px;
  display: grid; place-items: center;
  border-radius: 50%;
  background: var(--accent-soft);
  color: var(--accent);
  margin-bottom: .75rem;
}
.career-icon svg { width: 22px; height: 22px; }
.career-card h3 { margin: 0 0 .5rem; font-size: 1rem; font-family: var(--font-head); }
.career-card p { margin: 0; font-size: .85rem; color: var(--ink-soft); line-height: 1.5; }
.careers-note {
  padding: 1.15rem 1.25rem;
  background: var(--bg-alt);
  border-left: 3px solid var(--accent);
  border-radius: var(--radius);
  font-size: .88rem;
  color: var(--ink-soft);
}
.careers-note strong { display: block; margin-bottom: .35rem; color: var(--ink); }
.careers-note p { margin: .5rem 0 0; }
.careers-note a { color: var(--accent); font-weight: 600; }

/* --- Glossary --- */
.glossary-body { padding: 0 0 2.5rem; }
.glossary-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
  justify-content: space-between;
  padding: 1.5rem 0 1rem;
  position: sticky;
  top: 4.5rem;
  z-index: 5;
  background: var(--bg);
  border-bottom: 1px solid var(--line-soft);
  margin-bottom: 1.25rem;
}
.glossary-search {
  flex: 1;
  min-width: 200px;
  max-width: 320px;
  padding: .55rem .85rem;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  font-size: .9rem;
}
.glossary-letters { display: flex; flex-wrap: wrap; gap: .35rem; }
.glossary-letter {
  width: 2rem; height: 2rem;
  display: grid; place-items: center;
  font-size: .82rem;
  font-weight: 700;
  text-decoration: none;
  color: var(--ink-soft);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
}
.glossary-letter:hover { color: var(--accent); border-color: var(--accent); }
.glossary-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem 1.25rem;
}
.glossary-group {
  grid-column: 1 / -1;
  font-family: var(--font-head);
  font-size: 1.35rem;
  margin: 1rem 0 .25rem;
  padding-top: .5rem;
  border-top: 2px solid var(--accent-soft);
}
.glossary-group:first-child { margin-top: 0; border-top: 0; padding-top: 0; }
.glossary-term {
  padding: 1rem 1.1rem;
  background: var(--bg-alt);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
}
.glossary-term.is-hidden { display: none; }
.glossary-term h3 { margin: 0 0 .4rem; font-size: .95rem; font-family: var(--font-head); color: var(--accent); }
.glossary-term p { margin: 0; font-size: .85rem; color: var(--ink-soft); line-height: 1.5; }
.glossary-empty { text-align: center; color: var(--ink-soft); padding: 2rem 0; }
.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;
}

/* ============ INNER PAGE POLISH v2 ============ */
body.page-inner .page-hero h1 { max-width: 22ch; letter-spacing: -.025em; }
body.page-inner .page-hero--compact h1 { max-width: 26ch; font-size: clamp(1.75rem, 3.5vw, 2.65rem); }

.page-hero--minimal::before { display: none; }
.page-hero--minimal::after {
  background: linear-gradient(135deg, #161214 0%, #2a2226 48%, #1e1a1c 100%);
}
.page-hero--minimal {
  min-height: clamp(200px, 28vh, 280px);
  padding-bottom: clamp(2rem, 4vw, 2.5rem);
}
.page-hero--legal::before { display: none; }
.page-hero--legal::after {
  background: linear-gradient(135deg, #161214 0%, #2a2226 48%, #1e1a1c 100%);
}

/* Unified page body rhythm */
.about-body,
.area-body,
.areas-hub-body,
.blog-body,
.contact-body,
.faq-body,
.faq-page-body,
.gal-page-body,
.legal-body,
.mission-body,
.payment-body,
.references-body,
.reviews-page-body,
.shop-body,
.svc-page-body { padding: var(--section-y-sm) 0 var(--section-y); }

.inner-section-label,
.blog-section-label {
  font-family: var(--font-head);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink-mute);
  margin-bottom: 1rem;
}

/* Shop-at-Home hub body */
.shop-body { background: var(--bg); }
.shop-steps-wrap,
.shop-cards-wrap { padding: var(--section-y-sm) 0; }
.shop-steps-wrap h2,
.shop-cards-wrap h2 {
  font-size: var(--text-h2);
  margin-bottom: 1.25rem;
}

/* Service sub-pages */
.svc-sub-page .svc-page-main > * + * { margin-top: clamp(1.75rem, 3vw, 2.25rem); }
.svc-sub-page .svc-page-process h2 {
  font-size: var(--text-h2);
  margin-bottom: .75rem;
}
.svc-sub-prose h1 { display: none; }
.svc-sub-prose h2 { font-size: 1.25rem; margin: 1.5rem 0 .65rem; }
.svc-sub-prose h3 { font-size: 1.05rem; margin: 1.25rem 0 .5rem; }
.svc-sub-prose p,
.svc-sub-prose li { font-size: .95rem; color: var(--ink-soft); line-height: 1.65; }
.svc-sub-prose ul,
.svc-sub-prose ol { margin: .75rem 0 1rem 1.25rem; }
.svc-page-sidebar { position: sticky; top: var(--sticky-top); }
.svc-page-sidebar-card,
.svc-page-sidebar .inner-aside-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 1.25rem;
  box-shadow: var(--shadow-sm);
}
.svc-page-sidebar-card h3,
.svc-page-sidebar .inner-aside-card h3 {
  font-size: 1rem;
  margin-bottom: .65rem;
}
.svc-page-related,
.svc-page-sidebar nav {
  display: flex;
  flex-direction: column;
  gap: .35rem;
  margin-top: .75rem;
}
.svc-page-related a,
.svc-page-sidebar nav a {
  font-family: var(--font-head);
  font-size: .88rem;
  font-weight: 600;
  color: var(--ink-soft);
  padding: .45rem 0;
  border-bottom: 1px solid var(--line-soft);
  transition: color .2s;
}
.svc-page-related a:hover,
.svc-page-sidebar nav a:hover { color: var(--accent); }
.svc-page-related a:last-child,
.svc-page-sidebar nav a:last-child { border-bottom: 0; }

/* About sub-pages */
.about-sub-page .about-body { padding-top: var(--section-y); }
.about-sub-page .about-prose {
  max-width: 720px;
  font-size: .95rem;
  color: var(--ink-soft);
  line-height: 1.65;
}
.about-sub-page .about-prose h2 { font-size: 1.2rem; margin: 1.5rem 0 .65rem; color: var(--ink); }
.about-sub-page .about-prose p { margin-bottom: .85rem; }
.about-sub-page .about-prose ul,
.about-sub-page .about-prose ol { margin: .75rem 0 1rem 1.25rem; }
.about-highlights-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: .85rem;
}
.about-highlight-card {
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-lg);
  padding: 1.15rem 1.2rem;
  transition: border-color .25s, box-shadow .25s, transform .25s var(--ease);
}
.about-highlight-card:hover {
  border-color: rgba(227,25,55,.2);
  box-shadow: var(--shadow-sm);
  transform: translateY(-2px);
}
.about-highlight-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: var(--accent-soft);
  color: var(--accent);
  font-family: var(--font-head);
  font-size: .75rem;
  font-weight: 800;
  margin-bottom: .65rem;
}
.about-highlight-card h3 { font-size: .98rem; margin-bottom: .4rem; line-height: 1.3; }
.about-highlight-card p { font-size: .86rem; color: var(--ink-soft); line-height: 1.55; margin: 0; }

.about-explore {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .65rem;
  padding: var(--section-y-sm) 0 0;
  margin-bottom: -.5rem;
}
.about-explore-card {
  display: flex;
  flex-direction: column;
  gap: .25rem;
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  padding: .9rem 1rem;
  transition: border-color .2s, box-shadow .2s, transform .2s var(--ease);
}
.about-explore-card:hover {
  border-color: rgba(227,25,55,.22);
  box-shadow: var(--shadow-sm);
  transform: translateY(-2px);
}
.about-explore-card strong { font-family: var(--font-head); font-size: .92rem; color: var(--ink); }
.about-explore-card span { font-size: .78rem; color: var(--ink-mute); line-height: 1.4; }

/* FAQ sub-pages */
.faq-sub-page .faq-body { padding: var(--section-y-sm) 0 var(--section-y); }
.faq-split {
  display: grid;
  grid-template-columns: minmax(200px, 240px) 1fr;
  gap: clamp(1.25rem, 3vw, 2rem);
  align-items: start;
}
.faq-sidebar {
  position: sticky;
  top: var(--sticky-top);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 1.1rem;
  box-shadow: var(--shadow-sm);
}
.faq-sidebar h2 {
  font-size: .72rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-mute);
  margin-bottom: .65rem;
}
.faq-sidebar-nav {
  display: flex;
  flex-direction: column;
  gap: .15rem;
}
.faq-sidebar-nav a {
  font-family: var(--font-head);
  font-size: .86rem;
  font-weight: 600;
  color: var(--ink-soft);
  padding: .45rem .55rem;
  border-radius: var(--radius-sm);
  transition: background .2s, color .2s;
}
.faq-sidebar-nav a:hover { color: var(--accent); background: var(--accent-soft); }
.faq-sidebar-nav a.is-active {
  color: var(--accent);
  background: var(--accent-soft);
}
.faq-sidebar-glossary {
  display: block;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line-soft);
  font-size: .85rem;
  font-weight: 600;
  color: var(--accent);
}
.faq-main .faq-list,
.faq-main .faq-page-list { display: flex; flex-direction: column; gap: .55rem; }
.faq-item,
.faq-main details {
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  overflow: hidden;
}
.faq-item summary,
.faq-main details summary {
  padding: .9rem 1rem;
  font-family: var(--font-head);
  font-size: .92rem;
  font-weight: 600;
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
  transition: color .2s, background .2s;
}
.faq-item summary::-webkit-details-marker,
.faq-main details summary::-webkit-details-marker { display: none; }
.faq-item summary::after,
.faq-main details summary::after {
  content: '+';
  font-size: 1.15rem;
  font-weight: 400;
  color: var(--accent);
  flex-shrink: 0;
  line-height: 1.2;
}
.faq-item[open] summary::after,
.faq-main details[open] summary::after { content: '−'; }
.faq-item[open] summary,
.faq-main details[open] summary {
  color: var(--accent);
  background: var(--accent-soft);
}
.faq-item .faq-a,
.faq-main details .faq-a {
  padding: 0 1rem .9rem;
  font-size: .88rem;
  color: var(--ink-soft);
  line-height: 1.6;
}
.faq-item .faq-a.content-prose p { margin-bottom: .65rem; }

/* Blog redirect stubs */
.inner-redirect {
  padding: var(--section-y) 0;
  min-height: 50vh;
  display: flex;
  align-items: center;
}
.inner-redirect-card {
  max-width: 28rem;
  margin: 0 auto;
  text-align: center;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: clamp(2rem, 5vw, 2.75rem);
  box-shadow: var(--shadow-md);
}
.inner-redirect-card .eyebrow { margin-bottom: 1rem; }
.inner-redirect-card h1 {
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
  margin-bottom: .65rem;
  color: var(--ink);
}
.inner-redirect-card .page-lead {
  color: var(--ink-soft);
  font-size: .95rem;
  margin-bottom: 1.5rem;
  max-width: none;
}

/* Blog post prose */
.blog-prose { font-size: .96rem; line-height: 1.7; color: var(--ink-soft); }
.blog-prose h2 { font-size: 1.35rem; color: var(--ink); margin: 2rem 0 .75rem; }
.blog-prose h3 { font-size: 1.1rem; color: var(--ink); margin: 1.5rem 0 .5rem; }
.blog-prose p { margin-bottom: 1rem; }
.blog-prose ul, .blog-prose ol { margin: .75rem 0 1rem 1.25rem; }
.blog-prose img { border-radius: var(--radius); margin: 1.25rem 0; }

/* Legal prose alignment */
.legal-prose { font-size: .92rem; }

/* Cross-link grids — used on all inner sub-pages */
.inner-sub-grid-wrap { margin: clamp(1.75rem, 3vw, 2.5rem) 0 0; }
.inner-sub-grid-title {
  font-size: var(--text-h2);
  margin-bottom: 1rem;
}
.inner-sub-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .65rem;
}
.inner-sub-card {
  display: flex;
  flex-direction: column;
  gap: .3rem;
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  padding: .9rem 1rem;
  transition: border-color .2s, box-shadow .2s, transform .2s var(--ease);
  text-decoration: none;
  color: inherit;
}
.inner-sub-card:hover {
  border-color: rgba(227,25,55,.22);
  box-shadow: var(--shadow-sm);
  transform: translateY(-2px);
}
.inner-sub-card--active {
  border-color: var(--accent);
  background: var(--accent-soft);
}
.inner-sub-card strong {
  font-family: var(--font-head);
  font-size: .92rem;
  color: var(--ink);
  line-height: 1.3;
}
.inner-sub-card span {
  font-size: .78rem;
  color: var(--ink-soft);
  line-height: 1.45;
}
.inner-sub-chips {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin: .85rem 0 1rem;
}
.inner-sub-chip {
  font-family: var(--font-head);
  font-size: .78rem;
  font-weight: 600;
  color: var(--ink-soft);
  padding: .35rem .65rem;
  border-radius: 999px;
  background: var(--bg-alt);
  border: 1px solid var(--line-soft);
  transition: background .2s, color .2s, border-color .2s;
  text-decoration: none;
}
.inner-sub-chip:hover,
.inner-sub-chip.is-active {
  color: var(--accent);
  background: var(--accent-soft);
  border-color: rgba(227,25,55,.25);
}

/* ============ INNER PAGE POLISH v3 — visual variety ============ */
body.page-inner {
  background-color: var(--bg);
  background-image:
    radial-gradient(ellipse 90% 50% at 0% 0%, rgba(227,25,55,.045) 0%, transparent 55%),
    radial-gradient(ellipse 70% 45% at 100% 100%, rgba(20,20,20,.04) 0%, transparent 50%);
}

/* Tone heroes — no random logos / stock photos on text pages */
.page-hero--tone-about::before,
.page-hero--tone-faq::before,
.page-hero--tone-shop::before { display: none; }
.page-hero--tone-about::after {
  background:
    radial-gradient(ellipse 75% 60% at 12% 100%, rgba(227,25,55,.38) 0%, transparent 58%),
    radial-gradient(ellipse 55% 45% at 92% 18%, rgba(245,166,35,.14) 0%, transparent 52%),
    linear-gradient(135deg, #130f11 0%, #2a2026 48%, #161418 100%);
}
.page-hero--tone-faq::after {
  background:
    radial-gradient(ellipse 70% 55% at 88% 85%, rgba(94,197,160,.16) 0%, transparent 55%),
    radial-gradient(ellipse 50% 40% at 8% 20%, rgba(227,25,55,.12) 0%, transparent 50%),
    linear-gradient(145deg, #101218 0%, #1a2430 46%, #12161c 100%);
}
.page-hero--tone-shop::after {
  background:
    radial-gradient(ellipse 65% 50% at 18% 92%, rgba(245,166,35,.22) 0%, transparent 55%),
    linear-gradient(135deg, #181410 0%, #2c2418 50%, #141210 100%);
}
.page-hero-deco {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .35;
  background-image:
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 85%);
}

/* Content blocks — break up the flat template */
.inner-block {
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-lg);
  padding: clamp(1.25rem, 2.5vw, 1.75rem);
  box-shadow: var(--shadow-sm);
}
.inner-block--lead {
  background: linear-gradient(145deg, var(--surface) 0%, rgba(227,25,55,.04) 100%);
  border-color: rgba(227,25,55,.12);
}
.inner-block--areas {
  background: var(--trust-band);
  border-style: dashed;
  border-color: var(--line);
}
.inner-block-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.1rem;
  padding-bottom: .85rem;
  border-bottom: 1px solid var(--line-soft);
}
.inner-block-head--compact {
  margin-bottom: .85rem;
  padding-bottom: 0;
  border-bottom: 0;
}
.inner-block-head h2,
.inner-block-head .inner-sub-grid-title {
  font-size: clamp(1.15rem, 2vw, 1.4rem);
  margin: 0;
  line-height: 1.25;
}
.inner-block-kicker {
  display: block;
  font-family: var(--font-head);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: .35rem;
}
.inner-block--lead .inner-block-kicker { margin-bottom: .5rem; }
.inner-block--lead h2 { margin-top: 0; }

.inner-section--links {
  padding: var(--section-y-sm) 0;
  background: var(--trust-band);
  border-block: 1px solid var(--line-soft);
  margin-top: clamp(1.5rem, 3vw, 2rem);
}
.inner-section--links > .container {
  display: flex;
  justify-content: center;
}
.inner-section--links .inner-links-shell {
  width: 100%;
  max-width: 1040px;
  margin-inline: auto;
}
.inner-section--links .inner-sub-grid-wrap { margin: 0; width: 100%; }
.inner-section--links .inner-block-head {
  justify-content: center;
  text-align: center;
  width: 100%;
  margin-bottom: 1rem;
}
.inner-section--links .inner-block-head > div {
  width: 100%;
}
.inner-section--links .inner-sub-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
  width: 100%;
  margin: 0;
}
.inner-section--links .inner-sub-card {
  min-width: 0;
  max-width: none;
  width: 100%;
}

/* Service pages — timeline, bento gallery, sidebar polish */
.svc-page-body {
  background:
    linear-gradient(180deg, var(--bg) 0%, rgba(250,248,247,.6) 12%, var(--bg) 100%);
}
.svc-page-stats {
  border-top: 3px solid var(--accent);
}
.svc-page-stats-bar { margin-top: -2.75rem; }
.svc-page-stat strong {
  background: linear-gradient(135deg, var(--accent) 0%, #c41230 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.svc-page-content > .inner-block + .inner-block,
.svc-page-main > .inner-block + .inner-block,
.svc-page-main > .inner-block + .inner-section,
.svc-page-content > * + * { margin-top: clamp(1.15rem, 2.5vw, 1.65rem); }
.svc-page-includes {
  grid-template-columns: repeat(2, 1fr);
  gap: .75rem;
}
.svc-page-include {
  display: flex;
  gap: .75rem;
  align-items: flex-start;
  padding: .85rem .95rem;
  border-radius: var(--radius);
  border: 1px solid var(--line-soft);
  background: var(--bg);
  transition: border-color .2s, transform .2s var(--ease), box-shadow .2s;
}
.svc-page-include:hover {
  border-color: rgba(227,25,55,.22);
  transform: translateY(-2px);
  box-shadow: var(--shadow-sm);
}
.svc-page-include .ic {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--accent-soft);
  color: var(--accent);
  font-size: .95rem;
  margin-bottom: 0;
}
.svc-page-include h3 { margin-bottom: .2rem; }
.svc-sub-page .svc-page-process,
.svc-page .svc-page-process {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  position: relative;
  padding-left: 2.75rem;
}
.svc-sub-page .svc-page-process::before,
.svc-page .svc-page-process::before {
  content: '';
  position: absolute;
  left: 1.05rem;
  top: .75rem;
  bottom: .75rem;
  width: 2px;
  background: linear-gradient(180deg, var(--accent) 0%, var(--line-soft) 100%);
  border-radius: 2px;
}
.svc-page-step {
  position: relative;
  padding: .85rem 0 .85rem .25rem;
  border: none;
  background: transparent;
  border-radius: 0;
}
.svc-page-step .num {
  position: absolute;
  left: -2.75rem;
  top: .85rem;
  width: 2.1rem;
  height: 2.1rem;
  font-size: .82rem;
  box-shadow: 0 0 0 4px var(--surface);
}
.svc-sub-page .svc-page-gallery,
.svc-page .svc-page-gallery {
  grid-template-columns: 1.15fr .85fr;
  grid-template-rows: repeat(2, minmax(140px, 1fr));
  gap: .65rem;
}
.svc-sub-page .svc-page-gal-item:first-child,
.svc-page .svc-page-gal-item:first-child {
  grid-row: span 2;
  min-height: 280px;
}
.svc-page-gal-item {
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--line-soft);
}
.svc-page-sidebar .inner-aside-card,
.svc-page-aside.inner-aside-card {
  border-top: 3px solid var(--accent);
  background: linear-gradient(180deg, var(--surface) 0%, rgba(227,25,55,.03) 100%);
}
.svc-sub-prose {
  padding: clamp(1rem, 2vw, 1.35rem);
  background: var(--bg);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  border-left: 3px solid var(--accent);
}

/* About — featured first card + warmer body */
.about-sub-page .about-body {
  background: linear-gradient(180deg, var(--bg) 0%, rgba(255,251,248,.85) 100%);
}
.about-sub-page .about-highlights-grid {
  gap: 1rem;
}
.about-sub-page .about-highlight-card:first-child {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.25rem;
  align-items: start;
  padding: 1.5rem 1.65rem;
  background: linear-gradient(135deg, #1a1418 0%, #2d2329 100%);
  border: none;
  color: #fff;
  box-shadow: var(--shadow-md);
}
.about-sub-page .about-highlight-card:first-child h3 { color: #fff; font-size: 1.08rem; }
.about-sub-page .about-highlight-card:first-child p { color: rgba(255,255,255,.78); }
.about-sub-page .about-highlight-card:first-child .about-highlight-num {
  width: 2.5rem;
  height: 2.5rem;
  font-size: .85rem;
  background: rgba(227,25,55,.28);
  color: #ffb3bf;
  margin-bottom: 0;
}
.about-sub-page .about-highlight-card:not(:first-child) {
  border-left: 3px solid rgba(227,25,55,.35);
}
.about-sub-page .about-prose {
  padding: clamp(1.25rem, 2.5vw, 1.75rem);
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}

/* FAQ — card main column */
.faq-sub-page .faq-body {
  background: linear-gradient(180deg, var(--bg) 0%, rgba(240,244,248,.7) 100%);
}
.faq-sub-page .faq-main {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: clamp(1rem, 2vw, 1.35rem);
  box-shadow: var(--shadow-sm);
}
.faq-sub-page .faq-sidebar {
  border-left: 3px solid var(--accent);
}
.faq-sub-page .faq-item,
.faq-sub-page .faq-main details {
  border-radius: var(--radius-sm);
  transition: box-shadow .2s;
}
.faq-sub-page .faq-item[open],
.faq-sub-page .faq-main details[open] {
  box-shadow: var(--shadow-sm);
}

/* Areas — card grid polish */
.area-page .area-body { background: var(--bg); }
.area-page .area-perks {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .75rem;
  padding: var(--section-y-sm) 0;
}
.area-page .area-perk {
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-lg);
  padding: 1rem;
  text-align: center;
  transition: transform .2s var(--ease), box-shadow .2s;
}
.area-page .area-perk:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-sm);
}
.areas-hub-page .areas-hub-card {
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: transform .25s var(--ease), box-shadow .25s;
}
.areas-hub-page .areas-hub-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
}

/* Shop — warm section bands */
.shop-page .shop-body { background: linear-gradient(180deg, var(--bg) 0%, rgba(255,250,242,.9) 100%); }
.shop-page .shop-cards .shop-card,
.shop-sub .shop-benefit {
  border-radius: var(--radius-lg);
  transition: transform .2s var(--ease), box-shadow .2s;
}
.shop-page .shop-cards .shop-card:hover,
.shop-sub .shop-benefit:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-sm);
}

/* Cross-link cards — bento feel */
.inner-sub-grid {
  gap: .75rem;
}
.inner-sub-card {
  position: relative;
  padding: 1rem 1.1rem 1rem 1.15rem;
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.inner-sub-card::after {
  content: '→';
  position: absolute;
  right: 1rem;
  top: 1rem;
  font-family: var(--font-head);
  font-size: .85rem;
  color: var(--accent);
  opacity: 0;
  transform: translateX(-4px);
  transition: opacity .2s, transform .2s var(--ease);
}
.inner-sub-card:hover::after {
  opacity: 1;
  transform: translateX(0);
}
.inner-sub-card--active {
  box-shadow: inset 0 0 0 1px rgba(227,25,55,.15);
}
.inner-sub-card strong { font-size: .95rem; }

/* CTA bar — richer finish */
.inner-cta-bar {
  position: relative;
  overflow: hidden;
  background: linear-gradient(125deg, #1a1214 0%, #2d181e 45%, #141214 100%);
  margin-top: 0;
}
.inner-cta-bar::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 50% 80% at 100% 50%, rgba(227,25,55,.25) 0%, transparent 55%),
    radial-gradient(ellipse 40% 60% at 0% 100%, rgba(245,166,35,.08) 0%, transparent 50%);
  pointer-events: none;
}
.inner-cta-bar .container { position: relative; z-index: 1; }

/* ============ INNER PAGE POLISH v4 — blog, contact, gallery ============ */

/* Tone heroes */
.page-hero--tone-blog::before,
.page-hero--tone-contact::before { display: none; }
.page-hero--tone-blog::after {
  background:
    radial-gradient(ellipse 70% 55% at 10% 90%, rgba(94,197,160,.14) 0%, transparent 55%),
    radial-gradient(ellipse 55% 45% at 90% 15%, rgba(227,25,55,.18) 0%, transparent 50%),
    linear-gradient(140deg, #10141a 0%, #1c2430 50%, #12161c 100%);
}
.page-hero--tone-contact::after {
  background:
    radial-gradient(ellipse 65% 50% at 85% 80%, rgba(227,25,55,.28) 0%, transparent 55%),
    radial-gradient(ellipse 50% 40% at 15% 25%, rgba(245,166,35,.12) 0%, transparent 50%),
    linear-gradient(135deg, #141018 0%, #231a28 48%, #161418 100%);
}

/* Shared stats bars (blog, gallery, contact) */
.blog-stats-bar,
.gal-stats-bar,
.contact-stats-bar {
  position: relative;
  z-index: 2;
  margin-top: -2.25rem;
  margin-bottom: .35rem;
}
.blog-stats,
.gal-stats,
.contact-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .65rem;
  background: var(--surface);
  border: 1px solid var(--line);
  border-top: 3px solid var(--accent);
  border-radius: var(--radius-lg);
  padding: 1rem 1.15rem;
  box-shadow: var(--shadow-md);
}
.blog-stat,
.gal-stat,
.contact-stat {
  text-align: center;
  padding: .5rem .35rem;
  border-right: 1px solid var(--line-soft);
}
.blog-stat:last-child,
.gal-stat:last-child,
.contact-stat:last-child { border-right: 0; }
.blog-stat strong,
.gal-stat strong,
.contact-stat strong {
  display: block;
  font-family: var(--font-head);
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  font-weight: 800;
  color: var(--accent);
  line-height: 1.1;
}
.blog-stat span,
.gal-stat span,
.contact-stat span {
  font-size: .76rem;
  color: var(--ink-soft);
  margin-top: .2rem;
  display: block;
}

/* —— Blog hub —— */
.blog-page .blog-body {
  background: linear-gradient(180deg, var(--bg) 0%, rgba(240,246,252,.65) 100%);
}
.blog-body-stack {
  display: flex;
  flex-direction: column;
  gap: clamp(1.25rem, 2.5vw, 1.75rem);
}
.blog-featured-wrap { padding-bottom: .5rem; }
.blog-featured {
  grid-template-columns: 1.15fr .85fr;
  grid-template-rows: repeat(2, minmax(180px, auto));
  gap: .85rem;
  margin-bottom: 0;
}
.blog-card--hero {
  grid-row: span 2;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-md);
}
.blog-card--hero .blog-card-img { aspect-ratio: auto; min-height: 100%; flex: 1; }
.blog-card--hero .blog-card-body { padding: 1.25rem 1.35rem 1.35rem; }
.blog-card--hero h3 { font-size: 1.15rem; }
.blog-card {
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--line-soft);
  background: var(--surface);
  transition: transform .25s var(--ease), box-shadow .25s, border-color .25s;
}
.blog-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
  border-color: rgba(227,25,55,.2);
}
.blog-card-tag {
  align-self: flex-start;
  background: var(--accent-soft);
  color: var(--accent);
  border: none;
  padding: .28rem .55rem;
  border-radius: 999px;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.blog-all-wrap .blog-toolbar {
  align-items: flex-end;
  margin-bottom: 1rem;
}
.blog-grid { gap: .85rem; }

/* —— Blog post —— */
.blog-post-page .blog-post-hero { min-height: clamp(240px, 38vh, 360px); }
.blog-post-page .blog-post-hero h1 { max-width: 28ch; }
.blog-post-meta-bar {
  position: relative;
  z-index: 2;
  margin-top: -1.25rem;
  margin-bottom: .5rem;
}
.blog-post-meta-inner {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: .65rem .85rem;
  box-shadow: var(--shadow-sm);
}
.blog-post-meta-chip {
  font-family: var(--font-head);
  font-size: .78rem;
  font-weight: 600;
  color: var(--ink-soft);
  padding: .35rem .65rem;
  border-radius: 999px;
  background: var(--bg-alt);
  border: 1px solid var(--line-soft);
}
.blog-post-meta-chip--cat {
  color: var(--accent);
  background: var(--accent-soft);
  border-color: rgba(227,25,55,.2);
}
.blog-post-meta-chip--team { color: var(--ink-mute); }
.blog-post-body {
  background: linear-gradient(180deg, var(--bg) 0%, rgba(248,250,252,.8) 100%);
  padding: var(--section-y-sm) 0 var(--section-y);
}
.inner-block--article {
  padding: clamp(1.35rem, 2.5vw, 2rem);
}
.inner-block--article .blog-prose {
  max-width: 68ch;
}
.inner-block--article .blog-prose > *:first-child { margin-top: 0; }
.blog-post-foot {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: clamp(1.5rem, 3vw, 2rem);
  padding-top: 1.25rem;
  border-top: 1px solid var(--line-soft);
}
.blog-related.inner-block--aside {
  border-top: 3px solid var(--accent);
  padding: 1.25rem;
}
.blog-related.inner-block--aside h3 {
  font-size: 1rem;
  margin: 0 0 .85rem;
}
.blog-related-item {
  display: block;
  padding: .65rem 0;
  border-bottom: 1px solid var(--line-soft);
  transition: padding-left .2s;
}
.blog-related-item:hover { padding-left: .35rem; }
.blog-related-cta {
  width: 100%;
  margin-top: 1rem;
  text-align: center;
}

/* —— Contact —— */
.contact-page .contact-body {
  background: linear-gradient(180deg, var(--bg) 0%, rgba(255,251,248,.85) 100%);
  padding-top: var(--section-y-sm);
}
.inner-block--contact {
  border-left: 3px solid var(--accent);
}
.inner-block--form {
  border-top: 3px solid var(--accent);
  background: linear-gradient(180deg, var(--surface) 0%, rgba(227,25,55,.02) 100%);
  padding: clamp(1.25rem, 2.5vw, 1.65rem);
}
.inner-block--form .quote-form {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
}
.contact-trust-row {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-top: 1.15rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line-soft);
}
.contact-trust-row span {
  font-family: var(--font-head);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--ink-mute);
  padding: .35rem .6rem;
  border-radius: 999px;
  background: var(--bg-alt);
  border: 1px solid var(--line-soft);
}
.contact-areas-section {
  background: var(--trust-band);
  border-top: 1px solid var(--line-soft);
}

/* —— Gallery —— */
.gal-page .gal-page-body {
  background: linear-gradient(180deg, var(--bg) 0%, #f8f6f4 100%);
  padding-top: var(--section-y-sm);
}
.gal-page-stack {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.gal-page-toolbar {
  position: sticky;
  top: calc(var(--sticky-top) - .5rem);
  z-index: 5;
  padding: .85rem 1rem;
}
.gal-page-grid--masonry {
  grid-template-columns: repeat(4, 1fr);
  gap: .65rem;
}
.gal-page-item--wide {
  grid-column: span 2;
  grid-row: span 2;
  aspect-ratio: auto;
  min-height: 280px;
}
.gal-page-cat {
  position: absolute;
  top: .55rem;
  left: .55rem;
  z-index: 2;
  font-family: var(--font-head);
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #fff;
  background: rgba(10,8,8,.72);
  backdrop-filter: blur(6px);
  padding: .28rem .5rem;
  border-radius: 999px;
}
.gal-page-cap {
  background: linear-gradient(0deg, rgba(10,8,8,.88) 0%, transparent 100%);
  padding: 2rem .75rem .65rem;
  font-size: .8rem;
}
.gal-explore-section { padding: var(--section-y-sm) 0; }
.gal-explore-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .65rem;
}
.gal-explore-card {
  display: flex;
  flex-direction: column;
  gap: .25rem;
  padding: .95rem 1rem;
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-lg);
  transition: border-color .2s, transform .2s var(--ease), box-shadow .2s;
}
.gal-explore-card:hover {
  border-color: rgba(227,25,55,.22);
  transform: translateY(-2px);
  box-shadow: var(--shadow-sm);
}
.gal-explore-card strong {
  font-family: var(--font-head);
  font-size: .92rem;
  color: var(--ink);
}
.gal-explore-card span {
  font-size: .78rem;
  color: var(--ink-soft);
}

/* ============ INNER PAGE POLISH v5 — remaining pages ============ */

/* Reviews */
.reviews-page .reviews-page-body {
  background: linear-gradient(180deg, var(--bg) 0%, rgba(248,250,252,.75) 100%);
  padding: var(--section-y-sm) 0 var(--section-y);
}
.reviews-page-stack {
  display: flex;
  flex-direction: column;
  gap: clamp(1rem, 2vw, 1.35rem);
}
.reviews-page-platforms { margin: 0; }
.reviews-page-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: .85rem;
}
.review-card.reviews-page-card {
  border-radius: var(--radius-lg);
  border: 1px solid var(--line-soft);
  transition: transform .2s var(--ease), box-shadow .2s;
}
.review-card.reviews-page-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-sm);
}
.reviews-awards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .75rem;
}
.reviews-award {
  border-radius: var(--radius-lg);
  border: 1px solid var(--line-soft);
  overflow: hidden;
  transition: transform .2s var(--ease);
}
.reviews-award:hover { transform: translateY(-2px); }

/* References & partners */
.references-page .references-body,
.partners-page .partners-body {
  background: linear-gradient(180deg, var(--bg) 0%, rgba(255,251,248,.8) 100%);
  padding: var(--section-y-sm) 0 var(--section-y);
}
.inner-block.ref-spotlight.inner-block--split {
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  gap: clamp(1rem, 2.5vw, 1.5rem);
  align-items: center;
  padding: 0;
  overflow: hidden;
}
.inner-block.ref-spotlight.inner-block--split img {
  width: 100%;
  height: 100%;
  min-height: 240px;
  object-fit: cover;
}
.inner-block.ref-spotlight.inner-block--split > div { padding: 1.25rem 1.35rem 1.35rem 0; }
.ref-category {
  border-radius: var(--radius-lg);
  border-left: 3px solid var(--accent);
  transition: transform .2s var(--ease), box-shadow .2s;
}
.ref-category:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-sm);
}
.partners-grid-block .partner-card {
  border-radius: var(--radius-lg);
  transition: transform .2s var(--ease), box-shadow .2s, border-color .2s;
}
.partners-grid-block .partner-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
  border-color: rgba(227,25,55,.2);
}

/* Legal & payment */
.legal-page .legal-body,
.payment-page .payment-body {
  background: linear-gradient(180deg, var(--bg) 0%, rgba(248,248,250,.9) 100%);
  padding: var(--section-y-sm) 0 var(--section-y);
}
.legal-nav.inner-block--aside {
  border-left: 3px solid var(--accent);
  padding: 1.1rem;
  position: sticky;
  top: var(--sticky-top);
}
.legal-content.inner-block--article .legal-section {
  padding-bottom: 1.25rem;
  margin-bottom: 1.25rem;
  border-bottom: 1px solid var(--line-soft);
}
.legal-content.inner-block--article .legal-section:last-child {
  border-bottom: 0;
  margin-bottom: 0;
  padding-bottom: 0;
}
.payment-page .payment-split { align-items: start; gap: clamp(1rem, 2.5vw, 1.5rem); }
.payment-methods-grid .payment-method {
  border-radius: var(--radius);
  border: 1px solid var(--line-soft);
  background: var(--bg);
  transition: border-color .2s;
}
.payment-methods-grid .payment-method:hover { border-color: rgba(227,25,55,.22); }
.payment-stats-bar { margin-top: -1.75rem; }

/* FAQ hub */
.faq-page .faq-page-body {
  background: linear-gradient(180deg, var(--bg) 0%, rgba(240,244,248,.7) 100%);
  padding-bottom: var(--section-y);
}
.faq-stats-bar { margin-top: -1.75rem; margin-bottom: .5rem; }
.faq-page-nav.inner-block--aside {
  border-left: 3px solid var(--accent);
  padding: 1.15rem;
}
.faq-page-section.inner-block {
  margin-bottom: .85rem;
  padding: 1.15rem 1.25rem;
}
.faq-page-section.inner-block h2 {
  font-size: 1.05rem;
  margin-bottom: .75rem;
  padding-bottom: .5rem;
  border-bottom: 1px solid var(--line-soft);
}
.faq-page-item {
  border-radius: var(--radius-sm);
  margin-bottom: .4rem;
}

/* About hub */
.about-page .about-body {
  background: linear-gradient(180deg, var(--bg) 0%, rgba(255,251,248,.85) 100%);
}
.about-page .about-story-block,
.about-page .about-milestones-block,
.about-page .about-mosaic-block,
.about-page .about-founder-block,
.about-page .about-press-block {
  margin-bottom: clamp(1rem, 2vw, 1.35rem);
}
.about-page .about-highlights {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .65rem;
  margin-bottom: clamp(1rem, 2vw, 1.35rem);
}

/* Shop hub & subs */
.shop-page .shop-body-stack,
.shop-sub .shop-sub-stack {
  display: flex;
  flex-direction: column;
  gap: clamp(1rem, 2vw, 1.35rem);
}
.shop-hero-block { padding: clamp(1rem, 2vw, 1.35rem); }
.shop-cards .shop-card {
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: transform .25s var(--ease), box-shadow .25s;
}
.shop-cards .shop-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
}
.shop-sub-copy {
  padding: clamp(.85rem, 2vw, 1.1rem);
  background: var(--bg);
  border-radius: var(--radius);
  border-left: 3px solid var(--accent);
}

/* Areas hub & city pages */
.areas-hub-page .areas-hub-body { padding-top: var(--section-y-sm); }
.areas-stats-bar { margin-top: -2.25rem; }
.area-page .inner-block.area-services-wrap,
.area-page .inner-block.area-nb-wrap {
  margin-top: clamp(1rem, 2vw, 1.35rem);
}
.area-nb-chip {
  transition: background .2s, color .2s, border-color .2s;
}
.area-nb-chip:hover {
  background: var(--accent-soft);
  color: var(--accent);
  border-color: rgba(227,25,55,.25);
}

/* Mission, careers, glossary */
.mission-page .mission-body,
.careers-page .careers-body,
.glossary-page .glossary-body {
  background: linear-gradient(180deg, var(--bg) 0%, rgba(248,250,252,.75) 100%);
  padding: var(--section-y-sm) 0 var(--section-y);
}
.mission-split-block,
.careers-block,
.glossary-toolbar-block,
.glossary-grid-block {
  margin-bottom: clamp(1rem, 2vw, 1.25rem);
}
.glossary-toolbar-block {
  position: sticky;
  top: calc(var(--sticky-top) - .35rem);
  z-index: 4;
  padding: .85rem 1rem;
}
.glossary-term {
  border-radius: var(--radius);
  transition: border-color .2s, box-shadow .2s;
}
.glossary-term:hover {
  border-color: rgba(227,25,55,.2);
  box-shadow: var(--shadow-sm);
}
.career-card {
  border-radius: var(--radius-lg);
  transition: transform .2s var(--ease), box-shadow .2s;
}
.career-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-sm);
}

/* Services hub */
.svc-hub-intro-block {
  padding: clamp(1.25rem, 2.5vw, 1.75rem);
  margin-bottom: 0;
}
.services-hub-page .svc-hub-wrap,
.inner-main .svc-hub-wrap {
  background: var(--bg);
}

/* Blog redirect */
.blog-redirect-page .inner-redirect {
  padding: var(--section-y-sm) 0 var(--section-y);
  background: linear-gradient(180deg, var(--bg) 0%, rgba(240,246,252,.65) 100%);
}
.blog-redirect-page .inner-redirect-card {
  border-top: 3px solid var(--accent);
  text-align: center;
}
.blog-redirect-page .inner-redirect-card .btn { margin-top: .5rem; }

/* ============ INNER PAGE POLISH v6 — thin pages strengthened ============ */

/* About subs */
.about-sub-stack {
  display: flex;
  flex-direction: column;
  gap: clamp(1rem, 2vw, 1.35rem);
  padding: var(--section-y-sm) 0 var(--section-y);
}
.about-sub-page .about-sub-main { margin-bottom: 0; }
.about-sub-split.inner-block--split {
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  gap: clamp(1rem, 2.5vw, 1.5rem);
  align-items: center;
  padding: 0;
  overflow: hidden;
}
.about-sub-photo { margin: 0; }
.about-sub-photo img {
  width: 100%;
  height: 100%;
  min-height: 220px;
  object-fit: cover;
  border-radius: var(--radius-lg) 0 0 var(--radius-lg);
}
.about-sub-split > div { padding: 1.25rem 1.35rem 1.35rem 0; }
.about-checklist {
  list-style: none;
  margin: .75rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .55rem;
}
.about-checklist li {
  padding-left: 1.35rem;
  position: relative;
  color: var(--ink-muted);
  font-size: .92rem;
  line-height: 1.55;
}
.about-checklist li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--accent);
  font-weight: 700;
}
.about-promise-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .75rem;
}
.about-promise-mini {
  padding: 1rem 1.1rem;
  border-radius: var(--radius-lg);
  border: 1px solid var(--line-soft);
  background: var(--surface);
  display: flex;
  flex-direction: column;
  gap: .35rem;
}
.about-promise-mini strong { font-size: .95rem; color: var(--ink); }
.about-promise-mini span { font-size: .85rem; color: var(--ink-muted); line-height: 1.5; }
.about-process-block .about-process-steps { margin-top: .5rem; }
.about-sub-cta-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  background: linear-gradient(135deg, rgba(227,25,55,.06) 0%, rgba(255,251,248,.9) 100%);
  border: 1px solid rgba(227,25,55,.12);
}
.about-sub-cta-strip h3 { font-size: 1.05rem; margin: 0 0 .25rem; }
.about-sub-cta-strip p { margin: 0; font-size: .88rem; color: var(--ink-muted); }
.about-cert-logos,
.about-ref-logos {
  display: flex;
  flex-wrap: wrap;
  gap: .85rem;
  align-items: center;
}
.about-ref-logos img {
  width: 72px;
  height: 72px;
  object-fit: contain;
  border-radius: var(--radius);
  border: 1px solid var(--line-soft);
  background: #fff;
  padding: .35rem;
}
.about-why-intro { margin-bottom: 0; padding-bottom: 0; }
.about-why-lead {
  margin: 0;
  font-size: 1rem;
  color: var(--ink-muted);
  line-height: 1.65;
  max-width: 52ch;
}

/* Shop subs — offers grid */
.shop-offers-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: .75rem;
}
.shop-offers-grid--3 { grid-template-columns: repeat(3, 1fr); }
.shop-offer-card {
  padding: 1rem 1.1rem;
  border-radius: var(--radius-lg);
  border: 1px solid var(--line-soft);
  background: var(--surface);
  display: flex;
  flex-direction: column;
  gap: .35rem;
  transition: transform .2s var(--ease), box-shadow .2s, border-color .2s;
}
.shop-offer-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-sm);
  border-color: rgba(227,25,55,.18);
}
.shop-offer-card--featured {
  border-color: rgba(227,25,55,.25);
  background: linear-gradient(145deg, rgba(227,25,55,.04) 0%, var(--surface) 100%);
}
.shop-offer-tag {
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--accent);
}
.shop-offer-card strong { font-size: .98rem; color: var(--ink); }
.shop-offer-price {
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--accent);
}
.shop-offer-card p,
.shop-offer-card > p:last-child {
  margin: 0;
  font-size: .84rem;
  color: var(--ink-muted);
  line-height: 1.5;
}
.shop-offers-note {
  margin: .85rem 0 0;
  font-size: .82rem;
  color: var(--ink-muted);
}
.shop-brands-bar--sub { margin-top: var(--section-y-sm); }

/* Service subs — highlights strip */
.svc-sub-highlights { margin-top: 0; }
.svc-sub-highlights .shop-offer-card p { margin: 0; }

/* FAQ subs */
.faq-emergency-steps { margin-bottom: 1rem; }
.faq-flood-steps { margin-top: .5rem; }
.faq-emergency-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .85rem 1.25rem;
  margin: 1rem 0 0;
}
.faq-emergency-links a:not(.btn) {
  font-weight: 600;
  color: var(--accent);
  font-size: .92rem;
}
.faq-list-block .faq-list { margin-top: .25rem; }

/* Legal */
.legal-trust-bar {
  background: var(--ink);
  color: rgba(255,255,255,.85);
  padding: .65rem 0;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .03em;
  text-transform: uppercase;
}
.legal-trust-bar .container {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem 1.5rem;
  justify-content: center;
}
.legal-trust-bar span {
  display: flex;
  align-items: center;
  gap: .35rem;
}
.legal-trust-bar span::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--accent);
}

@media (max-width: 900px) {
  .inner-split { grid-template-columns: 1fr; }
  .inner-aside-card { position: static; }
  .svc-hub-layout { grid-template-columns: 1fr; }
  .svc-hub-nav { position: static; display: flex; flex-wrap: wrap; gap: .35rem; padding: .85rem; }
  .svc-hub-nav h3 { width: 100%; margin-bottom: .25rem; }
  .svc-hub-nav a { padding: .4rem .75rem; background: var(--bg); }
  .svc-hub-nav .nav-cta { width: 100%; }
  .svc-hub-featured { grid-template-columns: 1fr; }
  .svc-hub-featured-media { min-height: 180px; }
  .svc-hub-item { grid-template-columns: 88px 1fr auto; gap: .75rem; padding: .75rem; }
  .svc-hub-item--rich { grid-template-columns: 88px 1fr auto; }
  .svc-hub-item--rich .svc-hub-item-thumb { width: 88px; }
  .svc-hub-item-thumb { width: 88px; }
  .inner-cta-bar .container { flex-direction: column; align-items: flex-start; }
  .svc-hub-stats-bar .container { grid-template-columns: repeat(2, 1fr); }
  .svc-hub-stat:nth-child(2) { border-right: 0; }
  .svc-hub-stat { border-right: 0; border-bottom: 1px solid var(--line-soft); padding-bottom: .65rem; }
  .svc-hub-stat:nth-last-child(-n+2) { border-bottom: 0; padding-bottom: .5rem; }
  .svc-hub-intro-grid { grid-template-columns: 1fr; }
  .svc-hub-intro-points { grid-template-columns: 1fr; }
  .svc-hub-specialty-grid { grid-template-columns: 1fr; }
  .svc-hub-steps { grid-template-columns: 1fr 1fr; }
  .inner-section--links .inner-sub-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .svc-hub-promise-grid { grid-template-columns: 1fr 1fr; }
  .svc-hub-shop { grid-template-columns: 1fr; }
  .svc-hub-shop-media { min-height: 200px; }
  .svc-hub-faq-grid { grid-template-columns: 1fr; }
  .svc-hub-reviews { grid-template-columns: 1fr; }
  .svc-page-split { grid-template-columns: 1fr; }
  .svc-page-aside { position: static; }
  .svc-page-stats { grid-template-columns: repeat(2, 1fr); }
  .svc-page-stat:nth-child(2) { border-right: 0; }
  .svc-page-stat { border-right: 0; border-bottom: 1px solid var(--line-soft); padding-bottom: .65rem; }
  .svc-page-stat:nth-last-child(-n+2) { border-bottom: 0; padding-bottom: .5rem; }
  .svc-page-includes { grid-template-columns: 1fr; }
  .svc-page-process { grid-template-columns: 1fr; }
  .about-intro-grid, .about-split, .about-founder-split, .contact-split, .faq-page-layout { grid-template-columns: 1fr; }
  .about-milestones { grid-template-columns: repeat(2, 1fr); }
  .about-mosaic { grid-template-columns: repeat(3, 1fr); }
  .about-mosaic-item--wide { grid-column: span 2; }
  .about-highlights { grid-template-columns: repeat(3, 1fr); }
  .about-press-grid { grid-template-columns: repeat(2, 1fr); }
  .contact-regions-grid { grid-template-columns: repeat(2, 1fr); }
  .gal-page-grid { grid-template-columns: repeat(2, 1fr); }
  .faq-page-nav { position: static; }
  .shop-hero-split { grid-template-columns: 1fr; }
  .shop-benefits { grid-template-columns: 1fr; }
  .shop-steps { grid-template-columns: repeat(2, 1fr); }
  .shop-cards { grid-template-columns: 1fr; }
  .shop-sub-split { grid-template-columns: 1fr; }
  .area-perks { grid-template-columns: 1fr; }
  .area-gallery-strip { grid-template-columns: repeat(2, 1fr); }
  .area-services { grid-template-columns: repeat(2, 1fr); }
  .areas-hub-grid { grid-template-columns: repeat(2, 1fr); }
  .reviews-awards { grid-template-columns: repeat(2, 1fr); }
  .reviews-page-grid { grid-template-columns: 1fr 1fr; }
  .reviews-page-platforms { flex-direction: column; align-items: stretch; }
  .reviews-page-platforms .btn { margin-left: 0; width: 100%; text-align: center; }
  .reviews-maps-grid { grid-template-columns: 1fr; }
  .ref-spotlight { grid-template-columns: 1fr; }
  .ref-categories { grid-template-columns: 1fr; }
  .partners-grid { grid-template-columns: 1fr 1fr; }
  .legal-layout { grid-template-columns: 1fr; }
  .legal-nav { position: static; flex-direction: row; flex-wrap: wrap; gap: .5rem 1rem; }
  .payment-split { grid-template-columns: 1fr; }
  .blog-featured { grid-template-columns: 1fr; }
  .blog-grid { grid-template-columns: repeat(2, 1fr); }
  .blog-post-layout { grid-template-columns: 1fr; }
  .blog-related { position: static; }
  .mission-split { grid-template-columns: 1fr; }
  .careers-grid { grid-template-columns: 1fr; }
  .glossary-grid { grid-template-columns: 1fr; }
  .glossary-toolbar { position: static; }
  .faq-split { grid-template-columns: 1fr; }
  .faq-sidebar { position: static; }
  .about-highlights-grid { grid-template-columns: 1fr; }
  .about-explore { grid-template-columns: 1fr 1fr; }
  .inner-sub-grid { grid-template-columns: repeat(2, 1fr); }
  .svc-page-sidebar { position: static; }
  .svc-sub-page .svc-page-gallery,
  .svc-page .svc-page-gallery {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
  }
  .svc-sub-page .svc-page-gal-item:first-child,
  .svc-page .svc-page-gal-item:first-child {
    grid-row: span 1;
    min-height: 200px;
  }
  .about-sub-page .about-highlight-card:first-child { grid-template-columns: 1fr; }
  .blog-stats,
  .gal-stats,
  .contact-stats { grid-template-columns: repeat(2, 1fr); }
  .blog-stat:nth-child(2),
  .gal-stat:nth-child(2),
  .contact-stat:nth-child(2) { border-right: 0; }
  .blog-stat,
  .gal-stat,
  .contact-stat { border-right: 0; border-bottom: 1px solid var(--line-soft); padding-bottom: .65rem; }
  .blog-stat:nth-last-child(-n+2),
  .gal-stat:nth-last-child(-n+2),
  .contact-stat:nth-last-child(-n+2) { border-bottom: 0; padding-bottom: .5rem; }
  .blog-featured { grid-template-columns: 1fr; }
  .blog-card--hero { grid-row: span 1; }
  .gal-page-grid--masonry { grid-template-columns: repeat(2, 1fr); }
  .gal-page-item--wide { grid-column: span 2; grid-row: span 1; min-height: 220px; }
  .gal-explore-grid { grid-template-columns: repeat(2, 1fr); }
  .gal-page-toolbar { position: static; }
  .reviews-page-grid { grid-template-columns: 1fr; }
  .reviews-awards { grid-template-columns: repeat(2, 1fr); }
  .inner-block.ref-spotlight.inner-block--split { grid-template-columns: 1fr; }
  .inner-block.ref-spotlight.inner-block--split > div { padding: 1rem 1.25rem 1.25rem; }
  .about-page .about-highlights { grid-template-columns: repeat(2, 1fr); }
  .about-sub-split.inner-block--split { grid-template-columns: 1fr; }
  .about-sub-photo img { border-radius: var(--radius-lg) var(--radius-lg) 0 0; min-height: 180px; }
  .about-sub-split > div { padding: 1rem 1.25rem 1.25rem; }
  .about-promise-row { grid-template-columns: 1fr; }
  .shop-offers-grid,
  .shop-offers-grid--3 { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .svc-hub-steps { grid-template-columns: 1fr; }
  .svc-hub-promise-grid { grid-template-columns: 1fr; }
  .svc-page-process { grid-template-columns: 1fr; }
  .svc-page-gallery { grid-template-columns: 1fr; }
  .about-press-grid { grid-template-columns: 1fr; }
  .about-milestones { grid-template-columns: 1fr; }
  .about-mosaic { grid-template-columns: repeat(2, 1fr); }
  .about-mosaic-item--wide { grid-column: span 2; }
  .about-highlights { grid-template-columns: repeat(2, 1fr); }
  .about-explore { grid-template-columns: 1fr; }
  .inner-sub-grid { grid-template-columns: 1fr; }
  .inner-section--links .inner-sub-grid { grid-template-columns: 1fr; }
  .contact-regions-grid { grid-template-columns: 1fr; }
  .gal-page-grid { grid-template-columns: 1fr; }
  .shop-steps { grid-template-columns: 1fr; }
  .area-gallery-strip { grid-template-columns: 1fr; }
  .area-services { grid-template-columns: 1fr; }
  .areas-hub-grid { grid-template-columns: 1fr; }
  .reviews-awards { grid-template-columns: 1fr; }
  .reviews-page-grid { grid-template-columns: 1fr; }
  .partners-grid { grid-template-columns: 1fr; }
  .payment-methods-grid { grid-template-columns: 1fr; }
  .blog-grid { grid-template-columns: 1fr; }
  .blog-toolbar { flex-direction: column; align-items: flex-start; }
  .gal-explore-grid { grid-template-columns: 1fr; }
  .gal-page-grid--masonry { grid-template-columns: 1fr; }
  .gal-page-item--wide { grid-column: span 1; }
  .blog-post-foot { flex-direction: column; }
  .blog-post-foot .btn { width: 100%; text-align: center; }
  .about-sub-cta-strip { flex-direction: column; align-items: flex-start; }
  .about-sub-cta-strip .btn { width: 100%; text-align: center; }
  .faq-emergency-links { flex-direction: column; align-items: flex-start; }
  .legal-trust-bar .container { flex-direction: column; align-items: center; }
}

/* ============ MOBILE v1 — inner page touch polish ============ */
@media (max-width: 680px) {
  body.page-inner { --header-h: 56px; --sticky-top: calc(var(--header-h) + .75rem); }
  .page-hero {
    padding: 2rem 0 1.75rem;
    min-height: auto;
    align-items: flex-end;
  }
  body.page-inner .page-hero--compact h1 { max-width: none; font-size: clamp(1.65rem, 6.5vw, 2.15rem); }
  .page-hero-actions {
    flex-direction: column;
    align-items: stretch;
    gap: .55rem;
    width: 100%;
  }
  .page-hero-actions .btn {
    width: 100%;
    justify-content: center;
    white-space: normal;
    text-align: center;
  }
  .page-hero-trust { gap: .45rem .75rem; font-size: .76rem; margin-top: 1rem; }
  .inner-cta-bar .container { align-items: stretch; }
  .inner-cta-bar-actions { width: 100%; }
  .inner-cta-bar-actions .btn { flex: 1 1 auto; justify-content: center; min-width: calc(50% - .35rem); }
  .svc-hub-item,
  .svc-hub-item--rich {
    grid-template-columns: 1fr;
    gap: .65rem;
    padding: .85rem;
  }
  .svc-hub-item-thumb,
  .svc-hub-item--rich .svc-hub-item-thumb {
    width: 100%;
    aspect-ratio: 16/9;
  }
  .svc-hub-item-arrow { justify-self: start; }
  .svc-hub-item:hover { transform: none; }
  .inner-block { padding: 1.15rem 1.05rem; }
  .inner-block-head { flex-direction: column; align-items: flex-start; gap: .35rem; }
  .inner-block--split { grid-template-columns: 1fr !important; }
  .inner-block--split > * { padding: 1rem 1.05rem 1.05rem !important; }
  .inner-block--split img,
  .about-sub-photo img,
  .inner-block.ref-spotlight.inner-block--split img {
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    width: 100%;
  }
  .about-highlights { grid-template-columns: 1fr; }
  .about-page .about-highlights { grid-template-columns: 1fr; }
  .about-mosaic { grid-template-columns: 1fr 1fr; }
  .about-mosaic-item--wide { grid-column: span 2; }
  .about-sub-cta-strip .btn { width: 100%; }
  .contact-split .quote-form { margin-top: .5rem; }
  .gal-page-toolbar { flex-direction: column; align-items: stretch; gap: .65rem; }
  .gal-page-toolbar select,
  .gal-page-toolbar .btn { width: 100%; justify-content: center; }
  .blog-toolbar { gap: .65rem; }
  .blog-card--hero .blog-card-body { padding: 1rem 1.05rem 1.05rem; }
  .shop-hero-photo figcaption { font-size: .72rem; padding: .45rem .65rem; }
  .shop-offer-card { padding: 1.05rem; }
  .legal-nav { gap: .35rem .65rem; }
  .legal-nav a { font-size: .82rem; }
  .faq-sidebar-nav a { padding: .55rem .65rem; }
  .svc-page-sidebar-card { margin-top: .75rem; }
  .svc-sub-highlights .shop-offers-grid { grid-template-columns: 1fr; }
  .inner-sub-card { padding: 1rem; }
  .payment-methods-grid { gap: .65rem; }
  .reviews-page-platforms .platform { width: 100%; }
  .mission-split blockquote { font-size: 1.05rem; }
  .glossary-toolbar input { width: 100%; }
}
@media (max-width: 380px) {
  .svc-hub-stats-bar .container,
  .svc-page-stats,
  .blog-stats,
  .gal-stats,
  .contact-stats,
  .faq-stats-bar .container,
  .areas-stats-bar .container,
  .payment-stats-bar .container {
    grid-template-columns: 1fr;
  }
  .svc-hub-stat,
  .svc-page-stat,
  .blog-stat,
  .gal-stat,
  .contact-stat {
    border-right: 0 !important;
    border-bottom: 1px solid var(--line-soft);
    padding-bottom: .6rem;
  }
  .svc-hub-stat:last-child,
  .svc-page-stat:last-child,
  .blog-stat:last-child,
  .gal-stat:last-child,
  .contact-stat:last-child { border-bottom: 0; }
  .inner-cta-bar-actions .btn { min-width: 100%; }
  .about-mosaic { grid-template-columns: 1fr; }
  .about-mosaic-item--wide { grid-column: span 1; }
  .page-hero-trust span { flex: 1 1 100%; }
}

/* ============ MOBILE v2 — inner sweep (overlap, prose, touch) ============ */
@media (max-width: 680px) {
  .svc-page-stats-bar,
  .svc-hub-stats-bar,
  .blog-stats-bar,
  .gal-stats-bar,
  .contact-stats-bar,
  .areas-stats-bar,
  .payment-stats-bar,
  .faq-stats-bar {
    margin-top: 0 !important;
    margin-bottom: 1rem;
  }
  .blog-post-meta-bar { margin-top: 0; margin-bottom: 1rem; }
  .inner-section { padding: 2rem 0; }
  .inner-section.alt { padding: 1.75rem 0; }
  .svc-page-includes { grid-template-columns: 1fr; }
  .reviews-page-grid { grid-template-columns: 1fr; }
  .partners-grid { grid-template-columns: 1fr; }
  .shop-offers-grid,
  .shop-offers-grid--3 { grid-template-columns: 1fr; }
  .careers-grid { grid-template-columns: 1fr; }
  .svc-sub-page .svc-page-process,
  .svc-page .svc-page-process { padding-left: 2.15rem; }
  .svc-sub-page .svc-page-process::before,
  .svc-page .svc-page-process::before { left: .85rem; }
  .svc-page-step .num {
    left: -2.15rem;
    width: 1.75rem;
    height: 1.75rem;
    font-size: .72rem;
  }
  .blog-post-page .blog-post-hero h1 {
    max-width: none;
    font-size: clamp(1.55rem, 6vw, 2rem);
  }
  .blog-post-meta-inner { padding: .55rem .65rem; gap: .35rem; }
  .blog-post-foot { flex-direction: column; }
  .blog-post-foot .btn { width: 100%; justify-content: center; text-align: center; }
  .blog-prose,
  .content-prose,
  .legal-section,
  .svc-sub-prose {
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  .blog-prose img,
  .content-prose img,
  .legal-section img,
  .svc-sub-prose img {
    max-width: 100%;
    height: auto;
    border-radius: var(--radius-sm);
  }
  .blog-prose table,
  .content-prose table,
  .legal-section table {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .blog-prose pre,
  .content-prose pre,
  .legal-section pre {
    overflow-x: auto;
    max-width: 100%;
    font-size: .82rem;
    padding: .75rem;
    border-radius: var(--radius-sm);
  }
  .contact-channel { padding: .85rem; min-height: 44px; }
  .contact-virtual { padding: 1rem; }
  .faq-item summary,
  .faq-page-section .faq-item summary {
    min-height: 44px;
    padding: .85rem 1rem;
    font-size: .92rem;
  }
  .shop-brands { gap: .75rem; }
  .shop-brands img { height: 30px; max-width: 84px; }
  .area-nb-chips { gap: .4rem; }
  .area-nb-chip { font-size: .82rem; padding: .45rem .7rem; }
  .about-ref-logos img { width: 56px; height: 56px; }
  .about-cert-logos { justify-content: center; }
  .about-sub-split > div { padding: 1rem 1.05rem 1.05rem !important; }
  .about-sub-photo img { border-radius: var(--radius-lg) var(--radius-lg) 0 0 !important; }
  .payment-split .inner-block,
  .payment-form-wrap,
  .payment-method { padding: 1.05rem; }
  .legal-nav a {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
  }
  .ref-category { padding: 1rem; }
  .svc-hub-featured-body { padding: 1.15rem; }
  .svc-hub-nav a {
    min-height: 40px;
    display: flex;
    align-items: center;
  }
  .inner-aside-card { padding: 1rem; }
  .svc-page-aside-phone {
    font-size: 1.12rem;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .gal-page-item { min-height: 180px; }
  .gal-page-item--wide { min-height: 200px; }
  .reviews-map-card iframe { height: 240px; }
  .glossary-letters { justify-content: center; }
  .glossary-letter { min-width: 36px; min-height: 36px; display: inline-flex; align-items: center; justify-content: center; }
  .blog-toolbar { flex-direction: column; align-items: stretch; }
  .blog-filters { width: 100%; }
  .inner-cta-bar-actions { flex-direction: column; }
  .inner-cta-bar-actions .btn { width: 100%; min-width: 0; }
  .faq-emergency-links .btn { width: 100%; text-align: center; justify-content: center; }
  .about-sub-cta-strip { text-align: left; }
  .shop-sub-copy { font-size: .9rem; }
  .area-hero-badge { font-size: .7rem; }
  .inner-sub-card:hover { transform: none; }
  .shop-offer-card:hover,
  .svc-hub-item:hover,
  .blog-card:hover,
  .svc-page-include:hover { transform: none; }
}
@media (max-width: 480px) {
  .svc-hub-steps,
  .svc-hub-promise-grid,
  .shop-steps { grid-template-columns: 1fr; }
  .about-explore,
  .gal-explore-grid,
  .contact-regions-grid { grid-template-columns: 1fr; }
  .about-milestones { grid-template-columns: 1fr; }
  .about-highlights,
  .about-page .about-highlights { grid-template-columns: 1fr; }
  .about-mosaic { grid-template-columns: 1fr; }
  .about-mosaic-item--wide { grid-column: span 1; }
  .inner-sub-grid { grid-template-columns: 1fr; }
  .blog-grid { grid-template-columns: 1fr; }
  .reviews-awards { grid-template-columns: 1fr; }
  .area-services,
  .area-gallery-strip { grid-template-columns: 1fr; }
  .areas-hub-grid { grid-template-columns: 1fr; }
  .svc-hub-stats-bar .container,
  .svc-page-stats,
  .blog-stats,
  .gal-stats,
  .contact-stats { grid-template-columns: 1fr 1fr; }
}

/* ============ MOTION POLISH v5 — Phase 0–6 ============ */
body.page-inner {
  --motion-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --motion-duration: 0.62s;
  --motion-distance: 18px;
  --motion-stagger-step: 70ms;
}

@media (prefers-reduced-motion: no-preference) {
  body.page-inner .page-hero::before {
    transform: scale(1.03) translateY(var(--hero-parallax, 0px));
    will-change: transform;
  }

  body.page-inner.is-motion-ready .page-hero .motion-hero-item {
    animation: im-fade-up var(--motion-duration) var(--motion-ease) backwards;
    animation-delay: calc(0.06s + var(--motion-i, 0) * 0.1s);
  }

  body.page-inner .motion-in:not(.is-visible) {
    opacity: 0;
    transform: translateY(var(--motion-distance));
  }

  body.page-inner .motion-in.is-visible {
    opacity: 1;
    transform: none;
    transition:
      opacity var(--motion-duration) var(--motion-ease),
      transform var(--motion-duration) var(--motion-ease);
  }

  body.page-inner .motion-section-head:not(.is-visible) {
    transform: translateY(12px);
  }

  body.page-inner .motion-explore-head:not(.is-visible) {
    transform: translateY(14px);
  }

  body.page-inner .motion-stagger:not(.is-visible) > .motion-item {
    opacity: 0;
    transform: translateY(14px);
  }

  body.page-inner .motion-stagger.is-visible > .motion-item {
    opacity: 1;
    transform: none;
    transition:
      opacity 0.52s var(--motion-ease),
      transform 0.52s var(--motion-ease);
    transition-delay: calc(var(--motion-i, 0) * var(--motion-stagger-step));
  }

  /* Phase 2 — Explore grid card polish */
  body.page-inner .motion-stagger--explore:not(.is-visible) > .inner-sub-card.motion-item {
    opacity: 0;
    transform: translateY(16px) scale(0.97);
  }

  body.page-inner .motion-stagger--explore.is-visible > .inner-sub-card.motion-item {
    transform: none;
    transition:
      opacity 0.55s var(--motion-ease),
      transform 0.55s var(--motion-ease),
      box-shadow 0.25s var(--motion-ease);
  }

  /* Phase 3 — Timeline / process steps */
  body.page-inner .motion-stagger--timeline::before {
    transform: scaleY(0);
    transform-origin: top;
    transition: transform 0.85s var(--motion-ease);
  }

  body.page-inner .motion-stagger--timeline.is-visible::before {
    transform: scaleY(1);
  }

  body.page-inner .motion-stagger--timeline:not(.is-visible) > .motion-item {
    opacity: 0;
    transform: translateX(-14px);
  }

  body.page-inner .motion-stagger--timeline.is-visible > .motion-item {
    transform: none;
  }

  /* Phase 6 — CTA bar slide-up */
  body.page-inner .motion-cta:not(.is-visible) {
    opacity: 0;
    transform: translateY(28px);
  }

  body.page-inner .motion-cta.is-visible {
    opacity: 1;
    transform: none;
    transition:
      opacity 0.68s var(--motion-ease),
      transform 0.68s var(--motion-ease);
  }
}

@keyframes im-fade-up {
  from {
    opacity: 0;
    transform: translateY(var(--motion-distance));
  }
  to {
    opacity: 1;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.page-inner .motion-in,
  body.page-inner .motion-stagger > .motion-item,
  body.page-inner .motion-hero-item,
  body.page-inner .motion-cta {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
  }

  body.page-inner .motion-stagger--timeline::before {
    transform: none !important;
    transition: none !important;
  }
}

