/* 
    Quick Líder Design System
    Focus: Premium, Corporate, Health Sector
*/

:root {
    /* Colors */
    --primary: #E30613;
    --primary-dark: #C20510;
    --secondary: #2E1A47;
    --secondary-dark: #1E1130;
    --accent: #6B4E91;
    --white: #FFFFFF;
    --gray-50: #F9FAFB;
    --gray-100: #F3F4F6;
    --gray-200: #E5E7EB;
    --gray-600: #4B5563;
    --gray-800: #1F2937;
    --gray-900: #111827;
    
    /* Shadows */
    --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.05);
    --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08);
    --shadow-lg: 0 10px 25px rgba(0, 0, 0, 0.1);
    --shadow-xl: 0 20px 40px rgba(0, 0, 0, 0.12);
    --shadow-premium: 0 20px 50px rgba(46, 26, 71, 0.1);
    
    /* Spacing */
    --section-spacing: 140px;
}

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

html {
    scroll-behavior: smooth;
}

body {
    font-family: 'Inter', sans-serif;
    color: var(--gray-800);
    line-height: 1.7;
    background-color: var(--white);
    overflow-x: hidden;
    font-size: 1.05rem;
    letter-spacing: 0.1px;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    line-height: 1.15;
    color: var(--gray-900);
    letter-spacing: -0.5px;
}

a {
    text-decoration: none;
    transition: 0.3s ease;
    color: inherit;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

ul {
    list-style: none;
}

.container {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
}

.container-large {
    max-width: 1400px;
}

/* Utilities */
.text-primary { color: var(--primary); }
.text-gradient {
    background: linear-gradient(90deg, #FF3D4A 0%, #A855F7 50%, #6B4E91 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 2px 10px rgba(0,0,0,0.2));
}

.bg-light { background-color: var(--gray-50); }
.text-center { text-align: center; }
.mt-4 { margin-top: 2rem; }
.mb-4 { margin-bottom: 2rem; }

.badge {
    display: inline-flex;
    align-items: center;
    padding: 0.6rem 1.2rem;
    background: rgba(227, 6, 19, 0.08);
    color: var(--primary);
    border-radius: 50px;
    font-size: 0.85rem;
    font-weight: 700;
    margin-bottom: 1.5rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    border: 1px solid rgba(227, 6, 19, 0.15);
}

/* Buttons */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 1rem 2.5rem;
    border-radius: 12px;
    font-weight: 600;
    font-size: 0.95rem;
    letter-spacing: 0.3px;
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    border: 1px solid transparent;
    gap: 12px;
    position: relative;
    overflow: hidden;
}

.btn-primary {
    background: linear-gradient(135deg, var(--primary) 0%, #ff1e2d 100%);
    color: var(--white);
    box-shadow: 0 8px 25px rgba(227, 6, 19, 0.25);
}

.btn-primary:hover {
    transform: translateY(-4px) scale(1.02);
    box-shadow: 0 12px 30px rgba(227, 6, 19, 0.35);
}

.btn-secondary {
    background: linear-gradient(135deg, var(--secondary) 0%, var(--accent) 100%);
    color: var(--white);
    box-shadow: 0 8px 25px rgba(46, 26, 71, 0.2);
}

.btn-secondary:hover {
    transform: translateY(-4px) scale(1.02);
    box-shadow: 0 12px 30px rgba(46, 26, 71, 0.3);
}

.btn-outline {
    background-color: transparent;
    border: 2px solid var(--primary);
    color: var(--primary);
}

.btn-outline:hover {
    background-color: var(--primary);
    color: var(--white);
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(227, 6, 19, 0.2);
}

.btn-white {
    background-color: var(--white);
    color: var(--gray-900);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
}

.btn-white:hover {
    background-color: var(--gray-50);
    transform: translateY(-4px);
    box-shadow: 0 12px 25px rgba(0, 0, 0, 0.12);
}

.btn-whatsapp {
    background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);
    color: var(--white);
    box-shadow: 0 8px 25px rgba(37, 211, 102, 0.2);
}

.btn-whatsapp:hover {
    transform: translateY(-4px) scale(1.02);
    box-shadow: 0 12px 30px rgba(37, 211, 102, 0.3);
}

.btn-full { width: 100%; }

.btn-icon {
    width: 52px;
    height: 52px;
    padding: 0;
    border-radius: 50%;
}

/* Navbar */
.navbar {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    padding: 1.5rem 0;
    transition: all 0.4s ease;
}

.navbar.scrolled {
    background-color: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(15px);
    padding: 0.8rem 0;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.container-nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.logo {
    display: flex;
    align-items: center;
    transition: transform 0.3s ease;
}

.logo:hover {
    transform: scale(1.05);
}

.logo-img {
    height: 48px;
    width: auto;
    object-fit: contain;
    transition: filter 0.3s ease;
}

.navbar:not(.scrolled) .logo-img,
.footer-logo {
    filter: brightness(0) invert(1);
}

.navbar.scrolled .logo-img {
    height: 42px;
}

.nav-links {
    display: flex;
    gap: 2rem;
}

.nav-links a {
    font-weight: 500;
    font-size: 0.95rem;
}

.navbar:not(.scrolled) .nav-links a { color: rgba(255, 255, 255, 0.8); }
.navbar.scrolled .nav-links a { color: var(--gray-600); }

.nav-links a:hover, .nav-links a.active {
    color: var(--primary) !important;
}

.nav-actions {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

.menu-toggle {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
}

.navbar:not(.scrolled) .menu-toggle { color: var(--white); }
.navbar.scrolled .menu-toggle { color: var(--gray-900); }

/* Hero */
.hero {
    position: relative;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    text-align: center;
    overflow: hidden;
}

.hero-video-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.hero-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    animation: zoomVideo 40s linear infinite alternate;
}

@keyframes zoomVideo {
    0% { transform: scale(1); }
    100% { transform: scale(1.08); }
}

.hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(17, 8, 30, 0.85) 0%, rgba(46, 26, 71, 0.6) 50%, rgba(227, 6, 19, 0.4) 100%),
                radial-gradient(circle at center, transparent 0%, rgba(0, 0, 0, 0.4) 100%);
    z-index: 1;
}

.hero-content {
    position: relative;
    z-index: 10;
    max-width: 1100px;
}

.hero h1 {
    font-size: clamp(3.5rem, 9vw, 6.5rem);
    color: var(--white);
    margin-bottom: 2.5rem;
    text-shadow: 0 4px 30px rgba(0, 0, 0, 0.5);
    line-height: 1.05;
    letter-spacing: -2px;
    text-transform: uppercase;
    font-weight: 800;
}

.hero p {
    font-size: clamp(1.25rem, 2.8vw, 1.7rem);
    margin-bottom: 4rem;
    max-width: 850px;
    margin-inline: auto;
    opacity: 0.95;
    font-weight: 400;
    line-height: 1.5;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

.hero-btns {
    display: flex;
    gap: 2rem;
    justify-content: center;
}

.hero .btn {
    padding: 1.4rem 3.5rem;
    font-size: 1.15rem;
    border-radius: 14px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.hero .btn-primary {
    background: linear-gradient(135deg, var(--primary) 0%, #ff1e2d 100%);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.hero .btn-white {
    background: rgba(255, 255, 255, 0.15);
    color: var(--white);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.hero .btn-white:hover {
    background: var(--white);
    color: var(--secondary);
}

.hero-scroll {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
}

.mouse {
    width: 25px;
    height: 45px;
    border: 2px solid white;
    border-radius: 20px;
    position: relative;
}

.mouse::before {
    content: '';
    width: 5px;
    height: 5px;
    background: white;
    position: absolute;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    border-radius: 50%;
    animation: scroll 2s infinite;
}

@keyframes scroll {
    0% { transform: translate(-50%, 0); opacity: 1; }
    100% { transform: translate(-50%, 20px); opacity: 0; }
}

/* Value Prop */
.value-prop {
    padding: 0;
    margin-top: -60px;
    position: relative;
    z-index: 20;
}

.prop-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
}

.prop-card {
    background: var(--white);
    padding: 3rem 2.5rem;
    border-radius: 24px;
    box-shadow: var(--shadow-xl);
    text-align: center;
    border: 1px solid var(--gray-100);
}

.prop-icon {
    width: 70px;
    height: 70px;
    background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%);
    color: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 18px;
    margin: 0 auto 1.5rem;
}

.prop-icon i { width: 32px; height: 32px; }

.prop-card h3 { margin-bottom: 1rem; font-size: 1.25rem; }
.prop-card p { color: var(--gray-600); font-size: 0.95rem; }

/* About */
.about { 
    padding: 140px 0; 
    background-color: var(--white);
    position: relative;
    overflow: hidden;
}

.about::before {
    content: '';
    position: absolute;
    top: 10%;
    left: -100px;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, rgba(227, 6, 19, 0.03) 0%, transparent 70%);
    border-radius: 50%;
    z-index: -1;
    filter: blur(40px);
}

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

.about-image {
    position: relative;
}

.about-image img {
    border-radius: 24px;
    box-shadow: var(--shadow-xl);
}

.about-experience {
    position: absolute;
    bottom: 20px;
    right: -20px;
    background: var(--white);
    color: var(--gray-900);
    padding: 1.5rem 2rem;
    border-radius: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
    box-shadow: var(--shadow-xl);
    border-left: 5px solid var(--primary);
}

.about-experience i {
    width: 40px;
    height: 40px;
    color: var(--primary);
}

.about-experience span {
    font-size: 2rem;
    font-weight: 800;
    display: block;
    line-height: 1;
}

.about-experience p {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--gray-600);
    margin: 0;
}

.about-text h2 {
    font-size: clamp(2.5rem, 5vw, 3.2rem);
    margin-bottom: 2rem;
    line-height: 1.1;
}

.about-text p {
    font-size: 1.15rem;
    margin-bottom: 2rem;
    color: var(--gray-600);
}

.about-features {
    margin: 2.5rem 0;
}

.about-features li {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 1.2rem;
    font-weight: 500;
    color: var(--gray-800);
}

.about-features i { 
    color: var(--primary); 
    width: 24px; 
    height: 24px;
    background: rgba(227, 6, 19, 0.1);
    border-radius: 50%;
    padding: 4px;
}

.about-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    margin: 2.5rem 0;
}

.stat-item {
    padding: 1.5rem;
    background: var(--gray-50);
    border-radius: 16px;
    text-align: center;
    border: 1px solid var(--gray-100);
    transition: all 0.3s ease;
}

.stat-item:hover {
    background: var(--white);
    box-shadow: var(--shadow-lg);
    border-color: var(--primary-dark);
}

.stat-item i {
    color: var(--primary);
    width: 24px;
    height: 24px;
    margin-bottom: 0.8rem;
}

.stat-item h4 {
    font-size: 1.8rem;
    margin-bottom: 0.2rem;
    color: var(--secondary);
}

.stat-item p {
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--gray-600);
    margin: 0;
}

.about-actions {
    display: flex;
    gap: 1.5rem;
}

/* Services */
.services { 
    padding: 140px 0; 
    background: linear-gradient(180deg, #FFFFFF 0%, var(--gray-50) 10%, var(--gray-50) 90%, #FFFFFF 100%);
    position: relative;
    border-top: 1px solid var(--gray-100);
}

.section-header {
    margin-bottom: 4rem;
    max-width: 800px;
    margin-inline: auto;
}

.section-header h2 { 
    font-size: clamp(2.5rem, 5vw, 3.5rem); 
    line-height: 1.1;
    margin-bottom: 1.5rem;
}

.section-header p {
    font-size: 1.2rem;
    color: var(--gray-600);
    max-width: 700px;
    margin-inline: auto;
}

.services-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: 2rem;
}

.service-card {
    background: var(--white);
    padding: 3.5rem 3rem;
    border-radius: 28px;
    border: 1px solid rgba(0, 0, 0, 0.03);
    box-shadow: var(--shadow-lg);
}

.service-icon {
    width: 60px;
    height: 60px;
    color: var(--primary);
    margin-bottom: 1.5rem;
}

.service-icon i { width: 100%; height: 100%; }

.service-card h3 { margin-bottom: 1rem; }
.service-card p { color: var(--gray-600); margin-bottom: 1.5rem; }

.service-link {
    color: var(--primary);
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 5px;
}

.service-link i { width: 18px; }

/* Programs */
.programs { 
    padding: 140px 0; 
    background-color: var(--white);
    position: relative;
    overflow: hidden;
}

.programs::after {
    content: '';
    position: absolute;
    bottom: 5%;
    right: -100px;
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, rgba(46, 26, 71, 0.04) 0%, transparent 70%);
    border-radius: 50%;
    z-index: -1;
    filter: blur(50px);
}

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

.program-card {
    background: var(--white);
    border-radius: 24px;
    overflow: hidden;
    box-shadow: var(--shadow-md);
    transition: all 0.3s ease;
}

.program-card:hover {
    transform: translateY(-10px);
    box-shadow: var(--shadow-xl);
}

.program-img {
    height: 220px;
    position: relative;
}

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

.program-tag {
    position: absolute;
    top: 20px;
    left: 20px;
    background: var(--primary);
    color: var(--white);
    padding: 0.4rem 1rem;
    border-radius: 50px;
    font-size: 0.8rem;
    font-weight: 600;
}

.program-info { padding: 2rem; }
.program-info h3 { margin-bottom: 1rem; font-size: 1.25rem; }
.program-info p { color: var(--gray-600); font-size: 0.95rem; margin-bottom: 1.5rem; }

.program-meta {
    display: flex;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
    font-size: 0.85rem;
    color: var(--gray-600);
}

.program-meta span { display: flex; align-items: center; gap: 5px; }
.program-meta i { width: 16px; color: var(--primary); }

/* Diploma Query */
.diploma-query {
    padding: 60px 0;
    background: linear-gradient(135deg, var(--secondary) 0%, var(--accent) 100%);
    color: var(--white);
}

