@import url('https://fonts.cdnfonts.com/css/satoshi');

/* ═══════════════════════════════════════════════════════
   ANNOUNCEMENT BAR — Marquee
   ═══════════════════════════════════════════════════════ */
.announcement-bar {
    width: 100%;
    height: 36px;
    background-color: #3D1C0A;
    overflow: hidden;
    display: flex;
    align-items: center;
    position: relative;
    z-index: 101;
}

.announcement-track {
    display: flex;
    align-items: center;
    white-space: nowrap;
    animation: marquee 35s linear infinite;
}

.announcement-track:hover {
    animation-play-state: paused;
}

.announcement-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.75rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.90);
    letter-spacing: 0.02em;
    padding: 0 24px;
}

.announcement-item svg {
    stroke: rgba(255, 255, 255, 0.70);
    flex-shrink: 0;
}

.announcement-sep {
    color: rgba(255, 255, 255, 0.30);
    font-size: 0.75rem;
    padding: 0 4px;
}

@keyframes marquee {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-50%);
    }
}

@media (max-width: 768px) {
    .announcement-bar {
        height: 32px;
    }

    .announcement-item {
        font-size: 0.7rem;
        padding: 0 16px;
    }

    .announcement-track {
        animation-duration: 25s;
    }
}

@media (prefers-reduced-motion: reduce) {
    .announcement-track {
        animation: none;
        justify-content: center;
    }
}

/* ═══════════════════════════════════════════════════════
   CARD SCROLL ANIMATION — fade-up on intersect
   ═══════════════════════════════════════════════════════ */
[data-animate="fade-up"] {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}

[data-animate="fade-up"].animated {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 768px) {
    [data-animate="fade-up"] {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    [data-animate="fade-up"] {
        opacity: 1;
        transform: none;
        transition: none;
    }
}


section {
    padding: 100px 0;
    position: relative;
    overflow: clip;
    /* Allowed for sticky containers in modern browsers */
}

@media (max-width: 768px) {
    section {
        padding-top: 40px !important;
        padding-bottom: 40px !important;
    }

    .section-gap {
        gap: 24px !important;
    }

    h2 {
        font-size: clamp(26px, 7vw, 36px) !important;
    }

    p {
        font-size: 15px !important;
        line-height: 1.6 !important;
    }
}

:root {
    --bg-color: #FDF6F0;
    /* Cream 1 */
    --bg-alt: #F5EDE3;
    /* Cream 2 */
    --bg-white: #ffffff;
    --accent-color: #3D1A00;
    /* Dark Brown */
    --accent-secondary: #6B3A2A;
    /* Warm Brown */
    --accent-terracota: #C1664C;
    /* Terracotta */
    --text-main: #3D1A00;
    --text-muted: #6B3A2A;
    --white: #FFFFFF;
    --transition: all 0.6s cubic-bezier(0.16, 1, 0.3, 1);
    --container-width: 1200px;
    --radius: 32px;
    --card-gradient: linear-gradient(135deg, #3D1A00 0%, #6B3A2A 100%);
    --card-shadow: 0 20px 40px rgba(61, 26, 0, 0.08);
    --card-hover-shadow: 0 30px 60px rgba(61, 26, 0, 0.15);
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html,
body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

html {
    scroll-behavior: smooth;
}

/* Noise Texture Overlay â€” below modals */
body::after {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: url('https://grainy-gradients.vercel.app/noise.svg');
    opacity: 0.05;
    pointer-events: none;
    z-index: 1;
    /* was 9999, must stay below modals */
}

/* Custom Professional Scrollbar */
::-webkit-scrollbar {
    width: 8px;
}

::-webkit-scrollbar-track {
    background: var(--bg-color);
}

::-webkit-scrollbar-thumb {
    background: #D1C7B7;
    border-radius: 10px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--accent-color);
}

body {
    font-family: 'Plus Jakarta Sans', 'Outfit', sans-serif;
    background-color: var(--bg-color);
    color: var(--text-main);
    line-height: 1.6;
    overflow-x: hidden;
    padding-top: 70px;
}

body.modal-open,
body.menu-open {
    overflow: hidden;
}

h1,
h2,
h3,
h4 {
    font-family: 'Plus Jakarta Sans', 'Satoshi', sans-serif;
    font-weight: 700;
    letter-spacing: -0.03em;
    word-break: break-word;
}

a {
    color: inherit;
}

/* Reset global de botones primarios */
button:not(.close-modal):not(.nav-toggle),
.btn-primary,
.btn-reservar,
.cta-button,
[class*="btn"]:not(.close-modal) {
    background: #3D1A0E !important;
    background-image: none !important;
    box-shadow: none !important;
    border: none;
    color: #FFFFFF;
    border-radius: 10px;
    font-weight: 600;
    transition: background 0.2s ease;
}

button:not(.close-modal):not(.nav-toggle):hover,
.btn-primary:hover,
.btn-reservar:hover,
.cta-button:hover,
[class*="btn"]:not(.close-modal):hover {
    background: #5C2A18 !important;
    background-image: none !important;
    box-shadow: none !important;
    color: #FFFFFF !important;
}

/* ===== FAQ BUTTON â€” override global button reset ===== */
.faq-question {
    background: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    color: #3D1C0B !important;
    border-radius: 0 !important;
    transform: none !important;
}

.faq-question:hover {
    background: rgba(61, 26, 14, 0.04) !important;
    box-shadow: none !important;
    color: #3D1C0B !important;
    transform: none !important;
}

.faq-item.open .faq-question,
.faq-item.active .faq-question {
    color: #FFFFFF !important;
    background: transparent !important;
    box-shadow: none !important;
}

.faq-item.open .faq-question:hover,
.faq-item.active .faq-question:hover {
    color: #FFFFFF !important;
}

.container {
    max-width: var(--container-width);
    margin: 0 auto;
    padding: 0 2rem;
}

/* Scroll Animation Classes */
.reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: var(--transition);
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

/* ===== HEADER ===== */
/* â”€â”€â”€ NAVBAR â”€â”€â”€ */
.navbar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;

    /* Fondo con transparencia y desenfoque para efecto moderno */
    background-color: rgba(253, 246, 240, 0.85);

    /* Efecto de vidrio profesional */
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);

    /* Borde inferior muy tenue */
    border-bottom: 1px solid rgba(61, 28, 10, 0.08);
    transition: box-shadow 0.3s ease, background-color 0.3s ease;
}

/* Sombra sutil al scrollear */
.navbar.scrolled {
    box-shadow: 0 2px 15px rgba(61, 28, 10, 0.06);
}



.logo,
.nav-link,
.nav-toggle {
    text-shadow: none;
}




.nav-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 0.8rem 3rem !important;
    max-width: 1400px;
    margin: 0 auto;
    width: 100%;
}

.logo {
    font-weight: 800;
    font-size: 1.5rem;
    color: var(--accent-color);
    text-decoration: none;
    letter-spacing: -0.02em;
    flex-shrink: 0;
}

.nav-links {
    display: flex;
    gap: 1.25rem;
    list-style: none;
    align-items: center;
}

.nav-links a {
    text-decoration: none;
    color: var(--text-main);
    font-size: 0.9rem;
    font-weight: 500;
    transition: var(--transition);
    position: relative;
    white-space: nowrap;
}

.nav-links a::after {
    content: '';
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 0;
    height: 2px;
    background-color: var(--accent-color);
    transition: var(--transition);
}

.nav-links a:hover::after {
    width: 100%;
}

.nav-cta {
    background-color: var(--accent-color);
    color: var(--white);
    padding: 0.7rem 1.6rem;
    /* Slightly reduced for better alignment */
    border-radius: 10px;
    text-decoration: none;
    font-weight: 700;
    font-size: 0.85rem;
    transition: var(--transition);
    border: 2px solid var(--accent-color);
    white-space: nowrap;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.nav-cta-icon {
    width: 15px;
    height: 15px;
    flex-shrink: 0;
}

.nav-cta:hover {
    background-color: var(--white);
    color: var(--accent-color);
    border-color: var(--accent-color);
    transform: translateY(-2px);
}

/* ===== HAMBURGER MENU ===== */

/* Override global button reset â€” sin fondo, solo 3 lÃ­neas */
.nav-toggle {
    background: transparent !important;
    background-image: none !important;
    border: none !important;
    box-shadow: none !important;
    padding: 8px !important;
    border-radius: 0 !important;
    cursor: pointer;
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 40px;
    height: 40px;
}

.nav-toggle:hover {
    background: transparent !important;
    box-shadow: none !important;
}

/* Las 3 lÃ­neas del hamburger */
.hamburger,
.hamburger::before,
.hamburger::after {
    display: block;
    width: 22px;
    height: 2px;
    background: #3D1A0E;
    border-radius: 2px;
    transition: transform 0.3s ease, opacity 0.3s ease;
    position: relative;
}

.hamburger {
    position: relative;
}

.hamburger::before,
.hamburger::after {
    content: '';
    position: absolute;
    left: 0;
}

.hamburger::before {
    top: -7px;
}

.hamburger::after {
    top: 7px;
}

/* Estado activo (menÃº abierto) â€” 3 lÃ­neas se convierten en âœ• limpia */
/* AGREGAR ESTO justo debajo */
    .nav-toggle.active .hamburger {
        background: transparent !important;
    }

.nav-toggle.active .hamburger::before {
    top: 0;
    transform: rotate(45deg);
}

.nav-toggle.active .hamburger::after {
    top: 0;
    transform: rotate(-45deg);
}

.mobile-menu {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(245, 240, 232, 0.97);
    backdrop-filter: blur(20px);
    z-index: 999;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.4s ease;
}

.mobile-menu.open {
    opacity: 1;
    pointer-events: all;
}

.mobile-menu-close {
    position: absolute;
    top: 1.25rem;
    right: 1.25rem;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0.5rem !important;
    cursor: pointer;
    color: var(--text-main);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50% !important;
    transition: background 0.2s ease;
    z-index: 10;
}

.mobile-menu-close:hover {
    background: rgba(61, 26, 0, 0.08) !important;
}

.mobile-menu ul {
    list-style: none;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.mobile-menu a {
    font-size: 2rem;
    font-weight: 700;
    font-family: 'Satoshi', sans-serif;
    color: var(--text-main);
    text-decoration: none;
    transition: color 0.3s ease;
    letter-spacing: -0.02em;
}

.mobile-menu a:hover {
    color: var(--accent-color);
}

.mobile-cta {
    background-color: var(--accent-color);
    color: var(--white) !important;
    padding: 1rem 2.5rem;
    border-radius: 100px;
    font-size: 1.2rem !important;
}

/* ===== NAV DROPDOWN ===== */
.nav-dropdown-item {
    position: relative;
    list-style: none;
}

.nav-dropdown-trigger {
    display: inline-flex !important;
    align-items: center;
    gap: 4px;
    cursor: pointer;
}

.nav-dropdown-chevron {
    width: 12px;
    height: 12px;
    transition: transform 0.22s ease;
    flex-shrink: 0;
}

.nav-dropdown-item:hover .nav-dropdown-chevron {
    transform: rotate(180deg);
}

.nav-dropdown-menu {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(10px);
    background: #FDF6F0;
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(61, 26, 0, 0.12);
    border: 1px solid rgba(61, 26, 0, 0.08);
    padding: 0.5rem;
    min-width: 200px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.22s cubic-bezier(0.16, 1, 0.3, 1),
        transform 0.22s cubic-bezier(0.16, 1, 0.3, 1);
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    z-index: 2000;
}

.nav-dropdown-menu::after {
    content: '';
    position: absolute;
    top: -20px;
    left: 0;
    right: 0;
    height: 20px;
    background: transparent;
}


.nav-dropdown-item:hover .nav-dropdown-menu {
    opacity: 1;
    pointer-events: all;
    transform: translateX(-50%) translateY(0);
}

.nav-dropdown-link {
    display: block;
    padding: 0.75rem 1.25rem;
    font-weight: 600;
    color: #3D1A00;
    border-radius: 8px;
    transition: background 0.2s;
    text-decoration: none;
    white-space: nowrap;
}

.nav-dropdown-link:hover {
    background: #F5EDE4;
    color: #3D1A00;
}

/* evitar que el underline global se aplique al dropdown */
.nav-dropdown-link::after {
    display: none !important;
}

/* ===== FAQ INLINE LINK ===== */
.faq-inline-link {
    color: var(--accent-terracota);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.2s ease;
}

.faq-item.active .faq-answer .faq-inline-link {
    color: rgba(255, 200, 175, 0.92);
}

.faq-inline-link:hover {
    color: var(--accent-color);
}

/* ===== SPECIALTY PAGES (afasiologia, fonoestomatologia) ===== */
.page-hero-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: center;
}

@media (max-width: 768px) {
    .page-hero-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
}

.specialty-icon-card {
    background: linear-gradient(135deg, #3D1A00 0%, #6B3A2A 100%);
    border-radius: 28px;
    padding: 3rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1.25rem;
    color: rgba(255, 255, 255, 0.9);
    text-align: center;
    box-shadow: 0 30px 60px rgba(61, 26, 0, 0.18);
    aspect-ratio: 1 / 1;
    max-width: 320px;
    margin-left: auto;
}

.specialty-icon-card svg {
    color: rgba(255, 255, 255, 0.85);
    stroke: rgba(255, 255, 255, 0.85);
}

.specialty-icon-card p {
    font-size: 0.95rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.7);
}

.causas-grid,
.afasia-causas-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1.5rem;
    margin-top: 1rem;
}

.causa-card {
    background: #F5EDE3;
    border-radius: 20px;
    padding: 2rem;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    border: 1px solid rgba(61, 26, 0, 0.06);
}

.causa-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 40px rgba(61, 26, 0, 0.10);
}

.causa-icon {
    width: 48px;
    height: 48px;
    background: rgba(61, 26, 0, 0.08);
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.25rem;
    color: var(--accent-color);
}

.causa-card h3 {
    font-size: 1.05rem;
    margin-bottom: 0.6rem;
    color: var(--text-main);
}

.causa-card p {
    font-size: 0.9rem;
    color: var(--text-muted);
    line-height: 1.6;
}

.sintomas-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1rem;
    max-width: 860px;
    margin: 0 auto;
}

.sintoma-item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    background: #FFFFFF;
    padding: 1rem 1.25rem;
    border-radius: 14px;
    font-size: 0.95rem;
    font-weight: 500;
    color: var(--text-main);
    box-shadow: 0 2px 12px rgba(61, 26, 0, 0.06);
}

.sintoma-item .servicio-check {
    flex-shrink: 0;
}

.specialty-cta-box {
    background: linear-gradient(135deg, #3D1A00 0%, #6B3A2A 100%);
    border-radius: 28px;
    padding: 4rem 3rem;
    text-align: center;
    color: white;
    max-width: 700px;
    margin: 0 auto;
    box-shadow: 0 30px 60px rgba(61, 26, 0, 0.2);
}

.specialty-cta-box h2 {
    color: white;
    margin-bottom: 1rem;
    font-size: clamp(1.8rem, 4vw, 2.4rem);
}

.specialty-cta-box p {
    color: rgba(255, 255, 255, 0.8);
    margin-bottom: 2rem;
    font-size: 1.05rem;
}

.specialty-cta-box .cta-button {
    background: white !important;
    color: var(--accent-color) !important;
    border-color: white !important;
}

.specialty-cta-box .cta-button:hover {
    background: transparent !important;
    color: white !important;
    border-color: white !important;
}

.tratamiento-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1.5rem;
    margin-top: 1rem;
}

.tratamiento-card {
    background: #FFFFFF;
    border-radius: 20px;
    padding: 2rem;
    border: 1px solid rgba(61, 26, 0, 0.06);
    box-shadow: 0 4px 20px rgba(61, 26, 0, 0.06);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.tratamiento-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 40px rgba(61, 26, 0, 0.10);
}

.tratamiento-card h3 {
    font-size: 1.05rem;
    margin-bottom: 0.6rem;
    color: var(--text-main);
}

.tratamiento-card p {
    font-size: 0.9rem;
    color: var(--text-muted);
    line-height: 1.6;
}

/* ===== SPECIALTY PAGES â€” MOBILE ===== */
@media (max-width: 640px) {

    .causas-grid,
    .afasia-causas-grid,
    .tratamiento-grid,
    .sintomas-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 0.875rem !important;
    }

    .causa-card,
    .tratamiento-card {
        padding: 1.1rem !important;
        border-radius: 14px !important;
    }

    .causa-card h3,
    .tratamiento-card h3 {
        font-size: 0.9rem !important;
        margin-bottom: 0.4rem !important;
    }

    .causa-card p,
    .tratamiento-card p {
        font-size: 0.8rem !important;
        line-height: 1.45 !important;
    }

    .causa-icon {
        width: 40px !important;
        height: 40px !important;
        margin-bottom: 0.75rem !important;
    }

    .sintomas-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 0.75rem !important;
    }

    .sintoma-item {
        padding: 0.75rem 0.875rem !important;
        font-size: 0.82rem !important;
        border-radius: 10px !important;
    }

    /* Card solitaria en grilla de 2 columnas â€” ocupa el ancho completo */
    .tratamiento-grid .tratamiento-card:last-child:nth-child(odd),
    .causas-grid .causa-card:last-child:nth-child(odd),
    .sintomas-grid .sintoma-item:last-child:nth-child(odd),
    .condiciones-grid .condicion-card:last-child:nth-child(odd) {
        grid-column: 1 / -1;
    }

    .specialty-cta-box {
        padding: 2.5rem 1.5rem !important;
        border-radius: 20px !important;
    }

    .specialty-icon-card {
        max-width: 200px !important;
        padding: 2rem !important;
        border-radius: 20px !important;
        aspect-ratio: 1 / 1;
    }

    .specialty-icon-card svg {
        width: 48px !important;
        height: 48px !important;
    }

    .page-hero-grid {
        gap: 1.5rem !important;
    }
}

/* ===== MAIN SECTIONS & CONTAINERS ===== */
section {
    width: 100%;
    padding: 5rem 0;
    position: relative;
}

.main-card {
    background-color: var(--white);
    border-radius: var(--radius);
    padding: 4rem;
    box-shadow: 0 20px 80px rgba(61, 26, 0, 0.04);
    position: relative;
}

/* ===== HERO ===== */
.hero-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 32px;
    padding: 30px 5% 30px;
    max-width: 1200px;
    margin: 0 auto;
    overflow: visible;
}

.hero {
    padding: 0 !important;
    /* El padding lo maneja el .hero-grid */
    min-height: auto;
    background-color: var(--bg-white);
}

.hero-image-wrapper {
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(61, 28, 10, 0.12);
    animation: float 4s ease-in-out infinite;
    z-index: 1;
}

@keyframes float {

    0%,
    100% {
        transform: translateY(0px);
    }

    50% {
        transform: translateY(-8px);
    }
}

.hero-image-wrapper>img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    border-radius: 0;
}

.hero-image-wrapper::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 80px;
    background: linear-gradient(to top,
            rgba(245, 237, 228, 0.25) 0%,
            transparent 100%);
    pointer-events: none;
    border-radius: 0 0 20px 20px;
}

/* Badge glassmorphism */
.hero-badge-floating {
    position: absolute;
    bottom: 16px;
    left: 16px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid rgba(255, 255, 255, 0.6);
    border-radius: 12px;
    padding: 10px 14px;
    z-index: 2;
}

.badge-icon-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: rgba(61, 28, 10, 0.07);
    border-radius: 8px;
    flex-shrink: 0;
}

.badge-content {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.badge-number {
    display: block;
    font-size: 1.1rem;
    font-weight: 800;
    color: #3D1C0A;
    line-height: 1;
}

.badge-label {
    display: block;
    font-size: 0.72rem;
    color: rgba(61, 28, 10, 0.65);
    white-space: nowrap;
}

.hero h1,
.hero-headline {
    font-size: clamp(2.4rem, 5vw, 3.8rem);
    line-height: 1.1;
    margin-bottom: 1.5rem;
    color: #3D1C0A;
    font-weight: 800;
}

/* Sticky FAB */
.fab-sticky {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 999;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 24px;
    border-radius: 50px;
    font-size: 0.9rem;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
    border: 2px solid transparent;
    background-color: #3D1C0A;
    color: #FFFFFF;
    box-shadow: 0 4px 20px rgba(61, 28, 10, 0.25);
    transition:
        background-color 0.3s ease,
        color 0.3s ease,
        border-color 0.3s ease,
        transform 0.2s ease;
}

.fab-sticky svg {
    stroke: currentColor;
    flex-shrink: 0;
}

.fab-sticky:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 28px rgba(61, 28, 10, 0.30);
}

/* Sobre fondos oscuros — IntersectionObserver */
.fab-sticky.fab--light {
    background-color: #FFFFFF;
    color: #3D1C0A;
    border-color: #3D1C0A;
}

.fab-sticky.fab--light:hover {
    background-color: #F5EDE4;
}

/* ─── MOBILE: bottom bar full width ─── */
@media (max-width: 768px) {

    .fab-sticky,
    .fab-sticky.fab--light {
        /* Resetear posición flotante */
        bottom: 0 !important;
        right: 0 !important;
        left: 0 !important;

        /* Full width */
        width: 100% !important;
        border-radius: 0 !important;

        /* Altura generosa para tap target */
        padding: 18px 24px !important;
        min-height: 60px !important;

        /* Centrado */
        justify-content: center !important;

        /* Sombra hacia arriba */
        box-shadow: 0 -4px 24px rgba(61, 28, 10, 0.14) !important;

        /* Sin borde lateral */
        border: none !important;
        border-top: 1px solid rgba(61, 28, 10, 0.08) !important;

        /* Texto más grande en mobile */
        font-size: 1rem !important;

        /* Siempre marrón oscuro en mobile
       sin importar el IntersectionObserver */
        background-color: #3D1C0A !important;
        color: #FFFFFF !important;
    }

    .fab-sticky:hover,
    .fab-sticky.fab--light:hover {
        /* Sin transform en mobile — se ve raro */
        transform: none !important;
        background-color: #5a2a0e !important;
        color: #FFFFFF !important;
    }

    /* Espacio para que el contenido
     no quede tapado por la barra */
    body {
        padding-bottom: 60px !important;
    }

    /* El footer tampoco debe quedar tapado */
    footer {
        padding-bottom: calc(60px + 32px) !important;
    }
}

/* Soporte safe area iPhone con notch/home indicator */
@supports (padding-bottom: env(safe-area-inset-bottom)) {
    @media (max-width: 768px) {

        .fab-sticky,
        .fab-sticky.fab--light {
            padding-bottom: calc(18px + env(safe-area-inset-bottom)) !important;
            min-height: calc(60px + env(safe-area-inset-bottom)) !important;
        }

        body {
            padding-bottom: calc(60px + env(safe-area-inset-bottom)) !important;
        }
    }
}

/* Pulse Dot */
.badge-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #C9A84C;
    display: inline-block;
    margin-right: 8px;
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0% {
        opacity: 1;
        transform: scale(1);
    }

    50% {
        opacity: 0.5;
        transform: scale(1.3);
    }

    100% {
        opacity: 1;
        transform: scale(1);
    }
}



/* ============================
   HERO CTA BLOCK â€” Desktop
   Order: Primary Button â†’ Trust Micro â†’ Talleres Link
   ============================ */

.hero-ctas {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    margin-top: 20px;
}

/* Primary CTA â€” filled pill */
.hero-cta-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #3D1C0A !important;
    color: #FFFFFF !important;
    padding: 17px 44px;
    border-radius: 100px;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    cursor: pointer;
    border: none;
    box-shadow: 0 8px 24px rgba(61, 28, 10, 0.22);
    transition: background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}

.hero-cta-primary:hover {
    background: #5C2A18 !important;
    transform: translateY(-3px);
    box-shadow: 0 14px 36px rgba(61, 28, 10, 0.32);
}

.hero-cta-primary:active {
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(61, 28, 10, 0.2);
}

/* Social proof below primary */
.hero-trust-micro {
    font-size: 0.73rem;
    color: rgba(61, 28, 10, 0.45);
    font-weight: 500;
    letter-spacing: 0.01em;
    margin-top: 12px;
    text-align: left;
    /* aligned to button left edge on desktop */
}



/* Workshops / Talleres link */
.hero-talleres-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.8rem;
    font-weight: 600;
    color: #3D1C0A;
    margin-top: 16px;
}

.hero-talleres-link:hover {
    border-color: rgba(61, 28, 10, 0.80);
    gap: 12px;
}


