/* Caricato solo nelle pagine con il modello fm-native-service-page.
   I widget nativi mantengono le impostazioni Elementor. */
.fmse-pelle .fm-booking-layout {
    background:#edfbfb;border-radius:20px;padding:32px;
}
.fm-booking-engine {min-width:0;}
.fm-native-service-page .e-con {min-width:0;}
.fmse-pelle .fm-booking-instructions,
.fmse-pelle .fm-booking-engine {flex-shrink:1;}
.fm-native-service-page .fm-native-pelle-only > .e-con {flex-shrink:1;}
/* Solo la scheda pelle usa descrizione nativa: preservare la scheda plugin altrove. */
.fmse-pelle .fm-servizio-dettaglio #vapempblock1 {display:none;}
body:not(.fmse-pelle) .fm-booking-layout {display:block;}
body:not(.fmse-pelle) .fm-booking-engine {width:100%;--width:100%;}
.fm-servizio-dettaglio #vapsersearchform {
    background:#fff;border:1px solid #dceaea;border-radius:16px;
    padding:24px;margin:0;color:#5f6f78;
    --vap-calendar-available-background:#dff3e8;
    --vap-calendar-available-color:#185b42;
    --vap-calendar-partial-background:#fff0c9;
    --vap-calendar-partial-color:#765517;
    --vap-calendar-occupied-background:#f9dfe1;
    --vap-calendar-occupied-color:#842f39;
    --vap-calendar-empty-background:#eef1f2;
    --vap-calendar-empty-color:#65747c;
    --vap-calendar-selected-background:#087f83;
    --vap-calendar-selected-color:#ffffff;
}
.fm-servizio-dettaglio .vapcalendardiv {
    width:100%;max-width:100%;margin:10px 0;padding:10px;
    border:1px solid #dceaea;border-radius:12px;background:#fff;
}
.fm-servizio-dettaglio .vapcaltable {width:100%;table-layout:fixed;}
.fm-servizio-dettaglio .vaptheadcal tr:first-child td {
    color:#223660;font-size:17px;padding:12px 4px;
}
.fm-servizio-dettaglio .vaptheadcal .vapthtabcal {font-size:12px;padding:10px 2px;}
.fm-servizio-dettaglio .vapdivday {font-size:14px;min-height:36px;display:grid;place-items:center;}
.fm-servizio-dettaglio .vap-cal-legend {display:flex;flex-wrap:wrap;gap:8px 14px;padding:0;}
.fm-servizio-dettaglio .vap-cal-legend li {font-size:12px;margin:0;}
.fm-servizio-dettaglio .select2-container .select2-choice {
    background:#fff;border:1px solid #c9dedc;border-radius:8px;color:#223660;
}
.fm-servizio-dettaglio #vapsersearchform input[type=submit],
.fm-servizio-dettaglio #vapsersearchform button[type=submit],
.fm-servizio-dettaglio .vapcheckoutbutton {
    background:#087f83;color:#fff;border:0;border-radius:30px;
    padding:12px 22px;font:600 14px/1.4 Poppins,Arial,sans-serif;
}
.fm-servizio-dettaglio #vapsersearchform input[type=submit]:hover,
.fm-servizio-dettaglio #vapsersearchform button[type=submit]:hover,
.fm-servizio-dettaglio .vapcheckoutbutton:hover {background:#223660;}
.fm-servizio-dettaglio #vapsersearchform :is(a,button,input,select):focus-visible {
    outline:2px solid #087f83;outline-offset:3px;
}
@media(max-width:767px){
 .fmse-pelle .fm-booking-layout{padding:20px;}
 .fm-servizio-dettaglio #vapsersearchform{padding:14px;}
 .fm-servizio-dettaglio .vapcalendardiv{padding:4px;}
 .fm-servizio-dettaglio .vapdivday{font-size:12px;min-height:32px;}
}

/* Visibilità compatibile con la cache degli elementi Elementor. */
.fm-native-service-page .fm-native-pelle-only {display:none !important;}
body.fmse-pelle .fm-native-service-page .fm-native-pelle-only {display:flex !important;}

