:root {
  --color-primary: #004c97;
  --color-primary-dark: #003a75;
  --color-text: #3a3a3a;
  --color-white: #ffffff;
  --font-title: 'Quicksand', sans-serif;
  --font-body: 'Quicksand', sans-serif;
}

/* Skip-to-content (WCAG 2.4.1) */
.skip-to-content {
  position: absolute;
  top: -100%;
  left: 0;
  z-index: 99999;
  padding: 12px 20px;
  background: var(--color-primary);
  color: #fff;
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
  border-radius: 0 0 6px 6px;
  transition: top 0.15s;
}
.skip-to-content:focus {
  top: 0;
  outline: 3px solid #fff;
  outline-offset: 2px;
}

* { box-sizing: border-box; }

html { margin: 0; padding: 0; font-size: 16px; }
body {
  margin: 0;
  padding: 0;
  overflow-x: hidden;
  font-family: var(--font-body);
  font-weight: 400;
  color: #6a6a6a;
  font-size: 1em;
  line-height: 1.9em;
  -webkit-font-smoothing: antialiased;
}
@media (max-width: 1024px) { body { font-size: 0.9em; line-height: 1.95em; } }

/* Titoli come l'ufficiale (theme.css): Quicksand 200, colore per tipo di box */
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--font-title);
  font-weight: 200;
  line-height: 1.1em;
  color: #fff;
}
/* bootstrap (caricato dopo) rimetterebbe 500/1.2: rinforzo la specificita' */
body h1, body h2, body h3, body h4, body h5, body h6 { font-weight: 200; line-height: 1.1em; }
.standard-box h1, .standard-box h2, .standard-box h3, .standard-box h4, .standard-box h5, .standard-box h6,
.opt-box-two h1, .opt-box-two h2, .opt-box-two h3, .opt-box-two h4, .opt-box-two h5, .opt-box-two h6 { color: #3a3a3a; }
.opt-box-one h1, .opt-box-one h2, .opt-box-one h3, .opt-box-one h4, .opt-box-one h5, .opt-box-one h6 { color: #fff; }
.standard-box h1 b, .standard-box h2 b, .standard-box h3 b, .standard-box h4 b, .standard-box h5 b, .standard-box h6 b,
.opt-box-one h1 b, .opt-box-one h2 b, .opt-box-one h3 b, .opt-box-one h4 b, .opt-box-one h5 b, .opt-box-one h6 b,
.opt-box-two h1 b, .opt-box-two h2 b, .opt-box-two h3 b, .opt-box-two h4 b, .opt-box-two h5 b, .opt-box-two h6 b { font-weight: 400; }
.standard-box p, .standard-box li, .standard-box label, .opt-box-two p, .opt-box-two li, .opt-box-two label { color: #6a6a6a; font-weight: 400; }
.opt-box-one p, .opt-box-one li, .opt-box-one label { color: #fff; font-weight: 400; }
h1, .h1 { font-size: 4.4em; }
h2, .h2 { font-size: 3em; }
h3, .h3 { font-size: 2.4em; }
h4, .h4, h5, .h5, h6, .h6 { font-size: 1.9em; }
@media (max-width: 1600px) {
  h1, .h1 { font-size: 3em; }
  h2, .h2 { font-size: 2.4em; }
  h3, .h3 { font-size: 2em; }
  h4, .h4, h5, .h5, h6, .h6 { font-size: 1.7em; }
}
p b, a b, li b, dt b { font-weight: 500; }
.lead { line-height: 1.8em; font-size: 1.15em; }
@media (max-width: 1024px) { .lead { line-height: 1.95em; } }

a { color: var(--color-primary); text-decoration: none; transition: all .15s ease-out; }
a:hover { color: #0073e4; }
.standard-box a:not(.btn), .opt-box-one a:not(.btn), .opt-box-two a:not(.btn) { color: #004c97; font-family: 'Quicksand', sans-serif; font-weight: 400; }

/* ===================================================
   FULLSCREEN MENU OVERLAY
   =================================================== */
.fullscreen-menu-container {
  position: fixed;
  background-color: var(--color-primary);
  top: 0;
  left: auto;
  right: 0;
  width: 100%;
  max-width: 600px;
  height: 100%;
  opacity: 0;
  visibility: hidden;
  z-index: 10000;
  transition: all 600ms cubic-bezier(1, 0.015, 0.435, 0.99);
  overflow-x: hidden;
  overflow-y: auto;
  transform: translate(100%, 0);
  padding-bottom: 70px;
}
.fullscreen-menu-container { -ms-overflow-style: none; scrollbar-width: none; backface-visibility: hidden; }
.fullscreen-menu-container::-webkit-scrollbar { display: none !important; }
.fullscreen-menu-container.open {
  opacity: 1;
  visibility: visible;
  transform: translate(0, 0);
  box-shadow: 0 2px 50px 0 rgba(0,0,0,0.20);
}
.fullscreen-menu-container nav.fullscreen-menu {
  opacity: 0;
  transition: all 300ms ease-out;
  transform: translate(100px, 0);
}
.fullscreen-menu-container.open nav.fullscreen-menu {
  opacity: 1;
  transform: translate(0, 0);
}

/* Menu header: logo + close button (ufficiale: padding 20, filetto sotto, X fissa a destra 50x50) */
.menu-header {
  padding: 20px;
  border-bottom: 1px solid rgba(255,255,255,0.15);
}
.menu-header img { max-width: 100%; height: auto; }
.close-menu {
  position: fixed;
  right: 20px;
  top: 20px;
  display: block;
  cursor: pointer;
  z-index: 1;
  background: url('/assets/close.svg') center center / 25px 25px no-repeat;
  width: 50px;
  height: 50px;
}

/* Pre-menu: lingue + prenota */
.pre-menu { padding: 15px 70px; border-bottom: 1px solid rgba(255,255,255,0.15); margin-bottom: 30px; }
.pre-menu a { color: #fff !important; font-size: 10px; text-transform: uppercase; font-weight: 500; margin-right: 10px; letter-spacing: 0.01em; font-family: 'Quicksand', sans-serif; }
.pre-menu a img { margin-right: 10px; }
.side-langs { margin: 0; padding: 0; list-style: none; }
.side-langs dt { display: inline-block; margin: 0; }
.side-langs dt + dt { margin-left: 4px; }
.side-langs a { transition: color 0.15s ease-out; }
.side-langs a:hover, .side-langs a.link_attivo { color: #fff; }
.side-booking { transition: opacity 0.2s; }
.side-booking:hover { opacity: 0.6; color: #fff; }

/* Nav list (ufficiale: 30px/38px, padding 15px 0 15px 70px, nessun bordo tra le voci) */
.fullscreen-list { list-style: none; padding: 0; margin: 0 auto 30px; display: block; position: relative; text-align: left; }
.fullscreen-list > li { display: block; position: relative; margin: 0; }
.fullscreen-list > li > a {
  display: block;
  position: relative;
  overflow: hidden;
  font-family: 'Quicksand', serif;
  font-weight: 400;
  font-size: 30px;
  line-height: 38px;
  padding: 15px 15px 15px 70px;
  color: #fff;
  letter-spacing: 0.035em;
  transition: all 0.15s ease-out;
}
.fullscreen-list > li > a:hover { color: rgba(255,255,255,0.6); }
.fullscreen-menu-container nav.fullscreen-menu { margin: 0 auto; position: relative; padding: 0 0 50px; text-align: left; }
@media (max-width: 767px) {
  .fullscreen-menu-container { max-width: 380px; max-height: 100%; }
  .pre-menu { padding: 20px 40px; }
  .fullscreen-list > li > a { font-size: 20px; line-height: 28px; padding-left: 40px; }
}
@media (max-width: 413px) { .fullscreen-menu-container { max-width: 330px; } }

/* Menu footer: CTAs + social */
.menu-footer { border-top: 1px solid rgba(255,255,255,0.15); padding: 30px 70px 0; }
@media (max-width: 767px) { .menu-footer { padding: 30px 40px 0; } }
.menu-footer .btn { margin-bottom: 10px; }
.menu-footer .p-1 { padding: 0.25rem; }
.menu-footer .socials { text-align: center; padding-top: 1.5rem; line-height: 0; }
.menu-footer .socials a { margin: 0; }


.socials a { display: inline-block; margin: 0 8px; }
.socials img { transition: opacity 0.2s; }
.socials a:hover img { opacity: 0.7; }

/* ===================================================
   PERSISTENT TOP BAR (#include_top_menu) — come l'ufficiale (theme.css "TOP MENU BAR")
   =================================================== */
#include_top_menu {
  /* logo e lingue scorrono con la pagina; resta fissa solo la scatola Prenota/hamburger (.mobile-menu) */
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 0;
  z-index: 9000;
  pointer-events: none;
}

/* Logo — ridotto e centrato in alto su richiesta cliente (2026-09-30) */
.top-logo-home {
  position: absolute;
  top: 100px; left: 50%;
  transform: translateX(-50%);
  width: 300px; height: 100px;
  z-index: 9998;
  pointer-events: all;
}
.top-logo-home img { display: block; width: auto; height: 100%; max-width: 100%; margin: 0 auto; }
.top-home-link { display: block; height: 100%; }
/* Il logo grande dell'hero (.header-logo) è stato rimosso su richiesta cliente (2026-09-30):
   ora anche in home si usa il piccolo logo in alto a sinistra, come le altre pagine. */
body[data-slug="cookies"] .top-logo-home { display: none; }
@media (max-width: 767px) { .top-logo-home { top: 75px; left: 50%; transform: translateX(-50%); width: 180px; height: 60px; } }

/* Lingue (ufficiale nav.main-navigation .fixed-main-menu: solo >= 1024px) */
.top-lang-nav { position: relative; z-index: 1; font-size: 10px; font-family: 'Quicksand', serif; }
.top-lang-nav .fixed-main-menu {
  position: absolute; margin: 0 auto; left: 0; right: 0; display: block;
  background-image: linear-gradient(180deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0) 100%);
  pointer-events: none;
}
.top-lang-list { list-style: none; display: inline-block; margin: 40px 0 0; padding: 0; width: 100%; font-size: 0; text-align: center; }
.top-lang-list li { display: inline-block; text-align: center; position: relative; }
.top-lang-list li a {
  pointer-events: all;
  height: 30px;
  font-size: 11px; font-weight: 500; color: #fff; line-height: normal; vertical-align: middle;
  font-family: 'Quicksand', sans-serif;
  padding: 10px 20px; text-transform: uppercase; letter-spacing: 0.05em;
  position: relative; cursor: pointer;
  transition: all 0.15s ease-out;
}
@media (max-width: 1600px) { .top-lang-list li a { padding: 10px 15px; } }
.top-lang-list li a:hover, .top-lang-list li a.link_attivo:hover { color: #73a2d0; }
.top-lang-list li a.link_attivo { color: #fff; }
@media (max-width: 1023px) { .top-lang-nav { display: none !important; } }

/* Destra: booking + hamburger — scatola bianca fissa (menu-scrolled = attaccata al bordo dopo lo scroll) */
.mobile-menu {
  position: fixed; top: 30px; right: 30px;
  z-index: 9001;
  pointer-events: all;
  line-height: 0;
  background: #fff;
  border-radius: 0;
  transition: .2s ease-in-out;
}
.mobile-menu.menu-scrolled { top: 0; right: 0; }
.mobile-menu.menu-scrolled .dropdown-menu { transform: translate(0, 57px) !important; }
.mobile-menu dl { font-size: 0; margin: 0; padding: 0 10px; box-shadow: 0 0 7px 3px rgba(0,0,0,0.1); }
@media (max-width: 480px) { .mobile-menu dl { padding: 0 5px; } }
.mobile-menu dt { margin: 0; padding: 0; display: inline-block; }
.mobile-menu dl dt > a {
  position: relative;
  display: inline-block;
  vertical-align: top;
  font-family: 'Quicksand', sans-serif;
  font-size: 13px;
  font-weight: 500;
  padding: 0 20px;
  background: transparent;
  text-align: center;
  height: 55px;
  line-height: 56px;
  letter-spacing: .01em;
  color: #000;
  text-transform: uppercase;
}
.mobile-menu dl dt > a:hover { color: #0073e4; }
.mobile-menu dl dt > a img { margin-right: 10px; transform: translateY(-2px); width: auto; height: auto; }
.mobile-menu .dropdown-toggle::after { display: none; }
@media (max-width: 993px) { .mobile-menu { top: 20px; right: 20px; } .mobile-menu.menu-scrolled { top: 0; right: 0; } }
@media (max-width: 576px) { .mobile-menu { top: 10px; right: 10px; } .mobile-menu.menu-scrolled { top: 0; right: 0; } }

.mobile-menu .dropdown-menu {
  position: absolute; right: 0; z-index: 1000; float: left;
  min-width: 10rem; padding: 0.8rem 0; margin: 8px 0 0;
  font-size: 12px; line-height: 1.9em; color: #212529; text-align: left; list-style: none;
  background-color: #fff; background-clip: padding-box; border: none; border-radius: 4px; font-weight: 400;
  box-shadow: 0 5px 25px 0 rgba(0,0,0,0.20);
}
.mobile-menu .dropdown-menu .dropdown-item {
  font-family: 'Quicksand', sans-serif; font-size: 12px; line-height: 20px; padding: 10px 20px; font-weight: 400;
  color: #004c97; background: transparent;
}
.mobile-menu .dropdown-menu .dropdown-item:hover { background: #e9ecef; color: #1e2125; }
.mobile-menu .dropdown-menu .dropdown-item:active { color: #fff; background-color: #d9c0ae; }
.mobile-menu .dropdown-menu .dropdown-item i { color: inherit; }
.mobile-menu dt .dropdown-menu a { line-height: normal !important; }

/* Hamburger toggle (ufficiale: <a> 55x55, sfondo menu.svg 19x14 a sinistra 20px) */
#toggle_fullscreen_menu {
  display: inline-block;
  vertical-align: top;
  width: 55px;
  height: 55px;
  margin-left: 8px;
  position: relative;
  cursor: pointer;
  background: url('/assets/menu.svg') no-repeat left 20px center / 19px 14px;
  border: 0;
  padding: 0;
  pointer-events: all;
  -webkit-tap-highlight-color: transparent;
}
#toggle_fullscreen_menu span { display: none; }

/* ===================================================
   PAGE STRUCTURE
   =================================================== */
.close-menu-container { position: relative; }

/*
  CSS Grid trick: slider + nav overlay on the same grid cell.
  Slider fills the cell, nav aligns to its bottom — no HTML changes.
*/
.main-header {
  display: block;
  position: relative;
  width: 100%;
}
.main-header > .top-support-menu { z-index: 11; }

.opt-box-one.fullscreen-slider,
#fullscreen_slider_one {
  width: 100%;
  height: 100vh;
  position: relative;
  overflow: hidden;
  background: #004c97;
}
/* altezza hero come l'ufficiale: 100vh desktop, 555px <=1023, 95vh su telefono verticale */
@media (max-width: 1023px) { .opt-box-one.fullscreen-slider, #fullscreen_slider_one { height: 555px; } }
@media (max-width: 428px) and (orientation: portrait) { .opt-box-one.fullscreen-slider, #fullscreen_slider_one { height: 95vh; } }
/* velo scuro 25% sulle foto dell'hero (ufficiale .hero-bg:before) */
.hero-bg::before { content: ''; position: absolute; inset: 0; z-index: 1; background: rgba(0,0,0,.25); pointer-events: none; }

.hero-bg {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
}
.hero-bg figure { margin: 0; width: 100%; height: 100%; }
.hero-bg img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
}

/* ===================================================
   FOOTER
   =================================================== */
/* Footer — come l'ufficiale (opt-box-one #3a3a3a, testi bianchi, filetti, menu 12px) */
.main-footer { background-color: #3a3a3a; color: #fff; border-top: 0; position: relative; }
.footer-brand { max-width: 100%; height: auto; }
.main-footer p { color: #fff; }
.main-footer p a, .main-footer a:not(.btn) { color: #fff; font-weight: 400; }
.main-footer hr { border: 0; border-top: 1px solid rgba(243,243,243,0.1); margin: 1rem 0; opacity: 0.25; }
.footer-brands { display: flex; align-items: center; justify-content: flex-end; gap: 15px; flex-wrap: wrap; }
.smaller { font-size: 0.8em; line-height: 1.8em; }
@media (max-width: 1024px) { .smaller { line-height: 1.95em; } }
.footer-menu { list-style: none; padding: 0; margin: 0 0 1rem; }
.footer-menu dt { display: inline-block; margin: 0 20px 0 0; }
.footer-menu dt a, .main-footer .footer-menu a { display: block; color: #fff !important; font-size: 12px; line-height: 16px; letter-spacing: 0.05em; font-weight: 400; text-decoration: none; }
.footer-menu a:hover, .main-footer .footer-menu a:hover { color: #fff; }
.kumbe-link { color: #6a6a6a; font-size: 0.75rem; }
.footer-socials { display: flex; gap: 10px; margin-top: 10px; }
.footer-socials a { opacity: 0.7; transition: opacity 0.2s; }
.footer-socials a:hover { opacity: 1; }
.footer-socials img { filter: invert(27%) sepia(60%) saturate(700%) hue-rotate(190deg) brightness(80%); }

/* ===================================================
   UTILITIES
   =================================================== */
.fa-margin-r { margin-right: 6px; }
.opt-box-one { width: 100%; }

/* ===================================================
   FULLSCREEN SLIDER — multi-image crossfade
   =================================================== */
.hero-bg {
  opacity: 0;
  transition: opacity 1.6s ease-in-out;
  z-index: 1;
  overflow: hidden;
}
.hero-bg.active {
  opacity: 1;
  z-index: 2;
}
.hero-bg img {
  will-change: transform;
}
/* Slide inattive: scala base + transizione smooth al cambio slide
   Quando .active viene rimossa, la transform torna a scale(1.03) in 1.6s
   (stesso timing dell'opacity crossfade) → elimina il "saltino" visivo */
html[data-hero-kenburns] .hero-bg:not(.active) img {
  transform: scale(1.03);
  transition: transform 1.6s ease-in-out;
}

/* ── Ken Burns (Fase 5C) ─────────────────────────────
   Attivato da main.js via html[data-hero-kenburns].
   La durata corrisponde all'intervallo slide (--gnz-slide-dur).
   L'animazione parte da scale(1) verso scale(var(--gnz-kb-scale))
   con una deriva diagonale casuale per varietà visiva.
   ──────────────────────────────────────────────────── */
@keyframes gnz-kenburns-a {
  from { transform: scale(1.03) translate(0%,   0%);   }
  to   { transform: scale(var(--gnz-kb-scale, 1.08)) translate(-2%, -1%); }
}
@keyframes gnz-kenburns-b {
  from { transform: scale(1.03) translate(0%,   0%);   }
  to   { transform: scale(var(--gnz-kb-scale, 1.08)) translate(2%,  1%); }
}
@keyframes gnz-kenburns-c {
  from { transform: scale(1.03) translate(0%,   0%);   }
  to   { transform: scale(var(--gnz-kb-scale, 1.08)) translate(-1%,  2%); }
}
html[data-hero-kenburns] .hero-bg.active img,
html[data-hero-kenburns] .hero-bg.active.kb-a img {
  animation: gnz-kenburns-a var(--gnz-slide-dur, 5000ms) ease-out forwards;
}
html[data-hero-kenburns] .hero-bg.active.kb-b img {
  animation-name: gnz-kenburns-b;
}
html[data-hero-kenburns] .hero-bg.active.kb-c img {
  animation-name: gnz-kenburns-c;
}
@media (prefers-reduced-motion: reduce) {
  html[data-hero-kenburns] .hero-bg.active img {
    animation: none;
  }
}

/* ── Loading screen (Fase 5J) ──────────────────────── */
#gnz-loading-screen {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: var(--color-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  transition: opacity 0.6s ease 0.1s, visibility 0.6s ease 0.1s;
}
#gnz-loading-screen.gnz-loaded {
  opacity: 0;
  visibility: hidden;
}
#gnz-loading-screen img {
  width: min(220px, 55vw);
  animation: gnz-loading-pulse 1.4s ease-in-out infinite;
}
@keyframes gnz-loading-pulse {
  0%, 100% { opacity: 1;    transform: scale(1);    }
  50%       { opacity: 0.6; transform: scale(0.96); }
}
@media (prefers-reduced-motion: reduce) {
  #gnz-loading-screen img { animation: none; }
}

/* ── Text reveal — titoli hero (Fase 5G) ──────────────
   JS split il testo in .gnz-word / .gnz-word-inner.
   Ogni .gnz-word-inner scatta su dall'overflow hidden del parent.
   ──────────────────────────────────────────────────── */
.gnz-title-reveal .gnz-word {
  display: inline-block;
  overflow: hidden;
  vertical-align: bottom;
  line-height: 1.1;
  padding-bottom: 0.05em;
}
.gnz-title-reveal .gnz-word-inner {
  display: inline-block;
  transform: translateY(110%);
  opacity: 0;
  animation: gnz-word-rise 0.55s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
@keyframes gnz-word-rise {
  to { transform: translateY(0); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .gnz-title-reveal .gnz-word-inner {
    animation: none;
    transform: none;
    opacity: 1;
  }
}

/* ── Title reveal — variante 'fade' (dissolvenza intera) */
.gnz-title-fade {
  opacity: 0;
  animation: gnz-title-fade-in 0.7s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
@keyframes gnz-title-fade-in {
  to { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .gnz-title-fade { animation: none; opacity: 1; }
}

/* ── Lazy image fade-in (7.5) ───────────────────────── */
/* .gnz-lazy è aggiunto da JS solo alle immagini NON ancora in cache.
   Immagini già complete (cache) e immagini eager non vengono mai toccate. */
img.gnz-lazy {
  opacity: 0;
}
img.gnz-loaded {
  opacity: 1;
  transition: opacity 0.5s ease;
}
@media (prefers-reduced-motion: reduce) {
  img.gnz-lazy  { opacity: 1; }
  img.gnz-loaded { transition: none; }
}

/* ── Smooth scroll CSS (Fase 5F base) ──────────────── */
html[data-smooth-scroll] {
  scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
  html[data-smooth-scroll] { scroll-behavior: auto; }
}

/* ===================================================
   FULLSCREEN SLIDER CONTENT — logo centrato nell'hero
   =================================================== */
.fullscreen-slider-content {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
.fullscreen-slider-content .container { pointer-events: all; }

.header-logo {
  max-width: clamp(200px, 45vw, 520px);
  width: 100%;
  filter: drop-shadow(0 2px 12px rgba(0,0,0,0.35));
}

/* Titolo pagina sovrimpresso sulla foto hero (pagine interne) */
.hero-page-title {
  font-family: var(--font-title);
  font-weight: 300;
  font-size: clamp(2rem, 5vw, 3.5rem);
  color: white;
  text-shadow: 0 2px 12px rgba(0,0,0,0.45);
  margin: 0 0 0.5rem;
  line-height: 1.15;
}
.hero-page-title::after {
  content: '';
  display: block;
  width: 55px;
  height: 3px;
  background: var(--color-primary);
  margin: 0.6rem auto 0;
}

/* ===================================================
   TOP SUPPORT MENU — nav sovrapposta all'hero con pallini (ufficiale: gradiente 150px, pallino a sinistra)
   =================================================== */
.top-support-menu {
  background-image: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.8) 100%);
  height: 150px;
  position: absolute;
  bottom: 0; left: 0;
  width: 100%;
  text-align: center;
  padding: 0 30px 30px;
  z-index: 0;
}
@media (max-width: 1200px) { .top-support-menu { height: 90px; } }
.top-support-menu dl { font-size: 0; line-height: 0; margin: 0; padding: 40px 0 0; }
@media (max-width: 1200px) { .top-support-menu dl { display: none; } }
.top-support-menu dl dt { display: inline-block; margin: 0 15px; vertical-align: bottom; }
.top-support-menu dl dt a {
  display: block;
  color: #fff;
  font-family: 'Quicksand', sans-serif;
  font-size: 11px; line-height: 14px; font-weight: 600;
  letter-spacing: 0.2em;
  padding: 5px;
  text-transform: uppercase;
  white-space: nowrap;
}
.top-support-menu dl dt a::before {
  content: "";
  display: inline-block;
  width: 8px; height: 8px;
  margin-right: 10px;
  border-radius: 100%;
  background-color: #004c97;
}
.top-support-menu dl dt a:hover { color: #73a2d0; }
.top-support-menu dl dt a:hover::before { background-color: #fff; }

/* Hero background fallback (no image) */
#fullscreen_slider_one { background: linear-gradient(135deg, #004c97 0%, #003a75 100%); }

/* ===================================================
   CONTENT SECTIONS — sezioni fullscreen con foto
   =================================================== */
.fullscreen-container {
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  background: #222;
}
.fullscreen-container .section-bg {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
}
.fullscreen-container .section-bg img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  filter: brightness(0.55);
}
.fullscreen-desc {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 60px 0;
  color: white;
  z-index: 5;
}
.fullscreen-desc h3 {
  font-family: var(--font-title);
  font-weight: 300;
  font-size: clamp(1.8rem, 4vw, 3rem);
  color: white;
  margin-bottom: 0.75rem;
}
.fullscreen-desc .lead {
  font-size: clamp(0.95rem, 1.5vw, 1.15rem);
  color: rgba(255,255,255,0.9);
  margin-bottom: 1.5rem;
  max-width: 560px;
}
.fullscreen-desc .side-line {
  border-left: 3px solid rgba(255,255,255,0.5);
  padding-left: 16px;
  margin-bottom: 1.5rem;
  display: block;
}

/* Buttons — come l'ufficiale (theme.css "BUTTONS") */
a.btn, button.btn, .fake-btn {
  display: inline-block;
  padding: 15px 30px 17px 30px;
  border: none;
  outline: 0;
  -webkit-appearance: none;
  border-radius: 2px;
  box-shadow: none;
  transition: 0.18s;
  font-family: 'Quicksand', sans-serif;
  white-space: normal;
  font-size: 14px;
  line-height: 1.5;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}
a.btn.btn-lg, button.btn.btn-lg { padding: 20px 40px; font-size: 15px; }
a.btn.btn-sm, button.btn.btn-sm { padding: 5px 12px; font-size: 12px; }
a.btn.btn-xs, button.btn.btn-xs { padding: 0 5px; font-size: 10px; }
a.btn.btn-default, button.btn.btn-default { background-color: #004c97; color: #fff; }
a.btn.btn-default:hover, button.btn.btn-default:hover, a.btn.btn-default:focus, button.btn.btn-default:focus, a.btn.btn-default:active, button.btn.btn-default:active { color: #fff; background-color: #0066ca; }
a.btn.btn-second, button.btn.btn-second { background-color: transparent; box-shadow: inset 0 0 0 2px #fff; color: #fff; }
a.btn.btn-second:hover, button.btn.btn-second:hover, a.btn.btn-second:focus, button.btn.btn-second:focus, a.btn.btn-second:active, button.btn.btn-second:active { color: #fff; background-color: #0066ca; }
a.btn.btn-third, button.btn.btn-third { background-color: #fff; box-shadow: inset 0 0 0 2px #004c97; color: #004c97; }
a.btn.btn-third.no-border, button.btn.btn-third.no-border { box-shadow: none !important; }
a.btn.btn-third:hover, button.btn.btn-third:hover, a.btn.btn-third:focus, button.btn.btn-third:focus, a.btn.btn-third:active, button.btn.btn-third:active { color: #fff; background-color: #0066ca; box-shadow: inset 0 0 0 2px #0066ca; }
a.btn.btn-default:focus, a.btn.btn-second:focus, a.btn.btn-third.no-border:focus { box-shadow: none; }
.btn-block { display: block; width: 100%; }
.btn-container .btn { display: inline-block; min-width: 250px; margin-right: 10px; margin-bottom: 10px; }
/* pagina extra il-ristorante: link senza .btn nel contenitore pulsanti */
.btn-container > a:not(.btn) { display: inline-block; padding: 15px 30px 17px; border-radius: 2px; box-shadow: inset 0 0 0 2px #004c97; font-weight: 500; letter-spacing: .05em; font-size: 14px; }

/* Intro section */
/* Spaziature utility (ufficiale: >1600 160/80, 768-1600 130/60, <=767 60/40) */
.t-padding-xs { padding-top: 10px; } .t-padding-s { padding-top: 15px; } .t-padding-m { padding-top: 30px; } .t-padding-l { padding-top: 50px; }
.t-padding-xl { padding-top: 80px; } .t-padding-xxl { padding-top: 160px; }
.b-padding-xs { padding-bottom: 10px; } .b-padding-s { padding-bottom: 15px; } .b-padding-m { padding-bottom: 30px; } .b-padding-l { padding-bottom: 50px; }
.b-padding-xl { padding-bottom: 80px; } .b-padding-xxl { padding-bottom: 160px; }
@media (max-width: 1600px) {
  .t-padding-xl { padding-top: 60px; } .t-padding-xxl { padding-top: 130px; }
  .b-padding-xl { padding-bottom: 60px; } .b-padding-xxl { padding-bottom: 130px; }
}
@media (max-width: 767px) {
  .t-padding-xs { padding-top: 5px; } .t-padding-m { padding-top: 20px; } .t-padding-l { padding-top: 30px; }
  .t-padding-xl { padding-top: 40px; } .t-padding-xxl { padding-top: 60px; }
  .b-padding-xs { padding-bottom: 5px; } .b-padding-m { padding-bottom: 20px; } .b-padding-l { padding-bottom: 30px; }
  .b-padding-xl { padding-bottom: 40px; } .b-padding-xxl { padding-bottom: 60px; }
}
.standard-box { background-color: #fff; }
.opt-box-two { background-color: #f2f6fa; }
.opt-box-one { background-color: #3a3a3a; }
.noverflow { overflow: hidden; }
.z-index-one { position: relative; z-index: 1; }

.micro-heading { font-weight: 600; color: #004c97; text-transform: uppercase; letter-spacing: 0.35em; font-size: 11px; margin-bottom: 30px; line-height: 14px; display: block; }
/* Esperienze section */
.set-img { position: relative; overflow: hidden; border-radius: 2px; }
.set-shadow { box-shadow: 0 8px 30px rgba(0,0,0,0.15); }
.set-img img { width: 100%; height: 100%; object-fit: cover; }
.verticalize { display: flex; flex-direction: column; justify-content: center; height: 100%; padding: 2rem 1rem; }
.plan-one img { max-height: 420px; object-fit: cover; }
.btn.textlink { color: var(--color-primary); border: none; padding: 0; font-weight: 600; text-decoration: underline; }

/* Dividers */
.invert-item { margin-bottom: 2rem; }

/* ===================================================
   SERVIZI GRID
   =================================================== */
.service-item {
  padding: 1.5rem 1rem;
  border-radius: 6px;
  background: white;
  height: 100%;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);
  transition: box-shadow 0.25s, transform 0.25s;
}
.service-item:hover {
  box-shadow: 0 6px 24px rgba(0,76,151,0.12);
  transform: translateY(-3px);
}
.service-icon,
.green-action-icon {
  font-size: 1.8rem;
  color: var(--color-primary);
  margin-bottom: 0.75rem;
  display: block;
}

/* Commitment list (philosophy-green — impegni strutturali hotel) */
.commitment-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem 1rem;
}
.commitment-list li {
  font-size: 0.88rem;
  color: var(--color-text);
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  line-height: 1.4;
}
.commitment-icon {
  color: #2d6a4f;
  font-size: 0.85rem;
  margin-top: 2px;
  flex-shrink: 0;
}
@media (max-width: 575px) {
  .commitment-list { grid-template-columns: 1fr; }
}

/* Green action card (philosophy-green) */
.green-action-item {
  background: white;
  border-radius: 6px;
  padding: 24px 16px 20px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.06);
  height: 100%;
  transition: box-shadow 0.25s, transform 0.25s;
}
.green-action-item:hover {
  box-shadow: 0 6px 20px rgba(0,100,0,0.12);
  transform: translateY(-3px);
}
.green-action-item h5 {
  font-family: var(--font-title);
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--color-primary);
  margin-bottom: 0.5rem;
}
.green-action-item p {
  font-size: 0.82rem;
  color: #666;
  line-height: 1.5;
  margin: 0;
}
.service-item h5 {
  font-family: var(--font-title);
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--color-primary);
  margin-bottom: 0.5rem;
}
.service-item p {
  font-size: 0.82rem;
  color: #666;
  line-height: 1.5;
  margin: 0;
}

/* ===================================================
   FADE-IN ON SCROLL — IntersectionObserver
   =================================================== */
.fade-in-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.fade-in-up.visible {
  opacity: 1;
  transform: translateY(0);
}
/* Hero logo fade in */
.header-logo {
  animation: heroFadeIn 1.2s ease 0.3s both;
}
@keyframes heroFadeIn {
  from { opacity: 0; transform: translateY(-16px); }
  to   { opacity: 1; transform: translateY(0); }
}
/* Top support menu items sequential */
.top-support-menu dt {
  animation: menuItemFade 0.5s ease both;
}
.top-support-menu dt:nth-child(1) { animation-delay: 0.5s; }
.top-support-menu dt:nth-child(2) { animation-delay: 0.65s; }
.top-support-menu dt:nth-child(3) { animation-delay: 0.8s; }
.top-support-menu dt:nth-child(4) { animation-delay: 0.95s; }
.top-support-menu dt:nth-child(5) { animation-delay: 1.1s; }
.top-support-menu dt:nth-child(6) { animation-delay: 1.25s; }
@keyframes menuItemFade {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Utility margin (ufficiale: >1600 xl 80 xxl 160; 768-1600 xl 60 xxl 130; <=767 m 20 l 30 xl 40 xxl 60) */
.t-margin-xs { margin-top: 10px; } .t-margin-s { margin-top: 15px; } .t-margin-m { margin-top: 30px; } .t-margin-l { margin-top: 50px; } .t-margin-xl { margin-top: 80px; } .t-margin-xxl { margin-top: 160px; }
.b-margin-xs { margin-bottom: 10px; } .b-margin-s { margin-bottom: 15px; } .b-margin-m { margin-bottom: 30px; } .b-margin-l { margin-bottom: 50px; } .b-margin-xl { margin-bottom: 80px; } .b-margin-xxl { margin-bottom: 160px; }
@media (max-width: 1600px) {
  .t-margin-xl { margin-top: 60px; } .t-margin-xxl { margin-top: 130px; }
  .b-margin-xl { margin-bottom: 60px; } .b-margin-xxl { margin-bottom: 130px; }
}
@media (max-width: 767px) {
  .t-margin-xs { margin-top: 5px; } .t-margin-m { margin-top: 20px; } .t-margin-l { margin-top: 30px; } .t-margin-xl { margin-top: 40px; } .t-margin-xxl { margin-top: 60px; }
  .b-margin-xs { margin-bottom: 5px; } .b-margin-m { margin-bottom: 20px; } .b-margin-l { margin-bottom: 30px; } .b-margin-xl { margin-bottom: 40px; } .b-margin-xxl { margin-bottom: 60px; }
}

/* ===================================================
   TIPOGRAFIA — come l'ufficiale (theme.css)
   =================================================== */
.main-content-header { margin-bottom: 40px; }
.main-content-header h1 { position: relative; font-weight: 400; }
.main-content-header h1 b { font-weight: 400; }
@media (max-width: 767px) { .main-content-header h1 { font-size: 36px; } }
.main-content-header p { font-weight: 500; }
h1.main-content-header { font-weight: 400; }

/* Testo degli articoli (.mce-content-body) */
.mce-content-body .lead { margin-bottom: 30px; }
.mce-content-body h1, .mce-content-body h2, .mce-content-body h3, .mce-content-body h4, .mce-content-body h5, .mce-content-body h6 { font-family: 'Quicksand', serif; margin: 5px 0 10px; padding: 0; }
.mce-content-body img { max-width: 100%; height: auto; }
.mce-content-body a:not(.btn, .dropdown-item) { color: #004c97; text-decoration: none; font-weight: 500; }
.mce-content-body a:not(.btn, .dropdown-item):hover { color: #0073e4; text-decoration: none; }
.mce-content-body p, .mce-content-body ul, .mce-content-body ol { margin-bottom: 20px; }
.mce-content-body a.btn { text-decoration: none !important; }
.mce-content-body ul, .mce-content-body ol { list-style-position: outside; padding: 0; margin-left: 0; }
.mce-content-body ul li, .mce-content-body ol li {
  list-style-type: none; padding: 7px 5px 7px 28px; line-height: 20px;
  background: url('/assets/icon-fogliolina.svg') no-repeat left top 11px / 17px 17px;
}
blockquote, .quote { border-left: 1px solid #004c97; padding-left: 30px; margin: 30px 0; display: block; color: #c9a58b; font-size: 20px; font-weight: 400; }
blockquote h1, .quote h1, blockquote h2, .quote h2, blockquote h3, .quote h3, blockquote h4, .quote h4, blockquote h5, .quote h5, blockquote h6, .quote h6, blockquote p, .quote p, blockquote li, .quote li, blockquote dt, .quote dt { color: #c1987a !important; }
.well { border-radius: 3px; padding: 30px; background-color: #f2f6fa; margin: 30px 0; display: block; color: #00254b !important; font-weight: 400; }
.well h1, .well h2, .well h3, .well h4, .well h5, .well h6, .well p, .well li, .well dt { color: #00254b !important; }
.liner { position: relative; height: 1px; display: block; width: 100%; background-color: #004c97; transform: translateY(15px); }
@media (max-width: 993px) { .liner { display: none; } }
.micro-heading i { transform: translateY(-1px); }

/* ===================================================
   COOKIE CONSENT BANNER
   =================================================== */
#cookie-consent-banner {
  display: none;
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 99999;
  background: rgba(10,20,40,0.96);
  color: rgba(255,255,255,0.88);
  padding: 18px 30px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
  backdrop-filter: blur(6px);
}
#cookie-consent-banner p {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.5;
  flex: 1;
  min-width: 200px;
}
#cookie-consent-banner a {
  color: rgba(180,210,255,0.9);
  text-decoration: underline;
}
.cookie-btn-group {
  display: flex;
  gap: 10px;
  flex-shrink: 0;
  flex-wrap: wrap;
}
.cookie-btn-group button {
  font-family: var(--font-body);
  font-size: 0.8rem;
  padding: 7px 18px;
  border-radius: 3px;
  cursor: pointer;
  border: 1px solid rgba(255,255,255,0.5);
  transition: background 0.2s;
}
/* Entrambi i pulsanti devono essere visivamente equivalenti (GDPR/Garante) */
#cookie-accept-all {
  background: var(--color-primary);
  color: white;
  border-color: var(--color-primary);
}
#cookie-accept-all:hover { background: var(--color-primary-dark); }
#cookie-accept-essential {
  background: transparent;
  color: white;
  border-color: rgba(255,255,255,0.8);
  border-width: 1px;
}
#cookie-accept-essential:hover { background: rgba(255,255,255,0.15); }

@media (max-width: 768px) {
  #cookie-consent-banner { padding: 16px 18px; }
  .cookie-btn-group { width: 100%; }
  .cookie-btn-group button { flex: 1; }
}

@media (max-width: 768px) {
  .footer-brands { justify-content: flex-start; }
  .header-logo { max-width: 75vw; }
  .fullscreen-container { height: 80vh; }
  .fullscreen-desc { padding: 30px 0; }
  .liner { display: none; }
}

/* ===================================================
   ROOM BLOCKS — le-camere page
   =================================================== */
.room-title {
  font-family: var(--font-title);
  font-weight: 300;
  font-size: clamp(1.5rem, 3vw, 2.2rem);
  color: var(--color-primary);
  margin-bottom: 0.3rem;
}
.room-meta {
  font-family: var(--font-body);
  font-size: 0.88rem;
  color: #777;
  letter-spacing: 0.5px;
  margin-bottom: 1.5rem;
  border-left: 3px solid var(--color-primary);
  padding-left: 10px;
}
.room-img-main {
  width: 100%;
  height: 320px;
  object-fit: cover;
  border-radius: 4px;
}
.room-img-side {
  width: 100%;
  height: 154px;
  object-fit: cover;
  border-radius: 4px;
}
@media (max-width: 768px) {
  .room-img-main { height: 220px; }
  .room-img-side { height: 105px; }
}

/* ===================================================
   HOTEL PAGE — image gallery grid
   =================================================== */
.hotel-gallery-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 2rem;
}
.hotel-gallery-grid img {
  width: 100%; height: 200px;
  object-fit: cover;
  border-radius: 4px;
}
.hotel-gallery-grid img.tall {
  height: 100%;
  grid-row: span 2;
}
.hotel-gallery-grid.three-col {
  grid-template-columns: 2fr 1fr 1fr;
}
@media (max-width: 768px) {
  .hotel-gallery-grid { grid-template-columns: 1fr; }
  .hotel-gallery-grid img { height: 200px; }
  .hotel-gallery-grid.three-col { grid-template-columns: 1fr; }
}

/* ===================================================
   FOOD GRID — colazione / ristorante
   =================================================== */
.food-photo-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 2rem;
}
.food-photo-row img {
  width: 100%; height: 180px;
  object-fit: cover;
  border-radius: 4px;
}
@media (max-width: 768px) {
  .food-photo-row { grid-template-columns: repeat(2, 1fr); }
  .food-photo-row img { height: 130px; }
}

/* ===================================================
   OFFER CARDS — offerte page
   =================================================== */
.offer-card {
  background: white;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 2px 16px rgba(0,0,0,0.08);
  height: 100%;
  display: flex;
  flex-direction: column;
}
.offer-card-img {
  position: relative;
  overflow: hidden;
}
.offer-card-img img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.offer-card:hover .offer-card-img img { transform: scale(1.04); }
.offer-badge {
  position: absolute;
  top: 14px; right: 14px;
  background: var(--color-primary);
  color: white;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 3px;
}
.offer-badge-alt { background: var(--color-primary-dark); }
.offer-card-body {
  padding: 22px 24px 24px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.offer-card-title {
  font-family: var(--font-title);
  font-weight: 300;
  font-size: 1.5rem;
  color: var(--color-primary);
  margin: 0.3rem 0 0.8rem;
}
.offer-include {
  list-style: none;
  padding: 0; margin: 0.8rem 0;
  font-size: 0.87rem;
  color: #555;
}
.offer-include li { padding: 3px 0; }
.offer-include li i { color: var(--color-primary); margin-right: 6px; }
.offer-card-body .btn-container { margin-top: auto; padding-top: 1rem; }

/* Riga sotto h2 nelle pagine interne */
article.mce-content-body h2.riga-sotto,
h2.riga-sotto {
  position: relative;
  padding-bottom: 0.6rem;
  margin-bottom: 1.5rem;
}
h2.riga-sotto::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  width: 50px; height: 3px;
  background: var(--color-primary);
}

/* ===================================================
   BOOKING LINE — widget 5stelle inline (dopo hero)
   =================================================== */
.booking-line-wrap {
  position: relative;
  z-index: 20;  /* sopra .top-support-menu (z-index:11) che è nel grid hero */
  height: 0;
  overflow: hidden;
  margin-bottom: 0;
  visibility: hidden;   /* nascosto finché il widget non si carica */
  opacity: 0;
  transition: opacity 0.4s ease;
}
.booking-line-wrap.widget-ready {
  height: auto;
  overflow: visible;
  margin-bottom: -70px;
  visibility: visible;
  opacity: 1;
}
.booking-line {
  background: #fff;
  border-radius: 5px;
  box-shadow: 0 4px 24px rgba(0,0,0,0.13);
  padding: 16px 20px;
  transform: translateY(-70px);
  margin: 0 auto;
  max-width: 960px;
}
/* nasconde il booking-line su schermi piccoli (usa mobile float) */
@media (max-width: 767px) {
  .booking-line-wrap { display: none; }
}

/* ===================================================
   MOBILE FLOAT BOOKING BUTTON
   =================================================== */
.mobile-float-booking {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 500;
  background: var(--color-primary);
  text-align: center;
  padding: 12px 20px;
}
.mobile-float-booking a {
  color: #fff;
  font-family: var(--font-title);
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none;
}
@media (max-width: 767px) {
  .mobile-float-booking { display: block; }
}

/* ===================================================
   SCROLL PROGRESS BAR (Fase 5 step B)
   CSS-only via animation-timeline: scroll()
   Controllata da main.js via data-attr su <html>
   =================================================== */
@supports (animation-timeline: scroll()) {
  html[data-scroll-progress] #gnz-scroll-progress {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    z-index: 9999;
    background: var(--gnz-progress-color, var(--color-primary));
    transform-origin: left center;
    transform: scaleX(0);
    animation: gnz-scroll-progress-grow linear;
    animation-timeline: scroll(root block);
    pointer-events: none;
  }
}
/* Fallback JS-driven per Firefox <124 */
html[data-scroll-progress] #gnz-scroll-progress:not([style]) {
  display: none;
}
@keyframes gnz-scroll-progress-grow {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}

/* ===================================================
   SCROLL REVEAL (Fase 5 step D — classi preparatorie)
   Gli elementi con [data-reveal] partono invisibili.
   main.js aggiunge .gnz-revealed quando entrano in viewport.
   =================================================== */
[data-reveal] {
  opacity: 0;
  will-change: opacity, transform;
}
[data-reveal].gnz-revealed {
  animation-fill-mode: both;
}
/* fade-up */
[data-reveal="fade-up"] {
  transform: translateY(32px);
  transition: opacity var(--gnz-reveal-dur, 600ms) ease,
              transform var(--gnz-reveal-dur, 600ms) ease;
}
[data-reveal="fade-up"].gnz-revealed {
  opacity: 1;
  transform: translateY(0);
}
/* fade-in */
[data-reveal="fade-in"] {
  transition: opacity var(--gnz-reveal-dur, 600ms) ease;
}
[data-reveal="fade-in"].gnz-revealed {
  opacity: 1;
}
/* clip-left */
[data-reveal="clip-left"] {
  transform: translateX(-40px);
  transition: opacity var(--gnz-reveal-dur, 600ms) ease,
              transform var(--gnz-reveal-dur, 600ms) ease;
}
[data-reveal="clip-left"].gnz-revealed {
  opacity: 1;
  transform: translateX(0);
}
/* clip-bottom */
[data-reveal="clip-bottom"] {
  clip-path: inset(0 0 100% 0);
  transition: clip-path var(--gnz-reveal-dur, 600ms) cubic-bezier(0.4, 0, 0.2, 1);
  opacity: 1; /* clip-path gestisce la visibilità */
}
[data-reveal="clip-bottom"].gnz-revealed {
  clip-path: inset(0 0 0% 0);
}
/* Rispetta prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  [data-reveal] {
    opacity: 1 !important;
    transform: none !important;
    clip-path: none !important;
    transition: none !important;
  }
}

/* ===================================================
   MICRO-INTERAZIONI HOVER (Fase 5 step E)
   Attivate da main.js via classi su <html>
   =================================================== */
html[data-hover-lift] .offer-card,
html[data-hover-lift] .room-card,
html[data-hover-lift] .card-experience,
html[data-hover-lift] .blog-card {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
html[data-hover-lift] .offer-card:hover,
html[data-hover-lift] .room-card:hover,
html[data-hover-lift] .card-experience:hover,
html[data-hover-lift] .blog-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(0,0,0,0.12);
}
html[data-hover-zoom] .offer-card img,
html[data-hover-zoom] .room-card img,
html[data-hover-zoom] .card-experience img,
html[data-hover-zoom] .blog-card img,
html[data-hover-zoom] .hero-bg img {
  transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}
html[data-hover-zoom] .offer-card:hover img,
html[data-hover-zoom] .room-card:hover img,
html[data-hover-zoom] .card-experience:hover img,
html[data-hover-zoom] .blog-card:hover img {
  transform: scale(1.04);
}
/* Button ripple — JS inietta <span class="gnz-ripple"> nel bottone */
.btn { position: relative; overflow: hidden; }
.gnz-ripple {
  position: absolute;
  border-radius: 50%;
  background: rgba(255,255,255,0.35);
  transform: scale(0);
  animation: gnz-ripple-anim 0.6s linear;
  pointer-events: none;
}
@keyframes gnz-ripple-anim {
  to { transform: scale(4); opacity: 0; }
}

/* ===================================================
   CURSORE CUSTOM (Fase 5K)
   Attivato da main.js se cfg.custom_cursor = true.
   Auto-disabilitato su touch + prefers-reduced-motion.
   =================================================== */
#gnz-cursor-dot,
#gnz-cursor-ring {
  display: none;
  position: fixed;
  pointer-events: none;
  z-index: 99998;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  will-change: left, top;
}
html[data-custom-cursor] {
  cursor: none;
}
html[data-custom-cursor] a,
html[data-custom-cursor] button,
html[data-custom-cursor] [role="button"] {
  cursor: none;
}
html[data-custom-cursor] #gnz-cursor-dot {
  display: block;
  width: var(--gnz-cursor-size, 8px);
  height: var(--gnz-cursor-size, 8px);
  background: var(--gnz-cursor-color, var(--color-primary));
  transition: transform 0.1s ease, background 0.2s ease;
}
html[data-custom-cursor] #gnz-cursor-ring {
  display: block;
  width: calc(var(--gnz-cursor-size, 8px) * 4);
  height: calc(var(--gnz-cursor-size, 8px) * 4);
  border: 1.5px solid var(--gnz-cursor-color, var(--color-primary));
  opacity: 0.5;
  transition: left 0.12s ease, top 0.12s ease, transform 0.2s ease, opacity 0.2s ease;
}
html[data-custom-cursor] a:hover ~ #gnz-cursor-ring,
html[data-custom-cursor] button:hover ~ #gnz-cursor-ring {
  transform: translate(-50%, -50%) scale(1.5);
  opacity: 0.8;
}

/* ── Pagine generiche importate da Kumbe (src/pages/[lang]/[slug].astro) — [template] ──
   Metriche misurate sull'ufficiale (css_theme.css): Quicksand, #6a6a6a, h1 48px/400 #3a3a3a. */
.kg-page { font-family: 'Quicksand', sans-serif; font-weight: 400; font-size: 16px; line-height: 1.9em; color: #6a6a6a; overflow-x: clip; }
.kg-page h1, .kg-page h2, .kg-page h3, .kg-page h4 { font-family: 'Quicksand', sans-serif; line-height: 1.1em; }
@media (max-width: 1024px) { .kg-page { font-size: 14.4px; line-height: 1.95em; } }

/* Spaziature sezioni (l'globale .standard-box{padding:0} annullava .t-padding-xxl) */
.kg-page .standard-box.t-padding-xxl, .kg-page .opt-box-two.t-padding-xxl { padding-top: 160px; }
.kg-page .standard-box.b-padding-xxl, .kg-page .opt-box-two.b-padding-xxl { padding-bottom: 160px; }
@media (min-width: 768px) and (max-width: 1600px) {
  .kg-page .standard-box.t-padding-xxl, .kg-page .opt-box-two.t-padding-xxl { padding-top: 130px; }
  .kg-page .standard-box.b-padding-xxl, .kg-page .opt-box-two.b-padding-xxl { padding-bottom: 130px; }
}
@media (max-width: 767px) {
  .kg-page .standard-box.t-padding-xxl, .kg-page .opt-box-two.t-padding-xxl { padding-top: 60px; }
  .kg-page .standard-box.b-padding-xxl, .kg-page .opt-box-two.b-padding-xxl { padding-bottom: 60px; }
}
.kg-page .opt-box-two { background-color: #f2f6fa; }
.kg-page .container-wide { max-width: 1920px; margin: 0 auto; padding: 0 15px; }

/* Intestazione: micro-heading, h1, sottotitolo */
.kg-page .micro-heading { display: block; font-family: 'Quicksand', sans-serif; font-size: 11px; line-height: 14px; font-weight: 600; letter-spacing: .35em; text-transform: uppercase; color: #004c97; margin: 0 0 30px; }
.kg-page .main-content-header { margin-bottom: 40px; }
.kg-page .main-content-header h1 { position: relative; font-family: 'Quicksand', sans-serif; font-size: 48px; font-weight: 400; line-height: 1.1; color: #3a3a3a; margin: 0 0 8px; }
.kg-page .main-content-header h1 b { font-weight: 400; }
.kg-page .main-content-header h1.linea { margin-bottom: 8px; }
.kg-page .main-content-header h1.linea::after { content: ''; position: absolute; left: 0; bottom: -12px; display: block; width: 80px; height: 1.5px; background: #004c97; }
.kg-page .main-content-header p.dist { display: block; font-size: 24px; line-height: 100%; font-weight: 500; color: #004c97; padding-top: 20px; margin: 0 0 16px; }
@media (max-width: 1600px) { .kg-page .main-content-header h1 { font-size: 48px; } }
@media (max-width: 767px) { .kg-page .main-content-header h1 { font-size: 36px; } }

/* Testo dell'articolo */
.kg-page article.mce-content-body { color: #6a6a6a; }
.kg-page article.mce-content-body p { font-size: 1em; line-height: inherit; margin: 0 0 20px; }
.kg-page .mce-content-body ul, .kg-page .mce-content-body ol { margin: 0 0 20px; }
.kg-page article.mce-content-body strong { font-weight: 500; color: inherit; }
.kg-page article.mce-content-body h3 { border: 0; padding: 0; margin: 5px 0 10px; font-size: 1.5em; font-weight: 400; color: #3a3a3a; }
.kg-page .mce-content-body p b, .kg-page .mce-content-body li b, .kg-page .mce-content-body a b { font-weight: 500; }
.kg-page .mce-content-body a { color: #004c97; text-decoration: none; font-weight: 500; }
.kg-page .mce-content-body a:hover { color: #0073e4; }
.kg-page .mce-content-body ul, .kg-page .mce-content-body ol { list-style: none; padding: 0; margin-left: 0; }
.kg-page .mce-content-body ul li, .kg-page .mce-content-body ol li {
  list-style: none; padding: 7px 5px 7px 28px; line-height: 20px;
  background: url('/assets/icon-fogliolina.svg') no-repeat left top 11px / 17px 17px;
}
.kg-page article.mce-content-body p.lead { font-size: 1.15em; line-height: 1.8em; color: #6a6a6a; }
.kg-page .mce-content-body .quote { display: block; border-left: 1px solid #004c97; padding-left: 30px; margin: 30px 0 20px; font-size: 20px; font-weight: 400; color: #c9a58b; }
.kg-page .mce-content-body p.quote { color: #6a6a6a; }
.kg-page .mce-content-body .quote b { font-weight: 500; }

/* Bottoni: outline (btn-third) e pieno (btn-default), 250x53 come l'ufficiale */
.kg-page .btn-container { display: flex; flex-wrap: wrap; gap: 0 10px; margin-top: 0; }
.kg-page .btn { display: inline-block; min-width: 250px; margin: 0 0 10px; padding: 15px 30px 17px; border: 0; border-radius: 2px; font-family: 'Quicksand', sans-serif; font-size: 14px; font-weight: 500; letter-spacing: .05em; line-height: 21px; text-align: center; text-decoration: none; cursor: pointer; transition: .18s; white-space: normal; }
.kg-page .btn.btn-default { background: #004c97; color: #fff; }
.kg-page .btn.btn-third { background: #fff; color: #004c97; box-shadow: inset 0 0 0 2px #004c97; }
@media (hover: hover) and (pointer: fine) {
  .kg-page .btn.btn-default:hover { background: #0066ca; color: #fff; }
  .kg-page .btn.btn-third:hover { background: #0066ca; color: #fff; box-shadow: inset 0 0 0 2px #0066ca; }
}
.kg-page .btn:focus-visible, .kg-page a:focus-visible, .kg-page button:focus-visible { outline: 2px solid #0066ca; outline-offset: 2px; }

/* Colonna servizi delle camere */
.kg-page .side-listings h4 { color: #004c97; font-weight: 400; font-size: 26px; line-height: 115%; margin: 5px 0 20px; }

/* Mosaico 2x2 sfalsato (dl.cluster-grid.items-4) */
.kg-page dl.cluster-grid { position: relative; display: grid; margin: 0; padding: 0; grid-column-gap: 20px; grid-row-gap: 20px; }
.kg-page dl.cluster-grid dt { position: relative; margin: 0; border-radius: 5px; overflow: hidden; }
.kg-page dl.cluster-grid dt::before { content: ''; display: block; padding-top: 50%; }
.kg-page dl.cluster-grid dt a { position: absolute; inset: 0; display: block; margin: 0; overflow: hidden; background: #f3f3f3; }
.kg-page dl.cluster-grid dt a img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; transition: transform .2s ease-in-out; }
.kg-page dl.cluster-grid.items-4 { grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(2, 1fr); }
.kg-page dl.cluster-grid.items-4 dt:nth-child(1) { grid-area: 1 / 1 / 4 / 2; }
.kg-page dl.cluster-grid.items-4 dt:nth-child(2) { grid-area: 4 / 1 / 5 / 2; }
.kg-page dl.cluster-grid.items-4 dt:nth-child(3) { grid-area: 1 / 2 / 2 / 3; }
.kg-page dl.cluster-grid.items-4 dt:nth-child(4) { grid-area: 2 / 2 / 5 / 3; }
@media (hover: hover) and (pointer: fine) { .kg-page dl.cluster-grid a:hover img { transform: scale(1.05); } }
@media (max-width: 575px) { .kg-page dl.cluster-grid { grid-column-gap: 10px; grid-row-gap: 10px; } }

/* "Altre tipologie": slider 1 scheda per volta */
.kg-page .tipo-header { font-size: 3em; font-weight: 200; color: #3a3a3a; border-bottom: 1px solid rgba(0, 0, 0, .1); padding-bottom: 20px; margin: 0 0 40px; line-height: 1.1; }
.kg-page .tipi-section { position: relative; }
.kg-page .room-slider { position: relative; }
.kg-page .room-slider .one-room[hidden] { display: none; }
.kg-page .one-room .room-data { padding: 0; }
.kg-page .one-room .room-data h3 { font-size: 2em; font-weight: 400; color: #3a3a3a; margin: 0 0 30px; }
.kg-page .one-room .room-data h3 a { color: inherit; }
.kg-page .one-room .room-data h3 b { font-weight: 500; }
.kg-page .one-room .room-data a:hover h3 { color: #004c97; }
.kg-page a.textlink { display: inline-block; font-weight: 500; color: #004c97; }
.kg-page a.textlink::before { content: ''; display: inline-block; position: relative; width: 30px; height: 1px; margin-right: 10px; background: #004c97; transform: translateY(-5px); transition: width .15s ease-out; }
.kg-page a.textlink:hover::before { width: 35px; }
.kg-page .one-room .room-data .btn { display: block; max-width: 240px; min-width: 0; width: 100%; margin-bottom: 10px; }
.kg-page .one-room .room-data .mce-content-body h4 { font-size: 20px; color: #004c97; font-weight: 400; }
.kg-page .room-dots { list-style: none; text-align: center; margin: 0; padding: 0; }
.kg-page .room-dots li { display: inline-block; margin: 0 5px; }
.kg-page .room-dots button { background: #c1e0fe; height: 8px; width: 8px; padding: 0; font-size: 0; border-radius: 100%; margin: 0; border: none; cursor: pointer; }
.kg-page .room-dots button[aria-current="true"] { background: #004c97; }
.kg-page .room-dots button:focus-visible { outline-offset: 4px; }
.kg-page .room-prev, .kg-page .room-next {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 70px; height: 70px; padding: 0; border: 0; cursor: pointer;
  background: #004c97 no-repeat center center / 8px 22px;
}
.kg-page .room-prev { left: 0; border-radius: 0 4px 4px 0; background-image: url('/assets/ar-left.svg'); }
.kg-page .room-next { right: 0; border-radius: 4px 0 0 4px; background-image: url('/assets/ar-right.svg'); }
.kg-page .room-prev:hover, .kg-page .room-next:hover { background-color: #0066ca; }
@media (max-width: 767px) { .kg-page .room-prev, .kg-page .room-next { width: 25px; height: 70px; } }
@media (max-width: 991px) { .kg-page .one-room .room-data .row.mb-3 { margin-bottom: 1rem; } }

/* Schede laterali "Altre esperienze" (slider a scheda singola con frecce sull'immagine) */
.kg-page .sidecol h4 { font-size: 20px; font-weight: 500; line-height: 110%; color: #004c97; margin: 0 0 20px; }
.kg-page .side-slider { position: relative; }
.kg-page .sidecard[hidden] { display: none; }
.kg-page .sidecard a { display: block; text-decoration: none; color: inherit; }
.kg-page .sidecard .set-img { position: relative; overflow: hidden; border-radius: 2px; box-shadow: none; }
.kg-page .sidecard .set-img::before { content: ''; display: block; padding-top: 100%; }
.kg-page .sidecard figure { position: absolute; inset: 0; margin: 0; }
.kg-page .sidecard img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .2s ease-in-out; }
@media (hover: hover) and (pointer: fine) { .kg-page .sidecard a:hover img { transform: scale(1.05); } }
.kg-page .sidecard h3 { padding-top: 25px; font-size: 30px; line-height: 110%; font-weight: 500; color: #3a3a3a; margin: 0 0 20px; }
.kg-page .sidecard span { display: block; font-weight: 500; color: #004c97; }
.kg-page .sidecard p { margin: 0 0 20px; color: #6a6a6a; }
.kg-page .side-arrows { position: absolute; top: 15px; right: 40px; z-index: 2; display: flex; gap: 30px; }
.kg-page .side-arrows button { width: 15px; height: 27px; padding: 0; border: 0; cursor: pointer; background: transparent no-repeat center / 15px 27px; filter: drop-shadow(0 0 3px rgba(0, 0, 0, .45)); }
.kg-page .side-arrows .side-prev { background-image: url('/assets/ar-left.svg'); }
.kg-page .side-arrows .side-next { background-image: url('/assets/ar-right.svg'); }
.kg-page .col-border { border-left: 1px solid rgba(0, 0, 0, .1); }
@media (max-width: 991px) { .kg-page .col-border { border-left: 0; margin-top: 2rem; } }

/* Blocco Partner (pagina Pescare in Trentino) */
.kg-page .partners { border: 2px solid #004c97; border-radius: 10px; padding: 30px; margin: 40px 0; font-size: .8em; line-height: 1.8; }
.kg-page .partners h4 { font-size: 21.76px; font-weight: 400; color: #3a3a3a; margin: 0 0 8px; }
.kg-page .partners h2 { font-size: 30.72px; font-weight: 200; color: #3a3a3a; margin: 5px 0 10px; line-height: 1.1; }
.kg-page .partners p { margin: 0 0 16px; }
.kg-page .partners img { max-width: 100%; height: auto; }
.kg-page .partners a { color: #004c97; font-weight: 500; }

/* Galleria dentro l'articolo (slider con didascalia, toggle griglia) */
.kg-page .gallery-wrapper { position: relative; margin: 40px 0; }
.kg-page .gallery-wrapper .gallery-switch { position: absolute; left: 20px; top: 15px; z-index: 3; padding: 0; border: 0; background: none; cursor: pointer; }
.kg-page .gallery-wrapper .gallery-switch img { display: block; width: 90px; height: 42px; }
.kg-page .gallery-wrapper .slider-gallery { position: relative; padding-bottom: .5rem; }
.kg-page .gallery-wrapper .gal-slide[hidden] { display: none; }
.kg-page .gallery-wrapper .gal-slide { margin: 0; }
.kg-page .gallery-wrapper .gal-slide a { position: relative; display: block; border-radius: 5px; overflow: hidden; }
.kg-page .gallery-wrapper .gal-slide a::before { content: ''; display: block; padding-top: 73%; }
.kg-page .gallery-wrapper .gal-slide img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.kg-page .gallery-wrapper .billy-title { margin: 10px 0 0; }
.kg-page .gallery-wrapper .billy-title p { margin: 0 0 20px; }
.kg-page .gallery-wrapper .gal-arrows { position: absolute; top: 15px; right: 20px; z-index: 3; display: flex; gap: 8px; }
.kg-page .gallery-wrapper .gal-arrows button { width: 42px; height: 42px; padding: 0; border: 0; background: transparent no-repeat center / 42px 42px; cursor: pointer; }
.kg-page .gallery-wrapper .gal-arrows .gal-prev { background-image: url('/assets/go-left-white.svg'); }
.kg-page .gallery-wrapper .gal-arrows .gal-next { background-image: url('/assets/go-right-white.svg'); }
.kg-page .gallery-wrapper .grid-gallery { display: none; }
.kg-page .gallery-wrapper.show-grid .grid-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.kg-page .gallery-wrapper.show-grid .slider-gallery, .kg-page .gallery-wrapper.show-grid .gal-arrows { display: none; }
.kg-page .gallery-wrapper .grid-gallery a { position: relative; display: block; border-radius: 2px; overflow: hidden; }
.kg-page .gallery-wrapper .grid-gallery a::before { content: ''; display: block; padding-top: 72%; }
.kg-page .gallery-wrapper .grid-gallery img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 414px) { .kg-page .gallery-wrapper .gallery-switch { left: 10px; top: 10px; } .kg-page .gallery-wrapper .gallery-switch img { width: 60px; height: auto; } }

/* Blocco newsletter (src/components/NewsletterCTA.astro): stessa struttura e classi dell'ufficiale (opt-box-two + bg-gradient) */
.bg-gradient { overflow: hidden; }
.nl-cta { background-image: linear-gradient(rgba(255,255,255,.15), rgba(255,255,255,0)); }
.nl-cta .main-content-header { display: flow-root; }
.nl-cta article.mce-content-body { margin-bottom: 45px; }
.nl-cta .text-end { padding-top: 25px; }
.nl-cta .btn { margin-bottom: 0; }

/* Barra in alto come l'ufficiale: logo e lingue scorrono via, resta la scatola bianca Prenota + hamburger (nel blocco PERSISTENT TOP BAR) */

/* Variante "no-header" (come Kumbe): pagina chiara senza immagine */
body.no-header .top-logo-home img { content: url('/assets/logo_orizzontale_dark.svg'); filter: none; }
body.no-header .top-lang-nav .fixed-main-menu { background-image: none; }
body.no-header .top-lang-list li a, body.no-header .top-lang-list li a:hover, body.no-header .top-lang-list li a.link_attivo { color: #004c97; }
body.no-header .kg-page > .standard-box:first-child { padding-top: 200px; background-image: linear-gradient(0deg, rgba(255,255,255,.45) 1%, #f2f6fa 96%); background-size: 100px 40%; background-repeat: repeat-x; }
@media (max-width: 1024px) { body.no-header .kg-page > .standard-box:first-child { padding-top: 160px; } }
@media (max-width: 575px) { body.no-header .kg-page > .standard-box:first-child { padding-top: 140px; } }

/* [infra] Modale "Richiesta informazioni" (creata da main.js) */
body.gnz-info-open { overflow: hidden; }
.gnz-info-overlay { position: fixed; inset: 0; z-index: 100000; background: rgba(0,0,0,.45); display: flex; align-items: flex-start; justify-content: center; overflow-y: auto; padding: 0 10px; scrollbar-width: none; }
.gnz-info-overlay::-webkit-scrollbar { display: none; }
.gnz-info-overlay[hidden] { display: none; }
/* finestra come l'ufficiale (.contentWindow.mediumContent/.smallContent > .container-fluid): card bianca radius 10, ombra, margin-top 10% */
.gnz-info-dialog { position: relative; background: #fff; width: 100%; max-width: 800px; margin: 10% auto 30px; padding: 30px; border: 1px solid rgba(255,255,255,.1); border-radius: 10px; box-shadow: 0 2px 15px 0 rgba(0,0,0,.20); color: #6a6a6a; font-family: 'Quicksand', sans-serif; outline: none; }
.gnz-info-dialog.gnz-small { max-width: 400px; }
.gnz-small .gnz-info-field { flex-basis: 100%; min-width: 0; }
.gnz-small .gnz-info-actions { text-align: right; }
#newsletter-success p { margin: 0; }
.gnz-info-dialog h3 { font-family: 'Quicksand', sans-serif; font-weight: 200; color: #3a3a3a; margin: 0 0 4px; padding-right: 44px; font-size: 26px; line-height: 32px; }
.gnz-info-dialog h3 b { font-weight: 400; }
.gnz-info-dialog hr { border: 0; border-top: 1px solid rgba(0,0,0,.1); margin: 16px 0; }
.gnz-info-dialog h4.gnz-info-sub { color: #3a3a3a; font-weight: 200; font-size: 1.7em; line-height: 1.1em; }
.gnz-info-close { position: absolute; top: -15px; right: 20px; z-index: 2; width: 35px; height: 35px; border: 0; padding: 0; border-radius: 50%; background: url('/assets/icon-round-close.svg') center / 35px 35px no-repeat; font-size: 0; line-height: 0; color: transparent; cursor: pointer; }
.gnz-info-close:hover, .gnz-info-close:focus-visible { background-color: transparent; opacity: .85; }
.gnz-info-dialog form { display: flex; flex-wrap: wrap; gap: 0 20px; }
.gnz-info-dialog form[hidden] { display: none; }
.gnz-info-sub { flex: 0 0 100%; margin: 10px 0 8px; }
.gnz-info-field { flex: 1 1 calc(50% - 10px); min-width: 220px; margin-bottom: 14px; display: flex; flex-direction: column; }
.gnz-info-field.gnz-info-full { flex-basis: 100%; }
.gnz-info-field label { font-size: 1em; margin-bottom: .5rem; color: #6a6a6a; }
.gnz-info-input { width: 100%; height: 44px; font-family: 'Quicksand', sans-serif; font-size: .85em; font-weight: 400; padding: 6px 12px; border: 1px solid #f2f6fa; border-radius: 3px; background: #f2f6fa; color: #3a3a3a; appearance: none; -webkit-appearance: none; }
textarea.gnz-info-input { height: auto; min-height: 200px; }
.gnz-info-input:focus { outline: 0; border-color: #004c97; box-shadow: 0 0 0 1px #004c97; background: #fff; }
.gnz-info-input.gnz-info-invalid { border-color: #b3261e; box-shadow: 0 0 0 1px #b3261e; }
.gnz-info-privacy { flex: 0 0 100%; font-size: 12px; line-height: 20px; margin: 6px 0 10px; }
.gnz-info-privacy a, .gnz-info-check a { color: #004c97; text-decoration: underline; }
.gnz-info-check { flex: 0 0 100%; display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.5; margin-bottom: 12px; cursor: pointer; color: #6a6a6a; }
.gnz-info-check input { margin-top: 3px; flex: 0 0 auto; width: 16px; height: 16px; }
.gnz-info-status { flex: 0 0 100%; min-height: 1.2em; color: #b3261e; font-size: .9rem; }
.gnz-info-actions { flex: 0 0 100%; text-align: right; }
.gnz-info-actions .btn + .btn { margin-left: 10px; }
.gnz-info-send[disabled] { opacity: .6; cursor: wait; }
.gnz-info-ok { padding: 24px 0 8px; outline: none; }
.gnz-info-ok[hidden] { display: none; }
@media (max-width: 575px) { .gnz-info-dialog { padding: 20px; margin-top: 15%; } .gnz-info-field { flex-basis: 100%; } }

/* [hotel] ── pagine l-hotel, le-camere, la-colazione, la-spa (tutto scoped su .ht-page) ───────────── */
.ht-page .standard-box.t-padding-xxl { padding-top: 160px; }
.ht-page .standard-box.b-padding-xl  { padding-bottom: 80px; }
.ht-page .standard-box.b-padding-xxl { padding-bottom: 160px; }
@media (min-width: 768px) and (max-width: 1600px) {
  .ht-page .standard-box.t-padding-xxl { padding-top: 130px; }
  .ht-page .standard-box.b-padding-xl  { padding-bottom: 60px; }
  .ht-page .standard-box.b-padding-xxl { padding-bottom: 130px; }
}
@media (max-width: 767px) {
  .ht-page .standard-box.t-padding-xxl { padding-top: 60px; }
  .ht-page .standard-box.b-padding-xl  { padding-bottom: 40px; }
  .ht-page .standard-box.b-padding-xxl { padding-bottom: 60px; }
}
.ht-page .container-wide { max-width: 1920px; margin: 0 auto; padding: 0 15px; }
.ht-page .mce-content-body .lead { margin-bottom: 30px; }
.ht-page .mce-content-body p, .ht-page .mce-content-body ul, .ht-page .mce-content-body ol { margin-bottom: 20px; }
.ht-page .mce-content-body a { color: #004c97; text-decoration: none; font-weight: 500; }
.ht-page .mce-content-body .quote { border-left: 1px solid #004c97; padding-left: 30px; margin: 30px 0; display: block; color: #c9a58b; font-size: 20px; font-weight: 400; }
.ht-page .mce-content-body p.quote { color: #6a6a6a; }
.ht-page .mce-content-body .well { border-radius: 3px; padding: 30px; background: #f2f6fa; margin: 30px 0; display: block; color: #00254b; font-weight: 400; }
.ht-page .mce-content-body .well * { color: #00254b; }

/* mosaico foto (cluster-grid ufficiale) */
.ht-page dl.ht-cluster { position: relative; display: grid; grid-column-gap: 20px; grid-row-gap: 20px; margin: 0; padding: 0; }
.ht-page dl.ht-cluster dt { position: relative; border-radius: 5px; overflow: hidden; margin: 0; }
.ht-page dl.ht-cluster dt:before { content: ""; display: block; }
.ht-page dl.ht-cluster dt a { display: block; position: absolute; inset: 0; margin: 0; background: #f3f3f3; overflow: hidden; }
.ht-page dl.ht-cluster dt a img { object-fit: cover; object-position: 50% 50%; height: 100%; width: 100%; transition: transform .2s ease-in-out; }
@media (hover: hover) and (pointer: fine) { .ht-page dl.ht-cluster dt a:hover img { transform: scale(1.05); } }
.ht-page dl.ht-cluster.items-4 { grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(2, 1fr); }
.ht-page dl.ht-cluster.items-4 dt:nth-child(1) { grid-area: 1 / 1 / 4 / 2; }
.ht-page dl.ht-cluster.items-4 dt:nth-child(2) { grid-area: 4 / 1 / 5 / 2; }
.ht-page dl.ht-cluster.items-4 dt:nth-child(3) { grid-area: 1 / 2 / 2 / 3; }
.ht-page dl.ht-cluster.items-4 dt:nth-child(4) { grid-area: 2 / 2 / 5 / 3; }
.ht-page dl.ht-cluster.items-4 dt:before { padding-top: 50%; }
.ht-page dl.ht-cluster.items-8 { grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(10, 1fr); }
.ht-page dl.ht-cluster.items-8 dt:nth-child(1) { grid-area: 1 / 1 / 5 / 2; }
.ht-page dl.ht-cluster.items-8 dt:nth-child(2) { grid-area: 1 / 2 / 7 / 3; }
.ht-page dl.ht-cluster.items-8 dt:nth-child(3) { grid-area: 1 / 3 / 5 / 4; }
.ht-page dl.ht-cluster.items-8 dt:nth-child(4) { grid-area: 1 / 4 / 7 / 5; }
.ht-page dl.ht-cluster.items-8 dt:nth-child(5) { grid-area: 5 / 1 / 11 / 2; }
.ht-page dl.ht-cluster.items-8 dt:nth-child(6) { grid-area: 7 / 2 / 11 / 3; }
.ht-page dl.ht-cluster.items-8 dt:nth-child(7) { grid-area: 5 / 3 / 11 / 4; }
.ht-page dl.ht-cluster.items-8 dt:nth-child(8) { grid-area: 7 / 4 / 11 / 5; }
.ht-page dl.ht-cluster.items-8 dt:before { padding-top: 85%; }
@media (max-width: 993px) {
  .ht-page dl.ht-cluster.items-4, .ht-page dl.ht-cluster.items-8 { grid-template-columns: repeat(2, 1fr); grid-template-rows: none; }
  .ht-page dl.ht-cluster.items-4 dt, .ht-page dl.ht-cluster.items-8 dt { grid-area: auto !important; }
  .ht-page dl.ht-cluster dt:before { padding-top: 100% !important; }
}
@media (max-width: 575px) { .ht-page dl.ht-cluster { grid-column-gap: 10px; grid-row-gap: 10px; } }

/* elenco camere */
.ht-page .one-room .room-data { border-top: 1px solid rgba(0,0,0,.1); padding: 60px 0; }
.ht-page .one-room .room-data h3 { font-weight: 400; margin-bottom: 30px; font-size: 32px; line-height: 1.2; }
.ht-page .one-room .room-data h3 b { font-weight: 700; }
.ht-page .one-room a:hover h3 { color: #0066ca; }
.ht-page a.textlink { font-weight: 500; color: #004c97; }
.ht-page a.textlink:before { display: inline-block; position: relative; content: ""; height: 1px; width: 30px; margin-right: 10px; background: #004c97; transform: translateY(-5px); transition: all .15s ease-out; }
.ht-page a.textlink:hover { color: #0066ca; }
.ht-page a.textlink:hover:before { width: 35px; }
.ht-page .ht-btns { margin-top: 20px; }
.ht-page a.ht-btn { display: block; max-width: 240px; margin-bottom: 10px; padding: 14px 20px; text-align: center; border: 1px solid #004c97; border-radius: 2px; font-size: 14px; letter-spacing: .7px; line-height: 1.4; text-decoration: none; cursor: pointer; transition: background .2s, color .2s; }
.ht-page a.ht-btn-info { background: transparent; color: #004c97; }
.ht-page a.ht-btn-info:hover { background: #004c97; color: #fff; }
.ht-page a.ht-btn-book { background: #004c97; color: #fff; }
.ht-page a.ht-btn-book:hover { background: #003a75; color: #fff; }
.ht-page .mce-content-body a.ht-btn { font-weight: 400; }
.ht-page .mce-content-body a.ht-btn-book { color: #fff; }

/* card alternate (candy-invert) */
.ht-page .candy-invert .invert-item { margin-bottom: 60px; }
.ht-page .candy-invert .invert-item:last-child { margin-bottom: 0; }
.ht-page .invert-item .set-img { position: relative; display: block; overflow: hidden; border-radius: 2px; margin-bottom: 10px; }
.ht-page .invert-item .set-img:before { content: ""; display: block; padding-top: 107%; }
.ht-page .invert-item .set-img figure { position: absolute; inset: 0; margin: 0; background: #f3f3f3; }
.ht-page .invert-item .set-img a { display: block; position: absolute; inset: 0; }
.ht-page .invert-item .set-img img { max-height: none; width: 100%; height: 100%; object-fit: cover; }
.ht-page .invert-item .verticalize { display: block; position: relative; top: 50%; transform: translateY(-50%); height: auto; padding: 0; }
.ht-page .invert-item h3 { font-weight: 200; font-size: calc(30px + 1.2vw); line-height: 120%; position: relative; }
.ht-page .invert-item h3:after { content: ""; position: absolute; width: 110px; height: 1px; left: -150px; top: 22px; background: #004c97; }
.ht-page .invert-item .plan-two { z-index: 1; padding: 0 20px 40px 20px; }
.ht-page .invert-item .disalign { transform: translateX(-50px); }
.ht-page .invert-item:nth-child(even) .plan-one { order: 2; }
.ht-page .invert-item:nth-child(even) .plan-two { order: 1; text-align: right; }
.ht-page .invert-item:nth-child(even) .disalign { transform: translateX(50px); }
.ht-page .invert-item:nth-child(even) h3:after { left: auto; right: -150px; }
.ht-page .invert-item:first-child { transform: translateY(-30px); }
.ht-page .invert-item .ht-card-text p { margin-bottom: 20px; }
@media (max-width: 1300px) {
  .ht-page .invert-item .disalign, .ht-page .invert-item:nth-child(even) .disalign { transform: none !important; }
  .ht-page .invert-item h3:after { display: none; }
}
@media (max-width: 993px) {
  .ht-page .invert-item:first-child { transform: none; margin-top: 0; }
  .ht-page .invert-item .verticalize { padding-top: 25px; top: auto; transform: none; }
}
@media (max-width: 767px) {
  .ht-page .candy-invert .invert-item { margin-bottom: 20px; }
  .ht-page .invert-item:nth-child(even) .plan-one, .ht-page .invert-item:nth-child(even) .plan-two { order: 1; text-align: left; }
  .ht-page .invert-item:nth-child(even) .plan-two .verticalize { padding-top: 20px; top: auto; transform: none; }
}

/* galleria spa: slider + griglia commutabile */
.ht-page .ht-gallery-wrapper { position: relative; margin: 40px 0; }
.ht-page .ht-gallery-switch { position: absolute; left: 20px; top: 15px; z-index: 3; cursor: pointer; line-height: 0; }
.ht-page .ht-slider { position: relative; border-radius: 5px; overflow: hidden; }
.ht-page .ht-slider.hide-slider { display: none; }
.ht-page .ht-slider-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.ht-page .ht-slider-track::-webkit-scrollbar { display: none; }
.ht-page .ht-slide { flex: 0 0 100%; scroll-snap-align: start; margin: 0; aspect-ratio: 100 / 73; background: #f3f3f3; }
.ht-page .ht-slide img { width: 100%; height: 100%; object-fit: cover; display: block; margin: 0; }
.ht-page .ht-arrow { position: absolute; top: 15px; width: 42px; height: 42px; border: none; background: #004c97; cursor: pointer; z-index: 2; border-radius: 2px; }
.ht-page .ht-arrow:after { content: ""; position: absolute; top: 50%; left: 50%; width: 10px; height: 10px; border: solid #fff; border-width: 2px 2px 0 0; }
.ht-page .ht-prev { right: 70px; }
.ht-page .ht-prev:after { transform: translate(-30%, -50%) rotate(-135deg); }
.ht-page .ht-next { right: 20px; }
.ht-page .ht-next:after { transform: translate(-70%, -50%) rotate(45deg); }
.ht-page .ht-grid-gallery { display: none; }
.ht-page .ht-grid-gallery.show-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.ht-page .ht-grid-gallery a { display: block; aspect-ratio: 1 / 1; overflow: hidden; border-radius: 3px; }
.ht-page .ht-grid-gallery img { width: 100%; height: 100%; object-fit: cover; margin: 0; }
@media (max-width: 575px) { .ht-page .ht-grid-gallery.show-grid { grid-template-columns: repeat(2, 1fr); } .ht-page .ht-gallery-switch { left: 10px; top: 10px; } .ht-page .ht-gallery-switch img { width: 60px; height: auto; } }

/* lightbox */
.ht-lightbox { position: fixed; inset: 0; z-index: 10000; background: rgba(0,0,0,.88); display: flex; align-items: center; justify-content: center; }
.ht-lightbox[hidden] { display: none; }
.ht-lightbox img { max-width: 92vw; max-height: 90vh; object-fit: contain; }
.ht-lightbox .ht-lb-close { position: absolute; top: 14px; right: 20px; background: none; border: none; color: #fff; font-size: 40px; line-height: 1; cursor: pointer; }

/* [territorio] pagine il-territorio-5, dove-siamo, offerte, esperienze, newsletter, privacy, cookies, credits (src/components/kt) */
.kt-page h1.linea { position: relative; }
.kt-page h1.linea:after { position: absolute; content: ''; background: #004c97; display: block; left: 0; height: 1.5px; width: 80px; bottom: -12px; }
.kt-page .liner { position: relative; height: 1px; display: block; width: 100%; background-color: #004c97; transform: translateY(15px); }
.kt-page .noverflow { overflow: hidden; }
.kt-page .z-index-one { z-index: 1; }
.kt-page .mce-content-body .well { border-radius: 3px; padding: 30px; background-color: #f2f6fa; margin: 30px 0; display: block; color: #00254b; font-weight: 400; }
.kt-page .mce-content-body .well * { color: #00254b; }
.kt-page .mce-content-body .lead { line-height: 1.8em; font-size: 1.15em; margin-bottom: 30px; }
.kt-page .mce-content-body h3 { font-weight: 200; font-size: 1.6rem; margin: 30px 0 10px; }
.kt-page .mce-content-body h3 img { width: 40px; height: 40px; margin: 0 10px 0 0; vertical-align: middle; }
.kt-page .mce-content-body .quote { border-left: 1px solid #004c97; padding-left: 30px; margin: 30px 0; display: block; color: #c9a58b; font-size: 20px; font-weight: 400; }
.kt-page .mce-content-body p.quote b { font-weight: 400; }
.kt-page .mce-content-body a:not(.btn) { color: #004c97; text-decoration: none; font-weight: 500; }
.kt-page .mce-content-body img { max-width: 100%; height: auto; }
.kt-page .btn-container { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
.kt-page .btn-container .btn { min-width: 250px; margin: 0; }
.kt-page .kt-map { margin: 30px 0 10px; }
.kt-page .kt-map iframe { display: block; border: 0; }
/* mappa del territorio (SVG/PNG centrata) */
.kt-page #start-content article p img { display: block; margin: 0 auto; }
/* tab esperienze */
.kt-page .tab { padding: 0; margin: 0; }
.kt-page .tab dt { display: inline-block; margin: 0 10px 5px 0; }
.kt-page .tab dt a { display: block; border-radius: 30px; color: #004c97; font-size: 14px; font-weight: 500; text-align: center; line-height: 22px; padding: 10px 25px 12px; background: transparent; border: 2px solid #004c97; text-decoration: none; }
.kt-page .tab dt a.active { color: #fff; background: #004c97; }
/* card alternate (invert-item) */
.kt-page .textlink { font-weight: 500; color: #004c97; text-decoration: none; border: 0; padding: 0; background: none; }
.kt-page .textlink:before { display: inline-block; position: relative; content: ""; height: 1px; width: 30px; margin-right: 10px; background: #004c97; transform: translateY(-5px); transition: all .15s ease-out; }
.kt-page .textlink:hover { color: #0066ca; }
.kt-page .textlink:hover:before { width: 35px; }
.kt-page .box-clickable { cursor: pointer; }
.kt-page .candy-invert .invert-item { margin-bottom: 60px; }
.kt-page .candy-invert .invert-item:last-child { margin-bottom: 0; }
.kt-page .invert-item .distance { color: #004c97; display: block; font-weight: 500; margin-bottom: 15px; }
.kt-page .invert-item .set-img { position: relative; box-sizing: content-box; display: block; overflow: visible; border-radius: 2px; margin-bottom: 10px; width: 100%; }
.kt-page .invert-item .set-img:before { content: ""; display: block; padding-top: 107%; }
.kt-page .invert-item .set-img figure, .kt-page .invert-item .set-img > a { display: block; inset: 0; margin: 0; background: #f3f3f3; position: absolute; }
.kt-page .invert-item .set-img > a > figure { position: absolute; inset: 0; overflow: hidden; border-radius: 2px; }
.kt-page .invert-item .set-img img { object-fit: cover; object-position: 50% 50%; height: 100%; width: 100%; max-height: none; border-radius: 2px; display: block; }
.kt-page .invert-item .plan-two { z-index: 1; padding: 0 20px 40px; }
.kt-page .invert-item .verticalize { position: relative; top: 50%; transform: translateY(-50%); display: block; height: auto; padding: 0; }
.kt-page .invert-item h3 { font-weight: 200; clear: both; font-size: 48px; line-height: 120%; position: relative; color: #3a3a3a; }
.kt-page .invert-item .plan-two p { margin-bottom: 1rem; }
.kt-page .invert-item .disalign { transform: translateX(-50px); }
.kt-page .invert-item:nth-child(even) .plan-one { order: 2; }
.kt-page .invert-item:nth-child(even) .plan-two { order: 1; text-align: right; }
.kt-page .invert-item:nth-child(even) .disalign { transform: translateX(50px); }
.kt-page .invert-item h3:after { content: ""; position: absolute; width: 110px; height: 1px; display: block; left: -150px; top: 22px; background: #004c97; }
.kt-page .invert-item:nth-child(even) h3:after { left: auto; right: -150px; }
.kt-page .invert-item .textlink { display: inline-block; }
.kt-page .candy-invert .invert-item:first-child { transform: translateY(-30px); }
.kt-page .exp-invert .invert-item:first-child { transform: none; }
@media (max-width: 1300px) {
  .kt-page .invert-item .disalign, .kt-page .invert-item:nth-child(even) .disalign { transform: none !important; }
  .kt-page .invert-item h3:after { display: none; }
}
@media (max-width: 993px) {
  .kt-page .candy-invert .invert-item:first-child { transform: none; margin-top: 60px; }
  .kt-page .exp-invert .invert-item:first-child { margin-top: 0; }
  .kt-page .invert-item .verticalize { top: auto; transform: none; padding-top: 25px; }
  .kt-page .invert-item .plan-two { padding: 0 20px 40px; }
  .kt-page .candy-invert .invert-item { margin-bottom: 20px; }
}
@media (max-width: 767px) {
  .kt-page .invert-item:nth-child(even) .plan-one, .kt-page .invert-item:nth-child(even) .plan-two { order: 1; text-align: left; }
  .kt-page .invert-item .set-img:before { padding-top: 107%; }
  .kt-page .invert-item h3 { font-size: calc(30px + 1.2vw); }
}
/* mosaico 8 foto (territorio) */
.kt-page dl.kt-grid8 { position: relative; display: grid; gap: 20px; margin: 0; padding: 0; grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(10, 1fr); }
.kt-page dl.kt-grid8 dt { position: relative; border-radius: 5px; overflow: hidden; margin: 0; }
.kt-page dl.kt-grid8 dt:before { content: ""; display: block; padding-top: 85%; }
.kt-page dl.kt-grid8 dt a { display: block; inset: 0; margin: 0; background: #f3f3f3; position: absolute; overflow: hidden; }
.kt-page dl.kt-grid8 dt img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .2s ease-in-out; }
@media (hover: hover) and (pointer: fine) { .kt-page dl.kt-grid8 a:hover img { transform: scale(1.05); } }
.kt-page dl.kt-grid8 dt:nth-child(1) { grid-area: 1 / 1 / 5 / 2; }
.kt-page dl.kt-grid8 dt:nth-child(2) { grid-area: 1 / 2 / 7 / 3; }
.kt-page dl.kt-grid8 dt:nth-child(3) { grid-area: 1 / 3 / 5 / 4; }
.kt-page dl.kt-grid8 dt:nth-child(4) { grid-area: 1 / 4 / 7 / 5; }
.kt-page dl.kt-grid8 dt:nth-child(5) { grid-area: 5 / 1 / 11 / 2; }
.kt-page dl.kt-grid8 dt:nth-child(6) { grid-area: 7 / 2 / 11 / 3; }
.kt-page dl.kt-grid8 dt:nth-child(7) { grid-area: 5 / 3 / 11 / 4; }
.kt-page dl.kt-grid8 dt:nth-child(8) { grid-area: 7 / 4 / 11 / 5; }
@media (max-width: 993px) {
  .kt-page dl.kt-grid8 { gap: 10px; grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(4, 1fr); }
  .kt-page dl.kt-grid8 dt:before { padding-top: 100%; }
  .kt-page dl.kt-grid8 dt:nth-child(n) { grid-area: auto; }
}
/* blocco newsletter in coda */
.kt-page .kt-cta { background: #f2f6fa; overflow: hidden; }
.kt-page .kt-cta .btn { min-width: 0; }
.kt-page .kt-social a { display: inline-block; margin-left: 4px; }
@media (max-width: 767px) { .kt-page .kt-social { text-align: left !important; margin-top: 20px; } }
/* privacy / cookies */
.kt-legal .box-padding-l { padding: 50px; }
@media (max-width: 1600px) { .kt-legal .box-padding-l { padding: 40px; } }
@media (max-width: 767px) { .kt-legal .box-padding-l { padding: 30px 0; } }
.kt-legal h3 { font-weight: 400; margin: 30px 0 12px; }
.kt-legal h3.h1, .kt-legal h3.h2 { font-weight: 200; }
.kt-legal .CookieDeclarationTypeHeader { font-weight: 600; font-size: 1.1rem; margin: 30px 0 10px; color: #3a3a3a; }
.kt-legal table { width: 100%; }
@media (max-width: 767px) { .kt-legal { overflow-x: hidden; } .kt-legal .box-padding-l { overflow-wrap: anywhere; } }

/* [storia] Pagine storiche (home, la-nostra-storia, philosophy-green, trentino-guest-card, i-nostri-servizi):
   componenti in src/components/storia/. Tutto ristretto a .st-page: non altera le pagine degli altri agenti. */
.st-page { overflow-x: clip; }
.st-page .main-content-header { margin-bottom: 40px; }
.st-page .main-content-header h1 { font-size: 48px; font-weight: 400; color: #3a3a3a; line-height: 1.1em; margin: 0; }
@media (max-width: 767px) { .st-page .main-content-header h1 { font-size: 36px; } }
@media (min-width: 1601px) { .st-page .main-content-header h1 { font-size: 70.4px; } }
.st-page .main-content-header h1.linea { position: relative; }
.st-page .main-content-header h1.linea::after { content: ''; position: absolute; left: 0; bottom: -12px; width: 80px; height: 1.5px; background: #004c97; }
.st-page .micro-heading { font-size: 11px; font-weight: 600; letter-spacing: .35em; line-height: 14px; margin-bottom: 30px; color: #004c97; }
.st-page .mce-content-body, .st-page .mce-content-body p { color: #6a6a6a; }
.st-page .mce-content-body p { font-size: inherit; line-height: inherit; margin-bottom: 20px; }
.st-page .mce-content-body p.lead { font-size: 1.15em; line-height: 1.8em; margin-bottom: 30px; }
@media (max-width: 991px) { .st-page .mce-content-body p.lead { line-height: 1.95em; } }
.st-page .mce-content-body a:not(.btn) { color: #004c97; font-weight: 500; text-decoration: none; }
.st-page .mce-content-body a:not(.btn):hover { color: #0073e4; }
.st-page .mce-content-body b, .st-page .mce-content-body strong { font-weight: 500; }
.st-page .mce-content-body h2 { font-weight: 200; line-height: 1.1em; margin: 5px 0 10px; color: #3a3a3a; }
.st-page .mce-content-body ul, .st-page .mce-content-body ol { list-style: none; padding: 0; margin: 0 0 20px; }
.st-page .mce-content-body li { list-style: none; padding: 7px 0 7px 28px; line-height: 20px; background: url('/assets/kumbe/icon-fogliolina.svg') no-repeat left 11px top 11px / 17px 17px; color: #6a6a6a; }
.st-page .mce-content-body li span, .st-page .mce-content-body li div { color: inherit; }
.st-page .mce-content-body .quote { display: block; border-left: 1px solid #004c97; padding-left: 30px; margin: 30px 0; color: #c9a58b; font-size: 20px; font-weight: 400; }
.st-page .mce-content-body .well { padding: 30px; background: #f2f6fa; border-radius: 3px; color: #00254b; }
.st-page .mce-content-body .well b { color: #00254b; }
.st-page .btn-container { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 1.5rem; }
/* bottone "Vedi tutti i servizi" e link con caret */
.st-page .st-more { border-color: #004c97; color: #004c97; margin-top: 10px; }
.st-page .st-more:hover { background: #004c97; color: #fff; }
.st-page .lead a { color: #004c97; font-weight: 500; }
.st-page .lead a i { margin-right: 8px; }
/* Timeline / card immagine + testo alternate (invert-item) */
.st-page .invert-item { margin-bottom: 60px; }
.st-page .invert-item:last-child { margin-bottom: 0; }
.st-page .st-cards .container, .st-page .st-exp .container { position: relative; }
.st-page .invert-item .set-img { position: relative; overflow: hidden; border-radius: 2px; box-shadow: 0 2px 15px rgba(0,0,0,.15); background: #f3f3f3; }
.st-page .invert-item .set-img::before { content: ''; display: block; padding-top: 107%; }
.st-page .invert-item .set-img figure { position: absolute; inset: 0; margin: 0; }
.st-page .invert-item .set-img a { display: block; }
.st-page .invert-item .set-img img, .st-page .plan-one img { position: absolute; inset: 0; width: 100%; height: 100%; max-height: none; object-fit: cover; }
.st-page .invert-item h3 { position: relative; font-size: calc(30px + 1.2vw); font-weight: 200; line-height: 120%; color: #3a3a3a; margin-bottom: 1.5rem; clear: both; }
.st-page .invert-item .verticalize { display: block; position: relative; top: 50%; transform: translateY(-50%); height: auto; padding: 0; }
.st-page .invert-item .plan-one, .st-page .invert-item .plan-two { position: relative; }
.st-page .invert-item p { font-size: inherit; line-height: inherit; color: #6a6a6a; margin-bottom: 1rem; }
.st-page .invert-item .textlink { display: inline-block; font-weight: 500; color: #004c97; text-decoration: none; margin-top: .5rem; }
.st-page .invert-item .textlink::before { display: inline-block; position: relative; content: ''; height: 1px; width: 30px; margin-right: 10px; background: #004c97; transform: translateY(-5px); transition: width .15s ease-out; }
.st-page .invert-item .textlink:hover::before { width: 35px; }
@media (min-width: 1301px) {
  .st-page .invert-item .disalign { transform: translateX(-50px); }
  .st-page .invert-item:nth-child(even) .disalign { transform: translateX(50px); }
  .st-page .invert-item h3::after { content: ''; position: absolute; width: 110px; height: 1px; left: -150px; top: 22px; background: #004c97; }
  .st-page .invert-item:nth-child(even) h3::after { left: auto; right: -150px; }
}
@media (min-width: 768px) {
  .st-page .st-cards .invert-item:nth-child(even) .plan-one { order: 2; }
  .st-page .st-cards .invert-item:nth-child(even) .plan-two { order: 1; text-align: right; }
}
@media (max-width: 991px) {
  .st-page .invert-item { margin-bottom: 20px; }
  .st-page .invert-item .verticalize { top: auto; transform: none; padding-top: 25px; }
  .st-page .invert-item .plan-two { padding-bottom: 40px; }
}
@media (max-width: 767px) {
  .st-page .invert-item .set-img::before { padding-top: 107%; }
  .st-page .invert-item .plan-two { text-align: left; }
}
/* Griglia servizi (icona + testo) */
.st-page .st-services { --bs-gutter-x: 1.5rem; }
.st-page .st-service { margin-bottom: 40px; }
.st-page .st-service img { width: 98px; max-width: 100%; height: auto; display: block; border-radius: 2px; }
.st-page .st-service h4 { font-size: 18px; font-weight: 400; color: #3a3a3a; margin: 0 0 .4rem; line-height: 1.1em; }
.st-page .st-service p { font-size: 14px; line-height: 24px; margin: 0; color: #6a6a6a; }
.st-page .st-services-box { background: #f2f6fa; }
.st-page .st-servizi .bg-gradient { background: #fff; }
.st-page .st-services-box h3.h2 { font-weight: 200; color: #3a3a3a; }
.st-page .st-spa { background: #f2f6fa; }
.st-page .st-spa .small-title { font-size: 16px; color: #6a6a6a; margin: 0; }
.st-page .st-spa h3.h1 { font-weight: 200; color: #3a3a3a; line-height: 1.1em; }
.st-page .st-spa .set-img { position: relative; width: 100%; display: block; box-sizing: content-box; overflow: hidden; border-radius: 2px; }
.st-page .st-spa .set-img::before { content: ''; display: block; padding-top: 100%; }
.st-page .st-spa .set-img figure { position: absolute; inset: 0; margin: 0; background: #f3f3f3; }
.st-page .st-spa .set-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; display: block; }
.st-page .traspose-img-up-2 { transform: translateY(-120px); z-index: 1; box-shadow: 0 0 15px 0 rgba(0,0,0,.95); }
@media (min-width: 1001px) and (max-width: 1200px) { .st-page .traspose-img-up-2 { transform: translateY(-100px); } }
@media (min-width: 768px) and (max-width: 1000px) { .st-page .traspose-img-up-2 { transform: translateY(-60px); } }
@media (max-width: 767px) { .st-page .traspose-img-up-2 { transform: none; } }
.st-page .st-spa .textlink { display: inline-block; font-weight: 500; color: #004c97; text-decoration: none; }
.st-page .st-spa .textlink::before { display: inline-block; content: ''; height: 1px; width: 30px; margin-right: 10px; background: #004c97; transform: translateY(-5px); }
/* Home: sezioni fullscreen come l'ufficiale (testo centrato in verticale, alternato) */
.st-home .fullscreen-container .fullscreen-desc { top: 50%; bottom: auto; transform: translateY(-50%); left: 15%; right: auto; width: 50%; padding: 30px; }
.st-home .fullscreen-container.st-right .fullscreen-desc { left: auto; right: 15%; }
.st-home .fullscreen-container .fullscreen-desc h3 { font-size: 70px; font-weight: 400; line-height: 1.1em; margin-bottom: 40px; }
.st-home .fullscreen-container .fullscreen-desc .lead { margin-bottom: 40px; max-width: none; }
.st-home .fullscreen-container .side-line { border-left: 0; padding-left: 0; }
@media (max-width: 1200px) { .st-home .fullscreen-container .fullscreen-desc { left: 10%; width: 60%; } .st-home .fullscreen-container.st-right .fullscreen-desc { left: 10%; right: auto; } .st-home .fullscreen-container .fullscreen-desc h3 { font-size: 50px; } }
@media (max-width: 767px) { .st-home .fullscreen-container .fullscreen-desc, .st-home .fullscreen-container.st-right .fullscreen-desc { left: 20px; right: 20px; width: auto; padding: 20px 10px; } .st-home .fullscreen-container .fullscreen-desc h3 { font-size: 36px; margin-bottom: 25px; } }
/* [territorio] bottoni pieni come sull'ufficiale + spaziature */
.kt-page .btn-container .btn { display: inline-block; min-width: 250px; padding: 14px 28px; border-radius: 3px; font-weight: 500; font-size: 14px; line-height: 22px; text-align: center; cursor: pointer; text-decoration: none; }
.kt-page .btn-container .btn.btn-default { background: #004c97; color: #fff; border: 0; box-shadow: none; }
.kt-page .btn-container .btn.btn-default:hover { background: #0066ca; color: #fff; }
.kt-page .btn-container .btn.btn-third { background: #fff; color: #004c97; border: 0; box-shadow: inset 0 0 0 2px #004c97; }
.kt-page .btn-container .btn.btn-third:hover { background: #0066ca; color: #fff; box-shadow: inset 0 0 0 2px #0066ca; }
.kt-page .btn-container.mt-5 { margin-top: 3rem; }
.kt-page .kt-cta .btn.btn-default { background: #004c97; color: #fff; border: 0; padding: 14px 28px; border-radius: 3px; font-weight: 500; font-size: 14px; }
.kt-page .kt-cta .btn.btn-default:hover { background: #0066ca; }
.kt-page .tab { margin-bottom: 0; }

/* [ristoranti] il-ristorante / il-nostro-menu (testo = bozze Kumbe): stile citazione come le pagine DEFAULT ufficiali + galleria a mosaico */
.rs-page .mce-content-body p, .rs-page .mce-content-body ul, .rs-page .mce-content-body ol { margin-bottom: 20px; }
.rs-page .mce-content-body a { color: #004c97; text-decoration: none; font-weight: 500; }
.rs-page .mce-content-body .quote { border-left: 1px solid #004c97; padding-left: 30px; margin: 30px 0; display: block; color: #6a6a6a; font-size: 20px; font-weight: 400; }
.rs-page .btn-container { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
.rs-page .kg-cluster { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin: 0 0 20px; padding: 0; }
.rs-page .kg-cluster dt { position: relative; aspect-ratio: 3 / 2; border-radius: 5px; overflow: hidden; background: #f3f3f3; }
.rs-page .kg-cluster a, .rs-page .kg-cluster img { display: block; width: 100%; height: 100%; }
.rs-page .kg-cluster img { object-fit: cover; }
@media (max-width: 767px) { .rs-page .kg-cluster { grid-template-columns: repeat(2, 1fr); gap: 10px; } }
.kt-page .liner { min-height: 0; margin: 0; width: 100%; }

/* [hotel] widget 5stelle in l-hotel (dopo l'intro, come l'ufficiale) */
.ht-page .ht-booking { background: transparent; padding: 0 0 40px; }
.ht-page .ht-booking .booking-line-wrap.widget-ready { margin-bottom: 0; }
.ht-page .ht-booking .booking-line { transform: none; }
.kt-page article.mce-content-body h3, .kt-page .kt-legal h3 { border-bottom: 0; padding-bottom: 0; font-size: 1.6rem; margin: 30px 0 10px; color: #3a3a3a; }

/* [hotel] payoff hero leggibile anche su mobile */
.ht-header .fullscreen-slider-content p.hero-payoff { color: #fff !important; text-shadow: 0 1px 4px rgba(0,0,0,.5); }
.kt-page .main-content-header { margin-bottom: 40px; }
.kt-page .kt-cta .main-content-header { margin-bottom: 30px; }

/* [storia] spaziature sezioni (il globale .standard-box{padding:0} annulla le utility) */
.st-page .standard-box.t-padding-xxl, .st-page .opt-box-two.t-padding-xxl { padding-top: 160px; }
.st-page .standard-box.b-padding-xxl, .st-page .opt-box-two.b-padding-xxl { padding-bottom: 160px; }
.st-page .standard-box.t-padding-xl, .st-page .opt-box-two.t-padding-xl { padding-top: 80px; }
.st-page .standard-box.b-padding-xl, .st-page .opt-box-two.b-padding-xl { padding-bottom: 80px; }
.st-page .b-padding-xl { padding-bottom: 80px; }
@media (min-width: 768px) and (max-width: 1600px) {
  .st-page .standard-box.t-padding-xxl, .st-page .opt-box-two.t-padding-xxl { padding-top: 130px; }
  .st-page .standard-box.b-padding-xxl, .st-page .opt-box-two.b-padding-xxl { padding-bottom: 130px; }
  .st-page .standard-box.t-padding-xl, .st-page .opt-box-two.t-padding-xl { padding-top: 60px; }
  .st-page .standard-box.b-padding-xl, .st-page .opt-box-two.b-padding-xl, .st-page .b-padding-xl { padding-bottom: 60px; }
}
@media (max-width: 767px) {
  .st-page .standard-box.t-padding-xxl, .st-page .opt-box-two.t-padding-xxl { padding-top: 60px; }
  .st-page .standard-box.b-padding-xxl, .st-page .opt-box-two.b-padding-xxl { padding-bottom: 60px; }
  .st-page .standard-box.t-padding-xl, .st-page .opt-box-two.t-padding-xl { padding-top: 40px; }
  .st-page .standard-box.b-padding-xl, .st-page .opt-box-two.b-padding-xl, .st-page .b-padding-xl { padding-bottom: 40px; }
}
@media (max-width: 991px) { .kt-page .kt-cta .liner { display: none; } }

/* [final] payoff dell'hero sempre bianco e leggibile su foto (come l'ufficiale) */
.main-header .fullscreen-slider-content p,
.main-header .fullscreen-slider-content p.hero-payoff { color: #fff !important; text-shadow: 0 1px 6px rgba(0,0,0,.6); font-size: 1.15rem; }

/* [final] footer: vedi blocco FOOTER sopra (allineato all'ufficiale dal round 2) */

/* [generic] Hero delle pagine generiche (body.kg-gen) = hero ufficiale Kumbe (css_theme.css):
   h2.h1.riga-sotto 48px/400 bianco con bordo sotto, payoff 20/28, sfumatura + menu di supporto a pallini, overlay 25%, altezze mobile. */
body.kg-gen .opt-box-one.fullscreen-slider, body.kg-gen #fullscreen_slider_one { height: 100vh; }
@media (max-width: 1023px) { body.kg-gen .opt-box-one.fullscreen-slider, body.kg-gen #fullscreen_slider_one { height: 555px; } }
@media (max-width: 428px) and (orientation: portrait) { body.kg-gen .opt-box-one.fullscreen-slider, body.kg-gen #fullscreen_slider_one { height: 95vh; } }
body.kg-gen .hero-bg::before { content: ''; position: absolute; inset: 0; z-index: 1; background: rgba(0, 0, 0, .25); }
body.kg-gen .hero-bg figure { background: #f3f3f3; }
body.kg-gen .hero-bg img { transform: none !important; }
body.kg-gen .main-header .fullscreen-slider-content h2.h1 { display: inline-block; position: static; font-family: 'Quicksand', sans-serif; font-size: 48px; font-weight: 400; line-height: 1.1em; color: #fff; text-shadow: none; margin: 0 0 15px; padding: 0 0 10px; border-bottom: 1.5px solid #004c97; }
@media (min-width: 1601px) { body.kg-gen .main-header .fullscreen-slider-content h2.h1 { font-size: 70.4px; } }
body.kg-gen .main-header .fullscreen-slider-content h2.h1::after { display: none; }
body.kg-gen .main-header .fullscreen-slider-content h2.h1 .gnz-word { line-height: inherit; padding-bottom: 0; }
body.kg-gen .main-header .fullscreen-slider-content p { font-family: 'Quicksand', sans-serif; font-size: 20px; line-height: 28px; font-weight: 400; color: #fff; text-shadow: none; margin: 0 0 1rem; }
body.kg-gen .main-header > .top-support-menu { height: 150px; padding: 0 30px 30px; text-align: center; background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, .8) 100%); backdrop-filter: none; }
@media (max-width: 1200px) { body.kg-gen .main-header > .top-support-menu { height: 90px; } body.kg-gen .top-support-menu dl { display: none; } }
body.kg-gen .top-support-menu dl { font-size: 0; line-height: 0; margin: 0; padding-top: 40px; }
body.kg-gen .top-support-menu dt { display: inline-block; margin: 0 15px; vertical-align: bottom; }
body.kg-gen .top-support-menu dt a { display: block; padding: 5px; color: #fff; font-family: 'Quicksand', sans-serif; font-size: 11px; line-height: 14px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; background: none; }
body.kg-gen .top-support-menu dt a::before { content: ''; display: inline-block; width: 8px; height: 8px; margin: 0 10px 0 0; border-radius: 100%; background: #004c97; transform: none; flex: none; }
body.kg-gen .top-support-menu dt a:hover { color: #73a2d0; background: none; }
body.kg-gen .top-support-menu dt a:hover::before { background: #fff; transform: none; }

/* [storia] round 2 — parita' con l'ufficiale (valori dal CSS Kumbe) */
/* pulsanti pieni/outline come l'ufficiale (a.btn: 14px/500, padding 15/30/17, letter-spacing .05em) */
.st-page .btn, .st-page a.btn, .st-page button.btn { display: inline-block; padding: 15px 30px 17px; border: 0; border-radius: 2px; font-family: 'Quicksand', sans-serif; font-size: 14px; font-weight: 500; line-height: 21px; letter-spacing: .05em; text-align: center; text-decoration: none; cursor: pointer; box-shadow: none; }
.st-page .btn.btn-default { background: #004c97; color: #fff; }
.st-page .btn.btn-default:hover, .st-page .btn.btn-default:focus { background: #0066ca; color: #fff; }
.st-page .btn.btn-third { background: #fff; color: #004c97; box-shadow: inset 0 0 0 2px #004c97; }
.st-page .btn.btn-third:hover, .st-page .btn.btn-third:focus { background: #0066ca; color: #fff; box-shadow: inset 0 0 0 2px #0066ca; }
.st-page .btn.btn-third.no-border { box-shadow: none; }
.st-page .btn-container .btn { min-width: 250px; margin: 0 10px 10px 0; }
.st-page .btn-container { display: block; margin-top: 0; }
.st-page .st-more { min-width: 0; }
.st-page .btn.textlink { background: transparent; box-shadow: none; color: #004c97; }
.st-page .btn.textlink:hover { background: transparent; color: #0066ca; }
.st-page .textlink::before { display: inline-block; position: relative; content: ''; height: 1px; width: 30px; margin-right: 10px; background: #004c97; transform: translateY(-5px); transition: all .15s ease-out; }
.st-page .textlink:hover::before { width: 35px; }
.st-page .st-cards .invert-item .textlink { font-weight: 400; }
/* home: slider a dissolvenza lenta come slick (fade 4s) */
.st-home .hero-bg, .st-home-hero .hero-bg { transition: opacity 4s ease-in-out; }
/* home: sezioni fullscreen identiche all'ufficiale (foto con velo .25, testo 35/50/60%) */
.st-home .fullscreen-container .section-bg img { filter: none; }
.st-home .fullscreen-container .section-bg figure::before { content: ''; position: absolute; inset: 0; z-index: 1; background: rgba(0,0,0,.25); }
.st-home .fullscreen-container .fullscreen-desc { z-index: 2; top: 50%; bottom: auto; transform: translateY(-50%); left: 15%; right: auto; width: 35%; margin: 0 auto; padding: 30px; color: #fff; }
.st-home .fullscreen-container.st-right .fullscreen-desc { left: auto; right: 15%; }
.st-home .fullscreen-container .fullscreen-desc h3 { font-size: 70px; font-weight: 400; margin-bottom: 40px; transform: translateX(-110px); line-height: 1.1em; }
.st-home .fullscreen-container .fullscreen-desc .btn { margin: 0 10px 5px 0; }
.st-home .fullscreen-container .fullscreen-desc .lead, .st-home .fullscreen-container .fullscreen-desc p { color: #fff; }
.st-home .fullscreen-container .fullscreen-desc .lead { margin-bottom: 40px; font-size: 1.15em; line-height: 1.8em; }
.st-home .fullscreen-container .fullscreen-desc .lead .lead { font-size: inherit; line-height: inherit; margin-bottom: 0; }
@media (max-width: 2100px) { .st-home .fullscreen-container .fullscreen-desc { width: 50%; } }
@media (min-width: 994px) and (max-width: 1600px) {
  .st-home .fullscreen-container .fullscreen-desc { left: 10%; width: 60%; }
  .st-home .fullscreen-container.st-right .fullscreen-desc { left: auto; right: 15%; }
  .st-home .fullscreen-container .fullscreen-desc h3 { font-size: 50px; margin-bottom: 25px; }
  .st-home .fullscreen-container .fullscreen-desc .lead { margin-bottom: 25px; }
}
@media (max-width: 993px) {
  .st-home .fullscreen-container .fullscreen-desc, .st-home .fullscreen-container.st-right .fullscreen-desc { left: 30px; right: 30px; width: calc(100% - 60px); padding: 30px 20px; display: block; }
  .st-home .fullscreen-container .fullscreen-desc h3 { font-size: 36px; margin-bottom: 25px; transform: translateX(0); }
  .st-home .fullscreen-container .fullscreen-desc .lead { margin-bottom: 25px; }
}
@media (max-width: 767px) {
  .st-home .fullscreen-container .fullscreen-desc, .st-home .fullscreen-container.st-right .fullscreen-desc { left: 20px; right: 20px; width: auto; padding: 20px 10px; }
  .st-home .fullscreen-container .fullscreen-desc .lead { margin-bottom: 20px; }
}
/* home: blocco Guest Card e servizi come l'ufficiale */
.st-home .st-exp .col-lg-4 h4 { font-size: 1.7em; font-weight: 400; color: #3a3a3a; line-height: 1.1em; }
.st-home .st-exp .col-lg-4 h4 b { font-weight: 400; }
.st-home .st-exp .lead, .st-home .st-exp .lead p { color: #6a6a6a; }
.st-home .st-exp .lead { font-size: 1.15em; line-height: 1.8em; }
.st-home .st-exp .lead p { font-size: inherit; line-height: inherit; }
.st-home .st-exp .lead b { font-weight: 500; }
.st-home .st-exp .lead a { color: #004c97; font-weight: 400; }
.st-page .st-service h4 { font-family: 'Quicksand', sans-serif; }
/* [storia] timeline / invert-item: regole ufficiali (first-child -30px, padding plan-two, margine immagine) */
.st-page .invert-item:first-child { transform: translateY(-30px); }
.st-page .invert-item .plan-two { padding: 0 20px 40px; }
.st-page .invert-item .set-img { margin-bottom: 10px; overflow: visible; }
@media (max-width: 993px) { .st-page .invert-item:first-child { transform: none; margin-top: 60px; } }

/* [hotel] round 2 — parità con l'ufficiale (l-hotel, le-camere, la-colazione, la-spa). Hero/menu di sezione: body.kg-gen. */
.ht-page .standard-box h1, .ht-page .standard-box h2, .ht-page .standard-box h3, .ht-page .standard-box h4 { color: #3a3a3a; }
.ht-page .standard-box h3 { font-weight: 200; }
.ht-page .invert-item h3, .ht-page .invert-item h3 b { color: #3a3a3a; font-weight: 200; }
.ht-page .one-room:first-child { margin-top: -50px; }
.ht-page .one-room .room-data h3 { color: #3a3a3a; font-weight: 400; }
@media (min-width: 1601px) { .ht-page .one-room .room-data h3 { font-size: 38.4px; } }
.ht-page .one-room .room-data .btn { display: block; max-width: 240px; min-width: 0; width: auto; margin: 0 0 10px; }
/* widget 5stelle in l-hotel: fascia .opt-box-two con scheda bianca (theme.css .action-conversion-component/.booking-line) */
.ht-page .ht-booking { background: #f2f6fa; padding: 22px 10px 15px; }
.ht-page .ht-booking .booking-line { max-width: none; padding: 20px; border: 1px solid #f2f6fa; border-radius: 5px; box-shadow: 0 4px 25px rgba(0,0,0,.06); transform: translateY(-70px); margin: 0; }
/* fullscreen "Le nostre camere" (theme.css .fullscreen-container) */
.ht-page .ht-fullscreen { position: relative; width: 100%; height: 100vh; overflow: hidden; background: #3a3a3a; }
.ht-page .ht-fullscreen > figure { position: absolute; inset: 0; margin: 0; background: #f3f3f3; }
.ht-page .ht-fullscreen > figure::before { content: ''; position: absolute; inset: 0; z-index: 1; background: rgba(0,0,0,.25); }
.ht-page .ht-fullscreen > figure img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; filter: none; }
.ht-page .ht-fullscreen .fullscreen-desc { z-index: 2; position: absolute; top: 50%; bottom: auto; transform: translateY(-50%); left: 15%; right: auto; width: 35%; margin: 0 auto; padding: 30px; color: #fff; }
.ht-page .ht-fullscreen .fullscreen-desc h3 { font-family: 'Quicksand', sans-serif; font-size: 70px; font-weight: 400; line-height: 1.1em; color: #fff; margin: 0 0 40px; transform: translateX(-110px); }
.ht-page .ht-fullscreen .fullscreen-desc .lead { max-width: none; margin-bottom: 40px; font-size: 1.15em; line-height: 1.8em; color: #fff; }
.ht-page .ht-fullscreen .fullscreen-desc p, .ht-page .ht-fullscreen .fullscreen-desc .lead p { color: #fff; font-size: inherit; line-height: inherit; margin: 0; }
.ht-page .ht-fullscreen .fullscreen-desc .lead b { font-weight: 500; }
.ht-page .ht-fullscreen .side-line { position: relative; border: 0; padding: 0; margin: 0 0 16px; display: block; }
@media (min-width: 991px) { .ht-page .ht-fullscreen .side-line::after { content: ''; position: absolute; width: 75px; height: 1.5px; display: block; left: -110px; top: 16px; background: #004c97; } }
.ht-page .ht-fullscreen .fullscreen-desc .btn { margin: 0 10px 5px 0; }
@media (max-width: 2100px) { .ht-page .ht-fullscreen .fullscreen-desc { width: 50%; } }
@media (min-width: 994px) and (max-width: 1600px) {
  .ht-page .ht-fullscreen .fullscreen-desc { left: 10%; width: 60%; }
  .ht-page .ht-fullscreen .fullscreen-desc h3 { font-size: 50px; margin-bottom: 25px; }
  .ht-page .ht-fullscreen .fullscreen-desc .lead { margin-bottom: 25px; }
}
@media (max-width: 993px) {
  .ht-page .ht-fullscreen .fullscreen-desc { left: 30px; right: 30px; width: calc(100% - 60px); padding: 30px 20px; display: block; }
  .ht-page .ht-fullscreen .fullscreen-desc h3 { font-size: 36px; margin-bottom: 25px; transform: none; }
  .ht-page .ht-fullscreen .fullscreen-desc .lead { margin-bottom: 25px; }
}
@media (max-width: 767px) {
  .ht-page .ht-fullscreen .fullscreen-desc { left: 20px; right: 20px; width: auto; padding: 20px 10px; }
  .ht-page .ht-fullscreen .fullscreen-desc .lead { margin-bottom: 20px; }
}

/* [territorio] round 2: parità con l'ufficiale (misure probe.js) */
.kt-page .mce-content-body b, .kt-page .mce-content-body strong { font-weight: 500; }
.kt-page .mce-content-body p.quote b { font-weight: 500; }
.kt-page .mce-content-body .quote { color: #6a6a6a; }
.kt-page .mce-content-body .quote.well, .kt-page .mce-content-body .well { color: #00254b; }
.kt-page .mce-content-body .lead { font-weight: 400; font-size: 18.4px; line-height: 33.12px; }
.kt-page .mce-content-body h3, .kt-page article.mce-content-body h3 { font-weight: 400; font-size: 2rem; line-height: 1.1; margin: 30px 0 10px; color: #3a3a3a; }
.kt-page .mce-content-body h3 b, .kt-page .mce-content-body h3 strong { font-weight: 400; }
.kt-page .mce-content-body h3 img { width: auto; height: auto; max-width: none; margin: 0; vertical-align: middle; }
.kt-page .standard-box.b-padding-xl { padding-bottom: 60px; }
@media (max-width: 767px) { .kt-page .standard-box.b-padding-xl { padding-bottom: 40px; } }
.kt-page .btn-container .btn, .kt-page .kt-cta .btn.btn-default { line-height: 21px; padding: 16px 28px; }
.kt-page .kt-cta h3.h1 { font-size: 48px; font-weight: 200; color: #3a3a3a; line-height: 1.1; }
@media (max-width: 767px) { .kt-page .kt-cta h3.h1 { font-size: 43.2px; } }
.kt-page .textlink, .kt-page .invert-item .textlink { font-weight: 400; }
.kt-page .invert-item h3 { font-size: calc(30px + 1.2vw); font-weight: 200; line-height: 1.2; }
/* home: sull'ufficiale l'articolo di apertura termina con un <p class="lead"> vuoto (nbsp) che spinge i pulsanti */
.st-home #start-content article.mce-content-body::after { content: ''; display: block; height: 31px; }
.kt-page .no-padding { padding: 0 !important; }
.kt-page .kt-legal .standard-box.b-padding-xxl { padding-bottom: 130px; }
.kt-page .kt-legal h3.h2 { font-size: 38.4px; font-weight: 400; line-height: 1.1; margin: 0 0 10px; }
.kt-page .kt-legal h3 { font-size: 2rem; font-weight: 200; line-height: 1.1; }
.kt-page .kt-legal h3 b { font-weight: inherit; }
/* [hotel] galleria spa: frecce/toggle come l'ufficiale (cerchi bianchi 42px, gutter griglia 8/10px) */
.ht-page .ht-arrow { width: 42px; height: 42px; border: 0; border-radius: 0; background: transparent no-repeat center / 42px 42px; }
.ht-page .ht-arrow::after { display: none; }
.ht-page .ht-prev { right: 70px; background-image: url('/assets/go-left-white.svg'); }
.ht-page .ht-next { right: 20px; background-image: url('/assets/go-right-white.svg'); }
.ht-page .ht-grid-gallery.show-grid { column-gap: 8px; row-gap: 10px; }
body.no-header .kt-page > .kt-legal > .standard-box { padding-top: 200px; background-image: linear-gradient(0deg, rgba(255,255,255,.45) 1%, #f2f6fa 96%); }
@media (max-width: 1024px) { body.no-header .kt-page > .kt-legal > .standard-box { padding-top: 160px; } }
@media (max-width: 575px) { body.no-header .kt-page > .kt-legal > .standard-box { padding-top: 140px; } }
.kt-page .kt-legal .container-fluid { padding: 0 8px; }
.kt-page .kt-legal .row { margin: 0; }
.kt-page .kt-legal .row > * { padding: 0; }

/* [generic] Pagine generiche: metriche del css_theme.css ufficiale (mosaico responsive, slider, gallerie, lightbox Fancybox-like, parallax, reveal) */
.kg-page .noverflow { overflow: hidden; }
.kg-page .b-margin-l { margin-bottom: 50px; }
@media (max-width: 767px) { .kg-page .b-margin-l { margin-bottom: 30px; } }
.kg-page a.textlink b, .kg-page a.textlink { font-weight: 500; }
.kg-page a.textlink:hover { color: #0066ca; }

/* Mosaico: tutte le varianti .items-N e la versione a 2 colonne quadrate sotto i 993px */
.kg-page dl.cluster-grid dt a::after { content: ''; position: absolute; inset: 0; display: block; transition: all .15s ease-out; }
@media (hover: hover) and (pointer: fine) { .kg-page dl.cluster-grid dt a:hover::after { background: rgba(0, 0, 0, .05); } }
.kg-page dl.cluster-grid.items-2 { grid-template-columns: repeat(2, 1fr); grid-template-rows: 1fr; }
.kg-page dl.cluster-grid.items-2 dt:nth-child(1) { grid-area: 1 / 1 / 2 / 2; } .kg-page dl.cluster-grid.items-2 dt:nth-child(2) { grid-area: 1 / 2 / 2 / 3; }
.kg-page dl.cluster-grid.items-2 dt::before { padding-top: 100%; }
.kg-page dl.cluster-grid.items-3 { grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(2, 1fr); }
.kg-page dl.cluster-grid.items-3 dt:nth-child(1) { grid-area: 1 / 1 / 3 / 2; } .kg-page dl.cluster-grid.items-3 dt:nth-child(2) { grid-area: 1 / 2 / 2 / 3; } .kg-page dl.cluster-grid.items-3 dt:nth-child(3) { grid-area: 2 / 2 / 3 / 3; }
.kg-page dl.cluster-grid.items-5 { grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(2, 1fr); }
.kg-page dl.cluster-grid.items-5 dt:nth-child(1) { grid-area: 1 / 1 / 3 / 3; } .kg-page dl.cluster-grid.items-5 dt:nth-child(2) { grid-area: 1 / 3 / 2 / 4; } .kg-page dl.cluster-grid.items-5 dt:nth-child(3) { grid-area: 1 / 4 / 2 / 5; } .kg-page dl.cluster-grid.items-5 dt:nth-child(4) { grid-area: 2 / 3 / 3 / 4; } .kg-page dl.cluster-grid.items-5 dt:nth-child(5) { grid-area: 2 / 4 / 3 / 5; }
.kg-page dl.cluster-grid.items-5 dt::before { padding-top: 100%; }
.kg-page dl.cluster-grid.items-6 { grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(3, 1fr); }
.kg-page dl.cluster-grid.items-6 dt:nth-child(1) { grid-area: 1 / 1 / 3 / 3; } .kg-page dl.cluster-grid.items-6 dt:nth-child(2) { grid-area: 1 / 3 / 2 / 4; } .kg-page dl.cluster-grid.items-6 dt:nth-child(3) { grid-area: 1 / 4 / 2 / 5; } .kg-page dl.cluster-grid.items-6 dt:nth-child(4) { grid-area: 3 / 1 / 4 / 2; } .kg-page dl.cluster-grid.items-6 dt:nth-child(5) { grid-area: 3 / 2 / 4 / 3; } .kg-page dl.cluster-grid.items-6 dt:nth-child(6) { grid-area: 2 / 3 / 4 / 5; }
.kg-page dl.cluster-grid.items-6 dt::before { padding-top: 100%; }
.kg-page dl.cluster-grid.items-7 { grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(5, 1fr); }
.kg-page dl.cluster-grid.items-7 dt:nth-child(1) { grid-area: 1 / 1 / 4 / 3; } .kg-page dl.cluster-grid.items-7 dt:nth-child(2) { grid-area: 4 / 1 / 6 / 2; } .kg-page dl.cluster-grid.items-7 dt:nth-child(3) { grid-area: 4 / 2 / 6 / 3; } .kg-page dl.cluster-grid.items-7 dt:nth-child(4) { grid-area: 1 / 3 / 3 / 4; } .kg-page dl.cluster-grid.items-7 dt:nth-child(5) { grid-area: 3 / 3 / 6 / 4; } .kg-page dl.cluster-grid.items-7 dt:nth-child(6) { grid-area: 1 / 4 / 4 / 5; } .kg-page dl.cluster-grid.items-7 dt:nth-child(7) { grid-area: 4 / 4 / 6 / 5; }
.kg-page dl.cluster-grid.items-7 dt::before { padding-top: 70%; }
.kg-page dl.cluster-grid.items-8 { grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(10, 1fr); }
.kg-page dl.cluster-grid.items-8 dt:nth-child(1) { grid-area: 1 / 1 / 5 / 2; } .kg-page dl.cluster-grid.items-8 dt:nth-child(2) { grid-area: 1 / 2 / 7 / 3; } .kg-page dl.cluster-grid.items-8 dt:nth-child(3) { grid-area: 1 / 3 / 5 / 4; } .kg-page dl.cluster-grid.items-8 dt:nth-child(4) { grid-area: 1 / 4 / 7 / 5; } .kg-page dl.cluster-grid.items-8 dt:nth-child(5) { grid-area: 5 / 1 / 11 / 2; } .kg-page dl.cluster-grid.items-8 dt:nth-child(6) { grid-area: 7 / 2 / 11 / 3; } .kg-page dl.cluster-grid.items-8 dt:nth-child(7) { grid-area: 5 / 3 / 11 / 4; } .kg-page dl.cluster-grid.items-8 dt:nth-child(8) { grid-area: 7 / 4 / 11 / 5; }
.kg-page dl.cluster-grid.items-8 dt::before { padding-top: 85%; }
@media (max-width: 993px) {
  .kg-page dl.cluster-grid.items-4 { grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(2, 1fr); }
  .kg-page dl.cluster-grid.items-4 dt:nth-child(1) { grid-area: 1 / 1 / 2 / 2; } .kg-page dl.cluster-grid.items-4 dt:nth-child(2) { grid-area: 1 / 2 / 2 / 3; } .kg-page dl.cluster-grid.items-4 dt:nth-child(3) { grid-area: 2 / 1 / 3 / 2; } .kg-page dl.cluster-grid.items-4 dt:nth-child(4) { grid-area: 2 / 2 / 3 / 3; }
  .kg-page dl.cluster-grid.items-3 dt:nth-child(1) { grid-area: 1 / 1 / 2 / 3; } .kg-page dl.cluster-grid.items-3 dt:nth-child(2) { grid-area: 2 / 1 / 3 / 2; } .kg-page dl.cluster-grid.items-3 dt:nth-child(3) { grid-area: 2 / 2 / 3 / 3; }
  .kg-page dl.cluster-grid.items-3 dt::before { padding-top: 50%; }
  .kg-page dl.cluster-grid.items-5 { grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(3, 1fr); }
  .kg-page dl.cluster-grid.items-5 dt:nth-child(1) { grid-area: 1 / 1 / 2 / 3; } .kg-page dl.cluster-grid.items-5 dt:nth-child(2) { grid-area: 2 / 1 / 3 / 2; } .kg-page dl.cluster-grid.items-5 dt:nth-child(3) { grid-area: 2 / 2 / 3 / 3; } .kg-page dl.cluster-grid.items-5 dt:nth-child(4) { grid-area: 3 / 1 / 4 / 2; } .kg-page dl.cluster-grid.items-5 dt:nth-child(5) { grid-area: 3 / 2 / 4 / 3; }
  .kg-page dl.cluster-grid.items-5 dt::before { padding-top: 50%; }
  .kg-page dl.cluster-grid.items-6 { grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(3, 1fr); }
  .kg-page dl.cluster-grid.items-6 dt:nth-child(1) { grid-area: 1 / 1 / 2 / 2; } .kg-page dl.cluster-grid.items-6 dt:nth-child(2) { grid-area: 1 / 2 / 2 / 3; } .kg-page dl.cluster-grid.items-6 dt:nth-child(3) { grid-area: 2 / 1 / 3 / 2; } .kg-page dl.cluster-grid.items-6 dt:nth-child(4) { grid-area: 2 / 2 / 3 / 3; } .kg-page dl.cluster-grid.items-6 dt:nth-child(5) { grid-area: 3 / 1 / 4 / 2; } .kg-page dl.cluster-grid.items-6 dt:nth-child(6) { grid-area: 3 / 2 / 4 / 3; }
  .kg-page dl.cluster-grid.items-7 { grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(5, 1fr); }
  .kg-page dl.cluster-grid.items-7 dt:nth-child(1) { grid-area: 1 / 1 / 3 / 3; } .kg-page dl.cluster-grid.items-7 dt:nth-child(2) { grid-area: 3 / 1 / 4 / 2; } .kg-page dl.cluster-grid.items-7 dt:nth-child(3) { grid-area: 3 / 2 / 4 / 3; } .kg-page dl.cluster-grid.items-7 dt:nth-child(4) { grid-area: 4 / 1 / 5 / 2; } .kg-page dl.cluster-grid.items-7 dt:nth-child(5) { grid-area: 4 / 2 / 5 / 3; } .kg-page dl.cluster-grid.items-7 dt:nth-child(6) { grid-area: 5 / 1 / 6 / 2; } .kg-page dl.cluster-grid.items-7 dt:nth-child(7) { grid-area: 5 / 2 / 6 / 3; }
  .kg-page dl.cluster-grid.items-8 { grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(4, 1fr); }
  .kg-page dl.cluster-grid.items-8 dt:nth-child(1) { grid-area: 1 / 1 / 2 / 2; } .kg-page dl.cluster-grid.items-8 dt:nth-child(2) { grid-area: 1 / 2 / 2 / 3; } .kg-page dl.cluster-grid.items-8 dt:nth-child(3) { grid-area: 2 / 1 / 3 / 2; } .kg-page dl.cluster-grid.items-8 dt:nth-child(4) { grid-area: 2 / 2 / 3 / 3; } .kg-page dl.cluster-grid.items-8 dt:nth-child(5) { grid-area: 3 / 1 / 4 / 2; } .kg-page dl.cluster-grid.items-8 dt:nth-child(6) { grid-area: 3 / 2 / 4 / 3; } .kg-page dl.cluster-grid.items-8 dt:nth-child(7) { grid-area: 4 / 1 / 5 / 2; } .kg-page dl.cluster-grid.items-8 dt:nth-child(8) { grid-area: 4 / 2 / 5 / 3; }
  .kg-page dl.cluster-grid.items-2 dt::before, .kg-page dl.cluster-grid.items-4 dt::before, .kg-page dl.cluster-grid.items-6 dt::before, .kg-page dl.cluster-grid.items-7 dt::before, .kg-page dl.cluster-grid.items-8 dt::before { padding-top: 100%; }
}

/* "Altre tipologie": margini dello slider come l'ufficiale (slider -100px, prima scheda +120px = +20px netti) */
.kg-page .room-slider { margin: -100px -20px 0; }
.kg-page .opt-box-two + .standard-box .one-room { margin-top: 120px; }
@media (max-width: 767px) { .kg-page .room-slider { margin: -50px 0 0; } .kg-page .opt-box-two + .standard-box .one-room { margin-top: 70px; } }
.kg-page .one-room > .container { padding-left: 12px; padding-right: 12px; }
@media (max-width: 650px) { .kg-page .room-prev, .kg-page .room-next { top: 30%; transform: translateY(-30%); } }

/* Schede laterali: frecce = cerchi bianchi 42px (go-left/right-white.svg) come lo slick ufficiale */
.kg-page .side-arrows { position: static; display: block; }
.kg-page .side-arrows button { position: absolute; top: 15px; z-index: 2; width: 42px; height: 42px; padding: 0; border: 0; background: transparent no-repeat center / 42px 42px; filter: none; cursor: pointer; }
.kg-page .side-arrows .side-prev { right: 63px; background-image: url('/assets/go-left-white.svg'); }
.kg-page .side-arrows .side-next { right: 13px; background-image: url('/assets/go-right-white.svg'); }
.kg-page .kg-fade-in { animation: kg-fade .5s ease-out both; }
@keyframes kg-fade { from { opacity: 0; } to { opacity: 1; } }
.kg-page .sidecard.kg-fade-in { animation-duration: 1s; }
@media (prefers-reduced-motion: reduce) { .kg-page .kg-fade-in { animation: none; } }

/* Galleria in articolo: le slide non sono link, didascalia non visibile (come l'ufficiale), griglia a quadrati */
.kg-page .gallery-wrapper .gal-slide a { display: none; }
.kg-page .gallery-wrapper .gal-slide { position: relative; display: block; border-radius: 5px; overflow: hidden; margin: 0 0 -10px; }
.kg-page .gallery-wrapper .gal-slide::before { content: ''; display: block; padding-top: 73%; }
.kg-page .gallery-wrapper .gal-slide[hidden] { display: none; }
.kg-page .gallery-wrapper .gal-slide img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.kg-page .gallery-wrapper .billy-title { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.kg-page .gallery-wrapper .billy-title p { margin: 0; }
.kg-page .gallery-wrapper .slider-gallery { padding-bottom: 8px; }
.kg-page .gallery-wrapper .gal-arrows { display: block; position: static; }
.kg-page .gallery-wrapper .gal-arrows button { position: absolute; top: 15px; z-index: 3; width: 42px; height: 42px; }
.kg-page .gallery-wrapper .gal-arrows .gal-prev { right: 70px; } .kg-page .gallery-wrapper .gal-arrows .gal-next { right: 20px; }
.kg-page .gallery-wrapper.show-grid .grid-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px 8px; }
.kg-page .gallery-wrapper .grid-gallery a { position: relative; display: block; margin: 0; border-radius: 3px; overflow: hidden; }
.kg-page .gallery-wrapper .grid-gallery a::before { content: ''; display: block; padding-top: 100%; }
.kg-page .gallery-wrapper .grid-gallery img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 3px; }

/* Reveal all'ingresso (.anim-sequ-one: fade 1.2s) */
.kg-page .kg-rv { opacity: 0; transition: opacity 1.2s cubic-bezier(.6, .2, .1, 1); }
.kg-page .kg-rv.kg-rv-in { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .kg-page .kg-rv { opacity: 1; transition: none; } }

/* Lightbox in stile Fancybox 3 (come l'ufficiale: sfondo #1e1e1e .9, barra info, toolbar 44px, frecce 70x100, didascalia, miniature 212px) */
.kg-fb { position: fixed; inset: 0; z-index: 99992; color: #ccc; font-family: 'Quicksand', sans-serif; }
.kg-fb[hidden] { display: none; }
.kg-fb-bg { position: absolute; inset: 0; background: #1e1e1e; opacity: 0; transition: opacity .25s cubic-bezier(.22, .61, .36, 1); }
.kg-fb-open .kg-fb-bg { opacity: .9; }
.kg-fb-inner { position: absolute; inset: 0; }
.kg-fb-stage { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 44px 0; overflow: hidden; }
.kg-fb-img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; opacity: 0; transform: scale(.985); user-select: none; -webkit-user-drag: none; }
.kg-fb-img.kg-fb-in { opacity: 1; transform: none; transition: opacity .3s, transform .3s; }
.kg-fb-loading .kg-fb-stage::after { content: ''; position: absolute; left: 50%; top: 50%; width: 50px; height: 50px; margin: -25px 0 0 -25px; border: 4px solid #888; border-bottom-color: #fff; border-radius: 50%; opacity: .7; animation: kg-fb-spin 1s linear infinite; }
@keyframes kg-fb-spin { to { transform: rotate(360deg); } }
.kg-fb-infobar { position: absolute; left: 0; top: 0; z-index: 5; height: 44px; min-width: 44px; padding: 0 10px; font-size: 13px; line-height: 44px; color: #ccc; mix-blend-mode: difference; pointer-events: none; }
.kg-fb-toolbar { position: absolute; right: 0; top: 0; z-index: 5; display: flex; }
.kg-fb-btn { width: 44px; height: 44px; padding: 10px; border: 0; margin: 0; border-radius: 0; background: rgba(30, 30, 30, .6); color: #ccc; cursor: pointer; transition: color .2s; }
.kg-fb-btn:hover, .kg-fb-btn:focus-visible { color: #fff; }
.kg-fb-btn svg, .kg-fb-arrow svg { display: block; width: 100%; height: 100%; overflow: visible; }
.kg-fb-btn svg path, .kg-fb-arrow svg path { fill: currentColor; }
.kg-fb-arrow { position: absolute; top: calc(50% - 50px); z-index: 5; width: 70px; height: 100px; padding: 31px 6px 31px 26px; border: 0; background: transparent; background-clip: content-box; color: #ccc; cursor: pointer; opacity: 0; transition: opacity .25s; }
.kg-fb-prev { left: 0; padding: 31px 26px 31px 6px; } .kg-fb-next { right: 0; }
.kg-fb-arrow svg { background: rgba(30, 30, 30, .6); padding: 7px; box-sizing: border-box; }
.kg-fb-open:hover .kg-fb-arrow, .kg-fb-arrow:focus-visible { opacity: 1; }
.kg-fb-arrow:disabled { opacity: 0 !important; cursor: default; }
.kg-fb-single .kg-fb-arrow, .kg-fb-single .kg-fb-play, .kg-fb-single .kg-fb-th, .kg-fb-single .kg-fb-infobar { display: none; }
.kg-fb-caption { position: absolute; left: 0; right: 0; bottom: 0; z-index: 4; padding: 75px 44px 25px; font-size: 14px; line-height: 1.5; color: #eee; text-align: center; pointer-events: none; background: linear-gradient(0deg, rgba(0, 0, 0, .85) 0, rgba(0, 0, 0, .3) 50%, rgba(0, 0, 0, .15) 65%, rgba(0, 0, 0, .075) 75.5%, rgba(0, 0, 0, .037) 82.85%, rgba(0, 0, 0, .019) 88%, transparent); }
.kg-fb:not(.kg-fb-has-cap) .kg-fb-caption { display: none; }
.kg-fb-thumbs { display: none; position: absolute; top: 0; right: 0; bottom: 0; z-index: 6; width: 212px; padding: 2px 2px 4px; background: #ddd; overflow-y: auto; }
.kg-fb-show-th .kg-fb-thumbs { display: block; }
.kg-fb-show-th .kg-fb-inner { right: 212px; }
.kg-fb-show-th .kg-fb-toolbar { right: 212px; }
.kg-fb-thumbs ul { display: flex; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; }
.kg-fb-thumbs li { margin: 2px; }
.kg-fb-thumbs button { position: relative; display: block; width: 100px; height: 75px; padding: 0; border: 0; background: rgba(0, 0, 0, .1) center / cover no-repeat; cursor: pointer; }
.kg-fb-thumbs button::before { content: ''; position: absolute; inset: 0; border: 6px solid #004c97; opacity: 0; transition: opacity .2s; }
.kg-fb-thumbs .kg-fb-th-on button::before { opacity: 1; }
@media (max-width: 576px) { .kg-fb-thumbs { width: 110px; } .kg-fb-show-th .kg-fb-inner, .kg-fb-show-th .kg-fb-toolbar { right: 110px; } .kg-fb-thumbs button { width: calc(100% - 4px); } }
@media (max-height: 576px) { .kg-fb-caption { padding: 40px 12px 12px; } }
.kg-fb button:focus-visible { outline: 2px solid #fff; outline-offset: -2px; }
/* [territorio] round 2 (dove-siamo/std): ritmo verticale come l'ufficiale */
.kt-page .kt-linea .main-content-header { display: flow-root; }
.kt-page .b-margin-l { margin-bottom: 50px; }
.kt-page .mce-content-body p.quote { margin: 30px 0 20px; }
.kt-page .mce-content-body h3, .kt-page article.mce-content-body h3 { margin: 5px 0 10px; }
.kt-page .kt-map { margin: 0 0 50px; }
.kt-page .btn-container { margin-top: 0; }
.kt-page .btn-container .btn { margin-bottom: 10px; }
/* [territorio] round 2 (territorio) */
.kt-page .mce-content-body .quote.well { margin: 20px 0; }
.kt-page dl.kt-grid8 { margin-bottom: 16px; }
.kt-page .invert-item .textlink { display: inline; }
.kt-page .kt-cta .nl-btn { margin-top: -28px; }
.kt-page .kt-cta.kt-cta-notext .nl-btn { margin-top: 0; }
.kt-page .kt-linea ~ .kt-cta .main-content-header { display: flow-root; }
/* home: logo dell'hero grande come sull'ufficiale (img = 88% del container, senza ombra) */
.st-home-hero .fullscreen-slider-content .header-logo { width: 88%; max-width: 88%; height: auto; filter: none; }
.kg-page .room-slider { display: flow-root; }
.kg-page .side-listings h4 { margin: 5px 0 20px !important; }
.kg-page .side-listings h4:empty { display: block; }
.kg-page dl.cluster-grid { margin: 0 0 1rem; }
/* [hotel] micro-fix round 2: dl mosaico con margine 1rem (bootstrap dl), sfondo hero, link testo peso 400, margine articolo */
.ht-page dl.cluster-grid, .ht-page dl.ht-cluster { margin: 0 0 1rem; }
.ht-page a.textlink { font-weight: 400; }
.ht-page .b-margin-l { margin-bottom: 50px; }
@media (max-width: 767px) { .ht-page .b-margin-l { margin-bottom: 30px; } }
.ht-header .opt-box-one.fullscreen-slider { background: #3a3a3a; }
.ht-page a.textlink { display: inline; }
@media (max-width: 1024px) { .ht-page .mce-content-body p.lead, .ht-page article.mce-content-body p.lead { line-height: 1.95em; } }

.kt-page #start-content:not(.kt-std) article.mce-content-body > p:last-child, .kt-page .kt-cta:not(.kt-linea ~ .kt-cta) article.mce-content-body > p:last-child { margin-bottom: 0; }
/* home: sezioni fullscreen sempre alte 100vh (ufficiale: .fullscreen-container{height:100vh} anche su mobile) */
.st-home .fullscreen-container { height: 100vh; }
.kg-page .mce-content-body img { max-width: 100%; height: auto; }
@media (max-width: 767px) { .kt-page .b-margin-l { margin-bottom: 30px; } }
.kt-page .kt-cta .nl-btn { margin-bottom: 10px; }
.kt-page .kt-cta .main-content-header { margin-bottom: 40px; }
.kt-page .kt-cta .nl-btn { margin-bottom: 0; }
@media (max-width: 767px) { .kt-page .kt-social { text-align: right !important; margin-top: 0; } }
/* [hotel] elenco camere: h3 in em come il tema (2em, 2.4em >1600px), <b> non grassetto, didascalia slide spa */
.ht-page .one-room .room-data h3 { font-size: 2em; line-height: 1.1em; }
@media (min-width: 1601px) { .ht-page .one-room .room-data h3 { font-size: 2.4em; } }
.ht-page .one-room .room-data h3 b { font-weight: 400; color: inherit; }

/* [territorio] legal (privacy/cookies): ritmo come l'ufficiale */
.kt-page .kt-legal h3.h2 { font-weight: 200; margin: 0 0 8px; }
.kt-page .kt-legal h3.h2 b { font-weight: 400; }
.kt-page .kt-legal h3 { margin: 0 0 8px; }
.kt-page .kt-legal p, .kt-page .kt-legal ul, .kt-page .kt-legal ol { margin-bottom: 16px; }
.kt-page .kt-legal ul, .kt-page .kt-legal ol { padding-left: 32px; list-style: revert; }
.kt-page .kt-legal li { padding: 0; background: none; line-height: 30.4px; margin: 0; list-style: revert; }
.kt-page .kt-legal li *, .kt-page .kt-legal li p { line-height: 30.4px; }
@media (max-width: 1024px) { body.kg-gen .main-header .fullscreen-slider-content h2.h1 { font-size: 43.2px; } }
@media (min-width: 1601px) { body.kg-gen .main-header .fullscreen-slider-content h2.h1 { font-size: 70.4px; } }
.kt-page .btn-container { gap: 14px; }
.kt-page .kt-cta .btn.btn-default.nl-btn { padding: 16px 31px; }
.kg-page .sidecol h4 a { font-weight: 500; }
.kg-page .partners a { font-weight: 400; }

.kt-page .main-content-header h1, .kt-page .main-content-header h3 { margin-bottom: 8px; }
.kt-page .kt-linea article.mce-content-body > p:last-child:not(.lead), .kt-page .kt-linea ~ .kt-cta article.mce-content-body > p:last-child { margin-bottom: 20px; }
.kt-page .main-content-header h1.linea { margin-bottom: 8px; }
.kt-page .kt-linea article.mce-content-body, .kt-page .kt-linea ~ .kt-cta article.mce-content-body { display: flow-root; }
/* [hotel] colazione: galleria in fascia .opt-box-two e newsletter attaccata (official: opt-box-two b-padding-xxl senza padding-top); spans peso 300 nelle schede camera */
.ht-page.ht-colazione .opt-box-two { background: #f2f6fa; }
.ht-colazione + section.nl-cta.t-padding-xxl { padding-top: 0; }
.ht-rooms-page .mce-content-body li > span:only-child, .ht-rooms-page .mce-content-body p > span.quote, .ht-rooms-page .mce-content-body p > span:only-child { font-weight: 300; }
.kt-page .kt-linea article.mce-content-body > p.lead:last-child { margin-bottom: 50px; }
/* home: la foto di sezione copre tutta la sezione (figure assoluta come l'ufficiale; su mobile l'img restava alta 250px) */
.st-home .fullscreen-container { background: #3a3a3a; }
.st-home .fullscreen-container .section-bg figure { display: block; position: absolute; inset: 0; margin: 0; background: #f3f3f3; }
.st-home .fullscreen-container .section-bg figure > img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
@media (max-width: 767px) {
  .kt-page .mce-content-body h3, .kt-page article.mce-content-body h3 { font-size: 1.8rem; }
  .kt-page .mce-content-body .lead { line-height: 1.95; }
  .kt-page .kt-linea .main-content-header, .kt-page .kt-linea ~ .kt-cta .main-content-header { display: block; }
}
@media (min-width: 768px) { .kt-page .kt-linea article.mce-content-body p.lead { display: flow-root; } }
@media (max-width: 767px) {
  .kt-page .mce-content-body p.lead { line-height: 32.292px; }
  .kt-page .kt-linea article.mce-content-body p.lead { display: block; }
  .kt-page .kt-linea article.mce-content-body > p.lead:last-child { margin-bottom: 30px; }
}
@media (max-width: 767px) { .kt-page .kt-linea ~ .kt-cta article.mce-content-body > p:last-child { margin-bottom: 0; } }
/* [storia] rifiniture dal probe: .lead #6a6a6a, b nei .well 400, lead nelle card, textlink Spa 400 */
.st-page .mce-content-body .lead, .st-page .mce-content-body .lead b, .st-page .invert-item .lead, .st-page .invert-item .lead b { color: #6a6a6a; }
.st-page .invert-item p.lead { font-size: 1.15em; line-height: 1.8em; }
@media (max-width: 991px) { .st-page .invert-item p.lead { line-height: 1.95em; } }
.st-page .mce-content-body .well b { font-weight: 400; }
.st-page .st-spa .textlink { font-weight: 400; }
/* [generic] l'ufficiale non anima le righe del contenuto (solo .anim-sequ-one): niente fade-in-up di main.js sulle pagine generiche */
.kg-page .fade-in-up { opacity: 1; transform: none; transition: none; }
/* [storia] fondo dello slider come l'ufficiale (.opt-box-one #3a3a3a) finche' la foto non e' caricata */
.st-hero .opt-box-one.fullscreen-slider, .st-home-hero .opt-box-one.fullscreen-slider { background: #3a3a3a; }
@media (max-width: 767px) {
  .kt-page .kt-legal .box-padding-l { padding: 30px; }
  .kt-page .kt-legal h3.h2 { font-size: 34.56px; line-height: 1.1; }
}
.kt-page .btn-container { gap: 0 14px; }
/* [generic] slider a altezza costante = scheda piu' alta (come slick: il track prende l'altezza massima); le schede nascoste restano nel flusso ma invisibili */
.kg-page .room-slider, .kg-page .side-slider { display: grid; }
.kg-page .room-slider > .one-room, .kg-page .side-slider > .sidecard { grid-area: 1 / 1; min-width: 0; }
.kg-page .room-slider > .one-room[hidden], .kg-page .side-slider > .sidecard[hidden] { display: block !important; visibility: hidden; pointer-events: none; }
.kg-page .side-slider > .side-arrows { display: contents; }
.kg-page .mce-content-body h1, .kg-page .mce-content-body h2, .kg-page .mce-content-body h3, .kg-page .mce-content-body h4, .kg-page .mce-content-body h5, .kg-page .mce-content-body h6 { margin: 5px 0 10px; padding: 0; }
.kg-page .side-listings h4 { margin: 5px 0 20px !important; }
/* le schede "Altre tipologie" ufficiali iniziano con un <h4></h4> vuoto (margine 10px) che qui non c'e' nel testo */
.kg-page .one-room .room-data .col-lg-5 > .mce-content-body { padding-top: 10px; }

/* [legal] segnaposto mappa: Google Maps si carica solo con consenso o su richiesta */
.kt-map-consent { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; min-height: 300px; padding: 2rem; text-align: center; background: #f2f6fa; border: 1px solid #e0e6ee; border-radius: 4px; }
.kt-map-consent p { margin: 0; max-width: 32rem; }
