/**
 * =========================================
 * MALOMAR MUSIC - CSS OPTIMIZADO CON BOOKMARKS
 * =========================================
 * Mobile-First | Componentes Unificados | Media Queries Consolidadas
 * =========================================
 * BOOKMARKS: 
 * [GLOB] = Global/General
 * [HOM]  = Home Page
 * [BIO]  = Bio Page  
 * [SER]  = Services Page
 * [CON]  = Contact Page
 * [DIS]  = Discografía Page
 * [RES]  = Responsive
 * =========================================
 */

/* ========================================= */
/* [GLOB] 0. VARIABLES & RESET
/* ========================================= */

:root {
    /* COLORES */
    --color-primary: #2D3949;
    --color-secondary: #1D262B;
    --color-accent: #A68A36;
    --color-text-light: #F0F0F0;
    --color-text-dark: #212121;
    --color-green-bg: #E8F6F4;
    --color-petrol-black: #101820;
    --color-moss-green: #6C775D;
    --color-white: #FFFFFF;

    /* TIPOGRAFÍA */
    --font-heading: 'Patua One', cursive;
    --font-body: Georgia, 'Times New Roman', serif;
    --font-ui: 'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif;
    --font-size-base: 16px;

    /* LAYOUT */
    --padding-section: 40px 15px;
    --transition-speed: 0.3s ease-in-out;
    --spacing-unit-md: 1rem;
    --spacing-unit-lg: 1.5rem;
    --layout-max-width: 1200px;
    --border-radius-base: 4px;
    --font-multiplier: 1;
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    font-size: var(--font-size-base);
    scroll-behavior: smooth;
    visibility: initial !important;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

/* ========================================= */
/* [GLOB] 1. TIPOGRAFÍA SISTEMÁTICA
/* ========================================= */

body {
    font-family: var(--font-body);
    line-height: 1.6;
    color: var(--color-text-dark);
    font-size: 1.2rem;
    line-height: 1.7;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    line-height: 1.2;
    margin-bottom: 0.5em;
}

a {
    color: var(--color-accent);
    text-decoration: none;
    transition: color var(--transition-speed);
}

a:hover {
    opacity: 0.8;
}

/* ========================================= */
/* [GLOB] 2. COMPONENTES UNIFICADOS
/* ========================================= */

/* ---- 2.1 BOTONES ---- */
.btn {
    display: inline-block;
    padding: 12px 25px;
    margin-top: 15px;
    border: 2px solid var(--color-accent);
    background-color: transparent;
    color: var(--color-accent);
    font-family: var(--font-ui);
    font-weight: bold;
    text-transform: uppercase;
    border-radius: var(--border-radius-base);
    cursor: pointer;
    transition: all var(--transition-speed);
    text-align: center;
}

.btn--primary {
    background-color: var(--color-accent);
    color: var(--color-secondary);
    border-color: var(--color-accent);
}

.btn--secondary {
    border-color: var(--color-white);
    color: var(--color-text-light);
    background-color: transparent;
}

.btn:hover {
    opacity: 0.9;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.btn--primary:hover {
    background-color: var(--color-secondary);
    color: var(--color-accent);
}

.btn--secondary:hover {
    background-color: var(--color-white);
    color: var(--color-secondary);
}

/* ---- 2.2 CARDS ---- */
.card {
    background-color: var(--color-white);
    border-radius: var(--border-radius-base);
    padding: 30px 20px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    transition: all var(--transition-speed);
    border: 2px solid transparent;
}

.card--service {
    text-align: center;
}

.card--service:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 15px rgba(0, 0, 0, 0.15);
}

.card--member {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    background-color: transparent;
    box-shadow: none;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: var(--border-radius-base);
}

.card__title {
    font-family: var(--font-heading);
    font-size: 1.8rem;
    color: var(--color-accent);
    margin-bottom: 1rem;
    text-align: center;
}

.card__content {
    font-size: 1.2rem;
    line-height: 1.7;
    color: var(--color-text-dark);
}

/* ---- 2.3 CONTAINERS ---- */
.container {
    width: 90%;
    max-width: var(--layout-max-width);
    margin: 0 auto;
}

.section-container {
    padding: var(--padding-section);
    text-align: center;
}

.grid {
    display: grid;
    gap: 30px;
}

.grid--1-col { grid-template-columns: 1fr; }
.grid--2-col { grid-template-columns: 1fr; }
.grid--3-col { grid-template-columns: 1fr; }

/* ========================================= */
/* [GLOB] 3. HEADER & NAVEGACIÓN
/* ========================================= */

header {
    width: 100%;
    color: var(--color-text-light);
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1000;
    padding: 1rem 0;
    background-color: rgba(45, 57, 73, 0.4);
    transition: background-color var(--transition-speed);
}

.header-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: var(--layout-max-width);
    margin: 0 auto;
    padding: 0 var(--spacing-unit-lg);
}

