/*
Theme Name:   Stomatology Child
Theme URI:    https://dayannacontreras.com/
Description:  Tema hijo de Stomatology para Dayanna Contreras Dental Care Studio. Extiende el tema padre sin modificarlo.
Template:     stomatology
Version:      3.5.3
Requires at least: 6.5
Requires PHP: 7.4
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  stomatology-child
*/

/*
 * El tema padre encola este archivo automáticamente (handle «stomatology-child»,
 * dependiente de «stomatology-style»), por eso no se encola desde functions.php.
 *
 * Contenido:
 *   1. Fuentes oficiales (locales)
 *   2. Tokens de marca
 *   3. Variables del tema padre reasignadas a la marca
 *   4. Componentes base (botones, redes)
 *   5. Header oficial (.dc-header)
 *   6. Footer oficial (.dc-footer)
 */

/* 1. Fuentes oficiales ------------------------------------------------------ */

@font-face {
	font-family: 'Nobel Uno';
	src: url('fonts/nobel-uno-light.woff2') format('woff2'), url('fonts/nobel-uno-light.otf') format('opentype');
	font-weight: 300;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Nobel Uno';
	src: url('fonts/nobel-uno-medium.woff2') format('woff2'), url('fonts/nobel-uno-medium.otf') format('opentype');
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Nobel Uno';
	src: url('fonts/nobel-uno-bold.woff2') format('woff2'), url('fonts/nobel-uno-bold.otf') format('opentype');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Salvatore';
	src: url('fonts/salvatore.woff2') format('woff2'), url('fonts/salvatore.ttf') format('truetype');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

/* 2. Tokens de marca -------------------------------------------------------- */

:root {
	/* Colores oficiales (manual de marca) */
	--dc-cream: #F7F8E0;
	--dc-gold: #F2CC80;
	--dc-pink: #E9B0A9;
	--dc-teal: #99B6B8;

	/* Neutros de texto: PROPUESTA pendiente de aprobación (Fase 1.5 §8.4).
	   Derivados del tono del teal oficial; la paleta oficial no tiene color de texto. */
	--dc-ink: #24393B;
	--dc-ink-soft: #3A5658;

	--dc-white: #FFFFFF;
	--dc-line: rgba(36, 57, 59, 0.14);

	--dc-font: 'Nobel Uno', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--dc-font-accent: 'Salvatore', 'Nobel Uno', cursive;

	--dc-radius-pill: 999px;
	--dc-ease: cubic-bezier(.25, .1, .25, 1);

	/* 3. Tipografía del tema padre → Nobel Uno */
	--theme-font-p_font-family: var(--dc-font);
	--theme-font-p_font-weight: 300;
	--theme-font-post_font-family: var(--dc-font);
	--theme-font-h1_font-family: var(--dc-font);
	--theme-font-h2_font-family: var(--dc-font);
	--theme-font-h3_font-family: var(--dc-font);
	--theme-font-h4_font-family: var(--dc-font);
	--theme-font-h5_font-family: var(--dc-font);
	--theme-font-h6_font-family: var(--dc-font);
	--theme-font-h1_font-weight: 500;
	--theme-font-h2_font-weight: 500;
	--theme-font-h3_font-weight: 500;
	--theme-font-h4_font-weight: 500;
	--theme-font-h5_font-weight: 500;
	--theme-font-h6_font-weight: 500;
	--theme-font-logo_font-family: var(--dc-font);
	--theme-font-button_font-family: var(--dc-font);
	--theme-font-input_font-family: var(--dc-font);
	--theme-font-info_font-family: var(--dc-font);
	--theme-font-menu_font-family: var(--dc-font);
	--theme-font-submenu_font-family: var(--dc-font);
	--theme-font-other_font-family: var(--dc-font);
}

/* 3. Colores del esquema por defecto del tema padre → marca */
.scheme_default,
body.scheme_default,
.scheme_default:where(.editor-styles-wrapper) {
	--theme-color-bg_color: var(--dc-cream);
	--theme-color-bd_color: var(--dc-line);
	--theme-color-text: var(--dc-ink-soft);
	--theme-color-text_light: var(--dc-ink-soft);
	--theme-color-text_dark: var(--dc-ink);
	--theme-color-text_link: var(--dc-ink);
	--theme-color-text_hover: var(--dc-ink-soft);
	--theme-color-alter_bg_color: var(--dc-white);
	--theme-color-input_bd_color: var(--dc-line);
}

.dc-accent,
.dc-accent .elementor-heading-title {
	font-family: var(--dc-font-accent);
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

/* 4. Componentes base -------------------------------------------------------- */

/* Títulos sin guionado automático: las palabras pasan completas a la línea siguiente.
   (!important: el tema lo reactiva en móvil con reglas más específicas) */
body :is(h1, h2, h3, h4, h5, h6, .elementor-heading-title, .elementor-icon-box-title) {
	-webkit-hyphens: manual !important;
	hyphens: manual !important;
}

.dc-btn .elementor-button {
	font-family: var(--dc-font);
	font-weight: 500;
	font-size: 15px;
	line-height: 1;
	letter-spacing: 0.01em;
	text-transform: none;
	color: var(--dc-ink);
	background-color: var(--dc-gold);
	border: 1px solid var(--dc-gold);
	border-radius: var(--dc-radius-pill);
	padding: 15px 26px;
	transition: background-color .25s var(--dc-ease), border-color .25s var(--dc-ease), color .25s var(--dc-ease);
}

.dc-btn .elementor-button:hover,
.dc-btn .elementor-button:focus-visible {
	color: var(--dc-ink);
	background-color: var(--dc-cream);
	border-color: var(--dc-ink);
}

.dc-btn .elementor-button:focus-visible,
.dc-social a:focus-visible,
.dc-header a:focus-visible,
.dc-footer a:focus-visible {
	outline: 2px solid var(--dc-ink);
	outline-offset: 3px;
}

.dc-btn--compact .elementor-button {
	font-size: 13px;
	padding: 11px 16px;
}

/* Iconos sociales (widget «Iconos sociales» de Elementor) */
.dc-social .elementor-social-icon {
	--icon-size: 16px;
	--icon-padding: 0.6em;
	background-color: transparent;
	border: 1px solid var(--dc-ink);
	transition: background-color .25s var(--dc-ease);
}

.dc-social .elementor-social-icon i,
.dc-social .elementor-social-icon svg {
	color: var(--dc-ink);
	fill: var(--dc-ink);
}

.dc-social .elementor-social-icon:hover {
	background-color: var(--dc-gold);
}

/* 5. Header oficial ----------------------------------------------------------- */

/* Las reglas del tema dentro del header/footer usan sus variables (algunas con
   !important); se redefinen en el propio contenedor para que hereden la marca. */
.dc-header,
.dc-footer {
	--theme-color-text: var(--dc-ink-soft);
	--theme-color-text_light: var(--dc-ink-soft);
	--theme-color-text_dark: var(--dc-ink);
	--theme-color-text_link: var(--dc-ink);
	--theme-color-text_hover: var(--dc-ink-soft);
	--theme-color-bd_color: var(--dc-line);
}

.dc-header {
	background-color: var(--dc-cream);
	border-bottom: 1px solid var(--dc-line);
}

.dc-header .sc_layouts_menu_nav > li > a {
	font-family: var(--dc-font);
	font-weight: 500;
	font-size: 14px;
	letter-spacing: 0.01em;
	text-transform: none;
	color: var(--dc-ink);
	padding-left: 10px;
	padding-right: 10px;
}

/* Escritorio: el contenido del header se alinea con el del resto de la página
   (logo sobre el borde izquierdo del texto y botón sobre el derecho) */
@media (min-width: 1280px) {
	body .elementor .elementor-element.elementor-section.dc-header--desktop > .elementor-container {
		max-width: 1290px;
		margin-left: auto;
		margin-right: auto;
	}
}

/* Hero: mismo relleno de columna que las demás secciones (alineado con el header) */
@media (min-width: 1024px) {
	body .elementor .dc-hero-photo > .elementor-container > .elementor-column > .elementor-widget-wrap {
		padding-left: 15px;
		padding-right: 15px;
	}
}

/* 1280–1439 px (portátiles, iPad Pro 12,9" horizontal): mismo ancho que el texto de las
   secciones y menú algo más compacto para que quepan los 8 ítems sin colapsar */
@media (min-width: 1280px) and (max-width: 1439px) {
	body .elementor .elementor-element.elementor-section.dc-header--desktop > .elementor-container {
		max-width: 1100px;
	}

	body .dc-header .sc_layouts_menu_nav > li > a {
		font-size: 13.5px;
		padding-left: 8px;
		padding-right: 8px;
	}

	.dc-header .dc-btn .elementor-button {
		font-size: 14px;
		padding: 13px 18px;
	}
}

body .dc-header .sc_layouts_menu_nav > li > a:hover,
body .dc-header .sc_layouts_menu_nav > li.current-menu-item > a,
body .dc-header .sc_layouts_menu_nav > li.current-menu-ancestor > a {
	color: var(--dc-ink);
}

.dc-header .sc_layouts_menu_nav > li > a:after {
	background-color: var(--dc-teal);
}

/* Botón del header: dorado sólido (decisión del cliente) */
.dc-header .dc-btn .elementor-button {
	color: var(--dc-ink);
	background-color: var(--dc-gold);
	border: 1px solid var(--dc-gold);
}

.dc-header .dc-btn .elementor-button:hover,
.dc-header .dc-btn .elementor-button:focus-visible {
	color: var(--dc-ink);
	background-color: #e9bd63;
	border-color: #e9bd63;
}

.dc-header .dc-social .elementor-social-icon {
	--icon-size: 18px;
	--icon-padding: 0.55em;
}

.dc-header .sc_layouts_item_icon,
.dc-header .sc_layouts_menu_mobile_button .sc_layouts_item_icon {
	color: var(--dc-ink);
}

/* Panel del menú móvil del tema (usa el esquema «dark»): se reasigna a la marca */
.menu_mobile.scheme_dark {
	--theme-color-bg_color: var(--dc-cream);
	--theme-color-bd_color: var(--dc-line);
	--theme-color-text: var(--dc-ink-soft);
	--theme-color-text_light: var(--dc-ink-soft);
	--theme-color-text_dark: var(--dc-ink);
	--theme-color-text_link: var(--dc-ink);
	--theme-color-text_hover: var(--dc-ink-soft);
}

.menu_mobile .menu_mobile_inner {
	background-color: var(--dc-cream);
	color: var(--dc-ink);
}

.menu_mobile .menu_mobile_nav_area li > a {
	font-family: var(--dc-font);
	font-weight: 500;
	color: var(--dc-ink);
}

.menu_mobile .menu_mobile_nav_area li > a:hover {
	color: var(--dc-ink-soft);
}

/* Panel del menú (plantilla del hijo skins/default/templates/header-navi-mobile.php):
   logo + cierre, navegación, bloque «Visítanos» e isotipo como marca de agua.
   Móvil: todo apilado. Tablet/horizontal (≥768 px): navegación a la izquierda e información
   a la derecha. Sustituye al panel del tema (área de widgets azul y lista recortada). */
.dc-menu {
	--dc-menu-gutter: 24px;
	--dc-icon-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E");
	--dc-icon-wa: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.5 11.6a8.5 8.5 0 0 1-12.6 7.4L3.5 20.5l1.6-4.2A8.5 8.5 0 1 1 20.5 11.6z'/%3E%3Cpath d='M9 8.6c.3 1.9 1.6 4 3.9 5.4l1.3-1.1 2 .9-.4 1.6c-3.6.4-7.6-3.5-7.4-7.2l1.6-.4.9 2z'/%3E%3C/svg%3E");
	--dc-icon-cal: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4.5' width='18' height='16.5' rx='2.5'/%3E%3Cpath d='M3 9.5h18M8 2.5v4M16 2.5v4'/%3E%3C/svg%3E");
}

.dc-menu .menu_mobile_inner {
	overflow-x: hidden;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	background-color: var(--dc-cream);
}

.dc-menu__mark {
	position: absolute;
	z-index: 0;
	right: -6vmin;
	bottom: -4vmin;
	width: min(64vmin, 520px);
	height: auto;
	color: var(--dc-teal);
	opacity: 0.12;
	pointer-events: none;
}

body .dc-menu .menu_mobile_header_wrap.dc-menu__top {
	position: absolute;
	z-index: 2;
	top: 0;
	left: 0;
	right: 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: auto;
	padding: 16px var(--dc-menu-gutter);
	box-sizing: border-box;
}

.dc-menu__logo img {
	display: block;
	width: auto;
	height: 52px;
}

body .dc-menu .menu_mobile_close {
	position: relative;
	top: auto;
	right: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 0 -10px 0 0;
}

body .dc-menu .menu_mobile_content_wrap {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: none;
	height: auto;
	min-height: 100%;
	max-height: none;
	margin: 0;
	padding: 0;
}

body .dc-menu .menu_mobile_content_wrap_inner.dc-menu__grid {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 32px;
	width: 100%;
	max-width: none;
	height: auto;
	min-height: 100%;
	max-height: none;
	padding: 100px var(--dc-menu-gutter) 40px;
	box-sizing: border-box;
}

body .dc-menu .menu_mobile_nav_area {
	position: static;
	top: auto;
	height: auto;
	max-height: none;
	overflow: visible;
	transform: none;
	text-align: left;
}

body .menu_mobile.dc-menu .menu_mobile_inner .menu_mobile_nav_area > ul > li > a {
	padding: 4px 0;
	font-size: clamp(26px, 6.6vw, 32px);
	font-weight: 400;
	line-height: 1.25;
	letter-spacing: -0.01em;
}

body .dc-menu .dc-lang-menu-item {
	margin-top: 16px;
	padding-top: 0;
	border-top: 0;
}

/* Bloque «Visítanos» (el esquema del tema pintaba los enlaces en gris y centraba el texto) */
body .menu_mobile.dc-menu .menu_mobile_inner .dc-menu__info a,
body .menu_mobile.dc-menu .menu_mobile_inner .dc-menu__info a:hover {
	color: var(--dc-ink);
}

.dc-menu__info {
	text-align: left;
	padding-top: 28px;
	border-top: 1px solid var(--dc-line);
	max-width: 420px;
}

.dc-menu__eyebrow {
	margin: 0 0 12px;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--dc-ink-soft);
}

.dc-menu__address {
	margin: 0 0 18px;
	font-style: normal;
	font-size: 15px;
	line-height: 1.65;
	color: var(--dc-ink);
}

.dc-menu__links {
	display: grid;
	gap: 10px;
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
}

.dc-menu__links li {
	margin: 0;
	padding: 0;
}

.dc-menu__links a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 15px;
	font-weight: 500;
	color: var(--dc-ink);
	text-decoration: underline;
	text-decoration-color: rgba(36, 57, 59, 0.25);
	text-underline-offset: 4px;
}

