/* ===== TIPOGRAFÍAS HAVANA CLUB ===== */

/* Druk Wide y Druk Text (comerciales locales) */
@font-face {
    font-family: 'Druk Wide';
    src: url('../fonts/Druk_Collection/Druk Wide Family/DrukWide-Bold-Trial.otf') format('opentype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Druk Wide';
    src: url('../fonts/Druk_Collection/Druk Wide Family/DrukWide-BoldItalic-Trial.otf') format('opentype');
    font-weight: 700;
    font-style: italic;
    font-display: swap;
}
@font-face {
    font-family: 'Druk Text';
    src: url('../fonts/Druk_Collection/Druk Text Family/DrukText-Medium-Trial.otf') format('opentype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Druk Text';
    src: url('../fonts/Druk_Collection/Druk Text Family/DrukText-Bold-Trial.otf') format('opentype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Druk Text';
    src: url('../fonts/Druk_Collection/Druk Text Family/DrukText-BoldItalic-Trial.otf') format('opentype');
    font-weight: 700;
    font-style: italic;
    font-display: swap;
}

/* Rotis Sans Serif (comercial local) */
@font-face {
    font-family: 'Rotis Sans Serif';
    src: url('../fonts/RotisSansSerif.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

/* Rotis Sans Serif W02 (para compatibilidad con home.css) */
@font-face {
    font-family: 'Rotis Sans Serif W02';
    src: url('../fonts/RotisSansSerif.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

/* Variables CSS para las familias tipográficas */
:root {
    /* Fuente para encabezados - Druk Wide con fallback Druk Text */
    --font-heading: 'Druk Text', 'Druk Wide', Arial, sans-serif;
    /* Fuente para texto - Rotis Sans Serif */
    --font-body: 'Rotis Sans Serif', Arial, sans-serif;
    /* Pesos de fuente */
    --font-weight-light: 300;
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-bold: 700;
    --font-weight-black: 900;
}

/* ===== ESTILOS BASE PARA ENCABEZADOS ===== */
h1, h2, h3, h4, h5, h6,
.heading,
.text2, .text3, .text5, .text6, .text7, .text8, .text9, .text11, .text18, .text19, .text20, .text22, .text23, .text25, .text26 {
    font-family: var(--font-heading);
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.02em;
    line-height: 1.1;
    text-transform: uppercase;
}

/* Tamaños específicos para encabezados */
h1, .text2 {
    font-size: clamp(60px, 8vw, 96px);
    font-weight: var(--font-weight-black);
}

h2, .text6, .text8, .text19, .text20, .text22, .text25 {
    font-size: clamp(36px, 85px, 95px);
    font-weight: var(--font-weight-bold);
}

h3, .text3, .text7 {
    font-size: clamp(24px, 4vw, 48px);
    font-weight: var(--font-weight-bold);
}

h4, .text9, .text18, .text23, .text26 {
    font-size: clamp(20px, 3vw, 45px);
    font-weight: var(--font-weight-medium);
}

h5, .text11 {
    font-size: clamp(18px, 2.5vw, 35px);
    font-weight: var(--font-weight-medium);
}

/* Estilo específico para .text5 - descripciones */
.text5 {
    font-family: 'Rotis Sans Serif W02', 'Roboto', 'Helvetica Neue', Arial, sans-serif !important;
    font-weight: var(--font-weight-normal);
    text-transform: none;
    letter-spacing: 0.01em;
    line-height: 1.5;
}

h6 {
    font-size: clamp(16px, 2vw, 24px);
    font-weight: var(--font-weight-medium);
}

/* ===== ESTILOS BASE PARA TEXTO CORRIDO ===== */
p, span, div, a, li, td, th,
.body-text,
.text10, .text12, .text13, .text14, .text15, .text16, .text17, .text21, .text24, .text27, .text28 {
    font-family: var(--font-body);
    font-weight: var(--font-weight-normal);
    line-height: 1.5;
    letter-spacing: 0.01em;
}

/* Excepción para hero-title-box */
.hero-title-box span,
.hero-title-box h1 span,
.hero-title-box h1 * {
    line-height: 1 !important;
}

/* Tamaños específicos para texto */
.text10 {
    font-size: clamp(16px, 2vw, 32px);
    font-weight: var(--font-weight-normal);
}

.text12, .text13, .text15, .text16, .text17 {
    font-size: clamp(14px, 1.8vw, 30px);
    font-weight: var(--font-weight-bold);
}

.text14 {
    font-size: clamp(18px, 2.5vw, 40px);
    font-weight: var(--font-weight-bold);
}

.text21, .text24 {
    font-size: clamp(16px, 2vw, 32px);
    font-weight: var(--font-weight-medium);
}

.text27, .text28 {
    font-size: clamp(18px, 2.5vw, 40px);
    font-weight: var(--font-weight-bold);
}

/* ===== ESTILOS ESPECÍFICOS PARA NAVEGACIÓN ===== */
nav a, .nav-link {
    font-family: var(--font-heading);
    font-weight: var(--font-weight-medium);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    text-decoration: none;
    transition: all 0.3s ease;
}

nav a:hover, .nav-link:hover {
    font-weight: var(--font-weight-bold);
}

/* ===== ESTILOS PARA BOTONES ===== */
button, .btn, .absolute-text, .absolute-text2, .absolute-text3 {
    font-family: var(--font-heading);
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: clamp(14px, 2vw, 32px);
}

/* ===== OPTIMIZACIONES PARA RENDIMIENTO ===== */
/* Precargar fuentes críticas */
body {
    font-family: var(--font-body);
    font-weight: var(--font-weight-normal);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* Optimización para dispositivos de alta densidad */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
    body {
        -webkit-font-smoothing: subpixel-antialiased;
    }
}

/* ===== RESPONSIVE TYPOGRAPHY ===== */
@media (max-width: 768px) {
    :root {
        --font-weight-bold: 600; /* Reducir peso en móviles para mejor legibilidad */
    }
    
    h1, h2, h3, h4, h5, h6 {
        line-height: 1.2; /* Aumentar interlineado en móviles */
    }
    
    p, .body-text {
        font-size: 16px;
        line-height: 1.6;
    }
}

@media (max-width: 480px) {
    h1, h2, h3, h4, h5, h6 {
        letter-spacing: -0.01em; /* Reducir espaciado en pantallas muy pequeñas */
    }
}

/* ===== UTILIDADES TIPOGRÁFICAS ===== */
.font-heading {
    font-family: var(--font-heading) !important;
}

.font-body {
    font-family: var(--font-body) !important;
}

.font-light {
    font-weight: var(--font-weight-light) !important;
}

.font-normal {
    font-weight: var(--font-weight-normal) !important;
}

.font-medium {
    font-weight: var(--font-weight-medium) !important;
}

.font-bold {
    font-weight: var(--font-weight-bold) !important;
}

.font-black {
    font-weight: var(--font-weight-black) !important;
}

.text-uppercase {
    text-transform: uppercase !important;
}

.text-lowercase {
    text-transform: lowercase !important;
}

.text-capitalize {
    text-transform: capitalize !important;
}

/* ===== MEJORAS DE ACCESIBILIDAD ===== */
@media (prefers-reduced-motion: reduce) {
    * {
        transition: none !important;
        animation: none !important;
    }
}

/* Mejorar contraste para usuarios con dificultades visuales */
@media (prefers-contrast: high) {
    body {
        font-weight: var(--font-weight-medium);
    }
    
    h1, h2, h3, h4, h5, h6 {
        font-weight: var(--font-weight-black);
    }
}

/* Estilos específicos para tipografías diferenciadas */
.druk-text {
    font-family: 'Druk Text', 'Arial Narrow', 'Arial', sans-serif;
    font-weight: 500;
    font-stretch: condensed;
    letter-spacing: -0.02em;
}

.druk-wide {
    font-family: 'Druk Wide', 'Arial Black', 'Arial', sans-serif;
    font-weight: 700;
    font-stretch: expanded;
    letter-spacing: 0.05em;
}

.druk-text-bold-italic {
    font-family: 'Druk Text', 'Arial Narrow', 'Arial', sans-serif;
    font-weight: 700;
    font-style: italic;
    font-stretch: condensed;
    letter-spacing: -0.02em;
    text-transform: uppercase;
}

.druk-text-heavy-italic {
    font-family: 'Druk Text', 'Arial Narrow', 'Arial', sans-serif;
    font-weight: 700;
    font-style: italic;
    font-stretch: condensed;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    font-variation-settings: 'wght' 700;
} 