/* ============================================================
   ESTILOS ESPECÍFICOS: RESERVADOR WHATSAPP WPML (LIMPIO Y BLINDADO)
   ============================================================ */

/* --- 1. ESTRUCTURA GENERAL --- */
.ndk-section-form { padding: 4rem 1.5rem; max-width: 1200px; margin: 0 auto; }
.ndk-grid-2 { display: grid; grid-template-columns: 1fr; gap: 4rem; }
@media (min-width: 992px) { .ndk-grid-2 { grid-template-columns: 1fr 1fr; } }

.ndk-form-container {
    background: white; border: 2px solid #f3f4f6; border-radius: 4rem;
    padding: 4rem; box-shadow: 0 10px 30px -10px rgba(0,0,0,0.05); position: relative;
}
@media (max-width: 768px) {
    .ndk-form-container { padding: 2.5rem 1.5rem; border-radius: 2.5rem; }
}

.ndk-form-column { display: flex; flex-direction: column; gap: 3.5rem; }

/* CLASE VITAL: Ocultar elementos lógicos y banner de error */
.ndk .hidden { display: none !important; }

/* --- 2. ENCABEZADOS Y TEXTOS --- */
.ndk-form-header { text-align: center; margin-bottom: 4rem; }
.ndk-form-title { font-size: clamp(2.5rem, 5vw, 3.5rem); color: var(--ndk-dark); margin-bottom: 1rem; line-height: 1.1; }
.ndk-form-title span { color: var(--ndk-salmon); font-style: italic; }
.ndk-form-subtitle { color: #9ca3af; font-size: 1rem; font-weight: 300; }

.ndk-form-label { font-size: 0.7rem; color: #9ca3af; display: block; margin-bottom: 1.2rem; }
.ndk-helper-text { font-size: 0.75rem; font-style: italic; margin-bottom: 0.8rem; }
.ndk-tech-desc { font-size: 0.7rem; color: var(--ndk-salmon); font-weight: 700; margin-top: 0.5rem; }
.ndk-gender-note { font-size: 0.65rem; color: var(--ndk-salmon); font-weight: 800; margin-top: 0.8rem; text-transform: uppercase; }

/* --- 3. ALERTAS Y MENSAJES --- */
.ndk-error-banner {
    background: #ff4d4d; color: white; padding: 1.2rem; border-radius: 1rem; 
    text-align: center; font-size: 0.85rem; margin-bottom: 2.5rem; 
    font-weight: 700; box-shadow: 0 10px 15px -3px rgba(255,77,77,0.3);
}

.ndk-blocking-msg {
    background-color: #fef2f2; border-left: 4px solid #ef4444; padding: 1rem; 
    color: #b91c1c; font-size: 12px; font-style: italic; border-radius: 0 1rem 1rem 0;
    margin-top: 0.8rem; animation: fadeIn 0.4s ease forwards;
}

/* --- 4. BOTONES Y CHIPS --- */
.ndk-btn-group-flex { display: flex; gap: 0.8rem; flex-wrap: wrap; }
.ndk-btn-group-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.8rem; }
.ndk-btn-group-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0.8rem; }
.ndk-radio-group { display: flex; gap: 0.5rem; margin-bottom: 1.5rem; }

.ndk-btn-opt {
    background-color: #f9fafb !important; border: 1px solid #f3f4f6 !important; padding: 1rem !important;
    border-radius: 1.25rem !important; font-weight: 800 !important; text-transform: uppercase !important;
    font-size: 0.75rem !important; cursor: pointer !important; transition: all 0.3s ease !important; display: flex !important;
    flex-direction: column !important; align-items: center !important; justify-content: center !important;
    gap: 0.5rem !important; color: #9ca3af !important; text-align: center !important; letter-spacing: 0.05em !important;
    box-shadow: none !important; flex: 1;
}
.ndk-btn-opt:hover { border-color: var(--ndk-salmon) !important; color: var(--ndk-salmon) !important; transform: translateY(-2px); }
.ndk-btn-opt.active { 
    background-color: var(--ndk-salmon) !important; color: white !important; 
    border-color: var(--ndk-salmon) !important; box-shadow: 0 10px 20px -5px rgba(255, 162, 146, 0.4) !important; 
}
.ndk-btn-opt.disabled-opt { opacity: 0.3 !important; cursor: not-allowed !important; filter: grayscale(1) !important; pointer-events: none !important; }
.ndk-btn-opt.ndk-btn-error { border-color: #ff4d4d !important; background-color: #fffafa !important; color: #ff4d4d !important; }
.ndk-btn-opt input[type="radio"] { display: none !important; }

/* --- 5. INPUTS Y FORMULARIOS --- */
.ndk-input-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1.5rem; }

