/* ============================================================
   DOMUS — Override Divi (base brand application)
   Carica DOPO style.css del child (eredita le CSS variables).
   ============================================================ */

/* ---------- Tipografia ---------- */
body, .et_pb_text, p, li, td, input, textarea, select, button {
  font-family: var(--domus-font-body);
  color: var(--domus-text);
}

h1, h2, h3, h4, h5, h6,
.et_pb_module_header, .et_pb_slide_title, .et_pb_post_title {
  font-family: var(--domus-font-display);
  color: var(--domus-ink);
  font-weight: 600;
  letter-spacing: -0.01em;
}

/* ---------- Link ---------- */
a {
  transition: color .2s ease;
}

/* ----------------------------------------------------------------
   BOTTONI DIVI — strategia "non invasiva"
   Non forziamo bg/color/border globalmente: ogni bottone Divi mantiene
   gli inline settings del Visual Builder (così i pulsanti "ghost"
   restano text-only). Forziamo solo font/transition/padding minimo.
---------------------------------------------------------------- */
.et_pb_button,
a.et_pb_button {
  font-family: var(--domus-font-body) !important;
  font-weight: 600;
  letter-spacing: .02em;
  text-transform: none;
  transition: all .28s cubic-bezier(.2,.7,.3,1) !important;
}
.et_pb_button:hover,
a.et_pb_button:hover {
  transform: translateY(-1px);
}

/* Variante "solid primary" — applicabile via module_class="domus-btn-primary" */
.domus-btn-primary.et_pb_button,
a.domus-btn-primary.et_pb_button {
  background-color: var(--domus-orange) !important;
  color: var(--domus-white) !important;
  border: 2px solid var(--domus-orange) !important;
  padding: .85em 1.8em !important;
  border-radius: var(--domus-radius-md) !important;
  box-shadow: 0 6px 18px rgba(228,148,9,.25);
}
.domus-btn-primary.et_pb_button:hover,
a.domus-btn-primary.et_pb_button:hover {
  background-color: var(--domus-orange-dark) !important;
  border-color: var(--domus-orange-dark) !important;
  color: var(--domus-white) !important;
  box-shadow: 0 10px 24px rgba(228,148,9,.35);
}
.domus-btn-primary.et_pb_button:after,
a.domus-btn-primary.et_pb_button:after {
  color: var(--domus-white) !important;
}

/* Variante "ghost" (text-only link-style con underline animata) */
.domus-btn-ghost.et_pb_button,
a.domus-btn-ghost.et_pb_button {
  background: transparent !important;
  color: var(--domus-orange) !important;
  border: none !important;
  padding: 0 22px 0 0 !important;
  position: relative;
}
.domus-btn-ghost.et_pb_button:after,
a.domus-btn-ghost.et_pb_button:after {
  color: var(--domus-orange) !important;
  opacity: 1 !important;
  margin-left: 0 !important;
}
.domus-btn-ghost.et_pb_button:hover,
a.domus-btn-ghost.et_pb_button:hover {
  color: var(--domus-orange-dark) !important;
  background: transparent !important;
  letter-spacing: .05em;
}

/* Variante "outline" (border arancione + testo arancione su bianco) */
.domus-btn-outline.et_pb_button,
a.domus-btn-outline.et_pb_button {
  background-color: transparent !important;
  color: var(--domus-orange) !important;
  border: 2px solid var(--domus-orange) !important;
  padding: .85em 1.8em !important;
  border-radius: var(--domus-radius-md) !important;
}
.domus-btn-outline.et_pb_button:hover,
a.domus-btn-outline.et_pb_button:hover {
  background-color: var(--domus-orange) !important;
  color: var(--domus-white) !important;
}

/* Variante "on-dark" (sfondo bianco, testo nero — per CTA sopra immagine scura) */
.domus-btn-on-dark.et_pb_button,
a.domus-btn-on-dark.et_pb_button {
  background-color: var(--domus-white) !important;
  color: var(--domus-ink) !important;
  border: 2px solid var(--domus-white) !important;
  padding: .85em 1.8em !important;
  border-radius: var(--domus-radius-md) !important;
}
.domus-btn-on-dark.et_pb_button:hover,
a.domus-btn-on-dark.et_pb_button:hover {
  background-color: var(--domus-orange) !important;
  border-color: var(--domus-orange) !important;
  color: var(--domus-white) !important;
}

/* ---------- Header / Logo ---------- */
#main-header {
  box-shadow: var(--domus-shadow-sm);
}
#logo {
  max-height: 60px !important;
}

/* ---------- Menu principale (link nav) ---------- */
#top-menu li a,
.et_pb_menu .et_pb_menu__menu > nav > ul > li > a {
  color: var(--domus-ink);
  font-family: var(--domus-font-body);
  font-weight: 500;
  letter-spacing: .02em;
}
#top-menu li.current-menu-item > a,
#top-menu li a:hover {
  color: var(--domus-orange) !important;
}

/* ---------- Selezione testo ---------- */
::selection {
  background: var(--domus-orange);
  color: var(--domus-white);
}

/* ============================================================
   HERO IMMERSIVO — Split text reveal + parallax content + floating orb
   Selettore: prima section della home, classe .domus-hero.
   NB: il background-image della section è gestito da Divi (stylesheet
   dinamico), noi NON lo animiamo: animiamo solo overlay e contenuto.
   ============================================================ */
.domus-hero {
  overflow: hidden;
  position: relative;
}

/* Layer overlay sopra l'immagine bg — leggibilità del titolo.
   Tenuto leggero perché Divi ha già un proprio overlay circolare bianco
   (configurato nel pack). Stop a 0% e 100% molto trasparenti. */
.domus-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,0) 60%, rgba(255,255,255,.25) 100%);
  z-index: 1;
  pointer-events: none;
}

/* Contenuto interno sopra l'overlay */
.domus-hero .et_pb_row {
  position: relative;
  z-index: 3;
}

/* ----- Floating orb decorativo (iniettato da JS) -----
   blend-mode: soft-light per amalgamarsi con la foto senza coprirla.
   Su sfondo scuro: schiarisce con accent arancione.
   Su sfondo chiaro: tinge in arancione caldo. */