/* Logo Slideshow */
.logo-slideshow-container {
    width: 200px;
    height: 60px;
    position: relative;
    overflow: hidden;
}

.logo-slide {
    width: 100%;
    height: 100%;
    object-fit: contain;
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    transition: opacity 1s ease-in-out;
}

.logo-slide.active {
    opacity: 1;
}

/* Selector de Idioma */
.lang-selector {
    display: flex;
    gap: 5px;
    margin-left: auto;
}

.lang-btn {
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.4);
    color: var(--color-text-light);
    padding: 5px 8px;
    font-size: 0.8rem;
    cursor: pointer;
    transition: var(--transition-speed);
    margin-left: 0.5rem;
    border-radius: var(--border-radius-base);
    font-family: var(--font-ui);
}

.lang-btn.active,
.lang-btn:hover {
    background-color: var(--color-accent);
    color: var(--color-secondary);
    border-color: var(--color-accent);
}

/* Menú Hamburguesa */
#menu-toggle {
    display: block;
    background: none;
    border: none;
    color: var(--color-text-light);
    font-size: 1.8rem;
    cursor: pointer;
    margin-left: var(--spacing-unit-md);
    padding: 0;
    line-height: 1;
    z-index: 1010;
}

#menu-toggle::before {
    content: '☰';
}

#menu-toggle[aria-expanded="true"]::before {
    content: '✕';
}

/* Navegación Móvil */
.mobile-nav {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--color-secondary);
    z-index: 999;
    transition: transform 0.4s ease-in-out;
    transform: translateX(100%);
}

.mobile-nav[aria-hidden="false"] {
    transform: translateX(0);
}

.mobile-nav-list {
    list-style: none;
    text-align: center;
    padding: 5rem 2rem 0;
}

.mobile-nav-list li {
    margin: 30px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.mobile-nav-list a {
    color: var(--color-text-light);
    font-size: 1.8rem;
    font-weight: 600;
    padding: 10px 20px;
    display: block;
    font-family: var(--font-ui);
}

.mobile-nav-list a:hover {
    color: var(--color-accent);
}

/* Navegación Desktop */
.desktop-nav {
    display: none;
}

/* ========================================= */
/* [HOM] 4. HERO SECTION (HOME PAGE)
/* ========================================= */

.page-hero-bg {
    background: linear-gradient(
        rgba(45, 57, 73, 0.7),
        rgba(45, 57, 73, 0.7)
    ), url('../assets/mare.jpg') no-repeat center center/cover;
    color: var(--color-text-light);
    padding: 100px 15px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

#hero-intro h2#main-title {
    font-size: 2.5rem;
    color: var(--color-text-light);
    text-align: center;
    margin-bottom: 0.5rem;
    line-height: 1.1;
}

#hero-intro h3 {
    font-size: 1.8rem;
    color: var(--color-accent);
    text-align: center;
    margin-bottom: 1.5rem;
    font-weight: 700;
}

#hero-intro p {
    color: var(--color-text-light);
    max-width: 700px;
    margin: 0 auto 1.5rem;
}

/* Audio Player */
.audio-fragment-player::before {
    content: "Escucha lo último de Malomar";
    display: block;
    text-align: center;
    font-family: var(--font-heading);
    font-size: 1.5rem;
    color: var(--color-text-light);
    margin-bottom: 15px;
    font-weight: bold;
    line-height: 1.2;
}

.audio-fragment-player {
    margin: 30px auto;
    max-width: 100%;
}

/* ========================================= */
/* [HOM] 5. FEATURED SECTION (HOME PAGE)
/* ========================================= */

/* Contenedor Principal */
.s2-frame-container {
    background-color: var(--color-petrol-black);
    color: var(--color-text-light);
    padding: 80px var(--spacing-unit-lg);
}

/* Grid S2 - Mobile First */
.s2-grid {
    display: flex;
    flex-direction: column;
    gap: 30px;
    max-width: var(--layout-max-width);
    margin: 0 auto;
    border: none;
    background-color: transparent;
    padding: 0;
    box-shadow: none;
    border-radius: 0;
}

/* Bloques Individuales */
.s2-block {
    padding: 30px;
    text-align: left;
    color: var(--color-text-light);
    border-radius: 8px;
    border: 2px solid var(--color-white);
}

.bio-teaser {
    background-color: transparent;
}

.moss-green-bg {
    background-color: var(--color-moss-green);
}

/* Títulos S2 */
.s2-block h3.highlight-text {
    font-size: 2.5rem;
    color: var(--color-text-light);
    text-align: center;
    margin-bottom: 0.5rem;
    display: block;
    width: 100%;
}

