/*
================
VARIABLES GLOBALES UNIFICADAS Y LIMPIADAS
================
*/
:root {
/* Altura fija de la barra de navegación (navbar) - MANTENIDA ORIGINAL */
--navbar-height: 150px; /* Nueva altura para logo de 300px */

/* Colores principales (basados en tu logo) - EXACTOS ORIGINALES */
--color-primary: #1CA6DD; /* Azul principal */
--color-primary-hover: #1590C4; /* Azul hover */
--color-primary-active: #1279AB; /* Azul active */
--color-secondary: #8CD444; /* Verde principal */
--color-secondary-hover: #7AC43D; /* Verde hover */
--color-secondary-active: #68B236; /* Verde active */

/* Fondos y superficies - EXACTOS ORIGINALES */
--color-background: #F8FDFF; /* Fondo general */
--color-surface: #FFFFFF; /* Fondo de tarjetas, cajas */
--color-card-background: #FAFEFF; /* Fondo de tarjetas suave */

/* Texto - EXACTOS ORIGINALES */
--color-text: #1A4B5C; /* Texto principal */
--color-text-secondary: #2C6B7D; /* Texto secundario */
--color-text-muted: #5A8A9B; /* Texto delicado (muted) */

/* Acentos y detalles - ORIGINALES */
--color-accent: #4ECDC4; /* Turquesa para acentos */
--color-highlight: #FFE066; /* Amarillo para resaltar */

/* Gradientes - EXACTOS ORIGINALES */
--gradient-primary: linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);
--gradient-hero: linear-gradient(135deg, var(--color-primary) 0%, #1590C4 50%, #0D7A9A 100%);
--gradient-card: linear-gradient(135deg, #FAFEFF 0%, #F0F9FF 100%);

/* Bordes y sombras - ORIGINALES */
--color-border: rgba(28, 166, 221, 0.15);
--color-card-border: rgba(140, 212, 68, 0.12);
--color-focus-ring: rgba(28, 166, 221, 0.4);

/* Estados - ORIGINALES */
--color-success: var(--color-secondary);
--color-error: #E74C3C;
--color-warning: #F39C12;
--color-info: var(--color-primary);

/* Variables RGB - ORIGINALES */
--color-primary-rgb: 28, 166, 221;
--color-secondary-rgb: 140, 212, 68;
--color-text-rgb: 26, 75, 92;

/* Tipografía - EXACTA ORIGINAL */
--font-family-base: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
--font-family-heading: "Poppins", var(--font-family-base);
--font-size-xs: 0.75rem; /* 12px */
--font-size-sm: 0.875rem; /* 14px */
--font-size-base: 1rem; /* 16px */
--font-size-md: 1rem;
--font-size-lg: 1.125rem; /* 18px */
--font-size-xl: 1.25rem; /* 20px */
--font-size-2xl: 1.5rem; /* 24px */
--font-size-3xl: 1.875rem; /* 30px */
--font-size-4xl: 2.25rem; /* 36px */
--font-weight-normal: 400;
--font-weight-medium: 500;
--font-weight-semibold: 600;
--font-weight-bold: 700;
--line-height-tight: 1.2;
--line-height-normal: 1.6;
--letter-spacing-tight: -0.025em;

/* Espaciado - ORIGINAL */
--space-1: 0.25rem; /* 4px */
--space-2: 0.5rem; /* 8px */
--space-4: 1rem; /* 16px */
--space-6: 1.5rem; /* 24px */
--space-8: 2rem; /* 32px */
--space-10: 2.5rem; /* 40px */
--space-12: 3rem; /* 48px */
--space-16: 4rem; /* 64px */
--space-20: 5rem; /* 80px */
--space-24: 6rem; /* 96px */
--space-32: 8rem; /* 128px */

/* Radios - ORIGINAL */
--radius-sm: 0.375rem; /* 6px */
--radius-base: 0.5rem; /* 8px */
--radius-md: 0.75rem; /* 12px */
--radius-lg: 1rem; /* 16px */
--radius-xl: 1.5rem; /* 24px */
--radius-full: 9999px;

/* Sombras - ORIGINALES */
--shadow-xs: 0 1px 2px rgba(28, 166, 221, 0.05);
--shadow-sm: 0 1px 3px rgba(28, 166, 221, 0.1), 0 1px 2px rgba(28, 166, 221, 0.06);
--shadow-md: 0 4px 6px -1px rgba(28, 166, 221, 0.1), 0 2px 4px -1px rgba(28, 166, 221, 0.06);
--shadow-lg: 0 10px 15px -3px rgba(28, 166, 221, 0.1), 0 4px 6px -2px rgba(28, 166, 221, 0.05);
--shadow-xl: 0 20px 25px -5px rgba(28, 166, 221, 0.1), 0 10px 10px -5px rgba(28, 166, 221, 0.04);
--shadow-card: 0 4px 20px rgba(28, 166, 221, 0.08);
--shadow-hover: 0 8px 30px rgba(28, 166, 221, 0.12);

/* Animaciones - ORIGINALES */
--duration-fast: 0.15s;
--duration-normal: 0.3s;
--duration-slow: 0.5s;
--ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
--ease-in: cubic-bezier(0.4, 0, 1, 1);
--ease-out: cubic-bezier(0, 0, 0.2, 1);
--ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);

/* Contenedores - ORIGINALES */
--container-sm: 640px;
--container-md: 768px;
--container-lg: 1024px;
--container-xl: 1280px;
--container-2xl: 1536px;
}