.domus-hero__orb {
  position: absolute;
  left: 18%;
  top: 28%;
  width: 560px;
  height: 560px;
  z-index: 2;
  pointer-events: none;
  background:
    radial-gradient(circle at 40% 40%, rgba(228,148,9,.85) 0%, rgba(228,148,9,.35) 35%, rgba(228,148,9,0) 70%);
  filter: blur(30px);
  transform: translate3d(var(--mouse-x, 0), var(--mouse-y, 0), 0);
  will-change: transform, opacity;
  mix-blend-mode: soft-light;
}
/* Secondo orb più piccolo per profondità (highlight più caldo) */
.domus-hero::before {
  content: "";
  position: absolute;
  right: 12%;
  bottom: 25%;
  width: 320px;
  height: 320px;
  background: radial-gradient(circle, rgba(248,212,164,.55) 0%, rgba(248,212,164,0) 70%);
  filter: blur(25px);
  z-index: 2;
  pointer-events: none;
  mix-blend-mode: screen;
  animation: domusOrbFloat 12s ease-in-out infinite alternate;
}
@keyframes domusOrbFloat {
  0%   { transform: translate(0, 0) scale(1); }
  100% { transform: translate(-60px, 30px) scale(1.15); }
}
@media (max-width: 980px) {
  .domus-hero::before { display: none; }
}
@media (max-width: 980px) {
  .domus-hero__orb {
    width: 380px;
    height: 380px;
    left: 10%;
    top: 22%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .domus-hero__orb { display: none; }
}

/* ----- Split-text characters (JS spezza l'h1 in <span class="domus-split-char">) ----- */
.domus-hero .domus-split-word {
  display: inline-block;
  overflow: hidden;
  vertical-align: top;
  padding: 0 0 .1em; /* spazio per descenders (es. "g" di "Stazione") */
}
.domus-hero .domus-split-char {
  display: inline-block;
  will-change: transform, opacity;
  transform-origin: 50% 100%;
}

/* Fallback no-JS: titolo subito visibile */
.no-js .domus-hero .domus-split-char {
  opacity: 1 !important;
  transform: none !important;
}

/* Migliorie visive sul titolo */
.domus-hero h1 {
  line-height: 1.05;
  letter-spacing: -0.015em;
}
.domus-hero h5 {
  color: var(--domus-orange) !important;
  font-weight: 600;
}

/* ============================================================
   HERO — info bar (2° riga: 3 blurb info + 1 bottone "Prenota ora")
   Riprogettata come "chip card" con hover affordance.
   ============================================================ */

/* Sfondo della info bar — pillola cream con shadow soft */
.domus-hero .et_pb_row:has(.et_pb_blurb):has(.et_pb_button) {
  background: rgba(255, 255, 255, .96) !important;
  backdrop-filter: blur(6px);
  border-radius: var(--domus-radius-lg);
  box-shadow: var(--domus-shadow-md);
  padding: 18px 22px !important;
  margin-top: 36px !important;
}

/* Colonne della info bar: flex center per allineare blurb e bottone */
.domus-hero .et_pb_row:has(.et_pb_blurb):has(.et_pb_button) .et_pb_column {
  display: flex !important;
  flex-direction: column;
  justify-content: center !important;
  align-items: flex-start;
  padding: 0 !important;
  margin-bottom: 0 !important;
  background: transparent !important;
}

/* Ultima colonna (bottone) → centrata orizzontalmente, no stretch */
.domus-hero .et_pb_row:has(.et_pb_blurb):has(.et_pb_button) .et_pb_column:last-child {
  align-items: flex-end !important;
  justify-content: center !important;
}

/* I 3 blurb info-bar diventano "chip" cliccabili */
.domus-hero .et_pb_row:has(.et_pb_blurb):has(.et_pb_button) .et_pb_blurb {
  width: 100%;
  padding: 12px 14px !important;
  border-radius: var(--domus-radius-md);
  transition: all .25s cubic-bezier(.2,.7,.3,1);
  cursor: default;
  position: relative;
}
.domus-hero .et_pb_row:has(.et_pb_blurb):has(.et_pb_button) .et_pb_blurb:hover {
  background: var(--domus-cream);
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(29,29,27,.06);
}

/* Container interno blurb (icona + testo) — flex orizzontale.
   Sovrascriviamo il default Divi (float-left main_blurb_image) per
   ottenere allineamento verticale center perfetto e gap controllabile. */
.domus-hero .et_pb_row:has(.et_pb_blurb):has(.et_pb_button) .et_pb_blurb .et_pb_blurb_content {
  display: flex !important;
  align-items: center !important;
  gap: 18px;
  max-width: 100%;
}
.domus-hero .et_pb_row:has(.et_pb_blurb):has(.et_pb_button) .et_pb_blurb .et_pb_main_blurb_image {
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center;
  flex-shrink: 0;
}
.domus-hero .et_pb_row:has(.et_pb_blurb):has(.et_pb_button) .et_pb_blurb .et_pb_image_wrap {
  display: inline-flex !important;
  align-items: center;
  line-height: 1;
}
.domus-hero .et_pb_row:has(.et_pb_blurb):has(.et_pb_button) .et_pb_blurb .et_pb_blurb_container {
  display: flex;
  align-items: center;
  min-height: 46px; /* match height icona per allineamento perfetto */
  flex: 1;
}
.domus-hero .et_pb_row:has(.et_pb_blurb):has(.et_pb_button) .et_pb_blurb .et_pb_blurb_description {
  width: 100%;
}

/* Icona blurb: applichiamo il cerchio DIRETTAMENTE su .et-pb-icon
   (che è il nome canonico Divi per l'icona blurb — `.et_pb_icon_wrap`
   non esiste in Divi 4).
   Approccio "icon as chip": padding + bg + border-radius. */
.domus-hero .et_pb_row:has(.et_pb_blurb):has(.et_pb_button) .et_pb_blurb .et-pb-icon {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 46px !important;
  height: 46px !important;
  background: var(--domus-cream);
  border-radius: 50%;
  color: var(--domus-orange) !important;
  font-size: 22px !important;
  line-height: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
  transition: background-color .35s cubic-bezier(.4,0,.2,1),
              color .35s cubic-bezier(.4,0,.2,1),
              transform .35s cubic-bezier(.4,0,.2,1);
}
.domus-hero .et_pb_row:has(.et_pb_blurb):has(.et_pb_button) .et_pb_blurb:hover .et-pb-icon {
  background: var(--domus-orange);
  color: var(--domus-white) !important;
  transform: scale(1.06);
}
/* Forza glyph centrato dentro il chip (font-icon è display:inline che ha line-height variabile) */
.domus-hero .et_pb_row:has(.et_pb_blurb):has(.et_pb_button) .et_pb_blurb .et-pb-icon::before {
  display: inline-block;
  line-height: 1;
}

/* Titolo blurb (h5): centrato verticalmente sull'icona (46px chip).
   Usiamo flex sull'h5 stesso: single-line e multi-line centrano allo stesso modo. */
.domus-hero .et_pb_row:has(.et_pb_blurb):has(.et_pb_button) .et_pb_blurb h5,
.domus-hero .et_pb_row:has(.et_pb_blurb):has(.et_pb_button) .et_pb_blurb .et_pb_module_header {
  display: flex !important;
  align-items: center !important;
  min-height: 46px;
  color: var(--domus-ink) !important;
  font-family: var(--domus-font-body) !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  line-height: 1.25 !important;
  letter-spacing: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  text-transform: none !important;
}
.domus-hero .et_pb_row:has(.et_pb_blurb):has(.et_pb_button) .et_pb_blurb .et_pb_blurb_container,
.domus-hero .et_pb_row:has(.et_pb_blurb):has(.et_pb_button) .et_pb_blurb .et_pb_blurb_description {
  padding: 0 !important;
  margin: 0 !important;
}
.domus-hero .et_pb_row:has(.et_pb_blurb):has(.et_pb_button) .et_pb_blurb:hover h5 {
  color: var(--domus-orange) !important;
}

/* Bottone "Prenota ora" hero.
   Lo styling base (colors, padding, border-radius, shadow, hover state)
   è gestito da Divi NATIVAMENTE tramite gli attributi shortcode
   (button_*_hover_enabled, box_shadow_color_button, ecc).
   Qui interveniamo SOLO su:
   - Container wrapper (no stretch verticale nella colonna make_equal)
   - Curva e durata della transition (per renderla più morbida del default Divi)
   - Lift subtle al hover (transform, che Divi non espone) */
.domus-hero .et_pb_row:has(.et_pb_blurb):has(.et_pb_button) .et_pb_button_module_wrapper {
  margin: 0;
  padding: 0;
  width: auto;
  align-self: center;
}
/* Transition più lunga + Material Standard Easing su tutte le proprietà
   che Divi anima nativamente (bg, color, border, box-shadow). */
.domus-hero .et_pb_row:has(.et_pb_blurb):has(.et_pb_button) .et_pb_button {
  transition-property: background-color, color, border-color, border-radius, box-shadow, transform;
  transition-duration: .4s;
  transition-timing-function: cubic-bezier(.4, 0, .2, 1);
  will-change: transform, box-shadow;
}
.domus-hero .et_pb_row:has(.et_pb_blurb):has(.et_pb_button) .et_pb_button:hover {
  transform: translateY(-1px);
}
.domus-hero .et_pb_row:has(.et_pb_blurb):has(.et_pb_button) .et_pb_button:active {
  transform: translateY(0);
  transition-duration: .1s;
}

/* Responsive: su tablet info bar diventa 2 colonne, su mobile 1 colonna */
@media (max-width: 980px) {
  .domus-hero .et_pb_row:has(.et_pb_blurb):has(.et_pb_button) {
    padding: 14px !important;
  }
}
@media (max-width: 640px) {
  .domus-hero .et_pb_row:has(.et_pb_blurb):has(.et_pb_button) .et_pb_column:last-child {
    align-items: stretch !important;
    margin-top: 8px !important;
  }
  .domus-hero .et_pb_row:has(.et_pb_blurb):has(.et_pb_button) .et_pb_button {
    width: 100%;
    text-align: center;
  }
}

/* Scroll-down indicator: rimosso su richiesta (era ridondante con il bottone
   "Prenota ora" già evidente e creava clash visivo con l'info bar pillola). */
.domus-hero__scroll { display: none !important; }

/* ---------- Footer custom Domus ---------- */
.domus-footer {
  background-color: var(--domus-ink);
  color: var(--domus-sand);
  padding: 70px 0 30px;
  font-family: var(--domus-font-body);
}
.domus-footer .domus-footer__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 30px;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 50px;
}
@media (max-width: 980px) {
  .domus-footer .domus-footer__inner {
    grid-template-columns: 1fr 1fr;
    gap: 40px;
  }
}
@media (max-width: 560px) {
  .domus-footer .domus-footer__inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}
