/* Oxxygene: designul nou pentru paginile care rămăseseră pe marcajul original (src/site/site-premium.mjs): paginile de
   text, Contact, blogul, categoriile, articolele, serviciile din câmpuri, locațiile și secțiunile fără variantă nouă
   până acum. Se încarcă după premium.css și premium-pages.css și folosește aceleași piese (.oxh-*, .oxb-*) și aceiași
   tokeni (--p-*), deci urmează tema aleasă în Setări („clinic” / „premium”); aici doar ce e propriu (.oxn-*).
   Mobil întâi: regulile de bază sunt pentru telefon; ecranele mari se adaugă cu min-width (640, 768, 1024). */

.oxx .oxn-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.oxx .oxn-actions .oxp-btn { flex: 1 1 100%; }
.oxx .oxn-note { margin-top: 16px; }
@media (min-width: 640px) { .oxx .oxn-actions .oxp-btn { flex: 0 0 auto; } }

/* ——— Antetul: fără imagine sau casetă, textul pe toată lățimea; cu caseta de contact (locațiile), sus aliniat. */
.oxx .oxn-hero.is-solo .oxb-hero-in { min-height: 0; }
.oxx .oxn-chips { margin-top: 22px; }
.oxx .oxn-chips small { margin-left: 8px; font: 600 12.5px/1 var(--p-text); color: var(--p-mute); }
@media (min-width: 1024px) {
  .oxx .oxn-hero.is-solo { padding-bottom: 44px; }
  .oxx .oxn-hero.is-solo .oxb-hero-in { grid-template-columns: minmax(0, 1fr); }
  .oxx .oxn-hero.is-solo .oxb-hero-copy { max-width: 860px; }
  .oxx .oxn-hero.has-side .oxb-hero-in { align-items: start; }
}