/*
================
DARK MODE (MODO OSCURO) - CONSERVADO ORIGINAL
================
*/
@media (prefers-color-scheme: dark) {
:root {
--color-background: #0F1F27;
--color-surface: #1A2E37;
--color-card-background: #233A44;
--color-text: #1CA6DD;
--color-text-secondary: #B8D4DC;
--color-text-muted: #8BB4C2;
--color-border: rgba(28, 166, 221, 0.2);
--color-card-border: rgba(140, 212, 68, 0.15);
--gradient-card: linear-gradient(135deg, #1A2E37 0%, #233A44 100%);
--shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2);
--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.3), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.3), 0 4px 6px -2px rgba(0, 0, 0, 0.2);
--shadow-card: 0 4px 20px rgba(0, 0, 0, 0.4);
--shadow-hover: 0 8px 30px rgba(0, 0, 0, 0.5);
}
}

/*
================
RESET Y ESTILOS BASE - CONSERVADOS EXACTOS
================
*/
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}

html {
font-size: 16px;
scroll-behavior: smooth;
}

body {
font-family: var(--font-family-base);
line-height: var(--line-height-normal);
color: var(--color-text);
background-color: var(--color-background);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
padding-top: var(--navbar-height); /* ¡IMPORTANTE! Espacio para la navbar fija */
}

/*
================
TIPOGRAFÍA - CONSERVADA EXACTA
================
*/
h1, h2, h3, h4, h5, h6 {
font-family: var(--font-family-heading);
font-weight: var(--font-weight-bold);
line-height: var(--line-height-tight);
color: var(--color-text);
letter-spacing: var(--letter-spacing-tight);
margin-bottom: var(--space-4);
}

h1 { font-size: var(--font-size-4xl); }
h2 { font-size: var(--font-size-3xl); }
h3 { font-size: var(--font-size-2xl); }
h4 { font-size: var(--font-size-xl); }
h5 { font-size: var(--font-size-lg); }
h6 { font-size: var(--font-size-base); }

p {
margin-bottom: var(--space-4);
color: var(--color-text-secondary);
}

a {
color: var(--color-primary);
text-decoration: none;
transition: color var(--duration-fast) var(--ease-standard);
}

a:hover {
color: var(--color-primary-hover);
}

/*
================
BOTONES - CONSERVADOS EXACTOS
================
*/
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: var(--space-2);
padding: var(--space-4) var(--space-6);
border: none;
border-radius: var(--radius-base);
font-size: var(--font-size-base);
font-weight: var(--font-weight-medium);
line-height: 1.5;
text-decoration: none;
cursor: pointer;
transition: all var(--duration-normal) var(--ease-standard);
position: relative;
overflow: hidden;
}

.btn::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
transition: left var(--duration-slow) var(--ease-standard);
}

.btn:hover::before {
left: 100%;
}

.btn--primary {
background: var(--gradient-primary);
color: white;
box-shadow: var(--shadow-sm);
}

.btn--primary:hover {
background: linear-gradient(135deg, var(--color-primary-hover) 0%, var(--color-secondary-hover) 100%);
box-shadow: var(--shadow-md);
transform: translateY(-2px);
}

.btn--outline {
background: transparent;
color: var(--color-primary);
border: 2px solid var(--color-primary);
}

.btn--outline:hover {
background: var(--color-primary);
color: white;
transform: translateY(-2px);
box-shadow: var(--shadow-md);
}

.btn-hero {
padding: var(--space-4) var(--space-8);
font-size: var(--font-size-lg);
font-weight: var(--font-weight-semibold);
border-radius: var(--radius-lg);
min-width: 200px;
}

/*
================
ESTRUCTURA GENERAL - CONSERVADA EXACTA
================
*/
.container {
width: 100%;
max-width: var(--container-xl);
margin: 0 auto;
padding: 0 var(--space-4);
}

/*
================
NAVBAR - CONSERVADA EXACTA CON TODAS LAS ESPECIFICACIONES ORIGINALES
================
*/
.navbar {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 1000;
background: rgba(255, 255, 255, 0.95);
backdrop-filter: blur(10px);
border-bottom: 1px solid var(--color-border);
transition: all var(--duration-normal) var(--ease-standard);
height: var(--navbar-height); /* 150px exacto */
overflow: visible;
-webkit-overflow-scrolling: touch;
display: flex;
align-items: center;
}

.navbar.scrolled {
background: rgba(255, 255, 255, 0.98);
box-shadow: var(--shadow-lg);
}

.nav-content {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
padding: var(--space-4) 0;
min-height: var(--navbar-height);
}

.logo {
display: flex;
align-items: center;
justify-content: center;
gap: var(--space-2);
flex-shrink: 0;
height: 100%;
}

.logo img {
/* CONSERVANDO EXACTAMENTE LOS VALORES ORIGINALES */
max-height: 200px; /* VALOR ORIGINAL DEL CSS */
width: auto;
object-fit: contain;
flex-shrink: 0;
padding: 10px 30px 10px 10px;
background: transparent;
border-radius: 20px;
filter: drop-shadow(0 8px 32px rgba(28, 166, 221, 0.15));
transition: all var(--duration-normal) var(--ease-standard);
}

.logo:hover img {
transform: scale(1.02);
filter: drop-shadow(0 12px 40px rgba(28, 166, 221, 0.25));
}

.logo h2 {
color: var(--color-primary);
font-size: var(--font-size-2xl);
font-weight: var(--font-weight-bold);
margin: 0;
}

