/*
 * Clínica Muelle Heredia: base (tokens, reset, tipografía, botones, cabecera, pie).
 * Identidad en :root. CSS de cada sección: css/sections/{layout}.css (solo si la sección aparece).
 */
@font-face { font-family: "Raleway"; src: url(../fonts/raleway-var.woff2) format("woff2"); font-weight: 100 900; font-display: swap; }
@font-face { font-family: "Poppins"; src: url(../fonts/poppins-400.woff2) format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Poppins"; src: url(../fonts/poppins-500.woff2) format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Poppins"; src: url(../fonts/poppins-600.woff2) format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "Poppins"; src: url(../fonts/poppins-700.woff2) format("woff2"); font-weight: 700; font-display: swap; } /* negritas del original */
@font-face { font-family: "Inter"; src: url(../fonts/inter-var.woff2) format("woff2"); font-weight: 100 900; font-display: swap; } /* barra azul y rótulos, como el original */
@font-face { font-family: "Plus Jakarta Sans"; src: url(../fonts/jakarta-700.woff2) format("woff2"); font-weight: 700; font-display: swap; } /* botones sobre las fotos de la portada, como el original */
@font-face { font-family: "Roboto"; src: url(../fonts/roboto-400.woff2) format("woff2"); font-weight: 400; font-display: swap; } /* textos de Elementor sin fuente propia, como el original */
@font-face { font-family: "Raleway fallback"; src: local("Arial"); size-adjust: 104%; ascent-override: 90%; descent-override: 23%; }
@font-face { font-family: "Poppins fallback"; src: local("Arial"); size-adjust: 112%; ascent-override: 93%; descent-override: 31%; line-gap-override: 0%; }

:root {
	--c-blue: #327fff; /* el azul exacto del original */
	--c-blue-dark: #0b5ce0;
	--c-blue-soft: #93bbff;
	--c-sky: #e3f4fc;
	--c-bg: #fff;
	--c-surface: #f4f5f7;
	--c-surface-2: #f9fafb;
	--c-ink: #101828;
	--c-ink-2: #1d2939;
	--c-text: #5d6679;
	--c-muted: #667085;
	--c-line: #d9dde4;
	--c-dark: #0b0b0c;
	--c-on-dark: #f4f5f7;
	--c-green: #12b76a;

	--font-body: "Poppins", "Poppins fallback", system-ui, sans-serif;
	--font-display: "Raleway", "Raleway fallback", system-ui, sans-serif;
	/* Escala del original: texto 16/24, entradillas 17, h3 22, h2 45. */
	--fs-xs: .78rem;
	--fs-sm: 1rem;
	--fs-base: 1rem;
	--fs-lead: 1.0625rem;
	--fs-h3: clamp(1.25rem, 1.1rem + .4vw, 1.375rem);
	--fs-h2: clamp(35px, 1.3rem + 2.2vw, 2.8125rem);
	--fs-h1: clamp(2.6rem, 1.6rem + 4vw, 4.6rem);
	--fs-display: clamp(3rem, 1.6rem + 5.6vw, 5.6rem);

	--space-1: .25rem;
	--space-2: .5rem;
	--space-3: 1rem;
	--space-4: 1.5rem;
	--space-5: 2rem;
	--space-6: 3rem;
	--space-section: clamp(2.5rem, 1.6rem + 2.4vw, 3.125rem); /* 50 px, como el original */
	--gutter: 20px; /* como el original: 20 px en móvil, 50 px desde 768 px, sin ancho máximo */
	--wrap: none;
	--boxed: 1140px; /* secciones «en caja» del original */
	--radius-sm: .625rem;
	--radius-md: 1rem;
	--radius-lg: 1.375rem;
	--radius-pill: 999px;
	--shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 8px 24px -12px rgba(16, 24, 40, .18);
	--ease: cubic-bezier(.2, .7, .2, 1);
	--dur: .2s;
	color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 120px; }
body { margin: 0; background: var(--c-bg); color: var(--c-text); font: var(--fs-base)/1.5 var(--font-body); -webkit-font-smoothing: antialiased; overflow-x: clip; }
img, svg, video, iframe { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-underline-offset: .2em; }
h1, h2, h3, h4, p, ul, ol, figure, blockquote { margin: 0; }
h1, h2, h3, h4 { color: var(--c-ink); font-family: var(--font-display); font-weight: 500; line-height: 1.08; }
b, strong { font-weight: 700; } /* como el original: negrita 700 con el color del texto */
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--c-blue); outline-offset: 3px; border-radius: 4px; }
.is-puntero :focus-visible { outline: none; } /* tras pulsar con ratón o dedo (ver main.js); con teclado se ve */
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }

.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link:focus { position: fixed !important; top: 1rem; left: 1rem; width: auto; height: auto; clip: auto; z-index: 200; padding: .5rem 1rem; background: #fff; }
.container { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gutter); }
.container--narrow { max-width: 860px; }
.container--boxed { max-width: calc(var(--boxed) + 2 * var(--gutter)); }
@media (min-width: 768px) { :root { --gutter: 50px; } }
.section { padding-block: var(--space-section); }
.section--tight { padding-block: calc(var(--space-section) * .55); }
.icon { width: 1.25em; height: 1.25em; flex: none; }
.hl { font-style: normal; color: var(--c-blue); }

