/* ==========================================================================
   Campanile Inn — restyling 2026
   Palette ispirata alla pietra di Locorotondo: bianco calce, pietra, terracotta, ulivo.
   Caratteri del sito: DM Serif Display (titoli) + Open Sans (testo).
   Caricato dopo Astra, Elementor e MotoPress (css/ci-modern.css, priorità 100).
   ========================================================================== */
:root {
  --ci-bg: #faf7f2;
  --ci-surface: #ffffff;
  --ci-stone: #f1ebe1;
  --ci-stone-2: #e7ded0;
  --ci-text: #2b2724;
  --ci-text-2: #4a443e;
  --ci-muted: #7a7168;
  --ci-border: #e6ddd0;
  --ci-accent: #a8582f;          /* terracotta */
  --ci-accent-600: #8d4625;
  --ci-accent-50: #f7ebe3;
  --ci-olive: #5d6b4f;
  --ci-ok: #3f7a4f;
  --ci-radius: 18px;
  --ci-radius-sm: 12px;
  --ci-shadow: 0 1px 2px rgba(43, 39, 36, .05), 0 8px 24px rgba(43, 39, 36, .07);
  --ci-shadow-lg: 0 18px 50px rgba(43, 39, 36, .16);
  --ci-serif: "DM Serif Display", Georgia, serif;
  --ci-sans: "Open Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --ci-maxw: 1200px;
}

/* ---------------------------------------------------------------- base */
body { background: var(--ci-bg) !important; color: var(--ci-text-2); -webkit-font-smoothing: antialiased; }
.site-content, .ast-separate-container, .ast-plain-container { background: transparent !important; }
h1, h2, h3, .entry-title { color: var(--ci-text); }
a { color: var(--ci-accent); }
a:hover { color: var(--ci-accent-600); }
.ci-icon { width: 1.2em; height: 1.2em; flex: none; vertical-align: -.2em; }
::selection { background: var(--ci-accent-50); }

/* pulsanti: tutti in terracotta (Astra, Elementor, MotoPress) */
.ci-btn,
body .button, body button.button, body input[type=submit].button, body .mphb-button,
body .elementor-button, body .ast-button, body input[type=submit] {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  min-height: 46px; padding: 0 22px !important;
  background: var(--ci-accent) !important; color: #fff !important;
  border: 0 !important; border-radius: 999px !important;
  font-family: var(--ci-sans) !important; font-size: .95rem !important; font-weight: 700 !important;
  letter-spacing: .02em !important; text-transform: none !important; line-height: 1.1 !important;
  text-decoration: none !important; cursor: pointer;
  box-shadow: 0 6px 16px rgba(168, 88, 47, .25);
  transition: background .15s, transform .15s, box-shadow .15s;
}
.ci-btn:hover,
body .button:hover, body .mphb-button:hover, body .elementor-button:hover, body input[type=submit]:hover {
  background: var(--ci-accent-600) !important; color: #fff !important; transform: translateY(-1px);
}
.ci-btn-sm { min-height: 40px; padding: 0 18px !important; font-size: .88rem !important; }
.ci-btn-ghost { background: transparent !important; color: var(--ci-text) !important; border: 1px solid var(--ci-border) !important; box-shadow: none; }
.ci-btn-ghost:hover { background: var(--ci-stone) !important; color: var(--ci-text) !important; }
.ci-link { display: inline-flex; align-items: center; gap: .4em; font-weight: 700; text-decoration: none; }

/* campi dei moduli */
body input[type=text], body input[type=email], body input[type=tel], body input[type=number], body input[type=password],
body select, body textarea {
  min-height: 48px; padding: 10px 14px;
  background: #fff; color: var(--ci-text);
  border: 1px solid var(--ci-border) !important; border-radius: var(--ci-radius-sm) !important;
  font-family: var(--ci-sans); font-size: 1rem; box-shadow: none;
  transition: border-color .15s, box-shadow .15s;
}
body textarea { min-height: 110px; }
body input:focus, body select:focus, body textarea:focus {
  outline: 0; border-color: var(--ci-accent) !important; box-shadow: 0 0 0 4px rgba(168, 88, 47, .15) !important;
}
.mphb-required-fields-tip { display: none !important; }

/* ---------------------------------------------------------------- intestazione */
#masthead .main-header-menu .menu-link { font-family: var(--ci-sans); font-size: .82rem; font-weight: 600; letter-spacing: .08em; color: var(--ci-text) !important; }
#masthead .main-header-menu .menu-item:hover > .menu-link { color: var(--ci-accent) !important; }
#masthead .ci-menu-book { display: flex; align-items: center; margin-left: 10px; }
#masthead .ci-menu-book > .menu-link {
  height: auto !important; line-height: 1 !important; padding: 12px 20px !important;
  background: var(--ci-accent); color: #fff !important; border-radius: 999px;
  letter-spacing: .04em; text-transform: uppercase;
}
#masthead .ci-menu-book:hover > .menu-link { background: var(--ci-accent-600); color: #fff !important; }
.ast-mobile-popup-drawer .ci-menu-book .menu-link, .ast-header-break-point .ci-menu-book .menu-link { color: var(--ci-accent) !important; font-weight: 700; }

/* ---------------------------------------------------------------- HOME */
/* foto principale: intera, come in origine */
body.home .elementor > .elementor-top-section:first-child, .elementor-section.ci-hero { position: relative; }

/* box di ricerca disponibilità: posizione originale (Elementor), un solo riquadro con ombra leggera */
body.home .elementor-top-section:has(form.mphb_sc_search-form) .elementor-widget-shortcode > .elementor-widget-container {
  border-radius: var(--ci-radius) !important;
  box-shadow: 0 14px 40px rgba(43, 39, 36, .14) !important;
  padding: 22px 26px 24px !important;
}
.ci-search-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 20px; margin: 0 0 16px; padding: 0 0 14px; border-bottom: 1px solid var(--ci-border); }
.ci-search-head h1 { margin: 0; font-family: var(--ci-serif); font-size: 1.6rem; font-weight: 400; line-height: 1.2; color: var(--ci-text); }
.ci-search-head h1 span { color: var(--ci-muted); font-family: var(--ci-sans); font-size: 1rem; }
.ci-search-head .ci-rating { margin: 0; font-size: .92rem; color: var(--ci-text-2); white-space: nowrap; }
form.mphb_sc_search-form { display: grid; grid-template-columns: 1.3fr 1.3fr .8fr .8fr auto; gap: 14px; align-items: end; margin: 0; }
form.mphb_sc_search-form > p { margin: 0 !important; width: auto !important; float: none !important; display: block !important; }
form.mphb_sc_search-form br { display: none; }
form.mphb_sc_search-form label { display: block; margin: 0 0 6px; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ci-muted); }
form.mphb_sc_search-form label abbr { display: none; }
form.mphb_sc_search-form input[type=text], form.mphb_sc_search-form select { width: 100% !important; height: 52px; margin: 0; background: var(--ci-bg); }
form.mphb_sc_search-form .mphb_sc_search-submit-button-wrapper input { height: 52px; padding: 0 26px !important; white-space: nowrap; }
form.mphb_sc_search-form .mphb_sc_search-adults, form.mphb_sc_search-form .mphb_sc_search-children { display: block !important; }
form.mphb_sc_search-form > p.mphb-required-fields-tip { display: none !important; }

/* banner sconto: più elegante del giallo pieno */
.elementor-element-4b41f45 .elementor-widget-html .elementor-widget-container > div,
.elementor-element-4b41f45 .elementor-widget-html .elementor-widget-container > section {
  background: linear-gradient(135deg, #fbf3ea, #f4e3d4) !important; border: 1px solid #ecd2bf !important; border-radius: var(--ci-radius) !important; box-shadow: none !important;
}
/* senza il banner sconto (tolto: lo sconto è nel box di ricerca, plugin Campanile Offerta diretta) il testo di benvenuto
   compensa il margine negativo del box di ricerca (2e16a63: -76px tablet, -90px telefono) */
@media (max-width: 1024px) { .elementor-element-2e16a63 + .elementor-element-dd097ea { margin-top: 126px !important; } }
@media (max-width: 767px) { .elementor-element-2e16a63 + .elementor-element-dd097ea { margin-top: 140px !important; } }

/* testi di presentazione: colonna di lettura comoda */
.elementor-element-dd097ea .elementor-widget-text-editor, .elementor-element-1ad0aa6 .elementor-widget-text-editor { max-width: 780px; margin: 0 auto; font-size: 1.05rem; line-height: 1.75; color: var(--ci-text-2); }
.elementor-element-dd097ea h2, .elementor-element-1ad0aa6 h2 { font-size: clamp(1.8rem, 1.3rem + 1.6vw, 2.6rem) !important; }

/* sezioni aggiunte */
.ci-section { max-width: var(--ci-maxw); margin: 0 auto; padding: 72px 20px; box-sizing: border-box; }
.ci-section-head { max-width: 720px; margin: 0 auto 36px; text-align: center; }
.ci-section-head h2 { margin: 0 0 10px; font-family: var(--ci-serif); font-size: clamp(1.9rem, 1.3rem + 1.8vw, 2.8rem); line-height: 1.12; color: var(--ci-text); }
.ci-section-head p { margin: 0; color: var(--ci-muted); font-size: 1.05rem; }
.ci-kicker { margin: 0 0 10px !important; color: var(--ci-accent) !important; font-size: .78rem !important; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }

/* camere in home */
.ci-room-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.ci-room-card { display: flex; flex-direction: column; background: var(--ci-surface); border: 1px solid var(--ci-stone-2); border-radius: var(--ci-radius); overflow: hidden; box-shadow: var(--ci-shadow); transition: transform .2s, box-shadow .2s, border-color .2s; }
.ci-room-card:hover { border-color: #d4b9a3; }
.ci-room-card:hover { transform: translateY(-4px); box-shadow: var(--ci-shadow-lg); }
.ci-room-photo { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--ci-stone); }
.ci-room-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.ci-room-card:hover .ci-room-photo img { transform: scale(1.04); }
.ci-room-body { display: flex; flex-direction: column; flex: 1; padding: 20px 22px 22px; }
.ci-room-body h3 { margin: 0 0 8px; font-family: var(--ci-serif); font-size: 1.6rem; font-weight: 400; }
.ci-room-body h3 a { color: var(--ci-text); text-decoration: none; }
.ci-room-facts { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 0 0 16px; padding: 0; list-style: none; color: var(--ci-muted); font-size: .9rem; }
.ci-room-facts li { display: inline-flex; align-items: center; gap: 6px; margin: 0; }
.ci-room-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--ci-border); }
.ci-room-price { margin: 0; font-size: 1.35rem; font-weight: 700; color: var(--ci-text); }
.ci-room-price span { font-size: .8rem; font-weight: 400; color: var(--ci-muted); }

/* punti di forza */
.ci-features { padding-top: 24px; }
.ci-feature-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.ci-feature { padding: 26px 22px; background: var(--ci-surface); border: 1px solid var(--ci-border); border-radius: var(--ci-radius); }
.ci-feature .ci-icon { width: 44px; height: 44px; padding: 10px; border-radius: 50%; background: var(--ci-accent-50); color: var(--ci-accent); box-sizing: border-box; }
.ci-feature h3 { margin: 16px 0 8px; font-family: var(--ci-serif); font-size: 1.3rem; font-weight: 400; }
.ci-feature p { margin: 0; font-size: .95rem; line-height: 1.6; color: var(--ci-muted); }