.nav-menu {
display: flex;
list-style: none;
margin: 0;
padding: 0;
gap: var(--space-8);
}

.nav-link {
color: var(--color-text);
font-weight: var(--font-weight-medium);
padding: var(--space-2) var(--space-4);
border-radius: var(--radius-base);
transition: all var(--duration-normal) var(--ease-standard);
position: relative;
}

.nav-link::after {
content: '';
position: absolute;
bottom: -5px;
left: 0;
width: 0;
height: 2px;
background: var(--gradient-primary);
transition: width var(--duration-normal) var(--ease-standard);
}

.nav-link:hover {
color: var(--color-primary);
background: rgba(28, 166, 221, 0.1);
}

.nav-link:hover::after {
width: 100%;
}

/*
================
MENÚ HAMBURGUESA - CONSERVADO EXACTO
================
*/
.hamburger {
display: none;
flex-direction: column;
cursor: pointer;
gap: 6px;
padding: 12px 8px;
position: relative;
z-index: 1002;
-webkit-tap-highlight-color: transparent;
touch-action: manipulation;
}

.hamburger span {
width: 32px;
height: 4px;
background: var(--color-text);
border-radius: 2px;
transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
transform-origin: center;
}

.hamburger.active span:nth-child(1) {
transform: rotate(45deg) translate(6px, 6px);
}

.hamburger.active span:nth-child(2) {
opacity: 0;
}

.hamburger.active span:nth-child(3) {
transform: rotate(-45deg) translate(8px, -8px);
}

/*
================
HERO SECTION - CONSERVADA EXACTA
================
*/
.hero {
min-height: calc(100vh - var(--navbar-height));
background: var(--gradient-hero);
display: flex;
align-items: center;
position: relative;
overflow: hidden;
}

.hero-decoration {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
opacity: 0.1;
}

.decoration-circle {
position: absolute;
border-radius: 50%;
background: linear-gradient(45deg, rgba(255, 255, 255, 0.1), rgba(140, 212, 68, 0.1));
animation: float 6s ease-in-out infinite;
}

.circle-1 {
width: 300px;
height: 300px;
top: 10%;
right: 10%;
animation-delay: 0s;
}

.circle-2 {
width: 200px;
height: 200px;
bottom: 20%;
left: 15%;
animation-delay: 2s;
}

.circle-3 {
width: 150px;
height: 150px;
top: 50%;
right: 25%;
animation-delay: 4s;
}

@keyframes float {
0%, 100% { transform: translateY(0px) rotate(0deg); }
50% { transform: translateY(-20px) rotate(180deg); }
}

.hero-content {
position: relative;
z-index: 10;
width: 100%;
padding: 0 var(--space-4);
}

.hero-text {
text-align: center;
color: white;
max-width: 800px;
margin: 0 auto;
padding: var(--space-8) 0;
}

.hero-title {
font-size: clamp(2.5rem, 5vw, 4rem);
font-weight: var(--font-weight-bold);
margin-bottom: var(--space-6);
line-height: 1.1;
}

.typing-text {
display: inline-block;
margin-right: var(--space-4);
}

.highlight {
color: var(--color-highlight);
position: relative;
}

.highlight::after {
content: '';
position: absolute;
bottom: -5px;
left: 0;
width: 100%;
height: 3px;
background: linear-gradient(90deg, var(--color-highlight), var(--color-secondary));
border-radius: 2px;
}

.hero-subtitle {
font-size: var(--font-size-xl);
margin-bottom: var(--space-8);
opacity: 0.9;
max-width: 600px;
margin-left: auto;
margin-right: auto;
line-height: 1.6;
}

.hero-buttons {
display: flex;
gap: var(--space-6);
justify-content: center;
flex-wrap: wrap;
}

/*
================
SECCIONES GENERALES - CONSERVADAS EXACTAS
================
*/
.section-header {
text-align: center;
margin-bottom: var(--space-8);
max-width: 600px;
margin-left: auto;
margin-right: auto;
}

.section-title {
font-size: var(--font-size-3xl);
font-weight: var(--font-weight-bold);
color: var(--color-text);
margin-bottom: var(--space-4);
}

.section-subtitle {
font-size: var(--font-size-lg);
color: var(--color-text-secondary);
margin-bottom: var(--space-6);
line-height: 1.6;
}

.section-divider {
width: 80px;
height: 4px;
background: var(--gradient-primary);
margin: 0 auto var(--space-4);
border-radius: 2px;
}

/*
================
SERVICIOS - CONSERVADOS EXACTOS INCLUYENDO SERVICE-SPECIAL COMPLETO
================
*/
.services {
padding: var(--space-16) 0;
background: var(--color-background);
}

.services-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: var(--space-8);
margin-top: var(--space-8);
}

.service-card {
background: var(--gradient-card);
border: 2px solid var(--color-card-border);
border-radius: var(--radius-xl);
padding: var(--space-8);
text-align: center;
position: relative;
overflow: hidden;
transition: all var(--duration-normal) var(--ease-standard);
box-shadow: var(--shadow-card);
}

.service-card:hover {
transform: translateY(-10px);
box-shadow: var(--shadow-hover);
}

.service-icon {
width: 80px;
height: 80px;
margin: 0 auto var(--space-6);
background: var(--gradient-primary);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
transition: all var(--duration-normal) var(--ease-standard);
}

.service-icon i {
font-size: 2rem;
color: white;
}

