/* =============================================================================
   Pensione Zio Attilio — style.css
   ============================================================================= */

/* 1. Variabili globali */
:root{
  --navy:#17384d;
  --navy-700:#1f4a63;
  --navy-900:#102838;
  --sea:#2D809B;
  --sea-600:#226a89;
  --sea-300:#a9cfe0;
  --sea-100:#f5fbff;
  --sand:#d8a560;
  --offer:#f0783e;
  --sand-light:#ffffff;
  --bg:#edf8ff;
  --ink:#48606b;
  --heading:#30515f;
  --color-green-light:var(--sea-100);
  --color-green:var(--sea-600);
  --font-display:'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-body:'Jost', 'Segoe UI', system-ui, Arial, sans-serif;
  --ease:cubic-bezier(.4,0,.2,1);

  --gap-section:2rem;
  --gap-lg:1.5rem;
  --gap-md:1.15rem;
  --gap-sm:.85rem;
  --gap-title:.6rem;
}
@media(min-width:36rem){
  :root{--gap-section:2.5rem;--gap-lg:1.75rem;--gap-md:1.4rem;--gap-sm:1rem;--gap-title:.7rem}
}
@media(min-width:48rem){
  :root{--gap-section:3rem;--gap-lg:2.1rem;--gap-md:1.6rem;--gap-sm:1.1rem;--gap-title:.8rem}
}
@media(min-width:62rem){
  :root{--gap-section:3.5rem;--gap-lg:2.5rem;--gap-md:1.9rem;--gap-sm:1.2rem;--gap-title:.9rem}
}
@media(min-width:80rem){
  :root{--gap-section:4rem;--gap-lg:2.85rem;--gap-md:2.1rem;--gap-sm:1.35rem;--gap-title:1rem}
}
@media(min-width:90rem){
  :root{--gap-section:4.75rem;--gap-lg:3.25rem;--gap-md:2.4rem;--gap-sm:1.5rem;--gap-title:1.1rem}
}

/* 2. Reset / base */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);font-family:var(--font-body);font-size:1rem;line-height:normal;font-weight:300;-webkit-font-smoothing:antialiased}
body.no-scroll{overflow:hidden} /* blocca lo scroll quando la lightbox della galleria è aperta */
img{max-width:100%;height:auto;display:block}
ul{list-style:none;margin:0;padding:0}
a{color:var(--sea-600);text-decoration:none}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:.125rem solid var(--sea);outline-offset:.125rem;border-radius:.125rem}
#header a:focus-visible,#header button:focus-visible,.hero-slider a:focus-visible,.hero-slider button:focus-visible,.menu-items a:focus-visible,.menu-items button:focus-visible,.parallax-container a:focus-visible{outline-color:#fff}
/* link nei paragrafi (non nav/bottoni): sottolineatura all'hover per distinguerli dal testo */
.note a,.box-txt>p a,.faq-answer a,#dove-siamo p a{text-decoration:underline;text-underline-offset:.15em;text-decoration-thickness:.0625rem}
a:hover{color:var(--navy);}

/* Icone SVG (<use href="#icon-...">): dimensione comune a tutto il sito */
svg.material-icons{display:inline-block;width:1.5em;height:1.5em;fill:currentColor;stroke:currentColor;vertical-align:-.15em;flex:none}

/* Testo presente solo per chi usa uno screen reader (es. "apre in una nuova
   scheda" accanto a un link) — nascosto alla vista ma letto dagli screen
   reader, pattern standard riutilizzabile ovunque nel sito */
.visually-hidden{position:absolute;width:.0625rem;height:.0625rem;padding:0;margin:-.0625rem;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

h1,h2,h3,h4{font-family:var(--font-display);color:var(--heading);line-height:1.2;margin:0 0 .5em;font-weight:700}
h1, h2{font-size:1.6875rem}
h3, .internal-like-h3{font-size:1.5rem}
h4{font-size:1.375rem}
h5{font-size:1.25rem}
h6{font-size:1.125rem}
@media(min-width:48rem){h1,h2{font-size:2rem}}
@media(min-width:62rem){h1,h2{font-size:2.25rem}}
@media(min-width:80rem){h1,h2{font-size:2.375rem}h3, .internal-like-h3{font-size:1.6875rem}h4{font-size:1.5rem}}
@media(min-width:90rem){h1,h2{font-size:2.5rem}}
@media(min-width:120rem){h1,h2{font-size:2.75rem;}h3, .internal-like-h3{font-size:1.75rem}h4{font-size:1.6875rem}h5{font-size:1.375rem}}

@media(min-width:48rem){h4{font-size:1.4rem}}

p{margin:0 0 1.75rem;color:#222;font-size:1rem;line-height:1.6}
@media(min-width:62rem){p{margin-bottom:1.75rem}}
@media(min-width:90rem){p{margin-bottom:2.25rem;font-size:1.125rem;}p.small{font-size:1rem;}}
@media(min-width:120rem){p{margin-bottom:2.5rem;font-size:1.125rem;line-height:1.8}p.small{font-size:1rem;}}

p:last-child,p:last-of-type{margin-bottom:0}

@supports (text-wrap: balance){h2,.faq-item summary{text-wrap:balance}}

/* 2. Sistema di griglia completo */

.container{width:100%;max-width:73.75rem;margin:0 auto;padding:0 1.25rem}
.container-fluid{width:100%;padding:0 1.5rem}

@media(min-width:90rem){.container{max-width:80rem;padding:0 2rem}.container-fluid{padding:0 2.5rem}}

.row{display:flex;flex-wrap:wrap;margin:0 -.75rem 0}
.row>[class*="col"]{padding:0 .75rem;margin-bottom:1.75rem}
.row>[class*="col"]:last-child{margin-bottom:0}
@media(min-width:62rem){.row>[class*="col"]{padding:0 .75rem;margin-bottom:2rem} .row>[class*="col"]:last-child{margin-bottom:2rem}}
@media(min-width:80rem){.row{margin:0 -.1rem 0}.row>[class*="col"]{padding:0 1rem;margin-bottom:2.5rem}}
@media(min-width:90rem){.row{margin:0 -1.5rem 0}.row>[class*="col"]{padding:0 1.5rem;margin-bottom:3em}.row>[class*="col"]:last-child{margin-bottom:3rem}}
@media(min-width:120rem){.row>[class*="col"]{padding:0 1.5rem;margin-bottom:3.5em}.row>[class*="col"]:last-child{margin-bottom:3.5rem}}

.col-auto{flex:0 0 auto;width:auto;max-width:100%}
.col{flex:1 1 0%;max-width:100%}
.col-1{flex:0 0 8.3333%;max-width:8.3333%}
.col-2{flex:0 0 16.6667%;max-width:16.6667%}
.col-3{flex:0 0 25%;max-width:25%}
.col-4{flex:0 0 33.3333%;max-width:33.3333%}
.col-5{flex:0 0 41.6667%;max-width:41.6667%}
.col-6{flex:0 0 50%;max-width:50%}
.col-7{flex:0 0 58.3333%;max-width:58.3333%}
.col-8{flex:0 0 66.6667%;max-width:66.6667%}
.col-9{flex:0 0 75%;max-width:75%}
.col-10{flex:0 0 83.3333%;max-width:83.3333%}
.col-11{flex:0 0 91.6667%;max-width:91.6667%}
.col-12{flex:0 0 100%;max-width:100%}
.offset-0{margin-left:0%}
.offset-1{margin-left:8.3333%}
.offset-2{margin-left:16.6667%}
.offset-3{margin-left:25%}
.offset-4{margin-left:33.3333%}
.offset-5{margin-left:41.6667%}
.offset-6{margin-left:50%}
.offset-7{margin-left:58.3333%}
.offset-8{margin-left:66.6667%}
.offset-9{margin-left:75%}
.offset-10{margin-left:83.3333%}
.offset-11{margin-left:91.6667%}

@media(min-width:36rem){
.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}
.col-sm{flex:1 1 0%;max-width:100%}
.col-sm-1{flex:0 0 8.3333%;max-width:8.3333%}
.col-sm-2{flex:0 0 16.6667%;max-width:16.6667%}
.col-sm-3{flex:0 0 25%;max-width:25%}
.col-sm-4{flex:0 0 33.3333%;max-width:33.3333%}
.col-sm-5{flex:0 0 41.6667%;max-width:41.6667%}
.col-sm-6{flex:0 0 50%;max-width:50%}
.col-sm-7{flex:0 0 58.3333%;max-width:58.3333%}
.col-sm-8{flex:0 0 66.6667%;max-width:66.6667%}
.col-sm-9{flex:0 0 75%;max-width:75%}
.col-sm-10{flex:0 0 83.3333%;max-width:83.3333%}
.col-sm-11{flex:0 0 91.6667%;max-width:91.6667%}
.col-sm-12{flex:0 0 100%;max-width:100%}
.offset-sm-0{margin-left:0%}
.offset-sm-1{margin-left:8.3333%}
.offset-sm-2{margin-left:16.6667%}
.offset-sm-3{margin-left:25%}
.offset-sm-4{margin-left:33.3333%}
.offset-sm-5{margin-left:41.6667%}
.offset-sm-6{margin-left:50%}
.offset-sm-7{margin-left:58.3333%}
.offset-sm-8{margin-left:66.6667%}
.offset-sm-9{margin-left:75%}
.offset-sm-10{margin-left:83.3333%}
.offset-sm-11{margin-left:91.6667%}
}
@media(min-width:48rem){
.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}
.col-md{flex:1 1 0%;max-width:100%}
.col-md-1{flex:0 0 8.3333%;max-width:8.3333%}
.col-md-2{flex:0 0 16.6667%;max-width:16.6667%}
.col-md-3{flex:0 0 25%;max-width:25%}
.col-md-4{flex:0 0 33.3333%;max-width:33.3333%}
.col-md-5{flex:0 0 41.6667%;max-width:41.6667%}
.col-md-6{flex:0 0 50%;max-width:50%}
.col-md-7{flex:0 0 58.3333%;max-width:58.3333%}
.col-md-8{flex:0 0 66.6667%;max-width:66.6667%}
.col-md-9{flex:0 0 75%;max-width:75%}
.col-md-10{flex:0 0 83.3333%;max-width:83.3333%}
.col-md-11{flex:0 0 91.6667%;max-width:91.6667%}
.col-md-12{flex:0 0 100%;max-width:100%}
.offset-md-0{margin-left:0%}
.offset-md-1{margin-left:8.3333%}
.offset-md-2{margin-left:16.6667%}
.offset-md-3{margin-left:25%}
.offset-md-4{margin-left:33.3333%}
.offset-md-5{margin-left:41.6667%}
.offset-md-6{margin-left:50%}
.offset-md-7{margin-left:58.3333%}
.offset-md-8{margin-left:66.6667%}
.offset-md-9{margin-left:75%}
.offset-md-10{margin-left:83.3333%}
.offset-md-11{margin-left:91.6667%}
}
@media(min-width:62rem){
.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}
.col-lg{flex:1 1 0%;max-width:100%}
.col-lg-1{flex:0 0 8.3333%;max-width:8.3333%}
.col-lg-2{flex:0 0 16.6667%;max-width:16.6667%}
.col-lg-3{flex:0 0 25%;max-width:25%}
.col-lg-4{flex:0 0 33.3333%;max-width:33.3333%}
.col-lg-5{flex:0 0 41.6667%;max-width:41.6667%}
.col-lg-6{flex:0 0 50%;max-width:50%}
.col-lg-7{flex:0 0 58.3333%;max-width:58.3333%}
.col-lg-8{flex:0 0 66.6667%;max-width:66.6667%}
.col-lg-9{flex:0 0 75%;max-width:75%}
.col-lg-10{flex:0 0 83.3333%;max-width:83.3333%}
.col-lg-11{flex:0 0 91.6667%;max-width:91.6667%}
.col-lg-12{flex:0 0 100%;max-width:100%}
.offset-lg-0{margin-left:0%}
.offset-lg-1{margin-left:8.3333%}
.offset-lg-2{margin-left:16.6667%}
.offset-lg-3{margin-left:25%}
.offset-lg-4{margin-left:33.3333%}
.offset-lg-5{margin-left:41.6667%}
.offset-lg-6{margin-left:50%}
.offset-lg-7{margin-left:58.3333%}
.offset-lg-8{margin-left:66.6667%}
.offset-lg-9{margin-left:75%}
.offset-lg-10{margin-left:83.3333%}
.offset-lg-11{margin-left:91.6667%}
}
@media(min-width:80rem){
.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}
.col-xl{flex:1 1 0%;max-width:100%}
.col-xl-1{flex:0 0 8.3333%;max-width:8.3333%}
.col-xl-2{flex:0 0 16.6667%;max-width:16.6667%}
.col-xl-3{flex:0 0 25%;max-width:25%}
.col-xl-4{flex:0 0 33.3333%;max-width:33.3333%}
.col-xl-5{flex:0 0 41.6667%;max-width:41.6667%}
.col-xl-6{flex:0 0 50%;max-width:50%}
.col-xl-7{flex:0 0 58.3333%;max-width:58.3333%}
.col-xl-8{flex:0 0 66.6667%;max-width:66.6667%}
.col-xl-9{flex:0 0 75%;max-width:75%}
.col-xl-10{flex:0 0 83.3333%;max-width:83.3333%}
.col-xl-11{flex:0 0 91.6667%;max-width:91.6667%}
.col-xl-12{flex:0 0 100%;max-width:100%}
.offset-xl-0{margin-left:0%}
.offset-xl-1{margin-left:8.3333%}
.offset-xl-2{margin-left:16.6667%}
.offset-xl-3{margin-left:25%}
.offset-xl-4{margin-left:33.3333%}
.offset-xl-5{margin-left:41.6667%}
.offset-xl-6{margin-left:50%}
.offset-xl-7{margin-left:58.3333%}
.offset-xl-8{margin-left:66.6667%}
.offset-xl-9{margin-left:75%}
.offset-xl-10{margin-left:83.3333%}
.offset-xl-11{margin-left:91.6667%}
}
@media(min-width:90rem){
.col-xxl-auto{flex:0 0 auto;width:auto;max-width:100%}
.col-xxl{flex:1 1 0%;max-width:100%}
.col-xxl-1{flex:0 0 8.3333%;max-width:8.3333%}
.col-xxl-2{flex:0 0 16.6667%;max-width:16.6667%}
.col-xxl-3{flex:0 0 25%;max-width:25%}
.col-xxl-4{flex:0 0 33.3333%;max-width:33.3333%}
.col-xxl-5{flex:0 0 41.6667%;max-width:41.6667%}
.col-xxl-6{flex:0 0 50%;max-width:50%}
.col-xxl-7{flex:0 0 58.3333%;max-width:58.3333%}
.col-xxl-8{flex:0 0 66.6667%;max-width:66.6667%}
.col-xxl-9{flex:0 0 75%;max-width:75%}
.col-xxl-10{flex:0 0 83.3333%;max-width:83.3333%}
.col-xxl-11{flex:0 0 91.6667%;max-width:91.6667%}
.col-xxl-12{flex:0 0 100%;max-width:100%}
.offset-xxl-0{margin-left:0%}
.offset-xxl-1{margin-left:8.3333%}
.offset-xxl-2{margin-left:16.6667%}
.offset-xxl-3{margin-left:25%}
.offset-xxl-4{margin-left:33.3333%}
.offset-xxl-5{margin-left:41.6667%}
.offset-xxl-6{margin-left:50%}
.offset-xxl-7{margin-left:58.3333%}
.offset-xxl-8{margin-left:66.6667%}
.offset-xxl-9{margin-left:75%}
.offset-xxl-10{margin-left:83.3333%}
.offset-xxl-11{margin-left:91.6667%}
}



