/* ==========================================================
   SPA EXCLUSIVE TIME - Pagina Prenota (ID 1079)
   Design system: spa-exclusive-time (Novamira). Caricato dal
   plugin SPAEX Booking solo sulla pagina Prenota.
   ========================================================== */

.page-id-1079{
    --sx-bg:#FFFCF2;
    --sx-surface:#FBF6E8;
    --sx-card:#FFFFFF;
    --sx-ink:#3D3931;
    --sx-muted:#7A6F60;
    --sx-accent:#9B804E;
    --sx-accent-dark:#7E6639;
    --sx-line:#E7DCC4;
    --sx-shadow:0 22px 44px -30px rgba(91,70,36,.45);
}

.page-id-1079 .elementor-widget-shortcode,
.page-id-1079 .wpcf7,
.page-id-1079 .wpcf7-form{
    max-width:100%;
    min-width:0;
}


/* ---------- Intro suite ---------- */

.page-id-1079 .spaex-intro-title .elementor-heading-title{
    margin:0 0 18px;
    font-family:"Lora",serif;
    font-weight:400;
    font-size:clamp(34px,4vw,50px);
    line-height:1.12;
    color:var(--sx-ink);
}

.page-id-1079 .spaex-intro-title em{
    font-style:italic;
    color:var(--sx-accent);
    padding-bottom:.08em;
}

.page-id-1079 .spaex-intro-text p{
    max-width:56ch;
    margin:0 0 14px;
    font-size:17px;
    line-height:1.75;
    color:var(--sx-muted);
}

.page-id-1079 .spaex-intro-text p strong{
    color:var(--sx-ink);
    font-weight:600;
}

.page-id-1079 .spaex-amenities{
    list-style:none;
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:22px 0 22px;
    padding:0;
}

.page-id-1079 .spaex-amenities li{
    margin:0;
    padding:8px 13px;
    background:var(--sx-card);
    border:1px solid var(--sx-line);
    border-radius:999px;
    font-size:13px;
    line-height:1.2;
    color:var(--sx-ink);
}

.page-id-1079 .spaex-amenities li::before{
    content:none;
}

.page-id-1079 .spaex-intro-text p.spaex-closing{
    margin:0;
    font-style:italic;
    font-size:18px;
    color:var(--sx-accent-dark);
}

.page-id-1079 .spaex-intro-img img{
    display:block;
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
    border-radius:10px;
    box-shadow:var(--sx-shadow);
}


.page-id-1079 .spaex-intro-gallery .gallery{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    margin:10px 0 0;
}

.page-id-1079 .spaex-intro-gallery .gallery-item{
    width:auto !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
}

.page-id-1079 .spaex-intro-gallery .gallery-icon,
.page-id-1079 .spaex-intro-gallery .gallery-icon a{
    display:block;
}

.page-id-1079 .spaex-intro-gallery img{
    display:block;
    width:100% !important;
    height:auto;
    aspect-ratio:1/1;
    object-fit:cover;
    border:0 !important;
    border-radius:8px;
    transition:opacity .2s ease;
}

.page-id-1079 .spaex-intro-gallery a:hover img{
    opacity:.85;
}


/* ---------- Layout form ---------- */

.page-id-1079 .wpcf7-form{
    margin:0;
    padding:0;
    background:none;
    border:0;
    box-shadow:none;
}

.page-id-1079 .spaex-booking-clean{
    display:grid;
    grid-template-columns:minmax(0,1fr) 370px;
    align-items:start;
    gap:32px;
    color:var(--sx-ink);
    font-size:15px;
    line-height:1.5;
}

.page-id-1079 .spaex-booking-clean p{
    margin:0;
}

.page-id-1079 .spaex-booking-clean br{
    display:none;
}

.page-id-1079 .spaex-main{
    display:flex;
    flex-direction:column;
    gap:22px;
    min-width:0;
}

.page-id-1079 .spaex-step,
.page-id-1079 .spaex-price-box{
    background:var(--sx-card);
    border:1px solid var(--sx-line);
    border-radius:10px;
    box-shadow:var(--sx-shadow);
}

.page-id-1079 .spaex-step{
    padding:28px 30px 30px;
}

