/* ============================================================
   THEME: clinic
   ============================================================
   Linked by publicTemplate.php after the core bundle (so these rules win
   the cascade) and BEFORE ThemeService::cssOverrides() (so any colour the
   site owner sets on Admin Settings → Theme still wins over the defaults
   in :root below).

   The look: calm, clinical, reassuring. White space, a soft wash of the
   secondary colour instead of dark bands, serif headings over a clean sans
   body, rounded panels, pill buttons and one arch motif (the hero's frame).
   Works with no photography at all -- the arch then frames the logo.

   Every colour derives from the admin tokens: --clr-bark (ink; follows the
   Primary colour), --clr-secondary (the wash and the rules) and
   --clr-accent (hover and small links). The greys are mixed from the ink,
   so a warm palette gets warm greys, not the core's slate blues. Pair it
   with the "EB Garamond + Inter (Serif)" font preset.

   Sections: 1 tokens · 2 shared bits · 3 strip + header · 4 drawer · 5 hero
   · 6 page headers · 7 cta · 8 footer · 9 core components · 10 responsive
   ============================================================ */

/* ── 1. Token defaults (admin overrides still win, see above) ─── */
:root{
  --topbar-height:0px;                 /* header.php's strip is not sticky; keeps cms.css sticky offsets right */
  --font-heading-weight:500;           /* "Heading weight" on the Theme tab overrides */
  --cl-header-h:84px;
  --cl-radius:20px;
  --cl-radius-lg:28px;
  --cl-track:.16em;
  --cl-wash:color-mix(in srgb,var(--clr-secondary) 8%,var(--clr-cream));
  --cl-wash-2:color-mix(in srgb,var(--clr-secondary) 17%,var(--clr-cream));
  --cl-line:color-mix(in srgb,var(--clr-bark) 12%,transparent);
  --clr-earth:color-mix(in srgb,var(--clr-bark) 84%,var(--clr-cream));
  --clr-stone:color-mix(in srgb,var(--clr-bark) 70%,var(--clr-cream));
  --clr-mist:color-mix(in srgb,var(--clr-bark) 42%,var(--clr-cream));
  --clr-parchment:color-mix(in srgb,var(--clr-bark) 12%,var(--clr-cream));
  --clr-linen:var(--cl-wash);
  --clr-navbar-bg:var(--clr-cream);
  --clr-navbar-link:var(--clr-earth);
  --clr-navbar-link-hover:var(--clr-accent);
  --clr-navbar-brand:var(--clr-bark);
  --clr-footer-bg:var(--cl-wash);
  --clr-footer-link:var(--clr-earth);
  --clr-footer-link-hover:var(--clr-accent);
}
/* Browsers without color-mix(): flat tints from the core palette instead. */
@supports not (color:color-mix(in srgb,red 50%,blue)){
  :root{
    --cl-wash:var(--clr-moonlight);--cl-wash-2:var(--clr-moonlight);--cl-line:rgba(0,0,0,.1);
    --clr-earth:#4a4a4a;--clr-stone:#6b6b6b;--clr-mist:#a3a3a3;--clr-parchment:#e5e5e5;
  }
}

body{-webkit-font-smoothing:antialiased;color:var(--clr-earth)}
h1,h2,h3,h4,h5{font-family:var(--font-serif);font-weight:var(--font-heading-weight,500);letter-spacing:-.005em;line-height:1.15;color:var(--clr-bark)}
a{color:var(--clr-accent)}
a:hover{color:var(--clr-bark)}
.section-eyebrow{font-weight:600;letter-spacing:var(--cl-track);color:var(--clr-accent)}
::selection{background:var(--cl-wash-2);color:var(--clr-bark)}

/* ── 2. Shared: eyebrow + pill buttons ─────────────────────────── */
.clEyebrow{
  display:inline-flex;align-items:center;gap:.75rem;
  font-size:.74rem;font-weight:600;letter-spacing:var(--cl-track);text-transform:uppercase;color:var(--clr-accent);
}
.clEyebrow::before{content:'';width:28px;height:1px;background:currentColor;opacity:.7}
.clBtn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.85rem 1.7rem;border:1px solid transparent;border-radius:999px;
  font-family:var(--font-sans);font-size:.92rem;font-weight:500;letter-spacing:.01em;line-height:1.2;
  text-decoration:none;white-space:nowrap;cursor:pointer;
  transition:background-color .2s,color .2s,border-color .2s;
}
.clBtn--primary{background:var(--clr-bark);border-color:var(--clr-bark);color:var(--clr-cream)}
.clBtn--primary:hover,.clBtn--primary:focus-visible{background:var(--clr-accent);border-color:var(--clr-accent);color:var(--clr-cream)}
.clBtn--ghost{background:transparent;border-color:color-mix(in srgb,var(--clr-bark) 35%,transparent);color:var(--clr-bark)}
.clBtn--ghost:hover,.clBtn--ghost:focus-visible{background:var(--cl-wash-2);border-color:var(--clr-bark);color:var(--clr-bark)}
.clBtn:focus-visible{outline:2px solid var(--clr-accent);outline-offset:3px}

