.cse-home,
.cse-cuenta {
	/* Paleta navy/dorado + serif -- rediseño 2026-08-29 calcado de un mockup
	   de referencia ("Aurora Dental"), reemplaza la paleta verdeazulado/coral
	   original. 'Playfair Display' ya está autohosteada por el tema activo
	   en producción (wp-fonts-local) -- no hace falta cargar nada nuevo ahí;
	   en un sitio/tema sin esa tipografía cae al serif de respaldo. */
	--cse-primary: #16324f;
	--cse-primary-dark: #0d2136;
	--cse-primary-light: #eef2f6;
	--cse-accent: #c9a227;
	--cse-text: #1f2937;
	--cse-text-muted: #5b6472;
	--cse-bg-soft: #f6f7f5;
	--cse-border: #e6e8eb;
	--cse-radius: 16px;
	--cse-shadow: 0 6px 20px rgba(13, 33, 54, 0.08);
	--cse-shadow-hover: 0 14px 32px rgba(13, 33, 54, 0.14);
	--cse-font-display: 'Playfair Display', Georgia, 'Times New Roman', serif;
	--cse-ease: cubic-bezier(.25,.46,.45,.94);

	max-width: 1040px;
	margin: 0 auto;
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	color: var(--cse-text);
	line-height: 1.55;
}

.cse-home *,
.cse-cuenta * {
	box-sizing: border-box;
}

.cse-home h1,
.cse-home h2,
.cse-home h3 {
	font-family: var(--cse-font-display);
	font-weight: 700;
	line-height: 1.2;
}

/* Scroll reveal (mismo patrón que Restaurante Manager) */
.cse-reveal {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity .6s var(--cse-ease), transform .6s var(--cse-ease);
}
.cse-reveal.cse-visible { opacity: 1; transform: none; }
.cse-especialidad-card.cse-reveal,
.cse-doctor-card.cse-reveal { transition-delay: calc(var(--i, 0) * 80ms); }
@media (prefers-reduced-motion: reduce) {
	.cse-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* Hero */

.cse-hero {
	position: relative;
	background-color: var(--cse-primary-dark);
	background-size: cover;
	background-position: center;
	border-radius: var(--cse-radius);
	padding: 96px 24px;
	margin-bottom: 28px;
	text-align: center;
	overflow: hidden;
	isolation: isolate;
}

.cse-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(160deg, rgba(15, 46, 48, 0.82) 0%, rgba(15, 46, 48, 0.55) 55%, rgba(31, 138, 140, 0.55) 100%);
	z-index: -1;
}

.cse-hero__overlay {
	max-width: 640px;
	margin: 0 auto;
}

.cse-hero h1 {
	color: #fff;
	font-size: clamp(1.9rem, 4vw, 2.7rem);
	font-weight: 800;
	margin: 0 0 14px;
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.25);
}

.cse-hero__descripcion {
	color: rgba(255, 255, 255, 0.92);
	font-size: 1.1rem;
	margin: 0 0 28px;
}

/* Info bar */

.cse-info {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	justify-content: center;
	padding: 20px;
	margin: -40px 16px 40px;
	position: relative;
	border-radius: var(--cse-radius);
	background: #fff;
	box-shadow: var(--cse-shadow);
}

.cse-info__item {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--cse-text);
	padding: 6px 14px;
}

.cse-info__icono {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--cse-primary-light);
	font-size: 1rem;
	flex-shrink: 0;
}

/* Encabezados de sección reutilizables */

.cse-eyebrow {
	display: block;
	text-align: center;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.78rem;
	font-weight: 700;
	color: var(--cse-primary);
	margin-bottom: 8px;
}

.cse-eyebrow--light {
	color: rgba(255, 255, 255, 0.85);
}

.cse-especialidades h2,
.cse-doctores-publico h2,
.cse-pasos h2,
.cse-opiniones h2,
.cse-solicitar h2 {
	text-align: center;
	font-size: clamp(1.5rem, 3vw, 1.9rem);
	margin: 0 0 12px;
}

.cse-especialidades__ayuda {
	text-align: center;
	color: var(--cse-text-muted);
	max-width: 560px;
	margin: 0 auto 32px;
}

/* Especialidades */

.cse-especialidades {
	margin-bottom: 48px;
	padding: 0 16px;
}

.cse-especialidades__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
	gap: 20px;
}