.service-card:hover .service-icon {
transform: scale(1.1);
background: linear-gradient(135deg, var(--color-secondary), var(--color-accent));
}

.service-content h3 {
font-size: var(--font-size-2xl);
font-weight: var(--font-weight-semibold);
margin-bottom: var(--space-4);
color: var(--color-text);
}

.service-content p {
color: var(--color-text-secondary);
line-height: 1.7;
}

.service-hover-effect {
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
transition: left var(--duration-slow) var(--ease-standard);
}

.service-card:hover .service-hover-effect {
left: 100%;
}

/*
================
SERVICIO ESPECIAL - CONSERVADO COMPLETO Y EXACTO
================
*/
.service-special {
grid-column: 1 / -1;
background: var(--gradient-card);
border: 2px solid var(--color-card-border);
border-radius: var(--radius-xl);
padding: var(--space-16);
box-shadow: var(--shadow-card);
transition: all var(--duration-normal) var(--ease-standard);
margin: var(--space-4) 0;
max-width: none;
width: 100%;
}

.service-special:hover {
box-shadow: var(--shadow-hover);
transform: translateY(-5px);
}

.service-special-content {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
gap: var(--space-16);
}

.service-special-text {
width: 100%;
max-width: 800px;
}

.service-special-icon {
width: 100px;
height: 100px;
background: var(--gradient-primary);
border-radius: var(--radius-full);
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto var(--space-6);
box-shadow: var(--shadow-lg);
}

.service-special-icon i {
font-size: var(--font-size-4xl);
color: white;
}

.service-special h3 {
font-size: var(--font-size-4xl);
color: var(--color-text);
font-weight: var(--font-weight-bold);
font-family: var(--font-family-heading);
margin: 0 0 var(--space-6) 0;
letter-spacing: var(--letter-spacing-tight);
line-height: var(--line-height-tight);
}

.intro-text {
font-size: var(--font-size-lg);
color: var(--color-text-secondary);
line-height: var(--line-height-normal);
font-family: var(--font-family-base);
margin: 0 0 var(--space-10) 0;
max-width: 700px;
margin-left: auto;
margin-right: auto;
}

.benefits-section h4 {
font-size: var(--font-size-2xl);
color: var(--color-primary);
font-weight: var(--font-weight-semibold);
font-family: var(--font-family-heading);
margin-bottom: var(--space-10);
}

.benefits-grid {
display: flex;
justify-content: center;
flex-wrap: nowrap;
gap: var(--space-8);
max-width: 900px;
margin: 0 auto;
}

.benefit-item {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
background: var(--color-surface);
border-radius: var(--radius-lg);
padding: var(--space-4) var(--space-3);
min-width: 120px;
max-width: 140px;
transition: all var(--duration-normal) var(--ease-standard);
border: 1px solid var(--color-border);
position: relative;
box-shadow: var(--shadow-sm);
flex: 1;
}

.benefit-item:hover {
background: var(--color-card-background);
transform: translateY(-5px);
box-shadow: var(--shadow-md);
border-color: var(--color-primary);
}

.benefit-icon {
width: 35px;
height: 35px;
background: var(--gradient-primary);
border-radius: var(--radius-full);
display: flex;
align-items: center;
justify-content: center;
margin-bottom: var(--space-3);
box-shadow: var(--shadow-md);
transition: all var(--duration-normal) var(--ease-standard);
}

.benefit-item:hover .benefit-icon {
transform: scale(1.1);
box-shadow: var(--shadow-lg);
}

.benefit-icon i {
font-size: var(--font-size-lg);
color: white;
}

.benefit-text h5 {
font-size: var(--font-size-sm);
color: var(--color-text);
font-weight: var(--font-weight-semibold);
font-family: var(--font-family-base);
margin: 0;
line-height: var(--line-height-tight);
}

/*
================
CARRUSEL - CONSERVADO COMPLETO Y EXACTO
================
*/
.service-carousel {
width: 100%;
max-width: 700px;
}

.carousel-container {
position: relative;
border-radius: var(--radius-xl);
overflow: hidden;
box-shadow: var(--shadow-xl);
background: var(--color-surface);
}

.carousel-track {
display: flex;
transition: transform 0.6s var(--ease-standard);
}

.carousel-slide {
min-width: 100%;
position: relative;
}

.carousel-slide img {
width: 100%;
height: 350px;
object-fit: cover;
display: block;
}

.slide-caption {
position: absolute;
bottom: 0;
left: 0;
right: 0;
background: linear-gradient(transparent, rgba(26, 75, 92, 0.9));
color: white;
padding: var(--space-10) var(--space-8) var(--space-6);
}

.slide-caption h4 {
font-size: var(--font-size-xl);
font-weight: var(--font-weight-bold);
font-family: var(--font-family-heading);
margin: 0 0 var(--space-2) 0;
color: white;
}

.slide-caption p {
font-size: var(--font-size-base);
font-family: var(--font-family-base);
opacity: 0.9;
margin: 0;
}

.carousel-btn {
position: absolute;
top: 50%;
transform: translateY(-50%);
background: rgba(255, 255, 255, 0.95);
border: none;
border-radius: var(--radius-full);
width: 50px;
height: 50px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
font-size: var(--font-size-lg);
color: var(--color-primary);
box-shadow: var(--shadow-lg);
transition: all var(--duration-normal) var(--ease-standard);
z-index: 10;
}