/* Mobile Rules UX */
@media (max-width: 768px) {
    .hero {
        padding: 0 !important;
    }

    .hero-grid {
        display: flex;
        flex-direction: column;
        padding: 32px 20px 40px;
        gap: 0;
        text-align: center;
    }

    /* Stacking order */
    .trust-badge {
        order: 1;
    }

    .hero-headline {
        order: 2;
        font-size: clamp(1.6rem, 7vw, 2.4rem);
        line-height: 1.1;
        margin-top: 8px;
        margin-bottom: 12px;
    }

    .hero-stars {
        order: 3;
        font-size: 0.75rem;
        margin-bottom: 10px;
    }

    .hero-subtitle {
        order: 4;
        font-size: 0.88rem;
        line-height: 1.5;
        margin-bottom: 16px;
    }

    /* CTA block â€” centered on mobile */
    .hero-ctas {
        order: 5;
        align-items: center;
        width: 100%;
        margin-top: 0;
    }

    /* Full-width primary button â€” comfortable tap target */
    .hero-cta-primary {
        width: 100%;
        padding: 14px 20px;
        font-size: 0.95rem;
        border-radius: 100px;
        min-height: 48px;
        letter-spacing: 0;
    }

    /* Trust copy centered below button */
    .hero-trust-micro {
        font-size: 0.68rem;
        margin-top: 8px;
        text-align: center;
    }


}

/* (continuation of hero mobile @media block) */
@media (max-width: 768px) {
    .hero-grid {
        grid-template-columns: 1fr;
        padding: 24px 16px 28px;
        gap: 16px;
    }

    .hero-image-wrapper {
        animation: none;
        width: 100%;
        max-height: 280px;
        order: 2;
        margin-top: 12px;
        border-radius: 16px;
    }

    .hero-content {
        order: 1;
    }
}



/* ===== SECTION DIVIDERS ===== */
.services-row {
    padding: 2.5rem 0;
}

.services-row-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem;
}

@media (max-width: 991px) {
    .services-row-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 576px) {
    .services-row-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
}

.service-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    color: #3D1C0A;
    font-weight: 600;
}

.service-icon {
    width: 24px;
    height: 24px;
    color: var(--accent-gold);
}

.section-divider {
    width: 100%;
    height: 2px;
    background: linear-gradient(to right, transparent, rgba(93, 54, 37, 0.12), transparent);
    margin: 0;
    border: none;
}

/* Alternating section backgrounds */
.section-bg-alt {
    background-color: var(--bg-alt);
}

.section-bg-white {
    background-color: var(--bg-white);
}

.nav-cta {
    background-color: var(--accent-color);
    color: var(--white) !important;
    padding: 0.8rem 1.4rem;
    border-radius: 12px;
    font-weight: 700;
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    text-decoration: none;
    transition: var(--transition);
    border: 1.5px solid var(--accent-color);
}

.nav-cta:hover {
    background-color: transparent;
    color: var(--accent-color) !important;
    transform: translateY(-2px);
}

.nav-cta-icon {
    width: 18px;
    height: 18px;
}

.cta-button {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    background-color: var(--accent-color);
    color: var(--white);
    padding: 1rem 2rem;
    border-radius: 12px;
    text-decoration: none;
    font-weight: 700;
    font-size: 1rem;
    transition: var(--transition);
    border: 2px solid var(--accent-color);
    cursor: pointer;
    font-family: 'Plus Jakarta Sans', sans-serif;
    white-space: nowrap;
}

.cta-button .arrow {
    background-color: var(--white);
    color: var(--accent-color);
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: 0.5rem;
    transition: var(--transition);
    flex-shrink: 0;
}

.btn-icon {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

.cta-button-outline {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    background-color: transparent;
    color: var(--accent-color);
    padding: 1.1rem 2rem;
    border-radius: 12px;
    text-decoration: none;
    font-weight: 700;
    font-size: 1rem;
    border: 2px solid rgba(93, 54, 37, 0.35);
    transition: var(--transition);
    cursor: pointer;
    font-family: 'Plus Jakarta Sans', sans-serif;
    white-space: nowrap;
}

.cta-button-outline:hover {
    background-color: rgba(61, 26, 0, 0.04);
    color: var(--accent-color);
    border-color: rgba(61, 26, 0, 0.4);
    transform: none;
    /* Simplificado */
    box-shadow: none;
    /* Simplificado */
}

.btn-icon-wa {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

.cta-button:hover {
    background-color: #5C2A18;
    /* MarrÃ³n un poco mÃ¡s cÃ¡lido, no blanco */
    color: var(--white);
    transform: none;
    /* Simplificado */
    box-shadow: 0 4px 12px rgba(61, 26, 0, 0.15);
}

.cta-button:hover .arrow {
    background-color: var(--white);
    color: #5C2A18;
    transform: translateX(3px);
    /* Movimiento mÃ¡s sutil */
}

.hero-subtitle {
    font-size: 1.15rem;
    color: var(--text-muted);
    font-weight: 500;
    max-width: 500px;
    line-height: 1.5;
    margin-bottom: 2.5rem;
}





.hero-image-wrapper {
    position: relative;
    animation: float 6s ease-in-out infinite;
}

@keyframes float {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-20px);
    }
}

/* ===== SECTIONS ===== */
/* ===== SECTION BACKGROUNDS (Cleaned) ===== */
#talleres {
    background: linear-gradient(180deg, #F5EDE4 0%, #FDF6F0 100%);
}

#como-trabajo {
    background-color: #F5EDE3;
}

#estudios {
    background-color: #FFFFFF;
}

.obras-sociales {
    background-color: #F5EDE4 !important;
    color: var(--text-main);
}

#phonak-section {
    background-color: #FDF6F0;
}

#sobre-mi {
    background-color: #F5EDE3 !important;
}

#testimonios {
    background-color: #FFFFFF;
}

#faq {
    background-color: #FDF6F0;
}

#contacto {
    background-color: #E8D5C4;
    color: var(--text-main);
}

section {
    padding: 8rem 0;
}

.section-tag {
    color: var(--accent-color);
    font-size: 0.95rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    margin-bottom: 1.5rem;
    display: block;
}

h2 {
    font-size: clamp(2.2rem, 4vw, 3.5rem);
    line-height: 0.95;
    margin-bottom: 1rem;
}
/* ===== TALLERES REDESIGN 2026 ===== */
.talleres {
    text-align: center;
    padding: 8rem 0;
}

.talleres-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 2.5rem;
    margin-top: 2rem;
}

.taller-card {
    background: #FFFFFF;
    border-radius: 28px;
    padding: 2rem 1.75rem;
    text-align: left;
    transition: var(--transition);
    border: 1px solid rgba(107, 58, 42, 0.05);
    box-shadow: 0 2px 20px rgba(61, 26, 14, 0.08);
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

/* Badges row at top of taller card */
.taller-badges-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.taller-badges-row .taller-badge {
    margin-bottom: 0;
}

.taller-badges-row .chip-modalidad {
    margin-bottom: 0;
}

.taller-badges-row .badge-urgencia {
    margin-bottom: 0;
    background: #FFEDE0;
    color: #C0410A;
    border: 1px solid #F5C6A0;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 6px;
}

/* Buttons container in taller card */
.taller-actions {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    width: 100%;
    margin-top: auto;
    padding-top: 1.25rem;
}

.taller-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 8px;
    background: var(--card-gradient);
    opacity: 0.1;
    transition: opacity 0.3s ease;
}

.taller-card:hover {
    transform: translateY(-15px);
    box-shadow: var(--card-hover-shadow);
}

.taller-card:hover::before {
    opacity: 1;
}

.taller-icon-wrapper {
    width: 80px;
    height: 80px;
    background: var(--bg-color);
    border-radius: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 2rem;
    color: var(--accent-terracota);
    transition: var(--transition);
}

.taller-card:hover .taller-icon-wrapper {
    background: var(--card-gradient);
    color: var(--white);
    transform: rotate(10deg);
}

.taller-icon-wrapper svg {
    width: 40px;
    height: 40px;
}

.taller-card h3 {
    font-size: 1.45rem;
    margin-bottom: 0.75rem;
    color: var(--text-main);
    line-height: 1.2;
    text-align: left;
}

.taller-card .taller-desc-short {
    font-size: 1rem;
    color: var(--text-muted);
    margin-bottom: 2rem;
    line-height: 1.6;
}

.taller-badge {
    display: inline-block;
    padding: 0.5rem 1.25rem;
    background: var(--bg-alt);
    color: var(--accent-secondary);
    border-radius: 100px;
    font-size: 0.85rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
    border: 1px solid rgba(107, 58, 42, 0.1);
}

.chip-modalidad {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #F5EDE4;
    border: 1px solid #D4B5A0;
    border-radius: 999px;
    padding: 4px 12px;
    font-size: 0.8rem;
    color: #3D1A0E;
    margin-bottom: 0.5rem;
}

.badge-urgencia {
    display: inline-block;
    background: #FFF3E0;
    color: #8B4513;
    border-radius: 6px;
    padding: 3px 10px;
    font-size: 0.75rem;
    font-weight: 600;
    margin-bottom: 8px;
}

.taller-card .taller-ver-mas {
    width: 100%;
    padding: 0.85rem 1rem;
    border-radius: 10px;
    font-size: 0.95rem;
    font-weight: 700;
    text-decoration: none;
    transition: var(--transition);
    margin-bottom: 0;
    color: #3D1A0E !important;
    background: transparent !important;
    background-image: none !important;
    border: 1.5px solid #3D1A0E !important;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    box-sizing: border-box;
    min-height: 48px;
    line-height: 1.4;
    box-shadow: none !important;
}

.taller-card .taller-ver-mas:hover {
    background: rgba(61, 26, 0, 0.04) !important;
    border-color: rgba(61, 26, 0, 0.4) !important;
    color: #3D1A0E !important;
    transform: none;
    /* Simplificado */
    box-shadow: none !important;
}

.talleres-cierre {
    text-align: center;
    margin-top: 40px;
    font-size: 1rem;
    color: #6B3A2A;
}

.talleres-cierre a {
    color: #3D1A0E;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.taller-card .taller-wa {
    width: 100%;
    padding: 0.85rem 1rem;
    background: #3D1C0B;
    color: #FFFFFF;
    border-radius: 14px;
    font-size: 0.95rem;
    font-weight: 700;
    text-decoration: none;
    transition: var(--transition);
    border: none;
    box-shadow: 0 10px 20px rgba(61, 26, 0, 0.1);
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    box-sizing: border-box;
}

.taller-card .taller-wa:hover {
    background: #5C2A18 !important;
    transform: none !important;
    /* Simplificado */
    box-shadow: none !important;
    color: #FFFFFF !important;
}

/* ===== ESTUDIOS AUDITIVOS ===== */
.estudios {
    padding: 4rem 0 !important;
}


/* ----- Segmented Tab Control ----- */
.estudios-tabs-wrap {
    display: inline-flex;
    background: #F5EDE4;
    border-radius: 100px;
    padding: 4px;
    margin-bottom: 2.5rem;
    gap: 0;
}

.estudios-tabs {
    display: flex;
    gap: 0;
}

.estudios-tab {
    background: transparent;
    color: #3D1A00;
    border: 1.5px solid transparent;
    border-radius: 100px;
    padding: 0.55rem 1.5rem;
    font-weight: 700;
    font-size: 0.95rem;
    font-family: inherit;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
    white-space: nowrap;
}

.estudios-tab:hover:not(.active) {
    border-color: rgba(61, 26, 0, 0.4);
}

.estudios-tab.active {
    background: #3D1A00;
    color: #FFFFFF;
    border-color: #3D1A00;
}

/* ----- Tab Panels ----- */
@keyframes estudiosTabFadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

.tab-panel {
    display: none;
}

.tab-panel.active {
    display: block;
    animation: estudiosTabFadeIn 0.3s ease both;
}

/* ----- Per-tab Image Carousel ----- */
.estudios-img-carousel {
    position: relative;
    border-radius: 16px;
    overflow: hidden;
    aspect-ratio: 4/3;
    width: 100%;
}

.estudios-img-carousel .estudios-carousel-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 16px;
    opacity: 1;
    transition: opacity 0.5s ease;
    display: block;
}

.estudios-grid {
    display: grid;
    grid-template-columns: 0.8fr 1.2fr;
    gap: 4rem;
    align-items: start;
}

.estudios-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
    margin-top: 2rem;
}

.estudio-item {
    background: var(--bg-color);
    padding: 1.25rem 1.5rem;
    border-radius: 16px;
    font-weight: 600;
    font-size: 0.95rem;
    transition: var(--transition);
    border: 1px solid transparent;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.estudio-icon-svg {
    width: 1.5rem;
    height: 1.5rem;
    color: var(--accent-color);
    flex-shrink: 0;
}

.estudio-item:hover {
    border-color: var(--accent-color);
    background: var(--white);
    transform: translateY(-5px);
}



.obras-sociales-bar {
    margin-top: 5rem;
    padding: 3.5rem 2rem;
    background: var(--white);
    border-radius: 48px;
    border: 1px solid rgba(92, 42, 30, 0.08);
    box-shadow: 0 30px 60px rgba(92, 42, 30, 0.05);
    text-align: center;
    width: 100%;
    box-sizing: border-box;
}

.os-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin-bottom: 2.5rem;
    color: var(--accent-color);
    font-weight: 700;
    font-size: 1.3rem;
}

.os-icon-svg {
    width: 2.5rem;
    height: 2.5rem;
    color: var(--accent-color);
    flex-shrink: 0;
}

.os-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    margin-bottom: 2.5rem;
}

.os-tag {
    background: #FDFBF8;
    padding: 0.75rem 1.5rem;
    border-radius: 100px;
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--accent-color);
    border: 1px solid rgba(92, 42, 30, 0.05);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.os-tag:hover {
    background: var(--accent-color);
    color: var(--white);
    transform: translateY(-3px);
    box-shadow: 0 10px 20px rgba(92, 42, 30, 0.1);
}

.os-footer {
    font-size: 0.95rem;
    color: var(--text-muted);
    font-weight: 500;
    opacity: 0.8;
}

.estudios-nota {
    margin-top: 1.5rem;
    margin-bottom: 0;
    font-size: 0.9rem;
    color: var(--text-muted);
    font-style: italic;
    font-weight: 500;
}

.estudios-images {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

.estudios-images img,
.estudios-carousel-img {
    width: 100%;
    min-width: 280px;
    height: 300px;
    object-fit: cover;
    border-radius: 12px;
    box-shadow: 0 16px 40px rgba(92, 42, 30, 0.12);
    transition: transform 0.4s ease;
    display: block;
}

.estudios-images img:hover,
.estudios-carousel-img:hover {
    transform: translateY(-4px);
}

/* ===== PHONAK ===== */
.phonak {
    background-color: var(--white);
    border-radius: var(--radius);
    margin: 1.5rem;
    margin-top: 0;
    padding: 3.5rem 4rem;
    text-align: center;
    box-shadow: 0 20px 80px rgba(92, 42, 30, 0.04);
}

.phonak-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 4rem;
    align-items: center;
    text-align: left;
}

.phonak p {
    color: var(--text-muted);
    font-size: 1.15rem;
    margin-bottom: 1.5rem;
    line-height: 1.6;
}

.phonak-adaptacion {
    font-size: 1rem !important;
    font-weight: 600 !important;
    color: var(--accent-color) !important;
    margin-bottom: 2.5rem !important;
    font-style: italic;
}

.phonak-slider {
    width: 100%;
    height: 450px;
    position: relative;
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
}

.phonak-slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: opacity 1s ease-in-out;
    object-fit: cover;
}

.phonak-slide.active {
    opacity: 1;
}

.phonak .cta-button {
    margin-bottom: 0;
}

/* ===== CÃ“MO TRABAJO ===== */
.container-metodologia {
    display: flex;
    align-items: flex-start;
    gap: 80px;
    position: relative;
    padding-top: 40px;
    padding-bottom: 60px;
    overflow: visible;
    /* Fix overlap */
}

.metodologia-left {
    flex: 0 0 40%;
    position: sticky;
    top: 120px;
    align-self: flex-start;
}

.metodologia-sticky-header span.section-tag {
    display: block;
    margin-bottom: 0.5rem;
}

.metodologia-sticky-header h2 {
    font-size: 2.8rem;
    color: #3D1A0E;
    margin-bottom: 1rem;
}

.metodologia-desc {
    font-size: 1.1rem;
    color: #6B3A2A;
    line-height: 1.6;
    margin-bottom: 2rem;
}

.metodologia-cta-desktop {
    
    margin-left: 20px;
    margin-top: 40px;
    display: block;
}

@media (max-width: 991px) {
    .metodologia-cta-desktop {
        display: none;
    }
}

.metodologia-cta-desktop p {
    font-size: 1.05rem;
    color: #3D1A0E;
    margin-bottom: 16px;
    font-weight: 500;
}

.metodologia-right {
    flex: 1;
}

.metodologia-steps {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding-bottom: 0;
}

/* Base Card Logic */
.step-card {
    display: flex;
    align-items: flex-start;
    text-align: left;
    gap: 24px;
    background: #FFFFFF;
    border-radius: 20px;
    padding: 32px;
    box-shadow: 0 2px 24px rgba(61, 26, 14, 0.06);
    border: 1px solid rgba(139, 99, 85, 0.1);
    will-change: transform;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

@media (max-width: 768px) {
    .step-card {
        padding: 24px;
        gap: 16px;
    }
}

.step-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 32px rgba(61, 26, 14, 0.12);
}

/* Stacking Rules */
.sticky-card {
    position: sticky;
}

.card-1 {
    top: 100px;
    z-index: 10;
}

.card-2 {
    top: 120px;
    z-index: 20;
}

.card-3 {
    top: 140px;
    z-index: 30;
}

/* Icon / Text generic styles */
.step-icon-wrap {
    background: #F5EDE4;
    border-radius: 14px;
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.step-icon-wrap::before,
.step-icon-wrap::after {
    content: none !important;
}

.step-num {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #8B6355;
    text-transform: uppercase;
    display: block;
    margin-bottom: 6px;
}

.step-content h3 {
    font-size: 1.3rem;
    font-weight: 700;
    color: #3D1A0E;
    margin: 0 0 10px;
}

.metodologia-final-cta {
    display: none;
    text-align: center;
    margin-top: 60px;
    padding: 40px;
    background: #FDF6F0;
    border-radius: 20px;
    border: 1px solid #D4B5A0;
}

.metodologia-final-cta p {
    font-size: 1.2rem;
    color: #3D1A0E;
    margin-bottom: 20px;
    font-weight: 600;
}

@media (max-width: 991px) {
    .metodologia-final-cta {
        display: block;
    }
}

.step-content p {
    font-size: 0.95rem;
    color: #6B3A2A;
    line-height: 1.6;
    margin: 0;
}

.step-resultado {
    display: flex;
    align-items: center;
    font-size: 0.85rem;
    color: #8B4513;
    border-left: 2px solid #8B4513;
    padding-left: 12px;
    margin: 12px 0;
    font-weight: 600;
}

.step-frase {
    font-style: italic;
    font-size: 0.9rem;
    color: #8B6355;
    border-left: 3px solid color-mix(in srgb, var(--accent-color) 60%, transparent);
    padding-left: 12px;
    display: block;
}

.metodologia-cta-mobile {
    display: none;
}

/* Mobile Adjustments */
@media (max-width: 992px) {
    .container-metodologia {
        flex-direction: column;
        gap: 40px;
        padding-bottom: 0px;
    }

    .step-card.sticky-card {
        margin-bottom: 20vh !important;
    }

    .metodologia-left {
        position: relative;
        top: auto;
        flex: 1;
        text-align: center;
    }

    .metodologia-cta-desktop {
        display: none;
    }

    .metodologia-cta-mobile {
        display: block;
        text-align: center;
        margin-top: 10px;
    }

    .metodologia-cta-mobile p {
        font-size: 1.05rem;
        color: #3D1A0E;
        margin-bottom: 16px;
        font-weight: 500;
    }

    .metodologia-cta-mobile a.cta-button {
        width: 100%;
        margin: 0 auto;
        display: flex;
        justify-content: center;
    }

    .metodologia-right {
        width: 100%;
    }

    .step-card {
        padding: 30px 24px;
        flex-direction: column;
        gap: 16px;
    }

    .metodologia-steps {
        gap: 20px;
        padding-bottom: 20px;
    }

    .card-1 {
        top: 80px;
    }

    .card-2 {
        top: 100px;
    }

    .card-3 {
        top: 120px;
    }
}


/* ===== SOBRE MÃ ===== */
.sobre-mi {
    padding: 10rem 0 !important;
}

/* Blockquote style for bio quote */
.bio-extra {
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
    font-size: 1.05rem;
    color: var(--accent-color);
    font-weight: 600;
    font-style: italic;
    padding: 0.75rem 1.25rem;
    border-left: 4px solid var(--accent-terracota);
    background: rgba(193, 102, 76, 0.05);
    border-radius: 0 8px 8px 0;
    line-height: 1.6;
    opacity: 1;
}

.sobre-mi-image img {
    width: 100%;
    min-height: 420px;
    height: 520px;
    object-fit: cover;
    object-position: top center;
    border-radius: 24px;
    box-shadow: 0 40px 100px rgba(92, 42, 30, 0.15);
}

.bio-stats {
    display: flex;
    gap: 2rem;
    margin-top: 3rem;
    flex-wrap: wrap;
}

.stat-item h4 {
    font-size: 2.2rem;
    color: var(--accent-color);
}

.stat-item p {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text-muted);
}

/* ===== TESTIMONIOS WRAPPER & GRID ===== */
.testimonios {
    text-align: center;
    padding: 6rem 0;
    overflow: hidden;
}

.testimonios-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    max-width: 1200px;
    margin: 0 auto 1.5rem;
    padding: 0 2rem;
    text-align: left;
}

.testimonios-title-block {
    flex-grow: 1;
}

.testimonios-subtitle {
    font-size: 0.95rem;
    color: var(--text-muted);
    margin-top: 0.5rem;
    font-weight: 500;
    display: none;
    /* Hidden on desktop, shown on mobile */
}

.testimonios-arrows {
    display: flex;
    gap: 0.75rem;
    flex-shrink: 0;
}

.testimonio-arrow-btn {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    border: 1px solid #F0EBE4;
    background: #FFFFFF;
    color: var(--text-main);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: 0 4px 12px rgba(61, 26, 0, 0.02);
}

.testimonio-arrow-btn svg {
    transition: transform 0.25s ease;
}

.testimonio-arrow-btn:hover {
    background: var(--accent-color);
    color: #FFFFFF;
    border-color: var(--accent-color);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(92, 42, 30, 0.15);
}

.testimonio-arrow-btn.prev:hover svg {
    transform: translateX(-2px);
}

.testimonio-arrow-btn.next:hover svg {
    transform: translateX(2px);
}

.testimonios-scroll-wrapper {
    width: 100%;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding: 2.5rem 1.5rem;
    margin-top: 2rem;
    display: flex;
    justify-content: flex-start;
    scrollbar-width: thin;
    scrollbar-color: rgba(92, 42, 30, 0.2) transparent;
}

.testimonios-scroll-wrapper::-webkit-scrollbar {
    height: 8px;
}

.testimonios-scroll-wrapper::-webkit-scrollbar-track {
    background: transparent;
}

.testimonios-scroll-wrapper::-webkit-scrollbar-thumb {
    background: rgba(92, 42, 30, 0.12);
    border-radius: 10px;
}

.testimonios-scroll-wrapper::-webkit-scrollbar-thumb:hover {
    background: rgba(92, 42, 30, 0.25);
}

.testimonios-grid {
    display: flex !important;
    gap: 2rem !important;
    width: max-content;
    margin: 0 auto;
    padding-bottom: 0.5rem;
}

@keyframes scroll-vertical {
    0% {
        transform: translateY(0);
    }

    100% {
        transform: translateY(-50%);
    }
}

.testimonio-card {
    background: var(--white);
    padding: 2.5rem;
    border-radius: 28px;
    text-align: left;
    box-shadow: 0 12px 40px rgba(92, 42, 30, 0.04);
    border: 1px solid #F0EBE4;
    display: flex;
    flex-direction: column;
    position: relative;
    width: 380px;
    flex-shrink: 0;
    scroll-snap-align: center;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.testimonio-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 48px rgba(92, 42, 30, 0.08);
}

.quote-icon {
    font-size: 3.5rem;
    color: var(--accent-color);
    line-height: 1;
    margin-bottom: 0.75rem;
    font-family: 'Satoshi', serif;
    opacity: 0.7;
}

