/* VARIABLES Y RESET */
:root {
    --navy: #0A1128;
    --gold: #D4AF37;
    --gold-light: #F3E5AB;
    --white: #FFFFFF;
    --gray-bg: #F9FAFB;
    --text-dark: #1F2937;
    --text-light: #6B7280;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: 'Helvetica Neue', Arial, sans-serif; background-color: var(--gray-bg); color: var(--text-dark); line-height: 1.8; padding-top: 0; }
h1, h2, h3 { font-family: 'Georgia', serif; }

/* HEADER - LOGO Y NAVEGACIÓN */
header { background: var(--navy); color: var(--white); text-align: center; position: sticky; top: 0; z-index: 1000; box-shadow: 0 4px 20px rgba(0,0,0,0.2); }
.top-bar { padding: 25px 20px 15px; border-bottom: 1px solid rgba(212, 175, 55, 0.2); position: relative; display: flex; justify-content: center; align-items: center; flex-direction: column; }
.logo { color: var(--white); text-decoration: none; font-size: 2rem; letter-spacing: 3px; text-transform: uppercase; }
.logo span { color: var(--gold); }
.lang-wrapper { position: absolute; top: 25px; right: 5%; }
select { background: transparent; color: var(--gold); border: 1px solid var(--gold); padding: 5px 10px; cursor: pointer; outline: none; border-radius: 3px; }

nav { display: flex; justify-content: center; padding: 15px 0; background: rgba(10, 17, 40, 0.98); }
.nav-links { display: flex; list-style: none; gap: 35px; }
.nav-links a { color: var(--white); text-decoration: none; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 2px; transition: 0.3s; }
.nav-links a:hover, .nav-links a.active { color: var(--gold); }

/* HERO CON VÍDEO LOCAL */
.hero { position: relative; height: 85vh; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; color: var(--white); overflow: hidden; background-color: var(--navy); }
.hero-video { position: absolute; top: 50%; left: 50%; min-width: 100%; min-height: 100%; width: auto; height: auto; transform: translate(-50%, -50%); z-index: 0; object-fit: cover; }
.hero-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(rgba(10, 17, 40, 0.5), rgba(10, 17, 40, 0.8)); z-index: 1; }
.hero-content { position: relative; z-index: 2; padding: 0 5%; width: 100%; }
.hero h1 { font-size: 3.5rem; margin-bottom: 20px; text-shadow: 2px 2px 15px rgba(0,0,0,0.6); text-align: center; }
.hero p { font-size: 1.3rem; max-width: 750px; color: var(--gold-light); margin: 0 auto; font-weight: 300; }
.hero-divider { width: 80px; height: 2px; background: var(--gold); margin: 25px auto; }

/* CABECERAS DE PÁGINA (H1 ALINEADOS CORRECTAMENTE) */
.page-header { background: var(--navy); padding: 80px 5% 60px; display: flex; justify-content: center; align-items: center; text-align: center; border-bottom: 3px solid var(--gold); }
.page-header h1 { font-size: 3rem; color: var(--gold); margin: 0; padding: 0; text-align: center; width: 100%; }

.container { max-width: 1100px; margin: 0 auto; padding: 70px 5%; }
.rich-text { background: var(--white); padding: 60px; border-top: 4px solid var(--gold); box-shadow: 0 15px 35px rgba(0,0,0,0.05); margin-bottom: 40px; }
.rich-text h2 { color: var(--navy); font-size: 2.2rem; margin-bottom: 30px; text-align: center; }
.rich-text p { font-size: 1.1rem; color: var(--text-dark); margin-bottom: 20px; text-align: justify; }

