/* ======================================================
   CONTACT FORM 7 – FLOATING FORM COMPATIBLE CF7
====================================================== */

.cvall-form {
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding: 32px;
    background: #fff;}

.cvall-form-row {
    display: grid;
    gap: 20px;
    margin-bottom: 20px;}

.cvall-form-row.cols-1 { grid-template-columns: 1fr;}

.cvall-form-row.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr));}

.cvall-field,
.cvall-floating { position: relative;}

.cvall-field p { margin: 0;}

.cvall-field br { display: none;}

/* CVALL – Título formulario */
.cvall-form-title{
	text-align:center; margin-bottom:35px; }

.cvall-form-title h2{
	margin:0 0 10px; font-size:38px; font-weight:700; line-height:1.1;
	color:#000; letter-spacing:-1px; 
}

.cvall-form-title p{ 
    margin:0; font-size:16px; color:#000; line-height:1.6; }

.cvall-floating .wpcf7-form-control-wrap { display: block;}

.cvall-floating input,
.cvall-floating textarea,
.cvall-floating select {
    width: 100%;
    min-height: 58px;
    border-radius: 6px;
    padding: 24px 18px 8px;
    background: #fff;
    color: #111;
    border: 1px solid rgba(0,0,0,.12);
    box-shadow: 0 8px 24px rgba(0,0,0,.045);
    font-family: var(--font-ui);
    font-size: .95rem;
    outline: none;}

.cvall-floating textarea {
    min-height: 80px;
    resize: vertical;}

.cvall-floating p > span:not(.wpcf7-form-control-wrap) {
    position: absolute;
    left: 18px;
    top: 11px;
    z-index: 3;
    color: #111;
    background: transparent;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
    pointer-events: none;}

.cvall-floating input:focus,
.cvall-floating textarea:focus,
.cvall-floating select:focus {
    border-color: #111;
    box-shadow: 0 0 0 3px rgba(0,0,0,.08);}

/* Date limpio */
.cvall-date:not(.has-value) input[type="date"] {
    color: transparent;
    font-size: 0;}

.cvall-date.has-value input[type="date"] {
    color: #111;
    font-size: .95rem;}

.cvall-date input[type="date"]::-webkit-calendar-picker-indicator {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;}

/* Submit */
.cvall-form-actions p { margin: 0;}

.cvall-form-actions input[type="submit"] {
    width: 100%;
    min-height: 58px;
    margin-top: 4px;
    border: none;
    border-radius: 999px;
    background: #111;
    color: #fff;
    font-family: var(--font-ui);
    font-size: .95rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    cursor: pointer;
    box-shadow: 0 10px 26px rgba(0,0,0,.18);}

.cvall-datepicker { cursor: pointer;}

/* Select */
.cvall-floating select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    cursor: pointer;}