/* ── 3. Information strip + header ─────────────────────────────── */
.clStrip{background:var(--cl-wash);border-bottom:1px solid var(--cl-line);font-size:.8rem;color:var(--clr-earth)}
.clStrip__wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:40px}
.clStrip__list{display:flex;flex-wrap:wrap;gap:.25rem 1.75rem;list-style:none;margin:0;padding:0}
.clStrip__item{display:inline-flex;align-items:center}
.clStrip__item i{margin-right:.5rem;font-size:.72rem;color:var(--clr-secondary)}
.clStrip a{color:inherit;text-decoration:none}
.clStrip a:hover{color:var(--clr-accent)}
.clStrip__social{display:flex;gap:.9rem}

.clHeader{
  position:sticky;top:0;z-index:999;
  background:var(--clr-navbar-bg);
  border-bottom:1px solid transparent;
  transition:border-color .25s,box-shadow .25s;
}
.clHeader.is-scrolled{border-bottom-color:var(--cl-line);box-shadow:0 6px 24px -18px color-mix(in srgb,var(--clr-bark) 40%,transparent)}
.clHeader__wrap{display:flex;align-items:center;gap:2rem;height:var(--cl-header-h)}
.clHeader__brand{display:flex;align-items:center;gap:.85rem;text-decoration:none;min-width:0;flex-shrink:0}
.clHeader__brand img{height:var(--nav-logo-height,52px);width:auto}
.clHeader__wordmark{font-family:var(--font-serif);font-size:1.55rem;font-weight:500;color:var(--clr-navbar-brand);white-space:nowrap;line-height:1.1}
.clHeader__nav{margin-left:auto}
.clHeader__menu{display:flex;align-items:center;gap:.15rem;list-style:none;margin:0;padding:0}
.clHeader__item{position:relative}
.clHeader__link{
  display:inline-flex;align-items:center;gap:.4rem;
  padding:.55rem .85rem;background:none;border:0;border-radius:999px;cursor:pointer;
  font-size:var(--nav-link-size,.93rem);font-weight:500;
  color:var(--clr-navbar-link);text-decoration:none;white-space:nowrap;transition:color .2s,background-color .2s;
}
.clHeader__link:hover,.clHeader__link:focus-visible,
.clHeader__item--parent:focus-within>.clHeader__link,
.clHeader__item--parent.is-open>.clHeader__link{color:var(--clr-navbar-link-hover);background:var(--cl-wash)}
.clHeader__link:focus{outline:none}
.clHeader__link:focus-visible{outline:2px solid var(--clr-accent);outline-offset:2px}
.clHeader__caret{font-size:.55rem;opacity:.6;transition:transform .18s}
.clHeader__item--parent.is-open .clHeader__caret{transform:rotate(180deg)}
.clHeader__sub{
  position:absolute;top:calc(100% + 8px);left:50%;min-width:250px;
  margin:0;padding:.6rem;list-style:none;
  background:var(--clr-cream);border:1px solid var(--cl-line);border-radius:16px;
  box-shadow:0 18px 40px -20px color-mix(in srgb,var(--clr-bark) 45%,transparent);
  opacity:0;visibility:hidden;transform:translate(-50%,6px);
  transition:opacity .18s,transform .18s,visibility 0s .18s;
}
.clHeader__sub::before{content:'';position:absolute;left:0;right:0;top:-10px;height:10px} /* hover bridge */
/* Open on hover, or when js/themes/clinic.js says so (tap, click, Enter; it
   sets [data-cl-js]). Without the script, keyboard focus opens it instead --
   with it, focus must not, or a second tap could never close the menu. Hover
   only where there is a real pointer: a tap leaves :hover stuck on a tablet. */
.clHeader:not([data-cl-js]) .clHeader__item--parent:focus-within>.clHeader__sub,
.clHeader__item--parent.is-open>.clHeader__sub{opacity:1;visibility:visible;transform:translate(-50%,0);transition-delay:0s}
@media (hover:hover){
  .clHeader__item--parent:hover>.clHeader__sub{opacity:1;visibility:visible;transform:translate(-50%,0);transition-delay:0s}
}
.clHeader__sub-link{
  display:block;padding:.55rem .9rem;border-radius:10px;
  font-size:.9rem;color:var(--clr-earth);text-decoration:none;white-space:nowrap;
}
.clHeader__sub-link:hover,.clHeader__sub-link:focus-visible{color:var(--clr-bark);background:var(--cl-wash)}
.clHeader__actions{display:flex;align-items:center;gap:.4rem;flex-shrink:0}
.clHeader__cta{padding:.7rem 1.35rem;margin-left:.4rem}
.clHeader__icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;border-radius:50%;color:var(--clr-navbar-link);font-size:.95rem;text-decoration:none;
}
.clHeader__icon:hover{color:var(--clr-navbar-link-hover);background:var(--cl-wash)}
/* Plugin nav action (the shop's cart): stays on phones -- a cart you cannot
   see is a cart you forget you filled. */