/* Modello universale: gli stili della pagina pelle precedente restano invariati. */
.fm-service-universal .fm-service-detail-only {display:none !important;}
body.fmse-detail .fm-service-universal .fm-service-detail-only {display:flex !important;}
body.fmse-detail .fm-service-universal .fm-booking-layout {
 display:flex;flex-direction:row;background:#edfbfb;border-radius:20px;padding:32px;
}
body.fmse-detail .fm-service-universal .fm-booking-engine {width:60%;--width:60%;flex-shrink:1;}
body.fmse-detail .fm-service-universal .fm-booking-instructions {width:40%;--width:40%;flex-shrink:1;}
.fm-service-universal .fm-service-intro > .e-con {flex-shrink:1;}
/* Sostituisce solo la presentazione duplicata: prezzi, contatti e recensioni Vik restano visibili. */
body.fmse-detail .fm-service-universal .fm-booking-engine .vapempblock > .vapempinfoblock .vapempimgdiv,
body.fmse-detail .fm-service-universal .fm-booking-engine .vapempblock > .vapempinfoblock .vapempnamediv,
body.fmse-detail .fm-service-universal .fm-booking-engine .vapempblock > .vapempinfoblock .vapempdescdiv,
body.fmse-detail .fm-service-universal .fm-booking-engine .vapempblock .service-duration {display:none;}
body.fmse-detail .fm-service-universal .fm-booking-engine .vapempblock,
body.fmse-detail .fm-service-universal .fm-booking-engine .vapempinfoblock,
body.fmse-detail .fm-service-universal .fm-booking-engine .vap-empmain-block,
body.fmse-detail .fm-service-universal .fm-booking-engine .vap-empheader-div,
body.fmse-detail .fm-service-universal .fm-booking-engine .vapempcontactdiv {
 min-height:0;padding:0;margin:0;border:0;box-shadow:none;background:transparent;
}
.fm-service-universal .elementor-widget-fm-service-description {overflow-wrap:anywhere;}
.fm-service-universal .elementor-widget-fm-service-description p {margin:0 0 1em;}
.fm-service-universal .elementor-widget-fm-service-description p:last-child {margin-bottom:0;}
.fm-service-universal .elementor-widget-fm-service-description h3 {color:#087f83;font-size:20px;line-height:1.3;}
.fm-service-universal .elementor-widget-fm-service-image img {display:block;max-width:100%;}
.fmse-banner-wrap{box-sizing:border-box;width:100%;max-width:1320px;margin:0 auto;padding:10px;}
.fmse-banner-wrap *{box-sizing:border-box;}
.fmse-banner{display:flex;align-items:center;justify-content:flex-start;min-height:380px;padding:32px;border-radius:20px;overflow:hidden;background-color:#223660;background-size:cover;background-position:center,center 42%;font-family:inherit;}
.fmse-banner .fmse-banner-panel{width:530px;max-width:100%;padding:28px 32px;border:1px solid rgba(255,255,255,.19);border-radius:16px;background:rgba(34,54,96,.88);text-align:left;}
.fmse-banner .fmse-banner-label{margin:0 0 10px;color:#73e3d7;font-size:12px;font-weight:600;line-height:1.5;letter-spacing:1.8px;text-transform:uppercase;}
.fmse-banner h1.fmse-banner-title{margin:0 0 18px;color:#fff;font-family:inherit;font-size:38px;font-weight:700;font-style:normal;line-height:1.2;letter-spacing:normal;text-transform:none;}
.fmse-banner .fmse-banner-text{margin:0;color:#fff;font-size:17px;font-weight:400;font-style:normal;line-height:1.6;letter-spacing:normal;}
@media(max-width:767px){
 body.fmse-detail .fm-service-universal .fm-booking-layout{flex-direction:column;padding:20px;}
 body.fmse-detail .fm-service-universal .fm-booking-engine,
 body.fmse-detail .fm-service-universal .fm-booking-instructions{width:100%;--width:100%;}
 .fmse-banner{min-height:340px;padding:18px;background-position:center,60% center;}
 .fmse-banner .fmse-banner-panel{padding:24px 18px;}
 .fmse-banner h1.fmse-banner-title{font-size:28px;}
 .fmse-banner .fmse-banner-text{font-size:15px;}
}

/* Prevale sul verde imposto dal tema e dalla classe green di Vik. */
.fm-native-service-page .fm-servizio-dettaglio button.vap-btn.vapcheckoutbutton {
 background:#087f83 !important;color:#fff !important;border:0;border-radius:30px;
}
.fm-native-service-page .fm-servizio-dettaglio button.vap-btn.vapcheckoutbutton:hover {
 background:#223660 !important;
}

.fm-native-service-page .fmse-hours-status {margin:16px 0 10px;color:#087f83;font:500 14px/1.5 Poppins,Arial,sans-serif;}
.fm-native-service-page .fmse-hours-status[hidden] {display:none;}
/* Navigazione con destinazioni esplicite: non dipende dalla cronologia browser. */
.fmse-navigation {width:100%;max-width:1200px;margin:18px auto;padding:0 20px;box-sizing:border-box;font-family:inherit;font-size:14px;line-height:1.6;color:#5f6f78;}
.fmse-navigation ol {display:flex;flex-wrap:wrap;gap:6px 10px;margin:0;padding:0;list-style:none;}
.fmse-navigation li {margin:0;padding:0;}
.fmse-navigation li+li::before {content:'›';margin-right:10px;color:#5f6f78;}
.fmse-navigation a {color:#087f83;text-decoration:underline;text-underline-offset:3px;}
.fmse-navigation [aria-current=page] {color:#223660;font-weight:600;}
.fmse-navigation-actions {display:flex;flex-wrap:wrap;gap:12px;margin:20px auto 32px;}
.fmse-navigation-actions a {display:inline-block;padding:11px 20px;border:1px solid #087f83;border-radius:30px;text-decoration:none;background:#fff;}
.fmse-navigation-actions .fmse-back-category {background:#087f83;color:#fff;}
.fmse-navigation a:focus-visible {outline:2px solid #223660;outline-offset:4px;}
.fmse-navigation-actions a:hover {background:#223660;color:#fff;border-color:#223660;}
@media(max-width:767px){.fmse-navigation{padding:0 16px;font-size:13px;}.fmse-navigation-actions a{text-align:center;}}