/* Flecha */
.cvall-select {
    background-image:
        linear-gradient(45deg, transparent 50%, #111 50%),
        linear-gradient(135deg, #111 50%, transparent 50%);
    background-position:
        calc(100% - 22px) calc(50% - 3px),
        calc(100% - 16px) calc(50% - 3px);
    background-size: 6px 6px;
    background-repeat: no-repeat;}



/* ======================================================
   ICONOS CAMPOS FORMULARIO
====================================================== */

.cvall-floating { position: relative;}

/* Inputs */
.cvall-floating input,
.cvall-floating textarea,
.cvall-floating select { padding-left: 52px !important;}

/* Icono base */
.cvall-floating::before {

    position: absolute;

    top: 29px;
    left: 18px;

    z-index: 5;

    font-family: dashicons;
    font-size: 18px;

    color: rgba(0,0,0,.55);

    line-height: 1;

    pointer-events: none;}

/* Nombre */
.cvall-name::before { content: "\f110";}

/* Email */
.cvall-email::before { content: "\f465";}

/* Teléfono */
.cvall-phone::before { content: "\f525";}

/* Select */
.cvall-select-field::before { content: "\f107";}

/* Fecha */
.cvall-date::before { content: "\f508";}

/* Personas */
.cvall-guests-field::before { content: "\f307";}

/* Mensaje */
.cvall-message::before { content: "\f125";}

/* ======================================================
   NUMBER FIELD FIX
====================================================== */

.cvall-floating input[type="number"] {
    appearance: auto;
    -webkit-appearance: auto;
    -moz-appearance: auto;

    min-height: 58px;
    padding-right: 12px;}

/* Mantener flechas visibles */
.cvall-floating input[type="number"]::-webkit-outer-spin-button,
.cvall-floating input[type="number"]::-webkit-inner-spin-button {
    opacity: 1;}


/* Oculta mensajes de error antes de presionar enviar */
.wpcf7 form:not(.cvall-form-submitted) .wpcf7-not-valid-tip {
    display: none !important;}

.wpcf7 form:not(.cvall-form-submitted) .wpcf7-response-output {
    display: none !important;}




/* ======================================================
   CF7 – MENSAJES Y VALIDACIÓN
====================================================== */

/* Campo inválido */
.wpcf7-not-valid {
    border-color: #ff4d4d !important;
    box-shadow: 0 0 0 3px rgba(255,77,77,.10) !important;}

/* Mensaje general */
.wpcf7-response-output {

    margin-top: 18px !important;

    border-radius: 14px;

    padding: 14px 18px !important;

    font-size: .92rem;
    line-height: 1.5;}

/* Error */
.wpcf7-validation-errors,
.wpcf7 form.invalid .wpcf7-response-output {

    border: 1px solid rgba(255,77,77,.25) !important;

    background: rgba(255,77,77,.06);

    color: #b30000;}

/* Enviado */
.wpcf7 form.sent .wpcf7-response-output {

    border: 1px solid rgba(55,180,90,.20) !important;

    background: rgba(55,180,90,.08);

    color: #167a34;}

/* ======================================================
   OCULTAR MENSAJE GENERAL CF7
====================================================== */

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
    display: none !important;}

.wpcf7 form:not(.cvall-form-submitted) .wpcf7-not-valid {
    border-color: rgba(0,0,0,.12) !important;
    box-shadow: 0 8px 24px rgba(0,0,0,.045) !important;}

.wpcf7 form.cvall-form-submitted .wpcf7-not-valid {
    border-color: #ff4d4d !important;
    box-shadow: 0 0 0 3px rgba(255,77,77,.10) !important;}

/* ======================================================
   CF7 – MODAL ERROR
====================================================== */

.cvall-cf7-modal {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(0,0,0,.45);}

.cvall-cf7-modal.is-active { display: flex;}

.cvall-cf7-box {
    width: min(100%, 520px);
    padding: 42px 36px 34px;
    border-radius: 6px;
    background: #fff;
    text-align: center;
    box-shadow: 0 24px 70px rgba(0,0,0,.28);}

.cvall-cf7-icon {
    width: 86px;
    height: 86px;
    margin: 0 auto 24px;
    border: 3px solid #ff6b6b;
    border-radius: 50%;
    color: #ff6b6b;
    font-size: 66px;
    line-height: 76px;
    font-weight: 300;}

.cvall-cf7-box h3 {
    margin: 0 0 14px;
    color: #404854;
    font-family: var(--font-ui);
    font-size: clamp(1.6rem, 4vw, 2rem);
    font-weight: 700;}

.cvall-cf7-box p {
    margin: 0 0 28px;
    color: #333;
    font-size: 1.05rem;
    line-height: 1.45;}

.cvall-cf7-close {
    min-width: 92px;
    min-height: 44px;
    border: none;
    border-radius: 4px;
    background: #7066e0;
    color: #fff;
    font-size: .95rem;
    font-weight: 700;
    cursor: pointer;}

/* ======================================================
   OCULTAR TEXTO ERROR CF7
====================================================== */

.wpcf7-not-valid-tip { display: none !important;}

/* ======================================================
   SPINNER
====================================================== */

.wpcf7-spinner {
    display: block !important;
    margin: 14px auto 0 !important;
    float: none !important;}


.flatpickr-day.selected {
    background: #d7b56d;
    border-color: #d7b56d;
    color: #111;}

.flatpickr-day:hover {
    background: rgba(255,255,255,.12);}

/* ======================================================
   FLATPICKR – CVALL LIGHT STYLE
====================================================== */

.flatpickr-calendar {
    background: #fff !important;
    border: 1px solid rgba(0,0,0,.12) !important;
    border-radius: 18px !important;
    box-shadow: 0 18px 50px rgba(0,0,0,.22) !important;
    overflow: hidden;}

.flatpickr-months {
    padding: 10px 8px 4px;}

.flatpickr-month,
.flatpickr-current-month,
.flatpickr-current-month input.cur-year,
.flatpickr-current-month .flatpickr-monthDropdown-months {
    color: #111 !important;
    font-family: var(--font-ui);
    font-weight: 700;}

.flatpickr-weekday {
    color: #555 !important;
    font-weight: 700 !important;}

.flatpickr-day {
    color: #222 !important;
    border-radius: 999px !important;}

.flatpickr-day:hover {
    background: rgba(0,0,0,.07) !important;
    border-color: transparent !important;}

.flatpickr-day.today {
    border-color: #111 !important;}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange {
    background: #111 !important;
    border-color: #111 !important;
    color: #fff !important;}

.flatpickr-day.disabled,
.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay {
    color: rgba(0,0,0,.25) !important;}

.flatpickr-prev-month,
.flatpickr-next-month {
    fill: #111 !important;
    color: #111 !important;}

.flatpickr-prev-month:hover svg,
.flatpickr-next-month:hover svg {
    fill: #d7b56d !important;}

/* ======================================================
   FLATPICKR FINAL TUNING
====================================================== */

/* Calendario más elegante */
.flatpickr-calendar { margin-top: 10px;}

/* Día hover más suave */
.flatpickr-day:hover {
    background: rgba(0,0,0,.05) !important;}

/* Fecha seleccionada */
.flatpickr-day.selected {
    background: #111 !important;
    border-color: #111 !important;
    color: #fff !important;}

/* Inputs fechas */
.flatpickr-input { cursor: pointer;}

/* Flechas */
.flatpickr-prev-month:hover,
.flatpickr-next-month:hover { color: #c9a85d !important;}


/* Mobile */
@media (max-width: 680px) {
    .cvall-form { padding: 20px; }

    .cvall-form-row.cols-2 {  grid-template-columns: 1fr; }
}

/* Responsive */
@media (max-width:768px){

  .cvall-form-title h2{
    font-size:30px;
  }

  .cvall-form-title p{
    font-size:15px;
  }

}



/* ===============================
   CVALL – Popup Success
=============================== */

.cvall-popup-success{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.65);
    display:flex;
    align-items:center;
    justify-content:center;
    z-index:999999;
    opacity:0;
    visibility:hidden;
    transition:.35s ease;
    padding:20px;
}

.cvall-popup-success.active{
    opacity:1;
    visibility:visible;
}

.cvall-popup-box{
    width:100%;
    max-width:420px;
    background:#fff;
    border-radius:24px;
    padding:45px 35px;
    text-align:center;
    transform:translateY(40px);
    transition:.35s ease;
    box-shadow:0 20px 60px rgba(0,0,0,.25);
}

.cvall-popup-success.active .cvall-popup-box{
    transform:translateY(0);
}

.cvall-popup-icon{
    width:90px;
    height:90px;
    margin:0 auto 25px;
    border-radius:50%;
    background:#1fa34a;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:42px;
    font-weight:700;
}

.cvall-popup-box h3{
    margin:0 0 12px;
    font-size:32px;
    line-height:1.1;
    color:#111;
}

.cvall-popup-box p{
    margin:0;
    font-size:17px;
    line-height:1.6;
    color:#666;
}

.wpcf7-response-output{
    display:none !important;
}