.clHeader__icon--count{position:relative}
.clHeader__count{
  position:absolute;top:2px;right:0;
  min-width:17px;height:17px;padding:0 4px;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--clr-accent);color:var(--clr-cream);
  font-size:.6rem;font-weight:700;line-height:1;border-radius:999px;
}
.clHeader__count--inline{position:static;margin-left:.4rem}
.clHeader__burger{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  width:44px;height:44px;padding:0;background:var(--cl-wash);border:0;border-radius:50%;cursor:pointer;
}
.clHeader__burger span{display:block;width:18px;height:1.5px;background:var(--clr-bark);margin:0 auto;border-radius:2px}

/* ── 4. Mobile drawer -- navbar.css paints .offcanvas in --clr-primary ── */
.clDrawer.offcanvas{background:var(--clr-cream)!important;border-left:1px solid var(--cl-line)!important;width:320px!important}
.clDrawer__head{padding:1.25rem 1.5rem;border-bottom:1px solid var(--cl-line)}
.clDrawer__title{font-family:var(--font-serif);font-size:1.15rem;color:var(--clr-bark)}
.clDrawer__body{padding:1rem 1.5rem 1.5rem;display:flex;flex-direction:column}
.clDrawer__list{list-style:none;margin:0;padding:0}
.clDrawer__link{
  display:flex;align-items:center;justify-content:space-between;width:100%;
  padding:.9rem 0;background:none;border:0;border-bottom:1px solid var(--cl-line);cursor:pointer;text-align:left;
  font-size:1rem;font-weight:500;color:var(--clr-bark);text-decoration:none;
}
.clDrawer__link:hover{color:var(--clr-accent)}
.clDrawer__toggle{font-size:.7rem;color:var(--clr-stone);transition:transform .2s}
.clDrawer__link[aria-expanded="true"] .clDrawer__toggle{transform:rotate(45deg)}
.clDrawer__sub{padding:.35rem 0 .6rem .9rem;border-bottom:1px solid var(--cl-line)}
.clDrawer__sub-link{display:block;padding:.45rem 0;font-size:.93rem;color:var(--clr-earth);text-decoration:none}
.clDrawer__sub-link:hover{color:var(--clr-accent)}
.clDrawer__contact{margin-top:auto;padding:1.25rem;display:flex;flex-direction:column;gap:.65rem;background:var(--cl-wash);border-radius:var(--cl-radius)}
.clDrawer__contact a{display:flex;align-items:center;gap:.6rem;font-size:.9rem;color:var(--clr-earth);text-decoration:none;word-break:break-word}
.clDrawer__contact a:hover{color:var(--clr-accent)}
.clDrawer__contact i{color:var(--clr-secondary)}

/* ── 5. Hero ───────────────────────────────────────────────────── */
.clHero{position:relative;overflow:hidden;background:var(--clr-cream);padding:clamp(3rem,8vh,6rem) 0 clamp(3.5rem,9vh,6.5rem)}
.clHero__wash{
  position:absolute;top:0;right:0;bottom:0;width:46%;z-index:0;pointer-events:none;
  background:var(--cl-wash);border-bottom-left-radius:var(--cl-radius-lg);
}
.clHero .container{position:relative;z-index:1}
.clHero__layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.clHero__eyebrow{margin-bottom:1.4rem}
.clHero__title{font-size:clamp(2.5rem,5vw,4.3rem);line-height:1.06;margin:0 0 1.4rem;letter-spacing:-.015em}
.clHero__sub{font-size:clamp(1.02rem,1.3vw,1.18rem);line-height:1.7;color:var(--clr-earth);max-width:34rem;margin:0 0 2.1rem}
.clHero__actions{display:flex;flex-wrap:wrap;gap:.85rem}
.clHero__media{position:relative;justify-self:center;width:100%;max-width:440px}
.clArch{
  position:relative;z-index:1;aspect-ratio:4/5;overflow:hidden;
  border-radius:999px 999px var(--cl-radius-lg) var(--cl-radius-lg);
  background:var(--cl-wash-2);
}
.clArch img{width:100%;height:100%;object-fit:cover;display:block}
.clArch__slides{position:absolute;inset:0}
.clArch__slides .heroSlideshow__slide{position:absolute;inset:0}
.clArch--empty{
  display:grid;place-items:center;
  background:linear-gradient(180deg,var(--cl-wash-2) 0%,color-mix(in srgb,var(--clr-secondary) 28%,var(--clr-cream)) 100%);
}
.clArch__logo{width:74%!important;height:auto!important;object-fit:contain!important;mix-blend-mode:multiply}
.clHero__ring{
  position:absolute;z-index:0;inset:-16px 16px 16px -16px;
  border:1px solid color-mix(in srgb,var(--clr-secondary) 55%,transparent);
  border-radius:999px 999px var(--cl-radius-lg) var(--cl-radius-lg);
}