.testimonio-card p {
    font-size: 1.1rem;
    margin-bottom: 2rem;
    color: var(--text-main);
    font-weight: 500;
    line-height: 1.5;
    flex-grow: 1;
}

.testimonio-author {
    margin-top: auto;
    display: flex;
    align-items: center;
    gap: 1rem;
}

.author-avatar {
    width: 45px;
    height: 45px;
    border-radius: 50%;
    background-color: var(--accent-color);
    color: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 1.2rem;
    flex-shrink: 0;
    font-family: 'Satoshi', sans-serif;
}

.author-info h5 {
    font-size: 1rem;
    font-weight: 800;
    color: var(--text-main);
}

.author-info span {
    font-size: 0.85rem;
    color: var(--text-muted);
    font-weight: 600;
}

/* ===== FAQ ===== */
.faq {
    max-width: 1100px;
    margin: 0 auto;
}

.faq-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: 2rem;
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid rgba(93, 54, 37, 0.1);
}

.faq-item {
    background: #FDF1E8;
    border-radius: 0;
    padding: 0;
    border: none;
    border-bottom: 1px solid rgba(93, 54, 37, 0.08);
    transition: background 0.25s ease;
    height: fit-content;
    overflow: hidden;
}

.faq-item:last-child {
    border-bottom: none;
}

.faq-item.open,
.faq-item.active {
    background: #3D1C0B;
}

.faq-question {
    width: 100%;
    min-height: 56px;
    padding: 1rem 1.25rem;
    background: transparent !important;
    border: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    text-align: left;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.97rem;
    font-weight: 700;
    color: #3D1C0B !important;
    transition: color 0.25s ease;
    gap: 0.75rem;
    line-height: 1.3;
}

.faq-item.open .faq-question,
.faq-item.active .faq-question {
    color: #FFFFFF !important;
}

.faq-icon {
    font-size: 1.25rem;
    transition: transform 0.25s ease;
    color: inherit;
    flex-shrink: 0;
    line-height: 1;
}

.faq-item.open .faq-icon {
    transform: rotate(45deg);
}

.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease, padding 0.25s ease;
    color: var(--text-main);
    font-size: 0.88rem;
    padding: 0 1.25rem;
    line-height: 1.5;
}

.faq-item.open .faq-answer {
    max-height: 200px;
    padding: 0 1.25rem 0.75rem;
    transition: max-height 0.35s ease;
    color: rgba(255, 255, 255, 0.9);
}


/* ===== ESTUDIOS AUDITIVOS ===== */
.estudios-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: center;
}

.estudios-image-wrapper {
    background: #EFE0D3;
    border-radius: 12px;
    overflow: hidden;
    height: 380px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.estudios-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media (max-width: 768px) {
    .estudios-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .estudios-image-wrapper {
        height: 200px;
        order: -1;
    }
}

/* ===== OBRAS SOCIALES ===== */
.obras-sociales {
    background-color: #F5EDE4;
    padding: 5rem 0;
}

.os-pills {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
}

.os-pill {
    background: white;
    border: 1.5px solid #D4B5A0;
    border-radius: 999px;
    padding: 8px 20px;
    font-size: 0.9rem;
    color: #3D1A0E;
    font-weight: 500;
}

.os-consult {
    font-style: italic;
    color: #6B3A2A;
    margin-top: 1.5rem;
    text-align: center;
}

/* ===== SOBRE MÃ REFINEMENT ===== */
#sobre-mi {
    padding: 100px 0;
}

.sobre-mi-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: center;
}

.sobre-mi-image img {
    width: 100%;
    max-width: 480px;
    height: 520px;
    object-fit: cover;
    border-radius: 20px;
    margin: 0 auto;
    display: block;
}

.sobre-mi-title {
    font-size: clamp(2rem, 3.5vw, 3rem);
    line-height: 1.1;
    margin-bottom: 1.25rem;
}

.sobre-mi-title p{
    color: #FFFF;
}

.bio-stats {
    display: flex;
    flex-direction: row;
    gap: 2.5rem;
    align-items: flex-start;
    margin-top: 2.5rem;
    flex-wrap: nowrap;
}

.stat-number {
    font-size: 2.2rem;
    color: var(--accent-color);
    font-weight: 800;
    display: block;
    line-height: 1;
    margin-bottom: 0.5rem;
}

.stat-number.counter::after {
    content: '+';
    display: inline-block;
    margin-left: 2px;
}

.stat-label {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text-muted);
    display: block;
}

@media (max-width: 768px) {
    .sobre-mi-grid {
        display: flex;
        flex-direction: column;
        gap: 2rem;
        text-align: left;
    }

    .sobre-mi-image {
        order: -1;
        width: 100%;
    }

    .sobre-mi-image img {
        height: 280px;
        width: 100%;
        max-width: 100%;
        border-radius: 16px;
    }

    .sobre-mi-title {
        font-size: 2rem;
    }

    .bio-stats {
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        gap: 0;
    }

    .stat-number {
        font-size: 1.4rem;
    }
}

/* --- PREMIUM TEXT LINKS --- */
.cta-link-premium {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    color: #3D1C0A;
    text-decoration: none;
    font-weight: 700;
    font-size: 1rem;
    transition: all 0.3s ease;
    padding: 4px 0;
    position: relative;
    cursor: pointer;
}

.cta-link-premium::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 2px;
    background: #3D1C0A;
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 0.4s cubic-bezier(0.19, 1, 0.22, 1);
}

.cta-link-premium:hover::after {
    transform: scaleX(1);
    transform-origin: left;
}

.cta-link-premium svg {
    transition: transform 0.3s ease;
}

.cta-link-premium:hover svg {
    transform: translateX(5px);
}

/* --- HERO REFINEMENTS --- */
.faq-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

@media (max-width: 992px) {
    .faq-grid {
        grid-template-columns: 1fr;
    }
}

.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease;
}

.faq-item.active .faq-answer {
    max-height: 200px;
    padding-bottom: 16px;
}

/* ===== CONTACTO ===== */
.contacto {
    background: #E8D5C4;
    color: var(--text-main);
}

.contacto-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 5rem;
    align-items: center;
}

.contacto h2 {
    color: var(--text-main) !important;
    margin-bottom: 1.5rem;
}

.contacto p {
    color: var(--text-muted);
    font-size: 1.1rem;
    margin-bottom: 2.5rem;
}

.contacto-cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
}

.contacto-card-item {
    background: #FFFFFF;
    border: 1px solid rgba(61, 26, 14, 0.1);
    padding: 1.25rem;
    border-radius: 14px;
    display: flex;
    align-items: center;
    gap: 1rem;
    text-decoration: none !important;
    transition: var(--transition);
    color: var(--text-main) !important;
    box-shadow: 0 2px 10px rgba(61, 26, 14, 0.06);
}

.contacto-card-item:hover {
    background: #FFFFFF;
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(61, 26, 14, 0.12);
    border-color: rgba(61, 26, 14, 0.2);
}

.card-icon {
    width: 40px;
    height: 40px;
    background: var(--bg-alt);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--accent-color);
}

.card-info h4 {
    font-size: 0.75rem;
    font-weight: 700;
    margin-bottom: 0.2rem;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.card-info p {
    font-size: 0.95rem;
    font-weight: 600;
    margin: 0;
    color: var(--text-main) !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (max-width: 992px) {
    .contacto-grid {
        grid-template-columns: 1fr;
        gap: 3rem;
        text-align: left;
    }

    .contacto-cards {
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }

    .contacto-card-item {
        text-align: left;
    }
}

/* ===== FOOTER STYLING ===== */
#main-footer,
#dynamic-footer {
    background: #2A1008 !important;
    color: rgba(255, 255, 255, 0.7) !important;
    padding: 4rem 0 3rem !important;
    border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
}

.footer-grid {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 1.5rem;
}

.footer-logo {
    font-size: 1.5rem;
    font-weight: 800;
    color: #FFFFFF !important;
    text-decoration: none;
    letter-spacing: -0.02em;
}

.footer-links {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    gap: 2rem;
    justify-content: center;
}

.footer-links a {
    color: rgba(255, 255, 255, 0.7) !important;
    text-decoration: none;
    font-weight: 600;
    font-size: 0.95rem;
    transition: color 0.2s ease;
}

.footer-links a:hover {
    color: #FFFFFF !important;
}

.footer-sociales {
    display: flex;
    gap: 1rem;
    justify-content: center;
}

.footer-sociales a {
    color: rgba(255, 255, 255, 0.7) !important;
    transition: color 0.2s ease, transform 0.2s ease;
}

.footer-sociales a:hover {
    color: #FFFFFF !important;
    transform: translateY(-2px);
}

.footer-copy {
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.5) !important;
    line-height: 1.6;
    margin: 0;
    max-width: 600px;
}

.footer-copy a {
    color: rgba(255, 255, 255, 0.7) !important;
    text-decoration: none;
    font-weight: 600;
}

.footer-copy a:hover {
    text-decoration: underline;
}

/* ===== FOOTER MOBILE ===== */
@media (max-width: 768px) {

    #main-footer,
    #dynamic-footer {
        padding: 2rem 1rem 1.5rem !important;
    }

    .footer-grid {
        gap: 0.75rem !important;
    }

    .footer-logo {
        font-size: 1.25rem !important;
        margin-bottom: 1rem !important;
        display: block;
        text-align: center;
    }

    .footer-links {
        flex-wrap: wrap !important;
        justify-content: center !important;
        gap: 0.5rem 1rem !important;
        margin-bottom: 0.5rem !important;
    }

    .footer-links a {
        font-size: 0.85rem !important;
    }

    .footer-sociales {
        margin: 0.75rem 0 !important;
        justify-content: center !important;
    }

    .footer-copy {
        font-size: 0.78rem !important;
        text-align: center !important;
        line-height: 1.4 !important;
        max-width: 320px !important;
        margin: 0 auto !important;
    }
}

/* ===== MODAL ===== */
.modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(61, 26, 0, 0.45);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    z-index: 9999;
    display: none;
    align-items: center;
    justify-content: center;
    overflow-y: auto;
    padding: 20px;
    opacity: 0;
    transition: opacity 0.35s ease;
}

.modal-overlay.active {
    display: flex;
    opacity: 1;
}

.modal-content {
    background: var(--white);
    width: 95%;
    max-width: 1000px;
    max-height: min(90vh, 90dvh);
    border-radius: 32px;
    padding: 4rem 3.5rem 3.5rem;
    position: relative;
    overflow-y: auto;
    transform: translateY(30px);
    transition: transform 0.4s ease;
    box-shadow: 0 40px 120px rgba(0, 0, 0, 0.25);
}

.modal-content::-webkit-scrollbar {
    width: 6px;
}

.modal-content::-webkit-scrollbar-track {
    background: transparent;
    margin: 20px 0;
}

.modal-content::-webkit-scrollbar-thumb {
    background: rgba(92, 42, 30, 0.2);
    border-radius: 10px;
}

.modal-content::-webkit-scrollbar-thumb:hover {
    background: var(--accent-color);
}

.modal-overlay.active .modal-content {
    transform: translateY(0);
}

@media (max-width: 768px) {
    .modal-content {
        padding: 2.5rem 1.5rem 2rem;
        border-radius: 24px;
        width: 100%;
        max-height: 95vh;
    }
}

/* .booking-submit-wrapper - position sticky eliminado para evitar bug en mobile */
/* .booking-submit-wrapper {
    position: sticky;
    bottom: 0;
    background: white;
    padding: 16px 0 0;
    z-index: 10;
} */

.close-modal {
    position: absolute;
    top: 24px;
    right: 24px;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #F5EDE4 !important;
    border: none !important;
    border-radius: 50% !important;
    color: #3D1A00 !important;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    z-index: 20;
    padding: 0 !important;
}

.close-modal:hover {
    background: #E8DFD5 !important;
    transform: rotate(90deg);
}

.close-modal svg {
    width: 20px;
    height: 20px;
}

.modal-header {
    text-align: center;
    margin-bottom: 2.5rem;
    padding: 0 1rem;
}

.modal-tag {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.15em;
    color: var(--accent-terracota) !important;
    margin-bottom: 0.75rem;
    text-transform: uppercase;
}

.modal-title {
    font-size: clamp(2.2rem, 5vw, 3rem) !important;
    font-weight: 800;
    color: #3D1A00 !important;
    line-height: 1.1;
    letter-spacing: -0.03em;
    margin-bottom: 1rem;
}

.modal-header p {
    color: var(--text-muted) !important;
    font-size: 0.95rem !important;
    max-width: 440px;
    margin: 0 auto !important;
    line-height: 1.6;
    opacity: 0.85;
}

/* ===== MODELS MODAL REDESIGN ===== */
#modal-models .modal-content {
    max-width: 860px !important;
    border-radius: 28px !important;
    padding: 0 !important;
    overflow: hidden !important;
}

#modal-models .modal-header-band {
    background: linear-gradient(135deg, #3D1A00 0%, #5C2A18 100%);
    padding: 2.5rem 3rem 2rem;
    position: relative;
}

#modal-models .close-modal {
    top: 1.25rem;
    right: 1.25rem;
    border-color: rgba(255, 255, 255, 0.3) !important;
    color: rgba(255, 255, 255, 0.85) !important;
}

#modal-models .close-modal:hover {
    background: rgba(255, 255, 255, 0.12) !important;
    color: #FFFFFF !important;
}

#modal-models .modal-header-band .section-tag {
    background: rgba(255, 255, 255, 0.15) !important;
    color: rgba(255, 255, 255, 0.9) !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
}

#modal-models .modal-header-band h2 {
    color: #FFFFFF !important;
    font-size: 1.75rem;
    margin: 0.5rem 0 0.25rem;
}

#modal-models .modal-header-band>p {
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.95rem;
    margin: 0;
    text-align: left;
}

#modal-models .modal-body {
    padding: 2rem 3rem 3rem;
}

.models-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.25rem;
    margin-top: 0;
}

.model-card {
    background: #FFFFFF;
    border-radius: 20px;
    padding: 2rem;
    text-align: center;
    border: 2px solid transparent;
    cursor: pointer;
    box-shadow: 0 4px 20px rgba(61, 26, 0, 0.04);
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.model-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(61, 26, 0, 0.08);
}

.model-card.selected {
    border-color: var(--accent-terracota) !important;
    background: #FFFBF8 !important;
    box-shadow: 0 16px 40px rgba(193, 102, 76, 0.12) !important;
    transform: scale(1.02);
}

.model-card.selected h4 {
    color: var(--accent-terracota) !important;
}

.model-card-img-wrap {
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: 12px;
    margin-bottom: 1.25rem;
    background: #FDF1EB;
    display: flex;
    align-items: center;
    justify-content: center;
}

.model-card-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.model-card h4 {
    margin-bottom: 0.5rem;
    font-size: 1.15rem;
    font-weight: 700;
    color: #3D1A00;
    transition: color 0.2s ease;
}

.model-card p {
    font-size: 0.9rem;
    color: var(--text-muted);
    line-height: 1.5;
}

.modal-content>p {
    color: var(--text-muted);
    font-size: 1.1rem;
    margin-bottom: 2rem;
    text-align: center;
}

.modal-sticky-cta {
    display: none;
}

/* ===== MODELS MODAL â€” MOBILE ===== */
@media (max-width: 768px) {
    #modal-models {
        align-items: flex-end !important;
        padding: 0 !important;
    }

    #modal-models .modal-content {
        width: 100% !important;
        max-width: 100% !important;
        height: 90vh !important;
        max-height: 90vh !important;
        border-radius: 28px 28px 0 0 !important;
        padding: 0 !important;
        display: flex !important;
        flex-direction: column !important;
        overflow: hidden !important;
        transform: translateY(100%);
        transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
        box-shadow: 0 -10px 40px rgba(61, 26, 0, 0.15) !important;
    }

    #modal-models .modal-header-band {
        padding: 1.5rem 1.25rem 1.25rem !important;
        flex-shrink: 0 !important;
    }

    #modal-models .modal-header-band h2 {
        font-size: 1.4rem !important;
    }

    #modal-models .modal-header-band p {
        font-size: 0.85rem !important;
    }

    #modal-models .modal-body {
        padding: 1.5rem 1.25rem 6.5rem !important;
        overflow-y: auto !important;
        flex-grow: 1 !important;
    }

    #modal-models.active .modal-content {
        transform: translateY(0) !important;
    }

    #modal-models .models-grid {
        grid-template-columns: 1fr !important;
        gap: 1rem !important;
        margin-top: 0 !important;
    }

    #modal-models .model-card {
        padding: 1.25rem !important;
        display: flex !important;
        align-items: center !important;
        text-align: left !important;
        gap: 1.25rem !important;
        border-radius: 16px !important;
    }

    #modal-models .model-card-img-wrap {
        width: 80px !important;
        height: 80px !important;
        margin-bottom: 0 !important;
        flex-shrink: 0 !important;
        aspect-ratio: 1 / 1 !important;
    }

    #modal-models .model-card h4 {
        margin-bottom: 0.25rem !important;
        font-size: 1.02rem !important;
    }

    #modal-models .model-card p {
        font-size: 0.85rem !important;
        line-height: 1.4 !important;
    }

    #modal-models .model-badge {
        display: none !important;
    }

    #modal-models .modal-wa-desktop {
        display: none !important;
    }

    #modal-models .modal-sticky-cta {
        display: block !important;
        position: fixed !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        background: rgba(253, 246, 240, 0.97) !important;
        backdrop-filter: blur(12px) !important;
        -webkit-backdrop-filter: blur(12px) !important;
        padding: 1rem 1.25rem 1.25rem !important;
        box-shadow: 0 -6px 20px rgba(61, 26, 0, 0.08) !important;
        z-index: 2010 !important;
        border-top: 1px solid rgba(61, 26, 0, 0.06) !important;
    }

    #modal-models .modal-sticky-cta a {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        background: #25D366 !important;
        color: #FFFFFF !important;
        font-weight: 700 !important;
        padding: 1rem !important;
        border-radius: 14px !important;
        font-size: 1.05rem !important;
        text-decoration: none !important;
        box-shadow: 0 4px 16px rgba(37, 211, 102, 0.3) !important;
        transition: background 0.2s ease !important;
        border: none !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    #modal-models .modal-sticky-cta a:hover,
    #modal-models .modal-sticky-cta a:active {
        background: #20BA5A !important;
    }
}

/* ===== SCROLL TO TOP ===== */
.scroll-top {
    position: fixed;
    bottom: 2.5rem;
    right: 2.5rem;
    width: 52px;
    height: 52px;
    background: var(--accent-color);
    color: var(--white);
    border: none;
    border-radius: 50%;
    font-size: 1.4rem;
    cursor: pointer;
    box-shadow: 0 8px 30px rgba(92, 42, 30, 0.25);
    transition: var(--transition);
    z-index: 1001;
    opacity: 0;
    transform: translateY(20px);
    pointer-events: none;
    display: flex;
    align-items: center;
    justify-content: center;
}

.scroll-top.visible {
    opacity: 1;
    transform: translateY(0);
    pointer-events: all;
}

.scroll-top:hover {
    background: var(--accent-hover);
    transform: translateY(-4px);
    box-shadow: 0 15px 40px rgba(92, 42, 30, 0.3);
}

/* ===== FOOTER ===== */
footer {
    background-color: #2A1008 !important;
    color: rgba(255, 255, 255, 0.7) !important;
    padding: 5rem 0 4rem !important;
    text-align: center;
    border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
    margin-top: 4rem;
}

.footer-logo {
    font-size: 1.6rem;
    font-weight: 800;
    color: #FFFFFF !important;
    margin-bottom: 1.5rem;
    display: block;
    text-decoration: none;
    letter-spacing: -0.02em;
}

.footer-copy {
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.55) !important;
    line-height: 1.8;
    word-wrap: break-word;
    overflow-wrap: break-word;
    padding: 0 1rem;
}

.nav-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.25rem 0;
    position: relative;
}

.nav-toggle {
    display: none;
    background: transparent;
    border: none;
    cursor: pointer;
    width: 44px;
    height: 44px;
    padding: 0;
    justify-content: center;
    align-items: center;
    z-index: 2100;
}

.hamburger,
.hamburger::before,
.hamburger::after {
    display: block;
    width: 24px;
    height: 2px;
    background: var(--accent-color);
    border-radius: 2px;
    transition: 0.3s;
}

.hamburger {
    position: relative;
}

.hamburger::before,
.hamburger::after {
    content: '';
    position: absolute;
    left: 0;
}

.hamburger::before {
    top: -8px;
}

.hamburger::after {
    top: 8px;
}

.nav-toggle.active .hamburger {
    background: transparent;
}

.nav-toggle.active .hamburger::before {
    transform: rotate(45deg);
    top: 0;
}

.nav-toggle.active .hamburger::after {
    transform: rotate(-45deg);
    top: 0;
}

.nav-links {
    display: flex;
    gap: 2.5rem;
    list-style: none;
    align-items: center;
}

.body-locked {
    overflow: hidden;
}

.footer-grid {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2rem;
}

.footer-links {
    display: flex;
    gap: 2rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-links a {
    text-decoration: none;
    color: rgba(255, 255, 255, 0.85) !important;
    font-size: 0.95rem;
    font-weight: 600;
    transition: var(--transition);
}

.footer-links a:hover {
    color: #E8D5C4 !important;
}

.footer-sociales {
    display: flex;
    gap: 1.5rem;
    justify-content: center;
    align-items: center;
}

.footer-sociales a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.06) !important;
    color: #FFFFFF !important;
    transition: var(--transition);
    text-decoration: none;
    padding: 0;
}

.footer-sociales a:hover {
    background-color: #E8D5C4 !important;
    color: #2A1008 !important;
    transform: translateY(-3px);
}

.footer-sociales svg {
    width: 20px;
    height: 20px;
    stroke-width: 2;
}

.footer-dev {
    display: block;
    margin-top: 0.75rem;
    font-size: 0.85rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.45) !important;
}

.footer-dev a {
    color: rgba(255, 255, 255, 0.75) !important;
    text-decoration: none;
    font-weight: 600;
    transition: var(--transition);
}

.footer-dev a:hover {
    color: #E8D5C4 !important;
    text-decoration: underline !important;
}


/* Experience Float */
.experience-float {
    position: absolute;
    bottom: 1.5rem;
    left: -1rem;
    background: var(--white);
    padding: 0.9rem 1.25rem;
    border-radius: 16px;
    display: flex;
    align-items: center;
    gap: 0.85rem;
    box-shadow: 0 8px 32px rgba(93, 54, 37, 0.18), 0 2px 8px rgba(93, 54, 37, 0.08);
    border: 1px solid rgba(93, 54, 37, 0.06);
    z-index: 5;
    white-space: nowrap;
    max-width: calc(100% - 1rem);
}

.experience-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    border: 2px solid rgba(93, 54, 37, 0.1);
}

.experience-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.experience-text {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
    gap: 0.1rem;
}

.experience-text strong {
    font-size: 1rem;
    color: var(--accent-color);
    font-weight: 800;
    letter-spacing: -0.02em;
}

.experience-text span {
    font-size: 0.78rem;
    color: var(--text-muted);
    font-weight: 500;
}

/* Services Row */
.services-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem;
    margin-top: 4rem;
    margin-bottom: 6rem;
    padding: 0 1.5rem;
}

.service-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 1rem;
}

.service-icon {
    width: 32px;
    height: 32px;
    color: var(--accent-color);
    stroke-width: 1.5;
}

.service-item span {
    font-weight: 700;
    font-size: 0.95rem;
    color: var(--text-main);
}

/* Interactions */
.cta-button:active,
.cta-button-outline:active,
.nav-cta:active {
    transform: scale(0.95) !important;
}

@media (max-width: 992px) {
    .hero-grid {
        grid-template-columns: 1fr;
        text-align: center;
        gap: 3rem;
    }

    .hero-image-wrapper {
        order: -1;
        max-width: 420px;
        margin: 0 auto;
    }

    .services-row {
        grid-template-columns: repeat(2, 1fr);
        gap: 2rem;
    }

    .experience-float {
        left: 50%;
        transform: translateX(-50%);
        bottom: -1.5rem;
        position: absolute;
    }
}