.domus-footer h4 {
  color: var(--domus-white);
  font-family: var(--domus-font-display);
  font-size: 22px;
  font-weight: 600;
  margin: 0 0 18px;
  letter-spacing: 0;
}
.domus-footer p,
.domus-footer li {
  color: var(--domus-sand);
  font-size: 14.5px;
  line-height: 1.75;
  margin: 0 0 8px;
}
.domus-footer ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.domus-footer a {
  color: var(--domus-orange-light);
  text-decoration: none;
  transition: color .2s ease;
}
.domus-footer a:hover {
  color: var(--domus-orange);
}
.domus-footer__logo {
  max-width: 240px;
  height: auto;
  margin: 0 0 18px;
  display: block;
  /* logo già white su trasparente, no filter necessario */
}
.domus-footer__tagline {
  font-family: var(--domus-font-display);
  font-size: 18px;
  font-style: italic;
  color: var(--domus-orange-light);
  margin: 0 0 12px;
}
.domus-footer__social {
  display: flex;
  gap: 12px;
  margin-top: 14px;
}
.domus-footer__social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid rgba(228,219,206,.25);
  color: var(--domus-orange-light);
  transition: all .25s ease;
}
.domus-footer__social a:hover {
  background: var(--domus-orange);
  border-color: var(--domus-orange);
  color: var(--domus-white);
  transform: translateY(-2px);
}
.domus-footer__social svg {
  width: 18px;
  height: 18px;
  fill: currentColor;
}
.domus-footer__bottom {
  max-width: 1180px;
  margin: 50px auto 0;
  padding: 24px 30px 0;
  border-top: 1px solid rgba(228,219,206,.18);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  font-size: 13px;
  color: rgba(228,219,206,.7);
}
.domus-footer__legal {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}
.domus-footer__legal span {
  letter-spacing: .02em;
}
.domus-footer__legal span.pending {
  opacity: .55;
  font-style: italic;
}

/* Nasconde il footer credits Divi quando custom footer è attivo */
body.has-domus-footer #main-footer {
  display: none;
}

/* ---------- Utility brand ---------- */
.domus-bg-cream     { background-color: var(--domus-cream); }
.domus-bg-sand      { background-color: var(--domus-sand); }
.domus-bg-orange    { background-color: var(--domus-orange); color: var(--domus-white); }
.domus-text-orange  { color: var(--domus-orange) !important; }
.domus-text-ink     { color: var(--domus-ink) !important; }
.domus-divider {
  width: 60px;
  height: 3px;
  background: var(--domus-orange);
  border: none;
  margin: 1em 0;
}

/* ---------- Hero overlay legacy ---------- */
.et_pb_fullwidth_header_overlay {
  background: linear-gradient(180deg, rgba(29,29,27,0) 0%, rgba(29,29,27,.45) 100%);
}

/* ============================================================
   DOMUS — Header custom (Villa Treville-style)
   - Fixed top, transparent su hero, dark+blur su scroll
   - Hamburger 3 lines: scaleX(0→1) stagger entry, morph X open
   - 2 CTA con wipe-fill ::before bottom→top su hover
   - Overlay menu fullscreen con clip-path reveal + items stagger
   ============================================================ */

.domus-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  padding: 22px 36px;
  background: transparent;
  transition:
    background-color .55s cubic-bezier(.19, 1, .22, 1),
    padding .55s cubic-bezier(.19, 1, .22, 1),
    box-shadow .5s ease,
    -webkit-backdrop-filter .5s ease,
    backdrop-filter .5s ease;
}
.domus-header.is-scrolled,
body.has-domus-header-solid .domus-header {
  background: rgba(29, 29, 27, 0.86);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  backdrop-filter: blur(14px) saturate(140%);
  padding: 12px 36px;
  box-shadow: 0 8px 28px rgba(0, 0, 0, .18);
}

.domus-header__inner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 24px;
  max-width: 1600px;
  margin: 0 auto;
}

/* ---------- Hamburger ---------- */
.domus-header__hamburger {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  background: transparent;
  border: 0;
  padding: 8px 4px;
  margin: 0;
  cursor: pointer;
  color: var(--domus-text);
  transition: color .3s ease;
  justify-self: start;
  font: inherit;
  -webkit-tap-highlight-color: transparent;
}
.domus-header__lines {
  display: inline-flex;
  flex-direction: column;
  gap: 6px;
  width: 30px;
  align-items: flex-start;
}
.domus-header__line {
  display: block;
  width: 30px;
  height: 1.5px;
  background: currentColor;
  transform-origin: left center;
  transform: scaleX(0);
  transition:
    transform .8s cubic-bezier(.19, 1, .22, 1),
    opacity .35s ease,
    rotate .55s cubic-bezier(.19, 1, .22, 1),
    translate .55s cubic-bezier(.19, 1, .22, 1),
    background-color .3s ease;
}
.domus-header.is-ready .domus-header__line { transform: scaleX(1); }
.domus-header.is-ready .domus-header__line[data-line="2"] { transition-delay: 80ms; }
.domus-header.is-ready .domus-header__line[data-line="3"] { transition-delay: 160ms; }

/* Open state: morph to X */
.domus-header.is-open .domus-header__line { transition-delay: 0ms; }
.domus-header.is-open .domus-header__line[data-line="1"] {
  rotate: 45deg;
  translate: 4px -3px;
}
.domus-header.is-open .domus-header__line[data-line="2"] {
  opacity: 0;
  transform: scaleX(0);
}
.domus-header.is-open .domus-header__line[data-line="3"] {
  rotate: -45deg;
  translate: 4px 3px;
}

.domus-header__hamburger:hover .domus-header__line { background: var(--domus-orange-light); }

.domus-header__hamburger-label {
  font-family: var(--domus-font-body);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--domus-text);
  transition: color .3s ease;
}
.domus-header__hamburger:hover .domus-header__hamburger-label { color: var(--domus-orange-light); }

/* ---------- Logo ---------- */
.domus-header__logo {
  justify-self: center;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}
.domus-header__logo img {
  display: block;
  height: 56px;
  width: auto;
  transition: height .5s cubic-bezier(.19, 1, .22, 1);
}
.domus-header.is-scrolled .domus-header__logo img,
body.has-domus-header-solid .domus-header__logo img {
  height: 42px;
}

/* ---------- CTAs ---------- */
.domus-header__ctas {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  justify-self: end;
}

.domus-cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 28px;
  font-family: var(--domus-font-body);
  font-size: 12px;
  letter-spacing: .16em;
  text-transform: uppercase;
  font-weight: 600;
  text-decoration: none;
  overflow: hidden;
  isolation: isolate;
  border-radius: 999px;
  transition: color 1s cubic-bezier(.19, 1, .22, 1);
  white-space: nowrap;
  line-height: 1.2;
}
.domus-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform 1s cubic-bezier(.19, 1, .22, 1);
  z-index: -1;
}
.domus-cta__label { position: relative; z-index: 2; }

.domus-cta--ghost {
  color: var(--domus-white);
  border: 1px solid rgba(255, 255, 255, .55);
  background: transparent;
}
.domus-cta--ghost::before { background: var(--domus-white); }
.domus-cta--ghost:hover { color: var(--domus-ink); }
.domus-cta--ghost:hover::before { transform: scaleY(1); }

.domus-cta--solid {
  color: var(--domus-white);
  background: var(--domus-orange);
  border: 1px solid var(--domus-orange);
}
.domus-cta--solid::before { background: var(--domus-orange-dark); }
.domus-cta--solid:hover { color: var(--domus-white); }
.domus-cta--solid:hover::before { transform: scaleY(1); }

/* ---------- Overlay menu ---------- */
.domus-overlay {
  position: fixed;
  inset: 0;
  z-index: 999;
  background: rgba(29, 29, 27, 0.96);
  -webkit-backdrop-filter: blur(22px) saturate(120%);
  backdrop-filter: blur(22px) saturate(120%);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 100px 36px 60px;
  pointer-events: none;
  opacity: 0;
  clip-path: inset(0 0 100% 0);
  transition:
    clip-path 1s cubic-bezier(.19, 1, .22, 1),
    opacity .4s ease;
}
body.domus-menu-open .domus-overlay {
  pointer-events: auto;
  opacity: 1;
  clip-path: inset(0 0 0 0);
}
body.domus-menu-open { overflow: hidden; }