.query-box {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 4rem;
    background: rgba(255, 255, 255, 0.05);
    backdrop-filter: blur(10px);
    border-radius: 30px;
    gap: 3rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.query-text h2 { color: var(--white); font-size: clamp(2rem, 4vw, 2.5rem); margin-bottom: 1rem; }
.query-text p { opacity: 0.8; font-size: 1.1rem; }

.query-form {
    display: flex;
    gap: 1rem;
    flex: 1;
    max-width: 500px;
}

.input-group {
    position: relative;
    flex: 1;
}

.input-group i {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--gray-600);
}

.input-group input {
    width: 100%;
    padding: 1rem 1rem 1rem 3rem;
    border-radius: 10px;
    border: none;
    font-size: 1rem;
    outline: none;
}

/* Partners */
.partners { 
    padding: 100px 0; 
    background-color: var(--gray-50);
}
.partner-logos {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 4rem 6rem;
    margin-top: 3rem;
}

.logo-item {
    transition: all 0.4s ease;
    cursor: pointer;
}

.logo-item img { 
    height: 70px; 
    width: auto; 
    filter: grayscale(100%);
    opacity: 0.5;
    transition: all 0.4s ease;
}

.logo-item:hover {
    transform: translateY(-5px);
}

.logo-item:hover img { 
    filter: grayscale(0%);
    opacity: 1;
    transform: scale(1.1);
}

/* Final CTA */
.final-cta {
    padding: 150px 0;
    background-color: var(--gray-900);
    position: relative;
    overflow: hidden;
    background-image: radial-gradient(circle at 15% 50%, rgba(227, 6, 19, 0.1) 0%, transparent 40%),
                      radial-gradient(circle at 85% 50%, rgba(46, 26, 71, 0.15) 0%, transparent 40%);
}

.final-cta h2 { color: var(--white); font-size: clamp(2.5rem, 5vw, 3.5rem); margin-bottom: 1.5rem; line-height: 1.1; }
.final-cta p { opacity: 0.8; font-size: 1.2rem; margin-bottom: 2.5rem; }

/* Footer */
.footer {
    background-color: var(--white);
    padding: 100px 0 0;
    border-top: 1px solid var(--gray-100);
}

.footer-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1.5fr;
    gap: 4rem;
    margin-bottom: 4rem;
}

.footer-brand .logo { margin-bottom: 2rem; color: var(--gray-900) !important; font-size: 1.8rem; }
.footer-brand p { color: var(--gray-600); margin-bottom: 2.5rem; line-height: 1.8; }

.social-links { display: flex; gap: 1rem; }
.social-links a {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: var(--gray-100);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--secondary);
}

.social-links a:hover {
    background-color: var(--primary);
    color: var(--white);
    transform: translateY(-3px);
}

.footer h3 { font-size: 1.2rem; margin-bottom: 2rem; }
.footer-links li { margin-bottom: 1rem; }
.footer-links a { color: var(--gray-600); }
.footer-links a:hover { color: var(--primary); padding-left: 5px; }

.footer-info li {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin-bottom: 1.5rem;
    color: var(--gray-600);
}

.footer-info i { color: var(--primary); width: 20px; flex-shrink: 0; }

.footer-newsletter p { color: var(--gray-600); margin-bottom: 1.5rem; }

.newsletter-form {
    display: flex;
    gap: 0.5rem;
}

.newsletter-form input {
    flex: 1;
    padding: 0.8rem 1.2rem;
    border-radius: 8px;
    border: 1px solid var(--gray-200);
    outline: none;
}

.footer-bottom {
    padding: 2rem 0;
    border-top: 1px solid var(--gray-100);
    font-size: 0.9rem;
    color: var(--gray-600);
}

.bottom-flex {
    display: flex;
    justify-content: space-between;
}

.footer-author-credit {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    margin: 0;
    font-weight: 600;
}

.footer-author-logo {
    width: 96px;
    max-width: 32vw;
    height: auto;
    display: inline-block;
    opacity: .88;
}

/* Global Reveal Animations */
.reveal, .slide-up, .slide-in-left, .slide-in-right, .fade-in {
    opacity: 0;
    transition: all 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
    will-change: transform, opacity, filter;
}

.reveal { transform: translateY(30px); filter: blur(10px); }
.slide-up { transform: translateY(50px); }
.slide-in-left { transform: translateX(-50px); }
.slide-in-right { transform: translateX(50px); }

.reveal.active, .slide-up.active, .slide-in-left.active, .slide-in-right.active, .fade-in.active {
    opacity: 1;
    transform: translate(0, 0);
    filter: blur(0);
}

.delay-100 { transition-delay: 0.1s; }
.delay-200 { transition-delay: 0.2s; }
.delay-300 { transition-delay: 0.3s; }
.delay-400 { transition-delay: 0.4s; }
.delay-500 { transition-delay: 0.5s; }

/* Interactive Elements Hover */
.prop-card, .service-card, .program-card, .stat-item {
    transition: all 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.prop-card:hover, .service-card:hover, .program-card:hover, .stat-item:hover {
    transform: translateY(-12px) scale(1.02);
    box-shadow: var(--shadow-xl);
}

.service-card:hover .service-icon, .prop-card:hover .prop-icon {
    transform: scale(1.1) rotate(5deg);
    transition: transform 0.4s ease;
}

/* Responsive */
@media (max-width: 1024px) {
    .about-grid { grid-template-columns: 1fr; gap: 3rem; }
    .query-box { flex-direction: column; text-align: center; padding: 2.5rem; }
    .footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
    .nav-links { display: none; }
    .menu-toggle { display: block; }
    .nav-actions .btn-outline { display: none; }
    .hero h1 { font-size: 2.8rem; }
    .hero p { font-size: 1.15rem; }
    .hero-btns { flex-direction: column; width: 100%; gap: 1rem; }
}

/* Mobile Menu Overlay Styles */
.mobile-menu {
    position: fixed;
    top: 0;
    right: -100%;
    width: 100%;
    height: 100vh;
    background: var(--white);
    z-index: 2000;
    padding: 2rem;
    transition: 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
    display: flex;
    flex-direction: column;
}

.mobile-menu.active {
    right: 0;
}

.mobile-menu-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 3rem;
}

.close-menu {
    background: none;
    border: none;
    cursor: pointer;
    color: var(--gray-900);
}

.mobile-nav {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    margin-bottom: 4rem;
}

.mobile-nav a {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--gray-900);
    font-family: 'Poppins', sans-serif;
}

.mobile-menu-footer {
    margin-top: auto;
}

/* Glassmorphism */
.glass-card {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(15px);
    border: 1px solid rgba(255, 255, 255, 0.4);
    box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.07);
}

/* Timeline */
.timeline {
    position: relative;
    max-width: 900px;
    margin: 4rem auto;
    padding: 2rem 0;
}

.timeline::before {
    content: '';
    position: absolute;
    left: 50%;
    top: 0;
    width: 2px;
    height: 100%;
    background: linear-gradient(to bottom, transparent, var(--primary), var(--secondary), transparent);
    transform: translateX(-50%);
}

.timeline-item {
    position: relative;
    width: 50%;
    padding: 1rem 2rem;
    margin-bottom: 2rem;
}

.timeline-item:nth-child(odd) { left: 0; text-align: right; border-right: 2px solid transparent; }
.timeline-item:nth-child(even) { left: 50%; text-align: left; border-left: 2px solid transparent; }

.timeline-dot {
    position: absolute;
    top: 1.5rem;
    width: 20px;
    height: 20px;
    background: var(--primary);
    border: 4px solid var(--white);
    border-radius: 50%;
    box-shadow: 0 0 15px rgba(227, 6, 19, 0.4);
    z-index: 10;
}

.timeline-item:nth-child(odd) .timeline-dot { right: -11px; }
.timeline-item:nth-child(even) .timeline-dot { left: -11px; }

.timeline-content {
    background: var(--white);
    padding: 2rem;
    border-radius: 24px;
    box-shadow: var(--shadow-premium);
    transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.timeline-item:hover .timeline-content {
    transform: scale(1.03);
}

.timeline-date {
    display: block;
    font-size: 1.8rem;
    font-weight: 800;
    color: var(--primary);
    margin-bottom: 0.5rem;
    font-family: 'Poppins', sans-serif;
}

/* Ken Burns Effect */
@keyframes kenBurns {
    0% { transform: scale(1); }
    100% { transform: scale(1.1); }
}

.ken-burns {
    animation: kenBurns 20s ease-in-out infinite alternate;
}

/* Premium Metrics */
.stat-item h4.counter {
    font-size: 3.5rem;
    font-weight: 800;
}

/* Final CTA Premium */
.cta-premium {
    background: radial-gradient(circle at top left, #2E1A47 0%, #11081e 100%);
    position: relative;
    overflow: hidden;
}

.cta-premium::after {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle at center, rgba(227, 6, 19, 0.1) 0%, transparent 50%);
    pointer-events: none;
}

@media (max-width: 768px) {
    .timeline::before { left: 20px; }
    .timeline-item { width: 100%; left: 0 !important; text-align: left !important; padding-left: 3.5rem !important; padding-right: 0 !important; }
    .timeline-dot { left: 9px !important; }
}

/* Internal Page Styles */
.internal-hero {
    position: relative;
    height: 500px;
    display: flex;
    align-items: center;
    overflow: hidden;
    padding-top: 80px;
}

.internal-hero-img {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    z-index: -2;
}

.internal-hero-overlay {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background: linear-gradient(135deg, rgba(17, 8, 30, 0.9) 0%, rgba(46, 26, 71, 0.7) 100%);
    z-index: -1;
}

.internal-hero-content { color: var(--white); }

.breadcrumbs {
    font-size: 0.9rem;
    margin-bottom: 1.5rem;
    opacity: 0.8;
}

.breadcrumbs a { color: var(--white); }
.breadcrumbs span { color: var(--primary); }

.internal-hero h1 {
    font-size: clamp(2.5rem, 5vw, 4rem);
    margin-bottom: 1rem;
    line-height: 1.2;
}

.value-item {
    padding: 3rem 2rem;
    background: var(--white);
    border-radius: 20px;
    text-align: center;
    border: 1px solid var(--gray-100);
    transition: 0.4s ease;
}

.value-item:hover {
    transform: translateY(-10px);
    box-shadow: var(--shadow-xl);
}

.value-icon {
    width: 60px; height: 60px;
    background: rgba(227, 6, 19, 0.05);
    color: var(--primary);
    border-radius: 15px;
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 1.5rem;
}

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

@media (max-width: 768px) {
    .grid-2, .grid-4 { grid-template-columns: 1fr; }
}
/* Diploma Consultation Styles */
.search-box-container {
    max-width: 600px;
    margin: 0 auto;
    background: var(--white);
    padding: 2.5rem;
    border-radius: 30px;
    box-shadow: var(--shadow-premium);
}

.input-group-premium {
    position: relative;
    display: flex;
    align-items: center;
    gap: 1rem;
    background: #f8fafc;
    padding: 0.5rem;
    border-radius: 20px;
    border: 2px solid transparent;
    transition: all 0.3s ease;
}

.input-group-premium:focus-within {
    border-color: var(--primary);
    background: var(--white);
    box-shadow: 0 0 0 4px rgba(227, 6, 19, 0.1);
}

.input-group-premium i.search-icon {
    margin-left: 1.2rem;
    color: var(--gray-400);
}

.input-group-premium input {
    flex: 1;
    border: none;
    background: transparent;
    padding: 1rem 0.5rem;
    font-size: 1.1rem;
    outline: none;
    font-family: 'Poppins', sans-serif;
}

.btn-search {
    padding: 1rem 2rem;
    border-radius: 15px;
}

.input-hint {
    margin-top: 1rem;
    font-size: 0.85rem;
    color: var(--gray-500);
    text-align: center;
}

/* Results Area */
.results-container {
    margin-top: 4rem;
    min-height: 200px;
}

.not-found-card {
    text-align: center;
    padding: 4rem;
    background: var(--white);
    border-radius: 30px;
    box-shadow: var(--shadow-premium);
}

.error-icon {
    width: 64px;
    height: 64px;
    color: var(--primary);
    margin-bottom: 1.5rem;
}

/* Diploma Styles */
.diploma-card {
    animation: fadeInUp 0.8s ease forwards;
}

.diploma-header-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2rem;
    max-width: 950px;
    margin-left: auto;
    margin-right: auto;
}

.status-badge {
    color: #059669;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: #ecfdf5;
    padding: 0.5rem 1rem;
    border-radius: 50px;
}

.diploma-canvas {
    width: 100%;
    max-width: 950px;
    margin: 0 auto;
    background: #fdfdfd;
    padding: 40px;
    box-shadow: 0 20px 50px rgba(0,0,0,0.15);
    position: relative;
    font-family: 'Inter', sans-serif;
}

