/*
 * Portada "Orgánico" — diseño elegido para la home: formas circulares,
 * píldoras y fondo crema con manchas verdes, en la paleta de la clínica.
 * Se encola en todo el sitio (functions.php); todo vive bajo body.pm-organico.
 * Las interiores suman interior-organico.css sobre su maquetación actual.
 */

body.pm-organico {
	--pmho-lima: #adc743;
	--pmho-ink: #17382f;
	--pmho-deep: #0c211b;
	--pmho-green: #94cf2e;
	--pmho-gdeep: #6fa91d;
	--pmho-pale: #eff8df;
	--pmho-cream: #f8f8f2;
	--pmho-line: #dce7df;
	--pmho-muted: #5c6e67; /* antes #63766f; un punto más oscuro para contraste AA (4,9:1 sobre el verde pálido) */
	--pmho-white: #ffffff;
	--pmho-shadow: 0 12px 30px rgba( 15, 54, 43, .08 );
	--pmho-shadow-big: 0 30px 70px rgba( 15, 54, 43, .15 );
	--pmho-shell: 1280px;
	--pmho-ff: Nunito, "Segoe UI", sans-serif;
}

html:has( body.pm-organico ) {
	scroll-behavior: smooth;
	scroll-padding-top: 110px;
}

body.pm-organico {
	margin: 0;
	background: var( --pmho-cream );
	color: var( --pmho-muted );
	font-family: var( --pmho-ff );
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

body.pm-organico * {
	box-sizing: border-box;
}

body.pm-organico a {
	color: inherit;
	text-decoration: none;
}

body.pm-organico img,
body.pm-organico svg {
	display: block;
}

body.pm-organico :focus-visible {
	outline: 3px solid var( --pmho-gdeep );
	outline-offset: 2px;
}

body.pm-organico h1,
body.pm-organico h2,
body.pm-organico h3 {
	margin: 0;
	color: var( --pmho-ink );
	font-family: var( --pmho-ff );
	font-weight: 800;
	letter-spacing: -.02em;
	line-height: 1.1;
	text-wrap: balance;
}

body.pm-organico p {
	margin-top: 0;
}

.pmho-shell {
	width: min( calc( 100% - 80px ), var( --pmho-shell ) );
	margin-inline: auto;
}

.pmho-skip-link {
	position: fixed;
	top: 10px;
	left: 10px;
	z-index: 100000;
	padding: 10px 16px;
	border-radius: 999px;
	background: var( --pmho-ink );
	color: var( --pmho-white );
	font-weight: 800;
	transform: translateY( -260% );
}

.pmho-skip-link:focus {
	transform: translateY( 0 );
}

/* ------------------------------------------------------------------ Header */
.pmho-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	display: flex;
	flex-direction: column;
	background: rgba( 248, 248, 242, .92 );
	backdrop-filter: saturate( 160% ) blur( 14px );
	transition: box-shadow .25s ease;
}

.pmho-header.is-scrolled {
	box-shadow: 0 6px 24px rgba( 15, 54, 43, .05 );
}

/*
 * Borde inferior difuminado: bajo la cabecera fija hay una franja en la que el
 * fondo y el desenfoque se desvanecen de arriba hacia abajo, así el contenido
 * que pasa por debajo se funde en vez de cortarse contra una línea sólida.
 */