.domus-overlay__nav { width: 100%; }
.domus-overlay__list {
  list-style: none;
  padding: 0;
  margin: 0;
  text-align: center;
}
.domus-overlay__list li {
  overflow: hidden;
  padding: 4px 0;
}
.domus-overlay__list a {
  position: relative;
  display: inline-block;
  font-family: var(--domus-font-display);
  font-size: clamp(34px, 5.6vw, 78px);
  line-height: 1.05;
  color: var(--domus-white);
  text-decoration: none;
  padding: 4px 8px 8px;
  transform: translateY(110%);
  opacity: 0;
  transition:
    transform .9s cubic-bezier(.19, 1, .22, 1),
    opacity .9s cubic-bezier(.19, 1, .22, 1),
    color .3s ease;
}
.domus-overlay__list a::after {
  content: "";
  position: absolute;
  left: 8px;
  right: 8px;
  bottom: 0;
  height: 2px;
  background: var(--domus-orange);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .6s cubic-bezier(.19, 1, .22, 1);
}
.domus-overlay__list a:hover { color: var(--domus-orange-light); }
.domus-overlay__list a:hover::after { transform: scaleX(1); }

body.domus-menu-open .domus-overlay__list a {
  transform: translateY(0);
  opacity: 1;
}
body.domus-menu-open .domus-overlay__list li:nth-child(1) a { transition-delay: 280ms; }
body.domus-menu-open .domus-overlay__list li:nth-child(2) a { transition-delay: 360ms; }
body.domus-menu-open .domus-overlay__list li:nth-child(3) a { transition-delay: 440ms; }
body.domus-menu-open .domus-overlay__list li:nth-child(4) a { transition-delay: 520ms; }
body.domus-menu-open .domus-overlay__list li:nth-child(5) a { transition-delay: 600ms; }

.domus-overlay__footer {
  margin-top: 60px;
  display: flex;
  gap: 36px;
  flex-wrap: wrap;
  justify-content: center;
}
.domus-overlay__footer a {
  font-family: var(--domus-font-body);
  font-size: 13px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--domus-orange-light);
  text-decoration: none;
  opacity: 0;
  transition: opacity .7s ease .7s, color .3s ease;
}
.domus-overlay__footer a:hover { color: var(--domus-white); }
body.domus-menu-open .domus-overlay__footer a { opacity: .85; }

/* ---------- Hide Divi default header ---------- */
body.has-domus-header #main-header,
body.has-domus-header #top-header {
  display: none !important;
}
body.has-domus-header #page-container { padding-top: 0 !important; }
body.has-domus-header.et_fixed_nav.et_show_nav #main-header,
body.has-domus-header.et_fixed_nav.et_secondary_nav_only_menu #main-header {
  display: none !important;
}

/* ============================================================
   DOMUS - Booking pages and MotoPress styling
   ============================================================ */
body.page-id-194 #main-content .container,
body.page-id-195 #main-content .container,
body.page-id-196 #main-content .container,
body.page-id-197 #main-content .container,
body.page-id-198 #main-content .container,
body.page-id-199 #main-content .container {
  width: 100%;
  max-width: none;
  padding-top: 0;
}

body.page-id-194 #left-area,
body.page-id-195 #left-area,
body.page-id-196 #left-area,
body.page-id-197 #left-area,
body.page-id-198 #left-area,
body.page-id-199 #left-area {
  width: 100%;
  padding-right: 0;
}

body.page-id-194 #sidebar,
body.page-id-195 #sidebar,
body.page-id-196 #sidebar,
body.page-id-197 #sidebar,
body.page-id-198 #sidebar,
body.page-id-199 #sidebar,
body.page-id-194 #main-content .container:before,
body.page-id-195 #main-content .container:before,
body.page-id-196 #main-content .container:before,
body.page-id-197 #main-content .container:before,
body.page-id-198 #main-content .container:before,
body.page-id-199 #main-content .container:before {
  display: none !important;
}

.domus-booking-page {
  background: var(--domus-cream);
  color: var(--domus-text);
  margin: 0 auto;
  overflow: hidden;
}

.domus-booking-hero {
  min-height: 380px;
  display: flex;
  align-items: flex-end;
  background:
    linear-gradient(90deg, rgba(29,29,27,.86) 0%, rgba(29,29,27,.68) 46%, rgba(29,29,27,.18) 100%),
    url("https://domuspalermo.it/wp-content/uploads/2026/05/Domus_Palermo_Slide_1.jpg") center / cover no-repeat;
  color: var(--domus-white);
  padding: 128px 6vw 54px;
}

.domus-booking-hero__inner,
.domus-booking-section,
.domus-booking-summary {
  width: min(1160px, 88vw);
  margin: 0 auto;
}

.domus-booking-hero__inner {
  max-width: 760px;
  margin-left: 0;
}

.domus-booking-kicker {
  margin: 0 0 12px;
  color: var(--domus-orange-light);
  font-family: var(--domus-font-body);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .16em;
  line-height: 1.3;
  text-transform: uppercase;
}

.domus-booking-hero h1,
.domus-booking-section h2,
.domus-booking-detail h3 {
  letter-spacing: 0;
}

.domus-booking-hero h1 {
  color: var(--domus-white);
  font-size: clamp(40px, 6vw, 78px);
  line-height: .96;
  margin: 0 0 20px;
  max-width: 760px;
}

.domus-booking-hero__copy {
  color: rgba(255,255,255,.88);
  font-size: clamp(17px, 2vw, 20px);
  line-height: 1.65;
  max-width: 680px;
  margin: 0 0 28px;
}

.domus-booking-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.domus-booking-cta,
.domus-booking-page .mphb_sc_search-submit-button-wrapper input,
.domus-booking-page .mphb_sc_checkout-submit-wrapper input,
.domus-booking-page .button,
.domus-booking-page button,
.domus-booking-page input[type="submit"] {
  border-radius: 8px !important;
  font-family: var(--domus-font-body);
  font-weight: 700;
  letter-spacing: 0;
  min-height: 46px;
}

.domus-booking-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 13px 20px;
  text-decoration: none;
  transition: transform .22s ease, background-color .22s ease, color .22s ease, border-color .22s ease;
}

.domus-booking-cta:hover {
  transform: translateY(-1px);
}

.domus-booking-cta--primary,
.domus-booking-page .mphb_sc_search-submit-button-wrapper input,
.domus-booking-page .mphb_sc_checkout-submit-wrapper input,
.domus-booking-page .button,
.domus-booking-page button,
.domus-booking-page input[type="submit"] {
  background: var(--domus-orange) !important;
  border: 1px solid var(--domus-orange) !important;
  color: var(--domus-white) !important;
}

.domus-booking-cta--primary:hover,
.domus-booking-page .mphb_sc_search-submit-button-wrapper input:hover,
.domus-booking-page .mphb_sc_checkout-submit-wrapper input:hover,
.domus-booking-page .button:hover,
.domus-booking-page button:hover,
.domus-booking-page input[type="submit"]:hover {
  background: var(--domus-orange-dark) !important;
  border-color: var(--domus-orange-dark) !important;
  color: var(--domus-white) !important;
}

.domus-booking-cta--ghost {
  border: 1px solid rgba(255,255,255,.55);
  color: var(--domus-white);
  background: rgba(255,255,255,.08);
}

.domus-booking-cta--ghost:hover {
  border-color: var(--domus-white);
  color: var(--domus-white);
  background: rgba(255,255,255,.16);
}

.domus-booking-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  transform: translateY(-26px);
  background: rgba(29,29,27,.12);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 18px 50px rgba(29,29,27,.12);
}

.domus-booking-summary__item {
  background: var(--domus-white);
  padding: 20px;
}

