/* ============================================================
   bbportocesareo — layer di miglioramento grafico (non distruttivo)
   Caricato dopo il CSS del tema. Vanilla, indipendente dal JS Flatsome.
   ============================================================ */
:root{
  --bv-navy:#181e42;
  --bv-accent:#dd3333;
  --bv-shadow:0 10px 30px rgba(24,30,66,.12);
  --bv-shadow-hover:0 18px 44px rgba(24,30,66,.22);
}

/* — Tipografia più nitida e arieggiata — */
body{ -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; text-rendering:optimizeLegibility; }
h1,h2{ letter-spacing:-.3px; }
h3,h4,h5{ letter-spacing:.2px; }
p{ line-height:1.75; }

/* — Scroll fluido + offset per l'header sticky — */
html{ scroll-behavior:smooth; }
:target{ scroll-margin-top:96px; }

/* — Gallery / immagini: angoli morbidi, ombra, zoom elegante all'hover — */
.box-image .img-inner,
figure.wp-block-image,
.gallery-item,
.ux-box .image-cover{
  border-radius:14px;
  overflow:hidden;
}
.box-image .img-inner,
figure.wp-block-image{
  box-shadow:var(--bv-shadow);
  transition:box-shadow .45s ease, transform .45s ease;
}
.box-image .img-inner img,
figure.wp-block-image img,
.gallery-item img,
a > img.attachment-large{
  transition:transform .9s cubic-bezier(.2,.7,.2,1) !important;
  will-change:transform;
  display:block;
}
.box-image:hover .img-inner img,
figure.wp-block-image:hover img,
.gallery-item:hover img{ transform:scale(1.07); }
.box-image:hover .img-inner{ box-shadow:var(--bv-shadow-hover); transform:translateY(-4px); }

/* — Bottoni: micro-interazione fluida — */
.button{
  transition:transform .25s ease, box-shadow .25s ease, background-color .25s ease, color .25s ease, border-color .25s ease !important;
  border-radius:8px;
}
.button:hover{ transform:translateY(-2px); box-shadow:0 10px 22px rgba(24,30,66,.20); }
.button.primary{ box-shadow:0 6px 16px rgba(221,51,51,.28); }

/* — Hero: overlay a gradiente (leggibilità) + Ken Burns lentissimo — */
.section-bg-overlay{
  background-image:linear-gradient(180deg, rgba(10,14,30,.18) 0%, rgba(10,14,30,.42) 55%, rgba(10,14,30,.62) 100%) !important;
}
.section-bg.bg-loaded{
  animation:bvKenBurns 28s ease-in-out infinite alternate;
  transform-origin:center center;
}
@keyframes bvKenBurns{ from{ transform:scale(1.001);} to{ transform:scale(1.08);} }

/* — Testo sopra le foto: leggero distacco — */
.banner .text-box h1, .banner .text-box h2, .banner .text-box h3,
.banner .text-box p{ text-shadow:0 2px 18px rgba(0,0,0,.35); }

/* — Link nei contenuti: sottolineatura raffinata in accento — */
.entry-content a:not(.button):not(.lightbox-gallery){
  text-decoration:none;
  box-shadow:inset 0 -2px 0 rgba(221,51,51,.40);
  transition:box-shadow .25s ease, color .25s ease;
}
.entry-content a:not(.button):not(.lightbox-gallery):hover{
  box-shadow:inset 0 -1.0em 0 rgba(221,51,51,.12);
}

/* — Divider/script: piccola enfasi sul font Dancing Script — */
.is-divider{ transition:width .4s ease; }

/* ===== Effetti attivi SOLO se il JS gira (html.fx): degradano in sicurezza ===== */
html.fx section.section{
  opacity:0; transform:translateY(28px);
  transition:opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1);
}
html.fx section.section.fx-in{ opacity:1; transform:none; }

html.fx .box-image .img-inner img,
html.fx figure.wp-block-image img{ opacity:0; }
html.fx img.bv-ready{ opacity:1 !important; }

html.fx-scrolled #header .header-main,
html.fx-scrolled #header.stuck .header-main{ box-shadow:0 6px 24px rgba(24,30,66,.12); }