.cse-especialidad-card {
	background: #fff;
	border: 1px solid var(--cse-border);
	border-radius: var(--cse-radius);
	padding: 26px 22px;
	box-shadow: var(--cse-shadow);
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.cse-especialidad-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--cse-shadow-hover);
	border-color: var(--cse-primary-light);
}

.cse-especialidad-card__icono {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	border-radius: 14px;
	background: var(--cse-primary-light);
	font-size: 1.6rem;
	margin-bottom: 16px;
}

.cse-especialidad-card h3 {
	font-size: 1.08rem;
	margin: 0 0 8px;
}

.cse-especialidad-card p {
	font-size: 0.92rem;
	color: var(--cse-text-muted);
	margin: 0;
}

/* Doctores */

.cse-doctores-publico {
	margin-bottom: 48px;
	padding: 0 16px;
}

.cse-doctores-publico__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 20px;
}

.cse-doctor-card {
	background: #fff;
	border: 1px solid var(--cse-border);
	border-radius: var(--cse-radius);
	padding: 26px 20px;
	text-align: center;
	box-shadow: var(--cse-shadow);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.cse-doctor-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--cse-shadow-hover);
}

.cse-doctor-card__foto {
	width: 104px;
	height: 104px;
	border-radius: 50%;
	object-fit: cover;
	margin: 0 auto 14px;
	display: block;
	border: 3px solid var(--cse-primary-light);
}

.cse-doctor-card__foto--placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 2.4rem;
	background: var(--cse-primary-light);
}

.cse-doctor-card h3 {
	margin: 0 0 6px;
	font-size: 1.12rem;
}

.cse-doctor-card__especialidad {
	display: inline-block;
	color: var(--cse-primary-dark);
	background: var(--cse-primary-light);
	border-radius: 999px;
	padding: 4px 14px;
	font-weight: 600;
	font-size: 0.82rem;
	margin: 0 0 10px;
}

.cse-doctor-card__bio {
	font-size: 0.88rem;
	color: var(--cse-text-muted);
	margin: 0;
}

/* Solicitar cita */

.cse-solicitar {
	background: linear-gradient(160deg, var(--cse-primary) 0%, var(--cse-primary-dark) 100%);
	border-radius: var(--cse-radius);
	padding: 48px 20px;
	margin: 0 16px 48px;
}

.cse-solicitar__inner {
	max-width: 520px;
	margin: 0 auto;
}

.cse-solicitar h2 {
	color: #fff;
}

.cse-solicitar__ayuda {
	text-align: center;
	color: rgba(255, 255, 255, 0.88);
	margin: 0 0 28px;
}

.cse-solicitud-form {
	background: #fff;
	border-radius: var(--cse-radius);
	padding: 28px 24px;
	display: flex;
	flex-direction: column;
	gap: 16px;
	box-shadow: var(--cse-shadow-hover);
}

.cse-solicitud-form label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--cse-text);
}

.cse-solicitud-form input,
.cse-solicitud-form select,
.cse-solicitud-form textarea {
	font-size: 1rem;
	font-weight: 400;
	padding: 11px 14px;
	border: 1.5px solid var(--cse-border);
	border-radius: 10px;
	font-family: inherit;
	color: var(--cse-text);
	background: var(--cse-bg-soft);
	transition: border-color 0.15s ease, background 0.15s ease;
}

.cse-solicitud-form input::placeholder,
.cse-solicitud-form textarea::placeholder {
	color: #9aa3ab;
}

.cse-solicitud-form input:focus,
.cse-solicitud-form select:focus,
.cse-solicitud-form textarea:focus {
	outline: none;
	border-color: var(--cse-primary);
	background: #fff;
}