.h-display { font-size: var(--fs-display); line-height: .92; }
.h-1 { font-size: var(--fs-h1); line-height: .98; }
.h-2 { font-size: var(--fs-h2); line-height: 1; }
.h-3 { font-size: var(--fs-h3); line-height: 1; }
.lead { font-size: var(--fs-lead); }
.pill { display: inline-block; justify-self: start; padding: .2rem .85rem; border-radius: var(--radius-pill); background: var(--c-blue); color: #fff; font-size: var(--fs-sm); line-height: 1.5; }
.sec-head { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-3); margin-bottom: clamp(2rem, 1.4rem + 2vw, 3.5rem); }
.sec-head--center { justify-items: center; text-align: center; }
.sec-head--center .pill { justify-self: center; }
.sec-head--center .sec-head__text { max-width: 62ch; }
@media (min-width: 768px) {
	.sec-head--split { grid-template-columns: 1fr minmax(0, 30rem); align-items: start; }
	.sec-head--split .sec-head__text { text-align: right; }
	.sec-head--split .pill { grid-column: 1 / -1; }
}
.prose { color: var(--c-text); }
.prose > * + * { margin-top: 1em; }
.prose h2, .prose h3 { margin-top: 1.6em; }
.prose h2 { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); }
.prose .h-2, .sec-head .h-2 { font-size: var(--fs-h2); margin-top: 0; }
.prose h3 { font-size: 1.3rem; }
.prose ul, .prose ol { padding-left: 1.25em; }
.prose li + li { margin-top: .35em; }
.prose a:not(.btn) { color: var(--c-blue); }
.prose img { border-radius: var(--radius-md); }
.prose table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.prose th, .prose td { border: 1px solid var(--c-line); padding: .5rem .75rem; text-align: left; }

/* Botones */
.btns { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.btns--center { justify-content: center; }
/* Como el botón de Elementor del original: relleno 10 × 25, sin borde (los de borde, 1 px), icono de 14 px a 20 px
   del texto y, en «hueco», el sitio de un icono que no se ve (el original lo reserva igual). */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 20px; min-height: 38px; padding: 10px 25px; border: 0; border-radius: 100px; font-size: 14px; font-weight: 500; line-height: 18px; text-decoration: none; cursor: pointer; transition: all .3s; }