.page-id-1079 .spaex-step-head{
    display:flex;
    align-items:flex-start;
    gap:16px;
    margin:0 0 22px;
    padding:0;
}

.page-id-1079 .spaex-step-n{
    flex:0 0 36px;
    width:36px;
    height:36px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--sx-accent);
    border-radius:50%;
    color:var(--sx-accent);
    font-size:16px;
    line-height:1;
}

.page-id-1079 .spaex-step-head h3,
.page-id-1079 .spaex-price-title{
    margin:0;
    font-family:"Lora",serif;
    font-weight:400;
    font-size:24px;
    line-height:1.2;
    color:var(--sx-ink);
}

.page-id-1079 .spaex-step-head p{
    margin:4px 0 0;
    font-size:14px;
    color:var(--sx-muted);
}

.page-id-1079 .spaex-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px 20px;
}


/* ---------- Campi ---------- */

.page-id-1079 .spaex-field{
    display:block;
    min-width:0;
    margin:0;
    font-weight:400;
}

.page-id-1079 .spaex-field > span:first-child{
    display:block;
    margin:0 0 7px;
    font-size:14px;
    font-weight:600;
    color:var(--sx-ink);
}

.page-id-1079 .spaex-field .req{
    font-style:normal;
    color:var(--sx-accent);
}

.page-id-1079 .spaex-booking-clean .wpcf7-form-control-wrap{
    display:block;
    width:100%;
}

.page-id-1079 .spaex-booking-clean .wpcf7-form-control-wrap::before,
.page-id-1079 .spaex-booking-clean .wpcf7-form-control-wrap::after{
    content:none !important;
    display:none !important;
}

.page-id-1079 .spaex-booking-clean input[type="text"],
.page-id-1079 .spaex-booking-clean input[type="email"],
.page-id-1079 .spaex-booking-clean input[type="tel"],
.page-id-1079 .spaex-booking-clean input[type="date"],
.page-id-1079 .spaex-booking-clean select,
.page-id-1079 .spaex-booking-clean textarea{
    width:100% !important;
    max-width:100%;
    height:48px;
    min-height:48px;
    margin:0 !important;
    padding:0 14px !important;
    box-sizing:border-box;
    background-color:var(--sx-card) !important;
    border:1px solid var(--sx-line) !important;
    border-radius:6px !important;
    box-shadow:none !important;
    font-family:"Lora",serif;
    font-size:16px !important;
    line-height:1.2;
    color:var(--sx-ink) !important;
    transition:border-color .2s ease, box-shadow .2s ease;
}

.page-id-1079 .spaex-booking-clean select{
    padding-right:38px !important;
    -webkit-appearance:none;
    appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%239B804E' stroke-width='1.6'/%3E%3C/svg%3E") !important;
    background-repeat:no-repeat !important;
    background-position:right 14px center !important;
    cursor:pointer;
}

/* Select2 (il tema converte ogni select) */
.page-id-1079 .spaex-booking-clean .select2-container{
    width:100% !important;
    max-width:100%;
}