@media (max-width: 600px) {
    .services-row {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .footer-links {
        flex-direction: column;
        gap: 1.25rem;
        text-align: center;
    }

    .footer-sociales {
        gap: 1rem;
    }

    .footer-sociales a {
        width: 36px;
        height: 36px;
    }

    .footer-grid {
        padding: 3rem 0;
    }
}



/* ===== SENIOR UPGRADES ===== */
.trust-badge {
    display: inline-flex;
    align-items: center;
    background: #FDF1EB;
    padding: 0.5rem 1rem;
    border-radius: 100px;
    border: 1px solid rgba(93, 54, 37, 0.15);
    margin-bottom: 2rem;
    gap: 0.5rem;
}

.trust-badge .badge-icon {
    display: flex;
    align-items: center;
    justify-content: center;
}

.trust-badge .step-icon {
    width: 0.9rem;
    height: 0.9rem;
    margin: 0 !important;
    color: var(--accent-color);
}

.trust-badge .badge-text {
    font-size: 0.8rem;
    font-weight: 800;
    color: var(--accent-color);
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.hero h1 .highlight {
    color: var(--accent-color);
}

.hero-actions {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 1rem !important;
    margin-bottom: 2rem !important;
    flex-wrap: wrap !important;
}

.trust-badge .badge-icon {
    display: flex;
    align-items: center;
    justify-content: center;
}

.trust-badge .step-icon {
    width: 1rem;
    height: 1rem;
    margin: 0 !important;
    display: inline-block !important;
    vertical-align: middle;
}

.hero-social .social-text {
    font-size: 0.95rem;
    color: var(--text-muted);
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.stars {
    color: #E2B93B;
    font-size: 1.15rem;
    letter-spacing: 4px;
    margin-bottom: 0.75rem;
    line-height: 1;
    opacity: 0.9;
}

/* Dots para Slider Phonak */
.phonak-dots {
    display: flex;
    justify-content: center;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

.phonak-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: rgba(92, 42, 30, 0.2);
    cursor: pointer;
    transition: var(--transition);
}

.phonak-dot.active {
    background: var(--accent-color);
    transform: scale(1.3);
}

/* Obras Sociales Upgrade */
.obras-sociales {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    text-align: left;
    background: #FFF;
    border: 1px solid #E5DFD5;
}

.os-icon {
    font-size: 2.5rem;
    background: var(--bg-color);
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 20px;
    flex-shrink: 0;
}

.os-text {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.os-text strong {
    font-size: 1.05rem;
    color: var(--accent-color);
}

.os-text span {
    font-size: 0.9rem;
    font-weight: 400;
    color: var(--text-muted);
}

/* Floating WA */
.floating-wa {
    position: fixed;
    bottom: 2.5rem;
    left: 2.5rem;
    width: 65px;
    height: 65px;
    background-color: #25D366;
    color: #FFF;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 15px 40px rgba(37, 211, 102, 0.4);
    z-index: 1000;
    transition: var(--transition);
    opacity: 0;
    transform: translateY(20px) scale(0.9);
    pointer-events: none;
}

.floating-wa svg {
    width: 36px;
    height: 36px;
}

.floating-wa.visible {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: all;
    animation: wa-pulse 2s infinite;
}

.floating-wa:hover {
    transform: translateY(-5px) scale(1.05);
    background-color: #128C7E;
    box-shadow: 0 20px 50px rgba(37, 211, 102, 0.5);
    color: #FFF;
    animation: none;
}

@keyframes wa-pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.5);
    }

    70% {
        box-shadow: 0 0 0 15px rgba(37, 211, 102, 0);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(37, 211, 102, 0);
    }
}



/* ===== BOOKING MODAL ===== */
.booking-modal {
    max-width: 600px;
    padding: 3.5rem 3rem 2.5rem !important;
}

.booking-intro {
    color: var(--text-muted);
    font-size: 1rem;
    margin-bottom: 2.5rem;
    margin-top: -0.5rem;
}

.booking-field {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
}

.booking-field label {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--text-main);
    letter-spacing: 0.01em;
}

.booking-field input,
.booking-field select,
.booking-field textarea {
    font-family: 'Outfit', sans-serif;
    font-size: 1.05rem;
    color: var(--text-main);
    background: var(--white);
    border: 2px solid rgba(92, 42, 30, 0.1);
    border-radius: 16px;
    padding: 1rem 1.25rem;
    min-height: 48px;
    outline: none;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    width: 100%;
    appearance: none;
    -webkit-appearance: none;
    /* Prevent iOS zoom on focus â€” keep font >= 16px on mobile */
    font-size: max(1rem, 16px);
}

.booking-field select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235C2A1E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1.25rem center;
    padding-right: 3rem;
    cursor: pointer;
}

.booking-field textarea {
    resize: vertical;
    min-height: 100px;
}

.booking-field input:hover,
.booking-field select:hover,
.booking-field textarea:hover {
    border-color: rgba(92, 42, 30, 0.25);
    background: #FDFBF8;
}

.booking-field input:focus,
.booking-field select:focus,
.booking-field textarea:focus {
    border-color: var(--accent-color);
    box-shadow: 0 10px 30px rgba(92, 42, 30, 0.08);
    transform: translateY(-2px);
    background: var(--white);
}

.booking-field input.field-error,
.booking-field select.field-error {
    border-color: #c0392b;
}

.booking-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
}

.booking-error {
    display: none;
    color: #c0392b;
    font-size: 0.9rem;
    font-weight: 600;
    margin-bottom: 1.25rem;
    padding: 0.75rem 1rem;
    background: rgba(192, 57, 43, 0.07);
    border-radius: 10px;
}

.booking-error.visible {
    display: block;
}

.booking-submit {
    width: 100%;
    justify-content: center;
    margin-bottom: 0;
}

@media (max-width: 560px) {
    .booking-row {
        grid-template-columns: 1fr;
    }

    .booking-modal h2 {
        font-size: clamp(1.6rem, 8vw, 2rem);
    }

    .booking-field label {
        font-size: 0.85rem;
    }

    .booking-field input,
    .booking-field select,
    .booking-field textarea {
        font-size: 1rem;
        padding: 0.9rem 1rem;
    }
}

/* ===== RESPONSIVE ===== */
@media (max-width: 1100px) {
    .talleres-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .steps-grid {
        gap: 3rem;
    }

    .steps-grid .step-card::after {
        display: none;
    }
}

@media (max-width: 992px) {
    .container {
        padding: 0 1rem;
    }

    .nav-container {
        padding: 0 1.25rem !important;
    }

    .nav-links,
    .nav-cta {
        display: none;
    }

    .nav-toggle {
        display: flex !important;
        background: transparent !important;
        box-shadow: none !important;
        min-height: 44px;
        min-width: 44px;
        width: 44px;
        height: 44px;
        align-items: center;
        justify-content: center;
        padding: 10px !important;
    }

    .hero-grid,
    .estudios-grid,
    .phonak-grid,
    .sobre-mi,
    .contacto-grid,
    .talleres-grid,
    .steps-grid,
    .estudios-images,
    .contacto-info,
    .models-grid {
        grid-template-columns: 1fr;
    }

    .hero {
        text-align: center;
    }

    .hero-image-wrapper {
        order: -1;
        max-width: 450px;
        margin: 0 auto;
    }

    .hero-subtitle {
        margin: 0 auto 2.5rem;
    }

    .hero .cta-button,
    .hero .cta-button-outline {
        margin: 0 auto;
    }

    .hero-actions {
        justify-content: center !important;
    }

    .sobre-mi-image {
        max-width: 400px;
        margin: 0 auto;
    }

    .ticker-container {
        grid-template-columns: 1fr;
    }

    .ticker-track.reverse {
        display: none;
    }

    .faq-list {
        grid-template-columns: 1fr;
    }

    .floating-wa {
        left: auto;
        right: 1rem;
        bottom: 1.5rem;
        width: 52px;
        height: 52px;
    }

    .floating-wa svg {
        width: 28px;
        height: 28px;
    }

    .scroll-top {
        bottom: 5rem !important;
        right: 1rem !important;
        width: 46px !important;
        height: 46px !important;
        font-size: 1.1rem !important;
        z-index: 1001 !important;
    }
}

