
:root {
    --bg: #080808;
    --bg-soft: #111111;
    --card: #161616;
    --card-2: #1f1f1f;
    --line: rgba(255,255,255,.08);
    --text: #f3f3f3;
    --muted: #a9a9a9;
    --accent: #C21819;
    --accent-2: #A91516;
    --white: #ffffff;
    --shadow: 0 24px 60px rgba(0,0,0,.35);
    --radius: 22px;
    --radius-sm: 14px;
    --container: 1200px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: var(--font-body);
    background: var(--bg);
    color: var(--text);
    line-height: 1.6;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
.container { width: min(calc(100% - 2rem), var(--container)); margin: 0 auto; }
.section { padding: 84px 0; }
.section-dark { background: var(--bg); }
.section-light { background: #f3f3f3; color: #101010; }
.eyebrow {
    display: inline-flex;
    color: var(--accent);
    font-size: .82rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 10px;
}
h1, h2, h3, h4 { font-family: var(--font-display); letter-spacing: .02em; margin: 0 0 12px; line-height: .95; }
h1 { font-size: clamp(3rem, 8vw, 6rem); }
h2 { font-size: clamp(2.2rem, 5vw, 4rem); }
h3 { font-size: 2rem; }
p { margin: 0 0 16px; color: inherit; }
.site-header {
    position: sticky; top: 0; z-index: 50;
    backdrop-filter: blur(14px);
    background: rgba(8,8,8,.84);
    border-bottom: 1px solid rgba(255,255,255,.05);
}
.nav-wrap {
    min-height: 82px;
    display: flex; align-items: center; justify-content: space-between; gap: 18px;
}
.brand {
    display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-display);
}
.brand-mark, .brand-text {
    font-size: 2rem; font-weight: 800; line-height: 1;
}
.brand-mark { color: var(--accent); }
.nav-links, .nav-actions { display: flex; align-items: center; gap: 18px; }
.nav-links a {
    color: rgba(255,255,255,.86); font-size: .95rem; font-weight: 600; text-transform: uppercase;
}
.nav-links a:hover, .footer-links a:hover { color: var(--accent); }
.btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    min-height: 50px; padding: 0 20px; border-radius: 12px; border: 1px solid transparent;
    font-weight: 800; text-transform: uppercase; letter-spacing: .04em; font-size: .85rem;
    transition: .25s ease; cursor: pointer;
}
.btn:hover { transform: translateY(-2px); }
.btn-primary {
    background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #111; box-shadow: 0 18px 40px rgba(194,24,25,.18);
}
.btn-outline { border-color: rgba(255,255,255,.16); color: #fff; background: rgba(255,255,255,.03); }
.btn-ghost { border-color: rgba(255,255,255,.16); color: #fff; }
.btn-dark { background: #101010; color: var(--accent); }
.btn-outline-light { border-color: rgba(255,255,255,.2); color: #fff; }
.btn-full { width: 100%; }
.mobile-toggle { display: none; background: none; border: 0; padding: 0; }
.mobile-toggle span { display: block; width: 28px; height: 3px; background: #fff; margin: 5px 0; border-radius: 3px; }
.mobile-menu {
    display: none; flex-direction: column; padding: 0 1rem 1rem; background: #0f0f0f;
}
.mobile-menu a { padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.07); }
.flash { padding: 14px 0; font-weight: 600; }
.flash-success { background: rgba(76, 175, 80, .12); color: #dff5df; }
.flash-error { background: rgba(255, 82, 82, .12); color: #ffd6d6; }
.hero-section {
    position: relative; overflow: hidden; padding: 86px 0 48px;
    background:
        radial-gradient(circle at 10% 20%, rgba(194,24,25,.12), transparent 28%),
        radial-gradient(circle at 90% 20%, rgba(194,24,25,.08), transparent 24%),
        linear-gradient(180deg, rgba(5,5,5,.96), rgba(5,5,5,.98));
}
.hero-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(90deg, rgba(0,0,0,.2), rgba(0,0,0,.08));
    pointer-events: none;
}
.hero-grid {
    position: relative; z-index: 1;
    display: grid; grid-template-columns: 1.05fr .95fr; gap: 40px; align-items: center;
}
.hero-content h1 span,
.split-heading h2 span,
.schedule-intro h2 span,
.contact-copy h2 span { color: var(--accent); display: block; }
.hero-content p {
    max-width: 560px; color: rgba(255,255,255,.76); font-size: 1.08rem; margin-bottom: 24px;
}
.hero-actions { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 26px; }
.hero-tags { display: flex; flex-wrap: wrap; gap: 12px; }
.hero-tags span {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 10px 14px; border: 1px solid rgba(255,255,255,.08); border-radius: 999px;
    background: rgba(255,255,255,.03); color: rgba(255,255,255,.84); font-size: .92rem;
}
.hero-visual { position: relative; min-height: 520px; }
.mockup-card {
    position: absolute; right: 0; left: 40px; top: 0; bottom: 40px;
    border-radius: 28px; padding: 18px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); box-shadow: var(--shadow);
}
.mockup-card img { width: 100%; height: 100%; object-fit: cover; border-radius: 22px; }
.floating-badge, .floating-location {
    position: absolute; border-radius: 18px; background: #fff; color: #101010; box-shadow: var(--shadow);
}
.floating-badge {
    left: 0; top: 38px; width: 120px; height: 120px; display: grid; place-items: center; text-align: center;
}
.floating-badge strong { font-size: 2.6rem; font-family: var(--font-display); }
.floating-badge span { font-size: .85rem; font-weight: 700; text-transform: uppercase; color: #666; }
.floating-location {
    right: 0; bottom: 0; max-width: 290px; padding: 16px 18px; display: flex; gap: 12px; align-items: flex-start;
}
.floating-location i { color: #A91516; font-size: 1.4rem; margin-top: 4px; }
.stats-strip { background: #fff; color: #111; padding: 26px 0; }
.stats-grid { display: grid; gap: 18px; grid-template-columns: repeat(4, 1fr); }
.stat-card {
    display: flex; align-items: center; gap: 14px; padding: 12px 8px; justify-content: center;
    border-right: 1px solid rgba(0,0,0,.08);
}
.stat-card:last-child { border-right: 0; }
.stat-icon { width: 56px; height: 56px; display: grid; place-items: center; font-size: 1.45rem; color: #111; }
.stat-card strong { display: block; font-size: 2rem; font-family: var(--font-display); color: #A91516; line-height: 1; }
.stat-card p { margin: 0; font-size: .85rem; color: #111; font-weight: 800; text-transform: uppercase; }
.split-heading {
    display: flex; gap: 24px; justify-content: space-between; align-items: end;
}
.split-heading p, .schedule-intro p { max-width: 720px; color: rgba(255,255,255,.72); }
.section-light .schedule-intro p,
.section-light .split-heading p { color: #5a5a5a; }
.cards-grid { display: grid; gap: 22px; }
.cards-4 { grid-template-columns: repeat(4, 1fr); }
.cards-3 { grid-template-columns: repeat(3, 1fr); }
.class-card, .coach-card, .gallery-card, .price-card, .contact-card {
    border-radius: var(--radius); overflow: hidden;
}
.class-card {
    background: #101010; border: 1px solid rgba(194,24,25,.15); box-shadow: var(--shadow);
}
.class-image { height: 240px; overflow: hidden; }
.class-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.class-card:hover .class-image img { transform: scale(1.05); }
.class-content { padding: 22px; }
.class-content p { color: rgba(255,255,255,.72); min-height: 72px; }
.card-link { color: var(--accent); font-weight: 800; text-transform: uppercase; font-size: .86rem; }
.schedule-layout {
    display: grid; grid-template-columns: .8fr 1.2fr; gap: 30px; align-items: start;
}
.schedule-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px;
}
.schedule-card {
    background: #fff; border-radius: 20px; padding: 24px; box-shadow: 0 22px 50px rgba(0,0,0,.09);
}
.schedule-card h3 { color: #111; margin-bottom: 18px; }
.schedule-line { padding: 14px 0; border-top: 1px solid rgba(0,0,0,.08); display: flex; flex-direction: column; gap: 4px; }
.schedule-line:first-of-type { border-top: 0; padding-top: 0; }
.schedule-tag { color: #A91516; font-size: .8rem; text-transform: uppercase; font-weight: 800; letter-spacing: .08em; }
.schedule-line strong { font-size: 1.05rem; }
.schedule-line small { color: #666; }
.schedule-card-accent {
    background: linear-gradient(180deg, #111, #060606); color: #fff; display: flex; flex-direction: column; justify-content: space-between; border: 1px solid rgba(194,24,25,.18);
}
.pricing-grid { margin-top: 26px; }
.price-card {
    position: relative; background: linear-gradient(180deg, #131313, #0c0c0c); border: 1px solid rgba(194,24,25,.18); padding: 26px;
}
.price-card h3 { font-size: 2.1rem; }
.price-amount { font-family: var(--font-display); font-size: 3rem; font-weight: 800; color: #fff; }
.price-cycle { color: rgba(255,255,255,.6); text-transform: uppercase; font-size: .85rem; letter-spacing: .08em; }
.price-card ul { list-style: none; padding: 0; margin: 18px 0 24px; display: grid; gap: 10px; }
.price-card li { color: rgba(255,255,255,.78); display: flex; gap: 10px; align-items: flex-start; }
.price-card li i { color: var(--accent); margin-top: 4px; }
.price-card-featured {
    background: linear-gradient(180deg, var(--accent), #A91516); color: #111; border-color: transparent;
}
.price-card-featured .price-amount, .price-card-featured h3, .price-card-featured .price-cycle, .price-card-featured li { color: #111; }
.price-card-featured li i { color: #111; }
.price-badge {
    position: absolute; right: 18px; top: 18px; padding: 8px 12px; border-radius: 999px; font-size: .72rem; font-weight: 900; text-transform: uppercase; background: rgba(255,255,255,.12); color: inherit;
}
.coach-card { background: #fff; color: #111; box-shadow: 0 20px 50px rgba(0,0,0,.09); }
.coach-card img { width: 100%; height: 290px; object-fit: cover; }
.coach-content { padding: 22px; }
.coach-content span { color: #A91516; font-weight: 700; text-transform: uppercase; display: inline-block; margin-bottom: 10px; }
.coach-content p { color: #555; }
.gallery-section { background: linear-gradient(180deg, #ffffff, #f4f4f4); color: #111; }
.gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.gallery-card { background: #fff; box-shadow: 0 20px 50px rgba(0,0,0,.08); }
.gallery-card img { width: 100%; height: 220px; object-fit: cover; }
.gallery-card figcaption { padding: 14px 16px; font-weight: 700; }
.contact-section { padding-bottom: 92px; }
.contact-layout {
    display: grid; grid-template-columns: 1fr 1fr; gap: 30px; align-items: start;
}
.info-stack { display: grid; gap: 14px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); padding: 24px; margin: 24px 0; }
.info-stack > div { display: flex; gap: 12px; align-items: center; color: rgba(255,255,255,.82); }
.info-stack i { color: var(--accent); width: 18px; }
.map-card { overflow: hidden; border-radius: var(--radius); border: 1px solid rgba(255,255,255,.08); background: rgba(255,255,255,.03); }
.contact-form-wrap { display: grid; gap: 18px; }
.contact-form { background: #fff; color: #111; padding: 28px; box-shadow: var(--shadow); }
.contact-form h3, .reference-note h4 { color: #111; }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
label { display: block; font-size: .86rem; font-weight: 700; margin-bottom: 8px; }
input, select, textarea {
    width: 100%; padding: 14px 16px; border-radius: 12px; border: 1px solid rgba(0,0,0,.12);
    font: inherit; color: #111; background: #fff;
}
textarea { resize: vertical; }
.reference-note { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.08); padding: 24px; }
.reference-note ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.reference-note li { position: relative; padding-left: 24px; color: rgba(255,255,255,.78); }
.reference-note li::before { content: '•'; position: absolute; left: 8px; color: var(--accent); }
.site-footer { background: #050505; border-top: 1px solid rgba(255,255,255,.08); }
.footer-grid { display: grid; gap: 24px; grid-template-columns: 1.3fr .7fr .8fr; padding: 46px 0 26px; }
.footer-brand { margin-bottom: 12px; }
.footer-text { color: rgba(255,255,255,.66); max-width: 480px; }
.footer-links { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; color: rgba(255,255,255,.7); }
.footer-bottom { padding: 18px 0 30px; border-top: 1px solid rgba(255,255,255,.06); color: rgba(255,255,255,.55); font-size: .92rem; }
@media (max-width: 1100px) {
    .hero-grid, .schedule-layout, .contact-layout, .footer-grid { grid-template-columns: 1fr; }
    .cards-4, .gallery-grid, .stats-grid, .schedule-grid, .cards-3 { grid-template-columns: repeat(2, 1fr); }
    .mockup-card { left: 0; }
}
@media (max-width: 860px) {
    .nav-links, .nav-actions { display: none; }
    .mobile-toggle { display: block; }
    .mobile-menu.show { display: flex; }
    .hero-section { padding-top: 52px; }
    .hero-visual { min-height: 420px; }
    .floating-badge { width: 98px; height: 98px; }
    .split-heading { flex-direction: column; align-items: start; }
    .cards-4, .cards-3, .stats-grid, .schedule-grid, .gallery-grid, .form-grid { grid-template-columns: 1fr; }
    .stat-card { justify-content: flex-start; border-right: 0; border-bottom: 1px solid rgba(0,0,0,.08); }
    .stat-card:last-child { border-bottom: 0; }
}
@media (max-width: 640px) {
    .section { padding: 64px 0; }
    .hero-visual { min-height: 340px; }
    .floating-location { position: static; margin-top: 12px; }
    .floating-badge { left: auto; right: 12px; top: 12px; }
}

/* --- primera franja premium gymcontrol --- */
html { scroll-padding-top: 92px; }
body {
    background: #060606;
}
.site-header-premium {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 120;
    background: rgba(4, 4, 4, 0.22);
    border-bottom: 1px solid rgba(255,255,255,.06);
    backdrop-filter: blur(5px);
    transition: background .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.site-header-premium.is-scrolled {
    background: rgba(5, 5, 5, 0.92);
    box-shadow: 0 12px 28px rgba(0,0,0,.35);
    border-bottom-color: rgba(255,255,255,.08);
}
.nav-wrap-premium {
    min-height: 88px;
    display: grid;
    grid-template-columns: 250px 1fr 220px;
    gap: 18px;
    align-items: center;
}
.brand-premium {
    display: flex;
    align-items: center;
}
.brand-premium img {
    width: 255px;
    max-width: 100%;
    height: auto;
}
.nav-links-premium {
    justify-content: center;
    gap: 34px;
}
.nav-links-premium a {
    color: rgba(255,255,255,.94);
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
}
.nav-links-premium a:hover {
    color: var(--accent);
}
.nav-actions-premium {
    justify-content: flex-end;
}
.btn-login-premium {
    min-height: 54px;
    padding: 0 20px;
    border-radius: 5px;
    background: linear-gradient(180deg, #C21819 0%, #A91516 100%);
    color: #111;
    box-shadow: 0 10px 28px rgba(194,24,25,.16);
    font-size: .86rem;
}
.btn-login-premium i {
    font-size: 1rem;
}
.mobile-toggle-premium {
    display: none;
}
.mobile-toggle-premium.active span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.mobile-toggle-premium.active span:nth-child(2) { opacity: 0; }
.mobile-toggle-premium.active span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
.mobile-toggle-premium span { transition: .2s ease; }
.mobile-menu-premium {
    background: rgba(10,10,10,.98);
    padding-top: 0;
}
.mobile-menu-premium a {
    font-family: var(--font-display);
    font-size: 1rem;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: .03em;
}
.hero-premium {
    position: relative;
    min-height: 930px;
    padding: 110px 0 32px;
    overflow: hidden;
    background:
        radial-gradient(circle at 8% 48%, rgba(255,255,255,.06), transparent 22%),
        linear-gradient(90deg, rgba(0,0,0,.98) 0%, rgba(0,0,0,.94) 28%, rgba(0,0,0,.58) 52%, rgba(0,0,0,.84) 100%),
        #050505;
}
.hero-premium-backdrop {
    position: absolute;
    inset: 0;
    background: url('../images/hero-bg-premium.png') center right / cover no-repeat;
    opacity: .42;
    transform: scale(1.06);
}
.hero-premium::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 85px;
    background: linear-gradient(180deg, rgba(6,6,6,0), rgba(6,6,6,.82) 68%, rgba(6,6,6,1) 100%);
}
.hero-premium-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(380px, 520px) minmax(540px, 1fr);
    align-items: center;
    gap: 32px;
    min-height: 770px;
}
.hero-copy-premium {
    max-width: 500px;
    padding-top: 20px;
}
.hero-copy-premium h1 {
    margin: 0;
    font-size: clamp(4.3rem, 6.4vw, 7rem);
    line-height: .88;
    font-weight: 800;
    letter-spacing: .01em;
    font-style: italic;
}
.hero-copy-premium h1 span { display: block; }
.hero-line-white { color: #fff; }
.hero-line-accent { color: #C21819; }
.hero-copy-subtitle {
    margin: 26px 0 28px;
    color: rgba(255,255,255,.98);
    font-size: 1.18rem;
    font-weight: 600;
    line-height: 1.45;
    max-width: 290px;
}
.hero-disciplines {
    display: flex;
    flex-wrap: wrap;
    gap: 18px 24px;
    margin-bottom: 34px;
}
.hero-disciplines span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: rgba(255,255,255,.94);
    font-size: .94rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .01em;
}
.hero-disciplines i {
    color: rgba(255,255,255,.98);
    font-size: 1rem;
}
.hero-copy-actions {
    display: flex;
    align-items: center;
    gap: 30px;
    flex-wrap: wrap;
}
.btn-hero-main {
    min-width: 270px;
    min-height: 62px;
    border-radius: 4px;
    font-family: var(--font-display);
    font-size: 1.12rem;
    letter-spacing: .03em;
    box-shadow: 0 16px 40px rgba(194,24,25,.16);
}
.hero-link-plans {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: #fff;
    font-family: var(--font-display);
    font-size: 1.48rem;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
}
.hero-link-plans:hover { color: var(--accent); }
.hero-visual-premium {
    position: relative;
    min-height: 780px;
}
.hero-image-wrap {
    position: absolute;
    inset: 0 54px 0 0;
    overflow: hidden;
}
.hero-image-wrap::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0) 68%, rgba(0,0,0,.55) 100%);
}
.hero-athlete-premium {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    filter: saturate(1.03) contrast(1.04);
}
.hero-emblem-premium {
    position: absolute;
    top: 70px;
    right: 76px;
    width: 175px;
    height: auto;
    filter: drop-shadow(0 18px 35px rgba(0,0,0,.4));
}
.hero-social-premium {
    position: absolute;
    right: 8px;
    top: 48%;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.hero-social-premium a {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    color: #fff;
    font-size: 1.95rem;
    text-shadow: 0 4px 12px rgba(0,0,0,.45);
}
.hero-social-premium a:hover { color: var(--accent); }
.hero-location-premium {
    position: absolute;
    right: 44px;
    bottom: 52px;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    color: #fff;
    padding: 8px 0;
}
.hero-location-premium i {
    font-size: 1.3rem;
    margin-top: 4px;
}
.hero-location-premium strong,
.hero-location-premium span {
    display: block;
    color: #fff;
    font-size: 1.02rem;
    line-height: 1.35;
    text-shadow: 0 3px 8px rgba(0,0,0,.5);
}
.hero-location-premium span {
    color: rgba(255,255,255,.94);
}
.stats-strip {
    margin-top: 0;
    position: relative;
    z-index: 4;
}
.footer-logo-link {
    display: inline-block;
    margin-bottom: 16px;
}
.footer-logo {
    width: 240px;
    max-width: 100%;
}
@media (max-width: 1360px) {
    .nav-wrap-premium { grid-template-columns: 220px 1fr 200px; }
    .brand-premium img { width: 220px; }
    .nav-links-premium { gap: 24px; }
    .hero-premium-grid { grid-template-columns: minmax(360px, 480px) 1fr; }
    .hero-emblem-premium { right: 54px; }
}
@media (max-width: 1180px) {
    .hero-premium { min-height: auto; }
    .hero-premium-grid {
        grid-template-columns: 1fr;
        gap: 18px;
        min-height: auto;
    }
    .hero-copy-premium {
        max-width: 650px;
        padding-top: 12px;
    }
    .hero-visual-premium {
        min-height: 640px;
    }
    .hero-image-wrap { inset: 0 20px 0 0; }
    .hero-emblem-premium { top: 40px; right: 38px; }
    .hero-location-premium { right: 20px; }
    .hero-social-premium { right: -4px; }
}
@media (max-width: 860px) {
    html { scroll-padding-top: 80px; }
    .nav-wrap-premium {
        display: flex;
        min-height: 80px;
        justify-content: space-between;
        gap: 12px;
    }
    .brand-premium img { width: 190px; }
    .nav-links-premium, .nav-actions-premium { display: none; }
    .mobile-toggle-premium { display: block; }
    .mobile-menu.show { display: flex; }
    .hero-premium {
        padding-top: 92px;
    }
    .hero-premium-grid {
        gap: 18px;
    }
    .hero-copy-premium {
        max-width: 100%;
        padding-top: 0;
    }
    .hero-copy-premium h1 {
        font-size: clamp(3.3rem, 12vw, 5.1rem);
    }
    .hero-copy-subtitle {
        max-width: 100%;
        font-size: 1rem;
    }
    .hero-disciplines {
        gap: 12px 16px;
    }
    .hero-disciplines span {
        font-size: .82rem;
    }
    .hero-copy-actions { gap: 18px; }
    .hero-link-plans { font-size: 1.2rem; }
    .hero-visual-premium {
        min-height: 420px;
    }
    .hero-image-wrap {
        inset: 0;
    }
    .hero-emblem-premium {
        width: 112px;
        top: 16px;
        right: 12px;
    }
    .hero-social-premium {
        display: none;
    }
    .hero-location-premium {
        left: 14px;
        right: 14px;
        bottom: 14px;
        background: linear-gradient(90deg, rgba(0,0,0,.64), rgba(0,0,0,.12));
        padding: 12px 14px;
        border-radius: 12px;
    }
    .hero-location-premium strong,
    .hero-location-premium span {
        font-size: .9rem;
    }
}
@media (max-width: 540px) {
    .brand-premium img { width: 168px; }
    .hero-premium {
        padding-top: 88px;
        padding-bottom: 18px;
    }
    .hero-copy-premium h1 {
        font-size: clamp(2.9rem, 13vw, 4.2rem);
    }
    .hero-disciplines {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px 16px;
    }
    .hero-disciplines span {
        font-size: .76rem;
    }
    .btn-hero-main {
        width: 100%;
        min-width: 0;
    }
    .hero-visual-premium {
        min-height: 355px;
    }
    .hero-image-wrap::after {
        background: linear-gradient(180deg, rgba(0,0,0,0) 58%, rgba(0,0,0,.78) 100%);
    }
}

/* --- ajustes finos v6 primera franja --- */
.hero-premium {
    background:
        linear-gradient(90deg, rgba(0,0,0,.98) 0%, rgba(0,0,0,.96) 34%, rgba(0,0,0,.88) 60%, rgba(0,0,0,.98) 100%),
        #000;
}
.hero-premium-backdrop {
    display: none;
}
.hero-premium::after {
    background: linear-gradient(180deg, rgba(0,0,0,0) 70%, rgba(0,0,0,.86) 100%);
}
.hero-premium-grid {
    min-height: 760px;
}
.hero-copy-premium {
    max-width: 490px;
}
.hero-visual-premium {
    min-height: 760px;
}
.hero-image-wrap {
    inset: 4px 6px 12px 0;
    overflow: visible;
    background: transparent;
}
.hero-image-wrap::before,
.hero-image-wrap::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
}
.hero-image-wrap::before {
    background:
        linear-gradient(90deg, rgba(0,0,0,1) 0%, rgba(0,0,0,.38) 11%, rgba(0,0,0,0) 20%, rgba(0,0,0,0) 79%, rgba(0,0,0,.58) 90%, rgba(0,0,0,1) 100%),
        linear-gradient(180deg, rgba(0,0,0,.78) 0%, rgba(0,0,0,0) 12%, rgba(0,0,0,0) 78%, rgba(0,0,0,.88) 100%);
    z-index: 2;
}
.hero-image-wrap::after {
    background: radial-gradient(circle at 75% 45%, rgba(0,0,0,0) 0%, rgba(0,0,0,0) 58%, rgba(0,0,0,.28) 84%, rgba(0,0,0,.55) 100%);
    z-index: 2;
}
.hero-athlete-premium {
    position: relative;
    z-index: 1;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center 58%;
    filter: saturate(1.04) contrast(1.03);
}
.hero-emblem-premium {
    top: 92px;
    right: 18px;
    width: 220px;
    filter: drop-shadow(0 16px 26px rgba(0,0,0,.42));
}
.hero-location-premium {
    right: 18px;
    bottom: 66px;
}
.hero-social-premium {
    right: -4px;
    top: 49%;
}
@media (max-width: 1360px) {
    .hero-emblem-premium {
        right: 8px;
        width: 205px;
    }
    .hero-location-premium { right: 8px; }
}
@media (max-width: 1180px) {
    .hero-visual-premium {
        min-height: 620px;
    }
    .hero-image-wrap {
        inset: 0 0 0 0;
    }
    .hero-emblem-premium {
        width: 190px;
        right: 10px;
        top: 40px;
    }
    .hero-location-premium {
        right: 10px;
        bottom: 42px;
    }
}
@media (max-width: 860px) {
    .hero-premium {
        background: #000;
    }
    .hero-visual-premium {
        min-height: 430px;
    }
    .hero-athlete-premium {
        object-position: center bottom;
    }
    .hero-emblem-premium {
        width: 132px;
        right: 4px;
        top: 8px;
    }
    .hero-location-premium {
        left: 8px;
        right: 8px;
        bottom: 10px;
    }
}

/* --- v7 fidelización extra de la primera franja --- */
.site-header-premium .container,
.hero-premium .container {
    width: min(calc(100% - 72px), 1650px);
}
.site-header-premium {
    background: rgba(0,0,0,.22);
    border-bottom-color: rgba(255,255,255,.07);
}
.site-header-premium.is-scrolled {
    background: rgba(0,0,0,.92);
}
.nav-wrap-premium {
    grid-template-columns: 290px 1fr 220px;
    min-height: 82px;
    gap: 20px;
}
.brand-premium img {
    width: 245px;
}
.nav-links-premium {
    gap: 36px;
}
.nav-links-premium a {
    font-size: .98rem;
}
.hero-premium {
    min-height: 860px;
    padding: 84px 0 10px;
    background: #000;
}
.hero-premium-grid {
    grid-template-columns: 480px minmax(620px, 1fr);
    gap: 22px;
    min-height: 760px;
    align-items: center;
}
.hero-copy-premium {
    max-width: 460px;
    padding-top: 6px;
    margin-left: 6px;
}
.hero-copy-premium h1 {
    font-size: clamp(4.55rem, 6.4vw, 6.8rem);
    line-height: .86;
}
.hero-copy-subtitle {
    margin: 24px 0 26px;
    font-size: 1.08rem;
    max-width: 260px;
}
.hero-disciplines {
    gap: 16px 24px;
    margin-bottom: 28px;
}
.hero-disciplines span {
    font-size: .95rem;
}
.btn-hero-main {
    min-width: 244px;
    min-height: 58px;
}
.hero-link-plans {
    font-size: 1.38rem;
}
.hero-visual-premium {
    min-height: 720px;
}
.hero-image-wrap {
    position: relative;
    inset: auto;
    width: 100%;
    height: 100%;
    overflow: visible;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
}
.hero-image-wrap::before,
.hero-image-wrap::after {
    display: none;
}
.hero-athlete-premium {
    position: absolute;
    right: 62px;
    bottom: 0;
    width: min(100%, 930px);
    height: auto;
    object-fit: contain;
    object-position: center bottom;
}
.hero-emblem-premium {
    top: 62px;
    right: 74px;
    width: 188px;
}
.hero-social-premium {
    right: 4px;
    top: 50%;
    gap: 16px;
}
.hero-social-premium a {
    font-size: 1.9rem;
}
.hero-location-premium {
    right: 54px;
    bottom: 44px;
}
.hero-location-premium strong,
.hero-location-premium span {
    font-size: 1.01rem;
}
@media (max-width: 1500px) {
    .site-header-premium .container,
    .hero-premium .container {
        width: min(calc(100% - 48px), 1560px);
    }
    .hero-premium-grid {
        grid-template-columns: 450px minmax(560px, 1fr);
    }
    .hero-athlete-premium {
        right: 32px;
        width: min(100%, 860px);
    }
    .hero-emblem-premium {
        right: 34px;
    }
    .hero-location-premium {
        right: 24px;
    }
}
@media (max-width: 1180px) {
    .hero-premium-grid {
        grid-template-columns: 1fr;
        gap: 8px;
        min-height: auto;
    }
    .hero-copy-premium {
        max-width: 600px;
        margin-left: 0;
    }
    .hero-visual-premium {
        min-height: 580px;
    }
    .hero-athlete-premium {
        right: 20px;
        width: min(100%, 720px);
    }
    .hero-emblem-premium {
        top: 20px;
        right: 20px;
        width: 165px;
    }
    .hero-location-premium {
        right: 18px;
        bottom: 24px;
    }
}
@media (max-width: 860px) {
    .site-header-premium .container,
    .hero-premium .container {
        width: min(calc(100% - 24px), 100%);
    }
    .nav-wrap-premium {
        min-height: 78px;
    }
    .brand-premium img {
        width: 176px;
    }
    .hero-premium {
        min-height: auto;
        padding-top: 86px;
    }
    .hero-copy-premium h1 {
        font-size: clamp(3.3rem, 13vw, 5.1rem);
    }
    .hero-copy-subtitle {
        font-size: 1rem;
        max-width: 100%;
    }
    .hero-disciplines {
        gap: 12px 14px;
    }
    .hero-disciplines span {
        font-size: .83rem;
    }
    .hero-visual-premium {
        min-height: 420px;
    }
    .hero-athlete-premium {
        right: 0;
        left: auto;
        width: min(100%, 520px);
    }
    .hero-emblem-premium {
        top: 8px;
        right: 0;
        width: 130px;
    }
    .hero-location-premium {
        left: 10px;
        right: 10px;
        bottom: 8px;
    }
}


/* =========================================================
   HERO V9 PREMIUM - reconstrucción limpia de primera franja
   Base: v7, sin tocar secciones posteriores ni admin
   ========================================================= */

.site-header-premium {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    background: rgba(0, 0, 0, .36);
    border-bottom: 1px solid rgba(255,255,255,.08);
    backdrop-filter: blur(4px);
    z-index: 200;
}

.site-header-premium.is-scrolled {
    background: rgba(0,0,0,.92);
}

.site-header-premium .container {
    width: min(calc(100% - 70px), 1680px);
}

.nav-wrap-premium {
    min-height: 86px;
    grid-template-columns: 300px 1fr 230px;
    gap: 24px;
}

.brand-premium img {
    width: 250px;
}

.nav-links-premium {
    gap: 35px;
}

.nav-links-premium a {
    font-family: var(--font-display);
    font-size: .98rem;
    font-weight: 800;
    letter-spacing: .035em;
}

.btn-login-premium {
    min-height: 56px;
    border-radius: 5px;
    padding-inline: 24px;
}

/* Se neutraliza cualquier bloque hero anterior solo si quedó en DOM por caché/mezclas */
.hero-premium,
.hero-exact-section,
.hero-v8 {
    display: none !important;
}

.hero-v9 {
    position: relative;
    min-height: 865px;
    padding: 86px 0 0;
    background: #000;
    overflow: hidden;
}

.hero-v9::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 90px;
    background: linear-gradient(180deg, rgba(0,0,0,0), #000);
    pointer-events: none;
}

.hero-v9 .container {
    width: min(calc(100% - 70px), 1680px);
}

.hero-v9-grid {
    position: relative;
    z-index: 2;
    min-height: 775px;
    display: grid;
    grid-template-columns: 510px minmax(690px, 1fr);
    align-items: center;
    gap: 20px;
}

.hero-v9-copy {
    position: relative;
    z-index: 5;
    max-width: 485px;
    padding-top: 28px;
}

.hero-v9-copy h1 {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(4.8rem, 6.15vw, 6.95rem);
    font-weight: 800;
    font-style: italic;
    line-height: .865;
    letter-spacing: .005em;
}

.hero-v9-copy h1 span {
    display: block;
}

.hero-v9-white {
    color: #fff;
}

.hero-v9-accent {
    color: #C21819;
}

.hero-v9-subtitle {
    margin: 28px 0 30px;
    max-width: 285px;
    color: #fff;
    font-size: 1.12rem;
    font-weight: 700;
    line-height: 1.45;
}

.hero-v9-disciplines {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 25px;
    max-width: 560px;
    margin: 0 0 28px;
}

.hero-v9-disciplines span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #fff;
    font-size: .94rem;
    font-weight: 800;
    letter-spacing: .005em;
    text-transform: uppercase;
    white-space: nowrap;
}

.hero-v9-disciplines i {
    color: #fff;
}

.hero-v9-actions {
    display: flex;
    align-items: center;
    gap: 28px;
    flex-wrap: wrap;
}

.hero-v9-button {
    min-width: 265px;
    min-height: 60px;
    border-radius: 4px;
    font-family: var(--font-display);
    font-size: 1.08rem;
    font-weight: 800;
    letter-spacing: .035em;
    background: linear-gradient(180deg, #C21819 0%, #A91516 100%);
    box-shadow: 0 20px 42px rgba(184,242,28,.17);
}

.hero-v9-plan-link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: #fff;
    font-family: var(--font-display);
    font-size: 1.38rem;
    font-weight: 800;
    letter-spacing: .025em;
    text-transform: uppercase;
}

.hero-v9-plan-link:hover {
    color: #C21819;
}

.hero-v9-visual {
    position: relative;
    min-height: 775px;
}

/* La atleta vuelve a ser protagonista, integrada al negro sin caja visible */
.hero-v9-athlete {
    position: absolute;
    right: 38px;
    bottom: -6px;
    width: min(100%, 980px);
    max-width: none;
    height: auto;
    display: block;
    z-index: 1;
    filter: saturate(1.04) contrast(1.04);
}

.hero-v9-circle {
    position: absolute;
    top: 94px;
    right: 88px;
    width: 185px;
    height: auto;
    z-index: 3;
    display: block;
    filter: drop-shadow(0 16px 26px rgba(0,0,0,.45));
}

.hero-v9-socials {
    position: absolute;
    right: -2px;
    top: 51%;
    transform: translateY(-50%);
    z-index: 4;
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.hero-v9-socials a {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    color: #fff;
    font-size: 1.9rem;
    text-shadow: 0 4px 12px rgba(0,0,0,.5);
}

.hero-v9-socials a:hover {
    color: #C21819;
}

.hero-v9-location {
    position: absolute;
    right: 44px;
    bottom: 48px;
    z-index: 4;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    color: #fff;
}

.hero-v9-location i {
    font-size: 1.3rem;
    margin-top: 4px;
    color: #fff;
}

.hero-v9-location strong,
.hero-v9-location span {
    display: block;
    color: #fff;
    font-size: 1.01rem;
    line-height: 1.35;
    text-shadow: 0 3px 8px rgba(0,0,0,.55);
}

.stats-strip {
    margin-top: 0;
}

@media (max-width: 1500px) {
    .site-header-premium .container,
    .hero-v9 .container {
        width: min(calc(100% - 48px), 1560px);
    }

    .hero-v9-grid {
        grid-template-columns: 470px minmax(560px, 1fr);
    }

    .hero-v9-athlete {
        width: min(100%, 890px);
        right: 20px;
    }

    .hero-v9-circle {
        right: 48px;
    }

    .hero-v9-location {
        right: 26px;
    }
}

@media (max-width: 1180px) {
    .hero-v9 {
        min-height: auto;
    }

    .hero-v9-grid {
        grid-template-columns: 1fr;
        min-height: auto;
        gap: 8px;
    }

    .hero-v9-copy {
        max-width: 640px;
    }

    .hero-v9-visual {
        min-height: 590px;
    }

    .hero-v9-athlete {
        right: 22px;
        width: min(100%, 760px);
    }

    .hero-v9-circle {
        top: 28px;
        right: 24px;
        width: 160px;
    }

    .hero-v9-location {
        right: 22px;
        bottom: 28px;
    }
}

@media (max-width: 860px) {
    .site-header-premium .container,
    .hero-v9 .container {
        width: min(calc(100% - 24px), 100%);
    }

    .nav-wrap-premium {
        min-height: 78px;
        display: flex;
        justify-content: space-between;
    }

    .brand-premium img {
        width: 176px;
    }

    .nav-links-premium,
    .nav-actions-premium {
        display: none;
    }

    .mobile-toggle-premium {
        display: block;
    }

    .mobile-menu.show {
        display: flex;
    }

    .hero-v9 {
        padding-top: 86px;
    }

    .hero-v9-copy {
        padding-top: 0;
    }

    .hero-v9-copy h1 {
        font-size: clamp(3.2rem, 13vw, 5rem);
    }

    .hero-v9-subtitle {
        max-width: 100%;
        font-size: 1rem;
    }

    .hero-v9-disciplines {
        gap: 12px 14px;
    }

    .hero-v9-disciplines span {
        font-size: .82rem;
    }

    .hero-v9-button {
        width: 100%;
        min-width: 0;
    }

    .hero-v9-visual {
        min-height: 430px;
    }

    .hero-v9-athlete {
        right: 0;
        bottom: 0;
        width: min(100%, 560px);
    }

    .hero-v9-circle {
        top: 6px;
        right: -4px;
        width: 125px;
    }

    .hero-v9-socials {
        display: none;
    }

    .hero-v9-location {
        left: 10px;
        right: 10px;
        bottom: 10px;
        background: linear-gradient(90deg, rgba(0,0,0,.68), rgba(0,0,0,.12));
        padding: 12px 14px;
        border-radius: 12px;
    }

    .hero-v9-location strong,
    .hero-v9-location span {
        font-size: .9rem;
    }
}


/* --- HERO V11 fine tuning over v9 --- */
.site-header-premium .container, .hero-v9 .container {
    width: min(calc(100% - 60px), 1560px);
}
.nav-wrap-premium {
    grid-template-columns: 255px 1fr 220px;
    min-height: 82px;
    gap: 24px;
}
.brand-premium img { width: 226px; }
.nav-links-premium { gap: 33px; }
.nav-links-premium a { font-size: .95rem; }
.btn-login-premium { min-height: 54px; padding-inline: 24px; font-size: .86rem; }
.hero-v9 { min-height: 838px; padding-top: 82px; }
.hero-v9-grid {
    min-height: 748px;
    grid-template-columns: 450px minmax(610px, 1fr);
    gap: 6px;
}
.hero-v9-copy {
    max-width: 430px;
    padding-top: 22px;
}
.hero-v9-copy h1 {
    font-size: clamp(4.35rem, 5.75vw, 6.25rem);
    line-height: .86;
}
.hero-v9-subtitle {
    max-width: 245px;
    margin: 24px 0 28px;
    font-size: 1.04rem;
}
.hero-v9-disciplines {
    gap: 13px 21px;
    margin-bottom: 24px;
}
.hero-v9-disciplines span { font-size: .88rem; }
.hero-v9-button { min-width: 242px; min-height: 58px; font-size: 1.02rem; }
.hero-v9-plan-link { font-size: 1.25rem; }
.hero-v9-visual { min-height: 748px; }
.hero-v9-athlete {
    right: 58px;
    bottom: 0;
    width: min(100%, 875px);
}
.hero-v9-circle {
    top: 118px;
    right: 104px;
    width: 138px;
    filter: drop-shadow(0 8px 18px rgba(0,0,0,.32));
}
.hero-v9-socials {
    right: 14px;
    top: 56%;
    gap: 14px;
}
.hero-v9-socials a {
    width: 36px;
    height: 36px;
    font-size: 1.65rem;
}
.hero-v9-location {
    right: 38px;
    bottom: 36px;
    gap: 10px;
}
.hero-v9-location i { font-size: 1.15rem; margin-top: 3px; }
.hero-v9-location strong, .hero-v9-location span { font-size: .92rem; line-height: 1.28; }
@media (max-width:1500px) {
    .hero-v9-grid { grid-template-columns: 430px minmax(520px,1fr); }
    .hero-v9-athlete { width: min(100%, 810px); right: 34px; }
    .hero-v9-circle { right: 72px; }
    .hero-v9-location { right: 26px; }
}
@media (max-width:1180px) {
    .hero-v9-grid { grid-template-columns: 1fr; gap: 8px; }
    .hero-v9-copy { max-width: 600px; }
    .hero-v9-athlete { width: min(100%, 710px); right: 18px; }
    .hero-v9-circle { width: 130px; right: 22px; top: 30px; }
    .hero-v9-socials { right: 6px; }
}
@media (max-width:860px) {
    .site-header-premium .container, .hero-v9 .container { width: min(calc(100% - 22px),100%); }
    .brand-premium img { width: 168px; }
    .hero-v9-copy h1 { font-size: clamp(3rem, 12.2vw, 4.7rem); }
    .hero-v9-subtitle { font-size: .98rem; }
    .hero-v9-disciplines span { font-size: .8rem; }
    .hero-v9-athlete { width: min(100%, 520px); right: -6px; }
    .hero-v9-circle { width: 112px; right: 0; top: 8px; }
    .hero-v9-socials { display:none; }
    .hero-v9-location { left: 10px; right: 10px; bottom: 10px; }
    .hero-v9-location strong, .hero-v9-location span { font-size: .88rem; }
}


/* --- HERO V12 micro-ajuste fino sobre v11 --- */
.site-header-premium .container, .hero-v9 .container {
    width: min(calc(100% - 56px), 1525px);
}
.nav-wrap-premium {
    grid-template-columns: 240px 1fr 205px;
    min-height: 80px;
    gap: 20px;
}
.brand-premium img {
    width: 198px;
}
.nav-links-premium {
    gap: 28px;
}
.nav-links-premium a {
    font-size: .90rem;
    letter-spacing: .028em;
}
.btn-login-premium {
    min-height: 50px;
    padding-inline: 20px;
    font-size: .82rem;
}
.hero-v9 {
    min-height: 820px;
    padding-top: 80px;
}
.hero-v9-grid {
    min-height: 730px;
    grid-template-columns: 395px minmax(620px, 1fr);
    gap: 2px;
}
.hero-v9-copy {
    max-width: 390px;
    padding-top: 18px;
}
.hero-v9-copy h1 {
    font-size: clamp(4.00rem, 5.35vw, 5.75rem);
    line-height: .855;
    letter-spacing: -.01em;
}
.hero-v9-subtitle {
    max-width: 225px;
    margin: 22px 0 24px;
    font-size: .97rem;
    line-height: 1.4;
}
.hero-v9-disciplines {
    gap: 12px 20px;
    margin-bottom: 22px;
}
.hero-v9-disciplines span {
    font-size: .80rem;
}
.hero-v9-button {
    min-width: 210px;
    min-height: 54px;
    font-size: .96rem;
}
.hero-v9-plan-link {
    font-size: 1.16rem;
}
.hero-v9-visual {
    min-height: 730px;
}
.hero-v9-athlete {
    right: 8px;
    bottom: 0;
    width: min(100%, 930px);
    filter: saturate(1.01) contrast(1.02);
}
.hero-v9-circle {
    top: 110px;
    right: 138px;
    width: 150px;
    filter: drop-shadow(0 8px 18px rgba(0,0,0,.26));
}
.hero-v9-socials {
    right: 16px;
    top: 55%;
    gap: 12px;
}
.hero-v9-socials a {
    width: 32px;
    height: 32px;
    font-size: 1.48rem;
}
.hero-v9-location {
    right: 34px;
    bottom: 30px;
    gap: 9px;
}
.hero-v9-location i {
    font-size: 1.06rem;
    margin-top: 2px;
}
.hero-v9-location strong, .hero-v9-location span {
    font-size: .84rem;
    line-height: 1.24;
}
@media (max-width: 1500px) {
    .hero-v9-grid {
        grid-template-columns: 385px minmax(520px,1fr);
    }
    .hero-v9-athlete {
        width: min(100%, 865px);
        right: 0;
    }
    .hero-v9-circle {
        right: 110px;
        width: 144px;
    }
}
@media (max-width: 1180px) {
    .hero-v9-grid {
        grid-template-columns: 1fr;
        gap: 8px;
    }
    .hero-v9-copy { max-width: 590px; }
    .hero-v9-athlete { width: min(100%, 720px); right: 10px; }
    .hero-v9-circle { right: 22px; top: 28px; width: 128px; }
    .hero-v9-socials { right: 6px; }
}
@media (max-width: 860px) {
    .site-header-premium .container, .hero-v9 .container { width: min(calc(100% - 20px),100%); }
    .brand-premium img { width: 160px; }
    .hero-v9-copy h1 { font-size: clamp(2.95rem, 12vw, 4.55rem); }
    .hero-v9-subtitle { font-size: .95rem; max-width: 100%; }
    .hero-v9-disciplines span { font-size: .78rem; }
    .hero-v9-button { width: 100%; min-width: 0; }
    .hero-v9-athlete { width: min(100%, 540px); right: -4px; }
    .hero-v9-circle { width: 108px; right: 0; top: 8px; }
    .hero-v9-socials { display:none; }
    .hero-v9-location { left: 10px; right: 10px; bottom: 10px; }
    .hero-v9-location strong, .hero-v9-location span { font-size: .86rem; }
}


/* --- HERO V13 fidelización fina --- */
.site-header-premium .container, .hero-v9 .container {
    width: min(calc(100% - 64px), 1450px);
}
.nav-wrap-premium {
    grid-template-columns: 216px 1fr 195px;
    min-height: 78px;
    gap: 18px;
}
.brand-premium img {
    width: 172px;
}
.nav-links-premium {
    gap: 24px;
}
.nav-links-premium a {
    font-size: .82rem;
    letter-spacing: .025em;
}
.btn-login-premium {
    min-height: 44px;
    padding-inline: 18px;
    font-size: .79rem;
}
.hero-v9 {
    min-height: 780px;
    padding-top: 78px;
}
.hero-v9-grid {
    min-height: 690px;
    grid-template-columns: 355px minmax(560px, 1fr);
    gap: 0;
}
.hero-v9-copy {
    max-width: 350px;
    padding-top: 14px;
}
.hero-v9-copy h1 {
    font-size: clamp(3.75rem, 4.95vw, 5.25rem);
    line-height: .865;
    letter-spacing: -.012em;
}
.hero-v9-subtitle {
    max-width: 210px;
    margin: 18px 0 20px;
    font-size: .90rem;
    line-height: 1.37;
}
.hero-v9-disciplines {
    gap: 10px 18px;
    margin-bottom: 18px;
}
.hero-v9-disciplines span {
    font-size: .72rem;
}
.hero-v9-actions {
    gap: 20px;
}
.hero-v9-button {
    min-width: 180px;
    min-height: 49px;
    font-size: .88rem;
}
.hero-v9-plan-link {
    font-size: 1.05rem;
}
.hero-v9-visual {
    min-height: 690px;
    position: relative;
}
.hero-v9-visual::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 36%;
    z-index: 2;
    pointer-events: none;
    background: linear-gradient(90deg, #000 0%, rgba(0,0,0,.88) 36%, rgba(0,0,0,.52) 60%, rgba(0,0,0,0) 100%);
}
.hero-v9-athlete {
    right: 62px;
    bottom: 0;
    width: min(100%, 860px);
    z-index: 1;
}
.hero-v9-circle {
    top: 104px;
    right: 118px;
    width: 122px;
    z-index: 3;
    filter: drop-shadow(0 6px 16px rgba(0,0,0,.24));
}
.hero-v9-socials {
    right: 10px;
    top: 55%;
    gap: 10px;
    z-index: 3;
}
.hero-v9-socials a {
    width: 28px;
    height: 28px;
    font-size: 1.28rem;
}
.hero-v9-location {
    right: 22px;
    bottom: 24px;
    gap: 8px;
    z-index: 3;
}
.hero-v9-location i {
    font-size: .98rem;
    margin-top: 2px;
}
.hero-v9-location strong, .hero-v9-location span {
    font-size: .78rem;
    line-height: 1.22;
}
@media (max-width: 1500px) {
    .hero-v9-grid {
        grid-template-columns: 345px minmax(510px, 1fr);
    }
    .hero-v9-athlete {
        width: min(100%, 815px);
        right: 48px;
    }
    .hero-v9-circle {
        right: 98px;
        width: 118px;
    }
}
@media (max-width: 1180px) {
    .hero-v9-grid {
        grid-template-columns: 1fr;
        gap: 6px;
    }
    .hero-v9-copy { max-width: 560px; }
    .hero-v9-athlete { width: min(100%, 700px); right: 12px; }
    .hero-v9-circle { right: 22px; top: 26px; width: 118px; }
    .hero-v9-socials { right: 5px; }
}
@media (max-width: 860px) {
    .site-header-premium .container, .hero-v9 .container { width: min(calc(100% - 18px),100%); }
    .brand-premium img { width: 152px; }
    .hero-v9-copy h1 { font-size: clamp(2.85rem, 11.5vw, 4.35rem); }
    .hero-v9-subtitle { font-size: .92rem; max-width: 100%; }
    .hero-v9-disciplines span { font-size: .76rem; }
    .hero-v9-button { width: 100%; min-width: 0; }
    .hero-v9-athlete { width: min(100%, 510px); right: 0; }
    .hero-v9-circle { width: 100px; right: 2px; top: 10px; }
    .hero-v9-socials { display:none; }
    .hero-v9-location { left: 10px; right: 10px; bottom: 10px; }
    .hero-v9-location strong, .hero-v9-location span { font-size: .82rem; }
}


/* --- HERO V14 fidelización final fina --- */
.site-header-premium .container, .hero-v9 .container {
    width: min(calc(100% - 56px), 1360px);
}
.nav-wrap-premium {
    grid-template-columns: 196px 1fr 178px;
    min-height: 72px;
    gap: 14px;
}
.brand-premium img {
    width: 154px;
}
.nav-links-premium {
    gap: 20px;
}
.nav-links-premium a {
    font-size: .76rem;
    letter-spacing: .02em;
}
.btn-login-premium {
    min-height: 40px;
    padding-inline: 16px;
    font-size: .75rem;
    border-radius: 6px;
}
.hero-v9 {
    min-height: 730px;
    padding-top: 72px;
}
.hero-v9-grid {
    min-height: 650px;
    grid-template-columns: 315px minmax(520px, 1fr);
    gap: 0;
}
.hero-v9-copy {
    max-width: 312px;
    padding-top: 2px;
}
.hero-v9-copy h1 {
    font-size: clamp(3.35rem, 4.45vw, 4.75rem);
    line-height: .87;
    letter-spacing: -.014em;
}
.hero-v9-subtitle {
    max-width: 190px;
    margin: 14px 0 16px;
    font-size: .82rem;
    line-height: 1.34;
}
.hero-v9-disciplines {
    gap: 8px 16px;
    margin-bottom: 16px;
}
.hero-v9-disciplines span {
    font-size: .64rem;
}
.hero-v9-actions {
    gap: 16px;
}
.hero-v9-button {
    min-width: 148px;
    min-height: 42px;
    font-size: .78rem;
}
.hero-v9-plan-link {
    font-size: .92rem;
}
.hero-v9-visual {
    min-height: 650px;
}
.hero-v9-visual::before {
    width: 30%;
    background: linear-gradient(90deg, #000 0%, rgba(0,0,0,.86) 28%, rgba(0,0,0,.46) 54%, rgba(0,0,0,0) 100%);
}
.hero-v9-athlete {
    right: 108px;
    bottom: -6px;
    width: min(100%, 760px);
}
.hero-v9-circle {
    top: 88px;
    right: 108px;
    width: 132px;
}
.hero-v9-socials {
    right: 12px;
    top: 55%;
    gap: 8px;
}
.hero-v9-socials a {
    width: 24px;
    height: 24px;
    font-size: 1.12rem;
}
.hero-v9-location {
    right: 34px;
    bottom: 28px;
    gap: 6px;
}
.hero-v9-location i {
    font-size: .86rem;
}
.hero-v9-location strong, .hero-v9-location span {
    font-size: .70rem;
    line-height: 1.18;
}
@media (max-width: 1500px) {
    .hero-v9-grid {
        grid-template-columns: 310px minmax(500px, 1fr);
    }
    .hero-v9-athlete {
        width: min(100%, 728px);
        right: 92px;
    }
    .hero-v9-circle {
        width: 126px;
        right: 94px;
    }
}
@media (max-width: 1180px) {
    .hero-v9-grid {
        grid-template-columns: 1fr;
        gap: 4px;
    }
    .hero-v9-copy { max-width: 520px; }
    .hero-v9-copy h1 { font-size: clamp(3rem, 8vw, 4.2rem); }
    .hero-v9-subtitle { max-width: 100%; font-size: .9rem; }
    .hero-v9-athlete { width: min(100%, 660px); right: 16px; }
    .hero-v9-circle { right: 18px; top: 24px; width: 112px; }
    .hero-v9-socials { right: 6px; }
}
@media (max-width: 860px) {
    .site-header-premium .container, .hero-v9 .container { width: min(calc(100% - 18px),100%); }
    .brand-premium img { width: 146px; }
    .hero-v9-copy h1 { font-size: clamp(2.7rem, 11vw, 4rem); }
    .hero-v9-disciplines span { font-size: .72rem; }
    .hero-v9-button { width: 100%; min-width: 0; }
    .hero-v9-athlete { width: min(100%, 490px); right: 4px; }
    .hero-v9-circle { width: 96px; right: 6px; top: 8px; }
    .hero-v9-socials { display:none; }
    .hero-v9-location { left: 10px; right: 10px; bottom: 10px; }
    .hero-v9-location strong, .hero-v9-location span { font-size: .8rem; }
}


/* --- HERO V15 fidelización fuerte --- */
.site-header-premium .container, .hero-v9 .container {
    width: min(calc(100% - 22px), 1820px);
}
.nav-wrap-premium {
    grid-template-columns: 158px 1fr 150px;
    min-height: 68px;
    gap: 8px;
}
.brand-premium { justify-self: start; }
.brand-premium img { width: 128px; }
.nav-links-premium { gap: 18px; }
.nav-links-premium a {
    font-size: .64rem;
    letter-spacing: .016em;
}
.btn-login-premium {
    min-height: 34px;
    padding-inline: 14px;
    font-size: .66rem;
    border-radius: 4px;
}
.hero-v9 {
    min-height: 670px;
    padding-top: 68px;
}
.hero-v9-grid {
    min-height: 592px;
    grid-template-columns: 290px minmax(880px, 1fr);
    gap: 0;
    align-items: start;
}
.hero-v9-copy {
    max-width: 282px;
    padding-top: 12px;
}
.hero-v9-copy h1 {
    font-size: clamp(3rem, 3.55vw, 4.2rem);
    line-height: .87;
    letter-spacing: -.016em;
}
.hero-v9-subtitle {
    max-width: 176px;
    margin: 14px 0 16px;
    font-size: .70rem;
    line-height: 1.28;
}
.hero-v9-disciplines {
    gap: 8px 14px;
    margin-bottom: 14px;
}
.hero-v9-disciplines span { font-size: .50rem; }
.hero-v9-actions { gap: 14px; }
.hero-v9-button {
    min-width: 118px;
    min-height: 33px;
    font-size: .62rem;
}
.hero-v9-plan-link { font-size: .73rem; }
.hero-v9-visual { min-height: 592px; }
.hero-v9-visual::before {
    width: 18%;
    background: linear-gradient(90deg, #000 0%, rgba(0,0,0,.82) 20%, rgba(0,0,0,.30) 45%, rgba(0,0,0,0) 100%);
}
.hero-v9-athlete {
    right: 206px;
    bottom: -2px;
    width: min(100%, 698px);
    filter: saturate(1.01) contrast(1.01);
}
.hero-v9-circle {
    top: 72px;
    right: 188px;
    width: 124px;
}
.hero-v9-socials {
    right: 18px;
    top: 56%;
    gap: 8px;
}
.hero-v9-socials a {
    width: 22px;
    height: 22px;
    font-size: 1rem;
}
.hero-v9-location {
    right: 88px;
    bottom: 22px;
    gap: 6px;
}
.hero-v9-location i { font-size: .74rem; }
.hero-v9-location strong, .hero-v9-location span {
    font-size: .60rem;
    line-height: 1.18;
}
@media (max-width: 1500px) {
    .site-header-premium .container, .hero-v9 .container { width: min(calc(100% - 20px), 1480px); }
    .hero-v9-grid { grid-template-columns: 280px minmax(700px, 1fr); }
    .hero-v9-athlete { width: min(100%, 650px); right: 110px; }
    .hero-v9-circle { width: 116px; right: 118px; }
    .hero-v9-location { right: 42px; }
}
@media (max-width: 1180px) {
    .hero-v9-grid { grid-template-columns: 1fr; gap: 6px; }
    .hero-v9-copy { max-width: 520px; }
    .hero-v9-copy h1 { font-size: clamp(3rem, 8vw, 4.2rem); }
    .hero-v9-subtitle { max-width: 100%; font-size: .9rem; }
    .hero-v9-disciplines span { font-size: .72rem; }
    .hero-v9-button { min-width: 0; width: 100%; min-height: 44px; font-size: .82rem; }
    .hero-v9-plan-link { font-size: .98rem; }
    .hero-v9-athlete { width: min(100%, 620px); right: 18px; }
    .hero-v9-circle { right: 16px; top: 18px; width: 110px; }
    .hero-v9-socials { right: 6px; }
    .hero-v9-location { right: 18px; bottom: 14px; }
    .hero-v9-location strong, .hero-v9-location span { font-size: .78rem; }
}
@media (max-width: 860px) {
    .site-header-premium .container, .hero-v9 .container { width: min(calc(100% - 16px),100%); }
    .nav-wrap-premium { grid-template-columns: 1fr auto; }
    .brand-premium img { width: 144px; }
    .hero-v9-copy h1 { font-size: clamp(2.7rem, 11vw, 4rem); }
    .hero-v9-subtitle { font-size: .88rem; }
    .hero-v9-disciplines span { font-size: .72rem; }
    .hero-v9-athlete { width: min(100%, 490px); right: 2px; }
    .hero-v9-circle { width: 96px; right: 2px; top: 10px; }
    .hero-v9-socials { display:none; }
    .hero-v9-location { left: 10px; right: 10px; bottom: 10px; }
    .hero-v9-location strong, .hero-v9-location span { font-size: .8rem; }
}


/* --- HERO V16 centrado general --- */
.site-header-premium .container, .hero-v9 .container {
    width: min(calc(100% - 44px), 1400px);
    margin-inline: auto;
}
.nav-wrap-premium {
    grid-template-columns: 172px 1fr 164px;
    min-height: 70px;
    gap: 12px;
}
.brand-premium img {
    width: 136px;
}
.nav-links-premium {
    gap: 18px;
    justify-self: center;
}
.nav-links-premium a {
    font-size: .68rem;
    letter-spacing: .018em;
}
.btn-login-premium {
    min-height: 38px;
    padding-inline: 15px;
    font-size: .70rem;
}
.hero-v9 {
    min-height: 690px;
    padding-top: 70px;
}
.hero-v9-grid {
    min-height: 610px;
    grid-template-columns: 300px minmax(720px, 1fr);
    gap: 0;
    align-items: start;
}
.hero-v9-copy {
    max-width: 292px;
    padding-top: 18px;
}
.hero-v9-copy h1 {
    font-size: clamp(3.18rem, 3.95vw, 4.35rem);
    line-height: .87;
    letter-spacing: -.015em;
}
.hero-v9-subtitle {
    max-width: 184px;
    margin: 14px 0 16px;
    font-size: .74rem;
    line-height: 1.30;
}
.hero-v9-disciplines {
    gap: 9px 14px;
    margin-bottom: 15px;
}
.hero-v9-disciplines span {
    font-size: .54rem;
}
.hero-v9-button {
    min-width: 120px;
    min-height: 35px;
    font-size: .64rem;
}
.hero-v9-plan-link {
    font-size: .76rem;
}
.hero-v9-visual {
    min-height: 610px;
}
.hero-v9-visual::before {
    width: 22%;
    background: linear-gradient(90deg, #000 0%, rgba(0,0,0,.84) 22%, rgba(0,0,0,.38) 48%, rgba(0,0,0,0) 100%);
}
.hero-v9-athlete {
    right: 108px;
    bottom: -2px;
    width: min(100%, 676px);
}
.hero-v9-circle {
    top: 78px;
    right: 112px;
    width: 120px;
}
.hero-v9-socials {
    right: 12px;
    top: 57%;
    gap: 8px;
}
.hero-v9-socials a {
    width: 22px;
    height: 22px;
    font-size: 1rem;
}
.hero-v9-location {
    right: 44px;
    bottom: 22px;
    gap: 6px;
}
.hero-v9-location strong, .hero-v9-location span {
    font-size: .62rem;
    line-height: 1.18;
}
@media (max-width: 1500px) {
    .site-header-premium .container, .hero-v9 .container { width: min(calc(100% - 32px), 1320px); }
    .hero-v9-grid { grid-template-columns: 292px minmax(650px, 1fr); }
    .hero-v9-athlete { width: min(100%, 630px); right: 74px; }
    .hero-v9-circle { width: 112px; right: 82px; }
    .hero-v9-location { right: 30px; }
}
@media (max-width: 1180px) {
    .hero-v9-grid { grid-template-columns: 1fr; gap: 8px; }
    .hero-v9-copy { max-width: 520px; }
    .hero-v9-copy h1 { font-size: clamp(3rem, 8vw, 4.2rem); }
    .hero-v9-subtitle { max-width: 100%; font-size: .9rem; }
    .hero-v9-disciplines span { font-size: .72rem; }
    .hero-v9-button { min-width: 0; width: 100%; min-height: 44px; font-size: .82rem; }
    .hero-v9-plan-link { font-size: .98rem; }
    .hero-v9-athlete { width: min(100%, 620px); right: 18px; }
    .hero-v9-circle { right: 16px; top: 18px; width: 110px; }
    .hero-v9-socials { right: 6px; }
    .hero-v9-location { right: 18px; bottom: 14px; }
    .hero-v9-location strong, .hero-v9-location span { font-size: .78rem; }
}
@media (max-width: 860px) {
    .site-header-premium .container, .hero-v9 .container { width: min(calc(100% - 16px),100%); }
    .nav-wrap-premium { grid-template-columns: 1fr auto; }
    .brand-premium img { width: 144px; }
    .hero-v9-copy h1 { font-size: clamp(2.7rem, 11vw, 4rem); }
    .hero-v9-subtitle { font-size: .88rem; }
    .hero-v9-disciplines span { font-size: .72rem; }
    .hero-v9-athlete { width: min(100%, 490px); right: 2px; }
    .hero-v9-circle { width: 96px; right: 2px; top: 10px; }
    .hero-v9-socials { display:none; }
    .hero-v9-location { left: 10px; right: 10px; bottom: 10px; }
    .hero-v9-location strong, .hero-v9-location span { font-size: .8rem; }
}


/* --- HERO V17 fullscreen refined --- */
.site-header-premium .container, .hero-v9 .container {
    width: min(calc(100% - 26px), 1700px);
    margin-inline: auto;
}
.nav-wrap-premium {
    grid-template-columns: 205px 1fr 188px;
    min-height: 74px;
    gap: 14px;
}
.brand-premium { justify-self: start; }
.brand-premium img {
    width: 150px;
}
.nav-links-premium {
    gap: 24px;
    justify-self: center;
}
.nav-links-premium a {
    font-size: .75rem;
    letter-spacing: .022em;
}
.btn-login-premium {
    min-height: 42px;
    padding-inline: 18px;
    font-size: .76rem;
    border-radius: 5px;
}
.hero-v9 {
    min-height: 742px;
    padding-top: 74px;
}
.hero-v9-grid {
    min-height: 665px;
    grid-template-columns: 355px minmax(860px, 1fr);
    gap: 0;
    align-items: start;
}
.hero-v9-copy {
    max-width: 340px;
    padding-top: 14px;
}
.hero-v9-copy h1 {
    font-size: clamp(3.85rem, 4.6vw, 5.2rem);
    line-height: .865;
    letter-spacing: -.016em;
}
.hero-v9-subtitle {
    max-width: 210px;
    margin: 18px 0 18px;
    font-size: .92rem;
    line-height: 1.30;
}
.hero-v9-disciplines {
    gap: 10px 18px;
    margin-bottom: 18px;
}
.hero-v9-disciplines span {
    font-size: .67rem;
}
.hero-v9-actions { gap: 18px; }
.hero-v9-button {
    min-width: 170px;
    min-height: 45px;
    font-size: .82rem;
}
.hero-v9-plan-link {
    font-size: .96rem;
}
.hero-v9-visual {
    min-height: 665px;
}
.hero-v9-visual::before {
    width: 24%;
    background: linear-gradient(90deg, #000 0%, rgba(0,0,0,.84) 20%, rgba(0,0,0,.42) 48%, rgba(0,0,0,0) 100%);
}
.hero-v9-athlete {
    right: 44px;
    bottom: -2px;
    width: min(100%, 850px);
}
.hero-v9-circle {
    top: 96px;
    right: 132px;
    width: 142px;
}
.hero-v9-socials {
    right: 18px;
    top: 57%;
    gap: 10px;
}
.hero-v9-socials a {
    width: 26px;
    height: 26px;
    font-size: 1.12rem;
}
.hero-v9-location {
    right: 32px;
    bottom: 24px;
    gap: 7px;
}
.hero-v9-location i { font-size: .86rem; }
.hero-v9-location strong, .hero-v9-location span {
    font-size: .72rem;
    line-height: 1.20;
}
@media (max-width: 1700px) {
    .site-header-premium .container, .hero-v9 .container { width: min(calc(100% - 22px), 1540px); }
    .hero-v9-grid { grid-template-columns: 345px minmax(760px, 1fr); }
    .hero-v9-athlete { width: min(100%, 790px); right: 26px; }
    .hero-v9-circle { width: 134px; right: 106px; }
}
@media (max-width: 1440px) {
    .site-header-premium .container, .hero-v9 .container { width: min(calc(100% - 20px), 1380px); }
    .nav-wrap-premium { grid-template-columns: 190px 1fr 178px; }
    .brand-premium img { width: 142px; }
    .nav-links-premium a { font-size: .71rem; }
    .hero-v9-grid { grid-template-columns: 330px minmax(640px, 1fr); min-height: 628px; }
    .hero-v9-copy { max-width: 320px; }
    .hero-v9-copy h1 { font-size: clamp(3.45rem, 4.55vw, 4.7rem); }
    .hero-v9-subtitle { font-size: .86rem; }
    .hero-v9-button { min-width: 156px; }
    .hero-v9-athlete { width: min(100%, 730px); right: 18px; }
    .hero-v9-circle { width: 126px; right: 80px; top: 86px; }
    .hero-v9-socials { right: 10px; }
    .hero-v9-location { right: 18px; }
}
@media (max-width: 1180px) {
    .hero-v9-grid { grid-template-columns: 1fr; gap: 10px; }
    .hero-v9-copy { max-width: 560px; }
    .hero-v9-copy h1 { font-size: clamp(3rem, 8vw, 4.35rem); }
    .hero-v9-subtitle { max-width: 100%; font-size: .94rem; }
    .hero-v9-disciplines span { font-size: .74rem; }
    .hero-v9-button { min-width: 0; width: 100%; min-height: 46px; font-size: .84rem; }
    .hero-v9-plan-link { font-size: 1rem; }
    .hero-v9-athlete { width: min(100%, 660px); right: 12px; }
    .hero-v9-circle { right: 16px; top: 18px; width: 112px; }
    .hero-v9-socials { right: 6px; }
    .hero-v9-location { right: 16px; bottom: 14px; }
    .hero-v9-location strong, .hero-v9-location span { font-size: .80rem; }
}
@media (max-width: 860px) {
    .site-header-premium .container, .hero-v9 .container { width: min(calc(100% - 16px),100%); }
    .nav-wrap-premium { grid-template-columns: 1fr auto; }
    .brand-premium img { width: 144px; }
    .hero-v9-copy h1 { font-size: clamp(2.7rem, 11vw, 4rem); }
    .hero-v9-subtitle { font-size: .88rem; }
    .hero-v9-disciplines span { font-size: .72rem; }
    .hero-v9-athlete { width: min(100%, 500px); right: 0; }
    .hero-v9-circle { width: 98px; right: 2px; top: 10px; }
    .hero-v9-socials { display:none; }
    .hero-v9-location { left: 10px; right: 10px; bottom: 10px; }
    .hero-v9-location strong, .hero-v9-location span { font-size: .8rem; }
}


/* --- HERO V18 tighter fullscreen --- */
.site-header-premium .container, .hero-v9 .container {
    width: min(calc(100% - 24px), 1480px);
    margin-inline: auto;
}
.nav-wrap-premium {
    grid-template-columns: 195px 1fr 176px;
    min-height: 72px;
    gap: 12px;
}
.brand-premium img { width: 145px; }
.nav-links-premium { gap: 20px; }
.nav-links-premium a {
    font-size: .72rem;
    letter-spacing: .02em;
}
.btn-login-premium {
    min-height: 40px;
    padding-inline: 16px;
    font-size: .73rem;
}
.hero-v9 {
    min-height: 720px;
    padding-top: 72px;
}
.hero-v9-grid {
    min-height: 646px;
    grid-template-columns: 365px minmax(640px, 1fr);
    gap: 0;
}
.hero-v9-copy {
    max-width: 348px;
    padding-top: 16px;
}
.hero-v9-copy h1 {
    font-size: clamp(3.65rem, 4.2vw, 4.85rem);
    line-height: .865;
}
.hero-v9-subtitle {
    max-width: 205px;
    margin: 16px 0 17px;
    font-size: .86rem;
}
.hero-v9-disciplines { gap: 10px 16px; margin-bottom: 17px; }
.hero-v9-disciplines span { font-size: .62rem; }
.hero-v9-button { min-width: 154px; min-height: 42px; font-size: .78rem; }
.hero-v9-plan-link { font-size: .9rem; }
.hero-v9-visual { min-height: 646px; }
.hero-v9-visual::before {
    width: 19%;
    background: linear-gradient(90deg, #000 0%, rgba(0,0,0,.82) 18%, rgba(0,0,0,.32) 46%, rgba(0,0,0,0) 100%);
}
.hero-v9-athlete {
    right: 118px;
    bottom: -1px;
    width: min(100%, 770px);
}
.hero-v9-circle {
    top: 88px;
    right: 128px;
    width: 128px;
}
.hero-v9-socials {
    right: 12px;
    top: 58%;
    gap: 9px;
}
.hero-v9-socials a { width: 24px; height: 24px; font-size: 1.06rem; }
.hero-v9-location {
    right: 20px;
    bottom: 22px;
    gap: 6px;
}
.hero-v9-location i { font-size: .8rem; }
.hero-v9-location strong, .hero-v9-location span { font-size: .68rem; line-height: 1.18; }
@media (max-width: 1600px) {
    .site-header-premium .container, .hero-v9 .container { width: min(calc(100% - 20px), 1380px); }
    .nav-wrap-premium { grid-template-columns: 186px 1fr 170px; }
    .brand-premium img { width: 140px; }
    .nav-links-premium { gap: 18px; }
    .hero-v9-grid { grid-template-columns: 350px minmax(600px, 1fr); min-height: 620px; }
    .hero-v9-copy { max-width: 334px; }
    .hero-v9-copy h1 { font-size: clamp(3.45rem, 4.0vw, 4.55rem); }
    .hero-v9-athlete { width: min(100%, 710px); right: 92px; }
    .hero-v9-circle { width: 122px; right: 104px; top: 82px; }
}
@media (max-width: 1366px) {
    .site-header-premium .container, .hero-v9 .container { width: min(calc(100% - 18px), 1260px); }
    .hero-v9-grid { grid-template-columns: 320px minmax(540px, 1fr); min-height: 590px; }
    .hero-v9-copy { max-width: 304px; }
    .hero-v9-copy h1 { font-size: clamp(3.15rem, 3.8vw, 4.2rem); }
    .hero-v9-subtitle { font-size: .8rem; }
    .hero-v9-disciplines span { font-size: .58rem; }
    .hero-v9-button { min-width: 146px; min-height: 40px; font-size: .74rem; }
    .hero-v9-athlete { width: min(100%, 650px); right: 72px; }
    .hero-v9-circle { width: 114px; right: 86px; top: 76px; }
    .hero-v9-socials { right: 8px; }
    .hero-v9-location { right: 14px; bottom: 18px; }
    .hero-v9-location strong, .hero-v9-location span { font-size: .63rem; }
}
@media (max-width: 1180px) {
    .hero-v9-grid { grid-template-columns: 1fr; gap: 10px; }
    .hero-v9-copy { max-width: 560px; }
    .hero-v9-copy h1 { font-size: clamp(3rem, 8vw, 4.35rem); }
    .hero-v9-subtitle { max-width: 100%; font-size: .94rem; }
    .hero-v9-disciplines span { font-size: .74rem; }
    .hero-v9-button { min-width: 0; width: 100%; min-height: 46px; font-size: .84rem; }
    .hero-v9-plan-link { font-size: 1rem; }
    .hero-v9-athlete { width: min(100%, 660px); right: 12px; }
    .hero-v9-circle { right: 16px; top: 18px; width: 112px; }
    .hero-v9-socials { right: 6px; }
    .hero-v9-location { right: 16px; bottom: 14px; }
    .hero-v9-location strong, .hero-v9-location span { font-size: .80rem; }
}
@media (max-width: 860px) {
    .site-header-premium .container, .hero-v9 .container { width: min(calc(100% - 16px),100%); }
    .nav-wrap-premium { grid-template-columns: 1fr auto; }
    .brand-premium img { width: 144px; }
    .hero-v9-copy h1 { font-size: clamp(2.7rem, 11vw, 4rem); }
    .hero-v9-subtitle { font-size: .88rem; }
    .hero-v9-disciplines span { font-size: .72rem; }
    .hero-v9-athlete { width: min(100%, 500px); right: 0; }
    .hero-v9-circle { width: 98px; right: 2px; top: 10px; }
    .hero-v9-socials { display:none; }
    .hero-v9-location { left: 10px; right: 10px; bottom: 10px; }
    .hero-v9-location strong, .hero-v9-location span { font-size: .8rem; }
}


/* --- HERO V19 propuesta closer --- */
.site-header-premium .container, .hero-v9 .container {
    width: min(calc(100% - 32px), 1640px);
    margin-inline: auto;
}
.nav-wrap-premium {
    grid-template-columns: 240px 1fr 210px;
    min-height: 86px;
    gap: 16px;
}
.brand-premium img { width: 186px; }
.nav-links-premium { gap: 24px; }
.nav-links-premium a {
    font-size: .80rem;
    letter-spacing: .025em;
}
.btn-login-premium {
    min-height: 50px;
    padding-inline: 22px;
    font-size: .82rem;
    border-radius: 6px;
}
.hero-v9 {
    min-height: 820px;
    padding-top: 86px;
}
.hero-v9-grid {
    min-height: 744px;
    grid-template-columns: 430px minmax(760px, 1fr);
    gap: 0;
    align-items: center;
}
.hero-v9-copy {
    max-width: 408px;
    padding-top: 12px;
}
.hero-v9-copy h1 {
    font-size: clamp(4.8rem, 4.9vw, 6.2rem);
    line-height: .83;
    letter-spacing: -.02em;
}
.hero-v9-subtitle {
    max-width: 248px;
    margin: 20px 0 22px;
    font-size: 1.03rem;
    line-height: 1.18;
}
.hero-v9-disciplines {
    gap: 12px 20px;
    margin-bottom: 24px;
}
.hero-v9-disciplines span {
    font-size: .69rem;
    gap: 7px;
}
.hero-v9-button {
    min-width: 176px;
    min-height: 50px;
    font-size: .83rem;
}
.hero-v9-plan-link { font-size: .98rem; }
.hero-v9-visual { min-height: 744px; }
.hero-v9-visual::before {
    width: 13%;
    background: linear-gradient(90deg, #000 0%, rgba(0,0,0,.74) 18%, rgba(0,0,0,.18) 54%, rgba(0,0,0,0) 100%);
}
.hero-v9-athlete {
    right: 8px;
    bottom: 0;
    width: min(100%, 980px);
}
.hero-v9-circle {
    top: 92px;
    right: 126px;
    width: 154px;
}
.hero-v9-socials {
    right: 26px;
    top: 60%;
    gap: 12px;
}
.hero-v9-socials a {
    width: 28px;
    height: 28px;
    font-size: 1.18rem;
}
.hero-v9-location {
    right: 34px;
    bottom: 24px;
    gap: 8px;
}
.hero-v9-location i { font-size: .9rem; }
.hero-v9-location strong, .hero-v9-location span {
    font-size: .73rem;
    line-height: 1.18;
}
@media (max-width: 1750px) {
    .site-header-premium .container, .hero-v9 .container { width: min(calc(100% - 28px), 1540px); }
    .nav-wrap-premium { grid-template-columns: 224px 1fr 198px; }
    .brand-premium img { width: 176px; }
    .nav-links-premium { gap: 22px; }
    .hero-v9-grid { grid-template-columns: 405px minmax(700px, 1fr); min-height: 704px; }
    .hero-v9-copy { max-width: 386px; }
    .hero-v9-copy h1 { font-size: clamp(4.45rem, 4.7vw, 5.7rem); }
    .hero-v9-athlete { width: min(100%, 900px); right: 2px; }
    .hero-v9-circle { width: 146px; right: 112px; top: 84px; }
}
@media (max-width: 1500px) {
    .site-header-premium .container, .hero-v9 .container { width: min(calc(100% - 24px), 1390px); }
    .nav-wrap-premium { grid-template-columns: 205px 1fr 186px; min-height: 80px; }
    .brand-premium img { width: 164px; }
    .nav-links-premium { gap: 18px; }
    .nav-links-premium a { font-size: .76rem; }
    .btn-login-premium { min-height: 46px; font-size: .78rem; }
    .hero-v9 { min-height: 770px; padding-top: 80px; }
    .hero-v9-grid { grid-template-columns: 370px minmax(620px, 1fr); min-height: 670px; }
    .hero-v9-copy { max-width: 352px; }
    .hero-v9-copy h1 { font-size: clamp(4rem, 4.4vw, 5.05rem); }
    .hero-v9-subtitle { max-width: 220px; font-size: .92rem; margin: 18px 0 20px; }
    .hero-v9-disciplines span { font-size: .63rem; }
    .hero-v9-button { min-width: 160px; min-height: 46px; font-size: .78rem; }
    .hero-v9-plan-link { font-size: .92rem; }
    .hero-v9-athlete { width: min(100%, 800px); right: 6px; }
    .hero-v9-circle { width: 132px; right: 92px; top: 76px; }
    .hero-v9-socials { right: 18px; gap: 10px; }
    .hero-v9-socials a { width: 26px; height: 26px; font-size: 1.08rem; }
    .hero-v9-location { right: 24px; bottom: 20px; }
    .hero-v9-location strong, .hero-v9-location span { font-size: .68rem; }
}
@media (max-width: 1280px) {
    .site-header-premium .container, .hero-v9 .container { width: min(calc(100% - 20px), 1180px); }
    .nav-wrap-premium { grid-template-columns: 180px 1fr 170px; min-height: 74px; }
    .brand-premium img { width: 150px; }
    .hero-v9 { min-height: 700px; padding-top: 74px; }
    .hero-v9-grid { grid-template-columns: 325px minmax(520px, 1fr); min-height: 610px; }
    .hero-v9-copy { max-width: 305px; }
    .hero-v9-copy h1 { font-size: clamp(3.45rem, 4vw, 4.4rem); }
    .hero-v9-subtitle { font-size: .84rem; max-width: 195px; }
    .hero-v9-disciplines { gap: 10px 14px; }
    .hero-v9-disciplines span { font-size: .58rem; }
    .hero-v9-button { min-width: 146px; min-height: 42px; font-size: .74rem; }
    .hero-v9-plan-link { font-size: .86rem; }
    .hero-v9-athlete { width: min(100%, 690px); right: 0; }
    .hero-v9-circle { width: 116px; right: 74px; top: 68px; }
    .hero-v9-socials { right: 10px; top: 58%; }
    .hero-v9-location { right: 18px; bottom: 16px; }
    .hero-v9-location strong, .hero-v9-location span { font-size: .62rem; }
}
@media (max-width: 1080px) {
    .hero-v9-grid { grid-template-columns: 1fr; gap: 10px; min-height: auto; }
    .hero-v9-copy { max-width: 560px; padding-top: 0; }
    .hero-v9-copy h1 { font-size: clamp(3rem, 9vw, 4.4rem); }
    .hero-v9-subtitle { max-width: 100%; font-size: .96rem; }
    .hero-v9-disciplines span { font-size: .75rem; }
    .hero-v9-button { min-width: 0; width: 100%; min-height: 48px; font-size: .86rem; }
    .hero-v9-plan-link { font-size: 1rem; }
    .hero-v9-visual { min-height: 560px; }
    .hero-v9-athlete { width: min(100%, 720px); right: 8px; }
    .hero-v9-circle { width: 114px; right: 14px; top: 18px; }
    .hero-v9-socials { right: 8px; }
    .hero-v9-location { right: 16px; bottom: 14px; }
    .hero-v9-location strong, .hero-v9-location span { font-size: .80rem; }
}
@media (max-width: 860px) {
    .site-header-premium .container, .hero-v9 .container { width: min(calc(100% - 16px), 100%); }
    .nav-wrap-premium { grid-template-columns: 1fr auto; min-height: 70px; }
    .brand-premium img { width: 148px; }
    .hero-v9 { min-height: auto; }
    .hero-v9-copy h1 { font-size: clamp(2.7rem, 11vw, 4rem); }
    .hero-v9-subtitle { font-size: .88rem; }
    .hero-v9-disciplines span { font-size: .72rem; }
    .hero-v9-athlete { width: min(100%, 520px); right: 0; }
    .hero-v9-circle { width: 98px; right: 4px; top: 12px; }
    .hero-v9-socials { display: none; }
    .hero-v9-location { left: 10px; right: 10px; bottom: 10px; }
}


/* --- HERO V20 tighter match to proposal --- */
.site-header-premium .container, .hero-v9 .container {
    width: min(calc(100% - 22px), 1680px);
    margin-inline: auto;
}
.nav-wrap-premium {
    grid-template-columns: 220px 1fr 194px;
    min-height: 78px;
    gap: 14px;
}
.brand-premium img { width: 176px; }
.nav-links-premium { gap: 22px; }
.nav-links-premium a { font-size: .78rem; letter-spacing: .02em; }
.btn-login-premium { min-height: 48px; padding-inline: 24px; font-size: .80rem; }
.hero-v9 {
    min-height: calc(100vh - 18px);
    padding-top: 78px;
}
.hero-v9-grid {
    min-height: calc(100vh - 112px);
    grid-template-columns: 355px minmax(980px, 1fr);
    gap: 0;
    align-items: center;
}
.hero-v9-copy {
    max-width: 338px;
    padding-top: 0;
    margin-left: 4px;
}
.hero-v9-copy h1 {
    font-size: clamp(5.0rem, 5.25vw, 6.35rem);
    line-height: .80;
    letter-spacing: -.028em;
}
.hero-v9-subtitle {
    max-width: 236px;
    margin: 22px 0 24px;
    font-size: 1.02rem;
    line-height: 1.15;
}
.hero-v9-disciplines {
    gap: 14px 24px;
    margin-bottom: 28px;
}
.hero-v9-disciplines span { font-size: .70rem; gap: 8px; }
.hero-v9-actions { gap: 18px; }
.hero-v9-button { min-width: 190px; min-height: 52px; font-size: .84rem; }
.hero-v9-plan-link { font-size: .98rem; }
.hero-v9-visual {
    min-height: calc(100vh - 112px);
    margin-left: -92px;
}
.hero-v9-visual::before {
    width: 11%;
    background: linear-gradient(90deg, #000 0%, rgba(0,0,0,.68) 20%, rgba(0,0,0,.22) 58%, rgba(0,0,0,0) 100%);
}
.hero-v9-athlete {
    right: 84px;
    bottom: -2px;
    width: min(100%, 1050px);
}
.hero-v9-circle {
    top: 118px;
    right: 124px;
    width: 168px;
}
.hero-v9-socials { right: 18px; top: 61%; gap: 15px; }
.hero-v9-socials a { width: 29px; height: 29px; font-size: 1.22rem; }
.hero-v9-location { right: 36px; bottom: 28px; gap: 8px; }
.hero-v9-location strong, .hero-v9-location span { font-size: .74rem; line-height: 1.18; }
@media (max-width: 1720px) {
    .site-header-premium .container, .hero-v9 .container { width: min(calc(100% - 18px), 1600px); }
    .nav-wrap-premium { grid-template-columns: 208px 1fr 186px; }
    .brand-premium img { width: 168px; }
    .hero-v9-grid { grid-template-columns: 340px minmax(900px, 1fr); }
    .hero-v9-copy { max-width: 324px; }
    .hero-v9-copy h1 { font-size: clamp(4.6rem, 5vw, 5.75rem); }
    .hero-v9-visual { margin-left: -70px; }
    .hero-v9-athlete { width: min(100%, 960px); right: 68px; }
    .hero-v9-circle { width: 154px; right: 110px; top: 108px; }
}
@media (max-width: 1500px) {
    .site-header-premium .container, .hero-v9 .container { width: min(calc(100% - 18px), 1420px); }
    .nav-wrap-premium { grid-template-columns: 192px 1fr 180px; min-height: 74px; }
    .brand-premium img { width: 158px; }
    .nav-links-premium { gap: 18px; }
    .nav-links-premium a { font-size: .74rem; }
    .btn-login-premium { min-height: 44px; font-size: .76rem; }
    .hero-v9 { padding-top: 74px; min-height: 780px; }
    .hero-v9-grid { min-height: 678px; grid-template-columns: 320px minmax(760px, 1fr); }
    .hero-v9-copy { max-width: 304px; }
    .hero-v9-copy h1 { font-size: clamp(4.0rem, 4.45vw, 4.95rem); }
    .hero-v9-subtitle { max-width: 214px; font-size: .93rem; }
    .hero-v9-disciplines span { font-size: .64rem; }
    .hero-v9-button { min-width: 164px; min-height: 46px; font-size: .78rem; }
    .hero-v9-plan-link { font-size: .90rem; }
    .hero-v9-visual { min-height: 678px; margin-left: -44px; }
    .hero-v9-athlete { width: min(100%, 835px); right: 44px; }
    .hero-v9-circle { width: 138px; right: 94px; top: 92px; }
    .hero-v9-socials { right: 12px; gap: 11px; }
    .hero-v9-socials a { width: 26px; height: 26px; font-size: 1.08rem; }
    .hero-v9-location { right: 22px; bottom: 20px; }
    .hero-v9-location strong, .hero-v9-location span { font-size: .68rem; }
}
@media (max-width: 1280px) {
    .site-header-premium .container, .hero-v9 .container { width: min(calc(100% - 16px), 1220px); }
    .nav-wrap-premium { grid-template-columns: 178px 1fr 166px; min-height: 70px; }
    .brand-premium img { width: 148px; }
    .hero-v9 { min-height: 708px; padding-top: 70px; }
    .hero-v9-grid { min-height: 612px; grid-template-columns: 286px minmax(590px, 1fr); }
    .hero-v9-copy { max-width: 276px; }
    .hero-v9-copy h1 { font-size: clamp(3.45rem, 4.1vw, 4.25rem); }
    .hero-v9-subtitle { max-width: 190px; font-size: .84rem; margin: 18px 0 20px; }
    .hero-v9-disciplines { gap: 10px 14px; margin-bottom: 22px; }
    .hero-v9-disciplines span { font-size: .58rem; }
    .hero-v9-button { min-width: 146px; min-height: 42px; font-size: .74rem; }
    .hero-v9-plan-link { font-size: .85rem; }
    .hero-v9-visual { min-height: 612px; margin-left: -20px; }
    .hero-v9-athlete { width: min(100%, 710px); right: 26px; }
    .hero-v9-circle { width: 120px; right: 78px; top: 78px; }
    .hero-v9-location { right: 16px; bottom: 15px; }
    .hero-v9-location strong, .hero-v9-location span { font-size: .62rem; }
}
@media (max-width: 1080px) {
    .hero-v9 { min-height: auto; }
    .hero-v9-grid { grid-template-columns: 1fr; gap: 8px; min-height: auto; }
    .hero-v9-copy { max-width: 560px; margin-left: 0; }
    .hero-v9-copy h1 { font-size: clamp(3rem, 9vw, 4.5rem); }
    .hero-v9-subtitle { max-width: 100%; font-size: .96rem; }
    .hero-v9-disciplines span { font-size: .75rem; }
    .hero-v9-button { min-width: 0; width: 100%; min-height: 48px; font-size: .86rem; }
    .hero-v9-plan-link { font-size: 1rem; }
    .hero-v9-visual { min-height: 560px; margin-left: 0; }
    .hero-v9-athlete { width: min(100%, 720px); right: 8px; }
    .hero-v9-circle { width: 114px; right: 14px; top: 18px; }
    .hero-v9-socials { right: 8px; }
    .hero-v9-location { right: 16px; bottom: 14px; }
    .hero-v9-location strong, .hero-v9-location span { font-size: .80rem; }
}


/* --- HERO V21 atleta balanceada y contenido más fiel --- */
/* Mantiene el ancho conseguido en v20, pero baja el zoom de la atleta */
.site-header-premium .container,
.hero-v9 .container {
    width: min(calc(100% - 32px), 1640px);
    margin-inline: auto;
}

.nav-wrap-premium {
    grid-template-columns: 235px 1fr 205px;
    min-height: 84px;
    gap: 16px;
}

.brand-premium img {
    width: 190px;
}

.nav-links-premium {
    gap: 23px;
}

.nav-links-premium a {
    font-size: .79rem;
}

.btn-login-premium {
    min-height: 48px;
    padding-inline: 22px;
    font-size: .80rem;
}

.hero-v9 {
    min-height: calc(100vh - 8px);
    padding-top: 84px;
}

.hero-v9-grid {
    min-height: calc(100vh - 96px);
    grid-template-columns: 405px minmax(880px, 1fr);
    align-items: center;
}

.hero-v9-copy {
    max-width: 390px;
    padding-top: 0;
}

.hero-v9-copy h1 {
    font-size: clamp(4.9rem, 5.15vw, 6.15rem);
    line-height: .82;
    letter-spacing: -.024em;
}

.hero-v9-subtitle {
    max-width: 245px;
    margin: 22px 0 22px;
    font-size: 1rem;
    line-height: 1.18;
}

.hero-v9-disciplines {
    gap: 13px 22px;
    margin-bottom: 24px;
}

.hero-v9-disciplines span {
    font-size: .68rem;
}

.hero-v9-button {
    min-width: 178px;
    min-height: 50px;
    font-size: .82rem;
}

.hero-v9-plan-link {
    font-size: .96rem;
}

.hero-v9-visual {
    min-height: calc(100vh - 96px);
    margin-left: -92px;
}

.hero-v9-visual::before {
    width: 13%;
    background: linear-gradient(90deg, #000 0%, rgba(0,0,0,.72) 18%, rgba(0,0,0,.18) 55%, rgba(0,0,0,0) 100%);
}

/* clave: atleta menos grande, manteniendo presencia y aire */
.hero-v9-athlete {
    width: min(100%, 900px);
    right: 160px;
    bottom: -2px;
}

.hero-v9-circle {
    width: 150px;
    top: 112px;
    right: 160px;
}

.hero-v9-socials {
    right: 26px;
    top: 60%;
    gap: 12px;
}

.hero-v9-socials a {
    width: 28px;
    height: 28px;
    font-size: 1.16rem;
}

.hero-v9-location {
    right: 58px;
    bottom: 28px;
}

.hero-v9-location strong,
.hero-v9-location span {
    font-size: .72rem;
    line-height: 1.18;
}

@media (max-width: 1750px) {
    .site-header-premium .container,
    .hero-v9 .container {
        width: min(calc(100% - 28px), 1540px);
    }

    .nav-wrap-premium {
        grid-template-columns: 220px 1fr 195px;
    }

    .brand-premium img {
        width: 180px;
    }

    .hero-v9-grid {
        grid-template-columns: 388px minmax(760px, 1fr);
    }

    .hero-v9-copy {
        max-width: 370px;
    }

    .hero-v9-copy h1 {
        font-size: clamp(4.55rem, 4.85vw, 5.7rem);
    }

    .hero-v9-visual {
        margin-left: -76px;
    }

    .hero-v9-athlete {
        width: min(100%, 830px);
        right: 122px;
    }

    .hero-v9-circle {
        width: 142px;
        right: 132px;
        top: 102px;
    }
}

@media (max-width: 1500px) {
    .site-header-premium .container,
    .hero-v9 .container {
        width: min(calc(100% - 24px), 1390px);
    }

    .nav-wrap-premium {
        grid-template-columns: 205px 1fr 184px;
        min-height: 80px;
    }

    .brand-premium img {
        width: 166px;
    }

    .hero-v9 {
        min-height: 770px;
        padding-top: 80px;
    }

    .hero-v9-grid {
        min-height: 670px;
        grid-template-columns: 365px minmax(650px, 1fr);
    }

    .hero-v9-copy {
        max-width: 350px;
    }

    .hero-v9-copy h1 {
        font-size: clamp(4rem, 4.4vw, 5.05rem);
    }

    .hero-v9-subtitle {
        max-width: 220px;
        font-size: .92rem;
    }

    .hero-v9-visual {
        min-height: 670px;
        margin-left: -52px;
    }

    .hero-v9-athlete {
        width: min(100%, 750px);
        right: 84px;
    }

    .hero-v9-circle {
        width: 132px;
        right: 96px;
        top: 88px;
    }

    .hero-v9-location {
        right: 34px;
        bottom: 22px;
    }
}

@media (max-width: 1280px) {
    .hero-v9-athlete {
        width: min(100%, 650px);
        right: 48px;
    }

    .hero-v9-circle {
        width: 118px;
        right: 68px;
        top: 74px;
    }
}


/* --- HERO V22: contenido refinado según feedback del usuario --- */
/* Objetivos:
   - atleta un poco más a la derecha y un poco menos dominante
   - logo de cabecera y menú más grandes
   - bloque de texto movido más hacia el centro
   - logo circular más grande y más arriba a la derecha
*/

.site-header-premium .container,
.hero-v9 .container {
    width: min(calc(100% - 20px), 1660px);
}

.nav-wrap-premium {
    grid-template-columns: 235px 1fr 210px;
    min-height: 78px;
    gap: 14px;
}

.brand-premium img {
    width: 182px;
}

.nav-links-premium {
    gap: 28px;
}

.nav-links-premium a {
    font-size: .81rem;
    letter-spacing: .028em;
}

.btn-login-premium {
    min-height: 46px;
    padding-inline: 22px;
    font-size: .82rem;
}

.hero-v9 {
    min-height: 760px;
    padding-top: 78px;
}

.hero-v9-grid {
    min-height: 680px;
    grid-template-columns: 420px minmax(820px, 1fr);
    align-items: start;
}

.hero-v9-copy {
    max-width: 388px;
    padding-top: 16px;
    padding-left: 34px;
}

.hero-v9-copy h1 {
    font-size: clamp(4.15rem, 4.95vw, 5.55rem);
    line-height: .85;
    letter-spacing: -.02em;
}

.hero-v9-subtitle {
    max-width: 240px;
    margin: 19px 0 20px;
    font-size: .96rem;
    line-height: 1.25;
}

.hero-v9-disciplines {
    gap: 11px 18px;
    margin-bottom: 20px;
}

.hero-v9-disciplines span {
    font-size: .69rem;
}

.hero-v9-button {
    min-width: 182px;
    min-height: 48px;
    font-size: .84rem;
}

.hero-v9-plan-link {
    font-size: .98rem;
}

.hero-v9-actions {
    gap: 20px;
}

.hero-v9-visual {
    min-height: 680px;
}

.hero-v9-visual::before {
    width: 20%;
    background: linear-gradient(90deg, #000 0%, rgba(0,0,0,.82) 18%, rgba(0,0,0,.34) 46%, rgba(0,0,0,0) 100%);
}

.hero-v9-athlete {
    right: 10px;
    bottom: -2px;
    width: min(100%, 812px);
}

.hero-v9-circle {
    top: 72px;
    right: 102px;
    width: 168px;
}

.hero-v9-socials {
    right: 18px;
    top: 58%;
    gap: 11px;
}

.hero-v9-socials a {
    width: 28px;
    height: 28px;
    font-size: 1.15rem;
}

.hero-v9-location {
    right: 38px;
    bottom: 24px;
}

.hero-v9-location strong,
.hero-v9-location span {
    font-size: .73rem;
}

@media (max-width: 1700px) {
    .site-header-premium .container,
    .hero-v9 .container { width: min(calc(100% - 18px), 1545px); }
    .nav-wrap-premium { grid-template-columns: 220px 1fr 200px; }
    .brand-premium img { width: 172px; }
    .hero-v9-grid { grid-template-columns: 395px minmax(760px, 1fr); }
    .hero-v9-copy { max-width: 370px; padding-left: 28px; }
    .hero-v9-copy h1 { font-size: clamp(3.95rem, 4.75vw, 5.2rem); }
    .hero-v9-athlete { width: min(100%, 770px); right: 4px; }
    .hero-v9-circle { width: 156px; right: 86px; top: 68px; }
}

@media (max-width: 1440px) {
    .site-header-premium .container,
    .hero-v9 .container { width: min(calc(100% - 18px), 1380px); }
    .nav-wrap-premium { grid-template-columns: 200px 1fr 185px; }
    .brand-premium img { width: 154px; }
    .nav-links-premium { gap: 22px; }
    .nav-links-premium a { font-size: .74rem; }
    .btn-login-premium { min-height: 42px; font-size: .78rem; }
    .hero-v9-grid { grid-template-columns: 350px minmax(620px, 1fr); min-height: 640px; }
    .hero-v9-copy { max-width: 330px; padding-left: 18px; }
    .hero-v9-copy h1 { font-size: clamp(3.5rem, 4.45vw, 4.75rem); }
    .hero-v9-subtitle { font-size: .88rem; max-width: 220px; }
    .hero-v9-button { min-width: 162px; min-height: 45px; }
    .hero-v9-athlete { width: min(100%, 720px); right: 0; }
    .hero-v9-circle { width: 136px; right: 68px; top: 78px; }
    .hero-v9-socials { right: 10px; }
    .hero-v9-location { right: 20px; }
}

@media (max-width: 1180px) {
    .hero-v9-grid { grid-template-columns: 1fr; gap: 10px; }
    .hero-v9-copy { max-width: 560px; padding-left: 0; }
    .hero-v9-copy h1 { font-size: clamp(3rem, 8vw, 4.4rem); }
    .hero-v9-subtitle { max-width: 100%; }
    .hero-v9-athlete { width: min(100%, 650px); right: 8px; }
    .hero-v9-circle { width: 116px; right: 16px; top: 18px; }
}

@media (max-width: 860px) {
    .site-header-premium .container,
    .hero-v9 .container { width: min(calc(100% - 16px), 100%); }
    .nav-wrap-premium { grid-template-columns: 1fr auto; }
    .brand-premium img { width: 144px; }
    .hero-v9-copy h1 { font-size: clamp(2.7rem, 11vw, 4rem); }
    .hero-v9-athlete { width: min(100%, 500px); right: 0; }
    .hero-v9-circle { width: 100px; right: 2px; top: 10px; }
}


/* =========================================================
   V24 - reconstrucción real del menú + franja 1 hero
   - No usa la guía original como imagen sobrepuesta.
   - Usa un recurso limpio de atleta/gimnasio y HTML real encima.
   - No modifica base de datos ni administrador.
   ========================================================= */

.site-header-premium {
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    z-index: 400;
    background: linear-gradient(180deg, rgba(0,0,0,.82), rgba(0,0,0,.30) 74%, rgba(0,0,0,0)) !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
}

.site-header-premium.is-scrolled {
    background: rgba(0,0,0,.92) !important;
    border-bottom: 1px solid rgba(255,255,255,.07) !important;
    box-shadow: 0 12px 32px rgba(0,0,0,.38) !important;
}

.site-header-premium .container,
.hero-v24 .container {
    width: min(calc(100% - 92px), 1780px) !important;
    margin-inline: auto;
}

.nav-wrap-premium {
    min-height: 112px !important;
    display: grid !important;
    grid-template-columns: 355px 1fr 260px !important;
    align-items: center !important;
    gap: 26px !important;
}

.brand-premium {
    justify-self: start !important;
}

.brand-premium img {
    width: 295px !important;
    height: auto !important;
    max-width: 100% !important;
    display: block;
}

.nav-links-premium {
    justify-self: center !important;
    display: flex !important;
    gap: 42px !important;
    align-items: center;
}

.nav-links-premium a {
    font-family: var(--font-display) !important;
    font-size: 1.08rem !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    color: #fff !important;
    letter-spacing: .04em !important;
    text-transform: uppercase !important;
    text-shadow: 0 3px 12px rgba(0,0,0,.58);
}

.nav-links-premium a:hover {
    color: #C21819 !important;
}

.nav-actions-premium {
    justify-self: end !important;
    display: flex !important;
}

.btn-login-premium {
    min-height: 62px !important;
    min-width: 235px !important;
    padding-inline: 24px !important;
    border-radius: 6px !important;
    background: linear-gradient(180deg, #C21819 0%, #A91516 100%) !important;
    color: #0b0b0b !important;
    font-family: var(--font-display) !important;
    font-size: 1.02rem !important;
    font-weight: 900 !important;
    letter-spacing: .035em !important;
    box-shadow: 0 14px 34px rgba(190,255,20,.22) !important;
}

.btn-login-premium i {
    font-size: 1.25rem !important;
    margin-left: 8px;
}

/* Oculta únicamente los heroes antiguos si quedaron en el CSS/DOM */
.hero-v9,
.hero-premium,
.hero-exact-section,
.hero-v8 {
    display: none !important;
}

.hero-v24 {
    position: relative;
    min-height: 930px;
    padding-top: 112px;
    background: #000;
    overflow: hidden;
    isolation: isolate;
}

.hero-v24-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    background:
        linear-gradient(90deg, #000 0%, #000 22%, rgba(0,0,0,.86) 35%, rgba(0,0,0,.20) 55%, rgba(0,0,0,.32) 78%, #000 100%),
        linear-gradient(180deg, rgba(0,0,0,.58) 0%, rgba(0,0,0,0) 19%, rgba(0,0,0,0) 76%, rgba(0,0,0,.82) 100%),
        url('../images/hero-bg-clean-v24.jpg') center top / cover no-repeat;
}

.hero-v24::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 92px;
    background: linear-gradient(180deg, rgba(0,0,0,0), #000 88%);
    z-index: 1;
    pointer-events: none;
}

.hero-v24-layout {
    position: relative;
    z-index: 2;
    min-height: 818px;
    display: grid;
    grid-template-columns: 720px minmax(0, 1fr);
    align-items: center;
}

.hero-v24-copy {
    position: relative;
    z-index: 5;
    max-width: 650px;
    padding-left: 94px;
    padding-top: 18px;
}

.hero-v24-copy h1 {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(5.2rem, 5.7vw, 6.85rem);
    font-weight: 800;
    font-style: italic;
    line-height: .82;
    letter-spacing: -.012em;
    text-transform: uppercase;
    text-shadow: 0 6px 24px rgba(0,0,0,.46);
}

.hero-v24-copy h1 span {
    display: block;
}

.hero-v24-white {
    color: #fff;
}

.hero-v24-accent {
    color: #C21819;
}

.hero-v24-subtitle {
    margin: 31px 0 36px;
    max-width: 395px;
    color: #fff;
    font-size: 1.55rem;
    line-height: 1.25;
    font-weight: 800;
    text-shadow: 0 4px 14px rgba(0,0,0,.64);
}

.hero-v24-disciplines {
    display: flex;
    flex-wrap: wrap;
    gap: 15px 27px;
    max-width: 745px;
    margin-bottom: 44px;
}

.hero-v24-disciplines span {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: #fff;
    font-family: var(--font-display);
    font-size: 1.03rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .028em;
    white-space: nowrap;
    text-shadow: 0 3px 12px rgba(0,0,0,.62);
}

.hero-v24-disciplines i {
    color: #fff;
    font-size: 1.05rem;
}

.hero-v24-actions {
    display: flex;
    align-items: center;
    gap: 43px;
    flex-wrap: wrap;
}

.hero-v24-button {
    min-width: 313px;
    min-height: 78px;
    border-radius: 5px;
    background: linear-gradient(180deg, #C21819 0%, #A91516 100%) !important;
    color: #0a0a0a !important;
    font-family: var(--font-display);
    font-size: 1.35rem;
    font-weight: 900;
    letter-spacing: .035em;
    box-shadow: 0 24px 55px rgba(184,255,0,.20);
}

.hero-v24-plan-link {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    color: #fff;
    font-family: var(--font-display);
    font-size: 1.55rem;
    font-weight: 900;
    letter-spacing: .035em;
    text-transform: uppercase;
    text-shadow: 0 4px 14px rgba(0,0,0,.65);
}

.hero-v24-plan-link:hover {
    color: #C21819;
}

.hero-v24-plan-link i {
    font-size: 1.35rem;
}

.hero-v24-right {
    position: relative;
    min-height: 818px;
    z-index: 3;
}

.hero-v24-circle {
    position: absolute;
    top: 42px;
    right: 116px;
    width: 215px;
    height: auto;
    z-index: 5;
    filter: drop-shadow(0 18px 34px rgba(0,0,0,.50));
}

.hero-v24-socials {
    position: absolute;
    top: 372px;
    right: 22px;
    z-index: 5;
    display: flex;
    flex-direction: column;
    gap: 27px;
}

.hero-v24-socials a {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    color: #fff;
    font-size: 2.04rem;
    text-shadow: 0 5px 16px rgba(0,0,0,.62);
}

.hero-v24-socials a:hover {
    color: #C21819;
}

.hero-v24-location {
    position: absolute;
    right: 52px;
    bottom: 46px;
    display: flex;
    align-items: flex-start;
    gap: 17px;
    color: #fff;
    z-index: 5;
    text-shadow: 0 5px 16px rgba(0,0,0,.74);
}

.hero-v24-location i {
    font-size: 2.15rem;
    margin-top: 5px;
}

.hero-v24-location strong,
.hero-v24-location span {
    display: block;
    color: #fff;
    font-size: 1.38rem;
    font-weight: 700;
    line-height: 1.34;
}

.stats-strip {
    position: relative;
    z-index: 4;
    margin-top: 0;
}

/* Ajuste para pantallas de 1920x1080 a escala 100% */
@media (min-width: 1800px) {
    .hero-v24 {
        min-height: 930px;
    }

    .hero-v24-layout,
    .hero-v24-right {
        min-height: 818px;
    }
}

/* Desktop medio */
@media (max-width: 1600px) {
    .site-header-premium .container,
    .hero-v24 .container {
        width: min(calc(100% - 64px), 1510px) !important;
    }

    .nav-wrap-premium {
        grid-template-columns: 270px 1fr 225px !important;
        min-height: 94px !important;
    }

    .brand-premium img {
        width: 235px !important;
    }

    .nav-links-premium {
        gap: 28px !important;
    }

    .nav-links-premium a {
        font-size: .90rem !important;
    }

    .btn-login-premium {
        min-height: 52px !important;
        min-width: 205px !important;
        font-size: .88rem !important;
    }

    .hero-v24 {
        min-height: 790px;
        padding-top: 94px;
    }

    .hero-v24-layout {
        min-height: 696px;
        grid-template-columns: 590px minmax(0, 1fr);
    }

    .hero-v24-copy {
        padding-left: 60px;
        max-width: 540px;
    }

    .hero-v24-copy h1 {
        font-size: clamp(4.25rem, 5.1vw, 5.35rem);
    }

    .hero-v24-subtitle {
        font-size: 1.18rem;
        margin: 24px 0 26px;
    }

    .hero-v24-disciplines {
        gap: 12px 21px;
        margin-bottom: 32px;
    }

    .hero-v24-disciplines span {
        font-size: .82rem;
    }

    .hero-v24-button {
        min-width: 226px;
        min-height: 58px;
        font-size: 1.02rem;
    }

    .hero-v24-plan-link {
        font-size: 1.16rem;
    }

    .hero-v24-right {
        min-height: 696px;
    }

    .hero-v24-circle {
        width: 162px;
        top: 56px;
        right: 94px;
    }

    .hero-v24-socials {
        top: 340px;
        right: 8px;
        gap: 16px;
    }

    .hero-v24-socials a {
        font-size: 1.45rem;
    }

    .hero-v24-location {
        right: 30px;
        bottom: 34px;
    }

    .hero-v24-location i {
        font-size: 1.35rem;
    }

    .hero-v24-location strong,
    .hero-v24-location span {
        font-size: .86rem;
    }
}

/* Tablet/móvil */
@media (max-width: 1080px) {
    .site-header-premium {
        background: rgba(0,0,0,.86) !important;
    }

    .nav-wrap-premium {
        display: flex !important;
        min-height: 78px !important;
        justify-content: space-between !important;
    }

    .brand-premium img {
        width: 170px !important;
    }

    .nav-links-premium,
    .nav-actions-premium {
        display: none !important;
    }

    .mobile-toggle-premium {
        display: block !important;
    }

    .hero-v24 {
        min-height: auto;
        padding-top: 78px;
    }

    .hero-v24-layout {
        grid-template-columns: 1fr;
        min-height: auto;
        padding: 42px 0 0;
    }

    .hero-v24-copy {
        padding-left: 0;
        max-width: 620px;
    }

    .hero-v24-copy h1 {
        font-size: clamp(3.25rem, 12vw, 5.1rem);
    }

    .hero-v24-subtitle {
        max-width: 100%;
        font-size: 1rem;
    }

    .hero-v24-disciplines span {
        font-size: .82rem;
    }

    .hero-v24-actions {
        gap: 20px;
    }

    .hero-v24-button {
        min-width: 0;
        width: 100%;
        min-height: 54px;
        font-size: 1rem;
    }

    .hero-v24-right {
        min-height: 520px;
    }

    .hero-v24-bg {
        background-position: center bottom;
    }

    .hero-v24-circle {
        width: 120px;
        top: 26px;
        right: 8px;
    }

    .hero-v24-socials {
        display: none;
    }

    .hero-v24-location {
        left: 14px;
        right: 14px;
        bottom: 16px;
        background: linear-gradient(90deg, rgba(0,0,0,.70), rgba(0,0,0,.12));
        border-radius: 14px;
        padding: 12px 14px;
    }

    .hero-v24-location strong,
    .hero-v24-location span {
        font-size: .90rem;
    }
}


/* === Tipografía de marca GYMCONTROL ===
   Roboto Condensed: titulares, navegación, botones, cifras y textos cortos destacados.
   Roboto: contenido de lectura, formularios, tablas y descripciones largas. */
body,
p,
li,
small,
input,
select,
textarea,
table,
td,
.contact-info,
.contact-info a,
.hero-copy-subtitle,
.hero-v9-subtitle,
.hero-v24-subtitle,
.split-heading p,
.schedule-intro p,
.class-content p,
.coach-content p,
.footer-copy,
.help-text {
    font-family: var(--font-body) !important;
}

h1,
h2,
h3,
h4,
.brand,
.brand-mark,
.brand-text,
.eyebrow,
.nav-links a,
.mobile-menu a,
.btn,
.card-link,
.price-amount,
.price-badge,
.stat-card strong,
.stat-card p,
.floating-badge strong,
.floating-badge span,
.schedule-tag,
.schedule-line strong,
.coach-content span,
.gallery-card figcaption,
label,
.hero-tags span,
.hero-disciplines span,
.hero-link-plans,
.hero-v9-disciplines span,
.hero-v9-plan-link,
.hero-v24-disciplines span,
.hero-v24-plan-link {
    font-family: var(--font-display) !important;
}


/* =========================================================
   V25 - Responsive premium móvil/tablet
   Objetivo: que la landing se vea limpia y usable en celulares,
   sin afectar la base de datos ni los módulos existentes.
   ========================================================= */
html,
body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    min-width: 320px;
}

main,
section,
.site-header-premium,
.mobile-menu-premium {
    max-width: 100vw;
}

.container,
.hero-v24-layout,
.split-heading,
.schedule-layout,
.contact-layout,
.footer-grid,
.cards-grid,
.gallery-grid,
.stats-grid,
.form-grid {
    min-width: 0;
}

img,
video,
svg,
iframe {
    max-width: 100%;
}

.btn,
.mobile-menu a,
.nav-links-premium a,
.hero-v24-plan-link {
    -webkit-tap-highlight-color: transparent;
}

.mobile-toggle-premium {
    width: 48px !important;
    height: 48px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(255,255,255,.14) !important;
    background: rgba(255,255,255,.06) !important;
    place-items: center !important;
}

.mobile-toggle-premium span {
    width: 24px !important;
    height: 2px !important;
    margin: 4px auto !important;
    transition: transform .22s ease, opacity .22s ease;
}

.mobile-toggle-premium.active span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.mobile-toggle-premium.active span:nth-child(2) { opacity: 0; }
.mobile-toggle-premium.active span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.mobile-menu-premium {
    font-family: var(--font-display) !important;
}

.mobile-menu-premium a {
    color: #fff !important;
    font-family: var(--font-display) !important;
    font-weight: 900 !important;
    letter-spacing: .045em;
    text-transform: uppercase;
}

@media (max-width: 1180px) {
    .site-header-premium .container,
    .hero-v24 .container,
    .container {
        width: min(calc(100% - 40px), 100%) !important;
    }

    .section {
        padding: 72px 0;
    }

    .split-heading,
    .schedule-layout,
    .contact-layout,
    .footer-grid {
        grid-template-columns: 1fr !important;
    }

    .cards-4,
    .cards-3,
    .gallery-grid,
    .schedule-grid,
    .stats-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .class-content p {
        min-height: 0;
    }
}

@media (max-width: 1080px) {
    .site-header-premium {
        position: fixed !important;
        background: rgba(0,0,0,.90) !important;
        backdrop-filter: blur(16px) !important;
        -webkit-backdrop-filter: blur(16px) !important;
        border-bottom: 1px solid rgba(255,255,255,.08) !important;
    }

    .site-header-premium .container,
    .hero-v24 .container,
    .container {
        width: min(calc(100% - 32px), 100%) !important;
    }

    .nav-wrap-premium {
        min-height: 74px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 12px !important;
    }

    .brand-premium img {
        width: clamp(132px, 32vw, 170px) !important;
    }

    .mobile-menu-premium {
        display: none !important;
        position: fixed !important;
        top: 74px !important;
        left: 16px !important;
        right: 16px !important;
        z-index: 399 !important;
        max-height: calc(100svh - 92px) !important;
        overflow-y: auto !important;
        padding: 10px 18px 18px !important;
        border: 1px solid rgba(194,24,25,.14) !important;
        border-top: 0 !important;
        border-radius: 0 0 22px 22px !important;
        background: linear-gradient(180deg, rgba(5,5,5,.98), rgba(15,15,15,.98)) !important;
        box-shadow: 0 28px 58px rgba(0,0,0,.48) !important;
    }

    .mobile-menu-premium.show {
        display: grid !important;
        gap: 0 !important;
    }

    .mobile-menu-premium a {
        padding: 15px 4px !important;
        border-bottom: 1px solid rgba(255,255,255,.08) !important;
        font-size: .94rem !important;
    }

    .mobile-menu-premium a:last-child {
        margin-top: 10px;
        padding: 15px 16px !important;
        border-bottom: 0 !important;
        border-radius: 12px;
        background: linear-gradient(180deg, #C21819 0%, #A91516 100%);
        color: #0a0a0a !important;
        text-align: center;
    }

    .hero-v24 {
        padding-top: 74px !important;
        min-height: auto !important;
    }

    .hero-v24-bg {
        background:
            linear-gradient(180deg, rgba(0,0,0,.78) 0%, rgba(0,0,0,.58) 28%, rgba(0,0,0,.18) 58%, rgba(0,0,0,.88) 100%),
            linear-gradient(90deg, #000 0%, rgba(0,0,0,.78) 36%, rgba(0,0,0,.20) 70%, #000 100%),
            url('../images/hero-bg-clean-v24.jpg') 68% bottom / cover no-repeat !important;
    }

    .hero-v24-layout {
        display: grid !important;
        grid-template-columns: 1fr !important;
        min-height: auto !important;
        padding: 38px 0 0 !important;
    }

    .hero-v24-copy {
        padding: 0 !important;
        max-width: 720px !important;
    }

    .hero-v24-copy h1 {
        font-size: clamp(3.1rem, 11.7vw, 5.2rem) !important;
        line-height: .84 !important;
        letter-spacing: -.018em !important;
    }

    .hero-v24-subtitle {
        max-width: 520px !important;
        margin: 22px 0 24px !important;
        font-size: clamp(1.04rem, 3.2vw, 1.28rem) !important;
        line-height: 1.28 !important;
        color: rgba(255,255,255,.94) !important;
    }

    .hero-v24-disciplines {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
        max-width: 640px !important;
        margin-bottom: 24px !important;
    }

    .hero-v24-disciplines span {
        min-height: 44px;
        padding: 10px 12px;
        border-radius: 999px;
        background: rgba(255,255,255,.08);
        border: 1px solid rgba(255,255,255,.10);
        font-size: clamp(.70rem, 2.3vw, .86rem) !important;
        white-space: normal !important;
        line-height: 1.12;
    }

    .hero-v24-actions {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        gap: 16px !important;
        align-items: center !important;
        max-width: 640px;
    }

    .hero-v24-button {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 58px !important;
        border-radius: 8px !important;
        font-size: 1.02rem !important;
    }

    .hero-v24-plan-link {
        font-size: 1rem !important;
        gap: 10px !important;
        white-space: nowrap;
    }

    .hero-v24-right {
        min-height: clamp(360px, 58vw, 540px) !important;
        margin-top: 8px;
    }

    .hero-v24-circle {
        width: clamp(86px, 18vw, 126px) !important;
        top: 22px !important;
        right: 0 !important;
    }

    .hero-v24-location {
        left: 0 !important;
        right: 0 !important;
        bottom: 18px !important;
        gap: 12px !important;
        padding: 13px 14px !important;
        border: 1px solid rgba(255,255,255,.12) !important;
        border-radius: 18px !important;
        background: rgba(0,0,0,.58) !important;
        backdrop-filter: blur(10px);
        -webkit-backdrop-filter: blur(10px);
    }

    .hero-v24-location i {
        font-size: 1.2rem !important;
        margin-top: 3px !important;
        color: var(--accent);
    }

    .hero-v24-location strong,
    .hero-v24-location span {
        font-size: .90rem !important;
        line-height: 1.22 !important;
    }
}

@media (max-width: 760px) {
    .section {
        padding: 58px 0;
    }

    .site-header-premium .container,
    .hero-v24 .container,
    .container {
        width: min(calc(100% - 28px), 100%) !important;
    }

    h2 {
        font-size: clamp(2.1rem, 11vw, 3.1rem) !important;
        line-height: .94 !important;
    }

    h3 {
        font-size: clamp(1.55rem, 8vw, 2rem) !important;
    }

    .eyebrow {
        font-size: .74rem !important;
        letter-spacing: .14em !important;
    }

    .split-heading {
        display: grid !important;
        gap: 18px !important;
    }

    .split-heading .btn {
        width: 100%;
    }

    .cards-4,
    .cards-3,
    .gallery-grid,
    .schedule-grid,
    .stats-grid,
    .form-grid,
    .contact-layout,
    .footer-grid {
        grid-template-columns: 1fr !important;
    }

    .stats-strip {
        padding: 18px 0 !important;
    }

    .stat-card {
        justify-content: flex-start !important;
        border-right: 0 !important;
        border-bottom: 1px solid rgba(0,0,0,.08) !important;
        padding: 14px 4px !important;
    }

    .stat-card:last-child {
        border-bottom: 0 !important;
    }

    .stat-icon {
        width: 48px !important;
        height: 48px !important;
        font-size: 1.2rem !important;
    }

    .stat-card strong {
        font-size: 1.72rem !important;
    }

    .stat-card p {
        font-size: .76rem !important;
    }

    .class-image,
    .coach-card img,
    .gallery-card img {
        height: clamp(210px, 58vw, 270px) !important;
    }

    .class-content,
    .coach-content,
    .price-card,
    .schedule-card,
    .contact-form,
    .reference-note,
    .info-stack {
        padding: 20px !important;
    }

    .price-amount {
        font-size: clamp(2.35rem, 14vw, 3rem) !important;
    }

    .price-badge {
        position: static !important;
        width: fit-content;
        margin-bottom: 14px;
    }

    input,
    select,
    textarea {
        min-height: 48px;
        font-size: 16px !important;
    }

    .contact-section {
        padding-bottom: 64px !important;
    }

    .footer-grid {
        padding: 38px 0 20px !important;
        gap: 28px !important;
    }

    .footer-logo {
        max-width: 210px !important;
    }
}

@media (max-width: 540px) {
    .nav-wrap-premium {
        min-height: 66px !important;
    }

    .brand-premium img {
        width: 132px !important;
    }

    .mobile-toggle-premium {
        width: 44px !important;
        height: 44px !important;
    }

    .mobile-menu-premium {
        top: 66px !important;
        left: 12px !important;
        right: 12px !important;
    }

    .hero-v24 {
        padding-top: 66px !important;
    }

    .hero-v24-layout {
        padding-top: 30px !important;
    }

    .hero-v24-bg {
        background:
            linear-gradient(180deg, rgba(0,0,0,.86) 0%, rgba(0,0,0,.70) 36%, rgba(0,0,0,.18) 64%, rgba(0,0,0,.92) 100%),
            linear-gradient(90deg, #000 0%, rgba(0,0,0,.78) 42%, rgba(0,0,0,.10) 74%, #000 100%),
            url('../images/hero-bg-clean-v24.jpg') 69% bottom / cover no-repeat !important;
    }

    .hero-v24-copy h1 {
        font-size: clamp(2.65rem, 13.2vw, 3.75rem) !important;
        line-height: .86 !important;
    }

    .hero-v24-subtitle {
        margin: 18px 0 20px !important;
        font-size: 1rem !important;
    }

    .hero-v24-disciplines {
        grid-template-columns: 1fr 1fr !important;
        gap: 8px !important;
    }

    .hero-v24-disciplines span {
        min-height: 42px;
        padding: 9px 10px !important;
        font-size: .68rem !important;
    }

    .hero-v24-actions {
        grid-template-columns: 1fr !important;
        gap: 13px !important;
    }

    .hero-v24-button {
        min-height: 54px !important;
    }

    .hero-v24-plan-link {
        justify-content: center;
        width: 100%;
        min-height: 44px;
        border: 1px solid rgba(255,255,255,.13);
        border-radius: 10px;
        background: rgba(255,255,255,.04);
    }

    .hero-v24-right {
        min-height: 360px !important;
    }

    .hero-v24-circle {
        width: 82px !important;
        top: 18px !important;
    }

    .hero-v24-location {
        bottom: 12px !important;
        padding: 12px !important;
    }

    .hero-v24-location strong,
    .hero-v24-location span {
        font-size: .82rem !important;
    }

    .hero-v24-location i {
        font-size: 1.02rem !important;
    }

    .contact-card,
    .class-card,
    .coach-card,
    .gallery-card,
    .price-card,
    .schedule-card {
        border-radius: 18px !important;
    }
}

@media (max-width: 380px) {
    .site-header-premium .container,
    .hero-v24 .container,
    .container {
        width: min(calc(100% - 22px), 100%) !important;
    }

    .brand-premium img {
        width: 118px !important;
    }

    .hero-v24-copy h1 {
        font-size: clamp(2.25rem, 12.8vw, 3.15rem) !important;
    }

    .hero-v24-disciplines {
        grid-template-columns: 1fr !important;
    }

    .hero-v24-right {
        min-height: 330px !important;
    }
}

/* =========================================================
   V26 - Logo aprobado + fidelización Franja 2 Estadísticas
   Referencia cliente: barra blanca con icono, número verde,
   etiqueta negra y separadores verticales suaves.
   ========================================================= */
.hero-v24-circle {
    content: url('../images/gymcontrol-logo-stacked.png');
    object-fit: contain !important;
    border-radius: 50%;
}

.stats-strip {
    background: #ffffff !important;
    color: #111111 !important;
    padding: 0 !important;
    min-height: 150px;
    display: flex;
    align-items: center;
    border-top: 1px solid rgba(0,0,0,.07);
    border-bottom: 1px solid rgba(0,0,0,.09);
    box-shadow: 0 3px 18px rgba(0,0,0,.08);
    overflow: hidden;
}

.stats-strip .container,
.stats-grid {
    width: min(calc(100% - 110px), 1480px) !important;
    margin-inline: auto !important;
}

.stats-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 0 !important;
    align-items: stretch !important;
}

.stat-card {
    position: relative;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: clamp(14px, 2vw, 24px) !important;
    min-height: 122px;
    padding: 18px clamp(14px, 2vw, 34px) !important;
    border-right: 0 !important;
    background: transparent !important;
}

.stat-card:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 24px;
    right: 0;
    width: 1px;
    height: calc(100% - 48px);
    background: rgba(0,0,0,.17);
}

.stat-icon {
    width: clamp(50px, 4.6vw, 68px) !important;
    height: clamp(50px, 4.6vw, 68px) !important;
    flex: 0 0 auto;
    display: grid !important;
    place-items: center !important;
    color: #080808 !important;
    font-size: clamp(2.05rem, 3.1vw, 3.05rem) !important;
    line-height: 1 !important;
}

.stat-icon i {
    display: block;
    color: #080808 !important;
    filter: none !important;
}

.stat-card > div:last-child {
    display: grid;
    align-content: center;
    justify-items: start;
    gap: 3px;
    min-width: 0;
}

.stat-card strong {
    display: block !important;
    margin: 0 !important;
    color: #C21819 !important;
    font-family: var(--font-display) !important;
    font-size: clamp(2.65rem, 4.2vw, 4.25rem) !important;
    font-weight: 900 !important;
    font-style: italic !important;
    line-height: .82 !important;
    letter-spacing: -.055em !important;
    text-transform: uppercase !important;
    text-shadow: none !important;
}

.stat-card p {
    display: block !important;
    margin: 0 !important;
    color: #111111 !important;
    font-family: var(--font-display) !important;
    font-size: clamp(.78rem, 1.15vw, 1.03rem) !important;
    font-weight: 900 !important;
    font-style: italic !important;
    line-height: 1.04 !important;
    letter-spacing: -.015em !important;
    text-transform: uppercase !important;
}

@media (max-width: 1180px) {
    .stats-strip {
        min-height: auto;
        padding: 16px 0 !important;
    }

    .stats-strip .container,
    .stats-grid {
        width: min(calc(100% - 40px), 100%) !important;
    }

    .stats-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        border: 1px solid rgba(0,0,0,.08);
        border-radius: 18px;
        overflow: hidden;
    }

    .stat-card {
        min-height: 108px;
        justify-content: flex-start !important;
        padding: 18px 22px !important;
    }

    .stat-card:not(:last-child)::after {
        display: none;
    }

    .stat-card:nth-child(odd) {
        border-right: 1px solid rgba(0,0,0,.10) !important;
    }

    .stat-card:nth-child(1),
    .stat-card:nth-child(2) {
        border-bottom: 1px solid rgba(0,0,0,.10) !important;
    }
}

@media (max-width: 640px) {
    .stats-strip {
        padding: 14px 0 !important;
    }

    .stats-strip .container,
    .stats-grid {
        width: min(calc(100% - 28px), 100%) !important;
    }

    .stats-grid {
        grid-template-columns: 1fr !important;
        border-radius: 16px;
    }

    .stat-card {
        min-height: 94px;
        gap: 16px !important;
        padding: 16px 18px !important;
        border-right: 0 !important;
        border-bottom: 1px solid rgba(0,0,0,.10) !important;
    }

    .stat-card:last-child {
        border-bottom: 0 !important;
    }

    .stat-icon {
        width: 50px !important;
        height: 50px !important;
        font-size: 2.1rem !important;
    }

    .stat-card strong {
        font-size: 2.45rem !important;
    }

    .stat-card p {
        font-size: .78rem !important;
    }
}

@media (max-width: 420px) {
    .stat-card {
        min-height: 88px;
        padding-inline: 14px !important;
    }

    .stat-icon {
        width: 44px !important;
        height: 44px !important;
        font-size: 1.86rem !important;
    }

    .stat-card strong {
        font-size: 2.18rem !important;
    }
}

/* =========================================================
   V27 - Fidelización Franja 3: Entrenamiento / Clases
   Referencia cliente: fondo negro, marca outline, texto lateral,
   tarjetas oscuras con borde verde e imágenes del cliente optimizadas.
   ========================================================= */
.franja3-section {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(52px, 5.6vw, 78px) 0 clamp(54px, 5.2vw, 76px) !important;
    background:
        radial-gradient(circle at 10% 50%, rgba(184,242,28,.08), transparent 24%),
        linear-gradient(180deg, #030303 0%, #050505 48%, #020202 100%) !important;
    border-top: 1px solid rgba(255,255,255,.12);
    border-bottom: 1px solid rgba(255,255,255,.14);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.05), inset 0 -1px 0 rgba(255,255,255,.07);
}

.franja3-section::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        linear-gradient(90deg, rgba(0,0,0,.98) 0%, rgba(0,0,0,.74) 22%, rgba(0,0,0,.25) 58%, rgba(0,0,0,.74) 100%),
        radial-gradient(circle at 72% 30%, rgba(255,255,255,.08), transparent 26%);
    pointer-events: none;
}

.franja3-watermark {
    position: absolute;
    z-index: -1;
    left: max(-90px, calc((100vw - 1500px) / 2 - 130px));
    top: 50%;
    width: clamp(300px, 24vw, 430px);
    aspect-ratio: 1 / 1;
    transform: translateY(-50%);
    background: url('../images/gymcontrol-logo-stacked.png') center / contain no-repeat;
    opacity: .075;
    filter: grayscale(1) contrast(1.25);
    mix-blend-mode: screen;
}

.franja3-layout {
    width: min(calc(100% - 110px), 1500px) !important;
    display: grid;
    grid-template-columns: minmax(310px, .82fr) minmax(0, 2.55fr);
    align-items: center;
    gap: clamp(34px, 4vw, 72px);
}

.franja3-copy {
    position: relative;
    z-index: 1;
    max-width: 420px;
}

.franja3-copy .eyebrow {
    margin-bottom: 18px !important;
    color: #C21819 !important;
    font-family: var(--font-display) !important;
    font-size: clamp(.86rem, 1vw, 1.08rem) !important;
    font-weight: 900 !important;
    font-style: italic;
    letter-spacing: .035em !important;
    text-transform: uppercase !important;
}

.franja3-copy h2 {
    color: #ffffff !important;
    margin: 0 0 28px !important;
    font-family: var(--font-display) !important;
    font-size: clamp(3.05rem, 4.25vw, 5.25rem) !important;
    font-weight: 900 !important;
    font-style: italic;
    line-height: .94 !important;
    letter-spacing: -.035em !important;
    text-transform: uppercase !important;
    text-shadow: 0 8px 30px rgba(0,0,0,.42);
}

.franja3-copy h2 span {
    display: block !important;
    color: #C21819 !important;
}

.franja3-copy p {
    max-width: 360px;
    margin: 0 0 30px !important;
    color: rgba(255,255,255,.78) !important;
    font-family: var(--font-body) !important;
    font-size: clamp(.98rem, 1.1vw, 1.18rem) !important;
    font-weight: 700;
    line-height: 1.42 !important;
}

.franja3-button {
    min-width: 168px;
    min-height: 50px !important;
    border-radius: 4px !important;
    background: linear-gradient(180deg, #C21819 0%, #C21819 100%) !important;
    color: #111111 !important;
    box-shadow: 0 0 0 1px rgba(184,242,28,.12), 0 16px 36px rgba(184,242,28,.14) !important;
    font-family: var(--font-display) !important;
    font-size: .88rem !important;
    font-weight: 900 !important;
    font-style: italic;
    letter-spacing: .02em !important;
}

.franja3-cards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(16px, 1.45vw, 24px);
    align-items: stretch;
}

.training-card {
    position: relative;
    overflow: hidden !important;
    min-height: clamp(400px, 30.2vw, 458px);
    border-radius: 4px !important;
    background: linear-gradient(180deg, #131313 0%, #0e0e0e 58%, #111111 100%) !important;
    border: 2px solid rgba(184,242,28,.34) !important;
    box-shadow: 0 24px 60px rgba(0,0,0,.42), inset 0 0 0 1px rgba(255,255,255,.025) !important;
    transition: transform .28s ease, border-color .28s ease, box-shadow .28s ease;
}

.training-card::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 2;
    background: linear-gradient(180deg, rgba(0,0,0,.02) 0%, rgba(0,0,0,.05) 38%, rgba(0,0,0,.28) 55%, rgba(0,0,0,.08) 100%);
    pointer-events: none;
}

.training-card:hover {
    transform: translateY(-7px);
    border-color: rgba(184,242,28,.76) !important;
    box-shadow: 0 28px 80px rgba(0,0,0,.55), 0 0 22px rgba(184,242,28,.08) !important;
}

.training-image {
    height: clamp(190px, 14.7vw, 238px) !important;
    overflow: hidden;
    background: #050505;
}

.training-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    transform: scale(1.015);
    filter: contrast(1.08) saturate(1.05) brightness(.86);
    transition: transform .5s ease, filter .5s ease;
}

.training-card:hover .training-image img {
    transform: scale(1.065);
    filter: contrast(1.12) saturate(1.08) brightness(.92);
}

.training-content {
    position: relative;
    z-index: 3;
    min-height: calc(100% - clamp(190px, 14.7vw, 238px));
    padding: clamp(18px, 1.5vw, 26px) clamp(18px, 1.45vw, 25px) 62px !important;
    display: flex;
    flex-direction: column;
}

.training-content h3 {
    margin: 0 0 16px !important;
    color: #ffffff !important;
    font-family: var(--font-display) !important;
    font-size: clamp(1.55rem, 1.85vw, 2.35rem) !important;
    font-weight: 900 !important;
    font-style: italic;
    line-height: 1.02 !important;
    letter-spacing: -.035em !important;
    text-transform: uppercase !important;
    text-shadow: 0 8px 24px rgba(0,0,0,.5);
}

.training-content p {
    max-width: 95%;
    min-height: auto !important;
    margin: 0 !important;
    color: rgba(255,255,255,.78) !important;
    font-family: var(--font-body) !important;
    font-size: clamp(.95rem, 1.03vw, 1.08rem) !important;
    font-weight: 700;
    line-height: 1.35 !important;
}

.training-arrow {
    position: absolute;
    right: clamp(18px, 1.5vw, 24px);
    bottom: clamp(18px, 1.5vw, 24px);
    z-index: 4;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    color: #C21819 !important;
    font-size: 1.34rem;
    opacity: .9;
    transition: transform .24s ease, opacity .24s ease;
}

.training-arrow:hover {
    transform: translate(3px, -3px);
    opacity: 1;
}

.training-arrow i {
    filter: drop-shadow(0 0 10px rgba(184,242,28,.25));
}

@media (max-width: 1280px) {
    .franja3-layout {
        width: min(calc(100% - 50px), 100%) !important;
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .franja3-copy {
        max-width: 740px;
        display: grid;
        grid-template-columns: 1fr auto;
        gap: 20px 30px;
        align-items: end;
    }

    .franja3-copy .eyebrow,
    .franja3-copy h2,
    .franja3-copy p {
        grid-column: 1 / 2;
    }

    .franja3-copy p {
        margin-bottom: 0 !important;
    }

    .franja3-button {
        grid-column: 2 / 3;
        grid-row: 2 / 4;
    }

    .franja3-cards {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 1024px) {
    .franja3-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .training-card {
        min-height: 430px;
    }

    .training-image {
        height: 245px !important;
    }
}

@media (max-width: 760px) {
    .franja3-section {
        padding: 52px 0 !important;
    }

    .franja3-layout {
        width: min(calc(100% - 28px), 100%) !important;
        gap: 26px;
    }

    .franja3-copy {
        display: block;
        max-width: 100%;
    }

    .franja3-copy h2 {
        font-size: clamp(2.65rem, 13vw, 4rem) !important;
        margin-bottom: 20px !important;
    }

    .franja3-copy p {
        max-width: 100%;
        margin-bottom: 22px !important;
    }

    .franja3-button {
        width: 100%;
    }

    .franja3-cards {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .training-card {
        min-height: auto;
    }

    .training-image {
        height: clamp(225px, 62vw, 330px) !important;
    }

    .training-content {
        min-height: 190px;
        padding: 22px 22px 62px !important;
    }

    .training-content h3 {
        font-size: clamp(1.95rem, 8vw, 2.55rem) !important;
    }

    .training-content p {
        font-size: 1rem !important;
    }

    .franja3-watermark {
        width: 250px;
        left: -92px;
        top: 130px;
        opacity: .055;
    }
}

@media (max-width: 420px) {
    .franja3-copy h2 {
        font-size: clamp(2.3rem, 12.4vw, 3.2rem) !important;
    }

    .training-image {
        height: 220px !important;
    }

    .training-content {
        padding: 20px 18px 58px !important;
    }
}


/* =========================================================
   Ajuste fino franja 3 - fidelización referencia cliente
   Se reduce la escala de textos y tarjetas para que la franja
   respire como la propuesta original, sin alterar las imágenes.
   ========================================================= */
.franja3-section {
    padding: clamp(38px, 4vw, 58px) 0 clamp(40px, 4.2vw, 62px) !important;
    background:
        linear-gradient(180deg, #020202 0%, #050505 50%, #020202 100%) !important;
}

.franja3-section::before {
    content: '01';
    position: absolute;
    z-index: -1;
    left: max(-46px, calc((100vw - 1500px) / 2 - 88px));
    top: 47%;
    transform: translateY(-50%) skewX(-8deg);
    font-family: var(--font-display) !important;
    font-size: clamp(13rem, 17vw, 20rem);
    font-weight: 900;
    font-style: italic;
    line-height: .72;
    color: transparent;
    -webkit-text-stroke: 2px rgba(255,255,255,.065);
    text-stroke: 2px rgba(255,255,255,.065);
    letter-spacing: -.18em;
    pointer-events: none;
}

.franja3-watermark {
    display: none !important;
}

.franja3-layout {
    width: min(calc(100% - 120px), 1500px) !important;
    grid-template-columns: minmax(275px, 360px) minmax(0, 1fr) !important;
    gap: clamp(34px, 4.2vw, 72px) !important;
    align-items: center !important;
}

.franja3-copy {
    max-width: 360px !important;
}

.franja3-copy .eyebrow {
    display: block !important;
    margin-bottom: 15px !important;
    font-size: clamp(.76rem, .78vw, .92rem) !important;
    line-height: 1.1 !important;
    letter-spacing: .055em !important;
}

.franja3-copy h2 {
    margin: 0 0 22px !important;
    font-size: clamp(2.35rem, 2.55vw, 3.25rem) !important;
    line-height: 1.08 !important;
    letter-spacing: -.025em !important;
    max-width: 330px !important;
}

.franja3-copy h2 span {
    display: block !important;
}

.franja3-copy h2 .line-white {
    color: #ffffff !important;
}

.franja3-copy h2 .line-green {
    color: #C21819 !important;
}

.franja3-copy p {
    max-width: 305px !important;
    margin: 0 0 26px !important;
    font-size: clamp(.88rem, .86vw, 1rem) !important;
    line-height: 1.45 !important;
    font-weight: 700 !important;
}

.franja3-button {
    min-width: 146px !important;
    min-height: 44px !important;
    padding: 0 24px !important;
    font-size: .78rem !important;
    border-radius: 3px !important;
}

.franja3-cards {
    gap: clamp(14px, 1.3vw, 22px) !important;
}

.training-card {
    min-height: clamp(332px, 23vw, 390px) !important;
    border-width: 1px !important;
    border-color: rgba(184,242,28,.38) !important;
    border-radius: 3px !important;
}

.training-image {
    height: clamp(155px, 12vw, 205px) !important;
}

.training-image img {
    object-position: center center !important;
    filter: contrast(1.08) saturate(1.04) brightness(.82) !important;
}

.training-content {
    min-height: auto !important;
    padding: clamp(17px, 1.25vw, 23px) clamp(17px, 1.25vw, 23px) 54px !important;
}

.training-content h3 {
    margin-bottom: 13px !important;
    font-size: clamp(1.18rem, 1.22vw, 1.58rem) !important;
    line-height: 1.09 !important;
    letter-spacing: -.02em !important;
    max-width: 100% !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

.training-content p {
    max-width: 96% !important;
    font-size: clamp(.82rem, .82vw, .96rem) !important;
    line-height: 1.38 !important;
    font-weight: 700 !important;
}

.training-arrow {
    right: 20px !important;
    bottom: 18px !important;
    width: 26px !important;
    height: 26px !important;
    font-size: 1.08rem !important;
}

@media (max-width: 1360px) {
    .franja3-layout {
        width: min(calc(100% - 68px), 100%) !important;
        grid-template-columns: minmax(255px, 320px) minmax(0, 1fr) !important;
        gap: 34px !important;
    }

    .franja3-copy h2 {
        font-size: clamp(2.05rem, 2.4vw, 2.8rem) !important;
        max-width: 290px !important;
    }

    .training-content h3 {
        font-size: clamp(1.06rem, 1.28vw, 1.42rem) !important;
    }
}

@media (max-width: 1180px) {
    .franja3-layout {
        grid-template-columns: 1fr !important;
        gap: 28px !important;
    }

    .franja3-copy {
        max-width: 720px !important;
        display: grid !important;
        grid-template-columns: 1fr auto !important;
        gap: 12px 24px !important;
        align-items: end !important;
    }

    .franja3-copy .eyebrow,
    .franja3-copy h2,
    .franja3-copy p {
        grid-column: 1 / 2 !important;
    }

    .franja3-copy h2 {
        max-width: 520px !important;
        font-size: clamp(2.25rem, 4vw, 3.15rem) !important;
    }

    .franja3-copy p {
        max-width: 420px !important;
        margin-bottom: 0 !important;
    }

    .franja3-button {
        grid-column: 2 / 3 !important;
        grid-row: 2 / 4 !important;
    }

    .franja3-cards {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 980px) {
    .franja3-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .training-card {
        min-height: 360px !important;
    }

    .training-image {
        height: 190px !important;
    }

    .training-content h3 {
        font-size: clamp(1.28rem, 3vw, 1.65rem) !important;
    }
}

@media (max-width: 760px) {
    .franja3-section {
        padding: 42px 0 46px !important;
    }

    .franja3-section::before {
        left: -56px;
        top: 90px;
        font-size: 12rem;
        opacity: .8;
    }

    .franja3-layout {
        width: min(calc(100% - 28px), 100%) !important;
        gap: 24px !important;
    }

    .franja3-copy {
        display: block !important;
        max-width: 100% !important;
    }

    .franja3-copy h2 {
        max-width: 330px !important;
        font-size: clamp(2.2rem, 10.5vw, 3.18rem) !important;
        line-height: 1.04 !important;
        margin-bottom: 18px !important;
    }

    .franja3-copy p {
        max-width: 100% !important;
        margin-bottom: 20px !important;
        font-size: .98rem !important;
    }

    .franja3-button {
        width: auto !important;
        min-width: 150px !important;
    }

    .franja3-cards {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }

    .training-card {
        min-height: auto !important;
    }

    .training-image {
        height: clamp(210px, 58vw, 310px) !important;
    }

    .training-content {
        padding: 20px 20px 56px !important;
    }

    .training-content h3 {
        font-size: clamp(1.65rem, 7vw, 2.15rem) !important;
    }

    .training-content p {
        font-size: 1rem !important;
    }
}

@media (max-width: 430px) {
    .franja3-copy h2 {
        max-width: 300px !important;
        font-size: clamp(2rem, 10.2vw, 2.7rem) !important;
    }

    .training-image {
        height: 210px !important;
    }
}


/* =========================================================
   V31 - Franja 4 simplificada y corregida
   Sin sobreposiciones y con mejor proporción general.
   ========================================================= */
.schedule-section-v2 {
    background: linear-gradient(180deg, #efefec 0%, #ebebe8 100%);
    position: relative;
    overflow: hidden;
}

.schedule-section-v2::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .055;
    background-image:
        radial-gradient(#000 0.75px, transparent 0.75px),
        radial-gradient(#000 0.75px, transparent 0.75px);
    background-position: 0 0, 13px 13px;
    background-size: 26px 26px;
}

.schedule-section-v2 .container {
    width: min(calc(100% - 56px), 1360px) !important;
}

.schedule-v2-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(310px, 0.95fr) minmax(300px, 1fr) minmax(300px, 1fr) minmax(215px, 0.72fr);
    gap: 26px;
    align-items: stretch;
}

.schedule-v2-intro {
    align-self: start;
    padding: 50px 10px 0 0;
    color: #111;
}

.schedule-v2-intro .eyebrow {
    color: #111 !important;
    letter-spacing: .05em;
    font-size: .92rem;
    margin-bottom: 18px;
    display: inline-block;
    text-transform: uppercase;
}

.schedule-v2-intro h2 {
    margin: 0;
    color: #050505;
    font-style: italic;
    font-size: clamp(2.35rem, 2.9vw, 3.55rem);
    line-height: .92;
    letter-spacing: -0.055em;
    text-transform: uppercase;
    max-width: 7.2ch;
}

.schedule-v2-intro h2 span {
    display: block;
}

.schedule-v2-intro h2 em {
    font-style: italic;
    color: var(--accent);
}

.schedule-v2-card {
    position: relative;
    min-height: 465px;
    border-radius: 12px;
    background: rgba(255,255,255,.98);
    padding: 26px 34px 24px;
    box-shadow: 0 10px 24px rgba(0,0,0,.05);
    border: 1px solid rgba(0,0,0,.02);
    overflow: hidden;
}

.schedule-v2-card h3 {
    margin: 0 0 18px;
    color: #111;
    font-size: clamp(1.14rem, 1.5vw, 1.46rem);
    line-height: 1.05;
    text-transform: uppercase;
    letter-spacing: .01em;
}

.schedule-v2-block {
    padding: 10px 0 14px;
    border-top: 2px solid rgba(205, 233, 87, .42);
    position: relative;
    z-index: 2;
}

.schedule-v2-block:first-of-type {
    border-top: 0;
    padding-top: 0;
}

.schedule-v2-tag {
    display: block;
    margin-bottom: 6px;
    color: #C21819;
    font-size: .92rem;
    font-weight: 900;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.schedule-v2-slots {
    display: grid;
    gap: 4px;
}

.schedule-v2-slots p {
    margin: 0;
    color: #202020;
    font-size: 1rem;
    line-height: 1.26;
    font-weight: 800;
    text-transform: uppercase;
}

.schedule-v2-watermark {
    position: absolute;
    right: 20px;
    bottom: 16px;
    color: rgba(0,0,0,.055);
    font-size: 4rem;
    z-index: 1;
}

.schedule-v2-card-accent {
    min-height: 465px;
    background: linear-gradient(180deg, #040404 0%, #090909 100%);
    color: #fff;
    border-radius: 12px;
    border: 0;
    box-shadow: 0 12px 28px rgba(0,0,0,.12);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    text-align: center;
    gap: 14px;
    padding: 28px 22px 24px;
}

.schedule-v2-open-icon {
    width: 68px;
    height: 68px;
    border-radius: 50%;
    border: 3px solid rgba(194,24,25,.86);
    display: grid;
    place-items: center;
    color: var(--accent);
    font-size: 1.82rem;
    margin-bottom: 6px;
}

.schedule-v2-card-accent h3 {
    color: var(--accent);
    margin: 0;
    font-size: clamp(1.55rem, 1.8vw, 1.95rem);
    text-transform: uppercase;
    letter-spacing: .01em;
    line-height: .98;
}

.schedule-v2-card-accent p {
    color: rgba(255,255,255,.86) !important;
    margin: 6px 0 0;
    line-height: 1.42;
    font-size: .94rem;
    max-width: 14ch;
}

.schedule-v2-card-accent .btn {
    margin-top: auto;
    min-width: 136px;
    min-height: 48px;
    justify-content: center;
    border: 2px solid rgba(194,24,25,.72);
    background: transparent !important;
    color: var(--accent) !important;
    box-shadow: none;
    padding-inline: 18px;
    text-transform: uppercase;
    font-size: .8rem;
}

.schedule-v2-card-accent .btn:hover {
    background: rgba(194,24,25,.10) !important;
}

@media (max-width: 1450px) {
    .schedule-section-v2 .container {
        width: min(calc(100% - 44px), 1280px) !important;
    }

    .schedule-v2-grid {
        grid-template-columns: minmax(260px, .9fr) minmax(260px, 1fr) minmax(260px, 1fr) minmax(205px, .74fr);
        gap: 22px;
    }

    .schedule-v2-intro h2 {
        font-size: clamp(2.1rem, 2.55vw, 3.05rem);
    }
}

@media (max-width: 1180px) {
    .schedule-v2-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 22px;
    }

    .schedule-v2-intro {
        padding: 0;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }

    .schedule-v2-intro h2 {
        max-width: 8ch;
    }
}

@media (max-width: 767px) {
    .schedule-section-v2 {
        padding-top: 62px !important;
        padding-bottom: 62px !important;
    }

    .schedule-section-v2 .container {
        width: min(calc(100% - 24px), 100%) !important;
    }

    .schedule-v2-grid {
        grid-template-columns: 1fr !important;
        gap: 18px;
    }

    .schedule-v2-intro {
        padding: 0 2px;
    }

    .schedule-v2-intro h2 {
        font-size: clamp(2.25rem, 10.5vw, 3.15rem);
        max-width: 7.5ch;
    }

    .schedule-v2-card,
    .schedule-v2-card-accent {
        min-height: auto;
        padding: 22px 20px 24px;
        border-radius: 14px;
    }

    .schedule-v2-card h3 {
        font-size: 1.3rem;
    }

    .schedule-v2-tag {
        font-size: .9rem;
    }

    .schedule-v2-slots p,
    .schedule-v2-card-accent p {
        font-size: .96rem;
    }

    .schedule-v2-open-icon {
        width: 72px;
        height: 72px;
        font-size: 1.95rem;
    }

    .schedule-v2-watermark {
        right: 18px;
        bottom: 16px;
        font-size: 3.1rem;
    }

    .schedule-v2-card-accent .btn {
        width: 100%;
    }
}


/* =========================================================
   V33 - Franja 5 super fix premium (Planes)
   Más fiel a la propuesta y mejor proporcionada.
   ========================================================= */
.plans-premium-section {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(180deg, rgba(0,0,0,.84), rgba(0,0,0,.92)),
        radial-gradient(circle at 24% 22%, rgba(194,24,25,.06), transparent 28%),
        #040404;
}

.plans-premium-section::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .045;
    background-image:
        radial-gradient(#9eb50f 0.7px, transparent 0.7px),
        radial-gradient(#9eb50f 0.7px, transparent 0.7px);
    background-position: 0 0, 12px 12px;
    background-size: 24px 24px;
}

.plans-premium-section .container {
    width: min(calc(100% - 50px), 1520px) !important;
}

.plans-premium-layout {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(320px, .76fr) minmax(0, 2.24fr);
    gap: 34px;
    align-items: start;
}

.plans-premium-intro {
    position: relative;
    padding-top: 96px;
    min-height: 100%;
}

.plans-premium-watermark {
    position: absolute;
    left: -24px;
    top: 12px;
    width: 220px;
    height: 350px;
    background: url('../images/logo-white-user.png') center / contain no-repeat;
    opacity: .045;
    filter: grayscale(1) brightness(1.2);
    pointer-events: none;
}

.plans-premium-intro .eyebrow {
    position: relative;
    z-index: 1;
    margin-bottom: 18px;
    color: var(--accent) !important;
    font-size: .92rem;
    letter-spacing: .05em;
}

.plans-premium-intro h2 {
    position: relative;
    z-index: 1;
    margin: 0;
    font-style: italic;
    font-size: clamp(2.35rem, 3.1vw, 4.25rem);
    line-height: .91;
    letter-spacing: -0.055em;
    text-transform: uppercase;
    max-width: 8.4ch;
}

.plans-premium-intro h2 span {
    display: block;
}

.plans-premium-intro h2 em {
    color: var(--accent);
    font-style: italic;
}

.plans-premium-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 18px;
    align-items: stretch;
}

.plan-premium-card {
    position: relative;
    overflow: hidden;
    border-radius: 16px;
    padding: 20px 22px 20px;
    background:
        linear-gradient(180deg, rgba(22,22,22,.95), rgba(9,9,9,.98)),
        rgba(9,9,9,.98);
    border: 2px solid rgba(190, 224, 54, .36);
    box-shadow: 0 14px 30px rgba(0,0,0,.2);
    min-height: 372px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.plan-premium-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255,255,255,.04), transparent 35%, rgba(194,24,25,.03) 100%);
    pointer-events: none;
}

.plan-premium-card-top { grid-column: span 3; }
.plan-premium-card-bottom { grid-column: span 4; }

.plan-premium-card-featured {
    background: linear-gradient(180deg, #C21819 0%, #ED1C24 100%);
    color: #0b0b0b;
    border-color: transparent;
    box-shadow: 0 18px 36px rgba(194,24,25,.14);
}

.plan-premium-card-featured::before {
    background: linear-gradient(180deg, rgba(255,255,255,.17), rgba(255,255,255,0));
}

.plan-premium-ribbon {
    position: absolute;
    top: 14px;
    right: -46px;
    width: 154px;
    text-align: center;
    background: #0b0b0b;
    color: #fff;
    font-size: .68rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .08em;
    padding: 8px 0;
    transform: rotate(45deg);
    z-index: 3;
}

.plan-premium-icon {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    color: var(--accent);
    font-size: 1.6rem;
    border: 1px solid rgba(194,24,25,.24);
    background: rgba(194,24,25,.03);
    margin-bottom: 12px;
}

.plan-premium-card h3 {
    position: relative;
    z-index: 1;
    margin: 0 0 8px;
    color: #fff;
    font-size: clamp(1.2rem, 1.28vw, 1.45rem);
    line-height: 1.05;
    text-transform: uppercase;
    width: 100%;
    text-align: center;
}

.plan-premium-card-featured h3 { color: #111; }

.plan-premium-price {
    position: relative;
    z-index: 1;
    font-family: var(--font-display);
    font-size: clamp(2.05rem, 2.45vw, 2.95rem);
    font-weight: 900;
    line-height: .98;
    color: #fff;
    margin-bottom: 18px;
    text-align: center;
    width: 100%;
}

.plan-premium-card-featured .plan-premium-price { color: #111; }

.plan-premium-card ul {
    position: relative;
    z-index: 1;
    list-style: none;
    margin: 0 0 20px;
    padding: 0;
    display: grid;
    gap: 9px;
    width: min(100%, 220px);
    align-self: center;
}

.plan-premium-card li {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    color: rgba(255,255,255,.88);
    line-height: 1.3;
    font-size: .92rem;
    font-weight: 600;
    text-align: left;
}

.plan-premium-card li i {
    color: var(--accent);
    margin-top: 3px;
    font-size: .92rem;
    flex: 0 0 auto;
}

.plan-premium-card-featured li,
.plan-premium-card-featured li i {
    color: #111;
}

.plan-premium-btn {
    position: relative;
    z-index: 1;
    margin-top: auto;
    align-self: center;
    min-height: 46px;
    width: min(100%, 172px);
}

.plan-premium-card .plan-premium-btn.btn-outline-light {
    border-width: 2px;
    border-color: rgba(190,224,54,.36);
    color: #fff;
    background: rgba(255,255,255,.02);
}

.plan-premium-card .plan-premium-btn.btn-outline-light:hover {
    background: rgba(194,24,25,.08);
    color: var(--accent);
}

.plan-premium-card-featured .plan-premium-btn.btn-dark {
    background: #111;
    color: #fff;
    border-color: #111;
}

.plan-premium-card-featured .plan-premium-btn.btn-dark:hover {
    background: #090909;
}

@media (max-width: 1500px) {
    .plans-premium-section .container {
        width: min(calc(100% - 38px), 1360px) !important;
    }

    .plans-premium-layout {
        grid-template-columns: minmax(280px, .76fr) minmax(0, 2.24fr);
        gap: 28px;
    }

    .plans-premium-intro h2 {
        font-size: clamp(2.1rem, 2.75vw, 3.6rem);
    }

    .plan-premium-card {
        min-height: 356px;
        padding: 18px;
    }

    .plan-premium-price {
        font-size: clamp(1.9rem, 2.28vw, 2.6rem);
    }
}

@media (max-width: 1180px) {
    .plans-premium-layout {
        grid-template-columns: 1fr;
        gap: 26px;
    }

    .plans-premium-intro {
        padding-top: 18px;
    }

    .plans-premium-intro h2 {
        max-width: 12ch;
    }

    .plans-premium-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px;
    }

    .plan-premium-card-top,
    .plan-premium-card-bottom {
        grid-column: span 1;
    }
}

@media (max-width: 767px) {
    .plans-premium-section .container {
        width: min(calc(100% - 24px), 100%) !important;
    }

    .plans-premium-section {
        padding-top: 62px !important;
        padding-bottom: 62px !important;
    }

    .plans-premium-intro {
        padding-top: 6px;
    }

    .plans-premium-watermark {
        width: 150px;
        height: 230px;
        top: 0;
        left: -16px;
    }

    .plans-premium-intro h2 {
        font-size: clamp(2.3rem, 10vw, 3.4rem);
        max-width: 8.4ch;
    }

    .plans-premium-grid {
        grid-template-columns: 1fr;
    }

    .plan-premium-card {
        min-height: auto;
        padding: 20px 18px;
    }

    .plan-premium-price {
        font-size: clamp(2rem, 10vw, 2.8rem);
    }

    .plan-premium-ribbon {
        top: 12px;
        right: -48px;
        width: 148px;
    }
}


/* =========================================================
   V34 - Franja 6 reemplazada por instalaciones premium
   ========================================================= */
.facilities-showcase-section {
    background: #ffffff;
    padding-top: 56px !important;
    padding-bottom: 46px !important;
}

.facilities-showcase-section .container {
    width: min(calc(100% - 56px), 1760px) !important;
}

.facilities-showcase-header {
    margin-bottom: 22px;
}

.facilities-showcase-header h2 {
    margin: 0;
    color: #111;
    font-size: clamp(1.2rem, 1.5vw, 1.7rem);
    line-height: 1.1;
    letter-spacing: .04em;
    text-transform: uppercase;
    font-style: italic;
}

.facilities-carousel {
    position: relative;
}

.facilities-viewport {
    overflow: hidden;
}

.facilities-track {
    display: flex;
    gap: 18px;
    transition: transform .35s ease;
    will-change: transform;
}

.facilities-slide {
    flex: 0 0 calc((100% - 72px) / 5);
    margin: 0;
    border: 1px solid rgba(0,0,0,.08);
    background: #fff;
}

.facilities-slide img {
    width: 100%;
    height: 300px;
    display: block;
    object-fit: cover;
}

.facilities-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 72px;
    height: 72px;
    border-radius: 999px;
    border: 1px solid rgba(0,0,0,.08);
    background: #fff;
    color: #222;
    display: grid;
    place-items: center;
    font-size: 1.55rem;
    box-shadow: 0 8px 20px rgba(0,0,0,.10);
    cursor: pointer;
    z-index: 3;
}

.facilities-nav:hover {
    background: #fafafa;
}

.facilities-nav-prev { left: -34px; }
.facilities-nav-next { right: -34px; }

.facilities-nav.is-disabled {
    opacity: .45;
    pointer-events: none;
}

@media (max-width: 1280px) {
    .facilities-slide {
        flex-basis: calc((100% - 36px) / 3);
    }

    .facilities-slide img {
        height: 270px;
    }
}

@media (max-width: 900px) {
    .facilities-showcase-section .container {
        width: min(calc(100% - 30px), 100%) !important;
    }

    .facilities-slide {
        flex-basis: calc((100% - 18px) / 2);
    }

    .facilities-slide img {
        height: 240px;
    }

    .facilities-nav {
        width: 58px;
        height: 58px;
        font-size: 1.25rem;
    }

    .facilities-nav-prev { left: -10px; }
    .facilities-nav-next { right: -10px; }
}

@media (max-width: 640px) {
    .facilities-showcase-section {
        padding-top: 42px !important;
        padding-bottom: 38px !important;
    }

    .facilities-showcase-header {
        margin-bottom: 16px;
    }

    .facilities-slide {
        flex-basis: 100%;
    }

    .facilities-slide img {
        height: 220px;
    }

    .facilities-nav {
        width: 50px;
        height: 50px;
        font-size: 1.1rem;
    }
}


/* =========================================================
   V35 - Franja 7 premium + ajuste de inclinación tipográfica
   ========================================================= */
.contact-premium-section {
    position: relative;
    overflow: hidden;
    background: linear-gradient(180deg, #040404 0%, #080808 100%);
    padding-top: 44px !important;
    padding-bottom: 38px !important;
}

.contact-premium-section::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .08;
    background-image: radial-gradient(rgba(194,24,25,.38) .55px, transparent .55px);
    background-size: 20px 20px;
}

.contact-premium-section .container {
    width: min(calc(100% - 52px), 1710px) !important;
}

.contact-premium-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(310px, 1.05fr) minmax(360px, 1fr) minmax(360px, .95fr) minmax(250px, .8fr);
    gap: 30px;
    align-items: stretch;
}

.contact-premium-copy {
    padding: 12px 0 0 18px;
}

.contact-premium-copy .eyebrow {
    color: #ffffff !important;
    margin-bottom: 22px;
    font-size: .92rem;
    letter-spacing: .04em;
}

.contact-premium-copy h2 {
    margin: 0;
    color: #fff;
    font-size: clamp(2.3rem, 3vw, 4.3rem);
    line-height: .96;
    letter-spacing: -.05em;
    text-transform: uppercase;
    font-style: italic;
    max-width: 8.5ch;
}

.contact-premium-copy h2 span {
    display: block;
}

.contact-premium-copy h2 em {
    color: var(--accent);
    font-style: italic;
}

.contact-premium-map,
.contact-premium-athlete {
    border-radius: 0;
    overflow: hidden;
    background: #0d0d0d;
    min-height: 300px;
}

.contact-premium-map iframe,
.contact-premium-athlete img {
    width: 100%;
    height: 100%;
    display: block;
}

.contact-premium-map iframe {
    border: 0;
}

.contact-premium-info {
    padding: 10px 8px 12px 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 24px;
}

.contact-premium-item {
    display: flex;
    align-items: flex-start;
    gap: 18px;
    color: #fff;
}

.contact-premium-item i {
    color: var(--accent);
    font-size: 1.85rem;
    line-height: 1;
    margin-top: 2px;
    flex: 0 0 auto;
}

.contact-premium-item span {
    color: rgba(255,255,255,.92);
    font-family: var(--font-display);
    font-size: clamp(1rem, 1.25vw, 1.45rem);
    font-weight: 800;
    line-height: 1.34;
}

.contact-premium-btn {
    margin-top: 6px;
    min-height: 54px;
    width: 100%;
    justify-content: center;
    gap: 12px;
    font-size: .96rem;
    text-transform: uppercase;
    box-shadow: 0 12px 28px rgba(178, 237, 24, .12);
}

.contact-premium-btn i {
    font-size: 1.45rem;
}

@media (max-width: 1450px) {
    .contact-premium-section .container {
        width: min(calc(100% - 34px), 1420px) !important;
    }

    .contact-premium-grid {
        grid-template-columns: minmax(260px, .95fr) minmax(290px, 1fr) minmax(310px, .95fr) minmax(230px, .7fr);
        gap: 22px;
    }

    .contact-premium-copy h2 {
        font-size: clamp(1.95rem, 2.55vw, 3.55rem);
    }
}

@media (max-width: 1180px) {
    .contact-premium-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px;
    }

    .contact-premium-copy {
        padding-left: 0;
    }

    .contact-premium-copy h2 {
        max-width: 10ch;
    }

    .contact-premium-info {
        padding-right: 0;
    }
}

@media (max-width: 767px) {
    .contact-premium-section {
        padding-top: 40px !important;
        padding-bottom: 34px !important;
    }

    .contact-premium-section .container {
        width: min(calc(100% - 24px), 100%) !important;
    }

    .contact-premium-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .contact-premium-copy {
        padding: 0;
    }

    .contact-premium-copy h2 {
        font-size: clamp(2rem, 10vw, 3rem);
        max-width: 8.5ch;
    }

    .contact-premium-map,
    .contact-premium-athlete {
        min-height: 220px;
    }

    .contact-premium-item span {
        font-size: 1rem;
    }

    .contact-premium-btn {
        min-height: 50px;
        font-size: .9rem;
    }
}

/* =========================================================
   RESPONSIVE FINAL PATCH - móvil/tablet GYMCONTROL
   Ajustes no destructivos para evitar desbordes, mejorar lectura,
   botones táctiles y composición en pantallas pequeñas.
   ========================================================= */
html,
body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

body {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

main,
section,
.site-header-premium,
.mobile-menu-premium {
    max-width: 100vw;
}

img,
svg,
video,
iframe {
    max-width: 100%;
}

button,
a,
.btn {
    -webkit-tap-highlight-color: rgba(194,24,25,.18);
}

.btn,
.hero-v24-button,
.plan-premium-btn,
.contact-premium-btn,
.franja3-button {
    text-align: center;
    white-space: normal;
}

@media (hover: none) {
    .btn:hover,
    .training-card:hover,
    .class-card:hover .class-image img,
    .training-card:hover .training-image img {
        transform: none !important;
    }
}

@media (max-width: 1180px) {
    .hero-v24-actions,
    .plans-premium-layout,
    .schedule-v2-grid,
    .franja3-layout,
    .contact-premium-grid {
        min-width: 0 !important;
    }

    .contact-premium-copy {
        grid-column: 1 / -1;
    }

    .contact-premium-map,
    .contact-premium-athlete {
        min-height: clamp(240px, 32vw, 330px) !important;
    }
}

@media (max-width: 900px) {
    .facilities-carousel {
        padding-inline: 0 !important;
    }

    .facilities-viewport {
        overflow-x: auto !important;
        overflow-y: hidden !important;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .facilities-viewport::-webkit-scrollbar {
        display: none;
    }

    .facilities-slide {
        scroll-snap-align: center;
    }

    .facilities-nav-prev {
        left: 8px !important;
    }

    .facilities-nav-next {
        right: 8px !important;
    }
}

@media (max-width: 767px) {
    .site-header-premium {
        width: 100% !important;
    }

    .mobile-menu-premium {
        left: 12px !important;
        right: 12px !important;
        width: auto !important;
    }

    .hero-v24-copy,
    .plans-premium-intro,
    .schedule-v2-intro,
    .franja3-copy,
    .contact-premium-copy,
    .facilities-showcase-header {
        text-align: left !important;
    }

    .hero-v24-copy h1,
    .plans-premium-intro h2,
    .schedule-v2-intro h2,
    .franja3-copy h2,
    .contact-premium-copy h2 {
        overflow-wrap: anywhere;
    }

    .hero-v24-actions,
    .plans-premium-grid,
    .schedule-v2-grid,
    .franja3-cards,
    .contact-premium-grid,
    .stats-grid {
        width: 100% !important;
    }

    .schedule-v2-card,
    .schedule-v2-card-accent,
    .plan-premium-card,
    .training-card,
    .contact-premium-info {
        width: 100% !important;
    }

    .plan-premium-card h3,
    .plan-premium-price,
    .plan-premium-card li span,
    .schedule-v2-slots p,
    .contact-premium-item span {
        overflow-wrap: anywhere;
    }

    .plan-premium-card ul {
        width: 100% !important;
        max-width: 310px;
    }

    .plan-premium-btn,
    .contact-premium-btn {
        width: 100% !important;
        min-height: 52px !important;
    }

    .contact-premium-info {
        padding: 18px 0 0 !important;
        gap: 18px !important;
    }

    .contact-premium-item {
        gap: 14px !important;
    }

    .contact-premium-item i {
        font-size: 1.45rem !important;
    }

    .contact-premium-map,
    .contact-premium-athlete {
        min-height: clamp(220px, 68vw, 310px) !important;
    }

    .facilities-nav {
        opacity: .92;
    }
}

@media (max-width: 480px) {
    .site-header-premium .container,
    .hero-v24 .container,
    .container,
    .stats-strip .container,
    .franja3-layout,
    .schedule-section-v2 .container,
    .plans-premium-section .container,
    .facilities-showcase-section .container,
    .contact-premium-section .container {
        width: min(calc(100% - 22px), 100%) !important;
    }

    .hero-v24-copy h1 {
        font-size: clamp(2.28rem, 13.8vw, 3.35rem) !important;
        line-height: .88 !important;
    }

    .hero-v24-subtitle {
        font-size: .96rem !important;
        max-width: 23rem !important;
    }

    .hero-v24-disciplines {
        grid-template-columns: 1fr !important;
    }

    .hero-v24-disciplines span {
        min-height: 40px !important;
        justify-content: flex-start;
        font-size: .74rem !important;
    }

    .hero-v24-right {
        min-height: 320px !important;
    }

    .hero-v24-circle {
        width: 76px !important;
    }

    .hero-v24-location {
        padding: 10px 11px !important;
    }

    .hero-v24-location strong,
    .hero-v24-location span {
        font-size: .76rem !important;
    }

    .stats-grid {
        border-radius: 14px !important;
    }

    .stat-card {
        min-height: 82px !important;
    }

    .franja3-button {
        width: 100% !important;
    }

    .training-image,
    .facilities-slide img {
        height: clamp(196px, 58vw, 248px) !important;
    }

    .schedule-v2-card,
    .schedule-v2-card-accent,
    .plan-premium-card {
        padding-inline: 16px !important;
    }

    .plan-premium-card li {
        font-size: .88rem !important;
    }

    .plan-premium-ribbon {
        right: -54px !important;
        transform: rotate(45deg) scale(.88);
    }

    .contact-premium-copy h2,
    .plans-premium-intro h2,
    .schedule-v2-intro h2,
    .franja3-copy h2 {
        max-width: 100% !important;
    }

    .contact-premium-map,
    .contact-premium-athlete {
        min-height: 210px !important;
    }
}

@media (max-width: 360px) {
    .brand-premium img {
        width: 108px !important;
    }

    .hero-v24-copy h1 {
        font-size: clamp(2.05rem, 13vw, 2.72rem) !important;
    }

    .btn,
    .hero-v24-button,
    .plan-premium-btn,
    .contact-premium-btn {
        font-size: .78rem !important;
        letter-spacing: .02em !important;
        padding-inline: 12px !important;
    }

    .schedule-v2-slots p {
        font-size: .88rem !important;
    }

    .plan-premium-price {
        font-size: 1.92rem !important;
    }
}


/* =========================================================
   V35 - Fix final solicitado por cliente
   1) Fuente display inclinada hacia la derecha tipo italic.
   2) Franja entrenamiento: el título ya no invade las tarjetas.
   3) Franja planes: precios siempre completos dentro de cada recuadro.
   ========================================================= */
html,
body {
    font-synthesis: style weight;
}

/* Inclina la tipografía de marca sin cambiar la familia aprobada. */
:is(
    h1, h2, h3, h4,
    .brand-premium,
    .nav-links-premium a,
    .mobile-menu-premium a,
    .btn,
    .eyebrow,
    .hero-v24-copy h1,
    .hero-v24-button,
    .hero-v24-plan-link,
    .hero-v24-disciplines span,
    .stat-card strong,
    .stat-card p,
    .franja3-copy h2,
    .franja3-copy .eyebrow,
    .training-content h3,
    .plans-premium-intro h2,
    .plan-premium-card h3,
    .plan-premium-price,
    .plan-premium-btn,
    .schedule-v2-intro h2,
    .schedule-v2-card h3,
    .facilities-showcase-header h2,
    .contact-premium-copy h2
) {
    font-style: oblique 12deg !important;
    font-synthesis: style weight;
}

/* Franja 3: más aire entre texto y tarjetas para evitar remontes sobre imagen. */
.franja3-layout {
    grid-template-columns: minmax(270px, 340px) minmax(0, 1fr) !important;
    gap: clamp(54px, 5.8vw, 108px) !important;
}

.franja3-copy {
    max-width: 340px !important;
    overflow: visible !important;
}

.franja3-copy h2 {
    max-width: 300px !important;
    font-size: clamp(2.08rem, 2.26vw, 2.92rem) !important;
    line-height: 1.08 !important;
    letter-spacing: -.045em !important;
    margin-bottom: 22px !important;
}

.franja3-copy h2 span {
    max-width: 100% !important;
}

.franja3-cards {
    min-width: 0 !important;
}

.training-card {
    min-width: 0 !important;
}

.training-image {
    height: clamp(160px, 11.6vw, 200px) !important;
}

.training-content {
    padding-inline: clamp(16px, 1.15vw, 21px) !important;
}

.training-content h3 {
    font-size: clamp(1.04rem, 1.1vw, 1.42rem) !important;
    line-height: 1.06 !important;
    letter-spacing: -.035em !important;
}

.training-content p {
    font-size: clamp(.8rem, .78vw, .92rem) !important;
    line-height: 1.36 !important;
}

/* Franja 5: precios completos, centrados y sin cortes en tarjetas. */
.plan-premium-card {
    overflow: hidden !important;
    padding-left: clamp(16px, 1.05vw, 20px) !important;
    padding-right: clamp(16px, 1.05vw, 20px) !important;
    min-width: 0 !important;
}

.plan-premium-price {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
    font-size: clamp(1.72rem, 2.05vw, 2.48rem) !important;
    line-height: .95 !important;
    letter-spacing: -.07em !important;
    transform: translateX(-0.015em);
    font-variant-numeric: tabular-nums;
}

.plan-premium-card-featured .plan-premium-price {
    font-size: clamp(2.05rem, 2.55vw, 3.1rem) !important;
    letter-spacing: -.075em !important;
}

.plan-premium-card h3 {
    font-size: clamp(1.12rem, 1.18vw, 1.36rem) !important;
    letter-spacing: -.035em !important;
}

@media (max-width: 1500px) {
    .franja3-layout {
        grid-template-columns: minmax(250px, 305px) minmax(0, 1fr) !important;
        gap: clamp(34px, 4.8vw, 72px) !important;
    }

    .franja3-copy h2 {
        max-width: 280px !important;
        font-size: clamp(1.95rem, 2.08vw, 2.55rem) !important;
    }

    .training-content h3 {
        font-size: clamp(.98rem, 1.16vw, 1.28rem) !important;
    }

    .plan-premium-price {
        font-size: clamp(1.6rem, 1.92vw, 2.22rem) !important;
    }

    .plan-premium-card-featured .plan-premium-price {
        font-size: clamp(1.95rem, 2.35vw, 2.75rem) !important;
    }
}

@media (max-width: 1180px) {
    .franja3-layout {
        grid-template-columns: 1fr !important;
        gap: 28px !important;
    }

    .franja3-copy {
        max-width: 720px !important;
    }

    .franja3-copy h2 {
        max-width: 520px !important;
        font-size: clamp(2.25rem, 4vw, 3.15rem) !important;
    }

    .training-content h3 {
        font-size: clamp(1.2rem, 2.2vw, 1.62rem) !important;
    }

    .plan-premium-price {
        font-size: clamp(2rem, 4.8vw, 2.95rem) !important;
    }

    .plan-premium-card-featured .plan-premium-price {
        font-size: clamp(2.1rem, 5.6vw, 3.25rem) !important;
    }
}

@media (max-width: 980px) {
    .training-image {
        height: 205px !important;
    }
}

@media (max-width: 767px) {
    .franja3-copy h2 {
        max-width: 100% !important;
        font-size: clamp(2.15rem, 9.6vw, 3.05rem) !important;
    }

    .franja3-button {
        width: 100% !important;
    }

    .training-content h3 {
        font-size: clamp(1.55rem, 6.7vw, 2.06rem) !important;
    }

    .plan-premium-card {
        padding-left: 18px !important;
        padding-right: 18px !important;
    }

    .plan-premium-price,
    .plan-premium-card-featured .plan-premium-price {
        font-size: clamp(2rem, 11.2vw, 2.82rem) !important;
        letter-spacing: -.075em !important;
    }
}

@media (max-width: 430px) {
    .plan-premium-price,
    .plan-premium-card-featured .plan-premium-price {
        font-size: clamp(1.82rem, 10.2vw, 2.42rem) !important;
    }
}

@media (max-width: 360px) {
    .plan-premium-price,
    .plan-premium-card-featured .plan-premium-price {
        font-size: 1.78rem !important;
        letter-spacing: -.08em !important;
    }
}


/* =========================================================
   V36 - Inclinación real de marca tipo italic
   Se fuerza una oblicua visible hacia la derecha sin tocar la
   estructura corregida de las franjas ni cortar los precios.
   ========================================================= */
:root {
    --gymcontrol-oblique-display: 14deg;
    --gymcontrol-oblique-body: 10deg;
}

body,
p,
li,
small,
input,
select,
textarea,
table,
td,
.contact-info,
.contact-info a,
.hero-copy-subtitle,
.hero-v9-subtitle,
.hero-v24-subtitle,
.split-heading p,
.schedule-intro p,
.class-content p,
.training-content p,
.coach-content p,
.footer-copy,
.help-text {
    font-style: italic !important;
    font-style: oblique var(--gymcontrol-oblique-body) !important;
    font-synthesis: style weight;
}

h1,
h2,
h3,
h4,
.brand,
.brand-mark,
.brand-text,
.eyebrow,
.nav-links a,
.nav-links-premium a,
.mobile-menu a,
.mobile-menu-premium a,
.btn,
.card-link,
.price-amount,
.price-badge,
.stat-card strong,
.stat-card p,
.floating-badge strong,
.floating-badge span,
.schedule-tag,
.schedule-line strong,
.schedule-v2-card h3,
.schedule-v2-tag,
.schedule-v2-slots p,
.coach-content span,
.gallery-card figcaption,
label,
.hero-tags span,
.hero-disciplines span,
.hero-link-plans,
.hero-v9-disciplines span,
.hero-v9-plan-link,
.hero-v24-disciplines span,
.hero-v24-plan-link,
.franja3-copy h2,
.franja3-copy .eyebrow,
.franja3-button,
.training-content h3,
.plans-premium-intro h2,
.plans-premium-intro h2 em,
.plans-premium-intro .eyebrow,
.plan-premium-card h3,
.plan-premium-price,
.plan-premium-ribbon,
.plan-premium-btn,
.facilities-showcase-header h2 {
    font-style: italic !important;
    font-style: oblique var(--gymcontrol-oblique-display) !important;
    font-synthesis: style weight;
}

/* Los íconos no deben inclinarse ni perder la fuente FontAwesome. */
[class^="fa-"],
[class*=" fa-"],
i[class^="fa-"],
i[class*=" fa-"] {
    font-style: normal !important;
    font-synthesis: none !important;
}

/* Aire adicional para que la oblicua no invada la imagen en la franja 4. */
.franja3-copy {
    padding-right: clamp(8px, 1.2vw, 18px) !important;
}

.franja3-copy h2 {
    letter-spacing: -0.035em !important;
}

.training-content h3 {
    padding-right: 8px !important;
}

/* Seguridad extra para que los precios oblicuos no se corten. */
.plan-premium-card {
    padding-left: clamp(18px, 1.55vw, 26px) !important;
    padding-right: clamp(18px, 1.55vw, 26px) !important;
}

.plan-premium-price {
    display: block;
    max-width: 100%;
    width: 100%;
    white-space: nowrap !important;
    letter-spacing: -0.075em !important;
    padding-left: .10em;
    padding-right: .20em;
    font-size: clamp(1.78rem, 2.08vw, 2.48rem) !important;
}

.plan-premium-card-featured .plan-premium-price {
    font-size: clamp(2.12rem, 2.62vw, 3.08rem) !important;
    letter-spacing: -0.078em !important;
}

@media (max-width: 1500px) {
    .plan-premium-price {
        font-size: clamp(1.66rem, 2.02vw, 2.28rem) !important;
    }

    .plan-premium-card-featured .plan-premium-price {
        font-size: clamp(1.94rem, 2.44vw, 2.78rem) !important;
    }
}

@media (max-width: 1180px) {
    .plans-premium-grid {
        overflow: visible !important;
    }

    .plan-premium-price {
        font-size: clamp(2rem, 4.7vw, 2.86rem) !important;
        letter-spacing: -0.072em !important;
    }

    .plan-premium-card-featured .plan-premium-price {
        font-size: clamp(2.1rem, 5.45vw, 3.12rem) !important;
    }
}

@media (max-width: 767px) {
    :root {
        --gymcontrol-oblique-display: 12deg;
        --gymcontrol-oblique-body: 8deg;
    }

    .franja3-copy {
        padding-right: 0 !important;
    }

    .plan-premium-price,
    .plan-premium-card-featured .plan-premium-price {
        font-size: clamp(1.96rem, 10.4vw, 2.72rem) !important;
        letter-spacing: -0.082em !important;
    }
}

@media (max-width: 430px) {
    .plan-premium-price,
    .plan-premium-card-featured .plan-premium-price {
        font-size: clamp(1.76rem, 9.7vw, 2.34rem) !important;
        letter-spacing: -0.086em !important;
    }
}

@media (max-width: 360px) {
    .plan-premium-price,
    .plan-premium-card-featured .plan-premium-price {
        font-size: 1.68rem !important;
        letter-spacing: -0.088em !important;
    }
}

/* =========================================================
   V37 - Italic persistente después de cargar fuentes locales
   La fuente Tactic se declara como normal en brand-fonts.css y aquí
   se fuerza la oblicua. Así no vuelve a enderezarse cuando termina
   de cargar el archivo .ttf del servidor.
   ========================================================= */
html {
    font-synthesis: style weight;
    font-synthesis-style: auto;
}

body,
p,
li,
small,
input,
select,
textarea,
table,
td,
.contact-info,
.contact-info a,
.hero-copy-subtitle,
.hero-v9-subtitle,
.hero-v24-subtitle,
.split-heading p,
.schedule-intro p,
.class-content p,
.training-content p,
.coach-content p,
.footer-copy,
.help-text,
.contact-premium-item span {
    font-style: italic !important;
    font-style: oblique 10deg !important;
    font-synthesis: style weight !important;
    font-synthesis-style: auto !important;
}

h1,
h2,
h3,
h4,
.brand,
.brand-mark,
.brand-text,
.eyebrow,
.nav-links a,
.nav-links-premium a,
.mobile-menu a,
.mobile-menu-premium a,
.btn,
.card-link,
.price-amount,
.price-badge,
.stat-card strong,
.stat-card p,
.floating-badge strong,
.floating-badge span,
.schedule-tag,
.schedule-line strong,
.schedule-v2-card h3,
.schedule-v2-tag,
.schedule-v2-slots p,
.coach-content span,
.gallery-card figcaption,
label,
.hero-tags span,
.hero-disciplines span,
.hero-link-plans,
.hero-v9-disciplines span,
.hero-v9-plan-link,
.hero-v24-copy h1 span,
.hero-v24-disciplines span,
.hero-v24-plan-link,
.franja3-copy h2,
.franja3-copy h2 span,
.franja3-copy .eyebrow,
.franja3-button,
.training-content h3,
.plans-premium-intro h2,
.plans-premium-intro h2 span,
.plans-premium-intro h2 em,
.plans-premium-intro .eyebrow,
.plan-premium-card h3,
.plan-premium-price,
.plan-premium-card li span,
.plan-premium-ribbon,
.plan-premium-btn,
.facilities-showcase-header h2,
.contact-premium-copy h2,
.contact-premium-copy h2 span,
.contact-premium-copy h2 em,
.contact-premium-copy .eyebrow,
.contact-premium-btn {
    font-style: italic !important;
    font-style: oblique 14deg !important;
    font-synthesis: style weight !important;
    font-synthesis-style: auto !important;
}

/* Seguridad extra: algunos navegadores no sintetizan bien la oblicua
   en fuentes locales pesadas. En los textos más visibles se agrega una
   micro-inclinación visual sin mover imágenes, tarjetas ni contenedores. */
.hero-v24-copy h1 span,
.franja3-copy h2 span,
.plans-premium-intro h2 span,
.contact-premium-copy h2 span,
.schedule-v2-intro h2 span,
.training-content h3,
.plan-premium-card h3,
.plan-premium-price,
.facilities-showcase-header h2 {
    display: inline-block;
    transform: skewX(-5deg) !important;
    transform-origin: left center !important;
}

/* Mantener transformaciones especiales existentes. */
.plan-premium-ribbon {
    transform: rotate(45deg) skewX(-5deg) !important;
    transform-origin: center !important;
}

/* Los íconos conservan FontAwesome y no se deforman. */
[class^="fa-"],
[class*=" fa-"],
i[class^="fa-"],
i[class*=" fa-"] {
    font-style: normal !important;
    font-synthesis: none !important;
    transform: none !important;
}

/* Aire extra para que la oblicua no vuelva a montarse sobre imágenes. */
.franja3-copy {
    padding-right: clamp(14px, 1.8vw, 28px) !important;
}

.franja3-copy h2 {
    letter-spacing: -0.04em !important;
}

.training-content h3 {
    padding-right: 12px !important;
}

/* Seguridad extra para que los precios oblicuos no se corten. */
.plan-premium-card {
    overflow: hidden !important;
    padding-left: clamp(20px, 1.8vw, 30px) !important;
    padding-right: clamp(20px, 1.8vw, 30px) !important;
}

.plan-premium-price {
    display: block !important;
    max-width: 100% !important;
    width: 100% !important;
    white-space: nowrap !important;
    letter-spacing: -0.078em !important;
    padding-left: .16em !important;
    padding-right: .28em !important;
    box-sizing: border-box !important;
    font-size: clamp(1.72rem, 2.02vw, 2.42rem) !important;
}

.plan-premium-card-featured .plan-premium-price {
    font-size: clamp(2rem, 2.5vw, 2.95rem) !important;
    letter-spacing: -0.08em !important;
}

@media (max-width: 1500px) {
    .plan-premium-price {
        font-size: clamp(1.58rem, 1.98vw, 2.22rem) !important;
    }

    .plan-premium-card-featured .plan-premium-price {
        font-size: clamp(1.85rem, 2.35vw, 2.68rem) !important;
    }
}

@media (max-width: 1180px) {
    .plans-premium-grid {
        overflow: visible !important;
    }

    .plan-premium-price {
        font-size: clamp(1.92rem, 4.55vw, 2.78rem) !important;
        letter-spacing: -0.076em !important;
    }

    .plan-premium-card-featured .plan-premium-price {
        font-size: clamp(2rem, 5.25vw, 3rem) !important;
    }
}

@media (max-width: 767px) {
    body,
    p,
    li,
    small,
    input,
    select,
    textarea,
    table,
    td,
    .hero-v24-subtitle,
    .training-content p,
    .contact-premium-item span {
        font-style: italic !important;
        font-style: oblique 8deg !important;
    }

    h1,
    h2,
    h3,
    h4,
    .eyebrow,
    .nav-links a,
    .nav-links-premium a,
    .mobile-menu a,
    .mobile-menu-premium a,
    .btn,
    .hero-v24-copy h1 span,
    .hero-v24-disciplines span,
    .hero-v24-plan-link,
    .franja3-copy h2 span,
    .training-content h3,
    .plans-premium-intro h2 span,
    .plan-premium-card h3,
    .plan-premium-price,
    .plan-premium-card li span,
    .contact-premium-copy h2 span,
    .contact-premium-btn {
        font-style: italic !important;
        font-style: oblique 12deg !important;
    }

    .hero-v24-copy h1 span,
    .franja3-copy h2 span,
    .plans-premium-intro h2 span,
    .contact-premium-copy h2 span,
    .schedule-v2-intro h2 span,
    .training-content h3,
    .plan-premium-card h3,
    .plan-premium-price,
    .facilities-showcase-header h2 {
        transform: skewX(-4deg) !important;
    }

    .franja3-copy {
        padding-right: 0 !important;
    }

    .plan-premium-price,
    .plan-premium-card-featured .plan-premium-price {
        font-size: clamp(1.86rem, 9.9vw, 2.62rem) !important;
        letter-spacing: -0.085em !important;
        padding-right: .34em !important;
    }
}

@media (max-width: 430px) {
    .plan-premium-price,
    .plan-premium-card-featured .plan-premium-price {
        font-size: clamp(1.66rem, 9.35vw, 2.25rem) !important;
        letter-spacing: -0.088em !important;
    }
}

@media (max-width: 360px) {
    .plan-premium-price,
    .plan-premium-card-featured .plan-premium-price {
        font-size: 1.58rem !important;
        letter-spacing: -0.09em !important;
    }
}

/* =========================================================
   V38 - Mobile italic persistente + hero responsive premium
   Solicitud cliente: en celulares la fuente debe verse inclinada y
   el logo redondo debe ocupar mejor el espacio vacío del hero.
   ========================================================= */
:root {
    --gymcontrol-mobile-text-skew: -7deg;
    --gymcontrol-mobile-soft-skew: -5deg;
}

/* Refuerzo general: la oblicua ya no depende de que el navegador móvil
   sintetice el italic de la fuente local. Se aplica una micro-inclinación
   visual solo a textos, no a imágenes ni contenedores de tarjetas. */
@media (max-width: 1080px) {
    .brand-premium img {
        transform: skewX(var(--gymcontrol-mobile-soft-skew)) !important;
        transform-origin: left center !important;
    }

    .nav-links-premium a,
    .mobile-menu-premium a,
    .eyebrow,
    .hero-v24-copy h1 span,
    .hero-v24-subtitle,
    .hero-v24-disciplines span,
    .hero-v24-plan-link,
    .stat-card strong,
    .stat-card p,
    .franja3-copy h2 span,
    .franja3-copy p,
    .training-content h3,
    .training-content p,
    .schedule-v2-intro h2 span,
    .schedule-v2-tag,
    .schedule-v2-slots p,
    .plans-premium-intro h2 span,
    .plan-premium-card h3,
    .plan-premium-price,
    .plan-premium-card li span,
    .facilities-showcase-header h2,
    .contact-premium-copy h2 span,
    .contact-premium-item span {
        display: inline-block !important;
        transform: skewX(var(--gymcontrol-mobile-text-skew)) !important;
        transform-origin: left center !important;
        font-style: italic !important;
        font-style: oblique 16deg !important;
        font-synthesis: style weight !important;
        -webkit-font-smoothing: antialiased;
    }

    .hero-v24-button,
    .franja3-button,
    .schedule-v2-card-accent .btn,
    .plan-premium-btn,
    .contact-premium-btn,
    .btn-login-premium {
        transform: skewX(-3deg) !important;
        transform-origin: center !important;
        font-style: italic !important;
        font-style: oblique 16deg !important;
    }

    .hero-v24-button:hover,
    .franja3-button:hover,
    .schedule-v2-card-accent .btn:hover,
    .plan-premium-btn:hover,
    .contact-premium-btn:hover,
    .btn-login-premium:hover {
        transform: skewX(-3deg) translateY(-1px) !important;
    }

    [class^="fa-"],
    [class*=" fa-"],
    i[class^="fa-"],
    i[class*=" fa-"] {
        transform: none !important;
        font-style: normal !important;
    }

    .hero-v24-plan-link i,
    .hero-v24-disciplines i,
    .stat-icon i,
    .training-arrow i,
    .plan-premium-icon i,
    .plan-premium-card li i,
    .contact-premium-item i,
    .contact-premium-btn i {
        transform: none !important;
        font-style: normal !important;
    }

    /* Hero móvil: menos vacío vertical y emblema más protagonista. */
    .hero-v24-layout {
        padding-top: clamp(22px, 5vw, 38px) !important;
    }

    .hero-v24-copy {
        position: relative !important;
        z-index: 4 !important;
    }

    .hero-v24-disciplines {
        margin-bottom: 18px !important;
    }

    .hero-v24-actions {
        margin-bottom: 0 !important;
    }

    .hero-v24-right {
        position: relative !important;
        min-height: clamp(310px, 48vw, 430px) !important;
        margin-top: 4px !important;
    }

    .hero-v24-circle {
        width: clamp(130px, 19vw, 176px) !important;
        top: clamp(44px, 8vw, 82px) !important;
        right: clamp(10px, 4vw, 42px) !important;
        filter: drop-shadow(0 22px 42px rgba(0,0,0,.62)) !important;
        opacity: .98 !important;
        transform: none !important;
    }

    .hero-v24-location {
        bottom: 12px !important;
    }

    .hero-v24-bg {
        background:
            linear-gradient(180deg, rgba(0,0,0,.80) 0%, rgba(0,0,0,.54) 26%, rgba(0,0,0,.13) 58%, rgba(0,0,0,.90) 100%),
            linear-gradient(90deg, #000 0%, rgba(0,0,0,.70) 34%, rgba(0,0,0,.10) 68%, #000 100%),
            url('../images/hero-bg-clean-v24.jpg') 66% bottom / cover no-repeat !important;
    }
}

@media (max-width: 767px) {
    :root {
        --gymcontrol-mobile-text-skew: -7.5deg;
        --gymcontrol-mobile-soft-skew: -5.5deg;
    }

    .site-header-premium .container,
    .hero-v24 .container,
    .container,
    .stats-strip .container,
    .franja3-layout,
    .schedule-section-v2 .container,
    .plans-premium-section .container,
    .facilities-showcase-section .container,
    .contact-premium-section .container {
        width: min(calc(100% - 24px), 100%) !important;
    }

    .hero-v24-layout {
        padding-top: 24px !important;
    }

    .hero-v24-copy h1 {
        letter-spacing: -.025em !important;
    }

    .hero-v24-subtitle {
        margin: 16px 0 18px !important;
    }

    .hero-v24-disciplines {
        gap: 9px !important;
    }

    .hero-v24-disciplines span {
        min-height: 42px !important;
        border-radius: 999px !important;
        backdrop-filter: blur(8px);
        -webkit-backdrop-filter: blur(8px);
    }

    .hero-v24-right {
        min-height: clamp(330px, 72vw, 430px) !important;
    }

    .hero-v24-circle {
        width: clamp(138px, 34vw, 174px) !important;
        top: clamp(54px, 16vw, 92px) !important;
        right: clamp(12px, 5vw, 34px) !important;
    }

    .hero-v24-location {
        left: 0 !important;
        right: 0 !important;
        bottom: 10px !important;
        border-radius: 18px !important;
    }

    /* Franja de entrenamiento: en móvil queda limpia, sin montarse y con lectura fuerte. */
    .franja3-layout {
        gap: 22px !important;
    }

    .franja3-copy h2 span {
        display: block !important;
    }

    .training-card {
        border-radius: 16px !important;
    }

    .training-content h3,
    .training-content p {
        max-width: 100% !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
    }

    /* Planes: más aire lateral para compensar la oblicua visual. */
    .plans-premium-grid {
        gap: 16px !important;
    }

    .plan-premium-card {
        border-radius: 18px !important;
        padding-left: 22px !important;
        padding-right: 22px !important;
    }

    .plan-premium-price {
        padding-left: .22em !important;
        padding-right: .42em !important;
        letter-spacing: -.09em !important;
        transform: skewX(var(--gymcontrol-mobile-text-skew)) translateX(-.02em) !important;
    }
}

@media (max-width: 540px) {
    .nav-wrap-premium {
        min-height: 68px !important;
    }

    .brand-premium img {
        width: clamp(132px, 38vw, 158px) !important;
    }

    .hero-v24 {
        padding-top: 68px !important;
    }

    .hero-v24-layout {
        padding-top: 22px !important;
    }

    .hero-v24-copy h1 {
        font-size: clamp(2.42rem, 13.4vw, 3.55rem) !important;
        line-height: .87 !important;
    }

    .hero-v24-subtitle {
        font-size: .98rem !important;
    }

    .hero-v24-disciplines {
        grid-template-columns: 1fr !important;
        gap: 8px !important;
    }

    .hero-v24-disciplines span {
        min-height: 42px !important;
        padding: 9px 14px !important;
        font-size: .82rem !important;
    }

    .hero-v24-button {
        min-height: 54px !important;
    }

    .hero-v24-plan-link {
        min-height: 52px !important;
        font-size: 1.06rem !important;
        letter-spacing: .025em !important;
    }

    .hero-v24-right {
        min-height: clamp(338px, 86vw, 420px) !important;
        margin-top: 2px !important;
    }

    .hero-v24-circle {
        width: clamp(132px, 38vw, 162px) !important;
        top: clamp(66px, 18vw, 96px) !important;
        right: clamp(12px, 5vw, 28px) !important;
    }

    .hero-v24-location {
        padding: 13px 15px !important;
    }

    .hero-v24-location strong,
    .hero-v24-location span {
        font-size: .86rem !important;
    }
}

@media (max-width: 420px) {
    .hero-v24-right {
        min-height: 350px !important;
    }

    .hero-v24-circle {
        width: 148px !important;
        top: 78px !important;
        right: 18px !important;
    }

    .plan-premium-card {
        padding-left: 18px !important;
        padding-right: 18px !important;
    }

    .plan-premium-price,
    .plan-premium-card-featured .plan-premium-price {
        font-size: clamp(1.74rem, 9.15vw, 2.22rem) !important;
        padding-right: .48em !important;
    }
}

@media (max-width: 360px) {
    .hero-v24-circle {
        width: 132px !important;
        top: 76px !important;
        right: 14px !important;
    }

    .hero-v24-right {
        min-height: 332px !important;
    }
}

/* =========================================================
   SOCIAL LINKS PATCH v39 - Instagram + TikTok
   ========================================================= */
.contact-premium-item a {
    color: rgba(255,255,255,.92);
    font-family: var(--font-display);
    font-size: clamp(1rem, 1.25vw, 1.45rem);
    font-weight: 800;
    line-height: 1.34;
    text-decoration: none;
    overflow-wrap: anywhere;
}

.contact-premium-item a:hover {
    color: var(--accent);
}


/* CTA de acceso a la nueva PWA GYMCONTROL */
.gymcontrol-app-cta{background:#050606;border-top:1px solid rgba(194,24,25,.16);border-bottom:1px solid rgba(194,24,25,.16);}
.gymcontrol-app-cta-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:32px;align-items:center;padding:72px 0;}
.gymcontrol-app-cta h2{font-family:var(--font-display, inherit);font-size:clamp(38px,5vw,76px);line-height:.95;text-transform:uppercase;color:#fff;margin:0 0 18px;}
.gymcontrol-app-cta h2 em{color:#C21819;font-style:normal;}
.gymcontrol-app-cta p{color:#cfd2d5;font-size:20px;max-width:760px;}
.gymcontrol-app-cta-actions{display:flex;gap:14px;justify-content:flex-end;flex-wrap:wrap;}
@media(max-width:800px){.gymcontrol-app-cta-grid{grid-template-columns:1fr;padding:48px 0}.gymcontrol-app-cta-actions{justify-content:flex-start}.gymcontrol-app-cta p{font-size:16px}}

/* GYMCONTROL generic brand layer */
.brand-premium{background:#fff;border-radius:12px;padding:7px 10px;box-shadow:0 10px 30px rgba(0,0,0,.18)}
.brand-premium img{object-fit:contain!important}.hero-v24-circle{background:#fff!important;border-radius:24px!important;padding:12px!important;object-fit:contain!important}.footer-logo{background:#fff;border-radius:10px;padding:6px 9px}.gymcontrol-app-cta{background:linear-gradient(135deg,#0B0D10,#171A1F)!important}.gymcontrol-app-cta h2 em{color:#ED1C24!important}

/* =========================================================
   GYMCONTROL CROSSFIT V1.2 — LOGOS OFICIALES DEL CLIENTE
   Se usan las artes originales BOX CONTROL sin recolor ni fondo blanco.
   ========================================================= */
.brand-premium{
    background:transparent!important;
    border-radius:0!important;
    padding:0!important;
    box-shadow:none!important;
}
.brand-premium img{
    display:block!important;
    object-fit:contain!important;
    filter:none!important;
}
.hero-v24-circle{
    background:transparent!important;
    border-radius:0!important;
    padding:0!important;
    object-fit:contain!important;
    box-shadow:none!important;
    filter:none!important;
}
.footer-logo{
    background:transparent!important;
    border-radius:0!important;
    padding:0!important;
    filter:none!important;
}