.domus-booking-summary__item span {
  display: block;
  margin-bottom: 6px;
  color: var(--domus-muted);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.domus-booking-summary__item strong {
  display: block;
  color: var(--domus-ink);
  font-size: 17px;
  line-height: 1.3;
}

.domus-booking-section {
  padding: 48px 0;
}

.domus-booking-section--form {
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(320px, 1fr);
  gap: 38px;
  align-items: start;
}

.domus-booking-section__intro h2,
.domus-booking-section__heading h2 {
  font-size: clamp(32px, 4vw, 50px);
  line-height: 1.04;
  margin: 0 0 14px;
}

.domus-booking-section__intro p,
.domus-booking-section__heading p,
.domus-booking-detail p {
  font-size: 16px;
  line-height: 1.7;
}

.domus-booking-note {
  display: grid;
  gap: 6px;
  margin-top: 24px;
  padding: 18px;
  border: 1px solid rgba(228,148,9,.28);
  border-left: 4px solid var(--domus-orange);
  border-radius: 8px;
  background: var(--domus-white);
}

.domus-booking-note strong {
  color: var(--domus-ink);
}

.domus-booking-note span {
  color: var(--domus-text);
  line-height: 1.6;
}

.domus-booking-engine,
.domus-booking-calendar,
.domus-booking-rates {
  background: var(--domus-white);
  border: 1px solid rgba(29,29,27,.08);
  border-radius: 8px;
  box-shadow: 0 16px 44px rgba(29,29,27,.09);
}

.domus-booking-engine {
  padding: 24px;
}

.domus-booking-calendar,
.domus-booking-rates {
  margin-top: 22px;
  padding: 22px;
  overflow-x: auto;
}

.domus-booking-section--calendar,
.domus-booking-section--rates {
  padding-top: 34px;
}

.domus-booking-section--details {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.domus-booking-detail {
  background: var(--domus-white);
  border: 1px solid rgba(29,29,27,.08);
  border-radius: 8px;
  padding: 22px;
}

.domus-booking-detail h3 {
  font-size: 25px;
  line-height: 1.1;
  margin: 0 0 10px;
}

.domus-booking-page input[type="text"],
.domus-booking-page input[type="email"],
.domus-booking-page input[type="tel"],
.domus-booking-page input[type="number"],
.domus-booking-page input[type="date"],
.domus-booking-page select,
.domus-booking-page textarea {
  width: 100%;
  min-height: 46px;
  border: 1px solid rgba(29,29,27,.16);
  border-radius: 8px;
  background: var(--domus-white);
  color: var(--domus-ink);
  font-family: var(--domus-font-body);
  font-size: 15px;
  padding: 10px 12px;
}

.domus-booking-page label {
  color: var(--domus-ink);
  font-weight: 700;
}

.domus-booking-page .mphb_sc_booking_form-wrapper,
.domus-booking-page .mphb_sc_search-wrapper,
.domus-booking-page .mphb_sc_checkout-wrapper {
  margin: 0;
}

.domus-booking-page .mphb_sc_search-adults,
.domus-booking-page .mphb_sc_search-children,
.domus-booking-page .mphb_sc_search-check-in-date,
.domus-booking-page .mphb_sc_search-check-out-date {
  margin-bottom: 16px;
}

.domus-booking-page table {
  width: 100%;
  border-collapse: collapse;
}

.domus-booking-page th,
.domus-booking-page td {
  border-color: rgba(29,29,27,.1) !important;
}

.domus-booking-page .mphb-calendar,
.domus-booking-page .datepick {
  width: 100% !important;
  max-width: 100%;
  border: 0;
  font-family: var(--domus-font-body);
}

.domus-booking-page .datepick-month {
  float: none !important;
  width: 100% !important;
  border: 0;
}

.domus-booking-page .datepick-month table {
  width: 100% !important;
  max-width: 100%;
  table-layout: fixed;
}

.domus-booking-page .datepick-month th,
.domus-booking-page .datepick-month td {
  width: 14.285% !important;
  min-width: 0;
  padding: 0 !important;
  text-align: center;
}

.domus-booking-page .mphb-calendar .mphb-date-cell {
  display: block;
  min-height: 42px;
  padding: 9px 3px;
}

.domus-booking-page .datepick-month-header,
.domus-booking-page .datepick-nav {
  background: var(--domus-ink) !important;
  color: var(--domus-white) !important;
}

.domus-booking-page--reservation .datepick-month-header {
  padding: 14px 12px;
  text-align: center;
}

.domus-booking-page--reservation .datepick-month-header select.datepick-month-year {
  width: auto;
  min-width: 118px;
  min-height: 42px;
  margin: 0 4px;
  padding: 8px 34px 8px 14px;
  appearance: none;
  -webkit-appearance: none;
  background:
    linear-gradient(45deg, transparent 50%, var(--domus-orange-light) 50%) calc(100% - 17px) 18px / 7px 7px no-repeat,
    linear-gradient(135deg, var(--domus-orange-light) 50%, transparent 50%) calc(100% - 12px) 18px / 7px 7px no-repeat,
    rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 8px;
  color: var(--domus-white);
  font-family: var(--domus-font-body);
  font-size: 15px;
  font-weight: 800;
  line-height: 1.2;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}

.domus-booking-page--reservation .datepick-month-header select.datepick-month-year:focus {
  border-color: var(--domus-orange-light);
  outline: 2px solid rgba(228,148,9,.24);
  outline-offset: 2px;
}

.domus-booking-page--reservation .datepick-month-header select.datepick-month-year option {
  color: var(--domus-ink);
  background: var(--domus-white);
}

.domus-booking-page .datepick a {
  color: var(--domus-ink);
}

.domus-booking-page .mphb-calendar .mphb-date-cell.mphb-available-date {
  background: rgba(228,148,9,.08);
}

.domus-booking-page .mphb-calendar .mphb-date-cell.mphb-not-available-date,
.domus-booking-page .mphb-calendar .mphb-date-cell.mphb-past-date {
  color: var(--domus-muted);
  background: rgba(29,29,27,.06);
}

@media (max-width: 980px) {
  .domus-booking-hero {
    min-height: 340px;
    padding: 116px 6vw 44px;
  }

  .domus-booking-summary,
  .domus-booking-section--form,
  .domus-booking-section--details {
    grid-template-columns: 1fr 1fr;
  }

  .domus-booking-section--form {
    gap: 26px;
  }
}

@media (max-width: 640px) {
  .domus-booking-hero {
    min-height: 0;
    padding: 104px 22px 38px;
  }

  .domus-booking-hero__inner,
  .domus-booking-section,
  .domus-booking-summary {
    width: min(100% - 32px, 1160px);
  }

  .domus-booking-summary,
  .domus-booking-section--form,
  .domus-booking-section--details {
    grid-template-columns: 1fr;
  }

  .domus-booking-summary {
    transform: translateY(-18px);
  }

  .domus-booking-summary__item,
  .domus-booking-engine,
  .domus-booking-calendar,
  .domus-booking-rates,
  .domus-booking-detail {
    padding: 18px;
  }

  .domus-booking-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .domus-booking-page--reservation .datepick-month-header {
    display: flex;
    gap: 8px;
    justify-content: center;
    padding: 12px 8px;
  }

  .domus-booking-page--reservation .datepick-month-header select.datepick-month-year {
    min-width: 0;
    flex: 1 1 0;
    max-width: 150px;
    font-size: 14px;
  }
}

/* Booking flow: search results and checkout */
body.page-id-194 .entry-title.main_title,
body.page-id-195 .entry-title.main_title,
body.page-id-196 .entry-title.main_title,
body.page-id-197 .entry-title.main_title,
body.page-id-198 .entry-title.main_title,
body.page-id-199 .entry-title.main_title {
  display: none !important;
}

/* Accommodation detail page */
body.single-mphb_room_type #main-content {
  background: var(--domus-cream);
}

body.single-mphb_room_type #main-content .container {
  width: 100%;
  max-width: none;
  padding-top: 0;
}

body.single-mphb_room_type #left-area {
  width: 100%;
  padding-right: 0;
}

body.single-mphb_room_type #sidebar,
body.single-mphb_room_type #main-content .container:before,
body.single-mphb_room_type .post-meta,
body.single-mphb_room_type #comment-wrap,
body.single-mphb_room_type article > .et_post_meta_wrapper:last-child {
  display: none !important;
}

body.single-mphb_room_type article.mphb_room_type {
  margin: 0;
  padding: 0;
  background: var(--domus-cream);
}

body.single-mphb_room_type article.mphb_room_type > .et_post_meta_wrapper:first-child {
  background:
    linear-gradient(90deg, rgba(29,29,27,.88) 0%, rgba(29,29,27,.66) 54%, rgba(29,29,27,.28) 100%),
    url("https://domuspalermo.it/wp-content/uploads/2026/05/Domus_Palermo_Slide_1.jpg") center / cover no-repeat;
  color: var(--domus-white);
  padding: 150px 6vw 72px;
}