/* ——— Pagina de text: textul (lățimea de lectură), galeria, hărțile și documentele; coloana laterală pe desktop. */
.oxx .oxn-page { padding-top: 28px; }
.oxx .oxn-layout { display: grid; gap: 32px; }
.oxx .oxn-main { min-width: 0; display: grid; gap: 28px; align-content: start; }
/* Textele importate au uneori cuvinte foarte lungi, lipite (de exemplu titluri fără spațiu): se rup, nu lățesc pagina. */
.oxx :is(.oxn-main, .oxn-reading) { overflow-wrap: anywhere; }
.oxx .oxn-aside { display: grid; gap: 16px; align-content: start; }
.oxx .oxn-book { display: none; }
.oxx .oxn-links { padding: 18px 20px 8px; border-radius: var(--p-r-card); background: #fff; border: 1px solid var(--p-line); }
.oxx .oxn-links ul { margin: 8px 0 0; padding: 0; list-style: none; }
.oxx .oxn-links a { display: flex; align-items: center; gap: 12px; min-height: 50px; padding: 8px 0; border-top: 1px solid var(--p-line); font: 600 15px/1.3 var(--p-display); color: var(--p-ink); transition: color .2s; }
.oxx .oxn-links li:first-child a { border-top: 0; }
.oxx .oxn-links a > span { flex: 1; }
.oxx .oxn-links a > svg:first-child { flex: none; color: var(--p-navy-3); }
.oxx .oxn-links a > svg:last-child { flex: none; color: var(--p-mute); }
.oxx .oxn-links a:hover { color: var(--p-navy); }
.oxx .oxn-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.oxx .oxn-gallery figure { margin: 0; border-radius: var(--p-r-card); overflow: hidden; background: var(--p-tint); }
.oxx .oxn-gallery img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.oxx .oxn-docs { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.oxx .oxn-doc { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border-radius: var(--p-r-card); background: #fff; border: 1px solid var(--p-line); color: var(--p-ink); transition: border-color .2s; }
.oxx .oxn-doc > svg:first-child { flex: none; color: var(--p-navy-3); }
.oxx .oxn-doc > svg:last-child { flex: none; color: var(--p-mute); }
.oxx .oxn-doc span { flex: 1; min-width: 0; display: grid; gap: 2px; }
.oxx .oxn-doc b { font: 600 15.5px/1.35 var(--p-display); overflow-wrap: anywhere; }
.oxx .oxn-doc small { font: 400 13px/1.4 var(--p-text); color: var(--p-mute); }
.oxx .oxn-doc:hover { border-color: var(--p-line-2); }
/* Hărțile: vizibile și pe telefon (aici nu există altă trimitere spre locație), încărcate doar la cerere. */
.oxx .oxn-maps { display: grid; gap: 14px; }
.oxx .oxb-map.oxn-map { display: block; position: relative; min-height: 260px; border-radius: var(--p-r-card); overflow: hidden; border: 1px solid var(--p-line); background: var(--p-soft); }
.oxx .oxn-map .oxb-map-ph { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 8px; padding: 24px; text-align: center; }
.oxx .oxn-map .oxb-map-ph .oxb-ic { width: 52px; height: 52px; margin-bottom: 4px; background: var(--p-navy); color: #fff; }
.oxx .oxn-map .oxb-map-ph b { font: 700 17px/1.3 var(--p-display); color: var(--p-ink); }
.oxx .oxn-map .oxb-map-ph .oxp-btn { margin-top: 8px; }
.oxx .oxn-map .oxb-map-ph small { font: 400 12.5px/1.4 var(--p-text); color: var(--p-mute); }
.oxx .oxn-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.oxx .oxn-map.is-loaded .oxb-map-ph { display: none; }
/* Echipa (regula „Afișează echipa medicală”): grilă și pe telefon (două coloane), nu bandă. */
.oxx .oxn-team .oxh-team-grid { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; margin-inline: 0; padding-inline: 0; }
@media (min-width: 640px) { .oxx .oxn-gallery { gap: 14px; } }
@media (min-width: 768px) {
  .oxx .oxn-maps { grid-template-columns: repeat(min(var(--n, 1), 2), minmax(0, 1fr)); }
  .oxx .oxb-map.oxn-map { min-height: 320px; }
  .oxx .oxn-team .oxh-team-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .oxx .oxn-page { padding-top: 48px; }
  .oxx .oxn-layout { grid-template-columns: minmax(0, 1fr) 340px; gap: 56px; align-items: start; }
  .oxx .oxn-aside { position: sticky; top: calc(var(--p-header-h) + 24px); }
  .oxx .oxn-book { display: grid; gap: 10px; padding: 26px; border-radius: var(--p-r-panel); color: #fff; background: radial-gradient(120% 120% at 0% 0%, var(--p-navy-3) 0%, var(--p-navy) 60%); box-shadow: var(--p-shadow-lg); }
  .oxx .oxn-book .oxb-kicker { color: color-mix(in srgb, var(--p-gold) 55%, #fff); }
  .oxx .oxn-book h3 { margin: 0; font-size: 22px; font-weight: 700; color: #fff; }
  .oxx .oxn-book p { margin: 0 0 4px; font: 400 15px/1.55 var(--p-text); color: rgb(255 255 255 / .76); }
  .oxx .oxn-book .oxp-btn { width: 100%; margin-top: 4px; }
  .oxx .oxn-book-mail { display: inline-flex; align-items: center; gap: 8px; margin-top: 4px; font: 500 14.5px/1.3 var(--p-text); color: rgb(255 255 255 / .82); }
  .oxx .oxn-book-mail:hover { color: #fff; }
  .oxx .oxn-team .oxh-team-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* ——— Locațiile: cardul complet (starea programului, descrierea, contactele, programul cu ziua de azi, acțiunile). */
.oxx .oxn-locs { display: grid; gap: 14px; }
.oxx .oxn-loc { align-content: start; }
.oxx .oxn-loc :is(h2, h3) { margin: 0; font-size: 19px; line-height: 1.3; font-weight: 700; color: var(--p-ink); }
.oxx .oxn-loc-lead { margin: 0; font: 400 15px/1.55 var(--p-text); color: var(--p-body); }
.oxx .oxn-loc a.oxh-loc-row { color: var(--p-ink); }
.oxx .oxn-loc a.oxh-loc-row:hover span { text-decoration: underline; text-underline-offset: 3px; }
.oxx .oxn-status { justify-self: start; display: inline-flex; align-items: center; gap: 8px; padding: 6px 11px; border-radius: 999px; background: var(--p-soft); border: 1px solid var(--p-line); font: 600 12.5px/1 var(--p-display); color: var(--p-body); }
.oxx .oxn-status[hidden] { display: none; }
.oxx .oxn-status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--p-mute); }
.oxx .oxn-status.is-open { background: #ecfdf3; border-color: #bbe9cd; color: #13633a; }
.oxx .oxn-status.is-open::before { background: #22a55b; box-shadow: 0 0 0 3px rgb(34 165 91 / .18); }
.oxx .oxn-hours { display: grid; margin: 4px 0 0; border-top: 1px solid var(--p-line); }
.oxx .oxn-hours div { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--p-line); font: 400 14.5px/1.4 var(--p-text); color: var(--p-body); }
.oxx .oxn-hours dd { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--p-ink); }
.oxx .oxn-hours .is-today { color: var(--p-ink); font-weight: 600; }
.oxx .oxn-hours .is-today dt::after { content: "azi"; margin-left: 8px; padding: 3px 7px; border-radius: 999px; background: var(--p-tint); color: var(--p-navy); font: 700 10.5px/1 var(--p-display); text-transform: uppercase; letter-spacing: .05em; vertical-align: 2px; }
@media (min-width: 768px) { .oxx .oxn-locs-sec .oxn-locs { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 16px; } .oxx .oxn-loc { padding: 22px; } }

/* ——— Serviciile unei locații, grupate pe specialități: câte o listă care se deschide. */
.oxx .oxn-groups { display: grid; gap: 10px; }
.oxx .oxn-group { border-radius: var(--p-r-card); background: #fff; border: 1px solid var(--p-line); }
.oxx .oxn-group summary { display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 10px 14px; cursor: pointer; list-style: none; }
.oxx .oxn-group summary::-webkit-details-marker { display: none; }
.oxx .oxn-group summary > span:nth-child(2) { flex: 1; min-width: 0; display: grid; gap: 2px; }
.oxx .oxn-group summary b { font: 700 16px/1.3 var(--p-display); color: var(--p-ink); }
.oxx .oxn-group summary small { font: 500 13px/1.3 var(--p-text); color: var(--p-mute); }
.oxx .oxn-group summary > svg { flex: none; color: var(--p-mute); transition: transform .2s var(--p-ease); }
.oxx .oxn-group[open] summary > svg { transform: rotate(180deg); }
.oxx .oxn-group ul { margin: 0; padding: 0 16px 10px; list-style: none; }
.oxx .oxn-group li a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 46px; padding: 8px 0; border-top: 1px solid var(--p-line); font: 500 15px/1.35 var(--p-text); color: var(--p-ink); }
.oxx .oxn-group li a svg { flex: none; color: var(--p-navy-3); }
.oxx .oxn-group li.is-all a { font: 700 14.5px/1.3 var(--p-display); color: var(--p-navy); }
@media (min-width: 768px) { .oxx .oxn-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 12px; } }
@media (min-width: 1024px) { .oxx .oxn-groups { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ——— Contact: formularul (panoul nuanțat) și contactele directe; pe desktop alături. */
.oxx .oxn-contact-grid { display: grid; gap: 28px; }
.oxx .oxn-direct { display: grid; gap: 14px; align-content: start; }
.oxx .oxn-direct-tel { display: inline-flex; align-items: center; gap: 12px; font: 800 30px/1.1 var(--p-display); letter-spacing: -.02em; color: var(--p-ink); }
.oxx .oxn-direct-tel svg { color: var(--p-navy-3); }
.oxx .oxn-direct-mail { display: inline-flex; align-items: center; gap: 10px; font: 600 16px/1.3 var(--p-display); color: var(--p-navy); }
.oxx .oxn-direct .oxn-locs { margin-top: 6px; }
@media (min-width: 1024px) {
  .oxx .oxn-contact-grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 48px; align-items: start; }
  .oxx .oxb-form-box.oxn-form-box { grid-template-columns: minmax(0, 1fr); gap: 22px; padding: 36px; }
  /* Pe o coloană textul stă deasupra câmpurilor: nu rămâne lipit sus (ar aluneca peste formular la derulare). */
  .oxx .oxb-form-box.oxn-form-box .oxb-form-copy { position: static; }
}

/* ——— Blogul și categoriile. Telefon: rânduri compacte (miniatura în stânga); ecranele mari: carduri. */
.oxx .oxn-posts { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.oxx .oxn-posts > li { display: flex; }
.oxx .oxn-post { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 14px; align-items: start; width: 100%; padding: 12px; border-radius: var(--p-r-card); background: #fff; border: 1px solid var(--p-line); color: var(--p-ink); transition: border-color .2s; }
.oxx .oxn-post:not(:has(figure)) { grid-template-columns: minmax(0, 1fr); }
.oxx .oxn-post:hover { border-color: var(--p-line-2); }
.oxx .oxn-post figure { margin: 0; aspect-ratio: 1; border-radius: var(--p-r-btn); overflow: hidden; background: var(--p-tint); }
.oxx .oxn-post figure img, .oxx .oxn-post-art svg { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 0 !important; }
.oxx .oxn-post-art { height: 100%; }
.oxx .oxn-post-body { display: grid; gap: 4px; min-width: 0; }
.oxx .oxn-post-cat { font: 700 11px/1.2 var(--p-display); letter-spacing: .1em; text-transform: uppercase; color: var(--p-gold-ink); }
.oxx .oxn-post h3 { margin: 0; font-size: 15.5px; line-height: 1.35; font-weight: 700; color: var(--p-ink); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.oxx .oxn-post p { display: none; }
.oxx .oxn-post time { font: 500 12.5px/1.3 var(--p-text); color: var(--p-mute); }
.oxx .oxn-blog-note { margin: 28px 0 0; text-align: center; font: 400 15px/1.5 var(--p-text); color: var(--p-mute); }
@media (min-width: 640px) {
  .oxx .oxn-posts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .oxx .oxn-post { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr; gap: 0; padding: 0; overflow: hidden; }
  .oxx .oxn-post figure { aspect-ratio: 16 / 10; border-radius: 0; }
  .oxx .oxn-post-body { gap: 8px; padding: 16px 18px 18px; }
  .oxx .oxn-post h3 { font-size: 17px; }
  .oxx .oxn-post p { display: -webkit-box; margin: 0; font: 400 14.5px/1.55 var(--p-text); color: var(--p-body); -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
}
@media (min-width: 1024px) { .oxx .oxn-posts { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; } }

/* ——— Articolul: antetul (categoriile, titlul, data, timpul de citire, imaginea), textul pe lățimea de lectură,
   programarea, articolele înrudite. */
.oxx .oxn-post-head { padding: 18px 0 4px; background: linear-gradient(180deg, var(--p-soft) 0%, #fff 100%); }
.oxx .oxn-post-head .oxp-wrap, .oxx .oxn-article-body { max-width: 900px; }
.oxx .oxn-post-cats { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.oxx .oxn-post-cats a { display: inline-flex; align-items: center; min-height: 32px; padding: 0 12px; border-radius: 999px; background: #fff; border: 1px solid var(--p-line); font: 700 12px/1 var(--p-display); letter-spacing: .06em; text-transform: uppercase; color: var(--p-gold-ink); }
.oxx .oxn-post-head h1 { margin: 14px 0 0; font-size: clamp(1.85rem, 1.25rem + 2.6vw, 3rem); line-height: 1.12; letter-spacing: -.025em; color: var(--p-ink); text-wrap: balance; }
.oxx .oxn-post-meta { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 14px; font: 500 14px/1.3 var(--p-text); color: var(--p-mute); }
.oxx .oxn-post-meta > * { display: inline-flex; align-items: center; gap: 6px; }
.oxx .oxn-post-meta svg { color: var(--p-navy-3); }
.oxx .oxn-post-media { margin: 22px 0 0; border-radius: var(--p-r-panel); overflow: hidden; background: var(--p-tint); }
.oxx .oxn-post-media img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.oxx .oxn-article-body { padding-block: 28px 48px; }
.oxx .oxn-reading { max-width: none; font-size: 17px; line-height: 1.8; }
.oxx .oxn-post-book { display: grid; gap: 14px; margin-top: 36px; padding: 22px; border-radius: var(--p-r-panel); background: var(--p-tint); border: 1px solid var(--p-line); }
.oxx .oxn-post-book b { font: 700 18px/1.3 var(--p-display); color: var(--p-ink); }
.oxx .oxn-post-book p { margin: 4px 0 0; font: 400 15px/1.55 var(--p-text); color: var(--p-body); }
.oxx .oxn-post-book-cta { display: grid; gap: 10px; }
.oxx .oxn-back { margin-top: 28px; }
@media (min-width: 640px) { .oxx .oxn-post-book-cta { display: flex; flex-wrap: wrap; } }
@media (min-width: 1024px) {
  .oxx .oxn-post-head { padding-top: 32px; }
  .oxx .oxn-reading { font-size: 18px; }
  .oxx .oxn-post-book { grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 24px; padding: 28px 32px; }
}

/* ——— Bara de repere: casete cu iconiță (două pe rând pe telefon). */
.oxx .oxb.oxn-facts-sec { padding-block: 20px; }
.oxx .oxn-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.oxx .oxn-facts li { display: flex; align-items: center; gap: 12px; padding: 14px; border-radius: var(--p-r-card); background: #fff; border: 1px solid var(--p-line); }
.oxx .oxn-facts .oxb-ic { width: 40px; height: 40px; }
.oxx .oxn-facts b { display: block; font: 700 14.5px/1.3 var(--p-display); color: var(--p-ink); }
.oxx .oxn-facts small { display: block; margin-top: 2px; font: 400 13px/1.35 var(--p-text); color: var(--p-mute); }
@media (min-width: 1024px) { .oxx .oxb.oxn-facts-sec { padding-block: 32px; } .oxx .oxn-facts { grid-template-columns: repeat(min(var(--n, 4), 4), minmax(0, 1fr)); gap: 14px; } .oxx .oxn-facts li { padding: 18px; } }

/* ——— Cardurile de servicii (aceeași listă ca serviciile specialității) cu iconiță și detalii. */
.oxx .oxn-svc .oxb-top { gap: 12px; }
.oxx .oxn-svc .oxb-ic { width: 40px; height: 40px; }
.oxx .oxn-svc small { display: block; font: 400 13.5px/1.5 var(--p-text); color: var(--p-mute); }

/* ——— Etichetele. */
.oxx .oxn-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.oxx .oxn-tags :is(a, span) { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 16px; border-radius: 999px; background: #fff; border: 1px solid var(--p-line); font: 600 14px/1.2 var(--p-display); color: var(--p-ink); }
.oxx .oxn-tags a svg { color: var(--p-navy-3); }
.oxx .oxn-tags a:hover { border-color: var(--p-navy); }

/* ——— Cardurile de tarife. */
.oxx .oxn-prices { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.oxx .oxn-price { display: grid; gap: 6px; align-content: start; padding: 20px; border-radius: var(--p-r-card); background: #fff; border: 1px solid var(--p-line); }
.oxx .oxn-price.is-hi { border-color: var(--p-navy); box-shadow: inset 0 0 0 1px var(--p-navy); }
.oxx .oxn-price h3 { margin: 0; font-size: 17px; line-height: 1.3; font-weight: 700; color: var(--p-ink); }
.oxx .oxn-price p { margin: 0; font: 400 14.5px/1.5 var(--p-text); color: var(--p-body); }
.oxx .oxn-price b { margin-top: 6px; font: 800 26px/1.1 var(--p-display); letter-spacing: -.02em; color: var(--p-navy); }
.oxx .oxn-price small { font: 400 13.5px/1.5 var(--p-text); color: var(--p-mute); }
@media (min-width: 768px) { .oxx .oxn-prices { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } }
@media (min-width: 1024px) { .oxx .oxn-prices { grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); } }

/* ——— Tabelele (secțiunile „Tabel”, lista analizelor): căutarea, tabelul pe un card, ultima coloană (prețul) în dreapta. */
.oxx .oxn-search { position: relative; display: flex; align-items: center; max-width: 440px; margin-bottom: 14px; }
.oxx .oxn-search svg { position: absolute; left: 14px; color: var(--p-mute); pointer-events: none; }
.oxx .oxn-search input { width: 100%; min-height: 48px; padding: 0 14px 0 44px; border-radius: var(--p-r-btn); border: 1px solid var(--p-line-2); background: #fff; font: 400 16px/1.2 var(--p-text); color: var(--p-ink); }
.oxx .oxn-search input:focus { outline: none; border-color: var(--p-navy-3); box-shadow: 0 0 0 3px color-mix(in srgb, var(--p-navy-3) 18%, transparent); }
.oxx .oxn-table { overflow-x: auto; border-radius: var(--p-r-card); background: #fff; border: 1px solid var(--p-line); }
.oxx .oxn-table table { width: 100%; border-collapse: collapse; }
.oxx .oxn-table th { padding: 12px 14px; background: var(--p-soft); text-align: left; font: 700 12px/1.3 var(--p-display); letter-spacing: .06em; text-transform: uppercase; color: var(--p-mute); }
.oxx .oxn-table td { padding: 12px 14px; border-top: 1px solid var(--p-line); font: 400 15px/1.45 var(--p-text); color: var(--p-body); vertical-align: top; }
.oxx .oxn-table .is-end { text-align: right; white-space: nowrap; }
.oxx .oxn-table td.is-end { font-weight: 700; color: var(--p-navy); }
.oxx .oxn-table td b { display: block; font-weight: 600; color: var(--p-ink); }
/* Lista analizelor: grupele pe categorii (aceleași liste care se deschid ca serviciile unei locații), tabelul în grupă. */
.oxx .oxn-lab-groups { display: grid; gap: 10px; }
.oxx .oxn-lab-group[hidden] { display: none; }
.oxx .oxn-lab-group .oxn-table { border: 0; border-top: 1px solid var(--p-line); border-radius: 0 0 var(--p-r-card) var(--p-r-card); }
.oxx .oxn-count { min-height: 1.4em; margin: -4px 0 10px; font: 600 14px/1.4 var(--p-text); color: var(--p-mute); }
.oxx .oxn-count:empty { display: none; }
.oxx .oxn-fold { border-radius: var(--p-r-card); background: #fff; border: 1px solid var(--p-line); }
.oxx .oxn-fold summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 56px; padding: 12px 18px; cursor: pointer; list-style: none; font: 700 16px/1.3 var(--p-display); color: var(--p-ink); }
.oxx .oxn-fold summary::-webkit-details-marker { display: none; }
.oxx .oxn-fold summary svg { flex: none; color: var(--p-mute); transition: transform .2s var(--p-ease); }
.oxx .oxn-fold[open] summary svg { transform: rotate(180deg); }
.oxx .oxn-fold > div { padding: 0 18px 18px; }

/* ——— Clipurile YouTube: carduri verticale (bandă pe telefon), fațada cu butonul de redare. */
.oxx .oxn-yt { margin: 0; }
.oxx .oxn-yt-frame { position: relative; aspect-ratio: 9 / 16; max-height: 520px; border-radius: var(--p-r-card); overflow: hidden; background: var(--p-navy); }
.oxx .oxn-yt-frame img, .oxx .oxn-yt-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0; }
.oxx .oxn-yt-frame button { position: absolute; inset: 0; display: grid; place-items: center; width: 100%; height: 100%; padding: 0; border: 0; background: transparent; cursor: pointer; }
.oxx .oxn-yt-frame button span { display: grid; place-items: center; width: 62px; height: 62px; border-radius: 50%; background: rgb(255 255 255 / .92); color: var(--p-navy); }
.oxx .oxn-yt-frame button span svg { margin-left: 3px; }
.oxx .oxn-yt figcaption { margin-top: 10px; font: 600 15px/1.35 var(--p-display); color: var(--p-ink); }

/* ——— Grila de imagini. */
.oxx .oxn-images { display: grid; gap: 14px; }
.oxx .oxn-images figure { margin: 0; }
.oxx .oxn-images img { display: block; width: 100%; height: auto; border-radius: var(--p-r-card); border: 1px solid var(--p-line); }
.oxx .oxn-images figcaption { margin-top: 8px; font: 400 13.5px/1.5 var(--p-text); color: var(--p-mute); }
@media (min-width: 640px) { .oxx .oxn-images { grid-template-columns: repeat(min(var(--n, 2), 2), minmax(0, 1fr)); } }
@media (min-width: 1024px) { .oxx .oxn-images { grid-template-columns: repeat(var(--n, 2), minmax(0, 1fr)); gap: 18px; } }

/* ——— Alegerea CAS / privat (/servicii-medicale/): două carduri mari, cu eticheta, textul, butonul și linkurile. */
.oxx .oxn-selects { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.oxx .oxn-select { display: grid; gap: 12px; align-content: start; padding: 24px 20px; border-radius: var(--p-r-panel); background: #fff; border: 1px solid var(--p-line); }
.oxx .oxn-select.is-cas { background: var(--p-tint); }
.oxx .oxn-select-tag { justify-self: start; display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px; background: #fff; border: 1px solid var(--p-line); font: 700 12px/1 var(--p-display); letter-spacing: .08em; text-transform: uppercase; color: var(--p-gold-ink); }
.oxx .oxn-select h2 { margin: 0; font-size: clamp(1.4rem, 1.1rem + 1.2vw, 1.85rem); line-height: 1.2; color: var(--p-ink); }
.oxx .oxn-select p { margin: 0; font: 400 16px/1.6 var(--p-text); color: var(--p-body); }
.oxx .oxn-select > .oxp-btn { margin-top: 4px; }
.oxx .oxn-select-links { margin: 6px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--p-line); }
.oxx .oxn-select-links a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; padding: 8px 0; border-bottom: 1px solid var(--p-line); font: 600 15.5px/1.3 var(--p-display); color: var(--p-ink); }
.oxx .oxn-select-links a svg { flex: none; color: var(--p-navy-3); }
.oxx .oxn-select-links a:hover { color: var(--p-navy); }
@media (min-width: 640px) { .oxx .oxn-select > .oxp-btn { justify-self: start; } }
@media (min-width: 900px) { .oxx .oxn-selects { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; } .oxx .oxn-select { padding: 32px; } }

/* ——— Tarifele unui serviciu fără listă: caseta cu trimiterea la pagina Tarife și telefonul. */
.oxx .oxn-callout { display: flex; align-items: flex-start; gap: 16px; padding: 22px; border-radius: var(--p-r-card); background: var(--p-soft); border: 1px solid var(--p-line); }
.oxx .oxn-callout h2 { margin: 0 0 6px; font-size: 22px; }
.oxx .oxn-callout p { margin: 0; font: 400 16px/1.6 var(--p-text); color: var(--p-body); }
.oxx .oxn-callout a { font-weight: 600; color: var(--p-navy); text-decoration: underline; text-underline-offset: 3px; }

/* ——— Cardurile de traseu cu două linkuri (/evaluare-longevitate/: traseul și „Programează consultația”). */
.oxx .oxh-path-sub { margin-top: 2px; color: var(--p-mute); }
.oxx .oxh-path-sub:hover { color: var(--p-navy); }

/* ============ Paginile specialităților ca pagini de documentare (src/site/specialty-premium.mjs) ============
   Antetul cu reperele ca patru casete; pe desktop cuprinsul „Pe această pagină” și caseta de programare într-o
   coloană fixă în stânga, părțile paginii pe lățimea de lectură în dreapta, despărțite de linii fine. Pe telefon,
   cuprinsul e un rând de etichete, iar părțile curg una după alta, compact. */
.oxx .oxsp-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 22px 0 0; padding: 0; list-style: none; }
.oxx .oxsp-stats li { display: flex; }
.oxx .oxsp-stats li > * { display: grid; gap: 4px; width: 100%; padding: 13px 15px; border-radius: var(--p-r-card); background: #fff; border: 1px solid var(--p-line); color: var(--p-ink); transition: border-color .2s; }
.oxx .oxsp-stats a:hover { border-color: var(--p-line-2); }
.oxx .oxsp-stats small { font: 700 11px/1.2 var(--p-display); letter-spacing: .09em; text-transform: uppercase; color: var(--p-mute); }
.oxx .oxsp-stats b { font: 700 15.5px/1.3 var(--p-display); color: var(--p-ink); }
.oxx .oxsp-body { display: grid; grid-template-columns: minmax(0, 1fr); padding-block: 4px 40px; }
.oxx .oxsp-chips { margin: 0 0 4px; }
.oxx .oxsp-side { display: none; }
.oxx .oxsp-content { min-width: 0; }
.oxx .oxsp-part { padding-block: 32px; border-top: 1px solid var(--p-line); scroll-margin-top: calc(var(--p-header-h) + 16px); }
.oxx .oxsp-part:first-child { border-top: 0; padding-top: 20px; }
.oxx .oxsp-head { display: grid; gap: 6px; margin-bottom: 18px; }
.oxx .oxsp-head h2, .oxx .oxsp-content .oxh-head h2 { margin: 0; font-size: clamp(1.4rem, 1.15rem + 1.1vw, 1.85rem); line-height: 1.2; }
.oxx .oxsp-head p { margin: 0; font: 400 15.5px/1.6 var(--p-text); color: var(--p-mute); }
.oxx .oxsp-more { margin-top: 16px; }

/* Serviciile ca listă: un card cu rânduri (titlul, două rânduri de descriere, săgeata). */
.oxx .oxsp-rows { margin: 0; padding: 0; list-style: none; border-radius: var(--p-r-card); background: #fff; border: 1px solid var(--p-line); overflow: hidden; }
.oxx .oxsp-rows li + li { border-top: 1px solid var(--p-line); }
.oxx .oxsp-rows a { display: flex; align-items: center; gap: 16px; padding: 15px 16px 15px 18px; color: var(--p-ink); transition: background-color .2s; }
.oxx .oxsp-rows a:hover { background: var(--p-soft); }
.oxx .oxsp-rows a > svg { flex: none; color: var(--p-mute); }
.oxx .oxsp-row-txt { flex: 1; min-width: 0; display: grid; gap: 3px; }
.oxx .oxsp-row-txt b { font: 700 16px/1.3 var(--p-display); color: var(--p-ink); }
.oxx .oxsp-row-txt small { font: 400 14.5px/1.5 var(--p-text); color: var(--p-body); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* Medicii ca rânduri compacte: fotografia mică, numele, rolul, domeniul. */
.oxx .oxsp-docs { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.oxx .oxsp-docs a { display: flex; align-items: center; gap: 14px; height: 100%; padding: 10px 14px 10px 10px; border-radius: var(--p-r-card); background: #fff; border: 1px solid var(--p-line); color: var(--p-ink); transition: border-color .2s; }
.oxx .oxsp-docs a:hover { border-color: var(--p-line-2); }
.oxx .oxsp-docs a > svg { flex: none; color: var(--p-mute); }
.oxx .oxsp-doc-pic { flex: none; display: grid; place-items: center; width: 64px; height: 64px; border-radius: var(--p-r-btn); overflow: hidden; background: var(--p-tint); color: var(--p-mute); }
.oxx .oxsp-doc-pic img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 22%; }
.oxx .oxsp-doc-txt { flex: 1; min-width: 0; display: grid; gap: 2px; }
.oxx .oxsp-doc-txt b { font: 700 15.5px/1.3 var(--p-display); color: var(--p-ink); }
.oxx .oxsp-doc-txt small { font: 400 13.5px/1.4 var(--p-text); color: var(--p-body); }
.oxx .oxsp-doc-txt em { font: 600 12.5px/1.35 var(--p-text); font-style: normal; color: var(--p-gold-ink); }

/* Cuprinsul și caseta de programare (coloana laterală, doar pe desktop). */
.oxx .oxsp-toc { padding: 16px 8px 8px; border-radius: var(--p-r-card); background: #fff; border: 1px solid var(--p-line); }
.oxx .oxsp-toc .oxb-kicker { display: block; padding: 0 12px 8px; color: var(--p-mute); }
.oxx .oxsp-toc ol { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.oxx .oxsp-toc a { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; padding: 6px 12px; border-radius: 8px; font: 500 14px/1.35 var(--p-text); color: var(--p-body); transition: background-color .2s, color .2s; }
.oxx .oxsp-toc a:hover { background: var(--p-soft); color: var(--p-ink); }
.oxx .oxsp-toc a[aria-current="true"] { background: var(--p-tint); color: var(--p-navy); font-weight: 600; }
.oxx .oxsp-book { display: grid; gap: 10px; padding: 20px; border-radius: var(--p-r-card); background: var(--p-tint); border: 1px solid var(--p-line); }
.oxx .oxsp-book .oxb-kicker { color: var(--p-gold-ink); }
.oxx .oxsp-book-tel { display: inline-flex; align-items: center; gap: 10px; font: 800 22px/1.1 var(--p-display); letter-spacing: -.02em; color: var(--p-ink); }
.oxx .oxsp-book-tel svg { color: var(--p-navy-3); }
.oxx .oxsp-book-cta { display: grid; gap: 8px; margin-top: 4px; }
.oxx .oxsp-book-cta .oxp-btn { width: 100%; }

/* Secțiunile (specialitățile cu secțiuni) în coloana de conținut: fără spațiile și fundalurile de bandă ale paginilor
   late; blocurile pe două coloane trec pe una; listele și grilele au cel mult două sau trei coloane. */
.oxx .oxsp-content :is(.oxb, .oxh) { padding-block: 0; }
.oxx .oxsp-content .oxp-wrap { max-width: none; padding-inline: 0; }
.oxx .oxsp-content .oxb-band { background: none; }
.oxx .oxsp-content .oxh-head { margin-bottom: 18px; }
.oxx .oxsp-content .oxb-twocol { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-areas: none; gap: 4px; }
.oxx .oxsp-content .oxb-twocol > * { grid-area: auto; }
.oxx .oxsp-content .oxb-split { grid-template-columns: minmax(0, 1fr); gap: 14px; }
.oxx .oxsp-content .oxb-prose { max-width: none; }
.oxx .oxsp-content .oxb-form-box { grid-template-columns: minmax(0, 1fr); }
.oxx .oxsp-content .oxb-form-copy { position: static; }
.oxx .oxsp-part.is-videos > * + * { margin-top: 28px; }
@media (min-width: 640px) { .oxx .oxsp-docs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 768px) {
  .oxx .oxsp-part.is-videos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; align-items: start; }
  .oxx .oxsp-part.is-videos > * + * { margin-top: 0; }
}
@media (min-width: 1024px) {
  .oxx .oxsp-stats { grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); gap: 10px; margin-top: 30px; }
  .oxx .oxsp-body { grid-template-columns: 272px minmax(0, 1fr); gap: 56px; align-items: start; padding-block: 24px 72px; }
  .oxx .oxsp-chips { display: none; }
  .oxx .oxsp-side { position: sticky; top: calc(var(--p-header-h) + 20px); display: grid; gap: 14px; max-height: calc(100vh - var(--p-header-h) - 40px); overflow-y: auto; scrollbar-width: thin; }
  .oxx .oxsp-content { max-width: 880px; }
  .oxx .oxsp-part { padding-block: 44px; }
  .oxx .oxsp-part:first-child { padding-top: 8px; }
  .oxx .oxsp-content .oxb-cards { grid-template-columns: repeat(min(var(--n, 2), 2), minmax(0, 1fr)); }
  .oxx .oxsp-content .oxb-choices { grid-template-columns: repeat(min(var(--n, 2), 2), minmax(0, 1fr)); }
  .oxx .oxsp-content .oxb-colgrid { grid-template-columns: repeat(min(var(--n, 2), 2), minmax(0, 1fr)); }
  .oxx .oxsp-content .oxh-team-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .oxx .oxsp-content .oxb-places.has-map .oxb-places-grid { grid-template-columns: minmax(0, 1fr); }
  .oxx .oxsp-content .oxb-svcs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ——— Paginile specialităților, structura comună (src/site/specialty-premium.mjs): punctele antetului, imaginea ca
   parte a paginii, cardurile serviciilor (accesul și tariful „de la”), filmările, banda „Alte specialități”. */
.oxx .oxsp-content .oxb-locs:has(> :only-child) { grid-template-columns: minmax(0, 1fr); }
.oxx .oxsp-part.is-figure { padding-bottom: 0; border-top: 0; }


.oxx .oxsp-vids { display: grid; grid-auto-flow: column; grid-auto-columns: 62%; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-inline: calc(-1 * var(--p-gutter)); padding: 4px var(--p-gutter) 8px; scroll-padding-inline: var(--p-gutter); }
.oxx .oxsp-vids::-webkit-scrollbar { display: none; }
.oxx .oxsp-vids > * { scroll-snap-align: start; }
.oxx .oxsp-vids .oxb-video-frame { position: relative; aspect-ratio: 9 / 16; }
.oxx .oxsp-vids video { position: absolute; inset: 0; width: 100%; height: 100%; max-height: none; object-fit: contain; }
.oxx .oxsp-vids figcaption b { font-size: 15px; }
.oxx .oxsp-vids figcaption p { font-size: 13.5px; color: var(--p-mute); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.oxx .oxsp-wide + .oxsp-vids, .oxx .oxsp-vids + .oxsp-wide { margin-top: 24px; }

.oxx .oxsp-others { background: var(--p-soft); border-top: 1px solid var(--p-line); }
.oxx .oxsp-others-grid { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.oxx .oxsp-others-grid a { display: flex; align-items: center; gap: 12px; height: 100%; padding: 12px 14px; border-radius: var(--p-r-card); background: #fff; border: 1px solid var(--p-line); color: var(--p-ink); transition: border-color .2s, box-shadow .2s; }
.oxx .oxsp-others-grid a:hover { border-color: var(--p-line-2); box-shadow: var(--u-hover, none); }
.oxx .oxsp-others-grid .oxb-ic { width: 40px; height: 40px; }
.oxx .oxsp-others-grid a > span:nth-child(2) { flex: 1; min-width: 0; display: grid; gap: 2px; }
.oxx .oxsp-others-grid b { font: 700 15px/1.3 var(--p-display); }
.oxx .oxsp-others-grid small { font: 500 12.5px/1.3 var(--p-text); color: var(--p-mute); }
.oxx .oxsp-others-grid a > svg { flex: none; color: var(--p-navy-3); }
@media (min-width: 640px) {
  .oxx .oxsp-vids { grid-auto-flow: row; grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); gap: 18px; overflow: visible; margin-inline: 0; padding: 0; }
  .oxx .oxsp-vids:has(> :only-child) { grid-template-columns: minmax(0, 300px); }
  .oxx .oxsp-others-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .oxx .oxsp-others-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
}

/* ============ Pagina unei locații (src/site/location-premium.mjs) ============
   Scheletul paginilor de specialitate (.oxsp), cu antetul propriu: textul, nota Google, programarea și reperele în
   stânga, caseta de contact (starea programului, adresa, telefonul, programul cu ziua de azi) în dreapta; pe telefon
   caseta vine imediat după text. Părțile: grupele de servicii pe două coloane, serviciile CAS, echipa, filmările,
   harta cu adresa, nota Google, întrebările, paginile utile și celelalte locații. */
.oxx .oxlc-hero { padding-bottom: 28px; }
.oxx .oxlc-hero .oxh-lead { max-width: 54ch; }
.oxx .oxlc-rating { display: inline-flex; align-items: center; gap: 8px; max-width: 100%; margin-top: 18px; padding: 8px 14px 8px 12px; white-space: nowrap; border-radius: 999px; background: #fff; border: 1px solid var(--p-line); box-shadow: var(--p-shadow-sm); font: 500 14px/1.2 var(--p-text); color: var(--p-body); transition: border-color .2s; }
.oxx a.oxlc-rating:hover { border-color: var(--p-line-2); }
.oxx .oxlc-rating b { font: 800 16px/1 var(--p-display); color: var(--p-ink); font-variant-numeric: tabular-nums; }
.oxx .oxlc-rating > svg { flex: none; color: var(--p-navy-3); }
.oxx .oxlc-rating span:not(.oxb-stars) { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.oxx .oxlc-rating .oxb-stars svg { width: 13px; height: 13px; }
.oxx .oxlc-rating + .oxh-cta { margin-top: 22px; }
.oxx .oxlc-stats { margin-top: 24px; }
.oxx .oxlc-stats b { font-size: 20px; letter-spacing: -.01em; }
.oxx .oxlc-card { gap: 2px; padding: 20px; border-radius: var(--p-r-panel); background: #fff; border: 1px solid var(--p-line); box-shadow: var(--p-shadow-md); }
.oxx .oxlc-card .oxn-status { margin-bottom: 10px; }
.oxx .oxlc-card .oxb-kicker { margin-bottom: 4px; color: var(--p-mute); }
.oxx .oxlc-card .oxlc-card-k { margin-top: 16px; }
.oxx .oxlc-card .oxh-loc-row { padding: 7px 0; font-size: 15.5px; }
.oxx .oxlc-card .oxh-loc-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 8px; margin-top: 16px; }
.oxx .oxlc-card .oxh-loc-actions .oxp-btn { white-space: nowrap; }
.oxx .oxlc-book .oxn-status { margin-bottom: 2px; }

/* Specialitățile cu serviciile de aici: grupe pe două coloane; o specialitate fără servicii aici e un link simplu. */
.oxx a.oxlc-group-link { display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 10px 14px; color: var(--p-ink); transition: border-color .2s; }
.oxx a.oxlc-group-link:hover { border-color: var(--p-line-2); }
.oxx a.oxlc-group-link > span:nth-child(2) { flex: 1; min-width: 0; display: grid; gap: 2px; }
.oxx a.oxlc-group-link b { font: 700 16px/1.3 var(--p-display); color: var(--p-ink); }
.oxx a.oxlc-group-link small { font: 500 13px/1.3 var(--p-text); color: var(--p-mute); }
.oxx a.oxlc-group-link > svg { flex: none; color: var(--p-navy-3); }

/* Serviciile prin CAS: grupate pe specialități (iconița și numele), serviciile ca etichete-link; pe desktop numele
   specialității în stânga, etichetele în dreapta. */
.oxx .oxlc-cas { display: grid; border-radius: var(--p-r-card); background: #fff; border: 1px solid var(--p-line); }
.oxx .oxlc-cas-g { display: grid; gap: 10px; padding: 16px; }
.oxx .oxlc-cas-g + .oxlc-cas-g { border-top: 1px solid var(--p-line); }
.oxx .oxlc-cas-h { display: flex; align-items: center; gap: 10px; }
.oxx .oxlc-cas-h .oxb-ic { width: 34px; height: 34px; }
.oxx .oxlc-cas-h b { font: 700 15.5px/1.3 var(--p-display); color: var(--p-ink); }
.oxx .oxlc-pills { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.oxx .oxlc-pills a { display: inline-flex; align-items: center; gap: 6px; min-height: 38px; padding: 7px 12px; border-radius: 999px; background: var(--p-soft); border: 1px solid var(--p-line); font: 500 14px/1.25 var(--p-text); color: var(--p-ink); transition: border-color .2s, background-color .2s; }
.oxx .oxlc-pills a:hover { background: #fff; border-color: var(--p-line-2); }
.oxx .oxlc-pills a svg { flex: none; color: var(--p-navy-3); }

/* Filmările: casetele verticale egale (bandă derulabilă pe telefon, rând de până la trei de la tabletă), clipul
   orizontal pe toată lățimea, dedesubt. Clipul se vede întreg în casetă (fără decupaj). */
.oxx .oxlc-vids { display: grid; grid-auto-flow: column; grid-auto-columns: 64%; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-inline: calc(-1 * var(--p-gutter)); padding: 4px var(--p-gutter) 8px; scroll-padding-inline: var(--p-gutter); }
.oxx .oxlc-vids::-webkit-scrollbar { display: none; }
.oxx .oxlc-vids > * { scroll-snap-align: start; }
.oxx .oxlc-vids .oxb-video-frame { position: relative; aspect-ratio: 9 / 16; }
.oxx .oxlc-vids video { position: absolute; inset: 0; width: 100%; height: 100%; max-height: none; object-fit: contain; }
.oxx .oxlc-vids .oxn-yt-frame { max-height: none; }
.oxx .oxlc-yt { background: radial-gradient(120% 70% at 50% 0%, var(--p-navy-3), var(--p-navy) 70%); }
.oxx .oxlc-yt-badge { position: absolute; top: 12px; left: 12px; z-index: 1; display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 999px; background: rgb(255 255 255 / .14); color: #fff; font: 700 11.5px/1 var(--p-display); letter-spacing: .04em; pointer-events: none; }
.oxx .oxlc-vids figcaption b { font-size: 15px; }
.oxx .oxlc-vids figcaption p { font-size: 13.5px; color: var(--p-mute); }
.oxx .oxlc-wide { margin-top: 24px; }
.oxx .oxlc-vids + .oxlc-wide { padding-top: 24px; border-top: 1px solid var(--p-line); }

/* Harta: adresa și butoanele, apoi harta (la cerere); alăturate de la tabletă. */
.oxx .oxlc-map { display: grid; gap: 12px; }
.oxx .oxlc-where { display: grid; align-content: start; gap: 8px; padding: 20px; border-radius: var(--p-r-card); background: var(--p-soft); border: 1px solid var(--p-line); }
.oxx .oxlc-where .oxb-kicker { color: var(--p-mute); }
.oxx .oxlc-address { margin: 0; font: 700 18px/1.4 var(--p-display); color: var(--p-ink); }
.oxx .oxlc-address a { display: flex; align-items: center; gap: 8px; margin-top: 10px; font: 600 15px/1.3 var(--p-text); color: var(--p-ink); }
.oxx .oxlc-address a svg { color: var(--p-gold-ink); }
.oxx .oxlc-where-cta { display: grid; gap: 8px; margin-top: 10px; }
.oxx .oxlc-map .oxb-map.oxn-map { min-height: 300px; }

/* Nota din profilul Google: nota mare, stelele, numărul de recenzii; textul și linkul spre profil. */
.oxx .oxlc-gbp { display: grid; gap: 18px; padding: 22px; border-radius: var(--p-r-panel); background: #fff; border: 1px solid var(--p-line); box-shadow: var(--p-shadow-sm); }
.oxx .oxlc-gbp-score { display: grid; justify-items: start; gap: 6px; }
.oxx .oxlc-gbp-score > b { font: 800 52px/1 var(--p-display); letter-spacing: -.03em; color: var(--p-ink); font-variant-numeric: tabular-nums; }
.oxx .oxlc-gbp-score .oxb-stars svg { width: 19px; height: 19px; }
.oxx .oxlc-gbp-score small { font: 500 14px/1.3 var(--p-text); color: var(--p-mute); }
.oxx .oxlc-gbp-txt { display: grid; justify-items: start; gap: 8px; }
.oxx .oxlc-gbp-txt h3 { margin: 0; font: 700 19px/1.3 var(--p-display); color: var(--p-ink); }
.oxx .oxlc-gbp-txt p { margin: 0 0 6px; font: 400 15px/1.6 var(--p-text); color: var(--p-body); }
.oxx .oxlc-reviews { margin-top: 18px; }
/* Celelalte locații: o singură locație = cardul pe toată lățimea (butoanele pe un rând). */
.oxx .oxsp-content .oxlc-others:has(> :only-child) { grid-template-columns: minmax(0, 1fr); }
.oxx .oxlc-reviews + .oxh-railnav { margin-top: 12px; }

@media (min-width: 640px) {
  .oxx .oxlc-rating { gap: 10px; }
  .oxx .oxlc-rating .oxb-stars svg { width: 15px; height: 15px; }
  .oxx .oxlc-cas-g { grid-template-columns: 230px minmax(0, 1fr); align-items: start; gap: 16px; padding: 18px 20px; }
  .oxx .oxlc-cas-h { min-height: 38px; }
  .oxx .oxlc-vids { grid-auto-flow: row; grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); gap: 18px; overflow: visible; margin-inline: 0; padding: 0; }
  .oxx .oxlc-where-cta { display: flex; flex-wrap: wrap; }
}
@media (min-width: 768px) {
  .oxx .oxlc-map { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
  .oxx .oxlc-map .oxlc-where-cta { display: grid; }
  .oxx .oxlc-map .oxb-map.oxn-map { min-height: 340px; }
  .oxx .oxlc-gbp { grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 32px; padding: 28px 32px; }
  .oxx .oxlc-gbp-score { padding-right: 32px; border-right: 1px solid var(--p-line); }
}
@media (min-width: 1024px) {
  .oxx .oxlc-hero { padding-bottom: 48px; }
  .oxx .oxlc-hero .oxb-hero-in { grid-template-columns: minmax(0, 1fr) 400px; align-items: start; min-height: 0; }
  .oxx .oxlc-card { padding: 24px 26px; }
  .oxx .oxsp-content .oxlc-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ============ Specialitățile și serviciile: „fișa departamentului” (src/site/department-premium.mjs) ============
   O singură pagină compactă, fără taburi: antetul (titlul, o frază, butoanele) cu fișa răspunsurilor reale în dreapta
   (pe telefon dedesubt), bara secțiunilor (pe telefon un rând de pastile, pe desktop lipită sub antetul site-ului, cu
   butonul de programare), apoi secțiunile pe un singur fundal alb, despărțite de linii fine, fără card în card. Listele
   lungi se strâng la primele rânduri ([data-more]), textul lung se pliază ([data-collapse]). Mobil întâi. */
.oxx .oxf-hero { padding: 14px 0 26px; background: linear-gradient(180deg, var(--p-tint) 0%, #fff 78%); border-bottom: 1px solid var(--p-line); }
.oxx .oxf-hero-in { display: grid; gap: 22px; }
.oxx .oxf-kind { display: flex; align-items: center; gap: 10px; margin: 0; font: 700 12px/1.3 var(--p-display); letter-spacing: .08em; text-transform: uppercase; color: var(--p-gold-ink); }
.oxx .oxf-kind a { color: inherit; text-decoration: underline; text-decoration-color: color-mix(in srgb, currentColor 35%, transparent); text-underline-offset: 3px; }
.oxx .oxf-kind a:hover { text-decoration-color: currentColor; }
.oxx .oxf-ic { flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: #fff; border: 1px solid var(--p-line); color: var(--p-navy-3); }
.oxx.oxx .oxf-hero h1 { margin: 14px 0 0; font: 800 clamp(1.9rem, 1.45rem + 2.1vw, 3rem)/1.04 var(--p-display); letter-spacing: -.034em; color: var(--p-ink); text-wrap: balance; }
.oxx.oxx .oxf-hero h1 .oxf-sub { display: block; margin-top: 8px; font-size: .56em; line-height: 1.2; font-weight: 600; letter-spacing: -.018em; color: var(--p-navy-3); }
.oxx .oxf-sep { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.oxx .oxf-lead { margin: 14px 0 0; max-width: 60ch; font: 400 var(--u-fs-lead, 17px)/1.6 var(--p-text); color: var(--p-body); }
.oxx .oxf-cta { display: grid; gap: 10px; margin-top: 20px; }
.oxx .oxf-cta .oxp-btn { width: 100%; }
.oxx .oxf-tel { display: none; }
/* Pe telefon „Programare prin CAS” e în bara de jos a site-ului (alături de Sună și Programare): în antet rămâne doar butonul principal. */
@media (max-width: 639px) { .oxx .oxf-cta .is-cas-book { display: none; } }

/* Fișa: o listă de rânduri (iconița sau fotografia, eticheta mică, valoarea, nota), despărțite de linii fine; rândurile cu
   o secțiune în pagină sunt linkuri (săgeata, fundal la trecerea cu mouse-ul). Aceeași formă oricâte date există. */
.oxx .oxf-card { display: grid; grid-template-columns: minmax(0, 1fr); min-width: 0; align-self: center; border-radius: 20px; background: #fff; border: 1px solid var(--p-line); overflow: hidden; box-shadow: 0 1px 2px rgb(15 23 42 / .04), 0 24px 48px -32px rgb(28 57 142 / .38); }
.oxx .oxf-row { display: flex; align-items: center; gap: 14px; min-height: 72px; padding: 14px 16px; color: var(--p-ink); transition: background-color .2s; }
.oxx .oxf-row + .oxf-row { border-top: 1px solid var(--p-line); }
.oxx a.oxf-row:hover { background: var(--p-soft); }
.oxx a.oxf-row:focus-visible { outline: 2px solid var(--p-navy-3); outline-offset: -3px; }
.oxx .oxf-row-ic { flex: none; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: var(--p-tint); color: var(--p-navy); }
.oxx .oxf-row-ic.is-wa { background: #e7f8ee; color: #1f9d55; }
.oxx .oxf-row-ic.is-wa svg { width: 20px; height: 20px; }
.oxx .oxf-row-t { flex: 1; min-width: 0; display: grid; gap: 1px; }
.oxx .oxf-row-t small { font: 700 10.5px/1.3 var(--p-display); letter-spacing: .1em; text-transform: uppercase; color: var(--p-mute); }
.oxx .oxf-row-t b { font: 800 16.5px/1.3 var(--p-display); letter-spacing: -.012em; color: var(--p-ink); }
.oxx .oxf-row-t em { font: 400 13px/1.4 var(--p-text); font-style: normal; color: var(--p-body); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.oxx .oxf-row-go { flex: none; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; color: var(--p-navy-3); transition: background-color .2s, color .2s, transform .2s; }
.oxx a.oxf-row:hover .oxf-row-go { background: var(--p-navy); color: #fff; transform: translateX(2px); }
.oxx .oxf-pics { flex: none; display: flex; width: 42px; justify-content: flex-start; }
.oxx .oxf-pics:not(.is-one) { width: auto; padding-left: 10px; }
.oxx .oxf-pic { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; overflow: hidden; background: var(--p-tint); color: var(--p-mute); }
.oxx .oxf-pics:not(.is-one) .oxf-pic { width: 38px; height: 38px; margin-left: -10px; border-radius: 50%; border: 2px solid #fff; }
.oxx .oxf-pic img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; }
.oxx .oxf-row.is-where { align-items: flex-start; }
/* Pe telefon rândul locațiilor nu are iconiță: numele și starea programului au loc pe un rând. */
@media (max-width: 639px) { .oxx .oxf-row.is-where .oxf-row-ic { display: none; } }
.oxx .oxf-where { display: grid; margin: 4px 0 0; padding: 0; list-style: none; }
.oxx .oxf-where li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 10px; min-height: 34px; padding-block: 3px; }
.oxx .oxf-where li + li { border-top: 1px dashed var(--p-line); }
.oxx .oxf-where a { font: 800 15.5px/1.3 var(--p-display); letter-spacing: -.01em; color: var(--p-ink); }
.oxx .oxf-where a:hover { color: var(--p-navy); text-decoration: underline; text-underline-offset: 3px; }
.oxx .oxf-where .oxn-status { padding: 4px 9px; font-size: 11.5px; white-space: nowrap; }

/* Bara secțiunilor: pe telefon un rând de pastile (nu încă o bară fixă: programarea e în bara de jos a site-ului). */
/* Bara rămâne lipită sub antetul site-ului și pe telefon: secțiunea curentă e evidențiată, iar întoarcerea la alta e
   la o atingere. */
.oxx .oxf-nav { position: sticky; top: var(--p-header-h); z-index: 30; border-bottom: 1px solid var(--p-line); background: rgb(255 255 255 / .96); -webkit-backdrop-filter: saturate(160%) blur(12px); backdrop-filter: saturate(160%) blur(12px); }
.oxx .oxf-nav-in { display: flex; align-items: center; gap: 12px; }
.oxx .oxf-nav ul { flex: 1; min-width: 0; display: flex; gap: 6px; margin: 0 calc(-1 * var(--p-gutter)); padding: 12px var(--p-gutter); list-style: none; overflow-x: auto; scrollbar-width: none; }
.oxx .oxf-nav ul::-webkit-scrollbar { display: none; }
.oxx .oxf-nav a:not(.oxp-btn) { flex: none; position: relative; display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--p-line); font: 600 14px/1 var(--p-display); color: var(--p-body); white-space: nowrap; transition: color .2s, border-color .2s, background-color .2s; }
.oxx .oxf-nav a:not(.oxp-btn):hover { color: var(--p-navy); border-color: var(--p-line-hover); }
.oxx .oxf-nav a:not(.oxp-btn):focus-visible { outline: 2px solid var(--p-navy-3); outline-offset: 2px; }
.oxx .oxf-nav-cta { display: none; }

/* Secțiunile: același fundal, despărțite de linii fine; ritmul secțiunilor din ui.css. */
.oxx .oxf-body { padding-bottom: 12px; }
.oxx .oxf-sec { padding-block: calc(var(--u-sec, 28px) * .9); scroll-margin-top: calc(var(--p-header-h) + 66px); }
.oxx .oxf-sec + .oxf-sec { border-top: 1px solid var(--p-line); }
.oxx .oxf-sec:focus { outline: none; }
.oxx .oxf-anchor { display: block; height: 0; scroll-margin-top: calc(var(--p-header-h) + 66px); }
.oxx .oxf-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 8px 20px; flex-wrap: wrap; margin-bottom: var(--u-head, 16px); }
.oxx .oxf-head-t { display: grid; gap: 4px; min-width: 0; }
.oxx.oxx .oxf-head h2 { margin: 0; font: 800 var(--u-fs-h2, 1.5rem)/1.15 var(--p-display); letter-spacing: -.024em; color: var(--p-ink); }
.oxx .oxf-head p { margin: 0; max-width: 62ch; font: 400 14.5px/1.5 var(--p-text); color: var(--p-mute); }
.oxx .oxf-head .oxp-link { font-size: 14.5px; }
.oxx .oxf-more { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-top: 14px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--p-line-2); background: #fff; font: 700 14.5px/1 var(--p-display); color: var(--p-navy); cursor: pointer; transition: border-color .2s, background-color .2s; }
.oxx .oxf-more:hover { border-color: var(--p-navy-3); background: var(--p-soft); }
.oxx .oxf-more:focus-visible { outline: 2px solid var(--p-navy-3); outline-offset: 2px; }
.oxx .oxf-more[hidden] { display: none; }

/* Serviciile: rânduri (numele, descrierea, CAS / prețul, săgeata), nu carduri; două coloane pe ecranele mari. */
.oxx .oxf-search { position: relative; display: flex; align-items: center; max-width: 440px; margin-bottom: 12px; }
.oxx .oxf-search svg { position: absolute; left: 14px; color: var(--p-mute); pointer-events: none; }
.oxx .oxf-search input { width: 100%; min-height: 48px; padding: 0 14px 0 44px; border-radius: var(--p-r-btn); border: 1px solid var(--p-line-2); background: #fff; font: 400 16px/1.2 var(--p-text); color: var(--p-ink); }
.oxx .oxf-search input:focus { outline: 2px solid var(--p-navy-3); outline-offset: 1px; }
.oxx .oxf-empty { margin: 0 0 12px; font: 500 15px/1.5 var(--p-text); color: var(--p-body); }
.oxx .oxf-empty[hidden] { display: none; }
.oxx .oxf-svcs, .oxx .oxf-arts { display: grid; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--p-line); }
.oxx :is(.oxf-svcs, .oxf-arts) > li { border-bottom: 1px solid var(--p-line); }
.oxx :is(.oxf-svcs, .oxf-arts, .oxf-prows) > li[hidden] { display: none; }
.oxx .oxf-svcs.is-folded > li:nth-child(n+7), .oxx .oxf-prows.is-folded > li:nth-child(n+7), .oxx .oxf-arts.is-folded > li:nth-child(n+4), .oxx .oxb-faq.is-folded > details:nth-of-type(n+7) { display: none; }
.oxx .oxf-svc { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 15px 6px; color: var(--p-ink); transition: background-color .2s; }
.oxx .oxf-svc:hover { background: var(--p-soft); }
.oxx .oxf-svc-txt { display: grid; gap: 3px; min-width: 0; }
.oxx .oxf-svc b { font: 700 16px/1.3 var(--p-display); letter-spacing: -.01em; transition: color .2s; }
.oxx .oxf-svc:hover b { color: var(--p-navy); }
.oxx .oxf-svc small { font: 400 14px/1.5 var(--p-text); color: var(--p-body); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.oxx .oxf-svc-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 5px; }
.oxx .oxf-svc-meta em { display: inline-flex; align-items: center; gap: 4px; padding: 4px 8px; border-radius: 6px; background: var(--p-soft); font: 700 12px/1 var(--p-text); font-style: normal; color: var(--p-body); white-space: nowrap; }
.oxx .oxf-svc-meta em.is-cas { background: var(--p-gold-soft); color: var(--p-gold-ink); }
.oxx .oxf-svc-meta em.is-price { background: var(--p-tint); color: var(--p-navy); }
.oxx .oxf-go { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--p-soft); color: var(--p-navy); transition: background-color .2s, color .2s; }
.oxx .oxf-svc:hover .oxf-go { background: var(--p-navy); color: #fff; }

/* Medicii: carduri cu fotografia (bandă derulabilă pe telefon, grilă pe ecranele mari); unul singur: cardul larg. */
.oxx .oxf-docs { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(150px, 44%); gap: 12px; margin: 0 calc(-1 * var(--p-gutter)); padding: 2px var(--p-gutter) 6px; list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--p-gutter); scrollbar-width: none; }
.oxx .oxf-docs::-webkit-scrollbar { display: none; }
.oxx .oxf-docs li { scroll-snap-align: start; }
.oxx .oxf-docs a { display: grid; gap: 4px; color: var(--p-ink); }
.oxx .oxf-doc-pic { display: grid; place-items: center; aspect-ratio: 4 / 5; margin-bottom: 8px; border-radius: 14px; overflow: hidden; background: var(--p-tint); color: var(--p-faint); }
.oxx .oxf-doc-pic img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; transition: transform .5s var(--p-ease); }
.oxx .oxf-docs a:hover .oxf-doc-pic img { transform: scale(1.03); }
.oxx .oxf-docs b { font: 700 15px/1.3 var(--p-display); letter-spacing: -.01em; }
.oxx .oxf-docs a:hover b { color: var(--p-navy); }
.oxx .oxf-docs small { font: 400 13px/1.45 var(--p-text); color: var(--p-body); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
/* Medicul paginii (unul singur): panou nuanțat, fotografia mare în stânga (pe telefon sus, decupată la față), apoi numele,
   titlul, prezentarea și competențele din profil, locațiile în care consultă și butoanele. */
.oxx .oxf-doc1 { display: grid; overflow: hidden; border-radius: 20px; background: var(--p-soft); border: 1px solid var(--p-line); }
.oxx .oxf-doc1-pic { position: relative; display: grid; place-items: center; height: 300px; overflow: hidden; background: var(--p-tint); color: var(--p-faint); }
.oxx .oxf-doc1-pic img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 16%; }
.oxx .oxf-doc1-txt { display: grid; gap: 8px; align-content: center; padding: 20px; }
.oxx.oxx .oxf-doc1 h3 { margin: 0; font: 800 clamp(1.3rem, 1.15rem + .6vw, 1.65rem)/1.2 var(--p-display); letter-spacing: -.024em; }
.oxx .oxf-doc1 h3 a { color: var(--p-ink); }
.oxx .oxf-doc1 h3 a:hover { color: var(--p-navy); }
.oxx .oxf-role { margin: 0; font: 600 15px/1.45 var(--p-text); color: var(--p-gold-ink); }
.oxx .oxf-doc1-bio { margin: 6px 0 0; max-width: 62ch; font: 400 15.5px/1.6 var(--p-text); color: var(--p-body); }
.oxx .oxf-doc1-skills { display: grid; gap: 8px; margin: 10px 0 0; padding: 14px 0 0; list-style: none; border-top: 1px solid var(--p-line); }
.oxx .oxf-doc1-skills li { position: relative; padding-left: 28px; font: 500 14.5px/1.45 var(--p-text); color: var(--p-ink); }
.oxx .oxf-doc1-skills li::before { content: ""; position: absolute; left: 0; top: .1em; width: 19px; height: 19px; border-radius: 50%; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231c398e' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 11px no-repeat; border: 1px solid var(--p-line); }
.oxx .oxf-doc1-where { display: flex; align-items: center; gap: 8px; margin: 8px 0 0; font: 500 14.5px/1.4 var(--p-text); color: var(--p-body); }
.oxx .oxf-doc1-where svg { flex: none; color: var(--p-navy-3); }
.oxx .oxf-doc1-where a { font-weight: 700; color: var(--p-ink); text-decoration: underline; text-decoration-color: var(--p-line-2); text-underline-offset: 3px; }
.oxx .oxf-doc1-where a:hover { color: var(--p-navy); text-decoration-color: currentColor; }
.oxx .oxf-doc1-cta { display: grid; gap: 10px; margin-top: 14px; }
.oxx .oxf-doc1-cta .oxp-btn { width: 100%; }

/* Tarifele: rânduri cu linii fine (denumirea, prețul aliniat la dreapta); mai multe liste: două coloane pe desktop. */
.oxx .oxf-prices { display: grid; gap: 26px; }
.oxx.oxx .oxf-plist h3 { margin: 0 0 8px; font: 700 16px/1.3 var(--p-display); letter-spacing: -.01em; color: var(--p-ink); }
.oxx .oxf-prows { display: grid; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--p-line); }
.oxx .oxf-prows li { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; padding: 12px 2px; border-bottom: 1px solid var(--p-line); }
.oxx .oxf-prows span { flex: 1 1 auto; min-width: 0; font: 400 15px/1.45 var(--p-text); color: var(--p-ink); overflow-wrap: anywhere; }
/* Prețul: pe un rând când e scurt („250 lei”); unul lung („Altele decât cele din tariful de bază”) se rupe, aliniat la dreapta. */
.oxx .oxf-prows b { flex: none; font: 800 15.5px/1.3 var(--p-display); color: var(--p-ink); text-align: right; white-space: nowrap; }
.oxx .oxf-prows b.is-long { flex: 0 1 auto; max-width: 46%; white-space: normal; }
.oxx .oxf-pnote { margin: 12px 0 0; max-width: 70ch; font: 400 14px/1.55 var(--p-text); color: var(--p-mute); }
.oxx .oxf-pnote.is-callout { display: flex; gap: 12px; align-items: flex-start; margin: 0; padding: 16px 18px; border-radius: var(--p-r-card); background: var(--p-soft); border: 1px solid var(--p-line); font-size: 15px; color: var(--p-body); }
.oxx .oxf-pnote.is-callout svg { flex: none; margin-top: 2px; color: var(--p-navy-3); }
.oxx .oxf-pnote a { font-weight: 600; color: var(--p-navy); text-decoration: underline; text-underline-offset: 3px; }
.oxx .oxf-pfoot { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin-top: 14px; }
.oxx .oxf-pfoot .oxf-pnote { margin: 0; }

/* „Despre”: textul pe lățimea de lectură; pe desktop cuprinsul alături (fix la derulare). */
.oxx .oxf-about { display: grid; gap: 24px; }
.oxx .oxf-read { min-width: 0; max-width: 46rem; }
.oxx .oxf-read.is-sections { max-width: none; }
.oxx .oxf-fold { --oxb-fold: 620px; --oxf-target: 520px; }
.oxx .oxf-fold.is-sections { --oxb-fold: 1100px; --oxf-target: 640px; }
.oxx .oxf-prose { max-width: none; }
.oxx.oxx .oxf-prose h2 { clear: both; margin: 1.7em 0 .55em; font: 800 clamp(1.25rem, 1.12rem + .55vw, 1.5rem)/1.25 var(--p-display); letter-spacing: -.02em; color: var(--p-ink); scroll-margin-top: calc(var(--p-header-h) + 76px); }
.oxx.oxx .oxf-prose h3 { clear: both; margin: 1.5em 0 .45em; font: 700 18px/1.3 var(--p-display); color: var(--p-ink); scroll-margin-top: calc(var(--p-header-h) + 76px); }
.oxx.oxx .oxf-prose :is(h4, h5, h6) { margin: 1.3em 0 .4em; font: 700 16px/1.35 var(--p-display); color: var(--p-ink); }
.oxx .oxf-prose > :first-child { margin-top: 0; }
.oxx .oxb-prose .oxf-lead-p { margin: 0 0 18px; font: 400 17.5px/1.6 var(--p-text); color: var(--p-ink); }
@media (min-width: 1024px) { .oxx .oxb-prose .oxf-lead-p { font-size: 18.5px; } }
.oxx .oxb-prose .oxf-tagline { margin: 1.2em 0; }
.oxx .oxb-prose .oxf-tagline strong { font: 700 16.5px/1.45 var(--p-display); color: var(--p-navy); }
.oxx .oxb-prose ul.oxf-checks { display: grid; gap: 8px; margin: 16px 0 20px; padding: 0; list-style: none; }
.oxx .oxb-prose ul.oxf-checks > li { position: relative; margin: 0; padding: 0 0 0 30px; font: 500 15.5px/1.55 var(--p-text); color: var(--p-ink); }
.oxx .oxb-prose ul.oxf-checks > li::before { content: ""; position: absolute; left: 0; top: .2em; width: 20px; height: 20px; border-radius: 50%; background: var(--p-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231c398e' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 11px no-repeat; }
.oxx .oxb-prose ul.oxf-checks a { font-weight: 600; }
.oxx .oxb-prose .oxf-linkcard { margin: 16px 0 0; }
.oxx .oxb-prose .oxf-linkcard a { display: inline-flex; align-items: center; gap: 10px; min-height: 46px; padding: 10px 16px; border-radius: 12px; border: 1px solid var(--p-line-2); background: #fff; font: 700 15px/1.3 var(--p-display); color: var(--p-navy); text-decoration: none; transition: border-color .2s; }
.oxx .oxb-prose .oxf-linkcard a::after { content: ""; width: 16px; height: 16px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231c398e' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; }
.oxx .oxb-prose .oxf-linkcard a:hover { border-color: var(--p-navy-3); }
/* Tabelele din text (de exemplu programul unui medic): rânduri cu linii fine, prima coloană îngroșată. */
.oxx .oxf-prose table { width: 100%; max-width: 520px; margin: 14px 0 22px; border-collapse: collapse; font: 400 15px/1.45 var(--p-text); }
.oxx .oxf-prose :is(th, td) { padding: 10px 12px 10px 0; border-bottom: 1px solid var(--p-line); text-align: left; vertical-align: top; }
.oxx .oxf-prose th { font: 700 11.5px/1.2 var(--p-display); letter-spacing: .08em; text-transform: uppercase; color: var(--p-mute); }
.oxx .oxf-prose td:first-child { font-weight: 600; color: var(--p-ink); }
.oxx .oxf-cards { display: grid; gap: 10px; margin-top: 18px; }
.oxx .oxf-card-p { padding: 16px 18px; border-radius: 12px; background: var(--p-soft); border: 1px solid var(--p-line); }
.oxx .oxb-prose .oxf-card-p p { margin: 0; font-size: 15px; line-height: 1.6; color: var(--p-ink); }
/* Imaginile din text: cele late pe toată lățimea textului (cel mult cât un ecran de laptop); cele înalte și pătrate,
   pe telefon decupate la o înălțime rezonabilă (fața sus), pe desktop lângă text, întregi. */
.oxx .oxf-fig { margin: 20px 0; }
.oxx .oxf-fig img { display: block; width: 100%; height: auto; border-radius: var(--p-r-card); background: var(--p-tint); }
.oxx .oxf-fig.is-wide img { max-height: 460px; object-fit: cover; }
.oxx .oxf-fig:is(.is-tall, .is-square) img { max-height: 380px; object-fit: cover; object-position: 50% 18%; }
.oxx .oxf-toc { display: none; }
/* Secțiunile de text ale unei pagini cu secțiuni, în „Despre”: fără benzi și fără marginile lor, despărțite de spațiu. */
.oxx.oxx .oxf-sec section.oxh { padding-block: 0; }
.oxx .oxf-sec .oxp-wrap { max-width: none; padding-inline: 0; }
.oxx .oxf-sec .oxb-band { background: none; }
.oxx .oxf-read.is-sections > section + section { margin-top: 36px; }
.oxx .oxf-read.is-sections .oxb-prose { max-width: 46rem; }
.oxx .oxf-read.is-sections .oxh-head { margin-bottom: 16px; }
.oxx.oxx .oxf-read.is-sections .oxh-head > h2, .oxx.oxx .oxf-read.is-sections .oxb-split > h2 { font-size: clamp(1.25rem, 1.12rem + .55vw, 1.5rem); scroll-margin-top: calc(var(--p-header-h) + 76px); }
.oxx .oxf-read.is-sections .oxb-split { grid-template-columns: minmax(0, 1fr); gap: 10px; }

/* Locațiile: nota Google (din Brain) deasupra cardurilor. */
.oxx .oxf-rating { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: -4px 0 16px; padding: 0; list-style: none; }
.oxx .oxf-rating li { display: inline-flex; align-items: center; gap: 6px; }
.oxx .oxf-rating svg { color: #f2a900; fill: currentColor; }
.oxx .oxf-rating b { font: 800 15px/1 var(--p-display); color: var(--p-ink); }
.oxx .oxf-rating span { font: 500 13.5px/1.3 var(--p-text); color: var(--p-body); }
.oxx .oxf-locs { display: grid; gap: 12px; }
/* Întrebările pe toată lățimea: de la 4 întrebări, două coloane pe desktop, fiecare cu întrebările ei. */
.oxx .oxf-sec .oxb-faq { max-width: none; }
.oxx .oxf-faq-col { display: grid; gap: var(--u-gap, 10px); align-content: start; min-width: 0; }
.oxx .oxf-sec .oxb-places { margin-top: 20px; }

/* Clipurile: cele late câte două pe rând, cele verticale câte trei (pe telefon, câte unul). */
.oxx .oxf-vids { display: grid; gap: 22px; align-items: start; }
.oxx .oxf-vids + .oxf-vids { margin-top: 22px; }
.oxx .oxf-vid { min-width: 0; }
.oxx .oxf-vid-k { margin: 0 0 8px; font: 700 13px/1.35 var(--p-display); color: var(--p-gold-ink); }
.oxx .oxf-vids.is-tall .oxb-video video { max-height: 72vh; }

/* Articolele: rânduri cu data, titlul și începutul. */
.oxx .oxf-arts a { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 15px 6px; color: var(--p-ink); transition: background-color .2s; }
.oxx .oxf-arts a:hover { background: var(--p-soft); }
.oxx .oxf-art-txt { display: grid; gap: 3px; min-width: 0; }
.oxx .oxf-art-txt small { font: 600 12.5px/1.3 var(--p-text); color: var(--p-mute); }
.oxx .oxf-art-txt b { font: 700 16px/1.35 var(--p-display); }
.oxx .oxf-arts a:hover b { color: var(--p-navy); }
.oxx .oxf-art-txt span { font: 400 14px/1.5 var(--p-text); color: var(--p-body); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.oxx .oxf-arts a > svg { flex: none; color: var(--p-navy-3); }

/* Formularul de programare al paginii: pe lățimea paginii, fără banda lui. */
.oxx .oxf-sec.is-form { scroll-margin-top: calc(var(--p-header-h) + 66px); }
/* Panoul formularului: nuanțat în diagonală, cu chenar fin; formularul pe un card alb cu umbră ușoară; în stânga, pe
   desktop, textul și caseta cu rândurile fișei (cine consultă, WhatsApp, programul de azi). */
.oxx .oxf-sec.is-form .oxb-form-box { background: linear-gradient(140deg, var(--p-tint) 0%, var(--p-soft) 62%, #fff 100%); border: 1px solid var(--p-line); }
.oxx .oxf-sec.is-form .oxb-form { border: 1px solid var(--p-line); border-radius: 18px; box-shadow: 0 1px 2px rgb(15 23 42 / .04), 0 24px 48px -32px rgb(28 57 142 / .35); }
.oxx .oxf-sec.is-form .oxb-submit { min-height: 50px; padding-inline: 22px; }
/* Sub textul formularului, pe desktop: butonul WhatsApp (pe telefon e în bara de jos a site-ului). */
.oxx .oxf-form-alt { display: none; }
.oxx .oxf-wa-btn svg { color: #1f9d55; }

/* Banda „Alte specialități” / „Alte servicii”: pastile pe un fundal deschis. */
.oxx .oxf-others { padding-block: calc(var(--u-sec, 28px) * .9); background: var(--p-soft); border-top: 1px solid var(--p-line); }
.oxx .oxf-others-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px 20px; flex-wrap: wrap; margin-bottom: 16px; }
.oxx.oxx .oxf-others-head h2 { margin: 0; font: 800 clamp(1.15rem, 1.05rem + .5vw, 1.4rem)/1.2 var(--p-display); letter-spacing: -.02em; color: var(--p-ink); }
/* Pe telefon pastilele stau pe un singur rând glisant (nu un zid de linkuri); pe ecranele mari, pe mai multe rânduri. */
.oxx .oxf-others ul { display: flex; gap: 8px; margin: 0 calc(-1 * var(--p-gutter)); padding: 2px var(--p-gutter) 4px; list-style: none; overflow-x: auto; scrollbar-width: none; }
.oxx .oxf-others ul::-webkit-scrollbar { display: none; }
.oxx .oxf-others li { flex: none; }
.oxx .oxf-others li a { white-space: nowrap; display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px; border-radius: 999px; background: #fff; border: 1px solid var(--p-line); font: 600 14px/1.25 var(--p-display); color: var(--p-ink); transition: border-color .2s, color .2s; }
.oxx .oxf-others li a:hover { border-color: var(--p-navy-3); color: var(--p-navy); }
.oxx .oxf-others li a svg { flex: none; color: var(--p-navy-3); }
.oxx .oxf-others-head .oxp-link { font-size: 14.5px; }
/* Banda finală nu se lipește de banda cu pastile. */
.oxx.oxx .oxf-others + :is(.oxh-final, .oxb-reviews) { padding-top: calc(var(--u-sec, 28px) * .9); }

@media (min-width: 640px) {
  .oxx .oxf-cta { display: flex; flex-wrap: wrap; }
  .oxx .oxf-cta .oxp-btn { width: auto; }
  .oxx .oxf-docs { grid-auto-columns: minmax(170px, 30%); }
  .oxx .oxf-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .oxx .oxb-prose ul.oxf-checks.is-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
  .oxx .oxf-vids.is-wide { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .oxx .oxf-vids.is-tall { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .oxx .oxf-locs { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
  .oxx .oxf-doc1-skills { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
  .oxx .oxf-doc1-cta { display: flex; flex-wrap: wrap; }
  .oxx .oxf-faq-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px; align-items: start; }
  .oxx .oxf-doc1-cta .oxp-btn { width: auto; }
}
@media (min-width: 768px) {
  .oxx .oxf-svcs { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; border-top: 0; }
  .oxx .oxf-svcs > li:nth-child(-n+2) { border-top: 1px solid var(--p-line); }
  .oxx .oxf-svcs:has(> li:only-child) { grid-template-columns: minmax(0, 1fr); }
  .oxx .oxf-others ul { flex-wrap: wrap; margin: 0; padding: 0; overflow: visible; }
  .oxx .oxf-svcs.is-folded > li:nth-child(n+7) { display: none; }
  .oxx .oxf-docs { grid-auto-flow: row; grid-template-columns: repeat(auto-fill, minmax(168px, 1fr)); margin: 0; padding: 0; overflow: visible; }
  .oxx .oxf-prices.is-multi { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 40px; align-items: start; }
  .oxx .oxf-vids.is-tall { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .oxx .oxf-doc1 { grid-template-columns: 260px minmax(0, 1fr); }
  .oxx .oxf-doc1-pic { height: auto; min-height: 360px; }
  .oxx .oxf-doc1-txt { padding: 28px 32px; }
  .oxx .oxf-fig:is(.is-tall, .is-square) { float: right; width: 260px; margin: 6px 0 18px 32px; }
  .oxx .oxf-fig:is(.is-tall, .is-square) img { max-height: none; }
}
@media (min-width: 1024px) {
  .oxx .oxf-hero { padding: 26px 0 52px; }
  .oxx .oxf-hero-in { grid-template-columns: minmax(0, 1fr) 460px; gap: 64px; align-items: center; }
  .oxx .oxf-tel { display: inline-flex; }
  .oxx .oxf-row { min-height: 78px; padding: 16px 20px; }
  /* Pe desktop bara secțiunilor rămâne sub antetul site-ului, cu butonul de programare; secțiunea curentă e subliniată. */
  .oxx .oxf-nav { position: sticky; top: var(--p-header-h); z-index: 30; background: rgb(255 255 255 / .94); -webkit-backdrop-filter: saturate(160%) blur(12px); backdrop-filter: saturate(160%) blur(12px); }
  .oxx .oxf-nav ul { gap: 4px; margin: 0; padding: 0; }
  .oxx .oxf-nav a:not(.oxp-btn) { min-height: 58px; padding: 0 14px; border: 0; border-radius: 0; font-size: 15px; }
  .oxx .oxf-nav a:not(.oxp-btn)[aria-current]::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: -1px; height: 3px; border-radius: 3px 3px 0 0; background: var(--p-navy); }
  .oxx .oxf-nav a:not(.oxp-btn)[aria-current] { color: var(--p-navy); }
  .oxx .oxf-nav-cta { display: inline-flex; flex: none; }
  .oxx .oxf-sec, .oxx .oxf-anchor, .oxx .oxf-sec.is-form { scroll-margin-top: calc(var(--p-header-h) + 70px); }
  .oxx .oxf-svc { padding: 16px 10px; }
  .oxx .oxf-svc small { -webkit-line-clamp: 1; }
  .oxx .oxf-about.has-toc { grid-template-columns: minmax(0, 1fr) 260px; gap: 64px; align-items: start; }
  .oxx .oxf-sec.is-form .oxb-form-box { grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: 56px; padding: 48px; }
  .oxx .oxf-form-alt { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
  .oxx .oxf-toc { display: grid; gap: 10px; position: sticky; top: calc(var(--p-header-h) + 84px); padding-left: 18px; border-left: 1px solid var(--p-line); }
  .oxx .oxf-toc p { margin: 0; font: 700 11px/1.2 var(--p-display); letter-spacing: .09em; text-transform: uppercase; color: var(--p-mute); }
  .oxx .oxf-toc ol { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
  .oxx .oxf-toc a { position: relative; display: block; padding: 6px 0; font: 500 14px/1.4 var(--p-text); color: var(--p-body); transition: color .2s; }
  .oxx .oxf-toc a:hover { color: var(--p-navy); }
  .oxx .oxf-toc a[aria-current] { color: var(--p-navy); font-weight: 700; }
  .oxx .oxf-toc a[aria-current]::before { content: ""; position: absolute; left: -19px; top: 6px; bottom: 6px; width: 2px; border-radius: 2px; background: var(--p-navy); }
  .oxx .oxf-fold { --oxb-fold: 560px; --oxf-target: 560px; }
  .oxx .oxf-fold.is-sections { --oxb-fold: 900px; --oxf-target: 900px; }
  .oxx .oxf-doc1 { grid-template-columns: 340px minmax(0, 1fr); }
  .oxx .oxf-doc1-pic { height: auto; min-height: 420px; }
  .oxx .oxf-doc1-txt { padding: 36px 44px; gap: 10px; }
  .oxx .oxf-docs { grid-template-columns: repeat(auto-fill, minmax(176px, 1fr)); gap: 18px; }
}

/* ============ Directorul specialităților (/specialitati/, home-premium.mjs specialtiesGrid) ============
   Căutarea și filtrele (lipite sub antetul site-ului pe ecranele mari), apoi câte un rând pe specialitate: numele și
   reperele în stânga, serviciile ca linkuri pe coloane în dreapta; pe telefon unul sub altul. */
.oxx .oxdir-sec { padding-top: 8px; }
.oxx .oxdir-tools { display: grid; gap: 12px; padding: 14px; margin-bottom: 18px; border-radius: var(--p-r-panel); background: var(--p-soft); border: 1px solid var(--p-line); }
.oxx .oxdir-q { position: relative; display: flex; align-items: center; }
.oxx .oxdir-q svg { position: absolute; left: 16px; color: var(--p-navy-3); pointer-events: none; }
.oxx .oxdir-q input { width: 100%; min-height: 54px; padding: 0 16px 0 50px; border-radius: 12px; border: 1px solid var(--p-line-2); background: #fff; font: 500 16.5px/1.2 var(--p-text); color: var(--p-ink); }
.oxx .oxdir-q input::placeholder { color: var(--p-mute); }
.oxx .oxdir-q input:focus { outline: 2px solid var(--p-navy-3); outline-offset: 1px; }
.oxx .oxdir-filters { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.oxx .oxdir-filters [role="group"] { display: flex; flex-wrap: wrap; gap: 6px; }
.oxx .oxdir-filters button { min-height: 36px; padding: 6px 13px; border-radius: 999px; border: 1px solid var(--p-line-2); background: #fff; font: 600 13.5px/1 var(--p-text); color: var(--p-body); cursor: pointer; }
.oxx .oxdir-filters button:hover { border-color: var(--p-navy-3); color: var(--p-navy); }
.oxx .oxdir-filters button[aria-pressed="true"] { background: var(--p-navy); border-color: var(--p-navy); color: #fff; }
.oxx .oxdir-filters button:focus-visible { outline: 2px solid var(--p-navy-3); outline-offset: 2px; }
.oxx .oxdir-count { margin: 0; min-height: 1em; font: 600 13.5px/1.3 var(--p-text); color: var(--p-mute); }
.oxx .oxdir-count:empty { display: none; }
.oxx .oxdir:not([data-dir-ready]) .oxdir-filters { display: none; }

.oxx .oxdir-list { display: grid; margin: 0; padding: 0; list-style: none; border-radius: var(--p-r-panel); background: #fff; border: 1px solid var(--p-line); overflow: hidden; }
.oxx .oxdir-item { display: grid; gap: 12px; padding: 18px 16px; }
.oxx .oxdir-item + .oxdir-item { border-top: 1px solid var(--p-line); }
.oxx .oxdir-item[hidden], .oxx .oxdir-svcs li[hidden] { display: none; }
.oxx .oxdir-spec { display: grid; gap: 10px; align-content: start; }
.oxx .oxdir-name { display: flex; align-items: flex-start; gap: 12px; color: var(--p-ink); }
.oxx .oxdir-name > span:last-child { display: grid; gap: 3px; min-width: 0; }
.oxx .oxdir-name h2 { margin: 0; font: 700 18px/1.25 var(--p-display); letter-spacing: -.015em; color: var(--p-ink); }
.oxx .oxdir-name:hover h2 { color: var(--p-navy); text-decoration: underline; text-underline-offset: 3px; }
.oxx .oxdir-name small { font: 400 14px/1.5 var(--p-text); color: var(--p-body); }
.oxx .oxdir-ic { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--p-tint); color: var(--p-navy); }
.oxx .oxdir-meta { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 0 56px; padding: 0; list-style: none; }
.oxx .oxdir-meta li { display: inline-flex; align-items: center; gap: 5px; padding: 4px 9px; border-radius: 999px; background: var(--p-soft); font: 600 12.5px/1.2 var(--p-text); color: var(--p-body); }
.oxx .oxdir-meta li.is-cas { background: var(--p-gold-soft); color: var(--p-gold-ink); }
.oxx .oxdir-meta svg { color: currentColor; }
.oxx .oxdir-body { display: grid; gap: 10px; align-content: start; }
.oxx .oxdir-svcs { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.oxx .oxdir-svcs a { display: block; padding: 8px 10px; border-radius: 8px; font: 500 15px/1.35 var(--p-text); color: var(--p-ink); }
.oxx .oxdir-svcs a:hover { background: var(--p-soft); color: var(--p-navy); }
.oxx .oxdir-none { margin: 0; font: 400 14.5px/1.5 var(--p-text); color: var(--p-mute); }
.oxx .oxdir-all { justify-self: start; display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; font: 700 14px/1.3 var(--p-display); color: var(--p-navy); }
.oxx .oxdir-empty { display: grid; gap: 8px; justify-items: start; margin-top: 16px; padding: 22px; border-radius: var(--p-r-panel); background: #fff; border: 1px dashed var(--p-line-2); }
.oxx .oxdir-empty[hidden] { display: none; }
.oxx .oxdir-empty b { font: 700 17px/1.3 var(--p-display); color: var(--p-ink); }
.oxx .oxdir-empty p { margin: 0; font: 400 15px/1.55 var(--p-text); color: var(--p-body); }
.oxx .oxdir-empty-cta { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.oxx .oxdir-help { display: grid; gap: 10px; margin: 18px 0 0; padding: 0; list-style: none; }
.oxx .oxdir-help a { display: flex; align-items: center; gap: 14px; height: 100%; padding: 16px; border-radius: var(--p-r-card); background: var(--p-soft); border: 1px solid var(--p-line); color: var(--p-ink); transition: border-color .2s; }
.oxx .oxdir-help a:hover { border-color: var(--p-line-2); }
.oxx .oxdir-help a > span:nth-child(2) { flex: 1; display: grid; gap: 3px; }
.oxx .oxdir-help b { font: 700 16px/1.3 var(--p-display); }
.oxx .oxdir-help small { font: 400 14px/1.5 var(--p-text); color: var(--p-body); }
.oxx .oxdir-help .oxdir-ic { background: #fff; }
.oxx .oxdir-help a > svg { flex: none; color: var(--p-navy-3); }
@media (min-width: 640px) {
  .oxx .oxdir-svcs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 12px; }
  .oxx .oxdir-help { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .oxx .oxdir-tools { position: sticky; top: calc(var(--p-header-h) + 10px); z-index: 20; grid-template-columns: minmax(0, 1fr) auto; align-items: center; padding: 12px 14px; box-shadow: var(--p-shadow-sm); }
  .oxx .oxdir-filters { justify-content: flex-end; }
  .oxx .oxdir-count { grid-column: 1 / -1; }
  .oxx .oxdir-item { grid-template-columns: minmax(0, 380px) minmax(0, 1fr); gap: 32px; padding: 22px 24px; }
  .oxx .oxdir-svcs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* Antetul paginii /specialitati/ deasupra directorului: compact, cu cifrele pe un rând (căutarea vine imediat). */
.oxx.oxx .oxdir .oxdir-name h2 { margin: 0; font: 700 18px/1.25 var(--p-display); letter-spacing: -.015em; color: var(--p-ink); }
.oxx.oxx .oxdir .oxdir-name:hover h2 { color: var(--p-navy); }
.oxx.oxx .oxh-phero:has(~ .oxdir-sec) { padding-block: 20px 8px; }
.oxx.oxx .oxh-phero:has(~ .oxdir-sec) .oxh-pfacts { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 0; padding: 0; border: 0; background: none; box-shadow: none; }
.oxx.oxx .oxh-phero:has(~ .oxdir-sec) .oxh-pfacts li { display: inline-flex; align-items: baseline; gap: 6px; padding: 8px 14px; border: 1px solid var(--p-line); border-radius: 999px; background: #fff; }
.oxx.oxx .oxh-phero:has(~ .oxdir-sec) .oxh-pfacts b { font: 800 17px/1 var(--p-display); color: var(--p-ink); }
.oxx.oxx .oxh-phero:has(~ .oxdir-sec) .oxh-pfacts span { font: 500 14px/1 var(--p-text); color: var(--p-body); }
@media (min-width: 1024px) {
  .oxx.oxx .oxh-phero:has(~ .oxdir-sec) { padding-block: 32px 8px; }
  .oxx.oxx .oxh-phero:has(~ .oxdir-sec) .oxh-phero-in { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; }
  .oxx.oxx .oxh-phero:has(~ .oxdir-sec) .oxh-pfacts { margin: 0; flex-wrap: nowrap; }
}

/* ============ Grilele de carduri: aranjarea echilibrată (fără un card singur pe ultimul rând, fără coloane înguste) ============
   În coloana de text a fișei („Despre”, ~850px), cardurile (traseele, alegerea traseului, listele pe coloane) stau pe
   cel mult două coloane (trei, când sunt exact trei); un card rămas singur ia tot rândul, cu iconița lângă titlu. Pe
   paginile late, traseele de 5, 6 sau 9 carduri stau pe trei coloane (la 5, ultimele două se lățesc și umplu rândul).
   Grilele de medici cu mai multe rânduri își centrează ultimul rând; grupurile de trei (clipuri, liste de tarife,
   galerii) stau pe trei coloane. */
@media (min-width: 768px) {
  .oxx .oxf-read :is(.oxb-cards, .oxb-choices, .oxb-colgrid) { grid-auto-flow: row; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; margin-inline: 0; padding-inline: 0; }
  .oxx .oxf-read :is(.oxb-cards, .oxb-choices, .oxb-colgrid):has(> :nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .oxx .oxf-read :is(.oxb-cards, .oxb-choices, .oxb-colgrid):has(> :only-child) { grid-template-columns: minmax(0, 1fr); }
  .oxx .oxf-read :is(.oxb-cards, .oxb-choices, .oxb-colgrid):not(:has(> :nth-child(3):last-child)) > :last-child:nth-child(odd) { grid-column: 1 / -1; }
  /* Cardul lat: iconița lângă titlu, textul pe lățimea de lectură. */
  .oxx .oxf-read .oxb-cards > :last-child:nth-child(odd) .oxb-top { flex-direction: row; align-items: center; gap: 14px; }
  .oxx .oxf-read :is(.oxb-cards, .oxb-choices, .oxb-colgrid) > :last-child:nth-child(odd) p { max-width: 68ch; }
  .oxx .oxn-gallery:has(> :nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  /* Traseele pe paginile late: 5, 6 sau 9 carduri pe trei coloane (bază de șase; la 5, ultimele două iau câte trei). */
  .oxx .oxb-cards:not(.oxf-read .oxb-cards):is(:has(> :nth-child(5):last-child), :has(> :nth-child(6):last-child), :has(> :nth-child(9):last-child)) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .oxx .oxb-cards:not(.oxf-read .oxb-cards):is(:has(> :nth-child(5):last-child), :has(> :nth-child(6):last-child), :has(> :nth-child(9):last-child)) > * { grid-column: span 2; }
  .oxx .oxb-cards:not(.oxf-read .oxb-cards):has(> :nth-child(5):last-child) > :nth-last-child(-n+2) { grid-column: span 3; }
  /* Medicii: de la cinci, rânduri de câte patru, ultimul centrat (aceeași mărime pentru toate cardurile). */
  .oxx :is(.oxh-team-grid, .oxn-team .oxh-team-grid):has(> :nth-child(5)) { display: flex; flex-wrap: wrap; justify-content: center; gap: 20px; }
  .oxx :is(.oxh-team-grid, .oxn-team .oxh-team-grid):has(> :nth-child(5)) > * { flex: 0 0 calc((100% - 60px) / 4); min-width: 0; }
  /* Fotografia rămâne în proporția cardului (4:3), oricât de înaltă e poza originală. */
  .oxx .oxh-team-grid .oxh-doc figure { flex: none; min-height: 0; overflow: hidden; }
  .oxx .oxh-team-grid .oxh-doc figure img { display: block; }
  .oxx .oxd-grid { display: flex; flex-wrap: wrap; justify-content: center; }
  .oxx .oxd-grid > li { flex: 0 0 calc((100% - 60px) / 4); min-width: 0; }
  .oxx .oxd-grid > li > * { width: 100%; }
  /* Medicii din fișă: de la șapte, patru (sau cinci) pe rând, nu șase plus unul. */
  .oxx .oxf-docs:is(:has(> :nth-child(7):last-child), :has(> :nth-child(8):last-child)) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .oxx .oxf-docs:is(:has(> :nth-child(9):last-child), :has(> :nth-child(10):last-child)) { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  /* Grupurile de trei. */
  .oxx :is(.oxf-vids.is-wide, .oxf-prices.is-multi):has(> :nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ============ Fișa pe telefon: antetul compact, bara secțiunilor cu semn că rândul continuă ============
   Titlul mai mic, fără butonul „Sună” (e în bara de jos a site-ului), fișa cu rânduri joase (nota pe un rând). Pastilele
   secțiunilor și ale celorlalte servicii se estompează la marginea din dreapta: se vede că rândul continuă. */
@media (max-width: 639px) {
  .oxx .oxf-hero { padding: 10px 0 20px; }
  .oxx .oxf-hero-in { gap: 18px; }
  .oxx .oxf-kind { gap: 8px; font-size: 11.5px; }
  .oxx .oxf-ic { width: 30px; height: 30px; border-radius: 9px; }
  .oxx.oxx .oxf-hero h1 { margin-top: 12px; font-size: 1.75rem; line-height: 1.1; letter-spacing: -.03em; }
  .oxx.oxx .oxf-hero h1 .oxf-sub { margin-top: 6px; font-size: .64em; }
  .oxx .oxf-lead { margin-top: 10px; font-size: 16px; line-height: 1.55; }
  .oxx .oxf-cta { margin-top: 16px; }
  .oxx .oxf-cta a[href^="tel:"] { display: none; }
  .oxx .oxf-row { min-height: 0; gap: 12px; padding: 11px 14px; }
  .oxx .oxf-row-ic, .oxx .oxf-pics.is-one .oxf-pic { width: 36px; height: 36px; border-radius: 10px; }
  .oxx .oxf-pics.is-one { width: 36px; }
  .oxx .oxf-pics:not(.is-one) .oxf-pic { width: 34px; height: 34px; }
  .oxx .oxf-row-t b { font-size: 15.5px; }
  .oxx .oxf-row-t em { font-size: 12.5px; -webkit-line-clamp: 1; }
  .oxx .oxf-row-go { width: 26px; height: 26px; }
  .oxx .oxf-where li { min-height: 30px; }
  .oxx .oxf-where a { font-size: 14.5px; }
}
@media (max-width: 1023px) {
  .oxx .oxf-nav ul, .oxx .oxf-others ul { padding-right: calc(var(--p-gutter) + 28px); -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 44px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 44px), transparent); }
  .oxx .oxf-nav ul { gap: 6px; padding-block: 10px; }
  .oxx .oxf-nav a:not(.oxp-btn) { min-height: 34px; padding: 0 13px; font-size: 13.5px; }
}

/* ============ Telefonul: liste fără glisare laterală, medicii ca rânduri ============
   Pe telefon nimeni nu ghicește că o bandă de carduri se glisează lateral: traseele (listele editoriale) stau unul sub
   altul (pe tabletă câte două), cu înălțimea după text. Medicii (pagina /doctori/, secțiunea Medici a fișei, echipele
   din pagini) sunt rânduri: fotografia, numele, rolul, săgeata — se citesc dintr-o privire. */
@media (max-width: 1023px) {
  .oxx .oxb-cards { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: minmax(0, 1fr); overflow: visible; margin-inline: 0; padding-inline: 0; }
  .oxx .oxb-card { height: auto; }
  .oxx .oxb-card .oxb-top { flex-direction: row; align-items: center; gap: 12px; }
  .oxx .oxf-nav a:not(.oxp-btn)[aria-current] { background: var(--p-navy); border-color: var(--p-navy); color: #fff; }
  .oxx .oxd-filter { padding-right: calc(var(--p-gutter) + 28px); -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 44px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 44px), transparent); }
}
@media (min-width: 640px) and (max-width: 1023px) {
  .oxx .oxb-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 639px) {
  .oxx .oxd-grid { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .oxx .oxd-card, .oxx :is(.oxb-docs, .oxn-team) .oxh-team-grid .oxh-doc { position: relative; flex-direction: row; align-items: center; gap: 14px; padding: 10px 40px 10px 10px; border-radius: 16px; }
  .oxx .oxd-card figure, .oxx :is(.oxb-docs, .oxn-team) .oxh-team-grid .oxh-doc figure { flex: none; width: 84px; height: 84px; aspect-ratio: auto; border-radius: 12px; overflow: hidden; }
  .oxx .oxd-card figure img, .oxx :is(.oxb-docs, .oxn-team) .oxh-team-grid .oxh-doc figure img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 25%; }
  .oxx .oxd-card-body, .oxx :is(.oxb-docs, .oxn-team) .oxh-team-grid .oxh-doc-body { padding: 0; gap: 3px; }
  .oxx .oxd-card-body b, .oxx :is(.oxb-docs, .oxn-team) .oxh-team-grid .oxh-doc b { font-size: 16px; }
  .oxx .oxd-card-body > span:not(.oxp-link), .oxx :is(.oxb-docs, .oxn-team) .oxh-team-grid .oxh-doc span { font-size: 13.5px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .oxx .oxd-card-body .oxp-link { display: none; }
  .oxx .oxd-card::after, .oxx :is(.oxb-docs, .oxn-team) .oxh-team-grid .oxh-doc::after, .oxx .oxf-docs a::after { content: ""; position: absolute; right: 14px; top: 50%; width: 18px; height: 18px; margin-top: -9px; background: var(--p-navy-3); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E") center / contain no-repeat; }
  .oxx :is(.oxb-docs, .oxn-team) .oxh-team-grid { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: minmax(0, 1fr); gap: 10px; overflow: visible; margin-inline: 0; padding-inline: 0; }
  /* Medicii din fișă: aceleași rânduri. */
  .oxx .oxf-docs { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: minmax(0, 1fr); gap: 10px; margin: 0; padding: 0; overflow: visible; }
  .oxx .oxf-docs a { position: relative; display: grid; grid-template-columns: 76px minmax(0, 1fr); grid-template-rows: auto auto; align-content: center; gap: 2px 14px; padding: 10px 40px 10px 10px; border-radius: 16px; border: 1px solid var(--p-line); background: #fff; }
  .oxx .oxf-docs .oxf-doc-pic { grid-row: 1 / 3; width: 76px; height: 76px; aspect-ratio: auto; margin: 0; border-radius: 12px; }
  .oxx .oxf-docs b { align-self: end; font-size: 16px; }
  .oxx .oxf-docs small { align-self: start; }
}
