/* 1. RESET UNIVERSAL PARA EL FORMULARIO */
.wpcf7-form,
.wpcf7-form *,
.wpcf7-form *:before,
.wpcf7-form *:after {
    box-sizing: border-box !important;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
    text-shadow: none !important;
}

/* 2. CONTENEDOR PRINCIPAL */
.wpcf7-form {
    width: 100% !important;
    margin: 0 auto !important;
    padding: 40px !important;
    background: #ffffff !important;
    border-radius: 20px !important;
    line-height: 1.6 !important;
    color: #2d3436 !important;
}

/* 3. SISTEMA DE REJILLA (GRID) */
.wpcf7-form .row {
    display: flex !important;
    flex-wrap: wrap !important;
    margin-right: -12px !important;
    margin-left: -12px !important;
}

.wpcf7-form [class*="col-"] {
    padding-right: 12px !important;
    padding-left: 12px !important;
    margin-bottom: 24px !important;
    width: 100% !important;
    flex: 0 0 100% !important;
}

@media (min-width: 768px) {
    .wpcf7-form .col-md-6 { flex: 0 0 50% !important; max-width: 50% !important; }
    .wpcf7-form .col-md-4 { flex: 0 0 33.33% !important; max-width: 33.33% !important; }
    .wpcf7-form .col-md-3 { flex: 0 0 25% !important; max-width: 25% !important; }
}

/* 4. FORM CONTROLS (INPUTS) */
.wpcf7-form .form-group {
    margin-bottom: 20px !important;
    display: block !important;
}

.wpcf7-form .wpcf7-form-control-wrap {
    display: block !important;
    margin-bottom: 10px !important;
}

.wpcf7-form .form-control {
    display: block !important;
    width: 100% !important;
    height: 54px !important;
    padding: 12px 20px !important;
    font-size: 15px !important;
    color: #2d3436 !important;
    background-color: #f9f9f9 !important;
    border: 1.5px solid #ececec !important;
    border-radius: 12px !important;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
    outline: none !important;
    box-shadow: none !important;
}

.wpcf7-form textarea.form-control {
    height: auto !important;
    min-height: 140px !important;
}

.wpcf7-form .form-control:focus {
    background-color: #ffffff !important;
    border-color: #00f2ff !important;
    box-shadow: 0 0 0 4px rgba(0, 242, 255, 0.1) !important;
}

.wpcf7-form .form-control::placeholder {
    color: #a0a0a0 !important;
    font-weight: 400 !important;
}

/* 5. ELEMENTOS DECORATIVOS */
.wpcf7-form h2 {
    margin: 0 0 15px 0 !important;
    font-size: 28px;
    font-weight: 700 !important;
    letter-spacing: -0.5px !important;
}

.wpcf7-form p {
    margin: 0 0 35px 0 !important;
    font-size: 15px;
    color: #636e72;
    line-height: 1.7 !important;
}

/* 6. BOTÓN DE ENVÍO */
.wpcf7-form .buttons {
    margin-top: 20px !important;
}

.wpcf7-form .submit-button {
    background: #00f2ff !important;
    color: #000000 !important;
    padding: 18px 45px !important;
    border: none !important;
    border-radius: 14px !important;
    font-weight: 700 !important;
    font-size: 16px !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 4px 15px rgba(0, 242, 255, 0.2) !important;
}

.wpcf7-form .submit-button:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 25px rgba(0, 242, 255, 0.4) !important;
    background: #00e0ed !important;
}

.wpcf7-form .submit-button:active {
    transform: translateY(0) !important;
}

/* 7. MENSAJES DE ERROR/ÉXITO DE CONTACT FORM 7 */
.wpcf7-form .wpcf7-not-valid-tip {
    color: #ff00ff !important;
    font-size: 13px !important;
    margin-top: 5px !important;
    display: block !important;
}

.wpcf7-form .wpcf7-response-output {
    margin: 20px 0 0 0 !important;
    padding: 15px !important;
    border: 2px solid #00f2ff !important;
    border-radius: 10px !important;
    color: #333 !important;
    text-align: center !important;
}

/* 8. CHECKBOX & RADIO LISTS */
.wpcf7-form .wpcf7-checkbox,
.wpcf7-form .wpcf7-radio {
    display: block !important;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 0 20px 0 !important;
}

.wpcf7-form .wpcf7-list-item {
    display: block !important;
    margin: 0 0 8px 0 !important;
}

.wpcf7-form .wpcf7-list-item label {
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
    margin: 0 !important;
    padding: 2px 0 !important;
    color: #2d3436 !important;
}

.wpcf7-form .wpcf7-list-item input[type="checkbox"],
.wpcf7-form .wpcf7-list-item input[type="radio"] {
    width: 18px !important;
    height: 18px !important;
    margin: 0 10px 0 0 !important;
    padding: 0 !important;
    cursor: pointer !important;
    flex-shrink: 0 !important;
    position: relative !important;
    top: 0 !important;
    accent-color: #00f2ff !important;
}

/* El span interior que CF7 añade al texto de la opción */
.wpcf7-form .wpcf7-list-item-label {
    color: #2d3436 !important;
    font-size: 15px !important;
    line-height: 1.4 !important;
}

.wpcf7-form select.form-control {
    padding-right: 40px !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='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 15px center !important;
    background-size: 16px !important;
}

/* 9. CAMPO DE SUBIDA DE ARCHIVOS [file] */
.wpcf7-form .wpcf7-file,
.wpcf7-form .wpcf7-form-control-wrap:has(input[type="file"]) {
    display: block !important;
    width: 100% !important;
    margin-bottom: 20px !important;
}