body.single-mphb_room_type article.mphb_room_type .entry-title {
  width: min(1120px, 88vw);
  margin: 0 auto;
  color: var(--domus-white);
  font-size: clamp(42px, 6vw, 76px);
  line-height: .96;
  letter-spacing: 0;
}

body.single-mphb_room_type article.mphb_room_type .entry-title::before {
  content: "Dettaglio alloggio";
  display: block;
  margin: 0 0 18px;
  color: var(--domus-orange-light);
  font-family: var(--domus-font-body);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .16em;
  line-height: 1.3;
  text-transform: uppercase;
}

body.single-mphb_room_type article.mphb_room_type .entry-content {
  width: min(1120px, 88vw);
  margin: 0 auto;
  padding: 54px 0 76px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 410px);
  gap: 22px 36px;
  align-items: start;
}

body.single-mphb_room_type article.mphb_room_type .entry-content > p:not(.mphb-regular-price) {
  grid-column: 1;
  margin: 0;
  color: var(--domus-text);
  font-size: 17px;
  line-height: 1.75;
}

body.single-mphb_room_type .mphb-details-title,
body.single-mphb_room_type .mphb-calendar-title,
body.single-mphb_room_type .mphb-reservation-form-title {
  color: var(--domus-ink);
  font-family: var(--domus-font-display);
  letter-spacing: 0;
}

body.single-mphb_room_type .mphb-details-title {
  grid-column: 1;
  margin: 16px 0 -6px;
  font-size: clamp(30px, 3vw, 42px);
}

body.single-mphb_room_type .mphb-single-room-type-attributes {
  grid-column: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  list-style: none;
  margin: 0;
  padding: 0;
}

body.single-mphb_room_type .mphb-single-room-type-attributes li {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 5px;
  align-items: center;
  margin: 0;
  padding: 10px 12px;
  background: var(--domus-white);
  border: 1px solid rgba(29,29,27,.08);
  border-radius: 8px;
}

body.single-mphb_room_type .mphb-regular-price {
  grid-column: 2;
  grid-row: 1 / span 4;
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 24px;
  background: var(--domus-white);
  border: 1px solid rgba(228,148,9,.2);
  border-radius: 8px;
  box-shadow: 0 16px 44px rgba(29,29,27,.08);
  color: var(--domus-ink);
}

body.single-mphb_room_type .mphb-regular-price strong {
  color: var(--domus-muted);
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

body.single-mphb_room_type .mphb-regular-price .mphb-price {
  display: block;
  font-size: clamp(34px, 4vw, 48px);
  font-weight: 800;
  line-height: 1;
}

body.single-mphb_room_type .mphb-regular-price .mphb-price-period {
  color: var(--domus-muted);
  font-size: 14px;
  font-weight: 700;
  text-decoration: none !important;
}

body.single-mphb_room_type .mphb-calendar-title {
  grid-column: 1;
  margin: 24px 0 -4px;
  font-size: clamp(32px, 4vw, 52px);
}

body.single-mphb_room_type .mphb-calendar {
  grid-column: 1;
  width: 100% !important;
  max-width: 100%;
  padding: 22px;
  background: var(--domus-white);
  border: 1px solid rgba(29,29,27,.08);
  border-radius: 8px;
  box-shadow: 0 16px 44px rgba(29,29,27,.08);
  overflow-x: auto;
}

body.single-mphb_room_type .mphb-calendar .datepick {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  display: grid !important;
  grid-template-columns: 1fr;
  border: 0 !important;
  background: transparent !important;
  font-family: var(--domus-font-body);
}

body.single-mphb_room_type .mphb-calendar .datepick-nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: center;
  gap: 8px;
  width: 100%;
  background: var(--domus-ink) !important;
  border-radius: 8px 8px 0 0;
  overflow: hidden;
}

body.single-mphb_room_type .mphb-calendar .datepick-nav a {
  display: block !important;
  float: none !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  color: var(--domus-white) !important;
  padding: 10px 12px;
  text-decoration: none;
  text-align: center;
  white-space: nowrap !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
}

body.single-mphb_room_type .mphb-calendar .datepick-cmd-today {
  justify-self: stretch;
  align-self: stretch;
}

body.single-mphb_room_type .mphb-calendar .datepick-cmd-prev {
  text-align: left;
}

body.single-mphb_room_type .mphb-calendar .datepick-cmd-next {
  text-align: right;
}

body.single-mphb_room_type .mphb-calendar .datepick-month-row {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100% !important;
  max-width: 100%;
  border: 1px solid rgba(29,29,27,.1);
  border-top: 0;
}

body.single-mphb_room_type .mphb-calendar .datepick-month {
  float: none !important;
  width: 100% !important;
  min-width: 0 !important;
  border: 0 !important;
}

body.single-mphb_room_type .mphb-calendar .datepick-month + .datepick-month {
  border-left: 1px solid rgba(29,29,27,.1) !important;
}

body.single-mphb_room_type .mphb-calendar .datepick-month-header {
  width: 100%;
  background: rgba(29,29,27,.78) !important;
  color: var(--domus-white) !important;
  padding: 10px 8px;
}

body.single-mphb_room_type .mphb-calendar .datepick-month-header select {
  max-width: 46%;
  color: var(--domus-white);
  background: transparent;
  border: 0;
  font-weight: 800;
}

body.single-mphb_room_type .mphb-calendar .datepick-month table {
  width: 100% !important;
  table-layout: fixed;
  border-collapse: collapse;
}

body.single-mphb_room_type .mphb-calendar .datepick-month th,
body.single-mphb_room_type .mphb-calendar .datepick-month td {
  width: 14.285%;
  min-width: 0;
  padding: 0 !important;
  border-color: rgba(29,29,27,.12) !important;
  text-align: center;
}

body.single-mphb_room_type .mphb-calendar .mphb-date-cell {
  display: block;
  min-height: 42px;
  padding: 10px 4px;
}

body.single-mphb_room_type .mphb-reservation-form-title {
  grid-column: 2;
  grid-row: 5;
  margin: 24px 0 -4px;
  font-size: clamp(30px, 3vw, 42px);
}

body.single-mphb_room_type .mphb-booking-form {
  grid-column: 2;
  grid-row: 6 / span 2;
  margin: 0;
  padding: 24px;
  background: var(--domus-white);
  border: 1px solid rgba(29,29,27,.08);
  border-radius: 8px;
  box-shadow: 0 16px 44px rgba(29,29,27,.08);
}

body.single-mphb_room_type .mphb-booking-form p {
  margin-bottom: 16px;
}

body.single-mphb_room_type .mphb-booking-form input[type="text"],
body.single-mphb_room_type .mphb-booking-form select {
  width: 100%;
  min-height: 46px;
  border: 1px solid rgba(29,29,27,.16);
  border-radius: 8px;
  background: var(--domus-white);
  color: var(--domus-ink);
  font-size: 15px;
  padding: 10px 12px;
}

body.single-mphb_room_type .mphb-reserve-btn {
  width: 100%;
  background: var(--domus-orange) !important;
  border-color: var(--domus-orange) !important;
  color: var(--domus-white) !important;
  border-radius: 8px !important;
  padding: 14px 20px !important;
  font-weight: 800;
}

body.single-mphb_room_type .mphb-reserve-btn:hover {
  background: var(--domus-orange-dark) !important;
  border-color: var(--domus-orange-dark) !important;
}