.s2-block h4.highlight-text {
    font-size: 1.8rem;
    color: var(--color-accent);
    text-align: center;
    margin-bottom: 2rem;
    display: block;
    width: 100%;
}

/* Fotos de Músicos */
.musicians-photos {
    margin-bottom: 20px;
    width: 100%;
    text-align: center;
}

.musician-photo {
    width: 150px;
    height: 150px;
    object-fit: cover;
    border-radius: 50%;
    filter: grayscale(100%);
    border: 3px solid var(--color-accent);
    transition: filter 0.3s;
    display: inline-block;
    margin: 10px;
}

.musician-photo:hover {
    filter: grayscale(0%);
}

/* Eliminar floats antiguos */
.float-left, .float-right {
    float: none !important;
}

/* Texto junto a fotos */
.musicians-photos > p {
    clear: both;
    margin-top: 20px;
    text-align: center;
    font-size: 1.2rem;
    line-height: 1.7;
}

/* Botón en S2 */
.featured-box {
    text-align: center;
    margin-top: 2rem;
    width: 100%;
}

.featured-box .btn {
    display: inline-block;
    padding: 14px 28px;
    min-width: 250px;
}

/* Video Teaser */
.video-teaser .subtitle {
    font-family: var(--font-heading);
    font-size: 1.8rem;
    text-align: center;
    color: var(--color-accent);
    margin-bottom: 0.5rem;
}

.video-teaser h2 {
    font-family: var(--font-heading);
    font-size: 2.5rem;
    text-align: center;
    color: var(--color-text-light);
    margin-bottom: 1.5rem;
}

/* Video Container */
.video-container {
    position: relative;
    padding-bottom: 56.25% !important;
    height: 0;
    overflow: hidden;
    max-width: 600px;
    width: 90%;
    background: var(--color-primary);
    margin: 20px auto;
    border-radius: var(--border-radius-base);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
}

.video-container video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    background-color: #000;
}

/* ========================================= */
/* [HOM] 6. SERVICES SECTION (HOME PAGE)
/* ========================================= */

#experience-section {
    background-color: var(--color-green-bg);
    color: var(--color-text-dark);
    padding: var(--padding-section);
}

#s3-title {
    color: var(--color-text-dark);
    font-size: 2.5rem;
    text-align: center;
    margin-bottom: 2rem;
}

/* Mission Titles (mostaza) */
#mission-section h3.highlight-text,
#experience-section h3.highlight-text {
    color: var(--color-accent) !important;
    font-size: 2.2rem;
    text-align: center;
    margin-bottom: 1.5rem;
    display: block;
    width: 100%;
}

/* Service Cards Grid */
.s3-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 30px;
    margin-top: 30px;
}

.service-card h3 {
    font-size: 1.8rem;
    color: var(--color-accent) !important;
    margin-bottom: 1rem;
    min-height: auto;
    text-align: center;
}

.service-card p {
    font-size: 1.2rem;
    line-height: 1.7;
    color: var(--color-text-dark);
    margin-bottom: 1.5rem;
}

.link-more {
    display: inline-block;
    margin-top: 20px;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--color-accent);
    font-family: var(--font-ui);
}

/* ========================================= */
/* [HOM] 7. CTA SECTION (HOME PAGE)
/* ========================================= */

#cta {
    background-color: var(--color-green-bg);
    color: var(--color-text-dark);
    padding: 60px 15px;
    text-align: center;
}

#cta-title {
    font-size: 2.2rem;
    color: var(--color-text-dark);
    margin-bottom: 1rem;
}

#cta p {
    max-width: 800px;
    margin: 0 auto 2rem;
    font-size: 1.2rem;
}

/* ========================================= */
/* [GLOB] 8. DARK SECTION STYLES
/* ========================================= */

.dark-section h2,
.dark-section h3,
.dark-section h4 {
    color: var(--color-text-light);
}

.highlight-text {
    font-size: 2.2rem;
    line-height: 1.1;
    margin-bottom: 0.2em;
    font-weight: 700;
}

/* ========================================= */
/* [GLOB] 9. FOOTER
/* ========================================= */

footer {
    background-color: var(--color-primary);
    color: var(--color-text-light);
    padding: 20px 15px;
    text-align: center;
    font-size: 0.9rem;
    display: block;
}

footer a {
    color: var(--color-text-light);
    margin: 0 5px;
}

/* ========================================= */
/* [BIO] 10. BIO PAGE SPECIFIC
/* ========================================= */

/* ---- 10.1 INTRO BIO ---- */
#bio-detail .detail-content {
    max-width: 800px;
    margin: 20px auto;
    padding: 30px;
    border: 1px solid var(--color-primary);
    border-radius: 10px;
    text-align: center;
}

