/* ==========================================================================
   Core Chiro Rehab — Service Page Redesign (shared template)
   Extends the `.chc-landing` design system from home-redesign.css. This file
   is written to be reused, unchanged, across all 16 service pages — only the
   hero image, breadcrumb label, H1, and article body differ per page. The
   existing `.chiro-cta` banner, `partials.patients-review`, and
   `partials.service-faq` are left completely untouched (already redesigned,
   shared by every service page via services.css).
   ========================================================================== */

/* `.chc-landing` sets `overflow:hidden` globally (home-redesign.css) to contain
   decorative shapes on the home/about/provider pages. Any `overflow` other than
   visible on an ancestor breaks `position:sticky` for descendants — which is
   why the sidebar wasn't sticking. The hero's own shape is already clipped by
   `.svc-hero{ overflow:hidden }` locally, so it's safe to open this back up
   here without any decorative element leaking out. */
.chc-landing.svc-page-landing{ overflow:visible; }

/* `.boxed_wrapper` (legacy global.css) sets `overflow:hidden !important` on
   every page site-wide — also breaks sticky. Same reasoning as above: this
   page's own decorative elements are all self-contained, so it's safe to
   reopen just here via a scoped, equally-`!important` override. */
.boxed_wrapper.svc-page-wrapper{ overflow:visible !important; }