@media (max-width: 900px) {
  body.single-mphb_room_type article.mphb_room_type > .et_post_meta_wrapper:first-child {
    padding: 116px 22px 44px;
  }

  body.single-mphb_room_type article.mphb_room_type .entry-title,
  body.single-mphb_room_type article.mphb_room_type .entry-content {
    width: min(100% - 32px, 1120px);
  }

  body.single-mphb_room_type article.mphb_room_type .entry-content {
    grid-template-columns: 1fr;
    padding: 38px 0 58px;
  }

  body.single-mphb_room_type article.mphb_room_type .entry-content > p:not(.mphb-regular-price),
  body.single-mphb_room_type .mphb-details-title,
  body.single-mphb_room_type .mphb-single-room-type-attributes,
  body.single-mphb_room_type .mphb-regular-price,
  body.single-mphb_room_type .mphb-calendar-title,
  body.single-mphb_room_type .mphb-calendar,
  body.single-mphb_room_type .mphb-reservation-form-title,
  body.single-mphb_room_type .mphb-booking-form {
    grid-column: 1;
    grid-row: auto;
  }

  body.single-mphb_room_type .mphb-calendar,
  body.single-mphb_room_type .mphb-booking-form,
  body.single-mphb_room_type .mphb-regular-price {
    padding: 18px;
  }

  body.single-mphb_room_type .mphb-calendar .datepick-month-row {
    grid-template-columns: 1fr;
  }

  body.single-mphb_room_type .mphb-calendar .datepick-month + .datepick-month {
    border-left: 0 !important;
    border-top: 1px solid rgba(29,29,27,.1) !important;
  }

  body.single-mphb_room_type .mphb-calendar .datepick-month-header select {
    max-width: 44%;
  }

  body.single-mphb_room_type .mphb-single-room-type-attributes {
    display: grid;
    grid-template-columns: 1fr;
  }
}

body.page-id-195 #main-content,
body.page-id-196 #main-content,
body.page-id-197 #main-content,
body.page-id-198 #main-content,
body.page-id-199 #main-content {
  background: var(--domus-cream);
}

.domus-booking-system-page {
  min-height: 70vh;
}

.domus-booking-system-hero {
  background:
    linear-gradient(90deg, rgba(29,29,27,.88) 0%, rgba(29,29,27,.72) 54%, rgba(29,29,27,.42) 100%),
    url("https://domuspalermo.it/wp-content/uploads/2026/05/Domus-Stazione-Living-Room_1.jpg") center / cover no-repeat;
  color: var(--domus-white);
  padding: 138px 6vw 58px;
}

.domus-booking-system-hero__inner {
  width: min(960px, 88vw);
  margin: 0 auto;
}

.domus-booking-system-hero h1 {
  color: var(--domus-white);
  font-size: clamp(38px, 5vw, 68px);
  line-height: 1;
  letter-spacing: 0;
  margin: 0 0 16px;
}

.domus-booking-system-hero p {
  max-width: 720px;
  color: rgba(255,255,255,.88);
  font-size: 18px;
  line-height: 1.65;
  margin: 0 0 24px;
}

.domus-booking-system-content {
  width: min(1120px, 88vw);
  margin: 0 auto;
  padding: 52px 0 76px;
}

.domus-booking-system-content .mphb_sc_search_results-wrapper {
  display: grid;
  gap: 22px;
}