/* ── 6. Page headers (theme page-header.php + the core service title bar) ── */
.clPageHead{background:var(--cl-wash);padding:clamp(2.5rem,6vh,4.5rem) 0 clamp(2.25rem,5vh,3.5rem);border-bottom:1px solid var(--cl-line)}
.clPageHead__layout{display:grid;grid-template-columns:1fr;gap:2rem;align-items:center}
.clPageHead--image .clPageHead__layout{grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr)}
.clPageHead__media{justify-self:end;width:100%;max-width:260px}
.clArch--small{aspect-ratio:4/5}
.clPageHead__breadcrumb,.svcHero__breadcrumb{margin:0 0 1rem;padding:0;background:none;font-size:.78rem;letter-spacing:.04em}
.clPageHead__breadcrumb .breadcrumb-item,.svcHero__breadcrumb .breadcrumb-item,
.svcHero__breadcrumb .breadcrumb-item.active{color:var(--clr-stone);background:none;padding:0;border:0;font-weight:400;box-shadow:none}
.clPageHead__breadcrumb .breadcrumb-item+.breadcrumb-item::before,
.svcHero__breadcrumb .breadcrumb-item+.breadcrumb-item::before{content:'/';color:var(--clr-mist);padding:0 .55rem}
.clPageHead__breadcrumb a,.svcHero__breadcrumb .breadcrumb-item a{color:var(--clr-stone);text-decoration:none;background:none;padding:0}
.clPageHead__breadcrumb a:hover,.svcHero__breadcrumb .breadcrumb-item a:hover{color:var(--clr-accent);background:none}
.clPageHead__breadcrumb .active,.svcHero__breadcrumb .breadcrumb-item.active{color:var(--clr-bark)}
.clPageHead__title{font-size:clamp(2.1rem,4.2vw,3.4rem);margin:0;max-width:52rem;line-height:1.1}
.clPageHead__desc{margin:1.1rem 0 0;max-width:42rem;font-size:1.08rem;line-height:1.7;color:var(--clr-earth)}
.clPageHead__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem}

/* A service with no Hero photo keeps core's plain .svcHero title bar (it
   does not go through page-header.php); dress it as the theme's header. */
.svcHero{background:var(--cl-wash);padding:clamp(2.5rem,6vh,4.5rem) 0 clamp(2.25rem,5vh,3.5rem);border-bottom:1px solid var(--cl-line);box-shadow:none}
.svcHero::before,.svcHero::after{display:none}
.svcHero__bar{display:flex;flex-direction:column-reverse;align-items:flex-start;gap:0;background:none;border:0;padding:0;box-shadow:none}
.svcHero__crumbWrap{margin:0 0 .25rem;width:auto}
.svcHero__breadcrumb .breadcrumb-item a{border:0;box-shadow:none;outline-offset:2px}
.svcHero__breadcrumb{justify-content:flex-start}
.svcHero__title{font-family:var(--font-serif);font-weight:var(--font-heading-weight,500);font-size:clamp(2.1rem,4.2vw,3.4rem);color:var(--clr-bark);margin:0;line-height:1.1}

/* ── 7. CTA ────────────────────────────────────────────────────── */
.clCta{padding:clamp(3rem,8vh,5.5rem) 0}
.clCta__panel{
  position:relative;overflow:hidden;max-width:880px;margin:0 auto;text-align:center;
  padding:clamp(2.5rem,6vw,4.25rem) clamp(1.5rem,5vw,4rem);
  background:var(--cl-wash-2);border-radius:var(--cl-radius-lg);
}
.clCta__panel::after{
  content:'';position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;
  border:1px solid color-mix(in srgb,var(--clr-secondary) 45%,transparent);pointer-events:none;
}
.clCta__rule{display:block;width:44px;height:1px;background:var(--clr-accent);margin:0 auto 1.5rem}
.clCta__title{font-size:clamp(1.8rem,3.4vw,2.6rem);margin:0 0 1rem}
.clCta__body{color:var(--clr-earth);font-size:1.05rem;line-height:1.7;max-width:36rem;margin:0 auto 1.9rem}
.clCta__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.85rem}