/* ---------- hero ---------- */
.svc-hero{
  position:relative; overflow:hidden;
  min-height:100vh;
  height:100vh;
  display:flex; align-items:center;
  background:linear-gradient(120deg, #0f1720 0%, #172335 45%, #23364c 100%);
  padding:0;
}
.svc-hero__bg{ position:absolute; inset:0; z-index:0; }
.svc-hero__bg img{ width:100%; height:100%; object-fit:cover; }
.svc-hero__bg::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(115deg, rgba(10,15,20,.90) 12%, rgba(10,15,20,.68) 55%, rgba(10,15,20,.42) 100%);
}
.svc-hero__shape{
  position:absolute; z-index:0; border-radius:50%; filter:blur(2px);
  width:280px; height:280px; bottom:-90px; right:8%;
  background:radial-gradient(circle at 30% 30%, rgba(255,134,0,.42), rgba(255,134,0,0) 70%);
  animation:chc-float 8s ease-in-out infinite;
}
.svc-hero .chc-container{ max-width:none; margin:0; padding-left:clamp(24px, 6vw, 100px); padding-right:24px; display:flex; justify-content:flex-start; align-items:center; height:100%; }
.svc-hero__inner{ position:relative; z-index:1; max-width:780px; width:min(100%,780px); margin:0; text-align:left; padding:32px 34px; border-radius:24px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); backdrop-filter:blur(10px); }
.svc-hero__crumbs{
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  font-size:13.5px; font-weight:600; color:rgba(255,255,255,.62);
  margin-bottom:18px;
}
.svc-hero__crumbs a{ color:rgba(255,255,255,.62); text-decoration:none; }
.svc-hero__crumbs a:hover{ color:#fff; }
.svc-hero__crumbs i{ font-size:10px; color:rgba(255,255,255,.4); }
.svc-hero__crumbs span{ color:#fff; }
.svc-hero__eyebrow{ margin-bottom:2px; }
.svc-hero h1{
  color:#fff; font-size:clamp(29px, 3.7vw, 48px); font-weight:800;
  line-height:1.12; letter-spacing:-.01em; margin-bottom:18px; max-width:700px;
  text-align:left;
}
.svc-hero__trust{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:18px; justify-content:flex-start; }
.svc-hero__trust .chc-hero__stars{ color:var(--c-gold); font-size:15px; display:flex; gap:3px; }
.svc-hero__trust span{ font-size:14px; font-weight:600; color:rgba(255,255,255,.82); }
.svc-hero__trust strong{ color:#fff; }
.svc-hero__cta{ display:flex; flex-wrap:wrap; gap:14px; margin-top:10px; }

/* ---------- content + sidebar layout ---------- */
.svc-body{ padding:40px 0 52px; background:linear-gradient(180deg, #f6fbf8 0%, #f4f7f6 100%); }
.svc-body__grid{ display:grid; grid-template-columns:1fr .4fr; gap:20px; align-items:start; }
.svc-hero__highlights{ display:flex; flex-wrap:wrap; gap:10px; margin:0 0 12px; justify-content:flex-start; }
.svc-hero__highlights div{ display:inline-flex; align-items:center; gap:8px; padding:10px 14px; border-radius:999px; background:rgba(255,255,255,.14); backdrop-filter:blur(8px); color:#fff; font-size:13px; font-weight:600; border:1px solid rgba(255,255,255,.16); }
.svc-hero__highlights i{ color:var(--c-gold); }
.svc-grid{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; margin-top:10px; }
.svc-grid__card{ padding:18px; border-radius:14px; border:1px solid rgba(15,23,32,.06); background:linear-gradient(135deg, #fff, #fcf5ec); }
.svc-grid__card i{ display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:12px; background:rgba(255,134,0,.12); color:var(--c-orange-dark); margin-bottom:10px; font-size:16px; }
.svc-grid__card h4{ font-size:15px; font-weight:800; color:var(--c-ink); margin-bottom:8px; }
.svc-grid__card p{ margin:0; font-size:14px; line-height:1.65; color:var(--c-ink-soft); }
.svc-steps{ display:grid; gap:10px; margin-top:12px; }
.svc-steps__item{ display:flex; gap:12px; align-items:flex-start; padding:14px 16px; border-radius:14px; background:#f7fbf8; border:1px solid rgba(89,140,120,.16); }
.svc-steps__item strong{ flex-shrink:0; width:36px; height:36px; border-radius:50%; background:linear-gradient(135deg, var(--c-orange), #ff9d33); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:13px; }
.svc-steps__item h4{ font-size:15px; font-weight:800; margin-bottom:6px; color:var(--c-ink); }
.svc-steps__item p{ margin:0; font-size:14px; line-height:1.65; color:var(--c-ink-soft); }
.svc-benefits{ display:grid; gap:8px; margin-top:14px; }
.svc-benefits div{ display:flex; align-items:center; gap:10px; font-size:14px; font-weight:700; color:var(--c-ink); }
.svc-benefits i{ color:var(--c-orange-dark); font-size:15px; }

/* article */
.svc-article{ max-width:760px; counter-reset:svc-section; }
.svc-article__intro{ display:grid; grid-template-columns:1.15fr .85fr; gap:16px; padding:20px 20px; border-radius:18px; background:linear-gradient(135deg, #ffffff 0%, #f9fcfa 100%); border:1px solid rgba(15,23,32,.06); margin-bottom:16px; }
.svc-article__intro-copy h2{ font-size:clamp(22px, 2.2vw, 30px); line-height:1.25; font-weight:800; color:var(--c-ink); margin:0 0 10px; }
.svc-article__intro-copy p{ margin:0; font-size:15.5px; line-height:1.7; color:var(--c-ink-soft); }
.svc-article__eyebrow{ display:inline-block; margin-bottom:8px; color:var(--c-orange-dark); font-weight:700; text-transform:uppercase; letter-spacing:.12em; font-size:11px; }
.svc-article__intro-points{ display:grid; gap:8px; align-content:start; }
.svc-article__intro-points div{ display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:14px; background:#fff; border:1px solid rgba(15,23,32,.06); color:var(--c-ink); font-weight:700; font-size:14px; }
.svc-article__intro-points i{ color:var(--c-orange-dark); font-size:15px; }
.svc-panel{ position:relative; background:#fff; border-radius:18px; padding:16px 20px; margin-bottom:10px; border:1px solid rgba(15,23,32,.06); box-shadow:0 6px 20px -22px rgba(15,23,32,.14); }
.svc-panel--highlight{ background:linear-gradient(135deg, #fff8ef 0%, #ffffff 100%); }
.svc-panel--accent{ background:linear-gradient(135deg, #f7fbf8 0%, #ffffff 100%); }
.svc-panel__header{ margin-bottom:8px; }
.svc-article__tag{ display:inline-flex; align-items:center; gap:7px; font-family:var(--f-head); font-weight:700; font-size:11.5px; letter-spacing:.07em; text-transform:uppercase; color:var(--c-orange-dark); background:rgba(255,134,0,.1); padding:6px 14px 6px 10px; border-radius:50px; margin-bottom:6px; }
.svc-article__tag::before{ content:''; width:6px; height:6px; border-radius:50%; background:var(--c-orange); }
.svc-panel h3{ font-size:clamp(19px, 2vw, 24px); font-weight:800; color:var(--c-ink); margin:0 0 8px; }
.svc-panel p{ font-size:15.5px; line-height:1.75; color:var(--c-ink-soft); margin-bottom:10px; }
.svc-panel p:last-child{ margin-bottom:0; }
.svc-panel a{ color:var(--c-orange-dark); font-weight:700; text-decoration:none; border-bottom:1.5px solid rgba(255,134,0,.35); transition:border-color .25s ease; }
.svc-panel a:hover{ border-color:var(--c-orange-dark); }

/* sidebar */
.svc-sidebar{ position:sticky; top:calc(var(--chc-total-header-h, 133px) + 24px); display:grid; gap:16px; }
.svc-sidebar__cta{ position:relative; overflow:hidden; background:linear-gradient(135deg, var(--c-orange), #ff5f2e); border-radius:20px; padding:28px 24px; color:#fff; box-shadow:none; }
.svc-sidebar__cta::before{ content:''; position:absolute; width:160px; height:160px; border-radius:50%; background:rgba(255,255,255,.1); top:-70px; right:-50px; }
.svc-sidebar__cta h3{ position:relative; font-size:20px; font-weight:800; margin-bottom:8px; }
.svc-sidebar__cta p{ position:relative; font-size:14.5px; color:rgba(255,255,255,.9); margin-bottom:20px; line-height:1.6; }
.svc-sidebar__cta .chc-btn{ position:relative; width:100%; justify-content:center; background:#fff; color:var(--c-orange-dark); }
.svc-sidebar__cta .chc-btn:hover{ background:var(--c-ink); color:#fff; }

.svc-card{ background:#fff; border-radius:20px; padding:24px; box-shadow:none; border:1px solid rgba(15,23,32,.06); }
.svc-card__head{ display:flex; align-items:center; gap:14px; margin-bottom:20px; }
.svc-card__icon{ flex-shrink:0; width:46px; height:46px; border-radius:14px; background:var(--c-mint); color:var(--c-orange); display:flex; align-items:center; justify-content:center; font-size:18px; }
.svc-card__head h4{ font-size:16.5px; font-weight:800; color:var(--c-ink); }
.svc-card__head span{ font-size:12px; font-weight:700; color:var(--c-orange-dark); text-transform:uppercase; letter-spacing:.04em; }

.svc-hours{ display:grid; gap:8px; }
.svc-hours div{ display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:14px; color:var(--c-ink); font-weight:600; padding:7px 0; border-bottom:1px dashed var(--c-border); }
.svc-hours div:last-child{ border-bottom:none; }
.svc-hours span{ color:var(--c-ink-soft); font-weight:500; }

.svc-contact-card{ background:#fff; border-radius:20px; padding:24px; box-shadow:none; border:1px solid rgba(15,23,32,.06); }
.svc-contact-card h4{ font-size:16.5px; font-weight:800; margin-bottom:14px; }
.svc-contact-card p{ font-size:14px; line-height:1.7; color:var(--c-ink-soft); margin-bottom:8px; }
.svc-contact-card p strong{ color:var(--c-ink); }
.svc-contact-card__map{ margin-top:16px; border-radius:14px; overflow:hidden; position:relative; height:220px; }
.svc-contact-card__map iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }

@media (max-width:1199px){
  .svc-body__grid{ grid-template-columns:1fr; }
  .svc-sidebar{ position:static; grid-template-columns:repeat(3, 1fr); }
  .svc-sidebar__cta{ grid-column:1 / -1; }
}
@media (max-width:767px){
  .svc-hero{ min-height:auto; padding:calc(var(--chc-total-header-h, 74px) + 24px) 0 42px; }
  .svc-hero__inner{ padding:24px 22px; }
  .svc-hero__highlights{ flex-direction:column; align-items:flex-start; }
  .svc-hero__cta{ flex-direction:column; align-items:stretch; }
  .svc-hero__cta .chc-btn{ justify-content:center; }
  .svc-body{ padding:56px 0 68px; }
  .svc-sidebar{ grid-template-columns:1fr; }
  .svc-article__intro{ grid-template-columns:1fr; padding:22px 20px; }
  .svc-panel{ padding:20px 22px; border-radius:16px; }
  .svc-grid{ grid-template-columns:1fr; }
  .svc-steps__item{ padding:14px 16px; }
}

/* service page review + FAQ compact spacing overrides */
.chiro__reviews{
  padding:52px 0 62px;
}
.chiro__reviews__head h4{
  margin-bottom:28px;
}
.chiro__card{
  padding:30px 28px;
  border-radius:20px;
}
.chiro__card__quote{ margin-bottom:8px; }
.chiro__card p{
  margin:0 0 18px;
  font-size:15px;
}
.chiro__nav{
  margin-top:28px;
  gap:12px;
}
.chiro__arrow{
  width:42px;
  height:42px;
}
.chiro__reviews .chiro__dots{ gap:6px; }
.chiro__reviews .chiro__dots .dot.active{ width:20px; }

@media (max-width:767px){
  .chiro__reviews{ padding:42px 0 48px; }
  .chiro__card{ padding:24px 20px; }
  .chiro__nav{ margin-top:22px; gap:10px; }
}