.page-id-1079 .spaex-booking-clean .select2-selection--single{
    display:flex !important;
    align-items:center;
    height:48px !important;
    padding:0 !important;
    background:var(--sx-card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%239B804E' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 14px center !important;
    border:1px solid var(--sx-line) !important;
    border-radius:6px !important;
}

.page-id-1079 .spaex-booking-clean .select2-selection__rendered{
    width:100%;
    padding:0 34px 0 14px !important;
    font-family:"Lora",serif;
    font-size:16px !important;
    line-height:46px !important;
    color:var(--sx-ink) !important;
    text-overflow:clip !important;
}

.page-id-1079 .spaex-booking-clean .select2-selection__arrow,
.page-id-1079 .spaex-booking-clean .select2-selection--single::after,
.page-id-1079 .spaex-booking-clean .select2-container::after{
    display:none !important;
}

.page-id-1079 .spaex-booking-clean .select2-container--focus .select2-selection--single,
.page-id-1079 .spaex-booking-clean .select2-container--open .select2-selection--single{
    border-color:var(--sx-accent) !important;
    box-shadow:0 0 0 3px rgba(155,128,78,.18);
}

.page-id-1079 .spaex-extra-field .select2-selection--single,
.page-id-1079 .spaex-extra-subfield .select2-selection--single{
    height:42px !important;
}

.page-id-1079 .spaex-extra-field .select2-selection__rendered,
.page-id-1079 .spaex-extra-subfield .select2-selection__rendered{
    line-height:40px !important;
}

body.page-id-1079 .select2-dropdown{
    border-color:var(--sx-line);
    border-radius:6px;
    font-family:"Lora",serif;
    font-size:15px;
}

body.page-id-1079 .select2-results__option--highlighted{
    background:var(--sx-accent) !important;
    color:#fff !important;
}

.page-id-1079 .spaex-booking-clean textarea{
    height:auto;
    min-height:96px;
    padding:12px 14px !important;
    resize:vertical;
}

.page-id-1079 .spaex-booking-clean ::placeholder{
    color:#A39782;
    opacity:1;
}

.page-id-1079 .spaex-booking-clean input:focus,
.page-id-1079 .spaex-booking-clean select:focus,
.page-id-1079 .spaex-booking-clean textarea:focus{
    border-color:var(--sx-accent) !important;
    box-shadow:0 0 0 3px rgba(155,128,78,.18) !important;
    outline:none;
}

.page-id-1079 .spaex-booking-clean input[type="number"]{
    width:52px !important;
    height:42px;
    min-height:42px;
    margin:0 !important;
    padding:0 !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    font-family:"Lora",serif;
    font-size:16px !important;
    text-align:center;
    color:var(--sx-ink) !important;
    -moz-appearance:textfield;
}

.page-id-1079 .spaex-booking-clean input[type="number"]::-webkit-outer-spin-button,
.page-id-1079 .spaex-booking-clean input[type="number"]::-webkit-inner-spin-button{
    -webkit-appearance:none;
    margin:0;
}


/* ---------- Schede persone / durata ---------- */

.page-id-1079 .spaexb-block + .spaexb-block{
    margin-top:22px;
}

.page-id-1079 .spaexb-label{
    display:block;
    margin:0 0 10px;
    font-size:14px;
    font-weight:600;
    color:var(--sx-ink);
}

.page-id-1079 .spaexb-cards{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(80px,1fr));
    gap:12px;
}

.page-id-1079 .spaexb-cards .wpcf7-list-item{
    margin:0 !important;
}

.page-id-1079 .spaexb-cards .wpcf7-list-item label{
    position:relative;
    display:flex;
    flex-direction:column;
    gap:4px;
    height:100%;
    margin:0;
    padding:16px 18px;
    background:var(--sx-card);
    border:1px solid var(--sx-line);
    border-radius:10px;
    cursor:pointer;
    transition:border-color .2s ease, background .2s ease, box-shadow .2s ease;
}

