

:root{
  --v45-title-size: clamp(2.45rem, 4.2vw, 3rem);
  --v45-title-line: .98;
  --v45-card-bg: rgba(255,255,255,.74);
  --v45-card-border: rgba(37,31,29,.10);
  --v45-card-shadow: 0 24px 70px rgba(37,31,29,.055);
  --v45-ease: cubic-bezier(.19,1,.22,1);
}

/* Titoli uniformi e più facili da mantenere */
.hero-title,
.page-title,
.section-title,
.cta-title,
.camere-hero-title,
.servizi-hero-title,
.faq-hero-title,
.service-detail-hero-title,
.storia-hero-title,
.contatti-hero-title,
.territorio-hero-title,
.room-type-title,
.storia-parallax-copy h2,
.territorio-parallax-copy h2,
.servizi-parallax-title{
  font-size: var(--v45-title-size) !important;
  line-height: var(--v45-title-line) !important;
  letter-spacing: -.045em !important;
  max-width: 980px;
}

/* Hero: più elegante ma senza cambiare struttura */
.hero-section,
.servizi-hero,
.camere-hero,
.faq-hero,
.service-detail-hero,
.storia-hero,
.contatti-hero,
.territorio-hero,
.room-type-hero{
  min-height: 100svh;
}

.hero-copy,
.servizi-hero-content,
.camere-hero-content,
.faq-hero-content,
.service-detail-hero-content,
.storia-hero-content,
.contatti-hero-content,
.territorio-hero-content,
.room-type-hero-content{
  padding-bottom: clamp(58px, 7vw, 104px) !important;
}

.hero-lead,
.page-lead,
.servizi-hero-lead,
.camere-hero-lead,
.faq-hero-lead,
.service-detail-hero-lead,
.storia-hero-lead,
.contatti-hero-lead,
.territorio-hero-lead,
.room-type-lead{
  max-width: 680px;
  font-size: clamp(.98rem, 1.15vw, 1.14rem) !important;
  line-height: 1.72 !important;
}

/* Cards uniformi */
.servizio-card,
.tao-highlight-card,
.tao-review-platform,
.tao-faq-card,
.service-detail-card,
.storia-chapter-card,
.territorio-story-card,
.contatti-info-grid article,
.room-type-features-grid article,
.camere-principles-grid article,
.faq-facts-grid article,
.service-detail-facts-grid article,
.storia-facts-grid article,
.territorio-facts-grid article,
.contatti-map-facts article{
  background: var(--v45-card-bg) !important;
  border-color: var(--v45-card-border) !important;
  box-shadow: none;
  transition:
    transform .65s var(--v45-ease),
    background-color .65s var(--v45-ease),
    border-color .65s var(--v45-ease),
    box-shadow .65s var(--v45-ease) !important;
}

.servizio-card:hover,
.tao-highlight-card:hover,
.tao-review-platform:hover,
.tao-faq-card:hover,
.service-detail-card:hover,
.storia-chapter-card:hover,
.territorio-story-card:hover,
.contatti-info-grid article:hover,
.room-type-features-grid article:hover,
.camere-principles-grid article:hover{
  transform: translateY(-5px);
  background: rgba(255,255,255,.94) !important;
  border-color: rgba(120,73,77,.22) !important;
  box-shadow: var(--v45-card-shadow);
}