.dc-menu__links a:hover,
.dc-menu__links a:focus-visible {
	text-decoration-color: var(--dc-gold);
}

.dc-menu__icon,
.dc-menu__cta::before {
	flex: none;
	width: 18px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask: var(--dc-icon-pin) center / contain no-repeat;
	mask: var(--dc-icon-pin) center / contain no-repeat;
}

.dc-menu__icon--wa {
	-webkit-mask-image: var(--dc-icon-wa);
	mask-image: var(--dc-icon-wa);
}

.dc-menu__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 14px 24px;
	font-family: var(--dc-font);
	font-size: 15px;
	font-weight: 500;
	line-height: 1;
	color: var(--dc-ink);
	text-decoration: none;
	background-color: var(--dc-gold);
	border: 1px solid var(--dc-gold);
	border-radius: var(--dc-radius-pill);
	transition: background-color .25s var(--dc-ease), border-color .25s var(--dc-ease);
}

.dc-menu__cta::before {
	content: "";
	width: 16px;
	height: 16px;
	-webkit-mask-image: var(--dc-icon-cal);
	mask-image: var(--dc-icon-cal);
}

.dc-menu__cta:hover,
.dc-menu__cta:focus-visible {
	color: var(--dc-ink);
	background-color: var(--dc-cream);
	border-color: var(--dc-ink);
}

body .dc-menu .socials_mobile {
	text-align: left;
	justify-content: flex-start;
	position: static;
	margin-top: 24px;
	transform: none;
}

@media (min-width: 768px) {
	.dc-menu {
		--dc-menu-gutter: var(--dc-gutter, 48px);
	}

	.dc-menu__logo img {
		height: 58px;
	}

	body .dc-menu .menu_mobile_content_wrap_inner.dc-menu__grid {
		display: grid;
		grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
		align-items: center;
		align-content: center;
		column-gap: clamp(40px, 6vw, 96px);
		padding: 112px var(--dc-menu-gutter) 56px;
	}

	body .menu_mobile.dc-menu .menu_mobile_inner .menu_mobile_nav_area > ul > li > a {
		font-size: clamp(30px, 3.6vw, 40px);
	}

	.dc-menu__info {
		padding: 8px 0 8px clamp(32px, 4vw, 56px);
		border-top: 0;
		border-left: 1px solid var(--dc-line);
	}
}

/* Pantallas bajas (iPad horizontal): todo cabe sin desplazarse */
@media (min-width: 768px) and (max-height: 820px) {
	body .dc-menu .menu_mobile_content_wrap_inner.dc-menu__grid {
		padding-top: 96px;
		padding-bottom: 32px;
	}

	body .menu_mobile.dc-menu .menu_mobile_inner .menu_mobile_nav_area > ul > li > a {
		font-size: clamp(26px, 3vw, 32px);
		padding: 2px 0;
	}
}

/* Ítem activo: el esquema «dark» del tema lo pintaba en blanco (invisible sobre crema) */
body .menu_mobile .menu_mobile_nav_area li.current-menu-item > a,
body .menu_mobile .menu_mobile_nav_area li.current-menu-ancestor > a,
body .menu_mobile .menu_mobile_nav_area li.current_page_item > a,
body .menu_mobile .menu_mobile_nav_area li.current-menu-item > a > span,
body .menu_mobile .menu_mobile_nav_area li.current-menu-ancestor > a > span,
body .menu_mobile .menu_mobile_nav_area li.current_page_item > a > span {
	color: var(--dc-ink);
}

body .menu_mobile .menu_mobile_nav_area li.current-menu-item > a > span,
body .menu_mobile .menu_mobile_nav_area li.current_page_item > a > span {
	text-decoration: underline;
	text-decoration-color: var(--dc-gold);
	text-decoration-thickness: 2px;
	text-underline-offset: 6px;
}

body .menu_mobile .menu_mobile_close,
body .menu_mobile .menu_button_close_icon,
body .menu_mobile .menu_button_close_icon:before {
	color: var(--dc-ink);
}

.menu_mobile .socials_mobile .social_icon {
	/* El tema imprime el color de fondo en línea; se neutraliza solo aquí. */
	background-color: transparent !important;
	border: 1px solid var(--dc-ink);
	border-radius: 50%;
	color: var(--dc-ink);
	width: 40px;
	height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.menu_mobile .socials_mobile .social_icon span {
	color: var(--dc-ink);
}

/* 6. Footer oficial ----------------------------------------------------------- */

.dc-footer {
	background-color: var(--dc-teal);
}

.dc-footer,
.dc-footer p,
.dc-footer address,
.dc-footer li {
	font-family: var(--dc-font);
	font-weight: 300;
	font-size: 16px;
	line-height: 1.65;
	font-style: normal;
	color: var(--dc-ink);
}

.dc-footer .elementor-heading-title {
	font-family: var(--dc-font);
	font-weight: 500;
	font-size: 14px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--dc-ink);
}

.dc-footer .dc-accent .elementor-heading-title {
	font-family: var(--dc-font-accent);
	font-size: 34px;
	letter-spacing: 0;
	text-transform: none;
	line-height: 1.1;
}

.dc-footer a {
	color: var(--dc-ink);
	text-decoration: none;
	background-image: linear-gradient(currentColor, currentColor);
	background-size: 0 1px;
	background-position: 0 100%;
	background-repeat: no-repeat;
	transition: background-size .3s var(--dc-ease);
}

.dc-footer a:hover {
	color: var(--dc-ink);
	background-size: 100% 1px;
}

.dc-footer .dc-btn .elementor-button,
.dc-footer .dc-social a {
	background-image: none;
}

/* Menús del footer (widget «Menú de navegación» de WordPress dentro de Elementor) */
.dc-footer .wp-widget-nav_menu ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.dc-footer .wp-widget-nav_menu li {
	margin: 0 0 6px;
	padding: 0;
}

body .dc-footer .elementor-widget-wp-widget-nav_menu .menu > li:before,
body .dc-footer .elementor-widget-wp-widget-nav_menu .menu > li > a:before {
	content: none;
	display: none;
}

.dc-footer-bottom,
.dc-footer-bottom p,
.dc-footer-bottom li {
	font-size: 14px;
}

.dc-footer-bottom {
	border-top: 1px solid var(--dc-line);
}

.dc-footer-legal .wp-widget-nav_menu ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 6px 24px;
}

.dc-footer-legal .wp-widget-nav_menu li {
	margin: 0;
}

@media (max-width: 1279px) {
	.dc-footer-legal .wp-widget-nav_menu ul {
		justify-content: flex-start;
	}
}

/* 7. Componentes de página (Home y páginas interiores) ---------------------- */

.elementor-section.dc-section {
	padding: clamp(72px, 9vw, 128px) 24px;
}

.elementor-section.dc-section--tight {
	padding-top: clamp(48px, 6vw, 80px);
	padding-bottom: clamp(48px, 6vw, 80px);
}

.dc-bg-cream { background-color: var(--dc-cream); }
.dc-bg-pink  { background-color: var(--dc-pink); }
.dc-bg-teal  { background-color: var(--dc-teal); }
.dc-bg-gold  { background-color: var(--dc-gold); }

.dc-bg-pink,
.dc-bg-teal,
.dc-bg-gold {
	--theme-color-text: var(--dc-ink);
	--theme-color-text_dark: var(--dc-ink);
	--theme-color-text_link: var(--dc-ink);
}

.dc-divider-top {
	border-top: 1px solid var(--dc-line);
}

/* Tipografía editorial */
.dc-eyebrow,
.dc-eyebrow p {
	font-family: var(--dc-font);
	font-weight: 500;
	font-size: 13px;
	line-height: 1.5;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--dc-ink-soft);
	margin: 0;
}

.dc-h1 .elementor-heading-title {
	font-family: var(--dc-font);
	font-weight: 300;
	font-size: clamp(38px, 5.2vw, 68px);
	line-height: 1.08;
	letter-spacing: -0.01em;
	color: var(--dc-ink);
	text-transform: none;
}

.dc-h2 .elementor-heading-title {
	font-family: var(--dc-font);
	font-weight: 300;
	font-size: clamp(30px, 3.6vw, 48px);
	line-height: 1.12;
	letter-spacing: -0.005em;
	color: var(--dc-ink);
	text-transform: none;
}

.dc-lead,
.dc-lead p {
	font-family: var(--dc-font);
	font-weight: 300;
	font-size: clamp(18px, 1.45vw, 21px);
	line-height: 1.6;
	color: var(--dc-ink-soft);
}

.dc-text,
.dc-text p,
.dc-text li,
.dc-text address {
	font-family: var(--dc-font);
	font-weight: 300;
	font-size: 17px;
	line-height: 1.7;
	font-style: normal;
	color: var(--dc-ink-soft);
}

.dc-bg-pink .dc-text p, .dc-bg-pink .dc-lead p, .dc-bg-pink .dc-eyebrow p,
.dc-bg-teal .dc-text p, .dc-bg-teal .dc-lead p, .dc-bg-teal .dc-eyebrow p,
.dc-bg-gold .dc-text p, .dc-bg-gold .dc-lead p, .dc-bg-gold .dc-eyebrow p {
	color: var(--dc-ink);
}