.page-id-1079 .spaexb-cards input[type="radio"]{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.page-id-1079 .spaexb-cards .wpcf7-list-item-label{
    font-size:18px;
    line-height:1.2;
    color:var(--sx-ink);
}

.page-id-1079 .spaexb-card-price{
    font-size:14px;
    color:var(--sx-muted);
}

.page-id-1079 .spaexb-cards label:hover{
    border-color:var(--sx-accent);
}

.page-id-1079 .spaexb-cards label:has(input:checked){
    background:var(--sx-surface);
    border-color:var(--sx-accent);
    box-shadow:inset 0 0 0 1px var(--sx-accent);
}

.page-id-1079 .spaexb-cards label:has(input:checked) .spaexb-card-price{
    color:var(--sx-accent-dark);
    font-weight:600;
}

.page-id-1079 .spaexb-cards label:has(input:focus-visible){
    box-shadow:0 0 0 3px rgba(155,128,78,.3);
}

.page-id-1079 .spaexb-hint{
    margin:16px 0 0;
    font-size:13px;
    color:var(--sx-muted);
}

.page-id-1079 .spaexb-turn{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px 14px;
    margin:18px 0 0;
    padding:12px 16px;
    background:var(--sx-surface);
    border:1px solid var(--sx-line);
    border-radius:6px;
    font-size:15px;
    color:var(--sx-ink);
}

.page-id-1079 .spaexb-turn span{
    padding:3px 10px;
    border:1px solid var(--sx-accent);
    border-radius:999px;
    font-size:13px;
    color:var(--sx-accent-dark);
}


/* ---------- Stepper e interruttori ---------- */

.page-id-1079 .spaexb-stepper{
    display:inline-flex;
    align-items:center;
    border:1px solid var(--sx-line);
    border-radius:6px;
    background:var(--sx-card);
    overflow:hidden;
}

.page-id-1079 .spaexb-stepper button{
    width:40px;
    height:42px;
    margin:0;
    padding:0;
    background:transparent;
    border:0;
    border-radius:0;
    font-size:20px;
    line-height:1;
    color:var(--sx-accent-dark);
    cursor:pointer;
    transition:background .15s ease;
}

.page-id-1079 .spaexb-stepper button:hover:not(:disabled){
    background:var(--sx-surface);
}

.page-id-1079 .spaexb-stepper button:disabled{
    color:var(--sx-line);
    cursor:default;
}

.page-id-1079 .spaexb-toggle .wpcf7-list-item label{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:110px;
    height:42px;
    padding:0 16px;
    border:1px solid var(--sx-accent);
    border-radius:6px;
    background:var(--sx-card);
    font-size:14px;
    color:var(--sx-accent-dark);
    cursor:pointer;
    transition:background .2s ease, color .2s ease;
}

.page-id-1079 .spaexb-toggle input[type="checkbox"]{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.page-id-1079 .spaexb-toggle label:has(input:checked){
    background:var(--sx-accent);
    color:#fff;
}

.page-id-1079 .spaexb-toggle label:has(input:checked) .wpcf7-list-item-label::before{
    content:"✓ ";
}

.page-id-1079 .spaexb-toggle label:has(input:focus-visible){
    box-shadow:0 0 0 3px rgba(155,128,78,.3);
}

.page-id-1079 .spaex-extra-field{
    display:flex;
    justify-content:flex-end;
}

.page-id-1079 .spaexb-reveal.is-open{
    animation:spaexb-reveal .25s ease;
}

@keyframes spaexb-reveal{
    from{ opacity:0; transform:translateY(-4px); }
    to{ opacity:1; transform:none; }
}

@media (prefers-reduced-motion:reduce){
    .page-id-1079 .spaexb-reveal.is-open{ animation:none; }
}


/* ---------- Righe riepilogo ---------- */

.page-id-1079 .spaexb-summary{
    border-bottom:1px solid var(--sx-line);
}

.page-id-1079 .spaexb-line{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:16px;
    padding:10px 0;
    border-top:1px solid var(--sx-line);
    font-size:14px;
    color:var(--sx-ink);
}

.page-id-1079 .spaexb-line:first-child{
    border-top:0;
}

.page-id-1079 .spaexb-line small{
    display:block;
    margin-top:2px;
    font-size:13px;
    color:var(--sx-muted);
}

.page-id-1079 .spaexb-line strong{
    font-weight:600;
    white-space:nowrap;
}

.page-id-1079 .spaexb-line.is-discount strong{
    color:var(--sx-accent-dark);
}

.page-id-1079 .spaexb-summary-empty{
    margin:0 0 12px !important;
    font-size:14px;
    color:var(--sx-muted);
}

.page-id-1079 #spaexb-voucher-message.is-ok{ color:#2F6B3F; }
.page-id-1079 #spaexb-voucher-message.is-error{ color:#A3443A; }


/* ---------- Extra ---------- */

.page-id-1079 .spaex-extra-list{
    border:1px solid var(--sx-line);
    border-radius:10px;
    overflow:hidden;
}

.page-id-1079 .spaex-extra-item,
.page-id-1079 .spaex-extra-subitem{
    display:grid;
    align-items:center;
    gap:16px;
    padding:14px 18px;
    border-bottom:1px solid var(--sx-line);
}

.page-id-1079 .spaex-extra-item{
    grid-template-columns:minmax(0,1fr) auto;
}

.page-id-1079 .spaex-extra-subitem{
    grid-template-columns:minmax(0,1fr) minmax(200px,300px);
    background:var(--sx-surface);
}

.page-id-1079 .spaex-extra-list > div:last-child{
    border-bottom:0;
}

.page-id-1079 .spaex-extra-title strong,
.page-id-1079 .spaex-extra-subitem strong{
    display:block;
    font-size:15px;
    font-weight:600;
    line-height:1.3;
    color:var(--sx-ink);
}

.page-id-1079 .spaex-extra-price{
    display:block;
    margin-top:3px;
    font-size:14px;
    color:var(--sx-accent-dark);
}

.page-id-1079 .spaex-extra-subitem small{
    display:block;
    margin-top:3px;
    font-size:13px;
    line-height:1.4;
    color:var(--sx-muted);
}

.page-id-1079 .spaex-extra-field select{
    height:42px;
    min-height:42px;
}

.page-id-1079 .spaex-extra-subfield{
    min-width:0;
}

.page-id-1079 .spaex-extra-subfield input[type="text"],
.page-id-1079 .spaex-extra-subfield select{
    height:42px;
    min-height:42px;
}

.page-id-1079 .spaex-extra-warning{
    padding:10px 18px;
    background:#FBF1DD;
    border-bottom:1px solid var(--sx-line);
    font-size:13px;
    line-height:1.45;
    color:var(--sx-accent-dark);
}

.page-id-1079 .wpcf7-list-item{
    margin:0 !important;
}

.page-id-1079 .wpcf7-list-item label{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin:0;
    font-size:14px;
    font-weight:400;
    line-height:1.45;
    color:var(--sx-ink);
    cursor:pointer;
}

.page-id-1079 .spaex-booking-clean input[type="checkbox"]{
    flex:0 0 18px;
    width:18px;
    height:18px;
    margin:1px 0 0 !important;
    accent-color:var(--sx-accent);
}


/* ---------- Riepilogo laterale ---------- */

/* I contenitori del tema hanno overflow:hidden, che impedisce lo sticky:
   clip taglia comunque i contenuti che sporgono ma non blocca lo scorrimento. */
body.page-id-1079,
.page-id-1079 .content-full-width,
.page-id-1079 .inner-wrapper{
    overflow-x:clip !important;
    overflow-y:visible !important;
}

/* L'header del tema diventa fisso (circa 90px) durante lo scroll. */
.page-id-1079 .spaex-side{
    position:sticky;
    top:112px;
    min-width:0;
}

.page-id-1079 .spaex-price-box{
    max-height:calc(100vh - 136px);
    overflow-y:auto;
    padding:26px 26px 22px;
    border-top:3px solid var(--sx-accent);
    scrollbar-width:thin;
}

.page-id-1079 .spaexb-summary-when{
    margin:0 0 10px;
    padding:10px 14px;
    background:var(--sx-surface);
    border-radius:6px;
    font-size:15px;
    line-height:1.45;
    color:var(--sx-ink);
}

.page-id-1079 .spaexb-summary-when::first-letter{
    text-transform:uppercase;
}

.page-id-1079 .spaex-price-title{
    margin:0 0 14px;
}

.page-id-1079 .spaex-price-row,
.page-id-1079 .spaex-price-total{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:16px;
}

.page-id-1079 .spaex-price-row{
    padding:11px 0;
    border-bottom:1px solid var(--sx-line);
    font-size:14px;
    color:var(--sx-muted);
}

.page-id-1079 .spaex-price-row strong{
    font-size:15px;
    font-weight:600;
    color:var(--sx-ink);
    text-align:right;
}

.page-id-1079 .spaex-price-total{
    padding:16px 0 4px;
    font-size:16px;
    font-weight:600;
    color:var(--sx-ink);
}

.page-id-1079 .spaex-price-total strong{
    font-size:30px;
    font-weight:400;
    line-height:1;
    color:var(--sx-accent-dark);
}

.page-id-1079 .spaex-voucher-box{
    margin:16px 0 0;
    padding:14px 0 0;
    border-top:1px solid var(--sx-line);
}

.page-id-1079 .spaex-voucher-box summary{
    font-size:14px;
    color:var(--sx-accent-dark);
    cursor:pointer;
    list-style-position:inside;
}

.page-id-1079 .spaex-voucher-fields{
    display:grid;
    grid-template-columns:minmax(0,1fr) 96px;
    gap:8px;
    margin-top:12px;
}

.page-id-1079 #spaex-voucher-code{
    height:44px;
    min-height:44px;
    text-transform:uppercase;
}

.page-id-1079 #spaexb-apply-voucher{
    height:44px;
    margin:0;
    padding:0 12px;
    background:transparent;
    border:1px solid var(--sx-accent);
    border-radius:6px;
    color:var(--sx-accent-dark);
    font-family:"Lora",serif;
    font-size:14px;
    font-weight:600;
    cursor:pointer;
    transition:background .2s ease, color .2s ease;
}