.diploma-border {
    border: 15px solid var(--secondary);
    padding: 10px;
    height: 100%;
    position: relative;
    border-image: linear-gradient(135deg, #11081e 0%, #2E1A47 50%, #11081e 100%) 1;
}

.diploma-inner-border {
    border: 2px solid #D4AF37; /* Gold */
    padding: 50px;
    height: 100%;
    text-align: center;
    background: white;
}

.diploma-brand {
    height: 60px;
    margin-bottom: 2rem;
}

.diploma-title {
    font-family: 'Playfair Display', serif;
    font-size: 4.5rem;
    color: var(--secondary);
    margin-bottom: 0.5rem;
    letter-spacing: 5px;
    font-weight: 700;
}

.diploma-subtitle {
    font-style: italic;
    color: var(--gray-500);
    font-size: 1.2rem;
    margin-bottom: 2rem;
}

.student-name {
    font-family: 'Poppins', sans-serif;
    font-size: 3.5rem;
    font-weight: 800;
    color: var(--primary);
    margin-bottom: 2rem;
    text-transform: uppercase;
    border-bottom: 2px solid #eee;
    display: inline-block;
    padding: 0 2rem 0.5rem;
}

.diploma-text {
    max-width: 700px;
    margin: 0 auto 2rem;
    line-height: 1.8;
    color: var(--gray-700);
    font-size: 1.1rem;
}

.course-name {
    font-size: 1.8rem;
    color: var(--secondary);
    margin-bottom: 3rem;
    font-weight: 700;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

.diploma-details {
    display: flex;
    justify-content: center;
    gap: 4rem;
    margin-bottom: 4rem;
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
    padding: 1.5rem 0;
}

.detail-item span {
    display: block;
    font-size: 0.8rem;
    color: var(--gray-500);
    text-transform: uppercase;
    margin-bottom: 0.3rem;
}

.diploma-footer {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    align-items: flex-end;
    gap: 2rem;
    margin-top: 2rem;
}

.signature {
    text-align: center;
}

.sig-line {
    width: 150px;
    height: 1px;
    background: #000;
    margin: 0 auto 1rem;
}

.signature strong { display: block; font-size: 0.9rem; }
.signature span { font-size: 0.75rem; color: var(--gray-500); }

.qr-verification {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}

.qr-placeholder {
    width: 80px;
    height: 80px;
    background: #f8f9fa;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #eee;
}

.reg-number { font-size: 0.7rem; color: var(--gray-400); font-family: monospace; }

.diploma-seal-watermark {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 400px;
    height: 400px;
    background: url('LOGOS/logo-quick-lider.png') no-repeat center;
    background-size: contain;
    opacity: 0.03;
    pointer-events: none;
    z-index: 0;
}

@media print {
    body * { visibility: hidden; }
    .printable, .printable * { visibility: visible; }
    .printable { position: absolute; left: 0; top: 0; width: 100%; box-shadow: none; padding: 0; }
    .diploma-header-actions { display: none; }
}

@media (max-width: 768px) {
    .diploma-inner-border { padding: 20px; }
    .diploma-title { font-size: 2.5rem; }
    .student-name { font-size: 2rem; }
    .diploma-footer { grid-template-columns: 1fr; gap: 3rem; }
    .diploma-details { flex-direction: column; gap: 1rem; }
}


/* Program Detail Modern Styles - 2026 */
.nav-item { position: relative; display: flex; align-items: center; }
.nav-trigger { display: inline-flex; align-items: center; gap: 6px; }
.nav-trigger svg { width: 15px; height: 15px; transition: transform .25s ease; }
.has-mega:hover .nav-trigger svg, .has-mega:focus-within .nav-trigger svg { transform: rotate(180deg); }
.mega-menu {
    position: absolute; top: calc(100% + 22px); left: 50%;
    transform: translateX(-50%) translateY(14px);
    width: min(920px, 92vw); display: grid; grid-template-columns: 0.9fr 1.25fr;
    gap: 1rem; padding: 1rem; border-radius: 28px; background: rgba(255,255,255,.98);
    box-shadow: 0 30px 90px rgba(17, 8, 30, .18); border: 1px solid rgba(227, 6, 19, .08);
    opacity: 0; visibility: hidden; pointer-events: none; transition: .28s ease; z-index: 1500;
}
.has-mega:hover .mega-menu, .has-mega:focus-within .mega-menu { opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(-50%) translateY(0); }
.mega-panel { border-radius: 22px; }
.mega-feature {
    padding: 2rem; color: var(--white);
    background: radial-gradient(circle at top right, rgba(227,6,19,.55), transparent 35%), linear-gradient(135deg, var(--secondary-dark), var(--secondary));
    overflow: hidden; position: relative;
}
.mega-feature::after { content:''; position:absolute; width:220px; height:220px; right:-80px; bottom:-90px; border-radius:50%; background:rgba(255,255,255,.08); }
.mega-kicker { display:block; color:#ffbdc3; font-size:.75rem; font-weight:800; text-transform:uppercase; letter-spacing:1.4px; margin-bottom:.8rem; }
.mega-feature h3 { color:var(--white); font-size:1.45rem; margin-bottom:.8rem; }
.mega-feature p { color:rgba(255,255,255,.78); font-size:.92rem; line-height:1.55; margin-bottom:1.4rem; }
.mega-cta { display:inline-flex; align-items:center; gap:8px; color:var(--white); font-weight:800; font-size:.92rem; }
.mega-cta svg { width:17px; }
.mega-list { display:grid; grid-template-columns:1fr 1fr; gap:.65rem; }
.mega-link { display:flex; gap:.8rem; align-items:center; padding:.85rem; border-radius:18px; color:var(--gray-900) !important; border:1px solid transparent; background:#fff; }
.mega-link:hover { background:var(--gray-50); border-color:rgba(227,6,19,.13); transform:translateY(-2px); }
.mega-icon { width:42px; height:42px; display:grid; place-items:center; flex:0 0 auto; border-radius:14px; color:var(--primary); background:rgba(227,6,19,.08); }
.mega-icon svg { width:22px; height:22px; }
.mega-link strong { display:block; font-size:.88rem; line-height:1.2; }
.mega-link small { display:block; color:var(--gray-600); font-size:.74rem; margin-top:.2rem; }
.navbar:not(.scrolled) .mega-menu a { color: var(--gray-900) !important; }
.mobile-program-links { display:grid; gap:.75rem; padding-left:1rem; border-left:3px solid rgba(227,6,19,.18); }
.mobile-program-links a { font-size:1rem; font-family:'Inter',sans-serif; font-weight:700; color:var(--gray-600); }
.programs-grid-5 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.program-hero, .directory-hero { position:relative; min-height:720px; display:flex; align-items:center; padding:140px 0 80px; overflow:hidden; color:var(--white); }
.program-hero-media, .directory-hero-bg { position:absolute; inset:0; z-index:-2; }
.program-hero-img { width:100%; height:100%; object-fit:cover; filter:saturate(1.05) contrast(1.02); }
.program-hero-overlay, .directory-hero-bg::before { content:''; position:absolute; inset:0; z-index:1; background:linear-gradient(120deg, rgba(17,8,30,.95) 0%, rgba(46,26,71,.82) 48%, rgba(227,6,19,.44) 100%), radial-gradient(circle at 78% 22%, rgba(255,255,255,.18), transparent 28%); }
.directory-hero-bg { background:linear-gradient(135deg, #11081e 0%, #2E1A47 54%, #E30613 120%); }
.directory-hero-bg::after, .program-hero::after { content:''; position:absolute; inset:auto -10% -30% auto; width:520px; height:520px; border-radius:50%; background:rgba(255,255,255,.08); filter:blur(8px); }
.program-hero-grid { display:grid; grid-template-columns:minmax(0,1.1fr) 420px; gap:4rem; align-items:center; }
.program-hero-copy h1, .directory-hero h1 { color:var(--white); font-size:clamp(2.6rem, 6vw, 5rem); line-height:1.02; text-transform:uppercase; letter-spacing:-1.7px; margin-bottom:1.2rem; }
.program-subtitle, .directory-hero p { font-size:clamp(1.15rem,2.4vw,1.55rem); line-height:1.55; color:rgba(255,255,255,.9); max-width:850px; margin-bottom:2rem; }
.program-eyebrow { display:inline-flex; color:#fff; background:rgba(255,255,255,.13); border:1px solid rgba(255,255,255,.22); backdrop-filter:blur(10px); padding:.55rem 1rem; border-radius:999px; font-weight:800; text-transform:uppercase; letter-spacing:1.1px; font-size:.78rem; margin-bottom:1rem; }
.program-hero-actions { display:flex; flex-wrap:wrap; gap:1rem; }
.program-hero-card { background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22); backdrop-filter:blur(18px); border-radius:30px; padding:2rem; box-shadow:0 30px 80px rgba(0,0,0,.25); }
.hero-card-icon { width:70px; height:70px; border-radius:22px; display:grid; place-items:center; background:linear-gradient(135deg,var(--primary),#ff5260); color:#fff; margin-bottom:1.2rem; }
.hero-card-icon svg { width:34px; height:34px; }
.program-hero-card h2 { color:#fff; margin-bottom:1.4rem; }
.program-facts { display:grid; gap:.9rem; }
.program-facts div { display:flex; justify-content:space-between; gap:1rem; align-items:center; padding:1rem; border-radius:16px; background:rgba(255,255,255,.10); }
.program-facts span { color:rgba(255,255,255,.72); font-size:.82rem; text-transform:uppercase; letter-spacing:.8px; }
.program-facts strong { color:#fff; text-align:right; }
.breadcrumbs { color:rgba(255,255,255,.78); }
.breadcrumbs a { color:#fff; font-weight:700; }
.breadcrumbs span { color:#ff7b84; margin:0 .35rem; }
.program-overview-section, .curriculum-section, .program-directory-section { padding:110px 0; background:#fff; }
.program-content-grid, .cert-grid { display:grid; grid-template-columns:minmax(0,1.1fr) 420px; gap:3rem; align-items:start; }
.program-main-copy h2, .cert-panel h2 { font-size:clamp(2rem,4vw,3rem); margin-bottom:1.4rem; }
.program-main-copy p { color:var(--gray-600); font-size:1.15rem; }
.program-target { display:flex; gap:1rem; padding:1.5rem; background:var(--gray-50); border:1px solid var(--gray-100); border-radius:22px; margin-top:2rem; }
.program-target svg { color:var(--primary); flex:0 0 auto; width:32px; height:32px; }
.program-target p { margin:0; font-size:1rem; }
.program-schedule-card { padding:2rem; border-radius:28px; background:linear-gradient(180deg,#fff,var(--gray-50)); box-shadow:var(--shadow-premium); border:1px solid var(--gray-100); }
.program-schedule-card h3 { font-size:1.5rem; margin-bottom:1.2rem; }
.schedule-line { display:flex; justify-content:space-between; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--gray-100); }
.schedule-line span { color:var(--gray-600); font-weight:700; }
.schedule-note { display:flex; gap:.75rem; margin-top:1.2rem; padding:1rem; border-radius:18px; background:rgba(227,6,19,.06); color:var(--gray-800); font-size:.95rem; }
.schedule-note svg { color:var(--primary); flex:0 0 auto; }
.method-section { padding:90px 0; background:linear-gradient(180deg,var(--gray-50),#fff); }
.method-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.method-card { padding:2rem; border-radius:26px; background:#fff; box-shadow:var(--shadow-md); border:1px solid var(--gray-100); }
.method-card svg { width:38px; height:38px; color:var(--primary); margin-bottom:1rem; }
.method-card h3 { margin-bottom:.7rem; }
.method-card p { color:var(--gray-600); font-size:.98rem; }
.curriculum-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1rem; counter-reset: module; }
.curriculum-card { position:relative; padding:2rem; min-height:170px; border-radius:26px; background:linear-gradient(145deg,#fff,var(--gray-50)); border:1px solid var(--gray-100); box-shadow:var(--shadow-sm); overflow:hidden; }
.curriculum-card::after { counter-increment:module; content:counter(module, decimal-leading-zero); position:absolute; right:1rem; bottom:-.9rem; font-size:5rem; font-weight:800; color:rgba(227,6,19,.07); font-family:'Poppins',sans-serif; }
.curriculum-card span { color:var(--primary); font-weight:800; text-transform:uppercase; letter-spacing:1px; font-size:.78rem; }
.curriculum-card h3 { margin-top:.75rem; font-size:1.25rem; line-height:1.25; }
.benefits-cert-section { padding:110px 0; background:radial-gradient(circle at 10% 0%, rgba(227,6,19,.08), transparent 30%), linear-gradient(135deg,var(--secondary-dark),var(--secondary)); }
.cert-panel { padding:2.5rem; border-radius:30px; background:#fff; }
.cert-panel p { color:var(--gray-600); font-size:1.06rem; }
.cert-highlight { color:#fff; background:linear-gradient(135deg,var(--primary),#ff3947); box-shadow:0 25px 70px rgba(227,6,19,.3); }
.cert-highlight h2, .cert-highlight p { color:#fff; }
.badge-light { color:#fff; background:rgba(255,255,255,.16); border-color:rgba(255,255,255,.2); }
.check-list { display:grid; gap:1rem; margin-top:1.5rem; }
.check-list li { display:flex; align-items:flex-start; gap:.8rem; color:var(--gray-700); font-weight:600; }
.check-list svg { width:22px; height:22px; color:var(--primary); flex:0 0 auto; margin-top:.1rem; }
.related-programs { padding:100px 0; background:var(--gray-50); }
.related-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.related-card { background:#fff; border-radius:24px; overflow:hidden; box-shadow:var(--shadow-md); }
.related-card img { height:190px; width:100%; object-fit:cover; }
.related-card span { display:block; margin:1.2rem 1.3rem .4rem; color:var(--primary); font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:1px; }
.related-card h3 { padding:0 1.3rem 1.5rem; font-size:1.25rem; }
.directory-hero { min-height:620px; text-align:center; }
.directory-hero-content { position:relative; z-index:2; max-width:980px; }
.program-directory-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:2rem; }
.program-directory-card { background:#fff; border:1px solid var(--gray-100); border-radius:30px; overflow:hidden; box-shadow:var(--shadow-md); transition:.35s ease; }
.program-directory-card:hover { transform:translateY(-10px); box-shadow:var(--shadow-xl); }
.program-directory-img { height:245px; display:block; position:relative; overflow:hidden; }
.program-directory-img img { width:100%; height:100%; object-fit:cover; transition:.5s ease; }
.program-directory-card:hover .program-directory-img img { transform:scale(1.06); }
.program-directory-img span { position:absolute; top:18px; left:18px; padding:.45rem .9rem; border-radius:999px; background:var(--primary); color:#fff; font-size:.78rem; font-weight:800; }
.program-directory-body { padding:2rem; }
.program-directory-icon { width:52px; height:52px; display:grid; place-items:center; border-radius:16px; background:rgba(227,6,19,.08); color:var(--primary); margin-bottom:1rem; }
.program-directory-body h3 { font-size:1.35rem; margin-bottom:1rem; }
.program-directory-body p { color:var(--gray-600); font-size:.98rem; margin-bottom:1.3rem; }
.program-directory-meta { display:flex; flex-wrap:wrap; gap:.8rem; margin-bottom:1.5rem; color:var(--gray-600); font-weight:700; font-size:.86rem; }
.program-directory-meta span { display:flex; align-items:center; gap:.4rem; }
.program-directory-meta svg { width:16px; color:var(--primary); }
@media (max-width: 1100px) {
    .mega-menu { left:auto; right:0; transform:translateY(14px); }
    .has-mega:hover .mega-menu, .has-mega:focus-within .mega-menu { transform:translateY(0); }
    .program-hero-grid, .program-content-grid, .cert-grid { grid-template-columns:1fr; }
    .program-hero-card { max-width:580px; }
}
@media (max-width: 768px) {
    .mega-menu { display:none; }
    .program-hero, .directory-hero { min-height:auto; padding:130px 0 70px; }
    .program-hero-copy h1, .directory-hero h1 { font-size:2.45rem; }
    .program-hero-actions { flex-direction:column; }
    .program-hero-actions .btn { width:100%; }
    .method-grid, .related-grid { grid-template-columns:1fr; }
    .program-facts div, .schedule-line { flex-direction:column; align-items:flex-start; }
    .cert-panel { padding:1.6rem; }
}


/* Program Polish Fixes - 2026 */
.final-cta p { color: rgba(255, 255, 255, .86); }
.footer .social-links a svg { width: 19px; height: 19px; }


/* Program Mobile Overflow Fix - 2026 */
html, body { max-width: 100%; overflow-x: hidden; }
.mobile-menu {
    right: 0;
    transform: translateX(100%);
}
.mobile-menu.active {
    right: 0;
    transform: translateX(0);
}


/* Program Mobile Visibility Fix - 2026 */
.mobile-menu {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.mobile-menu.active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}
@media (max-width: 768px) {
    .footer-grid { grid-template-columns: 1fr; gap: 2.2rem; }
    .footer { padding-top: 64px; }
    .bottom-flex { flex-direction: column; gap: .75rem; }
}


/* Program Mega CTA Contrast Fix - 2026 */
.navbar:not(.scrolled) .mega-menu .mega-cta,
.mega-menu .mega-feature .mega-cta {
    color: var(--white) !important;
}


/* Program Mega Hover Bridge Fix - 2026 */
.mega-menu {
    top: calc(100% + 10px);
}
.has-mega::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    width: min(920px, 92vw);
    height: 18px;
    z-index: 1490;
}
@media (max-width: 768px) {
    .has-mega::after { display: none; }
}

/* Sistema de consulta de diplomas - 2026 */
.hidden { display: none !important; }
.spinner {
    width: 18px;
    height: 18px;
    border: 2px solid rgba(255,255,255,.45);
    border-top-color: #fff;
    border-radius: 50%;
    animation: diplomaSpin .75s linear infinite;
}
@keyframes diplomaSpin { to { transform: rotate(360deg); } }
.diploma-page-main {
    padding-top: 128px;
    padding-bottom: 90px;
    background:
        radial-gradient(circle at top left, rgba(227,6,19,.08), transparent 34%),
        linear-gradient(180deg, #fff 0%, #f7f8fc 100%);
}
.diploma-consulta-header { max-width: 820px; margin: 0 auto 2.5rem; }
.verification-search { max-width: 760px; }
.verification-search .input-group-premium input { min-width: 0; }
.verification-guides {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin: 2rem auto 0;
    max-width: 1000px;
}
.verification-guides > div {
    background: rgba(255,255,255,.82);
    border: 1px solid rgba(17,8,30,.08);
    border-radius: 22px;
    padding: 1.25rem;
    display: grid;
    gap: .45rem;
    box-shadow: 0 18px 45px rgba(17,8,30,.06);
}
.verification-guides svg { color: var(--primary); width: 26px; height: 26px; }
.verification-guides strong { color: var(--secondary); font-family: 'Poppins', sans-serif; }
.verification-guides span { color: var(--gray-600); font-size: .92rem; line-height: 1.5; }
.verification-results { max-width: 1120px; margin-left: auto; margin-right: auto; }
.verification-status {
    display: grid;
    gap: .3rem;
    padding: 1.15rem 1.35rem;
    border-radius: 20px;
    border: 1px solid transparent;
    margin-bottom: 1.4rem;
}
.verification-status strong { font-size: 1.05rem; font-family: 'Poppins', sans-serif; }
.verification-status span { color: inherit; opacity: .82; }
.verification-status.found { color: #047857; background: #ecfdf5; border-color: #a7f3d0; }
.verification-status.warning { color: #92400e; background: #fffbeb; border-color: #fde68a; }
.verification-status.not-found { color: #b91c1c; background: #fef2f2; border-color: #fecaca; }
.verification-list { display: grid; gap: 1rem; margin-bottom: 1.5rem; }
.verification-card {
    background: #fff;
    border: 1px solid rgba(17,8,30,.08);
    border-radius: 28px;
    padding: 1.4rem;
    box-shadow: 0 20px 55px rgba(17,8,30,.08);
    transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.verification-card.active { border-color: rgba(227,6,19,.35); box-shadow: 0 24px 65px rgba(227,6,19,.10); }
.verification-card:hover { transform: translateY(-2px); }
.verification-card-head { display:flex; justify-content:space-between; gap:1rem; align-items:center; margin-bottom:.9rem; flex-wrap:wrap; }
.verification-card h3 { font-family:'Poppins',sans-serif; color:var(--secondary); font-size:clamp(1.35rem,3vw,2rem); margin:0 0 .5rem; text-transform:uppercase; }
.verification-card p { color:var(--gray-600); line-height:1.65; margin-bottom:1rem; }
.verification-data-grid {
    display:grid;
    grid-template-columns: repeat(4, 1fr);
    border:1px solid #eef1f5;
    border-radius:18px;
    overflow:hidden;
    margin:1rem 0;
}
.verification-data-grid div { padding:1rem; background:#fbfcff; border-right:1px solid #eef1f5; }
.verification-data-grid div:last-child { border-right:0; }
.verification-data-grid span { display:block; color:var(--gray-500); font-size:.75rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; margin-bottom:.35rem; }
.verification-data-grid strong { color:var(--secondary); font-size:.98rem; }
.verification-actions { display:flex; gap:.8rem; flex-wrap:wrap; }
.pdf-preview-panel {
    background:#fff;
    border-radius:30px;
    border:1px solid rgba(17,8,30,.08);
    box-shadow:0 25px 70px rgba(17,8,30,.1);
    padding:1.2rem;
}
.pdf-preview-header { display:flex; justify-content:space-between; gap:1rem; align-items:center; padding: .6rem .6rem 1rem; }
.pdf-preview-header h2 { margin:.35rem 0 .2rem; color:var(--secondary); font-family:'Poppins',sans-serif; }
.pdf-preview-header p { margin:0; color:var(--gray-600); }
.pdf-frame {
    width:100%;
    min-height:720px;
    border:0;
    border-radius:22px;
    background:#f3f4f6;
    box-shadow: inset 0 0 0 1px #edf0f5;
}
.btn-sm { padding: .75rem 1rem; font-size: .9rem; }
@media (max-width: 920px) {
    .verification-guides, .verification-data-grid { grid-template-columns: 1fr; }
    .verification-data-grid div { border-right:0; border-bottom:1px solid #eef1f5; }
    .verification-data-grid div:last-child { border-bottom:0; }
    .pdf-preview-header { flex-direction:column; align-items:flex-start; }
    .pdf-frame { min-height: 540px; }
}
@media (max-width: 640px) {
    .diploma-page-main { padding-top: 104px; }
    .search-box-container { padding: 1.25rem; border-radius: 22px; }
    .input-group-premium { flex-direction: column; align-items: stretch; padding: 1rem; }
    .input-group-premium i.search-icon { display:none; }
    .btn-search { width: 100%; justify-content: center; }
    .verification-card { padding: 1rem; border-radius: 22px; }
}


/* Botones flotantes de contacto - WhatsApp y llamada */
.floating-contact {
    position: fixed;
    left: calc(100vw - 262px);
    right: auto;
    bottom: 112px;
    z-index: 1900;
    display: grid;
    gap: 14px;
    pointer-events: none;
}

.floating-contact-btn {
    position: relative;
    isolation: isolate;
    min-width: 238px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 18px 12px 12px;
    border-radius: 999px;
    color: #fff;
    overflow: visible;
    pointer-events: auto;
    box-shadow: 0 18px 45px rgba(17, 8, 30, .24);
    transform: translateX(0);
    animation: floatingIn .7s cubic-bezier(.2,.85,.25,1.25) backwards, floatingBob 4s ease-in-out infinite;
}

.floating-contact-btn:hover,
.floating-contact-btn:focus-visible {
    color: #fff;
    transform: translateX(-8px) scale(1.04);
    box-shadow: 0 24px 60px rgba(17, 8, 30, .32);
}

.floating-contact-btn:focus-visible {
    outline: 3px solid rgba(255, 255, 255, .9);
    outline-offset: 4px;
}

.floating-contact-btn::before {
    content: "";
    position: absolute;
    inset: -5px;
    border-radius: inherit;
    z-index: -1;
    opacity: .75;
    filter: blur(12px);
    animation: floatingGlow 2.6s ease-in-out infinite;
}

.floating-contact-btn::after {
    content: "";
    position: absolute;
    inset: -8px;
    border-radius: inherit;
    border: 2px solid rgba(255, 255, 255, .55);
    opacity: 0;
    z-index: -1;
    animation: floatingPulse 2.2s ease-out infinite;
}

.floating-whatsapp {
    background: linear-gradient(135deg, #2ee06f 0%, #14b857 48%, #075e54 100%);
}

.floating-whatsapp::before {
    background: linear-gradient(135deg, rgba(46,224,111,.75), rgba(7,94,84,.62));
}

.floating-call {
    background: linear-gradient(135deg, #ff5b69 0%, var(--primary) 48%, #7a123c 100%);
    animation-delay: .18s, 1.2s;
}

.floating-call::before {
    background: linear-gradient(135deg, rgba(255,91,105,.7), rgba(122,18,60,.62));
}

.floating-icon {
    width: 50px;
    height: 50px;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border-radius: 50%;
    position: relative;
    background: rgba(255, 255, 255, .18);
    border: 1px solid rgba(255, 255, 255, .26);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.25);
}

.floating-icon svg {
    width: 27px;
    height: 27px;
    stroke-width: 2.7;
}

.floating-text {
    display: grid;
    gap: 2px;
    line-height: 1.1;
    text-align: left;
}

.floating-text strong {
    color: #fff;
    font-family: 'Poppins', sans-serif;
    font-size: 1rem;
    letter-spacing: .1px;
}

.floating-text small {
    color: rgba(255, 255, 255, .88);
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: .82rem;
    font-weight: 700;
    white-space: nowrap;
}

.typing-dots {
    display: inline-flex;
    align-items: center;
    gap: 3px;
}

.typing-dots span {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #fff;
    animation: typingDot 1.05s infinite ease-in-out;
}

.typing-dots span:nth-child(2) { animation-delay: .16s; }
.typing-dots span:nth-child(3) { animation-delay: .32s; }

.floating-whatsapp .floating-icon::after {
    content: "";
    position: absolute;
    right: 9px;
    bottom: 10px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #fff;
    box-shadow: -10px 0 0 rgba(255,255,255,.82), -20px 0 0 rgba(255,255,255,.55);
    animation: typingBubble 1.25s ease-in-out infinite;
}

.floating-call .floating-icon {
    animation: phoneRing 1.35s ease-in-out infinite;
}

.floating-call .floating-icon::before,
.floating-call .floating-icon::after {
    content: "";
    position: absolute;
    inset: -7px;
    border-radius: 50%;
    border: 2px solid rgba(255,255,255,.58);
    opacity: 0;
    animation: callWave 1.6s ease-out infinite;
}

.floating-call .floating-icon::after {
    animation-delay: .45s;
}

.floating-attention .floating-contact-btn {
    animation: contactNudge 1.1s ease both, floatingBob 4s ease-in-out infinite;
}

@keyframes floatingIn {
    from { opacity: 0; transform: translateX(90px) scale(.82); }
    to { opacity: 1; transform: translateX(0) scale(1); }
}

@keyframes floatingBob {
    0%, 100% { translate: 0 0; }
    50% { translate: 0 -7px; }
}

@keyframes floatingGlow {
    0%, 100% { opacity: .46; transform: scale(.98); }
    50% { opacity: .9; transform: scale(1.04); }
}

@keyframes floatingPulse {
    0% { opacity: .55; transform: scale(.86); }
    78%, 100% { opacity: 0; transform: scale(1.18); }
}

@keyframes typingDot {
    0%, 80%, 100% { transform: translateY(0); opacity: .48; }
    40% { transform: translateY(-5px); opacity: 1; }
}

@keyframes typingBubble {
    0%, 100% { transform: scale(.82); opacity: .72; }
    50% { transform: scale(1.15); opacity: 1; }
}

@keyframes phoneRing {
    0%, 100% { transform: rotate(0deg) scale(1); }
    10% { transform: rotate(-13deg) scale(1.05); }
    20% { transform: rotate(13deg) scale(1.05); }
    30% { transform: rotate(-10deg) scale(1.04); }
    40% { transform: rotate(10deg) scale(1.04); }
    50% { transform: rotate(0deg) scale(1); }
}

@keyframes callWave {
    0% { opacity: .75; transform: scale(.72); }
    100% { opacity: 0; transform: scale(1.35); }
}

@keyframes contactNudge {
    0%, 100% { transform: translateX(0) scale(1); }
    25% { transform: translateX(-12px) scale(1.05); }
    50% { transform: translateX(0) scale(1); }
    75% { transform: translateX(-7px) scale(1.03); }
}

@media (max-width: 640px) {
    .floating-contact {
        left: auto;
        right: clamp(14px, 22vw, 110px);
        bottom: 18px;
        gap: 10px;
    }

    .floating-contact-btn {
        width: 60px;
        min-width: 60px;
        height: 60px;
        justify-content: center;
        padding: 6px;
    }

    .floating-contact-btn:hover,
    .floating-contact-btn:focus-visible {
        transform: translateX(-4px) scale(1.04);
    }

    .floating-icon {
        width: 48px;
        height: 48px;
    }

    .floating-text {
        position: absolute;
        right: 70px;
        min-width: 150px;
        padding: 10px 12px;
        border-radius: 16px;
        background: rgba(17, 8, 30, .92);
        box-shadow: 0 16px 34px rgba(0,0,0,.22);
        opacity: 0;
        visibility: hidden;
        transform: translateX(10px) scale(.96);
        transition: .25s ease;
    }

    .floating-contact-btn:hover .floating-text,
    .floating-contact-btn:focus-visible .floating-text {
        opacity: 1;
        visibility: visible;
        transform: translateX(0) scale(1);
    }
}

/* Mobile UX Fix - hide floating contact buttons so they do not cover forms, cards or CTAs */
@media (max-width: 768px) {
    .floating-contact {
        display: grid !important;
    }

    .service-link,
    .service-page-card a {
        min-height: 44px;
        padding: .55rem .25rem;
    }

    .about {
        padding: 88px 0;
    }

    .about-grid {
        min-width: 0;
    }

    .about-grid > * {
        min-width: 0;
        width: 100%;
    }

    .about-image {
        overflow: visible;
    }

    .about-experience {
        right: 10px;
        bottom: 12px;
        max-width: calc(100% - 20px);
        padding: 1rem 1.1rem;
    }

    .about-text h2 {
        font-size: clamp(2rem, 10vw, 2.55rem);
        overflow-wrap: break-word;
    }

    .about-text p {
        font-size: 1rem;
        overflow-wrap: break-word;
    }

    .about-stats {
        grid-template-columns: 1fr;
    }

    .about-actions {
        flex-direction: column;
    }

    .about-actions .btn {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .floating-contact,
    .floating-contact *,
    .floating-contact *::before,
    .floating-contact *::after {
        animation: none !important;
        transition: none !important;
    }
}

/* Services Page Modern Styles - 2026 */
.services-page {
    background: var(--white);
}

.services-hero {
    position: relative;
    min-height: 760px;
    display: flex;
    align-items: center;
    padding: 150px 0 86px;
    color: var(--white);
    overflow: hidden;
    isolation: isolate;
}

.services-hero-bg {
    position: absolute;
    inset: 0;
    z-index: -3;
    background:
        radial-gradient(circle at 76% 28%, rgba(227, 6, 19, .38), transparent 28%),
        radial-gradient(circle at 26% 68%, rgba(107, 78, 145, .36), transparent 34%),
        linear-gradient(135deg, #070311 0%, var(--secondary-dark) 42%, var(--secondary) 72%, #120319 100%);
}

.services-hero-bg::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .24;
    background-image:
        linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
    background-size: 72px 72px;
    mask-image: linear-gradient(90deg, transparent, #000 18%, #000 84%, transparent);
}

.services-hero-bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(7,3,17,.96) 0%, rgba(20,8,40,.9) 43%, rgba(20,8,40,.55) 72%, rgba(7,3,17,.88) 100%);
}

.services-hero-pulse {
    position: absolute;
    left: -8%;
    right: -8%;
    bottom: 24%;
    height: 110px;
    z-index: -1;
    opacity: .72;
    background:
        radial-gradient(circle at 18% 51%, rgba(227,6,19,.9) 0 4px, transparent 5px),
        radial-gradient(circle at 55% 50%, rgba(227,6,19,.8) 0 4px, transparent 5px),
        radial-gradient(circle at 82% 49%, rgba(227,6,19,.7) 0 4px, transparent 5px),
        linear-gradient(90deg, transparent 0 6%, rgba(227,6,19,.05) 7% 11%, transparent 12% 18%, rgba(227,6,19,.42) 19% 20%, transparent 21% 28%, rgba(227,6,19,.75) 29% 30%, transparent 31% 44%, rgba(227,6,19,.36) 45% 48%, transparent 49% 58%, rgba(227,6,19,.76) 59% 60%, transparent 61% 76%, rgba(227,6,19,.35) 77% 81%, transparent 82% 100%);
    filter: drop-shadow(0 0 18px rgba(227,6,19,.55));
    transform: skewY(-4deg);
}

.services-hero-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 540px;
    align-items: center;
    gap: 4.5rem;
}

.services-hero-copy h1 {
    color: var(--white);
    font-size: clamp(3rem, 6.8vw, 5.5rem);
    line-height: 1.02;
    letter-spacing: -2px;
    margin: 1rem 0 1.5rem;
    max-width: 870px;
}

.services-hero-copy h1 span {
    color: #ff3947;
    text-shadow: 0 0 24px rgba(227,6,19,.42);
}

.services-hero-copy p {
    max-width: 680px;
    color: rgba(255,255,255,.88);
    font-size: clamp(1.08rem, 2vw, 1.28rem);
    line-height: 1.75;
    margin-bottom: 2rem;
}

.services-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 2.6rem;
    max-width: 780px;
}

.services-metrics div {
    display: grid;
    grid-template-columns: 50px 1fr;
    align-items: center;
    column-gap: .9rem;
    padding: .95rem;
    border-radius: 22px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.14);
    backdrop-filter: blur(12px);
}

.services-metrics svg {
    grid-row: span 2;
    width: 50px;
    height: 50px;
    padding: 12px;
    border-radius: 18px;
    color: var(--white);
    background: rgba(107,78,145,.7);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.16);
}

.services-metrics strong {
    color: var(--white);
    font-size: 1.45rem;
    line-height: 1;
}

.services-metrics span {
    color: rgba(255,255,255,.74);
    font-size: .82rem;
    line-height: 1.35;
    font-weight: 700;
}

.services-hero-visual {
    position: relative;
    min-height: 490px;
}

.hero-photo-card {
    position: absolute;
    inset: 0 0 52px 34px;
    border-radius: 36px;
    overflow: hidden;
    box-shadow: 0 35px 90px rgba(0,0,0,.38);
    border: 1px solid rgba(255,255,255,.18);
    transform: rotate(1.5deg);
}

.hero-photo-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(115deg, rgba(17,8,30,.72), rgba(46,26,71,.25) 46%, rgba(227,6,19,.36));
}

.hero-photo-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(1.02) contrast(1.04);
}

.impact-glass-card {
    position: absolute;
    right: 0;
    bottom: 0;
    width: min(310px, 80%);
    padding: 1.45rem;
    border-radius: 22px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.28);
    color: var(--white);
    backdrop-filter: blur(18px);
    box-shadow: 0 24px 80px rgba(0,0,0,.28);
}

.impact-glass-card span {
    display: block;
    color: var(--white);
    font-weight: 800;
    margin-bottom: .55rem;
}

.impact-glass-card p {
    color: rgba(255,255,255,.72);
    font-size: .88rem;
    line-height: 1.5;
    margin-bottom: 1rem;
}

.impact-progress {
    height: 9px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255,255,255,.15);
    margin-bottom: .8rem;
}

.impact-progress span {
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--primary), #ff5260);
}

.impact-glass-card strong {
    display: inline-block;
    font-size: 2.2rem;
    line-height: 1;
    margin-right: .6rem;
}

.impact-glass-card small {
    color: rgba(255,255,255,.76);
    font-weight: 700;
}

.hero-orbit {
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,.16);
    pointer-events: none;
}

.hero-orbit-red {
    width: 230px;
    height: 230px;
    right: 18px;
    top: -34px;
    border-color: rgba(227,6,19,.38);
    box-shadow: 0 0 60px rgba(227,6,19,.2);
}

.hero-orbit-purple {
    width: 320px;
    height: 320px;
    left: -32px;
    bottom: -12px;
    border-color: rgba(107,78,145,.34);
}

.service-pillars-section,
.service-impact-section {
    padding: 110px 0;
    background: var(--white);
}

.services-intro-row {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(280px, .75fr);
    align-items: end;
    gap: 3rem;
    margin-bottom: 3rem;
}

.services-intro-row.compact {
    align-items: start;
    margin-bottom: 3.4rem;
}

.services-intro-row h2,
.impact-copy h2 {
    font-size: clamp(2.25rem, 4.8vw, 3.55rem);
    line-height: 1.08;
    letter-spacing: -1.2px;
}

.services-intro-row p,
.impact-copy p {
    color: var(--gray-600);
    font-size: 1.08rem;
    line-height: 1.75;
}

.service-page-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
}

.service-page-card {
    position: relative;
    min-height: 310px;
    padding: 2.2rem;
    border-radius: 30px;
    background:
        radial-gradient(circle at 100% 0%, rgba(107,78,145,.08), transparent 34%),
        linear-gradient(180deg, #fff, #fff 65%, #fbfbfd 100%);
    border: 1px solid var(--gray-100);
    box-shadow: 0 20px 58px rgba(17, 8, 30, .07);
    overflow: hidden;
    transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}

.service-page-card::after {
    content: "";
    position: absolute;
    width: 180px;
    height: 180px;
    right: -78px;
    bottom: -86px;
    border-radius: 50%;
    background: rgba(227,6,19,.045);
}

.service-page-card:hover {
    transform: translateY(-10px);
    border-color: rgba(227,6,19,.18);
    box-shadow: 0 28px 75px rgba(17, 8, 30, .12);
}

.service-page-icon {
    width: 72px;
    height: 72px;
    display: grid;
    place-items: center;
    border-radius: 24px;
    margin-bottom: 1.5rem;
}

.service-page-icon svg {
    width: 34px;
    height: 34px;
}

.service-page-icon.red {
    color: var(--primary);
    background: rgba(227,6,19,.09);
}

.service-page-icon.purple {
    color: var(--accent);
    background: rgba(107,78,145,.12);
}

.service-page-card h3 {
    font-size: 1.35rem;
    margin-bottom: .9rem;
}

.service-page-card p {
    color: var(--gray-600);
    font-size: .99rem;
    line-height: 1.7;
    margin-bottom: 1.4rem;
}

.service-page-card a {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    color: var(--primary);
    font-weight: 800;
    font-size: .92rem;
}

.service-page-card a svg {
    width: 17px;
    height: 17px;
}

.service-method-section {
    padding: 105px 0;
    background:
        radial-gradient(circle at 11% 22%, rgba(227,6,19,.08), transparent 30%),
        radial-gradient(circle at 86% 16%, rgba(107,78,145,.13), transparent 28%),
        linear-gradient(180deg, #fbf8ff 0%, var(--gray-50) 100%);
}

.service-method-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.2rem;
    position: relative;
}

.service-step {
    position: relative;
    padding: 1.8rem 1.35rem;
    border-radius: 28px;
    background: rgba(255,255,255,.78);
    border: 1px solid rgba(255,255,255,.82);
    box-shadow: 0 20px 55px rgba(46, 26, 71, .08);
}

.service-step:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 56px;
    left: calc(100% - 8px);
    width: 34px;
    border-top: 1px dashed rgba(46,26,71,.28);
}

.service-step span {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--white);
    color: var(--primary);
    font-size: .78rem;
    font-weight: 900;
    box-shadow: var(--shadow-sm);
}

.service-step div {
    width: 66px;
    height: 66px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    margin-bottom: 1.4rem;
    color: var(--white);
    background: linear-gradient(135deg, var(--primary), #ff3947);
    box-shadow: 0 16px 35px rgba(227,6,19,.24);
}

.service-step:nth-child(even) div {
    background: linear-gradient(135deg, var(--accent), var(--secondary));
    box-shadow: 0 16px 35px rgba(46,26,71,.2);
}

.service-step svg {
    width: 30px;
    height: 30px;
}

.service-step h3 {
    font-size: 1.12rem;
    margin-bottom: .55rem;
}

.service-step p {
    color: var(--gray-600);
    font-size: .93rem;
    line-height: 1.55;
}

.impact-grid {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(540px, 1fr);
    gap: 4rem;
    align-items: center;
}

.impact-copy .btn {
    margin-top: 1.7rem;
}

.service-check-list li {
    color: var(--gray-800);
    font-weight: 650;
}

.impact-dashboard {
    position: relative;
    min-height: 505px;
    padding: 1.5rem;
    border-radius: 32px;
    background: linear-gradient(180deg, #fff, #f9f9ff);
    border: 1px solid var(--gray-100);
    box-shadow: 0 30px 90px rgba(17, 8, 30, .11);
}

.dashboard-header,
.dashboard-stats {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
}

.dashboard-header {
    margin-bottom: 1rem;
}

.dashboard-header strong {
    font-family: 'Poppins', sans-serif;
    color: var(--secondary-dark);
}

.dashboard-header span {
    padding: .45rem .8rem;
    border-radius: 999px;
    background: var(--gray-50);
    color: var(--gray-600);
    font-size: .8rem;
    font-weight: 800;
}

.dashboard-stats {
    align-items: stretch;
    margin-bottom: 1.2rem;
}

.dashboard-stats div {
    flex: 1;
    padding: 1rem;
    border: 1px solid var(--gray-100);
    border-radius: 20px;
    background: var(--white);
}

.dashboard-stats span {
    display: block;
    color: var(--gray-600);
    font-size: .75rem;
    line-height: 1.25;
    font-weight: 800;
    margin-bottom: .45rem;
}

.dashboard-stats strong {
    color: var(--secondary-dark);
    font-size: 1.55rem;
    line-height: 1;
}

.dashboard-stats em {
    display: inline-block;
    margin-left: .4rem;
    color: #16a34a;
    font-size: .75rem;
    font-style: normal;
    font-weight: 900;
}

.dashboard-chart {
    width: 100%;
    height: auto;
    padding: 1rem;
    border-radius: 24px;
    background: #fff;
    border: 1px solid var(--gray-100);
}

.dashboard-floating {
    position: absolute;
    border-radius: 22px;
    background: rgba(255,255,255,.94);
    border: 1px solid var(--gray-100);
    box-shadow: 0 20px 60px rgba(17,8,30,.11);
    backdrop-filter: blur(12px);
}

.focus-card {
    left: -32px;
    bottom: 36px;
    width: 260px;
    padding: 1.1rem;
}

.focus-card strong {
    display: block;
    margin-bottom: .75rem;
    font-family: 'Poppins', sans-serif;
}

.focus-card span {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    color: var(--gray-600);
    font-size: .78rem;
    font-weight: 800;
    padding: .45rem 0;
    border-bottom: 1px solid var(--gray-100);
}

.focus-card span:last-child {
    border-bottom: 0;
}

.focus-card em {
    color: var(--accent);
    font-style: normal;
}

.map-card {
    right: 24px;
    bottom: -42px;
    width: 220px;
    padding: 1.3rem;
    color: var(--white);
    background: linear-gradient(135deg, var(--secondary), var(--accent));
    border: 0;
}

.map-card svg {
    width: 46px;
    height: 46px;
    color: rgba(255,255,255,.68);
    float: left;
    margin-right: .9rem;
}

.map-card strong {
    display: block;
    color: var(--white);
    font-size: 2rem;
    line-height: 1;
}

.map-card span,
.map-card b {
    display: block;
    color: rgba(255,255,255,.82);
    font-size: .86rem;
}

.service-cta-section {
    padding: 70px 0;
    background:
        radial-gradient(circle at 6% 100%, rgba(227,6,19,.34), transparent 38%),
        radial-gradient(circle at 88% 10%, rgba(107,78,145,.32), transparent 36%),
        linear-gradient(135deg, var(--secondary-dark), var(--secondary));
    overflow: hidden;
}

.service-cta-card {
    display: grid;
    grid-template-columns: 94px minmax(0, 1fr) auto;
    gap: 1.6rem;
    align-items: center;
    color: var(--white);
}

.service-cta-icon {
    width: 92px;
    height: 92px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.24);
    box-shadow: inset 0 0 0 9px rgba(255,255,255,.06);
}

.service-cta-icon svg {
    width: 48px;
    height: 48px;
}

.service-cta-card h2 {
    color: var(--white);
    font-size: clamp(2rem, 4vw, 3rem);
    margin-bottom: .55rem;
}

.service-cta-card p {
    color: rgba(255,255,255,.78);
    margin: 0;
}

@media (max-width: 1180px) {
    .services-hero-grid,
    .impact-grid {
        grid-template-columns: 1fr;
    }
    .services-hero-visual {
        max-width: 620px;
    }
    .focus-card {
        left: 20px;
    }
}

@media (max-width: 920px) {
    .service-page-grid,
    .service-method-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .services-intro-row,
    .service-cta-card {
        grid-template-columns: 1fr;
    }
    .service-step:not(:last-child)::after {
        display: none;
    }
    .service-cta-card .btn {
        width: 100%;
    }
}

@media (max-width: 768px) {
    .services-hero {
        min-height: auto;
        padding: 132px 0 70px;
    }
    .services-hero-copy h1 {
        font-size: 2.55rem;
        letter-spacing: -1px;
    }
    .services-hero-copy p {
        font-size: 1rem;
    }
    .services-metrics,
    .service-page-grid,
    .service-method-grid,
    .dashboard-stats {
        grid-template-columns: 1fr;
        display: grid;
    }
    .services-hero-visual {
        min-height: 390px;
    }
    .hero-photo-card {
        inset: 0 0 62px 0;
        transform: none;
    }
    .impact-glass-card {
        width: calc(100% - 30px);
        right: 15px;
    }
    .service-pillars-section,
    .service-impact-section,
    .service-method-section {
        padding: 78px 0;
    }
    .services-intro-row h2,
    .impact-copy h2 {
        font-size: 2.1rem;
    }
    .impact-dashboard {
        min-height: auto;
        padding: 1rem;
        padding-bottom: 7.5rem;
    }
    .dashboard-floating {
        position: static;
        width: 100%;
        margin-top: 1rem;
    }
    .map-card svg {
        float: none;
        margin: 0 0 .7rem;
    }
}

@media (max-width: 520px) {
    .services-hero-copy .program-hero-actions .btn {
        width: 100%;
    }
    .service-page-card {
        min-height: auto;
        padding: 1.7rem;
    }
    .services-metrics div {
        grid-template-columns: 44px 1fr;
    }
    .services-metrics svg {
        width: 44px;
        height: 44px;
    }
}

/* Services Page QA refinements - keep first viewport readable */
.services-body .floating-contact {
    bottom: 30px;
    transform: scale(.9);
    transform-origin: bottom right;
}
.services-hero {
    min-height: 830px;
    padding: 132px 0 78px;
}
.services-hero-grid {
    grid-template-columns: minmax(0, 1.04fr) 500px;
    gap: 3.6rem;
}
.services-hero-copy h1 {
    font-size: clamp(2.8rem, 5vw, 4.45rem);
    max-width: 820px;
}
.services-hero-copy p {
    max-width: 640px;
}
.services-hero-visual {
    min-height: 470px;
}
@media (max-width: 1180px) {
    .services-hero-grid {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 768px) {
    .services-body .floating-contact {
        transform: none;
        bottom: 18px;
    }
    .services-hero {
        min-height: auto;
        padding-top: 122px;
    }
}

/* Services Page QA refinements - prevent hero background from ending before CTAs */
.services-hero {
    align-items: flex-start;
    min-height: 980px;
    padding-bottom: 150px;
}
@media (max-width: 768px) {
    .services-hero {
        min-height: auto;
        padding-bottom: 80px;
    }
}

/* Convenios and Contact Page Styles - 2026 */
.alliance-page,
.contact-page {
    background: var(--white);
}

.alliance-page-body .floating-contact,
.contact-page-body .floating-contact {
    display: none;
}

.alliance-hero,
.contact-hero {
    position: relative;
    min-height: 780px;
    display: flex;
    align-items: center;
    padding: 150px 0 94px;
    color: var(--white);
    overflow: hidden;
    isolation: isolate;
}

.alliance-hero-bg,
.contact-hero-bg {
    position: absolute;
    inset: 0;
    z-index: -3;
    background:
        radial-gradient(circle at 78% 22%, rgba(227, 6, 19, .38), transparent 30%),
        radial-gradient(circle at 22% 70%, rgba(107, 78, 145, .38), transparent 36%),
        linear-gradient(135deg, #070311 0%, var(--secondary-dark) 43%, var(--secondary) 76%, #120319 100%);
}

.alliance-hero-bg::before,
.contact-hero-bg::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .22;
    background-image:
        linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
    background-size: 74px 74px;
    mask-image: linear-gradient(90deg, transparent, #000 16%, #000 86%, transparent);
}

.alliance-hero-bg::after,
.contact-hero-bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(7,3,17,.96) 0%, rgba(20,8,40,.91) 46%, rgba(20,8,40,.58) 74%, rgba(7,3,17,.86) 100%);
}

.alliance-hero-pulse {
    position: absolute;
    left: -8%;
    right: -8%;
    bottom: 18%;
    height: 120px;
    z-index: -1;
    opacity: .6;
    background:
        radial-gradient(circle at 18% 51%, rgba(227,6,19,.9) 0 4px, transparent 5px),
        radial-gradient(circle at 55% 50%, rgba(227,6,19,.8) 0 4px, transparent 5px),
        radial-gradient(circle at 82% 49%, rgba(227,6,19,.7) 0 4px, transparent 5px),
        linear-gradient(90deg, transparent 0 8%, rgba(227,6,19,.38) 14% 16%, transparent 18% 30%, rgba(227,6,19,.72) 34% 35%, transparent 36% 55%, rgba(227,6,19,.55) 59% 61%, transparent 63% 100%);
    filter: drop-shadow(0 0 18px rgba(227,6,19,.55));
    transform: skewY(-4deg);
}

.alliance-hero-grid,
.contact-hero-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 500px;
    align-items: center;
    gap: 4rem;
}

.contact-hero-grid {
    grid-template-columns: minmax(0, .92fr) 540px;
    align-items: start;
}

.alliance-hero-copy h1,
.contact-hero-copy h1 {
    color: var(--white);
    font-size: clamp(2.8rem, 5.8vw, 5rem);
    line-height: 1.02;
    letter-spacing: -1.8px;
    margin: 1rem 0 1.4rem;
    max-width: 850px;
}

.alliance-hero-copy p,
.contact-hero-copy p {
    max-width: 690px;
    color: rgba(255,255,255,.88);
    font-size: clamp(1.05rem, 2vw, 1.24rem);
    line-height: 1.75;
    margin-bottom: 2rem;
}

.contact-hero-copy p strong {
    color: var(--white);
}

.alliance-hero-metrics,
.contact-direct-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 2.5rem;
    max-width: 790px;
}

.alliance-hero-metrics div,
.contact-direct-card {
    padding: 1.05rem;
    border-radius: 22px;
    background: rgba(255,255,255,.09);
    border: 1px solid rgba(255,255,255,.15);
    backdrop-filter: blur(12px);
}

.alliance-hero-metrics strong {
    display: block;
    color: var(--white);
    font-size: 1.1rem;
    line-height: 1.1;
}

.alliance-hero-metrics span {
    color: rgba(255,255,255,.74);
    font-size: .86rem;
    font-weight: 750;
}

.alliance-hero-panel {
    position: relative;
    padding: 2rem;
    border-radius: 34px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.24);
    backdrop-filter: blur(20px);
    box-shadow: 0 35px 90px rgba(0,0,0,.34);
    overflow: hidden;
}

.alliance-hero-panel::after {
    content: "";
    position: absolute;
    width: 260px;
    height: 260px;
    right: -120px;
    bottom: -120px;
    border-radius: 50%;
    background: rgba(227,6,19,.2);
}

.alliance-panel-head {
    position: relative;
    z-index: 1;
    margin-bottom: 1.5rem;
}

.alliance-panel-head span,
.alliance-panel-head strong {
    display: block;
    color: var(--white);
    font-family: 'Poppins', sans-serif;
    line-height: 1.04;
}

.alliance-panel-head span {
    font-size: 1.8rem;
    font-weight: 800;
}

.alliance-panel-head strong {
    color: #ff3947;
    font-size: 2.55rem;
    font-weight: 900;
}

.trust-mini-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.trust-mini-logo,
.trust-logo-card {
    display: grid;
    place-items: center;
    min-height: 126px;
    padding: 1.2rem;
    border-radius: 22px;
    background: rgba(255,255,255,.94);
    border: 1px solid rgba(255,255,255,.6);
}

.trust-mini-logo img,
.trust-logo-card img {
    max-height: 76px;
    width: auto;
    object-fit: contain;
    filter: grayscale(1);
    opacity: .72;
    transition: .35s ease;
}

.trust-mini-logo:hover img,
.trust-logo-card:hover img {
    filter: grayscale(0);
    opacity: 1;
    transform: scale(1.04);
}

.alliance-panel-footer {
    position: relative;
    z-index: 1;
    display: flex;
    gap: .8rem;
    align-items: center;
    margin-top: 1.5rem;
    padding: 1rem;
    border-radius: 18px;
    color: rgba(255,255,255,.84);
    background: rgba(255,255,255,.08);
}

.alliance-panel-footer svg {
    color: #fff;
    flex: 0 0 auto;
}

.alliance-panel-footer p {
    margin: 0;
    font-size: .92rem;
    line-height: 1.45;
}

.alliance-benefits-section,
.trust-section,
.alliance-modalities-section,
.contact-info-section {
    padding: 108px 0;
}

.alliance-benefits-section,
.contact-info-section {
    background: var(--white);
}

.trust-section {
    background: linear-gradient(180deg, var(--gray-50), #fff);
}

.benefit-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.2rem;
}

.benefit-card {
    min-height: 300px;
    padding: 2rem;
    border-radius: 30px;
    background: linear-gradient(180deg, #fff, #fbfbfd);
    border: 1px solid var(--gray-100);
    box-shadow: 0 22px 58px rgba(17, 8, 30, .07);
    transition: transform .35s ease, box-shadow .35s ease;
}

.benefit-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 30px 75px rgba(17, 8, 30, .12);
}

.benefit-icon {
    width: 68px;
    height: 68px;
    display: grid;
    place-items: center;
    border-radius: 22px;
    margin-bottom: 1.4rem;
}

.benefit-icon svg {
    width: 32px;
    height: 32px;
}

.benefit-icon.red { color: var(--primary); background: rgba(227,6,19,.09); }
.benefit-icon.purple { color: var(--accent); background: rgba(107,78,145,.12); }

.benefit-card h3 {
    font-size: 1.2rem;
    margin-bottom: .8rem;
}

.benefit-card p {
    color: var(--gray-600);
    font-size: .96rem;
    line-height: 1.68;
}

.trust-logo-cloud {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.3rem;
}

.trust-logo-card {
    min-height: 190px;
    background: #fff;
    box-shadow: 0 20px 60px rgba(17, 8, 30, .06);
}

.trust-logo-card span {
    display: block;
    margin-top: 1rem;
    color: var(--gray-600);
    font-weight: 800;
    text-align: center;
    font-size: .92rem;
}

.modality-grid {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(420px, .8fr);
    gap: 4rem;
    align-items: center;
}

.modality-copy h2 {
    font-size: clamp(2.2rem, 4.5vw, 3.5rem);
    margin-bottom: 1.2rem;
}

.modality-copy p {
    color: var(--gray-600);
    font-size: 1.08rem;
    line-height: 1.75;
    margin-bottom: 1.6rem;
}

.modality-cards {
    display: grid;
    gap: 1rem;
}

.modality-cards article {
    display: grid;
    grid-template-columns: 58px 1fr;
    gap: .35rem 1rem;
    padding: 1.4rem;
    border-radius: 24px;
    background: #fff;
    border: 1px solid var(--gray-100);
    box-shadow: 0 18px 52px rgba(17,8,30,.07);
}

.modality-cards span {
    grid-row: span 2;
    width: 56px;
    height: 56px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    color: var(--white);
    background: linear-gradient(135deg, var(--primary), #ff3947);
    font-weight: 900;
}

.modality-cards strong {
    font-family: 'Poppins', sans-serif;
    color: var(--secondary-dark);
    font-size: 1.08rem;
}

.modality-cards p {
    margin: 0;
    color: var(--gray-600);
    font-size: .94rem;
}

.contact-direct-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 620px;
}

.contact-direct-card {
    display: grid;
    grid-template-columns: 56px 1fr;
    gap: .25rem .9rem;
    color: var(--white);
}

.contact-direct-card:hover {
    color: var(--white);
    transform: translateY(-4px);
    background: rgba(255,255,255,.13);
}

.contact-direct-card svg {
    grid-row: span 2;
    width: 56px;
    height: 56px;
    padding: 14px;
    border-radius: 18px;
    background: rgba(227,6,19,.75);
}

.contact-direct-card.whatsapp svg {
    background: rgba(37,211,102,.82);
}

.contact-direct-card span {
    color: rgba(255,255,255,.72);
    font-size: .8rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .8px;
}

.contact-direct-card strong {
    color: #fff;
    font-size: 1rem;
}

.contact-form-card {
    padding: 2rem;
    border-radius: 34px;
    background: rgba(255,255,255,.97);
    color: var(--gray-800);
    border: 1px solid rgba(255,255,255,.72);
    box-shadow: 0 35px 95px rgba(0,0,0,.34);
}

.form-card-head span {
    display: block;
    color: var(--primary);
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    font-size: .78rem;
    margin-bottom: .35rem;
}

.form-card-head h2 {
    font-size: 1.9rem;
    margin-bottom: .35rem;
}

.form-card-head p {
    color: var(--gray-600);
    margin-bottom: 1.2rem;
}

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

.contact-field {
    display: grid;
    gap: .45rem;
    margin-bottom: 1rem;
}

.contact-field label {
    color: var(--gray-800);
    font-weight: 800;
    font-size: .86rem;
}

.contact-field input,
.contact-field select,
.contact-field textarea {
    width: 100%;
    border: 1px solid var(--gray-200);
    border-radius: 16px;
    padding: .95rem 1rem;
    color: var(--gray-900);
    background: #fff;
    font: inherit;
    font-size: .96rem;
    outline: none;
    transition: border-color .25s ease, box-shadow .25s ease;
}

.contact-field textarea {
    resize: vertical;
    min-height: 128px;
}

.contact-field input:focus,
.contact-field select:focus,
.contact-field textarea:focus {
    border-color: rgba(227,6,19,.65);
    box-shadow: 0 0 0 4px rgba(227,6,19,.1);
}

.form-note {
    color: var(--gray-600);
    text-align: center;
    font-size: .86rem;
    margin-top: .9rem;
}

.form-hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.form-status {
    display: none;
    align-items: flex-start;
    gap: .65rem;
    padding: .9rem 1rem;
    border-radius: 16px;
    margin-bottom: 1rem;
    font-size: .93rem;
    font-weight: 750;
}

.form-status svg {
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
}

.form-status-success {
    color: #166534;
    background: #dcfce7;
}

.form-status-error {
    color: #991b1b;
    background: #fee2e2;
}

.contact-success .form-status-success,
.contact-error .form-status-error {
    display: flex;
}

.contact-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 430px;
    gap: 3rem;
    align-items: stretch;
}

.contact-info-list h2 {
    font-size: clamp(2.2rem, 4.5vw, 3.45rem);
    margin-bottom: 2rem;
}

.contact-info-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.contact-info-card {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    min-height: 150px;
    padding: 1.4rem;
    border-radius: 26px;
    background: #fff;
    border: 1px solid var(--gray-100);
    box-shadow: 0 20px 60px rgba(17, 8, 30, .06);
}

.contact-info-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 26px 72px rgba(17,8,30,.11);
}

.contact-info-card svg,
.map-pin-icon {
    width: 54px;
    height: 54px;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    padding: 14px;
    border-radius: 18px;
    color: var(--primary);
    background: rgba(227,6,19,.09);
}

.contact-info-card span,
.contact-map-card span {
    display: block;
    color: var(--gray-600);
    font-size: .8rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .9px;
    margin-bottom: .3rem;
}

.contact-info-card strong {
    color: var(--secondary-dark);
    line-height: 1.3;
    word-break: break-word;
}

.contact-map-card {
    padding: 2rem;
    border-radius: 30px;
    color: var(--white);
    background:
        radial-gradient(circle at 90% 12%, rgba(227,6,19,.42), transparent 34%),
        linear-gradient(135deg, var(--secondary-dark), var(--secondary));
    box-shadow: 0 28px 85px rgba(17,8,30,.18);
}

.contact-map-card .map-pin-icon {
    color: #fff;
    background: rgba(255,255,255,.13);
    margin-bottom: 1.3rem;
}

.contact-map-card span,
.contact-map-card h3,
.contact-map-card p {
    color: var(--white);
}

.contact-map-card h3 {
    font-size: 2rem;
    margin-bottom: .8rem;
}

.contact-map-card p {
    color: rgba(255,255,255,.78);
    margin-bottom: 1.4rem;
}

@media (max-width: 1180px) {
    .alliance-hero-grid,
    .contact-hero-grid,
    .modality-grid,
    .contact-shell {
        grid-template-columns: 1fr;
    }
    .alliance-hero-panel,
    .contact-form-card,
    .contact-map-card {
        max-width: 650px;
    }
}

@media (max-width: 920px) {
    .benefit-grid,
    .trust-logo-cloud,
    .contact-info-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .alliance-hero,
    .contact-hero {
        min-height: auto;
        padding: 122px 0 72px;
    }
    .alliance-hero-copy h1,
    .contact-hero-copy h1 {
        max-width: 100%;
        font-size: clamp(2rem, 9vw, 2.25rem);
        line-height: 1.08;
        letter-spacing: -1px;
        overflow-wrap: break-word;
    }
    .alliance-hero-copy,
    .contact-hero-copy,
    .alliance-hero-panel,
    .contact-form-card,
    .modality-copy,
    .modality-cards,
    .contact-info-list,
    .contact-map-card {
        width: 100%;
        min-width: 0;
    }
    .alliance-hero-copy p,
    .contact-hero-copy p {
        max-width: 100%;
        font-size: .98rem;
        overflow-wrap: break-word;
    }
    .alliance-hero-metrics,
    .contact-direct-grid,
    .benefit-grid,
    .trust-logo-cloud,
    .contact-info-grid,
    .input-row {
        grid-template-columns: 1fr;
    }
    .alliance-panel-head span { font-size: 1.35rem; }
    .alliance-panel-head strong { font-size: 2rem; }
    .trust-mini-grid { gap: .75rem; }
    .trust-mini-logo { min-height: 104px; padding: .9rem; }
    .alliance-benefits-section,
    .trust-section,
    .alliance-modalities-section,
    .contact-info-section {
        padding: 76px 0;
    }
    .modality-cards article {
        grid-template-columns: 1fr;
    }
    .contact-form-card {
        padding: 1.35rem;
        border-radius: 26px;
    }
}

@media (max-width: 520px) {
    .trust-mini-grid {
        grid-template-columns: 1fr 1fr;
    }
    .program-hero-actions .btn,
    .contact-direct-card,
    .contact-info-card {
        width: 100%;
    }
}

/* Services Page mobile overflow fixes */
@media (max-width: 768px) {
    .services-hero-grid,
    .services-hero-copy,
    .services-hero-visual {
        width: 100%;
        min-width: 0;
    }
    .services-hero-copy h1 {
        font-size: clamp(2.05rem, 10vw, 2.35rem);
        line-height: 1.08;
        max-width: 100%;
        overflow-wrap: normal;
    }
    .services-hero-copy p {
        max-width: 100%;
        overflow-wrap: break-word;
    }
    .services-hero-copy .program-hero-actions {
        width: 100%;
        max-width: 100%;
    }
    .services-hero-copy .program-hero-actions .btn {
        width: 100%;
        max-width: 100%;
        padding-inline: 1.1rem;
    }
    .hero-photo-card {
        left: 0;
        right: 0;
        width: 100%;
    }
    .impact-glass-card {
        left: 15px;
        right: 15px;
        width: auto;
    }
}
@media (max-width: 420px) {
    .services-hero-copy h1 {
        font-size: 2.05rem;
    }
    .services-hero-copy p {
        font-size: .96rem;
    }
}

/* Services Page mobile container correction */
@media (max-width: 768px) {
    .services-hero-grid {
        width: 90%;
        margin-inline: auto;
    }
    .services-hero-copy,
    .services-hero-visual {
        width: 100%;
    }
}


/* Program Mobile Logo Contrast Fix - 2026 */
.mobile-menu .logo-img {
    filter: none !important;
}

/* Services Page narrow-phone readability */
@media (max-width: 420px) {
    .services-hero-copy h1 {
        font-size: 1.85rem;
        line-height: 1.1;
    }
}


/* Global Navbar Visibility Fix - 2026 */
.navbar {
    background: rgba(8, 2, 22, .84);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    border-bottom: 1px solid rgba(255, 255, 255, .10);
    box-shadow: 0 16px 45px rgba(8, 2, 22, .18);
}
.navbar.scrolled {
    background-color: rgba(255, 255, 255, .98);
    border-bottom: 1px solid rgba(0, 0, 0, .06);
    box-shadow: 0 14px 38px rgba(17, 24, 39, .08);
}
.navbar:not(.scrolled) .nav-links a {
    color: rgba(255, 255, 255, .90);
    text-shadow: 0 1px 12px rgba(0, 0, 0, .22);
}
.navbar:not(.scrolled) .nav-links a:hover,
.navbar:not(.scrolled) .nav-links a.active {
    color: #ff2a38 !important;
}
.navbar .nav-actions .btn-outline {
    background: var(--primary);
    border-color: var(--primary);
    color: var(--white);
    box-shadow: 0 16px 36px rgba(227, 6, 19, .24);
}
.navbar .nav-actions .btn-outline:hover,
.navbar .nav-actions .btn-outline:focus-visible {
    background: #b90510;
    border-color: #b90510;
    color: var(--white);
    transform: translateY(-2px);
    box-shadow: 0 18px 44px rgba(227, 6, 19, .34);
}
@media (max-width: 768px) {
    .navbar {
        padding: 1rem 0;
        background: rgba(8, 2, 22, .90);
    }
}


/* Hero Text Legibility Fix - 2026 */
.internal-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
        linear-gradient(90deg, rgba(4, 2, 12, .74) 0%, rgba(4, 2, 12, .62) 48%, rgba(4, 2, 12, .52) 100%),
        radial-gradient(circle at 24% 46%, rgba(0, 0, 0, .48), transparent 38%);
}
.internal-hero-overlay {
    background:
        linear-gradient(135deg, rgba(6, 2, 16, .88) 0%, rgba(25, 10, 43, .76) 52%, rgba(0, 0, 0, .66) 100%);
}
.internal-hero-content {
    position: relative;
    z-index: 3;
    color: var(--white) !important;
}
.internal-hero .breadcrumbs,
.internal-hero .breadcrumbs a,
.internal-hero .breadcrumbs span {
    color: rgba(255, 255, 255, .96) !important;
    text-shadow: 0 2px 14px rgba(0, 0, 0, .78);
}
.internal-hero .text-primary {
    color: #ff3947 !important;
}
.internal-hero h1 {
    color: var(--white) !important;
    text-shadow:
        0 6px 30px rgba(0, 0, 0, .92),
        0 2px 3px rgba(0, 0, 0, .84);
}
.internal-hero h1 .text-gradient {
    background: none;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: #ff3142;
    color: #ff3142 !important;
    -webkit-text-stroke: .65px rgba(255, 255, 255, .34);
    filter:
        drop-shadow(0 8px 24px rgba(0, 0, 0, .92))
        drop-shadow(0 1px 2px rgba(255, 255, 255, .20));
}
.internal-hero p {
    color: rgba(255, 255, 255, .97) !important;
    text-shadow:
        0 4px 20px rgba(0, 0, 0, .86),
        0 1px 2px rgba(0, 0, 0, .75) !important;
}
.hero h1,
.program-hero-copy h1,
.directory-hero h1,
.services-hero-copy h1,
.alliance-hero-copy h1,
.contact-hero-copy h1 {
    text-shadow:
        0 8px 34px rgba(0, 0, 0, .74),
        0 2px 3px rgba(0, 0, 0, .50);
}
@media (max-width: 768px) {
    .hero h1 .text-gradient {
        background: none;
        -webkit-background-clip: text;
        background-clip: text;
        -webkit-text-fill-color: #ff3142;
        color: #ff3142 !important;
        -webkit-text-stroke: .55px rgba(255, 255, 255, .28);
        filter:
            drop-shadow(0 8px 24px rgba(0, 0, 0, .92))
            drop-shadow(0 1px 2px rgba(255, 255, 255, .18));
    }
}
@media (max-width: 768px) {
    .internal-hero::after {
        background: linear-gradient(180deg, rgba(4, 2, 12, .86), rgba(4, 2, 12, .68));
    }
}


/* Mobile Active Nav Link Fix - 2026 */
.mobile-nav a.active {
    color: var(--primary);
}


/* Mobile Menu Icon Fallback - 2026 */
.menu-toggle,
.close-menu {
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
}
@media (max-width: 768px) {
    .menu-toggle {
        display: inline-flex;
    }
}
.menu-toggle svg,
.close-menu svg {
    width: 26px;
    height: 26px;
}
.menu-toggle i:empty::before {
    content: "☰";
    font-size: 30px;
    line-height: 1;
    font-weight: 800;
    color: currentColor;
}
.close-menu i:empty::before {
    content: "×";
    font-size: 34px;
    line-height: 1;
    font-weight: 700;
    color: currentColor;
}


/* Internal Hero Mobile Readability Fix - 2026 */
@media (max-width: 768px) {
    .internal-hero {
        height: auto;
        min-height: 500px;
        padding: 130px 0 70px;
    }
    .internal-hero-content {
        width: 90%;
        max-width: 100%;
    }
    .internal-hero h1 {
        font-size: clamp(2.15rem, 10vw, 2.85rem);
        line-height: 1.08;
        letter-spacing: -1px;
        overflow-wrap: break-word;
    }
    .internal-hero p {
        max-width: 100%;
        font-size: 1rem;
    }
    .internal-hero .breadcrumbs {
        font-size: .95rem;
    }
}

/* Hero principal - mejora de legibilidad del titular (29/04/2026) */
.hero-overlay {
    background:
        linear-gradient(135deg, rgba(17, 8, 30, 0.92) 0%, rgba(46, 26, 71, 0.72) 48%, rgba(227, 6, 19, 0.46) 100%),
        radial-gradient(circle at center, rgba(17, 8, 30, 0.12) 0%, rgba(0, 0, 0, 0.58) 100%);
}

.hero-content::before {
    content: '';
    position: absolute;
    inset: -2.5rem -3.25rem;
    z-index: -1;
    pointer-events: none;
    border-radius: 42px;
    background: radial-gradient(ellipse at center, rgba(17, 8, 30, 0.58) 0%, rgba(17, 8, 30, 0.34) 48%, rgba(17, 8, 30, 0) 78%);
    filter: blur(2px);
}

.hero h1 {
    text-shadow: 0 5px 0 rgba(17, 8, 30, 0.32), 0 14px 36px rgba(0, 0, 0, 0.82);
}

.hero h1 .text-gradient {
    position: relative;
    display: inline-block;
    background: none;
    color: #ffffff;
    -webkit-text-fill-color: #ffffff;
    -webkit-background-clip: initial;
    background-clip: initial;
    filter: none;
    text-shadow: 0 5px 0 rgba(227, 6, 19, 0.62), 0 14px 36px rgba(0, 0, 0, 0.9);
}

.hero h1 .text-gradient::after {
    content: '';
    position: absolute;
    left: 0.03em;
    right: 0.03em;
    bottom: 0.04em;
    height: 0.14em;
    z-index: -1;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(227, 6, 19, 0.95), rgba(168, 85, 247, 0.88));
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.38);
}

@media (max-width: 768px) {
    .hero-content::before {
        inset: -1.5rem -1rem;
        border-radius: 28px;
    }

    .hero h1 {
        text-shadow: 0 3px 0 rgba(17, 8, 30, 0.36), 0 10px 28px rgba(0, 0, 0, 0.86);
    }

    .hero h1 .text-gradient {
        text-shadow: 0 3px 0 rgba(227, 6, 19, 0.66), 0 10px 28px rgba(0, 0, 0, 0.9);
    }
}

/* Hero principal - ajuste de posicion bajo navbar fijo (29/04/2026) */
.hero {
    box-sizing: border-box;
    height: auto;
    min-height: 100vh;
    min-height: 100svh;
    padding: clamp(7.4rem, 13vh, 9rem) 1rem clamp(4rem, 8vh, 5.5rem);
}

.hero-content {
    width: min(1100px, 92vw);
}

@media (max-height: 760px) and (min-width: 769px) {
    .hero h1 {
        font-size: clamp(3rem, 7.8vw, 5.4rem);
        margin-bottom: 2rem;
        line-height: 1.04;
    }

    .hero p {
        margin-bottom: 2.6rem;
    }

    .hero .btn {
        padding: 1.15rem 3rem;
    }
}

@media (max-width: 768px) {
    .hero {
        padding: 7rem 1rem 4.5rem;
        min-height: 100svh;
    }

    .hero h1 {
        font-size: clamp(2.35rem, 11vw, 2.95rem);
        line-height: 1.08;
        margin-bottom: 1.8rem;
        letter-spacing: -1px;
    }

    .hero p {
        margin-bottom: 2.4rem;
    }
}

/* Mobile CTA Consulta Diploma - 30/04/2026 */
.mobile-nav .mobile-diploma-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin-top: .5rem;
    padding: 1rem 1.25rem;
    border-radius: 18px;
    background: linear-gradient(135deg, var(--primary), #ff2535);
    color: var(--white) !important;
    box-shadow: 0 18px 42px rgba(227, 6, 19, .26);
    text-align: center;
    font-size: 1.1rem;
    letter-spacing: .2px;
}
.mobile-nav .mobile-diploma-link:hover,
.mobile-nav .mobile-diploma-link:focus-visible,
.mobile-nav .mobile-diploma-link.active {
    background: linear-gradient(135deg, #b90510, var(--primary));
    color: var(--white) !important;
}

/* Mobile UI/UX Deep Audit Fix - 04/05/2026
   Objetivo: eliminar fricción táctil, overflow decorativo y formularios comprimidos en teléfonos. */
@media (hover: none) and (pointer: coarse) {
    a,
    button,
    .btn,
    input,
    select,
    textarea {
        -webkit-tap-highlight-color: rgba(227, 6, 19, .16);
        touch-action: manipulation;
    }
}

@media (max-width: 768px) {
    html {
        scroll-padding-top: 92px;
    }

    .container {
        width: min(90%, 420px);
    }

    .container-nav .logo,
    .menu-toggle,
    .close-menu {
        min-width: 44px;
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .container-nav .logo {
        justify-content: flex-start;
    }

    .slide-in-left,
    .slide-in-right {
        transform: translateY(28px);
    }

    .mobile-menu {
        height: 100vh;
        height: 100dvh;
        overflow-y: auto;
        overscroll-behavior: contain;
        padding: max(1.05rem, env(safe-area-inset-top)) 1.35rem max(1rem, env(safe-area-inset-bottom));
        gap: .75rem;
        background:
            radial-gradient(circle at 88% 14%, rgba(227, 6, 19, .055), transparent 34%),
            #fff;
    }

    .mobile-menu-header {
        position: sticky;
        top: 0;
        z-index: 3;
        margin-bottom: .65rem;
        padding-bottom: .75rem;
        background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.92));
        backdrop-filter: blur(14px);
        -webkit-backdrop-filter: blur(14px);
    }

    .mobile-nav {
        gap: .35rem;
        margin-bottom: 1rem;
    }

    .mobile-nav > a,
    .mobile-program-links a {
        min-height: 48px;
        display: flex;
        align-items: center;
        border-radius: 16px;
        padding: .45rem .2rem;
    }

    .mobile-nav > a:not(.mobile-diploma-link):hover,
    .mobile-nav > a:not(.mobile-diploma-link):focus-visible,
    .mobile-program-links a:hover,
    .mobile-program-links a:focus-visible {
        background: rgba(227, 6, 19, .055);
        color: var(--primary);
        padding-left: .75rem;
    }

    .mobile-program-links {
        gap: .2rem;
        padding: .45rem 0 .45rem .9rem;
        margin: .15rem 0 .35rem;
    }

    .mobile-program-links a {
        font-size: .98rem;
        line-height: 1.25;
        min-height: 44px;
    }

    .mobile-menu-footer {
        position: sticky;
        bottom: 0;
        z-index: 2;
        margin-top: auto;
        padding-top: .75rem;
        padding-bottom: max(.35rem, env(safe-area-inset-bottom));
        background: linear-gradient(180deg, rgba(255,255,255,0), rgba(255,255,255,.96) 22%, #fff 100%);
    }

    .mobile-menu-footer .btn,
    .mobile-nav .mobile-diploma-link {
        min-height: 54px;
    }

    .hero-video {
        animation: none;
        transform: none !important;
    }

    .services-hero,
    .alliance-hero,
    .contact-hero,
    .internal-hero,
    .hero {
        overflow-x: clip;
    }

    .services-hero-pulse,
    .alliance-hero-pulse {
        left: 0;
        right: 0;
        width: 100%;
        transform: none;
        opacity: .38;
        filter: none;
    }

    .hero-orbit-purple {
        left: 10px;
        width: min(280px, 74vw);
        height: min(280px, 74vw);
    }

    .hero-orbit-red {
        right: 10px;
        width: min(210px, 58vw);
        height: min(210px, 58vw);
    }

    .query-box {
        padding: 2rem 1.2rem;
        border-radius: 26px;
        gap: 1.5rem;
    }

    .query-form {
        width: 100%;
        max-width: 100%;
        flex-direction: column;
        gap: .9rem;
    }

    .query-form .input-group {
        width: 100%;
        flex: 0 0 auto;
    }

    .query-form .input-group input {
        min-height: 54px;
        font-size: 16px;
        text-align: left;
    }

    .query-form .btn {
        width: 100%;
        min-height: 54px;
    }

    .contact-field input,
    .contact-field select,
    .contact-field textarea,
    .newsletter-form input,
    .input-group-premium input {
        min-height: 52px;
        font-size: 16px;
    }

    .contact-field textarea {
        min-height: 138px;
    }

    .contact-form-card .btn-full,
    .contact-direct-card,
    .contact-info-card,
    .contact-map-card .btn {
        min-height: 54px;
    }

    .social-links {
        gap: .75rem;
        flex-wrap: wrap;
    }

    .social-links a {
        width: 44px;
        height: 44px;
        min-width: 44px;
        min-height: 44px;
    }

    .footer-links li {
        margin-bottom: .35rem;
    }

    .footer-links a,
    .footer-info li,
    .footer-author-credit {
        min-height: 44px;
        min-width: 44px;
        display: inline-flex;
        align-items: center;
    }

    .footer-links a {
        padding-block: .35rem;
    }

    .breadcrumbs a,
    .breadcrumbs span {
        min-height: 44px;
        min-width: 44px;
        display: inline-flex;
        align-items: center;
    }

    .footer-author-credit {
        flex-wrap: wrap;
        gap: .45rem .55rem;
        line-height: 1.35;
    }
}

@media (max-width: 420px) {
    .hero-content::before {
        inset: -1.2rem 0;
    }

    .mobile-nav > a {
        font-size: clamp(1.18rem, 7vw, 1.38rem);
    }

    .contact-direct-card {
        grid-template-columns: 54px minmax(0, 1fr);
        padding: .95rem;
    }

    .contact-direct-card strong,
    .contact-info-card strong,
    .footer-info li {
        overflow-wrap: anywhere;
    }
}

.form-hp {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.form-hp input {
    width: 1px !important;
    height: 1px !important;
    min-height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

/* Desktop Internal UX Polish - 04/05/2026
   Objetivo: mejorar jerarquía, áreas clicables y evitar que los botones flotantes cubran contenido en PC. */
@media (min-width: 769px) {
    .nav-links > a,
    .nav-links .nav-trigger {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        padding: .45rem .1rem;
    }

    .breadcrumbs a,
    .breadcrumbs span {
        min-height: 36px;
        min-width: 36px;
        display: inline-flex;
        align-items: center;
    }

    .footer-links a,
    .service-link,
    .service-page-card a:not(.btn) {
        min-height: 40px;
        display: inline-flex;
        align-items: center;
    }

    .footer-links li {
        margin-bottom: .45rem;
    }

    .internal-hero .hero-video {
        animation: none;
        transform: none !important;
    }

    .services-hero-pulse,
    .alliance-hero-pulse {
        left: 0;
        right: 0;
        width: 100%;
    }

    .internal-hero-actions,
    .directory-hero-actions {
        display: flex;
        flex-wrap: wrap;
        gap: 1rem;
        margin-top: 2rem;
    }

    .directory-hero-actions {
        justify-content: center;
    }

    .internal-hero-actions .btn,
    .directory-hero-actions .btn {
        min-height: 56px;
        padding-inline: 1.8rem;
    }

    .floating-contact,
    .alliance-page-body .floating-contact,
    .contact-page-body .floating-contact {
        display: grid !important;
        left: auto;
        right: 24px;
        bottom: 28px;
        gap: 12px;
        z-index: 1800;
    }

    .services-body .floating-contact {
        transform: none;
        bottom: 28px;
    }

    .floating-contact-btn {
        width: 62px;
        min-width: 62px;
        height: 62px;
        min-height: 62px;
        padding: 6px;
        justify-content: center;
        gap: 0;
        border-radius: 999px;
        box-shadow: 0 18px 44px rgba(17, 8, 30, .24);
    }

    .floating-contact-btn:hover,
    .floating-contact-btn:focus-visible {
        transform: translateY(-3px) scale(1.04);
    }

    .floating-icon {
        width: 50px;
        height: 50px;
    }

    .floating-text {
        position: absolute;
        right: 74px;
        min-width: 176px;
        padding: 11px 13px;
        border-radius: 16px;
        background: rgba(17, 8, 30, .94);
        box-shadow: 0 18px 44px rgba(0,0,0,.24);
        opacity: 0;
        visibility: hidden;
        transform: translateX(10px) scale(.96);
        transition: opacity .25s ease, transform .25s ease, visibility .25s ease;
    }

    .floating-contact-btn:hover .floating-text,
    .floating-contact-btn:focus-visible .floating-text {
        opacity: 1;
        visibility: visible;
        transform: translateX(0) scale(1);
    }
}

/* Mobile Floating Contact Dock - WhatsApp + llamada visibles sin cubrir la navegación */
@media (max-width: 768px) {
    body {
        padding-bottom: calc(86px + env(safe-area-inset-bottom));
    }

    .floating-contact,
    .alliance-page-body .floating-contact,
    .contact-page-body .floating-contact {
        display: grid !important;
        left: auto;
        right: 14px;
        bottom: max(16px, env(safe-area-inset-bottom));
        z-index: 1800;
        gap: 10px;
    }

    .floating-contact-btn {
        width: 58px;
        min-width: 58px;
        height: 58px;
        min-height: 58px;
        padding: 5px;
        border-radius: 999px;
        justify-content: center;
        gap: 0;
        box-shadow: 0 16px 38px rgba(17, 8, 30, .28);
    }

    .floating-contact-btn:hover,
    .floating-contact-btn:focus-visible {
        transform: translateY(-3px) scale(1.04);
    }

    .floating-icon {
        width: 48px;
        height: 48px;
    }

    .floating-icon svg {
        width: 25px;
        height: 25px;
    }

    .floating-text {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        clip-path: inset(50%);
        white-space: nowrap;
        border: 0;
    }

    .mobile-menu.active ~ .floating-contact,
    body:has(.mobile-menu.active) .floating-contact {
        opacity: 0;
        pointer-events: none;
    }
}
