/* Estilos propios del sitio (lo que no cubre el kit de Elementor ni Astra). */

/* Header fijo al bajar (el sticky header de Astra es de pago) */
#masthead {
	position: sticky;
	top: 0;
	z-index: 99;
	background: var(--dm-crema);
	box-shadow: 0 2px 12px rgba(59, 34, 18, .08);
}
.admin-bar #masthead { top: 32px; }
@media (max-width: 782px) { .admin-bar #masthead { top: 0; } }

/* Botón flotante de WhatsApp */
.dm-wa-flotante {
	position: fixed;
	right: 18px;
	bottom: 18px;
	z-index: 999;
	width: 58px;
	height: 58px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #25d366;
	color: #fff;
	box-shadow: 0 6px 18px rgba(0, 0, 0, .25);
	transition: transform .15s ease;
}
.dm-wa-flotante:hover { transform: scale(1.06); color: #fff; }
.dm-wa-flotante:focus-visible { outline: 3px solid var(--dm-naranja); outline-offset: 3px; }
/* Astra pone su botón «volver arriba» abajo a la derecha: lo subimos */
#ast-scroll-top { bottom: 90px !important; }

/* ---------- Header ---------- */
.ast-primary-header-bar,
.ast-mobile-header-wrap .ast-primary-header-bar { background: var(--dm-crema); border-bottom: 0; }
.main-header-menu .menu-link {
	font-family: 'Nunito Sans', sans-serif;
	font-weight: 700;
	font-size: 16px;
	color: var(--dm-cafe-oscuro);
}
.main-header-menu .menu-item:hover > .menu-link,
.main-header-menu .current-menu-item > .menu-link { color: var(--dm-naranja-boton); }
.main-header-menu .sub-menu {
	background: #fff;
	border: 0;
	border-radius: var(--dm-radio);
	box-shadow: var(--dm-sombra);
	overflow: hidden;
}
.main-header-menu .sub-menu .menu-link { font-weight: 600; }
.ast-header-button-1 .ast-custom-button {
	background: var(--dm-naranja-boton);
	color: #fff;
	border-radius: 12px;
	padding: 12px 24px;
	font-family: 'Nunito Sans', sans-serif;
	font-weight: 700;
	border: 0;
}
.ast-header-button-1 .ast-custom-button:hover { background: #a84312; color: #fff; }
.dm-wa-header { display: inline-flex; width: 38px; height: 38px; align-items: center; justify-content: center; }
.dm-wa-header::before {
	content: '';
	width: 26px;
	height: 26px;
	background: #1ea952;
	-webkit-mask: url("../img/whatsapp.svg") center / contain no-repeat;
	mask: url("../img/whatsapp.svg") center / contain no-repeat;
}
.ast-mobile-popup-drawer .ast-mobile-popup-inner { background: var(--dm-crema); }

/* ---------- Footer ----------
   Astra imprime su CSS con [data-section=…]; se usa el mismo selector para ganarle. */
.site-footer .site-primary-footer-wrap[data-section] {
	background: var(--dm-cafe-oscuro);
	border-top: 0;
	padding-top: 56px;
	padding-bottom: 40px;
}
.site-footer .site-below-footer-wrap[data-section] {
	background: #2a170b;
	border-top: 1px solid rgba(209, 180, 140, .2);
}
.site-footer .site-primary-footer-wrap[data-section] .ast-builder-grid-row,
.site-footer .site-below-footer-wrap[data-section] .ast-builder-grid-row { padding-left: 16px; padding-right: 16px; }
.site-footer .footer-widget-area[data-section] p,
.site-footer .footer-widget-area[data-section] li { color: #eadcc8; font-size: 15px; }
.site-footer .footer-widget-area[data-section] a,
.site-footer .ast-footer-copyright a { color: #fff; text-decoration: none; }
.site-footer .footer-widget-area[data-section] a:hover,
.site-footer .ast-footer-copyright a:hover { color: var(--dm-naranja); }
.site-footer .ast-footer-copyright,
.site-footer .ast-footer-copyright p { color: #d1b48c; font-size: 14px; text-align: center; }
.dm-footer-logo { max-width: 200px; height: auto; margin-bottom: 14px; }
.site-footer .dm-footer-titulo {
	font-family: 'Fraunces', serif;
	font-size: 20px;
	color: #fff;
	margin: 0 0 14px;
}
.dm-footer-lista { list-style: none; margin: 0; padding: 0; }
.dm-footer-lista li { margin-bottom: 8px; }
.dm-footer-redes { margin-top: 12px; }
@media (max-width: 921px) { .site-footer .site-footer-section { margin-bottom: 28px; } }
/* que el botón flotante de WhatsApp no tape el copyright en celular */
@media (max-width: 921px) { .site-footer .site-below-footer-wrap[data-section] { padding-bottom: 72px; } }

/* ---------- Preguntas frecuentes [dm_faq] ---------- */
.dm-faq { display: grid; gap: 12px; }
.dm-faq-item {
	background: #fff;
	border-radius: var(--dm-radio);
	box-shadow: var(--dm-sombra);
	padding: 0 22px;
}
.dm-faq-item summary {
	cursor: pointer;
	list-style: none;
	padding: 18px 28px 18px 0;
	font-family: 'Fraunces', serif;
	font-weight: 600;
	font-size: 19px;
	color: var(--dm-cafe-oscuro);
	position: relative;
}
.dm-faq-item summary::-webkit-details-marker { display: none; }
.dm-faq-item summary::after {
	content: '+';
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	font-size: 26px;
	color: var(--dm-naranja-boton);
}
.dm-faq-item[open] summary::after { content: '–'; }
.dm-faq-item summary:focus-visible { outline: 3px solid var(--dm-naranja); outline-offset: 4px; border-radius: 6px; }
.dm-faq-respuesta { padding-bottom: 18px; }
.dm-faq-respuesta p:last-child { margin-bottom: 0; }

/* ---------- Galerías: miniaturas parejas 4:3 (las verticales se recortan; el lightbox muestra la foto completa) ---------- */
.elementor-image-gallery .gallery-item img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 10px;
	transition: transform .25s ease, filter .25s ease;
}
.elementor-image-gallery .gallery-item a:hover img { transform: scale(1.02); filter: brightness(1.05); }

/* ---------- Formulario de cotización [dm_cotizar] ---------- */
.dm-cot-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 18px; }
.dm-cot-full { grid-column: 1 / -1; }
@media (max-width: 640px) { .dm-cot-grid { grid-template-columns: 1fr; } }
.dm-cot-campo label { display: block; font-weight: 700; margin-bottom: 6px; color: var(--dm-cafe-oscuro); }
.dm-cot input[type=text], .dm-cot input[type=tel], .dm-cot input[type=email], .dm-cot input[type=date],
.dm-cot input[type=number], .dm-cot select, .dm-cot textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1.5px solid #dccbb5;
	border-radius: 10px;
	background: #fff;
	font: inherit;
	color: var(--dm-cafe-oscuro);
}
.dm-cot input:focus, .dm-cot select:focus, .dm-cot textarea:focus {
	outline: none;
	border-color: var(--dm-naranja-boton);
	box-shadow: 0 0 0 3px rgba(241, 107, 32, .2);
}
.dm-cot [aria-invalid="true"] { border-color: #b3261e; }
.dm-cot-msg { color: #b3261e; font-size: 14px; margin: 6px 0 0; }
.dm-cot-consent { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: start; margin: 18px 0; font-size: 15px; }
.dm-cot-consent input { margin-top: 4px; width: 18px; height: 18px; accent-color: var(--dm-naranja-boton); }
.dm-cot-consent .dm-cot-msg { grid-column: 2; }
.dm-cot-enviar {
	background: var(--dm-naranja-boton);
	color: #fff;
	border: 0;
	border-radius: 12px;
	padding: 14px 32px;
	font-weight: 700;
	font-size: 16px;
	cursor: pointer;
}
.dm-cot-enviar:hover, .dm-cot-enviar:focus-visible { background: #a84312; }
.dm-cot-nota { font-size: 13px; color: #7a6552; margin-top: 10px; }
.dm-cot-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.dm-cot-ok, .dm-cot-error { border-radius: 12px; padding: 16px 18px; margin-bottom: 18px; }
.dm-cot-ok { background: #e7f5ea; color: #1d5b2c; }
.dm-cot-error { background: #fdecea; color: #8a1c14; }
/* La galería básica de Elementor ignora las columnas de celular: 2 columnas */
@media (max-width: 767px) {
	.elementor-image-gallery .gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
	.elementor-image-gallery .gallery .gallery-item { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
	.elementor-image-gallery .gallery br { display: none; }
}
/* Astra fija la altura de los <select>: el texto se cortaba */
.dm-cot select { height: auto; min-height: 48px; line-height: 1.4; }
/* Texto legal: títulos más moderados */
.dm-legal h2 { font-size: 24px; margin: 32px 0 8px; }
/* Enlaces dentro de textos: no depender solo del color */
/* Elementor quita el subrayado con .elementor a (misma especificidad, carga después): se sube un nivel */
.elementor .elementor-widget-text-editor a, .dm-cot .dm-cot-consent a, .elementor .dm-legal a { text-decoration: underline; text-underline-offset: 2px; }
.site-footer .ast-footer-copyright a { text-decoration: underline; text-underline-offset: 2px; }
/* Video de YouTube (iframe controlado por Data Compliance) */
.dm-video { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: 16px; background: #2a170b; }
/* Mientras el banner de privacidad está abierto, el botón de WhatsApp no tapa sus botones (celular) */
@media (max-width: 767px) { body:has(.cxd-banner:not([hidden])) .dm-wa-flotante { display: none; } }
/* Aviso de Data Compliance en lugar del video (mismo tamaño que el video, colores de marca) */
.cxd-blocked-embed[data-cxd-service] {
	width: 100%;
	border-radius: 16px;
	background: var(--dm-cafe-oscuro);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	padding: 24px;
	text-align: center;
}
.cxd-blocked-embed[data-cxd-service] .cxd-blocked-embed__text { color: #fff; font-size: 17px; max-width: 520px; margin: 0; }
/* Enlaces del banner de privacidad: color de acento del plugin (contraste AA), no el global */
#cxd-root a { color: var(--cxd-accent); }