.page-id-1079 #spaexb-apply-voucher:hover{
    background:var(--sx-accent);
    color:#fff;
}

.page-id-1079 #spaexb-voucher-message{
    margin-top:8px;
    font-size:13px;
}

.page-id-1079 .spaex-privacy,
.page-id-1079 .spaex-newsletter-consent{
    margin-top:16px;
}

.page-id-1079 .spaex-newsletter-consent{
    margin-top:10px;
}

.page-id-1079 .spaex-privacy a{
    color:var(--sx-accent-dark);
    text-decoration:underline;
}

.page-id-1079 .spaex-submit{
    margin-top:20px;
}

.page-id-1079 .spaex-submit input[type="submit"]{
    width:100%;
    height:54px;
    margin:0;
    padding:0 20px;
    background:var(--sx-accent) !important;
    border:0 !important;
    border-radius:6px;
    box-shadow:none;
    color:#fff !important;
    font-family:"Lora",serif;
    font-size:15px;
    font-weight:600;
    letter-spacing:.08em;
    text-transform:uppercase;
    cursor:pointer;
    transition:background .2s ease, transform .1s ease;
}

.page-id-1079 .spaex-submit input[type="submit"]:hover{
    background:var(--sx-accent-dark) !important;
}

.page-id-1079 .spaex-submit input[type="submit"]:active{
    transform:translateY(1px);
}