/* ── 8. Footer ─────────────────────────────────────────────────── */
.clFooter{background:var(--clr-footer-bg);border-top:1px solid var(--cl-line);padding:clamp(3.5rem,8vh,5rem) 0 1.75rem;color:var(--clr-earth)}
.clFooter__grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,.75fr) minmax(0,1.25fr);gap:2.5rem 3rem}
.clFooter__logo{display:inline-block;text-decoration:none}
.clFooter__logo img{height:96px;width:auto;mix-blend-mode:multiply}
.clFooter__wordmark{font-family:var(--font-serif);font-size:1.45rem;color:var(--clr-bark)}
.clFooter__tagline{margin:1.1rem 0 0;max-width:22rem;font-size:.95rem;line-height:1.7;color:var(--clr-earth)}
.clFooter__social{display:flex;gap:.5rem;margin-top:1.4rem}
.clFooter__social a{
  display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;
  background:var(--clr-cream);border:1px solid var(--cl-line);color:var(--clr-bark);font-size:.95rem;text-decoration:none;
  transition:background-color .2s,color .2s;
}
.clFooter__social a:hover{background:var(--clr-bark);color:var(--clr-cream)}
.clFooter__head{
  font-family:var(--font-sans);font-size:.74rem;font-weight:600;letter-spacing:var(--cl-track);text-transform:uppercase;
  color:var(--clr-accent);margin:0 0 1.1rem;
}
.clFooter__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}
.clFooter__list a{color:var(--clr-footer-link);text-decoration:none;font-size:.95rem;transition:color .2s}
.clFooter__list a:hover{color:var(--clr-footer-link-hover)}
.clFooter__list--contact li{display:flex;gap:.75rem;align-items:flex-start;font-size:.95rem;line-height:1.6}
.clFooter__list--contact i{flex:0 0 1rem;margin-top:.35rem;font-size:.8rem;color:var(--clr-secondary)}
.clFooter__list--contact a{word-break:break-word}
.clFooter__head--hours{margin-top:1.75rem}
.clFooter__hours{margin:0;display:grid;gap:.3rem;max-width:15rem;font-size:.92rem}
.clFooter__hoursRow{display:flex;justify-content:space-between;gap:1rem}
.clFooter__hours dt{font-weight:500;color:var(--clr-bark)}
.clFooter__hours dd{margin:0;color:var(--clr-earth);font-variant-numeric:tabular-nums}
.clFooter__bottom{
  margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--cl-line);
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 2rem;
  font-size:.82rem;color:var(--clr-stone);
}
.clFooter__meta{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem}
.clFooter__bottom .footerLegalIds{color:var(--clr-stone)}
.clFooter__legal{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem}
.clFooter__legal a,.clFooter__credit a{color:var(--clr-stone);text-decoration:none}
.clFooter__legal a:hover,.clFooter__credit a:hover{color:var(--clr-accent)}

/* ── 9. Core components, softened to match ─────────────────────── */
/* Bootstrap-ish solid buttons used by core views become the theme's pills. */
.btn-forest,.btn-amber,.btn-accent,.btn-mystic,.btn-primary{
  border-radius:999px;background:var(--clr-bark);border-color:var(--clr-bark);color:var(--clr-cream);font-weight:500;
}
.btn-forest:hover,.btn-amber:hover,.btn-accent:hover,.btn-mystic:hover,.btn-primary:hover{background:var(--clr-accent);border-color:var(--clr-accent);color:var(--clr-cream)}
.btn-forest-outline,.btn-ghost-light,.btn-outline-primary{border-radius:999px}

/* Services grid: soft cards, serif titles, text links. */
.svcCards{background:var(--clr-cream);padding:clamp(3.5rem,9vh,6rem) 0}
.svcCards::before{display:none}
.svcCards__head{text-align:center;max-width:44rem;margin:0 auto clamp(2rem,5vh,3rem)}
.svcCards__head h2{font-size:clamp(2rem,3.6vw,2.8rem);font-weight:var(--font-heading-weight,500)}
.svcCards__head h2::after{content:'';display:block;width:44px;height:1px;background:var(--clr-accent);margin:1.1rem auto 0}
.svcCards__intro{color:var(--clr-earth);font-size:1.05rem;line-height:1.7}
.svcCard{
  height:100%;display:flex;flex-direction:column;
  background:var(--clr-cream);border:1px solid var(--cl-line);border-left:1px solid var(--cl-line);border-radius:var(--cl-radius);
  box-shadow:none;padding:2rem 1.9rem 1.75rem;transition:border-color .25s,background-color .25s,transform .25s;
}
.svcCard:hover{transform:translateY(-3px);box-shadow:none;border-color:color-mix(in srgb,var(--clr-secondary) 60%,transparent);background:var(--cl-wash)}
.svcCard__img{margin:-2rem -1.9rem 1.5rem;height:220px;border-radius:var(--cl-radius) var(--cl-radius) 0 0;overflow:hidden}
.svcCard__title{font-family:var(--font-serif);font-weight:var(--font-heading-weight,500);font-size:1.5rem;line-height:1.2;color:var(--clr-bark);padding:0;margin:0 0 .75rem;text-align:left}
.svcCard__body{font-size:.95rem;line-height:1.65;color:var(--clr-earth);margin:0 0 1.5rem}
.svcCard__footer{
  margin-top:auto;padding:1.1rem 0 0;border:0;border-top:1px solid var(--cl-line);
  display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:1rem;
}
.svcCard__btn{
  padding:0;background:none;border:0;border-radius:0;box-shadow:none;width:auto;
  color:var(--clr-bark);font-size:.9rem;font-weight:500;letter-spacing:0;text-transform:none;
}
.svcCard__btn:hover{background:none;color:var(--clr-accent);transform:none}
.svcCard__btn i{font-size:.75rem;margin-left:.35rem;background:none;color:inherit}
.svcCard__link{color:var(--clr-stone);font-size:.78rem;font-weight:500;letter-spacing:.08em}
.svcCard__link:hover{color:var(--clr-accent)}