/* ============================================================
   FIX header su hero: logo/menu leggibili + niente sovrapposizione
   ============================================================ */
/* Logo BIANCO quando l'header è trasparente sopra le foto (era blu su blu) */
.header.transparent:not(.stuck) #logo img{
  filter:brightness(0) invert(1) drop-shadow(0 2px 8px rgba(0,0,0,.5));
}
/* Voci di menu leggibili sopra le foto */
.header.transparent:not(.stuck) .header-main .nav > li > a:not(.button){
  color:#fff !important;
  text-shadow:0 1px 8px rgba(0,0,0,.5);
}
/* Hero: spingo il contenuto sotto l'header trasparente (niente sovrapposizione col menu) */
#section_838855510, #section_1400909787{
  padding-top:210px !important; padding-bottom:80px !important;
}
#section_838855510 h1, #section_1400909787 h1, .banner h1{
  text-shadow:0 2px 22px rgba(0,0,0,.45);
}
/* Evidenzia la parola "BLU" (era #171e42 blu scuro, si confondeva sul mare) */
#section_838855510 h1 span[style*="171e42"],
#section_1400909787 h1 span[style*="171e42"]{
  color:#00aae7 !important;
  text-shadow:0 2px 16px rgba(0,0,0,.55), 0 0 3px rgba(0,0,0,.45) !important;
}
@media (max-width:849px){
  #section_838855510, #section_1400909787{ padding-top:150px !important; min-height:560px !important; }
}
@media (max-width:549px){
  #section_838855510, #section_1400909787{ padding-top:118px !important; min-height:470px !important; }
  .box-image .img-inner, figure.wp-block-image{ border-radius:10px; }
}

/* — Rispetto delle preferenze di movimento ridotto — */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  html.fx section.section{ opacity:1 !important; transform:none !important; }
  .section-bg.bg-loaded{ animation:none !important; }
  html.fx .box-image .img-inner img, html.fx figure.wp-block-image img{ opacity:1 !important; }
}


/* ===== Sezioni custom Camere / Appartamenti (pagina unica) ===== */
.bv-anchor{ display:block; height:0; scroll-margin-top:96px; }
.bv-section{ padding:64px 20px; scroll-margin-top:80px; }
.bv-rooms{ background:#ffffff; } .bv-apts{ background:#f6f9fb; }
.bv-container{ max-width:1100px; margin:0 auto; }
.bv-kicker{ text-transform:uppercase; letter-spacing:2px; font-size:13px; color:#00aae7; font-weight:700; text-align:center; margin:0 0 6px; }
.bv-h2{ text-align:center; color:var(--bv-navy); font-size:clamp(28px,4vw,40px); margin:0 0 10px; }
.bv-sub{ text-align:center; max-width:680px; margin:0 auto 36px; color:#5a6172; }
.bv-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:26px; }
.bv-card{ background:#fff; border-radius:16px; overflow:hidden; box-shadow:var(--bv-shadow); transition:transform .35s ease, box-shadow .35s ease; display:flex; flex-direction:column; }
.bv-card:hover{ transform:translateY(-6px); box-shadow:var(--bv-shadow-hover); }
.bv-card-img{ aspect-ratio:3/2; overflow:hidden; }
.bv-card-img img{ width:100%; height:100%; object-fit:cover; transition:transform .9s cubic-bezier(.2,.7,.2,1); }
.bv-card:hover .bv-card-img img{ transform:scale(1.08); }
.bv-card-body{ padding:20px 22px 24px; display:flex; flex-direction:column; gap:10px; flex:1; }
.bv-card-body h3{ margin:0; color:var(--bv-navy); font-size:21px; }
.bv-card-body p{ margin:0; color:#5a6172; line-height:1.6; flex:1; }
.bv-btn{ align-self:flex-start; margin-top:6px; background:var(--bv-navy); color:#fff !important; padding:10px 22px; border-radius:30px; text-decoration:none; font-weight:600; transition:transform .25s ease, box-shadow .25s ease, background .25s ease; }
.bv-btn:hover{ transform:translateY(-2px); background:#00aae7; box-shadow:0 10px 22px rgba(0,170,231,.35); }
@media(max-width:549px){ .bv-section{ padding:48px 16px; } }