.page-id-1079 .spaex-booking-clean .wpcf7-spinner{
    display:block;
    margin:10px auto 0;
}

.page-id-1079 .spaex-booking-clean p.spaex-note{
    margin-top:12px;
    font-size:13px;
    line-height:1.5;
    text-align:center;
    color:var(--sx-muted);
}


/* ---------- Messaggi CF7 ---------- */

.page-id-1079 .wpcf7-not-valid-tip{
    margin-top:5px;
    font-size:13px;
    color:#A3443A;
}

.page-id-1079 .wpcf7 form .wpcf7-response-output{
    margin:20px 0 0;
    padding:12px 16px;
    border-radius:6px;
    font-size:14px;
}


/* ---------- Intestazione pagina: foto della suite ---------- */

.page-id-1079 #header-wrapper{
    margin-bottom:48px;
}

.page-id-1079 .main-title-section-bg{
    background:
        linear-gradient(180deg, rgba(34,30,26,.50) 0%, rgba(34,30,26,.78) 100%),
        url("../../../uploads/2023/06/suite-idromassaggio-luce-rossa-spa-roma.jpeg") center 62% / cover no-repeat !important;
}

.page-id-1079 .main-title-section-bg::before,
.page-id-1079 .main-title-section-bg::after{
    display:none !important;
}

.page-id-1079 .main-title-section h1{
    color:#FFFCF2 !important;
    text-shadow:0 2px 24px rgba(0,0,0,.35);
}

.page-id-1079 .main-title-section-wrapper .breadcrumb,
.page-id-1079 .main-title-section-wrapper .breadcrumb a,
.page-id-1079 .main-title-section-wrapper .breadcrumb span{
    color:rgba(255,252,242,.88) !important;
}

.page-id-1079 .main-title-section-wrapper .breadcrumb a:hover{
    color:#FFFFFF !important;
}

/* Link social nella barra in alto, ora su fondo scuro. */
.page-id-1079 #header-wrapper .elementor-element-9ad5190 .elementor-icon-list-text,
.page-id-1079 #header-wrapper .elementor-element-9ad5190 .elementor-icon-list-icon,
.page-id-1079 #header-wrapper .elementor-element-9ad5190 li::after{
    color:rgba(255,252,242,.88) !important;
    border-color:rgba(255,252,242,.5) !important;
}


/* ---------- Extra compatti ---------- */

.page-id-1079 .spaex-extra-item,
.page-id-1079 .spaex-extra-subitem{
    gap:12px;
    padding:9px 16px;
}

.page-id-1079 .spaex-extra-title{
    display:flex;
    flex-wrap:wrap;
    align-items:baseline;
    gap:0 10px;
}

