/* =========================================================
   GYMCONTROL CROSSFIT — Sistema tipográfico premium Anton
   Anton = títulos, navegación, botones y cifras de impacto.
   Roboto = lectura, formularios, tablas y contenido operativo.

   Objetivo: conservar la identidad fuerte de Anton sin solapes,
   inclinaciones sintéticas ni recortes en desktop, tablet o móvil.
   Este archivo se carga al final para normalizar reglas históricas.
   ========================================================= */

:root{
    --gc-display: var(--font-display, 'Anton','Impact','Arial Narrow',Arial,sans-serif);
    --gc-body: var(--font-body, 'Roboto',Arial,Helvetica,sans-serif);
    --gc-title-leading: 1.02;
    --gc-tight-leading: .98;
}

html{
    font-synthesis: none !important;
    text-rendering: optimizeLegibility;
}

/* ---------- Base: nada de oblicua/sesgo sintético ---------- */
body,
body p,
body li,
body small,
body input,
body select,
body textarea,
body table,
body th,
body td,
body label,
body a,
body button{
    font-style: normal !important;
    font-synthesis: none !important;
}

/* Los iconos mantienen su propia fuente y geometría. */
[class^="fa-"],
[class*=" fa-"],
i[class^="fa-"],
i[class*=" fa-"]{
    font-style: normal !important;
    font-synthesis: none !important;
    transform: none !important;
}

/* =========================================================
   LANDING / SITIO PÚBLICO
   ========================================================= */
body:not(.app-body):not(.login-body){
    font-family: var(--gc-body) !important;
    line-height: 1.55;
}

body:not(.app-body) p,
body:not(.app-body) li,
body:not(.app-body) small,
body:not(.app-body) input,
body:not(.app-body) select,
body:not(.app-body) textarea,
body:not(.app-body) table,
body:not(.app-body) th,
body:not(.app-body) td,
body:not(.app-body) .hero-v24-subtitle,
body:not(.app-body) .training-content p,
body:not(.app-body) .franja3-copy p,
body:not(.app-body) .contact-premium-item span,
body:not(.app-body) .contact-premium-item a{
    font-family: var(--gc-body) !important;
    font-style: normal !important;
    line-height: 1.5;
    transform: none !important;
}

body:not(.app-body) h1,
body:not(.app-body) h2,
body:not(.app-body) h3,
body:not(.app-body) h4,
body:not(.app-body) .eyebrow,
body:not(.app-body) .nav-links a,
body:not(.app-body) .mobile-menu a,
body:not(.app-body) .btn,
body:not(.app-body) .card-link,
body:not(.app-body) .price-amount,
body:not(.app-body) .price-badge,
body:not(.app-body) .stat-card strong,
body:not(.app-body) .stat-card p,
body:not(.app-body) .floating-badge strong,
body:not(.app-body) .floating-badge span,
body:not(.app-body) .schedule-tag,
body:not(.app-body) .schedule-line strong,
body:not(.app-body) .schedule-v2-tag,
body:not(.app-body) .schedule-v2-slots p,
body:not(.app-body) .gallery-card figcaption,
body:not(.app-body) .hero-v24-disciplines span,
body:not(.app-body) .hero-v24-plan-link,
body:not(.app-body) .plan-premium-price,
body:not(.app-body) .plan-premium-card h3,
body:not(.app-body) .plan-premium-ribbon,
body:not(.app-body) .plan-premium-btn{
    font-family: var(--gc-display) !important;
    font-weight: 400 !important;
    font-style: normal !important;
    font-synthesis: none !important;
}

/* Títulos: altura real de Anton + respiración segura. */
body:not(.app-body) h1,
body:not(.app-body) h2,
body:not(.app-body) h3,
body:not(.app-body) h4{
    line-height: var(--gc-title-leading) !important;
    letter-spacing: .006em !important;
    overflow-wrap: normal;
    word-break: normal;
}

/* Hero principal: cada línea ocupa su propia fila; no puede montarse. */
.hero-v24-copy h1{
    display: grid !important;
    grid-auto-flow: row;
    align-items: start;
    gap: .045em !important;
    line-height: 1 !important;
    letter-spacing: -.005em !important;
    margin-bottom: 0 !important;
}
.hero-v24-copy h1 span{
    display: block !important;
    width: fit-content;
    max-width: 100%;
    line-height: .96 !important;
    margin: 0 !important;
    padding: 0 .025em .015em 0 !important;
    transform: none !important;
    font-style: normal !important;
    white-space: nowrap;
}
.hero-v24-subtitle{
    margin-top: clamp(20px,2vw,30px) !important;
    margin-bottom: clamp(20px,2vw,28px) !important;
    line-height: 1.32 !important;
    font-style: normal !important;
}
.hero-v24-disciplines{
    row-gap: 10px !important;
}
.hero-v24-disciplines span{
    line-height: 1.12 !important;
    letter-spacing: .025em !important;
    transform: none !important;
    white-space: nowrap;
}
.hero-v24-plan-link,
.hero-v24-button,
.btn-login-premium,
.franja3-button,
.plan-premium-btn,
.contact-premium-btn{
    line-height: 1.05 !important;
    letter-spacing: .035em !important;
    font-style: normal !important;
    transform: none !important;
    white-space: normal;
    text-align: center;
}
.hero-v24-plan-link:hover,
.hero-v24-button:hover,
.btn-login-premium:hover,
.franja3-button:hover,
.plan-premium-btn:hover,
.contact-premium-btn:hover{
    transform: translateY(-1px) !important;
}