.carousel-btn:hover {
background: var(--color-primary);
color: white;
transform: translateY(-50%) scale(1.1);
box-shadow: var(--shadow-xl);
}

.carousel-btn-prev {
left: var(--space-6);
}

.carousel-btn-next {
right: var(--space-6);
}

.carousel-indicators {
display: flex;
justify-content: center;
gap: var(--space-3);
margin-top: var(--space-6);
}

.indicator {
width: 12px;
height: 12px;
border-radius: var(--radius-full);
border: none;
background: rgba(28, 166, 221, 0.3);
cursor: pointer;
transition: all var(--duration-normal) var(--ease-standard);
}

.indicator.active,
.indicator:hover {
background: var(--color-primary);
transform: scale(1.3);
}

/*
================
MODAL PARA IMÁGENES - CONSERVADO COMPLETO
================
*/
.image-modal {
display: none;
position: fixed;
z-index: 9999;
left: 0;
top: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.9);
backdrop-filter: blur(5px);
opacity: 0;
transition: all 0.3s ease;
}

.image-modal.show {
display: flex;
align-items: center;
justify-content: center;
opacity: 1;
}

.modal-content {
position: relative;
max-width: 90%;
max-height: 90%;
text-align: center;
animation: modalFadeIn 0.3s ease;
}

.modal-image {
width: auto;
height: auto;
max-width: 100%;
max-height: 80vh;
border-radius: var(--radius-lg);
box-shadow: 0 25px 60px rgba(0, 0, 0, 0.5);
}

.modal-caption {
color: white;
font-size: var(--font-size-lg);
font-weight: var(--font-weight-semibold);
margin-top: var(--space-4);
padding: var(--space-2) var(--space-4);
background: rgba(0, 0, 0, 0.7);
border-radius: var(--radius-md);
backdrop-filter: blur(10px);
}

.close-modal {
position: absolute;
top: -50px;
right: 0;
color: white;
font-size: 2.5rem;
font-weight: bold;
cursor: pointer;
transition: all 0.3s ease;
width: 40px;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
}

.close-modal:hover {
background: rgba(255, 255, 255, 0.2);
transform: scale(1.1);
}

.image-zoom-hint {
position: absolute;
top: var(--space-4);
right: var(--space-4);
background: rgba(0, 0, 0, 0.7);
color: white;
padding: var(--space-2);
border-radius: var(--radius-md);
font-size: var(--font-size-sm);
opacity: 0;
transition: all 0.3s ease;
backdrop-filter: blur(10px);
pointer-events: none;
}

.carousel-slide:hover .image-zoom-hint {
opacity: 1;
}

@keyframes modalFadeIn {
from {
opacity: 0;
transform: scale(0.8);
}
to {
opacity: 1;
transform: scale(1);
}
}

/*
================
ABOUT - CONSERVADO EXACTO
================
*/
.about {
padding: var(--space-16) 0;
background: linear-gradient(135deg, var(--color-card-background) 0%, var(--color-background) 100%);
}

.about-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
gap: var(--space-8);
margin-top: var(--space-8);
}

.about-card {
background: var(--color-surface);
border: 1px solid var(--color-card-border);
border-radius: var(--radius-xl);
padding: var(--space-8);
text-align: center;
box-shadow: var(--shadow-card);
transition: all var(--duration-normal) var(--ease-standard);
}

.about-card:hover {
transform: translateY(-5px);
box-shadow: var(--shadow-hover);
}

.about-icon {
width: 70px;
height: 70px;
margin: 0 auto var(--space-6);
background: var(--gradient-primary);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
}

.about-icon i {
font-size: 1.8rem;
color: white;
}

.about-card h3 {
font-size: var(--font-size-2xl);
font-weight: var(--font-weight-semibold);
margin-bottom: var(--space-4);
color: var(--color-text);
}

.about-card p {
color: var(--color-text-secondary);
line-height: 1.7;
}

/*
================
CONTACTO - CONSERVADO EXACTO
================
*/
.contact {
padding: var(--space-16) 0;
background: var(--color-background);
}

.contact-content {
display: grid;
grid-template-columns: 1fr;
gap: var(--space-8);
margin-top: var(--space-8);
max-width: 800px;
margin-left: auto;
margin-right: auto;
}

.contact-info {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: var(--space-6);
}

.contact-item {
display: flex;
align-items: center;
gap: var(--space-4);
padding: var(--space-6);
background: var(--color-surface);
border: 1px solid var(--color-card-border);
border-radius: var(--radius-lg);
box-shadow: var(--shadow-card);
transition: all var(--duration-normal) var(--ease-standard);
}

.contact-item:hover {
transform: translateX(10px);
box-shadow: var(--shadow-hover);
}

.contact-icon {
width: 60px;
height: 60px;
background: var(--gradient-primary);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}

.contact-icon i {
font-size: 1.5rem;
color: white;
}

.contact-details h4 {
font-size: var(--font-size-lg);
font-weight: var(--font-weight-semibold);
margin-bottom: var(--space-1);
color: var(--color-text);
}

.contact-details p {
color: var(--color-text-secondary);
margin: 0;
}

.contact-details a {
color: var(--color-text-secondary);
transition: color var(--duration-fast) var(--ease-standard);
}

.contact-details a:hover {
color: var(--color-primary-hover);
}

/*
================
FOOTER - CONSERVADO EXACTO
================
*/
.footer {
background: var(--gradient-hero);
color: white;
padding: var(--space-8) 0 var(--space-4);
}