@media (max-width: 600px) {

    /* Ocultar elementos disruptivos */
    body::after {
        display: none !important;
    }

    body {
        padding-top: 68px;
    }

    .container {
        padding: 0 0.75rem !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .main-card {
        padding: 2rem 0.75rem !important;
        margin: 0.75rem 0 !important;
        border-radius: 20px !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        overflow: visible !important;
    }

    .phonak,
    .cta-final {
        margin: 0.75rem 0 !important;
        padding: 2.5rem 0.75rem !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .nav-toggle {
        display: flex !important;
    }

    .nav-links {
        display: flex !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100vh !important;
        background-color: var(--bg-color) !important;
        flex-direction: column !important;
        justify-content: center !important;
        align-items: center !important;
        gap: 2.5rem !important;
        transform: translateX(100%);
        transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
        z-index: 2000 !important;
        padding: 2rem !important;
        margin: 0 !important;
        visibility: hidden;
    }

    .nav-links.active {
        transform: translateX(0) !important;
        visibility: visible;
    }

    .nav-link {
        font-size: 1.75rem !important;
        font-weight: 800 !important;
        color: var(--accent-color) !important;
        text-decoration: none !important;
    }

    .nav-cta {
        display: none;
    }

    section {
        padding: 3rem 0 !important;
    }

    .cta-final h2 {
        font-size: clamp(1.8rem, 8vw, 2.5rem);
        margin-bottom: 2rem;
    }

    .cta-final .cta-button {
        font-size: 0.95rem;
        padding: 1rem 1.5rem;
        width: auto;
    }

    .obras-sociales-bar {
        padding: 2rem 1.25rem;
        margin-top: 3.5rem;
        border-radius: 28px;
    }

    /* Touch Targets */
    .mobile-link {
        min-height: 44px;
        display: flex;
        align-items: center;
    }

    /* TipografÃ­a Fluida */
    .hero h1 {
        font-size: clamp(2.2rem, 10vw, 2.5rem);
    }

    h2 {
        font-size: clamp(1.6rem, 8vw, 2rem);
    }

    .talleres-desc {
        font-size: 1.05rem;
        margin-bottom: 3rem;
    }

    /* Hero Image mobile */
    .hero-image-wrapper img.parallax-img {
        height: 300px;
        border-radius: 20px;
    }

    .hero-image-wrapper {
        animation: none;
        padding-bottom: 3.5rem;
        overflow: visible;
    }

    /* Badge on mobile: centrado debajo de la foto, siempre visible */
    .experience-float {
        position: absolute;
        bottom: 0.5rem;
        left: 50%;
        transform: translateX(-50%);
        animation: none;
        padding: 0.75rem 1rem;
        border-radius: 14px;
        gap: 0.6rem;
        white-space: nowrap;
        z-index: 10;
    }

    .experience-text strong {
        font-size: 0.9rem;
    }

    .experience-text span {
        font-size: 0.72rem;
    }

    .experience-avatar {
        width: 32px;
        height: 32px;
    }

    /* Hero subtitle more compact on mobile */
    .hero-subtitle {
        font-size: 1rem;
        margin-bottom: 1.75rem;
    }

    /* Tarjetas y Botones */
    .taller-card {
        padding: 1.5rem 1rem;
    }

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

    .taller-card p {
        font-size: 1rem;
    }

    .step-card {
        padding: 2.5rem 1.25rem;
    }

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

    .step-number {
        width: 60px;
        height: 60px;
        font-size: 1.4rem;
    }

    .cta-button,
    .cta-button-outline {
        font-size: 1rem;
        padding: 1.1rem 1.5rem;
        width: 100%;
        justify-content: center;
        min-height: 48px;
        white-space: normal;
    }

    .bio-stats {
        flex-direction: column;
        gap: 1.5rem;
    }

    /* Estudios Section */
    .estudios {
        padding: 3rem 0 !important;
    }

    .estudios-grid {
        gap: 2rem;
    }

    .estudios-list {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .estudios-images {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .estudios-images img {
        width: 100% !important;
        height: 220px !important;
        border-radius: 20px;
    }

    /* Talleres Section Alignment Fix */
    .talleres-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 30px;
        align-items: stretch;
        /* Cards con altura uniforme */
    }

    .taller-card {
        height: 100%;
        display: flex;
        flex-direction: column;
    }

    .taller-card-body {
        flex-grow: 1;
        display: flex;
        flex-direction: column;
    }

    .taller-card-cta-wrap {
        margin-top: auto;
        display: flex;
        flex-direction: column;
        gap: 12px;
    }

    .contacto {
        padding: 3rem 0 !important;
    }

    .contacto-grid {
        gap: 2.5rem;
    }

    .contacto-cards {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .mapa-wrapper iframe {
        height: 300px !important;
    }

    /* Sobre Mi */
    .sobre-mi {
        gap: 2.5rem;
    }

    .sobre-mi-image {
        max-width: 100% !important;
    }

    .sobre-mi-image img {
        aspect-ratio: 4/3 !important;
    }

    /* Testimonios */
    .testimonios {
        padding: 3rem 0 !important;
    }

    .ticker-container {
        height: 420px;
        margin-top: 2.5rem;
    }

    .testimonio-card {
        padding: 1.5rem;
        border-radius: 20px;
        min-height: 220px;
    }

    .testimonio-card p {
        font-size: 1rem;
    }

    .quote-icon {
        font-size: 2.5rem;
        margin-bottom: 0.5rem;
    }

    /* FAQ */
    .faq-question {
        padding: 1.5rem 1.25rem;
        font-size: 1rem;
    }

    .faq-answer {
        padding: 0 1.25rem;
    }

    .faq-item.open .faq-answer {
        padding-bottom: 1.5rem;
    }

    /* Phonak */
    .phonak-grid {
        text-align: center;
    }

    .phonak-image-wrapper img {

        border-radius: 0px !important;
    }

    #open-models {
        width: auto !important;
        display: inline-flex !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    /* Como Trabajo */
    section.como-trabajo.main-card {
        padding: 2rem 0.75rem !important;
    }

    /* Modal Seguro â€” Mobile */
    .modal-content {
        padding: 2.5rem 1.25rem;
        width: 100%;
        max-width: 100%;
        margin: 0;
        border-radius: 24px;
        max-height: min(85vh, 85dvh);
        /* Respect mobile browser chrome */
    }

    .booking-modal {
        padding: 2rem 1.25rem 5rem !important;
        /* extra bottom padding for the sticky confirm button */
    }

    .close-modal {
        top: 12px;
        right: 12px;
        min-width: 44px;
        min-height: 44px;
        width: 36px;
        height: 36px;
        font-size: 18px;
    }

    .models-grid {
        grid-template-columns: 1fr !important;
        gap: 1.25rem;
        margin-top: 2rem;
    }

    .model-card {
        padding: 1.25rem 0.75rem;
    }

    .model-card img {
        height: 120px;
        margin-bottom: 0.75rem;
    }

    .model-card h4 {
        font-size: 1rem;
    }

    .model-card p {
        font-size: 0.85rem;
    }

    /* Control de ImÃ¡genes global */
    .hero-image-wrapper img,
    .sobre-mi-image img,
    .estudios-images img,
    .phonak-image img,
    .phonak-image-wrapper img {
        width: 100%;
        max-width: 100%;
        height: auto;
        object-fit: cover;
    }

    /* Overflow prevention */
    body {
        overflow-x: hidden !important;
    }

    main {
        width: 100% !important;
    }

    .container {
        width: 100% !important;
    }

    /* Floating buttons - stacked right side */
    .floating-wa {
        right: 1rem !important;
        left: auto !important;
        bottom: 1.5rem !important;
        width: 52px !important;
        height: 52px !important;
        z-index: 1000 !important;
    }

    .floating-wa svg {
        width: 28px !important;
        height: 28px !important;
    }

    .scroll-top {
        right: 1rem !important;
        bottom: 5rem !important;
        width: 46px !important;
        height: 46px !important;
        font-size: 1.1rem !important;
        z-index: 1001 !important;
    }

    /* Footer */
    footer {
        padding: 2.5rem 0;
        margin-top: 2rem;
    }

    .footer-copy {
        font-size: 0.85rem;
    }
}

/* ===== EXTRA SMALL DEVICES (320px-400px) ===== */
@media (max-width: 400px) {
    .hero h1 {
        font-size: clamp(1.8rem, 9vw, 2.2rem);
    }

    h2 {
        font-size: clamp(1.4rem, 7vw, 1.8rem);
    }

    .hero-subtitle {
        font-size: 1rem;
    }

    .hero-image-wrapper img.parallax-img {
        height: 250px;
    }

    .main-card {
        padding: 1.5rem 0.5rem !important;
    }

    .phonak,
    .cta-final {
        padding: 2rem 0.5rem !important;
    }

    .cta-button,
    .cta-button-outline {
        font-size: 0.9rem;
        padding: 1rem 1.25rem;
    }

    .taller-card {
        padding: 1.25rem 0.75rem;
    }

    .taller-card h3 {
        font-size: 1.15rem;
    }

    .os-header {
        font-size: 1.1rem;
        flex-direction: column;
        gap: 0.5rem;
    }

    .os-tags {
        gap: 0.5rem;
    }

    .os-tag {
        padding: 0.5rem 1rem;
        font-size: 0.85rem;
    }

    .stat-item h4 {
        font-size: 1.8rem;
    }

    .unc-title {
        font-size: 1.5rem;
    }

    .section-tag {
        font-size: 0.8rem;
    }

    .ticker-container {
        height: 360px;
    }

    .testimonio-card {
        padding: 1.25rem;
        min-height: 200px;
    }

    .cta-final h2 {
        font-size: clamp(1.5rem, 7vw, 2rem);
    }
}

/* scrool sin bugs para el responsive mobile */
@media (max-width: 992px) {
    .hero-image-wrapper {
        animation: none !important;
    }

    header {
        transition: background-color 0.3s ease, box-shadow 0.3s ease, padding 0.3s ease !important;
    }

    .reveal {
        transition: opacity 0.5s ease, transform 0.5s ease !important;
    }
}

/* ===== MOBILE HERO â€” CTA visible sin scroll (375pxâ€“414px) ===== */
@media (max-width: 480px) {
    body {
        padding-top: 62px;
    }

    header {
        padding: 0.85rem 0;
    }

    .nav-toggle {
        display: flex;
        background: transparent !important;
        border: none;
        padding: 0;
        width: 32px;
        height: 32px;
    }

    .hamburger,
    .hamburger::before,
    .hamburger::after {
        background: #3D1A0E !important;
    }

    /* AGREGAR ESTO justo debajo */
    .nav-toggle.active .hamburger {
        background: transparent !important;
    }

    .main-card {
        padding: 1.25rem 0.75rem !important;
        margin: 0.5rem 0 !important;
        border-radius: 16px !important;
    }

    .hero {
        padding-top: 12px !important;
        padding-bottom: 0 !important;
        min-height: auto !important;
    }

    .hero-grid {
        gap: 0.75rem !important;
        margin-top: 0 !important;
    }

    .hero-content {
        padding-top: 0 !important;
    }

    .hero-image-wrapper {
        max-width: 100%;
        padding-bottom: 1.5rem;
        overflow: visible;
    }

    .hero-image-wrapper img.parallax-img {
        height: 180px !important;
        max-height: 180px !important;
        border-radius: 16px !important;
        object-fit: cover !important;
        object-position: top !important;
    }

    /* Badge debajo de la foto */
    .experience-float {
        position: absolute !important;
        bottom: -15px !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        padding: 0.75rem 1rem !important;
        border-radius: 12px !important;
        gap: 0.5rem !important;
        width: 90% !important;
        display: flex !important;
        justify-content: center !important;
        background: white !important;
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1) !important;
    }

    .experience-text strong {
        font-size: 0.85rem !important;
    }

    .experience-text span {
        font-size: 0.7rem !important;
    }

    .experience-avatar {
        width: 28px !important;
        height: 28px !important;
    }

    /* Trust badge */
    .trust-badge {
        padding: 0.35rem 0.75rem;
        margin-bottom: 1rem;
    }

    .trust-badge .badge-text {
        font-size: 0.72rem;
    }

    /* TÃ­tulo */
    .hero h1 {
        font-size: clamp(1.85rem, 9.5vw, 2.2rem) !important;
        margin-bottom: 0.75rem !important;
        line-height: 1.05 !important;
    }

    /* SubtÃ­tulo */
    .hero-subtitle {
        font-size: 0.9rem !important;
        margin-bottom: 1.25rem !important;
        line-height: 1.45 !important;
    }

    /* CTAs */
    .hero-actions {
        gap: 0.5rem !important;
        margin-bottom: 0.5rem !important;
        flex-direction: column !important;
        align-items: center !important;
    }

    .cta-button,
    .cta-button-outline {
        padding: 0.9rem 1.25rem !important;
        font-size: 0.95rem !important;
        min-height: 46px !important;
        width: 100% !important;
    }

    /* Link secundario bajo boton */
    .hero-wa-direct {
        font-size: 0.9rem !important;
        text-decoration: underline !important;
        color: #3D1A0E !important;
        text-align: center !important;
        margin-top: 0.5rem !important;
    }

}

/* ===== CARRUSEL TALLERES â€” mobile ===== */
@media (max-width: 768px) {

    /* Convertir grid en scroll horizontal */
    .talleres-grid:not(.talleres-stack-wrapper) {
        display: flex !important;
        flex-direction: row !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        gap: 1rem !important;
        padding: 0.5rem 0.75rem 1.5rem !important;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .talleres-grid::-webkit-scrollbar {
        display: none;
    }

    /* Cada card ocupa ~78vw â†’ se ven 1 completa + inicio de la siguiente */
    .taller-card {
        min-width: 78vw !important;
        max-width: 78vw !important;
        scroll-snap-align: start;
        border-radius: 24px !important;
        padding: 1.5rem 1.25rem !important;
        border-left: 6px solid var(--accent-color) !important;
        flex-shrink: 0;
    }

    /* Ocultar descripciÃ³n larga para altura compacta */
    .taller-card>p {
        font-size: 0.9rem !important;
        margin-bottom: 1.25rem !important;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    .taller-card h3 {
        font-size: 1.2rem !important;
    }

    .taller-actions {
        flex-direction: column !important;
        gap: 0.6rem !important;
    }

    .taller-actions .cta-button,
    .taller-actions .cta-button-outline {
        padding: 0.8rem 1rem !important;
        font-size: 0.9rem !important;
        width: 100% !important;
        justify-content: center !important;
    }

    /* PaginaciÃ³n hint visual */
    .talleres-scroll-hint {
        display: block !important;
    }
}

/* Hint de scroll para el carrusel */
.talleres-scroll-hint {
    display: none;
    text-align: center;
    margin-top: 1rem;
    font-size: 0.82rem;
    color: var(--text-muted);
    font-weight: 600;
    letter-spacing: 0.03em;
    opacity: 0.7;
}

/* ===== FONDOS ALTERNOS POR SECCIÃ“N ===== */
.talleres {
    background-color: var(--bg-color);
}

.estudios {
    background-color: var(--bg-alt);
}

.sobre-mi {
    background-color: var(--bg-color);
}

.testimonios {
    background-color: var(--bg-alt);
}

.faq {
    background-color: var(--bg-color);
}

.contacto {
    background-color: var(--bg-alt);
}

/* Separador entre secciones principales */
.section-divider {
    width: 100%;
    height: 1px;
    border: none;
    background: linear-gradient(to right, transparent, rgba(93, 54, 37, 0.15), transparent);
    display: block;
    margin: 0;
}

/* ===== SERVICES ROW â€” 2Ã—2 en mobile ===== */
@media (max-width: 768px) {
    .services-row-grid {
        grid-template-columns: 1fr 1fr !important;
        gap: 1rem !important;
        margin-top: 1.5rem !important;
        margin-bottom: 2rem !important;
    }

    .service-item {
        background: var(--white);
        border-radius: 14px;
        padding: 1rem 0.75rem;
        box-shadow: 0 2px 12px rgba(93, 54, 37, 0.05);
        border: 1px solid rgba(93, 54, 37, 0.06);
    }

    .service-icon {
        width: 26px;
        height: 26px;
    }

    .service-item span {
        font-size: 0.82rem;
    }
}

/* ===== STEP CARDS â€” compactos en mobile ===== */
@media (max-width: 768px) {
    .steps-grid {
        display: flex !important;
        flex-direction: column !important;
        gap: 0.6rem !important;
        margin-top: 1.25rem !important;
    }

    .step-card {
        display: grid !important;
        grid-template-columns: auto 1fr !important;
        grid-template-areas:
            "number title"
            "number text" !important;
        column-gap: 1rem !important;
        row-gap: 0.2rem !important;
        align-items: start !important;
        text-align: left !important;
        background: var(--white);
        border-radius: 14px;
        padding: 0.9rem 1rem !important;
        box-shadow: 0 2px 10px rgba(93, 54, 37, 0.04);
        border: 1px solid rgba(93, 54, 37, 0.06);
    }

    .step-card::after {
        display: none !important;
    }

    .step-number {
        grid-area: number !important;
        width: 40px !important;
        height: 40px !important;
        font-size: 1rem !important;
        margin: 0 !important;
    }

    .step-icon {
        display: none !important;
    }

    .step-card h3 {
        grid-area: title !important;
        font-size: 1rem !important;
        margin-bottom: 0 !important;
        align-self: end !important;
        line-height: 1.2 !important;
    }

    .step-card p {
        grid-area: text !important;
        font-size: 0.82rem !important;
        color: var(--text-muted);
        line-height: 1.35 !important;
        margin: 0 !important;
    }

    section.como-trabajo.main-card {
        padding: 1.5rem 1rem !important;
        margin: 0.5rem 0 !important;
    }

    section.como-trabajo .talleres-desc {
        font-size: 0.88rem;
        margin-bottom: 0.5rem;
    }

    section.como-trabajo h2 {
        font-size: 1.5rem !important;
        margin-bottom: 0.35rem !important;
    }
}

/* ===== ESTUDIOS â€” compacto en mobile ===== */
@media (max-width: 768px) {
    .estudios {
        padding: 2rem 1rem !important;
    }

    .estudios-grid {
        grid-template-columns: 1fr !important;
        gap: 1.25rem !important;
    }

    .estudios h2 {
        font-size: 1.5rem !important;
        margin-bottom: 0.35rem !important;
    }

    .estudios>.estudios-grid>div>p:first-of-type {
        font-size: 0.88rem !important;
        margin-bottom: 0.75rem !important;
    }

    .estudios-list {
        grid-template-columns: 1fr 1fr !important;
        gap: 0.4rem !important;
        margin-top: 0.75rem !important;
    }

    .estudio-item {
        padding: 0.55rem 0.75rem !important;
        border-radius: 8px !important;
        font-size: 0.82rem !important;
        border: 1px solid rgba(93, 54, 37, 0.08) !important;
        gap: 0.4rem !important;
    }

    .estudio-icon-svg {
        width: 0.95rem !important;
        height: 0.95rem !important;
    }

    .estudios-nota {
        font-size: 0.78rem !important;
        margin-top: 0.75rem !important;
    }
}

/* ===== OBRAS SOCIALES â€” compacto en mobile ===== */
@media (max-width: 768px) {
    .obras-sociales-bar {
        padding: 1rem 1rem !important;
        border-radius: 14px !important;
        margin-top: 1.25rem !important;
        gap: 0.75rem !important;
        flex-direction: column !important;
        align-items: flex-start !important;
    }

    .os-header {
        font-size: 0.9rem !important;
        gap: 0.5rem !important;
    }

    .os-icon-svg {
        width: 18px !important;
        height: 18px !important;
    }

    .os-tags {
        gap: 0.35rem !important;
        flex-wrap: wrap !important;
    }

    .os-tag {
        padding: 0.3rem 0.7rem !important;
        font-size: 0.78rem !important;
        border-radius: 100px !important;
    }

    .os-footer {
        font-size: 0.8rem !important;
        margin-top: 0.25rem !important;
    }
}

/* ===== PHONAK / AGENTE ESTRATÃ‰GICO â€” mobile ===== */
@media (max-width: 768px) {
    .phonak {
        padding: 2rem 1rem !important;
    }

    .phonak-grid {
        grid-template-columns: 1fr !important;
        gap: 1.25rem !important;
        align-items: start !important;
    }

    .phonak-image-wrapper {
        display: none !important;
    }

    .phonak h2 {
        font-size: 1.5rem !important;
        margin-bottom: 0.5rem !important;
    }

    .phonak>div>div p,
    .phonak .phonak-adaptacion {
        font-size: 0.88rem !important;
        line-height: 1.5 !important;
        margin-bottom: 0.5rem !important;
    }

    .phonak .cta-button {
        width: 100% !important;
        justify-content: center !important;
        margin-top: 0.75rem !important;
    }
}

/* ===== SOBRE MÃ  â€” compacto en mobile ===== */
@media (max-width: 768px) {
    .sobre-mi {
        padding: 2rem 1rem !important;
    }

    .sobre-mi-image {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .sobre-mi-image img {
        height: 260px !important;
        width: 100% !important;
        max-width: 100% !important;
        border-radius: 16px !important;
        object-fit: cover !important;
        object-position: top center !important;
    }

    .sobre-mi h2 {
        font-size: 1.5rem !important;
        margin-bottom: 0.35rem !important;
    }

    .sobre-mi>div>p {
        font-size: 0.88rem !important;
        line-height: 1.5 !important;
        margin-bottom: 0.5rem !important;
    }

    .bio-extra {
        font-size: 0.88rem !important;
        margin-bottom: 0.75rem !important;
        padding-left: 0.75rem !important;
    }

    .bio-stats {
        gap: 1rem !important;
        margin-top: 0.75rem !important;
        flex-direction: row !important;
        justify-content: space-between !important;
    }

    .stat-number {
        font-size: 1.4rem !important;
    }

    .stat-label {
        font-size: 0.75rem !important;
    }
}

/* ===== TESTIMONIOS â€” compacto en mobile ===== */
@media (max-width: 768px) {
    .testimonios {
        padding: 3rem 0 !important;
    }

    .testimonios-header {
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
        padding: 0 1.5rem !important;
        margin-bottom: 0.5rem !important;
    }

    .testimonios h2 {
        font-size: 1.6rem !important;
    }

    .testimonios-subtitle {
        display: block !important;
        /* Show deslizar message on mobile */
    }

    .testimonios-arrows {
        display: none !important;
        /* Hide arrows on mobile */
    }

    .testimonios-scroll-wrapper {
        padding: 1rem !important;
        margin-top: 1rem !important;
    }

    .testimonios-grid {
        display: flex !important;
        gap: 1.25rem !important;
        width: max-content !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .testimonio-card {
        width: 290px !important;
        padding: 1.75rem 1.25rem !important;
        border-radius: 20px !important;
        min-height: auto !important;
    }

    .testimonio-card p {
        font-size: 0.92rem !important;
        line-height: 1.45 !important;
        margin-bottom: 1.25rem !important;
    }

    .quote-icon {
        font-size: 2.2rem !important;
        line-height: 1 !important;
        margin-bottom: 0.25rem !important;
    }
}

/* ===== FAQ â€” compacto en mobile ===== */
@media (max-width: 768px) {
    .faq {
        padding: 2rem 1rem !important;
    }

    .faq .reveal {
        margin-bottom: 1rem !important;
    }

    .faq h2 {
        font-size: 1.5rem !important;
    }

    /* faq-list ya no tiene grid en mobile, heredan los estilos base compactos */
    .faq-list {
        margin-top: 1rem !important;
    }
}

/* ===== CONTACTO â€” compacto en mobile ===== */
@media (max-width: 768px) {
    .contacto {
        padding: 2rem 1rem !important;
    }

    .contacto-grid {
        grid-template-columns: 1fr !important;
        gap: 1rem !important;
    }

    .contacto h2 {
        font-size: 1.5rem !important;
        margin-bottom: 0.35rem !important;
    }

    .contacto>.contacto-grid>div>p {
        font-size: 0.88rem !important;
        margin-bottom: 0.75rem !important;
    }

    /* Cards ya son compactas por defecto â€” solo ajustar mapa */
    .mapa-wrapper iframe {
        height: 220px !important;
    }

    .mapa-wrapper {
        border-radius: 16px !important;
    }

    .contacto .cta-button {
        width: 100% !important;
        justify-content: center !important;
        margin-top: 0.75rem !important;
    }
}

/* ===== ESTUDIOS CAROUSEL â€” 2-column on desktop, stack on mobile ===== */
.estudios-carousel {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

.estudios-carousel-img {
    width: 100%;
    height: 300px;
    object-fit: cover;
    border-radius: 12px;
    box-shadow: 0 16px 40px rgba(92, 42, 30, 0.1);
    transition: transform 0.4s ease;
}

.estudios-carousel-img:hover {
    transform: translateY(-4px);
}

/* ===== HERO SOCIAL PROOF ===== */
.hero-social-proof {
    font-size: 0.82rem;
    color: var(--text-muted);
    font-weight: 500;
    margin-top: 0.25rem;
    margin-bottom: 0;
    opacity: 0.85;
    display: block;
}

/* ===== MODEL BADGE (Phonak modal) ===== */
.model-badge {
    display: inline-block;
    background: #FDF1EB;
    color: #5C2A1E;
    border: 1px solid rgba(92, 42, 30, 0.15);
    border-radius: 100px;
    padding: 3px 10px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 0.5rem;
    display: block;
}

/* Model card image area crema */
.model-card-img-wrap {
    background: #FDF1EB;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 180px;
    margin-bottom: 1rem;
    overflow: hidden;
}

.model-card-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 0;
    margin-bottom: 0;
}

/* ===== CONTACTO mobile override (cream) ===== */
@media (max-width: 768px) {
    .contacto {
        padding: 2.5rem 1rem !important;
        background: #E8D5C4 !important;
    }

    .contacto h2 {
        color: var(--text-main) !important;
    }

    .contacto-cards {
        grid-template-columns: 1fr !important;
        gap: 0.75rem !important;
    }

    .contacto-card-item {
        background: #FFFFFF !important;
        color: var(--text-main) !important;
        padding: 1rem !important;
        border-radius: 12px !important;
    }

    .card-icon {
        background: var(--bg-alt) !important;
        color: var(--accent-color) !important;
    }

    .card-info p {
        color: var(--text-main) !important;
        font-size: 0.9rem !important;
        white-space: normal !important;
    }

    .mapa-wrapper {
        border-radius: 20px !important;
        overflow: hidden;
    }

    .mapa-wrapper iframe {
        height: 250px !important;
        border-radius: 20px !important;
    }

    .contacto .cta-button {
        width: 100% !important;
        justify-content: center !important;
        margin-top: 1rem !important;
    }
}

/* ===== ESTUDIOS IMAGES mobile carousel ===== */
@media (max-width: 768px) {
    .estudios-images {
        display: flex;
        flex-direction: row;
        overflow-x: auto;
        gap: 1rem;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .estudios-images::-webkit-scrollbar {
        display: none;
    }

    .estudios-images img {
        min-width: 75vw;
        height: 200px !important;
        scroll-snap-align: start;
        border-radius: 12px !important;
        flex-shrink: 0;
    }

    .estudios-carousel-img {
        min-width: 75vw;
        height: 200px !important;
        scroll-snap-align: start;
        flex-shrink: 0;
    }
}

/* ===== MAPA WRAPPER ===== */
.mapa-wrapper {
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 20px 40px rgba(61, 26, 14, 0.08);
}

.mapa-wrapper iframe {
    display: block;
    border-radius: 24px;
}

@media (max-width: 768px) {
    .estudios-carousel {
        display: flex !important;
        flex-direction: row !important;
        overflow-x: auto !important;
        gap: 0.75rem !important;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding-bottom: 0.25rem;
    }

    .estudios-carousel::-webkit-scrollbar {
        display: none;
    }

    .estudios-carousel-img {
        min-width: 80vw !important;
        height: 180px !important;
        border-radius: 12px !important;
        scroll-snap-align: start;
        flex-shrink: 0;
    }

    /* estudios-images: use horizontal scroll on mobile too */
    .estudios-images {
        display: flex !important;
        flex-direction: row !important;
        overflow-x: auto !important;
        gap: 0.75rem !important;
        scroll-snap-type: x mandatory !important;
        scrollbar-width: none !important;
    }

    .estudios-images::-webkit-scrollbar {
        display: none;
    }

    /* talleres: keep horizontal carousel â€” do NOT set to 1fr grid */
    /* removed: .talleres-grid { grid-template-columns: 1fr !important; } */

    .taller-card {
        padding: 24px 20px !important;
    }
}

/* ===== FAQ â€” sync .active class with .open styling (JS uses .active) ===== */
.faq-item.active {
    background: var(--accent-color) !important;
}

.faq-item.active .faq-question {
    color: #FFFFFF !important;
}

.faq-item.active .faq-answer {
    max-height: 300px !important;
    padding: 0 1.25rem 1rem !important;
    color: rgba(255, 255, 255, 0.92) !important;
}

.faq-item.active .faq-icon {
    transform: rotate(45deg);
    color: #FFFFFF !important;
}

/* Ensure faq-item has proper padding for the question */
.faq-question {
    padding: 1rem 1.25rem !important;
    font-size: 1rem !important;
    min-height: 56px !important;
}

/* ===== HERO SOCIAL PROOF â€” mobile center ===== */
@media (max-width: 768px) {
    .hero-social-proof {
        text-align: center;
    }
}

/* ===== OBRAS SOCIALES â€” strip color ===== */
#obras-sociales,
.obras-sociales {
    background-color: #EDE0D4 !important;
    padding: 4rem 0 !important;
}

.os-title-wrapper h2 {
    text-align: center;
    margin-bottom: 1.5rem;
    font-size: clamp(1.6rem, 4vw, 2.4rem);
}

.os-pills {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    padding: 0 1rem;
}

.os-pill {
    background: white;
    border: 1.5px solid #D4B5A0;
    border-radius: 999px;
    padding: 8px 20px;
    font-size: 0.9rem;
    color: #3D1A0E;
    font-weight: 600;
    transition: all 0.2s ease;
}

.os-pill:hover {
    background: #3D1A0E;
    color: white;
}

.os-consult {
    font-style: italic;
    color: #6B3A2A;
    margin-top: 1.5rem;
    text-align: center;
    font-size: 0.95rem;
}

/* ===== SOBRE MÃ  â€” section tag uppercase badge ===== */
.sobre-mi-text .section-tag {
    letter-spacing: 0.2em;
    font-size: 0.8rem;
}

/* ===== CONTACTO â€” ensure light background overrides everywhere ===== */
#contacto,
section.contacto {
    background: #E8D5C4 !important;
    color: var(--text-main) !important;
}

section.contacto h2,
section.contacto .contacto h2 {
    color: var(--text-main) !important;
}

section.contacto p:not(.contacto-wa),
section.contacto .card-info p {
    color: var(--text-muted) !important;
}

section.contacto .card-info p {
    color: var(--text-main) !important;
    font-weight: 600 !important;
}

/* ===== PHONAK button arrow animated ===== */
#open-models .arrow {
    display: inline-block;
    transition: transform 0.3s ease;
}

#open-models:hover .arrow {
    transform: translateX(6px);
}

/* ===== TALLER buttons equal width in card ===== */
.taller-card .taller-ver-mas,
.taller-card .taller-wa {
    width: 100%;
    text-align: center;
    display: block;
    box-sizing: border-box;
}


@media (max-width: 480px) {

    button:not(.nav-toggle):not(.close-modal):not(.scroll-top),
    .cta-button,
    .taller-wa,
    .taller-ver-mas {
        min-height: 48px !important;
    }
}


.sobre-mi-grid {
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    gap: 4rem;
    align-items: center;
}

@media (max-width: 768px) {
    .sobre-mi-grid {
        grid-template-columns: 1fr !important;
        gap: 1.5rem !important;
    }
}

/* =====================================================
   PENDING COMPREHENSIVE FIXES â€” DELIVERY CHECKLIST
   ===================================================== */

/* --- SOBRE MÃ : badge uppercase con letra espaciada --- */
.sobre-mi-badge {
    font-size: 0.75rem !important;
    letter-spacing: 0.22em !important;
    color: var(--accent-color) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    margin-bottom: 1rem !important;
}

/* --- TALLER CARD: descripciÃ³n alineada a la izquierda --- */
.taller-card .taller-desc-short {
    text-align: left;
    font-size: 0.97rem;
    color: var(--text-muted);
    margin-bottom: 0;
    line-height: 1.6;
    flex-grow: 1;
}

/* --- TALLER CARD: Ã­cono eliminado del flujo visual (no aparece en HTML nuevo) --- */
/* Si existe por algÃºn motivo legacy, lo ocultamos */
.taller-card .taller-icon-wrapper {
    display: none !important;
}

/* --- TALLER CARDS: badge urgencia (Cupos limitados) llamativo --- */
.badge-urgencia {
    display: inline-block;
    background: #FFEDE0;
    color: #C0410A;
    border: 1px solid #F5C6A0;
    border-radius: 6px;
    padding: 3px 10px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

/* --- ESTUDIOS AUDITIVOS: grid columnas correctas --- */
.estudios-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: start;
}

/* Estudios images: siempre full width dentro de su columna */
.estudios-images {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

/* --- FAQ GRID: columnas con border-radius en el conjunto --- */
.faq-column {
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid rgba(93, 54, 37, 0.08);
}

/* Asegurar que dentro de cada columna los items no tengan borde exterior */
.faq-column .faq-item:first-child {
    border-top: none;
}

.faq-column .faq-item:last-child {
    border-bottom: none;
}

/* --- PHONAK MODAL: model-card-img-wrap altura correcta --- */
.model-card-img-wrap {
    height: 200px !important;
    background: #FDF1EB;
    border-radius: 12px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1rem;
}

.model-card-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* --- CONTACTO: card-info texto no partido --- */
.card-info p {
    font-size: 0.9rem;
    font-weight: 600;
    margin: 0;
    color: var(--text-main) !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 180px;
}

/* En mobile permitir wrap */
@media (max-width: 600px) {
    .card-info p {
        white-space: normal !important;
        max-width: none !important;
        font-size: 0.88rem;
    }
}

/* --- MAPA: border-radius y altura --- */
.mapa-wrapper {
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 20px 40px rgba(61, 26, 14, 0.08);
}

.mapa-wrapper iframe {
    display: block;
    border-radius: 0;
    height: 420px;
    width: 100%;
}

@media (max-width: 768px) {
    .mapa-wrapper iframe {
        height: 260px !important;
    }
}

/* --- HERO: GarantÃ­a de CTAs visibles en 360px-480px --- */
/* Aplica a todos los telÃ©fonos comunes */
@media (max-width: 480px) and (max-height: 700px) {

    /* Pantallas muy compactas: reducir todo al mÃ­nimo */
    .hero {
        padding-top: 8px !important;
    }

    .trust-badge {
        margin-bottom: 0.5rem !important;
        padding: 0.3rem 0.7rem !important;
    }

    .hero h1 {
        font-size: clamp(1.6rem, 8.5vw, 2rem) !important;
        margin-bottom: 0.5rem !important;
        line-height: 1.05 !important;
    }

    .hero-subtitle {
        font-size: 0.82rem !important;
        margin-bottom: 0.75rem !important;
        line-height: 1.4 !important;
    }

    .hero-actions {
        margin-bottom: 0.4rem !important;
        gap: 0.4rem !important;
    }

    .cta-button,
    .cta-button-outline {
        padding: 0.75rem 1rem !important;
        font-size: 0.9rem !important;
        min-height: 44px !important;
    }

    .hero-image-wrapper {
        display: none !important;
        /* Ocultar imagen en pantallas muy pequeÃ±as */
    }

    .hero-social-proof {
        font-size: 0.75rem !important;
        margin-top: 0.2rem !important;
    }

}

/* --- HERO SOCIAL PROOF: bien visible --- */
.hero-social-proof {
    font-size: 0.82rem;
    color: var(--text-muted);
    font-weight: 600;
    margin-top: 0.5rem;
    margin-bottom: 0;
    opacity: 0.9;
    display: block;
}

@media (max-width: 768px) {
    .hero-social-proof {
        text-align: center;
        font-size: 0.78rem;
    }
}

/* --- HERO: iPhone SE 375px @ 667px garantÃ­a --- */
@media (max-width: 390px) {
    .hero-image-wrapper {
        max-height: 160px !important;
    }

    .hero-image-wrapper img.parallax-img {
        height: 150px !important;
        max-height: 150px !important;
    }

    .hero h1 {
        font-size: clamp(1.55rem, 8vw, 1.9rem) !important;
    }

    .hero-subtitle {
        font-size: 0.8rem !important;
        margin-bottom: 0.75rem !important;
    }
}

/* --- SOBRE MÃ : imagen grande en desktop, correcta --- */
@media (min-width: 769px) {
    .sobre-mi-image img {
        height: 540px !important;
        min-height: 400px;
        object-fit: cover;
        object-position: top center;
        border-radius: 24px;
    }

    .sobre-mi-image {
        position: relative;
    }
}

/* --- TALLERES: botones igual ancho en mobile carousel --- */
@media (max-width: 768px) {
    .taller-actions {
        flex-direction: column !important;
        gap: 0.5rem !important;
        width: 100% !important;
    }

    .taller-actions .taller-ver-mas,
    .taller-actions .taller-wa {
        width: 100% !important;
        min-height: 46px !important;
        justify-content: center !important;
    }
}

/* --- HERO: body padding-top alinea con header fijo --- */
@media (max-width: 480px) {
    body {
        padding-top: 60px !important;
    }
}

/* --- GLOBAL: botones >480px mantienen ancho auto --- */
@media (min-width: 481px) {
    .hero-actions .cta-button {
        width: auto !important;
        min-width: 180px;
    }

    .hero-actions .hero-link-secondary {
        width: auto !important;
    }
}


@media (max-width: 768px) {
    .estudios-grid {
        grid-template-columns: 1fr !important;
        gap: 1.5rem !important;
    }

    .estudios-images {
        display: flex !important;
        flex-direction: row !important;
        overflow-x: auto !important;
        gap: 0.75rem !important;
        scroll-snap-type: x mandatory !important;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding-bottom: 0.5rem;
    }

    .estudios-images::-webkit-scrollbar {
        display: none;
    }

    .estudios-images .estudios-carousel-img,
    .estudios-images img {
        min-width: 78vw !important;
        height: 220px !important;
        scroll-snap-align: start;
        flex-shrink: 0;
        border-radius: 12px !important;
    }
}

/* --- CONTACTO WA BUTTON: full width mobile --- */
@media (max-width: 768px) {
    .contacto-wa {
        width: 100% !important;
        justify-content: center !important;
        margin-top: 1rem !important;
        display: flex !important;
    }
}

/* --- CTA FINAL BOX: estilo correcto --- */
.cta-final-box {
    background: #3D1C0B;
    padding: 6rem 0;
    text-align: center;
}

.cta-final-box h2 {
    color: #FFFFFF !important;
    margin-bottom: 2.5rem;
    font-size: clamp(2rem, 5vw, 3rem);
}

.cta-final-box .cta-button {
    background: #FFFFFF !important;
    color: #3D1C0B !important;
    border-color: #FFFFFF !important;
    font-size: 1.1rem;
    padding: 1.1rem 2.5rem;
}

.cta-final-box .cta-button:hover {
    background: transparent !important;
    color: #FFFFFF !important;
    border-color: rgba(255, 255, 255, 0.6) !important;
}

@media (max-width: 600px) {
    .cta-final-box {
        padding: 4rem 1rem;
    }

    .cta-final-box .cta-button {
        width: 100%;
        justify-content: center;
    }
}

/* --- SOBRE MÃ : stats row en mobile bien compacto --- */
@media (max-width: 480px) {
    .bio-stats {
        flex-direction: row !important;
        justify-content: space-between !important;
        gap: 0.5rem !important;
        flex-wrap: nowrap !important;
    }

    .stat-item {
        flex: 1;
        text-align: center;
    }

    .stat-number {
        font-size: 1.2rem !important;
    }

    .stat-label {
        font-size: 0.7rem !important;
    }
}

/* --- FAQ Accessibility & Color Polish --- */
.faq-item:not(.active):not(.open) .faq-question {
    color: #3D1C0B !important;
    background: transparent !important;
    box-shadow: none !important;
}

.faq-item:not(.active):not(.open) .faq-question:hover {
    color: #3D1C0B !important;
    background: rgba(61, 26, 14, 0.04) !important;
}

.faq-item.active .faq-question,
.faq-item.open .faq-question {
    color: #FFFFFF !important;
    background: transparent !important;
    box-shadow: none !important;
}

.faq-item.active .faq-question:hover,
.faq-item.open .faq-question:hover {
    color: #FFFFFF !important;
    background: rgba(255, 255, 255, 0.06) !important;
}

/* --- PHONAK SECTION: padding correcto --- */
#audifonos.phonak {
    padding: 4rem !important;
}

@media (max-width: 768px) {
    #audifonos.phonak {
        padding: 2rem 1rem !important;
        margin: 0 !important;
        border-radius: 0 !important;
    }
}

/* --- METODOLOGÃ A: CTA visible en mobile --- */
@media (max-width: 992px) {
    .metodologia-final-cta {
        display: block !important;
    }

    .metodologia-final-cta .cta-button {
        width: 100%;
        justify-content: center;
    }
}

/* --- OVERFLOW global protection --- */
html,
body,
main,
section {
    max-width: 100%;
    box-sizing: border-box;
}

/* Prevent any image from overflowing */
img {
    max-width: 100%;
    height: auto;
}

/* Explicit override for images with fixed height */
img[style*="height"],
.estudios-carousel-img,
.estudios-images img,
.hero-image-wrapper img,
.sobre-mi-image img {
    max-width: 100%;
}

/* --- UNIFIED FAB STYLING --- */

@media (max-width: 768px) {
    .unified-fab {
        display: none !important;
    }
}

.unified-fab {
    position: fixed;
    bottom: 24px;
    right: 24px;
    left: auto;
    transform: none;
    z-index: 999;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 14px 28px;
    background: #3D1A00 !important;
    /* Site Primary Dark Brown */
    color: #ffffff !important;
    border-radius: 50px;
    font-weight: 600;
    font-size: 1rem;
    box-shadow: 0 8px 24px rgba(61, 26, 0, 0.25);
    border: none;
    cursor: pointer;
    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0.3s ease, background-color 0.2s ease, box-shadow 0.2s ease !important;
    white-space: nowrap;
}

.unified-fab:hover {
    background: #5C2A18 !important;
    transform: none !important;
    /* Simplificado */
    box-shadow: 0 4px 16px rgba(61, 26, 0, 0.3) !important;
    color: #ffffff !important;
}

.unified-fab:active {
    transform: translateY(-1px) scale(0.98);
}

.unified-fab.hidden {
    opacity: 0 !important;
    transform: translateY(40px) scale(0.8) !important;
    pointer-events: none !important;
}

.unified-fab-icon {
    fill: currentColor;
}

@media (max-width: 768px) {
    .unified-fab {
        width: 100% !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        transform: translateY(0) !important;
        border-radius: 0 !important;
        padding: 16px 20px !important;
        box-shadow: 0 -4px 16px rgba(61, 26, 0, 0.12) !important;
    }

    .unified-fab:hover {
        transform: none !important;
        background: #5C2A18 !important;
    }

    .unified-fab:active {
        transform: scale(0.99) !important;
    }

    .unified-fab.hidden {
        opacity: 0 !important;
        transform: translateY(100%) !important;
    }

    /* Push page content above the FAB bottom bar */
    body {
        padding-bottom: 60px;
    }
}

/* --- TWO-STEP BOOKING FORM STYLING --- */
.booking-summary-box {
    background: var(--bg-alt);
    border-radius: 16px;
    padding: 20px;
    margin: 20px 0;
    border: 1px solid rgba(61, 26, 0, 0.08);
}

.summary-item {
    font-size: 1rem;
    color: var(--text-main);
    margin-bottom: 12px;
    line-height: 1.5;
}

.summary-item:last-child {
    margin-bottom: 0;
}

.summary-item strong {
    color: var(--accent-secondary);
    display: inline-block;
    width: 130px;
}

.booking-confirm-note {
    font-size: 0.9rem;
    color: var(--text-muted);
    text-align: center;
    margin-bottom: 24px;
}

.booking-summary-actions {
    display: flex;
    gap: 12px;
    margin-top: 20px;
}

/* --- MODAL BUTTONS POLISH --- */
#modal-booking .booking-back-btn {
    flex: 0 0 auto !important;
    min-width: 140px !important;
    background: transparent !important;
    /* Forza transparencia */
    border: 1.5px solid rgba(61, 26, 0, 0.2) !important;
    color: #3D1C0A !important;
    /* Texto visible marrÃ³n oscuro */
    border-radius: 14px !important;
    font-size: 0.95rem;
    font-weight: 700 !important;
    height: 52px;
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    box-shadow: none !important;
}

#modal-booking .booking-back-btn:hover {
    background: rgba(61, 26, 0, 0.03) !important;
    border-color: rgba(61, 26, 0, 0.4) !important;
    transform: none !important;
    /* Sencillez: sin saltos */
}

.booking-summary-actions .booking-submit-wrapper {
    flex: 1;
    margin-top: 0 !important;
}

#modal-booking .sticky-confirm-btn {
    width: 100% !important;
    margin-top: 0 !important;
    background: #3D1A00 !important;
    color: #FFFFFF !important;
    border: none !important;
    border-radius: 14px !important;
    font-weight: 700 !important;
    height: 52px;
    transition: all 0.2s ease;
    box-shadow: 0 4px 12px rgba(61, 26, 0, 0.08) !important;
}

#modal-booking .sticky-confirm-btn:hover {
    background: #5C2A18 !important;
    transform: none !important;
    /* Sencillez: sin saltos */
    box-shadow: none !important;
}

/* --- FAQ TARGET ANIMATION --- */
.faq-item:target {
    border-color: var(--accent-terracota) !important;
    box-shadow: 0 0 12px rgba(193, 102, 76, 0.25);
    animation: faq-highlight 1.5s ease-out;
}

@keyframes faq-highlight {
    0% {
        outline: 2px solid transparent;
        background-color: rgba(193, 102, 76, 0.1);
    }

    50% {
        outline: 2px solid var(--accent-terracota);
        background-color: rgba(193, 102, 76, 0.15);
    }

    100% {
        outline: 2px solid transparent;
        background-color: transparent;
    }
}

@media (max-width: 768px) {
    .testimonios-cta .cta-button {
        width: 100%;
        justify-content: center;
    }
}

/* ===== STICKY MOBILE CTA ===== */
.mobile-sticky-cta {
    display: none;
}

@media (max-width: 768px) {
    .mobile-sticky-cta {
        display: block;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        padding: 0.75rem 1rem 0.9rem;
        background: rgba(253, 246, 240, 0.97);
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
        border-top: 1px solid rgba(61, 26, 0, 0.08);
        z-index: 998;
        transition: transform 0.35s ease, opacity 0.35s ease;
    }

    .mobile-sticky-cta.hidden {
        transform: translateY(100%);
        opacity: 0;
        pointer-events: none;
    }

    .mobile-sticky-btn {
        width: 100%;
        background: #3D1A00 !important;
        background-image: none !important;
        color: #ffffff !important;
        border: none !important;
        border-radius: 14px;
        padding: 1rem 1.25rem;
        font-size: 1.05rem;
        font-weight: 700;
        cursor: pointer;
        font-family: 'Plus Jakarta Sans', sans-serif;
        min-height: 52px;
        box-shadow: 0 -4px 20px rgba(61, 26, 0, 0.1) !important;
        transform: none !important;
        transition: background 0.2s ease;
        display: block;
        text-align: center;
    }

    .mobile-sticky-btn:hover,
    .mobile-sticky-btn:active {
        background: #5C2A18 !important;
        transform: none !important;
        box-shadow: none !important;
    }

    /* Compensar espacio para que el sticky no tape contenido â€” SOLO SI EL STICKY ESTÃ  VISIBLE */
    body:has(#mobile-sticky-cta) {
        padding-bottom: 88px !important;
    }

    /* Cuando la modal estÃ¡ abierta, ocultar el sticky */
    body.modal-open .mobile-sticky-cta {
        display: none !important;
    }
}

/* ===== HERO STARS ===== */
.hero-stars {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
}

.hero-stars .stars-icons {
    color: #F59E0B;
    font-size: 1.1rem;
    letter-spacing: 2px;
    line-height: 1;
}

.hero-stars .stars-text {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text-muted);
}