/* Testimonials: washed band, white cards, the quote set in the serif italic. */
.reviews{background:var(--cl-wash);color:var(--clr-bark);padding:clamp(3.5rem,9vh,6rem) 0}
.reviews::before,.reviews::after{display:none}
.reviews__head h2{color:var(--clr-bark);font-size:clamp(2rem,3.6vw,2.8rem);font-weight:var(--font-heading-weight,500)}
.reviews__head .section-eyebrow{color:var(--clr-accent)}
.reviewCard{background:var(--clr-cream);border:1px solid var(--cl-line);border-radius:var(--cl-radius);box-shadow:none;padding:2rem}
.reviewCard__text{font-family:var(--font-serif);font-style:italic;font-size:1.14rem;line-height:1.65;color:var(--clr-earth)}
.reviewCard__name{color:var(--clr-bark);font-weight:600}
.reviewCard__loc{color:var(--clr-stone)}
.reviewCard__avatar{background:var(--cl-wash-2);color:var(--clr-accent);font-family:var(--font-serif)}
.reviewCard__stars{color:var(--clr-secondary)}
.reviews__ctrl{background:var(--clr-cream);border:1px solid var(--cl-line);color:var(--clr-bark)}
.reviews__ctrl:hover{background:var(--clr-bark);color:var(--clr-cream)}
.reviews__dots button{background:var(--clr-mist)}
.reviews__dots button[aria-current="true"]{background:var(--clr-bark)}

/* Service page body: a readable measure, serif subheads, soft bullets. */
.service-content-body{max-width:48rem;font-size:1.05rem;line-height:1.8;color:var(--clr-earth)}
.service-content-body h2,.service-content-body h3{font-size:clamp(1.5rem,2.4vw,1.95rem);margin:2.6rem 0 .9rem;color:var(--clr-bark)}
.service-content-body > :first-child{margin-top:0}
.service-content-body > p:first-child{font-size:1.18rem;line-height:1.75;color:var(--clr-bark)}
.service-content-body ul{list-style:none;padding-left:0;margin:0 0 1.4rem}
.service-content-body ul li{position:relative;padding-left:1.6rem;margin-bottom:.45rem}
.service-content-body ul li::before{content:'';position:absolute;left:.2rem;top:.72em;width:7px;height:7px;border-radius:50%;background:var(--clr-secondary)}
.service-content-body strong{color:var(--clr-bark);font-weight:600}
.service-content-body a{color:var(--clr-accent);text-underline-offset:3px}

/* CMS page-builder blocks (cms.css): serif headings without the gradient
   bar, prose held to a readable measure, no alternating tinted band. */
.cmsBlock{padding-top:clamp(2.5rem,5vw,4rem);padding-bottom:clamp(1.5rem,3vw,2.5rem)}
.cmsBlock__heading{font-family:var(--font-serif);font-weight:var(--font-heading-weight,500);color:var(--clr-bark);margin-bottom:1.25rem;display:block}
.cmsBlock__heading::before{display:none}
.cmsBlock__body{max-width:48rem;color:var(--clr-earth);line-height:1.8}
.cmsBlock__body strong{color:var(--clr-bark);font-weight:600}
.cmsBlock__body ul > li::before{background:var(--clr-secondary)}
.cmsBlock__rule{border-color:var(--cl-line)}
.cms-content-section:nth-child(even){background:var(--cl-wash)}
.cms-content-section .text-center .cmsBlock__body,
.cms-content-section.text-center .cmsBlock__body{margin-left:auto;margin-right:auto;text-align:center}
.cmsCards__card{border-radius:var(--cl-radius);border:1px solid var(--cl-line);box-shadow:none}
.cmsCards__card:hover,.cmsCards__card:focus-within{transform:translateY(-3px);box-shadow:none;border-color:color-mix(in srgb,var(--clr-secondary) 60%,transparent)}
.cmsCards__title{font-family:var(--font-serif);font-weight:var(--font-heading-weight,500);font-size:1.35rem}
.cmsCards__icon{color:var(--clr-secondary)}
.cmsCards__btn.btn{border-radius:999px;background:var(--clr-bark);border-color:var(--clr-bark);color:var(--clr-cream)}
.cmsCards__btn.btn:hover{background:var(--clr-accent);border-color:var(--clr-accent)}

