/* Smile Savers clinics page — deliberately scoped to .clinics-page. */
.clinics-page {
    --clinic-ink: #10283f;
    --clinic-copy: #405a70;
    --clinic-muted: #6f8394;
    --clinic-line: #d8e3eb;
    --clinic-soft: #f4f8fb;
    --clinic-card: rgba(255,255,255,.96);
    --clinic-shadow: 0 18px 52px rgba(34, 61, 84, .10);
    --clinic-rainbow: linear-gradient(92deg,#04b9d8 0%,#167bea 23%,#8a45dd 45%,#ef4eaa 63%,#ff6647 80%,#f3b400 100%);
    color: var(--clinic-ink);
    background: #fff;
    overflow: clip;
}

.clinics-page *, .clinics-page *::before, .clinics-page *::after { box-sizing: border-box; }
.clinics-page img { max-width: 100%; }
.clinics-page p { color: var(--clinic-copy); line-height: 1.72; }
.clinics-page h1, .clinics-page h2, .clinics-page h3 { color: var(--clinic-ink); letter-spacing: -.025em; }
.clinics-shell { width: min(1220px, calc(100% - 40px)); margin-inline: auto; }

.clinics-eyebrow {
    margin: 0 0 10px !important;
    color: #0e789b !important;
    font-size: 12px;
    line-height: 1.2 !important;
    letter-spacing: .14em;
    font-weight: 800;
}

.clinics-rainbow {
    background: var(--clinic-rainbow);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.clinics-section-heading { max-width: 820px; margin-bottom: 34px; }
.clinics-section-heading h2,
.clinics-lab-copy h2,
.clinics-faq-intro h2,
.clinics-final-card h2,
.clinic-intro-copy h2 {
    margin: 0 0 14px;
    font-size: clamp(30px, 3.6vw, 52px);
    line-height: 1.06;
    font-weight: 760;
}
.clinics-section-heading > p:last-child { max-width: 760px; margin: 0; font-size: 17px; }

/* Hero */
.clinics-hero {
    position: relative;
    padding: 70px 0 82px;
    background:
        radial-gradient(circle at 8% 20%, rgba(7,185,216,.12), transparent 34%),
        radial-gradient(circle at 88% 10%, rgba(239,78,170,.09), transparent 32%),
        linear-gradient(180deg,#f7fafc 0%,#fff 100%);
}
.clinics-hero::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, #d5e3eb, transparent);
}
.clinics-hero-grid { display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(420px, .98fr); gap: 58px; align-items: center; }
.clinics-hero-copy h1 { margin: 0 0 20px; font-size: clamp(44px, 5.8vw, 78px); line-height: .99; font-weight: 770; max-width: 760px; }
.clinics-lead { margin: 0; max-width: 690px; font-size: clamp(17px, 1.6vw, 20px); }
.clinics-hero-actions, .clinic-actions, .clinics-final-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 27px; }
.clinics-hero-facts { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin-top: 27px; }
.clinics-hero-facts span { padding: 15px 14px; border: 1px solid var(--clinic-line); border-radius: 16px; background: rgba(255,255,255,.72); color: var(--clinic-copy); font-size: 13px; line-height: 1.45; }
.clinics-hero-facts strong { display: block; color: var(--clinic-ink); font-size: 14px; margin-bottom: 2px; }
.clinics-hero-media { position: relative; min-height: 540px; border-radius: 30px; overflow: hidden; box-shadow: 0 28px 80px rgba(34,61,84,.16); background: #dfe8ee; }
.clinics-hero-media::before { content:""; position:absolute; inset:0; z-index:1; background: linear-gradient(180deg,transparent 55%,rgba(11,28,42,.34)); pointer-events:none; }
.clinics-hero-media > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.clinics-hero-location-card { position: absolute; z-index: 2; left: 22px; bottom: 22px; display: flex; gap: 11px; align-items: center; padding: 13px 16px; border: 1px solid rgba(255,255,255,.72); border-radius: 16px; background: rgba(255,255,255,.91); box-shadow: 0 12px 30px rgba(9,29,44,.16); backdrop-filter: blur(10px); }
.clinics-location-dot { width: 11px; height: 11px; flex: 0 0 auto; border-radius: 50%; background: #00bcae; box-shadow: 0 0 0 5px rgba(0,188,174,.13); }
.clinics-hero-location-card strong, .clinics-hero-location-card small { display: block; }
.clinics-hero-location-card strong { font-size: 14px; }
.clinics-hero-location-card small { color: var(--clinic-muted); font-size: 12px; margin-top: 1px; }

/* Journey */
.clinics-journey { padding: 88px 0; }
.clinics-journey-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.clinics-step { position: relative; min-height: 315px; padding: 30px; border: 1px solid var(--clinic-line); border-radius: 24px; background: #fff; box-shadow: var(--clinic-shadow); overflow: hidden; }
.clinics-step::before { content:""; position:absolute; top:0; left:0; right:0; height:3px; background: var(--clinic-rainbow); }
.clinics-step-number { position: absolute; top: 20px; right: 22px; color: #d9e5ec; font-size: 35px; font-weight: 800; }
.clinics-step-icon { display: grid; place-items: center; width: 54px; height: 54px; margin-bottom: 25px; border-radius: 16px; background: #f4f8fb; }
.clinics-step-icon svg { width: 30px; height: 30px; stroke: #0aa6bd; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.clinics-step:nth-child(2) .clinics-step-icon svg { stroke: #9250e5; }
.clinics-step:nth-child(3) .clinics-step-icon svg { stroke: #ef5a65; }
.clinics-step h3 { margin: 0 0 10px; font-size: 22px; }
.clinics-step p { margin: 0; font-size: 15px; }

/* Comparison */
.clinics-comparison { padding: 86px 0; background: #f4f8fb; border-block: 1px solid #e3ebf0; }
.clinics-table-card { border-radius: 26px; background: #fff; border: 1px solid var(--clinic-line); box-shadow: var(--clinic-shadow); overflow: hidden; }
.clinics-table-wrap { overflow-x: auto; }
.clinics-table { width: 100%; border-collapse: collapse; min-width: 720px; }
.clinics-table th, .clinics-table td { text-align: left; padding: 18px 22px; border-bottom: 1px solid #e6edf2; vertical-align: top; }
.clinics-table th { background: #10283f; color: #fff; font-size: 13px; letter-spacing: .04em; text-transform: uppercase; }
.clinics-table th:first-child { width: 40%; }
.clinics-table tbody tr:last-child td { border-bottom: 0; }
.clinics-table tbody tr:hover { background: #f9fbfd; }
.clinics-table td { color: var(--clinic-copy); font-size: 15px; }
.clinics-table td strong { color: var(--clinic-ink); }
.clinic-yes { display: inline-grid; place-items:center; width: 22px; height:22px; margin-right:5px; border-radius:50%; background:#e5f8f5; color:#008c80; font-weight:900; }
.clinic-muted { color: #9aaab6; font-weight: 800; }
.clinics-table-note { margin: 0; padding: 17px 22px; border-top: 1px solid #e6edf2; background: #f9fbfc; color: #5f7486 !important; font-size: 13px; }

/* Clinic sections */
.clinic-section { padding: 92px 0; }
.clinic-section--budapest { background: linear-gradient(180deg,#fafcfd,#f5f9fb); border-block: 1px solid #e8eef2; }
.clinic-intro-grid { display:grid; grid-template-columns: minmax(0,.93fr) minmax(0,1.07fr); gap: 54px; align-items:center; }
.clinic-intro-grid--reverse .clinic-intro-copy { order: 2; }
.clinic-intro-grid--reverse .clinic-feature-grid { order: 1; }
.clinic-intro-lead { font-size: 17px; margin-bottom: 22px; }
.clinic-address-card { display:flex; gap:13px; align-items:center; width:max-content; max-width:100%; padding:14px 17px; margin-top:20px; border:1px solid var(--clinic-line); border-radius:17px; background:#fff; box-shadow:0 8px 24px rgba(33,60,82,.07); }
.clinic-address-icon { display:grid; place-items:center; width:42px; height:42px; border-radius:13px; background:#f1f7fa; }
.clinic-address-icon svg { width:25px; height:25px; stroke:#00a9bf; stroke-width:2.3; stroke-linecap:round; stroke-linejoin:round; }
.clinic-address-card strong, .clinic-address-card span { display:block; }
.clinic-address-card span { color:var(--clinic-muted); font-size:13px; margin-top:2px; }
.clinic-feature-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.clinic-feature-grid article { position:relative; min-height:200px; padding:24px 22px; border:1px solid var(--clinic-line); border-radius:21px; background:#fff; box-shadow:0 12px 30px rgba(34,61,84,.07); }
.clinic-feature-grid article::before { content:""; position:absolute; left:0; right:0; top:0; height:2px; border-radius:21px 21px 0 0; background:var(--clinic-rainbow); opacity:.9; }
.clinic-feature-grid article > span { display:inline-flex; margin-bottom:22px; font-size:12px; letter-spacing:.1em; font-weight:800; color:#8ca0ae; }
.clinic-feature-grid h3 { margin:0 0 8px; font-size:18px; }
.clinic-feature-grid p { margin:0; font-size:14px; }

/* Justified gallery */
.clinic-gallery-heading { display:flex; justify-content:space-between; gap:30px; align-items:end; margin:64px 0 21px; }
.clinic-gallery-heading h3 { margin:0; font-size:clamp(25px,3vw,38px); }
.clinic-gallery-heading > p { max-width:460px; margin:0; text-align:right; font-size:14px; }
.clinic-gallery { display:flex; flex-wrap:wrap; gap:8px; width:100%; min-height:180px; }
.clinic-gallery-item {
    position:relative;
    flex:0 0 auto;
    display:block;
    height:210px;
    min-width:120px;
    padding:0;
    margin:0;
    border:0;
    border-radius:13px;
    overflow:hidden;
    background:#dfe7ec;
    cursor:zoom-in;
    box-shadow:0 5px 18px rgba(30,53,70,.07);
}
.clinic-gallery-item img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .35s ease, filter .35s ease; }
.clinic-gallery-item > span { position:absolute; left:9px; right:9px; bottom:9px; z-index:2; padding:7px 10px; border-radius:9px; background:rgba(8,27,42,.72); color:#fff; font-size:12px; font-weight:700; text-align:left; opacity:0; transform:translateY(6px); transition:.25s ease; backdrop-filter:blur(6px); }
.clinic-gallery-item::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(9,26,40,.26)); opacity:0; transition:.25s ease; pointer-events:none; }
.clinic-gallery-item:hover img, .clinic-gallery-item:focus-visible img { transform:scale(1.025); filter:saturate(1.03); }
.clinic-gallery-item:hover > span, .clinic-gallery-item:focus-visible > span, .clinic-gallery-item:hover::after, .clinic-gallery-item:focus-visible::after { opacity:1; transform:none; }
.clinic-gallery-item:focus-visible { outline:3px solid #1f8ceb; outline-offset:3px; }
.clinic-small-note { margin:18px 0 0; padding:13px 15px; border-left:3px solid #9ab5c5; background:#f6f9fb; color:#64798a !important; font-size:13px; }

/* Lab */
.clinics-lab { padding:90px 0; background:#10283f; }
.clinics-lab-grid { display:grid; grid-template-columns:minmax(380px,.9fr) minmax(0,1.1fr); gap:58px; align-items:center; }
.clinics-lab-media { min-height:510px; border-radius:28px; overflow:hidden; background:#243d53; box-shadow:0 28px 65px rgba(0,0,0,.23); }
.clinics-lab-media img { width:100%; height:100%; min-height:510px; object-fit:cover; display:block; }
.clinics-lab-copy .clinics-eyebrow { color:#65d8e6 !important; }
.clinics-lab-copy h2 { color:#fff; }
.clinics-lab-copy > p:not(.clinics-eyebrow) { color:#cad7e1; font-size:17px; }
.clinics-lab-points { display:grid; gap:10px; margin-top:27px; }
.clinics-lab-points > div { padding:17px 18px; border:1px solid rgba(255,255,255,.14); border-radius:15px; background:rgba(255,255,255,.055); }
.clinics-lab-points strong, .clinics-lab-points span { display:block; }
.clinics-lab-points strong { color:#fff; margin-bottom:4px; }
.clinics-lab-points span { color:#b8c8d4; font-size:14px; line-height:1.55; }

/* Planning */
.clinics-planning { padding:90px 0; }
.clinics-planning-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:17px; }
.clinics-planning-grid article { padding:28px; border:1px solid var(--clinic-line); border-radius:22px; background:#fff; box-shadow:var(--clinic-shadow); }
.clinic-plan-icon { display:grid; place-items:center; width:48px; height:48px; margin-bottom:19px; border-radius:14px; background:#f0f7fa; color:#078eac; font-size:23px; font-weight:800; }
.clinics-planning-grid article:nth-child(2) .clinic-plan-icon { color:#9150df; background:#f7f1fc; }
.clinics-planning-grid article:nth-child(3) .clinic-plan-icon { color:#df5d58; background:#fff3f0; }
.clinics-planning-grid h3 { margin:0 0 9px; font-size:20px; }
.clinics-planning-grid p { margin:0; font-size:14px; }

/* FAQ */
.clinics-faq { padding:90px 0; background:#f4f8fb; border-block:1px solid #e2ebf0; }
.clinics-faq-grid { display:grid; grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr); gap:60px; align-items:start; }
.clinics-faq-intro { position:sticky; top:30px; }
.clinics-faq-intro > p:not(.clinics-eyebrow) { font-size:16px; }
.clinics-faq-list { display:grid; gap:10px; }
.clinics-faq-list details { border:1px solid var(--clinic-line); border-radius:17px; background:#fff; box-shadow:0 6px 18px rgba(34,61,84,.045); overflow:hidden; }
.clinics-faq-list summary { position:relative; list-style:none; padding:19px 52px 19px 20px; cursor:pointer; color:var(--clinic-ink); font-size:16px; font-weight:750; }
.clinics-faq-list summary::-webkit-details-marker { display:none; }
.clinics-faq-list summary::after { content:"+"; position:absolute; right:18px; top:50%; width:26px; height:26px; display:grid; place-items:center; transform:translateY(-50%); border:1px solid #cbd9e2; border-radius:50%; color:#34647d; font-size:19px; font-weight:400; transition:transform .2s ease; }
.clinics-faq-list details[open] summary::after { content:"–"; }
.clinics-faq-list details p { margin:0; padding:0 20px 20px; font-size:14px; }

/* Final CTA */
.clinics-final-cta { padding:74px 0 90px; }
.clinics-final-card { position:relative; display:grid; grid-template-columns:minmax(0,1.1fr) auto; gap:40px; align-items:center; padding:36px 40px; border:1px solid var(--clinic-line); border-radius:27px; background:linear-gradient(135deg,#fff 0%,#f7fbfd 100%); box-shadow:var(--clinic-shadow); overflow:hidden; }
.clinics-final-card::before { content:""; position:absolute; inset:0 0 auto; height:3px; background:var(--clinic-rainbow); }
.clinics-final-card h2 { font-size:clamp(28px,3.4vw,44px); }
.clinics-final-card p:last-child { margin-bottom:0; max-width:720px; }
.clinics-final-actions { justify-content:flex-end; margin-top:0; max-width:340px; }

/* Lightbox */
.clinic-lightbox[hidden] { display:none; }
.clinic-lightbox { position:fixed; inset:0; z-index:100000; display:grid; grid-template-columns:72px minmax(0,1fr) 72px; align-items:center; padding:34px 26px; background:rgba(5,17,27,.92); backdrop-filter:blur(8px); }
.clinic-lightbox figure { margin:0; max-width:min(1280px,100%); width:100%; justify-self:center; text-align:center; }
.clinic-lightbox figure img { display:block; width:auto; height:auto; max-width:100%; max-height:calc(100vh - 125px); margin:0 auto; object-fit:contain; border-radius:13px; box-shadow:0 24px 80px rgba(0,0,0,.35); }
.clinic-lightbox figcaption { margin-top:13px; color:#fff; font-size:14px; }
.clinic-lightbox-close, .clinic-lightbox-nav { appearance:none; border:1px solid rgba(255,255,255,.28); background:rgba(255,255,255,.10); color:#fff; cursor:pointer; }
.clinic-lightbox-close { position:absolute; top:18px; right:20px; width:43px; height:43px; border-radius:50%; font-size:28px; line-height:1; }
.clinic-lightbox-nav { width:48px; height:56px; justify-self:center; border-radius:16px; font-size:35px; line-height:1; }
.clinic-lightbox-close:hover, .clinic-lightbox-nav:hover { background:rgba(255,255,255,.2); }
body.clinic-lightbox-open { overflow:hidden; }

/* Reveal animation — visible by default, JS opts in. */
.clinics-page [data-reveal] { opacity:1; transform:none; }
.clinics-page.clinics-reveal-ready [data-reveal] { opacity:0; transform:translateY(30px); transition:opacity .78s ease, transform .78s cubic-bezier(.2,.72,.2,1); }
.clinics-page.clinics-reveal-ready [data-reveal].is-visible { opacity:1; transform:none; }

@media (max-width: 1020px) {
    .clinics-hero-grid { grid-template-columns:1fr; gap:38px; }
    .clinics-hero-media { min-height:500px; }
    .clinics-hero-copy { max-width:850px; }
    .clinic-intro-grid, .clinic-intro-grid--reverse { grid-template-columns:1fr; gap:35px; }
    .clinic-intro-grid--reverse .clinic-intro-copy, .clinic-intro-grid--reverse .clinic-feature-grid { order:initial; }
    .clinics-lab-grid { grid-template-columns:1fr; gap:36px; }
    .clinics-lab-media, .clinics-lab-media img { min-height:440px; }
    .clinics-faq-grid { grid-template-columns:1fr; gap:32px; }
    .clinics-faq-intro { position:static; max-width:760px; }
    .clinics-final-card { grid-template-columns:1fr; }
    .clinics-final-actions { justify-content:flex-start; max-width:none; }
}

@media (max-width: 760px) {
    .clinics-shell { width:min(100% - 28px, 1220px); }
    .clinics-hero { padding:44px 0 58px; }
    .clinics-hero-copy h1 { font-size:clamp(38px,12vw,58px); }
    .clinics-hero-facts { grid-template-columns:1fr; }
    .clinics-hero-media { min-height:390px; border-radius:22px; }
    .clinics-hero-location-card { left:14px; right:14px; bottom:14px; }
    .clinics-journey, .clinics-comparison, .clinic-section, .clinics-lab, .clinics-planning, .clinics-faq { padding:64px 0; }
    .clinics-journey-grid, .clinics-planning-grid { grid-template-columns:1fr; }
    .clinics-step { min-height:auto; }
    .clinic-feature-grid { grid-template-columns:1fr; }
    .clinic-feature-grid article { min-height:auto; }
    .clinic-gallery-heading { display:block; }
    .clinic-gallery-heading > p { max-width:none; margin-top:9px; text-align:left; }
    .clinic-gallery { gap:6px; }
    .clinic-gallery-item { border-radius:10px; }
    .clinic-gallery-item > span { opacity:1; transform:none; padding:5px 7px; font-size:10px; background:rgba(8,27,42,.62); }
    .clinics-lab-media, .clinics-lab-media img { min-height:330px; }
    .clinics-final-card { padding:30px 22px; }
    .clinic-lightbox { grid-template-columns:46px minmax(0,1fr) 46px; padding:50px 8px 20px; }
    .clinic-lightbox-nav { width:38px; height:48px; font-size:29px; border-radius:12px; }
    .clinic-lightbox figure img { max-height:calc(100vh - 135px); }
}

@media (max-width: 520px) {
    .clinics-hero-actions, .clinic-actions, .clinics-final-actions { display:grid; grid-template-columns:1fr; }
    .clinics-hero-actions .button, .clinic-actions .button, .clinics-final-actions .button { width:100%; justify-content:center; text-align:center; }
    .clinics-table th, .clinics-table td { padding:15px 14px; }
    .clinic-address-card { width:100%; }
    .clinics-lab-media, .clinics-lab-media img { min-height:275px; }
}

@media (prefers-reduced-motion: reduce) {
    .clinics-page *, .clinics-page *::before, .clinics-page *::after { scroll-behavior:auto !important; animation:none !important; transition:none !important; }
    .clinics-page.clinics-reveal-ready [data-reveal] { opacity:1; transform:none; }
}