/* ---- 10.2 MEMBERS GRID (OLD) ---- */
.members-container {
    padding: 40px 0;
    max-width: 800px;
    margin: 0 auto;
}

.members-title {
    text-align: center;
    color: var(--color-accent);
    margin-bottom: 2.5em;
}

.member-photo {
    width: 100%;
    max-width: 250px;
    margin-bottom: 20px;
    position: relative;
    padding: 10px;
    border: 1px solid var(--color-secondary);
}

.member-photo img {
    width: 100%;
    height: auto;
    object-fit: cover;
    display: block;
    border-radius: 50%;
    border: 3px solid var(--color-accent);
    transition: transform var(--transition-speed);
}

.member-photo img:hover {
    transform: scale(1.03);
}

.member-info h4 {
    color: var(--color-accent);
    font-size: 1.8rem;
    margin-bottom: 0.2em;
}

.member-photo .role {
    font-weight: 600;
    color: var(--color-text-light);
    display: block;
    margin-top: 10px;
}

/* ---- 10.3 NUEVO LAYOUT BIO (BASADO EN BIO_TEST.HTML) ---- */
/* === SECCIÓN FUNDADORES === */
.founders-section {
    padding: var(--padding-section);
    background: linear-gradient(135deg, #0c1a25 0%, #1a2b3a 100%);
    color: var(--color-text-light);
}

.founders-title {
    text-align: center;
    color: var(--color-accent);
    font-size: 2.8rem;
    margin-bottom: 3rem;
    position: relative;
}

.founders-title:after {
    content: '';
    display: block;
    width: 100px;
    height: 3px;
    background: var(--color-accent);
    margin: 1rem auto;
}

.founder-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1rem;
}

.founder-item {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    align-items: start;
}

.founder-photo {
    position: relative;
    border-radius: 15px;
    overflow: hidden;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.3);
    border: 3px solid var(--color-accent);
    max-width: 280px;
    margin: 0 auto;
}

.founder-photo img {
    width: 100%;
    height: 400px;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease;
}

.founder-photo img:hover {
    transform: scale(1.05);
}

.founder-content {
    background: rgba(255, 255, 255, 0.95);
    padding: 2.5rem;
    border-radius: 15px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    text-align: center;
}

.founder-name {
    color: var(--color-accent);
    font-size: 2.2rem;
    margin-bottom: 0.5rem;
}

.founder-role {
    color: var(--color-primary);
    font-size: 1.3rem;
    font-weight: 600;
    margin-bottom: 1.5rem;
    font-family: var(--font-ui);
}

.founder-description {
    color: var(--color-text-dark);
    font-size: 1.2rem;
    line-height: 1.8;
    text-align: center;
}

/* === SECCIÓN HISTORIA === */
.history-section {
    padding: var(--padding-section);
    background-color: var(--color-green-bg);
}

.history-title {
    color: var(--color-primary);
    text-align: center;
    font-size: 2.8rem;
    margin-bottom: 2rem;
}

.history-content {
    max-width: 900px;
    margin: 0 auto;
    color: var(--color-text-dark);
    font-size: 1.25rem;
    line-height: 1.8;
}

/* === SECCIÓN FILOSOFÍA === */
.philosophy-section {
    padding: var(--padding-section);
    background-color: var(--color-petrol-black);
    color: var(--color-text-light);
}

.philosophy-title {
    color: var(--color-accent);
    text-align: center;
    font-size: 2.8rem;
    margin-bottom: 2rem;
}

.philosophy-content {
    max-width: 900px;
    margin: 0 auto;
    font-size: 1.25rem;
    line-height: 1.8;
}

/* === SECCIÓN SERVICIOS BIO === */
.bio-services-section {
    padding: var(--padding-section);
    background-color: var(--color-green-bg);
}

.bio-services-title {
    color: var(--color-primary);
    text-align: center;
    font-size: 2.8rem;
    margin-bottom: 3rem;
}

.services-list {
    max-width: 800px;
    margin: 0 auto;
    list-style: none;
    padding: 0;
}

.services-list li {
    background: white;
    margin-bottom: 1.5rem;
    padding: 1.5rem 2rem;
    border-radius: 10px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
    border-left: 4px solid var(--color-accent);
    font-size: 1.2rem;
    color: var(--color-text-dark);
    transition: transform 0.3s ease;
}

.services-list li:hover {
    transform: translateX(10px);
}