/* Price list: each category a soft panel, each price a line in a menu --
   name on the left, price on the right, a dotted rule between rows. */
.priceList{padding:clamp(3rem,7vh,5rem) 0}
.priceList__category{background:var(--cl-wash);border-radius:var(--cl-radius-lg);padding:clamp(1.75rem,4vw,2.75rem) clamp(1.25rem,4vw,3rem);margin-bottom:1.5rem}
.priceList__catHeading{font-weight:var(--font-heading-weight,500);font-size:clamp(1.55rem,2.4vw,2rem);color:var(--clr-bark);margin-bottom:1.25rem}
.priceList__catHeading::before{display:none}
.priceList__grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:0 3.5rem}
.priceCard{
  display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:1.25rem;align-items:baseline;
  background:none;border:0;border-bottom:1px dashed color-mix(in srgb,var(--clr-bark) 20%,transparent);border-radius:0;
  padding:1rem 0;
}
.priceCard:hover{transform:none;box-shadow:none}
.priceCard--highlight{border-color:color-mix(in srgb,var(--clr-bark) 20%,transparent);box-shadow:none}
.priceCard--highlight::before{display:none}
.priceCard__badge{position:static;grid-column:1/-1;justify-self:start;margin-bottom:.35rem;background:var(--clr-bark);color:var(--clr-cream);font-size:.62rem;padding:.2rem .6rem}
.priceCard__name{grid-column:1;margin:0;font-family:var(--font-sans);font-size:1rem;font-weight:500;line-height:1.45;color:var(--clr-bark)}
.priceCard__price{grid-column:2;margin:0;display:flex;align-items:baseline;gap:.35rem;white-space:nowrap}
.priceCard__amount{font-family:var(--font-serif);font-size:1.35rem;font-weight:500;color:var(--clr-bark)}
.priceCard__from{font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--clr-stone)}
.priceCard__desc{grid-column:1/-1;margin:.3rem 0 0;font-size:.88rem;line-height:1.6;color:var(--clr-stone)}
.priceCard__features{grid-column:1/-1;margin:.5rem 0 0;font-size:.88rem;color:var(--clr-earth)}
.priceCard__features i{color:var(--clr-secondary)}
.priceCard__cta{grid-column:1/-1;margin-top:.5rem;font-size:.85rem;color:var(--clr-accent)}
.priceList__note{background:none;border:0;border-left:0;text-align:center;color:var(--clr-earth)}
.priceList__note i{color:var(--clr-secondary)}

/* Contact page: the info card is a solid --clr-primary panel whose text is
   pinned white with Bootstrap utilities, hence the !important here. */
.contact-section{padding:clamp(3rem,7vh,5rem) 0}
.contact-info-card{background:var(--cl-wash)!important;border:0;border-radius:var(--cl-radius-lg);color:var(--clr-bark);box-shadow:none}
.contact-info-card::before,.contact-info-card::after{display:none}
.contact-info-card h3,.contact-info-card h5,.contact-info-card p,.contact-info-card a,
.contact-info-card .text-white{color:var(--clr-bark)!important}
.contact-info-card h3{font-family:var(--font-serif)}
.contact-info-card h3 i{color:var(--clr-secondary)!important}
.contact-info-card>p{color:var(--clr-earth)!important;opacity:1}
.contact-info-item i{background:var(--clr-cream);border:1px solid var(--cl-line);color:var(--clr-accent)}
.contact-info-item h5{font-family:var(--font-sans);font-size:.72rem;font-weight:600;letter-spacing:var(--cl-track);color:var(--clr-stone)!important}
.contact-info-item p{opacity:1}
.contact-info-item a:hover{color:var(--clr-accent)!important}
.contact-form-card{border-radius:var(--cl-radius-lg);border:1px solid var(--cl-line);box-shadow:none}
.contact-form-card h3{font-family:var(--font-serif)}
.contact-form-card .form-control,.contact-form-card .form-select{border-radius:12px;border-color:color-mix(in srgb,var(--clr-bark) 18%,transparent);padding:.75rem 1rem}
.contact-form-card .form-control:focus,.contact-form-card .form-select:focus{border-color:var(--clr-accent);box-shadow:0 0 0 3px var(--cl-wash-2)}
.contact-form-card .form-check-input:checked{background-color:var(--clr-bark);border-color:var(--clr-bark)}
.contact-submit-btn.btn,.contact-submit-btn{border-radius:999px;background:var(--clr-bark);border-color:var(--clr-bark);color:var(--clr-cream);box-shadow:none;font-weight:500}
.contact-submit-btn.btn:hover,.contact-submit-btn:hover,.contact-submit-btn:focus-visible{background:var(--clr-accent);border-color:var(--clr-accent);color:var(--clr-cream);box-shadow:none;transform:none}
.contactSuccess__card{border-radius:var(--cl-radius-lg);box-shadow:none;border:1px solid var(--cl-line)}