.cse-solicitud-form__honeypot {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.cse-solicitud-form__mensaje {
	font-size: 0.9rem;
	min-height: 1.2em;
}

.cse-solicitud-form__mensaje--ok {
	color: #1a7a3c;
	font-weight: 600;
	background: #eafbf0;
	border-radius: 8px;
	padding: 10px 12px;
}

.cse-solicitud-form__mensaje--error {
	color: #c0392b;
	font-weight: 600;
	background: #fdeeec;
	border-radius: 8px;
	padding: 10px 12px;
}

/* Botones */

/* button.cse-btn (y los mismos duplicados en --primary/--chip de acá para
   abajo): el tema activo trae un reset ("[type=button],[type=submit],button
   { border:1px solid #cc3366; background:transparent; color:#cc3366 }") que
   empata en especificidad con una sola clase y gana por orden de carga en
   cualquier <button type="submit">/<button type="button"> — por eso
   "Enviar solicitud"/"Ingresar" se veían como un contorno rosa sin relleno.
   Mismo fix ya aplicado varias veces en Restaurante Manager. */
.cse-btn, button.cse-btn {
	display: inline-block;
	border: none;
	border-radius: 10px;
	padding: 13px 26px;
	font-size: 1rem;
	font-weight: 700;
	cursor: pointer;
	text-decoration: none;
	transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.cse-btn--primary, button.cse-btn--primary {
	background: var(--cse-primary);
	color: #fff;
	box-shadow: 0 8px 20px rgba(13, 33, 54, 0.3);
}

.cse-btn--primary:hover, button.cse-btn--primary:hover,
.cse-btn--primary:focus, button.cse-btn--primary:focus {
	background: var(--cse-primary-dark);
	transform: translateY(-2px);
	box-shadow: 0 12px 26px rgba(13, 33, 54, 0.36);
}

.cse-btn--primary:active, button.cse-btn--primary:active {
	transform: scale(0.97) translateY(0);
	box-shadow: 0 4px 12px rgba(13, 33, 54, 0.34);
	transition-duration: 0.1s;
}

.cse-btn--light, button.cse-btn--light {
	background: #fff;
	color: var(--cse-primary-dark);
}
.cse-btn--light:hover, button.cse-btn--light:hover {
	background: #f2f2f2;
}

.cse-btn--primary:disabled, button.cse-btn--primary:disabled {
	opacity: 0.6;
	cursor: default;
	transform: none;
}

.cse-btn--block {
	display: block;
	width: 100%;
	text-align: center;
}

/* ── BORDE GIRATORIO (reutilizable en cualquier CTA importante) ────────────────
   Se agrega a mano solo en el/los botón(es) que de verdad importan — nunca por
   defecto en .cse-btn--primary, para no restarle jerarquía al resto.

   La animación mueve el ÁNGULO del conic-gradient (vía @property), NO un
   transform:rotate() del elemento — en un rectángulo ancho/bajo, rotar el
   elemento entero hace que las esquinas del anillo "vuelen" fuera de la caja
   (centro→esquina es más lejos que centro→borde), y el brillo se ve como un
   cometa disparado en diagonal en vez de un borde parejo. Animar el ángulo
   del degradado deja el anillo perfectamente quieto; solo gira el color. */
@property --cse-shine-angle {
	syntax: "<angle>";
	inherits: false;
	initial-value: 0deg;
}
.btn-shine {
	position: relative;
	overflow: visible;
	isolation: isolate;
}
.btn-shine::before {
	content: "";
	position: absolute;
	inset: -3px;
	padding: 3px;
	border-radius: inherit;
	background: conic-gradient(
		from var(--cse-shine-angle),
		transparent 0%,
		transparent 75%,
		var(--cse-accent) 88%,
		color-mix(in srgb, var(--cse-accent) 100%, white 45%) 92%,
		var(--cse-accent) 96%,
		transparent 100%
	);
	/* Recorta el conic-gradient a un anillo de grosor uniforme en vez de dejar
	   que llene todo el rectángulo — sin esto el brillo tapa el botón entero
	   en vez de seguir solo su borde. */
	-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	-webkit-mask-composite: xor;
	mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	mask-composite: exclude;
	z-index: -1;
	animation: cse-shine-spin 2.6s linear infinite;
	pointer-events: none;
}
@keyframes cse-shine-spin {
	from { --cse-shine-angle: 0deg; }
	to   { --cse-shine-angle: 360deg; }
}
@media (prefers-reduced-motion: reduce) {
	.btn-shine::before { animation: none; }
}

@media (max-width: 480px) {
	.cse-hero {
		padding: 56px 16px 64px;
		border-radius: 0 0 var(--cse-radius) var(--cse-radius);
	}

	.cse-info {
		margin: -32px 12px 32px;
	}

	.cse-solicitud-form {
		padding: 22px 18px;
	}
}

/* Mi cuenta [cse_cuenta] */

.cse-cuenta {
	padding: 56px 16px 64px;
}

.cse-cuenta__wrap {
	max-width: 520px;
	margin: 0 auto;
}

.cse-cuenta__card {
	background: #fff;
	border-radius: var(--cse-radius);
	padding: 32px 26px;
	box-shadow: var(--cse-shadow-hover);
}

.cse-cuenta__card h1 {
	margin: 8px 0 6px;
	font-size: 1.6rem;
	color: var(--cse-text);
}

.cse-cuenta__card h2 {
	font-size: 1.1rem;
	color: var(--cse-text);
	margin: 28px 0 14px;
}

.cse-cuenta__ayuda {
	color: var(--cse-text-muted);
	font-size: 0.92rem;
	margin: 0 0 20px;
}

.cse-cuenta__ayuda a {
	color: var(--cse-primary);
	font-weight: 600;
}

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

.cse-cuenta__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
}

.cse-cuenta__nombre {
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--cse-text);
}

