/* Ajustes para pasar el diseño de React a WordPress (enlaces en vez de botones, formularios reales, páginas de texto). */

a.button,a.text-link,a.notify,a.logo { text-decoration:none; cursor:pointer; }
a.notify { display:inline-block; }
.footer>div a { color:white; font-size:10px; font-weight:800; letter-spacing:.1em; text-decoration:none; }
.footer>div a:hover,.footer p a:hover,.footer small a:hover { color:var(--pink); }
.footer small a,.footer p a,.mobile-social a { color:inherit; text-decoration:none; }
.mobile-menu nav a { border-bottom:1px solid #333; color:white; text-decoration:none; font-size:45px; font-style:italic; font-weight:900; padding:13px 0; letter-spacing:-.04em; }
.mobile-menu nav a span { color:var(--pink); font-size:9px; font-style:normal; margin-right:13px; }
.desktop-nav a:focus-visible,.button:focus-visible,.text-link:focus-visible,.faq-list button:focus-visible { outline:2px solid var(--pink); outline-offset:4px; }
body.dm-menu-open { overflow:hidden; }

/* Cabecera blanca: el botón del menú en negro. */
.header-light .menu-button { color:var(--ink); }
.header-light .menu-button.is-open { color:white; }

/* Accesibilidad */
.dm-skip { position:absolute; left:8px; top:-60px; z-index:100; background:var(--pink); color:#fff; padding:10px 14px; font-weight:800; font-size:12px; text-decoration:none; }
.dm-skip:focus { top:8px; }

/* Barra de administración de WordPress (solo con la sesión iniciada). */
.admin-bar .mobile-menu { top:46px; }
@media (min-width:783px) { .admin-bar .mobile-menu { top:32px; } }

/* Formularios */
.dm-hp { position:absolute!important; left:-9999px; width:1px; height:1px; overflow:hidden; }
.dm-notice { padding:14px 18px; font-size:13px; line-height:1.5; margin-bottom:25px; border-left:3px solid var(--pink); }
.contact .dm-notice { background:#1c1c1c; color:#ddd; }
.application-form .dm-notice { background:var(--paper); }
.dm-notice.is-error { border-color:#ff6b6b; }
.contact .check span a,.form-panel .check a { color:inherit; text-decoration:underline; }
.contact .check { gap:10px; line-height:1.5; }
.contact input::placeholder,.contact textarea::placeholder { color:#666; }
.application-form fieldset { min-width:0; }
.application-form legend { padding:0; display:block; width:100%; }
.form-panel .check { flex-direction:row; align-items:center; gap:12px; font-size:13px; letter-spacing:0; font-weight:500; }
.form-panel .check input { accent-color:var(--pink); width:18px; height:18px; padding:0; }
.js .application-form .form-panel:not(.is-active) { display:none; }
.form-panel .dm-touched:invalid { border-color:#d33; }
.form-panel+.form-panel { margin-top:80px; }
.js .form-panel+.form-panel { margin-top:0; }

/* Páginas de texto (legales, blog) */
.dm-page { padding:110px 7vw 130px; max-width:1100px; }
.dm-page-head h1 { font-size:clamp(48px,6vw,86px); font-weight:900; font-style:italic; letter-spacing:-.06em; margin:28px 0 60px; text-transform:uppercase; }
.dm-prose { max-width:720px; font-size:16px; line-height:1.75; color:#333; }
.dm-prose>*+* { margin-top:1.1em; }
.dm-prose h2 { font-size:28px; font-weight:900; font-style:italic; letter-spacing:-.03em; line-height:1.1; margin-top:2em; }
.dm-prose h3 { font-size:20px; font-weight:800; line-height:1.2; margin-top:1.6em; }
.dm-prose a { color:var(--pink); }
.dm-prose ul,.dm-prose ol { padding-left:1.3em; list-style:disc; }
.dm-prose ol { list-style:decimal; }
.dm-prose li::marker { color:var(--pink); }

@media (max-width:800px) {
	.dm-page { padding:70px 22px 90px; }
}

/* Ritmo vertical más compacto que el diseño original (menos espacio muerto entre bloques). */
.level-row { row-gap:40px; }
.text-link { white-space:nowrap; }
.card-actions { flex-wrap:wrap; row-gap:16px; }
@media (min-width:801px) {
	.programs-section { padding:96px 7vw 72px; }
	.included,.testimonials,.contact,.other-programs { padding:96px 7vw; }
	.faq { padding:96px 15vw; }
	.section-heading { margin-bottom:48px; }
	.section-heading h2 { margin:22px 0 14px; }
	.level-row { padding:48px 0; }
	.feature-grid article { min-height:0; padding-bottom:30px; }
	.feature-icon { margin:24px 0; }
	.about { min-height:0; padding:96px 7vw; }
	.about-image { height:620px; }
	.about-copy h2 { margin:22px 0; }
	.about-copy ul { margin:28px 0; }
	.one-to-one { min-height:760px; }
	.one-content { padding:96px 8vw; }
	.process { margin:40px 0 30px; }
	.quote-grid blockquote { min-height:250px; }
	.contact h2 { margin:28px 0; }
	.program-detail { padding:90px 7vw; }
	.detail-copy .section-heading { margin-top:64px; }
	.timeline article { padding-bottom:36px; }
}
@media (max-width:800px) {
	.programs-section,.included,.testimonials,.faq,.contact,.other-programs { padding:64px 22px; }
	.section-heading { margin-bottom:40px; }
	.level-row { padding:36px 0; row-gap:28px; }
	.about { padding:0 22px 64px; gap:44px; }
	.one-to-one { min-height:0; }
	.one-content { padding:72px 22px; }
	.program-detail { padding:64px 22px 120px; }
	.detail-copy .section-heading { margin-top:56px; }
}

/* El CSS de Figma contaba con el margen por defecto de los párrafos, que el reset de Tailwind elimina. */
p { margin-bottom:1em; }
p:last-child { margin-bottom:0; }
.lead { margin-bottom:20px; }
.about-copy .about-secondary { margin-top:0; margin-bottom:22px; }
.about-copy>p { margin-bottom:18px; }
.hero-copy { margin-bottom:34px; }
.one-content>p:not(.eyebrow) { margin-bottom:0; }
.eyebrow { margin-bottom:0; }
.card-body p { margin-bottom:6px; }
.level-copy p { margin-bottom:0; }

/* ---- Orden y alineación (revisión visual) ---- */
/* Titulares pequeños de varias líneas: el .91 del diseño solo sirve para los gigantes. */
.card-body h3,.feature-grid h3,.faq-group h3,.fit-grid h3,.timeline h3,.level-copy h3 { line-height:1.05; }

/* Viñetas visibles (el reset las quitaba aunque el diseño las colorea en fucsia). */
.program-card ul,.about-copy ul { list-style:square; }

/* Tarjetas: precio y botones siempre alineados entre tarjetas de la misma fila. */
.program-card { display:flex; flex-direction:column; }
.specific-grid .card-body { display:flex; flex-direction:column; flex:1; }
.specific-grid .card-body strong { margin-top:auto; padding-top:14px; }
.specific-grid .card-actions { gap:16px; justify-content:space-between; flex-wrap:nowrap; }
.specific-grid .card-actions .button { padding:16px; gap:14px; }
.specific-grid .notify { align-self:flex-start; }

/* Programas sueltos (Base, Estructura): tarjeta horizontal en lugar de una foto enorme. */
@media (min-width:1001px) {
	.level-row>.program-card { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); grid-template-rows:auto 1fr auto; }
	.level-row>.program-card .card-image { grid-row:1/4; height:auto; min-height:340px; }
	.level-row>.program-card .card-body,.level-row>.program-card ul,.level-row>.program-card .card-actions { grid-column:2; }
	.level-row>.program-card ul { margin-bottom:22px; align-self:start; }
}

/* Contacto: el titular ya no aplasta el formulario. */
.contact { grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); }
.contact h2 { font-size:clamp(60px,6.6vw,108px); }
.contact form .button { white-space:nowrap; }

/* Específicos en tablet: 2 columnas en vez de 4 estrechas. */
@media (min-width:801px) and (max-width:1250px) {
	.level-specific .specific-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* Página "Mi método" */
.dm-method { padding:96px 7vw; display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:7vw; align-items:start; }
.dm-method .dm-prose { max-width:760px; font-size:17px; }
.dm-method .dm-prose h2 { font-size:clamp(34px,3.4vw,48px); text-transform:uppercase; letter-spacing:-.05em; line-height:.95; margin-top:1.6em; }
.dm-method .dm-prose h2:first-child { margin-top:0; }
.dm-method .dm-prose h3 { text-transform:uppercase; font-style:italic; font-weight:900; font-size:22px; letter-spacing:-.02em; }
.dm-method-box { position:sticky; top:30px; border:1px solid #ccc; padding:32px; box-shadow:0 15px 50px rgba(0,0,0,.08); }
.dm-method-cta { display:block; font-size:44px; font-weight:900; font-style:italic; letter-spacing:-.06em; line-height:.92; margin:24px 0 16px; }
.dm-method-box>p:not(.eyebrow) { color:#666; font-size:14px; line-height:1.55; margin-bottom:26px; }
.dm-method-box .button { width:100%; }
.dm-method-box .dm-method-alt { margin:22px 0 0; }
.dm-prose mark { background:#ffe3f2; color:var(--ink); padding:1px 4px; font-weight:600; }
@media (max-width:800px) {
	.dm-method { grid-template-columns:1fr; padding:64px 22px; gap:50px; }
	.dm-method-box { position:static; }
}
.form-panel input,.form-panel textarea { font-weight:400; letter-spacing:0; }
.form-panel input::placeholder,.form-panel textarea::placeholder { color:#aaa; }
.contact h2 { font-size:clamp(56px,5.8vw,96px); }