.btn .icon { width: 14px; height: 14px; }
.btn--hueco::after, .btn--hueco15::after { content: ""; }
.btn--hueco15 { gap: 15px; }
/* Al pasar el ratón, como el original: el azul pasa a gris translúcido y el de borde se rellena de azul. */
.btn--primario, .btn--whatsapp { background: var(--c-blue); color: #fff; }
.btn--primario:hover, .btn--whatsapp:hover { background: rgba(105, 104, 104, .68); color: #fff; }
.btn--secundario { border: 1px solid rgba(105, 104, 104, .68); background: #fff; color: #696868; }
.btn--secundario:hover { border-color: var(--c-blue); background: var(--c-blue); color: #fff; }
.btn--claro { background: #fff; color: var(--c-ink-2); }
.btn--oscuro { background: #2a2a2e; color: #fff; }
.btn--block { width: 100%; }
.link-arrow { display: inline-flex; gap: .4rem; align-items: center; font-size: var(--fs-sm); font-weight: 500; color: var(--c-ink-2); text-decoration: none; }
.link-arrow .icon { width: 1em; height: 1em; transition: transform var(--dur); }
.link-arrow:hover .icon { transform: translateX(3px); }

/* Cabecera */
.topbar { background: var(--c-blue); color: #fff; font: 500 14px/1.4 "Inter", system-ui, sans-serif; }
.topbar__nav a { text-transform: capitalize; }
.topbar__in { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 59px; } /* 59 px como el original */
.topbar__claim { display: flex; align-items: center; gap: .5rem; }
.topbar__right { display: flex; align-items: center; gap: 1.25rem; }
.topbar__nav { display: none; }
.topbar__nav ul { display: flex; gap: 1.6rem; list-style: none; padding: 0; }
.topbar__nav a, .topbar__tel { text-decoration: none; }
.topbar__nav a:hover { text-decoration: underline; }
.topbar__tel { padding: .1rem .7rem; border: 1px solid #fff; border-radius: var(--radius-pill); white-space: nowrap; }
.topbar__wa .icon { width: 18px; height: 18px; }
.topbar__wa { transition: transform .3s; }
.topbar__wa:hover { transform: scale(1.1); } /* «grow» del original */
@media (min-width: 1025px) { .topbar__nav { display: block; } }
@media (max-width: 767px) { .topbar { display: none; } }
.navpill__tel { display: none; align-items: center; gap: .35rem; margin-left: auto; padding: .3rem .8rem; border-radius: var(--radius-pill); background: #fff; color: var(--c-ink-2); font-size: .75rem; text-decoration: none; white-space: nowrap; }
.navpill__tel .icon { width: 14px; height: 14px; }
@media (max-width: 767px) { .navpill__tel { display: inline-flex; } .site-nav { order: 3; } }

.site-header { position: sticky; top: 0; z-index: 50; padding: 10px var(--gutter); pointer-events: none; }
@media (min-width: 1025px) { .site-header { padding-top: 24px; padding-bottom: 0; } } /* píldora a 24 px como el original */
.navpill { pointer-events: auto; position: relative; isolation: isolate; display: flex; align-items: center; gap: 1rem; max-width: 640px; margin-inline: auto; padding: .4rem .5rem .4rem 1.25rem; border-radius: var(--radius-pill); color: #fff; box-shadow: 0 6px 20px -8px rgba(0, 0, 0, .35); }
/* El desenfoque va en una capa aparte: en la píldora haría de caja de referencia del mega menú (que debe medir lo que la pantalla). */
.navpill::before { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; background: rgba(80, 80, 86, .62); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.navpill__brand { display: flex; flex: none; text-decoration: none; font-weight: 600; }
.navpill__brand img { height: 30px; width: auto; }
.navpill__ctas { display: flex; gap: .35rem; margin-left: auto; }
.navpill__ctas .btn { white-space: nowrap; min-height: 32px; padding: .35rem .9rem; font-size: .75rem; font-weight: 600; text-transform: uppercase; background: #2b2b30; color: #fff; }
.navpill__wa { display: none !important; }
@media (max-width: 767px) { .navpill__ctas { display: none; } } /* móvil como el original: logo, teléfono y menú */
.site-nav > summary { list-style: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; cursor: pointer; }
.site-nav > summary::-webkit-details-marker { display: none; }
.site-nav__panel { position: absolute; left: 0; right: 0; top: calc(100% + .5rem); max-height: calc(100vh - 140px); overflow: auto; padding: 1rem 1.25rem; border-radius: var(--radius-lg); background: #fff; color: var(--c-ink-2); box-shadow: var(--shadow); }
.menu { list-style: none; padding: 0; margin: 0; }
.menu a { display: block; padding: .45rem .25rem; text-decoration: none; }
.menu > li > a { font-weight: 600; }
.menu .sub-menu { list-style: none; padding: 0 0 .25rem .75rem; font-size: var(--fs-sm); }
.menu .sub-menu .sub-menu a { color: var(--c-text); padding-block: .2rem; }
.site-nav__panel .menu .current-menu-item > a { color: var(--c-blue); }
.site-nav__extra { display: grid; gap: .5rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--c-line); }
.menu .mega__head, .menu .mega__cards, .mega__acc { display: none; }
.menu a:has(> .mega__ico) { display: flex; align-items: center; gap: .6rem; }
.mega__ico { display: grid; place-items: center; width: 22px; color: var(--c-blue); }
.mega__ico .icon { width: 18px; height: 18px; }
@media (min-width: 1025px) {
	.navpill { max-width: 912px; min-height: 60px; padding: 10px 32px; }
	.navpill::before { background: rgba(0, 0, 0, .32); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
	.navpill__brand img { height: 40px; }
	.navpill__ctas { gap: 10px; }
	.navpill__ctas .btn { min-height: 34px; padding: 8px 15px; font-size: .875rem; font-weight: 700; background: rgba(0, 0, 0, .51); }
	.navpill__wa { display: inline-flex !important; }
	.site-nav > summary, .site-nav__extra { display: none; }
	.site-nav::details-content { content-visibility: visible; display: contents; }
	.site-nav__panel { position: static; max-height: none; overflow: visible; padding: 0; background: none; color: inherit; box-shadow: none; }
	.site-nav .menu { display: flex; gap: 32px; font: 600 1rem/1.5 var(--font-display); }
	.site-nav .menu .sub-menu { font-family: var(--font-body); font-weight: 400; }
	.menu > li { position: relative; }
	.menu > li > a { display: flex; align-items: center; gap: .4rem; padding: .5rem 0; white-space: nowrap; }
	.menu > li.menu-item-has-children > a::after { content: ""; width: .4em; height: .4em; border: solid currentColor; border-width: 0 2px 2px 0; transform: translateY(-2px) rotate(45deg); }
	.menu > li > .sub-menu { position: absolute; left: 50%; top: 100%; min-width: 250px; padding: 1rem 1.25rem; border-radius: var(--radius-md); background: #fff; color: var(--c-ink-2); box-shadow: var(--shadow); opacity: 0; visibility: hidden; transform: translate(-50%, 6px); transition: opacity var(--dur), transform var(--dur), visibility var(--dur); }
	.menu > li:hover > .sub-menu, .menu > li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translate(-50%, 0); }

	/* Mega menú (como el original): panel gris translúcido con desenfoque, iconos blancos y tarjetas con foto. */
	/* La píldora está centrada en la pantalla: los paneles se colocan desde su centro (100vw o 1140 px). */
	.menu > li.mega { position: static; }
	.menu > li.mega > .sub-menu { position: absolute; top: calc(100% + 13px); display: grid; min-width: 0; padding: 0; border-radius: 30px; background: linear-gradient(rgba(102, 102, 102, .9), rgba(86, 86, 86, .9) 50%, rgba(70, 70, 70, .9)) rgba(0, 0, 0, .35); color: #fff; font-size: 1rem; -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); box-shadow: none; }
	.menu:has(> li.mega:hover) > li.mega:not(:hover) > .sub-menu { opacity: 0; visibility: hidden; }
	.menu > li.mega > .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: 24px; }
	.menu .mega .sub-menu a { color: #fff; }
	.mega__label { display: block; padding: 0; font: 600 13px/1.3 "Inter", sans-serif; letter-spacing: 2px; text-transform: uppercase; color: rgba(255, 255, 255, .6) !important; text-decoration: none; }
	a.mega__label:hover { color: #fff !important; }
	.mega .sub-menu .sub-menu { padding: 0; font-size: 1rem; }
	.mega .sub-menu .sub-menu > li { position: relative; }
	.mega .sub-menu .sub-menu > li > a { display: flex; align-items: center; gap: 18px; padding: 5px 9px; min-height: 52px; border-radius: 8px; transition: background var(--dur); }
	.mega .sub-menu .sub-menu > li > a:hover, .mega .sub-menu .sub-menu > li > a:focus-visible { background: rgba(0, 0, 0, .22); }
	.mega__ico { width: 26px; color: #fff; }
	.mega__ico .icon { width: 22px; height: 22px; }
	.mega__acc { position: absolute; right: 4px; top: 10px; display: grid; place-items: center; width: 32px; height: 32px; padding: 0; border: 0; border-radius: 50%; background: none; color: #fff; cursor: pointer; }
	.mega__acc .icon { width: 16px; height: 16px; transition: transform var(--dur); }
	.mega__acc[aria-expanded="true"] .icon { transform: rotate(180deg); }
	.mega .sub-menu .sub-menu .sub-menu { display: none; padding: .25rem 0 .5rem 53px; font-size: .875rem; }
	.mega .sub-menu .sub-menu .is-open > .sub-menu { display: block; }
	.menu .mega .sub-menu .sub-menu .sub-menu a { min-height: 0; padding: .3rem 0; color: rgba(255, 255, 255, .86); }
	/* Tercer nivel (pruebas de Resonancia, Ecografía…): al pasar solo se aclara el texto, sin la caja del segundo nivel. */
	.mega .sub-menu .sub-menu .sub-menu > li > a:hover, .mega .sub-menu .sub-menu .sub-menu > li > a:focus-visible { background: none; color: #fff; }
	.mega .sub-menu .sub-menu .sub-menu a:hover { color: #fff; text-decoration: underline; }

	/* Columnas (Especialidades): ancho completo, Diagnóstico | Especialidades | tarjetas de las sedes. */
	.menu > li.mega--cols > .sub-menu { left: 50%; width: 100vw; grid-template-columns: 1fr 1fr 2fr; padding-inline: 72px; }
	.mega--cols > .sub-menu > li { display: grid; align-content: start; gap: 24px; padding: 32px 0 24px; }
	.mega--cols > .sub-menu > li + li { padding-left: 28px; border-left: 1px solid rgba(255, 255, 255, .12); }
	.mega--cols > .sub-menu > li:last-child { padding-right: 32px; }
	.mega--cols > .sub-menu > li > a:not(.mega__card) { padding: 0; font: 600 13px/1.3 "Inter", sans-serif; letter-spacing: 2px; text-transform: uppercase; color: rgba(255, 255, 255, .6); }
	.mega--cols > .sub-menu > li > a:not(.mega__card):hover { color: #fff; }
	.mega--cols > .sub-menu > li > .sub-menu { display: grid; gap: 24px; }

	/* Rejilla (Reconocimientos, Localizaciones): caja de 1140 px, rótulo con línea, 3 columnas + tarjeta. */
	.menu > li.mega--grid > .sub-menu { left: 50%; width: min(1140px, calc(100vw - 2 * var(--gutter))); grid-template-columns: repeat(3, 1fr) 305px; grid-template-rows: auto repeat(3, auto); grid-auto-flow: column; gap: 24px 32px; padding: 20px 57px 32px; }
	.mega--grid > .sub-menu > .mega__head { display: block; grid-column: 1 / -1; grid-row: 1; padding-bottom: 16px; border-bottom: 1px solid #d0d5dd; }
	.mega--grid > .sub-menu > li:not(.mega__head, .mega__cards) > a { display: flex; align-items: center; gap: 18px; padding: 5px 9px; border-radius: 8px; transition: background var(--dur); }
	.mega--grid > .sub-menu > li:not(.mega__head, .mega__cards) > a:hover { background: rgba(0, 0, 0, .22); }
	.mega--grid .mega__ico { width: 42px; height: 42px; border-radius: 50%; background: rgba(255, 255, 255, .28); }
	.mega--grid > .sub-menu > .mega__cards { grid-column: 4; grid-row: 2 / -1; margin-top: 12px; }

	/* Tarjetas con foto. */
	.menu .mega__cards { display: grid; align-content: start; gap: 24px; }
	.menu .mega__card { display: flex; align-items: center; gap: 24px; padding: 12px; border: 1px solid rgba(255, 255, 255, .15); border-radius: 12px; background: rgba(255, 255, 255, .06); color: #fff; text-decoration: none; transition: background var(--dur); }
	a.mega__card:hover { background: rgba(255, 255, 255, .12); }
	.mega__card img { flex: none; width: 252px; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 10px; }
	.mega__card-b { display: grid; align-content: center; gap: 8px; font-family: "Inter", sans-serif; }
	.mega__card-t { font-weight: 500; font-size: 1rem; line-height: 1.3; }
	.mega__card-x { font-size: .875rem; line-height: 1.5; color: rgba(255, 255, 255, .86); }
	.mega__card-x b, .mega__card-x strong { color: #fff; }
	.menu .mega--grid .mega__card { display: grid; gap: 4px; }
	.mega--grid .mega__card img { width: 100%; margin-bottom: 1rem; }
	.mega--grid .mega__card-b { gap: 6px; }
}

/* Barra flotante de contacto */
.fab { position: fixed; z-index: 40; left: 50%; bottom: 1rem; display: flex; gap: .4rem; align-items: center; padding: .4rem .5rem; border-radius: var(--radius-pill); background: rgba(80, 80, 86, .6); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); transform: translateX(-50%); }
.fab a { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--c-blue); color: #fff; }
.fab a.fab__home { background: none; }
.fab .icon { width: 20px; height: 20px; }
.fab__home img { width: 34px; height: auto; }

/* Pie */
.site-footer { position: relative; isolation: isolate; overflow: hidden; background: #0b0b0c; color: #fff; font: 400 16px/24px "Inter", var(--font-body); }
/* Como el original: foto del niño de fondo con un velo negro del 62 %. */
/* Como el original (fondo a tamaño natural, 2560 px, anclado arriba a la izquierda). */
.site-footer__bg { position: absolute; top: 0; left: 0; z-index: -2; width: 2560px; height: auto; max-width: none; }
.site-footer::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(0, 0, 0, .62); }
.site-footer > .container { padding-block: 64px 48px; }
.site-footer a { color: #fff; text-decoration: none; }
.site-footer a:hover { text-decoration: underline; }
.site-footer__top { display: grid; gap: 2.5rem; }
.site-footer__logo img { width: 190px; height: auto; }
.site-footer__lema { max-width: 320px; margin-top: 24px; }
.site-footer__cols { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem; }
.site-footer__cols h2 { margin-bottom: 16px; color: #fff; font: 700 16px/24px "Inter", sans-serif; letter-spacing: 0; }
.site-footer__cols li, .site-footer__cols a { display: block; min-height: 0; padding: 0; line-height: 24px; }
.site-footer__cols ul { list-style: none; padding: 0; display: grid; gap: 12px; }
.site-footer__mid { display: grid; gap: .5rem 2rem; margin-top: 20px; padding-top: 32px; border-top: 1px solid rgba(255, 255, 255, .7); }
.site-footer__mid h2 { color: #fff; font: 500 18px/27px "Inter", sans-serif; letter-spacing: 0; margin-bottom: 6px; }
.site-footer__gr { margin-top: 32px; }
.site-footer__gr img { width: 100%; height: auto; }
.site-footer__legal { padding-top: 52px; text-align: center; color: rgba(255, 255, 255, .95); }
.site-footer__legal a { text-decoration: underline; }
@media (min-width: 900px) {
	.site-footer > .container { padding-inline: 72px; }
	.site-footer__top { grid-template-columns: 1fr auto; }
	.site-footer__cols { grid-template-columns: repeat(3, 185px); gap: 0; }
	.site-footer__mid { grid-template-columns: 1fr auto; align-items: end; }
}

/* Páginas genéricas */
.page-header { padding-top: clamp(2rem, 1rem + 4vw, 4rem); text-align: center; }

/* Comunes */
.card { border-radius: var(--radius-lg); background: var(--c-surface); overflow: hidden; }
.media-cover { width: 100%; height: 100%; object-fit: cover; }
.grid { display: grid; gap: clamp(1rem, .6rem + 1.2vw, 1.75rem); }
@media (min-width: 768px) { .grid--2, .grid--3, .grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1025px) { .grid--3 { grid-template-columns: repeat(3, 1fr); } .grid--4 { grid-template-columns: repeat(4, 1fr); } }

/* Carrusel ligero (scroll-snap; las flechas son un extra con JS) */
.rail { list-style: none; padding-left: 0; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(260px, 82%); gap: 1.25rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: .5rem; }
.rail::-webkit-scrollbar { display: none; }
.rail > * { scroll-snap-align: start; }
@media (min-width: 767px) { .rail { grid-auto-columns: calc((100% - 1.25rem) / 2); } }
@media (min-width: 1024px) { .rail { grid-auto-columns: calc((100% - 2.5rem) / 3); } } /* carruseles: Swiper usa ≥ 1024 */
/* Controles de carrusel (como el original): puntos a la izquierda y flechas redondas de 46 px a la derecha. */
.rail-nav { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: 30px; }
.rail-nav__dots { display: flex; gap: 8px; }
.rail-nav__dots button { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 50%; background: #d0d5dd; cursor: pointer; }
.rail-nav__dots button.is-on { background: #101828; }
.rail-nav__arrows { display: flex; gap: 16px; }
.rail-nav__arrows button { display: grid; place-items: center; width: 46px; height: 46px; padding: 0; border: 1px solid #101828; border-radius: 50%; background: #fff; color: #101828; cursor: pointer; }
.rail-nav__arrows button:disabled { border-color: #d0d5dd; color: #98a2b3; cursor: default; }
.rail-nav .icon { width: 22px; height: 22px; }
/* Blog: solo puntos, centrados. */
.s-blog .rail-nav { justify-content: center; }
.s-blog .rail-nav__arrows { display: none; }
/* Reseñas: flechas grises de 34 px a los lados del carrusel y puntos naranjas debajo. */
.s-rev .rail-nav { position: relative; justify-content: center; margin-top: 14px; }
.s-rev .rail-nav__dots button.is-on { background: #f6a623; }
.s-rev .rail-nav__arrows { position: absolute; left: -17px; right: -17px; bottom: calc(100% + 14px + 115px - 17px); display: flex; justify-content: space-between; pointer-events: none; }
.s-rev .rail-nav__arrows button { width: 34px; height: 34px; border: 0; background: #f5f5f5; color: #555; pointer-events: auto; }
.s-rev .rail-nav__arrows button:disabled { visibility: hidden; }
.s-rev .rail-nav .icon { width: 16px; height: 16px; }
@media (min-width: 1025px) { .s-rev--una .rail-nav { grid-column: 2; } }

/* Tarjeta de entrada (blog) */
/* Tarjeta de entrada (como el original): foto de 420 × 320 (radio 15), categoría en píldora azul, título de 24 px y texto de 17 px. */
.post-card { display: grid; gap: 20px; align-content: start; }
.post-card__media { aspect-ratio: 420 / 320; margin-bottom: 12px; border-radius: 15px; overflow: hidden; background: var(--c-surface); }
.post-card__media img { width: 100%; height: 100%; object-fit: cover; }
.post-card__cat { justify-self: start; padding: 4px 12px; text-transform: uppercase; border-radius: 99px; background: var(--c-blue); color: #fff; font-size: 13px; line-height: 19.5px; font-weight: 500; text-decoration: none; }
.post-card h3 { font: 500 24px/33.6px var(--font-display); letter-spacing: -.02em; color: #101828; }
.post-card h3 a { text-decoration: none; }
.post-card p { font-size: 17px; line-height: 25.5px; color: #667085; }
.cmh-empty-img { width: 100%; height: 100%; min-height: 40px; background: var(--c-surface); }

/* Render diferido de lo que queda bajo el pliegue (menos estilo/maquetación inicial). */
.site-main > section:nth-of-type(n+3), .site-main > .cle-section:nth-of-type(n+3) { content-visibility: auto; contain-intrinsic-size: auto 700px; }
.cmh-site-chip { position: fixed; left: 1rem; bottom: 1rem; z-index: 60; }

/* Móvil como el original (medido a 390 px): titulares de sección de 35 px, centrados donde el original los centra, y
   botones de sección a todo el ancho (salvo el «Contacto» final de las preguntas). */
@media (max-width: 767px) {
	:is(.s-prem, .s-rev, .s-tabs, .s-loc) .sec-head { justify-items: center; text-align: center; }
	:is(.s-prem, .s-rev, .s-tabs, .s-loc) .sec-head .h-2 { max-width: none; }
	:is(.s-rev, .s-tabs, .s-loc) .sec-head__text { max-width: none; text-align: center; }
	.s-prem .sec-head .h-2 { font-size: 45px; line-height: 1.1; }
	main section:not([class*="s-hero"], .s-testi) .btns { flex-direction: column; align-items: stretch; }
	main section:not([class*="s-hero"], .s-testi) .btns .btn, .s-prem .btn, .s-num .btn, .s-rel .btn { width: 100%; justify-content: center; }
	:is(.s-tipos, .s-cards--gris) .sec-head { justify-items: center; text-align: center; }
	.s-proc:not(.s-proc--tarjetas) .s-proc__t { justify-self: center; text-align: center; }
	.s-cards--gris .sec-head__text { text-align: center; }
	main .s-rel .h-2 { font-size: 36px; line-height: 1.2; }
	main :is(.s-ins, .s-blog, .s-faq) .sec-head .h-2 { font-size: 36px; line-height: 1.2; }
	.s-faq__end .btn { width: auto; }
}
/* Cabecera móvil con las medidas del original: píldora de 61 px (fondo negro al 32 %), logo de 90 px, teléfono de 32 px y
   menú de 25 px en blanco. */
@media (max-width: 767px) {
	.navpill { min-height: 61px; padding: 5px 18px 5px 16px; border-radius: 30px; }
	.navpill::before { background: rgba(0, 0, 0, .32); }
	.navpill__brand img { width: 90px; height: auto; }
	.navpill__tel { min-height: 32px; padding: 0 14px; color: rgba(0, 0, 0, .62); font-size: 13px; }
	.site-nav > summary .icon { width: 25px; height: 25px; }
}
/* Menú móvil (como el del original): panel blanco de 350 px con logo gris, redes, desplegables con icono en círculo
   gris y tres tarjetas de contacto. En escritorio no se ve (manda el mega menú). */
.mm { display: none; }
@media (max-width: 1024px) {
	.site-nav__panel { position: fixed; inset: 10px 20px auto; z-index: 60; max-height: calc(100vh - 20px); max-height: calc(100dvh - 20px); padding: 0; border-radius: 0; box-shadow: none; }
	.site-nav__panel > .menu, .site-nav__panel > .site-nav__extra { display: none; }
	.mm { position: relative; display: grid; padding: 28px 20px 32px; color: #1d2939; font-family: var(--font-body); }
	.mm__close { position: absolute; top: 48px; right: 14px; display: grid; place-items: center; width: 32px; height: 32px; padding: 0; border: 0; background: none; color: #555; cursor: pointer; }
	.mm__close .icon { width: 22px; height: 22px; }
	.mm__logo { justify-self: center; }
	.mm__logo img { width: 128px; height: auto; }
	.mm__redes { list-style: none; padding: 0; display: flex; justify-content: center; gap: 14px; margin: 18px 0 26px; }
	.mm__redes a { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; color: #101828; }
	.mm__redes .icon { width: 17px; height: 17px; }
	.mm__sec { border-top: 1px solid #eaecf0; }
	.mm__btn { display: flex; align-items: center; gap: 12px; width: 100%; padding: 16px 8px; border: 0; border-radius: 8px; background: none; color: #1d2939; font: 500 16px/24px var(--font-body); text-align: left; cursor: pointer; }
	.mm__btn .icon { width: 13px; height: 13px; transition: transform var(--dur); }
	.mm__sec.is-open .mm__btn { background: #f2f4f7; }
	.mm__sec.is-open .mm__btn .icon { transform: rotate(180deg); }
	.mm__items { list-style: none; display: none; padding: 4px 8px 18px; }
	.mm__sec.is-open .mm__items { display: block; }
	.mm__item { display: flex; align-items: center; gap: 16px; padding: 9px 10px; border-radius: 10px; color: #1d2939; font-size: 15px; line-height: 22.5px; text-decoration: none; }
	.mm__item:hover { background: #f9fafb; }
	.mm__cir { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 50%; background: linear-gradient(180deg, #98a2b3, #667085); color: #fff; }
	.mm__cir .icon { width: 17px; height: 17px; }
	.mm__acciones { display: grid; gap: 12px; margin-top: 30px; }
	.mm__tarjeta { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 82px; padding: 16px 18px 16px 32px; border: 1px solid #d0d5dd; border-radius: 10px; color: #101828; font: 600 16px/1.3 var(--font-body); text-decoration: none; }
	.mm__cir--azul { width: 48px; height: 48px; margin-inline: auto; background: #eef3ff; color: var(--c-blue); }
}
@media (max-width: 1024px) {
	.site-nav[open]::before { content: ""; position: fixed; inset: 0; z-index: 59; background: #fff; }
	.mm__btn .icon { stroke-width: 3; }
	.mm__close .icon { width: 26px; height: 26px; stroke-width: 2.6; color: #444; }
	.mm__tarjeta { font-size: 15px; }
}

/* Animaciones como el original (Elementor): las secciones aparecen con un fundido de 2 s al entrar en pantalla (la
   portada no), el detalle de las pestañas se funde al cambiar y los desplegables se abren con suavidad. Solo con JS
   (clase «js-anim», nunca en el editor) y nunca si el sistema pide reducir el movimiento. */
@keyframes cmh-fade { from { opacity: 0; } to { opacity: 1; } }
.js-anim main > section:not(:first-of-type):not(.is-in) { opacity: 0; }
.js-anim main > section:not(:first-of-type).is-in { animation: cmh-fade 2s ease both; }
.s-tabs__item[open] .s-tabs__panel { animation: cmh-fade 1.25s ease both; }
:root { interpolate-size: allow-keywords; }
.s-faq__item::details-content { height: 0; overflow: clip; transition: height .4s ease, content-visibility .4s allow-discrete; }
.s-faq__item[open]::details-content { height: auto; }
.s-faq__item summary .icon, .mm__btn .icon { transition: transform .3s; }
.s-srv__item .link-arrow, .s-rel__card, .post-card__media img { transition: all .3s; }
.s-srv__item .link-arrow:hover { color: #1d2939; }
.s-rev__maps:hover, .s-loc__maps:hover { background: #f9fafb; color: #344054; }
[data-mouse] { transition: transform .4s ease-out; will-change: transform; }
@media (prefers-reduced-motion: reduce) {
	.js-anim main > section, .s-tabs__item[open] .s-tabs__panel { opacity: 1 !important; animation: none !important; }
	.s-faq__item::details-content { transition: none; }
	[data-mouse] { transform: none !important; }
}
@media print { .js-anim main > section { opacity: 1 !important; animation: none !important; } }

/* Widget de Doctoralia: la caja reserva el alto exacto del widget (calendario 654 px, ficha 332/355 px, clínica 531 px) y
   enseña un esqueleto de «Reservar cita» con un botón que ya lleva a Doctoralia; cuando llega el widget, ocupa su sitio. */
.zl-box { position: relative; width: 100%; border-radius: 12px; }
.zl-box--calendario { min-height: 654px; }
.zl-box--ficha { min-height: 355px; }
.zl-box--clinica { min-height: 531px; }
@media (min-width: 768px) { .zl-box--ficha { min-height: 332px; } }
.zl-box__sk { position: absolute; inset: 0; display: flex; flex-direction: column; gap: 14px; overflow: hidden; padding: 0 0 24px; border-radius: 12px; background: #fff; box-shadow: 0 1px 6px rgba(16, 24, 40, .12); }
.zl-box__hd { padding: 16px 24px; border-radius: 12px 12px 0 0; background: #00796b; color: #fff; font: 600 17px/24px "Inter", var(--font-body); }
.zl-box__row, .zl-box__grid i { display: block; border-radius: 8px; background: linear-gradient(90deg, #eceae6 0%, #f6f5f2 50%, #eceae6 100%); background-size: 200% 100%; animation: zl-brillo 1.4s linear infinite; }
.zl-box__row { height: 18px; margin: 4px 24px 0; width: 55%; }
.zl-box__row--c { width: 75%; height: 40px; }
.zl-box__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 10px 24px 0; }
.zl-box__grid i { height: 42px; border-radius: 22px; }
@keyframes zl-brillo { to { background-position: -200% 0; } }
.zl-box__link { position: absolute; left: 50%; bottom: 28px; z-index: 1; transform: translateX(-50%); display: inline-flex; padding: 10px 22px; border-radius: 100px; background: #00796b; color: #fff; font: 500 14px/18px var(--font-body); text-decoration: none; white-space: nowrap; }
.zl-box:has(iframe) .zl-box__sk { display: none; }
.zl-box iframe { display: block; width: 100% !important; border: 0; border-radius: 12px; }
@media (prefers-reduced-motion: reduce) { .zl-box__row, .zl-box__grid i { animation: none; } }

/* Medidas del original por sección (campo de ajuste «medidas», ver cmh_medidas()): titular (.m-t) y texto de
   cabecera (.m-p) con el tamaño, interlineado, espaciado, fuente, alineación y ancho del widget de Elementor; caja y
   relleno lateral del contenedor; separación de columnas (.m-g). Escritorio sin sufijo, tableta (≤ 1024 px) «-t» y
   móvil (≤ 767 px) «-m». Los anchos van en px o en cqi (1 cqi = 1 % del ancho de <main>, como el % de Elementor). */
main { container-type: inline-size; }
/* Con medidas del original no valen los límites de ancho de la plantilla: solo el ancho medido (--t-w / --p-w). */
main > section[style*="--t-fs:"] .m-t, main > section[style*="--p-fs:"] .m-p { max-width: none !important; }
main > section[style*="--t-fs:"] .m-t { font-size: var(--t-fs) !important; line-height: var(--t-lh) !important; letter-spacing: var(--t-ls) !important; }
main > section[style*="--t-ff:"] .m-t { font-family: var(--t-ff) !important; }
main > section[style*="--t-w:"] .m-t { width: var(--t-w) !important; max-width: 100% !important; }
main > section[style*="--p-fs:"] .m-p { font-size: var(--p-fs) !important; line-height: var(--p-lh) !important; letter-spacing: var(--p-ls) !important; }
main > section[style*="--p-ff:"] .m-p { font-family: var(--p-ff) !important; }
main > section[style*="--p-w:"] .m-p { width: var(--p-w) !important; max-width: 100% !important; }
main > section[style*="--t-ta:center"] .m-t, main > section[style*="--p-ta:center"] .m-p { margin-inline: auto !important; justify-self: center !important; text-align: center !important; }
main > section[style*="--t-ta:end"] .m-t, main > section[style*="--p-ta:end"] .m-p { margin-left: auto !important; margin-right: 0 !important; justify-self: end !important; text-align: right !important; }
main > section[style*="--t-ta:start"] .m-t, main > section[style*="--p-ta:start"] .m-p { text-align: left !important; }
main > section[style*="--caja:"] > .container { max-width: calc(var(--caja) + 2 * var(--gx, var(--gutter))) !important; }
main > section[style*="--gx:"] > .container { padding-inline: var(--gx) !important; }
main > section[style*="--gx:"]:not([style*="--caja:"]) > .container { max-width: none !important; }
main > section[style*="--gap:"] .m-g { column-gap: var(--gap) !important; }
@media (min-width: 1025px) { main > section[style*="--t-d:none"] .m-t, main > section[style*="--p-d:none"] .m-p { display: none !important; } }
/* Cabecera a un lado (titular | texto) como la fila de Elementor: cada bloque con su ancho; el texto pegado al
   titular (a 40 px) o, si va alineado a la derecha, al final de la fila. Si no caben, el texto baja bajo el titular
   (como la columna de Elementor; el original los dejaba salirse por la derecha) y la etiqueta va en su propia línea. */
@media (min-width: 1025px) {
	main > section[style*="--p-w:"] .sec-head--split:not(.m-cols) { display: flex; flex-wrap: wrap; align-items: center; gap: 24px 40px; }
	main > section[style*="--p-w:"] .sec-head--split:not(.m-cols) > .pill { margin-right: 100%; margin-bottom: -8px; }
	main > section[style*="--p-ta:end"] .sec-head--split:not(.m-cols) { justify-content: space-between; align-items: flex-start; }
	main > section[style*="--p-w:"] .sec-head--split:not(.m-cols) > * { flex: none; max-width: 100%; }
}
/* Lo mismo en tableta con los anchos de tableta (--p-w-t). */
@media (min-width: 768px) and (max-width: 1024px) {
	main > section[style*="--p-w-t:"] .sec-head--split:not(.m-cols) { display: flex; flex-wrap: wrap; align-items: center; gap: 24px 40px; }
	main > section[style*="--p-w-t:"] .sec-head--split:not(.m-cols) > .pill { margin-right: 100%; margin-bottom: -8px; }
	main > section[style*="--p-ta-t:end"] .sec-head--split:not(.m-cols) { justify-content: space-between; align-items: flex-start; }
	main > section[style*="--p-w-t:"] .sec-head--split:not(.m-cols) > * { flex: none; max-width: 100%; }
}
/* Títulos de tarjeta, paso o lista (.m-h3) y su texto (.m-x), con la tipografía del original de cada sección. */
main > section[style*="--h3-fs:"] .m-h3 { font-size: var(--h3-fs) !important; line-height: var(--h3-lh) !important; letter-spacing: var(--h3-ls) !important; font-weight: var(--h3-fw) !important; }
main > section[style*="--h3-ff:"] .m-h3 { font-family: var(--h3-ff) !important; }
main > section[style*="--x-fs:"] .m-x { font-size: var(--x-fs) !important; line-height: var(--x-lh) !important; letter-spacing: var(--x-ls) !important; }
main > section[style*="--x-ff:"] .m-x { font-family: var(--x-ff) !important; }
main > section[style*="--img-h:"] .m-img { height: var(--img-h) !important; aspect-ratio: auto !important; }
/* En móvil, sin alto medido para móvil, la foto conserva su proporción (el alto de escritorio la aplastaría). */
@media (max-width: 767px) {
	main > section[style*="--img-h:"]:not([style*="--img-h-m:"]) .m-img { height: auto !important; }
	main > section[style*="--img-h:"]:not([style*="--img-h-m:"]) .m-img img { height: auto !important; }
}
@media (min-width: 1025px) { main > section[style*="--pc:"] .m-body { padding-inline: var(--pc) !important; } }
/* Columnas medidas en px: entre 1025 px y la caja encogen a partes iguales, como los % de Elementor. */
@media (min-width: 1025px) { main > section[style*="--c1:"] .m-cols { grid-template-columns: minmax(0, var(--c1)) minmax(0, var(--c2)) !important; column-gap: var(--cg) !important; justify-content: start !important; } }
@media (max-width: 1024px) {

	main > section[style*="--t-fs-t:"] .m-t { font-size: var(--t-fs-t) !important; line-height: var(--t-lh-t) !important; letter-spacing: var(--t-ls-t) !important; }
	main > section[style*="--t-w-t:"] .m-t { width: var(--t-w-t) !important; }
	main > section[style*="--p-fs-t:"] .m-p { font-size: var(--p-fs-t) !important; line-height: var(--p-lh-t) !important; letter-spacing: var(--p-ls-t) !important; }
	main > section[style*="--p-w-t:"] .m-p { width: var(--p-w-t) !important; }
	main > section[style*="--caja:"] > .container { max-width: calc(var(--caja) + 2 * var(--gx-t, var(--gx, var(--gutter)))) !important; }
	main > section[style*="--caja-t:"] > .container { max-width: calc(var(--caja-t) + 2 * var(--gx-t, var(--gutter))) !important; }
	main > section[style*="--gx-t:"] > .container { padding-inline: var(--gx-t) !important; }
	main > section[style*="--gap-t:"] .m-g { column-gap: var(--gap-t) !important; }
}
@media (max-width: 1024px) {
	main > section[style*="--h3-fs-t:"] .m-h3 { font-size: var(--h3-fs-t) !important; line-height: var(--h3-lh-t) !important; letter-spacing: var(--h3-ls-t) !important; }
	main > section[style*="--img-h-t:"] .m-img { height: var(--img-h-t) !important; }
	main > section[style*="--x-fs-t:"] .m-x { font-size: var(--x-fs-t) !important; line-height: var(--x-lh-t) !important; letter-spacing: var(--x-ls-t) !important; }
}
@media (max-width: 767px) {
	main > section[style*="--h3-fs-m:"] .m-h3 { font-size: var(--h3-fs-m) !important; line-height: var(--h3-lh-m) !important; letter-spacing: var(--h3-ls-m) !important; }
	main > section[style*="--img-h-m:"] .m-img { height: var(--img-h-m) !important; }
	main > section[style*="--x-fs-m:"] .m-x { font-size: var(--x-fs-m) !important; line-height: var(--x-lh-m) !important; letter-spacing: var(--x-ls-m) !important; }
}
@media (max-width: 1024px) {
	main > section[style*="--t-ta-t:center"] .m-t, main > section[style*="--p-ta-t:center"] .m-p { margin-inline: auto !important; justify-self: center !important; text-align: center !important; }
	main > section[style*="--t-ta-t:start"] .m-t, main > section[style*="--p-ta-t:start"] .m-p { margin-left: 0 !important; justify-self: start !important; text-align: left !important; }
	main > section[style*="--t-ta-t:end"] .m-t, main > section[style*="--p-ta-t:end"] .m-p { margin-left: auto !important; margin-right: 0 !important; justify-self: end !important; text-align: right !important; }
}
@media (max-width: 767px) {
	main > section[style*="--t-ta-m:center"] .m-t, main > section[style*="--p-ta-m:center"] .m-p { margin-inline: auto !important; justify-self: center !important; text-align: center !important; }
	main > section[style*="--t-ta-m:start"] .m-t, main > section[style*="--p-ta-m:start"] .m-p { margin-left: 0 !important; justify-self: start !important; text-align: left !important; }
	main > section[style*="--t-ta-m:end"] .m-t, main > section[style*="--p-ta-m:end"] .m-p { margin-left: auto !important; margin-right: 0 !important; justify-self: end !important; text-align: right !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
	main > section[style*="--c1-t:"] .m-cols { grid-template-columns: var(--c1-t) var(--c2-t) !important; column-gap: var(--cg-t) !important; justify-content: start !important; }
	main > section[style*="--t-d-t:none"] .m-t, main > section[style*="--p-d-t:none"] .m-p { display: none !important; }
}
@media (max-width: 767px) {
	main > section[style*="--t-fs-m:"] .m-t { font-size: var(--t-fs-m) !important; line-height: var(--t-lh-m) !important; letter-spacing: var(--t-ls-m) !important; }
	main > section[style*="--t-w-m:"] .m-t { width: var(--t-w-m) !important; }
	main > section[style*="--p-fs-m:"] .m-p { font-size: var(--p-fs-m) !important; line-height: var(--p-lh-m) !important; letter-spacing: var(--p-ls-m) !important; }
	main > section[style*="--p-w-m:"] .m-p { width: var(--p-w-m) !important; }
	main > section[style*="--caja:"] > .container { max-width: calc(var(--caja) + 2 * var(--gx-m, var(--gx, var(--gutter)))) !important; }
	main > section[style*="--caja-m:"] > .container { max-width: calc(var(--caja-m) + 2 * var(--gx-m, var(--gutter))) !important; }
	main > section[style*="--gx-m:"] > .container { padding-inline: var(--gx-m) !important; }
	main > section[style*="--gap-m:"] .m-g { column-gap: var(--gap-m) !important; }
	main > section[style*="--t-d-m:none"] .m-t, main > section[style*="--p-d-m:none"] .m-p { display: none !important; }
	main > section[style*="--c1-m:"] .m-cols { grid-template-columns: var(--c1-m) var(--c2-m) !important; column-gap: var(--cg-m) !important; justify-content: start !important; }
}