.cse-btn--chip, button.cse-btn--chip {
	background: var(--cse-bg-soft);
	color: var(--cse-text);
	border: 1.5px solid var(--cse-border);
	padding: 9px 16px;
	font-size: 0.85rem;
}

.cse-btn--chip:hover, button.cse-btn--chip:hover,
.cse-btn--chip:focus, button.cse-btn--chip:focus {
	background: var(--cse-border);
}

.cse-cuenta__saldo {
	margin-top: 16px;
	padding: 12px 16px;
	border-radius: 10px;
	background: #fff4e5;
	color: #92400e;
	font-weight: 600;
	font-size: 0.92rem;
}

.cse-cuenta__citas {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.cse-cuenta__cita-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 12px 14px;
	border: 1px solid var(--cse-border);
	border-radius: 10px;
	background: var(--cse-bg-soft);
	font-size: 0.92rem;
}

.cse-cuenta__badge {
	flex-shrink: 0;
	font-size: 0.76rem;
	font-weight: 700;
	padding: 4px 10px;
	border-radius: 999px;
	background: var(--cse-border);
	color: var(--cse-text-muted);
}

.cse-cuenta__badge--pendiente {
	background: #fff4e5;
	color: #92400e;
}

.cse-cuenta__badge--confirmada {
	background: #e3f2fd;
	color: #1565c0;
}

.cse-cuenta__badge--atendida {
	background: #eafbf0;
	color: #1a7a3c;
}

.cse-cuenta__badge--cancelada,
.cse-cuenta__badge--no_asistio {
	background: #fdeeec;
	color: #c0392b;
}

@media (max-width: 480px) {
	.cse-cuenta__card {
		padding: 24px 18px;
	}
}

/* ══════════════════════════════════════════════════════════════════════
   REDISEÑO HOME 2026-08-29 -- header propio + hero/tecnología/especialista/
   pasos/opiniones/reserva. Ver comentario al inicio de home.php.
   ══════════════════════════════════════════════════════════════════════ */

.cse-eyebrow--left { text-align: left; }
.cse-eyebrow--gold { color: var(--cse-accent); }

.cse-media-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 3.4rem;
	background: linear-gradient(135deg, var(--cse-primary-light), #fff);
	color: var(--cse-primary);
	border: 1px solid var(--cse-border);
}

.cse-media-placeholder--dark {
	background: linear-gradient(135deg, var(--cse-primary-dark), var(--cse-primary));
	color: rgba(255, 255, 255, 0.85);
	border: none;
}

/* ── Header ────────────────────────────────────────────────────────────── */

.cse-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 18px 16px;
	margin-bottom: 8px;
}

.cse-nav__brand {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--cse-font-display);
	font-weight: 700;
	font-size: 1.2rem;
	color: var(--cse-primary-dark);
	text-decoration: none;
}

.cse-nav__brand-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--cse-primary);
	color: #fff;
	font-size: 1.05rem;
	flex-shrink: 0;
}

.cse-btn--sm, button.cse-btn--sm {
	padding: 10px 20px;
	font-size: 0.88rem;
}

/* ── Hero ──────────────────────────────────────────────────────────────── */

.cse-hero-new {
	display: flex;
	flex-direction: column;
	gap: 32px;
	padding: 16px 16px 44px;
}

.cse-hero-new__texto {
	max-width: 640px;
}

.cse-badge-pill {
	display: inline-block;
	background: #fbf1dc;
	color: var(--cse-primary-dark);
	font-weight: 800;
	font-size: 0.74rem;
	letter-spacing: 0.05em;
	padding: 7px 16px;
	border-radius: 999px;
	margin-bottom: 20px;
}