/* === UTILIDADES BIO (para HTML actualizado) === */
.centered-container {
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.mustard-color {
    color: #D4AF37 !important;
}

.daniel-quote {
    color: #D4AF37;
    font-size: 1.5rem;
    line-height: 1.4;
    font-weight: 600;
    text-align: center;
    margin: 2rem auto;
    max-width: 800px;
    font-style: italic;
}

.quote-author {
    text-align: center;
    font-style: italic;
    margin-top: 0.5rem;
    color: rgba(255, 255, 255, 0.8);
}

.philosophy-box {
    margin-top: 3rem;
    padding: 2rem;
    background: #f8f9fa;
    border-radius: 8px;
}

.services-list-box {
    margin-top: 2rem;
    padding: 1.5rem;
    background: #f8f9fa;
    border-radius: 8px;
    text-align: left;
}

.services-list {
    list-style: none;
    padding-left: 1rem;
    margin-top: 1rem;
}

.services-list li {
    padding: 0.5rem 0;
    color: #333;
    line-height: 1.6;
}

.cta-subtitle {
    font-size: 1.2rem;
    color: var(--color-text-light);
    margin: 1rem 0;
}

/* === FUNDADORES RESPONSIVE === */
@media (max-width: 768px) {
  .founders-title {
    font-size: 2.2rem;
    margin-bottom: 2rem;
  }
  
  .founder-grid {
    gap: 2.5rem;
  }
  
  .founder-item {
    gap: 1.5rem;
  }
  
  .founder-photo {
    max-width: 280px;
  }
  
  .founder-photo img {
    height: 300px;
  }
  
  .founder-content {
    padding: 1.5rem;
  }
  
  .founder-name {
    font-size: 1.8rem;
  }
  
  .founder-role {
    font-size: 1.1rem;
  }
  
  .founder-description {
    font-size: 1rem;
  }
}

@media (max-width: 480px) {
  .founders-title {
    font-size: 1.8rem;
  }
  
  .founder-photo {
    max-width: 220px;
  }
  
  .founder-photo img {
    height: 250px;
  }
  
  .founder-name {
    font-size: 1.6rem;
  }
  
  .founder-description {
    font-size: 0.95rem;
    line-height: 1.6;
  }
}

/* === FUNDADORES BIO (ESTILO BIO_TEST.HTML) === */
.founder-block {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 2rem;
    align-items: start;
    margin-bottom: 3rem;
    padding: 2rem;
    background: white;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.founder-photo-col {
    text-align: center;
}

.founder-photo-col img {
    width: 100%;
    max-width: 250px;
    border-radius: 8px;
}

.founder-name {
    margin-top: 1rem;
    font-size: 1.5rem;
    color: #D4AF37;
}

.founder-text-col {
    color: #333;
    line-height: 1.6;
}

.founder-text-col .quote {
    border-left: 3px solid #D4AF37;
    padding-left: 1rem;
    margin: 1.5rem 0;
    font-style: italic;
    color: #555;
}

@media (max-width: 768px) {
    .founder-block {
        grid-template-columns: 1fr;
        text-align: center;
    }
    
    .founder-photo-col img {
        max-width: 200px;
        margin: 0 auto;
    }
}

/* ========================================= */
/* [SER] 11. SERVICES PAGE SPECIFIC
/* ========================================= */

/* ---- 11.1 INTRO SERVICIOS ---- */
#intro-servicios .intro-content {
    max-width: 850px;
    margin: 20px auto;
    padding: 30px;
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
}

/* ---- 11.2 PROCESO CREATIVO ---- */
#proceso-creativo {
    background-color: var(--color-secondary);
    color: var(--color-text-light);
    padding: 60px 15px;
}

#proceso-creativo h3 {
    color: var(--color-accent);
    margin-bottom: 30px;
    font-size: 2.5rem;
}

.proceso-step {
    padding: 20px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    margin: 20px auto;
    max-width: 600px;
    border-radius: 8px;
    text-align: left;
}

/* ---- 11.3 SERVICES GRID (PÁGINA COMPLETA) ---- */
#services-grid {
    display: flex;
    flex-direction: column;
    gap: 30px;
    margin-top: 40px;
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
}

#services-grid .service-card h4 {
    font-size: 1.6rem;
    color: var(--color-accent) !important;
    min-height: auto;
    margin-bottom: 1rem;
    text-align: center;
}

.additional-services-list {
    list-style: none;
    text-align: left;
    max-width: 800px;
    margin: 30px auto;
    padding: 0;
}

.additional-services-list li {
    background-color: var(--color-primary);
    padding: 15px;
    margin-bottom: 10px;
    border-radius: 5px;
}

.additional-services-list strong {
    color: var(--color-accent);
    font-size: 1.1rem;
    display: block;
    margin-bottom: 5px;
}

/* ---- 11.4 CTA FINAL SERVICES ---- */
#cta-services-final {
    background-color: var(--color-green-bg);
    color: var(--color-text-dark);
    padding: 60px 15px;
}

