/* 2026-11-07 — Modulo preventivo con la grafica nuova, sull'impostazione di quello del sito di Reyt:
   scheda bianca, campi «a pastiglia» con l'etichetta dentro, due per riga, camere in riquadri,
   interruttori in riga, pulsante d'invio largo. Solo stile: i quattro moduli di Contact Form 7
   (Preventivo_api IT/EN/FR/DE) e gli script che mostrano camere ed età restano come sono.
   Caricato da header.php dopo style.min.css; i !important battono gli stili scritti nei moduli. */

#cf-prev {
    --bev-mare: #17a2b8;
    --bev-mare-testo: #117a8b;   /* scritte piccole: contrasto 4,6 anche sul fondo dei campi */
    --bev-campo: #edf6f8;
    --bev-linea: #e1eaec;
    --bev-sole: #ffc107;
    --bev-sole-scuro: #e0a800;
    --bev-inchiostro: #24323d;
    padding: 40px 0 56px;
}
#cf-prev h3 { margin-bottom: 20px; }

/* La scheda */
#modulo_contatto {
    width: calc(100% - 24px);
    max-width: 860px;
    margin: 0 auto;
    padding: 22px 16px 24px;
    background: #fff;
    border: 0;
    border-radius: 24px;
    box-shadow: 0 12px 32px rgba(36, 50, 61, .10);
    color: var(--bev-inchiostro);
}
@media (min-width: 768px) {
    #modulo_contatto { width: calc(100% - 64px); padding: 32px 36px 36px; border-radius: 28px; }
}
#modulo_contatto fieldset { margin: 0 0 14px; }
#modulo_contatto legend {
    margin: 0 0 8px;
    font-size: 1rem;
    font-weight: 800;
    color: var(--bev-mare-testo);
}

/* Righe e colonne: dieci pixel fra un campo e l'altro */
#modulo_contatto .row { margin-left: -5px; margin-right: -5px; }
#modulo_contatto .row > [class*="col-"] { padding-left: 5px; padding-right: 5px; }
@media (min-width: 576px) {
    #modulo_contatto .col-sm-3 { flex: 0 0 50%; max-width: 50%; }
    #modulo_contatto .col-sm-4 { flex: 1 1 0; max-width: none; }          /* Trattamento: il resto della riga */
    #modulo_contatto #form_sogg_container { flex: 0 0 120px; max-width: 120px; }
}
/* Arrivo e partenza, adulti e bambini: affiancati anche sul telefono */
#modulo_contatto .col-sm-3:has(.sel_periodo),
#modulo_contatto .room-block .col-md-2 { flex: 0 0 50%; max-width: 50%; }
#modulo_contatto .eta-wrap,
#modulo_contatto fieldset:has(#allergens) .row > [class*="col-"] { flex: 0 0 100%; max-width: 100%; }

/* Campi «a pastiglia»: etichetta piccola dentro, fondo azzurro, anello al clic */
#modulo_contatto .form-group:not(.row):not(:has(#pets_wrap)),
#modulo_contatto .eta-wrap .row > div {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-bottom: 10px;
    padding: 9px 14px 8px;
    background: var(--bev-campo);
    border-radius: 14px;
    transition: box-shadow .15s;
}
#modulo_contatto .form-group:not(.row):focus-within,
#modulo_contatto .eta-wrap .row > div:focus-within { box-shadow: 0 0 0 2px var(--bev-mare); }
#modulo_contatto .form-group:not(.row):not(:has(#pets_wrap)) > label,
#modulo_contatto .eta-wrap .row > div > label {
    display: block;
    width: auto;
    margin: 0;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--bev-mare-testo);
}
#modulo_contatto .form-group > label > i { display: none; }            /* niente icone nelle etichette */
#modulo_contatto .input-group { display: block; }
#modulo_contatto div.input-group span.cnt { display: none; }           /* niente icone nei campi */
#modulo_contatto .form-control,
#modulo_contatto input.input_label {
    height: auto;
    min-height: 27px;
    padding: 2px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    font-size: 16px;                                                    /* 16: l'iPhone non ingrandisce */
    font-weight: 600;
    color: var(--bev-inchiostro);
}
#modulo_contatto .form-control:focus { outline: none; box-shadow: none; background: transparent; }
#modulo_contatto select.form-control { cursor: pointer; }
#modulo_contatto textarea.form-control { resize: vertical; min-height: 48px; }
#modulo_contatto #messaggio { min-height: 84px; }
#modulo_contatto input::placeholder,
#modulo_contatto textarea::placeholder { font-size: .9em; font-weight: 400; color: #5d6d78; opacity: .8; }
#modulo_contatto .form-group small.form-text { margin: 2px 0 0; font-size: 12px; color: #5d6d78 !important; }
#form_sogg_notti { text-align: left; }