.cse-hero-new h1 {
	font-size: clamp(2.1rem, 5.5vw, 3.1rem);
	line-height: 1.14;
	margin: 0 0 18px;
	color: var(--cse-primary-dark);
	text-wrap: balance;
}

.cse-hero-new__desc {
	color: var(--cse-text-muted);
	font-size: 1.05rem;
	max-width: 480px;
	margin: 0 0 26px;
}

.cse-hero-new__ctas {
	display: flex;
	align-items: center;
	gap: 22px;
	flex-wrap: wrap;
	margin-bottom: 24px;
}

.cse-link-cta {
	color: var(--cse-primary-dark);
	font-weight: 700;
	text-decoration: none;
	border-bottom: 2px solid transparent;
	padding-bottom: 2px;
}
.cse-link-cta:hover { border-color: currentColor; }

.cse-hero-new__trust {
	display: flex;
	gap: 24px;
	flex-wrap: wrap;
	font-size: 0.9rem;
	color: var(--cse-text-muted);
	font-weight: 600;
}

.cse-hero-new__media {
	position: relative;
	margin-bottom: 28px;
}

.cse-hero-new__media img,
.cse-hero-new__media .cse-media-placeholder {
	width: 100%;
	aspect-ratio: 16 / 11;
	object-fit: cover;
	border-radius: var(--cse-radius);
	display: block;
}

.cse-hero-new__card {
	position: absolute;
	left: 16px;
	bottom: -24px;
	max-width: 270px;
	display: flex;
	align-items: center;
	gap: 12px;
	background: #fff;
	border-radius: 14px;
	padding: 14px 16px;
	box-shadow: var(--cse-shadow-hover);
}

.cse-hero-new__card-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--cse-primary-light);
	font-size: 1.1rem;
	flex-shrink: 0;
}

.cse-hero-new__card strong { display: block; font-size: 0.86rem; color: var(--cse-text); }
.cse-hero-new__card p { margin: 2px 0 0; font-size: 0.76rem; color: var(--cse-text-muted); }

@media (min-width: 860px) {
	.cse-hero-new {
		flex-direction: row;
		align-items: center;
		padding: 40px 16px 64px;
		gap: 48px;
	}
	.cse-hero-new__texto,
	.cse-hero-new__media { flex: 1; margin-bottom: 0; }
}

/* ── Tecnología ────────────────────────────────────────────────────────── */

.cse-tecnologia {
	display: flex;
	flex-direction: column;
	gap: 32px;
	margin: 0 auto 56px;
	padding: 0 16px;
}

.cse-tecnologia__media img,
.cse-tecnologia__media .cse-media-placeholder {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--cse-radius);
	display: block;
}

.cse-tecnologia__texto h2 { margin: 0 0 14px; }
.cse-tecnologia__texto > p {
	color: var(--cse-text-muted);
	margin: 0 0 26px;
	max-width: 520px;
}

.cse-check-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.cse-check-list li {
	display: flex;
	gap: 14px;
	align-items: flex-start;
}

.cse-check-list__icono {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--cse-primary-light);
	color: var(--cse-primary);
	font-size: 0.95rem;
}

.cse-check-list strong { display: block; color: var(--cse-text); margin-bottom: 2px; }
.cse-check-list p { margin: 0; color: var(--cse-text-muted); font-size: 0.92rem; }

@media (min-width: 860px) {
	.cse-tecnologia { flex-direction: row; align-items: center; gap: 56px; }
	.cse-tecnologia__media, .cse-tecnologia__texto { flex: 1; }
}

/* ── Tu especialista ───────────────────────────────────────────────────── */

.cse-especialista {
	background: linear-gradient(160deg, var(--cse-primary-dark) 0%, var(--cse-primary) 100%);
	margin: 0 0 56px;
	padding: 52px 16px;
	display: flex;
	flex-direction: column;
	gap: 32px;
}