/* 3. Spazi di sezione e titoli */
.home{padding:2.5rem 0}
.internal{padding:2.5rem 0}
.internal.no-parallax{padding:6.938rem 0 2.5rem 0}
@media(min-width:48rem){.home{padding:3.5rem 0}}
@media(min-width:62rem){.home{padding:4.5rem 0}}
@media(min-width:80rem){.home{padding:7rem 0}}
@media(min-width:90rem){.home{padding:10rem 0}.internal{padding:7rem 0}.internal.no-parallax{padding:10.375rem 0 4.5rem 0}.internal{padding:4.5rem 0}} 
@media(min-width:120rem){.internal.no-parallax{padding:10.375rem 0 4.5rem 0}.internal{padding:4.5rem 0}}

.title{margin-bottom:1.5rem}
.title h2{margin-bottom:0}
.title.c-center{text-align:center}
.title p, .c-title p{margin:0;color:#626f75;margin-top:0.75rem}
@media(min-width:48rem){.title{margin-bottom:2rem}}
@media(min-width:62rem){.title{margin-bottom:2.25rem}}
@media(min-width:80rem){.title{margin-bottom:2.5rem}}
@media(min-width:90rem){.title{margin:0 auto 3.25rem}}
@media(min-width:120rem){.title{margin:0 auto 3.75rem}}

@media(min-width:48rem){.title p{font-size:1.125rem}}
@media(min-width:90rem){.title p{font-size:1.25rem}}
@media(max-width:61.9375rem){.title.c-center{text-align:left}.title.c-center .eyebrow{justify-content:flex-start}.title.c-center .eyebrow::after{content:none}}

@media(min-width:62rem){.home .row,.internal .row{align-items:center;column-gap:0}}
.home .col-lg-6>img{border-radius:.75rem;box-shadow: 0 .4rem 1rem rgba(22, 41, 74, .05);}

.home .row.page-layout,.internal .row.page-layout{align-items:flex-start!important;margin-top:0}
.page-main{min-width:0}
.c-page {margin-bottom:1.75rem;}
.c-page:last-child {margin-bottom:0;}
@media(min-width:62rem){.c-page {margin-bottom:2rem;}}
@media(min-width:80rem){.c-page {margin-bottom:2.5rem;}}
@media(min-width:90rem){.c-page {margin-bottom:3rem;}}
@media(min-width:120rem){.c-page {margin-bottom:3.5rem;}}

.c-title{margin-bottom:1.5rem;}
.c-title h1, .c-title h2{margin-bottom:0;}

@media(min-width:48rem){.c-title{margin-bottom:2rem;}}
@media(min-width:62rem){.c-title{margin-bottom:2.25rem;}.box .c-title, .sidebar-card .c-title{margin-bottom:1.75rem;}}
@media(min-width:80rem){.c-title{margin-bottom:2.5rem;}.box .c-title, .sidebar-card .c-title{margin-bottom:2rem;}}
@media(min-width:120rem){.c-title{margin-bottom:3rem;}.box .c-title, .sidebar-card .c-title{margin-bottom:2.25rem;}}



/* 6. Header */
#header,#scroll-header{position:fixed;top:0;left:0;right:0;z-index:1000}
#header{background: linear-gradient(180deg, rgb(20 92 122) 0%, rgba(22, 41, 74, .25) 100%);transition:opacity .25s var(--ease),visibility .25s var(--ease)}
#scroll-header{position:fixed!important;top:0;left:0;right:0;z-index:1000;background:#fff;box-shadow:0 .125rem .875rem rgba(22,41,74,.12);opacity:0;visibility:hidden;transform:translateY(-100%);transition:opacity .25s var(--ease),visibility .25s var(--ease),transform .25s var(--ease)}
body.scrolled #header{opacity:0;visibility:hidden;pointer-events:none}
body.scrolled.scroll-up #scroll-header{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}

.header-navbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0}
#scroll-header .header-navbar{padding:0.75rem 0}