/* Camere: un riquadro per camera, età dei bambini in fila */
#modulo_contatto .room-block {
    margin-bottom: 10px;
    padding: 12px 12px 2px;
    border: 2px solid var(--bev-linea);
    border-radius: 18px;
}
#modulo_contatto .room-block > hr { display: none; }
#modulo_contatto .room-title,
#modulo_contatto .room-block > .row:first-of-type .col-md-12 > div {
    margin: 0 0 8px !important;
    font-size: 1rem !important;
    font-weight: 800 !important;
    color: var(--bev-inchiostro) !important;
}
#modulo_contatto .room-title i,
#modulo_contatto .room-block .col-md-12 > div i { color: var(--bev-mare); margin-right: 4px; }
#modulo_contatto .room-block .col-md-12[style] { margin-bottom: 0 !important; }
#modulo_contatto .btn-remove-room { padding: 0; font-size: 13px; font-weight: 700; color: #b02a37 !important; }
#modulo_contatto .btn-remove-room:hover { text-decoration: underline !important; }
#modulo_contatto .eta-wrap > .row.form-group {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
    gap: 0 10px;
    margin: 0;
}
#modulo_contatto .eta-wrap .row > div { max-width: none; padding: 9px 14px 8px; }

/* «Aggiungi altra camera»: bordo tratteggiato, come un posto libero */
#modulo_contatto #add-room-wrap {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    text-align: left !important;
}
#modulo_contatto #btn-add-room {
    padding: 9px 16px !important;
    border: 2px dashed #8fd0dc;
    border-radius: 14px;
    background: transparent;
    box-shadow: none !important;
    color: var(--bev-mare-testo);
    font-size: 14px;
    font-weight: 800 !important;
}
#modulo_contatto #btn-add-room:hover,
#modulo_contatto #btn-add-room:focus-visible { background: var(--bev-campo); color: var(--bev-mare-testo); }

/* Interruttori in riga: prima l'interruttore, poi la scritta (che lo accende anche lei) */
#modulo_contatto fieldset:has(#allergens) .col-md-3 { order: -1; }   /* animale prima delle allergie, come Reyt */
#modulo_contatto .form-group:has(#pets_wrap) {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
    padding: 2px 0;
}
#modulo_contatto .form-group:has(#pets_wrap) > label {
    order: 2;
    margin: 0 !important;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
}
#modulo_contatto .form-group:has(#pets_wrap) > label > i { display: inline; margin-right: 4px; }
#modulo_contatto #pets_wrap input[type=checkbox],
#modulo_contatto #privacy_wrap input[type=checkbox] {
    width: 46px;
    height: 26px;
    border: 0;
    border-radius: 13px;
    background: #c3d3d6 radial-gradient(circle, #fff 0 9px, rgba(0,0,0,.15) 10px, transparent 11.5px) no-repeat 0 50% / 26px 26px;
}
#modulo_contatto #pets_wrap input[type=checkbox]:checked,
#modulo_contatto #privacy_wrap input[type=checkbox]:checked {
    background-color: var(--bev-mare);
    background-position: 100% 50%;
}
#modulo_contatto #pets_wrap input[type=checkbox]:focus-visible,
#modulo_contatto #privacy_wrap input[type=checkbox]:focus-visible { box-shadow: 0 0 0 3px rgba(23, 162, 184, .45); }
#modulo_contatto #privacy_wrap.wpcf7-not-valid input[type=checkbox] { box-shadow: 0 0 0 2px #c0392b; }

/* Privacy: a sinistra, sopra il pulsante */
#modulo_contatto .col-md-12:has(#privacy_wrap) {
    justify-content: flex-start !important;
    padding-top: 4px;
    padding-bottom: 16px !important;
    font-size: 15px;
    color: #5d6d78;
}
#modulo_contatto .col-md-12:has(#privacy_wrap) label { cursor: pointer; }
#modulo_contatto .col-md-12:has(#privacy_wrap) a.text-warning { color: var(--bev-mare-testo) !important; text-decoration: underline; }
#modulo_contatto .wpcf7-form-control-wrap[data-name="privacy"] .wpcf7-not-valid-tip { left: 0; transform: none; }
#modulo_contatto .wpcf7-form-control-wrap[data-name="privacy"]:has(.wpcf7-not-valid-tip) { margin-bottom: 0; }
#modulo_contatto .col-md-12:has([data-name="privacy"] .wpcf7-not-valid-tip) { padding-bottom: 38px !important; }

/* Pulsante d'invio: largo quanto la scheda */
#modulo_contatto .wpcf7-submit {
    width: 100%;
    min-height: 54px;
    border: 0;
    border-radius: 14px;
    background: var(--bev-sole);
    color: #212529;
    font-size: 17px;
    font-weight: 800;
    transition: background-color .2s;
}
#modulo_contatto .wpcf7-submit:hover,
#modulo_contatto .wpcf7-submit:focus-visible { background: var(--bev-sole-scuro); }
#modulo_contatto .wpcf7-submit:disabled { opacity: .6; cursor: wait; }
#modulo_contatto .wpcf7-submit i { margin-right: 6px; }
#modulo_contatto .wpcf7-spinner { display: block; margin: 10px auto 0; }

/* Errori ed esito */
#modulo_contatto .form-group:not(.row):has(.wpcf7-not-valid) { box-shadow: 0 0 0 2px #c0392b; }
#modulo_contatto .wpcf7-not-valid-tip { font-size: 13px; font-weight: 600; color: #b0301f; }
#cf-prev .wpcf7-response-output {
    width: calc(100% - 24px);
    max-width: 860px;
    margin: 16px auto 0 !important;
    padding: 12px 16px !important;
    border-width: 2px !important;
    border-radius: 14px;
    background: #fff;
    font-weight: 700;
}