.cse-especialista__texto { max-width: 560px; margin: 0 auto; color: #fff; width: 100%; }
.cse-especialista__texto h2 { color: #fff; margin: 0 0 14px; }
.cse-especialista__texto > p { color: rgba(255, 255, 255, 0.82); margin: 0 0 28px; }

.cse-especialista__stats {
	display: flex;
	gap: 32px;
	flex-wrap: wrap;
	margin-bottom: 30px;
}

.cse-especialista__stats strong {
	display: block;
	font-family: var(--cse-font-display);
	font-size: 1.9rem;
	color: var(--cse-accent);
}

.cse-especialista__stats span {
	display: block;
	font-size: 0.8rem;
	color: rgba(255, 255, 255, 0.78);
	margin-top: 2px;
}

.cse-especialista__media { max-width: 560px; margin: 0 auto; width: 100%; }
.cse-especialista__media img,
.cse-especialista__media .cse-media-placeholder {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--cse-radius);
	display: block;
}

@media (min-width: 860px) {
	.cse-especialista {
		flex-direction: row;
		align-items: center;
		padding: 72px 32px;
		max-width: 1040px;
		margin: 0 auto 56px;
		border-radius: var(--cse-radius);
	}
	.cse-especialista__texto, .cse-especialista__media { flex: 1; margin: 0; }
}

/* ── Cómo empezar ──────────────────────────────────────────────────────── */

.cse-pasos { margin: 0 auto 56px; padding: 0 16px; }

.cse-pasos__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
	margin-top: 32px;
}

.cse-paso-card {
	background: #fff;
	border: 1px solid var(--cse-border);
	border-radius: var(--cse-radius);
	padding: 30px 24px;
	box-shadow: var(--cse-shadow);
}

.cse-paso-card__num {
	display: block;
	font-family: var(--cse-font-display);
	font-size: 2.3rem;
	color: var(--cse-accent);
	margin-bottom: 12px;
}

.cse-paso-card h3 { margin: 0 0 8px; font-size: 1.05rem; }
.cse-paso-card p { margin: 0; color: var(--cse-text-muted); font-size: 0.92rem; }

@media (min-width: 700px) {
	.cse-pasos__grid { grid-template-columns: repeat(3, 1fr); }
}

/* ── Opiniones ─────────────────────────────────────────────────────────── */

.cse-opiniones { background: var(--cse-bg-soft); padding: 52px 16px; margin-bottom: 56px; }

.cse-opiniones__grid {
	max-width: 1040px;
	margin: 32px auto 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
}

.cse-opinion-card {
	background: #fff;
	border-radius: var(--cse-radius);
	padding: 26px 24px;
	box-shadow: var(--cse-shadow);
}

.cse-opinion-card__stars { color: var(--cse-accent); letter-spacing: 3px; margin-bottom: 14px; font-size: 1rem; }
.cse-opinion-card p { color: var(--cse-text); margin: 0 0 18px; font-size: 0.95rem; line-height: 1.5; }
.cse-opinion-card strong { display: block; font-size: 0.92rem; }
.cse-opinion-card span { display: block; color: var(--cse-text-muted); font-size: 0.82rem; }

@media (min-width: 860px) {
	.cse-opiniones__grid { grid-template-columns: repeat(3, 1fr); }
}

/* ── Reserva: info de contacto + confirmación ─────────────────────────────── */

.cse-solicitar__contacto {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-bottom: 28px;
}

.cse-solicitar__contacto > div {
	display: flex;
	align-items: center;
	gap: 12px;
	color: rgba(255, 255, 255, 0.92);
	font-weight: 600;
	font-size: 0.92rem;
}

.cse-solicitar__contacto-icono {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.16);
	font-size: 0.95rem;
}

.cse-solicitud-confirmacion {
	background: #fff;
	border-radius: var(--cse-radius);
	padding: 48px 24px;
	text-align: center;
	box-shadow: var(--cse-shadow-hover);
}

.cse-solicitud-confirmacion__icono {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--cse-primary-light);
	font-size: 1.8rem;
	margin-bottom: 18px;
}

.cse-solicitud-confirmacion h3 { margin: 0 0 10px; font-size: 1.3rem; }
.cse-solicitud-confirmacion p { margin: 0; color: var(--cse-text-muted); }

/* Las 3 reglas "__media img, __media .cse-media-placeholder" de más arriba
   ganan por especificidad (2 clases) a .cse-media-placeholder base (1 clase)
   y le pisaban el display:flex con display:block, dejando el emoji pegado
   arriba a la izquierda en vez de centrado (bug real visto en captura). Va
   al final del archivo a propósito: debe cargar DESPUÉS de esas 3 reglas
   para ganar por orden de cascada a igual especificidad. */
.cse-hero-new__media .cse-media-placeholder,
.cse-tecnologia__media .cse-media-placeholder,
.cse-especialista__media .cse-media-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
}