.dc-note,
.dc-note p {
	font-family: var(--dc-font);
	font-weight: 300;
	font-size: 15px;
	line-height: 1.6;
	color: var(--dc-ink-soft);
}

.dc-accent-lg .elementor-heading-title {
	font-family: var(--dc-font-accent);
	font-weight: 400;
	font-size: clamp(36px, 3.6vw, 52px);
	line-height: 1.15;
	letter-spacing: 0;
	text-transform: none;
	color: var(--dc-ink);
}

/* Botón contorno (CTA secundario) */
.dc-btn--outline .elementor-button {
	background-color: transparent;
	border-color: var(--dc-ink);
}

.dc-btn--outline .elementor-button:hover,
.dc-btn--outline .elementor-button:focus-visible {
	background-color: var(--dc-gold);
	border-color: var(--dc-gold);
}

.dc-btn-row .elementor-widget-button {
	margin-right: 12px;
	margin-bottom: 12px;
}

/* Hero de páginas internas: el último botón no añade margen (evita desalinear la fila) */
.dc-hero-actions .elementor-widget-wrap > .elementor-widget-button:last-child {
	margin-bottom: 0;
}

/* Sobre fondo dorado el CTA principal se invierte (tinta) para mantener contraste */
.dc-bg-gold .dc-btn .elementor-button {
	color: var(--dc-cream);
	background-color: var(--dc-ink);
	border-color: var(--dc-ink);
}

.dc-bg-gold .dc-btn .elementor-button:hover,
.dc-bg-gold .dc-btn .elementor-button:focus-visible {
	color: var(--dc-ink);
	background-color: var(--dc-cream);
	border-color: var(--dc-ink);
}

/* Espacios para fotografía real: arcos orgánicos con el isotipo oficial (decorativos) */
.dc-arch {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 5;
	border-radius: 999px 999px 28px 28px;
	background-color: var(--dc-teal);
	overflow: hidden;
}

.dc-arch::after {
	content: "";
	position: absolute;
	inset: 0;
	background: url('assets/isotipo-crema.svg') center / 38% no-repeat;
	opacity: 0.6;
}

.dc-arch--pink { background-color: var(--dc-pink); }
.dc-arch--gold { background-color: var(--dc-gold); }

.dc-arch--line {
	background-color: transparent;
	border: 1px solid var(--dc-line);
}

.dc-arch--line::after {
	background-image: url('assets/isotipo-teal.svg');
	opacity: 0.45;
}

.dc-arch--short { aspect-ratio: 3 / 4; }

.dc-orb {
	position: absolute;
	width: 34%;
	aspect-ratio: 1;
	border-radius: 50%;
	background-color: var(--dc-gold);
	left: -10%;
	bottom: 8%;
	z-index: 1;
}

.dc-figure {
	position: relative;
	max-width: 460px;
	margin-left: auto;
}

.dc-figure-caption {
	font-family: var(--dc-font);
	font-size: 13px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--dc-ink-soft);
	text-align: center;
	margin-top: 14px;
}

/* Tarjetas de tratamiento (widget «Caja de icono» sin icono) */
.dc-card .elementor-icon-box-wrapper {
	padding: 26px 0 30px;
	border-top: 1px solid var(--dc-line);
	text-align: left;
}

.dc-card .elementor-icon-box-title {
	margin: 0 0 8px;
	font-family: var(--dc-font);
	font-weight: 500;
	font-size: 20px;
	line-height: 1.3;
	color: var(--dc-ink);
}

.dc-card .elementor-icon-box-title a {
	color: var(--dc-ink);
	text-decoration: none;
}

.dc-card .elementor-icon-box-title a::after {
	content: "\2192";
	display: inline-block;
	margin-left: 10px;
	transition: transform .25s var(--dc-ease);
}

.dc-card .elementor-icon-box-title a:hover::after,
.dc-card .elementor-icon-box-title a:focus-visible::after {
	transform: translateX(4px);
}

.dc-card .elementor-icon-box-title a:hover {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 5px;
}

.dc-card .elementor-icon-box-description {
	margin: 0;
	font-family: var(--dc-font);
	font-weight: 300;
	font-size: 16px;
	line-height: 1.6;
	color: var(--dc-ink-soft);
}

/* Puntos numerados (diferencial) */
.dc-points {
	counter-reset: dc-point;
}

.dc-point .elementor-icon-box-wrapper {
	padding: 24px 0 28px;
	border-top: 1px solid rgba(36, 57, 59, 0.25);
	text-align: left;
}

.dc-point .elementor-icon-box-title {
	margin: 0 0 8px;
	font-family: var(--dc-font);
	font-weight: 500;
	font-size: 19px;
	line-height: 1.35;
	color: var(--dc-ink);
}

.dc-point .elementor-icon-box-title::before {
	counter-increment: dc-point;
	content: counter(dc-point, decimal-leading-zero);
	display: block;
	font-weight: 300;
	font-size: 14px;
	letter-spacing: 0.12em;
	margin-bottom: 10px;
	color: var(--dc-ink);
}

.dc-point .elementor-icon-box-description {
	margin: 0;
	font-family: var(--dc-font);
	font-weight: 300;
	font-size: 16px;
	line-height: 1.6;
	color: var(--dc-ink);
}

/* Valores destacados */
.dc-value .elementor-heading-title {
	font-family: var(--dc-font-accent);
	font-weight: 400;
	font-size: clamp(34px, 3.2vw, 46px);
	line-height: 1.1;
	color: var(--dc-ink);
	text-transform: none;
	letter-spacing: 0;
}

.dc-values .elementor-column + .elementor-column .elementor-widget-wrap {
	border-left: 1px solid var(--dc-line);
}

/* Especialidades en forma de etiquetas */
.dc-chips ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.dc-chips li {
	margin: 0;
	padding: 9px 18px;
	border: 1px solid var(--dc-ink);
	border-radius: var(--dc-radius-pill);
	font-family: var(--dc-font);
	font-weight: 500;
	font-size: 15px;
	line-height: 1.3;
	color: var(--dc-ink);
}

.dc-chips li:before {
	display: none;
}

/* Rejillas reutilizables: la clase va en la columna de Elementor; el orden visual
   coincide con el orden de lectura y con el de móvil. */
.elementor-column.dc-grid-3 > .elementor-widget-wrap,
.elementor-column.dc-grid-2 > .elementor-widget-wrap {
	display: grid;
	column-gap: 48px;
	align-content: start;
}

.elementor-column.dc-grid-3 > .elementor-widget-wrap { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.elementor-column.dc-grid-2 > .elementor-widget-wrap { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; }

.dc-grid-3 > .elementor-widget-wrap > .elementor-widget,
.dc-grid-2 > .elementor-widget-wrap > .elementor-widget {
	margin-bottom: 0;
}

.dc-orb--pink { background-color: var(--dc-pink); }

.dc-arch--compact { aspect-ratio: 4 / 3; }

.dc-btn-row .dc-note {
	margin-top: 8px;
}

/* Lista de indicaciones («¿Para quién puede ser?») */
.dc-list ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.dc-list li {
	position: relative;
	margin: 0;
	padding: 14px 0 14px 30px;
	border-top: 1px solid rgba(36, 57, 59, 0.2);
	font-family: var(--dc-font);
	font-weight: 300;
	font-size: 17px;
	line-height: 1.6;
	color: var(--dc-ink);
}

.dc-list li:before {
	content: "";
	position: absolute;
	left: 2px;
	top: 23px;
	width: 10px;
	height: 10px;
	border: 1px solid var(--dc-ink);
	border-radius: 50%;
	background: none;
}

/* Preguntas frecuentes (widget «Acordeón» de Elementor) */
.dc-faq .elementor-accordion .elementor-accordion-item {
	border: 0;
	border-top: 1px solid var(--dc-line);
}

.dc-faq .elementor-accordion .elementor-accordion-item:last-child {
	border-bottom: 1px solid var(--dc-line);
}

.dc-faq .elementor-accordion .elementor-tab-title {
	padding: 22px 0;
	border: 0;
	font-family: var(--dc-font);
	font-weight: 500;
	font-size: 19px;
	line-height: 1.4;
}

.dc-faq .elementor-accordion .elementor-tab-title a,
.dc-faq .elementor-accordion .elementor-tab-title .elementor-accordion-icon {
	color: var(--dc-ink);
}

.dc-faq .elementor-accordion .elementor-tab-content {
	padding: 0 0 24px;
	border: 0;
	font-family: var(--dc-font);
	font-weight: 300;
	font-size: 17px;
	line-height: 1.7;
	color: var(--dc-ink-soft);
}

.dc-faq .elementor-accordion .elementor-tab-content p {
	margin: 0;
	color: var(--dc-ink-soft);
}

/* Enlaces en bloques de texto de la Home */
.dc-text a {
	color: var(--dc-ink);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
}

@media (max-width: 1279px) {
	.elementor-column.dc-grid-3 > .elementor-widget-wrap { grid-template-columns: repeat(2, minmax(0, 1fr)); }

	.dc-figure {
		margin-left: 0;
		margin-right: auto;
	}

	.dc-orb {
		left: 0;
	}

	.dc-values .elementor-column + .elementor-column .elementor-widget-wrap {
		border-left: 0;
	}
}

@media (max-width: 767px) {
	.elementor-section.dc-section {
		padding-left: 20px;
		padding-right: 20px;
	}

	.dc-figure {
		max-width: 320px;
	}

	.dc-orb {
		left: 0;
		width: 28%;
	}

	.elementor-column.dc-grid-3 > .elementor-widget-wrap,
	.elementor-column.dc-grid-2 > .elementor-widget-wrap {
		grid-template-columns: minmax(0, 1fr);
	}

	.dc-values .elementor-column + .elementor-column {
		margin-top: 6px;
	}

	.dc-btn-row .elementor-widget-button,
	.dc-btn-row .elementor-widget-button .elementor-button {
		width: 100%;
		margin-right: 0;
		text-align: center;
	}

	.dc-hero-actions .elementor-widget-button + .elementor-widget-button {
		margin-top: 12px;
	}
}

/* 12. Selector de idioma ES | EN -------------------------------------------------- */

.dc-lang {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--dc-font);
	font-size: 13px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.08em;
	white-space: nowrap;
}

.dc-lang__item {
	padding: 4px 2px;
	color: var(--dc-ink-soft);
	text-decoration: none;
	transition: color .2s var(--dc-ease);
}

a.dc-lang__item:hover,
a.dc-lang__item:focus-visible {
	color: var(--dc-ink);
	text-decoration: underline;
	text-underline-offset: 4px;
}

.dc-lang__item.is-current {
	color: var(--dc-ink);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
}

.dc-lang__sep {
	color: var(--dc-line);
	color: rgba(36, 57, 59, 0.35);
}

/* Header de escritorio: a la izquierda del botón «Agendar valoración» */
.dc-header .elementor-widget-shortcode.dc-lang-widget {
	margin-right: 16px;
}

/* La columna derecha del header (selector + WhatsApp + CTA) no debe partirse en dos líneas */
.dc-header--desktop .elementor-column:last-child > .elementor-widget-wrap {
	flex-wrap: nowrap;
}

/* Header móvil: logo · ES | EN · menú al entrar; al desplazarse (header fijo), el botón
   «Agendar valoración» aparece en lugar del selector (que sigue disponible en el menú).
   Al entrar no se repite el CTA del hero justo debajo. */
.dc-header--mobile .elementor-column:last-child > .elementor-widget-wrap {
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-end;
}

body .dc-header--mobile .elementor-widget-shortcode.dc-lang-widget--mobile {
	margin-right: 14px;
}

.dc-header--mobile .dc-lang__item {
	padding: 10px 4px; /* área táctil cómoda */
}

@media (max-width: 767px) {
	.dc-header--mobile:not(.sc_layouts_row_fixed_on) .dc-btn--compact {
		display: none;
	}
}