@media (max-width: 768px) {
    .hero-stars {
        justify-content: center;
    }
}

/* ===== AGREGÃ  ESTO AL FINAL DE index.css ===== */

/* --- Intro text estudios --- */
.estudios-intro {
    font-size: 1.1rem;
    color: var(--text-muted);
    font-weight: 500;
    margin-bottom: 1.5rem;
    max-width: 560px;
}

/* --- Grid de cards de servicios --- */
.servicios-cards-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;

}

@media (max-width: 768px) {
    .servicios-cards-grid {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }
}

.servicio-card {
    background: #FFFFFF !important;
    border-radius: 20px !important;
    padding: 2rem 1.8rem !important;
    border: 1px solid rgba(61, 26, 0, 0.06) !important;
    box-shadow: 0 4px 24px rgba(61, 26, 0, 0.08) !important;
    display: flex !important;
    flex-direction: column !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.servicio-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 40px rgba(61, 26, 0, 0.12);
}

/* --- Ã cono --- */
.servicio-card-icon-wrap {
    width: 56px;
    height: 56px;
    background: #F5EDE4;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #3D1A00;
    margin-bottom: 1.25rem;
    flex-shrink: 0;
    transition: background 0.3s ease;
}

.servicio-card:hover .servicio-card-icon-wrap {
    background: #3D1A00;
    color: #FFFFFF;
}

/* --- TÃ­tulo --- */
.servicio-card h3 {
    font-size: 1.35rem;
    font-weight: 800;
    color: #3D1A00;
    margin-bottom: 0.8rem;
}

.servicio-card-foto {
    width: calc(100% + 3.6rem);
    margin: 0 -1.8rem 1.5rem -1.8rem;
    height: 180px;
    object-fit: cover;
    border-radius: 0;
    border-bottom: 1px solid rgba(61, 26, 0, 0.06);
}

/* --- DescripciÃ³n --- */
.servicio-card-desc {
    font-size: 0.9rem;
    color: var(--text-muted);
    line-height: 1.5;
    margin-bottom: 1.2rem;
}

/* --- Lista de items --- */
.servicio-items-list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
    flex-grow: 1;
}

.servicio-items-list li {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--text-main);
    line-height: 1.3;
}

.servicio-check {
    color: #C1664C;
    font-weight: 800;
    font-size: 1rem;
    flex-shrink: 0;
    line-height: 1.4;
}

.servicio-card-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #3D1A00 !important;
    color: #FFFFFF !important;
    padding: 0.85rem 1.5rem !important;
    border-radius: 12px !important;
    font-size: 0.95rem;
    font-weight: 700;
    text-decoration: none !important;
    transition: background 0.2s ease, transform 0.2s ease;
    margin-top: auto;
    width: 100%;
    text-align: center;
    border: none;
    min-height: 48px;
    box-shadow: none !important;
}

.servicio-card-cta:hover {
    background: #5C2A18 !important;
    transform: none !important;
    /* Simplificado */
    color: #FFFFFF !important;
    box-shadow: none !important;
}

@media (max-width: 768px) {
    .servicio-card {
        padding: 1.75rem 1.25rem;
    }

    .servicio-card h3 {
        font-size: 1.25rem;
    }

    .servicio-card-icon-wrap {
        width: 48px;
        height: 48px;
    }
}

/* ===== SPECIALTY PAGE HERO (Refactored) ===== */
.specialty-hero {
    background: #3D1A00;
    color: #FFFFFF;
    position: relative;
    overflow: hidden;
    padding: 0;
}

.specialty-hero-container {
    display: flex;
    min-height: 80vh;
    width: 100%;
}

.specialty-hero-content {
    flex: 0 0 55%;
    padding: 10rem 5% 6rem 10%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    z-index: 2;
    background: #3D1A00;
}

.specialty-hero-image {
    flex: 0 0 45%;
    position: relative;
}

.specialty-hero-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
}

/* Gradient Fusion */
.image-overlay {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 120px;
    background: linear-gradient(to right, #3D1A00 0%, transparent 100%);
    z-index: 1;
}

/* Badge with Pulse */
.specialty-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    background: rgba(201, 168, 76, 0.1);
    border: 1px solid rgba(201, 168, 76, 0.3);
    padding: 0.5rem 1rem;
    border-radius: 100px;
    font-size: 0.8rem;
    font-weight: 700;
    color: #C9A84C;
    letter-spacing: 0.1em;
    margin-bottom: 2rem;
    width: fit-content;
}

.badge-dot {
    width: 8px;
    height: 8px;
    background: #C9A84C;
    border-radius: 50%;
    position: relative;
}

.badge-dot::after {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    background: rgba(201, 168, 76, 0.4);
    animation: pulse-gold 2s infinite;
}

@keyframes pulse-gold {
    0% {
        transform: scale(1);
        opacity: 1;
    }

    100% {
        transform: scale(2.5);
        opacity: 0;
    }
}

.specialty-hero-title {
    font-size: clamp(2.2rem, 3.8vw, 3.2rem);
    line-height: 1.15;
    font-weight: 800;
    margin-bottom: 1.5rem;
    letter-spacing: -0.02em;
}

.specialty-hero-subtitle {
    font-size: 1.15rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.8);
    margin-bottom: 2.5rem;
    max-width: 540px;
}

.specialty-hero-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    background: #FFFFFF !important;
    color: #3D1A00 !important;
    padding: 1rem 2.25rem !important;
    border-radius: 50px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    transition: all 0.3s ease !important;
    width: fit-content;
    border: 1px solid rgba(0, 0, 0, 0.1) !important;
}

.specialty-hero-cta:hover {
    background: #C9A84C !important;
    color: #FFFFFF !important;
    transform: translateY(-3px);
}

.specialty-trust-bar {
    margin-top: 4rem;
    display: flex;
    align-items: center;
    gap: 1.5rem;
    font-size: 0.85rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.6);
}

.trust-divider {
    width: 4px;
    height: 4px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 50%;
}

/* Responsive Specialty Hero */
@media (max-width: 1024px) {
    .specialty-hero-content {
        padding: 8rem 5% 5rem 5%;
    }
}

@media (max-width: 768px) {
    .specialty-hero-container {
        flex-direction: column;
    }

    .specialty-hero-image {
        order: 1;
        aspect-ratio: unset;
        height: 280px;
        max-height: 280px;
        flex: none;
        width: 100%;
        margin-bottom: 0;
    }

    .specialty-hero-image img {
        height: 100%;
        object-position: top center;
        border-radius: 0;
        display: block;
    }

    .specialty-hero-content {
        order: 2;
        flex: none;
        padding: 3rem 1.5rem 4rem;
        padding-top: 2.5rem !important;
        text-align: center;
        align-items: center;
    }

    .image-overlay {
        width: 100%;
        height: 120px;
        top: auto;
        bottom: 0;
        background: linear-gradient(to top, #3D1A00 0%, transparent 100%);
    }

    .specialty-hero-cta {
        width: 100%;
        justify-content: center;
    }

    .specialty-trust-bar {
        flex-direction: column;
        gap: 0.75rem;
        margin-top: 3rem;
    }

    .trust-divider {
        display: none;
    }
}

/* ===== PHONAK BADGE PULSE ===== */
.phonak-cta-wrapper {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    flex-wrap: wrap;
    margin-top: 2rem;
}

.phonak-badge-pulse {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: rgba(193, 102, 76, 0.08);
    border: 1px solid rgba(193, 102, 76, 0.25);
    border-radius: 100px;
    padding: 0.5rem 1.2rem;
    font-size: 0.85rem;
    font-weight: 700;
    color: #A8543C;
    letter-spacing: 0.01em;
    animation: bounce-subtle 3s infinite ease-in-out;
}

.pulse-dot {
    width: 8px;
    height: 8px;
    background-color: #25D366;
    /* green pulsing dot */
    border-radius: 50%;
    position: relative;
    display: inline-block;
}

.pulse-dot::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: inherit;
    border-radius: 50%;
    top: 0;
    left: 0;
    animation: dot-pulse 1.8s infinite ease-out;
}

@keyframes dot-pulse {
    0% {
        transform: scale(1);
        opacity: 0.8;
    }

    100% {
        transform: scale(2.8);
        opacity: 0;
    }
}

@keyframes bounce-subtle {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-2px);
    }
}

@media (max-width: 768px) {
    .phonak-cta-wrapper {
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
        gap: 1rem !important;
    }

    .phonak-cta-wrapper button {
        width: 100% !important;
        justify-content: center !important;
        margin: 0 !important;
    }

    .phonak-badge-pulse {
        width: 100% !important;
        justify-content: center !important;
    }
}

/* ===== PHONAK OPEN BUTTON (clean, no arrow) ===== */
.phonak-open-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background-color: #3D1A00;
    color: #FFFFFF;
    padding: 1rem 2rem;
    border-radius: 12px;
    font-weight: 700;
    font-size: 1rem;
    border: 2px solid #3D1A00;
    cursor: pointer;
    font-family: 'Plus Jakarta Sans', sans-serif;
    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
    white-space: nowrap;
    margin: 0;
}

.phonak-open-btn:hover {
    background-color: #5C2A18;
    border-color: #5C2A18;
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(61, 26, 0, 0.2);
}

@media (max-width: 768px) {
    .phonak-open-btn {
        width: 100%;
        justify-content: center;
    }
}

/* ===== CTA WHATSAPP GREEN (diferenciador visual) ===== */
.cta-wa-green {
    background-color: #25D366 !important;
    border-color: #25D366 !important;
    color: #FFFFFF !important;
    gap: 0.75rem;
    box-shadow: none !important;
}

.cta-wa-green:hover {
    background-color: #1EBE59 !important;
    border-color: #1EBE59 !important;
    transform: translateY(-2px);
    box-shadow: none !important;
}

/* ===== CTA FINAL EYEBROW ===== */
.cta-final-eyebrow {
    font-size: 0.9rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.65);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 0.75rem;
}

/* ===== CONTACTO PROMO STRIP ===== */
.contacto-promo-strip {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-top: 1.5rem;
    font-size: 0.88rem;
    color: var(--text-muted);
    font-weight: 500;
    flex-wrap: wrap;
}

.promo-strip-dot {
    width: 7px;
    height: 7px;
    background: #25D366;
    border-radius: 50%;
    flex-shrink: 0;
    position: relative;
}

.promo-strip-dot::after {
    content: '';
    position: absolute;
    inset: 0;
    background: #25D366;
    border-radius: 50%;
    animation: dot-pulse 2s infinite ease-out;
}


.contacto-obras-trigger {
    cursor: pointer;
    transition: all 0.2s ease;
}

.contacto-obras-trigger:hover {
    background: #FFF3EC !important;
    border-color: rgba(193, 102, 76, 0.25) !important;
}

.contacto-obras-trigger:hover .card-icon {
    background: rgba(193, 102, 76, 0.12) !important;
    color: #C1664C !important;
}

.obras-ver-mas {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--accent-terracota, #C1664C);
    margin-left: 0.4rem;
    opacity: 0.8;
    transition: opacity 0.2s;
}

.contacto-obras-trigger:hover .obras-ver-mas {
    opacity: 1;
}


.obras-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(42, 16, 8, 0.45);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    z-index: 3000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
}

.obras-modal-overlay.active {
    opacity: 1;
    pointer-events: all;
}

.obras-modal-card {
    background: #FFFFFF;
    border-radius: 24px;
    padding: 2.5rem 2rem 2rem;
    max-width: 420px;
    width: 100%;
    position: relative;
    box-shadow: 0 32px 80px rgba(42, 16, 8, 0.22);
    transform: translateY(16px) scale(0.97);
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    text-align: center;
}

.obras-modal-overlay.active .obras-modal-card {
    transform: translateY(0) scale(1);
}

.obras-modal-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: 1px solid rgba(61, 26, 0, 0.1);
    background: transparent;
    font-size: 1.3rem;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-muted);
    transition: all 0.2s ease;
}

.obras-modal-close:hover {
    background: rgba(61, 26, 0, 0.06);
    color: var(--text-main);
}

.obras-modal-icon {
    width: 52px;
    height: 52px;
    background: rgba(193, 102, 76, 0.1);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.25rem;
    color: #C1664C;
}

.obras-modal-card h3 {
    font-size: 1.35rem;
    font-weight: 800;
    color: #3D1A00;
    margin-bottom: 0.4rem;
}

.obras-modal-subtitle {
    font-size: 0.9rem;
    color: var(--text-muted);
    margin-bottom: 1.5rem;
}

.obras-lista {
    list-style: none;
    padding: 0;
    margin: 0 0 1.25rem;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem 1rem;
    text-align: left;
}

.obras-lista li {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--text-main);
    padding-left: 1.25rem;
    position: relative;
}

.obras-lista li::before {
    content: 'âœ“';
    position: absolute;
    left: 0;
    color: #25D366;
    font-weight: 700;
}

.obras-modal-nota {
    font-size: 0.82rem;
    color: var(--text-muted);
    line-height: 1.5;
    font-style: italic;
}

@media (max-width: 480px) {
    .obras-lista {
        grid-template-columns: 1fr;
    }

    .obras-modal-card {
        padding: 2rem 1.5rem 1.75rem;
    }
}

/* ============================================================
   PHONAK TEASER â€” SecciÃ³n #audifonos rediseÃ±ada (index.html)
   Objetivo: teaser de conversiÃ³n â†’ audifonos.html
   ============================================================ */

/* Override del centrado heredado de .phonak */
/* Override del centrado heredado de .phonak y fondo crema */
.phonak-teaser {
    text-align: left;
    background-color: #fdf6f0 !important;
}

/* Grid de 2 columnas: texto | mini grid de modelos */
.phonak-teaser-grid {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 4rem;
    align-items: center;
}

/* â”€â”€ Badge "Distribuidor Autorizado Phonak" â”€â”€ */
.phonak-auth-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    background: rgba(61, 26, 0, 0.06);
    border: 1px solid rgba(61, 26, 0, 0.14);
    border-radius: 100px;
    padding: 0.4rem 1.1rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    color: var(--accent-color);
    text-transform: uppercase;
    margin-bottom: 1.4rem;
}

.phonak-badge-dot {
    width: 8px;
    height: 8px;
    background: var(--accent-terracota);
    border-radius: 50%;
    flex-shrink: 0;
    animation: phonak-pulse 2.2s ease-in-out infinite;
}

@keyframes phonak-pulse {

    0%,
    100% {
        opacity: 1;
        transform: scale(1);
    }

    50% {
        opacity: 0.55;
        transform: scale(0.8);
    }
}

/* â”€â”€ Headline principal â”€â”€ */
.phonak-headline {
    font-size: clamp(2rem, 8vw, 3.8rem);
    font-weight: 800;
    color: #3D1C0A;
    line-height: 1.1;
    letter-spacing: -0.04em;
    margin: 1.5rem 0;
}

/* â”€â”€ Subheadline â”€â”€ */
.phonak-subheadline {
    font-size: 1.05rem !important;
    color: var(--text-muted) !important;
    line-height: 1.7 !important;
    margin-bottom: 1.5rem !important;
    font-style: normal !important;
    font-weight: 400 !important;
}

/* â”€â”€ Testimonio corto â”€â”€ */
.phonak-testimonio-short {
    font-size: 0.9rem !important;
    color: var(--text-main) !important;
    line-height: 1.6 !important;
    font-style: italic !important;
    margin-bottom: 1.5rem !important;
    font-weight: 500 !important;
}

.phonak-badge-dot {
    width: 10px;
    height: 10px;
    background: #FF0000;
    border-radius: 50%;
    margin-right: 12px;
    box-shadow: 0 0 0 rgba(255, 0, 0, 0.4);
    animation: pulse-red 2s infinite;
}

@keyframes pulse-red {
    0% {
        transform: scale(0.95);
        box-shadow: 0 0 0 0 rgba(255, 0, 0, 0.7);
    }

    70% {
        transform: scale(1);
        box-shadow: 0 0 0 10px rgba(255, 0, 0, 0);
    }

    100% {
        transform: scale(0.95);
        box-shadow: 0 0 0 0 rgba(255, 0, 0, 0);
    }
}

/* Headline span consolidada */

.phonak-headline span {
    font-weight: 400;
    font-style: italic;
    color: #3D1C0A;
}

.phonak-stars-container {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 2rem;
}

.phonak-stars-row {
    display: flex;
    gap: 4px;
}

.phonak-stars-text {
    font-size: 0.95rem;
    color: #666;
    font-weight: 500;
}

.phonak-blockquote {
    font-size: 1.3rem;
    line-height: 1.6;
    color: #4A4A4A;
    border-left: 4px solid #C9A84C;
    padding-left: 2rem;
    margin: 2.5rem 0;
    font-style: italic;
    position: relative;
}

.phonak-blockquote cite {
    display: block;
    font-style: normal;
    font-weight: 700;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #3D1C0A;
    margin-top: 1rem;
    white-space: nowrap;
}

/* Bloque de CTAs */
.phonak-teaser-ctas {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    margin-top: 32px;
    align-items: center;
}