.pmho-header::after {
	content: "";
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	height: 44px;
	pointer-events: none;
	opacity: 0;
	background: linear-gradient( to bottom, rgba( 248, 248, 242, .92 ), rgba( 248, 248, 242, 0 ) );
	-webkit-backdrop-filter: saturate( 160% ) blur( 12px );
	backdrop-filter: saturate( 160% ) blur( 12px );
	-webkit-mask-image: linear-gradient( to bottom, #000, transparent );
	mask-image: linear-gradient( to bottom, #000, transparent );
	transition: opacity .3s ease;
}

.pmho-header.is-scrolled::after {
	opacity: 1;
}

.pmho-topbar {
	order: -1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 28px;
	padding: 10px 40px 0;
	font-size: 12px;
	font-weight: 700;
	color: var( --pmho-muted );
}

.pmho-topbar a {
	display: flex;
	align-items: center;
	gap: 7px;
	transition: color .2s ease;
}

.pmho-topbar a:hover,
.pmho-topbar a:focus-visible {
	color: var( --pmho-ink );
}

.pmho-topbar img {
	width: auto;
	height: 14px;
}

/* La dirección es <h2> por paridad SEO con el Wix; visualmente es un dato. */
.pmho-topbar .pmho-topbar__dato {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0;
	color: inherit;
	line-height: 1.4;
}

.pmho-nav {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding-block: 14px;
}

.pmho-brand {
	display: block;
	flex: 0 0 auto;
	width: clamp( 170px, 15vw, 210px );
}

.pmho-brand img {
	width: 100%;
	height: auto;
}

.pmho-main-nav {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 12px 28px;
	border-radius: 999px;
	background: var( --pmho-white );
	box-shadow: var( --pmho-shadow );
	font-size: 14px;
	font-weight: 700;
	color: var( --pmho-ink );
}

.pmho-main-nav > a,
.pmho-nav-sub > a {
	white-space: nowrap;
	transition: color .2s ease;
}

.pmho-main-nav > a:hover,
.pmho-main-nav > a:focus-visible,
.pmho-nav-sub > a:hover,
.pmho-nav-sub > a:focus-visible,
.pmho-main-nav > a[aria-current="page"] {
	color: var( --pmho-gdeep );
}

.pmho-nav-sub {
	position: relative;
	display: flex;
	align-items: center;
}

.pmho-nav-sub ul {
	position: absolute;
	top: calc( 100% + 16px );
	left: 50%;
	z-index: 30;
	min-width: 220px;
	margin: 0;
	padding: 12px;
	border-radius: 20px;
	background: var( --pmho-white );
	box-shadow: var( --pmho-shadow-big );
	list-style: none;
	opacity: 0;
	visibility: hidden;
	transform: translate( -50%, 6px );
	transition: opacity .2s ease, transform .2s ease;
}

.pmho-nav-sub ul::before {
	position: absolute;
	top: -16px;
	left: 0;
	width: 100%;
	height: 16px;
	content: "";
}

.pmho-nav-sub:hover ul,
.pmho-nav-sub:focus-within ul {
	opacity: 1;
	visibility: visible;
	transform: translate( -50%, 0 );
}

.pmho-nav-sub ul a {
	display: block;
	padding: 10px 14px;
	border-radius: 999px;
	font-size: 13px;
	white-space: nowrap;
}

.pmho-nav-sub ul a:hover,
.pmho-nav-sub ul a:focus-visible {
	background: var( --pmho-pale );
}

.pmho-nav-social {
	display: flex;
	align-items: center;
	gap: 10px;
	padding-left: 20px;
	border-left: 1px solid var( --pmho-line );
}

.pmho-nav-social a {
	display: block;
	transition: transform .2s ease;
}

.pmho-nav-social a:hover,
.pmho-nav-social a:focus-visible {
	transform: translateY( -2px );
}

.pmho-nav-social a {
	flex: 0 0 auto;   /* que la fila apretada no aplaste los iconos */
}

.pmho-nav-social img {
	width: 20px;
	max-width: none;
	height: 20px;
}

.pm-organico .pmho-pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 14px 22px;
	border-radius: 999px;
	background: var( --pmho-gdeep );
	color: var( --pmho-white );
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
	white-space: nowrap;
	transition: transform .2s ease, background .2s ease;
}

.pm-organico .pmho-pill:hover,
.pm-organico .pmho-pill:focus-visible {
	background: var( --pmho-ink );
	color: var( --pmho-white );
	transform: translateY( -2px );
}

.pmho-menu-toggle {
	display: none;
	align-items: center;
	gap: 8px;
	padding: 12px 18px;
	border: 0;
	border-radius: 999px;
	background: var( --pmho-white );
	box-shadow: var( --pmho-shadow );
	color: var( --pmho-ink );
	font: 800 13px/1 var( --pmho-ff );
	cursor: pointer;
}

.pmho-menu-toggle__lines {
	display: grid;
	width: 18px;
	gap: 4px;
}

.pmho-menu-toggle__lines i {
	display: block;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
	transition: transform .2s ease;
}

.pmho-menu-toggle[aria-expanded="true"] .pmho-menu-toggle__lines i:first-child {
	transform: translateY( 3px ) rotate( 45deg );
}

.pmho-menu-toggle[aria-expanded="true"] .pmho-menu-toggle__lines i:last-child {
	transform: translateY( -3px ) rotate( -45deg );
}

/* ------------------------------------------------------------------ Botones */
.pmho-btn {
	display: inline-flex;
	min-height: 54px;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 15px 26px;
	border: 1px solid transparent;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .06em;
	transition: transform .2s ease, background .2s ease, color .2s ease, box-shadow .2s ease;
}

.pmho-btn svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
	transition: transform .2s ease;
}

.pmho-btn:hover svg,
.pmho-btn:focus-visible svg {
	transform: translateX( 5px );
}

/* Icono de WhatsApp real (burbuja + auricular relleno) en el botón del hero. */
.pmho-btn .pmho-btn__wsp {
	width: 20px;
	height: 20px;
	stroke-width: 1.6;
}