/* posizione e contatti */
.ci-location-card { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; padding: 44px; background: var(--ci-stone); border-radius: var(--ci-radius); }
.ci-location-card h2 { margin: 0 0 16px; font-family: var(--ci-serif); font-size: clamp(1.8rem, 1.3rem + 1.4vw, 2.4rem); line-height: 1.1; }
.ci-location-card h3 { margin: 0 0 8px; font-family: var(--ci-serif); font-size: 1.5rem; font-weight: 400; }
.ci-location-card p { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 10px; }
.ci-contact-buttons { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.ci-contact-buttons .ci-btn { min-height: 44px; }

/* sezione "Organizza un'esperienza" */
.elementor-element-caab4e6 { border-radius: 0; }
.elementor-element-caab4e6 h2 { font-size: clamp(1.8rem, 1.2rem + 2vw, 3rem) !important; }

/* recensioni */
.elementor-element-69991c0 { padding: 20px 0 60px; }

/* ---------------------------------------------------------------- PIÈ DI PAGINA */
.site-footer, .site-footer .site-primary-footer-wrap, .site-footer .site-below-footer-wrap, .site-footer .site-above-footer-wrap {
  background: #2b2724 !important; color: #d9cfc3 !important; border: 0 !important;
}
.site-footer { margin-top: 40px; }
.site-footer h2, .site-footer h3, .site-footer h4, .site-footer .widget-title { color: #fff !important; font-family: var(--ci-serif); font-weight: 400; }
.site-footer a { color: #f1dccd !important; }
.site-footer a:hover { color: #fff !important; }
.site-footer .ast-footer-copyright, .site-footer .ast-footer-copyright p { color: #a99d90 !important; font-size: .85rem; }
.site-footer .site-below-footer-wrap { border-top: 1px solid rgba(255, 255, 255, .08) !important; }

/* ---------------------------------------------------------------- PASSAGGI DELLA PRENOTAZIONE */
.ci-steps { display: flex; justify-content: center; gap: 8px; max-width: 760px; margin: 28px auto 24px !important; padding: 0 16px !important; list-style: none; counter-reset: none; }
.ci-steps li { display: flex; align-items: center; gap: 8px; flex: 1; margin: 0 !important; padding: 10px 14px; border-radius: 999px; background: var(--ci-surface); border: 1px solid var(--ci-border); color: var(--ci-muted); font-size: .9rem; font-weight: 600; white-space: nowrap; }
.ci-steps li span { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--ci-stone); color: var(--ci-muted); font-size: .8rem; }
.ci-steps li.is-active { border-color: var(--ci-accent); color: var(--ci-text); box-shadow: 0 0 0 3px rgba(168, 88, 47, .1); }
.ci-steps li.is-active span { background: var(--ci-accent); color: #fff; }
.ci-steps li.is-done { color: var(--ci-ok); }
.ci-steps li.is-done span { background: #e5f0e7; color: var(--ci-ok); }

/* ---------------------------------------------------------------- RISULTATI DELLA RICERCA */
.ci-page-results .entry-content > .elementor .elementor-section:first-child .elementor-background-overlay,
.ci-page-results .ast-container { max-width: var(--ci-maxw); }
.ci-stay-summary { max-width: var(--ci-maxw); margin: 0 auto 18px !important; padding: 16px 20px; background: var(--ci-surface); border: 1px solid var(--ci-border); border-radius: var(--ci-radius-sm); color: var(--ci-text) !important; font-weight: 600; }

/* barra "Confermare la prenotazione" quando si è scelta una camera */
.mphb-reservation-cart { position: sticky; top: 90px; z-index: 50; margin: 0 0 22px !important; padding: 16px 20px !important; background: var(--ci-surface) !important; border: 1px solid var(--ci-accent) !important; border-radius: var(--ci-radius) !important; box-shadow: var(--ci-shadow-lg); }
.admin-bar .mphb-reservation-cart { top: 122px; }
.mphb-reservation-cart .mphb-reservation-details { margin: 0 0 10px; color: var(--ci-text); font-weight: 600; }
.mphb-reservation-cart .mphb-confirm-reservation { width: 100%; min-height: 52px; font-size: 1.05rem !important; background: var(--ci-ok) !important; box-shadow: 0 8px 20px rgba(63, 122, 79, .25); }

/* scheda della camera nei risultati: foto a sinistra, dettagli e prezzo a destra */
.mphb_sc_search_results-wrapper .mphb-room-type {
  display: grid !important; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 0;
  margin: 0 0 26px !important; padding: 0 !important;
  background: var(--ci-surface); border: 0 !important; border-radius: var(--ci-radius) !important; overflow: hidden; box-shadow: var(--ci-shadow);
}
.mphb-room-type .ci-rr-media { min-width: 0; background: var(--ci-stone); }
.mphb-room-type .ci-rr-media img { border-radius: 0 !important; }
.mphb-room-type .ci-rr-media .flex-viewport, .mphb-room-type .ci-rr-media .mphb-gallery-main-slider { border-radius: 0; }
.mphb-room-type .ci-rr-info { display: flex; flex-direction: column; padding: 26px 28px; min-width: 0; }
.mphb-room-type .mphb-room-type-title { margin: 0 0 8px !important; font-family: var(--ci-serif); font-size: 2rem !important; }
.mphb-room-type .mphb-room-type-title a { color: var(--ci-text); text-decoration: none; }
.mphb-room-type .ci-rr-info > p:not([class]) { margin: 0 0 14px; font-size: .95rem; line-height: 1.6; color: var(--ci-muted); }
.mphb-room-type-details-title { display: none; }
.mphb-loop-room-type-attributes, .mphb-single-room-type-attributes { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px !important; padding: 0 !important; list-style: none !important; }
.mphb-loop-room-type-attributes li, .mphb-single-room-type-attributes li { margin: 0 !important; padding: 6px 12px; border-radius: 999px; background: var(--ci-stone); color: var(--ci-text-2); font-size: .85rem; line-height: 1.4; }
.mphb-loop-room-type-attributes li.mphb-room-type-facilities { flex-basis: 100%; border-radius: var(--ci-radius-sm); background: transparent; border: 1px solid var(--ci-border); }
.mphb-room-type .mphb-regular-price { margin: auto 0 14px !important; padding-top: 16px; border-top: 1px solid var(--ci-border); color: var(--ci-muted); font-size: .9rem; }
.mphb-room-type .mphb-regular-price .mphb-price { display: block; font-size: 1.8rem; font-weight: 700; color: var(--ci-text); }
.mphb-room-type .mphb-reserve-room-section { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.mphb-room-type .mphb-book-button { min-height: 50px; padding: 0 30px !important; font-size: 1rem !important; }
.mphb-room-type .mphb-remove-from-reservation { background: transparent !important; color: var(--ci-accent) !important; border: 1px solid var(--ci-accent) !important; box-shadow: none; }
.mphb-rooms-reservation-message-wrapper { flex-basis: 100%; color: var(--ci-ok); font-weight: 600; }

/* nessuna camera disponibile */
.ci-noresults { max-width: 720px; margin: 10px auto 40px; padding: 40px 32px; text-align: center; background: var(--ci-surface); border-radius: var(--ci-radius); box-shadow: var(--ci-shadow); }
.ci-noresults > .ci-icon { width: 56px; height: 56px; padding: 14px; border-radius: 50%; background: var(--ci-accent-50); color: var(--ci-accent); box-sizing: border-box; }
.ci-noresults h2 { margin: 14px 0 8px; font-family: var(--ci-serif); font-size: 2rem; }
.ci-noresults p { color: var(--ci-muted); }
.ci-noresults .ci-contact-buttons { justify-content: center; }

/* ---------------------------------------------------------------- PAGINA DELLA CAMERA */
.ci-page-room .wp-block-motopress-hotel-booking-wrapper { max-width: var(--ci-maxw); margin: 0 auto; padding: 24px 20px 40px; }
.ci-page-room .wp-block-motopress-hotel-booking-wrapper > hr, .ci-page-room .wp-block-motopress-hotel-booking-wrapper > .wp-block-spacer { display: none; }
.ci-page-room .mphb-single-room-type-thumbnails img { width: 100%; max-height: 620px; object-fit: cover; border-radius: var(--ci-radius); }
.ci-page-room .mphb-single-room-type-gallery-wrapper { margin: 14px 0 0; }
.ci-page-room .mphb-single-room-type-gallery-wrapper img { border-radius: var(--ci-radius-sm); }
.ci-room-layout { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 44px; align-items: start; margin-top: 34px; }
.ci-room-main .mphb-room-type-title { margin: 0 0 12px; font-family: var(--ci-serif); font-size: clamp(2.2rem, 1.6rem + 2vw, 3.2rem) !important; }
.ci-room-main > p { font-size: 1.05rem; line-height: 1.75; }
.ci-room-main .mphb_sc_availability_calendar-wrapper { margin-top: 26px; padding: 22px; background: var(--ci-surface); border-radius: var(--ci-radius); box-shadow: var(--ci-shadow); }
.ci-book-card { position: sticky; top: 100px; padding: 26px; background: var(--ci-surface); border-radius: var(--ci-radius); box-shadow: var(--ci-shadow-lg); }
.admin-bar .ci-book-card { top: 132px; }
.ci-book-card-title { margin: 0 0 6px; font-family: var(--ci-serif); font-size: 1.6rem; color: var(--ci-text); }
.ci-book-card .mphb-regular-price { margin: 0 0 16px; padding-bottom: 16px; border-bottom: 1px solid var(--ci-border); color: var(--ci-muted); }
.ci-book-card .mphb-regular-price .mphb-price { font-size: 1.6rem; font-weight: 700; color: var(--ci-text); }
.ci-book-card .mphb-booking-form p { margin: 0 0 12px; }
.ci-book-card .mphb-booking-form label { display: block; margin-bottom: 6px; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ci-muted); }
.ci-book-card .mphb-booking-form br { display: none; }
.ci-book-card .mphb-booking-form input[type=text], .ci-book-card .mphb-booking-form select { width: 100% !important; }
.ci-book-card .mphb-reserve-btn-wrapper .button, .ci-book-card input[type=submit] { width: 100%; min-height: 52px; }

/* calendario (datepicker MotoPress) nei toni del sito */
.datepick-popup .datepick, .mphb-calendar .datepick { border: 0 !important; border-radius: var(--ci-radius-sm) !important; box-shadow: var(--ci-shadow-lg) !important; font-family: var(--ci-sans) !important; }
.mphb-datepicker-light-blue .datepick-nav, .mphb-datepicker-light-blue .datepick-ctrl, .mphb-datepicker-light-blue .datepick-month-header, .mphb-datepicker-light-blue .datepick-month-header select { background: var(--ci-text) !important; color: #fff !important; }
.mphb-datepicker-light-blue .datepick-month a.datepick-selected, .mphb-datepicker-light-blue .datepick-month td .datepick-selected { background: var(--ci-accent) !important; color: #fff !important; }
.mphb-datepicker-light-blue .datepick-month a.datepick-highlight { background: var(--ci-accent-50) !important; color: var(--ci-text) !important; }

/* ---------------------------------------------------------------- CHECKOUT */
.ci-page-checkout .entry-content .elementor-section:first-child { margin-bottom: 0; }
form.mphb_sc_checkout-form { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 32px; align-items: start; max-width: var(--ci-maxw); margin: 0 auto; }
form.mphb_sc_checkout-form > input[type=hidden] { display: none; }
.ci-co-main, .ci-co-aside { min-width: 0; }
.ci-co-aside { position: sticky; top: 100px; padding: 24px; background: var(--ci-surface); border-radius: var(--ci-radius); box-shadow: var(--ci-shadow-lg); }
.admin-bar .ci-co-aside { top: 132px; }
.ci-co-aside-title { margin: 0 0 12px; font-family: var(--ci-serif); font-size: 1.6rem; color: var(--ci-text); }
.mphb_sc_checkout-form .mphb-checkout-section { margin: 0 0 20px !important; padding: 24px !important; background: var(--ci-surface) !important; border: 1px solid var(--ci-border) !important; border-radius: var(--ci-radius) !important; box-shadow: none !important; }
.ci-co-aside .mphb-checkout-section { padding: 0 !important; border: 0 !important; margin: 0 0 16px !important; }
/* "Come vuoi pagare?" (inc/ci-pay.php): acconto o tutto subito */
.ci-paychoice-title { margin: 4px 0 8px; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ci-muted); }
.ci-co-aside .ci-paychoice .ci-paychoice-opt, .ci-paychoice-opt { display: flex !important; flex-direction: row !important; gap: 10px; align-items: flex-start; margin: 0 0 8px; padding: 12px 14px; border: 1px solid var(--ci-border); border-radius: var(--ci-radius-sm); cursor: pointer; background: var(--ci-surface); }
.ci-paychoice-opt:has(input:checked) { border-color: var(--ci-accent); background: var(--ci-accent-50); }
.ci-paychoice-opt input { flex: 0 0 auto; width: auto !important; margin: 3px 0 0 !important; accent-color: var(--ci-accent); }
.ci-paychoice-opt > span { flex: 1 1 auto; }
.ci-paychoice-opt strong { display: block; color: var(--ci-text); font-size: .95rem; }
.ci-paychoice-opt small { display: block; color: var(--ci-muted); font-size: .82rem; line-height: 1.4; }
.mphb_sc_checkout-form .mphb-checkout-section h3, .mphb_sc_checkout-form .mphb-checkout-section h4, .mphb_sc_checkout-form .mphb-checkout-section > h2 { margin: 0 0 14px !important; padding: 0 0 10px; border-bottom: 1px solid var(--ci-border); font-family: var(--ci-serif); font-size: 1.4rem; font-weight: 400; color: var(--ci-text); }
.mphb_sc_checkout-form .mphb-checkout-section p { margin: 0 0 14px; }
.mphb_sc_checkout-form label { display: block; margin-bottom: 6px; font-weight: 600; color: var(--ci-text); font-size: .9rem; }
.mphb_sc_checkout-form label abbr { text-decoration: none; color: var(--ci-accent); border: 0; }
.mphb_sc_checkout-form br { display: none; }
.mphb_sc_checkout-form input[type=text], .mphb_sc_checkout-form input[type=email], .mphb_sc_checkout-form input[type=tel], .mphb_sc_checkout-form select, .mphb_sc_checkout-form textarea { width: 100% !important; max-width: none !important; box-sizing: border-box; }
#mphb-customer-details .mphb-customer-name, #mphb-customer-details .mphb-customer-last-name, #mphb-customer-details .mphb-customer-email, #mphb-customer-details .mphb-customer-phone { display: inline-block; width: calc(50% - 8px); vertical-align: top; }
#mphb-customer-details .mphb-customer-name, #mphb-customer-details .mphb-customer-email { margin-right: 12px; }
/* dettagli prenotazione: date in evidenza */
#mphb-booking-details .mphb-check-in-date, #mphb-booking-details .mphb-check-out-date { display: inline-block; margin: 0 18px 10px 0; padding: 10px 14px; background: var(--ci-stone); border-radius: var(--ci-radius-sm); }
/* prezzi */
.mphb-price-breakdown { width: 100%; border: 0 !important; border-collapse: collapse; font-size: .93rem; }
.mphb-price-breakdown th, .mphb-price-breakdown td { padding: 9px 0 !important; border: 0 !important; border-bottom: 1px solid var(--ci-border) !important; background: transparent !important; }
.mphb-price-breakdown tfoot th, .mphb-price-breakdown .mphb-price-breakdown-total th, .mphb-price-breakdown .mphb-price-breakdown-total td { font-weight: 700; color: var(--ci-text); }
.mphb-price-breakdown td:last-child, .mphb-price-breakdown th:last-child { text-align: right; }
.ci-co-aside .mphb-total-price, .ci-co-aside .mphb-deposit-amount { display: flex; justify-content: space-between; margin: 0 0 6px; color: var(--ci-text); }
.ci-co-aside .mphb-total-price { font-size: 1.1rem; font-weight: 700; }
.ci-co-aside .mphb-deposit-amount { padding: 10px 12px; border-radius: var(--ci-radius-sm); background: var(--ci-accent-50); color: var(--ci-accent-600); font-weight: 700; }
/* metodi di pagamento come schede */
#mphb-billing-details .mphb-gateways-list { margin: 0; padding: 0; list-style: none; }
#mphb-billing-details .mphb-gateways-list > li { margin: 0 0 10px; padding: 14px 16px; border: 1px solid var(--ci-border); border-radius: var(--ci-radius-sm); transition: border-color .15s, background .15s; }
#mphb-billing-details .mphb-gateways-list > li:has(input:checked) { border-color: var(--ci-accent); background: var(--ci-accent-50); }
#mphb-billing-details .mphb-gateways-list label { display: inline; font-weight: 700; }
/* condizioni e invio */
.mphb-checkout-terms-wrapper { max-height: 260px; overflow: auto; font-size: .85rem; line-height: 1.55; }
.mphb_sc_checkout-submit-wrapper { margin: 0 !important; }
.mphb_sc_checkout-submit-wrapper input[type=submit] { width: 100%; min-height: 56px; font-size: 1.1rem !important; background: var(--ci-ok) !important; box-shadow: 0 10px 24px rgba(63, 122, 79, .28); }
.mphb_sc_checkout-submit-wrapper input[type=submit]:hover { background: #336443 !important; }
.mphb-errors-wrapper:not(:empty) { padding: 10px 12px; border-radius: var(--ci-radius-sm); background: #fbeaea; color: #9b2c2c; font-size: .9rem; }
.mphb-login-form-wrap { max-width: var(--ci-maxw); margin: 0 auto 14px; font-size: .9rem; }

/* ---------------------------------------------------------------- DOPO LA PRENOTAZIONE */
.ci-after-booking .ci-thanks { max-width: 760px; margin: 0 auto 28px; padding: 36px 28px; text-align: center; background: var(--ci-surface); border-radius: var(--ci-radius); box-shadow: var(--ci-shadow); }
.ci-thanks > .ci-icon { width: 64px; height: 64px; padding: 14px; border-radius: 50%; background: #e5f0e7; color: var(--ci-ok); box-sizing: border-box; }
.ci-thanks h1 { margin: 14px 0 8px; font-family: var(--ci-serif); font-size: clamp(1.8rem, 1.3rem + 1.6vw, 2.6rem); }
.ci-thanks p { margin: 0; color: var(--ci-muted); }
.ci-page-thanks .mphb-payment-messages { display: none; }  /* "Grazie per il pagamento..." già detto sopra */
.ci-page-thanks .mphb_sc_booking_confirmation { max-width: 760px; margin: 0 auto; padding: 26px 28px; background: var(--ci-surface); border-radius: var(--ci-radius); box-shadow: var(--ci-shadow); }
.ci-page-thanks .mphb_sc_booking_confirmation > * { max-width: none !important; }
.ci-page-thanks .mphb_sc_booking_confirmation h3:first-child, .ci-page-thanks .mphb_sc_booking_confirmation h2:first-child { margin-top: 0; }
.ci-page-thanks .mphb-booking-details, .ci-page-thanks .mphb-payment-details, .ci-page-thanks .entry-content h2, .ci-page-thanks .entry-content h3 { max-width: 760px; margin-left: auto !important; margin-right: auto !important; }
.ci-page-thanks .entry-content h2, .ci-page-thanks .entry-content h3 { font-family: var(--ci-serif); font-weight: 400; }
/* sopra i passaggi Astra somma margine del contenuto, padding dell'articolo e margine dei passaggi (~180px vuoti);
   :has() sul blocco scritto dal server, non sulla classe del JS, così la pagina non salta al caricamento */
body:has(.ci-after-booking) #primary { margin-top: 24px !important; padding-top: 0 !important; }  /* sul telefono Astra usa padding 60px */
body:has(.ci-after-booking) #primary > .site-main > article { padding-top: 0 !important; }
.ci-next-steps .ci-btn .ci-icon { color: currentColor; margin-top: 0; }  /* l'icona arancio delle righe spariva sul pulsante arancio */
.ci-thanks .ci-thanks-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 22px; }
.ci-thanks-actions .ci-btn .ci-icon { width: 18px; height: 18px; }
/* dettagli di prenotazione e pagamento: riquadri affiancati invece della riga di MotoPress (che andava a capo a metà) */
.ci-page-thanks .mphb-booking-details-section .mphb-booking-details { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; margin: 0 0 12px !important; padding: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; }
.ci-page-thanks .mphb-booking-details-section .mphb-booking-details > li { margin: 0 !important; padding: 10px 14px !important; border: 0 !important; border-radius: var(--ci-radius-sm); background: var(--ci-stone); min-width: 0; }
.ci-page-thanks .mphb-booking-details > li span.label { display: block; font-size: .8rem; color: var(--ci-muted); }
.ci-page-thanks .mphb-booking-details > li span.value { display: block; font-weight: 700; overflow-wrap: anywhere; }
/* ogni pagamento: una scheda a righe "etichetta … valore" (5 voci lunghe non stanno in riquadri) */
.ci-page-thanks .mphb-booking-details-section.payment .mphb-booking-details { display: block !important; padding: 4px 16px !important; border-radius: var(--ci-radius-sm); background: var(--ci-stone) !important; }
.ci-page-thanks .mphb-booking-details-section.payment .mphb-booking-details > li { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 8px 0 !important; border-radius: 0; background: none; }
.ci-page-thanks .mphb-booking-details-section.payment .mphb-booking-details > li + li { border-top: 1px solid var(--ci-border) !important; }
.ci-page-thanks .mphb-booking-details-section.payment .mphb-booking-details > li span.value { text-align: right; }
.ci-page-thanks .mphb-booking-details-section .accommodations { margin-top: 4px; }
.ci-page-thanks .mphb-booking-details-section + .mphb-booking-details-section { margin-top: 26px; }
.ci-next-steps { max-width: 760px; margin: 30px auto 0; padding: 28px; background: var(--ci-stone); border-radius: var(--ci-radius); }
.ci-next-steps h2 { margin: 0 0 12px; font-family: var(--ci-serif); font-weight: 400; }
.ci-next-steps ul { margin: 0; padding: 0; list-style: none; }
.ci-next-steps li { display: flex; gap: 10px; margin: 0 0 10px; }
.ci-next-steps .ci-icon { color: var(--ci-accent); margin-top: 2px; }

/* ---------------------------------------------------------------- PAGINA STANZE (/rooms/) */
.elementor-widget-mphbe-room .mphb-room-type, .elementor-widget-mphbe-room > .elementor-widget-container { background: var(--ci-surface); border-radius: var(--ci-radius); box-shadow: var(--ci-shadow); overflow: hidden; }

/* ---------------------------------------------------------------- BARRA FISSA SUL TELEFONO */
.ci-mobile-bar { display: none; }

/* ---------------------------------------------------------------- RESPONSIVE */
@media (max-width: 1100px) {
  .ci-room-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ci-feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  form.mphb_sc_search-form { grid-template-columns: 1fr 1fr 1fr 1fr; }
  form.mphb_sc_search-form .mphb_sc_search-submit-button-wrapper { grid-column: 1 / -1; }
  form.mphb_sc_search-form .mphb_sc_search-submit-button-wrapper input { width: 100%; }
}
@media (max-width: 921px) {
  .ci-room-layout, form.mphb_sc_checkout-form { grid-template-columns: minmax(0, 1fr); }
  .ci-book-card, .ci-co-aside { position: static; }
  .mphb_sc_search_results-wrapper .mphb-room-type { grid-template-columns: minmax(0, 1fr); }
  .ci-location-card { grid-template-columns: 1fr; padding: 32px 26px; gap: 24px; }
}
@media (max-width: 767px) {
  body { padding-bottom: 76px; }
  .ci-mobile-bar {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 9990;
    display: flex; gap: 10px; padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
    background: rgba(255, 255, 255, .97); border-top: 1px solid var(--ci-border); box-shadow: 0 -8px 24px rgba(43, 39, 36, .08);
  }
  .ci-mobile-bar a { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 50px; border-radius: 999px; font-weight: 700; text-decoration: none; }
  .ci-mobile-bar-wa { width: 54px; flex: none; background: #e8f5ec; color: #1f8a4c !important; }
  .ci-mobile-bar-book { flex: 1; background: var(--ci-accent); color: #fff !important; }
  #masthead .ci-menu-book { display: none; }
  form.mphb_sc_search-form { grid-template-columns: 1fr 1fr; gap: 12px; }
  body.home .elementor-top-section:has(form.mphb_sc_search-form) .elementor-widget-shortcode > .elementor-widget-container { padding: 16px !important; }
  .ci-search-head h1 { font-size: 1.35rem; }
  .ci-search-head h1 span { display: block; }
  .ci-section { padding: 52px 16px; }
  .ci-room-grid, .ci-feature-grid { grid-template-columns: minmax(0, 1fr); }
  .ci-steps li { padding: 8px 10px; font-size: .78rem; }
  .ci-steps li span { width: 22px; height: 22px; }
  .mphb-room-type .ci-rr-info { padding: 20px; }
  .mphb-room-type .mphb-room-type-title { font-size: 1.7rem !important; }
  .mphb-room-type .mphb-book-button { width: 100%; }
  #mphb-customer-details .mphb-customer-name, #mphb-customer-details .mphb-customer-last-name, #mphb-customer-details .mphb-customer-email, #mphb-customer-details .mphb-customer-phone { width: 100%; margin-right: 0; }
  .mphb_sc_checkout-form .mphb-checkout-section { padding: 18px !important; }
  #cookie-law-info-bar, .cky-consent-container { bottom: 76px !important; }
}
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; }
}

.ci-room-main > hr { display: none; }
.ci-room-main .mphb_sc_availability_calendar-wrapper { display: inline-block; }
.ci-search-head .ci-stars { color: #e0a83a; }
@media (max-width: 767px) {
  .ci-search-head h1 span { font-size: .95rem; }
  .ci-search-head .ci-dot { display: none; }   /* niente "·" quando va a capo */
  body nav.trp-floating-switcher.trp-switcher-position-bottom { bottom: 84px !important; }   /* sopra la barra Prenota */
}
.ci-search-head .ci-dot { font-style: normal; }

/* ---------------------------------------------------------------- FOOTER: blocco Contatti centrato */
.site-footer .site-primary-footer-wrap { padding: 18px 20px 64px !important; }   /* il widget ha già ~46px sopra */
.site-footer .site-primary-footer-wrap .ast-builder-grid-row { display: flex !important; justify-content: center; }
.site-footer .site-primary-footer-wrap .site-footer-section:empty,
.site-footer .site-primary-footer-wrap .site-footer-section:not(:has(*)) { display: none !important; }
.site-footer .site-primary-footer-wrap .site-footer-section { flex: 0 1 520px; text-align: center; }
.site-footer .site-primary-footer-wrap .widget:last-child, .site-footer .site-primary-footer-wrap p:last-child { margin-bottom: 0 !important; }

/* ---------------------------------------------------------------- GALLERIA (Sina Portfolio) */
.elementor-widget-sina_portfolio .sina-portfolio-btn {
  background: var(--ci-surface) !important; color: var(--ci-text) !important; border: 1px solid var(--ci-border) !important;
  border-radius: 999px !important; padding: 10px 20px !important; font-size: .8rem !important; letter-spacing: .1em !important; box-shadow: none !important;
}
.elementor-widget-sina_portfolio .sina-portfolio-btn.is-checked, .elementor-widget-sina_portfolio .sina-portfolio-btn:hover { background: var(--ci-accent) !important; color: #fff !important; border-color: var(--ci-accent) !important; }
.elementor-widget-sina_portfolio .sina-portfolio-item-inner { border-radius: var(--ci-radius-sm); cursor: zoom-in; transition: transform .3s; }
.elementor-widget-sina_portfolio .sina-portfolio-item:hover .sina-portfolio-item-inner { transform: scale(1.02); }
.elementor-widget-sina_portfolio .sina-portfolio-overlay { background: rgba(43, 39, 36, .25) !important; }
.elementor-widget-sina_portfolio .sina-portfolio-link, .elementor-widget-sina_portfolio .sina-portfolio-zoom { display: none !important; }

/* visualizzatore foto (js/ci-modern.js) */
.ci-lightbox { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; background: rgba(20, 16, 12, .92); opacity: 0; transition: opacity .25s; }
.ci-lightbox.is-open { opacity: 1; }
.ci-lightbox img { max-width: 92vw; max-height: 86vh; border-radius: 10px; box-shadow: 0 30px 80px rgba(0, 0, 0, .5); transform: scale(.94); opacity: 0; transition: transform .3s ease, opacity .3s ease; user-select: none; }
.ci-lightbox.is-open img.is-loaded { transform: none; opacity: 1; }
.ci-lightbox button { position: absolute; display: grid; place-items: center; width: 52px; height: 52px; padding: 0 !important; min-height: 0; border-radius: 50% !important; background: rgba(255, 255, 255, .12) !important; color: #fff !important; font-size: 28px !important; line-height: 1 !important; box-shadow: none; }
.ci-lightbox button:hover { background: rgba(255, 255, 255, .25) !important; transform: none; }
.ci-lightbox .ci-lb-close { top: 18px; right: 18px; }
.ci-lightbox .ci-lb-prev { left: 18px; top: 50%; margin-top: -26px; }
.ci-lightbox .ci-lb-next { right: 18px; top: 50%; margin-top: -26px; }
.ci-lightbox .ci-lb-count { position: absolute; bottom: 20px; left: 0; right: 0; text-align: center; color: rgba(255, 255, 255, .75); font-size: .9rem; }
@media (max-width: 767px) { .ci-lightbox .ci-lb-prev, .ci-lightbox .ci-lb-next { top: auto; bottom: 10px; margin: 0; } .ci-lightbox img { max-width: 96vw; } }


/* ---------------------------------------------------------------- PAGINA STANZE: una sola cornice, pulsante allineato */
.elementor-widget-mphbe-room .mphb_sc_room-wrapper, .elementor-widget-mphbe-room .mphb-room-type { border: 0 !important; padding: 0 !important; margin: 0 !important; box-shadow: none !important; }
.elementor-widget-mphbe-room > .elementor-widget-container { padding: 0 !important; }
.elementor-widget-mphbe-room .mphb-room-type > *:not(.mphb-room-type-images):not(.mphb-room-type-gallery-wrapper) { margin-left: 24px !important; margin-right: 24px !important; }
.elementor-widget-mphbe-room .mphb-room-type-title { margin-top: 18px !important; font-family: var(--ci-serif); }
.elementor-widget-mphbe-room .mphb-view-details-button { margin-bottom: 24px !important; }
body a.button, body .mphb-view-details-button { display: inline-flex !important; align-items: center; justify-content: center; line-height: 1.1 !important; }

/* ---------------------------------------------------------------- TERRITORIO ED EVENTI */
.ci-page-head { max-width: 760px; margin: 0 auto; padding: 56px 20px 28px; text-align: center; }
.ci-page-head h1 { margin: 0 0 12px; font-family: var(--ci-serif); font-weight: 400; font-size: clamp(2.2rem, 1.5rem + 2.4vw, 3.4rem); line-height: 1.08; color: var(--ci-text); }
.ci-page-head p:last-child { margin: 0; color: var(--ci-muted); font-size: 1.1rem; }
/* ogni colonna diventa una scheda: foto 4:3 in alto, poi titolo e testo */
.ci-territory .entry-content > .elementor > .elementor-top-section > .elementor-container { max-width: var(--ci-maxw); gap: 28px; }
.ci-territory .entry-content .elementor-top-section:not(.ci-block) .elementor-column > .elementor-widget-wrap {
  display: flex !important; flex-direction: column; align-content: flex-start;
  margin: 0 !important; padding: 0 !important; overflow: hidden;
  background: var(--ci-surface); border-radius: var(--ci-radius); box-shadow: var(--ci-shadow);
}
.ci-territory .entry-content .elementor-column { padding: 0 !important; }
.ci-territory .entry-content .elementor-widget-image { order: -1; width: 100%; margin: 0 !important; }
.ci-territory .entry-content .elementor-widget-image img { display: block; width: 100% !important; max-width: none !important; height: auto !important; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 0 !important; }
.ci-territory .entry-content .elementor-widget-image .elementor-widget-container { padding: 0 !important; margin: 0 !important; }
.ci-territory .entry-content .elementor-widget-image-box, .ci-territory .entry-content .elementor-widget-text-editor { width: 100%; margin: 0 !important; padding: 0 28px !important; box-sizing: border-box; }
.ci-territory .entry-content .elementor-widget-image-box { padding-top: 24px !important; }
.ci-territory .entry-content .elementor-widget-text-editor:last-of-type { padding-bottom: 26px !important; }
.ci-territory .elementor-image-box-title { margin: 0 0 6px !important; font-family: var(--ci-serif) !important; font-size: 1.8rem !important; font-weight: 400 !important; color: var(--ci-text) !important; }
.ci-territory .entry-content .elementor-widget-text-editor { font-size: 1rem; line-height: 1.7; color: var(--ci-text-2); }
.ci-territory .entry-content .elementor-widget-text-editor p { margin: 0 0 12px; }
.ci-territory .entry-content .elementor-widget-spacer { display: none; }
.ci-territory .entry-content > .elementor > .elementor-top-section { margin-bottom: 28px; }
.ci-date-chip { display: inline-block; margin: 0 0 10px; padding: 4px 12px; border-radius: 999px; background: var(--ci-accent-50); color: var(--ci-accent-600); font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
/* dintorni */
.ci-nearby-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.ci-nearby-card { padding: 22px 24px; background: var(--ci-surface); border: 1px solid var(--ci-border); border-radius: var(--ci-radius); }
.ci-nearby-card h3 { margin: 10px 0 6px; font-family: var(--ci-serif); font-size: 1.4rem; font-weight: 400; color: var(--ci-text); }
.ci-nearby-card p { margin: 0; color: var(--ci-muted); font-size: .95rem; line-height: 1.6; }
.ci-distance { display: inline-flex; align-items: center; gap: 6px; color: var(--ci-accent); font-size: .85rem; font-weight: 700; }
.ci-note { margin: 16px 0 0; text-align: center; color: var(--ci-muted); font-size: .85rem; }
/* invito a prenotare */
.ci-cta-band { padding-top: 10px; }
.ci-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 36px 40px; border-radius: var(--ci-radius); background: var(--ci-text); color: #e9e1d7; }
.ci-cta-inner h2 { margin: 0 0 6px; font-family: var(--ci-serif); font-weight: 400; font-size: 2rem; color: #fff; }
.ci-cta-inner p { margin: 0; color: #cbbfb2; }
@media (max-width: 921px) {
  .ci-territory .entry-content > .elementor > .elementor-top-section > .elementor-container { flex-direction: column; padding: 0 16px; }
  .ci-nearby-grid { grid-template-columns: minmax(0, 1fr); }
  .ci-cta-inner { flex-direction: column; align-items: flex-start; padding: 28px; }
}

.ci-territory .entry-content .elementor-top-section .elementor-column { width: auto !important; flex: 1 1 0 !important; max-width: none !important; }
.ci-territory .entry-content .elementor-widget-image, .ci-territory .entry-content .elementor-widget-image > .elementor-widget-container, .ci-territory .entry-content .elementor-widget-image a { width: 100% !important; max-width: none !important; display: block; }

/* menu a tendina (Territorio) */
#masthead .main-header-menu .sub-menu { border: 0 !important; border-top: 0 !important; border-radius: 14px; padding: 8px !important; background: #fff !important; box-shadow: 0 18px 40px rgba(43, 39, 36, .14); min-width: 260px; }
#masthead .main-header-menu .sub-menu .menu-link { padding: 10px 14px !important; border-radius: 10px; border: 0 !important; font-size: .8rem; letter-spacing: .06em; line-height: 1.4 !important; }
#masthead .main-header-menu .sub-menu .menu-item:hover > .menu-link { background: var(--ci-stone); color: var(--ci-accent) !important; }

/* fasce in cima alle pagine (js: .ci-band) */
body:not(.home) #content .elementor-top-section.ci-band { margin-top: 0 !important; padding: 0 20px !important; }
body:not(.home) #content .ci-band > .elementor-container { min-height: 280px; align-items: center; }
body:not(.home) #content .ci-band .elementor-widget-wrap { align-content: center; padding: 30px 0 !important; }
.ci-band .elementor-widget:last-child { margin-bottom: 0 !important; }
.ci-band .elementor-heading-title, .ci-band-title { margin: 0 0 12px !important; font-family: var(--ci-serif) !important; font-size: clamp(2.2rem, 1.6rem + 2vw, 3.4rem) !important; font-weight: 400 !important; line-height: 1.05 !important; color: #fff !important; }
@media (max-width: 921px) { body:not(.home) #content .ci-band > .elementor-container { min-height: 200px; } }

/* ---------------------------------------------------------------- INTESTAZIONE
   Barra bianca di altezza costante. In home, finché si è in cima, logo e nome stanno in un arco
   bianco sulla foto; scorrendo (body.ci-compact) l'arco si ritira nella barra e il nome scivola
   accanto al logo. Il logo non cambia mai misura. Nelle altre pagine la barra è sempre "compatta". */
:root { --ci-bar: 96px; --ci-logo-h: 72px; --ci-logo-w: 128px; --ci-arch-w: 236px; --ci-arch-h: 162px; --ci-title-w: 176px; }
#masthead { z-index: 999; background: #fff !important; box-shadow: 0 1px 0 var(--ci-border); transition: box-shadow .4s ease; }
#masthead, #masthead .ast-primary-header-bar, #masthead .ast-above-header-bar, #masthead .site-primary-header-wrap, #masthead .site-above-header-wrap,
#masthead .ast-builder-grid-row, #masthead .site-header-section, #masthead .ast-builder-layout-element { overflow: visible !important; }
#masthead .ast-primary-header-bar, #masthead .ast-above-header-bar { border: 0 !important; }
#masthead .site-primary-header-wrap, #masthead .site-above-header-wrap { min-height: var(--ci-bar) !important; }
/* contenuto della barra centrato (la parte destra di Astra è vuota) */
@media (min-width: 922px) {
  #masthead .ast-above-header-wrap .ast-builder-grid-row { display: flex !important; justify-content: center; }
  #masthead .ast-above-header-wrap .site-header-above-section-left { flex: 0 1 auto !important; width: auto !important; justify-content: center; gap: 34px; }
  #masthead .ast-above-header-wrap .site-header-above-section-right { display: none !important; }
}

#masthead .site-branding {
  position: relative; z-index: 1; flex: none;
  width: var(--ci-arch-w); height: var(--ci-bar); margin: 0 !important; padding: 0 !important;
  display: block !important;
  transition: width .5s cubic-bezier(.22, .8, .25, 1);
}
#masthead .site-branding::before {           /* l'arco */
  content: ""; position: absolute; z-index: -1; left: 50%; top: 0;
  width: var(--ci-arch-w); height: var(--ci-arch-h); margin-left: calc(var(--ci-arch-w) / -2);
  background: #fff; border-radius: 0 0 calc(var(--ci-arch-w) / 2) calc(var(--ci-arch-w) / 2);
  box-shadow: 0 16px 30px rgba(43, 39, 36, .14);
  transform-origin: top center;
  transition: transform .5s cubic-bezier(.22, .8, .25, 1), opacity .35s ease .1s, box-shadow .4s;
}
#masthead .site-branding .site-logo-img {
  position: absolute; top: 20px; left: 50%; transform: translateX(-50%);
  width: var(--ci-logo-w); margin: 0 !important; padding: 0 !important; line-height: 0;
  transition: left .5s cubic-bezier(.22, .8, .25, 1), transform .5s cubic-bezier(.22, .8, .25, 1), top .5s cubic-bezier(.22, .8, .25, 1);
}
#masthead .site-branding .site-logo-img a { display: block; }
#masthead .site-branding .custom-logo { display: block; width: var(--ci-logo-w) !important; height: var(--ci-logo-h) !important; max-width: none !important; margin: 0 !important; }
#masthead .site-branding .ast-site-title-wrap {
  position: absolute; top: calc(20px + var(--ci-logo-h) + 10px); left: 50%; transform: translate(-50%, 0);
  width: var(--ci-title-w); margin: 0 !important; padding: 0 !important; text-align: center;
  transition: left .5s cubic-bezier(.22, .8, .25, 1), top .5s cubic-bezier(.22, .8, .25, 1), transform .5s cubic-bezier(.22, .8, .25, 1);
}
#masthead .site-branding .site-title, #masthead .site-branding .site-title a {
  display: block; margin: 0 !important; font-family: var(--ci-serif) !important; font-size: 1.55rem !important; font-weight: 400 !important;
  line-height: 1 !important; color: var(--ci-text) !important; white-space: nowrap;
}

/* compatta: scorrendo in home, sempre nelle altre pagine */
.ci-compact #masthead, body:not(.home) #masthead { box-shadow: 0 10px 30px rgba(43, 39, 36, .08); }
.ci-compact #masthead .site-branding, body:not(.home) #masthead .site-branding { width: calc(var(--ci-logo-w) + 16px + var(--ci-title-w)); }
.ci-compact #masthead .site-branding::before, body:not(.home) #masthead .site-branding::before { transform: scaleY(.25); opacity: 0; box-shadow: none; }
.ci-compact #masthead .site-branding .site-logo-img, body:not(.home) #masthead .site-branding .site-logo-img { left: 0; transform: none; top: calc((var(--ci-bar) - var(--ci-logo-h)) / 2); }
.ci-compact #masthead .site-branding .ast-site-title-wrap, body:not(.home) #masthead .site-branding .ast-site-title-wrap {
  left: calc(var(--ci-logo-w) + 16px); top: 50%; transform: translate(0, -50%); text-align: left;
}

@media (min-width: 922px) {
  #masthead { position: fixed !important; top: 0; left: 0; right: 0; }
  .admin-bar #masthead { top: 32px; }
  body:not(.home) #content { padding-top: var(--ci-bar); }
}
@media (max-width: 921px) {
  :root { --ci-bar: 72px; --ci-logo-h: 48px; --ci-logo-w: 85px; --ci-arch-w: 164px; --ci-arch-h: 116px; --ci-title-w: 132px; }
  #masthead .site-branding .site-logo-img { top: 14px; }
  #masthead .site-branding .ast-site-title-wrap { top: calc(14px + var(--ci-logo-h) + 7px); }
  #masthead .site-branding .site-title, #masthead .site-branding .site-title a { font-size: 1.12rem !important; }
}
.ci-block .elementor-widget-shortcode { margin-bottom: 0 !important; }
.ci-block > .elementor-container > .elementor-column > .elementor-widget-wrap { padding: 0 !important; }
.ci-search-head .ci-rating a { color: inherit !important; text-decoration: none !important; }
.ci-search-head .ci-rating a:hover strong { color: var(--ci-accent); }

/* "Prenota qui il tuo soggiorno" (sezione Organizza un'esperienza): pulsante chiaro sulla foto */
.elementor-element-e138567 .elementor-heading-title a {
  display: inline-block; padding: 14px 30px; border: 1.5px solid rgba(255, 255, 255, .85); border-radius: 999px;
  color: #fff !important; text-decoration: none !important; transition: background .2s, color .2s;
}
.elementor-element-e138567 .elementor-heading-title a:hover { background: #fff; color: var(--ci-text) !important; }

/* "Organizza un'esperienza…": titolo un po' più piccolo e righe bilanciate */
.elementor-element-1acf682 .elementor-heading-title { font-size: clamp(1.7rem, 1.1rem + 1.9vw, 2.6rem) !important; line-height: 1.15 !important; text-wrap: balance; }
.ci-nowrap { white-space: nowrap; }

/* ================================================================ TELEFONO E TABLET: correzioni */
@media (max-width: 921px) {
  /* Territorio/Eventi: colonne una sotto l'altra con la loro altezza (flex:1 1 0 in colonna le schiacciava) */
  .ci-territory .entry-content .elementor-top-section > .elementor-container { flex-direction: column !important; flex-wrap: nowrap !important; padding: 0 16px; gap: 20px; }
  .ci-territory .entry-content .elementor-top-section .elementor-column { flex: none !important; width: 100% !important; }
  .ci-territory .entry-content .elementor-widget { width: 100% !important; max-width: none !important; }
}
/* Servizi della camera: riquadro arrotondato invece della "pillola" (il testo lungo sbordava) */
.mphb-single-room-type-attributes li.mphb-room-type-facilities,
.mphb-loop-room-type-attributes li.mphb-room-type-facilities { flex-basis: 100%; border-radius: var(--ci-radius-sm) !important; background: transparent; border: 1px solid var(--ci-border); padding: 10px 14px; line-height: 1.6; }
@media (max-width: 767px) {
  /* Pagina camera: miniature grandi, 3 per riga, stesso formato */
  .ci-page-room .mphb-single-room-type-gallery-wrapper .gallery { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0 !important; }
  .ci-page-room .mphb-single-room-type-gallery-wrapper .gallery-item { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; float: none !important; }
  .ci-page-room .mphb-single-room-type-gallery-wrapper .gallery-item img { width: 100% !important; height: auto !important; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; border: 0 !important; }
  .ci-page-room .mphb-single-room-type-gallery-wrapper br { display: none; }
  .ci-page-room .wp-block-motopress-hotel-booking-wrapper { padding: 16px 14px 32px; }
  .ci-page-room .mphb-single-room-type-thumbnails img { border-radius: 14px; max-height: 320px; }
  .ci-room-layout { gap: 24px; margin-top: 22px; }
  /* Calendario disponibilità: largo quanto lo schermo, mesi uno sotto l'altro */
  .ci-room-main .mphb_sc_availability_calendar-wrapper { display: block; padding: 12px; }
  .mphb_sc_availability_calendar-wrapper .datepick, .mphb_sc_availability_calendar-wrapper .datepick-month-row,
  .mphb_sc_availability_calendar-wrapper .datepick-month { width: 100% !important; max-width: 100% !important; float: none !important; box-sizing: border-box; }
  .mphb_sc_availability_calendar-wrapper .datepick-month table { width: 100% !important; }
  .mphb_sc_availability_calendar-wrapper .datepick-month td, .mphb_sc_availability_calendar-wrapper .datepick-month th { padding: 0 !important; }
  .mphb_sc_availability_calendar-wrapper .datepick-month td a, .mphb_sc_availability_calendar-wrapper .datepick-month td span { display: block; padding: 8px 0 !important; text-align: center; font-size: .95rem; }
  .mphb_sc_availability_calendar-wrapper .datepick-nav { display: flex !important; justify-content: space-between; align-items: center; padding: 8px 10px !important; }
}
@media (max-width: 767px) {
  .mphb_sc_availability_calendar-wrapper .datepick-month-header select { min-height: 0 !important; height: 32px; padding: 2px 8px !important; font-size: .9rem; background: transparent !important; color: #fff !important; border-color: rgba(255,255,255,.4) !important; }
  .mphb_sc_availability_calendar-wrapper .datepick-month-header select option { color: var(--ci-text); }
  .mphb_sc_availability_calendar-wrapper .datepick-month { margin-bottom: 10px !important; }
  .mphb_sc_availability_calendar-wrapper .datepick-month table tbody tr:empty, .mphb_sc_availability_calendar-wrapper .datepick-month tbody tr:not(:has(a, span:not(:empty))) { display: none; }
}

/* ================================================================ TELEFONO: intestazione e barra in basso */
@media (max-width: 921px) {
  /* barra in alto sempre visibile anche scorrendo */
  /* fissa in alto (sticky non funziona: Astra mette overflow-x:hidden sul body) */
  /* !important: il "CSS aggiuntivo" del Customizer (post 57) forza l'header statico sotto 1024px */
  #masthead { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; z-index: 999 !important; }
  .admin-bar #masthead { top: 46px !important; }
  body #page { padding-top: var(--ci-bar); }
  /* logo sempre su una riga (niente semicerchio) */
  #masthead .site-branding { width: calc(var(--ci-logo-w) + 12px + var(--ci-title-w)) !important; }
  #masthead .site-branding::before { display: none !important; }
  #masthead .site-branding .site-logo-img { left: 0 !important; transform: none !important; top: calc((var(--ci-bar) - var(--ci-logo-h)) / 2) !important; }
  #masthead .site-branding .ast-site-title-wrap { left: calc(var(--ci-logo-w) + 12px) !important; top: 50% !important; transform: translate(0, -50%) !important; text-align: left !important; }
  :root { --ci-bar: 64px; --ci-logo-h: 40px; --ci-logo-w: 71px; }
}
@media (max-width: 767px) {
  /* barra "Verifica disponibilità": in home compare solo dopo aver superato il box di ricerca */
  .ci-mobile-bar { transition: transform .3s ease, opacity .3s ease; }
  body.home:not(.ci-past-search) .ci-mobile-bar { transform: translateY(110%); opacity: 0; pointer-events: none; }
  body.home:not(.ci-past-search) { padding-bottom: 0; }
}

/* Spazio bianco sotto il footer: il CSS aggiuntivo del Customizer mette body{padding-bottom:140px} (vecchia barra prenotazione) */
body { padding-bottom: 0 !important; }
@media (max-width: 767px) { body.ci-past-search, body:not(.home) { padding-bottom: 76px !important; } }

/* Lingua nel menu (IT | EN); niente pulsante lingua flottante */
nav.trp-floating-switcher, .trp-language-switcher.trp-floating-switcher { display: none !important; }
#masthead .ci-lang .menu-link { display: inline-flex !important; align-items: center; gap: 6px; }
.ci-lang a, .ci-lang .ci-lang-current {
  display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; border-radius: 999px;
  font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-decoration: none !important; line-height: 1;
  border: 1px solid transparent; transition: background .15s, border-color .15s;
}
.ci-lang img { width: 22px; height: 15px; object-fit: cover; border-radius: 3px; box-shadow: 0 0 0 1px rgba(0,0,0,.08); }
.ci-lang a { color: var(--ci-muted) !important; opacity: .85; }
.ci-lang a:hover { opacity: 1; background: var(--ci-stone); color: var(--ci-text) !important; }
.ci-lang .ci-lang-current { color: var(--ci-text); background: var(--ci-stone); border-color: var(--ci-border); }
.ci-lang-bar { display: none; }
@media (max-width: 921px) {
  .ci-lang-bar { display: inline-flex; align-items: center; gap: 2px; margin-right: 6px; }
  .ci-lang-bar a, .ci-lang-bar .ci-lang-current { padding: 6px; font-size: 0; gap: 0; }   /* solo bandiere */
  .ci-lang-bar img { width: 24px !important; height: 16px !important; max-width: none !important; flex: none; }
  .ci-lang-bar a, .ci-lang-bar .ci-lang-current { flex: none; min-width: 36px; justify-content: center; }
  .ast-mobile-popup-drawer .ci-lang, #ast-hf-mobile-menu .ci-lang { display: none !important; }
}

/* ================================================================ CALENDARIO DISPONIBILITÀ (nuovo stile)
   Stesse informazioni di MotoPress: libero, occupato, giorno di arrivo/partenza (metà), passati. */
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) { --cal-free: #e8f1e4; --cal-free-text: #2f5d3a; --cal-booked: #f4e4dc; --cal-booked-line: #ead1c4; --cal-booked-text: #b49a8c; }
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick, :is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-month-row, :is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-month { height: auto !important; }
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick { width: 100% !important; background: transparent !important; border: 0 !important; box-shadow: none !important; font-family: var(--ci-sans) !important; }
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-nav { display: flex !important; justify-content: space-between; align-items: center; background: transparent !important; padding: 0 0 10px !important; border: 0 !important; }
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-nav a { font-size: 0 !important; color: var(--ci-text) !important; background: transparent !important; }
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-cmd-prev, :is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-cmd-next {
  display: grid !important; place-items: center; width: 38px; height: 38px; border-radius: 50% !important; border: 1px solid var(--ci-border) !important; background: #fff !important;
}
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-cmd-prev::before { content: "‹"; font-size: 24px; line-height: 1; }
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-cmd-next::before { content: "›"; font-size: 24px; line-height: 1; }
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-cmd-today::before { content: "Oggi"; font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ci-accent); }
html[lang^="en"] :is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-cmd-today::before { content: "Today"; }
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-disabled { opacity: .3; pointer-events: none; }
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-month-row { display: flex; gap: 24px; flex-wrap: wrap; }
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-month { flex: 1 1 260px; width: auto !important; margin: 0 !important; border: 0 !important; background: transparent !important; }
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-month-header {
  display: flex !important; justify-content: center; align-items: center; gap: 4px; padding: 6px 0 10px !important; height: auto !important; min-height: 44px; box-sizing: border-box;
  background: transparent !important; color: var(--ci-text) !important; font-family: var(--ci-serif) !important; font-size: 1.25rem !important; font-weight: 400 !important;
}
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-month-header select {
  min-height: 0 !important; height: auto !important; width: auto !important; padding: 2px 4px !important; margin: 0 !important;
  border: 0 !important; background: transparent !important; color: var(--ci-text) !important; font: inherit !important; box-shadow: none !important; cursor: pointer;
}
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-month table { width: 100% !important; border-collapse: separate !important; border-spacing: 3px !important; border: 0 !important; margin: 0 !important; }
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-month th { padding: 4px 0 !important; border: 0 !important; background: transparent !important; color: var(--ci-muted) !important; font-size: .72rem !important; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-month th a, :is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-month th span { color: var(--ci-muted) !important; background: transparent !important; }
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-month td { padding: 0 !important; border: 0 !important; background: transparent !important; }
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-month td > .mphb-date-cell {
  display: grid !important; place-items: center; aspect-ratio: 1 / 1; min-height: 34px; padding: 0 !important; border-radius: 10px;
  font-size: .9rem !important; font-weight: 600; text-decoration: none !important; border: 1px solid transparent; box-sizing: border-box;
  background: transparent !important; color: var(--ci-text) !important; transition: transform .12s, border-color .12s;
}
/* liberi */
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-month td > .mphb-date-cell.mphb-available-date { background: var(--cal-free) !important; color: var(--cal-free-text) !important; }
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-month td > .mphb-date-cella.mphb-available-date:hover { border-color: var(--cal-free-text); transform: scale(1.06); }
/* occupati: rigati, numero barrato */
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-month td > .mphb-date-cell.mphb-booked-date,
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-month td > .mphb-date-cell.mphb-not-available-date {
  background: repeating-linear-gradient(135deg, var(--cal-booked) 0 6px, var(--cal-booked-line) 6px 8px) !important;
  color: var(--cal-booked-text) !important; text-decoration: line-through !important; text-decoration-color: rgba(180, 154, 140, .6) !important;
}
/* metà giornata: arrivo di una prenotazione (pomeriggio occupato) / partenza (mattina occupata) */
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-month td > .mphb-date-cell.mphb-booked-date.mphb-date-check-in { background: linear-gradient(135deg, var(--cal-free) 50%, var(--cal-booked) 50%) !important; color: var(--ci-text) !important; text-decoration: none !important; }
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-month td > .mphb-date-cell.mphb-available-date.mphb-date-check-out { background: linear-gradient(135deg, var(--cal-booked) 50%, var(--cal-free) 50%) !important; }
/* passati e giorni di altri mesi */
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-month td > .mphb-date-cell.mphb-past-date { background: transparent !important; color: #c9c0b5 !important; text-decoration: none !important; font-weight: 400; }
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-month td > .mphb-date-cell.mphb-extra-date, :is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-month td > .mphb-date-cell.datepick-other-month { visibility: hidden; }
/* oggi */
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-month td > .mphb-date-cell.datepick-today { box-shadow: inset 0 0 0 2px var(--ci-accent) !important; }
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-ctrl { display: none !important; }
/* legenda */
.ci-cal-legend { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--ci-border); font-size: .82rem; color: var(--ci-muted); }
.ci-cal-legend span { display: inline-flex; align-items: center; gap: 7px; }
.ci-sw { display: inline-block; width: 16px; height: 16px; border-radius: 4px; }
.ci-sw-free { background: #e8f1e4; border: 1px solid #c9dcc1; }
.ci-sw-booked { background: repeating-linear-gradient(135deg, #f4e4dc 0 4px, #ead1c4 4px 6px); border: 1px solid #ead1c4; }
.ci-sw-half { background: linear-gradient(135deg, #e8f1e4 50%, #f4e4dc 50%); border: 1px solid #e0d6cb; }
@media (max-width: 767px) {
  .mphb_sc_availability_calendar-wrapper .datepick-month td a, .mphb_sc_availability_calendar-wrapper .datepick-month td span { padding: 0 !important; }
  .mphb_sc_availability_calendar-wrapper .datepick-month-row { gap: 14px; }
}
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-month-header { position: static !important; float: none !important; width: auto !important; }
:is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-month { display: flex !important; flex-direction: column; }

/* calendario della camera: più compatto su computer e tablet, giorni liberi cliccabili */
.ci-room-main .mphb_sc_availability_calendar-wrapper { max-width: 640px; }
@media (min-width: 768px) {
  :is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-month td > .mphb-date-cell { aspect-ratio: auto; height: 36px; min-height: 0; font-size: .85rem !important; }
  :is(.mphb_sc_availability_calendar-wrapper, .datepick-popup) .datepick-month table { border-spacing: 2px !important; }
}
.mphb_sc_availability_calendar-wrapper .datepick-month td > a.mphb-available-date { cursor: pointer; }

/* calendario a comparsa (campi data di ricerca e prenotazione) */
.datepick-popup { z-index: 100001 !important; }
.datepick-popup .datepick {
  width: auto !important; max-width: calc(100vw - 24px); padding: 16px 18px 12px !important; box-sizing: border-box;
  background: #fff !important; border: 1px solid var(--ci-border) !important; border-radius: 18px !important;
  box-shadow: 0 24px 60px rgba(43, 39, 36, .22) !important;
}
.datepick-popup .datepick-month { flex: 1 1 250px; min-width: 250px; }
.datepick-popup .datepick-ctrl {
  display: flex !important; justify-content: space-between; margin-top: 10px; padding: 10px 2px 0 !important;
  border-top: 1px solid var(--ci-border); background: transparent !important;
}
.datepick-popup .datepick-ctrl a { color: var(--ci-accent) !important; background: transparent !important; font-size: .85rem !important; font-weight: 700; text-decoration: none !important; }
/* giorno scelto e intervallo del soggiorno */
.datepick-popup .datepick-month td > .datepick-selected,
.datepick-popup .datepick-month td > .mphb-date-cell.datepick-selected { background: var(--ci-accent) !important; color: #fff !important; text-decoration: none !important; }
.datepick-popup .datepick-month td > .datepick-highlight { border-color: var(--ci-accent) !important; }
.datepick-popup .datepick-month td > .mphb-date-cell.mphb-not-check-in-date.mphb-available-date { opacity: .55; }
@media (max-width: 600px) {
  .datepick-popup .datepick-month { min-width: 0; }
}
@media (min-width: 768px) {
  .datepick-popup .datepick { width: 600px !important; }
  .datepick-popup .datepick-month-row { flex-wrap: nowrap !important; gap: 20px; }
  .datepick-popup .datepick-month { flex: 1 1 0 !important; min-width: 0 !important; }
}
.datepick-popup .datepick-ctrl a { border: 0 !important; padding: 4px 2px !important; }
.datepick-popup .datepick-ctrl { gap: 10px; }

/* risultati della ricerca: la foto grande riempie tutta l'altezza della scheda (niente spazio vuoto sotto le miniature).
   Solo con la scheda su due colonne (sopra 921px): su tablet in verticale la scheda è su una colonna e la foto resta intera */
@media (min-width: 922px) {
  .mphb_sc_search_results-wrapper .ci-rr-media,
  .mphb_sc_search_results-wrapper .ci-rr-media .mphb-room-type-images { display: flex; flex-direction: column; height: 100%; }
  .mphb_sc_search_results-wrapper .ci-rr-media .mphb-room-type-images { flex: 1; }
  .mphb_sc_search_results-wrapper .ci-rr-media .mphb-gallery-main-slider { flex: 1; display: flex; flex-direction: column; margin: 0 !important; }
  .mphb_sc_search_results-wrapper .ci-rr-media .mphb-gallery-main-slider > .slides { flex: 1; position: relative; min-height: 300px; margin: 0 !important; }
  .mphb_sc_search_results-wrapper .ci-rr-media .mphb-gallery-main-slider > .slides > li { position: absolute !important; inset: 0; float: none !important; margin: 0 !important; }
  .mphb_sc_search_results-wrapper .ci-rr-media .mphb-gallery-main-slider > .slides > li :is(span, a) { display: block; height: 100%; }
  .mphb_sc_search_results-wrapper .ci-rr-media .mphb-gallery-main-slider > .slides > li img { width: 100% !important; height: 100% !important; object-fit: cover; }
  .mphb_sc_search_results-wrapper .ci-rr-media .mphb-gallery-thumbnail-slider { flex: none; margin: 0 !important; }
}
/* "Categorie: Centro Storico Locorotondo" non serve */
.mphb-room-type-categories { display: none !important; }
/* titolo "Camere disponibili" nella fascia, al centro */
.ci-band-title { text-align: center; width: 100%; }

/* niente barra "Verifica disponibilità" in basso: nessuno spazio da riservarle */
.ci-mobile-bar { display: none !important; }
@media (max-width: 767px) { body.ci-past-search, body:not(.home) { padding-bottom: 0 !important; } }

/* calendario a comparsa: giorni non sceglibili in grigio (prima dell'arrivo, l'arrivo stesso, oltre i limiti) */
.datepick-popup .datepick-month td > span.mphb-date-cell.mphb-unselectable-date:not(.mphb-booked-date):not(.mphb-not-available-date),
.datepick-popup .datepick-month td > span.mphb-date-cell.mphb-unselectable-date.mphb-earlier-min-date {
  background: transparent !important; color: #c9c0b5 !important; text-decoration: none !important; font-weight: 400; cursor: default;
}
/* giorno di arrivo già scelto, mentre si sceglie la partenza: grigio, con bordo per ritrovarlo */
.datepick-popup .datepick-month td > span.mphb-date-cell.mphb-check-in-date {
  background: #ece7e1 !important; color: #9a8f84 !important; text-decoration: none !important; font-weight: 600; box-shadow: inset 0 0 0 1px #d8cfc5 !important;
}

/* casella "Ho letto e accetto termini e condizioni": intera e ben visibile */
.mphb-checkout-terms-wrapper { max-height: none; overflow: visible !important; }
.mphb-terms-and-conditions-accept label { display: block; position: relative; padding-left: 34px; min-height: 24px; line-height: 1.5; cursor: pointer; }
.mphb-terms-and-conditions-accept input[type="checkbox"] {
  -webkit-appearance: none; appearance: none; position: absolute; left: 0; top: 0; width: 22px; height: 22px; margin: 0 !important; padding: 0;
  border: 2px solid var(--ci-accent) !important; border-radius: 6px; background: #fff; cursor: pointer; display: grid; place-items: center;
}
.mphb-terms-and-conditions-accept input[type="checkbox"]::after { content: ""; width: 6px; height: 11px; border: solid #fff; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg) translate(-1px, -1px); opacity: 0; }
.mphb-terms-and-conditions-accept input[type="checkbox"]:checked { background: var(--ci-accent); }
.mphb-terms-and-conditions-accept input[type="checkbox"]:checked::after { opacity: 1; }
.mphb-terms-and-conditions-accept input[type="checkbox"]:focus-visible { outline: 2px solid var(--ci-accent); outline-offset: 2px; }
/* mentre si sceglie la partenza (il popup contiene già il giorno di arrivo): tutto ciò che non si può cliccare è grigio,
   anche i giorni occupati o a metà dopo la prima prenotazione successiva (non raggiungibili senza interruzioni) */
.datepick-popup:has(.mphb-check-in-date) .datepick-month td > span.mphb-date-cell.mphb-unselectable-date:not(.mphb-check-in-date) {
  background: transparent !important; color: #c9c0b5 !important; text-decoration: none !important; font-weight: 400; box-shadow: none !important; cursor: default;
}
/* link "termini e condizioni": si vede che è un link (sottolineato) e al passaggio/clic si ingrandisce un poco */
.mphb-terms-and-conditions-accept .mphb-terms-and-conditions-link {
  display: inline-block; color: var(--ci-accent) !important; font-weight: 700;
  text-decoration: underline !important; text-decoration-thickness: 1.5px !important; text-underline-offset: 3px;
  transition: transform .15s ease, color .15s ease; transform-origin: left center;
}
.mphb-terms-and-conditions-accept .mphb-terms-and-conditions-link:hover,
.mphb-terms-and-conditions-accept .mphb-terms-and-conditions-link:focus-visible,
.mphb-terms-and-conditions-accept .mphb-terms-and-conditions-link:active { transform: scale(1.08); color: var(--ci-accent-dark, #8a4524) !important; }
/* telefono: nel calendario a comparsa un solo mese (con le frecce si va al successivo); tablet e computer: due */
@media (max-width: 767px) {
  .datepick-popup .datepick-month-row > .datepick-month ~ .datepick-month { display: none !important; }
}
@media (max-width: 767px) {
  /* calendario a comparsa come pannello in basso, largo quanto lo schermo (datepick lo posizionava fuori schermo) */
  .datepick-popup { position: fixed !important; left: 10px !important; right: 10px !important; top: auto !important; bottom: 10px !important; width: auto !important; }
  .datepick-popup .datepick { width: 100% !important; max-width: none; max-height: calc(100vh - 20px); overflow: auto; padding: 14px 14px 10px !important; }
}
/* l'iconcina dei cookie non copre i pulsanti del calendario aperto */
body:has(.datepick-popup) .cky-btn-revisit-wrapper { display: none !important; }
/* calendario della partenza (classe .mphb-check-out-datepick): in tutti i mesi ciò che non si può cliccare è grigio */
.datepick-popup .mphb-check-out-datepick .datepick-month td > span.mphb-date-cell.mphb-unselectable-date:not(.mphb-check-in-date) {
  background: transparent !important; color: #c9c0b5 !important; text-decoration: none !important; font-weight: 400; box-shadow: none !important; cursor: default;
}

/* tornare indietro: passo "Camera" cliccabile, link "Cambia date" / "Scegli un'altra camera" */
.ci-steps li > a { display: contents; color: inherit !important; text-decoration: none !important; }
.ci-steps li.is-done:has(> a) { cursor: pointer; transition: border-color .15s, transform .15s; }
.ci-steps li.is-done:has(> a):hover { border-color: var(--ci-accent); transform: translateY(-1px); }
.ci-co-back { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 22px; margin: -6px 0 18px !important; font-size: .92rem; }
.ci-co-back a, .ci-change-dates { color: var(--ci-accent) !important; font-weight: 700; text-decoration: underline !important; text-underline-offset: 3px; }
.ci-stay-summary { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; }
.ci-change-dates { font-size: .92rem; white-space: nowrap; }

/* riquadro alloggi selezionati: elenco camere con prezzo */
.ci-cart-rooms { list-style: none !important; margin: 8px 0 6px !important; padding: 0 !important; width: 100%; max-width: 460px; }
.ci-cart-rooms li { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px dashed var(--ci-border); font-weight: 600; color: var(--ci-text); }
.ci-cart-rooms li:last-child { border-bottom: 0; }
.ci-cart-rooms li > span:first-child::before { content: "✓"; color: var(--ci-ok); margin-right: 8px; }
.ci-cart-rooms li > span:last-child { white-space: nowrap; color: var(--ci-muted); font-weight: 500; }
.mphb-reservation-cart .mphb-reservation-details { float: none !important; width: 100% !important; }
/* totale allineato sotto i prezzi delle camere, con una linea sopra */
.mphb-reservation-cart:has(.ci-cart-rooms li) .mphb-cart-total-price {
  display: flex; justify-content: space-between; gap: 12px; width: 100%; max-width: 460px; box-sizing: border-box;
  margin: 2px 0 16px !important; padding: 8px 0 0 22px; border-top: 1.5px solid var(--ci-text); font-weight: 700; color: var(--ci-text);
}
.mphb-reservation-cart .mphb-cart-total-price-value { white-space: nowrap; }

/* pagine della prenotazione (hanno i passi 1-2-3): fascia in cima più bassa, così camere e pulsanti salgono.
   Le pagine "vetrina" (Stanze, Contatti, Territorio) mantengono la fascia alta. */
body:not(.home):has(.ci-steps) #content .ci-band > .elementor-container { min-height: 170px; }
body:not(.home):has(.ci-steps) #content .ci-band .elementor-widget-wrap { padding: 18px 0 !important; }
body:has(.ci-steps) .ci-band .elementor-heading-title, body:has(.ci-steps) .ci-band-title { font-size: clamp(1.8rem, 1.4rem + 1.4vw, 2.6rem) !important; margin: 0 !important; }
@media (max-width: 921px) {
  body:not(.home):has(.ci-steps) #content .ci-band > .elementor-container { min-height: 110px; }
  body:not(.home):has(.ci-steps) #content .ci-band .elementor-widget-wrap { padding: 12px 0 !important; }
}

/* link "Cambia date" (/#ci-search): il box di ricerca si ferma sotto l'intestazione fissa, non dietro */
#ci-search { scroll-margin-top: calc(var(--ci-bar) - 42px); }
.admin-bar #ci-search { scroll-margin-top: calc(var(--ci-bar) - 10px); }

/* tablet in verticale (600–921px): intestazione un po' più alta, logo, nome e bandierine più grandi */
@media (min-width: 600px) and (max-width: 921px) and (min-height: 560px) {   /* non sul telefono in orizzontale */
  :root { --ci-bar: 88px; --ci-logo-h: 60px; --ci-logo-w: 107px; --ci-title-w: 210px; }
  #masthead .site-branding .site-title, #masthead .site-branding .site-title a { font-size: 1.5rem !important; }
  .ci-lang-bar img { width: 28px !important; height: 19px !important; }
  .ci-lang-bar a, .ci-lang-bar .ci-lang-current { min-width: 42px; padding: 7px; }
  #masthead .ast-mobile-menu-trigger-minimal svg, #masthead .menu-toggle .ahfb-svg-iconset svg { width: 24px; height: 24px; }
}

/* Galleria (griglia "Portfolio" di Sina): le foto vengono disposte via JS solo quando sono caricate tutte;
   finché non succede (tablet lenti, foto caricate tardi) restavano una sotto l'altra su un lato.
   Con il float sono già in righe, come sarà dopo il calcolo (che poi le posiziona da sé). */
/* Le righe le fa il browser (foto tutte della stessa altezza), non il calcolo di isotope, che su alcuni tablet
   in verticale le metteva tutte in una colonna. Isotope resta per i filtri (nasconde/mostra le foto). */
.sina-portfolio-grid { height: auto !important; }
.sina-portfolio-grid::after { content: ""; display: table; clear: both; }
.sina-portfolio-grid > .sina-portfolio-item { float: left; position: relative !important; left: auto !important; top: auto !important; }
/* filtri della galleria: le foto nascoste da isotope (opacity 0) escono dal flusso, le altre non vengono traslate */
.sina-portfolio-grid > .sina-portfolio-item[style*="opacity: 0"] { display: none !important; }
.sina-portfolio-grid > .sina-portfolio-item { transform: none !important; }
/* 922–1100px (tablet grandi in verticale, piccoli portatili): menu più compatto, su una riga con le bandierine */
@media (min-width: 922px) and (max-width: 1100px) {
  #masthead .main-header-menu .menu-link { font-size: .74rem; letter-spacing: .05em; padding-left: 10px !important; padding-right: 10px !important; }
  #masthead .main-header-menu { flex-wrap: nowrap !important; }
  #masthead .ci-lang a, #masthead .ci-lang .ci-lang-current { padding: 5px 6px; }
}
/* l'intestazione fissa occupa sempre tutta la larghezza (tra 922 e 1024px il CSS del Customizer la restringeva al contenuto) */
@media (min-width: 922px) { #masthead { left: 0 !important; right: 0 !important; width: auto !important; z-index: 999 !important; } }
/* quando Astra usa l'intestazione "da telefono" (anche a 922px esatti) le bandierine ci sono sempre */
.ast-header-break-point .ci-lang-bar { display: inline-flex; align-items: center; gap: 2px; margin-right: 6px; }
/* galleria: le foto ricompaiono con una breve dissolvenza quando si cambia filtro */
@keyframes ci-pf-in { from { opacity: 0; transform: scale(.96); } to { opacity: 1; transform: none; } }
.sina-portfolio-grid.ci-pf-fade > .sina-portfolio-item > * { animation: ci-pf-in .35s ease both; }
@media (prefers-reduced-motion: reduce) { .sina-portfolio-grid.ci-pf-fade > .sina-portfolio-item > * { animation: none; } }
/* telefoni grandi in orizzontale (larghezza da computer ma schermo basso): intestazione compatta */
@media (min-width: 922px) and (max-height: 500px) {
  :root { --ci-bar: 64px; --ci-logo-h: 40px; --ci-logo-w: 71px; --ci-arch-w: 150px; --ci-arch-h: 104px; --ci-title-w: 132px; }
  #masthead .site-branding .site-title, #masthead .site-branding .site-title a { font-size: 1.25rem !important; }
}

/* telefono (verticale e orizzontale): logo piccolo ma nome "Campanile Inn" più grande e più vicino al logo */
@media (max-width: 599px), (max-width: 921px) and (max-height: 559px) {
  :root { --ci-title-w: 160px; }
  #masthead .site-branding .ast-site-title-wrap { left: calc(var(--ci-logo-w) + 10px) !important; }
  #masthead .site-branding .site-title { text-align: left !important; }
  #masthead .site-branding .site-title, #masthead .site-branding .site-title a { font-size: 1.32rem !important; white-space: nowrap; }
}
/* telefoni molto stretti: nome un po' più piccolo e bandierine compatte, così non finiscono sotto il menu */
@media (max-width: 374px) {
  :root { --ci-title-w: 128px; }
  #masthead .site-branding .site-title, #masthead .site-branding .site-title a { font-size: 1.1rem !important; }
  .ci-lang-bar { margin-right: 0; }
  .ci-lang-bar a, .ci-lang-bar .ci-lang-current { min-width: 30px; padding: 4px; }
  .ci-lang-bar img { width: 20px !important; height: 14px !important; }
}
/* intestazione da telefono: bandierine ancorate a destra, subito prima del pulsante ☰ (che è ancorato al bordo) */
.ast-header-break-point #masthead .ci-lang-bar { position: absolute; right: 52px; top: 50%; transform: translateY(-50%); margin: 0; z-index: 2; }
/* schermi molto stretti: solo la bandierina dell'altra lingua (quella che serve per cambiare) */
@media (max-width: 350px) { .ci-lang-bar .ci-lang-current { display: none !important; } }
@media (max-width: 599px), (max-width: 921px) and (max-height: 559px) {
  .ast-header-break-point #masthead .ci-lang-bar { right: 46px; gap: 2px; }
  .ci-lang-bar a, .ci-lang-bar .ci-lang-current { min-width: 32px !important; padding: 4px !important; }
}

/* icone Font Awesome rese in SVG (inc/ci-seo.php): stessa misura e colore delle icone a font */
svg.ci-fa { width: 1em; height: 1em; fill: currentColor; display: inline-block; vertical-align: -.125em; }
.elementor-social-icon svg.ci-fa { fill: var(--e-social-icon-icon-color, currentColor); }

/* banda "Organizza un'esperienza indimenticabile" (home), solo computer.
   Foto 1200x392: in alto solo cielo vuoto, il paese (campanile, cupola, case) occupa la fascia dal 30% al 90%.
   Altezza circa 2/3 della foto intera (21,5vw, mai meno di 406px) e taglio spostato in basso (75%): si perde il cielo
   vuoto, il paese resta intero dalla punta del campanile al muro di base. Scritta al centro. */
@media (min-width: 1025px) {
  body.home .elementor-element.elementor-element-caab4e6 {
    display: flex !important; flex-direction: column; justify-content: center;
    min-height: max(406px, 21.5vw); padding-top: 40px !important; padding-bottom: 46px !important;
    background-position: center 75% !important;
  }
  body.home .elementor-element.elementor-element-caab4e6 > .elementor-container { width: 100%; }
}
/* Date in un solo riquadro "📅 Arrivo — Partenza" (come Booking), nel box di ricerca e in "Prenota questa camera".
   Solo stile: i due campi di MotoPress restano (controlli di disponibilità invariati); un solo calendario,
   allineato a sinistra del riquadro anche per la partenza (ci-modern.js). */
form.mphb_sc_search-form { --ci-gap: 14px; --ci-date-h: 52px; }
form.mphb-booking-form { --ci-date-h: 48px; display: grid; grid-template-columns: 1fr 1fr; column-gap: 0; }
form.mphb-booking-form > * { grid-column: 1 / -1; }
form.mphb-booking-form > p.mphb-check-in-date-wrapper, form.mphb-booking-form > p.mphb-check-out-date-wrapper { grid-column: auto; }
form.mphb_sc_search-form > p.mphb_sc_search-check-out-date { margin-left: calc(-1 * var(--ci-gap)) !important; }
form.mphb_sc_search-form > p.mphb_sc_search-check-in-date { padding-right: 0 !important; }   /* MotoPress mette 10px a destra: spezzava il riquadro (la partenza lo tiene, allineata agli altri campi) */
:is(.mphb_sc_search-check-in-date, .mphb-check-in-date-wrapper) input.mphb-datepick {
  border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; border-right: 0 !important;
  padding-left: 42px !important; background-repeat: no-repeat !important; background-position: 14px center !important; background-size: 18px !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a8582f' stroke-width='2' stroke-linecap='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E") !important;
}
:is(.mphb_sc_search-check-out-date, .mphb-check-out-date-wrapper) { position: relative; }
:is(.mphb_sc_search-check-out-date, .mphb-check-out-date-wrapper) input.mphb-datepick {
  border-top-left-radius: 0 !important; border-bottom-left-radius: 0 !important; border-left: 0 !important; padding-left: 30px !important;
}
:is(.mphb_sc_search-check-out-date, .mphb-check-out-date-wrapper)::before {
  content: "—"; position: absolute; left: 0; bottom: 0; z-index: 1; display: flex; align-items: center; height: var(--ci-date-h);
  padding-left: 8px; color: var(--ci-muted); pointer-events: none;
}
/* il campo attivo (arrivo o partenza) resta evidenziato, senza l'ombra che spezzerebbe il riquadro */
:is(.mphb_sc_search-check-in-date, .mphb-check-in-date-wrapper, .mphb_sc_search-check-out-date, .mphb-check-out-date-wrapper) input.mphb-datepick:focus { box-shadow: inset 0 -2px 0 var(--ci-accent) !important; }
@media (max-width: 767px) { form.mphb_sc_search-form { --ci-gap: 12px; } }

/* ------------------------------------------------------------------ Area ospiti ("Il mio account", inc/ci-account.php) */
.ci-acc { max-width: 1080px; margin: 0 auto; color: var(--ci-text-2); }
.ci-acc h1, .ci-acc h2, .ci-acc h3 { font-family: var(--ci-serif); font-weight: 400; color: var(--ci-text); }
.ci-acc .ci-kicker { margin-bottom: 6px !important; }
.ci-acc-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 18px 30px; margin: 0 0 34px; padding-bottom: 22px; border-bottom: 1px solid var(--ci-border); }
.ci-acc-head h1 { margin: 0; font-size: clamp(2rem, 1.5rem + 1.6vw, 2.8rem); line-height: 1.1; }
.ci-acc-tabs { display: flex; flex-wrap: wrap; gap: 6px; padding: 5px; background: var(--ci-stone); border-radius: 999px; }
.ci-acc-tabs a { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: 999px; color: var(--ci-text-2); font-weight: 600; font-size: .93rem; text-decoration: none; }
.ci-acc-tabs a svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ci-acc-tabs a:hover { color: var(--ci-text); background: rgba(255, 255, 255, .6); }
.ci-acc-tabs a.is-active { background: var(--ci-surface); color: var(--ci-accent); box-shadow: var(--ci-shadow); }
.ci-acc-tabs a.ci-acc-logout { color: var(--ci-muted); }
.ci-acc-section { margin: 0 0 40px; }
.ci-acc-section > h2 { margin: 0 0 16px; font-size: 1.6rem; }

.ci-badge { display: inline-block; padding: 4px 11px; border-radius: 999px; font-size: .74rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
.ci-badge-ok { background: #e8f1e4; color: var(--ci-ok); }
.ci-badge-wait { background: #fbf0d9; color: #8a6114; }
.ci-badge-muted { background: var(--ci-stone); color: var(--ci-muted); }

/* scheda di un soggiorno */
.ci-acc-card { display: grid; grid-template-columns: 230px minmax(0, 1fr) 290px; margin: 0 0 18px; background: var(--ci-surface); border-radius: var(--ci-radius); box-shadow: var(--ci-shadow); overflow: hidden; }
.ci-acc-card-img { width: 100%; height: 100%; min-height: 200px; object-fit: cover; display: block; }
.ci-acc-card-main { padding: 22px 26px; }
.ci-acc-card-top { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.ci-acc-num { color: var(--ci-muted); font-size: .85rem; }
.ci-acc-card h3 { margin: 10px 0 14px; font-size: 1.55rem; line-height: 1.15; }
.ci-acc-dates { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ci-acc-dates > div { padding: 10px 14px; background: var(--ci-bg); border: 1px solid var(--ci-border); border-radius: var(--ci-radius-sm); }
.ci-acc-dates small { display: block; color: var(--ci-muted); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.ci-acc-dates strong { display: block; margin: 2px 0; color: var(--ci-text); font-size: 1.02rem; text-transform: capitalize; }
.ci-acc-dates span { color: var(--ci-muted); font-size: .82rem; }
.ci-acc-meta { margin: 12px 0 0; color: var(--ci-muted); font-size: .92rem; }
.ci-acc-card-pay { display: flex; flex-direction: column; gap: 10px; padding: 22px 24px; background: var(--ci-bg); border-left: 1px solid var(--ci-border); }
.ci-acc-card-pay dl, .ci-acc-totals { margin: 0; }
.ci-acc-card-pay dl > div, .ci-acc-totals > div { display: flex; justify-content: space-between; gap: 10px; padding: 3px 0; }
.ci-acc-card-pay dt, .ci-acc-totals dt { color: var(--ci-muted); font-weight: 400; }
.ci-acc-card-pay dd, .ci-acc-totals dd { margin: 0; color: var(--ci-text); font-weight: 600; }
.ci-acc-bar { height: 8px; background: var(--ci-stone-2); border-radius: 999px; overflow: hidden; }
.ci-acc-bar span { display: block; height: 100%; background: var(--ci-ok); border-radius: 999px; }
.ci-acc-due { display: flex; justify-content: space-between; align-items: baseline; margin: 4px 0 0; }
.ci-acc-due span { color: var(--ci-text); font-weight: 600; }
.ci-acc-due strong { color: var(--ci-accent-600); font-size: 1.35rem; }
.ci-acc .ci-acc-paybtn { width: 100%; justify-content: center; }
.ci-acc-paynote { margin: -2px 0 0; color: var(--ci-muted); font-size: .8rem; text-align: center; }
/* prenotazione in attesa di pagamento: "paga l'acconto e conferma" entro l'ora del blocco */
.ci-acc-startpay { margin: 4px 0 0; padding: 14px 16px; background: #fbf0d9; border: 1px solid #efd9a8; border-radius: var(--ci-radius-sm); }
.ci-acc-startpay p { margin: 0 0 12px; color: var(--ci-text-2); font-size: .9rem; line-height: 1.5; }
.ci-acc-startpay strong { color: #8a6114; }
/* pagina "Transazione fallita": "Riprova il pagamento" sotto il testo */
.ci-retry { max-width: 560px; margin: 28px auto 0; text-align: center; }
.ci-retry .ci-acc-startpay { text-align: center; }
.ci-retry .ci-acc .ci-acc-paybtn, .ci-retry .ci-acc-paybtn { display: inline-flex; width: auto; min-width: 240px; justify-content: center; margin: 0 auto; }
.ci-retry-help { margin: 16px 0 0; color: var(--ci-muted); font-size: .9rem; }
.ci-acc-paid { display: flex; align-items: center; gap: 8px; margin: 4px 0 0; color: var(--ci-ok); font-weight: 700; }
.ci-acc-paid svg, .ci-acc-detail svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ci-acc-detail { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 6px; font-weight: 600; font-size: .9rem; text-decoration: none; }

/* storico */
.ci-acc-history { margin: 0; padding: 0; list-style: none; background: var(--ci-surface); border-radius: var(--ci-radius); box-shadow: var(--ci-shadow); overflow: hidden; }
.ci-acc-history li + li { border-top: 1px solid var(--ci-border); }
.ci-acc-history a { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) auto 150px; align-items: center; gap: 8px 20px; padding: 16px 22px; color: var(--ci-text-2); text-decoration: none; }
.ci-acc-history a:hover { background: var(--ci-bg); }
.ci-acc-h-dates { color: var(--ci-text); font-weight: 600; text-transform: capitalize; }
.ci-acc-h-room { color: var(--ci-muted); font-size: .92rem; }
.ci-acc-h-total { color: var(--ci-text); font-weight: 600; }
.ci-acc-history .ci-badge { justify-self: end; }

.ci-acc-empty { padding: 30px; text-align: center; background: var(--ci-surface); border: 1px dashed var(--ci-border); border-radius: var(--ci-radius); }
.ci-acc-empty p { margin: 0 0 14px; }
.ci-acc-help { color: var(--ci-muted); font-size: .88rem; }
.ci-acc-alert { padding: 12px 16px; background: #fbe9e5; border-radius: var(--ci-radius-sm); color: #9b2c1c; }
.ci-acc-ok { padding: 12px 16px; background: #e8f1e4; border-radius: var(--ci-radius-sm); color: var(--ci-ok); }

/* dettaglio prenotazione */
.ci-acc-back { margin: 0 0 18px; }
.ci-acc-back a { font-weight: 600; text-decoration: none; }
.ci-acc-detail-page > h2 { margin: 12px 0 4px; font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); text-transform: capitalize; }
.ci-acc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 24px; }
.ci-acc-box { padding: 24px; background: var(--ci-surface); border-radius: var(--ci-radius); box-shadow: var(--ci-shadow); }
.ci-acc-box h3 { margin: 0 0 14px; font-size: 1.3rem; }
.ci-acc-room { display: flex; align-items: center; gap: 14px; padding: 8px 0; color: var(--ci-text); text-decoration: none; }
.ci-acc-room img { width: 96px; height: 72px; object-fit: cover; border-radius: var(--ci-radius-sm); }
.ci-acc-room strong { display: block; font-size: 1.1rem; }
.ci-acc-room small { color: var(--ci-muted); }
.ci-acc-payments { margin: 0 0 14px; padding: 0; list-style: none; }
.ci-acc-payments li { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 1px dashed var(--ci-border); }
.ci-acc-payments small { display: block; color: var(--ci-muted); font-size: .82rem; }
.ci-acc-payments strong { color: var(--ci-text); }
.ci-acc-totals { margin-bottom: 14px; }
.ci-acc-totals-due { margin-top: 4px; padding-top: 8px !important; border-top: 1px solid var(--ci-border); }
.ci-acc-totals-due dt { color: var(--ci-text) !important; font-weight: 600 !important; }
.ci-acc-totals-due dd { color: var(--ci-accent-600) !important; font-size: 1.25rem; }
.ci-acc .ci-next-steps { max-width: none; margin-top: 18px; }

/* accesso e registrazione con codice via email (plugin Campanile Accesso ospiti) */
.ci-acc-login { max-width: 480px; margin: 10px auto 30px; padding: 34px; background: var(--ci-surface); border-radius: var(--ci-radius); box-shadow: var(--ci-shadow-lg); }
.ci-acc-login h1 { margin: 0 0 8px; font-size: 2rem; }
.ci-acc-sub { margin: 0 0 20px; color: var(--ci-muted); }
.ci-acc-login form p { margin: 0 0 14px; }
.ci-acc-login label { display: block; margin-bottom: 6px; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ci-muted); }
.ci-acc-login .ci-acc-check label { display: flex; align-items: center; gap: 8px; font-size: .9rem; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--ci-text-2); }
.ci-acc-login input[type=text], .ci-acc-login input[type=email] { width: 100%; }
.ci-acc-login input.ci-acc-code { font-size: 1.6rem; letter-spacing: .5em; text-align: center; font-variant-numeric: tabular-nums; }
.ci-acc-login button[type=submit] { width: 100%; min-height: 52px; justify-content: center; }
.ci-acc-login .ci-acc-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ci-acc .ci-acc-linkbtn { display: inline; min-height: 0 !important; padding: 0 !important; background: none !important; border: 0 !important; border-radius: 0 !important; color: var(--ci-accent) !important; font: inherit !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; text-decoration: underline; box-shadow: none !important; cursor: pointer; }
.ci-acc-small { margin: 14px 0 0; color: var(--ci-muted); font-size: .85rem; text-align: center; }
.ci-acc-note { margin: 18px 0 0; padding-top: 16px; border-top: 1px solid var(--ci-border); color: var(--ci-muted); font-size: .85rem; }

/* i miei dati (modulo di MotoPress) */
.ci-acc-details .mphb-account-details, .ci-acc-details .mphb-account-change-password { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.ci-acc-details .mphb-account-details > *, .ci-acc-details .mphb-account-change-password > * { margin: 0 0 14px; }
.ci-acc-details h3, .ci-acc-details legend { grid-column: 1 / -1; }
.ci-acc-details label { display: block; margin-bottom: 6px; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ci-muted); }
.ci-acc-details br { display: none; }
.ci-acc-details input[type=text], .ci-acc-details input[type=email], .ci-acc-details input[type=password], .ci-acc-details select { width: 100% !important; }
.ci-acc-details .mphb-account-change-password { display: none; }   /* niente password: si entra con il codice via email */
.ci-acc-details .mphb-customer-username { display: none; }          /* il nome utente non serve: si entra con l'email */
.ci-acc-details label br, .ci-acc-details label + br { display: none; }
.ci-acc-details label abbr { margin-left: 3px; border: 0; text-decoration: none; color: var(--ci-accent); }

/* voce "Area ospiti" nel menu in alto */
.ci-menu-account > a { display: inline-flex !important; align-items: center; gap: 6px; }
.ci-menu-account svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

/* checkout: avviso dell'area ospiti */
.ci-co-account { display: flex; gap: 12px; align-items: flex-start; margin: 0 0 18px; padding: 14px 16px; background: var(--ci-bg); border: 1px solid var(--ci-border); border-radius: var(--ci-radius-sm); font-size: .92rem; }
.ci-co-account svg { flex: 0 0 20px; width: 20px; height: 20px; margin-top: 2px; fill: none; stroke: var(--ci-accent); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ci-co-account p { margin: 0; }

@media (max-width: 1000px) {
  .ci-acc-card { grid-template-columns: 190px minmax(0, 1fr); }
  .ci-acc-card-pay { grid-column: 1 / -1; border-left: 0; border-top: 1px solid var(--ci-border); }
}
@media (max-width: 767px) {
  .ci-acc-head { margin-bottom: 24px; }
  .ci-acc-tabs { display: grid; grid-template-columns: 1.4fr 1fr auto; width: 100%; border-radius: var(--ci-radius-sm); }
  .ci-acc-tabs a { justify-content: center; gap: 6px; padding: 10px 8px; border-radius: 10px; font-size: .84rem; white-space: nowrap; }
  .ci-acc-card { grid-template-columns: 1fr; }
  .ci-acc-card-img { height: 180px; min-height: 0; }
  .ci-acc-card-main { padding: 18px; }
  .ci-acc-card-pay { padding: 18px; }
  .ci-acc-history a { grid-template-columns: 1fr auto; padding: 14px 16px; }
  .ci-acc-h-room { grid-column: 1; }
  .ci-acc-history .ci-badge { grid-column: 2; grid-row: 1; }
  .ci-acc-h-total { grid-column: 2; grid-row: 2; justify-self: end; }
  .ci-acc-grid { grid-template-columns: 1fr; }
  .ci-acc-login { padding: 24px; }
  .ci-acc-details .mphb-account-details { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------------------- CANCELLAZIONE DALL'AREA OSPITE (inc/ci-cancel.php) */
.ci-cancel { margin-top: 18px; }
.ci-cancel h3 { margin: 0 0 10px; }
.ci-cancel-rules { margin: 0 0 14px; padding-left: 18px; color: var(--ci-muted); font-size: .92rem; line-height: 1.55; }
.ci-cancel-rules li { margin: 0 0 4px; }
.ci-cancel-outcome { margin: 0 0 16px; padding: 12px 16px; border-radius: var(--ci-radius-sm); line-height: 1.55; }
.ci-cancel-outcome strong { display: block; margin-bottom: 2px; }
.ci-cancel-free { background: #e8f1e4; }
.ci-cancel-paid { background: #fbe9e5; }
.ci-cancel-form > summary { list-style: none; cursor: pointer; display: inline-flex; }
.ci-cancel-form > summary::-webkit-details-marker { display: none; }
.ci-cancel-form[open] > summary { display: none; }
.ci-cancel-form form { display: grid; gap: 14px; justify-items: start; }
.ci-cancel-form label { display: flex; gap: 10px; align-items: flex-start; font-size: .92rem; line-height: 1.5; }
.ci-cancel-form label input { margin-top: 4px; flex: none; }
.ci-cancel-form label a { margin-left: 4px; }
.ci-btn.ci-cancel-submit { background: #9b2c1c !important; }
.ci-btn.ci-cancel-submit:hover { background: #7d2316 !important; }
.ci-cancel-done p { margin: 0 0 8px; line-height: 1.55; }
.ci-cancel-note { margin: 8px 0 0; font-size: .82rem; color: var(--ci-ok); }
/* dettagli della camera nel dettaglio della prenotazione */
.ci-acc-room-text { margin: 14px 0 12px; color: var(--ci-muted); font-size: .92rem; line-height: 1.6; }
.ci-acc-room-facts { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 0 0 12px; padding: 0; list-style: none; font-size: .9rem; font-weight: 600; }
.ci-acc-room-facts li { display: inline-flex; align-items: center; gap: 6px; margin: 0; }
.ci-acc-room-facts .ci-icon { width: 18px; height: 18px; color: var(--ci-accent); }
.ci-acc-room-fac { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; padding: 0; list-style: none; }
.ci-acc-room-fac li { margin: 0; padding: 4px 10px; border-radius: 999px; background: var(--ci-stone); font-size: .8rem; color: var(--ci-text); }

/* ---------------------------------------------------------------- CLIC CON IL MOUSE */
/* niente cursore di testo lampeggiante fuori dai campi (si vede con la "navigazione con cursore" del browser, F7) */
body { caret-color: transparent; }
input, textarea, select, [contenteditable]:not([contenteditable="false"]) { caret-color: auto; }
/* il bordo tratteggiato di Astra resta solo per chi usa la tastiera */
a:focus:not(:focus-visible), button:focus:not(:focus-visible), summary:focus:not(:focus-visible), [tabindex]:focus:not(:focus-visible) { outline: none !important; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid var(--ci-accent); outline-offset: 2px; }
.ci-cancel-locked .ci-cancel-outcome a { margin-left: 4px; }
.ci-cancel-locked > p:last-child { margin: 0; color: var(--ci-muted); line-height: 1.55; }
.ci-cancel-note-locked { color: #9b2c1c; }

/* ---------------------------------------------------------------- PIÙ CAMERE INSIEME (/rooms/ e scheda della camera) */
.ci-multi-rooms { display: flex; align-items: center; gap: 14px; max-width: 1180px; margin: 0 auto 22px; padding: 14px 18px; background: var(--ci-stone); border-radius: var(--ci-radius); box-sizing: border-box; }
.ci-multi-rooms > .ci-icon { flex: none; width: 26px; height: 26px; color: var(--ci-accent); }
.ci-multi-rooms p { flex: 1; margin: 0; line-height: 1.5; font-size: .95rem; }
.ci-multi-rooms .ci-btn { flex: none; white-space: nowrap; }
.ci-multi-rooms .ci-btn .ci-icon { width: 16px; height: 16px; }
@media (max-width: 700px) {
  .ci-multi-rooms { flex-wrap: wrap; margin-left: 10px; margin-right: 10px; }  /* allineata al testo e alle schede delle camere */
  .ci-multi-rooms .ci-btn { width: 100%; justify-content: center; }
}
.ci-book-more { margin: 14px 0 0; padding-top: 12px; border-top: 1px solid var(--ci-border); font-size: .86rem; color: var(--ci-muted); line-height: 1.5; }
.ci-book-more a { font-weight: 600; }

/* ---------------------------------------------------------------- LINGUE: ELENCO A TENDINA (più di due lingue, plugin "Campanile Lingue") */
.ci-lang-menu { position: relative; }
.ci-lang-menu > summary { list-style: none; cursor: pointer; user-select: none; }
.ci-lang-menu > summary::-webkit-details-marker { display: none; }
.ci-lang-caret { flex: none; color: var(--ci-muted); transition: transform .15s; }
.ci-lang-menu[open] .ci-lang-caret { transform: rotate(180deg); }
.ci-lang-list { position: absolute; right: 0; top: calc(100% + 8px); z-index: 1000; display: flex; flex-direction: column; gap: 2px; min-width: 214px; padding: 6px; background: var(--ci-surface); border: 1px solid var(--ci-border); border-radius: 14px; box-shadow: 0 14px 34px rgba(43, 39, 36, .16); }
.ci-lang .ci-lang-item { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border: 0; border-radius: 10px; font-size: .9rem; font-weight: 600; letter-spacing: 0; line-height: 1.2; white-space: nowrap; color: var(--ci-text) !important; opacity: 1; background: none; }
.ci-lang a.ci-lang-item:hover { background: var(--ci-stone); }
.ci-lang .ci-lang-item.is-current { color: var(--ci-accent) !important; background: var(--ci-stone); }
/* barra del telefono: la bandiera attuale resta (anche sotto i 350px) e l'elenco mostra i nomi */
.ci-lang-bar.ci-lang-many .ci-lang-current { display: inline-flex !important; gap: 4px; }
.ci-lang-bar.ci-lang-many .ci-lang-caret { width: 9px; height: 6px; }
.ci-lang-bar .ci-lang-item { font-size: .95rem !important; min-width: 0 !important; justify-content: flex-start !important; padding: 10px 12px !important; gap: 10px !important; }
.ci-lang-bar .ci-lang-item img { width: 24px !important; height: 16px !important; }
#masthead .ci-lang .ci-lang-item { text-transform: none; }   /* il menu è in maiuscolo: i nomi delle lingue no */

/* ---------------------------------------------------------------- PAGINE "DOVE DORMIRE" (inc/ci-destinations.php) */
.ci-page-dest .site-content > .ast-container { max-width: none; padding: 0; display: block; }
.ci-page-dest #primary { margin: 0 !important; padding: 0 !important; }
.ci-page-dest .entry-header { display: none; }
.ci-page-dest .entry-content > p:empty { display: none; }
.ci-dest-hero { position: relative !important; min-height: min(78vh, 680px); display: flex; align-items: flex-end; overflow: hidden; background: #2b2724; }
.ci-dest-hero-img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; }
.ci-dest-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20, 16, 12, .05) 0%, rgba(20, 16, 12, .35) 40%, rgba(20, 16, 12, .8) 100%), linear-gradient(90deg, rgba(20, 16, 12, .45) 0%, rgba(20, 16, 12, 0) 65%); }
.ci-dest-hero-text { position: relative; z-index: 1; width: 100%; max-width: var(--ci-maxw); margin: 0 auto; padding: 40px 20px 46px; box-sizing: border-box; color: #fff; }
.ci-dest-hero-text .ci-kicker { color: #f6e3d3 !important; text-shadow: 0 1px 8px rgba(0, 0, 0, .45); }
.ci-dest-hero-text h1 { margin: 6px 0 12px; max-width: 820px; font-family: var(--ci-serif); font-weight: 400; font-size: clamp(2.3rem, 1.5rem + 3vw, 4rem); line-height: 1.05; color: #fff; }
.ci-dest-lead { max-width: 680px; margin: 0 0 14px; font-size: 1.12rem; line-height: 1.55; color: rgba(255, 255, 255, .92); }
.ci-dest-distance { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 20px; padding: 7px 14px; border-radius: 999px; background: rgba(255, 255, 255, .16); backdrop-filter: blur(4px); font-weight: 600; font-size: .92rem; }
.ci-dest-distance .ci-icon { width: 18px; height: 18px; }
.ci-dest-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
.ci-dest-actions .ci-btn .ci-icon { width: 18px; height: 18px; }
.ci-dest-hero .ci-btn-ghost { color: #fff !important; border-color: rgba(255, 255, 255, .6) !important; }
.ci-dest-hero .ci-btn-ghost:hover { background: rgba(255, 255, 255, .14) !important; color: #fff !important; }
.ci-dest-why { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 48px; align-items: center; }
.ci-dest-why h2, .ci-dest-box h2 { margin: 0 0 16px; font-family: var(--ci-serif); font-weight: 400; font-size: clamp(1.7rem, 1.2rem + 1.5vw, 2.4rem); line-height: 1.15; }
.ci-dest-why p { margin: 0 0 14px; color: var(--ci-muted); font-size: 1.05rem; line-height: 1.7; }
.ci-dest-figure { margin: 0; }
.ci-dest-figure-img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--ci-radius); box-shadow: var(--ci-shadow); }
.ci-dest-see { padding-top: 24px; }
.ci-dest-plan { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; padding-top: 24px; }
.ci-dest-box { padding: 30px; background: var(--ci-stone); border-radius: var(--ci-radius); }
.ci-dest-box p { margin: 0; line-height: 1.7; color: var(--ci-text); }
.ci-dest-box ul { margin: 0; padding: 0 0 0 18px; line-height: 1.6; }
.ci-dest-box li { margin: 0 0 8px; }
.ci-dest-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.ci-dest-link { display: flex; align-items: center; gap: 12px; padding: 18px; background: var(--ci-surface); border: 1px solid var(--ci-border); border-radius: var(--ci-radius-sm); color: var(--ci-text) !important; text-decoration: none !important; transition: border-color .15s, transform .15s; }
.ci-dest-link:hover { border-color: var(--ci-accent); transform: translateY(-2px); }
.ci-dest-link .ci-icon { flex: none; width: 22px; height: 22px; color: var(--ci-accent); }
.ci-dest-link strong { display: block; font-size: 1rem; }
.ci-dest-link small { color: var(--ci-muted); }
.ci-dest-credits { margin: 26px 0 0; text-align: center; font-size: .78rem; color: var(--ci-muted); }
.ci-dest-credits a { color: inherit !important; }
.ci-nearby-card h3 a { color: inherit !important; text-decoration: none !important; }
.ci-nearby-more { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; font-size: .88rem; font-weight: 600; }
.ci-nearby-more .ci-icon { width: 16px; height: 16px; }
@media (max-width: 900px) {
  .ci-dest-why, .ci-dest-plan { grid-template-columns: 1fr; gap: 24px; }
  .ci-dest-hero { min-height: 520px; }
  .ci-dest-box { padding: 22px; }
}
.ci-cart-note { margin: 4px 0 0 !important; font-size: .82rem; color: var(--ci-muted); }
/* riquadro delle camere scelte: sotto l'intestazione (aveva z-index 9999 e copriva l'elenco delle lingue) */
.mphb-reservation-cart { z-index: 50 !important; }
.ci-cart-rooms li > span:last-child { display: inline-flex; align-items: center; gap: 10px; }
.ci-cart-remove { display: inline-grid; place-items: center; width: 26px; height: 26px; padding: 0 !important; border: 1px solid var(--ci-border) !important; border-radius: 50%; background: var(--ci-surface) !important; color: var(--ci-muted) !important; font-size: 18px; line-height: 1; cursor: pointer; box-shadow: none !important; }
.ci-cart-remove:hover { border-color: #9b2c1c !important; color: #9b2c1c !important; background: #fbe9e5 !important; }
/* il riquadro delle camere scelte si ferma appena sotto l'intestazione fissa (altezza misurata dal JS: --ci-header-bottom) */
.mphb-reservation-cart, .admin-bar .mphb-reservation-cart { top: calc(var(--ci-header-bottom, 96px) + 12px) !important; }
/* "I miei dati": l'asterisco di MotoPress sta dopo l'etichetta (fuori dal label) e andava a capo */
.ci-acc-details label:has(+ abbr) { display: inline-block; }
.ci-acc-details label + abbr { display: inline; margin-left: 3px; border: 0; text-decoration: none; cursor: default; color: var(--ci-accent); font-weight: 700; }
/* pagina "prenotazione ricevuta": invisibile finché ci-modern.js non ha sistemato ringraziamento e schede; comunque visibile dopo 1,5 s */
body.ci-thanks-loading .entry-content { opacity: 0; animation: ci-thanks-reveal 0s 1.5s forwards; }
@keyframes ci-thanks-reveal { to { opacity: 1; } }