.ndk-input {
    width: 100% !important; background: transparent !important; color: var(--ndk-text) !important;
    border-top: none !important; border-left: none !important; border-right: none !important;
    border-bottom: 1px solid #f0f0f0 !important; border-radius: 0 !important; box-shadow: none !important;
    padding: 12px 0 !important; font-style: italic !important; font-weight: 300 !important; 
    outline: none !important; transition: all 0.3s !important; font-size: 1.1rem !important; 
    display: block !important; line-height: normal !important; min-height: 2.8rem !important;
}
select.ndk-input {
    appearance: none !important; -webkit-appearance: none !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffa292' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important; background-position: right 10px center !important;
    padding-right: 35px !important; cursor: pointer !important; padding-top: 0.5rem !important;
}
#in-fecha.ndk-input {
    font-weight: 800 !important; color: var(--ndk-dark) !important; border-bottom: 2px solid var(--ndk-salmon) !important;
    background-color: #fdfdfd !important; padding: 1rem !important; border-radius: 0.5rem !important; margin-top: 0.5rem !important; font-style: normal !important; text-align: center;
}
.ndk-input:focus { border-bottom-color: var(--ndk-salmon) !important; box-shadow: none !important; }
.ndk-input-error { border-bottom: 2px solid #ff4d4d !important; background-color: #fffafa !important; }
.ndk-label-error { color: #ff4d4d !important; text-shadow: 0 0 1px rgba(255,0,0,0.1); }
.ndk-check-error { color: #ff4d4d !important; border: 1px solid #ff4d4d !important; padding: 0.5rem !important; border-radius: 1rem !important; }

/* Textarea especial final */
.ndk-textarea {
    border: 1px solid #f0f0f0 !important; border-radius: 2rem !important; padding: 1.5rem !important; 
    height: 120px !important; margin-bottom: 2.5rem !important; background: #f9fafb !important;
}

/* --- 6. SECCIONES Y CONTENEDORES ESPECIALES --- */
.ndk-section-divider { border-top: 1px solid #f0f0f0; padding-top: 1.5rem; margin-top: 1.5rem; }
.ndk-subsection-indented { margin-top: 1.5rem; padding-left: 1rem; border-left: 2px solid #f0f0f0; }
.ndk-bottom-section { margin-top: 6rem; border-top: 1px solid #f0f0f0; padding-top: 4rem; text-align: center; }
.ndk-bottom-wrapper { max-width: 550px; margin: 0 auto; }

/* Selector de tiempo personalizado */
.ndk-custom-time-box { background: #f9fafb; padding: 2rem; border-radius: 2.5rem; border: 1px solid #f3f4f6; }
.ndk-custom-time-label { font-size: 0.65rem; color: #9ca3af; font-weight: 800; text-transform: uppercase; margin-bottom: 0.8rem; text-align: center; }
.ndk-time-select-group { display: flex; justify-content: center; align-items: center; gap: 0.5rem; margin-top: 1rem; }
.ndk-time-select { width: auto !important; border: none !important; font-size: 1.5rem !important; font-weight: 800 !important; }
.ndk-ampm-select { width: auto; border: none; background: var(--ndk-salmon-soft); color: var(--ndk-salmon); border-radius: 0.8rem; padding: 0.4rem 0.8rem; font-weight: 900; }

/* Cajas de Info y Precios */
.ndk-price-badge {
    background: linear-gradient(135deg, #fff5f3 0%, #ffffff 100%);
    border: 1px dashed var(--ndk-salmon); border-radius: 3rem; padding: 2.5rem; margin-bottom: 2rem;
}
.ndk-price-label { font-size: 0.65rem; color: var(--ndk-salmon-dark); }
.ndk-out-tech { font-size: 2.2rem; margin: 1rem 0; }
.ndk-out-total { font-size: 3.5rem; color: var(--ndk-dark); line-height: 1; }
.ndk-nightly-badge { background: var(--ndk-dark); color: white; padding: 4px 12px; border-radius: 20px; font-size: 0.6rem; font-weight: 800; display: inline-block; margin-top: 1rem; }

.ndk-asap-box {
    border-left: 3px solid var(--ndk-salmon); background-color: var(--ndk-salmon-soft);
    padding: 1.5rem; border-radius: 1.5rem; margin-bottom: 1.5rem; font-size: 0.85rem;
    font-style: italic; color: var(--ndk-salmon-dark);
}

.ndk-consent-box { text-align: left; background: #fff5f3; padding: 2rem; border-radius: 2.5rem; margin-bottom: 3rem; transition: 0.3s; }
.ndk-consent-label { display: flex; gap: 1rem; margin-bottom: 1.5rem; cursor: pointer; font-size: 0.75rem; color: #4a4a4a; }
.ndk-consent-label input { width: 18px; height: 18px; cursor: pointer; }

/* --- 7. BOTÓN WHATSAPP --- */
.whatsapp-btn-style {
    background-color: #25D366 !important; 
    color: white !important; 
    border: none !important; 
    padding: 1.8rem !important;
    border-radius: 4rem !important; 
    font-weight: 800 !important; 
    text-transform: uppercase !important; 
    letter-spacing: 0.2em !important;
    cursor: pointer !important; 
    font-size: 0.9rem !important; 
    width: 100% !important; 
    transition: all 0.3s ease !important;
    box-shadow: 0 10px 25px rgba(37, 211, 102, 0.3) !important;
}
.whatsapp-btn-style:hover { 
    background-color: #128C7E !important; 
    transform: translateY(-3px) !important; 
    box-shadow: 0 12px 24px -10px rgba(37, 211, 102, 0.5) !important; 
}