.pmho-btn .pmho-btn__wsp-tel {
	fill: currentColor;
	stroke: none;
}

.pm-organico .pmho-btn--verde {
	background: var( --pmho-green );
	color: var( --pmho-deep );
	box-shadow: 0 12px 28px rgba( 122, 176, 36, .25 );
}

.pm-organico .pmho-btn--verde:hover,
.pm-organico .pmho-btn--verde:focus-visible {
	background: #a6df43;
	color: var( --pmho-deep );
	transform: translateY( -2px );
}

.pm-organico .pmho-btn--blanco {
	border-color: var( --pmho-line );
	background: var( --pmho-white );
	color: var( --pmho-ink );
}

.pm-organico .pmho-btn--blanco:hover,
.pm-organico .pmho-btn--blanco:focus-visible {
	border-color: var( --pmho-ink );
	color: var( --pmho-ink );
	transform: translateY( -2px );
}

/* ------------------------------------------------------------------ Página */
.pmho-main {
	position: relative;
	overflow: clip;
}

.pmho-blob {
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
}

.pmho-blob--uno {
	top: -160px;
	right: -200px;
	width: 720px;
	height: 720px;
	background: var( --pmho-pale );
}

.pmho-blob--dos {
	top: 560px;
	left: -120px;
	width: 380px;
	height: 380px;
	background: var( --pmho-lima );
	opacity: .35;
}

/* ------------------------------------------------------------------ Hero */
.pmho-hero {
	position: relative;
	padding: 48px 0 40px;
}

.pmho-hero__grid {
	display: grid;
	grid-template-columns: minmax( 0, 1fr ) 560px;
	align-items: start;
	gap: 48px;
}

.pmho-hero__copy {
	padding-top: 40px;
}

.pmho-main .pmho-hero__title {
	max-width: 620px;
	font-size: 70px;
	line-height: 1.04;
}

.pmho-main .pmho-hero__lead {
	max-width: 560px;
	margin: 32px 0 0;
	color: var( --pmho-muted );
	font-size: 18px;
	line-height: 1.6;
	text-wrap: pretty;
}

.pmho-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 30px;
}

.pmho-hero__visual {
	position: relative;
	width: 560px;
	height: 560px;
	justify-self: end;
}

.pmho-circulo {
	position: absolute;
	overflow: hidden;
	border: 12px solid var( --pmho-white );
	border-radius: 50%;
	box-shadow: var( --pmho-shadow-big );
}

.pmho-circulo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .8s cubic-bezier( .2, .7, .2, 1 );
}

.pmho-circulo:hover img {
	transform: scale( 1.04 );
}

.pmho-circulo--principal {
	top: 0;
	right: 0;
	width: 460px;
	height: 460px;
}

.pmho-circulo--secundario {
	bottom: 0;
	left: 0;
	width: 230px;
	height: 230px;
	border-width: 8px;
}

/* ------------------------------------------------------------------ Secciones */
.pmho-section {
	position: relative;
	padding: 48px 0 72px;
}

.pmho-titulo {
	font-size: 40px;
}

.pmho-main .pmho-titulo--centrado {
	margin-bottom: 48px;
	text-align: center;
}

/* ------------------------------------------------------------------ Servicios */
.pmho-services-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 20px;
}

.pmho-pildora {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 14px 28px 14px 14px;
	border-radius: 999px;
	background: var( --pmho-white );
	box-shadow: var( --pmho-shadow );
	transition: transform .25s ease, box-shadow .25s ease;
}

.pmho-pildora:hover {
	box-shadow: var( --pmho-shadow-big );
	transform: translateY( -5px );
}

.pmho-pildora__icono {
	display: grid;
	width: 64px;
	height: 64px;
	flex: 0 0 64px;
	place-items: center;
	border-radius: 50%;
	background: var( --pmho-pale );
}

.pmho-pildora__icono img {
	width: 36px;
	height: 36px;
}

.pm-organico .pmho-pildora__titulo {
	color: var( --pmho-ink );
	font-size: 20px;
	font-weight: 800;
	line-height: 1.15;
}

/* El <br> original se conserva en el HTML; en la píldora se lee en una línea. */
.pmho-pildora__titulo br {
	display: none;
}

.pm-organico a.pmho-pildora__titulo:hover,
.pm-organico a.pmho-pildora__titulo:focus-visible {
	color: var( --pmho-gdeep );
}

/* ------------------------------------------------------------------ Convenios */
.pmho-convenios__grid {
	display: grid;
	grid-template-columns: minmax( 0, 1fr ) 460px;
	align-items: center;
	gap: 64px;
}

