/* Bavary Clinic — Concern Page Manager 1.0
   Mirrors the Treatment Manager palette and typography while remaining isolated. */
.bavary-concern-manager {
 --bcm-ivory:#fcfaf7;--bcm-beige:#f1ece6;--bcm-sand:#e8e1d9;
 --bcm-ink:#2b2826;--bcm-muted:rgba(43,40,38,.70);--bcm-accent:#8b7765;
 --bcm-line:rgba(43,40,38,.15);--bcm-cream:#e8d8c4;
 --bcm-body:'Satoshi','Satoshi Variable','Avenir Next',Arial,sans-serif;
 --bcm-display:'Playfair Display',Georgia,serif;
 --bcm-h1:clamp(2rem,2.6vw + 1rem,3.35rem);
 --bcm-h2:clamp(1.85rem,1.4vw + 1rem,2.48rem);
 --bcm-h3:clamp(1.08rem,.4vw + 1rem,1.25rem);
 background:var(--bcm-ivory);color:var(--bcm-ink);font:400 1rem/1.75 var(--bcm-body);
}
.bavary-concern-manager,.bavary-concern-manager *,.bavary-concern-manager *::before,.bavary-concern-manager *::after{box-sizing:border-box}
.bavary-concern-manager :is(h1,h2,h3,h4,p,ul,ol,blockquote,figure){margin-top:0}
.bavary-concern-manager a{text-decoration:none}
.bavary-concern-manager :is(a,button):focus-visible{outline:2px solid var(--bcm-accent);outline-offset:5px}
.bcm-container{width:min(100% - 40px,1240px);margin-inline:auto}
.bcm-section{padding:clamp(70px,7vw,112px) 0;color:var(--bcm-ink)}
.bcm-surface-light{background:var(--bcm-ivory)}
.bcm-surface-medium{background:var(--bcm-beige)}
.bcm-surface-soft{background:var(--bcm-sand)}
.bcm-surface-dark{background:var(--bcm-ink);color:var(--bcm-ivory)}
.bcm-kicker{margin:0 0 13px;font:500 .74rem/1.5 var(--bcm-body);text-transform:uppercase;letter-spacing:.14em;color:var(--bcm-accent)}
.bcm-section-title{margin:0!important;font:500 var(--bcm-h2)/1.23 var(--bcm-display);letter-spacing:-.012em;color:inherit!important}
.bcm-section-header{margin:0 0 clamp(28px,4vw,42px);max-width:100%}
.bcm-section-intro{font-size:clamp(1rem,.28vw + .97rem,1.1rem);line-height:1.75;margin:13px 0 0;color:var(--bcm-muted)}
.bcm-prose{font-size:1rem;line-height:1.75;max-width:none;color:var(--bcm-muted)}
.bcm-prose :is(p,ul,ol){color:inherit!important;margin:0}
.bcm-prose :is(p,ul,ol) + :is(p,ul,ol){margin-top:12px}
.bcm-prose ul,.bcm-prose ol{padding-left:24px}
.bcm-prose a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.bcm-prose h4{font:600 var(--bcm-h3)/1.4 var(--bcm-body)!important;letter-spacing:-.009em;color:var(--bcm-ink)!important;margin:25px 0 10px!important}
.bcm-prose h4:first-child{margin-top:0!important}
.bcm-surface-dark .bcm-prose{color:rgba(252,250,247,.83)}
.bcm-surface-dark .bcm-section-intro{color:rgba(252,250,247,.74)}
.bcm-surface-dark .bcm-kicker{color:var(--bcm-cream)}
.bcm-surface-dark .bcm-prose h4{color:var(--bcm-ivory)!important}
/* Hero: split editorial layout on desktop; full-bleed photography on mobile. */
.bcm-hero{position:relative;min-height:72svh;background:var(--bcm-ink);color:var(--bcm-ivory);isolation:isolate;overflow:hidden;display:flex;align-items:flex-end}
.bcm-hero-image{position:absolute;inset:0;z-index:-2}
.bcm-hero-image picture,.bcm-hero-image img{display:block;width:100%;height:100%}
.bcm-hero-image img{object-fit:cover;object-position:center}
.bcm-hero::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(18,16,15,.2) 0%,rgba(18,16,15,.88) 100%)}
.bcm-hero-inner{width:min(100% - 40px,1240px);margin-inline:auto;padding:160px 0 65px}
.bcm-hero .bcm-kicker{color:var(--bcm-cream);margin-bottom:14px}
.bcm-hero h1{font:500 var(--bcm-h1)/1.15 var(--bcm-display);letter-spacing:-.02em;text-transform:none;max-width:17ch;color:var(--bcm-ivory)!important;margin:0!important}
.bcm-hero-intro{margin:19px 0 0;color:rgba(252,250,247,.84)!important;font-size:clamp(1rem,.3vw + .96rem,1.1rem);line-height:1.75;max-width:55ch}
.bcm-button{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:54px;padding:14px 22px;font:500 .82rem/1.4 var(--bcm-body);text-transform:uppercase;letter-spacing:.07em;border:1px solid currentColor;transition:background .25s ease,color .25s ease;text-align:center}
.bcm-button span{font-size:1.14rem;line-height:1}
.bcm-button--light{margin-top:29px;color:var(--bcm-ivory)!important;border-color:rgba(252,250,247,.7)}
.bcm-button--light:hover{background:var(--bcm-ivory);color:var(--bcm-ink)!important}
/* Lightweight contents navigation supports discoverability without clutter. */
.bcm-subnav{background:var(--bcm-ivory);border-bottom:1px solid var(--bcm-line)}
.bcm-subnav-inner{display:flex;align-items:center;gap:24px;overflow-x:auto;white-space:nowrap;scrollbar-width:thin;padding-block:16px}
.bcm-subnav span{font:600 .73rem/1.5 var(--bcm-body);text-transform:uppercase;letter-spacing:.11em;color:var(--bcm-accent)}
.bcm-subnav a{color:var(--bcm-ink);font:500 .82rem/1.5 var(--bcm-body);padding:4px 0;white-space:nowrap}
.bcm-subnav a:hover{text-decoration:underline;text-underline-offset:4px}
/* Sections */
.bcm-overview-grid,.bcm-approach-grid,.bcm-caution-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(30px,7vw,110px);align-items:start}
.bcm-overview-grid .bcm-section-header,.bcm-approach-grid .bcm-section-header,.bcm-caution-grid .bcm-section-header{margin-bottom:0}
.bcm-overview-prose{font-size:1.04rem}
.bcm-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.bcm-tile{background:var(--bcm-ivory);padding:clamp(24px,3.4vw,38px);min-width:0;min-height:225px}
.bcm-tile-number,.bcm-journey-number{color:var(--bcm-accent);font:500 .75rem/1.5 var(--bcm-body);letter-spacing:.12em}
.bcm-tile h3,.bcm-factor h3,.bcm-routine-card h3,.bcm-journey-step h3{font:600 var(--bcm-h3)/1.45 var(--bcm-body)!important;color:var(--bcm-ink)!important;margin:13px 0 12px!important}
.bcm-factors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 50px}
.bcm-factor{padding:26px 0 24px;border-top:1px solid var(--bcm-line)}
.bcm-factor h3{margin:0 0 12px!important}
/* Real treatment records are linked rather than retyped on concern pages. */
.bcm-treatment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.bcm-treatment-card{position:relative;display:block;min-width:0;aspect-ratio:4/5;overflow:hidden;background:#b8ada2;color:var(--bcm-ivory)!important;isolation:isolate}
.bcm-treatment-photo{position:absolute;inset:0;z-index:-2}
.bcm-treatment-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.22,1,.36,1)}
.bcm-treatment-card::after{position:absolute;content:'';inset:0;z-index:-1;background:linear-gradient(180deg,rgba(12,10,8,.05) 18%,rgba(12,10,8,.35) 58%,rgba(12,10,8,.93) 100%)}
.bcm-treatment-card:hover .bcm-treatment-photo img{transform:scale(1.045)}
.bcm-treatment-overlay{position:absolute;inset:auto 24px 24px;display:block}
.bcm-treatment-label{display:block;font:500 .65rem/1.5 var(--bcm-body);letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.72);margin-bottom:12px}
.bcm-treatment-overlay strong{display:block;font:600 clamp(1.04rem,.5vw + .97rem,1.26rem)/1.42 var(--bcm-body);color:#fff!important;max-width:95%}
.bcm-treatment-sub{display:block;margin:9px 40px 0 0;color:rgba(255,255,255,.8);font:.86rem/1.55 var(--bcm-body);max-width:100%}
.bcm-treatment-arrow{position:absolute;right:0;bottom:0;border:1px solid rgba(255,255,255,.55);border-radius:50%;width:35px;height:35px;display:grid;place-items:center;transition:transform .3s ease}
.bcm-treatment-card:hover .bcm-treatment-arrow{transform:rotate(45deg)}
/* Accessible disclosure: grid transition avoids abrupt opening. */
.bcm-accordion-list{border-top:1px solid var(--bcm-line)}
.bcm-accordion-item{border-bottom:1px solid var(--bcm-line)}
.bcm-accordion-heading{margin:0!important;font:inherit!important}
.bcm-accordion-button{display:flex;justify-content:space-between;align-items:center;gap:24px;width:100%;padding:21px 4px;background:transparent;border:0;color:var(--bcm-ink)!important;text-align:left;cursor:pointer;font:600 var(--bcm-h3)/1.45 var(--bcm-body)}
.bcm-plus{width:22px;height:22px;flex:0 0 22px;position:relative}
.bcm-plus::before,.bcm-plus::after{content:'';position:absolute;top:10px;left:4px;width:14px;height:1px;background:currentColor;transition:transform .3s ease}
.bcm-plus::after{transform:rotate(90deg)}
.bcm-accordion-button[aria-expanded="true"] .bcm-plus::after{transform:rotate(0deg)}
.bcm-accordion-panel{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .38s cubic-bezier(.22,1,.36,1),opacity .3s ease}
.bcm-accordion-panel.is-open{grid-template-rows:1fr;opacity:1}
.bcm-accordion-inner{overflow:hidden;min-height:0}
.bcm-accordion-inner .bcm-prose{padding:0 36px 23px 4px}
.bcm-details-shell{background:var(--bcm-beige);padding:clamp(24px,4vw,50px)}
.bcm-details-shell .bcm-section-header{margin-bottom:26px}
.bcm-details-outer{position:relative;max-height:260px;overflow:hidden;transition:max-height .55s cubic-bezier(.22,1,.36,1)}
.bcm-details-outer:not(.is-expanded)::after{content:'';position:absolute;bottom:0;inset-inline:0;height:100px;background:linear-gradient(transparent,var(--bcm-beige));pointer-events:none}
.bcm-details-outer.is-expanded{max-height:18000px}
.bcm-details-prose h4{margin-top:24px!important;font-family:'Satoshi','Satoshi Variable',Arial,sans-serif!important}
.bcm-details-prose > br{display:none}
.bcm-read-more{margin:24px 0 0;padding:0;display:inline-flex;gap:14px;align-items:center;border:0;background:transparent;color:var(--bcm-ink);text-transform:uppercase;font:600 .8rem/1.5 var(--bcm-body);letter-spacing:.08em;cursor:pointer}
.bcm-read-more span{font-size:1.3rem;font-weight:400;transition:transform .3s ease}
.bcm-read-more[aria-expanded="true"] span{transform:rotate(45deg)}
.bcm-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.bcm-gallery-item{margin:0}
.bcm-gallery-comparison{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.bcm-gallery-comparison>div{position:relative;aspect-ratio:4/5;background:#d9d0c7;overflow:hidden}
.bcm-gallery-comparison img{width:100%;height:100%;object-fit:cover;display:block}
.bcm-gallery-comparison span{position:absolute;bottom:12px;left:12px;background:rgba(252,250,247,.94);padding:4px 9px;color:var(--bcm-ink);font:.7rem/1.4 var(--bcm-body)}
.bcm-gallery-item figcaption{margin-top:12px;color:var(--bcm-muted);font-size:.82rem}
.bcm-disclaimer{margin:20px 0 0;font-size:.82rem;color:var(--bcm-muted)}
.bcm-routine-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.bcm-routine-card{border-top:1px solid var(--bcm-line);padding:20px 0}
.bcm-products-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}
.bcm-product{display:block;text-align:center;min-width:0;color:var(--bcm-ink)!important}
.bcm-product-photo{position:relative;display:block;aspect-ratio:1/1;overflow:hidden;background:rgba(255,255,255,.45)}
.bcm-product-photo img{display:block;width:100%!important;height:100%!important;object-fit:cover!important;transition:transform .5s ease}
.bcm-product:hover .bcm-product-photo img{transform:scale(1.03)}
.bcm-product-badge{position:absolute;top:10px;left:10px;z-index:2;padding:7px 10px;background:rgba(252,250,247,.95);font:500 .6rem/1.35 var(--bcm-body);letter-spacing:.07em;text-transform:uppercase}
.bcm-product-brand{display:block;margin-top:20px;font:500 .68rem/1.5 var(--bcm-body);letter-spacing:.15em;text-transform:uppercase;color:var(--bcm-accent)}
.bcm-product strong{display:block;margin:8px auto 0;font:600 .85rem/1.6 var(--bcm-body);letter-spacing:.065em;text-transform:uppercase}
.bcm-product-price{display:block;font-size:.83rem;margin-top:7px;color:var(--bcm-muted)}
.bcm-product-price :is(del,ins){background:none;color:inherit}
.bcm-product-reason{display:block;font-size:.83rem;line-height:1.5;margin:10px auto 0;color:var(--bcm-muted)}
.bcm-approach-grid .bcm-section-title{color:var(--bcm-ivory)!important}
.bcm-approach-quote{color:var(--bcm-ivory)!important;font:italic clamp(1.5rem,2.1vw,2.35rem)/1.42 Georgia,'Times New Roman',serif;margin:0 0 23px!important}
.bcm-journey-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}
.bcm-journey-step{padding:21px 17px;background:var(--bcm-ivory);min-width:0}
.bcm-journey-step h3{font-size:1rem!important;margin:13px 0 10px!important}
.bcm-journey-step .bcm-prose{font-size:.9rem;line-height:1.65}
.bcm-caution-grid .bcm-prose{font-size:1.03rem}
.bcm-location-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.bcm-location{background:var(--bcm-ivory);padding:clamp(24px,3vw,40px)}
.bcm-location h3{font:500 1.5rem/1.3 var(--bcm-display);margin:0 0 14px!important;color:var(--bcm-ink)!important}
.bcm-location p{font-size:.96rem;color:var(--bcm-muted);line-height:1.8}
.bcm-location a{display:inline-flex;gap:20px;border-bottom:1px solid var(--bcm-accent);color:var(--bcm-ink);font-size:.82rem;padding-bottom:7px}
.bcm-cta{padding:clamp(70px,7vw,106px) 0;background:var(--bcm-ink);color:var(--bcm-ivory)}
.bcm-cta-grid{display:grid;grid-template-columns:1fr auto;align-items:end;gap:40px}
.bcm-cta .bcm-kicker{color:var(--bcm-cream)}
.bcm-cta h2{font:500 var(--bcm-h2)/1.22 var(--bcm-display);color:var(--bcm-ivory)!important;margin:0!important}
.bcm-cta p:not(.bcm-kicker){margin:16px 0 0;color:rgba(252,250,247,.8)!important;font-size:1rem;max-width:70ch}
.bcm-cta .bcm-button{margin:0;white-space:nowrap}
@media (min-width:1100px){
 .bcm-hero{display:grid;grid-template-columns:1fr 1fr;min-height:680px;align-items:stretch}
 .bcm-hero::before{display:none}
 .bcm-hero-image{grid-column:2;grid-row:1;position:relative;inset:auto;z-index:0}
 .bcm-hero-inner{grid-column:1;grid-row:1;width:auto;margin:0;padding:210px 52px 94px max(40px,calc((100vw - 1240px)/2 + 40px));align-self:end}
 .bcm-hero--no-image .bcm-hero-inner{grid-column:1/-1;max-width:1240px;margin-inline:auto;width:100%;padding-left:40px}
}
@media (max-width:1099px){
 .bcm-treatment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .bcm-journey-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .bcm-products-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .bcm-hero-inner{padding-bottom:72px}
}
@media (max-width:767px){
 .bcm-container{width:calc(100% - 40px)}
 .bcm-hero{min-height:76svh}
 .bcm-overview-grid,.bcm-approach-grid,.bcm-caution-grid{grid-template-columns:1fr;gap:22px}
 .bcm-tiles,.bcm-factors,.bcm-routine-grid{grid-template-columns:1fr}
 .bcm-tile{min-height:0;padding:24px}
 .bcm-treatment-grid{grid-template-columns:1fr;gap:15px}
 .bcm-treatment-card{aspect-ratio:5/4}
 .bcm-journey-grid{grid-template-columns:1fr}
 .bcm-journey-step{padding:25px}
 .bcm-location-grid{grid-template-columns:1fr}
 .bcm-gallery{grid-template-columns:1fr}
 .bcm-cta-grid{grid-template-columns:1fr;align-items:start}
 .bcm-cta .bcm-button{justify-self:start}
 .bcm-accordion-button{padding:18px 0}
 .bcm-subnav-inner{gap:19px}
}
@media(max-width:480px){
 .bcm-products-grid{column-gap:13px;row-gap:25px}
 .bcm-treatment-overlay{inset:auto 18px 18px}
 .bcm-treatment-sub{font-size:.8rem}
 .bcm-product strong{font-size:.78rem}
 .bcm-product-brand{font-size:.62rem}
 .bcm-hero-inner{padding-top:130px}
}
@media(prefers-reduced-motion:reduce){
 .bavary-concern-manager *, .bavary-concern-manager *::before,.bavary-concern-manager *::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}

/* Directory return link */
.bavary-concern-manager .bcm-directory-return {
  padding: 0 max(20px, calc((100% - 1240px) / 2));
  background: var(--bcm-ivory);
}
.bavary-concern-manager a.bcm-directory-link {
  display: inline-flex;
  align-items: center;
  gap: .5em;
  min-height: 44px;
  color: var(--bcm-ink);
  font-size: .875rem;
  text-decoration: underline;
  text-underline-offset: .22em;
}
.bavary-concern-manager a.bcm-directory-link:hover {
  text-decoration-thickness: 2px;
}
.bavary-concern-manager a.bcm-directory-link:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

/* Quiet motion and a compact editorial directory link. */
.bavary-concern-manager .bcm-directory-return {
  position: relative;
  padding-block: 8px;
  border-bottom: 1px solid rgba(43,40,38,.10);
}
.bavary-concern-manager a.bcm-directory-link {
  font-family: inherit;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-decoration: none;
  gap: 10px;
  transition: color 180ms ease;
}
.bavary-concern-manager a.bcm-directory-link span {
  display: inline-block;
  transition: transform 180ms ease;
}
@media (hover: hover) {
  .bavary-concern-manager a.bcm-directory-link:hover {
    color: #76614f;
  }
  .bavary-concern-manager a.bcm-directory-link:hover span {
    transform: translateX(-3px);
  }
}
@media (prefers-reduced-motion: reduce) {
  .bavary-concern-manager a.bcm-directory-link,
  .bavary-concern-manager a.bcm-directory-link span {
    transition: none;
  }
  .bavary-concern-manager a.bcm-directory-link:hover span {
    transform: none;
  }
}

/* Bounded hero: portrait images fill the column without enlarging it. */
.bavary-concern-manager .bcm-hero {
  --bcm-hero-viewport: 100vh;
  height: min(680px, var(--bcm-hero-viewport));
  min-height: 0;
  max-height: var(--bcm-hero-viewport);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: minmax(0, 1fr);
}
@supports (height: 100svh) {
  .bavary-concern-manager .bcm-hero { --bcm-hero-viewport: 100svh; }
}
.bavary-concern-manager .bcm-hero-image {
  min-width: 0;
  min-height: 0;
  height: 100%;
}
.bavary-concern-manager .bcm-hero-image :is(picture, img) {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-height: none;
}
.bavary-concern-manager .bcm-hero-image img { object-fit: cover; }
.bavary-concern-manager .bcm-hero .bcm-hero-inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  align-self: stretch;
  min-height: 0;
  height: 100%;
  max-height: 100%;
  overflow-y: auto;
  padding-top: min(160px, calc(var(--bcm-hero-viewport) * .18));
  padding-bottom: min(72px, calc(var(--bcm-hero-viewport) * .08));
}
.bavary-concern-manager .bcm-hero-inner > * { flex-shrink: 0; }
.bavary-concern-manager .bcm-hero-inner > :first-child { margin-top: auto; }
@media (min-width: 1100px) {
  .bavary-concern-manager .bcm-hero .bcm-hero-inner {
    padding-top: min(210px, calc(var(--bcm-hero-viewport) * .2));
    padding-bottom: min(94px, calc(var(--bcm-hero-viewport) * .1));
  }
}
@media (max-width: 1099px) {
  .bavary-concern-manager .bcm-hero {
    height: min(var(--bcm-hero-viewport), max(620px, calc(var(--bcm-hero-viewport) * .76)));
  }
}