.wpcf7-form input[type="file"] {
    display: block !important;
    width: 100% !important;
    padding: 12px 16px !important;
    background: #f9f9f9 !important;
    border: 1.5px dashed #c0c0c0 !important;
    border-radius: 12px !important;
    font-size: 14px !important;
    color: #636e72 !important;
    cursor: pointer !important;
    transition: all 0.25s ease !important;
    outline: none !important;
    box-shadow: none !important;
}

.wpcf7-form input[type="file"]:hover,
.wpcf7-form input[type="file"]:focus {
    border-color: #00f2ff !important;
    background: #f0fffe !important;
}

.wpcf7-form input[type="file"]::file-selector-button {
    padding: 8px 16px !important;
    background: #00f2ff !important;
    color: #000 !important;
    border: none !important;
    border-radius: 8px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    margin-right: 14px !important;
    transition: background 0.2s ease !important;
}

.wpcf7-form input[type="file"]::file-selector-button:hover {
    background: #00d4e0 !important;
}

/* 10. CAMPO DE ACEPTACIÓN [acceptance] — RGPD */
.wpcf7-form .wpcf7-acceptance {
    display: block !important;
    margin-bottom: 20px !important;
}

.wpcf7-form .wpcf7-acceptance .wpcf7-list-item {
    display: block !important;
    margin: 0 !important;
}

.wpcf7-form .wpcf7-acceptance .wpcf7-list-item label {
    display: inline-flex !important;
    align-items: flex-start !important;
    gap: 12px !important;
    font-size: 14px !important;
    color: #636e72 !important;
    cursor: pointer !important;
    line-height: 1.5 !important;
}

.wpcf7-form .wpcf7-acceptance input[type="checkbox"] {
    width: 18px !important;
    height: 18px !important;
    margin: 2px 0 0 0 !important;
    flex-shrink: 0 !important;
    cursor: pointer !important;
    accent-color: #00f2ff !important;
}

/* 11. CAMPO QUIZ ANTI-SPAM [quiz] */
.wpcf7-form .wpcf7-quiz {
    display: block !important;
    margin-bottom: 20px !important;
}

.wpcf7-form .wpcf7-quiz-label {
    display: block !important;
    font-size: 14px !important;
    color: #636e72 !important;
    margin-bottom: 8px !important;
    font-weight: 500 !important;
}

.wpcf7-form input.wpcf7-quiz,
.wpcf7-form input[type="text"].wpcf7-quiz {
    display: block !important;
    width: 100% !important;
    height: 54px !important;
    padding: 12px 20px !important;
    font-size: 15px !important;
    color: #2d3436 !important;
    background-color: #f9f9f9 !important;
    border: 1.5px solid #ececec !important;
    border-radius: 12px !important;
    transition: all 0.25s ease !important;
    outline: none !important;
}

.wpcf7-form input.wpcf7-quiz:focus {
    border-color: #00f2ff !important;
    box-shadow: 0 0 0 4px rgba(0, 242, 255, 0.1) !important;
    background: #ffffff !important;
}

/* 12. CAMPO NUMÉRICO [number] */
.wpcf7-form input[type="number"].form-control {
    -moz-appearance: textfield !important;
}

.wpcf7-form input[type="number"].form-control::-webkit-inner-spin-button,
.wpcf7-form input[type="number"].form-control::-webkit-outer-spin-button {
    opacity: 1 !important;
    height: 30px !important;
    margin-right: 10px !important;
}

/* 13. CAMPO DE FECHA [date] */
.wpcf7-form input[type="date"].form-control {
    cursor: pointer !important;
    color: #2d3436 !important;
}

.wpcf7-form input[type="date"].form-control::-webkit-calendar-picker-indicator {
    opacity: 0.6 !important;
    cursor: pointer !important;
    padding: 4px !important;
}

/* 14. CAMPO RANGO [range] */
.wpcf7-form input[type="range"] {
    -webkit-appearance: none !important;
    appearance: none !important;
    display: block !important;
    width: 100% !important;
    height: 6px !important;
    background: #ececec !important;
    border-radius: 3px !important;
    outline: none !important;
    margin: 14px 0 !important;
    cursor: pointer !important;
    border: none !important;
    box-shadow: none !important;
}

.wpcf7-form input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none !important;
    appearance: none !important;
    width: 22px !important;
    height: 22px !important;
    border-radius: 50% !important;
    background: #00f2ff !important;
    cursor: pointer !important;
    border: 2px solid white !important;
    box-shadow: 0 2px 6px rgba(0, 242, 255, 0.4) !important;
    transition: transform 0.15s ease !important;
}

.wpcf7-form input[type="range"]::-webkit-slider-thumb:hover {
    transform: scale(1.15) !important;
}

.wpcf7-form input[type="range"]::-moz-range-thumb {
    width: 22px !important;
    height: 22px !important;
    border-radius: 50% !important;
    background: #00f2ff !important;
    cursor: pointer !important;
    border: 2px solid white !important;
    box-shadow: 0 2px 6px rgba(0, 242, 255, 0.4) !important;
}

/* 15. SEPARACIÓN — Evitar superposición con el botón de envío */
.wpcf7-form .buttons {
    margin-top: 10px !important;
    margin-bottom: 24px !important;
    clear: both !important;
}

/* 16. ACCENT COLOR GLOBAL */
.wpcf7-form input[type="checkbox"],
.wpcf7-form input[type="radio"] {
    accent-color: #00f2ff !important;
}