/* SERVICIOS */
.practice-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 30px; }
.practice-card { position: relative; height: 350px; overflow: hidden; display: flex; align-items: center; justify-content: center; background: var(--navy); border-radius: 4px; border-bottom: 3px solid var(--gold); }
.practice-card img { position: absolute; width: 100%; height: 100%; object-fit: cover; opacity: 0.4; transition: 0.5s; }
.practice-card:hover img { opacity: 0.2; transform: scale(1.05); }
.practice-card h3 { position: relative; z-index: 2; color: var(--white); font-size: 1.6rem; text-align: center; padding: 20px; border: 1px solid rgba(212, 175, 55, 0.4); margin: 20px; width: 80%; }

/* CASOS DE ÉXITO (ESTILOS RECUPERADOS Y MEJORADOS) */
.success-grid { display: grid; grid-template-columns: 1fr; gap: 40px; }
.success-card { background: var(--white); padding: 50px 60px; border-left: 5px solid var(--gold); box-shadow: 0 10px 30px rgba(0,0,0,0.05); position: relative; border-radius: 0 8px 8px 0; overflow: hidden; }
.success-card::before { content: '"'; font-family: 'Georgia', serif; font-size: 8rem; color: rgba(212, 175, 55, 0.1); position: absolute; top: -20px; left: 20px; line-height: 1; z-index: 1; }
.success-card p { font-style: italic; font-size: 1.2rem; color: var(--navy); line-height: 1.8; position: relative; z-index: 2; margin: 0; }

/* CONSULTAS (FAQ) */
.faq-block { margin-bottom: 40px; border-bottom: 1px solid #E5E7EB; padding-bottom: 30px; }
.faq-block h3 { color: var(--navy); font-size: 1.5rem; margin-bottom: 15px; }
.faq-block p { font-size: 1.1rem; color: var(--text-light); }

/* CONTACTO */
.contact-wrapper { display: flex; gap: 50px; flex-wrap: wrap; }
.contact-details { flex: 1; min-width: 300px; background: var(--navy); color: var(--white); padding: 50px; border-bottom: 5px solid var(--gold); }
.contact-details h2 { color: var(--gold); margin-bottom: 30px; font-size: 2rem; }
.contact-details p { margin-bottom: 20px; font-size: 1.1rem; }
.contact-details strong { display: block; color: var(--gold-light); font-size: 0.85rem; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 5px; }
.map-box { flex: 2; min-width: 300px; min-height: 400px; }
.map-box iframe { width: 100%; height: 100%; border: none; }

/* LEGAL */
.legal-page h1 { color: var(--navy); font-size: 2.5rem; margin-bottom: 40px; text-align: center; }
.legal-page h2 { color: var(--gold); font-size: 1.5rem; margin-top: 40px; margin-bottom: 20px; }
.legal-page p, .legal-page li { font-size: 1.1rem; color: var(--text-light); margin-bottom: 15px; }
.legal-page ul { padding-left: 40px; margin-bottom: 20px; }

/* FOOTER */
footer { background: var(--navy); color: var(--white); padding: 60px 5% 30px; text-align: center; border-top: 1px solid rgba(212,175,55,0.2); }
.footer-links { display: flex; justify-content: center; gap: 25px; flex-wrap: wrap; margin-bottom: 35px; }
.footer-links a { color: var(--gold-light); text-decoration: none; font-size: 0.8rem; text-transform: uppercase; letter-spacing: 1px; transition: 0.3s; }
.footer-links a:hover { color: var(--gold); }
.footer-logos { margin-bottom: 25px; display: flex; justify-content: center; }
.footer-logos img { height: 150px; background: rgba(255, 255, 255, 0); padding: 8px; border-radius: 4px; }

/* RESPONSIVE */
@media (max-width: 768px) {
    .top-bar { padding: 50px 20px 20px; }
    .lang-wrapper { top: 15px; right: 50%; transform: translateX(50%); }
    .hero h1 { font-size: 2.5rem; }
    .page-header h1 { font-size: 2.2rem; }
    .nav-links { gap: 15px; flex-wrap: wrap; justify-content: center; }
    .nav-links a { font-size: 0.7rem; }
    .rich-text { padding: 30px 20px; }
    .success-card { padding: 40px 30px; }
}