/* Newsletter block above the footer: the core version is a dark gradient
   band with glow orbs and pills; make it a quiet white band. */
.footerCta{background:var(--clr-cream);border-top:1px solid var(--cl-line)}
.footerCta::before,.footerCta::after{display:none}
.footerCta__panel{padding:clamp(2.5rem,6vh,3.5rem) 0}
.footerCta__eyebrow{padding:0;margin-bottom:.75rem;border:0;background:none;color:var(--clr-accent);font-weight:600;letter-spacing:var(--cl-track)}
.footerCta__ico{display:none}
.footerCta__title{color:var(--clr-bark);font-family:var(--font-serif);font-weight:var(--font-heading-weight,500)}
.footerCta__sub{color:var(--clr-earth)}
.footerCta__point{padding:0;background:none;border:0;color:var(--clr-earth);font-weight:500;font-size:.82rem}
.footerCta__point i{color:var(--clr-secondary)}
.footerCta__form-wrap{padding:0;background:none;border:0;border-radius:0;box-shadow:none;backdrop-filter:none}
.footerCta__form input{background:var(--clr-cream);border:1px solid color-mix(in srgb,var(--clr-bark) 18%,transparent);border-radius:999px;color:var(--clr-bark);padding-left:1.25rem}
.footerCta__form input::placeholder{color:var(--clr-mist)}
.footerCta__form input:focus{border-color:var(--clr-accent);box-shadow:0 0 0 3px var(--cl-wash-2)}
.footerCta__form button{min-width:0;border-radius:999px;background:var(--clr-bark);color:var(--clr-cream);box-shadow:none;font-weight:500;padding:0 1.5rem}
.footerCta__form button:hover{transform:none;background:var(--clr-accent)}
.footerCta__note{color:var(--clr-stone)}
.footerCta__feedback--ok{color:var(--clr-accent)}

/* Floating contact buttons and scroll-to-top: ink, not the core accent. */
.scroll-to-top,.scrollTop{background:var(--clr-bark)}

/* ── 10. Responsive ────────────────────────────────────────────── */
/* Small laptops: close the spacing up, never the type size. */
@media (min-width:992px) and (max-width:1199px){
  .clHeader__wrap{gap:1rem}
  .clHeader__link{padding-inline:.6rem}
  .clHeader__brand img{height:44px}
}
@media (max-width:991px){
  :root{--cl-header-h:72px}
  .clHeader__nav,.clHeader__icon{display:none}
  .clHeader__icon--count{display:inline-flex}
  .clHeader__actions{margin-left:auto}
  .clHeader__burger{display:flex}
  .clHeader__brand img{height:44px}
  .clHero{padding-bottom:1rem}
  .clHero__layout{grid-template-columns:1fr}
  .clHero__media{max-width:340px}
  /* Stacked, the logo-only arch just repeats the header: drop it, keep photos. */
  .clHero__media--logo,.clHero__wash{display:none}
  .clFooter__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .clPageHead--image .clPageHead__layout{grid-template-columns:1fr}
  .clPageHead__media{display:none}
}
@media (max-width:767px){
  .clStrip__item--email,.clStrip__item--address{display:none}
}
@media (max-width:575px){
  .clStrip__social{display:none}
  .clStrip__wrap{justify-content:center}
  .clHeader__cta{display:none}
  .clHeader__wordmark{font-size:1.25rem}
  .clHero{padding-bottom:2.5rem}
  .clHero__title{font-size:2.35rem}
  .clHero__actions .clBtn{flex:1 1 100%}
  .clHero__media{max-width:280px}
  .service-content-body > p:first-child{font-size:1.08rem}
  .clFooter__grid{grid-template-columns:1fr}
  .clFooter__bottom{flex-direction:column;align-items:flex-start}
  .priceCard__amount{font-size:1.2rem}
}
@media (prefers-reduced-motion:reduce){
  .svcCard,.cmsCards__card{transition:none}
  .svcCard:hover,.cmsCards__card:hover{transform:none}
}
