:root {
    --dorado: #c5a059;
    --dorado-oscuro: #a38241;
    --oscuro: #0f0f0f;
    --gris-pro: #1a1a1a;
    --beige: #faf9f6;
    --blanco: #ffffff;
}

* { scroll-behavior: smooth; box-sizing: border-box; }
body { font-family: 'Lexend', sans-serif; margin: 0; background: var(--beige); color: var(--oscuro); -webkit-font-smoothing: antialiased; }

/* --- HEADER REFORMADO (MÁS FINO) --- */
header {
    background: var(--oscuro);
    padding: 1.5rem 1rem;
    border-bottom: 4px solid var(--dorado);
    position: relative;
    min-height: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: visible; 
}

.header-content {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
}

.main-logo {
    max-width: 250px;
    height: auto;
    z-index: 1;
}

.header-anchor-img {
    position: absolute;
    right: 0;
    bottom: -130px;
    z-index: 5;
    text-decoration: none;
}

.header-anchor-img img {
    width: 280px; 
    height: 280px;
    object-fit: contain;
    transition: transform 0.3s ease;
}

.header-anchor-img:hover img {
    transform: scale(1.05);
}

/* --- NAVEGACIÓN --- */
.main-nav { display: flex; justify-content: center; gap: 2rem; background: var(--blanco); padding: 1.2rem; position: sticky; top: 0; z-index: 100; box-shadow: 0 5px 20px rgba(0,0,0,0.05); }
.nav-btn { text-decoration: none; color: #555; font-weight: 500; font-size: 0.9rem; text-transform: uppercase; letter-spacing: 1.5px; transition: 0.3s; position: relative; }
.nav-btn.active, .nav-btn:hover { color: var(--dorado); }
.nav-btn.active::after { content: ''; position: absolute; bottom: -5px; left: 0; width: 100%; height: 2px; background: var(--dorado); }

.container { max-width: 1200px; margin: 4rem auto; padding: 0 2rem; }

/* --- SECCIONES --- */
.section-block { margin-bottom: 8rem; }
.section-intro { text-align: center; margin-bottom: 3rem; }
.section-title { font-family: 'Playfair Display'; font-size: 2.8rem; margin-bottom: 0.5rem; color: var(--oscuro); }
.section-subtitle { font-size: 1.1rem; color: #888; font-weight: 300; }

/* --- GALERÍA --- */
.gallery-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1rem; margin-bottom: 4rem; }
.card { position: relative; height: 160px; border-radius: 15px; overflow: hidden; cursor: pointer; transition: 0.4s; box-shadow: 0 10px 20px rgba(0,0,0,0.08); }
.card:hover { transform: translateY(-5px); box-shadow: 0 15px 30px rgba(0,0,0,0.15); }
.card img { width: 100%; height: 100%; object-fit: cover; }
.overlay { position: absolute; inset: 0; background: rgba(197, 160, 89, 0.85); display: flex; align-items: center; justify-content: center; opacity: 0; transition: 0.3s; }
.overlay span { color: white; font-weight: 600; text-transform: uppercase; font-size: 0.8rem; letter-spacing: 1px; border: 1px solid white; padding: 5px 15px; }
.card:hover .overlay { opacity: 1; }

/* --- TARJETA DE EQUIPAMIENTO (ESTILO PREMIUM) --- */
.equipment-card { background: white; border-radius: 20px; padding: 3rem; margin-bottom: 4rem; box-shadow: 0 15px 40px rgba(0,0,0,0.04); border-left: 6px solid var(--dorado); }
.eq-badge { display: inline-block; background: var(--dorado); color: white; padding: 5px 15px; border-radius: 50px; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 1rem; }
.equipment-card h3 { font-family: 'Playfair Display'; font-size: 2rem; margin-bottom: 1.5rem; color: var(--oscuro); }
.eq-body p { line-height: 1.8; color: #555; font-size: 1.1rem; margin: 0; }

/* --- CARTEL MEJOR PRECIO --- */
.price-match-banner { background: #fff; border: 1px dashed var(--dorado); padding: 2rem; border-radius: 20px; margin-bottom: 4rem; text-align: left; }
.pm-content { display: flex; align-items: center; gap: 2rem; }
.pm-icon { font-size: 3rem; }
.pm-text h4 { font-family: 'Playfair Display'; font-size: 1.5rem; margin-bottom: 0.5rem; }
.pm-text p { color: #666; font-size: 1rem; margin: 0; }
.pm-text a { color: var(--dorado); font-weight: 700; text-decoration: none; }

/* --- CALCULADORA --- */
.precios-container { background: var(--oscuro); border-radius: 30px; padding: 4rem 2rem; text-align: center; position: relative; overflow: hidden; color: white; box-shadow: 0 30px 60px rgba(0,0,0,0.25); }
.glass-effect { position: relative; z-index: 2; }
.badge { background: transparent; border: 1px solid var(--dorado); color: var(--dorado); padding: 6px 20px; border-radius: 50px; font-size: 0.7rem; font-weight: 700; letter-spacing: 2px; }
.promo-tag { color: var(--dorado); font-weight: 700; font-size: 1.2rem; margin: 1.5rem 0 0.5rem 0; animation: pulse 2s infinite; }
@keyframes pulse { 0% { opacity: 1; } 50% { opacity: 0.6; } 100% { opacity: 1; } }
.calc-title { font-size: 2rem; font-family: 'Playfair Display'; margin-bottom: 2rem; color: white; }
#monto-total { font-size: 5rem; color: var(--dorado); font-family: 'Playfair Display'; display: block; margin: 1rem 0; text-shadow: 0 5px 15px rgba(197, 160, 89, 0.4); }

.payment-split { display: flex; justify-content: center; gap: 3rem; margin-top: 2rem; background: rgba(255,255,255,0.03); padding: 2rem; border-radius: 20px; border: 1px solid rgba(255,255,255,0.05); }
.split-item span { display: block; font-size: 0.7rem; color: #aaa; text-transform: uppercase; margin-bottom: 0.5rem; }
.split-item b { font-size: 1.4rem; color: white; font-weight: 500; }
.split-divider { width: 1px; height: 50px; background: rgba(255,255,255,0.1); }

/* --- FORMULARIO --- */
.booking-wrapper { background: white; border-radius: 30px; padding: 4rem; margin-top: -3rem; position: relative; z-index: 5; box-shadow: 0 20px 50px rgba(0,0,0,0.05); max-width: 800px; margin-left: auto; margin-right: auto; }
.form-header { text-align: center; margin-bottom: 3rem; }
.form-header h2 { font-family: 'Playfair Display'; font-size: 2.2rem; margin-bottom: 0.5rem; }
.grid-form { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.full-width { grid-column: span 2; }
label { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; color: #999; margin-bottom: 0.6rem; display: block; letter-spacing: 1px; }
input, select { background: #fcfcfc; border: 1px solid #eee; padding: 1.2rem; border-radius: 12px; font-size: 1rem; width: 100%; transition: 0.3s; }
input:focus { border-color: var(--dorado); outline: none; background: white; box-shadow: 0 0 0 4px rgba(197,160,89,0.1); }

.pago-info { padding: 1.2rem; border-radius: 12px; background: #f8f8f8; font-size: 0.9rem; border-left: 4px solid var(--dorado); }
.aviso-rojo { border-left-color: #e74c3c; background: #fff5f5; }

.btn-gold { background: var(--dorado); color: white; border: none; padding: 1.5rem; border-radius: 12px; font-weight: 700; cursor: pointer; font-size: 1.1rem; letter-spacing: 1px; transition: 0.4s; width: 100%; }
.btn-gold:hover { background: var(--dorado-oscuro); transform: translateY(-3px); box-shadow: 0 15px 30px rgba(197,160,89,0.3); }

/* --- FOOTER --- */
.main-footer { background: var(--oscuro); color: white; padding: 5rem 2rem 2rem; margin-top: 5rem; border-top: 2px solid var(--dorado); }
.footer-grid { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 4rem; text-align: center; }
.footer-mini-logo { max-width: 60px; margin-bottom: 1rem; filter: brightness(0) invert(1); }
.main-footer h4 { color: var(--dorado); text-transform: uppercase; font-size: 0.8rem; letter-spacing: 2px; margin-bottom: 1.5rem; }
.contact-link { display: block; color: white; text-decoration: none; margin-bottom: 0.8rem; font-weight: 300; transition: 0.3s; }
.contact-link:hover { color: var(--dorado); }
.footer-bottom { margin-top: 5rem; padding-top: 2rem; border-top: 1px solid rgba(255,255,255,0.05); font-size: 0.7rem; color: #555; text-align: center; text-transform: uppercase; letter-spacing: 1px; }

/* --- WHATSAPP --- */
.whatsapp-float { position: fixed; bottom: 30px; right: 30px; width: 60px; height: 60px; background-color: #25d366; border-radius: 50px; display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 25px rgba(0,0,0,0.3); z-index: 1000; transition: 0.3s; }
.whatsapp-float:hover { transform: scale(1.1); }
.whatsapp-float img { width: 35px; }

/* --- OTROS --- */
.elegant-divider { border: 0; height: 1px; background: linear-gradient(to right, transparent, rgba(0,0,0,0.1), transparent); margin: 6rem 0; }
.premium-card { background: var(--gris-pro); color: white; padding: 5rem; border-radius: 40px; text-align: center; position: relative; }
.feature-list { display: flex; justify-content: center; gap: 3rem; margin: 3rem 0; }
.feat-item { font-size: 1rem; font-weight: 300; }
.feat-item span { color: var(--dorado); margin-right: 8px; }
.btn-outline { display: inline-block; padding: 1rem 2.5rem; border: 1px solid var(--dorado); color: var(--dorado); text-decoration: none; border-radius: 50px; transition: 0.3s; }
.btn-outline:hover { background: var(--dorado); color: white; }

.about-card { background: white; padding: 4rem; border-radius: 30px; text-align: center; max-width: 800px; margin: auto; box-shadow: 0 10px 40px rgba(0,0,0,0.03); }
.about-text p { font-size: 1.2rem; color: #555; font-weight: 300; margin-bottom: 2rem; }
.signature { font-family: 'Playfair Display'; font-style: italic; color: var(--dorado); font-size: 1.5rem; }

/* MODAL GALERIA */
.modal { display: none; position: fixed; z-index: 1000; inset: 0; background: rgba(0,0,0,0.95); backdrop-filter: blur(5px); justify-content: center; align-items: center; }
.modal-content { max-width: 85%; max-height: 85vh; object-fit: contain; }
.close { position: absolute; top: 30px; right: 40px; color: white; font-size: 3rem; cursor: pointer; }
.nav-prev, .nav-next { position: absolute; top: 50%; transform: translateY(-50%); background: none; border: none; color: white; font-size: 3rem; cursor: pointer; padding: 20px; transition: 0.3s; }
.nav-prev { left: 20px; }
.nav-next { right: 20px; }
.nav-prev:hover, .nav-next:hover { color: var(--dorado); }

/* --- RESPONSIVE OPTIMIZADO --- */
@media (max-width: 900px) {
    .gallery-grid { grid-template-columns: repeat(3, 1fr); }
    .payment-split { gap: 1rem; flex-direction: column; align-items: center; }
    .split-divider { width: 50%; height: 1px; }
    .footer-grid { grid-template-columns: 1fr; gap: 3rem; }
    .header-anchor-img img { width: 160px; height: 160px; }
    .header-anchor-img { bottom: -60px; }
    .pm-content { flex-direction: column; text-align: center; }
}

@media (max-width: 600px) {
    header { min-height: 100px; padding: 1rem; flex-direction: row; }
    .header-content { flex-direction: row; justify-content: center; }
    .main-logo { max-width: 180px; }
    .header-anchor-img { position: absolute; right: -10px; bottom: -80px; }
    .header-anchor-img img { width: 160px; height: 160px; }
    .main-nav { gap: 1rem; padding: 1rem; }
    .nav-btn { font-size: 0.7rem; letter-spacing: 0.5px; }
    .section-title { font-size: 1.8rem; }
    .gallery-grid { grid-template-columns: repeat(2, 1fr); }
    .booking-wrapper { padding: 1.5rem; margin-top: -1.5rem; }
    #monto-total { font-size: 3rem; }
    .equipment-card { padding: 1.5rem; }
    .aviso-rojo { border-left-color: #e74c3c !important; background: #fff5f5 !important; color: #c0392b; animation: shake 0.5s ease-in-out; }
}

@keyframes shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-5px); }
    75% { transform: translateX(5px); }
}