#cta-services-final a {
    border-color: var(--color-secondary);
}

/* ========================================= */
/* [CON] 12. CONTACT PAGE SPECIFIC
/* ========================================= */

/* ---- 12.1 LISTA DE COMPROMISOS ---- */
.commitments-list {
    list-style: none;
    text-align: left;
    max-width: 800px;
    margin: 30px auto;
    padding: 0;
}

.commitments-list li {
    background-color: var(--color-green-bg);
    color: var(--color-text-dark);
    padding: 15px;
    margin-bottom: 10px;
    border-left: 5px solid var(--color-accent);
}

/* ---- 12.2 FORMULARIO DE CONTACTO ---- */
#contact-section {
    background-color: var(--color-secondary);
}

.contact-form {
    max-width: 600px;
    margin: 40px auto 0;
    padding: 20px;
    text-align: left;
    background-color: var(--color-secondary);
}

.form-group {
    margin-bottom: 20px;
}

.contact-form label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    color: var(--color-text-light);
    font-family: var(--font-ui);
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea {
    width: 100%;
    padding: 12px;
    border: 1px solid var(--color-primary);
    background-color: #3f4a59;
    color: var(--color-text-light);
    font-size: 1rem;
    font-family: var(--font-body);
    resize: vertical;
    transition: border-color var(--transition-speed);
    border-radius: var(--border-radius-base);
}

.contact-form input:focus,
.contact-form textarea:focus {
    border-color: var(--color-accent);
    outline: none;
}

.contact-form button[type="submit"] {
    width: 100%;
    margin-top: 30px;
    padding: 15px;
    font-size: 1.2rem;
}

/* ---- 12.3 UBICACIÓN ---- */
#ubicacion .location-text {
    font-size: 2.5rem;
    color: var(--color-accent);
    margin-top: 15px;
}
/* ========================================= */
/* [CON] 12.4 CONTACT INFO GRID CON ICONOS
/* ========================================= */

#info-contacto.dark-section {
    background-color: var(--color-secondary);
    padding: 60px 15px;
}

#info-contacto .contact-column-title {
    color: var(--color-accent) !important;
    font-size: 1.8rem;
    margin-bottom: 1.5rem;
    display: flex;
    align-items: center;
    gap: 10px;
}

.contact-info-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px;
    max-width: 1000px;
    margin: 40px auto 0;
}