/* BotÃ³n primario â€” hereda .cta-button, ajuste de tamaÃ±o */
.phonak-primary-cta {
    font-size: 1rem !important;
    padding: 1.05rem 2rem !important;
    letter-spacing: -0.01em;
    white-space: normal;
    text-align: center;
    justify-content: center;
}


/* ---- BASE (sin cambios en la apariencia en reposo) ---- */
.phonak-wa-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.8rem;
    color: #3D1C0A;
    background: transparent;
    border: 2px solid #3D1C0A;
    padding: 0.9rem 2.2rem;
    border-radius: 100px;
    font-weight: 700;
    font-size: 1rem;
    text-decoration: none;
    position: relative;         /* necesario para el pseudo-elemento */
    overflow: hidden;            /* necesario para recortar el fill */
    z-index: 0;
    transition: color 0.35s ease, box-shadow 0.35s ease;
    -webkit-tap-highlight-color: transparent;
}

.phonak-wa-link svg {
    color: inherit;              /* hereda el color del padre para que también cambie */
    flex-shrink: 0;
    transition: color 0.35s ease;
    position: relative;
    z-index: 1;
}

/* ---- PSEUDO-ELEMENTO: el \"charco de pintura\" que se expande ---- */
.phonak-wa-link::before {
    content: '';
    position: absolute;
    inset: 0;
    /* La diagonal parte desde la esquina inferior-izquierda.
       background-size al 250% hace que el degradado arranque fuera
       del botón por la derecha, y al hacer hover se centra cubriendo todo. */
    background: linear-gradient(
        135deg,               /* dirección: bottom-left → top-right */
        #3D1C0A 0%,
        #3D1C0A 50%,
        transparent 50%,
        transparent 100%
    );
    background-size: 250% 250%;
    background-position: 100% 100%;  /* arranca \"fuera\" del botón, por la esquina derecha */
    border-radius: inherit;
    transition: background-position 0.45s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 0;
}

/* Texto e ícono encima del pseudo-elemento */
.phonak-wa-link span,
.phonak-wa-link svg {
    position: relative;
    z-index: 1;
}

/* ---- HOVER: el fill se desplaza hasta cubrir todo el botón ---- */
@media (hover: hover) {
    .phonak-wa-link:hover::before {
        background-position: 0% 0%;   /* el charco viaja a la esquina izquierda, llenando todo */
    }

    .phonak-wa-link:hover {
        color: #FFF;
        box-shadow: 0 6px 20px rgba(61, 28, 10, 0.22);
    }
}

/* ---- Estado activo/press en mobile (sin hover) ---- */
.phonak-wa-link:active {
    background: #3D1C0A;
    color: #FFF;
}
.phonak-wa-link:active svg {
    color: #FFF;
}

.phonak-teaser-right-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
    align-items: stretch;
    /* Cards con altura uniforme */
    margin-top: 28px;
    /* SeparaciÃ³n del texto superior */
}

.phonak-mini-card {
    background: #FFFFFF;
    padding: 1.4rem;
    border-radius: 20px;
    text-align: center;
    border: 1px solid rgba(0, 0, 0, 0.06);
    transition: box-shadow 0.25s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.6rem;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    height: 100%;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.phonak-mini-card:hover {
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.10);
}

.phonak-mini-card img {
    height: 65px;
    width: auto;
    object-fit: contain;
    transition: transform 0.4s ease;
    margin-bottom: 0.5rem;
}

/* Ajustes Mobile: Grid 1 columna + Layout Horizontal */
@media (max-width: 768px) {
    .phonak-teaser {
        padding: 4rem 0;
    }

    .phonak-teaser-grid {
        grid-template-columns: 1fr;
        gap: 3rem;
    }

    .phonak-teaser-right-grid {
        grid-template-columns: 1fr;
        gap: 1.2rem;
        margin-top: 32px;
    }

    .phonak-mini-card {
        flex-direction: row;
        /* Horizontal en mobile */
        text-align: left;
        padding: 1.2rem;
        gap: 1.5rem;
        align-items: center;
        justify-content: flex-start;
    }

    .phonak-mini-card img {
        height: 85px;
        /* MÃ¡s grandes en mobile */
        width: 85px;
        flex-shrink: 0;
        margin-bottom: 0;
    }

    .phonak-mini-card .card-content {
        flex: 1;
    }

    .phonak-primary-cta {
        width: 100% !important;
        /* Full width mobile */
    }

    .phonak-wa-link {
        width: 100% !important;
        /* Full width mobile */
    }
}

/* â”€â”€ Responsive: tablet â”€â”€ */
@media (max-width: 900px) {
    .phonak-teaser-grid {
        gap: 2.5rem;
    }

    .phonak-headline {
        font-size: clamp(1.8rem, 5vw, 2.4rem);
    }
}

/* â”€â”€ Responsive: mobile â”€â”€ */
@media (max-width: 768px) {
    .phonak-teaser {
        text-align: left;
        padding: 4rem 0;
    }

    .phonak-teaser-grid {
        grid-template-columns: 1fr;
        gap: 2.5rem;
    }

    /* Grid de modelos abajo en mobile */
    .phonak-teaser-right-grid {
        order: 1;
        gap: 1rem;
    }

    .phonak-mini-card {
        padding: 0.8rem;
    }

    .phonak-mini-card img {
        width: 50px;
        height: 50px;
    }

    .phonak-teaser-ctas {
        align-items: stretch;
    }

    .phonak-primary-cta {
        width: 100%;
        text-align: center;
        justify-content: center;
        white-space: normal;
    }

    .phonak-wa-link {
        justify-content: center;
        text-align: center;
    }

    .phonak-auth-badge {
        font-size: 0.68rem;
    }
}

/* --- TALLER CARD: sombra refinada en hover (Problem 3) --- */
.taller-card {
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.taller-card:hover {
    transform: translateY(-5px) !important;
    box-shadow: 0 20px 40px rgba(61, 28, 10, 0.12) !important;
    border-color: rgba(61, 28, 10, 0.15) !important;
}

/* --- PHONAK TEASER REDESIGN (Problem 4) --- */
.phonak-stars-row {
    display: flex;
    gap: 4px;
    margin-bottom: 12px;
}

.phonak-blockquote {
    border-left: 3px solid #3D1C0A;
    padding: 4px 0 4px 1.5rem;
    margin: 1.5rem 0;
    font-size: 1.05rem;
}

.phonak-blockquote em {
    display: block;
    color: #3D1C0A;
    line-height: 1.6;
    margin-bottom: 8px;
    font-weight: 500;
}

.phonak-blockquote cite {
    font-size: 0.9rem;
    color: #8B6355;
    font-style: normal;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.phonak-primary-cta {
    display: inline-flex;
    align-items: center;
    background: #3D1C0A !important;
    color: #FFFFFF !important;
}

.phonak-wa-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
    color: #3D1C0A !important;
    text-decoration: none;
    transition: color 0.2s ease;
}

.phonak-wa-link:hover {
    color: #FFF !important;
}

/* --- MODAL BUTTON ALIGNMENT (Problem 2) --- */
.booking-summary-actions {
    display: flex !important;
    gap: 12px !important;
    margin-top: 2rem !important;
}

.booking-back-btn {
    flex: 0 0 auto !important;
    width: auto !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 0 28px !important;
    height: 54px !important;
    background: transparent !important;
    border: 2px solid rgba(61, 26, 0, 0.15) !important;
    color: #3D1C0A !important;
    border-radius: 14px !important;
    font-weight: 700 !important;
    font-size: 0.95rem !important;
    box-shadow: none !important;
}

.booking-back-btn:hover {
    background: rgba(61, 26, 0, 0.04) !important;
    border-color: rgba(61, 26, 0, 0.3) !important;
}

.sticky-confirm-btn {
    flex: 1 !important;
    margin: 0 !important;
    height: 54px !important;
    font-weight: 700;
    background: #3D1A00 !important;
    color: #FFFFFF !important;
    border: none !important;
    border-radius: 14px !important;
}

@media (max-width: 480px) {
    .booking-summary-actions {
        flex-direction: column !important;
    }

    .booking-back-btn {
        order: 2 !important;
        width: 100% !important;
        justify-content: center !important;
    }

    .sticky-confirm-btn {
        order: 1 !important;
        width: 100% !important;
    }
}

/* --- FAB LIGHT MODE (Problem 5: Dark Sections) --- */
.fab--light {
    background-color: #FFFFFF !important;
    color: #3D1C0A !important;
    border: 2px solid #3D1C0A !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1) !important;
}

.fab--light svg {
    color: #3D1C0A !important;
}

/* --- PREMIUM FOOTER REDESIGN (Phase 3) --- */
#main-footer {
    background-color: #3D1C0A;
    color: #FFFFFF;
    padding: 6rem 0 3rem;
    position: relative;
    overflow: hidden;
}

#main-footer::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: radial-gradient(circle at 10% 20%, rgba(255, 255, 255, 0.03) 0%, transparent 60%);
    pointer-events: none;
}

.footer-grid-premium {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr;
    gap: 4rem;
    position: relative;
    z-index: 1;
}

@media (max-width: 768px) {
    .footer-grid-premium {
        grid-template-columns: 1fr;
        text-align: center;
        gap: 32px;
    }

    .footer-grid-premium>* {
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .footer-brand-col p {
        max-width: 100%;
    }

    .footer-contact-item {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 8px;
    }

    .footer-nav-links {
        display: flex;
        flex-direction: column;
        align-items: center;
    }
}

.footer-brand-col h4 {
    font-size: 1.6rem;
    font-weight: 800;
    letter-spacing: -.03em;
    margin-bottom: 1rem;
    color: #FFF;
}

.footer-brand-col p {
    color: rgba(255, 255, 255, 0.7);
    line-height: 1.7;
    font-size: 1rem;
    margin-bottom: 2rem;
    max-width: 320px;
}

.footer-social-pill {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 8px 16px;
    border-radius: 100px;
    color: #FFF;
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 600;
    transition: all 0.3s ease;
}

.footer-social-pill:hover {
    background: #C9A84C;
    border-color: #C9A84C;
    color: #3D1C0A;
    transform: none;
    /* Simplificado */
}

.footer-social-pill svg {
    flex-shrink: 0;
}

.footer-title-small {
    font-size: 0.75rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #C9A84C;
    margin-bottom: 1.5rem;
    display: block;
}

.footer-nav-col ul,
.footer-contact-col ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-nav-col li,
.footer-contact-col li {
    margin-bottom: 1rem;
}

.footer-link-premium {
    color: rgba(255, 255, 255, 0.6);
    text-decoration: none;
    transition: all 0.3s ease;
    font-weight: 500;
}

.footer-link-premium:hover {
    color: #FFF;
    padding-left: 5px;
}

.footer-contact-item {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.95rem;
}

.footer-contact-item svg {
    color: #C9A84C;
    flex-shrink: 0;
    margin-top: 3px;
}

.footer-bottom-line {
    margin-top: 5rem;
    padding-top: 2rem;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: rgba(255, 255, 255, 0.4);
    font-size: 0.85rem;
}

/* --- PREMIUM MODELS SLIDER (Rollback to Slider) --- */
.carousel-wrapper {
    position: relative;
    padding: 2rem 0;
}

.carousel-viewport {
    overflow-x: auto;
    /* Rollback: Removed snap for JS control */
    scrollbar-width: none;
    -ms-overflow-style: none;
    display: flex;
    gap: 24px;
    padding: 20px 4px 40px;
}

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

.carousel-slide {
    flex: 0 0 calc(50% - 12px);
    transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.carousel-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 48px;
    height: 48px;
    background: #3D1C0A;
    border: none;
    box-shadow: 0 10px 30px rgba(61, 28, 10, 0.25);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 10;
    color: #FFF;
    transition: all 0.3s ease;
}

.carousel-nav:hover {
    background: #5A2B12;
    transform: translateY(-50%) scale(1.05);
}

.nav-prev {
    left: -26px;
}

.nav-next {
    right: -26px;
}

/* --- PREMIUM FOOTER GLOBAL STYLES --- */
#main-footer {
    background: radial-gradient(circle at top right, #4D2612 0%, #3D1C0A 100%);
    color: #FFF;
    padding: 60px 0 30px;
}

.footer-badge-gold {
    background: rgba(201, 168, 76, 0.15);
    color: #C9A84C;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    padding: 4px 10px;
    border-radius: 6px;
    letter-spacing: 0.05em;
    display: inline-block;
    margin-bottom: 8px;
}

.footer-brand-header h4 {
    font-size: 1.6rem;
    margin-bottom: 4px;
    color: #FFF;
    font-family: inherit;
}

.footer-nav-links {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.footer-nav-links a {
    color: rgba(255, 255, 255, 0.6);
    text-decoration: none;
    font-weight: 500;
    transition: all 0.3s ease;
}

.footer-nav-links a:hover {
    color: #FFF;
    transform: translateX(4px);
}

.footer-contact-items-wrap {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.contact-icon-bg {
    width: 44px;
    height: 44px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #C9A84C;
    flex-shrink: 0;
}

.footer-contact-item {
    display: flex;
    gap: 16px;
    align-items: center;
}

.contact-text strong {
    display: block;
    color: #FFF;
    font-size: 1.05rem;
}

.contact-text span {
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.5);
}

.footer-bottom-line-premium {
    margin-top: 50px;
    padding-top: 25px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: rgba(255, 255, 255, 0.35);
    font-size: 0.85rem;
}

@media (max-width: 991px) {
    .carousel-slide {
        flex: 0 0 calc(80% - 12px);
    }
}

@media (max-width: 768px) {
    .carousel-slide {
        flex: 0 0 calc(100% - 32px);
    }

    .carousel-nav {
        display: none;
    }

    .footer-bottom-line-premium {
        flex-direction: column;
        text-align: center;
        gap: 12px;
    }
}

/* ===== FONOESTOMATOLOGÃA â€” FINAL SECTIONS ===== */
.que-es-section {
    background: #F5EDE4;
    padding: 6rem 0;
}

@media (max-width: 768px) {
    .que-es-section {
        padding: 48px 0 !important;
    }

    .specialty-hero-stats {
        margin-bottom: 32px !important;
    }
}

.que-es-container {
    display: flex;
    align-items: center;
    gap: 4rem;
    max-width: 1100px;
    margin: 0 auto;
}

.que-es-content {
    flex: 0 0 55%;
}

.section-tag {
    font-size: 0.75rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--accent);
    display: inline-block;
    margin-bottom: 1.25rem;
    opacity: 0.6;
}

.que-es-content h2 {
    font-size: clamp(2.2rem, 5vw, 3rem);
    line-height: 1.1;
    letter-spacing: -0.04em;
    margin: 1rem 0;
    color: #3D1A00;
}

.que-es-content p {
    font-size: 1.15rem;
    line-height: 1.7;
    color: var(--text-muted);
    margin-bottom: 2rem;
}

.que-es-visual-side {
    flex: 0 0 45%;
    max-width: none;
}

.que-es-visual-side img {
    width: 100%;
    height: 480px;
    object-fit: cover;
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(61, 28, 10, 0.08);
}

@media (max-width: 768px) {
    .que-es-container {
        flex-direction: column;
        gap: 2.5rem;
        text-align: center;
        padding: 0 1.5rem;
    }

    .que-es-content h2 {
        text-align: center !important;
    }

    .que-es-visual-side {
        max-width: 100%;
        order: 2;
    }

    .que-es-visual-side img {
        height: auto;
        width: 100%;
        border-radius: 12px;
    }
}

.condiciones-section {
    background: #F5EDE4;
    padding: 1.5rem 0 5rem;
}

.condiciones-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
    padding: 0 1.5rem;
}

@media (max-width: 768px) {
    .condiciones-grid {
        display: flex;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scroll-snap-stop: always;
        -webkit-overflow-scrolling: touch;
        grid-template-columns: none;
    }

    .condicion-card {
        scroll-snap-align: start;
    }

    .condiciones-grid::-webkit-scrollbar {
        height: 4px;
    }

    .condiciones-grid::-webkit-scrollbar-track {
        background: rgba(61, 26, 0, 0.05);
    }

    .condiciones-grid::-webkit-scrollbar-thumb {
        background: rgba(61, 26, 0, 0.1);
        border-radius: 10px;
    }
}

.condicion-card {
    background: #FFFFFF;
    padding: 3rem;
    border-radius: 20px;
    border: 1px solid rgba(61, 26, 0, 0.03);
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    display: flex;
    flex-direction: column;
}

.condicion-card h3 {
    font-size: 1.4rem;
    letter-spacing: -0.03em;
    margin-bottom: 1.25rem;
    color: #3D1A00;
}

@media (max-width: 768px) {
    .condicion-card {
        flex: 0 0 290px;
        scroll-snap-align: center;
        padding: 2rem;
    }
}

.condicion-card:hover {
    transform: translateY(-5px);
}

.condicion-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(61, 26, 0, 0.06);
}

.condicion-card p {
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--text-muted);
    margin-bottom: 1.5rem;
    flex-grow: 1;
}

.condicion-alerta {
    font-size: 0.9rem;
    font-style: italic;
    font-weight: 400;
    color: var(--accent);
    opacity: 0.75;
    padding: 0.25rem 0 0.25rem 0.75rem;
    border-left: 3px solid var(--accent);
    display: block;
}

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

@media (max-width: 640px) {
    .condiciones-grid {
        grid-template-columns: 1fr;
    }
}

.sintomas-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem;
    max-width: 1000px;
    margin: 0 auto;
}

.sintoma-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 1.5rem;
    background: #FDF6F0;
    border-radius: 16px;
    transition: all 0.3s ease;
}

.sintoma-item:hover {
    background: #F5EDE4;
    transform: translateY(-2px);
}

.sintoma-item span {
    font-size: 1.1rem;
    font-weight: 600;
    letter-spacing: -0.02em;
    color: #3D1A00;
    line-height: 1.3;
}

@media (max-width: 992px) {
    .sintomas-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .sintomas-grid {
        grid-template-columns: 1fr;
    }
}

.alertas-cta {
    margin-top: 4rem;
    display: flex;
    justify-content: center;
}

.cta-wa-button {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    background: #3D1A00;
    color: #FFFFFF;
    padding: 1.25rem 2.75rem;
    border-radius: 50px;
    font-weight: 700;
    text-decoration: none;
    transition: all 0.3s ease;
}

.cta-wa-button:hover {
    background: #C9A84C;
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(61, 26, 0, 0.15);
}

.wa-icon {
    width: 20px;
    height: 20px;
}

/* CTA Pill Bordo - Unified with var(--accent) */
.cta-pill-bordo {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    background: var(--accent);
    color: #FFFFFF;
    padding: 1rem 2.5rem;
    border-radius: 50px;
    font-weight: 700;
    text-decoration: none;
    transition: all 0.3s ease;
}

.cta-pill-bordo:hover {
    background: #3D1A00;
    /* Consistency with other dark buttons */
    transform: translateY(-3px);
    box-shadow: 0 10px 25px rgba(61, 26, 0, 0.15);
}

@media (max-width: 768px) {
    .cta-pill-bordo {
        width: 100%;
        justify-content: center;
    }
}

.img-que-es {
    width: 100%;
    height: auto;
    border-radius: 20px;
    display: block;
    object-fit: cover;
    border: 1px solid rgba(61, 26, 0, 0.05);
}

@media (max-width: 768px) {
    .que-es-visual {
        padding: 1rem;
        border-radius: 24px;
        margin-bottom: 2rem;
    }
}


/*HERO ultimos cambios */

/* Hero CTA row â€” primario + secundario en lÃ­nea */
.cta-row-main {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
}

/* Link terciario â€” engagement suave, no compite con conversiÃ³n */
.hero-link-tertiary {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.88rem;
    font-weight: 500;
    color: var(--text-muted);
    text-decoration: none;
    transition: color 0.2s ease;
    margin-top: 2px;
}

.hero-link-tertiary:hover {
    color: var(--text-main);
}

/* Mobile: los dos botones apilados, microtexto y link terciario centrados */
@media (max-width: 480px) {
    .cta-row-main {
        flex-direction: column;
        align-items: stretch;
    }

    .cta-row-main .cta-button,
    .cta-row-main .hero-wa-direct {
        width: 100%;
        justify-content: center;
    }

    .hero-link-tertiary {
        justify-content: center;
    }
}


/* =============================================================
   STICKY STACK â€” getBoundingClientRect approach
   Spacer padding-bottom = card_height - overlap
   ============================================================= */

@media (max-width: 768px) {

    /* overflow visible en todos los padres */
    .talleres,
    .talleres .container,
    .talleres-grid.talleres-stack-wrapper,
    .taller-stack-spacer,
    .phonak-teaser,
    .phonak-teaser-grid,
    .phonak-teaser-right-grid.phonak-stack-wrapper,
    .phonak-stack-spacer {
        overflow: visible !important;
    }

    /* 
       =============================================================
       STICKY STACK (Preservado para futuro uso alternativo)
       =============================================================
    */
    /*
    .taller-stack-card {
        position: sticky !important;
        top: 80px !important;
        width: 100% !important;
        min-height: 290px !important;
        background: #FFFFFF !important;
        border-radius: 28px !important;
        box-shadow: 0 -15px 45px rgba(61, 26, 0, 0.14) !important;
        margin-bottom: 30vh !important;
        isolation: isolate;
        transition: transform 0.4s ease;
    }
    */

    /* ── TALLERES: PREMIUM HORIZONTAL DISCOVERY (NUEVO UX) ── */
    .talleres-grid.talleres-stack-wrapper {
        display: flex !important;
        overflow-x: auto !important;
        scroll-snap-type: x mandatory !important;
        gap: 20px !important;
        padding: 20px 20px 40px !important;
        margin: 0 -2rem !important;
        /* Desbordamiento lateral para sentir premium */
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .talleres-grid.talleres-stack-wrapper::-webkit-scrollbar {
        display: none;
    }

    .taller-card.taller-stack-card {
        flex: 0 0 82% !important;
        /* Muestra un adelanto de la siguiente card */
        scroll-snap-align: center !important;
        min-height: 420px !important;
        margin-bottom: 0 !important;
        position: relative !important;
        top: 0 !important;
        background: #FFFFFF !important;
        border: 1px solid rgba(61, 26, 0, 0.05) !important;
        box-shadow: 0 15px 45px rgba(61, 26, 0, 0.06) !important;
        transform: scale(0.98);
        transition: transform 0.4s ease;
        display: flex !important;
        flex-direction: column !important;
        padding: 2.5rem 1.5rem !important;
    }

    .taller-stack-card--1,
    .taller-stack-card--2,
    .taller-stack-card--3 {
        z-index: 1 !important;
        border-top: none !important;
        transform: none !important;
    }

    .taller-stack-card .taller-actions {
        margin-top: auto !important;
        padding-top: 2rem !important;
    }

    /* â”€â”€ PHONAK WRAPPER â”€â”€ */
    /*
    STICKY PHONAK CARDS (Preservado)
    */
    /*
    .phonak-stack-card {
        position: sticky !important;
        top: 90px !important;
        min-height: 90px !important;
        margin-bottom: 25vh !important;
    }
    */

    /* ── PHONAK: COMPACT GRID 2-COL (NUEVO UX) ── */
    .phonak-teaser-right-grid.phonak-stack-wrapper {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        /* Lado a lado */
        gap: 12px !important;
        margin-top: 1.5rem !important;
    }

    .phonak-stack-card {
        flex-direction: column !important;
        text-align: center !important;
        padding: 1.5rem 0.75rem !important;
        min-height: 200px !important;
        position: relative !important;
        top: 0 !important;
        margin-bottom: 0 !important;
        background: #FFFFFF !important;
        border: 1px solid rgba(61, 26, 0, 0.04) !important;
        box-shadow: 0 8px 25px rgba(61, 26, 0, 0.05) !important;
    }

    .phonak-stack-card--1,
    .phonak-stack-card--2 {
        z-index: 1 !important;
        border-top: none !important;
    }

    .phonak-stack-card img {
        height: 64px !important;
        width: 64px !important;
        object-fit: contain !important;
        margin: 0 auto 1rem !important;
    }

    .phonak-stack-card .card-content {
        flex: none !important;
    }

    .phonak-stack-card .card-content h4 {
        font-size: 0.88rem !important;
        margin-bottom: 4px !important;
    }

    .phonak-stack-card .card-content p {
        font-size: 0.75rem !important;
        color: #6B3A2A;
        line-height: 1.3;
        margin: 0 0 10px !important;
    }

    .phonak-stack-card .card-hover-action {
        font-size: 0.75rem !important;
        color: var(--accent-terracota);
    }
}

.badge-urgencia svg {
    display: inline-block;
    vertical-align: middle;
    position: relative;
    top: -1px;
    flex-shrink: 0;
}

/* Fix: override scroll-snap-type que rompe position:sticky en mobile */
@media (max-width: 768px) {

    /* Fix: ensure all parents are truly visible */
    .talleres,
    .talleres .container,
    .talleres-grid.talleres-stack-wrapper,
    .phonak-teaser,
    .phonak-teaser .container,
    .phonak-teaser-grid,
    .phonak-teaser-right-grid.phonak-stack-wrapper {
        overflow: visible !important;
        clip-path: none !important;
    }
}

/* =========================================================
   OBRAS SOCIALES — Redesign
   ========================================================= */
.obras-sociales {
    background: #FFFFFF;
    padding: 80px 0;
    text-align: center;
    border-top: 1px solid rgba(61, 26, 0, 0.05);
    border-bottom: 1px solid rgba(61, 26, 0, 0.05);
}

@media (max-width: 768px) {
    #main-footer {
        padding: 40px 0 20px !important;
    }

    .footer-bottom-line-premium {
        margin-top: 30px !important;
    }

    .footer-contact-items-wrap {
        gap: 16px !important;
    }
}