/* Menús y navegación: Anton sí, pero con caja suficiente. */
.nav-links-premium a,
.mobile-menu-premium a{
    line-height: 1.15 !important;
    letter-spacing: .045em !important;
    transform: none !important;
    white-space: nowrap;
}
.brand-premium img{
    transform: none !important;
}

/* Títulos de secciones y tarjetas. */
.franja3-copy h2,
.plans-premium-intro h2,
.contact-premium-copy h2,
.schedule-v2-intro h2,
.facilities-showcase-header h2{
    line-height: 1.01 !important;
    letter-spacing: .003em !important;
}
.franja3-copy h2 span,
.plans-premium-intro h2 span,
.plans-premium-intro h2 em,
.contact-premium-copy h2 span,
.contact-premium-copy h2 em,
.schedule-v2-intro h2 span,
.training-content h3,
.plan-premium-card h3,
.facilities-showcase-header h2{
    transform: none !important;
    font-style: normal !important;
    line-height: 1.04 !important;
}
.franja3-copy h2 span,
.plans-premium-intro h2 span,
.contact-premium-copy h2 span,
.schedule-v2-intro h2 span{
    display: block !important;
    padding-bottom: .025em;
}
.training-content h3,
.plan-premium-card h3,
.schedule-v2-card h3{
    letter-spacing: .01em !important;
    overflow-wrap: break-word;
    word-break: normal;
}

/* Precios: eliminar compresión extrema creada para la oblicua anterior. */
.plan-premium-price,
.plan-premium-card-featured .plan-premium-price{
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    letter-spacing: .002em !important;
    line-height: 1 !important;
    transform: none !important;
    white-space: nowrap !important;
    font-variant-numeric: tabular-nums;
}
.plan-premium-ribbon{
    transform: rotate(45deg) !important;
    font-style: normal !important;
    line-height: 1 !important;
}

/* Etiquetas de formularios: Roboto da mejor lectura que Anton en texto operativo. */
body:not(.app-body) label{
    font-family: var(--gc-body) !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
    line-height: 1.3 !important;
}

/* =========================================================
   PWA / PORTALES INTERNOS
   ========================================================= */
body.app-body,
body.app-body p,
body.app-body li,
body.app-body small,
body.app-body input,
body.app-body select,
body.app-body textarea,
body.app-body table,
body.app-body th,
body.app-body td,
body.app-body label{
    font-family: var(--app-font-body, var(--gc-body)) !important;
    font-style: normal !important;
}
body.app-body{
    line-height: 1.45;
}

body.app-body .app-nav a,
body.app-body .btn-app-primary,
body.app-body .btn-soft,
body.app-body .btn-outline,
body.app-body .mini-btn,
body.app-body .workout-start-btn,
body.app-body .workout-bottom-bar button,
body.app-body .role-tile strong,
body.app-body .page-head h1,
body.app-body .panel h2,
body.app-body .kpi strong,
body.app-body .day-number,
body.app-body .workout-day-card h3,
body.app-body .workout-mobile-head strong,
body.app-body .video-modal-card h2,
body.app-body .routine-card h3,
body.app-body .routine-exercise-head h3,
body.app-body .exercise-library-card h3,
body.app-body .athlete-strength-hero h1,
body.app-body .athlete-strength-hero h2,
body.app-body .coach-progress-hero h2,
body.app-body .login-claim h1,
body.app-body .login-card h2{
    font-family: var(--app-font-title, var(--gc-display)) !important;
    font-weight: 400 !important;
    font-style: normal !important;
    font-synthesis: none !important;
    letter-spacing: .012em !important;
}