.domus-booking-system-content .mphb_sc_search_results-info {
  margin: 0;
  color: var(--domus-muted);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.domus-booking-system-content .mphb-recommendation-title,
.domus-booking-system-content .mphb-room-type-title,
.domus-booking-system-content .mphb-room-type-details-title {
  color: var(--domus-ink);
  font-family: var(--domus-font-display);
  letter-spacing: 0;
}

.domus-booking-system-content .mphb-recommendation-title {
  font-size: clamp(30px, 3.5vw, 46px);
  line-height: 1.05;
  margin: 0;
}

.domus-booking-system-content .mphb-recommendation,
.domus-booking-system-content .mphb-reservation-cart,
.domus-booking-system-content .mphb-room-type,
.domus-booking-system-content .mphb_sc_checkout-wrapper {
  background: var(--domus-white);
  border: 1px solid rgba(29,29,27,.08);
  border-radius: 8px;
  box-shadow: 0 16px 44px rgba(29,29,27,.08);
}

.domus-booking-system-content .mphb-recommendation {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
  grid-template-areas:
    "details total"
    "details action";
  gap: 20px 28px;
  align-items: stretch;
  padding: 28px;
}

.domus-booking-system-content .mphb-recommendation-details-list,
.domus-booking-system-content .mphb-loop-room-type-attributes {
  list-style: none !important;
  margin: 0;
  padding: 0;
}

.domus-booking-system-content .mphb-recommendation-details-list {
  grid-area: details;
  align-self: center;
}

.domus-booking-system-content .mphb-recommendation-details-list li {
  list-style: none !important;
  margin: 0;
}

.domus-booking-system-content .mphb-recommendation-details-list li::marker,
.domus-booking-system-content .mphb-loop-room-type-attributes li::marker {
  content: "";
}

.domus-booking-system-content .mphb-recommendation-item {
  display: block;
}

.domus-booking-system-content .mphb-recommedation-item-subtotal {
  display: none;
}

.domus-booking-system-content .mphb-recommendation-item-count {
  display: inline-block;
  margin-right: 8px;
  color: var(--domus-muted);
  font-weight: 700;
}

.domus-booking-system-content .mphb-recommendation-item-link,
.domus-booking-system-content .mphb-room-type-title a {
  color: var(--domus-orange) !important;
  font-weight: 800;
  text-decoration: none;
}

.domus-booking-system-content .mphb-recommendation-item-guests {
  display: block;
  margin-top: 10px;
  color: var(--domus-muted);
  font-size: 14px;
}

.domus-booking-system-content .mphb-recommendation-total {
  grid-area: total;
  display: grid;
  align-content: center;
  gap: 10px;
  margin: 0;
  padding: 20px 22px;
  background: rgba(255,255,255,.76);
  border: 1px solid rgba(228,148,9,.18);
  border-radius: 8px;
  color: var(--domus-ink);
  font-size: 16px;
  font-weight: 800;
  text-align: left;
}

.domus-booking-system-content .mphb-recommendation-total-title {
  display: block;
  color: var(--domus-muted);
  font-size: 0;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.domus-booking-system-content .mphb-recommendation-total-title::before {
  content: "Totale";
  font-size: 12px;
}

.domus-booking-system-content .mphb-recommendation-total-value {
  display: block;
  font-size: clamp(28px, 2.4vw, 36px);
  line-height: 1.12;
  white-space: nowrap;
}

.domus-booking-system-content .mphb-recommendation-reserve-button,
.domus-booking-system-content .mphb-confirm-reservation,
.domus-booking-system-content .mphb-book-button,
.domus-booking-system-content .mphb-view-details-button {
  justify-self: stretch;
  min-width: 170px;
  padding: 14px 20px !important;
}

.domus-booking-system-content .mphb-recommendation-reserve-button {
  grid-area: action;
  width: 100%;
  align-self: start;
}

.domus-booking-system-content .mphb-reservation-cart {
  padding: 22px 24px;
}

.domus-booking-results-page .mphb-reservation-cart.mphb-empty-cart {
  display: none !important;
}

.domus-booking-system-content .mphb-empty-cart-message,
.domus-booking-system-content .mphb-cart-message {
  color: var(--domus-muted);
  margin: 0 0 10px;
}

.domus-booking-system-content .mphb-room-type {
  display: grid;
  grid-template-columns: minmax(230px, 300px) minmax(0, 1fr) minmax(260px, 330px);
  gap: 22px 28px;
  align-items: start;
  margin-top: 24px;
  padding: 0;
  overflow: hidden;
}

.domus-booking-system-content .mphb-room-type::before {
  content: "";
  grid-column: 1;
  grid-row: 1 / span 5;
  min-height: 360px;
  align-self: stretch;
  background:
    linear-gradient(180deg, rgba(29,29,27,.04), rgba(29,29,27,.18)),
    url("https://domuspalermo.it/wp-content/uploads/2026/05/Domus_Palermo_Slide_1.jpg") center / cover no-repeat;
}

.domus-booking-system-content .mphb-room-type-title {
  grid-column: 2;
  grid-row: 1;
  font-size: clamp(30px, 3vw, 42px);
  line-height: 1;
  margin: 30px 0 0;
}

.domus-booking-system-content .mphb-room-type > p:not(.mphb-regular-price):not(.mphb-view-details-button-wrapper) {
  grid-column: 2;
  grid-row: 2;
  font-size: 16px;
  line-height: 1.7;
  margin: 0;
  max-width: 620px;
}

.domus-booking-system-content .mphb-room-type-details-title {
  grid-column: 2;
  grid-row: 3;
  color: var(--domus-muted);
  font-family: var(--domus-font-body);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .14em;
  line-height: 1.2;
  margin: 4px 0 -6px;
  text-transform: uppercase;
}

.domus-booking-system-content .mphb-loop-room-type-attributes {
  grid-column: 2;
  grid-row: 4;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 30px;
}

.domus-booking-system-content .mphb-loop-room-type-attributes li {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 5px;
  align-items: center;
  margin: 0;
  padding: 10px 12px;
  background: var(--domus-cream);
  border: 1px solid rgba(29,29,27,.08);
  border-radius: 8px;
  color: var(--domus-text);
}

.domus-booking-system-content .mphb-regular-price {
  grid-column: 3;
  grid-row: 1 / span 2;
  align-self: start;
  display: grid;
  gap: 8px;
  margin: 30px 28px 0 0;
  padding: 22px;
  background: var(--domus-cream);
  border: 1px solid rgba(228,148,9,.16);
  border-radius: 8px;
  color: var(--domus-ink);
  font-size: 15px;
  font-weight: 800;
  text-align: left;
}

.domus-booking-system-content .mphb-regular-price strong {
  display: none;
}

.domus-booking-system-content .mphb-regular-price::before {
  content: "Totale soggiorno";
  color: var(--domus-muted);
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.domus-booking-system-content .mphb-regular-price .mphb-price {
  display: block;
  font-size: clamp(30px, 3vw, 42px);
  line-height: 1;
}

.domus-booking-system-content .mphb-regular-price .mphb-price-period {
  color: var(--domus-muted);
  font-size: 14px;
  font-weight: 700;
  text-decoration: none !important;
}

.domus-booking-system-content .mphb-view-details-button-wrapper,
.domus-booking-system-content .mphb-reserve-room-section {
  grid-column: 2;
  justify-self: start;
}

.domus-booking-system-content .mphb-view-details-button-wrapper {
  grid-column: 3;
  grid-row: 3;
  justify-self: stretch;
  margin: 0 28px 0 0 !important;
}

.domus-booking-system-content .mphb-reserve-room-section {
  grid-column: 3;
  grid-row: 4;
  justify-self: stretch;
  margin: 0 28px 30px 0;
}

.domus-booking-system-content .mphb-view-details-button {
  width: 100%;
  background: transparent !important;
  border-color: var(--domus-orange) !important;
  color: var(--domus-orange) !important;
}

.domus-booking-system-content .mphb-view-details-button:hover {
  background: var(--domus-orange) !important;
  color: var(--domus-white) !important;
}

.domus-booking-system-content .mphb-rooms-reservation-message-wrapper {
  color: var(--domus-muted);
  margin-bottom: 10px;
  text-align: right;
}

.domus-booking-system-content .mphb_sc_checkout-wrapper {
  margin-top: 22px;
  padding: 26px;
}

.domus-booking-note--checkout {
  max-width: none;
}

@media (max-width: 800px) {
  .domus-booking-system-hero {
    padding: 116px 22px 44px;
  }

  .domus-booking-system-hero__inner,
  .domus-booking-system-content {
    width: min(100% - 32px, 1120px);
  }

  .domus-booking-system-content .mphb-recommendation,
  .domus-booking-system-content .mphb-room-type,
  .domus-booking-system-content .mphb-recommendation-item {
    grid-template-columns: 1fr;
  }

  .domus-booking-system-content .mphb-recommendation {
    grid-template-areas:
      "details"
      "total"
      "action";
  }

  .domus-booking-system-content .mphb-room-type::before {
    grid-column: 1;
    grid-row: 1;
    min-height: 230px;
  }

  .domus-booking-system-content .mphb-room-type-title {
    grid-column: 1;
    grid-row: 2;
    margin: 22px 20px 0;
  }

  .domus-booking-system-content .mphb-room-type > p:not(.mphb-regular-price):not(.mphb-view-details-button-wrapper) {
    grid-column: 1;
    grid-row: 3;
    margin: 0 20px;
  }

  .domus-booking-system-content .mphb-room-type-details-title {
    grid-column: 1;
    grid-row: 4;
    margin: 4px 20px -4px;
  }

  .domus-booking-system-content .mphb-loop-room-type-attributes {
    grid-column: 1;
    grid-row: 5;
    margin: 0 20px;
  }

  .domus-booking-system-content .mphb-recommedation-item-subtotal,
  .domus-booking-system-content .mphb-recommendation-total,
  .domus-booking-system-content .mphb-regular-price,
  .domus-booking-system-content .mphb-rooms-reservation-message-wrapper {
    grid-column: 1;
    grid-row: auto;
    text-align: left;
  }

  .domus-booking-system-content .mphb-regular-price {
    grid-row: 6;
    margin: 4px 20px 0;
  }

  .domus-booking-system-content .mphb-view-details-button-wrapper {
    grid-row: 7;
    margin: 0 20px !important;
  }

  .domus-booking-system-content .mphb-reserve-room-section {
    grid-row: 8;
    margin: 0 20px 22px;
  }

  .domus-booking-system-content .mphb-reserve-room-section .mphb-book-button {
    width: calc(100% - 72px);
  }

  .domus-booking-system-content .mphb-recommendation-reserve-button,
  .domus-booking-system-content .mphb-confirm-reservation,
  .domus-booking-system-content .mphb-book-button,
  .domus-booking-system-content .mphb-view-details-button,
  .domus-booking-system-content .mphb-view-details-button-wrapper,
  .domus-booking-system-content .mphb-reserve-room-section {
    grid-column: 1;
    justify-self: stretch;
    width: 100%;
  }

  body.page-id-194 .wa__btn_popup_txt,
  body.page-id-195 .wa__btn_popup_txt,
  body.page-id-196 .wa__btn_popup_txt,
  body.page-id-197 .wa__btn_popup_txt,
  body.page-id-198 .wa__btn_popup_txt,
  body.page-id-199 .wa__btn_popup_txt,
  body.single-mphb_room_type .wa__btn_popup_txt {
    display: none !important;
  }
}

/* ---------- Mobile ---------- */
@media (max-width: 880px) {
  .domus-header { padding: 16px 22px; }
  .domus-header.is-scrolled,
  body.has-domus-header-solid .domus-header { padding: 10px 22px; }
  .domus-header__inner { gap: 12px; }
  .domus-header__hamburger-label { display: none; }
  .domus-header__logo img { height: 44px; }
  .domus-header.is-scrolled .domus-header__logo img,
  body.has-domus-header-solid .domus-header__logo img { height: 36px; }
  .domus-cta { padding: 10px 18px; font-size: 11px; letter-spacing: .12em; }
  .domus-cta--ghost { display: none; }
  .domus-overlay { padding: 90px 22px 40px; }
  .domus-overlay__footer { gap: 18px; margin-top: 40px; }
}

@media (max-width: 480px) {
  .domus-header { padding: 12px 16px; }
  .domus-header__logo img { height: 38px; }
  .domus-cta--solid { padding: 9px 16px; font-size: 10.5px; }
}

/* Riduce motion per utenti con preferenza accessibilità */
@media (prefers-reduced-motion: reduce) {
  .domus-header__line,
  .domus-cta::before,
  .domus-overlay,
  .domus-overlay__list a,
  .domus-overlay__footer a {
    transition-duration: .01ms !important;
  }
}

/* ============================================================
   DOMUS — Logo header swap (orange primary ↔ white scrolled)
   2 img stacked: primary in flow, scrolled absolute overlay.
   ============================================================ */
.domus-header__logo { position: relative; }
.domus-header__logo-img {
  transition:
    opacity .5s cubic-bezier(.19, 1, .22, 1),
    height .5s cubic-bezier(.19, 1, .22, 1);
}
.domus-header__logo-img--scrolled {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  pointer-events: none;
}
.domus-header.is-scrolled .domus-header__logo-img--primary,
body.has-domus-header-solid .domus-header__logo-img--primary,
body.domus-menu-open .domus-header__logo-img--primary {
  opacity: 0;
}
.domus-header.is-scrolled .domus-header__logo-img--scrolled,
body.has-domus-header-solid .domus-header__logo-img--scrolled,
body.domus-menu-open .domus-header__logo-img--scrolled {
  opacity: 1;
}


/* ============================================================
   DOMUS — Hamburger color: torna bianco negli stati con bg scuro
   (header scrolled, menu open overlay, pagine non-home solid)
   Hover arancione gestito dalle regole esistenti.
   ============================================================ */
.domus-header.is-scrolled .domus-header__hamburger,
body.has-domus-header-solid .domus-header__hamburger,
body.domus-menu-open .domus-header__hamburger,
.domus-header.is-scrolled .domus-header__hamburger-label,
body.has-domus-header-solid .domus-header__hamburger-label,
body.domus-menu-open .domus-header__hamburger-label {
  color: var(--domus-white);
}