.footer-content {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: var(--space-8);
margin-bottom: var(--space-8);
}

.footer-section h3,
.footer-section h4 {
color: white;
margin-bottom: var(--space-4);
}

.footer-section p {
color: rgba(255, 255, 255, 0.8);
line-height: 1.6;
}

.footer-section ul {
list-style: none;
padding: 0;
margin: 0;
}

.footer-section ul li {
margin-bottom: var(--space-2);
}

.footer-section ul li a {
color: rgba(255, 255, 255, 0.8);
transition: color var(--duration-fast) var(--ease-standard);
}

.footer-section ul li a:hover {
color: var(--color-highlight);
}

.footer-section ul li i {
margin-right: var(--space-2);
color: var(--color-highlight);
}

.footer-bottom {
text-align: center;
padding-top: var(--space-4);
border-top: 1px solid rgba(255, 255, 255, 0.1);
color: rgba(255, 255, 255, 0.6);
}

/*
================
SCROLL TOP - CONSERVADO EXACTO
================
*/
.scroll-top {
position: fixed;
bottom: 30px;
right: 30px;
width: 50px;
height: 50px;
background: var(--gradient-primary);
border: none;
border-radius: 50%;
color: white;
font-size: 1.2rem;
cursor: pointer;
opacity: 0;
visibility: hidden;
transition: all var(--duration-normal) var(--ease-standard);
z-index: 1000;
box-shadow: var(--shadow-lg);
}

.scroll-top.show {
opacity: 1;
visibility: visible;
}

.scroll-top:hover {
background: linear-gradient(135deg, var(--color-secondary), var(--color-accent));
transform: translateY(-3px);
box-shadow: var(--shadow-xl);
}

/*
================
ANIMACIONES - CONSERVADAS EXACTAS
================
*/
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}

@keyframes fadeInLeft {
from {
opacity: 0;
transform: translateX(-30px);
}
to {
opacity: 1;
transform: translateX(0);
}
}

@keyframes fadeInRight {
from {
opacity: 0;
transform: translateX(30px);
}
to {
opacity: 1;
transform: translateX(0);
}
}

.animate-on-scroll {
opacity: 0;
transition: all 0.6s var(--ease-standard);
}

.animate-on-scroll.animate {
opacity: 1;
}

@keyframes typing {
from { width: 0; }
to { width: 100%; }
}

@keyframes blink {
0%, 50% { border-color: transparent; }
51%, 100% { border-color: var(--color-highlight); }
}

.typing-effect {
overflow: hidden;
white-space: nowrap;
border-right: 3px solid var(--color-highlight);
animation: typing 3s steps(40, end), blink 1s infinite;
}

/*
================
RESPONSIVE - CONSERVADO EXACTO CON TODOS LOS BREAKPOINTS ORIGINALES
================
*/
@media (max-width: 768px) {
.hamburger {
display: flex;
}

.nav-menu {
position: fixed;
top: var(--navbar-height);
left: 0;
right: 0;
background: var(--color-surface);
flex-direction: column;
padding: 0;
z-index: 1001;
max-height: 0;
overflow: hidden;
opacity: 0;
visibility: hidden;
transition:
max-height 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94),
opacity 0.3s ease,
visibility 0.3s ease;
box-shadow: 0 8px 32px rgba(28, 166, 221, 0.15);
border-bottom: 2px solid var(--color-primary);
-webkit-overflow-scrolling: touch;
-webkit-transform: translate3d(0, 0, 0);
will-change: max-height, opacity;
}

.nav-menu.active {
max-height: 400px;
opacity: 1;
visibility: visible;
}

.nav-menu li {
margin: 0;
width: 100%;
}

.nav-menu .nav-link {
display: block;
padding: var(--space-4);
color: var(--color-text);
font-weight: var(--font-weight-medium);
border-radius: var(--radius-base);
transition: all var(--duration-normal) var(--ease-standard);
text-align: center;
border-bottom: 1px solid rgba(28, 166, 221, 0.1);
}

.nav-menu .nav-link:hover {
background: var(--color-primary);
color: white;
transform: translateX(5px);
}

.nav-menu li:last-child .nav-link {
border-bottom: none;
}

.hero-title {
font-size: 2.5rem;
}

.hero-buttons {
flex-direction: column;
align-items: center;
}

.btn-hero {
width: 100%;
max-width: 280px;
}

.services-grid {
grid-template-columns: 1fr;
gap: var(--space-8);
margin-top: var(--space-8);
}

.about-grid {
grid-template-columns: 1fr;
}

.contact-info {
grid-template-columns: 1fr;
}

.footer-content {
grid-template-columns: 1fr;
text-align: center;
}

.decoration-circle {
display: none;
}

.container {
padding: 0 var(--space-2);
}

.logo {
gap: var(--space-1);
}

.logo img {
max-height: 170px; /* CONSERVANDO VALOR ORIGINAL MÓVIL */
padding: 5px 12px 5px 5px;
border-radius: 10px;
}

.logo h2 {
font-size: 16px; /* CONSERVANDO VALOR ORIGINAL */
display: block;
margin-left: 8px;
white-space: nowrap;
margin: 0;
flex-shrink: 0;
}

.hero-content {
padding: 25px 0; /* CONSERVANDO VALOR ORIGINAL */
}

.hero-title {
margin-top: var(--space-4);
}

/* === RESPONSIVE DEL SERVICE SPECIAL - CONSERVADO EXACTO === */
.service-special {
padding: var(--space-12) var(--space-6);
margin: var(--space-8) auto;
}