body.app-body .page-head h1{
    line-height: 1.03 !important;
    padding-bottom: .04em;
}
body.app-body .panel h2,
body.app-body .routine-card h3,
body.app-body .routine-exercise-head h3,
body.app-body .exercise-library-card h3,
body.app-body .workout-day-card h3,
body.app-body .video-modal-card h2,
body.app-body .coach-progress-hero h2,
body.app-body .athlete-strength-hero h1,
body.app-body .athlete-strength-hero h2{
    line-height: 1.08 !important;
    overflow-wrap: break-word;
    word-break: normal;
}
body.app-body .app-nav a{
    line-height: 1.16 !important;
    letter-spacing: .025em !important;
    min-height: 48px;
}
body.app-body .btn-app-primary,
body.app-body .btn-soft,
body.app-body .btn-outline,
body.app-body .mini-btn,
body.app-body .workout-start-btn,
body.app-body .workout-bottom-bar button{
    line-height: 1.08 !important;
    letter-spacing: .035em !important;
    text-align: center;
}
body.app-body .kpi strong,
body.app-body .day-number{
    line-height: 1 !important;
    font-variant-numeric: tabular-nums;
}
body.app-body .role-tile strong{
    line-height: 1.12 !important;
    text-align: center;
}
body.app-body .workout-mobile-head strong{
    line-height: 1.03 !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
body.app-body .login-claim h1{
    line-height: .98 !important;
    display: grid;
    gap: .05em;
}
body.app-body .login-claim h1 span{
    line-height: .98 !important;
    padding-bottom: .015em;
}
body.app-body .login-card h2{
    line-height: 1.02 !important;
}

/* El dashboard claro conserva su jerarquía y evita titulares gigantes. */
body.gymcontrol-dashboard .page-head h1{
    font-size: clamp(28px,3vw,36px) !important;
    line-height: 1.04 !important;
    letter-spacing: .005em !important;
}
body.gymcontrol-dashboard .panel h2{
    font-size: 18px !important;
    line-height: 1.08 !important;
}
body.gymcontrol-dashboard .kpi strong{
    font-size: clamp(26px,2.2vw,32px) !important;
}

/* =========================================================
   ADMINISTRADOR DE LANDING
   ========================================================= */
body.login-body,
.admin-shell{
    font-family: var(--gc-body) !important;
}
.admin-topbar h1,
.card h2,
.card h3,
.sidebar-nav a,
.btn,
.kpi-label,
.kpi-value,
.quick-link strong,
.status-pill,
.admin-chip,
.login-brand,
.login-card h1{
    font-family: var(--gc-display) !important;
    font-weight: 400 !important;
    font-style: normal !important;
    font-synthesis: none !important;
    letter-spacing: .015em !important;
}
.admin-topbar h1,
.login-card h1{
    line-height: 1.02 !important;
}
.card h2,
.card h3{
    line-height: 1.08 !important;
}
.sidebar-nav a,
.btn,
.kpi-label,
.status-pill,
.admin-chip{
    line-height: 1.12 !important;
}
.kpi-value{
    line-height: 1 !important;
    font-variant-numeric: tabular-nums;
}
.admin-shell label,
.login-card label{
    font-family: var(--gc-body) !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
    line-height: 1.3 !important;
}

/* =========================================================
   RESPONSIVE GLOBAL
   ========================================================= */
@media (max-width: 1080px){
    .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{
        transform: none !important;
        font-style: normal !important;
    }
}

@media (max-width: 767px){
    .hero-v24-copy h1{
        gap: .055em !important;
        line-height: 1 !important;
    }
    .hero-v24-copy h1 span{
        line-height: .96 !important;
        transform: none !important;
    }
    .hero-v24-subtitle{
        line-height: 1.34 !important;
    }
    .hero-v24-disciplines span{
        white-space: normal;
        line-height: 1.18 !important;
    }
    .franja3-copy h2,
    .plans-premium-intro h2,
    .contact-premium-copy h2,
    .schedule-v2-intro h2,
    .facilities-showcase-header h2{
        line-height: 1.03 !important;
    }
    .plan-premium-price,
    .plan-premium-card-featured .plan-premium-price{
        letter-spacing: 0 !important;
        transform: none !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    body.app-body .page-head h1{
        font-size: clamp(30px,9vw,42px) !important;
    }
    body.app-body .panel h2{
        font-size: clamp(23px,7vw,30px) !important;
    }
    body.app-body .routine-card h3,
    body.app-body .workout-day-card h3,
    body.app-body .exercise-library-card h3{
        font-size: clamp(22px,6.5vw,28px) !important;
    }
    body.app-body .app-nav a{
        font-size: 15px !important;
    }
    body.app-body .login-claim h1{
        line-height: 1 !important;
    }
}

@media (max-width: 540px){
    .hero-v24-copy h1{
        font-size: clamp(2.32rem,12.5vw,3.35rem) !important;
        gap: .06em !important;
        letter-spacing: -.008em !important;
    }
    .hero-v24-copy h1 span{
        line-height: .97 !important;
    }
    .hero-v24-plan-link{
        font-size: 1rem !important;
    }
    .nav-links-premium a,
    .mobile-menu-premium a{
        line-height: 1.2 !important;
    }

    body.app-body .login-card{
        padding: 34px 22px !important;
    }
    body.app-body .login-card h2{
        font-size: clamp(34px,10vw,46px) !important;
    }
    body.app-body .workout-mobile-head strong{
        font-size: 21px !important;
    }
}

@media (max-width: 380px){
    .hero-v24-copy h1{
        font-size: clamp(2.1rem,12vw,3rem) !important;
    }
    body.app-body .btn-app-primary,
    body.app-body .workout-bottom-bar button{
        font-size: 18px !important;
    }
}
