/* Shared improvements; original page styles and imagery remain in place. */
:root { --nav-height: 100px; }
html { scroll-padding-top: calc(var(--nav-height) + 16px); }
body { min-width: 0; }
main, section, .prog-section > div, .contacto > div, .curso-card > div { min-width: 0; }
img { max-width: 100%; }
button, a { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible { outline: 3px solid #a46a32; outline-offset: 5px; }
.skip-link { position: fixed; top: -100px; left: 16px; z-index: 200; background: var(--cream-light); color: var(--brown-dark); padding: 12px 20px; }
.skip-link:focus { top: 12px; }
.site-nav { height: var(--nav-height); }
.nav-logo { flex-shrink: 0; }
.nav-links { gap: 1.25rem; }
.nav-links a { min-height: 44px; display: inline-flex; align-items: center; font-size: .78rem; }
.nav-links a[aria-current="page"] { text-decoration: underline; text-underline-offset: 6px; }
.nav-cta { margin-left: 0; }
.menu-toggle { display: none; }
.page-sub { max-width: 560px; color: #e8ddcf; }
.page-hero { padding-top: calc(var(--nav-height) + 2.5rem); padding-bottom: 3rem; }
.page-pill { font-size: .72rem; }
.hero { height: auto; min-height: max(600px, calc(100svh - var(--nav-height))); }
.hero-content { width: 100%; max-width: 800px; padding-top: 3rem; padding-bottom: 3rem; }
.hero-h1 { font-size: clamp(2.8rem, 5.2vw, 4.4rem); }
.hero-btns a { max-width: 100%; }
.hero-overlay { background: linear-gradient(90deg,rgba(15,5,0,.8),rgba(15,5,0,.4) 60%,rgba(15,5,0,.22)); }
.btn-primary, .btn-secondary, .wa-btn { min-height: 48px; font-size: .8rem; line-height: 1.5; }
.curso-desc, .miembro-bio, .prog-list li, .prog-proyecto, .faq-a { font-size: .95rem; font-weight: 400; }
.curso-rama, .miembro-rol, .section-eyebrow { font-size: .75rem; }
.curso-link, .historia-link { font-size: .8rem; color: var(--brown-mid); }
.historia-link { color: var(--sand); }
.curso-precio { color: var(--text-mid); }
.curso-card.dark .curso-desc, .club .curso-desc, .curso-card.dark .curso-precio, .club .curso-precio, .contacto-sub, .dato, .num-label, .club-mod-freq { color: #e8ddcf; }
.num-label, .num-lbl { font-size: .72rem; }
.contacto { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 3rem; }
.mapa-placeholder { width: 100%; min-width: 0; aspect-ratio: auto; }
iframe { width: 100%; max-width: 100%; }
.footer-links { flex-wrap: wrap; justify-content: center; gap: .6rem 1.4rem; }
.footer-links a { color: #e8ddcf; font-size: .75rem; min-height: 44px; display: inline-flex; align-items: center; }
.footer-copy { color: #cbb99f; font-size: .72rem; }
footer { padding-bottom: 5rem; }
.level-index { padding: 1.5rem 6%; border-bottom: 1px solid #d9c6af; }
.level-index-inner { max-width: 1100px; margin: auto; }
.level-index p { color: var(--text-mid); margin-bottom: .7rem; font-size: .9rem; }
.level-links { display: flex; flex-wrap: wrap; gap: .75rem; }
.level-links a { display: flex; flex-direction: column; flex: 1 1 180px; color: var(--brown-dark); padding: .8rem 1rem; border: 1px solid #c9b394; border-radius: 3px; text-decoration: none; }
.level-links a:hover { background: var(--cream); }
.level-links strong { font-weight: 500; }
.level-links span { font-size: .8rem; color: var(--text-mid); }
.nivel-header { padding-top: 2.5rem; padding-bottom: 1.5rem; scroll-margin-top: 12px; }
.fechas-section { padding-top: 2rem; padding-bottom: 2rem; }
.fechas-section .section-eyebrow { color: var(--brown-mid) !important; }
.fechas-grid { margin-top: 1rem; }
.fecha-title { font-size: 1.5rem; font-weight: 500; }
.fecha-detail { font-size: 1rem; }
.precio-referencia { color: var(--text-mid); font-size: .85rem; line-height: 1.6; margin-top: 1.3rem; }
.program-action-wrap { max-width: 1100px; margin: 0 auto; padding: 0 6% 2rem; text-align: center; }
.program-action { display: inline-block; max-width: 100%; }
@media (max-width: 1150px) {
 .site-nav { padding: 0 5%; }
 .menu-toggle { display: inline-flex; align-items: center; gap: .6rem; font: inherit; font-size: .9rem; min-height: 44px; padding: .4rem .8rem; border: 1px solid #c9b394; border-radius: 2px; color: var(--brown-dark); background: transparent; cursor: pointer; }
 .site-nav .nav-links { position: absolute; top: 100%; left: 0; right: 0; display: flex; flex-direction: column; align-items: stretch; gap: 0; background: var(--cream-light); border-bottom: 1px solid #c9b394; padding: .75rem 5% 1rem; max-height: calc(100dvh - var(--nav-height)); overflow-y: auto; box-shadow: 0 12px 20px #2a1a0812; }
 .site-nav .nav-links a { padding: .6rem 1rem; }
 .js .site-nav .nav-links { display: none; }
 .js .site-nav .nav-links.is-open { display: flex; }
 .site-nav .nav-cta { margin-top: .4rem; }
 html:not(.js) .site-nav { position: relative; height: auto; flex-wrap: wrap; }
 html:not(.js) .site-nav .nav-links { position: static; width: 100%; box-shadow: none; }
 html:not(.js) .menu-toggle { display: none; }
 html:not(.js) .hero { margin-top: 0; }
}
@media (max-width: 768px) {
 :root { --nav-height: 80px; }
 .nav-logo img { height: 108px; max-width: 170px; object-fit: contain; }
 .hero { margin-top: var(--nav-height); min-height: 660px; }
 .hero-content { padding: 2.5rem 6%; }
 .hero-h1 { font-size: clamp(2.5rem, 9vw, 3.5rem); }
 .hero-overlay { background: linear-gradient(to top,rgba(15,5,0,.88),rgba(15,5,0,.5)); }
 .hero-sub { font-weight: 400; }
 .hero-btns a { width: 100%; }
 .page-hero { padding: calc(var(--nav-height) + 1.7rem) 6% 2rem !important; gap: 1.5rem !important; }
 .page-h1 { font-size: 2.8rem; margin-top: 0; overflow-wrap: break-word; }
 .page-sub { max-width: none; }
 .page-pills { margin-bottom: 1.25rem; }
 .page-pill { letter-spacing: .05em; }
 .page-hero .btn-primary { display: block; width: 100%; text-align: center; }
 .level-links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .6rem; }
 .level-links a { min-width: 0; padding: .7rem; }
 .nivel-header { padding: 2rem 6% 1rem !important; }
 .fechas-section { padding: 1.5rem 6% !important; }
 .fecha-card { padding: 1.2rem; }
 .fechas-grid { grid-template-columns: minmax(0,1fr) !important; }
 .precio-item { min-width: 0; }
 .prog-section { padding: 2rem 6% !important; }
 .como, .cursos, .equipo, .testimonios { padding: 3rem 6%; }
 .historia, .contacto { grid-template-columns: minmax(0,1fr); padding: 3rem 6%; gap: 2rem; }
 .curso-footer { gap: 1rem; flex-wrap: wrap; }
 .wa-btn { padding: 1rem; width: 100%; justify-content: center; letter-spacing: .06em; }
 .wa-float { right: 1rem; bottom: 1rem; }
 footer { padding-bottom: 5rem; }
}
@media (prefers-reduced-motion: reduce) {
 html { scroll-behavior: auto; }
 *, *::before, *::after { transition: none !important; }
}
