/*
 * drbarbu-theme - foaie de stil unica (consolidata).
 * 1) Baza temei (fost style.css: tokeni, reset, tipografie, layout)
 * 2) Componente + designul Stomatologie (fost stomatologie.css la final,
 *    ca sa pastreze ordinea din cascada: style -> main -> stomatologie).
 * style.css pastreaza doar antetul temei cerut de WordPress.
 */

/* ==========================================================================
   1. BAZA TEMEI (migrata din style.css)
   ========================================================================== */
/* ==========================================================================
   0. CSS Custom Properties (design tokens) - placeholder, se actualizeaza
      dupa aprobarea design-ului (culori, fonturi, spatieri)
   ========================================================================== */
:root {
	--color-primary: #1a56db;
	--color-primary-dark: #123a94;
	--color-secondary: #0f172a;
	--color-text: #1f2937;
	--color-text-muted: #6b7280;
	--color-bg: #ffffff;
	--color-bg-alt: #f8fafc;
	--color-border: #e5e7eb;

	--font-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--font-heading: var(--font-base);

	--container-width: 1200px;
	--space-1: 0.5rem;
	--space-2: 1rem;
	--space-3: 1.5rem;
	--space-4: 2rem;
	--space-6: 3rem;
	--space-8: 4rem;

	--radius: 8px;
	--transition: 0.2s ease-in-out;
}

/* ==========================================================================
   1. Reset minimal (nu folosim un full reset framework ca sa pastram CSS-ul mic)
   ========================================================================== */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	font-family: var(--font-base);
	color: var(--color-text);
	background: var(--color-bg);
	line-height: 1.6;
	font-size: var(--fs-body, 16px);
}

img,
svg,
video {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: var(--color-primary);
	text-decoration: none;
}

a:hover,
a:focus {
	text-decoration: underline;
}

/* Focus vizibil pentru tastatura (WCAG 2.4.7). Se aplica doar la navigarea cu
   Tab, nu si la click (:focus-visible), pe toate elementele interactive -
   linkuri, butoane, campuri, controale carusel/video/playlist. Outline de 3px
   in culoarea accentului, cu un halou alb ca sa fie vizibil si pe fundal inchis. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible,
[data-vplay]:focus-visible,
[data-pl-item]:focus-visible,
.dc-cta-btn:focus-visible,
.dc-btn:focus-visible {
	outline: 3px solid var(--accent, #0E6B5E);
	outline-offset: 2px;
	box-shadow: 0 0 0 2px #fff;
	border-radius: 6px;
}

/* Pe benzile inchise (hero/CTA/footer) haloul verde s-ar pierde - il facem alb. */
.dc-darkband :focus-visible, .dc-df-hero :focus-visible, .dc-header :focus-visible, .dc-footer :focus-visible, .dc-fab :focus-visible, .dc-modal :focus-visible {
	outline-color: #fff;
	box-shadow: 0 0 0 2px rgba(0, 0, 0, .45);
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-heading);
	line-height: 1.25;
	margin: 0 0 var(--space-2);
	color: var(--color-secondary);
}

p {
	margin: 0 0 var(--space-2);
}

ul, ol {
	margin: 0 0 var(--space-2);
	padding-left: 1.25em;
}

button, input, textarea, select {
	font-family: inherit;
	font-size: inherit;
}

/* Accessibility: skip link + screen-reader text (impact si asupra SEO/UX) */
.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100000;
	background: var(--color-secondary);
	color: #fff;
	padding: var(--space-1) var(--space-2);
	border-radius: 0 0 var(--radius) 0;
}

.skip-link:focus {
	left: 0;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

/* ==========================================================================
   2. Layout helpers
   ========================================================================== */
.container {
	width: 100%;
	max-width: var(--container-width);
	margin-inline: auto;
	padding-inline: var(--space-3);
}

.site {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.site-content {
	flex: 1 0 auto;
}

/*
 * Stiluri componente. Impartit separat de style.css ca sa poata fi
 * minificat/versionat independent (style.css ramane "header-ul" temei).
 * Mobile-first, fara framework CSS extern (mentine payload-ul mic).
 */

/* ==========================================================================
   Buttons
   ========================================================================== */
.button {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	padding: 0.75em 1.5em;
	border-radius: var(--radius);
	font-weight: 600;
	border: 2px solid transparent;
	transition: background-color var(--transition), color var(--transition), border-color var(--transition);
	cursor: pointer;
}

.button--primary {
	background: var(--color-primary);
	color: #fff;
}

.button--primary:hover,
.button--primary:focus {
	background: var(--color-primary-dark);
	color: #fff;
	text-decoration: none;
}

/* ==========================================================================
   Header
   ========================================================================== */
.site-header {
	border-bottom: 1px solid var(--color-border);
	background: var(--color-bg);
	position: sticky;
	top: 0;
	z-index: 50;
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-3);
	padding-block: var(--space-2);
}

.site-branding__link {
	font-weight: 700;
	font-size: 1.25rem;
	color: var(--color-secondary);
}

.menu-toggle {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 4px;
	width: 40px;
	height: 40px;
	background: none;
	border: none;
	cursor: pointer;
}

.menu-toggle__bar {
	display: block;
	height: 2px;
	background: var(--color-secondary);
	border-radius: 2px;
}

.primary-navigation {
	display: none;
	width: 100%;
}

.primary-navigation.is-open {
	display: block;
}

.primary-menu {
	list-style: none;
	margin: 0;
	padding: var(--space-2) 0 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
}

.primary-menu a {
	color: var(--color-text);
	font-weight: 500;
}

@media (min-width: 768px) {
	.menu-toggle {
		display: none;
	}

	.primary-navigation {
		display: block;
		width: auto;
	}

	.primary-menu {
		flex-direction: row;
		padding-top: 0;
	}
}

/* ==========================================================================
   Hero
   ========================================================================== */
.hero {
	padding-block: var(--space-8);
	background: var(--color-bg-alt);
}

.hero__inner {
	display: grid;
	gap: var(--space-4);
	align-items: center;
}

.hero__title {
	font-size: clamp(1.75rem, 4vw, 2.75rem);
}

.hero__subtitle {
	font-size: 1.125rem;
	color: var(--color-text-muted);
	max-width: 60ch;
}

@media (min-width: 768px) {
	.hero__inner {
		grid-template-columns: 1.1fr 0.9fr;
	}
}

/* ==========================================================================
   Services teaser / cards
   ========================================================================== */
.services-teaser {
	padding-block: var(--space-8);
}

.services-teaser__title {
	margin-bottom: var(--space-4);
	text-align: center;
}

.services-teaser__grid {
	display: grid;
	gap: var(--space-4);
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	margin-block: var(--space-4);
}

.service-card {
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	padding: var(--space-3);
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
}

.service-card__media img {
	border-radius: var(--radius);
	margin-bottom: var(--space-2);
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

.service-card__title {
	margin-bottom: 0;
	font-size: 1.15rem;
}

.service-card__excerpt {
	color: var(--color-text-muted);
	flex: 1;
}

.service-card__link {
	font-weight: 600;
}

/* ==========================================================================
   CTA banner
   ========================================================================== */
.cta-banner {
	padding-block: var(--space-6);
	background: var(--color-secondary);
	color: #fff;
}

.cta-banner__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-3);
}

.cta-banner__title {
	color: #fff;
	margin-bottom: var(--space-1);
}

.cta-banner p {
	margin-bottom: 0;
	color: rgba(255, 255, 255, 0.8);
}

/* ==========================================================================
   Contact section
   ========================================================================== */
.contact-section {
	padding-block: var(--space-8);
}

.contact-section__inner {
	display: grid;
	gap: var(--space-4);
}

@media (min-width: 768px) {
	.contact-section__inner {
		grid-template-columns: 0.8fr 1.2fr;
	}
}

.contact-section__form input[type="text"],
.contact-section__form input[type="email"],
.contact-section__form input[type="tel"],
.contact-section__form textarea {
	width: 100%;
	padding: 0.75em;
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	margin-bottom: var(--space-2);
}

.contact-section__form textarea {
	min-height: 140px;
}

/* ==========================================================================
   Breadcrumbs
   ========================================================================== */
.breadcrumbs {
	padding-block: var(--space-2);
	font-size: 0.875rem;
	color: var(--color-text-muted);
}

.breadcrumbs__list {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 0.4em;
	margin: 0;
	padding: 0;
}

.breadcrumbs__item:not(:last-child)::after {
	content: "/";
	margin-left: 0.4em;
	color: var(--color-text-muted);
}

/* ==========================================================================
   Content pages / blog / 404
   ========================================================================== */
.page-title {
	margin-block: var(--space-4) var(--space-3);
}



.page-content__body,
.single-post__body {
	max-width: 75ch;
}

.page-content__media img,
.single-post__media img {
	border-radius: var(--radius);
	margin-bottom: var(--space-3);
}

.post-list {
	display: grid;
	gap: var(--space-4);
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	padding-block: var(--space-3) var(--space-6);
}

.post-list__media img {
	border-radius: var(--radius);
	aspect-ratio: 3 / 2;
	object-fit: cover;
	margin-bottom: var(--space-1);
}

.single-post__meta {
	color: var(--color-text-muted);
	font-size: 0.9rem;
}

.error-404 {
	padding-block: var(--space-8);
	text-align: center;
}

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer {
	background: var(--color-bg-alt);
	border-top: 1px solid var(--color-border);
	margin-top: auto;
}

.site-footer__inner {
	display: grid;
	gap: var(--space-4);
	padding-block: var(--space-6);
}

.site-footer__brand {
	font-size: 1.15rem;
}

.site-footer__tagline {
	color: var(--color-text-muted);
}

.footer-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
}

.site-footer__bottom {
	border-top: 1px solid var(--color-border);
	padding-block: var(--space-2);
	font-size: 0.85rem;
	color: var(--color-text-muted);
}

.site-footer__bottom p {
	margin-bottom: 0;
}