@media (max-width: 767px) {
	.dc-header--mobile.sc_layouts_row_fixed_on .dc-lang-widget--mobile {
		display: none;
	}
}

.dc-header--mobile .dc-btn--compact,
.dc-header--mobile .dc-lang-widget--mobile {
	animation: dc-fade-in .3s var(--dc-ease);
}

/* Icono de calendario en el botón «Agendar valoración» del header (escritorio y móvil) */
.dc-header .dc-btn .elementor-button-content-wrapper {
	align-items: center;
}

.dc-header .dc-btn .elementor-button-content-wrapper::before {
	content: "";
	flex: none;
	width: 15px;
	height: 15px;
	margin-right: 7px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4.5' width='18' height='16.5' rx='2.5'/%3E%3Cpath d='M3 9.5h18M8 2.5v4M16 2.5v4'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4.5' width='18' height='16.5' rx='2.5'/%3E%3Cpath d='M3 9.5h18M8 2.5v4M16 2.5v4'/%3E%3C/svg%3E") center / contain no-repeat;
}

@keyframes dc-fade-in {
	from { opacity: 0; }
	to { opacity: 1; }
}

/* Tablet (768–1279 px, iPad vertical y horizontal): header y contenido con el mismo margen
   lateral, logo más visible y botón «Agendar valoración» (contorno + calendario) siempre visible,
   porque aquí sí hay espacio. */
@media (min-width: 768px) and (max-width: 1279px) {
	:root {
		--dc-gutter: clamp(32px, 4.5vw, 56px);
	}

	body .elementor .elementor-element.elementor-section.dc-header--mobile {
		padding-left: var(--dc-gutter);
		padding-right: var(--dc-gutter);
	}

	body .dc-header--mobile .sc_layouts_logo img {
		height: 58px;
		max-height: 58px;
		width: auto;
	}

	.dc-hero-photo .elementor-widget-button.dc-btn {
		margin-bottom: 10px;
	}

	body .elementor .elementor-element.elementor-top-section:not(.dc-header):not(.dc-footer) {
		padding-left: calc(var(--dc-gutter) + var(--dc-gutter-fix, 0px));
		padding-right: calc(var(--dc-gutter) + var(--dc-gutter-fix, 0px));
	}

	body .elementor .elementor-element.elementor-section.dc-footer:not(.dc-footer-bottom) {
		padding-left: calc(var(--dc-gutter) - 15px);
		padding-right: calc(var(--dc-gutter) - 15px);
	}

	/* Mismo relleno lateral en todas las columnas (algunas tenían 10 px y otras 15 px) */
	body .elementor .elementor-element.elementor-top-section:not(.dc-header) > .elementor-container > .elementor-column > .elementor-widget-wrap {
		padding-left: 15px;
		padding-right: 15px;
	}

	body .elementor .elementor-element.elementor-section.dc-footer-bottom {
		padding-left: calc(var(--dc-gutter) - 15px);
		padding-right: calc(var(--dc-gutter) - 15px);
	}
}

/* Menú móvil (panel a pantalla completa) */
.menu_mobile .dc-lang-menu-item {
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid rgba(247, 248, 224, 0.25);
}

.menu_mobile .dc-lang--mobile {
	font-size: 15px;
	gap: 10px;
}

.menu_mobile .dc-lang--mobile .dc-lang__item,
.menu_mobile .dc-lang--mobile .dc-lang__sep {
	display: inline;
	padding: 6px 4px;
	color: inherit;
	opacity: 0.75;
}

.menu_mobile .dc-lang--mobile .dc-lang__item.is-current {
	opacity: 1;
}

/* 14. WhatsApp flotante, «volver arriba» y header fijo ------------------------------ */

.dc-wa-float {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 8000;
	display: flex;
	align-items: center;
	gap: 12px;
	text-decoration: none;
	-webkit-tap-highlight-color: transparent;
}

.dc-wa-float__icon {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	color: #fff;
	background-color: #25d366; /* verde oficial de WhatsApp: reconocible al instante */
	box-shadow: 0 10px 28px rgba(18, 140, 126, 0.28), 0 2px 6px rgba(36, 57, 59, 0.12);
	transition: transform .25s var(--dc-ease), background-color .25s var(--dc-ease), box-shadow .25s var(--dc-ease);
}

/* Anillo suave (verde WhatsApp) que respira cada pocos segundos */
.dc-wa-float__icon::after {
	content: "";
	position: absolute;
	inset: -6px;
	border: 2px solid rgba(37, 211, 102, 0.55);
	border-radius: 50%;
	opacity: 0;
	animation: dc-wa-ring 4.5s var(--dc-ease) 2s infinite;
}

@keyframes dc-wa-ring {
	0% { transform: scale(0.92); opacity: 0; }
	15% { opacity: 1; }
	45% { transform: scale(1.18); opacity: 0; }
	100% { transform: scale(1.18); opacity: 0; }
}

.dc-wa-float__label {
	padding: 10px 16px;
	font-family: var(--dc-font);
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
	white-space: nowrap;
	color: var(--dc-ink);
	background-color: var(--dc-cream);
	border: 1px solid var(--dc-line);
	border-radius: var(--dc-radius-pill);
	box-shadow: 0 8px 22px rgba(36, 57, 59, 0.12);
	opacity: 0;
	transform: translateX(8px);
	pointer-events: none;
	transition: opacity .25s var(--dc-ease), transform .25s var(--dc-ease);
}

.dc-wa-float:hover .dc-wa-float__icon,
.dc-wa-float:focus-visible .dc-wa-float__icon {
	transform: translateY(-2px);
	background-color: #1ebe5d;
	box-shadow: 0 14px 32px rgba(18, 140, 126, 0.32), 0 0 0 3px rgba(37, 211, 102, 0.25);
}

.dc-wa-float:hover .dc-wa-float__label,
.dc-wa-float:focus-visible .dc-wa-float__label {
	opacity: 1;
	transform: translateX(0);
}

.dc-wa-float:focus-visible {
	outline: none;
}

/* «Volver arriba» de ThemeREX: alineado con el botón de WhatsApp y por encima de él */
.trx_addons_scroll_to_top {
	right: 34px !important;
	z-index: 7999;
}

.trx_addons_scroll_to_top.show {
	bottom: 104px !important;
}

/* Header fijo (control «row_fixed» de ThemeREX): fondo y sombra suaves al desplazarse */
.dc-header.sc_layouts_row_fixed_on {
	background-color: var(--dc-cream) !important;
	box-shadow: 0 6px 24px rgba(36, 57, 59, 0.08);
	transition: box-shadow .3s var(--dc-ease);
}

/* Crédito del footer */
.dc-credit a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
}

@media (max-width: 767px) {
	.dc-wa-float {
		right: 16px;
		bottom: 16px;
	}

	.dc-wa-float__icon {
		width: 58px;
		height: 58px;
	}

	.dc-wa-float__label {
		display: none;
	}

	.trx_addons_scroll_to_top {
		right: 23px !important;
	}

	.trx_addons_scroll_to_top.show {
		bottom: 88px !important;
	}
}

/* Franja inferior del footer: deja libre la zona del botón flotante al final de la página */
.dc-footer-bottom > .elementor-container {
	padding-right: 84px;
}

@media (max-width: 767px) {
	.dc-footer-bottom > .elementor-container {
		padding-right: 0;
		padding-bottom: 84px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.dc-wa-float__icon,
	.dc-wa-float__label {
		transition: none;
	}

	.dc-wa-float__icon::after {
		animation: none;
	}
}

/* 13. Página 404 (español e inglés) --------------------------------------------------------- */

.dc-404 {
	max-width: 640px;
	margin: 0 auto;
	padding: clamp(72px, 10vw, 140px) 20px;
	text-align: center;
}

.dc-404__eyebrow {
	margin: 0 0 16px;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.18em;
	color: var(--dc-ink-soft);
}

.dc-404__title {
	margin: 0 0 20px;
	font-family: var(--dc-font);
	font-size: clamp(36px, 5vw, 60px);
	font-weight: 300;
	line-height: 1.1;
	letter-spacing: -0.01em;
	text-transform: none;
	color: var(--dc-ink);
}

.dc-404__text {
	margin: 0 0 32px;
	font-size: 18px;
	font-weight: 300;
	line-height: 1.6;
	color: var(--dc-ink-soft);
}

.dc-404__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin: 0;
}

.dc-404__btn {
	display: inline-block;
	padding: 15px 26px;
	font-family: var(--dc-font);
	font-size: 15px;
	font-weight: 500;
	line-height: 1;
	color: var(--dc-ink);
	text-decoration: none;
	border: 1px solid var(--dc-ink);
	border-radius: var(--dc-radius-pill);
}

.dc-404__btn--primary {
	background-color: var(--dc-gold);
	border-color: var(--dc-gold);
}

.dc-404__btn:hover,
.dc-404__btn:focus-visible {
	color: var(--dc-ink);
	background-color: var(--dc-gold);
	border-color: var(--dc-gold);
}

/* 11. Hero de la Home con fotografía de Dayanna ----------------------------------- */

.elementor-section.dc-hero-photo {
	padding-bottom: 0;
	overflow: hidden;
}

.dc-hero-photo > .elementor-container {
	align-items: stretch;
}

.dc-hero-photo .dc-h1 .elementor-heading-title {
	font-size: clamp(34px, 4.1vw, 60px);
}

.dc-hero-figure {
	position: relative;
	display: flex;
	align-items: flex-end;
	justify-content: flex-end;
	width: 100%;
	height: 100%;
	margin: 0;
}

.elementor .dc-hero-figure img.dc-hero-figure__img {
	position: relative;
	z-index: 1;
	display: block;
	width: auto;
	height: clamp(560px, 52vw, 800px);
	max-width: 100%;
	margin: 0 4% 0 0;
	object-fit: contain;
	object-position: bottom center;
}

/* Arco de marca muy suave detrás de la persona (sin degradados ni sombras) */
.dc-hero-figure__arch {
	position: absolute;
	z-index: 0;
	right: 1%;
	bottom: 0;
	width: min(80%, 560px);
	height: 80%;
	border-radius: 999px 999px 0 0;
	background-color: var(--dc-pink);
	opacity: 0.42;
}

.dc-hero-figure__orb {
	position: absolute;
	z-index: 0;
	top: 18%;
	right: 4%;
	width: clamp(56px, 6.5vw, 104px);
	aspect-ratio: 1;
	border-radius: 50%;
	background-color: var(--dc-gold);
	opacity: 0.8;
}

@media (max-width: 1279px) {
	.dc-hero-photo .dc-h1 .elementor-heading-title {
		font-size: clamp(30px, 4.2vw, 46px);
	}

	.elementor .dc-hero-figure img.dc-hero-figure__img {
		height: clamp(460px, 58vw, 620px);
		margin-right: 0;
	}

	.dc-hero-figure__arch {
		right: 0;
		width: 92%;
	}
}