.pmho-convenios__caja {
	padding: 44px;
	border-radius: 40px;
	background: var( --pmho-white );
	box-shadow: var( --pmho-shadow );
}

.pmho-lista-flechas {
	display: grid;
	gap: 18px;
	margin: 24px 0 0;
	padding: 0;
	list-style: none;
}

.pmho-lista-flechas li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}

.pmho-lista-flechas svg {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin-top: 5px;
	fill: none;
	stroke: var( --pmho-gdeep );
	stroke-width: 2.6;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.pmho-convenios .pmho-lista-flechas h3 {
	color: var( --pmho-ink );
	font-size: 17px;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.55;
	text-wrap: pretty;
}

.pmho-lista-flechas h3 a {
	color: var( --pmho-gdeep );
	font-weight: 800;
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
}

.pmho-lista-flechas h3 a:hover,
.pmho-lista-flechas h3 a:focus-visible {
	color: var( --pmho-ink );
}

/* Carrusel circular: reusa site.js (data-carrusel-simple). */
.pmho-convenios__visual {
	display: grid;
	justify-items: center;
	gap: 18px;
}

.pmho-carrusel {
	position: relative;
	overflow: hidden;
	width: 350px;
	height: 420px;
	border: 10px solid var( --pmho-white );
	border-radius: 34px;
	background: var( --pmho-white );
	box-shadow: var( --pmho-shadow-big );
}

.pmho-carrusel .pm-carrusel__pista {
	display: flex;
	height: 100%;
	transition: transform var( --pm-carrusel-duracion, 1000ms ) cubic-bezier( .2, .7, .2, 1 );
}

.pmho-carrusel .pm-carrusel__item {
	display: block;
	flex: 0 0 100%;
	min-width: 0;
}

.pmho-carrusel .pm-carrusel__item {
	background: var( --pmho-white );
}

/* Las láminas son cuadradas y el marco es circular: al 100 % se cortaban las
   tarjetas de promociones por los lados. Al 82 % del diámetro todas caben
   enteras (medido lámina por lámina) sin que se vean pequeñas. */
.pmho-carrusel .pm-carrusel__item img {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	/* Las láminas son cuadradas: 'cover' las agranda hasta llenar el marco
	   vertical, sin dejar espacios (antes iban al 82% y sobraba fondo). */
	object-fit: cover;
}

.pmho-carrusel__controles {
	display: flex;
	align-items: center;
	gap: 14px;
}

.pmho-carrusel__flecha {
	display: grid;
	width: 44px;
	height: 44px;
	place-items: center;
	padding: 0;
	border: 1px solid var( --pmho-line );
	border-radius: 50%;
	background: var( --pmho-white );
	box-shadow: var( --pmho-shadow );
	color: var( --pmho-ink );
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
	transition: background .2s ease, transform .2s ease;
}

.pmho-carrusel__flecha:hover,
.pmho-carrusel__flecha:focus-visible {
	background: var( --pmho-pale );
	transform: translateY( -2px );
}

.pmho-convenios .pm-carrusel__contador {
	min-width: 56px;
	padding: 6px 14px;
	border-radius: 999px;
	background: var( --pmho-ink );
	color: var( --pmho-white );
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .04em;
	text-align: center;
}

/* ------------------------------------------------------------------ Footer */
.pmho-footer {
	padding: 70px 0 0;
	background: var( --pmho-ink );
	color: rgba( 255, 255, 255, .7 );
}

.pmho-footer .pmho-footer__titulo {
	margin-bottom: 40px;
	color: var( --pmho-white );
	font-size: clamp( 28px, 2.6vw, 36px );
}

.pmho-footer__cols {
	display: grid;
	grid-template-columns: 1.1fr 1fr 1fr;
	gap: 48px;
}

.pmho-footer__encabezado {
	margin: 0 0 16px;
	color: var( --pmho-white );
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.pmho-footer__accesos {
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 0;
	font-size: 14px;
	list-style: none;
}

.pmho-footer__col p {
	font-size: 14px;
	line-height: 1.8;
}

.pmho-footer a {
	transition: color .2s ease;
}

.pmho-footer a:hover,
.pmho-footer a:focus-visible {
	color: var( --pmho-green );
}

.pmho-footer .pmho-footer__nota h2,
.pmho-footer .pmho-footer__nota .pmho-footer__nota-texto {
	margin-top: 12px;
	color: var( --pmho-white );
	font-size: 18px;
	font-weight: 800;
	line-height: 1.35;
}

.pmho-footer__social {
	display: flex;
	align-items: center;
	gap: 12px;
}

.pmho-footer__social a {
	display: grid;
	width: 46px;
	height: 46px;
	place-items: center;
	border: 1px solid rgba( 255, 255, 255, .25 );
	border-radius: 50%;
	transition: transform .2s ease, background .2s ease;
}

.pmho-footer__social a:hover,
.pmho-footer__social a:focus-visible {
	background: rgba( 255, 255, 255, .08 );
	transform: translateY( -2px );
}

.pmho-footer__social img {
	width: 24px;
	height: 24px;
}

.pmho-footer__logo {
	width: fit-content;
	margin-top: 24px;
	padding: 10px 14px;
	border-radius: 14px;
	background: var( --pmho-white );
}

.pmho-footer__logo img {
	width: 180px;
	height: auto;
}

.pmho-footer__base {
	margin-top: 56px;
	padding: 22px 0;
	border-top: 1px solid rgba( 255, 255, 255, .09 );
}

/* --------------------------------------------------------- CTAs flotantes */
.pmho-flotantes {
	position: fixed;
	right: 18px;
	bottom: 18px;
	z-index: 900;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 10px;
}

.pmho-flotante {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 13px 20px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .04em;
	transition: transform .2s ease, background .2s ease;
}

.pm-organico .pmho-flotante--agenda {
	background: var( --pmho-green );
	box-shadow: 0 12px 28px rgba( 122, 176, 36, .35 );
	color: var( --pmho-deep );
}

.pm-organico .pmho-flotante--agenda:hover,
.pm-organico .pmho-flotante--agenda:focus-visible {
	background: #a6df43;
	color: var( --pmho-deep );
	transform: translateY( -2px );
}

/* Texto oscuro sobre el verde WhatsApp, igual que Agendar sobre la lima: el blanco daba
   2,2:1 de contraste (Google exige 4,5:1); el oscuro da 6,6:1 sin cambiar el verde. */
.pm-organico .pmho-flotante--wsp {
	background: #22c76b;
	box-shadow: 0 12px 28px rgba( 34, 199, 107, .35 );
	color: var( --pmho-deep );
}

.pm-organico .pmho-flotante--wsp:hover,
.pm-organico .pmho-flotante--wsp:focus-visible {
	background: #1eb45f;
	color: var( --pmho-deep );
	transform: translateY( -2px );
}

.pmho-flotante--wsp svg {
	width: 20px;
	height: 20px;
}

.pmho-flotante__icono {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* En escritorio: dos flotantes con rótulo completo; el de llamar es solo móvil. */
.pmho-flotante__corto,
.pm-organico .pmho-flotante--llamar {
	display: none;
}

/* --------------------------------------------------------------- Reveal */
[data-pmho-reveal] {
	opacity: 0;
	transform: translateY( 24px );
	transition: opacity .65s ease, transform .65s cubic-bezier( .2, .7, .2, 1 );
}

[data-pmho-reveal].is-visible {
	opacity: 1;
	transform: translateY( 0 );
}

/* ------------------------------------------------------------ Responsive */
@media ( max-width: 1180px ) {
	.pmho-main-nav {
		gap: 16px;
		padding: 12px 20px;
		font-size: 13px;
	}

	.pmho-hero__grid {
		grid-template-columns: minmax( 0, 1fr ) 440px;
	}

	.pmho-hero__visual {
		width: 440px;
		height: 440px;
	}

	.pmho-circulo--principal {
		width: 360px;
		height: 360px;
	}

	.pmho-circulo--secundario {
		width: 180px;
		height: 180px;
	}

	.pmho-main .pmho-hero__title {
		font-size: 56px;
	}
}

@media ( max-width: 1100px ) {
	.pmho-shell {
		width: min( calc( 100% - 40px ), var( --pmho-shell ) );
	}

	/* En móvil la cabecera no va fija: se desplaza con la página (pedido de Felipe). */
	.pmho-header {
		position: relative;
		top: auto;
		backdrop-filter: none;
		background: var( --pmho-cream );
	}

	.pmho-header.is-scrolled {
		box-shadow: none;
	}

	.pmho-topbar {
		display: none;
	}

	.pmho-menu-toggle {
		display: flex;
	}

	.pmho-main-nav {
		position: absolute;
		top: calc( 100% + 8px );
		right: 0;
		left: 0;
		display: grid;
		justify-content: stretch;
		justify-items: stretch;
		max-height: 0;
		overflow: hidden;
		gap: 0;
		padding: 0 22px;
		border-radius: 24px;
		opacity: 0;
		transition: max-height .32s ease, opacity .2s ease, padding .32s ease;
	}

	/* Cerrado: fuera del orden de tabulación, no solo transparente. */
	.pmho-main-nav {
		visibility: hidden;
		transition: max-height .3s ease, opacity .25s ease, padding .3s ease, visibility 0s linear .3s;
	}

	.pmho-main-nav.is-open {
		max-height: 620px;
		padding-block: 16px 22px;
		opacity: 1;
		visibility: visible;
		transition-delay: 0s;
	}

	.pmho-main-nav > a,
	.pmho-nav-sub > a {
		padding: 13px 2px;
		border-bottom: 1px solid var( --pmho-line );
		font-size: 15px;
	}

	.pmho-nav-sub {
		display: grid;
	}

	.pmho-nav-sub > a {
		display: block;
	}

	.pmho-nav-sub ul {
		position: static;
		min-width: 0;
		padding: 0 0 0 16px;
		border-radius: 0;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		transform: none;
	}

	.pmho-nav-sub ul::before {
		display: none;
	}

	.pmho-nav-sub ul a {
		padding: 12px 0;
		border-bottom: 1px solid var( --pmho-line );
		border-radius: 0;
	}

	.pmho-nav-social {
		margin-top: 16px;
		padding-left: 0;
		border-left: 0;
	}

	.pmho-nav-social img {
		width: 26px;
		height: 26px;
	}

	.pmho-hero {
		padding-top: 40px;
	}

	.pmho-hero__grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.pmho-hero__visual {
		justify-self: center;
	}

	.pmho-convenios__grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.pmho-footer__cols {
		grid-template-columns: 1fr;
		gap: 36px;
	}
}

@media ( max-width: 700px ) {
	.pmho-brand {
		width: 150px;
	}


	.pmho-main .pmho-hero__title {
		font-size: clamp( 34px, 10.5vw, 42px );
	}

	.pmho-main .pmho-hero__lead {
		font-size: 16px;
	}

	.pmho-hero__actions {
		display: grid;
		grid-template-columns: 1fr;
	}

	.pmho-hero__visual {
		width: 100%;
		height: auto;
	}

	.pmho-circulo {
		position: static;
	}

	.pmho-circulo--principal {
		width: min( 100%, 300px );
		height: auto;
		aspect-ratio: 1;
		margin-inline: auto;
	}

	.pmho-circulo--secundario {
		width: min( 100%, 180px );
		height: auto;
		aspect-ratio: 1;
		margin: -60px auto 0;
		margin-left: 12%;
	}

	.pmho-titulo {
		font-size: 30px;
	}

	.pmho-services-grid {
		flex-direction: column;
		align-items: stretch;
	}

	.pmho-pildora__titulo {
		font-size: 18px;
	}

	.pmho-convenios__caja {
		padding: 28px 24px;
		border-radius: 32px;
	}

	.pmho-convenios .pmho-lista-flechas h3 {
		font-size: 15px;
	}

	.pmho-carrusel {
		width: min( 100%, 300px );
		height: auto;
		aspect-ratio: 5 / 6;
	}

}

/* Barra inferior fija (Agendar · WhatsApp · Llamar). El sitio pasa de
   escritorio a modo móvil de una vez en 1100px: es el ancho por debajo del
   cual la cabecera de escritorio ya no cabe (necesita ~1085px). */
@media ( max-width: 1100px ) {
	/* El botón «Agenda tu hora» de la cabecera se retira aquí: abajo ya está
	   «Agendar» en la barra fija, y así todo el cambio ocurre en un solo punto
	   (antes se iba por su cuenta en 700px, creando un segundo escalón). */
	.pm-organico .pmho-pill--cta {
		display: none;
	}

	/* Barra inferior fija: Agendar · WhatsApp · Llamar. */
	body.pm-organico {
		padding-bottom: 72px;
	}

	.pmho-flotantes {
		right: 0;
		bottom: 0;
		left: 0;
		flex-direction: row;
		align-items: stretch;
		gap: 0;
		padding: 8px 8px calc( 8px + env( safe-area-inset-bottom ) );
		background: rgba( 248, 248, 242, .96 );
		border-top: 1px solid var( --pmho-line );
		box-shadow: 0 -10px 30px rgba( 15, 54, 43, .1 );
		backdrop-filter: blur( 10px );
	}

	.pm-organico .pmho-flotante {
		flex: 1 1 0;
		justify-content: center;
		gap: 7px;
		min-height: 48px;
		margin: 0 4px;
		padding: 10px 6px;
		border-radius: 999px;
		font-size: 12px;
		letter-spacing: .02em;
		box-shadow: none;
	}

	.pm-organico .pmho-flotante--llamar {
		display: inline-flex;
		background: var( --pmho-ink );
		color: var( --pmho-white );
	}

	.pmho-flotante__largo {
		display: none;
	}

	.pmho-flotante__corto {
		display: inline;
	}

	.pmho-flotante--wsp svg {
		width: 18px;
		height: 18px;
	}
}

@media ( prefers-reduced-motion: reduce ) {
	html:has( body.pm-organico ) {
		scroll-behavior: auto;
	}

	body.pm-organico *,
	body.pm-organico *::before,
	body.pm-organico *::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
	}

	[data-pmho-reveal] {
		opacity: 1;
		transform: none;
	}
}

/* ------------------------------------------------ Menú móvil estilo "Orbital"
 * Réplica del Orbital Menu del tema padre: botón redondo flotante abajo a la
 * derecha (sobre la barra de contacto) que despliega el menú en un panel y
 * oscurece el fondo. En escritorio no cambia nada.
 */
.pmho-overlay {
	display: none;
}

@media ( max-width: 1100px ) {
	.pmho-overlay {
		position: fixed;
		inset: 0;
		z-index: 940;
		display: block;
		background: rgba( 12, 33, 27, .55 );
		opacity: 0;
		pointer-events: none;
		transition: opacity .3s ease;
	}

	.pmho-overlay.is-open {
		opacity: 1;
		pointer-events: auto;
	}

	.pmho-menu-toggle {
		position: fixed;
		right: 16px;
		bottom: calc( 88px + env( safe-area-inset-bottom ) );
		z-index: 960;
		width: 60px;
		height: 60px;
		padding: 0;
		justify-content: center;
		border-radius: 50%;
		background: var( --pmho-white );
		box-shadow: 0 8px 24px rgba( 15, 54, 43, .28 );
	}

	.pmho-menu-toggle__label {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect( 0 0 0 0 );
		white-space: nowrap;
	}

	.pmho-menu-toggle__lines {
		width: 24px;
		gap: 5px;
	}

	.pmho-menu-toggle__lines i {
		height: 3px;
	}

	.pmho-menu-toggle[aria-expanded="true"] .pmho-menu-toggle__lines i:first-child {
		transform: translateY( 4px ) rotate( 45deg );
	}

	.pmho-menu-toggle[aria-expanded="true"] .pmho-menu-toggle__lines i:last-child {
		transform: translateY( -4px ) rotate( -45deg );
	}

	.pmho-main-nav {
		position: fixed;
		top: auto;
		right: 16px;
		bottom: calc( 160px + env( safe-area-inset-bottom ) );
		left: auto;
		z-index: 950;
		width: min( 320px, calc( 100vw - 32px ) );
		max-height: 0;
		overflow: auto;
		padding: 0 22px;
		border-radius: 24px;
		transform: translateX( 24px );
		transition: max-height .32s ease, opacity .2s ease, padding .32s ease, transform .3s ease;
	}

	.pmho-main-nav.is-open {
		max-height: calc( 100vh - 176px );
		padding-block: 14px 18px;
		transform: translateX( 0 );
	}
}

/* Submenús del menú móvil: plegados hasta que el usuario los despliegue */
.pmho-nav-sub__toggle {
	display: none;
}

@media ( max-width: 1100px ) {
	.pmho-nav-sub {
		grid-template-columns: 1fr auto;
		align-items: center;
	}

	.pmho-nav-sub__toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		/* Estira a la altura de la fila para que su línea inferior quede a la
		   misma altura que la del texto y el separador se vea continuo. */
		align-self: stretch;
		width: 44px;
		height: auto;
		min-height: 44px;
		padding: 0;
		border: 0;
		border-bottom: 1px solid var( --pmho-line );
		border-radius: 0;
		background: transparent;
		color: var( --pmho-ink );
		cursor: pointer;
	}

	.pmho-nav-sub__toggle svg {
		width: 18px;
		height: 18px;
		fill: none;
		stroke: currentColor;
		stroke-width: 2.2;
		stroke-linecap: round;
		stroke-linejoin: round;
		transition: transform .25s ease;
	}

	.pmho-nav-sub__toggle[aria-expanded="true"] svg {
		transform: rotate( 180deg );
	}

	.pmho-nav-sub > ul {
		display: none;
		grid-column: 1 / -1;
	}

	.pmho-nav-sub.is-open > ul {
		display: block;
	}
}

@media ( max-width: 1100px ) {
	/* En móvil el submenú fluye en su sitio: anula el desplazamiento -50% del
	 * desplegable de escritorio (también en hover / focus-within). */
	.pmho-nav-sub > ul,
	.pmho-nav-sub:hover > ul,
	.pmho-nav-sub:focus-within > ul {
		left: auto;
		transform: none;
		width: 100%;
	}
}

@media ( max-width: 1100px ) {
	/* Subenlaces compactos para que el panel quepa sin desplazamiento */
	.pmho-nav-sub > ul a {
		padding: 9px 0;
		font-size: 14px;
	}
}

@media ( min-width: 701px ) and ( max-width: 1100px ) {
	/* Tablet: aún no hay barra inferior; los botones Agenda/WhatsApp quedan
	 * apilados abajo a la derecha, así que el botón del menú sube sobre ellos. */
	.pmho-menu-toggle {
		bottom: 140px;
	}

	.pmho-main-nav {
		bottom: 212px;
		max-height: calc( 100vh - 228px );
	}

	.pmho-main-nav.is-open {
		max-height: calc( 100vh - 228px );
	}
}

/* Carrusel del círculo principal: fotos apiladas que se alternan con fundido. */
.pmho-circulo--carrusel {
	background: var( --pmho-white );
}

.pmho-circulo--carrusel .pmho-circulo__foto {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 1.2s ease;
}


.pmho-circulo--carrusel .pmho-circulo__foto.is-activa {
	opacity: 1;
}

@media ( prefers-reduced-motion: reduce ) {
	.pmho-circulo--carrusel .pmho-circulo__foto {
		transition: none;
	}
}

/* Flechas del carrusel del círculo principal. */
.pmho-circulo__flecha {
	position: absolute;
	top: 50%;
	z-index: 2;
	display: grid;
	width: 36px;
	height: 36px;
	place-items: center;
	padding: 0 0 3px;
	border: 1px solid var( --pmho-line );
	border-radius: 50%;
	background: rgba( 255, 255, 255, .92 );
	box-shadow: var( --pmho-shadow );
	color: var( --pmho-ink );
	font-size: 24px;
	line-height: 1;
	cursor: pointer;
	transform: translateY( -50% );
	transition: background .2s ease, transform .2s ease;
}

.pmho-circulo__flecha--anterior { left: 22px; }
.pmho-circulo__flecha--siguiente { right: 22px; }

.pmho-circulo__flecha:hover,
.pmho-circulo__flecha:focus-visible {
	background: var( --pmho-pale );
	transform: translateY( -50% ) scale( 1.06 );
}

@media ( max-width: 1100px ) {
	.pmho-circulo__flecha { width: 32px; height: 32px; font-size: 22px; }
	.pmho-circulo__flecha--anterior { left: 16px; }
	.pmho-circulo__flecha--siguiente { right: 16px; }
}

/* Flechas del círculo chico: más pequeñas y más al borde, proporcionales a su
   tamaño (230px en escritorio, 180px en tablet y móvil). */
/* Logo del círculo chico: completo, con margen blanco alrededor para que las
   flechas queden en la orilla sin pisar las letras. */
.pmho-circulo .pmho-circulo__foto--logo {
	object-fit: contain;
	padding: 17%;
	background: var( --pmho-white );
	box-sizing: border-box;
}

.pmho-circulo--secundario .pmho-circulo__flecha {
	width: 28px;
	height: 28px;
	padding-bottom: 2px;
	font-size: 18px;
}

.pmho-circulo--secundario .pmho-circulo__flecha--anterior { left: 12px; }
.pmho-circulo--secundario .pmho-circulo__flecha--siguiente { right: 12px; }

/* En móvil (≤700px) el tema deja los círculos en flujo normal (position: static);
   el círculo-carrusel debe seguir siendo el contenedor de sus fotos apiladas. */
@media ( max-width: 700px ) {
	.pmho-circulo--carrusel {
		position: relative;
		z-index: 0;
	}

	/* El círculo chico debe quedar por encima del grande en la zona donde se
	   superponen, igual que en escritorio. */
	.pmho-circulo--secundario {
		position: relative;
		z-index: 1;
	}

	/* El botón flotante del menú ocupa la esquina inferior derecha (x≥314):
	   la flecha derecha va un poco más adentro para no quedar debajo de él
	   en la primera pantalla. El círculo se mantiene centrado. */
	.pmho-circulo__flecha--siguiente {
		right: 34px;
	}
}

@media ( max-width: 700px ) {
	/* Círculo chico de 180 px: flechas más pequeñas y logo con más margen. */
	.pmho-circulo--secundario .pmho-circulo__flecha { width: 24px; height: 24px; font-size: 16px; padding-bottom: 2px; }
	.pmho-circulo--secundario .pmho-circulo__flecha--anterior { left: 10px; }
	.pmho-circulo--secundario .pmho-circulo__flecha--siguiente { right: 10px; }
	.pmho-circulo .pmho-circulo__foto--logo { padding: 22%; }
}