.contact-column {
    background: rgba(255, 255, 255, 0.05);
    border-radius: 12px;
    padding: 25px;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.contact-details,
.collab-details {
    list-style: none;
    padding: 0;
    margin: 0;
}

.contact-item,
.collab-item {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.contact-item:last-child,
.collab-item:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.contact-icon-small,
.collab-icon {
    font-size: 1.2rem;
    min-width: 30px;
    text-align: center;
}

.contact-text {
    flex: 1;
}

.contact-text strong {
    display: block;
    color: var(--color-accent);
    margin-bottom: 5px;
    font-size: 1rem;
}

.contact-link-email,
.contact-link-whatsapp {
    color: var(--color-text-light) !important;
    text-decoration: none;
    font-size: 1.1rem;
    display: inline-block;
    margin-top: 5px;
    transition: color 0.3s;
}

.contact-link-email:hover {
    color: var(--color-accent) !important;
}

.contact-link-whatsapp:hover {
    color: #25D366 !important;
}

.collab-item span {
    color: var(--color-text-light) !important;
    font-size: 1.1rem;
    line-height: 1.4;
}

/* RESPONSIVE */
@media (min-width: 768px) {
    .contact-info-grid {
        grid-template-columns: 1fr 1fr;
        gap: 50px;
    }
    
    .contact-column {
        padding: 30px;
    }
    
    .contact-text strong {
        font-size: 1.1rem;
    }
    
    .contact-link-email,
    .contact-link-whatsapp,
    .collab-item span {
        font-size: 1.2rem;
    }
}

/* CORRECCIÓN COLOR FONDO FOOTER */
footer {
    background-color: var(--color-primary) !important;
}

/* Asegurar color texto en secciones oscuras */
.dark-section .contact-text span,
.dark-section .contact-link-email,
.dark-section .contact-link-whatsapp,
.dark-section .collab-item span {
    color: var(--color-text-light) !important;
}
/* ========================================= */
/* [RES] 13. MEDIA QUERIES CONSOLIDADAS
/* ========================================= */

/* ========================================= */
/* TABLET & DESKTOP (min-width: 768px)
/* ========================================= */

@media (min-width: 768px) {
    
    /* ---- [GLOB] HEADER & NAV ---- */
    #menu-toggle, .mobile-nav {
        display: none !important;
    }
    
    .desktop-nav {
        display: block;
        margin-left: auto;
    }
    
    .desktop-nav ul {
        display: flex;
        list-style: none;
        gap: 25px;
        padding: 0;
        margin: 0;
    }
    
    .desktop-nav a {
        color: var(--color-text-light);
        font-weight: 600;
        transition: color var(--transition-speed);
        padding-bottom: 5px;
        font-family: var(--font-ui);
    }
    
    .desktop-nav a:hover,
    .desktop-nav a.active {
        color: var(--color-accent);
        border-bottom: 2px solid var(--color-accent);
    }
    
    .header-content {
        padding: 0 40px;
    }
    
    .lang-selector {
        margin-left: var(--spacing-unit-lg);
    }
    
    /* ---- [HOM] HERO ---- */
    #hero-intro, .page-hero-bg {
        padding: 150px 40px;
        min-height: 80vh;
    }
    
    #hero-intro h2#main-title {
        font-size: 3rem;
    }
    
    #hero-intro h3 {
        font-size: 2rem;
    }
    
    /* ---- [HOM] S2: FEATURED ---- */
    .s2-grid {
        grid-template-columns: 1fr 1fr;
        text-align: left;
        border: 2px solid var(--color-white);
        padding: 15px;
        box-shadow: 0 0 30px rgba(0, 0, 0, 0.5);
        border-radius: 8px;
        gap: var(--spacing-unit-lg);
    }
    
    .s2-block {
        border: none;
        padding: 0px;
    }
    
    /* Fotos + Texto Layout */
    .musicians-photos {
        display: flex;
        align-items: flex-start;
        gap: 40px;
        margin-bottom: 30px;
    }
    
    .musician-photo {
        width: 180px;
        height: 180px;
        margin: 0 0 20px 0;
        display: block;
    }
    
    .musicians-photos > p {
        order: 3;
        flex: 1;
        margin: 0;
        text-align: left;
        padding-top: 10px;
        font-size: 1.25rem;
        line-height: 1.8;
    }
    
    .featured-box {
        text-align: center;
        margin-top: 30px;
    }
    
    /* ---- [HOM] S3: SERVICES ---- */
    .s3-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    
    /* Service Card - versión unificada y corregida */
    .service-card {
        background: rgba(255, 255, 255, 0.1);
        backdrop-filter: blur(10px);
        border: 1px solid rgba(255, 255, 255, 0.2);
        border-radius: var(--border-radius-base);
        padding: 30px 20px;
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
        transition: all var(--transition-speed);
        text-align: center;
    }
    
    .service-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 8px 15px rgba(0, 0, 0, 0.15);
        border-color: var(--color-primary);
    }
    
    .service-card h3 {
        justify-content: flex-start;
        text-align: left;
        font-size: 2rem;
    }
    
    /* ---- [BIO] BIO PAGE ---- */
    #members-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 60px;
        align-items: start;
        text-align: left;
        max-width: 1000px;
    }
    
    .member-card {
        flex-direction: row;
        align-items: flex-start;
        margin-bottom: 0;
        border-bottom: none;
    }
    
    .member-photo {
        max-width: 150px;
        flex-shrink: 0;
        margin-right: 25px;
        margin-bottom: 0;
    }
    
    .member-info {
        text-align: left;
    }
    
    /* NUEVO LAYOUT BIO - RESPONSIVE */
    .founder-grid {
        grid-template-columns: 1fr 1fr;
        gap: 4rem;
        padding: 0;
    }
    
    .founder-item {
        grid-template-columns: 1fr 1fr;
    }
    
    /* Alternar orden para fundador 2 */
    .founder-item:nth-child(even) .founder-photo {
        order: 2;
    }
    
    .founder-item:nth-child(even) .founder-content {
        order: 1;
    }
    
    .founder-photo {
        max-width: 100%;
        margin: 0;
    }
    
    .founder-content {
        padding: 2.5rem;
    }
    
    .founder-description {
        text-align: left;
        font-size: 1.3rem;
    }
    
    /* ---- [SER] SERVICES PAGE ---- */
    #services-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 30px;
    }
    
    #services-grid article:nth-child(5) {
        grid-column: 2 / span 2;
        max-width: 100%;
        margin: 0;
    }
    
    .service-card h4 {
        min-height: 0;
    }
    
    /* ---- [GLOB] FOOTER ---- */
    footer {
        padding: 40px 40px;
        text-align: left;
    }
    
    .footer-grid {
        display: grid;
        grid-template-columns: 2fr 1fr 1fr;
        max-width: var(--layout-max-width);
        margin: 0 auto;
        gap: 40px;
    }
    
    .footer-nav ul,
    .footer-contact {
        text-align: left;
        padding: 0;
    }
    
    /* TEXT SIZE ADJUSTMENTS */
    body,
    p:not(.subtitle):not(.s2-motto):not(.s4-motto),
    #experience-section p,
    .services-section p,
    .contact-section p,
    .service-card p,
    .form-description p,
    .contact-form label,
    .commitments-list li,
    .additional-services-list li {
        font-size: 1.25rem;
        line-height: 1.8;
    }
    
    /* MISSION TITLES */
    #mission-section h3.highlight-text,
    #experience-section h3.highlight-text {
        font-size: 2.5rem;
    }
    
    #s3-title {
        font-size: 3rem;
    }
}