@media (max-width: 767px) {
	.dc-hero-photo .dc-h1 .elementor-heading-title {
		font-size: clamp(32px, 9vw, 40px);
	}

	.dc-hero-figure {
		justify-content: center;
		height: auto;
	}

	.elementor .dc-hero-figure img.dc-hero-figure__img {
		height: clamp(420px, 125vw, 560px);
		margin: 0 auto;
	}

	.dc-hero-figure__arch {
		right: auto;
		left: 50%;
		width: min(88%, 380px);
		height: 78%;
		transform: translateX(-50%);
	}

	.dc-hero-figure__orb {
		top: 14%;
		right: 6%;
	}

	/* Móvil: hero compacto para que al entrar se vean texto, botones y la foto de Dayanna */
	body .elementor .elementor-element.elementor-section.dc-hero-photo {
		padding-top: 16px;
	}

	body .elementor .dc-hero-photo .elementor-column.elementor-element:first-child > .elementor-widget-wrap {
		padding-bottom: 8px;
	}

	.dc-hero-photo .dc-eyebrow,
	.dc-hero-photo .dc-eyebrow p {
		font-size: 11px;
		letter-spacing: 0.12em;
		margin-bottom: 4px;
	}

	.dc-hero-photo .dc-h1 .elementor-heading-title {
		font-size: clamp(29px, 8.2vw, 34px);
		line-height: 1.12;
	}

	.dc-hero-photo .dc-lead,
	.dc-hero-photo .dc-lead p {
		font-size: 16px;
		line-height: 1.55;
	}

	.dc-hero-photo .elementor-widget-button.dc-btn {
		margin: 0 8px 10px 0;
	}

	.dc-hero-photo .elementor-widget-button.dc-btn:last-of-type,
	.dc-hero-photo .elementor-widget-button.dc-btn--outline {
		margin-right: 0;
	}

	.dc-hero-photo .dc-btn .elementor-button {
		font-size: 14px;
		padding: 13px 14px;
	}

	.dc-hero-photo .dc-note,
	.dc-hero-photo .dc-note p {
		font-size: 13px;
		line-height: 1.5;
	}

	.elementor .dc-hero-figure img.dc-hero-figure__img {
		height: clamp(380px, 108vw, 470px);
	}
}

/* 10. Journal (página de entradas) ---------------------------------------------- */

.dc-journal-empty {
	max-width: 760px;
	margin: 0 auto;
	padding: 56px 48px;
	text-align: center;
	background-color: rgba(255, 255, 255, 0.55);
	border: 1px solid var(--dc-line);
	border-radius: 28px;
}

.dc-journal-empty__eyebrow {
	margin: 0 0 16px;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--dc-ink);
}

.dc-journal-empty__title {
	margin: 0 0 16px;
	font-family: var(--dc-font);
	font-size: 30px;
	font-weight: 400;
	line-height: 1.25;
	letter-spacing: 0;
	text-transform: none;
	color: var(--dc-ink);
}

.dc-journal-empty__text {
	margin: 0 auto 28px;
	max-width: 560px;
	font-size: 17px;
	font-weight: 300;
	line-height: 1.7;
	color: var(--dc-ink-soft);
}

.dc-journal-empty__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin: 0;
}

.dc-journal-empty__btn {
	display: inline-block;
	padding: 15px 26px;
	font-family: var(--dc-font);
	font-size: 15px;
	font-weight: 500;
	line-height: 1;
	color: var(--dc-ink);
	text-decoration: none;
	border: 1px solid var(--dc-ink);
	border-radius: var(--dc-radius-pill);
	transition: background-color .25s var(--dc-ease), border-color .25s var(--dc-ease);
}

.dc-journal-empty__btn--primary {
	background-color: var(--dc-gold);
	border-color: var(--dc-gold);
}

.dc-journal-empty__btn:hover,
.dc-journal-empty__btn:focus-visible {
	color: var(--dc-ink);
	background-color: var(--dc-gold);
	border-color: var(--dc-gold);
}

.dc-journal-empty__btn--primary:hover,
.dc-journal-empty__btn--primary:focus-visible {
	background-color: var(--dc-cream);
	border-color: var(--dc-ink);
}

/* Rejilla de artículos (se usará cuando existan entradas) */
.dc-journal-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 48px 32px;
}

.dc-journal-card {
	padding-top: 24px;
	border-top: 1px solid var(--dc-line);
}

.dc-journal-card__media img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	margin-bottom: 20px;
	border-radius: 18px;
}

.dc-journal-card__meta {
	margin: 0 0 10px;
	font-size: 13px;
	color: var(--dc-ink-soft);
}

.dc-journal-card__meta a {
	color: inherit;
}

.dc-journal-card__title {
	margin: 0 0 10px;
	font-family: var(--dc-font);
	font-size: 22px;
	font-weight: 400;
	line-height: 1.3;
	letter-spacing: 0;
	text-transform: none;
}

.dc-journal-card__title a {
	color: var(--dc-ink);
	text-decoration: none;
}

.dc-journal-card__excerpt {
	margin: 0 0 16px;
	font-size: 16px;
	font-weight: 300;
	line-height: 1.6;
	color: var(--dc-ink-soft);
}