/* Carousel unico: stile camere usato anche in home, servizi e territorio */
.home-unified-carousel,
.servizi-unified-carousel,
.territorio-carousel-section{
  background:
    radial-gradient(circle at 88% 8%, rgba(120,73,77,.08), transparent 30%),
    linear-gradient(180deg, var(--paper,#FFFDFC), #F3EADF) !important;
}

.home-unified-carousel .camere-drag-gallery,
.servizi-unified-carousel .camere-drag-gallery,
.territorio-carousel-section .camere-drag-gallery{
  overflow: hidden;
  cursor: grab;
}

.home-unified-carousel .camere-drag-gallery.is-dragging,
.servizi-unified-carousel .camere-drag-gallery.is-dragging,
.territorio-carousel-section .camere-drag-gallery.is-dragging{
  cursor: grabbing;
}

.home-unified-carousel .camere-type-card,
.servizi-unified-carousel .camere-type-card,
.territorio-carousel-section .camere-type-card{
  flex: 0 0 clamp(320px, 37vw, 590px);
  height: clamp(420px, 64vh, 720px);
}

.home-unified-carousel .camere-type-card h3,
.servizi-unified-carousel .camere-type-card h3,
.territorio-carousel-section .camere-type-card h3{
  max-width: 560px;
  font-size: clamp(1.9rem, 3vw, 3.9rem) !important;
}

/* Language selector: più pulito */
.dg-language {
    cursor: pointer;
    appearance: none !important;
    min-width: 76px !important;
    height: 42px !important;
    padding: 0px 34px 0px 14px !important;
    border: 1px solid !important;
    border-radius: 9px !important;
    background: linear-gradient(45deg, transparent 50%, currentcolor 50%) calc(100% - 18px) 18px / 6px 6px no-repeat, linear-gradient(135deg, currentcolor 50%, transparent 50%) calc(100% - 13px) 18px / 6px 6px no-repeat !important;
    color: inherit !important;
    font-size: 0.72rem !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    outline: none !important;
}
.dg-language  option {
 
    background: #78494D!important
}


.dg-language:focus-visible{
  outline: 2px solid rgba(120,73,77,.35) !important;
  outline-offset: 3px;
}

/* Page transition with logo */
.dg-page-transition{
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  pointer-events: none;
  background: var(--plum,#78494D);
  opacity: 0;
  visibility: hidden;
  transition: opacity .48s var(--v45-ease), visibility 0s linear .48s;
  will-change: opacity;
}

.dg-page-transition__panel{
  display: grid;
  place-items: center;
  gap: 16px;
  transform: translateY(8px) scale(.985);
  opacity: 0;
  transition: transform .48s var(--v45-ease), opacity .48s var(--v45-ease);
  will-change: transform, opacity;
}

.dg-page-transition__logo{
  width: clamp(106px, 16vw, 344px);
  height: auto;
  filter: brightness(0) invert(1);
}

.dg-page-transition__panel span{
  color: rgba(255,255,255,.72);
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
}

/*
  .is-entering è già stampato nell'HTML: così il loader è visibile subito
  al primo paint e non viene riattivato dal JS dopo il caricamento.
*/
.dg-page-transition.is-entering,
body.dg-page-is-leaving .dg-page-transition,
body.dg-page-is-entering .dg-page-transition{
  opacity: 1;
  visibility: visible;
  transition: opacity .48s var(--v45-ease), visibility 0s linear 0s;
}

.dg-page-transition.is-entering .dg-page-transition__panel,
body.dg-page-is-leaving .dg-page-transition__panel,
body.dg-page-is-entering .dg-page-transition__panel{
  opacity: 1;
  transform: translateY(0) scale(1);
}

body.dg-page-is-leaving{
  cursor: progress;
}

@media (prefers-reduced-motion: reduce){
  .dg-page-transition,
  .dg-page-transition__panel{
    transition: none !important;
    animation: none !important;
  }
}

/* Header: meno aggressivo e coerente */
[data-fixed-header],
.dg-topbar{
  transition:
    background .34s var(--v45-ease),
    color .34s var(--v45-ease),
    box-shadow .34s var(--v45-ease),
    border-color .34s var(--v45-ease),
    min-height .34s var(--v45-ease) !important;
}

[data-fixed-header].is-scrolled,
[data-fixed-header].dg-force-solid,
.dg-topbar.is-scrolled,
.dg-topbar.dg-force-solid,
body.menu-open [data-fixed-header],
body.menu-open .dg-topbar{
  background: rgba(255,253,252,.96) !important;
  backdrop-filter: blur(18px) saturate(1.12) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.12) !important;
  box-shadow: 0 18px 48px rgba(30,28,26,.08) !important;
}

/* Menu overlay link consistency */
.dg-overlay-primary .nav-link,
.dg-overlay-primary .dg-overlay-link,
.dg-overlay-menu .nav-link,
.dg-overlay-menu .dg-overlay-link,
[data-overlay-menu] .nav-link,
[data-overlay-menu] .dg-overlay-link{
  font-size: clamp(2.45rem, 6vw, 2.7rem) !important;
}

/* Reduce duplication visual noise on mobile */
@media (max-width: 991px){
  :root{
    --v45-title-size: clamp(2.35rem, 10vw, 3rem);
  }

  .home-unified-carousel .camere-type-card,
  .servizi-unified-carousel .camere-type-card,
  .territorio-carousel-section .camere-type-card{
    flex-basis: min(84vw, 520px);
    height: min(62vh, 620px);
  }

  .dg-language{
    min-width: 62px !important;
    height: 38px !important;
    padding-left: 11px !important;
  }
}

@media (max-width: 575px){
  .hero-actions,
  .servizi-hero-actions,
  .camere-hero-actions,
  .faq-hero-actions,
  .service-detail-hero-actions,
  .storia-hero-actions,
  .contatti-hero-actions,
  .territorio-hero-actions{
    display: grid !important;
  }

  .home-unified-carousel .camere-type-card,
  .servizi-unified-carousel .camere-type-card,
  .territorio-carousel-section .camere-type-card{
    flex-basis: calc(100vw - 52px);
    height: 550px;
  }
}