.page-id-1079 .spaex-extra-title strong{
    display:inline;
    font-size:15px;
}

.page-id-1079 .spaex-extra-title .spaex-extra-price{
    display:inline;
    margin:0;
    font-size:13px;
}

.page-id-1079 .spaex-extra-list .spaexb-stepper button{
    width:34px;
    height:36px;
    font-size:18px;
}

.page-id-1079 .spaex-extra-list .spaexb-stepper input[type="number"]{
    width:34px !important;
    height:36px;
    min-height:36px;
    font-size:15px !important;
}

.page-id-1079 .spaex-extra-list .spaexb-toggle .wpcf7-list-item label{
    min-width:96px;
    height:36px;
    padding:0 12px;
    font-size:13px;
}

.page-id-1079 .spaex-extra-warning{
    padding:7px 16px;
}

.page-id-1079 .spaex-extra-subitem textarea{
    min-height:64px !important;
}

.page-id-1079 .spaex-extra-subitem input[type="text"]{
    height:38px !important;
    min-height:38px !important;
}

/* I messaggi di errore di CF7 restano sotto il loro campo, non sopra gli altri. */
.page-id-1079 .spaex-booking-clean .wpcf7-not-valid-tip{
    position:static !important;
    display:block;
    margin-top:6px;
    font-size:13px;
}


/* ---------- Campi a comparsa: [hidden] vince sempre sul display ---------- */

.page-id-1079 [data-spaexb-form] [hidden]{
    display:none !important;
}


/* ---------- Persone ---------- */

.page-id-1079 .spaexb-people{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:16px 18px;
    background:var(--sx-surface);
    border:1px solid var(--sx-line);
    border-radius:10px;
}

.page-id-1079 .spaexb-people .spaexb-label{
    margin:0 0 3px;
    font-size:16px;
}

.page-id-1079 .spaexb-people small{
    display:block;
    font-size:14px;
    line-height:1.4;
    color:var(--sx-accent-dark);
}

.page-id-1079 .spaexb-people .spaexb-stepper button{
    width:46px;
    height:48px;
    font-size:22px;
}

.page-id-1079 .spaexb-people .spaexb-stepper input[type="number"]{
    width:44px !important;
    height:48px;
    font-size:20px !important;
}


/* ---------- Orari a pulsanti ---------- */

.page-id-1079 .spaexb-date{
    grid-column:1 / -1;
    max-width:340px;
}

.page-id-1079 .spaex-step .spaex-grid + .spaexb-block{
    margin-top:20px;
}

.page-id-1079 .spaexb-chips{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(78px,1fr));
    gap:8px;
}

.page-id-1079 .spaexb-chips .wpcf7-list-item{
    margin:0 !important;
}

.page-id-1079 .spaexb-chips .wpcf7-list-item label{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    height:44px;
    margin:0;
    background:var(--sx-card);
    border:1px solid var(--sx-line);
    border-radius:6px;
    font-size:15px;
    color:var(--sx-ink);
    cursor:pointer;
    transition:border-color .15s ease, background .15s ease, color .15s ease;
}