.os-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
}

.os-title-wrapper h2 {
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    letter-spacing: -0.04em;
    color: #3D1A00;
    margin-bottom: 0.25rem;
}

.os-subtitle {
    font-size: 1rem;
    color: var(--text-muted);
    margin: 0;
}

.os-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    max-width: 700px;
}

.os-pill {
    background: #FFFFFF;
    border: 1.5px solid rgba(61, 26, 0, 0.1);
    color: #ffff;
    padding: 8px 18px;
    border-radius: 100px;
    font-size: 0.88rem;
    font-weight: 600;
    font-family: inherit;
    box-shadow: 0 2px 6px rgba(61, 26, 0, 0.03);
}

.os-pill--clickable {
    cursor: pointer;
    transition: all 0.25s ease;
}

.os-pill--clickable:hover {
    background: #3D1A00;
    color: #FFF;
    border-color: #3D1A00;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(61, 26, 0, 0.15);
}

.os-actions {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
    justify-content: center;
}

.os-ver-todas-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #ffff;
    color: #FFF;
    border: none;
    padding: 10px 22px;
    border-radius: 100px;
    font-weight: 700;
    font-size: 0.9rem;
    font-family: inherit;
    cursor: pointer;
    transition: all 0.3s ease;
}

.os-ver-todas-btn:hover {
    background: #5A2B12;
    transform: translateY(-2px);
    box-shadow: 0 6px 18px rgba(61, 26, 0, 0.18);
}

.os-consult-link {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--accent);
    text-decoration: none;
    transition: color 0.2s;
}

.os-consult-link:hover {
    color: #ffffff;
}

/* =========================================================
   OBRAS SOCIALES MODAL
   ========================================================= */
.obras-modal-content {
    max-width: 560px;
    width: 90%;
    background: #FFFBF8;
    border-radius: 24px;
    padding: 2.5rem;
    position: relative;
    max-height: 90vh;
    overflow-y: auto;
}

.obras-modal-header {
    text-align: center;
    margin-bottom: 2rem;
}

.obras-modal-icon {
    width: 64px;
    height: 64px;
    background: rgba(193, 102, 76, 0.1);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1rem;
    color: var(--accent);
}

.obras-modal-header h2 {
    font-size: 1.8rem;
    letter-spacing: -0.04em;
    color: #ffff;
    margin: 0.5rem 0 0.75rem;
}

.obras-modal-header p {
    font-size: 1rem;
    color: var(--text-muted);
    line-height: 1.6;
}

.obras-modal-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 2rem;
}

.obras-modal-item {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #FFF;
    border: 1px solid rgba(61, 26, 0, 0.08);
    border-radius: 12px;
    padding: 12px 16px;
    font-size: 0.95rem;
    font-weight: 600;
    color: #FFFF;
}

.obras-check {
    color: #C1664C;
    font-weight: 800;
    font-size: 1.1rem;
    flex-shrink: 0;
}

.obras-modal-footer {
    text-align: center;
    border-top: 1px solid rgba(61, 26, 0, 0.06);
    padding-top: 1.5rem;
}

.obras-modal-nota {
    font-size: 0.9rem;
    color: var(--text-muted);
    margin-bottom: 1.25rem;
    line-height: 1.5;
}

.obras-modal-cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: auto;
}

@media (max-width: 480px) {
    .obras-modal-grid {
        grid-template-columns: 1fr;
    }

    .obras-modal-content {
        padding: 1.75rem 1.25rem;
    }
}

.footer-social-wrap {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 1.5rem;
}

.footer-social-pill--wa {
    background: rgba(37, 211, 102, 0.1);
    border-color: rgba(37, 211, 102, 0.25);
}

.footer-social-pill--wa:hover {
    background: #25D366;
    border-color: #25D366;
    color: #FFF;
}


.footer-contact-item--link {
    text-decoration: none;
    color: inherit;
    border-radius: 12px;
    padding: 8px;
    margin: -8px;
    transition: background 0.2s ease;
}

.footer-contact-item--link:hover {
    background: rgba(255, 255, 255, 0.05);
}

.footer-contact-item--link:hover .contact-text strong {
    color: #C9A84C;
}



.servicio-card-foto {
    width: 100%;
    height: 200px;
    object-fit: cover;
    border-radius: 12px;
    margin: 1rem 0;
    display: block;
}

@media (max-width: 768px) {
    .footer-social-wrap {
        align-items: center;
    }

    .os-actions {
        flex-direction: column;
        gap: 1rem;
    }

    /* Specialty Cards: Force 2 columns on mobile */
    .servicios-cards-grid {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 10px !important;
        padding: 0 4px;
        width: 100%;
        color: #ffff !important;
    }

    .servicio-card {
        padding: 1rem !important;
        border-radius: 16px !important;
    }

    .servicio-card h3 {
        font-size: 0.95rem !important;
        margin-bottom: 0.5rem !important;
    }

    .servicio-card-desc {
        font-size: 0.75rem !important;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        margin-bottom: 0.75rem !important;
    }

    .servicio-card-foto {
        height: 100px !important;
        margin: 0.5rem 0 !important;
    }

    .servicio-items-list {
        display: none !important;
        /* Hide list on mobile to save space */
    }

    .servicio-card-cta {
        font-size: 0.8rem !important;
        padding: 8px !important;
        justify-content: center;
    }
}

/* Fix Methodology Step Overlap */
.metodologia-steps {
    display: flex;
    flex-direction: column;
    gap: 0 !important;
    /* Force no gap if using sticky stacking */
    position: relative;
}

.step-card {
    position: relative;
    z-index: 1;
    background: #fff;
    margin-bottom: -20px;
    /* Controlled overlap for visual connection */
    box-shadow: 0 -10px 30px rgba(61, 26, 0, 0.05);
}

.step-card:nth-child(1) {
    z-index: 10;
}

.step-card:nth-child(2) {
    z-index: 9;
}

.step-card:nth-child(3) {
    z-index: 8;
}

@media (max-width: 768px) {
    .step-card {
        margin-bottom: 20px !important;
        /* Avoid overlap on mobile for better readability */
        transform: none !important;
    }
}

/* ============================================================
   REFINAMIENTO FINAL PREMIUM — Junio 2026
   ============================================================ */

/* --- Testimonio Cards: hover lift --- */
.testimonio-card {
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.testimonio-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(61, 40, 23, 0.1) !important;
}

/* --- Servicio Cards: hover lift --- */
.servicio-card {
    transition: transform 0.25s ease, box-shadow 0.25s ease !important;
}
.servicio-card:hover {
    transform: translateY(-5px) !important;
    box-shadow: 0 16px 48px rgba(61, 40, 23, 0.1) !important;
}

/* --- Servicio Card CTA button hover --- */
.servicio-card-cta:hover {
    background: #2C1810 !important;
    transform: scale(1.02);
}

/* --- Estudios section: mobile override (stack single column) --- */
@media (max-width: 640px) {
    #estudios .servicios-cards-grid {
        grid-template-columns: 1fr !important;
    }
    #estudios .servicio-card {
        padding: 1.5rem !important;
    }
    #estudios .servicio-items-list {
        display: flex !important;
    }
    #estudios .servicio-card-foto {
        height: 160px !important;
    }
}

/* --- Testimonios: responsive grid --- */
.testimonios-grid {
    display: flex;
    gap: 1.5rem;
}
@media (max-width: 768px) {
    .testimonios-scroll-wrapper {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x mandatory;
        padding-bottom: 1rem;
    }
    .testimonios-grid {
        flex-wrap: nowrap;
        width: max-content;
    }
    .testimonio-card {
        min-width: 280px;
        scroll-snap-align: start;
    }
}

/* --- CTA Final Box trust list: replace ✓ emoji with styled text --- */
.cta-trust-list {
    letter-spacing: 0.01em;
}

/* --- Phonak mini card hover: ensure clickability visual cue --- */
.phonak-mini-card {
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.phonak-mini-card:hover {

    box-shadow: 0 12px 30px rgba(0,0,0,0.2);
}

/* --- Hero CTA primary button hover state --- */
.hero-cta-primary:hover {
    background: #2C1810 !important;
    transform: scale(1.02);
}

/* --- Section tag consistency across new sections --- */
#estudios .section-tag {
    display: inline-block;
    margin-bottom: 0.5rem;
}

/* --- Taller card hover --- */
.taller-card {
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.taller-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 40px rgba(61, 40, 23, 0.08);
}

/* ============================================================
   OBRAS SOCIALES — White Card Grid
   ============================================================ */
.os-card-btn {
    min-height: 90px;
    color: #fff;
}
.os-card-btn:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 10px 24px rgba(61, 40, 23, 0.1) !important;
}
@media (max-width: 768px) {
    .os-cards-grid {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 12px !important;
        max-width: 100% !important;
    }
}
@media (max-width: 480px) {
    .os-cards-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

/* --- Especialidad cards hover --- */
.especialidad-card:hover {
    transform: translateY(-5px) !important;
    box-shadow: 0 16px 48px rgba(61, 40, 23, 0.1) !important;
}

/* ============================================================
   FASE 2 — ANNOUNCEMENT BAR ESTÁTICO OSCURO
   ============================================================ */
.announcement-bar {
    background: #1F0F08 !important;
    height: auto !important;
    min-height: 36px;
    overflow: visible !important;
    animation: none !important;
}
.announcement-bar-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    padding: 8px 20px;
    flex-wrap: wrap;
}
.ann-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #FFFFFF;
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0.3px;
    white-space: nowrap;
}
.ann-sep {
    color: rgba(255,255,255,0.3);
    font-size: 14px;
}
/* Kill the old marquee track */
.announcement-track { display: none !important; }

/* ============================================================
   FASE 2 — CSS VARIABLES (Refuerzo)
   ============================================================ */
:root {
    --c-primary:   #3D2817;
    --c-secondary: #F5E6D3;
    --c-accent:    #D4A574;
    --c-white:     #FFFFFF;
    --c-text-dark: #2C1810;
    --c-text-mid:  #6B5344;
    --c-footer:    #1F0F08;
    --c-border:    #E8DCC8;
    --r-sm: 8px;
    --r-md: 12px;
    --r-lg: 16px;
    --sh-sm: 0 2px 8px rgba(0,0,0,0.06);
    --sh-md: 0 4px 16px rgba(61,40,23,0.07);
    --sh-lg: 0 10px 32px rgba(61,40,23,0.09);
}

/* ============================================================
   FASE 2 — ÁREAS DE ATENCIÓN: DESKTOP FIX
   ============================================================ */
#estudios .servicios-cards-grid {
    max-width: 900px !important;
    margin: 0 auto !important;
}
#estudios .servicio-card {
    max-width: 420px;
}
#estudios .servicio-card div[style*="height: 200px"] {
    height: 240px !important;
}

/* ============================================================
   FASE 2 — CONTACTO / MAPA: 2-COLUMN LAYOUT
   ============================================================ */
.contacto-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 40px !important;
    align-items: start !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
}
.contacto-cards {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 16px !important;
}
.contacto-card-item {
    min-height: 80px;
    display: flex;
    align-items: center;
    gap: 12px;
    background: #FFFFFF;
    border: 1px solid var(--c-border);
    border-radius: var(--r-md);
    padding: 16px;
    text-decoration: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.contacto-card-item:hover {
    transform: translateY(-2px);
    box-shadow: var(--sh-md);
}
.mapa-wrapper iframe {
    border-radius: var(--r-md) !important;
    box-shadow: var(--sh-md) !important;
    height: 460px !important;
}

/* ============================================================
   FASE 2 — STICKY CTA MOBILE (mejorado)
   ============================================================ */
#sticky-mobile-cta {
    position: fixed;
    bottom: 16px;
    left: 16px;
    right: 16px;
    z-index: 1000;
    background: var(--c-primary);
    color: #FFFFFF;
    border: none;
    border-radius: var(--r-md);
    height: 56px;
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    display: none;
    align-items: center;
    justify-content: center;
    gap: 10px;
    box-shadow: 0 8px 24px rgba(61,40,23,0.35);
    transition: transform 0.2s ease, opacity 0.3s ease;
    animation: slideUpCTA 0.35s cubic-bezier(0.25,0.46,0.45,0.94) both;
}
@keyframes slideUpCTA {
    from { transform: translateY(100%); opacity: 0; }
    to   { transform: translateY(0);   opacity: 1; }
}

/* ============================================================
   FASE 2 — RESPONSIVE TABLET (≤1024px)
   ============================================================ */
@media (max-width: 1024px) {
    .contacto-grid {
        gap: 24px !important;
    }
    .mapa-wrapper iframe {
        height: 380px !important;
    }
}

/* ============================================================
   FASE 2 — RESPONSIVE MOBILE (≤768px)
   ============================================================ */
@media (max-width: 768px) {

    /* Announcement bar */
    .ann-sep { display: none; }
    .announcement-bar-inner {
        gap: 8px;
        justify-content: flex-start;
        overflow-x: auto;
        flex-wrap: nowrap;
        padding: 6px 16px;
        -webkit-overflow-scrolling: touch;
    }
    .ann-item { font-size: 12px; white-space: nowrap; }

    /* Hero */
    .hero-grid {
        grid-template-columns: 1fr !important;
        text-align: center;
    }
    .hero-content { order: 1; }
    .hero-image-wrapper {
        order: 2;
        max-width: 300px;
        margin: 0 auto;
        width: 90%;
    }
    .hero-headline {
        font-size: clamp(1.6rem, 7vw, 2rem) !important;
    }
    .hero-subtitle {
        font-size: 1rem !important;
        max-width: 100% !important;
    }
    .hero-stars { justify-content: center; }
    .hero-cta-primary {
        width: 100%;
        justify-content: center;
        padding: 16px 24px !important;
    }
    .hero-talleres-link { justify-content: center; }
    .hero-trust-micro { text-align: center; }

    /* Especialidades */
    .especialidades-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px !important;
    }
    .especialidad-card {
        padding: 1.25rem 1rem !important;
    }
    .especialidad-icon-wrap {
        width: 40px !important;
        height: 40px !important;
        margin-bottom: 1rem !important;
    }
    .especialidad-card h3 {
        font-size: 0.95rem !important;
    }

    /* Obras sociales */
    .os-cards-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 10px !important;
        max-width: 100% !important;
        color: #ffff !important;
    }
    .os-card-btn {
        color: #ffff !important;
        padding: 14px 8px !important;
        min-height: 75px !important;
    }

    /* Talleres */
    .talleres-grid {
        grid-template-columns: 1fr !important;
    }

    /* Estudios/Áreas */
    #estudios .servicios-cards-grid {
        grid-template-columns: 1fr !important;
    }
    #estudios .servicio-card div[style*="height: 200px"],
    #estudios .servicio-card div[style*="height: 240px"] {
        height: 180px !important;
    }

    /* Phonak teaser */
    .phonak-teaser-grid {
        grid-template-columns: 1fr !important;
    }
    .phonak-teaser-right-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    /* Sobre mí */
    .sobre-mi-grid {
        grid-template-columns: 1fr !important;
        text-align: center;
    }
    .sobre-mi-image {
        max-width: 280px;
        margin: 0 auto;
    }
    .bio-stats {
        grid-template-columns: repeat(3, 1fr) !important;
    }
    .stat-number { font-size: 1.4rem !important; }
    .stat-label  { font-size: 0.65rem !important; }

    /* Testimonios */
    .testimonios-scroll-wrapper {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x mandatory;
    }
    .testimonios-grid {
        display: flex !important;
        flex-wrap: nowrap !important;
        width: max-content !important;
        gap: 16px !important;
    }
    .testimonio-card {
        min-width: 280px;
        scroll-snap-align: start;
    }

    /* FAQ */
    .faq-grid {
        grid-template-columns: 1fr !important;
    }
    .faq-question { font-size: 0.95rem !important; }

    /* Contacto / Mapa */
    .contacto-grid {
        grid-template-columns: 1fr !important;
    }
    .contacto-cards {
        grid-template-columns: 1fr 1fr !important;
        gap: 12px !important;
    }
    .mapa-wrapper {
        width: 100%;
    }
    .mapa-wrapper iframe {
        height: auto !important;
        aspect-ratio: 4/3 !important;
        min-height: 280px !important;
        width: 100% !important;
    }

    /* CTA final box */
    .cta-final-box h2 {
        font-size: clamp(1.4rem, 6vw, 1.8rem) !important;
    }
    .cta-final-wa {
        width: 100% !important;
        justify-content: center !important;
    }

    /* Footer */
    .footer-grid-premium {
        grid-template-columns: 1fr !important;
        gap: 32px !important;
    }
    .footer-bottom-line-premium {
        flex-direction: column !important;
        text-align: center !important;
        gap: 8px !important;
    }

    /* Sticky CTA: show on mobile */
    #sticky-mobile-cta {
        display: flex !important;
    }

    /* Padding body compensation for sticky CTA */
    body { padding-bottom: 88px; }

    /* Section padding reduction */
    .talleres, .estudios, .obras-sociales,
    .sobre-mi, .testimonios, .faq, .contacto {
        padding-top: 3rem !important;
        padding-bottom: 3rem !important;
    }
    #estudios { padding: 3rem 0 !important; }
}

@media (max-width: 480px) {
    .especialidades-grid {
        grid-template-columns: 1fr !important;
    }
    .os-cards-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    .contacto-cards {
        grid-template-columns: 1fr !important;
    }
    .phonak-teaser-right-grid {
        grid-template-columns: 1fr !important;
    }
    .hero-headline {
        font-size: 1.55rem !important;
    }
    .taller-card {
        padding: 1.25rem !important;
    }
}

.consultamehover:hover{
    text-decoration: underline;

}

/* ============================================================
   FAQ — Dra. Lorena Almagro
   Acomoda las preguntas en grilla de 2 columnas (2 y 2, la
   impar queda centrada/ancho completo), corrige el tamaño
   gigante de los chevrons y agrega una animación de acordeón
   suave. 100% responsive, mobile-first.
   ============================================================ */

.faq-section {
  --faq-dark: #2C1810;      /* texto principal / títulos */
  --faq-accent: #B5703C;    /* acento cálido (chevron, hover) */
  --faq-bg: #F6E9D8;        /* fondo de la sección */
  --faq-card: #FCF6EC;      /* fondo de cada tarjeta */
  --faq-border: rgba(44, 24, 16, 0.10);

  background: var(--faq-bg);
  padding: 4rem 1.25rem;
}

.faq-section .container {
  max-width: 1080px;
  margin: 0 auto;
}

.faq-section .section-tag {
  display: inline-block;
  color: var(--faq-accent);
  font-weight: 700;
  font-size: 0.8rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* ---------- Grilla de preguntas (2 y 2) ---------- */
.faq-accordion {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.1rem;
  align-items: start;
}

/* Si la cantidad de preguntas es impar, la última ocupa
   el ancho completo (queda centrada visualmente) */
.faq-item:nth-last-child(1):nth-child(odd) {
  grid-column: 1 / -1;
}

/* ---------- Tarjeta individual ---------- */
.faq-item {
  background: var(--faq-card);
  border: 1px solid var(--faq-border);
  border-radius: 14px;
  overflow: hidden;
  transition: box-shadow 0.25s ease, transform 0.25s ease;
}

.faq-item:hover {
  box-shadow: 0 8px 24px rgba(44, 24, 16, 0.08);
}

/* ---------- Botón / pregunta ---------- */
.faq-question {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  background: transparent;
  border: none;
  cursor: pointer;
  text-align: left;
  padding: 1.15rem 1.35rem;
  font-size: 1rem;
  font-weight: 600;
  color: var(--faq-dark);
  line-height: 1.35;
  transition: color 0.2s ease;
}

.faq-question:hover,
.faq-question:focus-visible {
  color: var(--faq-accent);
}

.faq-question:focus-visible {
  outline: 2px solid var(--faq-accent);
  outline-offset: -2px;
}

/* Chevron: tamaño fijo y prolijo (antes salía gigante) */
.faq-chevron {
  width: 16px;
  height: 16px;
  min-width: 16px;
  color: var(--faq-accent);
  flex-shrink: 0;
  transition: transform 0.3s ease;
}

/* Estado abierto: rota el chevron */
.faq-item.active .faq-chevron,
.faq-question[aria-expanded="true"] .faq-chevron {
  transform: rotate(180deg);
}

/* ---------- Respuesta con animación de acordeón ---------- */
.faq-answer {
  display: grid;
  grid-template-rows: 0fr;
  overflow: hidden;
  transition: grid-template-rows 0.35s ease;
}

.faq-answer > p {
  min-height: 0;
  overflow: hidden;
  margin: 0;
  padding: 0 1.35rem;
  color: #5A4636;
  font-size: 0.92rem;
  line-height: 1.6;
}

.faq-item.active .faq-answer {
  grid-template-rows: 1fr;
}

.faq-item.active .faq-answer > p {
  padding-bottom: 1.25rem;
}

/* ============================================================
   RESPONSIVE — Mobile first (el uso principal del sitio)
   ============================================================ */
@media (max-width: 768px) {
  .faq-section {
    padding: 3rem 1rem;
  }

  .faq-accordion {
    grid-template-columns: 1fr; /* una sola columna en mobile */
    gap: 0.85rem;
  }

  .faq-item:nth-last-child(1):nth-child(odd) {
    grid-column: auto; /* ya no hace falta el truco de ancho completo */
  }

  .faq-question {
    padding: 1rem 1.1rem;
    font-size: 0.95rem;
  }

  .faq-answer > p {
    padding: 0 1.1rem;
    font-size: 0.9rem;
  }

  .faq-item.active .faq-answer > p {
    padding-bottom: 1.1rem;
  }
}

@media (max-width: 420px) {
  .faq-question {
    font-size: 0.9rem;
  }
}

.bio-read-more-btn{
    color: #FFFF;
    background-color: #1EBE59;
}

/* ============================================================
   PROCESS CARDS — Scroll Animations (Paso a Paso)
   ============================================================ */

/* Estado inicial: invisibles y desplazadas */
.process-card {
    opacity: 0;
    transform: translateY(32px);
    transition:
        opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform, opacity;
}

/* Cuando entra en pantalla */
.process-card.pc-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Ícono: pulso suave UNA sola vez al aparecer */
.process-card.pc-visible .process-icon-wrap {
    animation: iconPulse 0.5s ease 0.4s both;
}

@keyframes iconPulse {
    0%   { transform: scale(1); }
    50%  { transform: scale(1.08); }
    100% { transform: scale(1); }
}

/* Desktop: parallax sutil en los íconos al scrollaer */
@media (min-width: 769px) {
    .process-icon-wrap {
        transition: transform 0.1s linear;
        will-change: transform;
    }
}

/* Sin animaciones si el usuario lo pidió */
@media (prefers-reduced-motion: reduce) {
    .process-card,
    .process-card.pc-visible .process-icon-wrap {
        animation: none !important;
        transition: none !important;
        opacity: 0.6 !important;
        transform: none !important;
    }
}

.ph-hero-img-wrap{
    border-radius: 16px !important;
}

/* --sh-sm: 0 2px 8px rgba(0,0,0,0.06);
    --sh-md: 0 4px 16px rgba(61,40,23,0.07);
    --sh-lg: 0 10px 32px rgba(61,40,23,0.09); */