.service-special-content {
gap: var(--space-12);
}

.service-special-icon {
width: 80px;
height: 80px;
margin-bottom: var(--space-4);
}

.service-special-icon i {
font-size: var(--font-size-3xl);
}

.service-special h3 {
font-size: var(--font-size-3xl);
}

.intro-text {
font-size: var(--font-size-base);
}

.benefits-grid {
gap: var(--space-2);
max-width: 100%;
}

.benefit-item {
min-width: 90px;
max-width: 100px;
padding: var(--space-3) var(--space-2);
}

.benefit-icon {
width: 40px;
height: 40px;
margin-bottom: var(--space-2);
}

.benefit-icon i {
font-size: var(--font-size-base);
}

.benefit-text h5 {
font-size: var(--font-size-xs);
}

.carousel-slide img {
height: 250px;
}

.slide-caption {
padding: var(--space-6) var(--space-4) var(--space-4);
}

.slide-caption h4 {
font-size: var(--font-size-lg);
}

.slide-caption p {
font-size: var(--font-size-sm);
}

.carousel-btn {
width: 40px;
height: 40px;
font-size: var(--font-size-base);
}

.carousel-btn-prev {
left: var(--space-4);
}

.carousel-btn-next {
right: var(--space-4);
}

/* Modal responsive */
.modal-content {
max-width: 95%;
max-height: 95%;
}

.modal-image {
max-height: 70vh;
}

.close-modal {
top: -40px;
font-size: 2rem;
width: 35px;
height: 35px;
}

.modal-caption {
font-size: var(--font-size-base);
margin-top: var(--space-3);
padding: var(--space-2) var(--space-3);
}

.image-zoom-hint {
top: var(--space-2);
right: var(--space-2);
padding: var(--space-1);
font-size: var(--font-size-xs);
}

/* NAVBAR FIX MÓVIL - CONSERVANDO VALORES ORIGINALES */
:root {
--navbar-height: 90px; /* VALOR ORIGINAL MÓVIL */
}

.navbar {
height: 90px;
padding: 0;
}

.nav-content {
padding: 10px 0;
min-height: 90px;
}

.hero {
min-height: calc(100vh - 90px);
}
}

/* Breakpoints adicionales conservados exactos */
@media (max-width: 600px) {
.benefits-grid {
flex-wrap: wrap;
justify-content: center;
gap: var(--space-3);
}

.benefit-item {
min-width: 100px;
max-width: 110px;
padding: var(--space-3);
}

.benefit-icon {
width: 35px;
height: 35px;
}

.benefit-icon i {
font-size: var(--font-size-sm);
}
}

@media (max-width: 480px) {
.hero-title {
font-size: 2rem;
}

.hero-subtitle {
font-size: var(--font-size-lg);
}

.section-title {
font-size: var(--font-size-2xl);
}

.service-card,
.about-card {
padding: var(--space-6);
}

.scroll-top {
bottom: 20px;
right: 20px;
width: 45px;
height: 45px;
}

.logo h2 {
font-size: var(--font-size-base);
}

.logo img {
max-height: 65px; /* CONSERVANDO VALOR ORIGINAL */
padding: 4px 10px 4px 4px;
}

.service-special {
padding: var(--space-8) var(--space-4);
}

.service-special h3 {
font-size: var(--font-size-2xl);
}

.intro-text {
font-size: var(--font-size-sm);
}

.carousel-slide img {
height: 200px;
}

.slide-caption {
padding: var(--space-4) var(--space-4) var(--space-3);
}

.slide-caption h4 {
font-size: var(--font-size-base);
}

.slide-caption p {
font-size: var(--font-size-xs);
}

.carousel-btn {
width: 35px;
height: 35px;
font-size: var(--font-size-sm);
}

.carousel-btn-prev {
left: var(--space-2);
}

.carousel-btn-next {
right: var(--space-2);
}

.modal-content {
max-width: 98%;
max-height: 98%;
}

.modal-image {
max-height: 60vh;
}
}

@media (max-width: 360px) {
.logo img {
max-height: 60px;
padding: 3px 8px 3px 3px;
}

.logo h2 {
font-size: 13px;
display: none; /* Ocultar solo en pantallas muy pequeñas */
}

.hero-title {
font-size: 1.5rem;
}

.section-title {
font-size: var(--font-size-xl);
}
}

/*
================
SCROLL SUAVE Y SCROLLBAR - CONSERVADOS EXACTOS
================
*/
html {
scroll-behavior: smooth;
}

::-webkit-scrollbar {
width: 8px;
}

::-webkit-scrollbar-track {
background: var(--color-background);
}

::-webkit-scrollbar-thumb {
background: var(--color-primary);
border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
background: var(--color-primary-hover);
}

/*
================
ACCESIBILIDAD - CONSERVADA EXACTA
================
*/
.btn:focus-visible,
.nav-link:focus-visible {
outline: 2px solid var(--color-focus-ring);
outline-offset: 2px;
}

/*
================
PRINT STYLES - CONSERVADOS EXACTOS
================
*/
@media print {
.navbar,
.scroll-top,
.hero-decoration {
display: none;
}

.hero {
min-height: auto;
padding: var(--space-8) 0;
}

body {
background: white;
color: black;
}
}

/* Dark mode para slide captions */
@media (prefers-color-scheme: dark) {
.slide-caption {
background: linear-gradient(transparent, rgba(15, 31, 39, 0.9));
}
}