.page-id-1079 .spaexb-chips input[type="radio"]{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.page-id-1079 .spaexb-chips label:hover{
    border-color:var(--sx-accent);
}

.page-id-1079 .spaexb-chips label:has(input:checked){
    background:var(--sx-accent);
    border-color:var(--sx-accent);
    color:#fff;
}

.page-id-1079 .spaexb-chips label:has(input:focus-visible){
    box-shadow:0 0 0 3px rgba(155,128,78,.3);
}


/* ---------- Avanzamento passaggi ---------- */

.page-id-1079 .spaex-step-n{
    transition:background .2s ease, color .2s ease;
}

.page-id-1079 .spaex-step.is-done .spaex-step-n{
    background:var(--sx-accent);
    border-color:var(--sx-accent);
    color:transparent;
    position:relative;
}

.page-id-1079 .spaex-step.is-done .spaex-step-n::after{
    content:"✓";
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-size:17px;
}


/* ---------- Extra selezionati ---------- */

.page-id-1079 .spaex-extra-item{
    transition:background .2s ease, box-shadow .2s ease;
}

.page-id-1079 .spaex-extra-item.is-selected{
    background:#FDF9EF;
    box-shadow:inset 3px 0 0 var(--sx-accent);
}


/* ---------- Barra riepilogo in basso (mobile e tablet) ---------- */

.spaexb-mbar{
    display:none;
}

@media (max-width:1024px){
    .spaexb-mbar{
        position:fixed;
        left:0;
        right:0;
        bottom:0;
        z-index:9990;
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:12px;
        padding:10px 16px calc(10px + env(safe-area-inset-bottom));
        background:#FFFFFF;
        border-top:1px solid #E7DCC4;
        box-shadow:0 -10px 30px -18px rgba(91,70,36,.45);
        font-family:"Lora",serif;
        transform:translateY(110%);
        transition:transform .25s ease;
    }
    .spaexb-mbar.is-visible{
        transform:none;
    }
    .spaexb-mbar-info{
        min-width:0;
    }
    .spaexb-mbar-info small{
        display:block;
        overflow:hidden;
        font-size:13px;
        line-height:1.3;
        color:#7A6F60;
        white-space:nowrap;
        text-overflow:ellipsis;
    }
    .spaexb-mbar-info strong{
        display:block;
        font-size:22px;
        font-weight:400;
        line-height:1.2;
        color:#7E6639;
    }
    .spaexb-mbar-btn{
        flex:0 0 auto;
        height:46px;
        margin:0;
        padding:0 18px;
        background:#9B804E;
        border:0;
        border-radius:6px;
        color:#FFFFFF;
        font-family:"Lora",serif;
        font-size:14px;
        font-weight:600;
        letter-spacing:0 !important;
        text-transform:none !important;
        cursor:pointer;
    }
    body.spaexb-has-mbar{
        padding-bottom:72px;
    }
    body.spaexb-has-mbar .spaex-whatsapp-float{
        bottom:84px !important;
    }
}

@media (prefers-reduced-motion:reduce){
    .spaexb-mbar{ transition:none; }
}


/* ---------- Responsive ---------- */

@media (max-width:1024px){
    .page-id-1079 .spaex-booking-clean{
        grid-template-columns:minmax(0,1fr);
    }
    .page-id-1079 .spaex-side{
        position:static;
    }
    .page-id-1079 .spaex-price-box{
        max-height:none;
        overflow:visible;
    }
}

@media (max-width:767px){
    .page-id-1079 #header-wrapper{
        margin-bottom:28px;
    }
    .page-id-1079 .spaexb-people{
        padding:14px;
    }
    .page-id-1079 .spaexb-chips{
        grid-template-columns:repeat(4,minmax(0,1fr));
    }
    .page-id-1079 .spaex-intro-text p{
        font-size:16px;
    }
    .page-id-1079 .spaex-step{
        padding:22px 16px 20px;
    }
    .page-id-1079 .spaex-step-head{
        gap:12px;
        margin-bottom:18px;
    }
    .page-id-1079 .spaex-step-head h3,
    .page-id-1079 .spaex-price-title{
        font-size:21px;
    }
    .page-id-1079 .spaex-grid{
        grid-template-columns:minmax(0,1fr);
        gap:14px;
    }
    .page-id-1079 .spaexb-cards{
        gap:8px;
    }
    .page-id-1079 .spaexb-cards .wpcf7-list-item label{
        padding:12px 12px;
    }
    .page-id-1079 .spaexb-cards .wpcf7-list-item-label{
        font-size:17px;
    }
    .page-id-1079 .spaexb-stepper button{
        width:34px;
    }
    .page-id-1079 .spaex-booking-clean input[type="number"]{
        width:36px !important;
    }
    .page-id-1079 .spaexb-toggle .wpcf7-list-item label{
        min-width:0;
        padding:0 12px;
    }
    .page-id-1079 .spaex-extra-item{
        grid-template-columns:minmax(0,1fr) auto;
        gap:12px;
        padding:12px 14px;
    }
    .page-id-1079 .spaex-extra-subitem{
        grid-template-columns:minmax(0,1fr);
        gap:10px;
        padding:12px 14px;
    }
    .page-id-1079 .spaex-extra-warning{
        padding:10px 14px;
    }
    .page-id-1079 .spaex-price-box{
        padding:22px 16px 18px;
    }
}