.dc-journal-card__link {
	font-size: 15px;
	font-weight: 500;
	color: var(--dc-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.dc-journal-pagination ul {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin: 56px 0 0;
	padding: 0;
	list-style: none;
}

.dc-journal-pagination a,
.dc-journal-pagination span {
	display: inline-block;
	padding: 8px 14px;
	color: var(--dc-ink);
	border: 1px solid var(--dc-line);
	border-radius: var(--dc-radius-pill);
}

.dc-journal-pagination .current {
	background-color: var(--dc-gold);
	border-color: var(--dc-gold);
}

@media (max-width: 1279px) {
	.dc-journal-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.dc-journal-empty {
		padding: 36px 22px;
		border-radius: 22px;
	}

	.dc-journal-empty__title {
		font-size: 24px;
	}

	.dc-journal-empty__btn {
		width: 100%;
		text-align: center;
	}

	.dc-journal-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* 9. Páginas legales ------------------------------------------------------------ */

.dc-legal {
	font-family: var(--dc-font);
	font-size: 17px;
	font-weight: 300;
	line-height: 1.7;
	color: var(--dc-ink-soft);
}

.dc-legal h2 {
	margin: 48px 0 14px;
	font-family: var(--dc-font);
	font-size: 24px;
	font-weight: 400;
	line-height: 1.3;
	letter-spacing: 0;
	text-transform: none;
	color: var(--dc-ink);
}

.dc-legal h2:first-child {
	margin-top: 0;
}

.dc-legal p,
.dc-legal ul {
	margin: 0 0 14px;
}

.dc-legal ul {
	padding-left: 22px;
	list-style: disc;
}

.dc-legal li {
	margin-bottom: 6px;
}

.dc-legal strong {
	font-weight: 500;
	color: var(--dc-ink);
}

.dc-legal a,
.dc-legal-nav a {
	color: var(--dc-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.dc-legal table {
	width: 100%;
	margin: 8px 0 18px;
	border-collapse: collapse;
	font-size: 15px;
}

.dc-legal th,
.dc-legal td {
	padding: 10px 12px;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid var(--dc-line);
}

.dc-legal th {
	font-weight: 500;
	color: var(--dc-ink);
	background: transparent;
}

@media (max-width: 767px) {
	.dc-legal {
		font-size: 16px;
	}

	.dc-legal h2 {
		margin-top: 36px;
		font-size: 21px;
	}

	.dc-legal table,
	.dc-legal thead,
	.dc-legal tbody,
	.dc-legal tr,
	.dc-legal th,
	.dc-legal td {
		display: block;
	}

	.dc-legal thead {
		display: none;
	}

	.dc-legal td {
		padding: 4px 0;
		border: 0;
	}

	.dc-legal tr {
		padding: 10px 0;
		border-bottom: 1px solid var(--dc-line);
	}
}

/* 8. Formulario de valoración (CF7) --------------------------------------------- */

.elementor .elementor-column.dc-form-card > .elementor-widget-wrap.elementor-element-populated {
	background-color: rgba(255, 255, 255, 0.55);
	border: 1px solid var(--dc-line);
	border-radius: 28px;
	width: calc(100% - 30px);
	margin: 0 15px;
	padding: 44px;
}

.dc-form-wrap .wpcf7-form {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 22px 20px;
	margin: 0;
}

.dc-form-wrap .dc-field {
	display: block;
	margin: 0;
	min-width: 0;
}

.dc-form-wrap .dc-field--full,
.dc-form-wrap .dc-consent,
.dc-form-wrap .dc-submit,
.dc-form-wrap .wpcf7-response-output {
	grid-column: 1 / -1;
}

.dc-form-wrap .dc-label {
	display: block;
	margin-bottom: 8px;
	font-family: var(--dc-font);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.3;
	color: var(--dc-ink);
}

.dc-form-wrap .dc-optional {
	font-weight: 300;
	color: var(--dc-ink-soft);
}

.dc-form-wrap .dc-help {
	display: block;
	margin-top: 6px;
	font-size: 13px;
	line-height: 1.4;
	color: var(--dc-ink-soft);
}

.dc-form-wrap .wpcf7-form-control-wrap {
	display: block;
}

.dc-form-wrap input[type="text"],
.dc-form-wrap input[type="email"],
.dc-form-wrap input[type="tel"],
.dc-form-wrap select,
.dc-form-wrap textarea {
	box-sizing: border-box;
	width: 100%;
	min-height: 52px;
	margin: 0;
	padding: 14px 18px;
	font-family: var(--dc-font);
	font-size: 16px;
	font-weight: 300;
	line-height: 1.4;
	color: var(--dc-ink);
	background-color: var(--dc-cream);
	border: 1px solid rgba(36, 57, 59, 0.28);
	border-radius: 14px;
	box-shadow: none;
	transition: border-color .2s var(--dc-ease), box-shadow .2s var(--dc-ease);
}

.dc-form-wrap select {
	appearance: none;
	-webkit-appearance: none;
	padding-right: 44px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2324393B' stroke-width='1.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 18px center;
	cursor: pointer;
}

.dc-form-wrap textarea {
	height: 150px;
	min-height: 120px;
	resize: vertical;
}

.dc-form-wrap ::placeholder {
	color: var(--dc-ink-soft);
	opacity: .7;
}

.dc-form-wrap input:focus,
.dc-form-wrap select:focus,
.dc-form-wrap textarea:focus {
	outline: none;
	border-color: var(--dc-ink);
	box-shadow: 0 0 0 3px rgba(153, 182, 184, 0.45);
}

.dc-form-wrap .wpcf7-not-valid {
	border-color: #A8463B;
}

.dc-form-wrap .wpcf7-not-valid-tip {
	margin-top: 6px;
	font-size: 13px;
	color: #A8463B;
}

/* Campo trampa: fuera de la vista y del orden de tabulación visual */
.dc-form-wrap .dc-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.dc-form-wrap .dc-consent .wpcf7-list-item {
	margin: 0;
}

.dc-form-wrap .dc-consent label {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: 15px;
	font-weight: 300;
	line-height: 1.5;
	color: var(--dc-ink);
	cursor: pointer;
}

.dc-form-wrap .dc-consent input[type="checkbox"] {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	margin: 2px 0 0;
	accent-color: var(--dc-ink);
}

.dc-form-wrap .dc-consent a {
	color: var(--dc-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.dc-form-wrap .dc-submit {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 4px 0 0;
}

/* El tema envuelve el botón en .wpcf7-submit-style con un fondo propio (con icono) y fuerza
   fondo transparente y padding con !important: se neutraliza solo en este formulario. */
.dc-form-wrap .wpcf7-submit-style {
	display: inline-block;
	position: relative;
	margin: 0;
	padding: 0;
	background: none;
	box-shadow: none;
}

.dc-form-wrap .wpcf7-submit-style .submit-style-in {
	display: none !important;
}

.dc-form-wrap .wpcf7 .wpcf7-submit-style input[type="submit"].dc-form-submit,
.dc-form-wrap input[type="submit"].dc-form-submit {
	padding: 17px 34px !important;
	background-color: var(--dc-gold) !important;
	box-shadow: none;
}

.dc-form-wrap .wpcf7 .wpcf7-submit-style input[type="submit"].dc-form-submit:hover,
.dc-form-wrap .wpcf7 .wpcf7-submit-style input[type="submit"].dc-form-submit:focus-visible {
	background-color: var(--dc-cream) !important;
}

.dc-form-wrap input[type="submit"].dc-form-submit {
	width: auto;
	min-height: 0;
	margin: 0;
	font-family: var(--dc-font);
	font-size: 15px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.01em;
	text-transform: none;
	color: var(--dc-ink);
	background-color: var(--dc-gold);
	border: 1px solid var(--dc-gold);
	border-radius: var(--dc-radius-pill);
	cursor: pointer;
	transition: background-color .25s var(--dc-ease), border-color .25s var(--dc-ease);
}

.dc-form-wrap input[type="submit"].dc-form-submit:hover,
.dc-form-wrap input[type="submit"].dc-form-submit:focus-visible {
	background-color: var(--dc-cream);
	border-color: var(--dc-ink);
}

.dc-form-wrap input[type="submit"].dc-form-submit:disabled {
	opacity: .55;
	cursor: not-allowed;
}

.dc-form-wrap .wpcf7-spinner {
	margin: 0;
}

.dc-form-wrap .wpcf7 form .wpcf7-response-output,
.dc-form-wrap .wpcf7-response-output {
	margin: 4px 0 0;
	padding: 14px 18px;
	font-size: 15px;
	line-height: 1.5;
	color: var(--dc-ink);
	border: 1px solid var(--dc-ink);
	border-radius: 14px;
}

.dc-form-wrap .wpcf7 form.sent .wpcf7-response-output {
	background-color: rgba(153, 182, 184, 0.25);
	border-color: var(--dc-teal);
}

.dc-form-wrap .wpcf7 form.invalid .wpcf7-response-output,
.dc-form-wrap .wpcf7 form.unaccepted .wpcf7-response-output,
.dc-form-wrap .wpcf7 form.failed .wpcf7-response-output,
.dc-form-wrap .wpcf7 form.spam .wpcf7-response-output {
	background-color: rgba(233, 176, 169, 0.25);
	border-color: var(--dc-pink);
}

/* Bloque de contacto directo (WhatsApp + dirección) */
.dc-contact-block {
	margin-top: 28px;
	padding-top: 28px;
	border-top: 1px solid var(--dc-line);
}

.dc-contact-block address {
	margin: 0 0 16px;
	font-style: normal;
}

.dc-contact-block .dc-contact-title {
	margin: 0 0 12px;
	font-family: var(--dc-font);
	font-size: 19px;
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: 0;
	text-transform: none;
	color: var(--dc-ink);
}

/* Tarjeta de contacto (/contacto/) */
.dc-contact-card .dc-contact-title {
	margin: 0 0 16px;
	font-family: var(--dc-font);
	font-size: 24px;
	font-weight: 400;
	line-height: 1.25;
	letter-spacing: 0;
	text-transform: none;
	color: var(--dc-ink);
}

.dc-contact-card address {
	margin: 0 0 16px;
	font-style: normal;
}

.dc-contact-card a {
	color: var(--dc-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.dc-contact-block a {
	color: var(--dc-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}

@media (max-width: 767px) {
	.elementor .elementor-column.dc-form-card > .elementor-widget-wrap.elementor-element-populated {
		width: calc(100% - 20px);
		margin: 0 10px;
		padding: 28px 20px;
		border-radius: 22px;
	}

	.dc-form-wrap .wpcf7-form {
		grid-template-columns: minmax(0, 1fr);
		gap: 18px;
	}

	.dc-form-wrap .dc-submit {
		flex-wrap: wrap;
	}

	.dc-form-wrap .wpcf7-submit-style,
	.dc-form-wrap input[type="submit"].dc-form-submit {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.dc-btn .elementor-button,
	.dc-social .elementor-social-icon,
	.dc-footer a,
	.dc-card .elementor-icon-box-title a::after,
	.dc-form-wrap input,
	.dc-form-wrap select,
	.dc-form-wrap textarea {
		transition: none;
	}
}

/* 15. Isotipo (mariposa del logo oficial) como marca de agua ----------------------- */
/* Uso medido y en posiciones distintas: CTA final (derecha), sección rosa de la Home
   (izquierda), gracias (abajo al centro), 404 (centro) y panel del menú. */

:root {
	--dc-isotipo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='131.35 104.19 118.41 115.91'%3E%3Cpath d='M239.69,184.94c-4.95-10.32-14.31-24.12-34-22.16-.25,0-1.82.23-2.12.27h0a5.83,5.83,0,0,0-3.24,1.4,2.46,2.46,0,0,0-.62.78c-.84,2.22,1.41,5.13,5,6.51s7.24.69,8.08-1.53c.74-1.94-.91-4.43-3.77-5.94h0c8.13,2.2,20.7,9.59,28.15,33.56,4,15-7.48,18.88-18.24,11.48-7.09-4.88-16.29-27.94-21.52-39.69A29.8,29.8,0,0,1,194.93,156c.1-2,.19-3.87.26-4.95A29.55,29.55,0,0,1,200,136.47c1.11-1.75,2.51-3.94,3.9-6.11,14.22-19.23,24.17-23,30.16-21.94a9.36,9.36,0,0,1,7.54,8.09,16.8,16.8,0,0,1-1,9.63c-8,17.47-21.25,23.67-30.16,27.29h0a3.91,3.91,0,0,0,.93-3.92c-.94-2.18-4.58-2.71-8.14-1.18s-5.68,4.54-4.74,6.72l.07.15a2.51,2.51,0,0,0,.61.67,4.93,4.93,0,0,0,2.82,1.09,49.15,49.15,0,0,0,29.37-7.57c18.68-12.24,25.35-38.07,9.53-44.27s-38.63,20.7-38.63,20.7c-6,7.16-10.34,14.52-12.68,21.08h0C187,140.61,184,133.66,177.86,127h0s-22.09-28.18-37.63-21.3-9.62,34.68,9.57,46.1a49.3,49.3,0,0,0,29.66,6.31,5,5,0,0,0,2.78-1.21,2.51,2.51,0,0,0,.57-.7l.07-.16c.84-2.22-1.41-5.13-5-6.51s-7.23-.69-8.08,1.53a3.92,3.92,0,0,0,1.1,3.88h0a54.52,54.52,0,0,1-30.18-26.47,25.74,25.74,0,0,1-2.25-10,8.78,8.78,0,0,1,.11-1.78,6.52,6.52,0,0,1,1.07-2.54,10.48,10.48,0,0,1,10.22-4.77c5.79.78,14.84,5.44,26.61,22.21a32.91,32.91,0,0,1,3.27,5.7c2.2,4.9,4.68,9.81,5.22,15.15.09.88.24,2.26.41,3.7a27.19,27.19,0,0,1-1.49,12.58c-4.34,11.79-14.06,36.5-21,41.76-10.43,7.85-20.73,3.09-17.38-12,6.41-24.28,19.25-31.52,27.28-34.06h0c-2.8,1.63-4.34,4.18-3.51,6.09.93,2.18,4.58,2.71,8.14,1.18s5.68-4.54,4.74-6.72a2.24,2.24,0,0,0-.66-.75,5.69,5.69,0,0,0-3.29-1.26h0c-.3,0-1.88-.2-2.13-.18-19.72-1.11-28.47,13.08-33,23.6-4.44,10.35-6.34,30.22,11.17,33.23A22.89,22.89,0,0,0,175,212.18c15.23-16.88,13.5-46.3,14.78-62.07h0c2.72,16.92,5.2,62.91,27.65,68.7C247.6,226.59,245.52,197.06,239.69,184.94Z'/%3E%3C/svg%3E");
}

.elementor-section.dc-bg-gold,
.elementor-section.dc-points,
body.page-id-23950 .elementor-section.dc-section,
body.page-id-24032 .elementor-section.dc-section,
.dc-404 {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

.elementor-section.dc-bg-gold > .elementor-container,
.elementor-section.dc-points > .elementor-container,
body.page-id-23950 .elementor-section.dc-section > .elementor-container,
body.page-id-24032 .elementor-section.dc-section > .elementor-container,
.dc-404 > * {
	position: relative;
	z-index: 1;
}

.elementor-section.dc-bg-gold::after,
.elementor-section.dc-points::after,
body.page-id-23950 .elementor-section.dc-section::after,
body.page-id-24032 .elementor-section.dc-section::after,
.dc-404::after {
	content: "";
	position: absolute;
	z-index: 0;
	aspect-ratio: 118.41 / 115.91;
	pointer-events: none;
	background-color: var(--dc-cream);
	-webkit-mask: var(--dc-isotipo) center / contain no-repeat;
	mask: var(--dc-isotipo) center / contain no-repeat;
}

/* CTA final (dorado): mariposa clara que asoma por la derecha */
.elementor-section.dc-bg-gold::after {
	right: -3%;
	bottom: -22%;
	width: clamp(220px, 30vw, 430px);
	background-color: #fff;
	opacity: 0.3;
	transform: rotate(-12deg);
}

/* Sección rosa (puntos clave): abajo a la izquierda, en el espacio libre bajo el texto */
.elementor-section.dc-points::after {
	left: -4%;
	bottom: -16%;
	width: clamp(200px, 28vw, 380px);
	opacity: 0.24;
	transform: rotate(-6deg);
}

/* Páginas de gracias (ES/EN): asoma por abajo, al centro (a la derecha ya está el arco) */
body.page-id-23950 .elementor-section.dc-section::after,
body.page-id-24032 .elementor-section.dc-section::after {
	left: 38%;
	bottom: -30%;
	width: clamp(240px, 36vw, 520px);
	background-color: var(--dc-teal);
	opacity: 0.1;
}

/* 404: centrada detrás del título */
.dc-404::after {
	left: 50%;
	top: 50%;
	width: min(80vw, 460px);
	background-color: var(--dc-teal);
	opacity: 0.1;
	transform: translate(-50%, -50%);
}

@media (max-width: 767px) {
	.elementor-section.dc-bg-gold::after { right: -18%; bottom: -10%; }
	.elementor-section.dc-points::after { left: -18%; bottom: -6%; }
}

/* 16. Opiniones de pacientes (shortcode [dc_testimonials], inc/testimonials.php) ------- */

.dc-testimonials__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.dc-testimonial {
	margin: 0;
	padding: 0;
}

body .dc-testimonial figure {
	text-align: left;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 18px;
	height: 100%;
	margin: 0;
	padding: 32px 32px 24px;
	background-color: rgba(255, 255, 255, 0.6);
	border: 1px solid var(--dc-line);
	border-radius: 24px;
	box-sizing: border-box;
}

/* El tema da a <blockquote> fondo, relleno e icono propios: se neutralizan aquí */
.dc-testimonial__stars {
	align-self: flex-start;
	display: inline-flex;
	gap: 3px;
	color: var(--dc-gold);
}

body .dc-testimonial blockquote.dc-testimonial__quote {
	position: relative;
	flex: 1;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent !important;
	font-family: var(--dc-font);
	font-size: 17px;
	font-style: normal;
	font-weight: 300;
	line-height: 1.65;
	color: var(--dc-ink);
}

body .dc-testimonial blockquote.dc-testimonial__quote::before {
	content: "\201C";
	position: static;
	display: block;
	width: auto;
	height: 34px;
	margin: 0 0 6px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 64px;
	line-height: 1;
	color: var(--dc-gold);
	background: none;
	transform: none;
}

body .dc-testimonial blockquote.dc-testimonial__quote::after {
	content: none;
}

body .dc-testimonial blockquote.dc-testimonial__quote p {
	margin: 0;
	font-size: inherit;
	font-style: normal;
	line-height: inherit;
	color: inherit;
}

body .dc-testimonial figcaption.dc-testimonial__author {
	position: static;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	gap: 12px;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 20px 0 0;
	text-align: left;
	background: none;
	transform: none;
	border-top: 1px solid var(--dc-line);
}

.dc-testimonial__avatar {
	display: inline-flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	font-size: 16px;
	font-weight: 500;
	color: var(--dc-ink);
	background-color: var(--dc-teal);
	border-radius: 50%;
}

.dc-testimonial__name {
	flex: 1;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.3;
	color: var(--dc-ink);
}

.dc-testimonial__link {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 13px;
	font-weight: 500;
	color: var(--dc-ink-soft);
	text-decoration: underline;
	text-decoration-color: rgba(36, 57, 59, 0.25);
	text-underline-offset: 3px;
	white-space: nowrap;
}

.dc-testimonial__link:hover,
.dc-testimonial__link:focus-visible {
	color: var(--dc-ink);
	text-decoration-color: var(--dc-gold);
}

.dc-testimonial__link .dc-testimonials__ext {
	width: 11px;
	height: 11px;
}

.dc-testimonials__footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 20px;
	margin-top: 40px;
}

.dc-testimonials__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 14px 24px;
	font-family: var(--dc-font);
	font-size: 15px;
	font-weight: 500;
	line-height: 1;
	color: var(--dc-ink);
	text-decoration: none;
	border: 1px solid var(--dc-ink);
	border-radius: var(--dc-radius-pill);
	transition: background-color .25s var(--dc-ease), border-color .25s var(--dc-ease);
}

.dc-testimonials__cta:hover,
.dc-testimonials__cta:focus-visible {
	color: var(--dc-ink);
	background-color: var(--dc-gold);
	border-color: var(--dc-gold);
}

.dc-testimonials__ext {
	width: 14px;
	height: 14px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M9 7h8v8'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M9 7h8v8'/%3E%3C/svg%3E") center / contain no-repeat;
}

.dc-testimonials__note {
	margin: 0;
	font-size: 13px;
	color: var(--dc-ink-soft);
}

/* Todas las opiniones (página Sonrisas): columnas tipo mosaico */
.dc-testimonials--all .dc-testimonials__list {
	display: block;
	columns: 3 300px;
	column-gap: 24px;
}

.dc-testimonials--all .dc-testimonial {
	margin-bottom: 24px;
	break-inside: avoid;
}

.dc-testimonials--all .dc-testimonial figure {
	height: auto;
}

/* Menos de 1024 px: las destacadas se deslizan en horizontal (con un asomo de la siguiente) */
@media (max-width: 1023px) {
	.dc-testimonials--featured .dc-testimonials__list {
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: min(82%, 380px);
		gap: 16px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scroll-padding-left: 0;
		padding-bottom: 8px;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: thin;
	}

	.dc-testimonials--featured .dc-testimonial {
		scroll-snap-align: start;
	}
}

@media (max-width: 767px) {
	.dc-testimonial figure {
		padding: 28px 24px 22px;
	}

	body .dc-testimonial blockquote.dc-testimonial__quote {
		font-size: 16px;
	}

	.dc-testimonials__footer {
		margin-top: 28px;
	}
}

/* 17. Ajustes móviles generales ------------------------------------------------------ */

/* Enlaces que iOS pudiera generar igualmente: sin estilo propio */
a[x-apple-data-detectors] {
	color: inherit !important;
	font: inherit !important;
	text-decoration: none !important;
}

/* Botones en móvil: misma separación si se apilan y alineados arriba si caben en una fila
   (el margen superior de Elementor pensado para apilarlos los desalineaba al quedar lado a lado) */
@media (max-width: 767px) {
	body .elementor-widget-wrap > .elementor-widget-button.dc-btn {
		margin-top: 0;
		margin-bottom: 10px;
	}

	body .elementor-widget-wrap:has(> .elementor-widget-button.dc-btn) {
		align-items: flex-start !important; /* gana al centrado vertical de la columna de Elementor */
	}
}

/* Pantallas táctiles: sin «hover pegado» tras tocar un botón (iOS mantiene :hover) */
@media (hover: none) {
	body .dc-btn:not(.dc-btn--outline) .elementor-button:hover {
		color: var(--dc-ink);
		background-color: var(--dc-gold);
		border-color: var(--dc-gold);
	}

	body .dc-btn.dc-btn--outline .elementor-button:hover {
		color: var(--dc-ink);
		background-color: transparent;
		border-color: var(--dc-ink);
	}

	body .dc-header .dc-btn .elementor-button:hover {
		color: var(--dc-ink);
		background-color: var(--dc-gold);
		border-color: var(--dc-gold);
	}

	body .elementor-section.dc-bg-gold .dc-btn .elementor-button:hover {
		color: var(--dc-ink);
		background-color: var(--dc-gold);
		border-color: var(--dc-gold);
	}
}

/* 18. Base casi blanca + crema como acento --------------------------------------------
   Para que el sitio no se vea saturado de crema: fondo general casi blanco cálido (--dc-paper);
   el crema queda en los heros (con degradado hacia el casi blanco, que conecta con la sección
   siguiente sin línea de corte), en bandas puntuales (.dc-tone-cream / .dc-fade-paper) y en las
   tarjetas. Rosa, teal y dorado no cambian. */

:root {
	--dc-paper: #FDFDF6;
}

.scheme_default,
body.scheme_default,
.scheme_default:where(.editor-styles-wrapper) {
	--theme-color-bg_color: var(--dc-paper);
}

body {
	background-color: var(--dc-paper);
}

.dc-header,
body .dc-header.sc_layouts_row_fixed_on {
	background-color: var(--dc-paper) !important;
}

.menu_mobile .menu_mobile_inner,
.dc-menu .menu_mobile_inner {
	background-color: var(--dc-paper);
}

/* Heros (crema) que se funden con el casi blanco */
.elementor-section.dc-bg-cream,
.elementor-section.dc-fade-paper {
	background-color: transparent;
	background-image: linear-gradient(180deg, var(--dc-cream) 0%, var(--dc-cream) 55%, var(--dc-paper) 100%);
}

.elementor-section.dc-tone-cream {
	background-color: transparent;
	background-image: linear-gradient(180deg, var(--dc-paper) 0%, var(--dc-cream) 45%, var(--dc-cream) 100%);
	border-top-color: transparent;
}

.elementor-section.dc-tone-paper {
	background-color: var(--dc-paper);
}

/* Sin línea de corte justo después de un degradado ni donde se indique */
.elementor-section.dc-bg-cream + .elementor-section.dc-divider-top,
.elementor-section.dc-fade-paper + .elementor-section.dc-divider-top,
.elementor-section.dc-no-divider {
	border-top-color: transparent;
}

/* Tarjetas de opiniones: crema sobre el fondo casi blanco */
.dc-testimonial figure {
	background-color: var(--dc-cream);
}

/* 19. Material gráfico: fotos en arcos, reels y galería de casos (inc/media.php) ------- */

/* Arcos con fotografía real (sustituyen al isotipo decorativo) */
.dc-arch--photo::after {
	display: none;
}

.dc-arch--photo img.dc-photo {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 20%;
}

/* Foto sin recorte (casos antes/después): imagen completa con esquinas redondeadas */
.dc-arch.dc-arch--free {
	aspect-ratio: auto;
	border: 0;
	border-radius: 24px;
	background: none;
}

.dc-arch--free img.dc-photo {
	position: static;
	display: block;
	width: 100%;
	height: auto;
}

.dc-results .dc-figure {
	max-width: none;
	margin: 0;
}

/* Reels (formato vertical tipo historia) */
.dc-reels--row {
	display: grid;
	grid-template-columns: repeat(var(--dc-reels, 4), minmax(0, 300px));
	gap: 20px;
	justify-content: center;
	margin: 0 0 40px;
}

.dc-reels--single {
	max-width: 340px;
	margin-left: auto;
	margin-right: auto;
}

body .dc-reel {
	position: relative;
	text-align: left;
	margin: 0;
	overflow: hidden;
	background-color: var(--dc-ink);
	border-radius: 28px;
	box-shadow: 0 28px 56px -28px rgba(36, 57, 59, 0.5);
}

.dc-reel__top,
.dc-reel__media {
	width: 100%;
	box-sizing: border-box;
}

.dc-reel__top {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	gap: 10px;
	padding: 12px 14px;
	color: var(--dc-cream);
	background-color: var(--dc-ink);
}

.dc-reel__avatar {
	display: inline-flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	color: var(--dc-teal);
	background-color: var(--dc-cream);
	border-radius: 50%;
}

.dc-reel__avatar svg {
	width: 20px;
	height: 20px;
}

.dc-reel__who {
	display: flex;
	flex-direction: column;
	line-height: 1.25;
}

.dc-reel__name {
	font-size: 14px;
	font-weight: 500;
	color: var(--dc-cream);
}

.dc-reel__label {
	font-size: 12px;
	color: rgba(247, 248, 224, 0.72);
}

.dc-reel__media {
	position: relative;
	aspect-ratio: 9 / 16;
	background-color: #111;
}

.dc-reel__media::after {
	content: "";
	position: absolute;
	inset: auto 0 0 0;
	height: 34%;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.42) 100%);
	pointer-events: none;
}

.dc-reel__video {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.dc-reel__sound {
	position: absolute;
	z-index: 2;
	top: 50%;
	left: 50%;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 16px;
	font-family: var(--dc-font);
	font-size: 13px;
	font-weight: 500;
	line-height: 1;
	white-space: nowrap;
	color: #fff;
	background-color: rgba(36, 57, 59, 0.55);
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: var(--dc-radius-pill);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	transform: translate(-50%, -50%);
	cursor: pointer;
	transition: top .3s var(--dc-ease), left .3s var(--dc-ease), transform .3s var(--dc-ease), background-color .2s var(--dc-ease);
}

.dc-reel__sound:hover,
.dc-reel__sound:focus-visible {
	color: #fff;
	background-color: rgba(36, 57, 59, 0.8);
}

.dc-reel__sound:focus-visible {
	outline: 2px solid var(--dc-cream);
	outline-offset: 2px;
}

.dc-reel__sound-icon {
	width: 16px;
	height: 16px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 5 6 9H3v6h3l5 4z'/%3E%3Cpath d='m23 9-6 6M17 9l6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 5 6 9H3v6h3l5 4z'/%3E%3Cpath d='m23 9-6 6M17 9l6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Con sonido: el botón pasa a la esquina */
.dc-reel.is-sound .dc-reel__sound {
	top: 14px;
	left: calc(100% - 14px);
	transform: translate(-100%, 0);
}

.dc-reel.is-sound .dc-reel__sound-icon {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 5 6 9H3v6h3l5 4z'/%3E%3Cpath d='M15.5 8.5a5 5 0 0 1 0 7M19 5a10 10 0 0 1 0 14'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 5 6 9H3v6h3l5 4z'/%3E%3Cpath d='M15.5 8.5a5 5 0 0 1 0 7M19 5a10 10 0 0 1 0 14'/%3E%3C/svg%3E");
}

.dc-reel__cta {
	position: absolute;
	z-index: 2;
	left: 14px;
	right: 14px;
	bottom: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 13px 16px;
	font-family: var(--dc-font);
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
	color: var(--dc-ink);
	text-decoration: none;
	background-color: var(--dc-cream);
	border-radius: var(--dc-radius-pill);
	transition: background-color .2s var(--dc-ease);
}

.dc-reel__cta::before {
	content: "";
	width: 15px;
	height: 15px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4.5' width='18' height='16.5' rx='2.5'/%3E%3Cpath d='M3 9.5h18M8 2.5v4M16 2.5v4'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4.5' width='18' height='16.5' rx='2.5'/%3E%3Cpath d='M3 9.5h18M8 2.5v4M16 2.5v4'/%3E%3C/svg%3E") center / contain no-repeat;
}

.dc-reel__cta:hover,
.dc-reel__cta:focus-visible {
	color: var(--dc-ink);
	background-color: var(--dc-gold);
}

.dc-reel__cta--wa {
	color: #fff;
	background-color: #25d366;
}

.dc-reel__cta--wa::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.5 11.6a8.5 8.5 0 0 1-12.6 7.4L3.5 20.5l1.6-4.2A8.5 8.5 0 1 1 20.5 11.6z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.5 11.6a8.5 8.5 0 0 1-12.6 7.4L3.5 20.5l1.6-4.2A8.5 8.5 0 1 1 20.5 11.6z'/%3E%3C/svg%3E");
}

.dc-reel__cta--wa:hover,
.dc-reel__cta--wa:focus-visible {
	color: #fff;
	background-color: #1ebe5d;
}

/* Galería de casos (Sonrisas) */
.dc-cases {
	margin: 0;
	padding: 0;
	list-style: none;
	columns: 3 260px;
	column-gap: 16px;
}

.dc-cases__item {
	margin: 0 0 16px;
	padding: 0;
	break-inside: avoid;
}

.dc-cases__link {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: 20px;
}

.dc-cases__link img.dc-photo {
	display: block;
	width: 100%;
	height: auto;
	transition: transform .5s var(--dc-ease);
}

.dc-cases__link:hover img.dc-photo,
.dc-cases__link:focus-visible img.dc-photo {
	transform: scale(1.03);
}

.dc-zoom {
	max-width: min(94vw, 1100px);
	max-height: 94vh;
	padding: 0;
	overflow: visible;
	background: transparent;
	border: 0;
}

.dc-zoom::backdrop {
	background-color: rgba(36, 57, 59, 0.82);
}

.dc-zoom__img {
	display: block;
	width: auto;
	max-width: 100%;
	max-height: 88vh;
	border-radius: 16px;
}

.dc-zoom__close {
	position: absolute;
	top: -18px;
	right: -18px;
	width: 44px;
	height: 44px;
	padding: 0;
	font-size: 26px;
	line-height: 1;
	color: var(--dc-ink);
	background-color: var(--dc-cream);
	border: 0;
	border-radius: 50%;
	cursor: pointer;
}

/* CTA final con la fotografía de sonrisa de fondo: velo oscuro y ligero para que la imagen se
   aprecie; textos en crema y el botón principal en dorado (único botón dorado de la sección). */
body .elementor-section.dc-bg-gold {
	--theme-color-text: var(--dc-cream);
	--theme-color-text_dark: var(--dc-cream);
	--theme-color-text_link: var(--dc-cream);
	background-color: #1c2a2b;
	background-image: radial-gradient(ellipse 70% 65% at 50% 50%, rgba(14, 22, 23, 0.46) 0%, rgba(14, 22, 23, 0.22) 60%, rgba(14, 22, 23, 0.08) 100%), url('/wp-content/uploads/2026/10/dc/sonrisa-natural-dayanna-contreras.webp');
	background-position: center, center 40%;
	background-size: cover, cover;
}

body .elementor-section.dc-bg-gold .elementor-heading-title,
body .elementor-section.dc-bg-gold .dc-text p,
body .elementor-section.dc-bg-gold .dc-lead p,
body .elementor-section.dc-bg-gold .dc-eyebrow p,
body .elementor-section.dc-bg-gold p,
body .elementor-section.dc-bg-gold a:not(.elementor-button) {
	color: var(--dc-cream);
	text-shadow: 0 2px 18px rgba(0, 0, 0, 0.55), 0 1px 3px rgba(0, 0, 0, 0.35);
}

body .elementor-section.dc-bg-gold .dc-btn .elementor-button {
	color: var(--dc-ink);
	background-color: var(--dc-gold);
	border-color: var(--dc-gold);
}

body .elementor-section.dc-bg-gold .dc-btn .elementor-button:hover,
body .elementor-section.dc-bg-gold .dc-btn .elementor-button:focus-visible {
	color: var(--dc-ink);
	background-color: var(--dc-cream);
	border-color: var(--dc-cream);
}

/* Sin marca de agua en el CTA final: protagonismo para la fotografía */
body .elementor-section.dc-bg-gold::after {
	content: none;
}

@media (max-width: 1023px) {
	.dc-reels--row {
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: min(72%, 280px);
		gap: 14px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		padding-bottom: 10px;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: thin;
	}

	.dc-reels--row .dc-reel {
		scroll-snap-align: start;
	}
}

@media (prefers-reduced-motion: reduce) {
	.dc-cases__link img.dc-photo,
	.dc-reel__sound {
		transition: none;
	}
}

/* 20. Footer en móvil: estructura compacta y centrada ----------------------------------
   Orden: marca → tarjeta «Agenda tu valoración» (acción principal) → navegación en dos
   columnas → «Visítanos» (con «Cómo llegar») → franja inferior. Escritorio sin cambios. */

.dc-footer-maps {
	margin: 14px 0 0;
}

.dc-footer-maps a {
	text-decoration: underline;
	text-decoration-color: rgba(36, 57, 59, 0.35);
	text-underline-offset: 4px;
}

@media (max-width: 767px) {
	.dc-footer:not(.dc-footer-bottom) > .elementor-container {
		flex-wrap: wrap;
	}

	.dc-footer:not(.dc-footer-bottom) > .elementor-container > .elementor-column {
		width: 100%;
		text-align: center;
	}

	.dc-footer:not(.dc-footer-bottom) > .elementor-container > .elementor-column:nth-child(1) { order: 1; }
	.dc-footer:not(.dc-footer-bottom) > .elementor-container > .elementor-column:nth-child(4) { order: 2; }
	.dc-footer:not(.dc-footer-bottom) > .elementor-container > .elementor-column:nth-child(2) { order: 3; }
	.dc-footer:not(.dc-footer-bottom) > .elementor-container > .elementor-column:nth-child(3) { order: 4; }

	.dc-footer:not(.dc-footer-bottom) .elementor-widget-wrap {
		justify-content: center;
	}

	.dc-footer .elementor-widget-image .elementor-widget-container,
	.dc-footer .elementor-widget-text-editor,
	.dc-footer .elementor-widget-heading .elementor-heading-title {
		text-align: center;
	}

	.dc-footer .elementor-widget-social-icons .elementor-widget-container,
	.dc-footer .elementor-social-icons-wrapper {
		justify-content: center;
		text-align: center;
	}

	/* Marca */
	.dc-footer:not(.dc-footer-bottom) > .elementor-container > .elementor-column:nth-child(1) > .elementor-widget-wrap {
		padding-bottom: 8px;
	}

	/* Tarjeta «Agenda tu valoración» */
	body .dc-footer:not(.dc-footer-bottom) > .elementor-container > .elementor-column:nth-child(4) > .elementor-widget-wrap {
		margin: 20px 0 32px;
		padding: 28px 24px;
		background-color: rgba(247, 248, 224, 0.22);
		border: 1px solid rgba(247, 248, 224, 0.45);
		border-radius: 24px;
	}

	.dc-footer .elementor-widget-button.dc-btn,
	.dc-footer .elementor-widget-button.dc-btn .elementor-button {
		width: 100%;
	}

	.dc-footer .elementor-widget-button.dc-btn .elementor-button-wrapper {
		text-align: center;
	}

	/* Navegación en dos columnas */
	body .dc-footer:not(.dc-footer-bottom) > .elementor-container > .elementor-column:nth-child(2) > .elementor-widget-wrap,
	body .dc-footer:not(.dc-footer-bottom) > .elementor-container > .elementor-column:nth-child(3) > .elementor-widget-wrap {
		padding-top: 28px;
		padding-bottom: 28px;
		border-top: 1px solid rgba(36, 57, 59, 0.16);
	}

	body .dc-footer .elementor-widget-wp-widget-nav_menu ul.menu {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 4px 16px;
		margin: 0;
		padding: 0;
	}

	body .dc-footer .elementor-widget-wp-widget-nav_menu ul.menu > li {
		margin: 0;
		padding: 6px 0;
		text-align: center;
	}

	/* Franja inferior: centrada y compacta */
	.dc-footer-bottom > .elementor-container > .elementor-column {
		width: 100%;
		text-align: center;
	}

	.dc-footer-bottom .dc-credit,
	.dc-footer-bottom .dc-credit p {
		text-align: center;
	}

	body .dc-footer-bottom .dc-footer-legal ul.menu {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 4px 18px;
		margin-top: 10px;
	}

	body .dc-footer-bottom .dc-footer-legal ul.menu > li {
		margin: 0;
		padding: 0;
	}
}

/* 21. Desenfoques y efecto vidrio (glass) ----------------------------------------------
   Profundidad sin perder legibilidad: header fijo translúcido, aura desenfocada tras las fotos
   principales, sección de opiniones sobre fotografía desenfocada con tarjetas de vidrio y panel
   de vidrio oscuro en el CTA final. Con «reducir transparencia» del sistema se usan fondos sólidos. */

/* Separación entre botones contiguos (p. ej. «Visítanos en Medellín») */
.elementor-widget-button.dc-btn:has(+ .elementor-widget-button.dc-btn) {
	margin-right: 12px;
}

/* Header fijo: vidrio claro */
body .dc-header.sc_layouts_row_fixed_on {
	background-color: rgba(253, 253, 246, 0.72) !important;
	-webkit-backdrop-filter: blur(16px) saturate(160%);
	backdrop-filter: blur(16px) saturate(160%);
}

/* Aura: la misma foto, muy desenfocada, detrás del arco principal */
.dc-figure--aura {
	isolation: isolate;
}

.dc-figure--aura::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 6% -14% -6% -14%;
	background: var(--dc-aura) center / cover no-repeat;
	border-radius: 50%;
	filter: blur(56px) saturate(1.25);
	opacity: 0.55;
	pointer-events: none;
}

/* Opiniones: fotografía del estudio desenfocada de fondo, que se desvanece arriba y abajo */
.elementor-section.dc-testimonials-body {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

.elementor-section.dc-testimonials-body::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: -40px;
	background: url('/wp-content/uploads/2026/10/dc/recepcion-dayanna-contreras-dental-care-studio.webp') center / cover no-repeat;
	filter: blur(28px) saturate(1.1);
	opacity: 0.5;
	-webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 22%, #000 70%, transparent 100%);
	mask-image: linear-gradient(180deg, transparent 0%, #000 22%, #000 70%, transparent 100%);
	pointer-events: none;
}

/* Tarjetas de opiniones en vidrio con degradado */
body .dc-testimonial figure {
	background: linear-gradient(140deg, rgba(255, 255, 255, 0.78) 0%, rgba(247, 248, 224, 0.52) 100%);
	border: 1px solid rgba(255, 255, 255, 0.75);
	box-shadow: 0 18px 40px -24px rgba(36, 57, 59, 0.35);
	-webkit-backdrop-filter: blur(18px) saturate(150%);
	backdrop-filter: blur(18px) saturate(150%);
}

.dc-testimonials__cta {
	background-color: rgba(253, 253, 246, 0.6);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}

/* CTA final: sin vidrio, para que la fotografía sea la protagonista (velo radial de la sección 19) */

@media (max-width: 767px) {
	.dc-figure--aura::before {
		inset: 4% -8% -4% -8%;
		filter: blur(40px) saturate(1.2);
	}
}

/* Accesibilidad: sin transparencias si el sistema pide reducirlas */
@media (prefers-reduced-transparency: reduce) {
	body .dc-header.sc_layouts_row_fixed_on {
		background-color: var(--dc-paper) !important;
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}

	body .dc-testimonial figure {
		background: var(--dc-cream);
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}
}

/* 22. Animaciones de entrada (inc/motion.php) --------------------------------------------
   Fundido + ligero ascenso al entrar en pantalla, escalonado dentro de cada sección. Solo se
   ocultan si el script va a revelarlos (clase dc-anim-ready en <html>). */
html.dc-anim-ready .dc-anim {
	opacity: 0;
	transform: translate3d(0, 18px, 0);
	transition: opacity .8s cubic-bezier(.22, .61, .36, 1), transform .8s cubic-bezier(.22, .61, .36, 1);
	transition-delay: var(--dc-delay, 0ms);
	will-change: opacity, transform;
}

html.dc-anim-ready .dc-anim.is-in {
	opacity: 1;
	transform: none;
	will-change: auto;
}

@media print {
	html.dc-anim-ready .dc-anim {
		opacity: 1;
		transform: none;
	}
}

/* 23. Fuentes de iconos del tema con font-display (PageSpeed) --------------------------
   Se redeclaran las mismas fuentes (mismos archivos WOFF2) añadiendo font-display: swap;
   al cargarse después, esta declaración es la que usa el navegador. */
@font-face {
	font-family: 'fontello';
	src: url('../stomatology/skins/default/css/font-icons/font/fontello.woff2?30171684') format('woff2');
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'trx_addons_icons';
	src: url('../../plugins/trx_addons/css/font-icons/font/trx_addons_icons.woff2?66435921') format('woff2');
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}