/*
=================================================
CORRECCIONES MÓVIL PARA ELIMINAR SCROLL HORIZONTAL
Agregar AL FINAL del CSS existente - styless-5.css
=================================================
*/

/* CONTROL ESTRICTO DEL ANCHO - CRÍTICO para eliminar scroll horizontal */
html {
    overflow-x: hidden !important;
    max-width: 100vw !important;
}

body {
    overflow-x: hidden !important;
    max-width: 100vw !important;
    min-width: 0 !important;
    word-wrap: break-word !important;
}

/* CONTENEDORES SEGUROS - Reforzar los existentes */
.container {
    box-sizing: border-box !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
}

/* CORRECCIONES ESPECÍFICAS MÓVIL - Complementar responsive existente */
@media (max-width: 768px) {
    /* REFORZAR CONTAINERS */
    .container {
        max-width: 100vw !important;
        overflow-x: hidden !important;
    }

    /* NAVBAR: Control adicional de overflow */
    .navbar {
        width: 100vw !important;
        max-width: 100vw !important;
        
        box-sizing: border-box !important;
    }

    .nav-content {
        
        box-sizing: border-box !important;
        max-width: 100% !important;
    }

    /* LOGO: Prevenir desbordamiento */
    .logo {
        flex-shrink: 1 !important;
        max-width: 70% !important;
        min-width: 0 !important;
    }

    .logo h2 {
        max-width: 120px !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    /* HERO: Control de overflow */
    .hero {
        overflow-x: hidden !important;
        max-width: 100vw !important;
    }

    .hero-content {
        overflow-x: hidden !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .hero-text {
        overflow-wrap: break-word !important;
        word-wrap: break-word !important;
        max-width: 100% !important;
    }

    .hero-title,
    .hero-subtitle {
        word-wrap: break-word !important;
        hyphens: auto !important;
        overflow-wrap: break-word !important;
    }

    /* SERVICE SPECIAL: Control de overflow crítico */
    .service-special {
        max-width: 100% !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
    }

    .service-special-content {
        max-width: 100% !important;
        overflow: hidden !important;
    }

    .service-special h3,
    .intro-text {
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }

    /* BENEFITS GRID: CRÍTICO - Permitir wrap para evitar overflow */
    .benefits-grid {
        flex-wrap: wrap !important; /* CAMBIO CRÍTICO del nowrap original */
        max-width: 100% !important;
        overflow: hidden !important;
    }

    .benefit-item {
        flex: 0 0 auto !important; /* Evitar estiramiento */
        max-width: 100px !important; /* Limitar ancho máximo */
        min-width: 80px !important; /* Reducir ancho mínimo */
    }

    /* CARRUSEL: Control estricto de overflow */
    .service-carousel,
    .carousel-container {
        max-width: 100% !important;
        overflow: hidden !important;
    }

    .carousel-slide {
        max-width: 100% !important;
        overflow: hidden !important;
    }

    .carousel-slide img {
        max-width: 100% !important;
    }

    .slide-caption {
        max-width: 100% !important;
        box-sizing: border-box !important;
        overflow-wrap: break-word !important;
    }

    .slide-caption h4,
    .slide-caption p {
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }

    /* TARJETAS: Control de overflow */
    .service-card,
    .about-card,
    .contact-item {
        max-width: 100% !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
    }

    .service-card h3,
    .service-card p,
    .about-card h3,
    .about-card p,
    .contact-details h4,
    .contact-details p,
    .contact-details a {
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }

    /* FOOTER: Control de overflow */
    .footer-section {
        max-width: 100% !important;
        overflow-wrap: break-word !important;
    }

    .footer-section h3,
    .footer-section h4,
    .footer-section p,
    .footer-section ul li a {
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }

    /* NAV MENU MÓVIL: Control de ancho */
    .nav-menu {
        width: 100vw !important;
        max-width: 100vw !important;
        left: 0 !important;
        right: 0 !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
    }

    .nav-menu .nav-link {
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }
}

/* CORRECCIONES ADICIONALES PARA PANTALLAS MUY PEQUEÑAS */
@media (max-width: 480px) {
    /* Reducir padding aún más para dar más espacio */
    .container {
        padding: 0 8px !important;
    }

    .service-special {
        padding: var(--space-8) 8px !important;
    }

    /* Asegurar que elementos críticos no se desborden */
    .hero-title {
        font-size: 1.6rem !important; /* Ligeramente más pequeño */
    }

    .service-special h3 {
        font-size: 1.5rem !important; /* Ligeramente más pequeño */
    }
}

@media (max-width: 360px) {
    /* Control máximo para pantallas extra pequeñas */
    .container {
        padding: 0 6px !important;
    }

    .service-special {
        padding: var(--space-6) 6px !important;
    }

    .hero-title {
        font-size: 1.4rem !important;
    }

    .service-special h3 {
        font-size: 1.3rem !important;
    }

    /* Ocultar elementos problemáticos si es necesario */
    .decoration-circle {
        display: none !important;
    }
}

.service-special-icon.custom-logo {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: var(--gradient-primary) !important;
    border-radius: var(--radius-full) !important;
    width: 100px !important;
    height: 100px !important;
    box-shadow: var(--shadow-lg) !important;
    margin: 0 auto var(--space-6) !important;
}

.service-special-icon.custom-logo img {
    width: 50px !important;
    height: 50px !important;
    object-fit: contain !important;
    filter: brightness(0) invert(1) !important;
}