@media (min-width: 768px) {
	.site-footer__inner {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* ---- Buton reutilizabil ---- */
.dc-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-family: inherit; font-size: 18px; font-weight: 600; text-decoration: none; border: 0; border-radius: calc(var(--radius, 16px) - 4px); cursor: pointer; transition: transform .2s, box-shadow .2s, background .2s, border-color .2s; }
.dc-btn--primary { background: var(--btn-primary-bg, var(--accent, #0E6B5E)); color: #fff; }
.dc-btn--primary:hover { transform: translateY(-2px); }
.dc-header-cta { padding: 13px 30px; font-size: 16px; border-radius: 15px;}
.dc-header-cta:hover { box-shadow: 0 12px 26px -10px color-mix(in srgb, var(--accent, #0E6B5E) 65%, transparent); }

/* Linkurile designului nu se subliniaza la hover (anuleaza regula globala
   a:hover din style.css, care altfel castiga fata de clase). */
.dc-page a:hover, .dc-page a:focus,
.dc-header a:hover, .dc-header a:focus,
.dc-footer a:hover, .dc-footer a:focus,
.dc-fab__btn:hover, .dc-fab__btn:focus { text-decoration: none; }

/* ---- Reveal la scroll (echivalentul animatiei dvUp inline) ---- */
.dc-reveal { animation: dvUp .8s both; animation-timeline: view(); animation-range: entry 0% cover 22%; }

/* ---- Header ---- */
.dc-header { position: sticky; top: 0; z-index: 60; background: transparent; border-bottom: 1px solid rgba(20, 32, 28, .08); }
/* Fundalul si blur-ul stau pe un strat propriu, nu pe <header>: un element cu
   backdrop-filter devine reper pentru position:fixed din interiorul lui, iar
   atunci panoul meniului mobil nu ar mai putea acoperi tot ecranul. */
.dc-header::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--header-bg, rgba(246, 243, 236, .8)); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
/* Bara de navigare tine toata latimea ecranului, cu 15px de jur imprejur -
   spre deosebire de continutul paginilor, care ramane in .dc-shell (1470px). */
.dc-header__inner { position: relative; width: 100%; padding: 15px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.dc-logo { display: flex; align-items: center; gap: 11px; text-decoration: none; color: var(--text, #14201C); }
.dc-logo__mark { width: 36px; height: 36px; border-radius: 11px; background: var(--accent, #0E6B5E); display: flex; align-items: center; justify-content: center; color: #fff; font-family: var(--hfont, 'Newsreader', Georgia, serif); font-size: 20px; font-weight: 600; box-shadow: 0 6px 16px -6px color-mix(in srgb, var(--accent, #0E6B5E) 70%, transparent); }
.dc-logo__img { max-height: 42px; width: auto; display: block; }
.dc-logo__name { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-size: 21px; font-weight: 600; letter-spacing: -.015em; }
.dc-nav { display: flex; align-items: center; gap: 34px; font-size: var(--header-font-size, 17px); font-weight: var(--header-font-weight, 500); }
.dc-nav__link { text-decoration: none; color: var(--header-font-color, #3a463f); white-space: nowrap; transition: color .2s; }
.dc-nav__link:hover { color: var(--accent, #0E6B5E); }
.dc-nav__link.is-active { color: var(--accent, #0E6B5E); font-weight: 600; }

/* ---- Submeniu in header (un singur nivel) ----
   Parintele si sageata stau intr-un grup pozitionat; lista coboara din el la
   hover sau cand focusul intra in grup, deci e accesibila si din tastatura.
   Nu tine de JS: doar :hover / :focus-within. */
.dc-nav__item--has-sub { position: relative; display: flex; align-items: center; gap: 5px; }
/* Sageata sta langa link, nu in el, deci nu mosteneste culoarea acestuia:
   i-o dam pe aceeasi ca a linkurilor din header (Setări Temă → Header). */
.dc-nav__caret { display: inline-flex; color: var(--header-font-color, #3a463f); transition: transform .2s, color .2s; pointer-events: none; }
.dc-nav__item--has-sub:hover .dc-nav__caret,
.dc-nav__item--has-sub:focus-within .dc-nav__caret { transform: rotate(180deg); color: var(--accent, #0E6B5E); }
.dc-nav__item--has-sub:hover .dc-nav__link--parent,
.dc-nav__item--has-sub:focus-within .dc-nav__link--parent { color: var(--accent, #0E6B5E); }

.dc-nav__sub {
	position: absolute;
	top: 100%;
	left: -14px;
	min-width: 220px;
	/* Panza de sub parinte: lipita de el, ca mouse-ul sa nu treaca prin gol. */
	margin-top: 10px;
	padding: 8px;
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid rgba(20, 32, 28, .1);
	border-radius: calc(var(--radius, 16px) - 4px);
	box-shadow: 0 22px 46px -24px rgba(20, 32, 28, .4);

	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity .18s ease, transform .18s ease, visibility 0s linear .18s;
}
/* Puntea invizibila dintre parinte si lista: fara ea, meniul s-ar inchide cand
   mouse-ul traverseaza spatiul de 10px. */
.dc-nav__sub::before { content: ''; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
.dc-nav__item--has-sub:hover .dc-nav__sub,
.dc-nav__item--has-sub:focus-within .dc-nav__sub {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	transition: opacity .18s ease, transform .18s ease, visibility 0s;
}
.dc-nav__sublink { display: block; padding: 11px 14px; border-radius: calc(var(--radius, 16px) - 8px); font-size: 16px; font-weight: 500; line-height: 1.3; color: var(--text, #14201C); text-decoration: none; white-space: nowrap; transition: background .18s, color .18s; }
.dc-nav__sublink:hover,
.dc-nav__sublink:focus-visible { background: color-mix(in srgb, var(--accent, #0E6B5E) 8%, #fff); color: var(--accent, #0E6B5E); }
.dc-nav__sublink.is-active { color: var(--accent, #0E6B5E); font-weight: 600; }

/* ---- Footer (grila are responsive-ul in stomatologie.css: .dc-footer-grid) ---- */
.dc-footer { border-top: 1px solid rgba(255, 255, 255, .09); background: var(--footer-bg, #0F1815); color: #fff; }
.dc-footer-grid { max-width: 1470px; margin: 0 auto; padding: 64px 15px; display: grid; grid-template-columns: 1.8fr 1fr 1fr 1.3fr; gap: 40px 72px; }
/* Coloanele de legaturi se ascund cand n-au nici titlu, nici linkuri (vezi
   site-footer.php). Cu mai putine coloane, latimile se reasaza. */
.dc-footer-grid--3 { grid-template-columns: 2fr 1fr 1fr; }
.dc-footer-grid--2 { grid-template-columns: 1.8fr 1.3fr; }
.dc-footer__brand { display: flex; align-items: center; gap: 11px; margin-bottom: 18px; }
.dc-footer__mark { width: 36px; height: 36px; border-radius: 11px; background: var(--accent, #0E6B5E); display: flex; align-items: center; justify-content: center; color: #fff; font-family: var(--hfont, 'Newsreader', Georgia, serif); font-size: 20px; font-weight: 600; }
.dc-footer__logo-img { max-height: 42px; width: auto; display: block; }
.dc-footer__name { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-size: 21px; font-weight: 600; letter-spacing: -.015em; }
.dc-footer__desc { font-size: 14.5px; line-height: 1.66; color: rgba(255, 255, 255, .6); margin: 0 0 18px; max-width: 38ch; }
.dc-footer__socials { display: flex; align-items: center; gap: 10px; margin-top: 40px; }
.dc-footer__social { width: 44px; height: 44px; border-radius: 15px; background: rgba(255, 255, 255, .06); display: flex; align-items: center; justify-content: center; color: rgba(255, 255, 255, .8); text-decoration: none; transition: background .2s; }
.dc-footer__social:hover { background: rgba(255, 255, 255, .14); }
.dc-footer__col-title { font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: rgba(255, 255, 255, .45); margin-bottom: 16px; }
.dc-footer__links { display: flex; flex-direction: column; gap: 11px; font-size: 14.5px; }
.dc-footer__link { color: rgba(255, 255, 255, .72); text-decoration: none; transition: color .2s; }
.dc-footer__link:hover { color: #fff; }
.dc-footer__contact { display: flex; flex-direction: column; gap: 13px; font-size: 14.5px; color: rgba(255, 255, 255, .72); }
.dc-footer__contact-row { display: flex; align-items: flex-start; gap: 10px; }
.dc-footer__contact-link { display: flex; gap: 10px; color: rgba(255, 255, 255, .72); text-decoration: none; transition: color .2s; }
.dc-footer__contact-link:hover { color: #fff; }
.dc-footer__ico { flex: none; }
.dc-footer__ico--top { margin-top: 4px; }
.dc-footer__contact-lines { display: flex; flex-direction: column; gap: 3px; }
.dc-footer__badges { display: flex; align-items: center; gap: 14px; margin-top: 18px; }
.dc-footer__badge { display: inline-flex; opacity: .85; transition: opacity .2s; }
.dc-footer__badge:hover { opacity: 1; }
.dc-footer__badge img { display: block; height: auto; width: auto; max-width: 100%; }
.dc-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .08); }
.dc-footer__bottom-inner { max-width: 1470px; margin: 0 auto; padding: 22px 15px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.dc-footer__copy { font-size: 13px; color: rgba(255, 255, 255, .45); }
.dc-footer__legal { display: flex; gap: 22px; font-size: 13px; }
.dc-footer__legal-link { color: rgba(255, 255, 255, .5); text-decoration: none; transition: color .2s; }
.dc-footer__legal-link:hover { color: #fff; }

/* ---- Bara fixa Suna acum / WhatsApp (responsive .dc-fab a in stomatologie.css) ---- */
.dc-fab { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 120; display: flex; flex-direction: row; gap: 12px; }
.dc-fab__btn { display: flex; align-items: center; justify-content: center; min-width: 160px; gap: 9px; padding: 12px 20px; border-radius: 999px; text-decoration: none; font-size: 16px; font-weight: 600; color: #fff; transition: transform .2s; }
.dc-fab__btn:hover { transform: translateY(-2px); }
.dc-fab__btn--call { background: var(--accent, #0E6B5E); box-shadow: 0 12px 28px -10px color-mix(in srgb, var(--accent, #0E6B5E) 70%, transparent); }
.dc-fab__btn--wa { background: var(--wa-color, #25D366); box-shadow: 0 12px 28px -10px rgba(37, 211, 102, .6); }
.dc-fab__ico { flex: none; }

/* ---- Hero pagini interioare (simplu: fundal alb, text centrat, spatiere redusa) ----
   Folosit de: Contact, Cazuri clinice, Testimoniale, Preturi, Servicii, pagina de
   serviciu si paginile legale. Home si "Dantura fixa" au hero-uri proprii. */
.dc-simple-hero { background: #fff; border-bottom: 1px solid #e5e3db; }
.dc-simple-hero__inner { max-width: 1440px; margin: 0 auto; padding: clamp(40px, 5vw, 60px) 15px clamp(28px, 3.5vw, 40px); display: flex; flex-direction: column; align-items: center; text-align: center; }
.dc-simple-hero__title { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: var(--fs-display, 52px); line-height: 1.06; letter-spacing: -.025em; margin: 0 0 14px; color: var(--text, #14201C); max-width: 30ch; text-wrap: balance; }
.dc-simple-hero__title em { font-style: italic; color: var(--accent, #0E6B5E); }
.dc-simple-hero__text { font-size: clamp(16px, 1.5vw, 20px); line-height: 1.6; color: #57635d; margin: 0; max-width: 70ch; text-wrap: pretty; }
.dc-simple-hero__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 28px; }
.dc-simple-hero__updated { margin-top: 24px; display: inline-flex; align-items: center; gap: 9px; font-size: 13px; color: #57635d; border: 1px solid #e5e3db; border-radius: 999px; padding: 8px 16px; }

.dc-crumb { display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 12px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; color: var(--accent, #0E6B5E); margin-bottom: 16px; }
.dc-crumb a { color: inherit; text-decoration: none; }
.dc-crumb a:hover { color: color-mix(in srgb, var(--accent, #0E6B5E) 75%, #000); }
.dc-crumb__sep { opacity: .5; }
.dc-crumb__current { color: #57635d;display: -webkit-box;
    -webkit-line-clamp: 1; line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden; text-align: left;}

/* ---- Cap de sectiune (titlu + subtitlu centrat, latime max 1024px) ---- */
.dc-section-head { text-align: center; max-width: 1300px; margin: 0 auto 38px; }
.dc-section-head__title { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: var(--fs-h2, 48px); line-height: 1.3; letter-spacing: -.025em; margin: 0 0 14px; }
.dc-section-head__text { font-size: var(--fs-body-lg, 20px); line-height: 1.6; color: #57635d; margin: 0; }
/* ---- <em> = bucata din titlu scoasa in evidenta cu accentul ----
   Conventie pentru tot site-ul: in orice titlu de sectiune (si in subtitlul de
   sub el) <em> coloreaza fragmentul, nu doar il inclina. Sablonurile trec aceste
   campuri prin demo_site_kses_inline(), deci <em> scris in ACF ajunge marcaj.
   Titlurile de pe fundal inchis primesc un accent deschis, ca sa ramana lizibil
   - aceeasi valoare ca la titlurile hero (.dc-df-hero__title em). */
.dc-section-head em,
.dc-ty-contact__title em,
.dc-reviews__title em,
.dc-welcome__title em,
.dc-df-after__title em { font-style: italic; color: var(--accent, #0E6B5E); }

.dc-cform__title em,
.dc-contact__title em,
.dc-thankyou__title em,
.dc-cta-step__title em,
.dc-cta-banner__title em { font-style: italic; color: color-mix(in srgb, var(--accent, #0E6B5E) 62%, #fff); }
/* Bannerul CTA sta pe o caseta chiar in culoarea de accent, deci un <em> tot din
   accent s-ar pierde in fundal: aici fragmentul evidentiat trage spre alb. */
.dc-cta-banner__box .dc-cta-banner__title em { color: color-mix(in srgb, #fff 84%, var(--accent, #0E6B5E)); }

/* ---- Sectiune: Date de contact ---- */
.dc-contact-details { background: #fff; }
.dc-contact-details__inner { max-width: 1470px; margin: 0 auto; padding: 68px 15px 0; }
.dc-contact-details__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; }
.dc-contact-card { background: var(--dc-card-bg, #faf7f0); border: 1px solid rgba(20, 32, 28, .1); border-radius: var(--radius, 16px); padding: 30px 26px; display: flex; flex-direction: column; gap: 14px; transition: transform .25s cubic-bezier(.16, .8, .24, 1), box-shadow .25s; }
.dc-contact-card:hover { transform: translateY(-5px); box-shadow: 0 22px 44px -22px rgba(20, 32, 28, .26); }
.dc-contact-card__icon { width: 52px; height: 52px; border-radius: 13px; background: color-mix(in srgb, var(--accent, #0E6B5E) 10%, #fff); display: flex; align-items: center; justify-content: center; color: var(--accent, #0E6B5E); flex: none; }
.dc-contact-card__label { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--accent, #0E6B5E); }
.dc-contact-card__lines { display: flex; flex-direction: column; gap: 4px; }
.dc-contact-card__line { font-size:18px; line-height: 1.5; color: var(--text, #14201C); font-weight: 500; }
.dc-contact-card__line-link { text-decoration: none; font-size: 18px; }
.dc-contact-card__line-link .dc-contact-card__line { font-size: 18px; }
.dc-contact-card__line-link:hover .dc-contact-card__line,
.dc-contact-card__line-link:hover { color: var(--accent, #0E6B5E); }
a.dc-contact-card__line-link.dc-contact-card__line:hover { color: var(--accent, #0E6B5E); }

/* ---- Sectiune: Retele sociale ---- */
.dc-contact-socials { background: #fff; }
.dc-contact-socials__inner { max-width: 1470px; margin: 0 auto; padding: var(--section-spacing, 110px) 15px; }
.dc-contact-socials .dc-section-head__title { font-size: clamp(26px, 3vw, 40px); line-height: 1.06; margin: 0 0 12px; }
.dc-socials { display: flex; flex-wrap: wrap; justify-content: center; gap: 18px; }
.dc-social { display: flex; align-items: center; gap: 14px; background: #fff; border: 1px solid rgba(20, 32, 28, .1); border-radius: var(--radius, 16px); padding: 18px 26px; text-decoration: none; width: 20%; transition: transform .25s, box-shadow .25s, border-color .25s; }
.dc-social:hover { transform: translateY(-4px); box-shadow: 0 20px 40px -22px rgba(20, 32, 28, .3); border-color: color-mix(in srgb, var(--accent, #0E6B5E) 40%, transparent); }
.dc-social__icon { width: 46px; height: 46px; border-radius: 12px; color: #fff; display: flex; align-items: center; justify-content: center; flex: none; }
.dc-social__icon--facebook { background: #1877F2; }
.dc-social__icon--instagram { background: #E1306C; }
.dc-social__icon--tiktok { background: #111; }
.dc-social__icon--youtube { background: #FF0000; }
.dc-social__text { min-width: 0; }
.dc-social__name { display: block; font-size: 15.5px; font-weight: 600; color: var(--text, #14201C); }
.dc-social__handle { display: block; font-size: 13px; color: #57635d; margin-top: 2px; }

/* ---- Sectiune: Formular + harta ---- */
.dc-cform { background: #14201C; color: #fff; scroll-margin-top: 70px; }
.dc-cform__grid { max-width: 1470px; margin: 0 auto; padding: 80px 15px 80px; display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 56px; align-items: stretch; }
/* Fara harta, formularul nu se intinde pe toata latimea: ramane centrat. */
.dc-cform__grid--no-map { grid-template-columns: minmax(0, 720px); justify-content: center; }
@media (max-width: 960px) { .dc-cform__grid { grid-template-columns: 1fr; } }
.dc-cform__title { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: clamp(30px, 3.6vw, 48px); line-height: 1.04; letter-spacing: -.025em; margin: 0 0 14px; color: #fff; }
.dc-cform__text { font-size: 17px; line-height: 1.6; color: rgba(255, 255, 255, .72); margin: 0 0 32px; }
.dc-cform__map { border-radius: calc(var(--radius, 16px) + 6px); overflow: hidden; border: 1px solid rgba(255, 255, 255, .1); box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .5); min-height: 340px; }
.dc-cform__map iframe { width: 100%; height: 100%; min-height: 340px; border: 0; display: block; filter: grayscale(.2); }

/* ---- Card formular (reutilizat pe toate paginile cu formular) ---- */
.dc-form-card { background: var(--contact-form-bg, #F6F3EC); color: var(--text, #14201C); border-radius: calc(var(--radius, 16px) + 6px); padding: clamp(24px, 3vw, 36px); box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .6); }
.dc-form__note { font-size: 16px; color: #57635d; text-align: center; line-height: 1.5; margin-top: 14px; }

/* ---- Formularul Contact Form 7 (shortcode randat in .dc-form-card) ---- */
.dc-form-card .wpcf7-form { display: flex; flex-direction: column; gap: 16px; }
.dc-form-card .wpcf7-form p { margin: 0; }
.dc-form-card .wpcf7-form label { display: block; font-size: 13px; font-weight: 600; color: #3a463f; margin-bottom: 7px; }
.dc-form-card .wpcf7-form-control-wrap { display: block; }
.dc-form-card .wpcf7-form-control:not([type="submit"]) { width: 100%; padding: 16px 15px; background: #fff; border: 1px solid rgba(20, 32, 28, .14); border-radius: calc(var(--radius, 16px) - 6px); font-size: 15px; outline: none; transition: border-color .2s; font-family: inherit; }
.dc-form-card textarea.wpcf7-form-control { resize: vertical; }
.dc-form-card .wpcf7-form-control:not([type="submit"]):focus { border-color: var(--accent, #0E6B5E); outline: 2px solid var(--accent, #0E6B5E); outline-offset: 1px; }
.dc-form-card .wpcf7-not-valid-tip { font-size: 12.5px; color: #c0392b; margin-top: 6px; }
.dc-form-card .wpcf7-submit { margin-top: 6px; width: 100%; padding: 15px; background: var(--btn-primary-bg, var(--accent, #0E6B5E)); color: #fff; border: none; border-radius: calc(var(--radius, 16px) - 4px); font-size: 18px; font-weight: 600; cursor: pointer; transition: transform .2s, box-shadow .2s; font-family: inherit; }
.dc-form-card .wpcf7-submit:hover { transform: translateY(-2px); box-shadow: 0 16px 32px -12px color-mix(in srgb, var(--accent, #0E6B5E) 65%, transparent); }
.dc-form-card .wpcf7-spinner { margin-left: 10px; }
.dc-form-card .wpcf7-response-output { font-size: 13px; line-height: 1.5; border-radius: calc(var(--radius, 16px) - 8px); margin: 4px 0 0; padding: 10px 14px; border: 1px solid rgba(20, 32, 28, .14); }
.dc-form-card .wpcf7-form.sent .wpcf7-response-output { border-color: var(--accent, #0E6B5E); color: var(--accent, #0E6B5E); }
.dc-form-card .wpcf7-form.invalid .wpcf7-response-output,
.dc-form-card .wpcf7-form.unaccepted .wpcf7-response-output,
.dc-form-card .wpcf7-form.failed .wpcf7-response-output { border-color: #c0392b; color: #c0392b; }

.dc-ctaform__form .send_button {transform: translateY(-7px);}
/* ==========================================================================
   Pagina "MulÃˆâ€ºumim" (thank-you) - header/footer minimale, fara FAB.
   ========================================================================== */
@keyframes pop {
	0%   { transform: scale(.6); opacity: 0; }
	60%  { transform: scale(1.08); }
	100% { transform: scale(1); opacity: 1; }
}

/* Sectiune Thank-you */
.dc-thankyou { background: #14201C; color: #fff; position: relative; overflow: hidden; }
/* Ca la benzile inchise: implicit gradientul din design, dar se poate trimite
   alta valoare prin --dc-band-bg (imagine, culoare simpla sau alt gradient).
   Peste imagine se pune un strat intunecat, ca textul alb sa ramana lizibil. */
.dc-thankyou__bg { position: absolute; inset: 0; background: var(--dc-band-bg, linear-gradient(120deg, #0d2b25, #14201C 45%, #1c3b34)); background-size: cover; background-position: center; background-repeat: no-repeat; }
.dc-thankyou--photo .dc-thankyou__bg::after { content: ''; position: absolute; inset: 0; background: var(--dc-band-scrim, transparent); }
.dc-thankyou__stripes { position: absolute; inset: 0; background: repeating-linear-gradient(135deg, rgba(255, 255, 255, .03) 0 2px, transparent 2px 22px); }
.dc-thankyou__inner { position: relative; z-index: 2; max-width: 760px; margin: 0 auto; padding: clamp(72px, 9vw, 120px) 15px; display: flex; flex-direction: column; align-items: center; text-align: center; }
.dc-thankyou__check { animation: pop .6s both; width: 96px; height: 96px; border-radius: 50%; background: color-mix(in srgb, var(--accent, #0E6B5E) 22%, #14201C); border: 1px solid color-mix(in srgb, var(--accent, #0E6B5E) 45%, transparent); display: flex; align-items: center; justify-content: center; margin-bottom: 32px; }
.dc-thankyou__title { animation: dvUp .7s .1s both; font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: clamp(34px, 4.6vw, 58px); line-height: 1.05; letter-spacing: -.025em; margin: 0 0 20px; max-width: 16ch; color: #fff; }
.dc-thankyou__text { animation: dvUp .7s .18s both; font-size: clamp(16px, 1.3vw, 19px); line-height: 1.64; color: rgba(255, 255, 255, .78); margin: 0 0 40px; max-width: 52ch; }
.dc-thankyou__btn { animation: dvUp .7s .26s both; padding: 16px 30px; font-size: 18px; border-radius: calc(var(--radius, 16px) - 3px); }
.dc-thankyou__btn:hover { box-shadow: 0 16px 32px -12px color-mix(in srgb, var(--accent, #0E6B5E) 70%, transparent); }

/* Sectiune Contact + harta */
.dc-ty-contact { background: #F6F3EC; }
.dc-ty-contact__inner { max-width: 1470px; margin: 0 auto; padding: 72px 15px; display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 44px; align-items: stretch; }
/* Fara harta, cardurile nu se intind pe toata latimea: raman centrate. */
.dc-ty-contact__inner--no-map { grid-template-columns: minmax(0, 720px); justify-content: center; }
.dc-ty-contact__col { display: flex; flex-direction: column; justify-content: center; }
.dc-ty-contact__title { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: clamp(26px, 3vw, 40px); line-height: 1.08; letter-spacing: -.025em; margin: 0 0 26px; }
.dc-ty-contact__list { display: flex; flex-direction: column; gap: 16px; }
.dc-ty-contact-card { display: flex; align-items: flex-start; gap: 16px; background: #fff; border: 1px solid rgba(20, 32, 28, .1); border-radius: var(--radius, 16px); padding: 20px 22px; }
.dc-ty-contact-card__icon { width: 46px; height: 46px; border-radius: 12px; background: color-mix(in srgb, var(--accent, #0E6B5E) 10%, #fff); color: var(--accent, #0E6B5E); display: flex; align-items: center; justify-content: center; flex: none; }
.dc-ty-contact-card__body { min-width: 0; }
.dc-ty-contact-card__label { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--accent, #0E6B5E); margin-bottom: 6px; }
.dc-ty-contact-card__line { display: block; font-size: 15.5px; line-height: 1.5; color: var(--text, #14201C); font-weight: 500; }
/* Adresa / telefonul / emailul sunt linkuri; programul ramane text simplu. */
.dc-ty-contact-card__line-link { text-decoration: none; transition: color .2s; }
.dc-ty-contact-card__line-link:hover,
.dc-ty-contact-card__line-link:focus-visible { color: var(--accent, #0E6B5E); text-decoration: none; }
.dc-ty-contact__map { min-height: 380px; border-radius: calc(var(--radius, 16px) + 6px); overflow: hidden; border: 1px solid rgba(20, 32, 28, .1); box-shadow: 0 30px 60px -30px rgba(20, 32, 28, .4); }
.dc-ty-contact__map iframe { width: 100%; height: 100%; min-height: 380px; border: 0; display: block; filter: grayscale(.2); }

/* ==========================================================================
   Pagina "Cazuri clinice" (+ componente reutilizabile: card video, comparator)
   ========================================================================== */

/* Iframe generat de JS la redare (video grid / playlist). */
.dc-embed { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Card video reutilizabil (grile de testimoniale/media/cazuri).
   Fundalul scenelor video (__stage / __thumb / hero) e culoarea de accent: se
   vede doar cat se incarca thumbnail-ul si playerul, deci trebuie sa fie
   culoarea clinicii, nu un verde fix. Aceleasi reguli la .dc-playlist__stage,
   .dc-playlist__thumb si .dc-df-hero__video. */
.dc-vcard { display: flex; flex-direction: column; gap: 14px; }
.dc-vcard__stage { position: relative; aspect-ratio: 9/16; border-radius: var(--radius, 16px); overflow: hidden; background: var(--accent, #0E6B5E); box-shadow: 0 18px 40px -22px rgba(20, 32, 28, .4); }
.dc-vcard__play { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; cursor: pointer; background: transparent; display: flex; align-items: center; justify-content: center; padding: 0; }
.dc-vcard__thumb { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dc-vcard__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(9, 16, 14, .05), rgba(9, 16, 14, .55)); }
.dc-vcard__playbtn { position: relative; width: 62px; height: 62px; border-radius: 50%; background: rgba(255, 255, 255, .94); display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 26px -8px rgba(0, 0, 0, .5); transition: transform .2s, opacity .25s; }
.dc-vcard__play:hover .dc-vcard__playbtn { transform: scale(1.08); }

/* Preview la hover: iframe-ul (fara sonor) sta sub buton, iar thumbnail-ul si
   iconita de play se sting ca sa lase videoul vizibil. Butonul ramane deasupra,
   ca sa poata prelua click-ul care deschide lightbox-ul. */
.dc-vcard__play { z-index: 1; }
/* Videoul pornit in card: sta peste tot continutul si primeste click-urile
   (butoanele playerului YouTube), spre deosebire de preview-ul mut. */
.dc-vcard__player { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; z-index: 2; }
.dc-vcard.is-playing .dc-vcard__play { opacity: 0; pointer-events: none; }
.dc-vcard__thumb { transition: opacity .25s; }

.dc-vcard__meta { position: absolute; left: 16px; bottom: 14px; text-align: left; }
.dc-vcard__name { display: block; font-size: 17px; font-weight: 600; color: #fff; }
.dc-vcard__role { display: block; font-size: 12.5px; color: rgba(255, 255, 255, .72); margin-top: 2px; }

/* Varianta cu textul sub card ('layout' => 'below'): peste imagine ramane doar
   eticheta din colt si butonul de play, iar titlul sta dedesubt, pe fundalul
   sectiunii. Fara text suprapus, valul de intunecare poate fi uniform si mai slab. */
.dc-vcard--below .dc-vcard__scrim { background: linear-gradient(180deg, rgba(9, 16, 14, .26), rgba(9, 16, 14, .16)); }
.dc-vcard--below .dc-vcard__playbtn { width: 54px; height: 54px; }
.dc-vcard--below .dc-vcard__tag { position: absolute; top: 13px; left: 13px; max-width: calc(100% - 26px); padding: 6px 10px; border-radius: 9px; background: rgba(9, 16, 14, .62); color: #fff; font-size: 11.5px; font-weight: 600; line-height: 1.25; text-align: left; }
.dc-vcard--below .dc-vcard__caption { font-size: 15px; font-weight: 600; line-height: 1.4; color: var(--text, #14201C); }

/* Paginare grile video (butoanele sunt generate de stomatologie.js). */
.dc-vpages { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 9px; margin-top: 38px; }
/* Cu o singura pagina, JS-ul lasa bara goala - nu-i tinem nici marginea. */
.dc-vpages:empty { display: none; }
.dc-vpage { min-width: 44px; height: 44px; padding: 0 14px; border-radius: calc(var(--radius, 16px) - 6px); border: 1px solid rgba(20, 32, 28, .18); background: #fff; color: var(--text, #14201C); font-size: 15px; font-weight: 600; cursor: pointer; transition: transform .2s; font-family: inherit; }
.dc-vpage:hover { transform: translateY(-2px); }
.dc-vpage.is-active { border-color: var(--accent, #0E6B5E); background: var(--accent, #0E6B5E); color: #fff; }
/* "…" tine locul paginilor sarite: ingust, fara chenar si fara interactiune, ca
   sa nu para buton si ca bara sa ramana pe un rand si pe telefon. Selectorul e
   luat cu parinte inadins: regula .dc-vpage de la ecrane mici vine mai tarziu in
   fisier si altfel i-ar pune la loc latimea de buton. */
.dc-vpages .dc-vpage--gap { min-width: 0; padding: 0 2px; border: 0; background: none; cursor: default; color: #57635d; letter-spacing: .08em; display: inline-flex; align-items: center; }
.dc-vpages .dc-vpage--gap:hover { transform: none; }

/* Sectiune: grila video cazuri */
.dc-cazuri-video { background: #fff; }
/* In acest bloc titlul video (meta) e centrat, nu aliniat stanga-jos. */
.dc-cazuri-video .dc-vcard__meta { left: 0; right: 0; padding: 0 14px; }
.dc-cazuri-video__inner { max-width: 1470px; margin: 0 auto; padding: 68px 15px var(--section-spacing, 110px); }
/* Spatierea standard a temei. Regula de mai sus porneste de la 68px pentru
   pagina "Cazuri clinice", unde grila vine imediat sub hero; blocurile de pe
   paginile de ortodontie au antet propriu, deci le trebuie cei 110px. */
.orto-cazuri .dc-cazuri-video__inner,
.orto-video .dc-cazuri-video__inner,
.df-media .dc-cazuri-video__inner {padding: var(--section-spacing, 110px) 15px;}
.dc-vgrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
/* Mai putine carduri decat coloane: raman de latimea normala (cat un sfert de
   rand) si se aseaza centrat, in loc sa se lipeasca de marginea stanga.
   --dc-vgrid-count vine din sablon. Media query-urile de mai jos, cu aceeasi
   specificitate dar mai tarziu in fisier, readuc o coloana pe ecrane mici. */
.dc-vgrid--few { grid-template-columns: repeat(var(--dc-vgrid-count, 4), minmax(0, calc((100% - 3 * 22px) / 4))); justify-content: center; }
@media (max-width: 960px) { .dc-vgrid { grid-template-columns: repeat(1, minmax(0, 1fr)); gap: 8px; }.dc-vcard__stage {aspect-ratio: 9 / 16;} .dc-vcard__playbtn {width: 46px; height: 46px;}
.dc-vcard__name {font-size: 15px;}.dc-vcard__role {font-size: 11px;}.dc-vpages {margin-top: 30px; gap: 6px}.dc-vpage {min-width: 40px; height: 40px;
	font-size: 14px} }

/* Carusel orizontal de carduri video (pagina Testimoniale). Scroll nativ cu
   snap, bara de progres si sageti. Comportamentul video vine din [data-vgrid]. */
/* Tipuri de lucrari protetice: carduri cu imagine pe tot cardul si titlul +
   textul suprapuse jos, pe un gradient inchis. */
.dc-prosthetics { background: #fff; }
.dc-prosthetics__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 760px) { .dc-prosthetics__grid { grid-template-columns: 1fr; } }
.dc-prosthetics__card { position: relative; aspect-ratio: 4/3; border-radius: calc(var(--radius, 16px) + 2px); overflow: hidden; display: flex; align-items: flex-end; border: 1px solid rgba(20, 32, 28, .1); }
.dc-prosthetics__media { position: absolute; inset: 0; }
.dc-prosthetics__media img { width: 100%; height: 100%; object-fit: cover; }
.dc-prosthetics__overlay { position: relative; z-index: 1; width: 100%; padding: 30px 28px 32px; background: linear-gradient(to top, rgba(9, 16, 14, .94), rgba(9, 16, 14, .55) 52%, rgba(9, 16, 14, 0)); color: #fff; }
.dc-prosthetics__title { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: clamp(23px, 2.5vw, 30px); line-height: 1.12; letter-spacing: -.015em; margin: 0 0 10px; color: #fff; }
.dc-prosthetics__text { font-size: 14.5px; line-height: 1.6; color: rgba(255, 255, 255, .85); margin: 0; }

.dc-testim-scroller { background: #fff; }
.dc-scroller { position: relative; }
.dc-scroller__viewport { overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; -ms-overflow-style: none; scrollbar-width: none; }
.dc-scroller__viewport::-webkit-scrollbar { display: none; }
.dc-scroller__track { display: flex; gap: 22px; }
/* 3,5 carduri vizibile pe desktop (3 spatii intre ele scazute din latime). */
.dc-scroller__track > .dc-vcard { flex: 0 0 calc((100% - 3 * 22px) / 4); scroll-snap-align: start; }
@media (max-width: 900px) { .dc-scroller__track > .dc-vcard { flex-basis: calc((100% - 2 * 22px) / 2.5); } }
/* Pe mobil, un singur card pe ecran (fara "coltul" cardului urmator). */
/* Pe telefon ramane un card intreg plus o treime din urmatorul: bucata care se
   vede la margine arata ca lista continua si se poate trage. */
@media (max-width: 640px) { .dc-scroller__track > .dc-vcard { flex-basis: calc((100% - 1 * 22px) / 1.3); } }
.dc-testim-scroller .dc-vcard__role { color: color-mix(in srgb, var(--accent, #0E6B5E) 72%, #fff); }

.dc-scroller__bar { margin-top: 26px; height: 5px; border-radius: 999px; background: rgba(20, 32, 28, .1); overflow: hidden; }
.dc-scroller__thumb { height: 100%; width: 30%; border-radius: 999px; background: var(--accent, #0E6B5E); }

.dc-scroller__controls { display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: 20px; }
.dc-scroller__label { font-size: 14px; color: #57635d; }
.dc-scroller__arrow { flex: none; width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(20, 32, 28, .18); background: #fff; color: #14201C; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; transition: border-color .2s, background .2s, opacity .2s; }
.dc-scroller__arrow:hover { border-color: var(--accent, #0E6B5E); background: color-mix(in srgb, var(--accent, #0E6B5E) 6%, #fff); }
.dc-scroller__arrow:disabled { opacity: .35; cursor: default; }

/* Varianta "raft": antetul si sagetile pe acelasi rand, carduri verticale mai
   inguste (se vede si coltul urmatorului, ca sa se inteleaga ca lista continua). */
.dc-scroller__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 34px; }
.dc-scroller__head .dc-section-head { text-align: left; margin: 0; max-width: 820px; }
.dc-scroller__nav { display: flex; gap: 12px; flex: none; padding-bottom: 4px; }
.dc-scroller--shelf .dc-scroller__track { gap: 16px; }
.dc-scroller--shelf .dc-scroller__track > .dc-vcard { flex-basis: calc((100% - 4 * 16px) / 4.7); }
@media (max-width: 1200px) { .dc-scroller--shelf .dc-scroller__track > .dc-vcard { flex-basis: calc((100% - 4 * 16px) / 4.5); } }
@media (max-width: 900px) { .dc-scroller--shelf .dc-scroller__track > .dc-vcard { flex-basis: calc((100% - 3 * 16px) / 3.5); } }
@media (max-width: 700px) { .dc-scroller__head { margin-bottom: 26px; } .dc-scroller__nav { display: none; } }
@media (max-width: 640px) { .dc-scroller--shelf .dc-scroller__track > .dc-vcard { flex-basis: calc((100% - 1 * 16px) / 1.3); } .dc-vcard--below .dc-vcard__caption { font-size: 13.5px; } .dc-vcard--below .dc-vcard__playbtn { width: 46px; height: 46px; } }

/* Sectiune: comparatoare inainte/dupa (grila .ba-grid din fundatie) */
.dc-cazuri-ba { background: #F6F3EC; }
.dc-cazuri-ba__inner { max-width: 1470px; margin: 0 auto; padding: var(--section-spacing, 110px) 15px; }
/* Inainte/dupa static: cele doua imagini stivuite vertical, despartite de un
   divider cu linie punctata si o pastila cu sageata. Fara drag / interactiune. */
.dc-baview-item { display: flex; flex-direction: column; gap: 14px; }
.dc-baview { display: flex; flex-direction: column; background: #fff; border-radius: var(--radius, 16px); overflow: hidden; border: 1px solid rgba(20, 32, 28, .1); box-shadow: 0 22px 46px -24px rgba(20, 32, 28, .34); }
.dc-baview__pane { position: relative; aspect-ratio: 6/3; display: flex; align-items: flex-end; padding: 14px; }
.dc-baview__pane--before { background: linear-gradient(160deg, #b9b2a2, #a49d8d); }
.dc-baview__pane--after { background: linear-gradient(160deg, #eef4f1, #cfe1d8); }
.dc-baview__tag { font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; padding: 5px 10px; border-radius: 7px; color: rgba(255, 255, 255, .92); background: rgba(20, 32, 28, .35); }
.dc-baview__tag--after { color: var(--text, #14201C); background: rgba(255, 255, 255, .8); }
.dc-baview__divider { position: relative; height: 46px; background: #fff; display: flex; align-items: center; justify-content: center; }
.dc-baview__divider::before { content: ''; position: absolute; left: 20px; right: 20px; top: 50%; border-top: 2px dashed color-mix(in srgb, var(--accent, #0E6B5E) 35%, transparent); }
.dc-baview__badge { position: relative; width: 38px; height: 38px; border-radius: 50%; background: var(--accent, #0E6B5E); color: #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 20px -6px color-mix(in srgb, var(--accent, #0E6B5E) 70%, transparent); }
.dc-baview__caption { font-size: 16px; line-height: 1.55; color: #57635d; margin: 0; text-align: center; }

/* Varianta "colaj": un caz = o singura fotografie, care contine deja si situatia
   initiala, si rezultatul. Doua pe rand, cu etichetele peste imagine - stanga
   jos "Înainte", dreapta jos "După". Vezi cazuri-ba-colaj.php. */
/* align-items: start - colajele au proportii diferite, iar pe 'stretch' cardul
   se intinde cat cel mai inalt de pe rand: sub fotografie ramane o banda goala,
   iar etichetele, fiind prinse de marginea de jos a cardului, ies de pe poza. */
.dc-ba-colaj { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 24px; }
.dc-ba-colaj__item { position: relative; margin: 0; border-radius: var(--radius, 16px); overflow: hidden; border: 1px solid rgba(20, 32, 28, .1); background: #fff; box-shadow: 0 22px 46px -24px rgba(20, 32, 28, .34); }
/* Colajele pot avea proportii diferite; imaginea isi pastreaza inaltimea ei si
   nu e decupata, iar cardul se muleaza pe ea. */
.dc-ba-colaj__item .dc-media-img { height: 475px; object-fit: contain; }
/* Banda de etichete sta peste marginea de jos, cu un voal care le tine lizibile
   indiferent cat de deschisa e fotografia dedesubt. */
.dc-ba-colaj__tags { position: absolute; left: 0; right: 0; bottom: 0; display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; padding: 14px; background: linear-gradient(to top, rgba(9, 16, 14, .5), transparent); pointer-events: none; }
.dc-ba-colaj__tag { font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; padding: 5px 10px; border-radius: 7px; color: rgba(255, 255, 255, .92); background: rgba(20, 32, 28, .45); }
.dc-ba-colaj__tag--after { color: var(--text, #14201C); background: rgba(255, 255, 255, .85); }
@media (max-width: 640px) { .dc-ba-colaj { grid-template-columns: 1fr; gap: 16px; } .dc-ba-colaj__tag { font-size: 10px; } }

/* Pagina Aligners: aceleasi carduri, dar fotografiile mai scunde. Aici se
   regleaza inaltimea - schimba doar valoarea.

   Varianta de mai jos micsoreaza toata fotografia, fara s-o taie. Colajele au
   insa marginile albe incluse in poza, deci benzile se micsoreaza odata cu ea.
   Ca sa le tai de tot, inlocuieste regula cu:
     .al-cazuri-ba .dc-ba-colaj__item .dc-media-img { height: 300px; object-fit: cover; } */
.al-cazuri-ba .dc-ba-colaj__item .dc-media-img { max-height: 100%; height: 200px; object-fit: cover; }

.dc-loadmore-wrap { display: flex; justify-content: center; margin-top: 38px; }
.dc-loadmore { display: inline-flex; align-items: center; gap: 9px; padding: 15px 30px; background: transparent; color: var(--text, #14201C); border: 1px solid rgba(20, 32, 28, .2); border-radius: calc(var(--radius, 16px) - 3px); font-size: 18px; font-weight: 600; cursor: pointer; transition: border-color .2s, background .2s; font-family: inherit; }
.dc-loadmore:hover { border-color: var(--accent, #0E6B5E); background: color-mix(in srgb, var(--accent, #0E6B5E) 6%, #fff); }

/* Sectiune Contact partajata (homepage / cazuri / testimoniale / preturi) */
/* Fundalul vine din "Setări Temă → Footer". Regula `.dc-page .dc-has-bg` de mai
   jos are specificitate mai mare, deci alegerea per-pagina din "Componente →
   Contact" ramane peste valoarea implicita de aici. */
.dc-contact { background: var(--contact-bg, #14201C); color: #fff; scroll-margin-top: 70px; }
.dc-contact-split { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 56px; align-items: center; }
.dc-contact__grid { max-width: 1470px; margin: 0 auto; padding: var(--section-spacing, 110px) 15px 44px; }
.dc-contact__title { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: clamp(30px, 3.6vw, 48px); line-height: 1.04; letter-spacing: -.025em; margin: 0 0 14px; color: #fff; }
.dc-contact__text { font-size: 18px; line-height: 1.6; color: rgba(255, 255, 255, .72); margin: 0 0 20px; }
.dc-contact__details { display: flex; flex-direction: column; gap: 20px; }
.dc-contact__detail { display: flex; align-items: center; gap: 14px; }
.dc-contact__detail-icon { width: 50px; height: 50px; border-radius: 12px; background: rgba(255, 255, 255, .06); display: flex; align-items: center; justify-content: center; color: color-mix(in srgb, var(--accent, #0E6B5E) 55%, #fff); flex: none; }
.dc-contact__detail-label { font-size: 13px; color: rgba(255, 255, 255, .5); }
.dc-contact__detail-value { font-size: 18px; font-weight: 500; }
.dc-contact__detail-link { color: inherit; text-decoration: none; display: inline-block; transition: color .2s; }
.dc-contact__detail-link:hover { color: color-mix(in srgb, var(--accent, #0E6B5E) 55%, #fff); }
.dc-contact__map-shell { max-width: 1470px; margin: 0 auto; padding: 0 15px var(--section-spacing, 110px); }
.dc-contact__map { border-radius: calc(var(--radius, 16px) + 6px); overflow: hidden; border: 1px solid rgba(255, 255, 255, .1); box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .5); }
.dc-contact__map iframe { width: 100%; height: 380px; border: 0; display: block; filter: grayscale(.2); }

.send_button {position: relative;}
.dc-ctaform .dc-form-card .wpcf7-spinner {position: absolute; left: 10px; top: 10px;}
/* ==========================================================================
   Pagina "PreÃˆâ€ºuri": componenta preturi dantura fixa (taburi + carduri) + acordeon
   ========================================================================== */

/* Sectiune componenta "PreÃˆâ€ºuri pentru dantura fixÃ„Æ’" */
.dc-pricing { background: #fff; }
.dc-pricing__inner { max-width: 1470px; margin: 0 auto; padding: 68px 15px var(--section-spacing, 110px); }
.dc-pricing .dc-section-head { margin-bottom: 32px; }
.dc-pricing__note { text-align: center; font-size: 13px; color: #57635d; margin: 28px auto 0; max-width: 60ch; }
.dc-pricing__group { margin-bottom: 30px; }
.dc-pricing__group:last-of-type { margin-bottom: 0; }

/* Maximum 3 carduri pe rand, oricate pachete ar fi in lista; sub 3 coloane
   incape, auto-fit coboara singur la 2 si apoi la 1. */
.dc-pricing__panel { display: grid; grid-template-columns: repeat(auto-fit, minmax(max(280px, (100% - 44px) / 3), 1fr)); gap: 22px; align-items: stretch; }

/* Card de plan (varianta --popular = fundal inchis, evidentiat) */
.dc-plan { position: relative; display: flex; flex-direction: column; background: #fff; border: 1.5px solid rgba(20, 32, 28, .12); border-radius: calc(var(--radius, 16px) + 4px); padding: 32px 28px; box-shadow: 0 18px 40px -26px rgba(20, 32, 28, .28); }
.dc-plan--popular { background: #14201C; border-color: var(--accent, #0E6B5E); box-shadow: 0 30px 60px -30px rgba(20, 32, 28, .55); }
.dc-plan__badge { position: absolute; top: -13px; left: 50%; transform: translateX(-50%); background: var(--accent, #0E6B5E); color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 6px 14px; border-radius: 999px; white-space: nowrap; }
.dc-plan__tier { font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--accent, #0E6B5E); margin-bottom: 10px; }
.dc-plan__name { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-size: 28px; font-weight: 600; letter-spacing: -.01em; color: var(--text, #14201C); margin-bottom: 16px; line-height: 1.15; }
.dc-plan--popular .dc-plan__name { color: #fff; }
.dc-plan__price { display: flex; align-items: flex-end; gap: 6px; margin-bottom: 6px; }
.dc-plan__price-val { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-size: 50px; font-weight: 600; letter-spacing: -.02em; color: var(--text, #14201C); line-height: 1; }
.dc-plan__price-cur { font-size: 17px; font-weight: 600; color: var(--text, #14201C); margin-bottom: 7px; }
.dc-plan--popular .dc-plan__price-val, .dc-plan--popular .dc-plan__price-cur { color: #fff; }
.dc-plan__per { font-size: 13px; color: #57635d; margin-bottom: 24px; }
.dc-plan--popular .dc-plan__per { color: rgba(255, 255, 255, .6); }
.dc-plan__features { display: flex; flex-direction: column; gap: 12px; margin-bottom: 28px; flex: 1; }
.dc-plan__feature { display: flex; align-items: flex-start; gap: 10px; font-size: 18px; line-height: 1.5; color: #57635d; }
.dc-plan--popular .dc-plan__feature { color: rgba(255, 255, 255, .86); }
.dc-plan__check { width: 20px; height: 20px; border-radius: 50%; background: color-mix(in srgb, var(--accent, #0E6B5E) 12%, #fff); color: var(--accent, #0E6B5E); display: flex; align-items: center; justify-content: center; flex: none; margin-top: 4px; }
.dc-plan--popular .dc-plan__check { background: color-mix(in srgb, var(--accent, #0E6B5E) 85%, #fff); color: #fff; }
.dc-plan__btn { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; padding: 14px; border-radius: calc(var(--radius, 16px) - 4px); font-size: 18px; font-weight: 600; text-decoration: none; cursor: pointer; background: var(--btn-primary-bg, var(--accent, #0E6B5E)); color: #fff; border: 1px solid var(--accent, #0E6B5E); transition: filter .2s, transform .2s; }
.dc-plan__btn:hover { filter: brightness(1.06); transform: translateY(-2px); }
.dc-plan--popular .dc-plan__btn { background: #fff; color: var(--accent, #0E6B5E); border-color: #fff; }

/* Sectiune: "PreÃˆâ€ºul pentru restul serviciilor" - acordeon
   (starile .is-open ale .dc-acc-* sunt in fundatie) */
.dc-preturi-services { background: #F6F3EC; }
.dc-preturi-services__inner { max-width: 1100px; margin: 0 auto; padding: var(--section-spacing, 110px) 15px; }
.dc-accordion { display: flex; flex-direction: column; gap: 14px; }
/* Culorile acordeonului vin din campurile paginii, prin variabilele puse pe
   containerul listei (vezi dantura-faq.php / service-faq.php). Necompletate,
   raman culorile din design. */
.dc-acc-item { background: var(--dc-acc-bg, #fff); border: 1px solid rgba(20, 32, 28, .1); border-radius: calc(var(--radius, 16px) + 2px); overflow: hidden; box-shadow: 0 14px 36px -28px rgba(20, 32, 28, .3); }
.dc-acc-head { width: 100%; display: flex; align-items: center; gap: 16px; padding: 22px 26px; background: var(--dc-acc-bg, #fff); border: none; cursor: pointer; text-align: left; transition: background .2s; font-family: inherit; }
.dc-acc-head:hover { background: color-mix(in srgb, var(--accent, #0E6B5E) 5%, #fff); }
.dc-acc-head__icon { width: 50px; height: 50px; border-radius: 12px; background: color-mix(in srgb, var(--accent, #0E6B5E) 10%, #fff); color: var(--accent, #0E6B5E); display: flex; align-items: center; justify-content: center; flex: none; }
.dc-acc-head__text { flex: 1; min-width: 0; }
.dc-acc-head__name { display: block; font-family: var(--hfont, 'Newsreader', Georgia, serif); font-size: 20px; font-weight: 600; color: var(--text, #14201C); letter-spacing: -.01em; }
.dc-acc-head__count { display: block; font-size: 16px; color: #57635d; margin-top: 5px; }
.dc-acc-chev { flex: none; color: #57635d; display: flex; }
.dc-acc-body { padding: 2px 26px 14px; background: var(--dc-acc-body-bg, transparent); }
.dc-acc-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 13px 0; border-top: 1px solid rgba(20, 32, 28, .07); }
.dc-acc-row__name { font-size: 16px; line-height: 1.4; color: #3a463f; }
.dc-acc-row__price { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-size: 18px; font-weight: 600; color: var(--accent, #0E6B5E); white-space: nowrap; flex: none; }
.dc-acc-row:nth-child(1) {border-top:0;}
/* ==========================================================================
   Pagina "Testimoniale": playlist, comentarii Facebook, recenzii
   ========================================================================== */

.dc-testim-playlist { background: #fff; }
.dc-testim-playlist--alt { background: #F6F3EC; }
.dc-testim-playlist__inner { max-width: 1470px; margin: 0 auto; padding: var(--section-spacing, 110px) 15px var(--section-spacing, 110px); }
.dc-testim-influencers { background: #F6F3EC; }
.dc-testim-influencers__inner { max-width: 1470px; margin: 0 auto; padding: var(--section-spacing, 110px) 15px; }
.dc-df-checkpoints .dc-shell {padding: var(--section-spacing, 110px) 15px var(--section-spacing, 110px);}
/* Playlist video (stage + lista) - partajat cu homepage */
.dc-playlist-split { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.dc-playlist__stage { position: relative; border-radius: var(--radius, 16px); overflow: hidden; background: var(--accent, #0E6B5E); box-shadow: 0 22px 46px -24px rgba(20, 32, 28, .4); }
.dc-playlist__poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dc-playlist__stage--fixed { height: 520px; }
.dc-playlist__stage--ratio { aspect-ratio: 16/9; }
@media (max-width: 960px) { .dc-playlist__stage--fixed { height: 360px; } }
.dc-playlist__overlay { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; cursor: pointer; background: transparent; display: flex; align-items: center; justify-content: center; padding: 0; }
.dc-playlist__overlay:hover { background: rgba(0, 0, 0, .12); }
.dc-playlist__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(9, 16, 14, .05), rgba(9, 16, 14, .6)); }
.dc-playlist__playbtn { position: relative; width: 72px; height: 72px; border-radius: 50%; background: rgba(255, 255, 255, .94); display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 26px -8px rgba(0, 0, 0, .5); transition: transform .2s, opacity .25s; }
.dc-playlist__overlay:hover .dc-playlist__playbtn { transform: scale(1.08); }
.dc-playlist__meta { position: absolute; left: 22px; bottom: 20px; text-align: left; }
.dc-playlist__name { display: block; font-size: 19px; font-weight: 600; color: #fff; }
.dc-playlist-list { display: flex; flex-direction: column; gap: 10px; padding-right: 8px; max-height: 520px; }
.dc-playlist-list--sm { max-height: 490px; }
.dc-playlist__item { display: flex; align-items: center; gap: 14px; text-align: left; padding: 10px; background: #fff; border: 1px solid rgba(20, 32, 28, .1); border-radius: calc(var(--radius, 16px) - 4px); cursor: pointer; transition: transform .2s, border-color .2s, background .2s; font-family: inherit; }
.dc-playlist__item:hover { transform: translateX(3px); border-color: color-mix(in srgb, var(--accent, #0E6B5E) 45%, transparent); }
.dc-playlist__item.is-active { background: color-mix(in srgb, var(--accent, #0E6B5E) 8%, #fff); border-color: color-mix(in srgb, var(--accent, #0E6B5E) 40%, transparent); }
.dc-playlist__thumb { position: relative; flex: none; width: 96px; aspect-ratio: 16/9; border-radius: 9px; overflow: hidden; background: var(--accent, #0E6B5E); display: flex; align-items: center; justify-content: center; }
.dc-playlist__thumb-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dc-playlist__thumb-btn { position: relative; width: 28px; height: 28px; border-radius: 50%; background: rgba(255, 255, 255, .92); display: flex; align-items: center; justify-content: center; }
.dc-playlist__thumb-btn svg { margin-left: 2px; }
.dc-playlist__item-text { min-width: 0; }
.dc-playlist__item-name { display: block; font-size: 15px; font-weight: 600; color: var(--text, #14201C); letter-spacing: -.01em; }

/* Comentarii Facebook (timeline .fb-tl + scroll .pl-scroll din fundatie) */
.dc-testim-fb { background: #fff; }
.dc-testim-fb__inner { max-width: 1470px; margin: 0 auto; padding: var(--section-spacing, 110px) 15px; }
.dc-fb-scroll { max-height: 700px; overflow-y: auto; padding: 8px 18px 8px 4px; }
.dc-fb-col { position: relative; }
.dc-fb-line { position: absolute; left: 23px; top: 22px; bottom: 22px; width: 2px; background: color-mix(in srgb, var(--accent, #0E6B5E) 20%, transparent); }
.dc-fb-col__list { display: flex; flex-direction: column; gap: 28px; }
.dc-fb-comment { position: relative; display: flex; gap: 18px; align-items: flex-start; }
.dc-fb-avatar { position: relative; flex: none; width: 48px; height: 48px; border-radius: 50%; background: color-mix(in srgb, var(--accent, #0E6B5E) 12%, #fff); color: var(--accent, #0E6B5E); display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: 17px; box-shadow: 0 0 0 4px #fff, 0 0 0 5px color-mix(in srgb, var(--accent, #0E6B5E) 25%, transparent); }
.dc-fb-avatar__badge { position: absolute; right: -3px; bottom: -3px; width: 20px; height: 20px; border-radius: 50%; background: #1877F2; border: 2px solid #fff; display: flex; align-items: center; justify-content: center; }
.dc-fb-bubble { position: relative; flex: 1; min-width: 0; background: #fff; border: 1px solid rgba(20, 32, 28, .1); border-radius: 16px; border-top-left-radius: 4px; padding: 18px 20px; box-shadow: 0 12px 30px -22px rgba(20, 32, 28, .4); }
.dc-fb-bubble__tail { position: absolute; left: -7px; top: 16px; width: 13px; height: 13px; background: #fff; border-left: 1px solid rgba(20, 32, 28, .1); border-bottom: 1px solid rgba(20, 32, 28, .1); transform: rotate(45deg); }
.dc-fb-bubble__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 6px; }
.dc-fb-bubble__name { font-size: 15px; font-weight: 600; color: var(--text, #14201C); }
.dc-fb-verified { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 600; color: var(--accent, #0E6B5E); background: color-mix(in srgb, var(--accent, #0E6B5E) 10%, #fff); padding: 3px 8px; border-radius: 999px; flex: none; }
.dc-fb-stars { color: #F5A623; font-size: 13px; letter-spacing: 1px; }
.dc-fb-bubble__row { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.dc-fb-bubble__text { font-size: 16px; line-height: 1.6; color: #3a463f; margin: 0; }

/* Recenzii Google/Facebook (partajat cu homepage) */
.dc-reviews { background: #F6F3EC; }
.dc-reviews__inner { max-width: 1470px; margin: 0 auto; padding: var(--section-spacing, 110px) 15px; }
.dc-reviews__head { text-align: center; max-width: 1024px; margin: 0 auto 36px; }
.dc-reviews__title { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: clamp(28px, 3.4vw, 46px); line-height: 1.08; letter-spacing: -.02em; margin: 0 0 16px; }
.dc-reviews__rating { display: inline-flex; align-items: center; gap: 9px; font-size: 16px; line-height: 1.6; color: #57635d; flex-wrap: wrap; justify-content: center; }
.dc-reviews__rating-score { font-size: 20px; font-weight: 700; color: var(--text, #14201C); }
/* Stelele din antet sunt de doua ori mai mari decat cele din carduri. */
.dc-reviews__rating-stars { display: inline-flex;}
.dc-reviews__rating-stars .dc-review__star { width: 30px; height: 30px; margin: 0 -3px;}

/* Slider: un slide = 6 recenzii, 3 pe rand x 2 randuri. */
.dc-reviews__slide { flex: 0 0 100%; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; align-content: start; }
@media (max-width: 1000px) {
	.dc-reviews__slide { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.dc-reviews__slide { grid-template-columns: 1fr; }
}
/* Cardul de recenzie imita cat mai fidel cardul nativ Google: font de sistem,
   avatar colorat cu initiala, nume + vechime, stele #FBBC04 si logo-ul sursei. */
.dc-review { background: #fff; border: 1px solid #dadce0; border-radius: 8px; padding: 20px; display: flex; flex-direction: column; gap: 12px; font-family: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif; transition: box-shadow .2s; }
.dc-review:hover { box-shadow: 0 1px 3px rgba(60, 64, 67, .3), 0 4px 8px 3px rgba(60, 64, 67, .15); }
.dc-review__head { display: flex; align-items: center; gap: 12px; }
.dc-review__avatar { width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 500; font-size: 18px; color: #fff; flex: none; }
.dc-review__avatar--a { background: #1a73e8; }
.dc-review__avatar--b { background: #d93025; }
.dc-review__avatar--c { background: #188038; }
.dc-review__avatar--d { background: #e37400; }
.dc-review__avatar--e { background: #9334e6; }
.dc-review__avatar--f { background: #12b5cb; }
.dc-servicii .dc-shell {padding-top: 68px;}
.dc-review__id { min-width: 0; flex: 1; }
.dc-review__name { font-size: 16px; font-weight: 500; color: #202124; line-height: 1.3; }
.dc-review__time { font-size: 12px; color: #70757a; margin-top: 2px; }
.dc-review__logo { flex: none; display: flex; align-items: center; }
.dc-review__stars { display: flex; gap: 1px; }
.dc-review__star { display: block; width: 20px; height: 20px; flex: none; margin: 0 -2px }
/* Inaltime fixa, ca toate cardurile din slider sa fie egale; textul mai lung
   se deruleaza. Bara de scroll e stilata mai jos, impreuna cu .pl-scroll.
   padding-right lasa loc barei, ca sa nu treaca peste text. */
.dc-review__text { height: 99px; font-size: 16px; line-height: 1.58; color: #3c4043; margin: 0; padding-right: 10px; overscroll-behavior: contain; }

/* ==========================================================================
   Homepage - utilitare comune + sectiuni
   ========================================================================== */

/* Container comun (max 1470, padding var(--section-spacing) vertical) + placeholder imagine */
.dc-shell { max-width: 1470px; margin: 0 auto; padding: var(--section-spacing, 110px) 15px; }
.dc-adv .dc-shell {padding: var(--section-spacing, 110px) 15px var(--section-spacing, 110px)}
.dc-ph { background: linear-gradient(150deg, #e7e1d3, #d6e2db); display: flex; align-items: center; justify-content: center; color: #9aa39c; }
.dc-accent { color: var(--accent, #0E6B5E); font-weight: 600; }

/* Sectiune: Acreditari */
.dc-accred__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 18px; }
.dc-accred-card { background: #fff; border: 1px solid rgba(20, 32, 28, .1); border-radius: var(--radius, 16px); padding: 26px 24px; display: flex; flex-direction: column; gap: 16px; transition: transform .25s cubic-bezier(.16, .8, .24, 1), box-shadow .25s, border-color .25s; }
.dc-accred-card:hover { transform: translateY(-5px); box-shadow: 0 22px 44px -22px rgba(20, 32, 28, .3); border-color: color-mix(in srgb, var(--accent, #0E6B5E) 35%, transparent); }
.dc-accred-card__icon { width: 56px; height: 56px; border-radius: 14px; background: color-mix(in srgb, var(--accent, #0E6B5E) 9%, #fff); border: 1px solid color-mix(in srgb, var(--accent, #0E6B5E) 18%, transparent); display: flex; align-items: center; justify-content: center; color: var(--accent, #0E6B5E); }
.dc-accred-card__tag { font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--accent, #0E6B5E); }
.dc-accred-card__name { font-size: 18px; font-weight: 600; color: var(--text, #14201C); letter-spacing: -.01em; margin-bottom: 7px; }
.dc-accred-card__desc { font-size: 16px; line-height: 1.55; color: #6b756f; }

/* Sectiune: Abordare multidisciplinara (carduri feature) */
.dc-approach { background: #fff; }
.dc-approach .dc-section-head__title { font-size: clamp(28px, 3.3vw, 44px); line-height: 1.1; letter-spacing: -.02em; }
/* Grid fix 2x2: cardurile au titluri lungi si arata mai bine pe doua coloane. */
.dc-approach__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 760px) { .dc-approach__grid { grid-template-columns: 1fr; } }
.dc-feature { border: 1px solid rgba(20, 32, 28, .1); border-radius: var(--radius, 16px); padding: 30px 26px; display: flex; flex-direction: column; gap: 16px; transition: transform .25s cubic-bezier(.16, .8, .24, 1), box-shadow .25s; }
.dc-feature:hover { transform: translateY(-5px); box-shadow: 0 22px 44px -22px rgba(20, 32, 28, .26); }
.dc-feature__icon { width: 52px; height: 52px; border-radius: 13px; background: color-mix(in srgb, var(--accent, #0E6B5E) 10%, #fff); display: flex; align-items: center; justify-content: center; color: var(--accent, #0E6B5E); flex: none; }
.dc-feature__title { font-size: 20px; font-weight: 600; color: var(--text, #14201C); letter-spacing: -.01em; line-height: 1.3; }
.dc-feature__desc { font-size: 18px; line-height: 1.5; color: #6b756f; }

/* Sectiune: "De ce sÃ„Æ’ alegeÃˆâ€ºi" */
.dc-why { background: #fff; }
.dc-why__inner { max-width: 1470px; margin: 0 auto; padding: 0px 15px var(--section-spacing, 110px); }
.dc-why__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
.dc-why-card { background: #fff; border: 1px solid rgba(20, 32, 28, .1); border-radius: var(--radius, 16px); overflow: hidden; display: flex; flex-direction: column; transition: transform .25s cubic-bezier(.16, .8, .24, 1), box-shadow .25s; }
.dc-why-card:hover { transform: translateY(-5px); box-shadow: 0 22px 44px -22px rgba(20, 32, 28, .3); }
.dc-why-card__body { padding: 24px; display: flex; flex-direction: column; gap: 10px; }
/* Insigna cu pictograma, ca la cardurile din "Abordare" (.dc-feature__icon). */
.dc-why-card__icon { width: 52px; height: 52px; border-radius: 13px; background: color-mix(in srgb, var(--accent, #0E6B5E) 10%, #fff); display: flex; align-items: center; justify-content: center; color: var(--accent, #0E6B5E); flex: none; margin-bottom: 6px; }
.dc-why-card__tag { font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--accent, #0E6B5E); }
.dc-why-card__desc { font-size: 14.5px; line-height: 1.6; color: #6b756f; }

/* Emfaza italic accent + grila 2 coloane (responsive in fundatie) */
.dc-em { font-style: italic; color: var(--accent, #0E6B5E); }
.dc-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }

/* Sectiune: Proteza mobila vs. dantura fixa */
.dc-comparison { background: #fff; }
.dc-comparison .dc-section-head__title { font-size: clamp(28px, 3.4vw, 46px); line-height: 1.08; letter-spacing: -.025em; }
.dc-compare-imgs { margin-bottom: 24px; }
.dc-compare-img { aspect-ratio: 16/9; border-radius: var(--radius, 16px); overflow: hidden; border: 1px solid rgba(20, 32, 28, .1); flex-direction: column; gap: 10px; }
.dc-compare-img__label { font-size: 11.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.dc-compare__panels { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 24px; }
.dc-compare-panel { border: 1px solid rgba(20, 32, 28, .1); border-radius: var(--radius, 16px); padding: 32px 28px; }
.dc-compare-panel--cons { background: var(--dc-compare-cons-bg, #faf7f0); }
.dc-compare-panel--pros { background: var(--dc-compare-pros-bg, #14201C); color: #fff; }
.dc-compare-panel__title { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-size: 22px; font-weight: 600; letter-spacing: -.01em; margin-bottom: 20px; color: var(--text, #14201C); }
.dc-compare-panel--pros .dc-compare-panel__title { color: #fff; }
.dc-compare-list { display: flex; flex-direction: column; gap: 15px; }
.dc-compare-item { display: flex; align-items: flex-start; gap: 12px; font-size: 15px; line-height: 1.5; color: #57635d; }
.dc-compare-panel--pros .dc-compare-item { color: rgba(255, 255, 255, .86); }
.dc-compare-item__mark { width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex: none; margin-top: 1px; }
.dc-compare-item__mark--x { background: #f6e2df; color: #c0503f; }
.dc-compare-item__mark--check { background: color-mix(in srgb, var(--accent, #0E6B5E) 85%, #fff); color: #fff; }

/* Sectiune: Sisteme de implanturi */
.dc-implants { background: #fff; }
.dc-implants__inner { max-width: 1470px; margin: 0 auto; padding: 110px 15px; }
.dc-implants .dc-section-head__title { font-size: clamp(28px, 3.4vw, 46px); line-height: 1.08; }
.dc-implants__intro { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 36px; align-items: start; margin-bottom: 36px; }
.dc-implants__lead { font-size: 16px; line-height: 1.6; font-weight: 600; color: var(--text, #14201C); margin: 0; }
.dc-implants__para { font-size: 15px; line-height: 1.7; color: #57635d; margin: 0; }
.dc-implants__checks { display: flex; flex-direction: column; gap: 13px; }
.dc-implants__check { display: flex; align-items: flex-start; gap: 11px; font-size: 15px; line-height: 1.45; color: var(--text, #14201C); }
.dc-implants__check-icon { color: var(--accent, #0E6B5E); flex: none; margin-top: 2px; }
.dc-implants__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 20px; }
.dc-implant-card { background: var(--dc-implant-bg, #faf7f0); border: 1px solid rgba(20, 32, 28, .1); border-radius: var(--radius, 16px); padding: 24px 22px 26px; display: flex; flex-direction: column; align-items: center; text-align: center; transition: box-shadow .25s, transform .25s; }
.dc-implant-card:hover { box-shadow: 0 18px 40px -22px rgba(20, 32, 28, .35); transform: translateY(-4px); }
.dc-implant-card__img { width: 100%; aspect-ratio: 4/3; border-radius: calc(var(--radius, 16px) - 4px); background: repeating-linear-gradient(135deg, #eae4d6, #eae4d6 8px, #e2ddce 8px, #e2ddce 16px); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; color: #9aa39c; margin-bottom: 18px; }
/* Fotografia incarcata se vede intreaga: caseta isi ia proportia din imagine,
   nu invers. Formatul fix (4/3, 5/3 pe ecrane mici) si fundalul in dungi raman
   doar pentru placeholder, cand cardul nu are imagine. Selectorul e luat cu
   parinte inadins: regulile .dc-implant-card__img din media query-urile de mai
   jos vin mai tarziu in fisier si altfel ar pune la loc formatul fix. */
.dc-implant-card .dc-implant-card__img--has-img { aspect-ratio: auto; background: none; }
.dc-implant-card__img--has-img .dc-media-img { height: auto; object-fit: contain; }
.dc-implant-card__label { font-family: ui-monospace, monospace; font-size: 9.5px; letter-spacing: .05em; }
.dc-implant-card__name { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-size: 22px; font-weight: 600; letter-spacing: -.01em; color: var(--text, #14201C); margin-bottom: 8px; }
.dc-implant-card__desc { font-size: 15px; line-height: 1.55; color: #57635d; margin: 0px; flex: 1; }
.dc-df-after .dc-shell, .dc-prosthetics .dc-shell {padding-top: 0;}
/* Banda inchisa cu gradient + dungi (fundal reutilizabil pentru CTA/formular) */
.dc-darkband { position: relative; overflow: hidden; background: #14201C; color: #fff; }
/* Fundalul benzii inchise. Implicit = gradientul din design; componentele pot
   trimite alta valoare prin variabila --dc-band-bg (imagine, culoare simpla sau
   alt gradient) - vezi demo_site_background() in inc/acf-render.php. */
.dc-darkband__grad { position: absolute; inset: 0; background: var(--dc-band-bg, linear-gradient(150deg, #1c3b34, #14201C 55%, #0d2b25)); background-size: cover; background-position: center; background-repeat: no-repeat; }
/* Peste o imagine de fundal punem un strat intunecat, ca textul alb sa ramana lizibil. */
.dc-darkband--photo .dc-darkband__grad::after { content: ''; position: absolute; inset: 0; background: var(--dc-band-scrim, transparent); }
.dc-darkband .dc-section-head__title { color: #fff; }
/* Pe banda inchisa accentul pur ar fi prea slab pe negru: il deschidem, ca la
   titlurile hero. */
.dc-darkband .dc-section-head em { color: color-mix(in srgb, var(--accent, #0E6B5E) 62%, #fff); }
.dc-darkband .dc-section-head__text { color: rgba(255, 255, 255, .68); }

.dc-df-donts__inner { position: relative; z-index: 2; }
.dc-df-donts__list { display: flex; flex-direction: column; gap: 14px; max-width: 900px; margin: 0 auto; }
.dc-df-donts__row { display: flex; align-items: center; gap: 16px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .14); border-radius: var(--radius, 16px); padding: 20px 26px; }
.dc-df-donts__icon { flex: none; width: 32px; height: 32px; border-radius: 50%; background: #c0503f; color: #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 12px -4px rgba(192, 80, 63, .7); }
.dc-df-donts__text { font-size: 18px; font-weight: 500; color: rgba(255, 255, 255, .9); }
@media (max-width: 640px) { .dc-df-donts__row { padding: 16px 20px; gap: 12px; } }

/* Butoane CTA reutilizabile */
.dc-cta-actions { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin-top: 8px; }
.dc-cta-btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; padding: 16px 28px; border: 1px solid transparent; border-radius: calc(var(--radius, 16px) - 3px); font-size: 18px; line-height: 1.2; font-weight: 600; text-decoration: none; cursor: pointer; transition: transform .2s, box-shadow .2s, background .2s; }
.dc-cta-btn--wa { background: var(--wa-color, #25D366); color: white; font-weight: 700; gap: 10px; padding: 14px 28px; }
.dc-cta-btn--wa:hover { transform: translateY(-2px); box-shadow: 0 16px 32px -12px rgba(37, 211, 102, .5); }
.dc-cta-btn--accent { background: var(--btn-primary-bg, var(--accent, #0E6B5E)); color: #fff; }
.dc-cta-btn--accent:hover { transform: translateY(-2px); box-shadow: 0 16px 32px -12px color-mix(in srgb, var(--accent, #0E6B5E) 70%, transparent); }
.dc-cta-btn--white { background: #fff; color: var(--accent, #0E6B5E); font-weight: 700; padding: 16px 30px; }
.dc-cta-btn--white:hover { transform: translateY(-2px); box-shadow: 0 16px 32px -12px rgba(0, 0, 0, .35); }
.dc-cta-btn--ghost { background: transparent; color: #fff; border: 1px solid rgba(255, 255, 255, .5); gap: 10px; }
.dc-cta-btn--ghost:hover { background: rgba(255, 255, 255, .14); }

/* ==========================================================================
   Pagina 404 + formularul de cautare
   ========================================================================== */
.dc-404 { background: linear-gradient(180deg, #F6F3EC 0%, #FFFFFF 62%); }
.dc-404__inner { max-width: 780px; margin: 0 auto; padding: clamp(64px, 11vh, 120px) 15px clamp(72px, 12vh, 130px); padding-top: 70px;display: flex; flex-direction: column; align-items: center; text-align: center; }
.dc-404__code { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: clamp(88px, 20vw, 180px); line-height: .9; letter-spacing: -.04em; color: color-mix(in srgb, var(--accent, #0E6B5E) 16%, transparent); margin-bottom: clamp(4px, 1vh, 12px); }
.dc-404__title { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: clamp(30px, 5vw, 46px); line-height: 1.08; letter-spacing: -.025em; color: var(--text, #14201C); margin: 0 0 14px; }
.dc-404__text { font-size: 17px; line-height: 1.65; color: #57635d; margin: 0 0 30px; max-width: 52ch; }
.dc-404 .dc-search { width: 100%; max-width: 480px; margin-bottom: 30px; }
.dc-404__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.dc-404__btn-outline { background: #fff; color: var(--text, #14201C); border-color: rgba(20, 32, 28, .16); }
.dc-404__btn-outline:hover { border-color: var(--accent, #0E6B5E); color: var(--accent, #0E6B5E); transform: translateY(-2px); }
.dc-404__links { margin-top: clamp(34px, 6vh, 54px); padding-top: clamp(24px, 4vh, 34px); border-top: 1px solid rgba(20, 32, 28, .1); width: 100%; }
.dc-404__links-label { display: block; font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: #8a938d; margin-bottom: 14px; }
.dc-404__links-list { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 26px; }
.dc-404__link { font-size: 16.5px; font-weight: 500; color: var(--text, #14201C); text-decoration: none; border-bottom: 1px solid transparent; transition: color .2s, border-color .2s; }
.dc-404__link:hover { color: var(--accent, #0E6B5E); border-bottom-color: currentColor; }

/* Formularul de cautare (searchform.php), folosit si pe pagina de rezultate. */
.dc-search { position: relative; display: flex; align-items: center; gap: 8px; background: #fff; border: 1px solid rgba(20, 32, 28, .14); border-radius: 999px; padding: 6px 6px 6px 18px; transition: border-color .2s, box-shadow .2s; }
.dc-search:focus-within { border-color: var(--accent, #0E6B5E); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent, #0E6B5E) 12%, transparent); }
.dc-search__icon { display: flex; flex: none; color: #8a938d; }
.dc-search__input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font-family: inherit; font-size: 16px; color: var(--text, #14201C); padding: 10px 0; }
.dc-search__input::placeholder { color: #9aa39c; }
.dc-search__submit { flex: none; border: 0; cursor: pointer; background: var(--btn-primary-bg, var(--accent, #0E6B5E)); color: #fff; font-family: inherit; font-size: 15px; font-weight: 600; padding: 12px 22px; border-radius: 999px; transition: transform .2s, box-shadow .2s; }
.dc-search__submit:hover { transform: translateY(-1px); box-shadow: 0 12px 24px -10px color-mix(in srgb, var(--accent, #0E6B5E) 70%, transparent); }

@media (max-width: 560px) {
	/* Campul ramane pe un rand cu lupa; butonul trece dedesubt, pe toata latimea. */
	.dc-search { flex-wrap: wrap; border-radius: var(--radius, 16px); padding: 6px 14px 12px; }
	.dc-search__input { flex: 1 1 0; }
	.dc-search__submit { flex: 1 0 100%; }
	.dc-404__actions .dc-cta-btn { width: 100%; }
}

/* Sectiune: CTA "Primul pas cÃ„Æ’tre un zÃƒÂ¢mbet nou" */
.dc-cta-step__inner { position: relative; z-index: 2; max-width: 1470px; margin: 0 auto; padding: 96px 15px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 22px; }
.dc-cta-step__title { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: clamp(30px, 4vw, 54px); line-height: 1.05; letter-spacing: -.025em; margin: 0; color: #fff; max-width: 20ch; }
.dc-cta-step__text { font-size: 17.5px; line-height: 1.6; color: rgba(255, 255, 255, .78); margin: 0; max-width: 58ch; }

/* Sectiune: Banner CTA verde "RedÃ„Æ’-Ãˆâ€ºi zÃƒÂ¢mbetul" */
.dc-cta-banner { background: #fff; }
/* Caseta colorata din banner: implicit culoarea accent a temei, dar se poate
   alege alta din ACF (variabila --dc-box-bg trimisa pe element). */
.dc-cta-banner__box { position: relative; overflow: hidden; background: var(--dc-box-bg, var(--accent, #0E6B5E)); border-radius: calc(var(--radius, 16px) + 8px); padding: clamp(32px, 4vw, 52px); color: #fff; }
/* 2 coloane: imagine in stanga, continut in dreapta. */
.dc-cta-banner__grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 4vw, 56px); align-items: center; }
.dc-cta-banner__media { aspect-ratio: 5/3; border-radius: calc(var(--radius, 16px) + 2px); overflow: hidden; }
.dc-cta-banner__media img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 860px) {
	.dc-cta-banner__grid { grid-template-columns: 1fr; }
}
.dc-cta-banner__stripes { position: absolute; inset: 0; opacity: .5; background-image: repeating-linear-gradient(135deg, rgba(255, 255, 255, .06) 0 2px, transparent 2px 22px); }
.dc-cta-banner__content { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; text-align: left; gap: 20px; }
.dc-cta-banner__title { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: clamp(28px, 3.4vw, 46px); line-height: 1.06; letter-spacing: -.025em; margin: 0; color: #fff; max-width: 22ch; }
.dc-cta-banner__text { font-size: 17px; line-height: 1.6; color: rgba(255, 255, 255, .86); margin: 0; max-width: 56ch; }
.dc-cta-banner__content .dc-cta-actions { justify-content: flex-start; }
.dc-testim-scroller .dc-shell {padding-top: 68px;}
.page-template-dantura-fixa .dc-testim-scroller .dc-shell {padding: var(--section-spacing, 110px) 15px; padding-bottom: 0;}
/* Sectiune: "AveÃˆâ€ºi ÃƒÂ®ntrebÃ„Æ’ri?" (CTA + card formular) */
.dc-ctaform__inner { position: relative; z-index: 2; max-width: 1470px; margin: 0 auto; padding: 80px 15px; }
.dc-ctaform__head { max-width: 1024px; margin: 0 auto 36px; text-align: center; }
.dc-ctaform__title { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: clamp(30px, 3.6vw, 48px); line-height: 1.08; letter-spacing: -.025em; margin: 0 0 16px; color: #fff; text-wrap: balance; }
.dc-ctaform__text { font-size: 18px; line-height: 1.6; color: rgba(255, 255, 255, .74); margin: 0; }
.dc-ctaform__form { max-width: 1300px; margin: 0 auto; }

/* Formularul din banda CTA: cele 3 campuri (nume / telefon / buton) pe un
   singur rand, a cate 33.3%, cu acceptul centrat dedesubt. Restul formularelor
   (pagina Contact, modal) raman pe verticala - de aceea regulile sunt scoped. */
.dc-ctaform .dc-form-card .wpcf7-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: end; }
.dc-ctaform .dc-form-card .wpcf7-form > p { margin: 0; }
.dc-ctaform .dc-form-card .hidden-fields-container { display: none; }
.dc-ctaform .dc-form-card .wpcf7-response-output { grid-column: 1 / -1; margin: 0; }
.dc-ctaform .dc-form-card .wpcf7-submit { margin-top: 0; }
.dc-ctaform .dc-form__note { text-align: center; }
@media (max-width: 860px) {
	.dc-ctaform .dc-form-card .wpcf7-form { grid-template-columns: 1fr; }
}
.dc-cta-btn--glass { background: rgba(255, 255, 255, .08); color: #fff; border: 1px solid rgba(255, 255, 255, .34); }
.dc-cta-btn--glass:hover { background: rgba(255, 255, 255, .16); }

/* Sectiune: Hero homepage (video/imagine de fundal) */
.dc-home-hero { position: relative; min-height: min(92vh, 720px); overflow: hidden; background: #14201C; }
.dc-home-hero__grad { position: absolute; inset: 0; background: linear-gradient(120deg, #0d2b25, #14201C 45%, #1c3b34); background-size: 180% 180%; animation: drift 22s ease-in-out infinite; }
.dc-home-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dc-home-hero__scrim { position: absolute; inset: 0; background: linear-gradient(92deg, rgba(9, 16, 14, .9) 0%, rgba(9, 16, 14, .6) 46%, rgba(9, 16, 14, .28) 100%); }
.dc-home-hero__inner { position: relative; z-index: 2; min-height: min(92vh, 720px); max-width: 1470px; margin: 0 auto; padding: 104px 15px; display: flex; flex-direction: column; justify-content: center; }
.dc-home-hero__eyebrow { display: inline-flex; align-items: center; gap: 11px; font-size: 12px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; color: color-mix(in srgb, var(--accent, #0E6B5E) 55%, #fff); margin-bottom: 26px; max-width: 740px; }
.dc-home-hero__eyebrow-line { width: 26px; height: 1.5px; background: color-mix(in srgb, var(--accent, #0E6B5E) 55%, #fff); display: inline-block; flex: none; }
.dc-home-hero__title { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: var(--fs-display, 66px); line-height: 1.05; letter-spacing: -.025em; margin: 0 0 26px; color: #fff; max-width: 26ch; }
.dc-home-hero__title em { font-style: italic; color: color-mix(in srgb, var(--accent, #0E6B5E) 62%, #fff); }
.dc-home-hero__text { font-size: 18px; line-height: 1.64; color: rgba(255, 255, 255, .78); max-width: 75ch; margin: 0 0 40px; }
.dc-home-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.wpcf7-spinner {position: absolute;left: 42px;bottom: 82px;}
/* Sectiuni: grile video homepage (testimoniale video + apariÃˆâ€ºii media) */
.dc-testimonials { scroll-margin-top: 80px; }
.dc-media { background: #fff; }
.dc-media.video_slider { background: #F6F3EC; }
/* Aparitiile media sunt emisiuni si reportaje, filmate orizontal. Restul
   blocurilor video ale temei raman pe 9/16 (regula de baza .dc-vcard__stage),
   pentru ca acolo materialele sunt filmate vertical. Clasa e pusa pe cele doua
   blocuri de aparitii media si pe "Playlist echipa" (Dantură fixă) - "Video
   pacienti" foloseste si el .dc-media, dar are materiale verticale. Selectorul
   are doua clase, deci bate si suprascrierea de pe mobil din media query. */
.dc-media--wide .dc-vcard__stage { aspect-ratio: 16 / 9; }
/* Cardul 16/9 e mult mai scund decat cel vertical, deci butonul de play s-ar
   aseza peste titlu. Ramane o tinta de 48px, peste minimul de atins cu degetul. */
.dc-media--wide .dc-vcard__playbtn { width: 48px; height: 48px; }

/* Carusel generic (sageti, dots, track) - stomatologie.js [data-carousel] */
.dc-carousel-viewport { overflow: hidden; }
.dc-carousel-track { display: flex; transition: transform .55s cubic-bezier(.16, .8, .24, 1); }
/* Caruselele cu [data-drag] se trag cu degetul sau cu mouse-ul. touch-action ii
   spune browserului ca pe orizontala comanda JS-ul, iar pe verticala ramane
   derularea paginii - altfel pe telefon nu s-ar mai putea derula peste carusel. */
[data-carousel][data-drag] .dc-carousel-track { touch-action: pan-y; cursor: grab; }
[data-carousel][data-drag].is-dragging .dc-carousel-track { cursor: grabbing; user-select: none; }
.dc-carousel-controls { display: flex; align-items: center; justify-content: center; gap: 9px; margin-top: 30px; }
.dc-carousel-arrow { width: 46px; height: 46px; border-radius: 50%; background: #fff; border: 1px solid rgba(20, 32, 28, .18); color: var(--text, #14201C); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; transition: border-color .2s, background .2s; }
.dc-carousel-arrow:hover { border-color: var(--accent, #0E6B5E); background: color-mix(in srgb, var(--accent, #0E6B5E) 6%, #fff); }
.dc-carousel-dots { display: flex; align-items: center; gap: 9px; }
.dc-dot { width: 9px; height: 8px; border-radius: 999px; background: rgba(20, 32, 28, .2); border: none; cursor: pointer; transition: width .35s ease, background .35s ease; padding: 0; }
.dc-dot.is-active { width: 30px; background: var(--accent, #0E6B5E); }

/* Sectiune: "Bine aÃˆâ€ºi venit" (slider + misiune) */
.dc-welcome { background: #F6F3EC; color: var(--text, #14201C); }
.dc-welcome__grid { max-width: 1470px; margin: 0 auto; padding: var(--section-spacing, 110px) 15px; display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 56px; align-items: stretch; }
@media (max-width: 960px) { .dc-welcome__grid { grid-template-columns: 1fr; } }
.dc-welcome__col { display: flex; }
.dc-welcome__slider { position: relative; width: 100%; min-height: 420px; border-radius: calc(var(--radius, 16px) + 4px); overflow: hidden;}
.dc-welcome__track { display: flex; height: 100%; transition: transform .55s cubic-bezier(.16, .8, .24, 1); }
/* position: relative = reperul pentru imaginea din slide, care e scoasa din flux
   (vezi gruparea .dc-media-img de mai jos). Fara ea, o imagine verticala ar
   dicta inaltimea slide-ului si ar intinde toata coloana. */
.dc-welcome__slide { position: relative; flex: 0 0 100%; height: 100%; flex-direction: column; gap: 10px; }
.dc-welcome__slide-label { font-size: 12.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.dc-welcome__arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 50%; background: rgba(255, 255, 255, .9); border: none; color: var(--text, #14201C); cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 20px -8px rgba(0, 0, 0, .4); transition: background .2s; }
.dc-welcome__arrow:hover { background: #fff; }
.dc-welcome__arrow--prev { left: 14px; }
.dc-welcome__arrow--next { right: 14px; }
.dc-welcome__dots { position: absolute; bottom: 14px; left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 8px; }
.dc-welcome__eyebrow { display: inline-flex; align-items: center; gap: 11px; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--accent, #0E6B5E); margin-bottom: 20px; }
.dc-welcome__eyebrow-line { width: 26px; height: 1.5px; background: var(--accent, #0E6B5E); display: inline-block; flex: none; }
.dc-welcome__title { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: clamp(26px, 3vw, 40px); line-height: 1.12; letter-spacing: -.02em; margin: 0 0 22px; }
.dc-welcome__body { display: flex; flex-direction: column; gap: 15px; font-size: 16px; line-height: 1.66; color: #57635d; }
.dc-welcome__body p { margin: 0; }
.dc-blog .dc-shell {padding-top: 80px;}

/* Sectiune: Diplome (carusel 4/view) */
.dc-certs { background: #fff; }
.dc-cert-card { aspect-ratio: 3/4; border-radius: var(--radius, 16px); overflow: hidden; border: 1px solid rgba(20, 32, 28, .1); background: linear-gradient(150deg, #f2eee3, #e4ece7); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; color: #9aa39c; }
/* Diploma incarcata se vede intreaga: cardul isi ia proportia din imagine, nu
   invers. Formatul fix 3/4 taia o diploma orizontala pe mai mult de jumatate.
   Proportia 3/4 ramane doar pentru placile decorative, cand nu sunt imagini. */
.dc-cert-card--has-img { aspect-ratio: auto;}
.dc-cert-card--has-img .dc-media-img { height: auto; object-fit: contain; }
/* Fara intindere pe verticala: doua diplome cu proportii diferite ar fi trase
   amandoua la inaltimea celei mai inalte si s-ar deforma. */
.dc-certs .dc-carousel-track { align-items: flex-start; }
.dc-cert-card__label { font-size: 11.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
/* Diploma cu imagine e un buton care deschide fereastra mare. */
button.dc-cert-card { padding: 0; margin: 0; font: inherit; cursor: zoom-in; transition: transform .25s cubic-bezier(.16, .8, .24, 1), box-shadow .25s; }
button.dc-cert-card:hover { transform: translateY(-4px); box-shadow: 0 22px 44px -22px rgba(20, 32, 28, .35); }
button.dc-cert-card .dc-media-img { transition: transform .4s; }
button.dc-cert-card:hover .dc-media-img { transform: scale(1.04); }

.dc-media.dc-media--wide .dc-vgrid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* Pe Home Page aparitiile media stau cate trei pe rand: cu 9 pe pagina iese o
   grila 3x3. Scopat pe pagina: blocul cu aceeasi clasa de pe Dantură fixă ramane
   pe doua coloane. Selectorul bate si regula de o coloana de pe mobil, deci
   treptele mai mici sunt repetate aici. */
.page-template-home-page .dc-media.dc-media--wide .dc-vgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 960px) { .page-template-home-page .dc-media.dc-media--wide .dc-vgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .page-template-home-page .dc-media.dc-media--wide .dc-vgrid { grid-template-columns: 1fr; } }

/* La fel pentru "Află totul despre dantura fixă de la echipa clinicii": cate trei
   pe rand, deci cu 6 pe pagina iese o grila 3x2. */
.dc-media.dc-media--wide.dc-media--team .dc-vgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 960px) { .dc-media.dc-media--wide.dc-media--team .dc-vgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .dc-media.dc-media--wide.dc-media--team .dc-vgrid { grid-template-columns: 1fr; } }

/* Sectiune: Beneficii (carusel 3/view) */
.dc-benefits { background: #F6F3EC; }
.dc-benefits .dc-carousel-controls { margin-top: 32px; }
.dc-benefit { background: #fff; border: 1px solid rgba(20, 32, 28, .1); border-radius: var(--radius, 16px); overflow: hidden; display: flex; flex-direction: column; transition: transform .25s cubic-bezier(.16, .8, .24, 1), box-shadow .25s; }
.dc-benefit:hover { transform: translateY(-5px); box-shadow: 0 22px 44px -22px rgba(20, 32, 28, .3); }
.dc-benefit__media { position: relative; aspect-ratio: 4/3; }
.dc-benefit__badge { position: absolute; bottom: -20px; left: 22px; width: 44px; height: 44px; border-radius: 12px; background: var(--accent, #0E6B5E); color: #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 22px -8px color-mix(in srgb, var(--accent, #0E6B5E) 70%, transparent); }
.dc-benefit__body { padding: 32px 24px 26px; display: flex; flex-direction: column; gap: 10px; }
.dc-benefit__tag { font-size: 16px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--accent, #0E6B5E); }
.dc-benefit__desc { font-size: 14.5px; line-height: 1.6; color: #6b756f; }

/* Sectiune: Echipa medicala (carusel 4/view) */
.dc-team .dc-carousel-controls { margin-top: 32px; }
.dc-member { background: #fff; border: 1px solid rgba(20, 32, 28, .09); border-radius: var(--radius, 16px); overflow: hidden; transition: transform .25s cubic-bezier(.16, .8, .24, 1), box-shadow .25s; }
.dc-member:hover { transform: translateY(-5px); box-shadow: 0 24px 46px -24px rgba(20, 32, 28, .34); }
/* Fotografiile medicilor se vad intregi, nedecupate. Slotul are proportia
   portret 2/3 a fotografiilor de cabinet, iar "contain" garanteaza ca nimic nu
   e taiat nici daca cineva incarca o poza cu alta proportie (atunci raman benzi
   de fundal in loc de o bucata lipsa din cap). */
.dc-member__photo { position: relative; aspect-ratio: 2/2.5; background: linear-gradient(160deg, #e7e1d3, #d6e2db); display: flex; align-items: center; justify-content: center; }
.dc-member__photo .dc-media-img { object-fit: cover; }
/* O fotografie cu alta proportie decat 2/3 lasa benzi sus si jos: le tinem
   neutre, nu pe degradeul decorativ folosit sub monograma. */
.dc-member__photo--img { background: #f2eee3; }
.dc-member__mono { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-size: 58px; font-weight: 500; color: rgba(20, 32, 28, .14); letter-spacing: .02em; }
.dc-member__body { padding: 18px 20px 22px; }
.dc-member__name { font-size: 17.5px; font-weight: 600; color: var(--text, #14201C); letter-spacing: -.01em; }
.dc-member__role { font-size: 13.5px; color: var(--accent, #0E6B5E); font-weight: 500; margin-top: 3px; }

/* Sectiune: Servicii (featured "Dantura FixÃ„Æ’" + carusel) */
.dc-services { background: #fff; }
.dc-services .dc-section-head { margin-bottom: 40px; }
.dc-dantura { background: var(--dc-featured-bg, #EFE9DB); color: var(--text, #14201C); border: 1px solid rgba(20, 32, 28, .08); border-radius: calc(var(--radius, 16px) + 8px); padding: clamp(28px, 4vw, 46px); display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 44px; align-items: center; overflow: hidden; scroll-margin-top: 90px; }
@media (max-width: 720px) { .dc-dantura { grid-template-columns: 1fr; } }
.dc-dantura__title { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: clamp(32px, 4vw, 52px); line-height: 1; letter-spacing: -.025em; margin: 0 0 16px; }
.dc-dantura__text { font-size: 18px; line-height: 1.6; color: #57635d; margin: 0 0 24px; max-width: 64ch; }
.dc-dantura__btn { display: inline-flex; align-items: center; gap: 9px; padding: 14px 24px; background: var(--accent, #0E6B5E); color: #fff; border-radius: calc(var(--radius, 16px) - 3px); font-size: 18px; font-weight: 600; text-decoration: none; transition: transform .2s, box-shadow .2s; border: 0; margin-top: 30px }
.dc-dantura__btn:hover { transform: translateY(-2px); box-shadow: 0 16px 32px -12px color-mix(in srgb, var(--accent, #0E6B5E) 75%, transparent); }
.dc-dantura__media { aspect-ratio: 4/3; border-radius: calc(var(--radius, 16px) + 2px); overflow: hidden; box-shadow: 0 24px 50px -20px rgba(0, 0, 0, .5); }
.dc-services__carousel { margin-top: 18px; }
.dc-service-card { text-decoration: none; background: #fff; border: 1px solid rgba(20, 32, 28, .1); border-radius: var(--radius, 16px); overflow: hidden; display: flex; flex-direction: column; transition: transform .25s cubic-bezier(.16, .8, .24, 1), box-shadow .25s, border-color .25s; }
.dc-service-card:hover { transform: translateY(-5px); box-shadow: 0 22px 44px -22px rgba(20, 32, 28, .32); border-color: color-mix(in srgb, var(--accent, #0E6B5E) 40%, transparent); }
.dc-service-card__media { position: relative; aspect-ratio: 16/10; }
.dc-service-card__num { position: absolute; top: 12px; left: 12px; font-family: var(--hfont, 'Newsreader', Georgia, serif); font-size: 15px; font-weight: 600; color: #fff; background: rgba(20, 32, 28, .55); width: 34px; height: 34px; border-radius: 9px; display: flex; align-items: center; justify-content: center; -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.dc-service-card__body { padding: 22px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.dc-service-card__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.dc-service-card__name { font-size: 22px; font-weight: 600; color: var(--text, #14201C); letter-spacing: -.01em; }
.dc-service-card__arrow { color: #57635d; font-size: 18px; }
/* Butonul fiecarui card: link sau fereastra de programare (vezi servicii-list.php).
   Se lipeste de baza cardului, ca toate butoanele din grila sa fie aliniate. */
.dc-service-card__btn { margin-top: auto; align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; padding: 11px 20px; border: 1px solid color-mix(in srgb, var(--accent, #0E6B5E) 35%, transparent); border-radius: calc(var(--radius, 16px) - 6px); background: transparent; color: var(--accent, #0E6B5E); font-family: inherit; font-size: 15px; font-weight: 600; text-decoration: none; cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.dc-service-card__btn:hover { background: var(--accent, #0E6B5E); border-color: var(--accent, #0E6B5E); color: #fff; }
/* Descrierea e taiata la maximum 3 randuri, indiferent de lungimea textului. */
.dc-service-card__desc { font-size: 16px; line-height: 1.5; color: #6b756f; margin-bottom: 20px; }

.single-post .dc-article-hero {background: #fff5f9;}
/* Sectiune: Galerie cazuri (marquee pe un rand) - randul pe toata latimea */
.dc-cases { background: #fff; scroll-margin-top: 70px; padding-bottom: var(--section-spacing, 110px); }
.dc-cases__head { max-width: 1470px; margin: 0 auto; padding: var(--section-spacing, 110px) 15px 0; }
.dc-cases__rows { display: flex; flex-direction: column; gap: 14px; }
.mq-track { display: flex; gap: 14px; width: max-content; }
/* Durata vine din sablon (--mq-duration), calculata din numarul de poze: banda
   e mai lunga cu fiecare fotografie adaugata, asa ca fara asta galeria s-ar
   derula tot mai repede. Valoarea de rezerva acopera marquee-urile fara
   variabila. */
.mq-track--r { animation: marqR var(--mq-duration, 92s) linear infinite; }
.mq-track--l { animation: marqL var(--mq-duration, 92s) linear infinite; }
.dc-gtile { position: relative; flex: none; width: 340px; aspect-ratio: 4/5; border-radius: var(--radius, 16px); overflow: hidden; border: 1px solid rgba(20, 32, 28, .08); cursor: pointer; padding: 0; background: linear-gradient(150deg, #e7e1d3, #d6e2db); display: flex; align-items: center; justify-content: center; transition: box-shadow .25s; }
.dc-gtile:hover { box-shadow: 0 20px 40px -20px rgba(20, 32, 28, .34); }
.dc-gtile__over { position: absolute; inset: 0; opacity: 0; transition: opacity .25s; display: flex; align-items: center; justify-content: center; }
.dc-gtile:hover .dc-gtile__over { opacity: 1; background: color-mix(in srgb, var(--accent, #0E6B5E) 30%, transparent); }
.dc-gtile__over-btn { width: 44px; height: 44px; border-radius: 50%; background: rgba(255, 255, 255, .92); display: flex; align-items: center; justify-content: center; color: var(--accent, #0E6B5E); }

/* Cases-compare homepage (2 comparatoare) */
.dc-cases-compare__inner { max-width: 1470px; margin: 0 auto; padding: var(--section-spacing, 110px) 15px; }
.dc-cases-compare__more { display: flex; justify-content: center; margin-top: 40px; }

/* Popup general "ProgrameazÃ„Æ’-te" (nume/telefon) - deschis de orice buton cu
   [data-modal-open], vezi initModals in stomatologie.js. */
.dc-modal { position: fixed; inset: 0; z-index: 210; display: none; align-items: center; justify-content: center; padding: 24px; }
.dc-modal.is-open { display: flex; }
.dc-modal__backdrop { position: absolute; inset: 0; background: rgba(9, 12, 11, .6); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
/* Panoul ferestrei contine acelasi card de formular (.dc-form-card, care aici
   ramane fara fundal propriu vizibil), deci urmeaza aceeasi culoare. */
.dc-modal__panel { position: relative; z-index: 1; width: 100%; max-width: 740px; max-height: 90vh; overflow-y: auto; background: var(--contact-form-bg, #F6F3EC); color: var(--text, #14201C); border-radius: calc(var(--radius, 16px) + 6px); padding: clamp(28px, 4vw, 40px); box-shadow: 0 40px 90px -30px rgba(0, 0, 0, .6); }
.dc-modal__close { position: absolute; top: 16px; right: 16px; width: 36px; height: 36px; border-radius: 50%; background: rgba(20, 32, 28, .06); border: 0; cursor: pointer; display: flex; align-items: center; justify-content: center; color: var(--text, #14201C); transition: background .2s; }
.dc-modal__close:hover { background: rgba(20, 32, 28, .14); }
.dc-modal__title { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: 40px; letter-spacing: -.02em; margin: 0 0 20px; padding-right: 30px; }
.dc-modal .dc-form-card { box-shadow: none; padding: 0; }

/* Lightbox galerie (homepage) */
.dc-lightbox { position: fixed; inset: 0; z-index: 200; background: rgba(9, 12, 11, .9); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); display: none; align-items: center; justify-content: center; padding: 32px; }
.dc-lightbox__btn { position: absolute; border-radius: 50%; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .25); color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .2s; }
.dc-lightbox__btn:hover { background: rgba(255, 255, 255, .2); }
.dc-lightbox__close { top: 22px; right: 24px; width: 48px; height: 48px; }
.dc-lightbox__nav { top: 50%; transform: translateY(-50%); width: 52px; height: 52px; }
.dc-lightbox__nav--prev { left: 24px; }
.dc-lightbox__nav--next { right: 24px; }
.dc-lightbox__stage { position: relative; max-width: min(1000px, 90vw); width: 100%; aspect-ratio: 3/2; border-radius: calc(var(--radius, 16px) + 4px); overflow: hidden; background: linear-gradient(150deg, #e7e1d3, #d6e2db); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; color: #9aa39c; box-shadow: 0 40px 90px -30px rgba(0, 0, 0, .7); }
.dc-lightbox__caption { font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.dc-lightbox__counter { position: absolute; bottom: 26px; left: 50%; transform: translateX(-50%); font-size: 13.5px; color: rgba(255, 255, 255, .7); font-weight: 500; }

/* Pagina "Servicii" (grid de servicii + avantaje) */
.dc-servicii { background: #fff; }
.dc-servicii .dc-dantura { margin-bottom: 32px; }
.dc-servicii__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.dc-adv { background: #F6F3EC; }
.dc-adv__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.dc-adv .dc-feature { background: #fff; }

/* ==========================================================================
   Pagina "DanturÃ„Æ’ fixÃ„Æ’"
   ========================================================================== */

/* Hero (panou video dreapta + titlu + piloni + CTA) */
.dc-df-hero { position: relative; overflow: hidden; background: #14201C; min-height: min(90vh, 720px); }
.dc-df-hero__grad { position: absolute; inset: 0; background: var(--dc-band-bg, linear-gradient(120deg, #0d2b25, #14201C 45%, #1c3b34)); background-size: 180% 180%; animation: drift 22s ease-in-out infinite; }
/* Cu imagine de fundal oprim miscarea si o incadram, altfel animatia "drift" ar
   plimba fotografia prin cadru; stratul intunecat de deasupra tine textul lizibil. */
.dc-df-hero--photo .dc-df-hero__grad { background-size: cover; background-position: center; background-repeat: no-repeat; animation: none; }
.dc-df-hero--photo .dc-df-hero__grad::after { content: ''; position: absolute; inset: 0; background: var(--dc-band-scrim, transparent); }
.dc-df-hero__video { position: relative; pointer-events: auto; overflow: hidden; border-radius: calc(var(--radius, 16px) + 8px); box-shadow: 0 40px 80px -34px rgba(0, 0, 0, .65); border: 1px solid rgba(255, 255, 255, .12); background: var(--accent, #0E6B5E); min-height: 640px; }
.dc-df-hero__stage { position: absolute; inset: 0; width: 100%; height: 100%; border-radius: 0; box-shadow: none; }
/* Fisier video local sau doar imagine: amandoua umplu coloana la fel. */
.dc-df-hero__mp4,
.dc-df-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
/* La play trec pe "contain", ca sa se vada tot cadrul, si apar comenzile native. */
.dc-df-hero__video.is-playing .dc-df-hero__mp4 { background: #0b1310; }
.dc-df-hero__video.is-playing .dc-playlist__overlay { opacity: 0; pointer-events: none; }
.dc-playlist__poster { transition: opacity .25s; }
.dc-df-hero__scrim { position: absolute; left: 0; right: 0; top: 0; bottom: 0; z-index: 1; background: linear-gradient(92deg, rgba(9, 16, 14, .9) 30%, rgba(9, 16, 14, .5) 58%, rgba(9, 16, 14, .15)); pointer-events: none; }
/* Cu fundal ales din panou, stratul de mai sus ar suprascrie alegerea cu propriul
   lui degrade - il oprim. Specificitatea (0,2,0) bate si varianta din media query
   de mai jos, deci ramane oprit si pe mobil. La imagine, intunecarea vine din
   `--dc-band-scrim` (campul "Intunecare imagine"). */
.dc-df-hero--custom-bg .dc-df-hero__scrim { background: none; }
.dc-df-hero__inner { position: relative; z-index: 3; min-height: min(90vh, 720px); max-width: 1470px; margin: 0 auto; padding: 64px 15px; display: grid; grid-template-columns: 55fr 45fr; align-items: center; gap: 40px; pointer-events: none; }
.dc-df-hero__content { display: flex; flex-direction: column; justify-content: center; pointer-events: auto; }
.dc-df-hero__eyebrow { display: inline-flex; align-items: center; gap: 9px; font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: color-mix(in srgb, var(--accent, #0E6B5E) 55%, #fff); margin-bottom: 22px; }
.dc-df-hero__eyebrow-line { width: 26px; height: 1.5px; background: color-mix(in srgb, var(--accent, #0E6B5E) 55%, #fff); display: inline-block; }
.dc-df-hero__title { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: var(--fs-display, 56px); line-height: 1.05; letter-spacing: -.025em; margin: 0 0 22px; color: #fff; }
.dc-df-hero__title em { font-style: italic; color: color-mix(in srgb, var(--accent, #0E6B5E) 62%, #fff); }
/* Continutul vine dintr-un editor (campul "Puncte forte"): ce e pus in lista
   capata bifa din design, iar paragrafele raman text normal sub ea. Bifa e
   desenata cu ::before, ca sa nu fie nevoie ca cineva sa scrie HTML in editor. */
.dc-df-hero__pillars { display: flex; flex-direction: column; gap: 13px; margin: 0 0 34px; }
.dc-df-hero__pillars h3 {
	color: white;
}
.dc-df-hero__pillars > *:last-child { margin-bottom: 0; }
.dc-df-hero__pillars ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 13px; }
.dc-df-hero__pillars li { position: relative; padding-left: 39px; font-size: 16.5px; line-height: 1.42; color: rgba(255, 255, 255, .74); }
.dc-df-hero__pillars li::before { content: ''; position: absolute; left: 0; top: -2px; width: 26px; height: 26px; border-radius: 50%; background: var(--accent, #0E6B5E) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12l5 5L20 6'/%3E%3C/svg%3E") center / 15px 15px no-repeat; }
.dc-df-hero__pillars p { font-size: 16.5px; line-height: 1.55; color: rgba(255, 255, 255, .74); margin: 0; }
.dc-df-hero__pillars strong, .dc-df-hero__pillars b { font-weight: 600; color: #fff; }
.dc-df-hero__pillars a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
.dc-df-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.dc-df-hero__disclaimer { font-size: 16px; line-height: 1.55; color: rgba(255, 255, 255, .5); margin: 22px 0 0; }
.dc-df-hero__divider { height: 1px; background: rgba(255, 255, 255, .14); margin: 22px 0; max-width: 65ch; }
.dc-df-hero__social { display: flex; align-items: center; gap: 16px; }
.dc-df-hero__avatars { display: flex; flex: none; }
.dc-df-hero__avatar { width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 15px; color: #fff; border: 2px solid #14201C; margin-left: -10px; }
.dc-df-hero__avatar:first-child { margin-left: 0; }
.dc-df-hero__avatar--a { background: #7C3AED; }
.dc-df-hero__avatar--b { background: #0E9F87; }
.dc-df-hero__avatar--c { background: #D6336C; }
.dc-df-hero__avatar--d { background: #F0883E; }
.dc-df-hero__stars { display: flex; align-items: flex-start; gap: 8px; font-size: 15.5px; color: rgba(255, 255, 255, .8); }
.dc-df-hero__stars-row { display: inline-flex; gap: 0; }
.dc-df-hero__stars .dc-review__star { width: 23px; height: 23px; margin-left: -4px; }
.dc-df-hero__stars .dc-review__star:first-child { margin-left: 0; }
.dc-df-hero__stars strong { color: #fff; font-weight: 700; margin-right: 3px; }
.dc-df-hero__social-sub { font-size: 16px; color: rgba(255, 255, 255, .5); margin-top: 4px; }
@media (max-width: 960px) {
	.dc-df-hero__inner { grid-template-columns: 1fr; }
	.dc-df-hero__scrim { background: rgba(9, 16, 14, .55); }
}

/* Bara cu 3 CTA-uri sub hero */
.dc-df-trio { background: #F6F3EC; border-bottom: 1px solid rgba(20, 32, 28, .08); }
.dc-df-trio .dc-shell { padding: 18px 15px; }
.dc-df-trio__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 720px) { .dc-df-trio__grid { grid-template-columns: 1fr; } }
.dc-df-trio__card { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid rgba(20, 32, 28, .12); border-radius: var(--radius, 16px); padding: 14px 18px; text-decoration: none; color: var(--text, #14201C); transition: transform .22s cubic-bezier(.16, .8, .24, 1), box-shadow .22s, border-color .22s; }
.dc-df-trio__card:hover { transform: translateY(-3px); box-shadow: 0 18px 36px -20px rgba(20, 32, 28, .34); border-color: color-mix(in srgb, var(--accent, #0E6B5E) 40%, transparent); }
.dc-df-trio__icon { width: 36px; height: 36px; border-radius: 10px; background: color-mix(in srgb, var(--accent, #0E6B5E) 10%, #fff); border: 1px solid color-mix(in srgb, var(--accent, #0E6B5E) 18%, transparent); color: var(--accent, #0E6B5E); display: flex; align-items: center; justify-content: center; flex: none; }
.dc-df-trio__icon svg { transform: scale(.78); }
.dc-df-trio__title { flex: 1; min-width: 0; font-size: 19px; font-weight: 600; letter-spacing: -.01em; line-height: 1.25; }
.dc-df-trio__arrow { flex: none; }

.dc-df-checklist { background: #F6F3EC; }
.dc-df-checklist__list { display: flex; flex-direction: column; gap: 16px; max-width: 1100px; margin: 0 auto;}
.dc-df-checklist__row { display: flex; align-items: center; gap: 20px; background: #fff; border: 1px solid rgba(20, 32, 28, .1); border-radius: var(--radius, 16px); padding: 24px 28px; transition: transform .22s cubic-bezier(.16, .8, .24, 1), box-shadow .22s; }
.dc-df-checklist__row:hover { transform: translateY(-3px); box-shadow: 0 18px 36px -20px rgba(20, 32, 28, .26); }
.dc-df-checklist__num { flex: none; width: 52px; height: 52px; border-radius: 14px; background: var(--accent, #0E6B5E); color: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--hfont, 'Newsreader', Georgia, serif); font-size: 20px; font-weight: 600; }
.dc-df-checklist__q { font-size: 22px; font-weight: 600; color: var(--text, #14201C); letter-spacing: -.01em; line-height: 1.3; margin-bottom: 4px; }
.dc-df-checklist__a { font-size: 18px; line-height: 1.55; color: #6b756f; }
@media (max-width: 640px) { .dc-df-checklist__row { padding: 18px 20px; gap: 14px; } }

.dc-df-checkpoints { background: #fff; }
.dc-df-checkpoints__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; max-width: 1200px; margin: 0 auto; }
@media (max-width: 720px) { .dc-df-checkpoints__list { grid-template-columns: 1fr; } }
.dc-df-checkpoints__item { display: flex; align-items: center; gap: 14px; background: var(--dc-checkpoint-bg, #faf7f0); border: 1px solid rgba(20, 32, 28, .1); border-radius: var(--radius, 16px); padding: 20px 26px; }
.dc-df-checkpoints__check { flex: none; width: 34px; height: 34px; border-radius: 50%; background: color-mix(in srgb, var(--accent, #0E6B5E) 14%, #fff); color: var(--accent, #0E6B5E); display: flex; align-items: center; justify-content: center; }
.dc-df-checkpoints__text { font-size: 19px; font-weight: 600; color: var(--text, #14201C); line-height: 1.35; }
.dc-df-checkpoints__divider { height: 1px; background: rgba(20, 32, 28, .1); max-width: 1200px; margin: 40px auto 0; }
.dc-df-checkpoints__note { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-size: clamp(20px, 2.2vw, 26px); font-weight: 600; font-style: italic; color: var(--accent, #0E6B5E); text-align: center; margin: 32px 0 0; }

.home .dc-testim-scroller .dc-shell {padding-bottom: 0;}
.dc-df-fit { background: #fff; }
.dc-df-fit .dc-shell { padding-bottom: 0; }
.dc-df-fit__list { display: flex; flex-direction: column; gap: 14px; max-width: 900px; margin: 0 auto; }
.dc-df-fit__row { display: flex; align-items: center; gap: 16px; background: var(--dc-fit-bg, #faf7f0); border: 1px solid rgba(20, 32, 28, .1); border-radius: var(--radius, 16px); padding: 20px 26px; }
.dc-df-fit__icon { flex: none; width: 32px; height: 32px; border-radius: 50%; background: color-mix(in srgb, var(--accent, #0E6B5E) 12%, #fff); color: var(--accent, #0E6B5E); display: flex; align-items: center; justify-content: center; }
.dc-df-fit__text { font-size: 20px; font-weight: 600; color: var(--text, #14201C); }
.dc-df-fit__callout { display: flex; align-items: flex-start; gap: 16px; max-width: 900px; margin: 32px auto 0; background: color-mix(in srgb, var(--accent, #0E6B5E) 7%, #fff); border: 1px solid color-mix(in srgb, var(--accent, #0E6B5E) 20%, transparent); border-radius: calc(var(--radius, 16px) + 4px); padding: 22px 26px; }
.dc-df-fit__callout-icon { flex: none; width: 44px; height: 44px; border-radius: 10px; background: var(--accent, #0E6B5E); color: #fff; display: flex; align-items: center; justify-content: center; }
.dc-df-fit__callout-text { font-size: 17px; line-height: 1.3; color: #3a463f; margin: 0; }
.dc-df-fit__callout-text strong { color: var(--accent, #0E6B5E); font-weight: 700; }
@media (max-width: 640px) { .dc-df-fit__row { padding: 16px 20px; gap: 12px; } .dc-df-fit__callout { padding: 18px 20px; } }

.dc-df-explain { background: #fff; }
.dc-df-explain__list { display: flex; flex-direction: column; gap: 14px; max-width: 900px; margin: 0 auto; }
.dc-df-explain__row { display: flex; align-items: center; gap: 16px; background: var(--dc-explain-bg, #faf7f0); border: 1px solid rgba(20, 32, 28, .1); border-radius: var(--radius, 16px); padding: 20px 26px; }
.dc-df-explain__icon { flex: none; width: 32px; height: 32px; border-radius: 50%; background: color-mix(in srgb, var(--accent, #0E6B5E) 12%, #fff); color: var(--accent, #0E6B5E); display: flex; align-items: center; justify-content: center; }
.dc-df-explain__text { font-size: 20px; font-weight: 600; color: var(--text, #14201C); }
.dc-df-explain__goal { max-width: 900px; margin: 32px auto 0; background: color-mix(in srgb, var(--accent, #0E6B5E) 6%, #fff); border: 1px solid color-mix(in srgb, var(--accent, #0E6B5E) 18%, transparent); border-radius: calc(var(--radius, 16px) + 4px); padding: 26px 30px; text-align: center; }
.dc-df-explain__goal-sub { font-size: 16px; color: #6b756f; margin: 0 0 6px; }
.dc-df-explain__goal-main { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-size: clamp(20px, 2.2vw, 24px); font-weight: 600; color: var(--accent, #0E6B5E); margin: 0; }
.dc-df-explain__goal-btn { margin-top: 20px; }
@media (max-width: 640px) { .dc-df-explain__row { padding: 16px 20px; gap: 12px; } .dc-df-explain__goal { padding: 20px 22px; } }

.dc-df-why { background: #F6F3EC; }
.dc-df-why__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 720px) { .dc-df-why__grid { grid-template-columns: 1fr; } }
.dc-df-why__card { display: flex; flex-direction: column; gap: 18px; background: #fff; border: 1px solid rgba(20, 32, 28, .1); border-radius: calc(var(--radius, 16px) + 4px); padding: 32px 30px; transition: transform .25s cubic-bezier(.16, .8, .24, 1), box-shadow .25s; }
.dc-df-why__card:hover { transform: translateY(-5px); box-shadow: 0 22px 44px -22px rgba(20, 32, 28, .2); }
.dc-df-why__card--wide { grid-column: 1 / -1; flex-direction: row; align-items: center; gap: 24px; }
.dc-df-whatif .dc-df-why__card { flex-direction: row; align-items: flex-start; gap: 20px; }
.dc-df-why__num { margin-top: 6px; flex: none; width: 52px; height: 52px; border-radius: 14px; background: var(--accent, #0E6B5E); color: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--hfont, 'Newsreader', Georgia, serif); font-size: 20px; font-weight: 600; }
.dc-df-why__body { display: flex; flex-direction: column; gap: 6px; }
.dc-df-why__title { font-size: 20px; font-weight: 700; color: var(--text, #14201C); letter-spacing: -.01em; }
.dc-df-why__text { font-size: 18px; line-height: 1.6; color: #6b756f; }

/* Etapele tratamentului */
.dc-steps { background: #fff; }
.dc-steps__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 1080px) { .dc-steps__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .dc-steps__grid { grid-template-columns: 1fr; } }
.dc-step { position: relative; background: var(--dc-step-bg, #faf7f0); border: 1px solid rgba(20, 32, 28, .1); border-radius: var(--radius, 16px); padding: 28px 24px; display: flex; flex-direction: column; gap: 14px; transition: transform .25s cubic-bezier(.16, .8, .24, 1), box-shadow .25s; }
.dc-step:nth-child(1) { z-index: 4; }
.dc-step:nth-child(2) { z-index: 3; }
.dc-step:nth-child(3) { z-index: 2; }
.dc-step:nth-child(4) { z-index: 1; }
.dc-step:hover { transform: translateY(-5px); box-shadow: 0 22px 44px -22px rgba(20, 32, 28, .26); }
.dc-step__num { width: 52px; height: 52px; border-radius: 14px; background: var(--accent, #0E6B5E); color: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--hfont, 'Newsreader', Georgia, serif); font-size: 22px; font-weight: 600; flex: none; }
.dc-step__title { font-size: 17.5px; font-weight: 600; color: var(--text, #14201C); letter-spacing: -.01em; line-height: 1.3; }
.dc-step__text { font-size: 14.5px; line-height: 1.6; color: #57635d; }
.dc-step__arrow { position: absolute; right: -30px; top: 50%; transform: translateY(-50%); z-index: 2; width: 34px; height: 34px; border-radius: 50%; background: #fff; border: 1px solid color-mix(in srgb, var(--accent, #0E6B5E) 30%, transparent); color: var(--accent, #0E6B5E); display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 16px -8px rgba(20, 32, 28, .4); }
@media (max-width: 1080px) { .dc-step__arrow { display: none; } }

/* Componenta reutilizabila: video (single) + text 2 coloane */
.dc-media-feature { background: #F6F3EC; }
.dc-media-feature--white { background: #fff; }
.dc-media-feature__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: clamp(32px, 4vw, 56px); align-items: stretch; }
@media (max-width: 960px) { .dc-media-feature__grid { grid-template-columns: 1fr; } }

/* Varianta cu doar titlul scos intr-un antet centrat deasupra celor 2 coloane
   (restul continutului ramane in coloana, ca fara header_top). */
.dc-media-feature__header { max-width: 1024px; margin: 0 auto 44px; text-align: center; }
.dc-media-feature__header .dc-media-feature__title { max-width: none; margin: 0 auto; text-wrap: balance; }
/* Cand titlul sta deasupra grilei, coloana de text nu mai are nevoie de spatiu
   nici sus, nici jos: altfel padding-ul ramas doar jos impinge continutul cu
   jumatate din el mai sus si textul nu mai e in dreptul mediei de langa. */
.dc-media-feature--header-top .dc-media-feature__text { padding-top: 0; padding-bottom: 0; }
.dc-media-feature__video { display: flex; }

.dc-df-after { background: #fff; }
.dc-df-after__img { position: relative; height: 560px; border-radius: calc(var(--radius, 16px) + 8px); overflow: hidden; background: repeating-linear-gradient(135deg, #eae4d6, #eae4d6 8px, #e2ddce 8px, #e2ddce 16px); }
.dc-df-after__caption { position: absolute; left: 16px; bottom: 16px; background: rgba(255, 255, 255, .85); border-radius: 8px; padding: 6px 10px; font-family: 'SFMono-Regular', Menlo, Consolas, monospace; font-size: 11px; letter-spacing: .01em; color: #6b756f; }
.dc-df-after__text { display: flex; flex-direction: column; justify-content: center; }
.dc-df-after__title { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: clamp(30px, 3.6vw, 48px); line-height: 1.15; letter-spacing: -.02em; color: var(--text, #14201C); margin: 0 0 22px; }
.dc-df-after__list { display: flex; flex-direction: column; gap: 14px; }
.dc-df-after__btn { align-self: flex-start; margin-top: 28px; }
.dc-df-after__item { display: flex; align-items: center; gap: 12px; font-size: 18px; color: #3a463f; }
.dc-df-after__check { flex: none; width: 22px; height: 22px; border-radius: 50%; background: var(--accent, #0E6B5E); color: #fff; display: flex; align-items: center; justify-content: center; }

.dc-contact__checklist { display: flex; flex-direction: column; gap: 10px; margin: 18px 0 30px; }
.dc-contact__checklist-item { display: flex; align-items: center; gap: 10px; font-size: 18px; font-weight: 500; color: rgba(255, 255, 255, .92); }
.dc-contact__checklist-check { margin-top: -2px;flex: none; width: 20px; height: 20px; border-radius: 50%; background: var(--accent, #0E6B5E); color: #fff; display: flex; align-items: center; justify-content: center; }
.dc-playlist__stage--feature { height: 100%; min-height: 340px; width: 100%; }
.dc-media-feature__video-label { position: absolute; left: 20px; bottom: 16px; font-size: 13px; font-weight: 600; color: #fff; letter-spacing: .02em; }
.dc-media-feature__text { display: flex; flex-direction: column; justify-content: center; padding: 40px 0; }
.dc-media-feature__eyebrow { display: inline-flex; align-items: center; gap: 11px; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--accent, #0E6B5E); margin-bottom: 20px; }
.dc-media-feature__eyebrow-line { width: 26px; height: 1.5px; background: var(--accent, #0E6B5E); display: inline-block; flex: none; }
.dc-media-feature__title { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: clamp(30px, 3.6vw, 48px); line-height: 1.1; letter-spacing: -.02em; margin: 0 0 20px; max-width: 22ch; }
.dc-media-feature__body { display: flex; flex-direction: column; gap: 14px; font-size: 16.5px; line-height: 1.7; color: #57635d; }
.dc-media-feature__body p { margin: 0; font-size: 18px; }
.dc-media-feature__body strong { color: var(--text, #14201C); font-weight: 600; }
.dc-media-feature__badge { display: inline-flex; align-items: center; gap: 10px; margin: 24px 0 28px; padding: 9px 16px; background: color-mix(in srgb, var(--accent, #0E6B5E) 8%, #fff); border: 1px solid color-mix(in srgb, var(--accent, #0E6B5E) 20%, transparent); border-radius: 999px; font-size: 12.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--accent, #0E6B5E); }
.dc-media-feature__extra { display: flex; align-items: center; gap: 16px; background: white; border: 1px solid rgba(20, 32, 28, .1); border-radius: var(--radius, 16px); padding: 14px; }
.dc-media-feature__extra-img { flex: none; width: 120px; aspect-ratio: 4/3; border-radius: calc(var(--radius, 16px) - 6px); overflow: hidden; border: 1px solid rgba(20, 32, 28, .1); }
.dc-media-feature__extra-tag { font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--accent, #0E6B5E); margin-bottom: 4px; }
.dc-media-feature__extra-name { font-size: 15px; font-weight: 600; color: var(--text, #14201C); letter-spacing: -.01em; }
.dc-media-feature__extra-desc { font-size: 13px; color: #6b756f; margin-top: 2px; }

/* Riscurile amanarii reabilitarii (reutilizeaza cardul .dc-feature) */
.dc-risks { background: #fff; }
.dc-risks__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 960px) { .dc-risks__grid { grid-template-columns: 1fr; } }
.dc-feature__icon--danger { background: #f6e2df; color: #c0503f; }

/* Galerie foto clinica (grid static 3/rand) */
.dc-clinic-gallery { background: #fff; }
.dc-clinic-gallery__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 720px) { .dc-clinic-gallery__grid { grid-template-columns: 1fr; } }
.dc-clinic-gallery__tile { position: relative; aspect-ratio: 4/3; border-radius: var(--radius, 16px); overflow: hidden; border: 1px solid rgba(20, 32, 28, .08); flex-direction: column; gap: 8px; }
.dc-clinic-gallery__label { font-family: ui-monospace, monospace; font-size: 9.5px; letter-spacing: .06em; }

/* FAQ video + acordeon pe 2 coloane */
.dc-faq { background: #F6F3EC; }
.dc-faq__playlist { margin-bottom: 48px; }
.dc-faq-grid { margin: 0 auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-items: start; }
@media (max-width: 820px) { .dc-faq-grid { grid-template-columns: 1fr; } }
.dc-faq__answer { font-size: 15.5px; line-height: 1.7; color: #57635d; margin: 0; max-width: 66ch; }

/* Galerie marquee (eticheta sub iconita placeholder) */
.dc-gtile { flex-direction: column; gap: 8px; }
.dc-gtile__caption { font-family: ui-monospace, monospace; font-size: 9.5px; letter-spacing: .06em; color: #57635d; }

/* ==========================================================================
   Pagina de serviciu unic (CPT "service") - un singur template, continutul
   difera dupa slug (vezi inc/service-content.php).
   ========================================================================== */


/* Text SEO */
.dc-service-seo { background: #F6F3EC; }
.dc-service-seo__inner { max-width: 940px; margin: 0 auto; padding: clamp(48px, 6vw, 80px) 15px; }
.dc-service-seo__title { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: clamp(26px, 3.2vw, 42px); line-height: 1.08; letter-spacing: -.025em; margin: 0 0 22px;}
.dc-service-seo__body { display: flex; flex-direction: column; gap: 16px; }
.dc-service-seo__body p { font-size: 16.5px; line-height: 1.78; color: #3a463f; margin: 0; }
/* Textul scris in editorul WordPress: titlurile, listele si linkurile primesc
   acelasi aspect ca in design, fara clase suplimentare in continut. */
.dc-service-seo__body h2 { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: clamp(26px, 3.2vw, 42px); line-height: 1.08; letter-spacing: -.025em; margin: 0; }
.dc-service-seo__body h3 { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: clamp(21px, 2.2vw, 28px); line-height: 1.2; letter-spacing: -.02em; margin: 8px 0 0; }
.dc-service-seo__body h2 + p, .dc-service-seo__body h3 + p { margin-top: -4px; }
.dc-service-seo__body ul, .dc-service-seo__body ol { margin: 0; padding-left: 22px; display: flex; flex-direction: column; gap: 8px; }
.dc-service-seo__body li { font-size: 16.5px; line-height: 1.78; color: #3a463f; }
.dc-service-seo__body a { color: var(--accent, #0E6B5E); text-decoration: underline; text-underline-offset: 2px; }
.dc-service-seo__body img { max-width: 100%; height: auto; border-radius: var(--radius, 16px); }
.dc-service-seo__body blockquote { margin: 0; padding: 4px 0 4px 20px; border-left: 3px solid var(--accent, #0E6B5E); font-size: 17.5px; line-height: 1.7; color: #2b352f; }

/* Beneficiile tratamentului (fundal inchis, carduri albe) */
.dc-service-benefits__title { color: #fff; }
.dc-service-benefits__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; }
.dc-service-benefits .dc-feature { background: #fff; }

/* FAQ (acordeon, o coloana, carduri crem pe fundal alb) */
.dc-service-faq { background: #fff; }
.dc-service-faq__inner { max-width: 900px; margin: 0 auto; padding: clamp(56px, 7vw, var(--section-spacing, 110px)) 15px; }
/* Culorile acordeonului vin din campurile serviciului, prin variabilele puse pe
   .dc-accordion (vezi service-faq.php). Necompletate, raman cele din design. */
/* Pe pagina de serviciu casetele au alta culoare din design (nu alb), iar capul
   e transparent ca sa se vada caseta. Fundalul raspunsului il da regula de baza
   .dc-acc-body. */
.dc-service-faq .dc-acc-item { background: var(--dc-acc-bg, #F6F3EC); box-shadow: none; }
.dc-service-faq .dc-acc-head { background: transparent; }
.dc-service-faq .dc-acc-head:hover { background: color-mix(in srgb, var(--accent, #0E6B5E) 6%, transparent); }
.dc-service-faq__answer { font-size: 15.5px; line-height: 1.7; color: #57635d; margin: 0; max-width: 66ch; }

/* Alte servicii (carusel 3/view, sageti in antet) - reutilizeaza .dc-adv / .dc-service-card */
.dc-service-related__headrow { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-bottom: 36px; }
.dc-service-related__title { margin: 0; }
.dc-service-related__nav { display: flex; align-items: center; gap: 14px; }
.dc-service-related__all { font-size: 15px; font-weight: 600; color: var(--accent, #0E6B5E); text-decoration: none; white-space: nowrap; }
.dc-service-related__arrows { display: flex; gap: 10px; }

/* ==========================================================================
   Pagini legale (Termeni si conditii / Politica de confidentialitate /
   Politica de cookies) - un singur template, continutul difera dupa slug
   (vezi inc/legal-content.php).
   ========================================================================== */


/* Corpul articolului (sectiuni numerotate + paragrafe/liste) */
.dc-legal-article { background: #F6F3EC; }
.dc-legal-article__inner { max-width: 920px; margin: 0 auto; padding: clamp(48px, 6vw, 80px) 15px; }
.dc-legal-article__sections { display: flex; flex-direction: column; gap: 40px; }
.dc-legal-article__section { scroll-margin-top: 84px; }
.dc-legal-article__heading { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: clamp(23px, 2.6vw, 32px); line-height: 1.12; letter-spacing: -.02em; margin: 0 0 8px; display: flex; align-items: baseline; gap: 14px; }
.dc-legal-article__num { font-family: 'Hanken Grotesk', sans-serif; font-size: 16px; font-weight: 700; color: var(--accent, #0E6B5E); flex: none; letter-spacing: .02em; }
.dc-legal-article__divider { height: 1px; background: rgba(20, 32, 28, .1); margin: 0 0 20px; }
.dc-legal-article__blocks { display: flex; flex-direction: column; gap: 16px; }
.dc-legal-article__para { font-size: 18px; line-height: 1.5; color: #3a463f; margin: 0; }
.dc-legal-article__list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 5px; }
.dc-legal-article__list li { position: relative; padding-left: 26px; font-size: 18px; line-height: 1.66; color: #3a463f; }
.dc-legal-article__list li::before { content: ''; position: absolute; left: 0; top: 9px; width: 7px; height: 7px; border-radius: 50%; background: var(--accent, #0E6B5E); }
/* Textul scris in editorul WordPress: fiecare "Titlu 2" devine o sectiune
   numerotata automat, cu linie despartitoare. Restul elementelor primesc
   stilurile documentului, fara clase in continut. */
.dc-legal-article__body { counter-reset: dc-legal-section; display: flex; flex-direction: column; gap: 16px; }
.dc-legal-article__body h2 { counter-increment: dc-legal-section; font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: clamp(23px, 2.6vw, 32px); line-height: 1.12; letter-spacing: -.02em; display: flex; align-items: baseline; gap: 14px; margin: 24px 0 20px; padding-bottom: 8px; border-bottom: 1px solid rgba(20, 32, 28, .1); }
.dc-legal-article__body > h2:first-child { margin-top: 0; }
.dc-legal-article__body h2::before { content: counter(dc-legal-section, decimal-leading-zero); font-family: 'Hanken Grotesk', sans-serif; font-size: 16px; font-weight: 700; color: var(--accent, #0E6B5E); flex: none; letter-spacing: .02em; }
.dc-legal-article__body h3 { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: clamp(19px, 2vw, 23px); line-height: 1.2; margin: 8px 0 0; }
.dc-legal-article__body p { font-size: 18px; line-height: 1.5; color: #3a463f; margin: 0; }
.dc-legal-article__body ul, .dc-legal-article__body ol { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 5px; }
.dc-legal-article__body li { position: relative; padding-left: 26px; font-size: 18px; line-height: 1.66; color: #3a463f; }
.dc-legal-article__body ul li::before { content: ''; position: absolute; left: 0; top: 9px; width: 7px; height: 7px; border-radius: 50%; background: var(--accent, #0E6B5E); }
.dc-legal-article__body ol { counter-reset: dc-legal-item; }
.dc-legal-article__body ol li { counter-increment: dc-legal-item; }
.dc-legal-article__body ol li::before { content: counter(dc-legal-item) '.'; position: absolute; left: 0; top: 0; font-weight: 700; color: var(--accent, #0E6B5E); }
.dc-legal-article__body a { color: var(--accent, #0E6B5E); text-decoration: underline; text-underline-offset: 2px; }
.dc-legal-article__body table { width: 100%; border-collapse: collapse; font-size: 16px; }
.dc-legal-article__body th, .dc-legal-article__body td { border: 1px solid rgba(20, 32, 28, .12); padding: 10px 12px; text-align: left; }

.dc-legal-article__callout { background: #fff; border: 1px solid rgba(20, 32, 28, .1); border-radius: calc(var(--radius, 16px) + 4px); padding: 26px 28px; display: flex; align-items: flex-start; gap: 16px; margin-top: 8px; }
.dc-legal-article__callout-icon { width: 64px; height: 64px; border-radius: 12px; background: color-mix(in srgb, var(--accent, #0E6B5E) 10%, #fff); color: var(--accent, #0E6B5E); display: flex; align-items: center; justify-content: center; flex: none; }
.dc-legal-article__callout-title { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-size: 19px; font-weight: 600; letter-spacing: -.01em; margin-bottom: 6px; }
.dc-legal-article__callout-text { font-size: 15px; line-height: 1.6; color: #57635d; margin: 0; }
.dc-legal-article__callout-text a { color: var(--accent, #0E6B5E); font-weight: 600; text-decoration: none; }

/* Date de contact + harta */

/* Ajustari specifice paginii "DanturÃ„Æ’ fixÃ„Æ’" pentru componente partajate cu alte
   pagini (comparatie, preturi, echipa, cazuri video) - scopate pe body-ul paginii
   (page-template-dantura-fixa) ca sa nu afecteze aparitiile lor de pe alte pagini. */
.page-template-dantura-fixa .dc-comparison .dc-shell { padding-top: 0; padding-bottom: 0; }
.page-template-dantura-fixa .dc-risks .dc-shell { padding-top: 0; }
.page-template-dantura-fixa .dc-steps .dc-shell { padding-top: 0; }
.page-template-dantura-fixa .dc-team { background: #fff; }
/* :not(.df-media) - regula e pentru grila de cazuri filmate, care vine lipita de
   blocul de deasupra. Aparitiile media sunt o sectiune de sine statatoare si isi
   pastreaza spatiul standard de sus. */
.page-template-dantura-fixa .dc-cazuri-video:not(.df-media) .dc-cazuri-video__inner { padding-top: 0; }
.page-template-dantura-fixa .dc-cazuri-video .dc-vcard__role { display: none; }
.page-template-dantura-fixa .dc-certs .dc-shell { padding-top: 0; }

/* Ajustari specifice paginii "Aparate Dentare": blocul dinaintea fiecaruia isi
   are deja spatiul lui de jos (110px), asa ca inca 110px sus se adunau si
   lasau un gol dublu. Taiem spatiul de sus, ca golul dintre blocuri sa ramana
   cei 110px standard. */
.page-template-aparate-dentare .dc-orto-feats .dc-shell { padding-top: 0; }
.page-template-aparate-dentare .orto-video .dc-cazuri-video__inner { padding-top: 0; }
.page-template-aparate-dentare .ad-testimoniale .dc-cazuri-video__inner { padding-top: 0; }

/* ==========================================================================
   3. FUNDATIA + UTILITARELE DESIGNULUI (migrate din stomatologie.css)
   ========================================================================== */
:root {
	--accent: #0E6B5E;
	--radius: 16px;
	--hfont: 'Newsreader', Georgia, serif;
}

/* Radacina designului (echivalentul lui rootStyle din DC).
   Nu redeclara aici --accent/--radius/--hfont: clasa .dc-root sta pe <body>, iar
   o declaratie pe <body> bate valoarea mostenita de la <html>, deci ar anula
   suprascrierile din "Setări Temă" (injectate pe :root, vezi
   inc/theme-options-output.php). Valorile implicite sunt in blocul :root de mai sus. */

/* Reia stilul de baza din blocul <style> al designului. */
body.dc-page {
	margin: 0;
	overflow-x: hidden;
	font-family: var(--font-base, 'Hanken Grotesk', system-ui, sans-serif);
	background: #F6F3EC;
	color: var(--text, #14201C);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

.dc-page ::selection {
	background: var(--accent, #0E6B5E);
	color: #fff;
}

/* Titlul + subtitlul fiecarui bloc (grupul centrat cu animatia dvUp) - latime
   maxima uniforma de 1024px pe toate sectiunile. Vizeaza doar aceste grupuri de
   titluri, nu cardurile sau banner-ele CTA pe toata latimea. */
.dc-page [style*="animation:dvUp"][style*="text-align:center"][style*="margin:0 auto"] {
	max-width: 1024px !important;
}

/* ==========================================================================
   Keyframe-uri (din design)
   ========================================================================== */
@keyframes dvUp {
	from { opacity: 0; transform: translateY(24px); }
	to   { opacity: 1; transform: none; }
}
@keyframes drift {
	0%, 100% { background-position: 0% 50%; }
	50%      { background-position: 100% 50%; }
}
@keyframes marqL {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}
@keyframes marqR {
	from { transform: translateX(-50%); }
	to   { transform: translateX(0); }
}

/* ==========================================================================
   Clase-helper (din design)
   ========================================================================== */
/* Utilitar de ascundere. */
.dc-hidden { display: none !important; }

/* Acordeon preturi (pagina "PreÃˆâ€ºuri"). */
.dc-acc-body { display: none; }
.dc-acc-item.is-open .dc-acc-body { display: block; }
.dc-acc-item.is-open .dc-acc-head { background: var(--dc-acc-active-bg, color-mix(in srgb, var(--accent, #0E6B5E) 5%, #fff)); }
.dc-acc-chev { transition: transform .25s; }
.dc-acc-item.is-open .dc-acc-chev { transform: rotate(180deg); }

/* Timeline comentarii Facebook de pe pagina "Testimoniale" (din designul paginii). */
.fb-tl {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px 44px;
}
@media (max-width: 820px) {
	.fb-tl { grid-template-columns: 1fr; }
}

/* Grila inainte/dupa: 3 cazuri pe rand. */
.ba-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}
@media (max-width: 1100px) {
	.ba-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
	.ba-grid { grid-template-columns: 1fr; }
}

/* Varianta slider a aceleiasi galerii: caruselul generic [data-carousel] din
   stomatologie.js, doar cu buline (fara sageti). Latimea cardurilor si pasul le
   calculeaza JS-ul din atributele data-perview si data-gap, deci aici ramane
   doar spatiul de sub track si ascunderea unei buline singure (o singura pagina
   = nimic de navigat, ca la .dc-vpages:empty de la cazurile filmate). */
.dc-ba-carousel .dc-carousel-viewport { padding-bottom: 4px; }
.dc-ba-carousel .dc-carousel-dots:has(.dc-dot:only-child) { display: none; }

.mq {
	overflow: hidden;
	width: 100%;
}
.mq:hover .mq-track {
	animation-play-state: paused;
}

/* Zonele cu scroll propriu: lista playlist-ului, coloanele de comentarii
   Facebook si textul unei recenzii.

   Bara e in culoarea accent si ramane VIZIBILA permanent. Pe iOS si macOS,
   Safari deseneaza implicit bare "overlay", care apar doar in timpul derularii
   si dispar imediat - asa ca vizitatorul nu vede ca mai e continut dedesubt.
   `-webkit-appearance: none` impreuna cu o latime explicita pe ::-webkit-scrollbar
   forteaza bara clasica, mereu prezenta; `overflow-y: scroll` (nu `auto`) tine
   banda pe loc si cand textul incape, ca inaltimea sa nu sara. */
.pl-scroll,
.dc-review__text {
	overflow-y: scroll;
	scrollbar-width: thin;
	scrollbar-color: var(--accent, #0E6B5E) rgba(20, 32, 28, .1);
}
.pl-scroll::-webkit-scrollbar,
.dc-review__text::-webkit-scrollbar {
	width: 8px;
	-webkit-appearance: none;
}
.pl-scroll::-webkit-scrollbar-thumb,
.dc-review__text::-webkit-scrollbar-thumb {
	background: var(--accent, #0E6B5E);
	border-radius: 8px;
}
.pl-scroll::-webkit-scrollbar-track,
.dc-review__text::-webkit-scrollbar-track {
	background: rgba(20, 32, 28, .1);
	border-radius: 8px;
}

/* Respecta preferinta de reducere a miscarii. */
@media (prefers-reduced-motion: reduce) {
	.dc-page *,
	.mq-track {
		animation: none !important;
	}
	.dc-page {
		scroll-behavior: auto;
	}
}

/* ==========================================================================
   Meniul mobil: panou pe tot ecranul, care coboara de sus.

   Butonul hamburger ramane deasupra panoului si se transforma in "X", asa ca
   logo-ul si comanda de inchidere stau tot timpul in acelasi loc. Panoul
   aluneca sub bara de header (z-index mai mic), deci antetul pare ca pluteste
   peste el, fara sa duplicam logo-ul in markup.
   ========================================================================== */
.dc-nav-toggle {
	display: none;
	position: relative;
	/* Peste panou (z-index 1), ca butonul sa ramana la indemana cat e deschis. */
	z-index: 2;
	width: 46px;
	height: 46px;
	border: 1px solid rgba(20, 32, 28, .14);
	border-radius: 13px;
	background: #fff;
	color: var(--text, #14201C);
	cursor: pointer;
	align-items: center;
	justify-content: center;
	flex: none;
	transition: background .25s ease, border-color .25s ease;
}
.dc-nav-toggle:hover { border-color: color-mix(in srgb, var(--accent, #0E6B5E) 40%, transparent); }
.dc-nav-toggle[aria-expanded="true"] { background: var(--accent, #0E6B5E); border-color: var(--accent, #0E6B5E); color: #fff; }

.dc-nav-toggle__box { position: relative; display: block; width: 20px; height: 14px; }
.dc-nav-toggle__bar {
	position: absolute;
	left: 0;
	width: 100%;
	height: 1.8px;
	border-radius: 2px;
	background: currentColor;
	transition: transform .34s cubic-bezier(.4, 0, .2, 1), opacity .2s ease, width .34s cubic-bezier(.4, 0, .2, 1);
}
.dc-nav-toggle__bar:nth-child(1) { top: 0; }
.dc-nav-toggle__bar:nth-child(2) { top: 6.1px; width: 74%; }
.dc-nav-toggle__bar:nth-child(3) { top: 12.2px; }
.dc-nav-toggle[aria-expanded="true"] .dc-nav-toggle__bar:nth-child(1) { transform: translateY(6.1px) rotate(45deg); }
.dc-nav-toggle[aria-expanded="true"] .dc-nav-toggle__bar:nth-child(2) { opacity: 0; width: 100%; }
.dc-nav-toggle[aria-expanded="true"] .dc-nav-toggle__bar:nth-child(3) { transform: translateY(-6.1px) rotate(-45deg); }

/* Elementele care apar doar in panou. */
.dc-nav__arrow,
.dc-nav__actions { display: none; }

@media (max-width: 1080px) {
	.dc-nav-toggle { display: inline-flex; }

	.dc-nav {
		position: fixed;
		inset: 0;
		/* Straturile se compara in interiorul antetului (care are z-index 60, deci
		   e deja peste pagina): panoul dedesubt, logo-ul si butonul deasupra lui. */
		z-index: 1;
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		/* "safe" conteaza: cu lista mai lunga decat ecranul (submeniul o mai
		   alungeste), o centrare obisnuita ar impinge primele randuri peste logo
		   si dincolo de marginea de sus, de unde nu se mai poate derula. */
		justify-content: safe center;
		gap: 0 !important;
		padding: clamp(90px, 14vh, 130px) clamp(20px, 6vw, 56px) clamp(28px, 5vh, 48px);
		background: linear-gradient(180deg, #F6F3EC 0%, #FFFFFF 78%);
		overflow-y: auto;
		overscroll-behavior: contain;

		/* Inchis: ridicat deasupra ecranului si scos din navigarea cu tastatura. */
		transform: translateY(-100%);
		visibility: hidden;
		transition: transform .52s cubic-bezier(.32, .72, 0, 1), visibility 0s linear .52s;
	}
	.dc-nav.is-open {
		transform: translateY(0);
		visibility: visible;
		transition: transform .52s cubic-bezier(.32, .72, 0, 1), visibility 0s;
	}

	.dc-nav__link {
		display: flex !important;
		align-items: center;
		justify-content: space-between;
		gap: 18px;
		padding: clamp(14px, 2.4vh, 20px) 2px;
		border-bottom: 1px solid rgba(20, 32, 28, .09);
		font-family: var(--hfont, 'Newsreader', Georgia, serif);
		font-size: clamp(26px, 7vw, 40px);
		font-weight: 400;
		line-height: 1.1;
		letter-spacing: -.02em;
		color: var(--text, #14201C);
		white-space: normal !important;

		/* Fiecare rand intra putin dupa cel de dinainte (--dc-nav-i vine din markup). */
		opacity: 0;
		transform: translateY(-14px);
		transition: opacity .4s ease, transform .4s cubic-bezier(.32, .72, 0, 1);
	}
	.dc-nav.is-open .dc-nav__link,
	.dc-nav.is-open .dc-nav__actions {
		opacity: 1;
		transform: translateY(0);
		transition-delay: calc(.16s + var(--dc-nav-i, 0) * .045s);
	}
	/* Linia de sus doar pe primul rand al panoului - fie link simplu, fie parinte
	   de submeniu. Nescopat, ':first-of-type' ar prinde si parintele din fiecare
	   grup, adaugand linii in mijlocul listei. */
	.dc-nav > .dc-nav__link:first-of-type,
	.dc-nav > *:first-child .dc-nav__link { border-top: 1px solid rgba(20, 32, 28, .09); }
	.dc-nav__link.is-active { color: var(--accent, #0E6B5E); font-weight: 500; }

	/* In panou nu exista hover: grupul devine un simplu rand, iar submeniul sta
	   mereu deschis, indentat sub parinte. Sageata in jos nu mai are rost. */
	.dc-nav__item--has-sub { display: block; }
	.dc-nav__caret { display: none; }
	.dc-nav__sub {
		position: static;
		min-width: 0;
		margin: 0;
		padding: 0 0 clamp(8px, 1.6vh, 14px) 18px;
		background: none;
		border: 0;
		border-radius: 0;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		transform: none;
		transition: none;
	}
	.dc-nav__sub::before { display: none; }
	.dc-nav__sublink {
		padding: clamp(9px, 1.6vh, 13px) 2px;
		border-radius: 0;
		font-family: var(--hfont, 'Newsreader', Georgia, serif);
		font-size: clamp(19px, 4.6vw, 26px);
		font-weight: 400;
		color: #57635d;
		white-space: normal;
	}
	.dc-nav__sublink:hover,
	.dc-nav__sublink:focus-visible { background: none; }

	.dc-nav__arrow {
		display: inline-flex;
		flex: none;
		color: var(--accent, #0E6B5E);
		opacity: 0;
		transform: translateX(-8px);
		transition: opacity .25s ease, transform .25s ease;
	}
	.dc-nav__link:hover .dc-nav__arrow,
	.dc-nav__link:focus-visible .dc-nav__arrow,
	.dc-nav__link.is-active .dc-nav__arrow { opacity: 1; transform: translateX(0); }

	.dc-nav__actions {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 14px;
		margin-top: clamp(26px, 5vh, 44px);
		opacity: 0;
		transform: translateY(-14px);
		transition: opacity .4s ease, transform .4s cubic-bezier(.32, .72, 0, 1);
	}
	.dc-nav__cta {
		width: 100%;
		padding: 17px 28px;
		font-size: 17px;
		border-radius: 15px;
	}
	.dc-nav__phone {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 9px;
		padding: 6px;
		font-size: 16px;
		font-weight: 600;
		color: var(--accent, #0E6B5E);
		text-decoration: none;
	}

	/* Logo-ul ramane vizibil peste panou, langa butonul de inchidere. */
	.dc-logo { position: relative; z-index: 2; }

	/* Cat e panoul deschis, pagina de dedesubt nu se mai deruleaza, iar bara
	   flotanta se retrage: butonul de programare din panou o inlocuieste. */
	body.dc-nav-open { overflow: hidden; }
	body.dc-nav-open .dc-fab {
		opacity: 0;
		visibility: hidden;
		transform: translateX(-50%) translateY(12px);
		transition: opacity .25s ease, transform .25s ease, visibility 0s linear .25s;
	}

	/* CTA-ul din bara de header ramane doar pe ecrane mari: in panou avem altul. */
	.dc-header-cta { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
	.dc-nav,
	.dc-nav__link,
	.dc-nav__actions,
	.dc-nav-toggle__bar { transition-duration: .01ms !important; transition-delay: 0s !important; }
}

/* ==========================================================================
   Responsive pentru grilele fixe din design (repeat(3,...), spliturile 2-col
   si footer-ul). Clasele sunt adaugate in markup langa stilurile inline.
   ========================================================================== */
@media (max-width: 960px) {
	.dc-playlist-split,
	.dc-contact-split {
		grid-template-columns: 1fr !important;
	}
	.dc-playlist-list { max-height: 220px;}
}

@media (max-width: 720px) {
	.dc-grid-2 { grid-template-columns: 1fr !important; }
	.dc-footer-grid {
		grid-template-columns: 1fr 1fr !important;
		gap: 32px 32px !important;
	}
	/* Bara fixa de jos (Suna acum / WhatsApp) mai compacta pe mobil. */
	.dc-fab a { min-width: 0 !important; flex: 1; }
}

@media (max-width: 480px) {
	.dc-footer-grid { grid-template-columns: 1fr !important; }
}

/* ==========================================================================
   Blog: lista de articole (templates/blog.php) + articol unic (single.php)
   ========================================================================== */
/* Tinta ancorelor (butoanele trio de pe Dantura fixa): titlul sa nu treaca sub headerul fix. */
.dc-anchor { scroll-margin-top: 96px; }

.dc-btn--ghost { padding: 13px 26px; background: transparent; color: var(--text, #14201C); border: 1px solid rgba(20, 32, 28, .2); }
.dc-btn--ghost:hover { border-color: var(--accent, #0E6B5E); color: var(--accent, #0E6B5E); }

.dc-blog { background: #F6F3EC; }
.dc-blog__empty { text-align: center; color: #57635d; font-size: 16px; }
.dc-blog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
@media (max-width: 980px) { .dc-blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .dc-blog-grid { grid-template-columns: 1fr; } }

.dc-blog-card { display: flex; flex-direction: column; background: #fff; border: 1px solid rgba(20, 32, 28, .1); border-radius: var(--radius, 16px); overflow: hidden; transition: transform .25s cubic-bezier(.16, .8, .24, 1), box-shadow .25s; }
.dc-blog-card:hover { transform: translateY(-4px); box-shadow: 0 22px 44px -22px rgba(20, 32, 28, .28); }
.dc-blog-card__media { position: relative; display: block; aspect-ratio: 3/2; overflow: hidden; }
.dc-blog-card__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.dc-blog-card:hover .dc-blog-card__img { transform: scale(1.04); }
.dc-blog-card__body { display: flex; flex-direction: column; gap: 10px; padding: 22px 24px 26px; flex: 1; }
.dc-blog-card__meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 12.5px; color: #57635d; }
.dc-blog-card__sep { opacity: .5; }
.dc-blog-card__cats a { color: var(--accent, #0E6B5E); text-decoration: none; }
.dc-blog-card__title { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: 22px; line-height: 1.22; letter-spacing: -.015em; margin: 0; }
.dc-blog-card__title a { color: #14201C; text-decoration: none; }
.dc-blog-card__title a:hover { color: var(--accent, #0E6B5E); }
.dc-blog-card__excerpt { font-size: 16px; line-height: 1.5; color: #57635d; margin: 0; display: -webkit-box;
  -webkit-line-clamp: 3; line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;}
.dc-blog-card__more { display: inline-flex; align-items: center; gap: 7px; margin-top: auto; padding-top: 6px; font-size: 14px; font-weight: 600; color: var(--accent, #0E6B5E); text-decoration: none; }
.dc-blog-card__more:hover { gap: 11px; }

.dc-blog-pagination { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 9px; margin-top: 48px; }
.dc-blog-pagination .page-numbers { min-width: 44px; height: 44px; padding: 0 14px; display: inline-flex; align-items: center; justify-content: center; border-radius: calc(var(--radius, 16px) - 6px); border: 1px solid rgba(20, 32, 28, .18); background: #fff; color: #14201C; font-size: 15px; font-weight: 600; text-decoration: none; transition: transform .2s, border-color .2s, background .2s; }
.dc-blog-pagination a.page-numbers:hover { transform: translateY(-2px); border-color: var(--accent, #0E6B5E); }
.dc-blog-pagination .page-numbers.current { border-color: var(--accent, #0E6B5E); background: var(--accent, #0E6B5E); color: #fff; }
.dc-blog-pagination .page-numbers.dots { border: 0; background: transparent; }

/* Articol unic - fundal alb pe tot (hero + content), nu cremul paginii.
   Vizeaza doar articolele de blog (body.single-post), nu si paginile de serviciu. */
body.single-post { background: #fff; }
.dc-article { max-width: 1240px; margin: 0 auto; padding: 40px 15px 88px; }
.dc-article__media { margin: 0 0 34px; border-radius: calc(var(--radius, 16px) + 2px); overflow: hidden; box-shadow: 0 24px 50px -28px rgba(20, 32, 28, .5); }
.dc-article__img { display: block; width: 100%; height: auto; }
.dc-article__body img {display: inline-block;}
/* "Distribuie articolul" - butoane neutre care capata culoarea retelei la hover.
   Vezi template-parts/components/article-share.php. */
.dc-article-share { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin: 34px 0 0; padding-top: 26px; border-top: 1px solid rgba(20, 32, 28, .12); }
.dc-article-share__label { font-size: 15px; font-weight: 600; color: var(--text, #14201C); }
.dc-article-share__links { display: flex; align-items: center; gap: 10px; }
.dc-article-share__link { width: 44px; height: 44px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(20, 32, 28, .14); background: #fff; color: #3a463f; text-decoration: none; transition: transform .2s, background .2s, border-color .2s, color .2s; }
.dc-article-share__link:hover { transform: translateY(-2px); color: #fff; }
.dc-article-share__link--facebook:hover { background: #1877F2; border-color: #1877F2; }
.dc-article-share__link--x:hover { background: #111; border-color: #111; }
.dc-article-share__link--linkedin:hover { background: #0A66C2; border-color: #0A66C2; }
.dc-article-share__link--whatsapp:hover { background: var(--wa-color, #25D366); border-color: var(--wa-color, #25D366); }
@media (max-width: 480px) { .dc-article-share { gap: 10px; } .dc-article-share__link { width: 40px; height: 40px; } }

/* Grila de fotografii care deschid lightbox-ul comun al temei (initLightbox):
   galeria optionala a unui articol (single.php, camp ACF "Galerie foto") si
   blocul "Poze pacienți" de pe pagina Testimoniale (testimoniale-photos.php).
   Aceleasi placi, doar contextul difera - de aceea selectorii sunt grupati. */
.dc-article-gallery { margin: 34px 0 0; }
/* Fundalul din design; se poate rescrie din ACF (--dc-section-bg + .dc-has-bg). */
.dc-pphotos { background: #fff; }
.dc-article-gallery__grid,
.dc-pphotos__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.dc-article-gallery__item,
.dc-pphotos__item { position: relative; aspect-ratio: 4/3; width: 100%; padding: 0; border: 1px solid rgba(20, 32, 28, .1); border-radius: var(--radius, 16px); overflow: hidden; background: #f2eee3; cursor: pointer; display: block; transition: box-shadow .25s, transform .25s; }
.dc-article-gallery__item:hover,
.dc-pphotos__item:hover { transform: translateY(-3px); box-shadow: 0 20px 40px -20px rgba(20, 32, 28, .34); }
.dc-article-gallery__item .dc-media-img,
.dc-pphotos__item .dc-media-img { position: absolute; inset: 0; }
/* Fotografiile verticale sunt taiate ca sa umple placa lata: prinse la mijloc,
   taietura cade fix peste cap. Le lipim de marginea de sus, unde stau oamenii
   in poza. */
.dc-pphotos__item .dc-media-img { object-position: 50% 20%; }
.dc-article-gallery__over,
.dc-pphotos__over { position: absolute; inset: 0; opacity: 0; transition: opacity .25s; display: flex; align-items: center; justify-content: center; }
.dc-article-gallery__item:hover .dc-article-gallery__over,
.dc-article-gallery__item:focus-visible .dc-article-gallery__over,
.dc-pphotos__item:hover .dc-pphotos__over,
.dc-pphotos__item:focus-visible .dc-pphotos__over { opacity: 1; background: color-mix(in srgb, var(--accent, #0E6B5E) 30%, transparent); }
.dc-article-gallery__over-btn,
.dc-pphotos__over-btn { width: 44px; height: 44px; border-radius: 50%; background: rgba(255, 255, 255, .92); display: flex; align-items: center; justify-content: center; color: var(--text, #14201C); }
/* Blocul de pe pagina tine acelasi numar de coloane ca galeria din articol, dar
   cu spatiu ceva mai mare intre placi - are toata latimea paginii la dispozitie. */
@media (min-width: 961px) { .dc-pphotos__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; } }
@media (max-width: 720px) {
	.dc-article-gallery__grid,
	.dc-pphotos__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
}

.dc-article__body { font-size: 17px; line-height: 1.75; color: #2f3a34; }
.dc-article__body > * { margin: 0 0 22px; }
.dc-article__body h2 { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: 30px; line-height: 1.2; letter-spacing: -.02em; color: #14201C; margin: 40px 0 16px; }
.dc-article__body h3 { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: 24px; color: #14201C; margin: 32px 0 14px; }
.dc-article__body a { color: var(--accent, #0E6B5E); }
.dc-article__body ul, .dc-article__body ol { padding-left: 22px; }
.dc-article__body li { margin: 0 0 5px; }
.dc-article__body img { max-width: 100%; height: auto; border-radius: var(--radius, 16px); }
.dc-article__body blockquote { margin: 30px 0; padding: 6px 0 6px 24px; border-left: 3px solid var(--accent, #0E6B5E); font-family: var(--hfont, 'Newsreader', Georgia, serif); font-size: 21px; font-style: italic; line-height: 1.5; color: #14201C; }
.dc-article__body blockquote p { margin: 0; }
.dc-article__foot { margin-top: 40px; padding-top: 28px; border-top: 1px solid rgba(20, 32, 28, .1); }

/* ==========================================================================
   Imagini din campurile ACF (galerii, carduri, hero, inainte/dupa)
   Blocurile pastreaza exact aceleasi dimensiuni ca in design; imaginea doar
   umple containerul, iar placeholder-ul (.dc-ph) ramane doar cand lipseste.
   ========================================================================== */
.dc-media-img { display: block; width: 100%; height: 100%; object-fit: cover; }

.dc-gtile .dc-media-img,
.dc-member__photo .dc-media-img,
.dc-baview__pane .dc-media-img,
.dc-benefit__media .dc-media-img,
.dc-service-card__media .dc-media-img,
.dc-welcome__slide .dc-media-img,
.dc-dantura__media .dc-media-img { position: absolute; inset: 0; }

.dc-dantura__media { position: relative; }

/* Etichetele si insignele raman deasupra imaginii care umple containerul. */
.dc-baview__tag { position: relative; }
.dc-baview__tag,
.dc-service-card__num,
.dc-benefit__badge,
.dc-gtile__over { z-index: 1; }

.dc-welcome__slide .dc-media-img { border-radius: inherit; }
.dc-cert-card--has-img { padding: 0; }

/* Iconita incarcata din ACF, in locul pictogramei SVG din design (abordare,
   acreditari). Se incadreaza in caseta existenta, fara sa o umple. */
.dc-icon-img { width: 28px; height: 28px; object-fit: contain; }

/* Culoare de fundal aleasa per sectiune din ACF. Selectorul e mai specific
   decat regulile de sectiune (.dc-benefits, .dc-welcome etc.), deci le poate
   suprascrie; variabila vine din markup doar cand s-a ales alta culoare decat
   cea din design - vezi demo_site_bg_attrs() in inc/acf-render.php. */
.dc-page .dc-has-bg { background: var(--dc-section-bg); }

/* Lightbox galerie: imaginea reala inlocuieste placeholder-ul grafic. */
.dc-lightbox__img { width: 100%; height: 100%; object-fit: contain; background: #0f1815; }
.dc-lightbox__placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; }
.dc-lightbox__placeholder[hidden] { display: none; }
.dc-page .dc-simple-hero--photo {
	position: relative;
	background-image: var(--dc-hero-img);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}
.dc-page .dc-simple-hero--photo::before {
	content: '';
	position: absolute;
	inset: 0;
	background: var(--dc-hero-scrim, rgba(255, 255, 255, .7));
}
.dc-simple-hero__inner { position: relative; z-index: 1; }
.dc-contact-socials__inner {padding-top: 90px;}

@media (min-width: 1024px) and (max-width: 1200px) {
	.dc-why__grid {grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));}
	.home .dc-cta-banner .dc-cta-banner__media {aspect-ratio: 4 / 3;}
	.dc-footer-grid {gap: 40px;}
	.dc-contact-details__grid {grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));}
	.dc-contact-card {padding: 20px;}
	.dc-contact-details__grid {gap: 12px;}
	.dc-contact-card__line {line-height: 1.4}
	.dc-social {width: 23.6%;}
	.dc-form-card {padding: 20px}
	.dc-form__note {font-size: 12px;}
	.dc-404__inner {padding-top: 40px;}
	.dc-df-hero__title {font-size: 40px;}
	.dc-cta-btn {font-size: 16px; padding: 16px 18px;}
	.dc-df-hero__inner .dc-cta-btn--glass {padding: 18px}
	.dc-compare-imgs {margin-bottom: 12px}
	.dc-df-after__img {height: 500px}
	.dc-plan__name {font-size: 24px;}
	.dc-plan {
		padding: 30px 20px
	}
}

@media (min-width: 1024px) and (max-width: 1365px) {
	.dc-accred__grid {grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));}
	.dc-accred-card__name {font-size: 16px;}
	.dc-accred-card__desc {line-height: 1.3}
	.ba-grid {grid-template-columns: repeat(3, minmax(0, 1fr));}
	.dc-baview__caption {font-size: 14px; line-height: 1.4}
	.dc-why-card__body {padding: 15px;}
	.dc-playlist__stage--fixed {height: 400px;}
	.dc-playlist-list {max-height: 400px}
	.dc-thankyou__title {max-width: 100%;}
	.dc-blog-card__media {aspect-ratio: 3.6 / 2;}
	.dc-service-card__media {aspect-ratio: 16 / 9;}
}

@media (min-width: 641px) and (max-width: 1023px) {
	.dc-footer-grid {grid-template-columns: repeat(3, 1fr) !important;gap: 40px !important;}
	.dc-footer-grid > :first-child { grid-column: 1 / -1; }
	.dc-footer__brand {justify-content: center;}
	.dc-footer__desc {max-width: 80%; text-align: center; margin: auto;}
	.dc-footer__socials {margin-top: 24px; justify-content: center;}
	.dc-footer__bottom-inner {padding-bottom: 100px}
	.dc-fab__btn {width: 50%;}
	.dc-fab {width: 100%; padding: 0 15px;}
	.dc-home-hero__inner {padding: 80px 15px; min-height: auto;}
	.dc-home-hero {min-height: auto;}
	.dc-accred-card{gap: 10px}
	.dc-feature__desc {font-size: 16px;}
	.dc-feature {padding: 20px}
	.dc-vgrid {gap: 15px;}
	.home .dc-cases-compare .dc-baview-item:last-child {display: none;}
	.dc-baview__caption {font-size: 14px;}
	.dc-dantura {grid-template-columns: repeat(1, 1fr)}
	.dc-dantura__btn {margin-top: 0;}
	.dc-services .dc-dantura > div:first-child {order: 2}
	.dc-services .dc-dantura > div:last-child {order: 1}
	.dc-dantura__media {aspect-ratio: 5 / 3;}
	.dc-dantura__text {max-width: 100%;}
	.dc-benefit__media {aspect-ratio: 5 / 3;}
	.dc-why-card__tag,.dc-benefit__tag {font-size: 16px;}
	.dc-playlist__stage--fixed {height: 460px;}
	.dc-playlist-list {max-height: 320px}
	.dc-cta-banner__content {justify-content: center;text-align: center;}
	.dc-cta-banner__title, .dc-cta-banner__text {max-width: 100%; text-align: center; margin: auto}
	.dc-cta-banner__content .dc-cta-actions {justify-content: center; width: 100%;}
	.dc-social {width: 48.7%;}
	.dc-legal-article__body h2 {margin-bottom: 5px}
	.dc-legal-article__body li {line-height: 1.5}
	.dc-thankyou__title {max-width: 100%;}
	.dc-blog-card__media {aspect-ratio: 3.6 / 2;}
	.dc-dantura > div:first-child {order: 2;}
	.dc-dantura > div:last-child {order: 1;}
	.dc-servicii__grid {grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));}
	.dc-adv__grid {grid-template-columns: repeat(2, 1fr);}
	.dc-plan__price-val {font-size: 40px;}
	.dc-plan__name {font-size: 24px;}
	.dc-acc-head {padding: 16px 20px;}
	.dc-df-trio__title {font-size: 16px;}
	.dc-df-why__title {line-height: 1.4}
	.dc-media-feature__header {text-align: left;margin-bottom: 20px}
	.dc-media-feature__extra {margin-bottom: 20px;}
	.dc-playlist__stage--feature {min-height: 520px}
	.dc-implants__grid {grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));}
	.dc-implant-card__img {aspect-ratio: 5 / 3;}
	.dc-prosthetics__card {aspect-ratio: 1;}
}

@media only screen and (max-width: 640px) {
	.dc-cta-btn {width: 100%; padding: 14px 20px; font-size: 16px;}
	.dc-home-hero__inner {text-align: center;}
	.dc-home-hero__eyebrow-line {display: none;}
	.dc-home-hero__inner {padding: 56px 15px;min-height: auto;}
	.dc-home-hero {min-height: auto;}
	.dc-modal__title {font-size: 22px;}
	.dc-form-card .wpcf7-form-control:not([type="submit"]) {padding: 13px 15px;}
	.dc-form-card .wpcf7-form label {margin-bottom: 0px;}
	.dc-form-card .wpcf7-submit {font-size: 16px;padding: 14px;}
	.dc-modal__panel {padding: clamp(20px, 4vw, 40px);}
	.dc-form__note {font-size: 12px; line-height: 1.2}
	.dc-form-card .wpcf7-form {gap: 10px}
	.dc-section-head {margin-bottom: 24px}
	.dc-section-head__title {margin-bottom: 10px}
	.dc-section-head__title{line-height: 1.2}
	.dc-df-hero__video {min-height: 340px;}

	/* Acreditări: iconița în stânga, cu eticheta și titlul lângă ea; descrierea
	   trece dedesubt, pe toată lățimea, ca să rămână lizibilă.
	   „display: contents" desface învelișul titlu+descriere din markup, ca cele
	   două să intre direct în grila cardului. */
	.dc-accred-card {
		display: grid;
		grid-template-columns: auto 1fr;
		align-items: center;
		column-gap: 14px;
		row-gap: 2px;
		padding: 20px;
	}
	.dc-accred-card__icon {
		grid-column: 1;
		grid-row: 1 / span 2;
		width: 46px;
		height: 46px;
		border-radius: 13px;
	}
	.dc-accred-card__icon svg { width: 24px; height: 24px; }
	.dc-accred-card__tag { grid-column: 2; grid-row: 1; }
	.dc-accred-card > div:last-child { display: contents; }
	.dc-accred-card__name { grid-column: 2; grid-row: 2; margin-bottom: 0; }
	.dc-accred-card__desc { grid-column: 1 / -1; grid-row: 3; margin-top: 12px; }

	/* Blocul „Abordare" (#dececlinica): aceeași idee - iconița în stânga, titlul
	   cardului lângă ea, descrierea dedesubt, pe toată lățimea.
	   Regula e legată de secțiune, nu de .dc-feature: același card se folosește
	   și la „Avantaje", „Riscuri" și la beneficiile serviciilor, care rămân
	   neschimbate. */
	.dc-approach .dc-feature {
		display: grid;
		grid-template-columns: auto 1fr;
		align-items: center;
		gap: 0;
		column-gap: 14px;
		padding: 20px;
	}
	.dc-approach .dc-feature__icon { grid-column: 1; grid-row: 1; }
	.dc-approach .dc-feature__title { grid-column: 2; grid-row: 1; }
	.dc-approach .dc-feature__desc { grid-column: 1 / -1; grid-row: 2; margin-top: 12px; }

	/* Cardurile de pe pagina Contacte: iconița în stânga, eticheta cardului
	   (ADRESĂ / TELEFON / …) lângă ea, iar datele propriu-zise dedesubt. */
	.dc-contact-card {
		display: grid;
		grid-template-columns: auto 1fr;
		align-items: center;
		gap: 0;
		column-gap: 14px;
	}
	.dc-contact-card__icon { grid-column: 1; grid-row: 1; }
	.dc-contact-card__label { grid-column: 2; grid-row: 1; }
	.dc-contact-card__lines { grid-column: 1 / -1; grid-row: 2; margin-top: 12px; }

	/* Blocurile de avantaje - „Avantajele clinicii" (Servicii) și „Avantajele
	   danturii fixe" (Dantură fixă): iconița în stânga, titlul cardului lângă ea,
	   descrierea dedesubt. „Alte servicii" folosește și el .dc-adv, dar cu alt
	   card (.dc-service-card), deci nu e atins. */
	.dc-adv .dc-feature {
		display: grid;
		grid-template-columns: auto 1fr;
		align-items: center;
		gap: 0;
		column-gap: 14px;
		padding: 20px;
	}
	.dc-adv .dc-feature__icon { grid-column: 1; grid-row: 1; }
	.dc-adv .dc-feature__title { grid-column: 2; grid-row: 1; }
	.dc-adv .dc-feature__desc { grid-column: 1 / -1; grid-row: 2; margin-top: 12px; }

	/* „Beneficiile tratamentului" (pagina unui serviciu): iconița în stânga,
	   titlul cardului lângă ea, descrierea dedesubt. */
	.dc-service-benefits .dc-feature {
		display: grid;
		grid-template-columns: auto 1fr;
		align-items: center;
		gap: 0;
		column-gap: 14px;
		padding: 20px;
	}
	.dc-service-benefits .dc-feature__icon { grid-column: 1; grid-row: 1; }
	.dc-service-benefits .dc-feature__title { grid-column: 2; grid-row: 1; }
	.dc-service-benefits .dc-feature__desc { grid-column: 1 / -1; grid-row: 2; margin-top: 12px; }

	/* „Alte servicii": pe mobil, sus rămâne doar titlul, apoi vin cardurile, iar
	   sub ele săgețile și, la final, linkul către toate serviciile.
	   „display: contents" pe rândul de antet scoate titlul și blocul de comenzi
	   la același nivel cu caruselul, ca să le putem reordona. */
	.dc-service-related__headrow { display: contents; }
	.dc-service-related__head { display: flex; flex-direction: column; }
	.dc-service-related__title { order: 1; margin-bottom: 24px; }
	.dc-service-related__head > .dc-carousel-viewport { order: 2; }
	.dc-service-related__nav {
		order: 3;
		/* În markup butonul e înaintea săgeților; inversăm ordinea vizuală. */
		flex-direction: column-reverse;
		align-items: center;
		gap: 18px;
		margin-top: 24px;
	}
	.dc-service-related__all { font-size: 16px; }
	/* „Etapele tratamentului": numărul etapei în stânga, titlul lângă el,
	   descrierea dedesubt. Săgeata de legătură e deja ascunsă sub 1080px. */
	.dc-step {
		display: grid;
		grid-template-columns: auto 1fr;
		align-items: center;
		gap: 0;
		column-gap: 14px;
		padding: 20px;
	}
	.dc-step__num { grid-column: 1; grid-row: 1; width: 46px; height: 46px; font-size: 19px; }
	.dc-step__title { grid-column: 2; grid-row: 1; }
	.dc-step__text { grid-column: 1 / -1; grid-row: 2; margin-top: 12px; }

	/* „Proteză mobilă vs. dantură fixă": pe mobil fiecare variantă vine cu poza
	   ei, urmată imediat de lista corespunzătoare — poză proteză, dezavantaje,
	   poză dantură fixă, avantaje.
	   „display: contents" scoate pozele și panourile din containerele lor, ca să
	   le putem intercala; altfel ar rămâne două grupuri separate. */
	.dc-comparison .dc-shell { display: flex; flex-direction: column; gap: 16px; }
	.dc-comparison .dc-compare-imgs,
	.dc-comparison .dc-compare__panels { display: contents; }
	.dc-comparison .dc-section-head { order: 1; }
	.dc-comparison .dc-compare-imgs > :first-child { order: 2; }
	.dc-comparison .dc-compare-panel--cons { order: 3; }
	.dc-comparison .dc-compare-imgs > :last-child { order: 4; }
	.dc-comparison .dc-compare-panel--pros { order: 5; }
	.dc-comparison .dc-compare-panel { padding: 22px 20px; }

	.dc-scroller__label {font-size: 10px;}
	.dc-feature__title {font-size: 18px;}
	.dc-section-head__text {line-height: 1.4}
	.dc-baview__caption {font-size: 15px; line-height: 1.3}
	.dc-baview__tag {font-size: 10px;}
	.dc-ctaform__inner {padding: 50px 15px;}
	.dc-ctaform__form .send_button {transform: none;}
	.dc-form-card {padding: 30px 16px;}
	.dc-welcome__eyebrow-line {display: none;}
	.dc-welcome__eyebrow {margin-bottom: 14px}
	.dc-welcome__body {line-height: 1.4}
	.dc-welcome__mission {text-align: center;}
	.dc-welcome__slider {min-height: 360px;}
	.dc-welcome__grid {gap: 36px;}
	/* Doar placile decorative se patratizeaza pe telefon; diploma reala isi
	   pastreaza proportia ei. */
	.dc-cert-card:not(.dc-cert-card--has-img) {aspect-ratio: 3 / 3;}
	.dc-certs .dc-carousel-dots {display: none}
	.dc-carousel-controls {margin-top: 20px;}
	.dc-reviews__rating {gap: 5px;}
	.dc-reviews__rating-stars .dc-review__star {width: 26px; height: 26px;}
	.dc-reviews__head {margin-bottom: 26px;}
	.dc-cta-step__inner {padding: 50px 15px;}
	.dc-dantura {padding: 28px 15px;}
	.dc-dantura__text {line-height: 1.4;font-size: 17px; margin-bottom: 16px}
	.dc-dantura__btn {margin-top: 0; width: 100%; font-size: 16px; justify-content: center;}
	.dc-dantura > div:first-child {order: 2;}
	.dc-dantura > div:last-child {order: 1;}
	.dc-why-card__tag, .dc-benefit__tag {font-size: 16px; line-height: 1.3}
	.dc-why-card__body {padding: 18px;}
	.dc-benefit__media {aspect-ratio: 5 / 3;}
	.dc-benefit__body {padding-top: 40px}
	.dc-playlist__stage--fixed {height: 380px;}
	.dc-cta-banner__box {padding: 20px; text-align: center;}
	.dc-cta-banner__content {text-align: center; gap: 12px}
	.dc-cta-banner__text {line-height: 1.4}
	.dc-contact-split {gap: 30px; padding: 50px 15px 30px;}
	.dc-contact__map-shell {padding-bottom: 50px}
	.dc-footer__socials {margin-top: 25px;}
	.dc-footer__links {gap: 5px; font-size: 16px;}
	.dc-footer__col-title {font-size: 14px; margin-bottom: 8px;}
	.dc-fab {width: 100%; padding: 0 15px;}
	.dc-footer-grid {padding: 50px 15px 30px;}
	.dc-footer__bottom-inner {padding: 16px 15px 100px; justify-content: center; gap: 8px; flex-direction: column-reverse;}
	.dc-contact__map iframe {height: 240px;}
	.dc-social {width: 47.5%; display: block}
	.dc-contact-card {padding: 24px;}
	.dc-contact-card__icon {width: 40px;height: 40px;}
	.dc-contact-card__icon svg {width: 20px;}
	.dc-contact-details__grid {gap:6px;}
	.dc-contact-details__inner {padding-top: 50px;}
	.dc-contact-card__lines {gap: 0;}
	.dc-contact-socials__inner {padding-top: 60px}
	.dc-socials {gap: 12px;}
	.dc-social__icon {margin-bottom: 10px; width: 40px; height: 40px;}
	.dc-social {padding: 12px;}
	.dc-cform__grid {padding: 50px 15px; gap: 30px}
	.dc-cform__title, .dc-cform__text {text-align: center;}
	.dc-social__handle {margin-top: 0;}
	.dc-fab__btn {font-size: 14px;}
	.dc-legal-article__callout {display: block; padding: 16px;}
	.dc-legal-article__callout-icon {width: 44px;height: 44px; margin-bottom: 10px;}
	.dc-legal-article__body h2 {margin-bottom: 5px}
	.dc-legal-article__body li {line-height: 1.5}
	.dc-ty-contact__list {gap:8px;}
	.dc-blog .dc-shell {padding-top: 50px;}
	.dc-blog-pagination {margin-top: 30px;}
	.dc-footer__desc {max-width: 100%;}
	.dc-crumb {font-size: 10px;}
	.dc-404__inner {padding-top: 40px; padding-bottom: 70px}
	.dc-servicii .dc-shell, .dc-cazuri-video__inner {padding-top: 50px;}
	.dc-dantura {gap:30px}
	.dc-servicii__grid {grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));}
	.dc-adv__grid {grid-template-columns: repeat(1, 1fr);gap: 12px;}
	.dc-feature__icon {width: 44px;height: 44px;}
	.dc-acc-head__name {font-size: 18px}
	.dc-acc-head {padding: 20px 16px;}
	.dc-acc-body {padding: 2px 16px 14px}
	.dc-service-related__title {text-align: center;}
	.dc-testim-scroller .dc-shell {padding-top: 50px;}
	.page-template-cazuri-clinice .dc-vgrid {grid-template-columns: repeat(1, minmax(0, 1fr));gap: 12px;}
	.dc-plan__name {font-size: 24px;}
	.dc-acc-head {padding: 16px 20px;}
	.dc-pricing__inner {padding-top: 50px;}
	.dc-plan__price-val {font-size: 44px;}
	.dc-df-hero__disclaimer {font-size: 15px; text-align: center;}
	.dc-df-hero__social {display: block;}
	.dc-df-hero__avatar {width: 32px;height: 32px;}
	.dc-df-hero__avatars {justify-content: center;}
	.dc-df-hero__stars .dc-review__star {width: 20px; height: 20px;}
	.dc-df-hero__stars {font-size: 13px; justify-content: center;margin-top: 5px;}
	.dc-df-hero__social-sub {font-size: 15px;line-height: 1.3;text-align: center;}
	.dc-accred__grid {gap:10px;}
	h2.dc-section-head__title br {display: none;}
	.dc-df-checklist__row {align-items: flex-start;}
	.dc-df-checklist__q {font-size: 20px;}
	.dc-df-checklist__a, .dc-df-why__text {line-height: 1.4}
	.dc-df-donts__text{line-height: 1.4}
	.dc-df-explain__text, .dc-df-explain__goal-main {line-height: 1.3}
	.dc-df-why__card {padding: 20px}
	.dc-df-why__title, .dc-df-fit__text {line-height: 1.3}
	.dc-step__text {font-size: 16px;}
	.dc-media-feature__header {margin-bottom: 30px;}
	.dc-media-feature__extra {margin-bottom: 20px;}
	.dc-media-feature__body {gap: 9px; line-height: 1.4; text-align: center;}
	.dc-media-feature__badge {text-align: center; font-size: 10px;justify-content: center;}
	.dc-media-feature__badge svg {display: none;}
	.dc-media-feature__grid {gap:0}
	.dc-playlist__stage--feature {min-height: 360px;}
	.dc-implants__inner {padding: 64px 15px;}
	.dc-implants__intro {gap: 10px; text-align: center;}
	.dc-implants__check {justify-content: center;}
	.dc-implants__checks {gap: 6px;}
	.dc-implant-card__img {aspect-ratio: 5 / 3;}
	.dc-prosthetics__card {aspect-ratio: 3 / 3;}
	.dc-prosthetics__grid {gap: 12px}
	.dc-gtile {aspect-ratio: 4 / 4;}
	.dc-comparison .dc-shell {gap: 0;}
	.dc-compare-panel--cons {margin-top: 5px; margin-bottom: 30px}
	.dc-compare-list {gap: 12px}
	.dc-compare-panel__title {line-height: 1.4}
	.dc-compare-panel--pros {margin-top: 5px}
	.dc-compare-item__mark {width: 20px;height: 20px}
	.dc-df-after__img {height: 320px;margin-bottom: 20px;}
	.dc-df-after__item, .dc-contact__text, .dc-contact__checklist-item {line-height: 1.4}
	.dc-df-after__check {width: 20px;height: 20px;margin-top: 5px}
	.dc-risks__grid {gap: 12px;}
	.dc-pricing .dc-section-head {margin-bottom: 24px;}
	.dc-clinic-gallery__grid {grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px;}
	.dc-plan__features {gap: 6px;}
}

/* ==========================================================================
   Paginile de ortodontie (Ortodonție / Aparate Dentare / Aligners)
   Blocuri proprii acestor pagini; restul mobilierului (.dc-shell,
   .dc-section-head, butoanele) e cel comun al temei.
   ========================================================================== */

/* ---- Hero: text cu trei butoane + media ---- */
.dc-orto-hero { background: #FDFBFC; }
.dc-orto-hero__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .82fr); gap: 56px; align-items: center; }
.dc-orto-hero__content { display: flex; flex-direction: column; gap: 22px; }
.dc-orto-hero__eyebrow { display: flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--accent, #0E6B5E); }
.dc-orto-hero__eyebrow-line { width: 34px; height: 2px; background: var(--accent, #0E6B5E); flex: none; }
.dc-orto-hero__title { margin: 0; font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: var(--fs-display, 56px); line-height: 1.08; letter-spacing: -.025em; color: var(--text, #14201C); }
.dc-orto-hero__title em { font-style: italic; color: var(--accent, #0E6B5E); }
.dc-orto-hero__text { margin: 0; font-size: var(--fs-body-lg, 20px); line-height: 1.6; color: #57635d; }
.dc-orto-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; padding-top: 20px; }
/* Butoanele secundare: doar contur, ca sa ramana primul cel evidentiat. */
.dc-orto-hero__btn-ghost { background: #fff; border-color: rgba(20, 32, 28, .2); color: var(--text, #14201C); }
.dc-orto-hero__btn-ghost:hover { border-color: var(--accent, #0E6B5E); background: color-mix(in srgb, var(--accent, #0E6B5E) 6%, #fff); }
.dc-orto-hero__stats { display: flex; align-items: center; flex-wrap: wrap; gap: 22px; margin-top: 8px; padding-top: 18px; border-top: 1px solid rgba(20, 32, 28, .1); }
.dc-orto-hero__stat-sep { width: 1px; height: 58px; background: rgba(20, 32, 28, .12); }
.dc-orto-hero__stat-value { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-size: 38px; font-weight: 600; color: var(--accent, #0E6B5E); line-height: 1.1; }
.dc-orto-hero__stat-label { font-size: 16px; color: #57635d; }
.dc-orto-hero__media { position: relative; aspect-ratio: 4/3; border-radius: var(--radius, 16px); overflow: hidden; border: 1px solid rgba(20, 32, 28, .1); display: flex; align-items: center; justify-content: center; color: #9aa39c; }
.dc-orto-hero__media .dc-media-img { position: absolute; inset: 0; }

/* ---- Grila de carduri cu imagine (tipuri de aparate) ---- */
.dc-orto-cards { background: #F6F3EC; }
.dc-orto-cards__grid,
.dc-orto-feats__grid { display: grid; grid-template-columns: repeat(var(--dc-orto-cols, 4), minmax(0, 1fr)); gap: 22px; }
.dc-orto-cards__foot,
.dc-orto-feats__foot { display: flex; justify-content: center; margin-top: 44px; }
.dc-orto-card { background: var(--dc-card-bg, #fff); border: 1px solid rgba(20, 32, 28, .1); border-radius: var(--radius, 16px); overflow: hidden; display: flex; flex-direction: column; transition: transform .25s, box-shadow .25s; }
.dc-orto-card:hover { transform: translateY(-3px); box-shadow: 0 22px 46px -24px rgba(20, 32, 28, .34); }
.dc-orto-card__media { position: relative; aspect-ratio: 4/3; background: #f2eee3; border-bottom: 1px solid rgba(20, 32, 28, .08); display: flex; align-items: center; justify-content: center; color: #9aa39c; }
.dc-orto-card__media .dc-media-img { position: absolute; inset: 0; }
/* Exceptie: blocul "Indicații clinice" de pe Aligners are fotografii 5/3, nu 4/3
   ca restul cardurilor. Clasa vine din sablonul paginii. */
.al-indicatii .dc-orto-card__media { aspect-ratio: 5/3; }
.dc-orto-card__body { padding: 22px; display: flex; flex-direction: column; gap: 10px; }
.dc-orto-card__name { margin: 0; font-family: var(--hfont, 'Newsreader', Georgia, serif); font-size: var(--fs-h3, 22px); font-weight: 600; line-height: 1.25; color: var(--text, #14201C); }
.dc-orto-card__text { margin: 0; font-size: 15px; line-height: 1.6; color: #57635d; }

/* ---- Grila de carduri cu iconita (beneficii, indicatii, riscuri, motive) ---- */
.dc-orto-feats { background: #fff; }
.dc-orto-feat { background: var(--dc-card-bg, #fff); border: 1px solid rgba(20, 32, 28, .1); border-radius: var(--radius, 16px); padding: 30px 26px; display: flex; flex-direction: column; gap: 14px; }
.dc-orto-feat__icon { width: 56px; height: 56px; border-radius: 14px; background: color-mix(in srgb, var(--accent, #0E6B5E) 8%, transparent); color: var(--accent, #0E6B5E); display: flex; align-items: center; justify-content: center; }
.dc-orto-feat__num { font-size: 12px; font-weight: 600; letter-spacing: .12em; color: var(--accent, #0E6B5E); }
.dc-orto-feat__title { margin: 0; font-family: var(--hfont, 'Newsreader', Georgia, serif); font-size: 21px; font-weight: 600; line-height: 1.25; color: var(--text, #14201C); }
.dc-orto-feat__text { margin: 0; font-size: 15px; line-height: 1.6; color: #57635d; }
/* Cardurile fara titlu (blocul "Optează ... dacă:") au textul ceva mai mare. */
.dc-orto-feat__icon + .dc-orto-feat__text { font-size: 17px; line-height: 1.65; color: #3a463f; }

/* Varianta pe banda inchisa. */
.dc-orto-feats--dark { background: #252846; }
.dc-orto-feats--dark .dc-orto-feat { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .12); }
.dc-orto-feats--dark .dc-orto-feat__icon { background: rgba(255, 255, 255, .1); color: color-mix(in srgb, var(--accent, #0E6B5E) 55%, #fff); }
.dc-orto-feats--dark .dc-orto-feat__num { color: color-mix(in srgb, var(--accent, #0E6B5E) 55%, #fff); }
.dc-orto-feats--dark .dc-orto-feat__title { color: #fff; }
.dc-orto-feats--dark .dc-orto-feat__text { color: rgba(255, 255, 255, .68); }

/* ---- Despre medic ---- */
.dc-orto-medic { background: #fff; }
.dc-orto-medic__inner { display: grid; grid-template-columns: 440px minmax(0, 1fr); gap: 56px; align-items: start; }
.dc-orto-medic__photo { position: relative; aspect-ratio: 4/5; border-radius: var(--radius, 16px); overflow: hidden; border: 1px solid rgba(20, 32, 28, .1); display: flex; align-items: center; justify-content: center; color: #9aa39c; }
.dc-orto-medic__photo .dc-media-img { position: absolute; inset: 0; }
.dc-orto-medic__content { display: flex; flex-direction: column; gap: 18px; }
.dc-orto-medic__eyebrow { display: flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--accent, #0E6B5E); }
.dc-orto-medic__eyebrow-line { width: 34px; height: 2px; background: var(--accent, #0E6B5E); flex: none; }
.dc-orto-medic__title { margin: 0; font-family: var(--hfont, 'Newsreader', Georgia, serif); font-weight: 500; font-size: var(--fs-h2, 48px); line-height: 1.1; letter-spacing: -.025em; color: var(--text, #14201C); }
.dc-orto-medic__title em { font-style: italic; color: var(--accent, #0E6B5E); }
.dc-orto-medic__text { font-size: 17px; line-height: 1.75; color: #3a463f; }
.dc-orto-medic__text p { margin: 0 0 16px; }
.dc-orto-medic__text p:last-child { margin-bottom: 0; }
.dc-orto-medic__sign { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; flex-wrap: wrap; padding-top: 16px; border-top: 1px solid rgba(20, 32, 28, .1); }
.dc-orto-medic__sign-name { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-size: 20px; font-weight: 600; color: var(--text, #14201C); }
.dc-orto-medic__sign-role { font-size: 14px; color: #57635d; margin-top: 2px; }
.dc-orto-medic__sign-img { position: relative; width: 200px; height: 74px; display: flex; align-items: center; justify-content: center; }
.dc-orto-medic__sign-img .dc-media-img { object-fit: contain; }
/* Fara semnatura incarcata ramane un chenar punctat, ca sa se vada ca e un loc
   de completat, nu o casuta goala scapata in design. */
.dc-orto-medic__sign-img.dc-ph { border: 1px dashed rgba(20, 32, 28, .22); border-radius: calc(var(--radius, 16px) - 6px); }
.dc-orto-medic__sign-img.dc-ph::after { content: 'semnătură'; font-size: 12px; color: #8a9189; }
.dc-orto-medic__foot { padding-top: 4px; }
/* Butonul sta peste fotografie, jos, centrat pe latimea ei. */
.dc-orto-medic__photo-cta { position: absolute; left: 20px; right: 20px; bottom: 20px; display: flex; justify-content: center; }
.dc-orto-medic__photo-cta .dc-cta-btn { box-shadow: 0 18px 38px -16px rgba(20, 32, 28, .55); }

@media (min-width: 901px) {
	.dc-orto-hero__inner { align-items: center; }

	/* Fotografia medicului: exact cat coloana de text de langa ea. */
	.dc-orto-medic__inner { align-items: stretch; }
	.dc-orto-medic__photo { aspect-ratio: auto; height: 100%; }
	/* Numele si semnatura, pe aceeasi linie de mijloc. */
	.dc-orto-medic__sign { align-items: center; }
}

/* Imaginea din hero: cat coloana de text plus 50px, centrata pe verticala, deci
   cei 50px ies egal sus si jos. Inaltimea explicita NU anuleaza aspect-ratio -
   dimpotriva, raportul ar calcula latimea din ea si caseta ar depasi coloana
   (pana la 400px in afara ecranului), asa ca il oprim aici cu 'auto'.
   Doar de la 1200px in sus: mai jos coloana e prea ingusta si caseta ar iesi
   inalta si subtire, iar poza (orizontala) s-ar taia prea mult - acolo ramane
   raportul 4/3 din regula de baza. */
@media (min-width: 1200px) {
	.dc-orto-hero__media { aspect-ratio: auto; align-self: center; height: calc(100% + 50px); }
}

/* ---- Lista de preturi ---- */
.dc-orto-price { background: #F6F3EC; }
.dc-orto-price__panel { max-width: 1100px; margin: 0 auto; background: #fff; border: 1px solid rgba(20, 32, 28, .1); border-radius: var(--radius, 16px); overflow: hidden; }
.dc-orto-price__row { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 30px; border-bottom: 1px solid rgba(20, 32, 28, .08); }
.dc-orto-price__label { display: flex; align-items: center; gap: 16px; }
.dc-orto-price__num { flex: none; width: 38px; height: 38px; border-radius: 10px; background: color-mix(in srgb, var(--accent, #0E6B5E) 8%, transparent); color: var(--accent, #0E6B5E); display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 700; }
.dc-orto-price__name { font-size: 17px; font-weight: 500; color: var(--text, #14201C); }
.dc-orto-price__value { display: flex; align-items: baseline; gap: 6px; white-space: nowrap; }
.dc-orto-price__val { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-size: 26px; font-weight: 600; color: var(--accent, #0E6B5E); }
.dc-orto-price__cur { font-size: 13px; font-weight: 600; color: #57635d; }
.dc-orto-price__foot { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; padding: 20px 30px; background: #fdfbfc; }
.dc-orto-price__note { margin: 0; font-size: 14px; line-height: 1.55; color: #57635d; }

/* Coloana media a blocului "text + media" poate tine si o fotografie, nu doar
   un video (vezi 'image' din dantura-media-feature.php).
   align-self: center - fotografia sta la mijlocul randului, in dreptul textului
   de langa ea. Tot asta o si scoate de pe 'stretch': intinsa pe toata inaltimea
   randului si-ar calcula latimea din raportul 4/3 si ar iesi din coloana (pana
   la 268px in afara ecranului pe Aligners). */
.dc-media-feature__photo { position: relative; align-self: center; aspect-ratio: 4/3; border-radius: var(--radius, 16px); overflow: hidden; border: 1px solid rgba(20, 32, 28, .1); display: flex; align-items: center; justify-content: center; color: #9aa39c; }
.dc-media-feature__photo .dc-media-img { position: absolute; inset: 0; }
/* <em> in titlul blocului = fragmentul in culoarea de accent, ca peste tot. */
.dc-media-feature__title em { font-style: italic; color: var(--accent, #0E6B5E); }

/* ---- Tabel de comparatie (alignere vs. aparat metalic) ----
   Asezare: cap de tabel cu cele doua denumiri, apoi pentru fiecare criteriu o
   banda pe toata latimea cu numele lui si dedesubt randul cu valori.
   Paleta e cea deschisa a site-ului - alb si cele doua nuante de roz din accent,
   aceleasi care alterneaza intre sectiuni; singura suprafata plina de accent
   ramane capul coloanei recomandate. Fiind derivate din var(--accent), urmeaza
   automat culoarea clinicii din Setări Temă. */
.dc-orto-cmp {
	background: #fff;
	/* banda cu numele criteriului: roz-ul deschis folosit intre sectiuni */
	--dc-cmp-band: color-mix(in srgb, var(--accent, #0E6B5E) 5%, #fff);
	/* celula optiunii recomandate: acelasi roz, dar mai apasat, ca sa se distinga */
	--dc-cmp-tint: color-mix(in srgb, var(--accent, #0E6B5E) 16%, #fff);
	--dc-cmp-line: rgba(20, 32, 28, .1); /* liniile dintre randuri */
}
/* Tabelul poate depasi latimea pe ecrane mici: il lasam sa se deruleze in
   containerul lui, nu sa impinga toata pagina pe orizontala. */
.dc-orto-cmp__wrap { max-width: 1100px; margin: 0 auto; overflow-x: auto; border: 1px solid var(--dc-cmp-line); border-radius: var(--radius, 16px); }
.dc-orto-cmp__table { width: 100%; min-width: 520px; border-collapse: collapse; table-layout: fixed; }
.dc-orto-cmp__col { width: 50%; padding: 20px 22px; background: #fff; font-size: 19px; font-weight: 700; color: var(--text, #14201C); text-align: center; border-bottom: 1px solid var(--dc-cmp-line); }
/* Optiunea recomandata: singurul loc cu accent plin, ca sa se vada dintr-o
   privire despre ce e pagina. */
.dc-orto-cmp__col--a { background: var(--accent, #0E6B5E); color: #fff; border-bottom-color: transparent; }
/* Numele criteriului: banda discreta pe toata latimea, text inchis. */
.dc-orto-cmp__label { padding: 15px 22px; background: var(--dc-cmp-band); font-size: 16px; font-weight: 700; color: var(--text, #14201C); text-align: center; border-bottom: 1px solid var(--dc-cmp-line); }
.dc-orto-cmp__cell { padding: 18px 22px; background: #fff; font-size: 16px; color: #57635d; text-align: center; border-bottom: 1px solid var(--dc-cmp-line); }
.dc-orto-cmp__cell--a { background: var(--dc-cmp-tint); color: var(--text, #14201C); font-weight: 600; }
/* Ultimul rand nu mai are linie sub el: o taie oricum marginea casetei. */
.dc-orto-cmp__group:last-child .dc-orto-cmp__cell { border-bottom: 0; }
.dc-orto-cmp__foot { display: flex; justify-content: center; margin-top: 38px; }
@media (max-width: 640px) {
	.dc-orto-cmp__col { padding: 16px 12px; font-size: 16px; }
	.dc-orto-cmp__label { padding: 14px 12px; font-size: 15px; }
	.dc-orto-cmp__cell { padding: 14px 12px; font-size: 15px; }
}

/* ---- Indemnul de a lasa o recenzie (sub componenta de recenzii) ---- */
/* Banda pe care sta indemnul: continua culoarea sectiunii de deasupra, ca sa nu
   ramana cardul suspendat pe fundalul paginii, si lasa spatiu pana la blocul
   urmator. 'flow-root' opreste unirea marginilor: fara el, marginea negativa a
   cardului ar trage in sus si banda, cu tot cu fundalul ei. */
.dc-orto-revcta-band { background: #fff; display: flow-root; padding: var(--section-spacing, 110px) 15px; padding-top: 0; margin-top: -50px; }

/* Totul pe toata latimea, unul sub altul - titlu, text, buton.
   Marginea negativa ridica insula peste sectiunea de deasupra. */
.dc-orto-revcta {max-width: 900px; margin: 0 auto; position: relative; z-index: 1; background: #fff; border: 1px solid color-mix(in srgb, var(--accent, #0E6B5E) 24%, transparent); border-radius: var(--radius, 16px); padding: 30px 36px; display: flex; flex-direction: column; align-items: stretch; gap: 20px; box-shadow: 0 22px 46px -28px rgba(20, 32, 28, .3); }
.dc-orto-revcta__text { width: 100%; text-align: center; }
.dc-orto-revcta > .dc-cta-btn { width: 100%; }
.dc-orto-revcta__title { font-family: var(--hfont, 'Newsreader', Georgia, serif); font-size: 26px; font-weight: 600; line-height: 1.2; color: var(--text, #14201C); margin-bottom: 6px; }
.dc-orto-revcta__sub { margin: 0; font-size: 16px; line-height: 1.55; color: #57635d; }

/* Videoclipurile de pe aceste pagini sunt verticale (9:16), asa cum sunt
   filmate; regula generala a temei e deja 9/16, o repetam ca sa ramana asa
   chiar daca se schimba in alta parte. */
.orto-video .dc-vcard__stage,
.orto-cazuri .dc-vcard__stage { aspect-ratio: 9 / 16; }

/* Exceptie: pe Aparate Dentare, materialele explicative sunt filmate orizontal,
   deci 16/9, si stau cate doua pe rand - cu patru pe pagina iese o grila 2x2.
   Scopat pe pagina: acelasi bloc de pe Ortodonție ramane vertical. */
.page-template-aparate-dentare .orto-video .dc-vcard__stage { aspect-ratio: 16 / 9; }
.page-template-aparate-dentare .orto-video .dc-vgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 640px) { .page-template-aparate-dentare .orto-video .dc-vgrid { grid-template-columns: 1fr; } }

/* La fel pentru "Întrebări frecvente" de pe Ortodonție: 16/9, cate doua pe rand.
   Blocul e tot .orto-video (pentru spatiere), deci regulile stau dupa cea de 9/16
   de mai sus, ca sa o rescrie. */
.orto-video2 .dc-vcard__stage { aspect-ratio: 16 / 9; }
.orto-video2 .dc-vgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 640px) { .orto-video2 .dc-vgrid { grid-template-columns: 1fr; } }

/* Aparitiile media de pe Dantură fixă: emisiuni si reportaje, deci filmate
   orizontal (16/9), asezate doua pe rand. Cate se vad odata se regleaza din ACF
   ("Videoclipuri pe pagină"), restul trec pe paginile de sub grila. */
.df-media .dc-vcard__stage { aspect-ratio: 16 / 9; }
.df-media .dc-vgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 640px) { .df-media .dc-vgrid { grid-template-columns: 1fr; } }

/* Caruselul de aparitii media vine imediat dupa echipa, care isi are deja
   spatiul ei de jos: cele doua se adunau si lasau un gol dublu. Aici taiem
   spatiul de sus la jumatate (68px -> 34px). */
.dc-testim-scroller.orto-media .dc-shell { padding-top: 110px; }

@media (max-width: 1100px) {
	.dc-orto-cards__grid,
	.dc-orto-feats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dc-orto-medic__inner { grid-template-columns: 340px minmax(0, 1fr); gap: 36px; }
}

@media (max-width: 900px) {
	.dc-orto-hero__inner { grid-template-columns: 1fr; gap: 32px; }
	.dc-orto-medic__inner { grid-template-columns: 1fr; gap: 28px; }
	.dc-orto-medic__photo { aspect-ratio: 4/3; }
}

@media (max-width: 640px) {
	.dc-orto-cards__grid,
	.dc-orto-feats__grid { grid-template-columns: 1fr; gap: 14px; }
	.dc-orto-hero__actions { flex-direction: column; align-items: stretch; }
	.dc-orto-hero__stats { gap: 14px; }
	.dc-orto-hero__stat-sep { display: none; }
	.dc-orto-price__row { flex-direction: column; align-items: flex-start; gap: 10px; padding: 18px 20px; }
	.dc-orto-price__foot { padding: 18px 20px; }
	.dc-orto-revcta-band { padding-bottom: 44px; }
	.dc-orto-revcta { margin-top: -36px; padding: 24px 22px; }
	.dc-media.dc-media--wide .dc-vgrid {grid-template-columns: repeat(1, minmax(0, 1fr));}
}