/* ========================================= */
/* LARGE DESKTOP (min-width: 1024px)
/* ========================================= */
@media (min-width: 1024px) {
    .container {
        max-width: var(--layout-max-width);
    }
    
    /* ---- [SER] Services grid 2-2-1 layout ---- */
    #services-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    #services-grid article:nth-child(5) {
        grid-column: 1 / span 2;
        max-width: 50%;
        margin: 0 auto;
    }
    
    #hero-intro h2#main-title {
        font-size: 3.5rem;
    }
    
    /* ---- [BIO] BIO PAGE EN DESKTOP GRANDE ---- */
    .founder-content {
        padding: 3rem;
    }
    
    .founder-description {
        font-size: 1.3rem;
        line-height: 1.9;
    }
}

/* ========================================= */
/* [UTIL] UTILIDADES FINALES
/* ========================================= */

body.menu-open {
    overflow: hidden;
}

/* Asegurar prioridad para mostaza */
#mission-section h3.highlight-text,
#experience-section h3.highlight-text,
.service-card h3,
#services-grid .service-card h4 {
    color: var(--color-accent) !important;
}

/* ========================================= */
/* [FIX] CORRECCIÓN VIDEO RATIO 16:9
/* ========================================= */

/* 1. Ajustar padding del contenedor padre del video */
.s2-block.video-teaser {
    padding: 15px 0;
}

/* 2. Reescribir .video-container con técnica moderna */
.video-container {
    position: relative;
    width: 100%;
    max-width: 1200px;
    margin: 20px auto;
    background: var(--color-primary);
    border-radius: var(--border-radius-base);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
    overflow: hidden;
    aspect-ratio: 16/9;
}

/* 3. Fallback para navegadores muy antiguos */
@supports not (aspect-ratio: 16/9) {
    .video-container {
        height: 0;
        padding-bottom: 56.25%;
    }
    
    .video-container video {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }
}

/* 4. Asegurar que el video cubra el contenedor */
.video-container video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    background-color: #000;
    display: block;
}
/* ========================================= */
/* [FIX] HERO UNIFICADO PARA TODAS LAS PÁGINAS
/* ========================================= */

/* Aplicar mismos estilos a #hero-intro Y #page-hero */
#hero-intro h2#main-title,
#page-hero h2#main-title {
    font-size: 2.5rem;
    color: var(--color-text-light);
    text-align: center;
    margin-bottom: 0.5rem;
    line-height: 1.1;
    font-family: var(--font-heading);
}

#hero-intro h3,
#page-hero h3 {
    font-size: 1.8rem;
    color: var(--color-accent); /* mostaza */
    text-align: center;
    margin-bottom: 1.5rem;
    font-weight: 700;
    font-family: var(--font-heading);
}

#hero-intro p,
#page-hero p {
    color: var(--color-text-light);
    max-width: 700px;
    margin: 0 auto 1.5rem;
    text-align: center;
}

/* Asegurar que .highlight-text.mustard-color tenga prioridad */
#page-hero h3.highlight-text.mustard-color {
    color: #D4AF37 !important; /* MOSTAZA, no var(--color-accent) */
}

/* Media Query para desktop */
@media (min-width: 768px) {
    #hero-intro h2#main-title,
    #page-hero h2#main-title {
        font-size: 3rem;
    }
    
    #hero-intro h3,
    #page-hero h3 {
        font-size: 2rem;
    }
}

/* ========================================= */
/* [FIX] CORRECCIÓN COLORES CONTACTO - PRIORIDAD ALTA
/* ========================================= */

#info-contacto .contact-details,
#info-contacto .collab-details,
#info-contacto .contact-details li,
#info-contacto .collab-details li,
#info-contacto .contact-text span:not(strong),
#info-contacto .contact-link-email,
#info-contacto .contact-link-whatsapp,
#info-contacto .collab-item span {
    color: #090202 !important;
}

/* Asegurar que los strong (etiquetas) sean mostaza */
#info-contacto .contact-text strong {
    color: #A68A36 !important;
}

/* Asegurar fondo oscuro para contraste */
#info-contacto.dark-section {
    background-color: #1D262B !important;
}