#logo {margin:0;line-height:0}
#logo h1{margin:0;line-height:0}
#logo a{display:inline-block;line-height:0}
.logo-img{height:3.5rem;width:auto;display:block;border-radius:0;transition:height .25s var(--ease)}
#scroll-header .logo-img{height:3rem}
@media(max-width:89.938rem){.logo-img{height:2.75rem}#scroll-header .logo-img{height:2.5rem}.menu-logo{height:2.5rem;margin-bottom:1.5rem}}

@media(min-width:90rem){.header-navbar{padding:1.25rem 0}}

/* 7. Footer */
#footer{background:var(--navy);color:#c9d5e4}
#footer-top{padding:3rem 0 2.5rem}

#footer-top svg.material-icons{width:1em;height:1em;}


#footer h3{color:#fff;font-size:1rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:.0625rem solid rgba(255,255,255,.15)}
#footer p{color:#aebccd;font-size:.9375rem}
#footer ul li{margin-bottom:.8rem;display:flex;align-items:flex-start;font-size:.9375rem}
#footer a{color:#c9d5e4}
#footer a:hover{color:#fff}
#footer .social{display:flex;gap:.875rem;margin-top:1rem}
#footer .social a{width:2.375rem;height:2.375rem;border-radius:50%;background:rgba(255,255,255,.1);display:grid;place-items:center;color:#fff;transition:.2s}
#footer .social a:hover{background:var(--sea)}
#footer-bottom{border-top:.0625rem solid rgba(255,255,255,.14);padding:1.1rem 0;font-size:.85rem;color:#9fb0c2}
#footer-bottom a{color:#c9d5e4}
#footer .i-arrow{color:var(--sea-100);flex:none;margin-top:.15rem;margin-right:0.75rem;}
@media(min-width:48rem){#footer-top{padding:3.75rem 0 2.5rem}}
@media(min-width:62rem){#footer-top{padding:4.5rem 0 2.5rem}#footer ul li{margin-bottom:1rem;}#footer h3{font-size:1rem;margin-bottom:1.75rem;padding-bottom:.875rem;}}
@media(min-width:90rem){#footer-top{padding:5rem 0 3rem}#footer p{color:#aebccd;font-size:1rem}#footer ul li{margin-bottom:1.375rem;font-size:1rem}#footer h3{font-size:1.125rem;margin-bottom:1.875rem;padding-bottom:.875rem;}}

/* 8. Menu di navigazione */

#main-nav ul{display:none;align-items:center;gap:1.75rem}
@media(min-width:80rem){#main-nav ul{display:flex}}
#main-nav a{font-family:var(--font-body);font-weight:400;font-size:.75rem;text-transform:uppercase;letter-spacing:0.07em}
#header #main-nav a{color:#fff}
#header #main-nav a:hover{color:var(--sea-100)}
#scroll-header #main-nav a{color:var(--navy)}
#scroll-header #main-nav a:hover{color:var(--sea-600)}
#main-nav .nav-cta,#scroll-header #main-nav .nav-cta,#scroll-header .mobile-actions .nav-cta{color:#fff;background-color: var(--sea-600);border:none;padding:0.5rem 1rem;}
#scroll-header #main-nav .nav-cta:hover,#scroll-header .mobile-actions .nav-cta:hover{color:#fff;background-color: var(--navy);}

/* 9. Selettore lingue */
.language{position:relative}
.lang-cur{display:inline-flex;align-items:center;gap:.5rem;background:transparent;border:.0625rem solid transparent;border-radius:.55rem;cursor:pointer;font-family:var(--font-body);font-weight:600;font-size:.85rem;letter-spacing:.05em;padding:.45rem .7rem;line-height:1;transition:background .2s var(--ease),border-color .2s var(--ease)}
.lang-cur .lang-flag{font-size:1.1rem;line-height:1}
.lang-cur .lang-caret{width:.5rem;height:.5rem;border-right:.125rem solid currentColor;border-bottom:.125rem solid currentColor;transform:translateY(-.125rem) rotate(45deg);transition:transform .28s var(--ease)}
.language.open .lang-cur .lang-caret{transform:translateY(.0625rem) rotate(-135deg)}
#header .lang-cur{color:#fff}
#header .lang-cur:hover,#header .language.open .lang-cur{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.3)}
#scroll-header .lang-cur{color:var(--navy)}
#scroll-header .lang-cur:hover,#scroll-header .language.open .lang-cur{background:var(--sea-100)}

.lang-menu{position:absolute;top:calc(100% + .6rem);right:0;left:auto;background:#fff;border-radius:.85rem;box-shadow: 0 .4rem 1rem rgba(22, 41, 74, .05);padding:.4rem;min-width:11.5rem;z-index:1200;display:flex;flex-direction:column;gap:.1rem;opacity:0;visibility:hidden;transform:translateY(-.55rem) scale(.97);transform-origin:top right;transition:opacity .22s var(--ease),transform .22s var(--ease),visibility .22s var(--ease)}
.language.open .lang-menu{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
.lang-menu::before{content:"";position:absolute;top:-.42rem;right:1.15rem;width:.85rem;height:.85rem;background:#fff;transform:rotate(45deg);box-shadow:-.125rem -.125rem .3125rem rgba(22,41,74,.06)}
.lang-menu a{position:relative;z-index:1;display:flex;align-items:center;gap:.7rem;color:var(--navy);padding:.65rem .85rem;border-radius:.55rem;font-family:var(--font-body);font-weight:500;font-size:.95rem;text-transform:none;letter-spacing:0;transition:background .18s var(--ease);color:var(--navy)!important}
.lang-menu a .lang-flag{font-size:1.2rem;line-height:1}
.lang-menu a:hover{background:var(--sea-100);text-decoration:none;color:var(--navy)!important}
.lang-menu a.active{color:var(--sea-600);font-weight:700;background:var(--sea-100)}
.lang-menu a.active::after{content:"";margin-left:auto;width:.55rem;height:.32rem;border-left:.125rem solid currentColor;border-bottom:.125rem solid currentColor;transform:rotate(-45deg)}

.menu-icon{display:inline-flex;align-items:center;gap:.6rem;background:transparent;border:none;cursor:pointer;padding:.4rem;font-family:var(--font-body);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}
.menu-icon .icon-bars{display:inline-flex;flex-direction:column;gap:.25rem}
.menu-icon .icon-bars span{width:1.5rem;height:.125rem;border-radius:.125rem;transition:background .25s var(--ease)}
#header .menu-icon .icon-bars span{background:#fff}
#scroll-header .menu-icon .icon-bars span{background:var(--navy)}
.menu-icon .menu-label{position:absolute;width:.0625rem;height:.0625rem;padding:0;margin:-.0625rem;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:80rem){.menu-icon{display:none}}

/* Wrapper mobile per "Chiama ora" + pulsante Menu, affiancati, solo nello
   scroll-header (nell'header principale il menu resta solo l'icona) */
.mobile-actions{display:flex;align-items:center;gap:.75rem}
@media(min-width:80rem){.mobile-actions{display:none}}
/* Nello scroll-header la scritta "Menu" è visibile accanto alle barre
   (nell'header principale resta nascosta, solo per screen reader) */
#scroll-header .menu-icon .menu-label{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:nowrap;border:0;color:var(--navy)}
@media(min-width:90rem){#main-nav ul{gap:2.25rem}#main-nav a{letter-spacing:0.07em}
}
@media(min-width:120rem){#main-nav ul{gap:2.875rem}#main-nav a{font-size:.875rem;letter-spacing:0.07em}
}

/* 10. Menu mobile */
.menu-items{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1500;background:var(--navy);transform:translateX(100%);transition:transform .35s cubic-bezier(.77,0,.175,1);padding:2rem 1.75rem 3rem;overflow-y:auto;background-image:radial-gradient(120% 60% at 100% 0%, rgba(47,150,189,.22) 0%, rgba(22,41,74,0) 60%)}
.menu-items.open{transform:translateX(0)}
.menu-items .close-icon{position:absolute;top:1.25rem;right:1.4rem;background:transparent;border:.0625rem solid rgba(255,255,255,.25);border-radius:50%;width:2.25rem;height:2.25rem;display:grid;place-items:center;color:#fff;font-size:1.5rem;line-height:1;cursor:pointer;transition:background .2s var(--ease),border-color .2s var(--ease)}
.menu-items .close-icon:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.5)}
.menu-logo{height:2.1rem;width:auto;margin:0 0 1rem}
.menu-items nav ul{display:flex;flex-direction:column;gap:0}
.menu-items nav li{border-bottom:.0625rem solid rgba(255,255,255,.12)}
.menu-items nav a{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 0;color:#fff;font-family:var(--font-display);font-weight:700;font-size:1.25rem;letter-spacing:0;transition:color .2s var(--ease),padding-left .2s var(--ease)}
@media(max-width:47.9375rem){.menu-items{padding-top:1.5rem}.menu-items nav a{padding:1rem 0;font-size:.9325rem;text-transform:uppercase}.menu-items nav li a::after{font-size:1.25rem}.menu-items nav li.is-button{border-bottom:none;margin-top:1.25rem}.menu-contacts{display:flex;flex-direction:column;gap:.7rem;margin-top:1.5rem;font-family:var(--font-body);font-size:.95rem}.lang-drawer{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.5rem;padding-top:1.5rem;border-top:.0625rem solid rgba(255,255,255,.12)}}
.menu-items nav li a::after{content:"›";font-size:1.5rem;line-height:1;color:rgba(255,255,255,.45);transition:transform .2s var(--ease),color .2s var(--ease)}
.menu-items nav li.is-button a::after{content:none}
.menu-items nav a:hover{color:var(--sea-300, #8fd0e6);padding-left:.35rem}
.menu-items nav a:hover::after{transform:translateX(.25rem);color:#fff}
.menu-items nav li.is-button{border-bottom:none;margin-top:1.75rem}
.menu-items nav a.nav-cta,.menu-items nav a.menu-outline-btn{width:100%;text-align:center} /* solo l'extra rispetto alla base bottoni (sezione 3) */
.menu-items nav a.nav-cta{background:var(--sea);color:#fff;margin-top:1.5rem}
.menu-items nav a.nav-cta:hover{background:var(--sea-600);color:#fff;padding-left:1.05rem}
.menu-items nav a.menu-outline-btn{border:.09375rem solid rgba(255,255,255,.35);color:#fff;text-transform:uppercase}
.menu-items nav a.menu-outline-btn:hover{background:rgba(255,255,255,.1);color:#fff;padding-left:1.05rem}
.menu-items nav a.nav-cta::after,.menu-items nav a.menu-outline-btn::after{content:none}
.menu-contacts{display:flex;flex-direction:column;gap:.7rem;margin-top:1.75rem;font-family:var(--font-body);font-size:1rem}
.menu-contacts a,.menu-contacts span{display:flex;align-items:center;gap:.6rem;color:#c9d5e4}
.menu-contacts a:hover{color:#fff}
.menu-contacts svg{color:var(--sea-300, #8fd0e6);flex:none}
.lang-drawer{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.75rem;padding-top:1.75rem;border-top:.0625rem solid rgba(255,255,255,.12)}
.lang-drawer a{display:inline-block;padding:.25rem 1rem;border-radius:.625rem;border:.09375rem solid rgba(255,255,255,.35);color:#fff;font-family:var(--font-body);font-weight:600;font-size:.75rem;text-transform:none;letter-spacing:0}
.lang-drawer a.active{background:var(--sea);border-color:var(--sea)}
.lang-drawer a:hover{background:rgba(255,255,255,.12);color:#fff}

#header #main-nav li.call a {background-color: var(--sea-600);border:none;padding:0.5rem 0.875rem;}
#header #main-nav li.call a:hover {background-color: var(--navy);}



@media(min-width:90rem){#header #main-nav li.call a {padding:0.6875rem 1.275rem;}}

/* 13. Sezioni parallax */
.parallax-container{position:relative;min-height:36vh;display:flex;align-items:center;overflow:hidden}
.parallax-container img.parallax-image{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}
.parallax-container .overlay-dark{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(26,50,60,.45) 0%,rgba(26,50,60,.6) 100%)}
.parallax-container .breadcrumb-wrapper{position:relative;z-index:2;text-align:center;width:100%;padding:3rem 1.5rem;max-width:46rem;margin:0 auto}
@media(min-width:48rem){.parallax-container{min-height:48vh;}.parallax-container .breadcrumb-wrapper{padding:4rem 1.5rem}}
@media(min-width:62rem){.parallax-container{min-height:46vh;}.parallax-container .breadcrumb-wrapper{padding:5rem 1.5rem}}
@media(min-width:80rem){.parallax-container{min-height:48vh;}}
@media(min-width:90rem){.parallax-container{min-height:40vh;}}
@media(min-width:120rem){.parallax-container{min-height:42vh;}}

.parallax-container h2{color:#fff}
.parallax-container p{color:#eef3f8}

.breadcrumb-trail{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.4rem;margin-top:0.6875rem;font-family:var(--font-body);font-size:.75rem;text-transform: uppercase;}
.breadcrumb-trail a{color:#fff}
.breadcrumb-trail a:hover{color:#fff;text-decoration:underline}
.breadcrumb-trail .sep{color:rgba(255,255,255,.45)}
.breadcrumb-trail .curr{color:#fff;}
 
.breadcrumb-trail.internal{margin-top:0;display:flex; align-items: flex-start;justify-content: left;flex-wrap:wrap;gap:0.35rem;margin-bottom:.75rem;padding:0;font-weight:500}
.breadcrumb-trail.internal a{color: var(--sea-600);}
.breadcrumb-trail.internal .sep{color: var(--ink);}
.breadcrumb-trail.internal .curr{color: var(--ink);}

.breadcrumb-trail.internal .curr{color: var(--ink);}
@media(min-width:48rem){.breadcrumb-trail.internal{margin-bottom:1rem;}}
@media(min-width:80rem){.breadcrumb-trail{font-size:.875rem;}.breadcrumb-trail.internal{margin-bottom:1.25rem;}.breadcrumb-trail{margin-top:1rem;}}
@media(min-width:90rem){.breadcrumb-trail.internal{margin-bottom:1.375rem;}}

/* 4. Classi aggiuntive */
.eyebrow{display:inline-flex;align-items:center;gap:.75rem;font-family:var(--font-body);font-weight:500;text-transform:uppercase;letter-spacing:.10em;font-size:.6875rem;color:var(--sand);margin-bottom:.5rem}
.eyebrow::before{content:"";width:1.875rem;height:.0625rem;background:var(--sand);flex:none}
.c-center .eyebrow{justify-content:center}
.c-center .eyebrow::after{content:"";width:1.875rem;height:.0625rem;background:var(--sand);flex:none}
.bg-yellow-light{background:var(--sand-light)}

@media(min-width:48rem){.eyebrow{font-size:.75rem;}}

@media(min-width:62rem){.eyebrow{margin-bottom:.75rem}}
@media(min-width:80rem){.eyebrow{font-size:.875rem;}}
@media(min-width:90rem){.eyebrow{margin-bottom:1rem}}
.display-none-m{display:none!important}
.display-none-d{display:block!important}
@media(min-width:62rem){.display-none-m{display:block!important}.display-none-d{display:none!important}}
.reveal{opacity:0;transform:translateY(1.5rem);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.reveal.show{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

.cc-reopen{position:fixed;left:1rem;bottom:1rem;z-index:2147483646;width:2.875rem;height:2.875rem;border-radius:50%;border:.0625rem solid rgba(255,255,255,.18);background:var(--navy);color:#fff;cursor:pointer;font-size:1.2rem;display:flex;align-items:center;justify-content:center;box-shadow:0 .25rem 1rem rgba(0,0,0,.28)}
.cc-reopen[hidden]{display:none}
@media(max-width:61.9375rem){.cc-reopen{bottom:4.5rem}}

.bookingpersefone_____maschera{opacity:0;visibility:hidden;transform:translateY(100%);transition:opacity .3s var(--ease),visibility .3s var(--ease),transform .3s var(--ease)}
.bookingpersefone_____maschera.is-active.scroll-visible{opacity:1;visibility:visible;transform:translateY(0)}
.bookingpersefone_____bottom { padding: 5px 0px; max-width: 890px; margin: 0 auto; }
.tbd { background: #fff7e6; }
.skip-link { position: absolute; left: 1rem; top: -3rem; z-index: 3000; background: #16294a; color: #fff; padding: .7rem 1.1rem; border-radius: 6px; font-weight: 600; transition: top .2s ease; }
.skip-link:focus { top: 1rem; }
.map-slot-fallback { color: var(--sea-600, #226a89); font-family: var(--font-body, inherit); font-size: .9375rem; line-height: 1.5; }
.map-slot-fallback a { text-decoration: underline; text-underline-offset: .15em; }
/* 5. Bottoni */
.all-cta{text-align:left;margin-top:2rem}
.all-cta.left{text-align:left!important}
.button.link,.menu-items nav a.nav-cta,.menu-items nav a.menu-outline-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--font-body);font-weight:500;text-transform:uppercase;letter-spacing:.1em;font-size:.75rem;padding:.5rem 1.75rem;border-radius:.75rem;transition:background .25s var(--ease),transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s var(--ease)}
.button.link{background:transparent;color:var(--sea-600);border:.0625rem solid #d3dde6;width:100%;}
.button.link:hover{background:var(--navy);transform:translateY(-.0625rem);box-shadow: 0 .4rem 1rem rgba(22, 41, 74, .05);color:#fff}
.button.link.slider{background:#fff;color:var(--navy)}
.button.link.slider:hover{background:var(--navy);color:#fff}
.button.link.nav-cta{padding:.6rem} /* bottone icona-sola nell'header */
.button.link.nav-cta svg{width:1.1em;height:1.1em;flex:none}
.button.link.whatsapp{background:#128046}
.button.link.whatsapp:hover{background:#0d6e3c}
@media(min-width:48rem){.button.link{width:auto;}}

@media(min-width:62rem){.button.link,.menu-items nav a.nav-cta,.menu-items nav a.menu-outline-btn{padding:.75rem 1.75rem}.all-cta{text-align:center}}
@media(min-width:80rem){.all-cta{margin-top:2rem}}
@media(min-width:90rem){.all-cta{margin-top:3rem}}


/* 11. Hero slider */
.hero-slider{position:relative;height:100vh;min-height:32.5rem;overflow:hidden;margin-top:-4.0625rem}
.hero-slider .slide{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;visibility:hidden;transition:opacity 1s var(--ease);display:flex;align-items:center}
.hero-slider .slide.active{opacity:1;visibility:visible;z-index:1}
.hero-slider .slide img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}
.hero-slider .slide::after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:linear-gradient(180deg,rgba(26,50,60,.5) 0%,rgba(26,50,60,.18) 45%,rgba(26,50,60,.58) 100%)}

.slide-content{position:relative;z-index:2;color:#fff;max-width:34rem;padding:4.5rem 0 3.5rem}
.slide-content .kicker{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.1em;font-weight:600;font-size:.785rem;opacity:.9;margin-bottom:1.1rem;display:inline-flex;align-items:center;gap:.75rem}
.slide-content .kicker::before{content:"";width:2rem;height:.0625rem;background:rgba(255,255,255,.7)}
.slide-content h2{color:#fff;font-size:1.875rem;margin-bottom:0.875rem;text-shadow:0 .125rem 1.25rem rgba(0,0,0,.6)}
.slide-content p{color:#f0f4f8;font-size:1.1rem;max-width:32rem;margin-bottom:2rem;text-shadow:0 .0625rem .625rem rgba(0,0,0,.3);line-height:1.5}

.s-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:1.75rem;height:1.75rem;border-radius:50%;border:.0625rem solid rgba(255,255,255,.5);background:rgba(255,255,255,.12);-webkit-backdrop-filter:blur(.1875rem);backdrop-filter:blur(.1875rem);color:#fff;display:grid;place-items:center;cursor:pointer;transition:background .2s}
.s-nav:hover{background:#fff;color:var(--navy)}
.s-nav.s-prev{left:1rem}
.s-nav.s-next{right:1rem}
.s-nav.s-pause{top:auto;bottom:1.6rem;right:1.1rem;left:auto;transform:none;width:2.625rem;height:2.625rem}
.s-dots{position:absolute;bottom:1.6rem;left:50%;transform:translateX(-50%);z-index:5;display:flex;gap:.5rem}
.s-dots button{width:.625rem;height:.625rem;border-radius:6.25rem;border:.125rem solid #fff;background:transparent;padding:0;cursor:pointer;transition:.2s}
.s-dots button.active{background:#fff;width:1.625rem}
.hero-slider .s-nav.s-pause { top: auto; right: 1.1rem; bottom: 1.6rem; left: auto; transform: none; }


@media(min-width:48rem){.s-nav{width:3rem;height:3rem}.slide-content{max-width:56rem;padding:6rem 4.5rem} .slide-content h2{font-size:2.5rem}}
@media(min-width:62rem){.slide-content{max-width:64rem;padding:6rem 5.5rem} .slide-content h2{font-size:2.75rem}.slide-content p{font-size:1.25rem;}}
@media(min-width:80rem){.slide-content{max-width:64rem;padding:6rem 3rem}.s-nav.s-prev{left:2rem}.s-nav.s-next{right:2rem} .slide-content h2{font-size:3.5rem}.slide-content .kicker{font-size:.875rem;}.hero-slider .s-nav.s-pause {right: 2rem;bottom: 2rem;left: auto;}
}
@media(min-width:90rem){.slide-content{max-width:74rem;padding:6rem 2rem}.s-nav.s-prev{left:3rem}.s-nav.s-next{right:3rem}.slide-content h2{font-size:4rem}.slide-content p{font-size:1.375rem;max-width:62rem;margin-bottom:3rem;line-height:1.75}.hero-slider{margin-top:-5.5rem}.hero-slider .s-nav.s-pause {right: 3rem;bottom: 3rem;left: auto;}}
@media(min-width:120rem){.slide-content{max-width:84rem;}.s-nav.s-prev{left:4rem}.s-nav.s-next{right:4rem}.slide-content h2{font-size:4.5rem}.slide-content p{font-size:1.5rem;}.hero-slider .s-nav.s-pause {right: 4rem;bottom: 4rem;left: auto;}}


@media(max-width:61.9375rem){.hero-slider{height:95vh;min-height:32rem}.hero-slider .slide{align-items:flex-end}.hero-slider .slide::after{background:linear-gradient(180deg,rgba(15,30,38,.05) 0%,rgba(15,30,38,.15) 45%,rgba(15,30,38,.88) 100%)}.slide-content{padding:0 0 5.5rem}.s-nav.s-prev,.s-nav.s-next{display:none}.s-nav.s-pause{bottom:1.6rem;right:.75rem;width:2.25rem;height:2.25rem}}
@media(max-width:47.9375rem){.slide-content .kicker{display:none}}

/* 12. Card alloggi */
.box.shadow{position:relative;background:#fff;border-radius:.875rem;overflow:hidden;border:.0625rem solid #eef1f4;box-shadow: 0 .4rem 1rem rgba(22, 41, 74, .05);display:flex;flex-direction:column;height:100%;transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.box.shadow:hover{transform:translateY(-.3125rem);box-shadow: 0 .4rem 1rem rgba(22, 41, 74, .08);}
.box-img{position:relative;overflow:hidden;padding-top:66.6667%}
.box-img img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
@supports (aspect-ratio:1/1){.box-img{padding-top:0;aspect-ratio:3/2}.box-img img{position:static}}
.box.shadow:hover .box-img img{transform:scale(1.05)}

.box-txt{padding:1.6rem 1.5rem 1.75rem;display:flex;flex-direction:column;flex:1}
.box-txt .tag{position:absolute;top:1rem;left:1rem;background:rgb(237 245 250);-webkit-backdrop-filter:blur(.25rem);backdrop-filter:blur(.25rem);color:var(--heading);font-family:var(--font-body);font-weight:400;text-transform:uppercase;letter-spacing:.12em;font-size:.65rem;padding:.45rem .85rem;border-radius:.125rem}
.box-txt h3{margin-bottom:.5rem}
.box-txt>p{font-size:.875rem;margin-bottom:1.25rem}
.formule-inline{display:flex;flex-wrap:wrap;gap:.6rem 0.5rem;margin-bottom:1.5rem;padding-top:1rem;border-top:.0625rem solid #eef1f4}

.room-type + .formule-inline{border-top:none;padding-top:.5rem}
.box-txt .icon-text{display:inline-flex;align-items:center;gap:.35rem;color:#5b6b73;font-size:.625rem;font-weight:500;text-transform: uppercase;}
.box-txt .icon-text svg.app-icon{color:#5b6b73;width:1em;height:1em}
.box-txt .button.link{margin-top:auto;text-align:center}
@media(min-width:48rem){.formule-inline{gap:.6rem 0.55rem;}}

 @media(min-width:62rem){ .formule-inline{gap:.6rem 0.15rem;} }
 @media(min-width:80rem){ .formule-inline{gap:.6rem 0.55rem;}.box-txt .icon-text{font-size:0.6875rem;}.box-txt .icon-text svg.app-icon{width:1em;height:1em;} }

@media(min-width:90rem){.box-txt>p{font-size:1rem}.formule-inline{gap:.6rem 0.75rem;}.box-txt .icon-text{font-size:0.725rem;}}
@media(min-width:120rem){.box-txt>p{font-size:1rem}.formule-inline{gap:.6rem 0.75rem;}}


/* 14. Galleria foto (#foto) */
#foto .row>[class*="col"] a{display:block;overflow:hidden;border-radius:.625rem;box-shadow: 0 .4rem 1rem rgba(22, 41, 74, .05);position:relative;padding-top:75%}
@supports (aspect-ratio:1/1){#foto .row>[class*="col"] a{padding-top:0;aspect-ratio:4/3}}
#foto .row>[class*="col"] img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
@supports (aspect-ratio:1/1){#foto .row>[class*="col"] img{position:static}}
#foto .row>[class*="col"] a:hover img{transform:scale(1.05)}
/* #foto e #video hanno lo stesso sfondo: riduco il padding-top di #video per stringere il vuoto percepito */
#foto + #video{padding-top:0}
@media(min-width:36rem){#foto + #video{padding-top:.5rem}}
@media(min-width:48rem){#foto + #video{padding-top:.75rem}}
@media(min-width:62rem){#foto + #video{padding-top:1rem}}
@media(min-width:80rem){#foto + #video{padding-top:1.5rem}}
@media(min-width:90rem){#foto + #video{padding-top:2rem}}
/* overlay scuro + "+" al centro in hover: segnala che la foto si apre ingrandita */
#foto .row>[class*="col"] a::after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(15,30,38,0);transition:background .25s var(--ease)}
#foto .row>[class*="col"] a::before{content:"+";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--font-body);font-weight:300;font-size:2.75rem;line-height:1;opacity:0;transform:scale(.7);transition:opacity .25s var(--ease),transform .25s var(--ease)}
#foto .row>[class*="col"] a:hover::after{background:rgba(15,30,38,.4)}
#foto .row>[class*="col"] a:hover::before{opacity:1;transform:scale(1)}
#foto .row>[class*="col"] a:focus-visible::after{background:rgba(15,30,38,.4)}
#foto .row>[class*="col"] a:focus-visible::before{opacity:1;transform:scale(1)}
@media(prefers-reduced-motion:reduce){#foto .row>[class*="col"] a::before{transition:opacity .25s var(--ease)}}

@media(min-width:48rem){.gallery-cta{margin-top:2.5rem}}
@media(min-width:80rem){.gallery-cta{margin-top:3rem}}

/* 14b. Lightbox galleria — con transizioni */
.lightbox { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 2000; background: rgba(15, 30, 38, 0); display: flex; align-items: center; justify-content: center; padding: 3rem 1rem; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 0.3s var(--ease), background-color 0.3s var(--ease), visibility 0.3s var(--ease); }
.lightbox:not([hidden]) { opacity: 1; visibility: visible; pointer-events: auto; background: rgba(15, 30, 38, 0.94); }
.lightbox-figure { margin: 0; max-width: 90vw; max-height: 82vh; display: flex; flex-direction: column; align-items: center; gap: .75rem; transform: scale(0.95); transition: transform 0.3s var(--ease); }
.lightbox:not([hidden]) .lightbox-figure { transform: scale(1); }
.lightbox-figure img { max-width: 90vw; max-height: 76vh; width: auto; height: auto; border-radius: .5rem; box-shadow: 0 .4rem 1rem rgba(22, 41, 74, .05); }
.lightbox-figure figcaption { color: #e4f0f7; font-family: var(--font-body); font-size: .9rem; text-align: center; max-width: 40rem; }
.lightbox-close, .lightbox-nav { position: absolute; z-index: 2001; width: 2.875rem; height: 2.875rem; border-radius: 50%; border: .0625rem solid rgba(255, 255, 255, .35); background: rgba(255, 255, 255, .1); -webkit-backdrop-filter: blur(.25rem); backdrop-filter: blur(.25rem); color: #fff; display: grid; place-items: center; cursor: pointer; transition: background .2s var(--ease), transform .3s var(--ease), opacity .3s var(--ease); opacity: 0; transform: translateY(-50%) scale(0.8); }
.lightbox:not([hidden]) .lightbox-close, .lightbox:not([hidden]) .lightbox-nav { opacity: 1; transform: translateY(-50%) scale(1); }
.lightbox-close { top: 1.25rem; right: 1.25rem; transform: scale(0.8); }
.lightbox:not([hidden]) .lightbox-close { transform: scale(1); }
.lightbox-nav { top: 50%; }
.lightbox-prev { left: 1rem; }
.lightbox-next { right: 1rem; }
.lightbox-counter { position: absolute; bottom: 1.25rem; left: 50%; transform: translateX(-50%); color: #c9d5e4; font-family: var(--font-body); font-size: .85rem; letter-spacing: .05em; margin: 0; opacity: 0; transition: opacity 0.3s var(--ease) 0.1s; }
.lightbox:not([hidden]) .lightbox-counter { opacity: 1; }
.lightbox-close:hover, .lightbox-nav:hover { background: rgba(255, 255, 255, .22); }
@media(max-width:47.9375rem) { .lightbox-nav { width: 2.375rem; height: 2.375rem; } .lightbox-prev { left: .5rem; } .lightbox-next { right: .5rem; } }
@media(prefers-reduced-motion:reduce) { .lightbox, .lightbox-figure, .lightbox-close, .lightbox-nav, .lightbox-counter { transition: none; transform: none; opacity: 1; } .lightbox[hidden] { display: none; } }

/* 15. Servizi — fascia a tutta larghezza */
@media(min-width:62rem){.servizi{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);margin-top:0rem;margin-bottom:0;padding-top:2rem;display:flex;flex-wrap:wrap;justify-content:center;gap:2rem 1rem}}
@media(min-width:80rem){.servizi{margin-top:0rem;margin-bottom:0;}}
@media(min-width:90rem){.servizi{margin-top:0rem;margin-bottom:0;padding-top:3rem;}}
@media(min-width:62rem){.servizi{padding-inline:max(2rem, calc((100vw - 73.75rem) / 2 + 2rem))}}
@media(min-width:90rem){.servizi{padding-inline:max(2rem, calc((100vw - 80rem) / 2 + 2.75rem))}}
/* ogni icona: metà riga su mobile, un quarto da tablet in su */
.servizi>div{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem;flex:0 0 calc(50% - .5rem)}
@media(min-width:48rem){.servizi>div{flex:0 0 calc(25% - .75rem)}}

/* Material Icons self-hostate: percorso css/fonts/ (plurale) */
@font-face{font-family:'Material Icons';font-style:normal;font-weight:400;font-display:block;src:url('font/material-icons.woff2') format('woff2')}
i.material-icons{font-family:'Material Icons';font-weight:normal;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;font-feature-settings:'liga';-webkit-font-feature-settings:'liga'}
.servizi i.material-icons{width:2.1rem;height:2.1rem;font-size:1.5rem;display:inline-flex;align-items:center;justify-content:center;color:#6e838e;background:#fff;border-radius:50%;padding:.7rem;box-sizing:content-box}
.servizi p{margin:0;font-family:var(--font-body);font-weight:400;text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;color:var(--navy)}

@media(min-width:90rem){.servizi i.material-icons{width:2.5rem;height:2.5rem;font-size:1.75rem;} .servizi p {font-size: .75rem;margin-top:1rem;}
}

/* Elenco servizi nel modale: verticale, senza cornice a chip, stile lista pulita */
.servizi-modal-list{display:flex;flex-direction:column;gap:0;margin-top:1rem}
.servizi-modal-list li{display:flex;align-items:center;text-transform:none;font-size:.9375rem;font-weight:400;background:transparent;padding:.75rem .25rem;border:none;border-radius:0;box-shadow:none;color:var(--ink);border-bottom:.0625rem solid #eef1f4}
.servizi-modal-list li:last-child{border-bottom:none}
.servizi-modal-list svg.material-icons{margin-right:.65rem;width:1.125em;height:1.125em;color:var(--sea-600)}

/* 16. Note box (ristorante) */
.note{background:var(--sea-100);border-left:.1875rem solid var(--sea)!important;border-radius:0 .75rem .625rem 0;padding:1.4rem 1.6rem;margin:2rem 0 0 0;box-shadow: 0 .4rem 1rem rgba(22, 41, 74, .05);border-color:#eef1f4;}
.note p{color:#222;font-size:.9375rem;margin-bottom:1rem;line-height:normal}
.note p:last-child{margin-bottom:0;}

@media(min-width:62rem){.note{margin:1.5rem 0}}
@media(min-width:90rem){.note{margin:2rem 0}.note p{font-size:1rem;line-height:normal}
}
@media(min-width:90rem){.note{margin:2rem 0}.note p{margin-bottom:1.25rem;}}
@media(min-width:120rem){.note{margin:2rem 0}.note p{margin-bottom:1.25rem;}}


/* 18. Barra contatto mobile */
#mobile-contact-bar{position:fixed;left:0;right:0;bottom:0;z-index:900;background:var(--navy);color:#fff;display:none;align-items:center;justify-content:center;gap:.6rem;padding:.8rem 1rem;font-family:var(--font-body);font-weight:600}
#mobile-contact-bar a{color:#fff;text-decoration:underline}
@media(max-width:61.9375rem){#mobile-contact-bar{display:flex}}

/* 19. Mappa */

.map-embed{position:relative;width:100%;min-height:21.7rem;border-radius:.75rem;overflow:hidden;background:var(--sea-100);box-shadow: 0 .4rem 1rem rgba(22, 41, 74, .05);}
/* Variante a piena larghezza (fascia che esce dal .container): niente
   angoli arrotondati/ombra, copre tutta la larghezza della finestra.
   Usata da contatti.html — la classe era referenziata in HTML ma mancava qui. */
.map-embed.full-bleed{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);border-radius:0;box-shadow:none}
#map-slot{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:1.5rem;color:var(--sea-600)}
#map-slot iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}
#btn-enable-map:focus-visible {
  outline: .1875rem solid var(--navy);
  outline-offset: .125rem;
}
/* 20. Faq */
.faq-list{max-width:100%;margin:0 auto;display:flex;flex-direction:column;gap:1rem}
.faq-item{background:#fff;border:.0625rem solid #eef1f4;border-radius:.75rem;box-shadow: 0 .4rem 1rem rgba(22, 41, 74, .05);overflow:hidden}
.faq-item summary{font-size:0.9375rem;list-style:none;cursor:pointer;padding:1rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-family:var(--font-display);font-weight:600;color:var(--sea-600)}
.faq-item summary:hover{color:var(--navy)}

.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"";width:.65rem;height:.65rem;flex:none;border-right:.125rem solid var(--sea);border-bottom:.125rem solid var(--sea);transform:rotate(45deg);transition:transform .2s var(--ease)}
.faq-item[open] summary::after{transform:rotate(-135deg)}
.faq-item .faq-answer{margin:0;padding:0 1.5rem 1.25rem;font-size:.9375rem;line-height:1.4}
.faq-item .faq-answer a{text-decoration:underline}
.faq-list{max-width:100%;}
@media(min-width:62rem){.faq-list{max-width:40rem}}

@media(min-width:90rem){.map-embed{min-height:25rem;}}
@media(min-width:120rem){.map-embed{min-height:26.5rem;}}

@media(min-width:90rem){.faq-item summary{font-size:1rem}.faq-item .faq-answer{font-size:1rem;line-height:1.7}
.faq-item summary{padding:1.25rem 1.5rem;}
.faq-list {gap:1.5rem;}
}
@media(min-width:1200rem){
.faq-list {gap:1.75rem;}
}


/* Badge: etichetta piccola (icona + testo), riutilizzabile ovunque serva */
.badge{border: .0625rem solid #eef1f4;box-shadow: 0 .4rem 1rem rgba(22, 41, 74, .05);display:inline-flex;align-items:center;align-self:flex-start;text-transform:uppercase; flex:none;background:var(--sea-100);color:var(--sea-600);font-family:var(--font-body);font-weight:500;font-size:.625rem;padding: 0.5rem 1rem;border-radius: .75rem;white-space:nowrap;}
.badge svg{color:var(--sea-600);margin-right:0.375rem;width:1em;height:1em;}

/* Etichetta testuale per il tipo di camera nelle card elenco: solo testo
   sottolineato, nessun riquadro — non deve assomigliare al pulsante
   "Scopri" subito sotto nella stessa card */
.room-type{display:inline-block;align-self:flex-start;color:var(--ink);font-family:var(--font-body);font-weight:500;font-size:.75rem;text-decoration:underline;text-decoration-color:var(--sand);text-underline-offset:.2em;margin-bottom:.25rem;}

/* Offerta: fascia ORIZZONTALE (foto a fianco, non sopra), volutamente
   diversa dai box verticali degli alloggi/camere — non deve sembrare
   "un'altra card uguale alle altre" */
/* Offerta: NON un componente a parte — è .box.shadow (la stessa base già
   usata per le card di alloggi e camere), con .offer come classe aggiuntiva
   che cambia solo la presentazione: layout orizzontale da tablet in su e
   gradiente di sfondo arancio invece del bianco pieno. Lo spazio tra le
   offerte lo dà la griglia standard (.row>[class*="col"]), non un margine
   proprio del box. */
.box.shadow.offer{background:linear-gradient(135deg, rgba(240,120,70,.16) 0%, #fff 60%);flex-direction:column}
.offer .box-img{padding-top:56.25%}
@supports (aspect-ratio:1/1){.offer .box-img{padding-top:0;aspect-ratio:16/9}}

/* Segnaposto quando l'offerta non ha ancora una foto propria: icona invece
   dell'immagine, stesso spazio occupato, così la fascia resta uniforme */
.offer-img--placeholder{display:flex;align-items:center;justify-content:center;background:var(--sea-100)}
.offer-img--placeholder svg{width:3rem;height:3rem;color:var(--sand)}

.offer-validity{display:inline-block;align-self:flex-start;color:var(--ink);font-family:var(--font-body);font-weight:500;font-size:.75rem;font-style:italic;margin-bottom:.5rem}
.offer .box-txt h3 a{color:var(--offer)}
.offer .box-txt h3 a:hover{text-decoration:underline;text-underline-offset:.15em}
.button.link.offer-cta{color:var(--offer);border-color:var(--offer)}
.button.link.offer-cta:hover{background:var(--offer);border-color:var(--offer);color:#fff}
/* .box-txt .button.link è pensato per le card verticali (larghezza piena);
   nell'offerta orizzontale il pulsante deve restare alla sua dimensione
   naturale, non allungarsi su tutta la colonna di testo */
.offer .box-txt .button.link{align-self:flex-start}

/* Card "meta" (pagina Il Cilento): foto con titolo sovrapposto e overlay
   scuro sfumato — stesso linguaggio dell'hero a tutta pagina, riportato
   in piccolo. Volutamente diversa sia dai box di alloggi/camere (foto
   sopra, testo bianco sotto) sia dalla fascia delle offerte (orizzontale) */
.poi-card{position:relative;display:block;border-radius:.875rem;overflow:hidden;aspect-ratio:4/3;color:#fff;box-shadow: 0 .4rem 1rem rgba(22, 41, 74, .08)}
.poi-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.poi-card:hover img,.poi-card:focus-visible img{transform:scale(1.06)}
.poi-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,30,38,0) 35%,rgba(15,30,38,.9) 100%)}
.poi-card-body{position:absolute;z-index:1;left:0;right:0;bottom:0;padding:1.5rem}
.poi-card-body h3{color:#fff;margin-bottom:.35rem}
.poi-card-body p{color:#eef3f8;font-size:.875rem;margin-bottom:.85rem}
.poi-card-cta{display:inline-flex;align-items:center;gap:.35rem;color:#fff;font-family:var(--font-body);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.75rem}
.poi-card-cta svg{width:.9em;height:.9em;transition:transform .2s var(--ease)}
.poi-card:hover .poi-card-cta svg,.poi-card:focus-visible .poi-card-cta svg{transform:translateX(.2rem)}
.poi-card-body h3{font-size:1.375rem;}
@media(min-width:48rem){
  .box.shadow.offer{flex-direction:row}
  .offer .box-img{flex:0 0 40%;padding-top:0;aspect-ratio:auto}
  .offer .box-txt{flex:1;padding:2rem}
  
}
@media(min-width:62rem){.badge{font-size:0.6875rem;}}
@media(min-width:90rem){.badge{font-size:.75rem;padding: 0.75rem 1.25rem;}.poi-card-body h3{font-size:1.5rem;}}

/* Badge dentro un titolo (.c-title): un filo di spazio sopra per staccarlo dall'h2 */
.c-title .badge{margin-top:0.75rem;}
@media(min-width:90rem){.c-title .badge{margin-top:0.875rem;}}
@media(min-width:120rem){.c-title .badge{margin-top:1rem;}}

/* Lista servizi a chip (icona + testo), riutilizzabile in qualsiasi pagina */
.servizi-inline-list{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;margin-top:1.75rem}
.servizi-inline-list svg.material-icons{margin-right: 0.35rem;display:inline-block;width:0.9375em;height:0.9375em;fill:currentColor;stroke:currentColor;vertical-align:-.15em;flex:none;color: #5b6b73;}


.servizi-inline-list li{text-transform:uppercase; font-size:0.625rem;font-weight: 400;flex:1 1 calc(50% - .625rem);background: #fff;padding: 0.5rem 1rem;border: .0625rem solid #eef1f4; border-radius: .75rem;box-shadow: 0 .4rem 1rem rgba(22, 41, 74, .05);color: #5b6b73;}
@media(min-width:36rem){.servizi-inline-list li{flex-basis:calc(33.333% - .834rem)}}
@supports (display:grid){
  .servizi-inline-list{display:grid;grid-template-columns:repeat(2,1fr)}
  .servizi-inline-list li{flex:none}
  
  @media(min-width:36rem){.servizi-inline-list{grid-template-columns:repeat(3,1fr)}}
}
 @media(min-width:62rem){
  .servizi-inline-list{margin-top:2rem}
  .servizi-inline-list li{font-size:0.6875rem;}
  .servizi-inline-list svg.material-icons{width:1em;height:1em;}
}
 @media(min-width:80rem){
     .servizi-inline-list{margin-top:2.5rem}
}
 @media(min-width:90rem){
   .servizi-inline-list{margin-top:3rem;gap: 1.25rem 1.25rem;}
  .servizi-inline-list li{font-size:0.75rem;padding: 0.75rem 1.25rem;}
  .servizi-inline-list svg.material-icons{width:1.125em;height:1.125em;vertical-align: -.2em;}
}
 @media(min-width:120rem){
   .servizi-inline-list{margin-top:3.5rem}
 
}
/* Galleria foto riutilizzabile: scroll orizzontale su mobile, mosaico da desktop */
.gallery{
  display:flex;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;gap:.5rem;border-radius:.875rem;
  padding-bottom:.75rem;
}
.gallery a{position:relative;flex:0 0 100%;scroll-snap-align:start;aspect-ratio:4/3;border-radius:.625rem}
.gallery img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease)}
.gallery a:hover img{transform:scale(1.05)}
.gallery::-webkit-scrollbar{height:.25rem}
.gallery::-webkit-scrollbar-track{background:#eef1f4;border-radius:.125rem}
.gallery::-webkit-scrollbar-thumb{background:var(--sea);border-radius:.125rem}
.gallery .gallery-more{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;background:rgba(23,56,77,.55);color:#fff;font-family:var(--font-body);font-weight:600;font-size:.75rem;text-align:center;padding:.5rem;text-transform:uppercase;}
.gallery .gallery-more svg{width:1.3rem;height:1.3rem}
.gallery .gallery-tap-hint{position:absolute;left:.75rem;bottom:.75rem;z-index:1;display:inline-flex;align-items:center;gap:.35rem;background:rgba(23,56,77,.35);color:#fff;font-family:var(--font-body);font-weight:600;font-size:.6875rem;text-transform:uppercase; padding:.4rem .7rem;border-radius: 0.75rem;pointer-events:none}
.gallery .gallery-tap-hint svg{width:1rem;height:1rem}
 
/* Mosaico da 992px in su: 1 foto grande + 4 piccole, niente più scorrimento */
@media(min-width:62rem){
  .gallery{
    display:flex;flex-wrap:wrap;overflow-x:visible;scroll-snap-type:none;
    overflow:hidden;margin-bottom:0;padding-bottom:0;
  }
  .gallery a{flex:1 1 40%;height:13.5rem;scroll-snap-align:none;aspect-ratio:auto;border-radius:0}
  .gallery a:first-child{flex-basis:100%;height:27.5rem}
  .gallery .gallery-tap-hint{display:none}
  @supports (display:grid){
    .gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,13.5rem)}
    .gallery a{height:auto}
    .gallery a:first-child{grid-column:1/3;grid-row:1/3;height:auto}
  }
}
@media(min-width:80rem){
  .gallery .gallery-more svg{width:2rem;height:2rem}
  .gallery .gallery-more{font-size:0.9375rem;padding:.75rem}
}
@media(min-width:120rem){
  .gallery .gallery-more svg{width:2.25rem;height:2.25rem}
}
.gallery-extra, .gallery-more { display: none; }

@media (max-width: 61.9375rem) {
 .gallery .gallery-extra, .gallery .gallery-more { display: none; }
}


/* Mini galleria per colonne di testo (es. pagina Pensione): scorrimento
   orizzontale su mobile come .gallery, griglia 2x2 fissa da desktop */
/* Mini galleria per colonne di testo (es. pagina Pensione): scorrimento
   orizzontale su mobile come .gallery, griglia 2x2 fissa da desktop */
.mini-gallery{
  display:flex;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;gap:.5rem;border-radius:.875rem;
  padding-bottom:.75rem;
}
.mini-gallery a{position:relative;flex:0 0 78%;scroll-snap-align:start;aspect-ratio:1/1;border-radius:.625rem;overflow:hidden;display:block}
.mini-gallery img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease)}
.mini-gallery a:hover img{transform:scale(1.05)}
.mini-gallery::-webkit-scrollbar{height:.25rem}
.mini-gallery::-webkit-scrollbar-track{background:#eef1f4;border-radius:.125rem}
.mini-gallery::-webkit-scrollbar-thumb{background:var(--sea);border-radius:.125rem}

/* Overlay "tocca per ingrandire" / "vedi tutte le foto" */
.mini-gallery .gallery-more{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;background:rgba(23,56,77,.55);color:#fff;font-family:var(--font-body);font-weight:600;font-size:.75rem;text-align:center;padding:.5rem;text-transform:uppercase;}
.mini-gallery .gallery-more svg{width:1.3rem;height:1.3rem}

.mini-gallery .gallery-tap-hint{position:absolute;left:.75rem;bottom:.75rem;z-index:1;display:inline-flex;align-items:center;gap:.35rem;background:rgba(23,56,77,.35);color:#fff;font-family:var(--font-body);font-weight:600;font-size:.6875rem;text-transform:uppercase;padding:.4rem .7rem;border-radius:0.75rem;pointer-events:none}
.mini-gallery .gallery-tap-hint svg{width:1rem;height:1rem}

@media(min-width:36rem){.mini-gallery a{flex-basis:45%}}

@media(min-width:62rem){
  .mini-gallery{
    display:grid;grid-template-columns:repeat(2,1fr);
    overflow-x:visible;scroll-snap-type:none;padding-bottom:0;gap:.625rem;
  }
  .mini-gallery a{flex:none;scroll-snap-align:none}
  .mini-gallery .gallery-tap-hint{display:none}
  .mini-gallery .gallery-extra{display:none!important}
}

@media (max-width: 61.9375rem) {
.mini-gallery .gallery-more { display: none; }
}
@media(min-width:90rem){.mini-gallery{gap:.75rem}}
/* Tabella prezzi */
.price-table-wrap{background:#fff;border:.0625rem solid #eef1f4;border-radius:0.75rem;box-shadow: 0 .4rem 1rem rgba(22, 41, 74, .05);overflow:hidden;margin-bottom:1.5rem}
.price-table-scroll{overflow-x:auto}
table.price-table{width:100%;border-collapse:collapse;min-width:36rem}
table.price-table caption{text-align:left;padding:1.1rem 1.75rem;font-family:var(--font-body);font-weight:500;color:#5b6b73;font-size:.8rem;border-bottom:.0625rem solid #eef1f4}
table.price-table thead th{background:var(--navy);color:#fff;font-family:var(--font-body);font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:.75rem;text-align:left;padding:1rem 1.25rem;white-space:nowrap}
table.price-table thead th span{font-weight:400;text-transform:none;letter-spacing:0;text-transform: uppercase;}
table.price-table thead th:not(:first-child){text-align:center}
table.price-table tbody td{padding:.85rem 1.25rem;border-top:.0625rem solid #eef1f4;font-size:.875rem;color:#4d6974;white-space:nowrap}
table.price-table tbody td:first-child{font-weight:500;color:var(--heading);font-size:.875rem;white-space:normal;min-width:11rem}
table.price-table tbody td:not(:first-child){text-align:center;font-weight:500}
table.price-table tbody tr:hover{background:var(--sea-100)}
table.price-table tbody tr:hover td:first-child{background:var(--sea-100)}
.price-na{color:#5b6b73;font-style:italic}

/* Tabella prezzi su mobile: ogni riga diventa una card verticale (etichette da data-label) */
@media(max-width:47.9375rem){
.price-table-scroll{overflow-x:visible}
table.price-table{min-width:0;width:100%}
table.price-table thead{position:absolute;width:.0625rem;height:.0625rem;padding:0;margin:-.0625rem;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
table.price-table,table.price-table caption,table.price-table tbody,table.price-table tr,table.price-table td{display:block;width:100%}
table.price-table caption{padding:1rem 1.25rem}
table.price-table tr{padding:1.1rem 1.25rem;border-top:.0625rem solid #eef1f4}
table.price-table tr:first-child{border-top:none}
table.price-table td{padding:.3rem 0;border-top:none;text-align:left!important;white-space:normal;min-width:0}
table.price-table td:first-child{font-weight:600;color:var(--heading);font-size:.95rem;padding-bottom:.6rem}
table.price-table td:not(:first-child){display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;text-align:left;font-weight:500}
table.price-table td:not(:first-child)::before{content:attr(data-label);font-family:var(--font-body);font-weight:600;text-transform:uppercase;letter-spacing:.05em;font-size:.68rem;color:#5b6b73}
}

@media(min-width:80rem){table.price-table thead th{font-size:.825rem;}table.price-table tbody td {padding: 1.125rem 1.25rem;   }
}
@media(min-width:120rem){table.price-table tbody td {padding: 1.375rem 1.25rem;   }
}


/* Lista puntata con icona (es. condizioni di soggiorno) */
.condizioni-list{display:flex;flex-direction:column;gap:.875rem;margin-bottom:0;}
.condizioni-list li{display:flex;align-items:flex-start;gap:.65rem;font-size:1rem;color:#333}
.condizioni-list svg{color:var(--sea);flex:none;margin-top:0;width:1em;height:1em}
.condizioni-list.diff {margin-bottom:0;}
.condizioni-list.diff {margin-top:1.75rem;}
.condizioni-list.diff svg {width: 1em;height: 1em;}
@media(min-width:90rem){.condizioni-list{gap:1.375rem;}.condizioni-list.diff {margin-top:2.5rem;gap:1.375rem;} .condizioni-list li{font-size:1rem;}}
@media(min-width:120rem){.condizioni-list{gap:1.75rem;} .condizioni-list.diff {margin-top:3rem;gap:1.75rem;}}

/* Colonna di servizio sticky, solo da desktop */
.sidebar-col{position:relative}
@media(min-width:62rem){.sidebar-col{position:sticky;top:6.5rem;align-self:flex-start}}

/* Card bianca riutilizzabile per contenuti laterali (preventivo, contatti, ecc.) */
.sidebar-card{width:100%; background:#fff;border:.075rem solid #eef1f4;border-radius:.875rem;box-shadow: 0 .4rem 1rem rgba(22, 41, 74, .05);padding:var(--gap-md);margin-bottom:1.75rem;}
/* .box-img qui non è dentro un .box.shadow (che di norma gli dà angoli
   arrotondati tramite overflow:hidden sul contenitore): stessa classe
   condivisa, solo l'aggiunta che serve in questo contesto */
.sidebar-card .box-img{border-radius:.625rem;overflow:hidden;margin-bottom:1rem}
.sidebar-card:last-child{margin-bottom:0;}

.sidebar-card h3{margin-bottom:0}
.sidebar-card .sidebar-kicker{font-family:var(--font-body);font-weight:500;text-transform:uppercase;letter-spacing:.14em;font-size:.7rem;color:var(--sea-600);margin-bottom:.5rem;display:block}
@media(min-width:62rem){.sidebar-card{margin-bottom:2rem;}}
@media(min-width:80rem){.sidebar-card{margin-bottom:2.25rem;}}
@media(min-width:90rem){.sidebar-card{margin-bottom:2.5rem;}}
@media(min-width:120rem){.sidebar-card{margin-bottom:3rem;}}


/* Form di contatto */
.contact-form{display:flex;flex-direction:column;gap:var(--gap-sm)}
.contact-form label{display:block;font-family:var(--font-body);font-weight:500;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--navy);margin-bottom:.4rem}
.field-row{display:flex;gap:.75rem}
.field-row>div{flex:1;min-width:0}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;font-family:var(--font-body);font-size:.9375rem;color:var(--ink);border:.09375rem solid #dfe6ea;border-radius:.55rem;padding:.65rem .8rem;background:#fbfdfe;transition:border-color .2s var(--ease)}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:none;border-color:var(--sea);background:#fff;box-shadow: 0 .4rem 1rem rgba(22, 41, 74, .05);}
.contact-form textarea{resize:vertical;min-height:6rem}
.contact-form button{border:none;cursor:pointer;margin-top:.25rem;background:var(--sea);color:#fff}
.contact-form button:hover{background:var(--sea-600)}
.contact-form .form-note{font-size:.75rem;color:#5b6b73}

/* Modale modulo richiesta */
/* Modale modulo richiesta — con transizioni */
.request-modal-overlay { position: fixed; inset: 0; z-index: 2100; background: rgba(15, 30, 38, 0); display: flex; align-items: center; justify-content: center; padding: 1.25rem; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 0.3s var(--ease), background-color 0.3s var(--ease), visibility 0.3s var(--ease); }
.request-modal-overlay:not([hidden]) { opacity: 1; visibility: visible; pointer-events: auto; background: rgba(15, 30, 38, 0.6); }
.request-modal { position: relative; background: #fff; border-radius: 1rem; max-width: 32rem; width: 100%; max-height: 90vh; overflow-y: auto; padding: var(--gap-md) var(--gap-md) var(--gap-lg); box-shadow: 0 .4rem 1rem rgba(22, 41, 74, .05); transform: translateY(20px) scale(0.95); opacity: 0; transition: transform 0.3s var(--ease), opacity 0.3s var(--ease); }
.request-modal-overlay:not([hidden]) .request-modal { transform: translateY(0) scale(1); opacity: 1; }
.request-modal-close { position: absolute; top: 1rem; right: 1rem; width: 2.25rem; height: 2.25rem; border-radius: 50%; border: .0625rem solid #eef1f4; background: #fff; color: var(--navy); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background .2s var(--ease), transform .2s var(--ease); }
.request-modal-close:hover { background: var(--sea-100); transform: scale(1.05); }
.request-modal h3 { margin-bottom: 0; padding-right: 2rem; }
.request-modal p.small { margin-bottom: 1.5rem; }
@media(prefers-reduced-motion:reduce) { .request-modal-overlay, .request-modal, .request-modal-close { transition: none; transform: none; opacity: 1; } .request-modal-overlay[hidden] { display: none; } }

/* Lista contatti rapidi (icona + testo/link) */
.quick-contacts li{width:100%;font-size:1rem; margin-bottom:1.25rem;}
.quick-contacts svg{color:var(--sea);flex:none;margin-top:.15rem}
.quick-contacts a{font-weight:400}
.quick-contacts a:hover{color:var(--navy);}
.quick-contacts svg.material-icons { display: inline-block; width: 1.25em; height: 1.25em; fill: currentColor; stroke: currentColor; vertical-align: -.25em; flex: none;margin-right:0.375rem;}
@media(min-width:90rem){.quick-contacts li{font-size:1rem;margin-bottom:1.5rem;}}
@media(min-width:120rem){.quick-contacts li{margin-bottom:1.6875rem;}}



/* Carosello riutilizzabile — frecce sotto le card, mai sovrapposte */
.box-carousel{position:relative;margin-top:.5rem;padding-bottom:4.5rem}
.box-carousel-track{display:flex;gap:1.25rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:.5rem .25rem 1.25rem;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.box-carousel-track::-webkit-scrollbar{display:none}
.box-carousel-item{flex:0 0 82%;scroll-snap-align:start}
@media(min-width:36rem){.box-carousel-item{flex-basis:60%}}
@media(min-width:48rem){.box-carousel-item{flex-basis:calc(50% - .625rem)}}
@media(min-width:68.75rem){.box-carousel-item{flex-basis:calc(33.333% - .834rem)}}
.box-carousel-nav{position:absolute;bottom:0;top:auto;transform:none;z-index:2;width:2rem;height:2rem;border-radius:50%;border:.125rem #c5dae8;background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(.1875rem);backdrop-filter:blur(.1875rem);color:var(--navy);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s var(--ease);box-shadow:0 .375rem 1rem rgba(22,41,74,.18)}
.box-carousel-nav svg{width:1rem;height:1rem}
.box-carousel-nav:hover{background:var(--navy);color:#fff}
.box-carousel-nav:disabled{opacity:.3;cursor:default;pointer-events:none}
.box-carousel-prev{left:50%;margin-left:-3.5rem}
.box-carousel-next{left:50%;margin-left:.5rem}
.box-carousel-item .box.shadow{height:100%}

@media(min-width:62rem) {.box-carousel-nav{width:2.25rem;height:2.25rem;}.box-carousel-nav svg{width:1.125rem;height:1.125rem}}
@media(min-width:120rem) {.box-carousel-nav{width:2.5rem;height:2.5rem;}.box-carousel-nav svg{width:1.25rem;height:1.25rem}}
.box-clickable { cursor: pointer; }
.box-clickable:focus-visible { outline: 2px solid var(--sea-600, #2b6f8f); outline-offset: 2px; }

/* 17. Compatibilità cross-browser / preferenze utente ---------------------- */

/* Rispetta chi ha impostato "riduci animazioni" nel sistema operativo:
   evita lo scroll fluido programmato e ogni transizione/animazione superflua
   (WCAG 2.3.3 — Animazione da interazioni). */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}


a:focus,button:focus,summary:focus{outline:.125rem solid var(--sea);outline-offset:.125rem}
a:focus:not(:focus-visible),button:focus:not(:focus-visible),summary:focus:not(:focus-visible){outline:none}
#header a:focus:not(:focus-visible),#header button:focus:not(:focus-visible){outline:none}


/* Fallback gap-in-flexbox per Safari <14.1 e Chrome <84 / Firefox <63 */
@supports (not (gap:1rem)){
  .faq-list>*+*{margin-top:1rem}
  .eyebrow{gap:0}
  .eyebrow::before{margin-right:.75rem}
  .icon-text{gap:0}
  .icon-text svg{margin-right:.35rem}
  .field-row{gap:0}
  .field-row>*+*{margin-left:.75rem}
  .menu-contacts{gap:0}
  .menu-contacts>*+*{margin-top:.7rem}
  .quick-contacts ul{gap:0}
  .quick-contacts li+li{margin-top:var(--gap-sm)}
  .condizioni-list{gap:0}
  .condizioni-list li+li{margin-top:.65rem}
  .lang-drawer{gap:0}
  .lang-drawer>*{margin:0 .6rem .6rem 0}
  .box-carousel-track{gap:0}
  .box-carousel-item+.box-carousel-item{margin-left:1.25rem}
  .lang-cur{gap:0}
  .lang-cur .lang-flag{margin-right:.5rem}
  .lang-cur .lang-code{margin-right:.5rem}
  /* .menu-icon: il gap non aveva comunque effetto — l'altro "figlio",
     .menu-label, è position:absolute (nascosto per accessibilità) e
     quindi esce dal flusso flex: .icon-bars resta l'unico vero figlio
     nella riga. Nessun margine necessario qui. */
  .menu-icon{gap:0}
  .servizi-inline-list li{gap:0}
  .servizi-inline-list svg{margin-right:.55rem}
  .condizioni-list svg{margin-right:.6rem}
  .quick-contacts svg{margin-right:.6rem}

  .button.link,.menu-items nav a.nav-cta,.menu-items nav a.menu-outline-btn{gap:0}
  /* l'icona (quando c'è) è sempre il primo figlio, prima del testo */
  .button.link svg,.menu-items nav a.nav-cta svg,.menu-items nav a.menu-outline-btn svg{margin-right:.5rem}
  /* eccezione: nell'header da scroll lo stesso bottone è solo icona
     (nessun testo dopo), il margine lascerebbe uno spazio vuoto */
  #scroll-header .button.link.nav-cta svg{margin-right:0}

  #footer .social{gap:0}
  #footer .social>*+*{margin-left:.6rem}

  .lang-menu{gap:0}
  .lang-menu>*+*{margin-top:.1rem}
  .lang-menu a{gap:0}
  .lang-menu a .lang-flag{margin-right:.7rem}

  .menu-icon .icon-bars{gap:0}
  .menu-icon .icon-bars>*+*{margin-top:.25rem}

  .slide-content .kicker{gap:0}
  .slide-content .kicker::before{margin-right:.75rem}

  .s-dots{gap:0}
  .s-dots>*+*{margin-left:.5rem}

  /* riga che va a capo, due valori di gap (righe/colonne): stesso
     principio del margine negativo già usato da .row, applicato qui
     solo ai figli (il contenitore non ha margine negativo proprio,
     quindi il primo blocco riceve qualche frazione di rem in più —
     differenza minima, non percepibile) */
  .formule-inline{gap:0}
  .formule-inline>*{margin:.3rem .175rem 0 0}
  @media(min-width:48rem){.formule-inline>*{margin:.3rem .625rem 0 0}}

  .lightbox-figure{gap:0}
  .lightbox-figure>*+*{margin-top:.75rem}

  .servizi>div{gap:0}
  .servizi>div>*+*{margin-top:.5rem}

  #dove-siamo ul li{gap:0}
  #dove-siamo ul li svg{margin-right:.5rem}

  /* mosaico foto: la versione flex qui è già essa stessa il ripiego
     per i browser senza CSS Grid — un margine uniforme su ogni foto è
     un'approssimazione ragionevole (double-fallback, caso raro) */
  .gallery{gap:0}
  .gallery a{margin:.25rem}

  .gallery .gallery-more{gap:0}
  .gallery .gallery-more svg{margin-bottom:.35rem}

  .gallery .gallery-tap-hint{gap:0}
  .gallery .gallery-tap-hint svg{margin-right:.35rem}

  .breadcrumb-trail{gap:0}
  .breadcrumb-trail>*{margin:.2rem}



  .room-badge{gap:0}
  .room-badge svg{margin-right:.4rem}

  .contact-form{gap:0}
  .contact-form>*+*{margin-top:var(--gap-sm)}

  .price-legend{gap:0}
  .price-legend>*{margin:.25rem .875rem .25rem 0}

  .menu-contacts a,.menu-contacts span{gap:0}
  .menu-contacts svg{margin-right:.6rem}

  .page-back-link{gap:0}
  .page-back-link svg{margin-right:.4rem}

  /* contenitore che va a capo, due valori di gap: stesso principio già
     usato per .formule-inline e .price-legend qui sopra */
  .servizi-inline-list{gap:0}
  .servizi-inline-list li{margin:.375rem .625rem .375rem 0}
}
@media(max-width:35.9375rem){
  @supports (not (gap:1rem)){
    .gallery{gap:0}
    .gallery a+a{margin-left:.5rem}
  }
}
@media(min-width:62rem){
  @supports (not (gap:1rem)){
    .servizi{margin-top:-1rem}
    .servizi>div{margin:1rem .5rem 0}
  }
}


/* =============================================================================
   Cookie consent (banner + preferenze) — variabili e pulsanti riusano quelle
   già definite sopra (--navy, --sea, --sea-600, --sea-300, .button.link):
   niente più un secondo foglio di stile scollegato dal resto del sito.
   Implementazione basata sulle Linee guida del Garante Privacy del 10/06/2021
   (Cookie e altri strumenti di tracciamento). Non è consulenza legale: far
   verificare testi e configurazione da chi cura la compliance privacy.
   ============================================================================= */

:root{
  --cc-text:#f4f1ec;
  --cc-muted:#b9c9d1;
  --cc-sand:#cca97a;
  --cc-border:rgba(255,255,255,.14);
  --cc-focus:var(--sea-300);
  --cc-z: 2147483647;
}

/* Banner primo livello */
.cc-banner{position:fixed;left:0;right:0;bottom:0;z-index:var(--cc-z);background:var(--navy);color:var(--cc-text);border-top:.0625rem solid var(--sea);box-shadow:0 -.375rem 2rem rgba(0,0,0,.28)}
.cc-banner[hidden]{display:none}
.cc-banner__inner{max-width:68.75rem;margin:0 auto;padding:1.5rem 3.25rem 1.5rem 1.5rem;display:flex;flex-wrap:wrap;align-items:center;gap:1.25rem 2.5rem;position:relative}
.cc-banner__text{flex:1 1 23.75rem;font-size:.75rem;line-height:1.65;color:var(--cc-muted);margin:0}
.cc-banner__text strong{color:var(--cc-text);display:block;margin-bottom:.4rem;font-family:var(--font-display);font-size:1.25rem;font-weight:600;letter-spacing:.01em}
.cc-banner__text a{color:var(--cc-text);text-decoration:underline;text-underline-offset:2px}
.cc-banner__actions{display:flex;flex-wrap:wrap;gap:.6rem;flex:0 0 auto}

.cc-close{position:absolute;top:.75rem;right:.75rem;width:2rem;height:2rem;border-radius:50%;border:.0625rem solid transparent;background:transparent;color:var(--cc-muted);font-size:1.1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .15s ease,color .15s ease}
.cc-close:hover{background:rgba(255,255,255,.1);color:var(--cc-text)}
.cc-close:focus-visible{outline:.125rem solid var(--cc-focus);outline-offset:2px}

/* Pulsanti: riusano .button.link (padding, radius, uppercase, transizioni già
   definiti sopra in "5. Bottoni") — qui solo i due colori per sfondo scuro */
.button.link.cc-outline{background:transparent;border-color:rgba(255,255,255,.35);color:var(--cc-text)}
.button.link.cc-outline:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.6);color:var(--cc-text)}
.button.link.cc-solid{background:var(--sea);color:#fff;border-color:var(--sea)}
.button.link.cc-solid:hover{background:var(--sea-600);border-color:var(--sea-600);color:#fff}

/* Modale secondo livello (Preferenze cookie) */
.cc-modal-overlay{position:fixed;inset:0;background:rgba(10,20,26,.62);z-index:var(--cc-z);display:flex;align-items:center;justify-content:center;padding:1rem}
.cc-modal-overlay[hidden]{display:none}
.cc-modal{background:var(--navy-700);color:var(--cc-text);width:100%;max-width:36.25rem;border-radius:1rem;border:.0625rem solid var(--cc-border);box-shadow:0 1.5rem 3.75rem rgba(0,0,0,.4);max-height:88vh;overflow-y:auto;padding:2rem;position:relative}
.cc-modal h2{margin:0 0 .4rem;padding-right:2rem;font-family:var(--font-display);font-size:1.6rem;font-weight:700;letter-spacing:.01em;color:var(--cc-text)}
.cc-modal>p{color:var(--cc-muted);font-size:.88rem;line-height:1.6;margin-top:0}
.cc-modal .cc-close{top:1rem;right:1rem}

.cc-category{border-top:.0625rem solid var(--cc-border);padding:1.25rem 0;display:flex;gap:1.25rem;align-items:flex-start}
.cc-category__body{flex:1}
.cc-category__title{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-weight:500;font-size:.95rem;margin-bottom:.35rem;color:var(--cc-text)}
.cc-tag{font-size:.625rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--cc-sand);border:.0625rem solid rgba(204,169,122,.5);border-radius:.125rem;padding:.15rem .5rem}
.cc-category p{margin:0 0 .35rem;font-size:.85rem;line-height:1.6;color:var(--cc-muted)}

/* Elenco servizi terzi per categoria: chiuso di default (<details>), stesso
   pattern già usato per le FAQ del sito — il dettaglio resta a un click,
   non appesantisce la vista d'insieme del modale */
.cc-category__services-details{margin-top:.5rem}
.cc-category__services-details summary{cursor:pointer;font-size:.78rem;color:var(--sea-300);list-style:none;display:inline-flex;align-items:center;gap:.35rem}
.cc-category__services-details summary::-webkit-details-marker{display:none}
.cc-category__services-details summary::after{content:"";width:.5rem;height:.5rem;border-right:.125rem solid currentColor;border-bottom:.125rem solid currentColor;transform:rotate(45deg);transition:transform .2s var(--ease)}
.cc-category__services-details[open] summary::after{transform:rotate(-135deg)}
.cc-category__services-details summary:hover{color:var(--cc-text)}
.cc-category__services{margin:.6rem 0 0;padding-left:1.1rem;font-size:.78rem;color:var(--cc-muted)}
.cc-category__services li{margin-bottom:.2rem}

.cc-switch{position:relative;display:inline-flex;align-items:center;flex:0 0 auto}
.cc-switch input{position:absolute;opacity:0;width:2.625rem;height:1.5rem;margin:0;cursor:pointer}
.cc-switch__track{position:relative;display:block;width:2.625rem;height:1.5rem;flex:0 0 auto;background:rgba(255,255,255,.22);border-radius:999px;cursor:pointer;transition:background-color .18s ease}
.cc-switch__track::before{content:"";position:absolute;height:1.125rem;width:1.125rem;left:.1875rem;top:.1875rem;background:#fff;border-radius:50%;transition:transform .18s ease}
.cc-switch input:checked + .cc-switch__track{background:var(--sea)}
.cc-switch input:checked + .cc-switch__track::before{transform:translateX(1.125rem)}
.cc-switch input:disabled + .cc-switch__track{opacity:.45;cursor:not-allowed}
.cc-switch input:focus-visible + .cc-switch__track{outline:.125rem solid var(--cc-focus);outline-offset:2px}
.cc-switch__state{font-size:.7rem;color:var(--cc-muted);margin-left:.6rem;white-space:nowrap}

.cc-modal__footer{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:flex-end;margin-top:1.75rem}
.cc-modal__note{font-size:.76rem;line-height:1.6;color:var(--cc-muted);margin-top:1.25rem;border-top:.0625rem solid var(--cc-border);padding-top:1rem}

.cc-reopen{opacity:0; position:fixed;left:1rem;bottom:1rem;z-index:999;width:2.125rem;height:2.125rem;border-radius:50%;border:.0625rem solid var(--cc-border);background:var(--navy);color:var(--cc-text);cursor:pointer;font-size:0.875rem;display:flex;align-items:center;justify-content:center;box-shadow:0 .25rem 1rem rgba(0,0,0,.3);transition:transform .18s ease}
.cc-reopen:hover{transform:translateY(-2px)}
.cc-reopen[hidden]{display:none}
.cc-reopen:focus-visible{outline:.125rem solid var(--cc-focus);outline-offset:2px}

@media (min-width:90rem){
.cc-reopen{left:1rem;bottom:1rem;width:2.5rem;height:2.5rem;font-size:1.125rem;opacity:1; }
}
/* Widget di prenotazione (terze parti) — stile originale del fornitore/wrapper,
   nessun restyle della cornice. Il mostra/nascondi (.is-active/.scroll-visible)
   resta quello definito sopra in "4. Classi aggiuntive"; qui solo le proprietà
   aggiuntive non già coperte (posizionamento fisso, z-index sopra il resto). */
.bookingpersefone_____maschera{left:0;margin:0 auto;bottom:0;position:fixed;width:100%;background:rgba(23,56,77,.32);z-index:calc(var(--cc-z) - 2)}
.fancybox-overlay{z-index:calc(var(--cc-z) - 2)}

/* Finestra di conferma prenotazione (dentro il widget Persefone) a tutta
   pagina — correzione funzionale, vedi js/booking-widget-persefone.js */
.bookingpersefone_____maschera.booking-fullscreen-active{transform:none!important}
#booking-widget-slot iframe.booking-modal-open{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;max-width:none!important;border-radius:0!important;box-shadow:none!important}

.cc-consent-prompt{text-align:center;padding:1rem 1.25rem;font-size:.85rem;background:var(--navy-700);color:var(--cc-text);border-top:.0625rem solid var(--cc-border)}
.cc-consent-prompt .button.link{margin-left:.5rem;width:auto}

/* Facciata video YouTube */
.cc-yt-facade{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:.625rem;background:var(--navy)}
.cc-yt-facade__play{position:absolute;inset:0;width:100%;height:100%;border:0;padding:0;cursor:pointer;background:var(--navy)}
.cc-yt-facade__thumb{width:100%;height:100%;object-fit:cover;opacity:.8;display:block;transition:opacity .25s ease}
.cc-yt-facade__play:hover .cc-yt-facade__thumb{opacity:.95}
.cc-yt-facade__icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:4.5rem;height:4.5rem;border-radius:50%;background:rgba(23,56,77,.75);border:.0625rem solid rgba(255,255,255,.4);color:#fff;font-size:1.5rem;display:flex;align-items:center;justify-content:center;transition:background-color .25s ease}
.cc-yt-facade__play:hover .cc-yt-facade__icon{background:var(--sea)}
.cc-yt-facade__play:focus-visible{outline:.125rem solid var(--cc-focus);outline-offset:2px}
.cc-yt-facade__iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.cc-yt-facade .cc-consent-prompt{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.5rem;border:0}

@media (max-width:40rem){
  .cc-banner__inner{padding:1.25rem 2.75rem 1.25rem 1.1rem}
  .cc-banner__actions{width:100%}
  .cc-banner__actions .button.link{flex:1 1 auto;text-align:center}
  .cc-modal{padding:1.5rem}
  .cc-modal h2{font-size:1.4rem}
}

@media (prefers-reduced-motion: reduce){
  .cc-switch__track,.cc-switch__track::before,.cc-close,.cc-reopen,.cc-yt-facade__thumb,.cc-yt-facade__icon{transition:none}
  .cc-reopen:hover{transform:none}
}