/* ============================================================
   Byford Carpet Cleaning — Premium Service Pages (2026)
   Scoped under body.bp | loaded AFTER home-premium.css
   Adds service-page-specific components (process quadrant,
   before/after frame, FAQ accordion, info cards, mini cards).
   Reuses the same palette, fonts and buttons as the homepage.
   ============================================================ */

/* ---- Hero: image media (reuse .bp-video-frame) + free-quote ghost ---- */
body.bp .bp-hero-sub { display:block; color: var(--bp-blue-on-dark); font-weight:600; }
body.bp .bp-hero-call { font-family: var(--bp-fl); font-size:.95rem; font-weight:600;
  color:#fff; margin-top:18px; display:inline-flex; align-items:center; gap:9px; }
body.bp .bp-hero-call svg { width:18px; height:18px; stroke: var(--bp-red-2); }
body.bp .bp-hero-call a { color: var(--bp-red-2); text-decoration:none; font-weight:700; }
body.bp .bp-hero-call a:hover { text-decoration:underline; }

/* ---- 3-up proof band (icon + title + description) ---- */
.bp-proof-card--3 { grid-template-columns: repeat(3,1fr); }
.bp-proof-feature { display:flex; align-items:center; gap:16px; justify-content:flex-start; padding: 8px 14px; text-align:left; }
.bp-proof-feature .bp-proof-ftxt { display:flex; flex-direction:column; line-height:1.3; }
.bp-proof-feature .bp-proof-ftitle { font-family: var(--bp-fl); font-weight:700; font-size:1rem; color:#fff; }
.bp-proof-feature .bp-proof-fdesc { font-family: var(--bp-fb); font-size:.86rem; color: rgba(255,255,255,0.72); margin-top:3px; }

/* ---- Image badge (e.g. "Before Deep Cleaning") ---- */
.bp-media-wrap { position: relative; }
.bp-media-badge { position:absolute; top:18px; left:50%; transform:translateX(-50%);
  background: linear-gradient(150deg, var(--bp-navy-800), var(--bp-navy-700));
  color:#fff; font-family: var(--bp-fl); font-weight:600; font-size:.82rem; letter-spacing:.03em;
  padding: 8px 18px; border-radius: 40px; box-shadow: var(--bp-shadow-soft); z-index:3;
  border:1px solid rgba(255,255,255,0.14); white-space:nowrap; }

/* ---- Mini benefit cards grid (Why Regular Deep Cleaning Matters) ---- */
.bp-mini-grid { display:grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-top: 8px; }
.bp-mini-card { background:#fff; border:1px solid rgba(13,28,63,0.07); border-radius: 18px;
  padding: 22px 18px; box-shadow: var(--bp-shadow-soft); transition: transform .28s ease, box-shadow .28s ease; }
.bp-mini-card:hover { transform: translateY(-6px); box-shadow: var(--bp-shadow-card); }
.bp-mini-card .bp-ichip { margin-bottom: 14px; }
.bp-mini-card h4 { font-family: var(--bp-fh); font-size: 1.18rem; color: var(--bp-ink); margin-bottom: 6px; line-height:1.2; }
.bp-mini-card p { font-family: var(--bp-fb); font-size:.86rem; color: var(--bp-body); line-height:1.55; }

/* ---- Industry recommendation banner ---- */
body.bp .bp-feature-inner--top { align-items: start; }
.bp-reco-banner { display:flex; align-items:center; gap:18px; margin-top: 22px;
  background: linear-gradient(150deg, #ffffff, var(--bp-pale-blue));
  border:1px solid rgba(37,99,235,0.16); border-radius: 18px; padding: 20px 24px;
  box-shadow: var(--bp-shadow-soft); }
.bp-reco-banner .bp-ichip { flex:0 0 auto; }
.bp-reco-banner h4 { font-family: var(--bp-fl); font-weight:700; font-size:1rem; color: var(--bp-royal); margin-bottom:3px; }
.bp-reco-banner p { font-family: var(--bp-fb); font-size:.9rem; color: var(--bp-body); line-height:1.55; }

/* ---- Residential process: 2x2 quadrant (images on diagonal) ---- */
.bp-rproc { display:grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 50px; align-items:stretch; }
.bp-rproc-img { position: relative; border-radius: var(--bp-radius); overflow:hidden; min-height: 320px;
  box-shadow: 0 26px 60px -28px rgba(6,15,36,0.85); border:1px solid rgba(127,176,255,0.22); }
.bp-rproc-img img { width:100%; height:100%; object-fit:cover; display:block; }
.bp-rproc-img::after { content:""; position:absolute; inset:0;
  background: linear-gradient(180deg, transparent 55%, rgba(6,15,36,0.35)); pointer-events:none; }
.bp-rstep-stack { display:grid; grid-template-rows: 1fr 1fr; gap: 24px; }
.bp-rstep { position: relative; display:flex; gap: 18px; align-items:flex-start;
  background: linear-gradient(150deg, rgba(18,42,89,0.55), rgba(10,23,51,0.55));
  border:1px solid rgba(127,176,255,0.18); border-radius: var(--bp-radius);
  padding: 24px 24px; backdrop-filter: blur(6px);
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease; }
.bp-rstep:hover { transform: translateY(-5px); box-shadow: 0 24px 48px -24px rgba(6,15,36,0.9); border-color: rgba(127,176,255,0.4); }
.bp-rstep-num { flex:0 0 auto; width:46px; height:46px; border-radius:50%; display:grid; place-items:center;
  font-family: var(--bp-fh); font-weight:700; font-size:1.3rem; color:#fff;
  background: linear-gradient(150deg, var(--bp-royal), var(--bp-navy-700));
  box-shadow: 0 10px 22px -8px rgba(29,78,216,0.7), inset 0 1px 0 rgba(255,255,255,0.3);
  border-top: 2px solid var(--bp-red-2); }
.bp-rstep-body { flex:1; }
.bp-rstep-head { display:flex; align-items:center; gap:12px; margin-bottom: 8px; }
.bp-rstep-head svg { width:30px; height:30px; stroke:#cfe0ff; flex:0 0 auto; }
.bp-rstep-head .ac { color: var(--bp-red-2); }
.bp-rstep h4 { font-family: var(--bp-fh); font-size: 1.4rem; color:#fff; line-height:1.15; margin:0; }
.bp-rstep p { font-family: var(--bp-fb); font-size:.9rem; color: rgba(255,255,255,0.78); line-height:1.6; margin:0; }

/* ---- Before & After gallery frame ---- */
.bp-ba { max-width: 920px; margin: 46px auto 0; }
.bp-ba-frame { position: relative; border-radius: var(--bp-radius-lg); overflow:hidden;
  box-shadow: var(--bp-shadow-card); border:1px solid rgba(13,28,63,0.08); }
.bp-ba-frame img { width:100%; height:auto; display:block; }
.bp-ba-frame::before { content:""; position:absolute; top:0; bottom:0; left:50%; width:3px; transform:translateX(-50%);
  background: rgba(255,255,255,0.85); box-shadow: 0 0 14px rgba(0,0,0,0.25); z-index:2; }
.bp-ba-handle { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:3;
  width:46px; height:46px; border-radius:50%; background:#fff; display:grid; place-items:center;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3); color: var(--bp-royal); }
.bp-ba-handle svg { width:22px; height:22px; }
.bp-ba-label { position:absolute; left:50%; bottom:18px; transform:translateX(-50%); z-index:3;
  background: linear-gradient(150deg, var(--bp-navy-800), var(--bp-navy-700)); color:#fff;
  font-family: var(--bp-fl); font-weight:600; font-size:.86rem; padding: 9px 20px; border-radius:40px;
  box-shadow: var(--bp-shadow-soft); border:1px solid rgba(255,255,255,0.14); white-space:nowrap; }
.bp-ba-tag { position:absolute; top:16px; z-index:3; font-family: var(--bp-fl); font-weight:700; font-size:.74rem;
  letter-spacing:.08em; text-transform:uppercase; color:#fff; padding:6px 14px; border-radius:30px;
  background: rgba(6,15,36,0.55); backdrop-filter: blur(4px); }
.bp-ba-tag.before { left:16px; }
.bp-ba-tag.after { right:16px; }
.bp-ba-btns { display:flex; flex-wrap:wrap; gap:14px; justify-content:center; margin-top: 30px; }

/* ---- Service details info cards + FAQ ---- */
.bp-details-grid { display:grid; grid-template-columns: 1fr 1fr; gap: 38px; align-items:start; }
.bp-info-card { background:#fff; border:1px solid rgba(13,28,63,0.07); border-radius: var(--bp-radius);
  padding: 26px 28px; box-shadow: var(--bp-shadow-soft); margin-bottom: 22px; }
.bp-info-card-head { display:flex; align-items:center; gap:14px; margin-bottom: 14px; }
.bp-info-card-head h3 { font-family: var(--bp-fh); font-size: 1.5rem; color: var(--bp-ink); margin:0; }
.bp-info-card ul { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.bp-info-card li { font-family: var(--bp-fb); font-size:.94rem; color: var(--bp-body); line-height:1.55;
  padding-left: 22px; position: relative; }
.bp-info-card li::before { content:""; position:absolute; left:0; top:8px; width:9px; height:9px; border-radius:50%;
  background: var(--bp-royal); }
.bp-info-card li strong { color: var(--bp-ink); }
.bp-details-img { border-radius: var(--bp-radius); overflow:hidden; box-shadow: var(--bp-shadow-card);
  position: relative; }
.bp-details-img img { width:100%; height:100%; object-fit:cover; display:block; }

.bp-faq { max-width: 880px; margin: 30px auto 0; }
.bp-faq-title { font-family: var(--bp-fh); font-size: 1.7rem; color: var(--bp-ink); margin-bottom: 18px; text-align:center; }
.bp-faq-item { background:#fff; border:1px solid rgba(13,28,63,0.08); border-radius: 14px; margin-bottom: 12px;
  overflow:hidden; box-shadow: var(--bp-shadow-soft); }
.bp-faq-q { width:100%; text-align:left; background:none; border:none; cursor:pointer;
  font-family: var(--bp-fb); font-weight:600; font-size: 1rem; color: var(--bp-ink);
  padding: 18px 22px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.bp-faq-q:hover { color: var(--bp-royal); }
.bp-faq-q .bp-faq-ic { flex:0 0 auto; width:24px; height:24px; border-radius:50%; display:grid; place-items:center;
  background: var(--bp-pale-blue); color: var(--bp-royal); transition: transform .3s ease, background .3s ease; font-size:1.2rem; line-height:1; }
.bp-faq-item.open .bp-faq-ic { transform: rotate(45deg); background: var(--bp-royal); color:#fff; }
.bp-faq-a { max-height:0; overflow:hidden; transition: max-height .35s ease; }
.bp-faq-a-inner { padding: 0 22px 20px; font-family: var(--bp-fb); font-size:.94rem; color: var(--bp-body); line-height:1.7; }

/* ---- CTA video that autoplays (reuse .bp-autoplay-video) ---- */
.bp-cta-feature-video { border-radius: var(--bp-radius); overflow:hidden; box-shadow: var(--bp-shadow-card);
  position: relative; aspect-ratio: 4/3; border:1px solid rgba(127,176,255,0.22); }
.bp-cta-feature-video video { width:100%; height:100%; object-fit:cover; display:block; }

/* ---- Trust row (CTA) ---- */
.bp-trust-icons { display:flex; flex-wrap:wrap; gap: 26px; margin: 4px 0 26px; }
.bp-trust-icons .bp-trust { display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center;
  font-family: var(--bp-fl); font-weight:600; font-size:.82rem; color:#fff; }
.bp-trust-icons .bp-trust svg { width:30px; height:30px; stroke: var(--bp-red-2); }
.bp-trust-icons .bp-trust .ac { color: var(--bp-red-2); }

/* ============================================================
   IMMERSIVE HERO (full-bleed image + blue fade overlay)
   ============================================================ */
.bp-hero--immersive { padding: 96px 0 104px; }
.bp-hero--immersive .bp-hero-bg { position:absolute; inset:0; z-index:0; }
.bp-hero--immersive .bp-hero-bg img { width:100%; height:100%; object-fit:cover; object-position: 70% center; display:block; }
.bp-hero--immersive .bp-hero-bg::after {
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(98deg, var(--bp-navy-900) 0%, rgba(8,17,38,0.94) 26%, rgba(10,23,51,0.74) 46%, rgba(13,28,63,0.42) 64%, rgba(27,58,120,0.18) 82%, rgba(37,99,235,0.10) 100%),
    linear-gradient(0deg, rgba(6,15,36,0.55), transparent 42%);
}
/* blue glowing swoosh bottom-right (the "shine") */
.bp-hero-shine { position:absolute; z-index:1; right:-6%; bottom:-14%; width:62%; height:60%; pointer-events:none;
  background: radial-gradient(48% 60% at 55% 50%, rgba(86,156,255,0.55), rgba(60,130,255,0.18) 46%, transparent 72%);
  filter: blur(34px); }
.bp-hero-shine::after { content:""; position:absolute; right:8%; bottom:30%; width:64%; height:5px; border-radius:50%;
  background: linear-gradient(90deg, transparent, rgba(150,195,255,0.9), transparent); filter: blur(2px); transform: rotate(-9deg); }
.bp-hero--immersive .bp-hero-inner--single { grid-template-columns: 1fr; }
.bp-hero--immersive .bp-hero-left { max-width: 620px; position:relative; z-index:3; }

/* ============================================================
   BEFORE / AFTER CAROUSEL
   ============================================================ */
.bp-ba-carousel { position:relative; max-width: 940px; margin: 0 auto; }
.bp-ba-viewport { overflow:hidden; border-radius: var(--bp-radius-lg); box-shadow: var(--bp-shadow-card);
  border:1px solid rgba(13,28,63,0.08); background:#fff; }
.bp-ba-track { display:flex; transition: transform .55s cubic-bezier(.4,.05,.2,1); will-change: transform; }
.bp-ba-slide { position:relative; flex: 0 0 100%; }
.bp-ba-slide img { width:100%; height:auto; display:block; }
.bp-ba-slide figcaption { position:absolute; left:50%; bottom:18px; transform: translateX(-50%);
  background: linear-gradient(150deg, var(--bp-navy-800), var(--bp-navy-700)); color:#fff;
  font-family: var(--bp-fl); font-weight:600; font-size:.92rem; letter-spacing:.02em;
  padding: 10px 22px; border-radius: 40px; box-shadow: 0 12px 28px -10px rgba(6,15,36,0.6);
  border:1px solid rgba(127,176,255,0.3); white-space:nowrap; }
.bp-ba-nav { position:absolute; top:50%; transform: translateY(-50%); z-index:4; width:52px; height:52px; border-radius:50%;
  border:1px solid rgba(13,28,63,0.1); background: rgba(255,255,255,0.92); backdrop-filter: blur(4px); cursor:pointer;
  display:grid; place-items:center; color: var(--bp-royal); box-shadow: 0 12px 30px -12px rgba(6,15,36,0.5);
  transition: transform .25s ease, background .25s ease, color .25s ease; }
.bp-ba-nav:hover { background: var(--bp-royal); color:#fff; transform: translateY(-50%) scale(1.06); }
.bp-ba-nav svg { width:24px; height:24px; }
.bp-ba-nav.prev { left:-18px; }
.bp-ba-nav.next { right:-18px; }
.bp-ba-dots { display:flex; justify-content:center; gap:10px; margin-top: 24px; }
.bp-ba-dot { width:11px; height:11px; border-radius:50%; border:none; cursor:pointer; padding:0;
  background: rgba(13,28,63,0.18); transition: background .25s ease, transform .25s ease; }
.bp-ba-dot.active { background: var(--bp-royal); transform: scale(1.25); }
.bp-ba-cta { display:flex; flex-wrap:wrap; gap:14px; justify-content:center; margin-top: 30px; }

/* ============================================================
   COVERAGE CTA BAND (richer replacement for plain banner)
   ============================================================ */
.bp-cov-cta { position:relative; margin-top: 44px; border-radius: var(--bp-radius-lg); overflow:hidden;
  padding: 44px 48px; color:#fff; display:grid; grid-template-columns: 1.35fr 1fr; gap: 40px; align-items:center;
  background:
    radial-gradient(760px 320px at 12% 0%, rgba(37,99,235,0.5), transparent 60%),
    radial-gradient(560px 300px at 100% 100%, rgba(226,56,75,0.28), transparent 60%),
    linear-gradient(150deg, var(--bp-navy-850), var(--bp-navy-900));
  box-shadow: var(--bp-shadow-card); }
.bp-cov-cta-main { display:flex; align-items:flex-start; gap: 22px; }
.bp-cov-cta-main .bp-ichip { flex:0 0 auto; }
.bp-cov-cta-text .bp-eyebrow { color: var(--bp-blue-on-dark); }
body.bp .bp-cov-cta-text h3 { color:#fff; font-family: var(--bp-fh); font-size: clamp(1.6rem, 2.6vw, 2.1rem); line-height:1.12; margin: 6px 0 10px; }
.bp-cov-cta-text p { font-family: var(--bp-fb); color: rgba(255,255,255,0.82); line-height:1.7; font-size:.98rem; margin:0; }
.bp-cov-cta-text p strong { color:#fff; }
.bp-cov-cta-side { display:flex; flex-direction:column; gap: 22px; }
.bp-cov-stats { display:flex; gap: 14px; }
.bp-cov-stat { flex:1; background: rgba(255,255,255,0.06); border:1px solid rgba(127,176,255,0.22); border-radius: 16px;
  padding: 16px 14px; text-align:center; }
.bp-cov-stat strong { display:block; font-family: var(--bp-fh); font-size: 1.7rem; color:#fff; line-height:1; }
.bp-cov-stat span { display:block; margin-top:6px; font-family: var(--bp-fl); font-size:.74rem; letter-spacing:.03em;
  text-transform:uppercase; color: rgba(255,255,255,0.66); }
.bp-cov-cta-side .bp-btn { width:100%; }

/* ---- Responsive ---- */
@media (max-width: 980px) {
  .bp-mini-grid { grid-template-columns: repeat(2,1fr); }
  .bp-details-grid { grid-template-columns: 1fr; gap: 28px; }
  .bp-cov-cta { grid-template-columns: 1fr; gap: 30px; padding: 38px 30px; }
}
@media (max-width: 860px) {
  .bp-proof-card--3 { grid-template-columns: 1fr; }
  .bp-rproc { grid-template-columns: 1fr; }
  .bp-rproc-img { min-height: 240px; order: 0; }
  .bp-hero--immersive { padding: 70px 0 76px; }
  .bp-hero--immersive .bp-hero-bg::after {
    background:
      linear-gradient(180deg, rgba(8,17,38,0.78) 0%, rgba(10,23,51,0.86) 55%, rgba(6,15,36,0.92) 100%),
      linear-gradient(98deg, var(--bp-navy-900) 0%, rgba(10,23,51,0.6) 60%, transparent 100%);
  }
  .bp-ba-nav.prev { left:8px; }
  .bp-ba-nav.next { right:8px; }
}
@media (max-width: 600px) {
  .bp-mini-grid { grid-template-columns: 1fr; }
  .bp-proof-feature { justify-content:flex-start; }
  .bp-trust-icons { gap: 18px; justify-content:center; }
  .bp-ba-nav { width:42px; height:42px; }
  .bp-ba-slide figcaption { font-size:.8rem; padding:8px 16px; bottom:12px; }
  .bp-cov-stats { flex-direction:column; }
  .bp-cov-cta-main { flex-direction:column; gap:16px; }
}
