/* Shared design foundations */
:root { --primary:#27675d; --primary-hover:#1d5149; --primary-light:#edf4f1; --accent:#27675d; --bg-body:#fff; --bg-card:#fff; --text-dark:#202b28; --text-mid:#58645f; --text-light:#63716a; --border:#d5ddd8; --border-light:#e9eeeb; --radius-sm:6px; --radius-md:8px; --radius-lg:10px; --shadow-md:0 8px 24px #202b2812; --transition:color .15s ease,background-color .15s ease,border-color .15s ease; }
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:100px; }
body { margin:0; font-family:Inter,'Segoe UI',Arial,sans-serif; color:var(--text-dark); background:var(--bg-body); line-height:1.65; -webkit-font-smoothing:antialiased; }
h1,h2,h3,h4,h5,h6 { font-family:inherit; font-weight:600; line-height:1.25; color:var(--text-dark); text-wrap:balance; }
h1 { font-size:clamp(2rem,4vw,3rem); letter-spacing:-.035em; }
a { color:inherit; text-decoration:none; transition:var(--transition); }
a:hover { color:var(--primary); }
img { display:block; max-width:100%; }
svg { flex-shrink:0; }
button,input,select,textarea { font:inherit; }
:where(a,button,input,select,textarea,summary):focus-visible { outline:2px solid var(--primary); outline-offset:4px; }
.container,.container-xxl,.home-shell { width:100%; max-width:1200px; padding-inline:24px; margin-inline:auto; }
.row>*,.search-group,.meta-item { min-width:0; }
.text-primary,.text-accent { color:var(--primary)!important; }
.text-mid { color:var(--text-mid)!important; }
.bg-primary { background-color:var(--primary)!important; }
.bg-primary-light { background:var(--primary-light); }
.font-outfit,.font-inter { font-family:inherit!important; }
.btn-premium,.btn-premium-outline,.cta-band__secondary { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:46px; padding:10px 20px; border:1px solid transparent; border-radius:var(--radius-sm); font-size:.9375rem; font-weight:600; line-height:1.5; text-align:center; cursor:pointer; transition:var(--transition); }
.btn-premium { background:var(--primary); color:#fff; }
.btn-premium:hover { background:var(--primary-hover); color:#fff; }
.btn-premium-outline,.cta-band__secondary { background:transparent; color:var(--primary); border-color:var(--border); }
.btn-premium-outline:hover,.cta-band__secondary:hover { background:var(--primary-light); border-color:var(--primary); }
.form-control,.form-select { width:100%; min-width:0; max-width:100%; min-height:48px; padding:10px 12px; border:1px solid var(--border); border-radius:var(--radius-sm); background-color:#fff; color:var(--text-dark); font-size:1rem; line-height:1.5; }
.form-select { padding-right:40px; text-overflow:ellipsis; }
.form-control:focus,.form-select:focus { border-color:var(--primary); box-shadow:0 0 0 3px var(--primary-light); }
.search-wrapper { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) auto; align-items:end; gap:16px; padding:24px; background:#fff; border-radius:var(--radius-lg); width:100%; text-align:left; }
.search-label { display:block; margin-bottom:8px; color:var(--text-mid); font-size:.875rem; font-weight:600; }
.search-btn { min-height:48px; }
.hero-section { padding:80px 0 56px; background:#f1f5f2; }
.hero-content { max-width:1080px; margin:auto; }
.hero-copy { max-width:780px; margin:0 auto 40px; text-align:center; }
.hero-kicker,.section-kicker { display:block; margin-bottom:16px; color:var(--primary); font-size:.8125rem; font-weight:600; letter-spacing:.07em; text-transform:uppercase; }
.hero-title { font-size:clamp(2.25rem,5vw,4rem); line-height:1.12; letter-spacing:-.045em; margin-bottom:24px; }
.hero-title span { color:var(--primary); }
.hero-subtitle { font-size:1.125rem; color:var(--text-mid); line-height:1.75; }
.home-sections { padding:0 0 72px; }
.home-stack { display:grid; }
.section-card { padding:64px 0; }
.section-card+.section-card { border-top:1px solid var(--border-light); }
.section-header { max-width:700px; margin-bottom:32px; }
.section-title { font-size:clamp(1.75rem,3vw,2.5rem); letter-spacing:-.03em; margin:0 0 16px; }
.section-copy,.how-card p,.trust-card p,.treatment-card p { color:var(--text-mid); margin-bottom:0; }
.trust-bar,.how-grid,.trust-grid,.treatment-grid,.compare-grid { display:grid; gap:32px; }
.trust-bar,.how-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.trust-bar { padding:32px 0; border-bottom:1px solid var(--border-light); }
.trust-pill strong,.trust-pill span { display:block; }
.trust-pill strong { margin-bottom:6px; font-size:.9375rem; }
.trust-pill span { font-size:.875rem; color:var(--text-mid); }
.how-card h3,.trust-card h3,.treatment-card h3,.compare-card h3 { font-size:1.125rem; margin:0 0 12px; }
.how-card__step { display:block; margin-bottom:20px; font-size:.875rem; color:var(--primary); font-weight:600; }
.trust-layout { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:48px; align-items:center; }
.trust-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.trust-aside { padding:32px; background:var(--primary-light); border-radius:var(--radius-md); }
.trust-aside__quote { font-size:1.5rem; line-height:1.5; letter-spacing:-.02em; }
.trust-aside ul { padding-left:20px; color:var(--text-mid); }
.trust-aside li+li { margin-top:12px; }
.treatment-grid,.compare-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.treatment-card { padding:24px 0; border-top:1px solid var(--border); }
.treatment-card__icon { display:inline-flex; color:var(--primary); margin-bottom:20px; }
.treatment-card__meta { display:block; color:var(--primary); font-size:.8125rem; margin-top:16px; }
.compare-intro { display:grid; grid-template-columns:1.3fr 1fr; gap:48px; }
.compare-card { padding:24px; background:#f6f8f6; border-radius:var(--radius-md); }
.compare-card__city { display:block; color:var(--primary); margin-bottom:16px; font-size:.8125rem; }
.compare-card__price { font-size:1.75rem; font-weight:600; margin:20px 0; }
.compare-card ul { list-style:none; margin:0; padding:0; }
.compare-card li { display:flex; justify-content:space-between; gap:16px; padding:10px 0; border-top:1px solid var(--border-light); font-size:.875rem; }
.compare-card li span:last-child { text-align:right; font-weight:600; }
.cta-band { display:flex; justify-content:space-between; align-items:center; gap:32px; }
.cta-band>div { min-width:0; }
.cta-band__actions { display:flex; flex-wrap:wrap; gap:12px; flex-shrink:0; }
.page-header { padding:48px 0 32px; }
.page-header p { margin:0; }
.sidebar-filter { padding:0 24px 24px 0; }
.filter-group { margin-bottom:24px; padding-bottom:20px; border-bottom:1px solid var(--border-light); }
.filter-title { font-size:1rem; margin-bottom:16px; }
.custom-check,.custom-radio { display:flex; align-items:flex-start; gap:10px; margin-bottom:12px; color:var(--text-mid); cursor:pointer; font-size:.9375rem; }
.custom-check input,.custom-radio input { flex-shrink:0; width:18px; height:18px; margin-top:3px; accent-color:var(--primary); }
.checkmark,.radiomark { display:none; }
.clinic-card-modern { display:flex; flex-direction:column; height:100%; }
.card-img-wrap { position:relative; aspect-ratio:4/3; overflow:hidden; border-radius:var(--radius-md); background:var(--primary-light); }
.card-img-wrap img { width:100%; height:100%; object-fit:cover; }
.card-badge,.rating-badge { position:absolute; top:12px; background:#fff; padding:4px 8px; border-radius:4px; font-size:.75rem; }
.card-badge { left:12px; right:70px; width:fit-content; max-width:calc(100% - 82px); }
.rating-badge { right:12px; display:flex; align-items:center; gap:4px; }
.rating-badge svg { width:12px; height:12px; fill:#a97416; }
.card-body-modern { display:flex; flex-direction:column; flex:1; padding:20px 0 0; }
.clinic-title { font-size:1.125rem; margin-bottom:12px; overflow-wrap:anywhere; }
.meta-row { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:12px; }
.meta-item { display:flex; align-items:center; gap:8px; color:var(--text-mid); overflow-wrap:anywhere; }
.meta-row .meta-item { font-size:.8125rem; }
.meta-row svg { width:16px; height:16px; stroke:var(--primary); fill:none; stroke-width:1.5; }
.clinic-desc { color:var(--text-mid); font-size:.9375rem; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.card-footer-modern { margin-top:auto; padding-top:8px; }
.clinic-hero { padding:40px 0 48px; }
.clinic-image-wrap { border-radius:var(--radius-md); overflow:hidden; background:var(--primary-light); }
.clinic-image-wrap img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.clinic-title-lg { font-size:clamp(2rem,4vw,3rem); overflow-wrap:anywhere; margin-bottom:16px; }
.clinic-desc-text { color:var(--text-mid); margin:24px 0; }
.clinic-meta-box { display:grid; gap:16px; padding:24px 0; margin-bottom:16px; border-top:1px solid var(--border-light); }
.meta-icon { color:var(--primary); }
.review-card { padding:24px 0; border-top:1px solid var(--border-light); }
.review-card>.d-flex { flex-wrap:wrap; gap:16px; }
.review-card h4 { font-size:1rem; overflow-wrap:anywhere; }
.stars { flex-wrap:wrap; }
.stars svg { width:18px; height:18px; fill:#dce2dd; }
.stars svg.active { fill:#a97416; }
.results-toolbar { display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:24px; }
.empty-state { padding:48px 24px; background:#f6f8f6; border-radius:var(--radius-md); text-align:center; }
.table { --bs-table-color:var(--text-dark); --bs-table-border-color:var(--border-light); }
.table th { color:var(--text-mid); font-size:.875rem; font-weight:600; }
.table td,.table th { padding:16px; vertical-align:middle; }
.skip-link { position:absolute; left:16px; top:-100px; z-index:2000; background:#fff; padding:12px; }
.skip-link:focus { top:12px; }
@media(max-width:991.98px) {
.search-wrapper { grid-template-columns:repeat(2,minmax(0,1fr)); }
.search-btn { grid-column:1 / -1; }
.trust-bar,.how-grid,.treatment-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.trust-layout,.compare-intro { grid-template-columns:1fr; gap:24px; }
.compare-grid { grid-template-columns:1fr; }
.cta-band { align-items:flex-start; flex-direction:column; }
.sidebar-filter { padding:24px; background:#f6f8f6; border-radius:var(--radius-md); }
}
@media(max-width:575.98px) {
.container,.container-xxl,.home-shell { padding-inline:20px; }
.hero-section { padding:48px 0 32px; }
.search-wrapper { grid-template-columns:minmax(0,1fr); padding:16px; }
.section-card { padding:40px 0; }
.how-grid,.trust-grid,.treatment-grid { grid-template-columns:1fr; gap:24px; }
.trust-bar { gap:20px; }
.trust-aside { padding:24px; }
.clinic-hero .row { --bs-gutter-y:24px; --bs-gutter-x:24px; }
.cta-band__actions { flex-direction:column; width:100%; }
.page-header { padding-top:32px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; animation:none!important; } }
