/*
 * Pagina "La tua bomboniera" (OOR_Bomboniera). Contenitori Elementor:
 * oor-bo-sez-testa, oor-bo-sez-corpo (oor-bo-modulo + oor-bo-col-lato).
 */

.oor-bomboniera-pagina {
    --bo-blu: #035F83;
    --bo-inchiostro: #0b2f40;
    --bo-testo: #3b5562;
    --bo-grigio: #6b7f89;
    --bo-linea: #e2e9ed;
    --bo-fondo: #f5f8fa;
}
.oor-bomboniera-pagina .page-content { padding-top: 0; }
.oor-bo-sopra { margin: 0 0 8px; color: var(--bo-blu); font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }

/* --- Testata ------------------------------------------------------------- */
.oor-bo-testa {
    display: grid;
    grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
    gap: 48px;
    align-items: center;
    max-width: 1240px;
    margin: 24px auto 0;
    padding: 52px 48px;
    border-radius: 28px;
    background:
        radial-gradient(circle at 100% 0%, rgba(3, 95, 131, .12), transparent 45%),
        linear-gradient(135deg, #fdf8f2 0%, #f5f8fa 100%);
}
.oor-bo-testa h1 {
    margin: 0 0 14px;
    color: var(--bo-inchiostro);
    font-size: clamp(32px, 4.4vw, 52px);
    line-height: 1.08;
    font-weight: 500;
    letter-spacing: -.01em;
}
.oor-bo-testa__testo > p { color: var(--bo-testo); font-size: 17px; line-height: 1.65; margin: 0; }
.oor-bo-appuntamento {
    display: flex;
    gap: 14px;
    align-items: center;
    margin-top: 22px;
    padding: 16px 18px;
    border-radius: 16px;
    background: var(--bo-blu);
    color: rgba(255, 255, 255, .88);
}
.oor-bo-appuntamento__icona { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: rgba(255, 255, 255, .15); color: #fff; }
.oor-bo-appuntamento__icona svg { width: 22px; height: 22px; }
.oor-bo-appuntamento small { display: block; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; opacity: .8; }
.oor-bo-appuntamento strong { display: block; color: #fff; font-size: 19px; font-weight: 600; }
.oor-bo-appuntamento span span { font-size: 13.5px; }

.oor-bo-passi { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 14px; }
.oor-bo-passi li {
    display: flex;
    gap: 16px;
    margin: 0;
    padding: 18px 20px;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 14px 30px -24px rgba(11, 47, 64, .5);
}
.oor-bo-passi__numero { flex: none; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--bo-blu); color: #fff; font-weight: 600; }
.oor-bo-passi strong { display: block; color: var(--bo-inchiostro); font-size: 16.5px; font-weight: 600; }
.oor-bo-passi li span span { display: block; color: var(--bo-grigio); font-size: 14px; line-height: 1.5; margin-top: 2px; }

/* --- Corpo: modulo + colonna ------------------------------------------- */
.oor-bomboniera-pagina .e-con.oor-bo-sez-corpo {
    display: grid !important;
    grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
    gap: 28px;
    align-items: start;
    max-width: 1240px;
    width: auto !important;
    margin: 32px auto 72px;
    padding: 0 !important;
}
.oor-bomboniera-pagina .e-con.oor-bo-sez-corpo > .e-con,
.oor-bomboniera-pagina .e-con.oor-bo-sez-testa { width: auto !important; --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; }

.oor-bomboniera-pagina .e-con.oor-bo-modulo {
    padding: 36px !important;
    border-radius: 22px;
    background: #fff;
    border: 1px solid var(--bo-linea);
    box-shadow: 0 24px 50px -34px rgba(11, 47, 64, .45);
}
.oor-bo-modulo .oor-bo-modulo__titolo .elementor-heading-title { color: var(--bo-inchiostro) !important; font-family: "Jost", Arial, sans-serif !important; font-size: 26px !important; font-weight: 500 !important; margin: 0 0 4px; }
.oor-bo-modulo .oor-bo-modulo__sotto .elementor-heading-title { color: var(--bo-grigio) !important; font-family: "Jost", Arial, sans-serif !important; font-size: 15px !important; font-weight: 400 !important; margin-bottom: 20px; }

/* L'appuntamento e' nel riquadro in testata: nel modulo i quattro campi restano (si inviano) ma non si vedono */
.oor-bo-modulo .elementor-field-group-data_appuntamento,
.oor-bo-modulo .elementor-field-group-ore_appuntamento,
.oor-bo-modulo .elementor-field-group-show_data_appuntamento,
.oor-bo-modulo .elementor-field-group-show_ore_appuntamento,
.oor-bo-modulo .elementor-field-type-html { display: none !important; }

.oor-bo-modulo .elementor-form,
.oor-bo-modulo .elementor-form label,
.oor-bo-modulo .elementor-form .elementor-field,
.oor-bo-modulo .elementor-form .elementor-button { font-family: "Jost", Arial, sans-serif !important; }
.oor-bo-modulo .elementor-form .elementor-field-group { margin-bottom: 16px; }
.oor-bo-modulo .elementor-form .elementor-field-label { color: var(--bo-inchiostro) !important; font-size: 14px !important; font-weight: 500 !important; margin-bottom: 6px; }
.oor-bo-modulo .elementor-form .elementor-field-textual,
.oor-bo-modulo .elementor-form input[type="number"],
.oor-bo-modulo .elementor-form input[type="date"] {
    min-height: 50px;
    padding: 12px 16px !important;
    border: 1px solid var(--bo-linea) !important;
    border-radius: 12px !important;
    background: var(--bo-fondo) !important;
    color: var(--bo-inchiostro) !important;
    font-size: 15px !important;
    transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}
.oor-bo-modulo .elementor-form textarea.elementor-field-textual { min-height: 150px; }
.oor-bo-modulo .elementor-form .elementor-field-textual:focus {
    border-color: var(--bo-blu) !important;
    background: #fff !important;
    box-shadow: 0 0 0 3px rgba(3, 95, 131, .12);
    outline: 0;
}
/* Quantita': il campo con + e - del tema, arrotondato come gli altri */
.oor-bo-modulo .elementor-form .input-group,
.oor-bo-modulo .elementor-form .input-spinner { border-radius: 12px; overflow: hidden; }
.oor-bo-modulo .elementor-form .elementor-field-subgroup .elementor-field-option label { color: var(--bo-testo); font-size: 14.5px; }
.oor-bo-modulo .elementor-form .elementor-field-type-radio .elementor-field-subgroup { display: flex; gap: 18px; }
.oor-bo-modulo .elementor-form .elementor-upload-field {
    width: 100%;
    padding: 14px !important;
    border: 1.5px dashed #c9d6dd !important;
    border-radius: 12px !important;
    background: var(--bo-fondo) !important;
    font-size: 14px !important;
}
.oor-bo-modulo .elementor-form .elementor-field-type-submit { width: 100% !important; flex-basis: 100% !important; max-width: 100% !important; }
.oor-bo-modulo .elementor-form .elementor-button {
    width: 100%;
    min-height: 54px;
    border-radius: 999px !important;
    background: var(--bo-blu) !important;
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 600 !important;
}
.oor-bo-modulo .elementor-form .elementor-button:hover { background: var(--bo-inchiostro) !important; }

/* --- Colonna laterale --------------------------------------------------- */
.oor-bo-lato { display: flex; flex-direction: column; gap: 18px; position: sticky; top: 110px; }
.oor-bo-scheda { padding: 24px; border: 1px solid var(--bo-linea); border-radius: 20px; background: #fff; }
.oor-bo-scheda h2 { margin: 0 0 14px; color: var(--bo-inchiostro); font-family: "Jost", Arial, sans-serif; font-size: 19px; font-weight: 600; }
.oor-bo-occasioni { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.oor-bo-occasioni li { margin: 0; padding: 7px 14px; border-radius: 999px; background: #e8f2f6; color: var(--bo-blu); font-size: 14px; font-weight: 500; }
.oor-bo-galleria { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.oor-bo-galleria a { display: block; border-radius: 14px; overflow: hidden; background: var(--bo-fondo); aspect-ratio: 1; }
.oor-bo-galleria img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.oor-bo-galleria a:hover img { transform: scale(1.05); }
.oor-bo-lato .oor-bo-link { display: inline-block; margin-top: 14px; color: var(--bo-blu); font-weight: 600; font-size: 14.5px; border-bottom: 1.5px solid currentColor; }
.oor-bo-lato .oor-bo-whatsapp {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 18px 20px;
    border-radius: 20px;
    background: #e3f7ea;
    color: #0e5c2f;
    transition: transform .2s ease;
}
.oor-bo-lato .oor-bo-whatsapp:hover { transform: translateY(-2px); color: #0e5c2f; }
.oor-bo-whatsapp__icona { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #1a9e50; color: #fff; }
.oor-bo-whatsapp__icona svg { width: 22px; height: 22px; }
.oor-bo-whatsapp strong { display: block; font-size: 15.5px; }
.oor-bo-whatsapp span span { font-size: 13.5px; }

/* --- Tablet e smartphone ------------------------------------------------- */
@media (max-width: 991px) {
    .oor-bo-testa { grid-template-columns: minmax(0, 1fr); gap: 28px; padding: 36px 28px; margin: 16px 16px 0; }
    .oor-bomboniera-pagina .e-con.oor-bo-sez-corpo { grid-template-columns: minmax(0, 1fr); margin: 24px 16px 56px; }
    .oor-bo-lato { position: static; }
}
@media (max-width: 575px) {
    .oor-bo-testa { padding: 28px 20px; border-radius: 22px; margin: 12px 12px 0; }
    .oor-bomboniera-pagina .e-con.oor-bo-sez-corpo { margin: 20px 12px 48px; }
    .oor-bomboniera-pagina .e-con.oor-bo-modulo { padding: 24px 18px !important; }
    .oor-bo-modulo .elementor-form .elementor-field-group { flex-basis: 100% !important; max-width: 100% !important; width: 100% !important; }
}

/* Invia: pulsante pieno ma non una barra da parte a parte */
.oor-bo-modulo .elementor-form .elementor-field-type-submit { justify-content: flex-start !important; }
.oor-bo-modulo .elementor-form .elementor-button { width: auto !important; min-width: 220px; min-height: 50px !important; padding: 0 40px !important; }
@media (max-width: 575px) { .oor-bo-modulo .elementor-form .elementor-button { width: 100% !important; } }
