/* =========================================================================
   PHARUS BOAT 1565 — theme.css
   Design system + header + footer + decori + movimento
   ========================================================================= */

:root{
  /* palette */
  --abyss:#06202F; --ionian:#0B3050; --ionian-2:#0E3C5C;
  --turchese:#1FA9B8; --turchese-d:#178694; --schiuma:#BFE9EC;
  --tramonto:#E8804C; --tramonto-2:#F2A65A;
  --ottone:#C9A24B; --calce:#F5F0E6; --calce-2:#EBE3D4;
  --inchiostro:#0E2030; --nebbia:#6E8497;
  --bianco:#ffffff;

  /* tipografia */
  --font-display:'Fraunces', Georgia, serif;
  --font-body:'Inter', system-ui, sans-serif;
  --font-mono:'IBM Plex Mono', ui-monospace, monospace;

  /* misure */
  --wrap:1180px;
  --gutter:clamp(18px, 4vw, 40px);
  --radius:16px;
  --header-h:auto;
  --shadow:0 18px 40px -24px rgba(6,32,47,.5);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--calce); color:var(--inchiostro);
  font-family:var(--font-body); line-height:1.6; -webkit-font-smoothing:antialiased;
}
img{max-width:100%; height:auto; display:block}
a{color:var(--turchese-d); text-decoration:none}
a:hover{color:var(--ionian)}

h1,h2,h3,h4{font-family:var(--font-display); line-height:1.1; font-weight:600; letter-spacing:-.01em; margin:0 0 .4em}
h1{font-weight:900; font-size:clamp(2rem,5vw,3.4rem)}
h2{font-size:clamp(1.6rem,3.4vw,2.4rem)}
h3{font-size:clamp(1.2rem,2vw,1.5rem)}
p{margin:0 0 1em}

.wrap{max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gutter)}

.screen-reader-text{position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); white-space:nowrap}
.skip-link{position:absolute; left:-9999px; top:0; z-index:9999; background:var(--ionian); color:#fff; padding:10px 16px; border-radius:0 0 8px 0}
.skip-link:focus{left:0}

/* eyebrow / micro-label nautico */
.eyebrow{font-family:var(--font-mono); font-size:.72rem; letter-spacing:.26em; text-transform:uppercase; color:var(--ottone); display:inline-flex; align-items:center; gap:.6em}
.eyebrow::before{content:""; width:26px; height:1px; background:var(--ottone)}

/* -------------------------------------------------------------------------
   Bottoni
   ---------------------------------------------------------------------- */
.btn{display:inline-block; font-weight:600; font-size:.95rem; padding:13px 26px; border-radius:100px; transition:transform .2s, box-shadow .2s, background .2s; cursor:pointer; border:0}
.btn--primary{background:var(--ionian); color:#fff}
.btn--primary:hover{background:var(--turchese-d); color:#fff; transform:translateY(-2px); box-shadow:var(--shadow)}
.btn--sun{background:var(--tramonto); color:#fff}
.btn--sun:hover{background:var(--tramonto-2); color:#fff; transform:translateY(-2px)}
.btn--ghost{background:transparent; color:var(--ionian); box-shadow:inset 0 0 0 1.5px var(--ottone)}
.btn--ghost:hover{background:var(--ottone); color:#fff}

/* su sfondi scuri (hero, slider, sezioni dark) i bottoni devono restare leggibili */
.hero .btn--primary,
.hero-slider .btn--primary,
.slide .btn--primary,
.section--dark .btn--primary,
.section--underwater .btn--primary{background:var(--ottone); color:#08243a}
.hero .btn--primary:hover,
.hero-slider .btn--primary:hover,
.slide .btn--primary:hover,
.section--dark .btn--primary:hover,
.section--underwater .btn--primary:hover{background:#dcbb6e; color:#08243a; transform:translateY(-2px); box-shadow:var(--shadow)}
.hero .btn--ghost,
.hero-slider .btn--ghost,
.slide .btn--ghost,
.section--dark .btn--ghost,
.section--underwater .btn--ghost{color:#fff; box-shadow:inset 0 0 0 1.6px rgba(255,255,255,.8)}
.hero .btn--ghost:hover,
.hero-slider .btn--ghost:hover,
.slide .btn--ghost:hover,
.section--dark .btn--ghost:hover,
.section--underwater .btn--ghost:hover{background:#fff; color:var(--ionian)}

/* =========================================================================
   HEADER
   ========================================================================= */
.site-header{position:relative; background:linear-gradient(170deg,var(--abyss),var(--ionian) 80%); color:var(--schiuma)}
.site-header__inner{max-width:var(--wrap); margin-inline:auto; padding:14px var(--gutter) 0; text-align:center}

.site-header__top{display:flex; justify-content:center}
.social-row{display:flex; align-items:center; gap:12px}
.social-row__label{font-family:var(--font-mono); font-size:.7rem; letter-spacing:.24em; text-transform:uppercase; color:var(--schiuma); opacity:.85}
.social-row__list{display:flex; gap:12px; list-style:none; margin:0; padding:0}
.social-row__list a{color:var(--schiuma); display:inline-flex; transition:transform .2s, color .2s}
.social-row__list a:hover{color:var(--ottone); transform:translateY(-2px)}
.social-row__list svg{width:20px; height:20px}

.site-header__brand{padding:14px 0 10px}
.site-header__brand .custom-logo-link{display:inline-block}
.site-header__brand img{max-height:96px; width:auto; margin-inline:auto}
.brand-fallback{display:inline-flex; flex-direction:column; align-items:center; color:#fff}
.brand-fallback__name{font-family:var(--font-display); font-weight:900; font-size:2rem; letter-spacing:.16em}
.brand-fallback__tag{font-size:.62rem; letter-spacing:.5em; color:var(--schiuma); margin-top:2px}

.site-header__nav{display:flex; justify-content:center; align-items:center; padding-bottom:16px}
.primary-menu{display:flex; gap:26px; list-style:none; margin:0; padding:0; flex-wrap:wrap; justify-content:center}
.primary-menu a{color:#D7E6EE; font-size:.92rem; font-weight:500; letter-spacing:.02em; padding:6px 2px; position:relative}
.primary-menu a::after{content:""; position:absolute; left:0; right:100%; bottom:-2px; height:2px; background:var(--ottone); transition:right .25s}
.primary-menu a:hover, .primary-menu .current-menu-item > a{color:#fff}
.primary-menu a:hover::after, .primary-menu .current-menu-item > a::after{right:0}

.nav-toggle{display:none; width:42px; height:38px; background:transparent; border:1px solid rgba(191,233,236,.3); border-radius:9px; position:relative; cursor:pointer}
.nav-toggle__bar, .nav-toggle__bar::before, .nav-toggle__bar::after{content:""; position:absolute; left:50%; top:50%; width:18px; height:2px; background:var(--schiuma); transform:translate(-50%,-50%); transition:.25s}
.nav-toggle__bar::before{transform:translate(-50%,-7px)}
.nav-toggle__bar::after{transform:translate(-50%,5px)}

.site-header__rope{height:8px; background-size:auto 8px}

/* sticky shrink */
.site-header.is-stuck{position:sticky; top:0; z-index:900; box-shadow:0 10px 30px -18px rgba(0,0,0,.6)}

/* =========================================================================
   SEZIONI & DECORI
   ========================================================================= */
.section{padding:clamp(48px,7vw,90px) 0; position:relative}
.section--dark{background:linear-gradient(165deg,var(--ionian),var(--abyss)); color:var(--schiuma)}
.section--sea{background:var(--calce-2)}
.section__head{max-width:64ch; margin-bottom:34px}
.section--center .section__head{margin-inline:auto; text-align:center}

/* separatore a corda (immagine raster, ripetuta in orizzontale) — sottile */
.rope-sep{height:11px; background:url(../img/rope.png) repeat-x center; background-size:auto 11px}

/* decoro ancora che compare in dissolvenza e resta */
.anchor-drop{display:inline-block; opacity:0; transform:translateY(-14px)}
.anchor-drop .deco-anchor{width:118px; height:auto; filter:drop-shadow(0 14px 22px rgba(6,32,47,.45))}
.anchor-drop.is-visible{animation:anchorDrop 1.4s cubic-bezier(.2,.75,.25,1) forwards}
@keyframes anchorDrop{0%{opacity:0; transform:translateY(-14px)}70%{opacity:1; transform:translateY(2px)}100%{opacity:1; transform:translateY(0)}}

/* bussola, salvagente, cornice di corda */
.deco-compass{width:118px; height:auto; margin:0 auto 14px; filter:drop-shadow(0 12px 20px rgba(0,0,0,.35))}
.deco-buoy{position:absolute; right:clamp(12px,4vw,60px); top:34px; width:clamp(64px,10vw,108px); opacity:.9; filter:drop-shadow(0 10px 18px rgba(0,0,0,.4)); pointer-events:none; z-index:1}
.rope-frame{display:inline-block; position:relative; max-width:420px; padding:22px; margin:0}
.rope-frame::before{content:""; position:absolute; inset:0; background:url(../img/rope-frame.png) no-repeat center/100% 100%; pointer-events:none}
.rope-frame img{display:block; width:100%; height:auto; border-radius:6px}

/* reveal allo scroll */
.reveal{opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.8,.2,1)}
.reveal.is-visible{opacity:1; transform:none}

/* parallax (gli sfondi con [data-parallax]) */
[data-parallax]{will-change:transform}

/* =========================================================================
   HERO (placeholder Sprint 1 — riempito nello Sprint 2)
   ========================================================================= */
.hero{position:relative; min-height:clamp(420px,70vh,640px); display:grid; place-items:center; text-align:center; color:#fff; overflow:hidden; background:linear-gradient(150deg,var(--abyss),var(--ionian) 55%,var(--turchese-d))}
.hero__bg{position:absolute; inset:-12% 0; background-size:cover; background-position:center; opacity:.5}
.hero__inner{position:relative; z-index:2; padding:var(--gutter); max-width:760px}
.hero h1{color:#fff}
.hero h1 em{font-style:italic; font-weight:500; color:var(--schiuma)}
.hero p{color:#D7E6EE; font-size:1.1rem; max-width:54ch; margin-inline:auto}
.hero__cta{display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-top:26px}

/* =========================================================================
   FOOTER
   ========================================================================= */
.site-footer{background:linear-gradient(180deg,var(--ionian),var(--abyss)); color:var(--schiuma); position:relative; margin-top:0}
.site-footer__waves{position:absolute; top:0; left:0; right:0; height:50px; transform:translateY(-80%); background:url(../img/waves-sep.png) repeat-x bottom; background-size:auto 50px; pointer-events:none; z-index:3}
.site-footer__widgets{max-width:var(--wrap); margin-inline:auto; padding:54px var(--gutter) 30px; display:grid; gap:34px}
.site-footer__widgets.cols-1{grid-template-columns:1fr}
.site-footer__widgets.cols-2{grid-template-columns:repeat(2,1fr)}
.site-footer__widgets.cols-3{grid-template-columns:repeat(3,1fr)}
.site-footer__widgets.cols-4{grid-template-columns:repeat(4,1fr)}
.footer-widget__title{font-family:var(--font-mono); font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ottone); margin:0 0 14px}
.footer-col, .footer-col a{color:var(--schiuma)}
.footer-col a:hover{color:#fff}
.footer-col ul{list-style:none; margin:0; padding:0; display:grid; gap:8px}

.site-footer__bar{border-top:1px solid rgba(191,233,236,.14)}
.site-footer__bar-inner{max-width:var(--wrap); margin-inline:auto; padding:18px var(--gutter); display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; font-size:.84rem}
.copyright{margin:0; color:#9CB6C6}
.legal-menu{display:flex; gap:18px; list-style:none; margin:0; padding:0}
.legal-menu a{color:#9CB6C6; font-size:.84rem}
.legal-menu a:hover{color:#fff}
.site-footer__social .social-row__label{display:none}

/* =========================================================================
   CONTENUTO BASE (page/single)
   ========================================================================= */
.entry{max-width:var(--wrap); margin-inline:auto; padding:clamp(40px,6vw,72px) var(--gutter)}
.entry-content{max-width:72ch}
.entry-content :is(h2,h3){margin-top:1.4em}
.entry-content ul{padding-left:1.2em}
.page-hero{background:linear-gradient(165deg,var(--abyss),var(--ionian)); color:#fff; padding:clamp(40px,7vw,80px) var(--gutter) clamp(34px,5vw,60px); text-align:center}
.page-hero h1{color:#fff}
.page-hero .eyebrow{justify-content:center; margin-bottom:14px}

/* =========================================================================
   RESPONSIVE
   ========================================================================= */
@media (max-width:880px){
  .site-header__nav{justify-content:space-between; position:relative}
  .nav-toggle{display:block; position:absolute; right:0; top:-58px}
  .primary-menu{flex-direction:column; gap:0; width:100%; max-height:0; overflow:hidden; transition:max-height .3s ease}
  .primary-menu li{border-top:1px solid rgba(191,233,236,.12)}
  .primary-menu a{display:block; padding:13px 4px}
  .site-header__nav.is-open .primary-menu{max-height:60vh}
  .site-footer__widgets.cols-3, .site-footer__widgets.cols-4{grid-template-columns:repeat(2,1fr)}
  .site-footer__bar-inner{flex-direction:column; text-align:center}
}
@media (max-width:520px){
  .site-footer__widgets.cols-2, .site-footer__widgets.cols-3, .site-footer__widgets.cols-4{grid-template-columns:1fr}
}

/* rispetto delle preferenze di movimento ridotto */
@media (prefers-reduced-motion: reduce){
  *{scroll-behavior:auto!important}
  .reveal{opacity:1!important; transform:none!important; transition:none}
  .anchor-drop{opacity:1!important; transform:none!important; animation:none}
  [data-parallax]{transform:none!important}
}

/* =========================================================================
   SPRINT 2 — HOMEPAGE
   ========================================================================= */

/* separatore a onde (illustrazione) — straddle per nascondere il bordo tra sezioni */
.waves-sep{height:52px; background:url(../img/waves-sep.png) repeat-x center; background-size:auto 52px; opacity:.92; position:relative; z-index:3; margin:-32px 0 -20px; transform:translateY(-14%); pointer-events:none}
.waves-sep--sm{height:30px; background-size:auto 30px; margin:-18px 0 -12px}

/* ---- HERO SLIDER ---- */
.hero-slider{position:relative; overflow:hidden; background:var(--abyss)}
.hero-slider .slides{position:relative; min-height:clamp(460px,76vh,720px)}
.slide{position:absolute; inset:0; opacity:0; visibility:hidden; transition:opacity .9s ease}
.slide.is-active{opacity:1; visibility:visible; z-index:2}
.slide__bg{position:absolute; inset:-8% 0; background-image:var(--img); background-size:cover; background-position:center; transform:scale(1.04)}
.slide__overlay{position:absolute; inset:0; background:linear-gradient(90deg, rgba(6,32,47,.82) 0%, rgba(6,32,47,.5) 45%, rgba(6,32,47,.15) 100%)}
.slide__content{position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; max-width:var(--wrap); margin-inline:auto; padding:0 var(--gutter); color:#fff}
.slide__content .inner{max-width:620px}
.slide__content .eyebrow{color:var(--ottone); margin-bottom:14px}
.slide__title{color:#fff; font-size:clamp(2rem,4.6vw,3.4rem); min-height:1.1em; margin-bottom:.3em}
.slide__title.is-typing::after{content:"_"; color:var(--ottone); animation:caret 1s steps(1) infinite}
@keyframes caret{50%{opacity:0}}
.slide__content p{color:#D7E6EE; font-size:1.08rem; max-width:48ch; margin-bottom:24px}
.slide__cta{display:flex; gap:12px; flex-wrap:wrap}

.slider-arrow{position:absolute; top:50%; transform:translateY(-50%); z-index:5; width:48px; height:48px; border-radius:50%; border:1px solid rgba(255,255,255,.4); background:rgba(6,32,47,.35); color:#fff; font-size:1.6rem; line-height:1; cursor:pointer; backdrop-filter:blur(3px); transition:background .2s}
.slider-arrow:hover{background:var(--ottone); border-color:var(--ottone); color:#08243a}
.slider-arrow.prev{left:18px} .slider-arrow.next{right:18px}
.slider-dots{position:absolute; bottom:54px; left:50%; transform:translateX(-50%); display:flex; gap:9px; z-index:5}
.slider-dot{width:9px; height:9px; border-radius:50%; border:0; background:rgba(255,255,255,.45); cursor:pointer; padding:0; transition:.25s}
.slider-dot.is-active{background:var(--ottone); width:26px; border-radius:5px}
.hero-slider .slide-rope{position:absolute; bottom:0; left:0; right:0; z-index:4}

/* ---- QUICK CARDS (sovrapposte allo slider) ---- */
.quick-cards{position:relative; z-index:6; max-width:var(--wrap); margin:-46px auto 0; padding:0 var(--gutter); display:grid; grid-template-columns:repeat(4,1fr); gap:16px}
.quick-card{display:flex; flex-direction:column; align-items:center; justify-content:flex-start; background:#fff; border:1px solid var(--calce-2); border-radius:14px; padding:22px 16px 18px; text-align:center; box-shadow:var(--shadow); transition:transform .2s; color:var(--ionian); min-width:0}
.quick-card:hover{transform:translateY(-4px); color:var(--ionian)}
.quick-card__ic{display:grid; place-items:center; width:40px; height:40px; margin:0 auto 12px; color:var(--turchese); flex:0 0 auto}
.quick-card__ic svg{display:block; width:40px; height:40px}
.quick-card h3{font-size:1rem; margin-bottom:3px}
.quick-card p{font-size:.78rem; color:var(--nebbia); margin:0; line-height:1.4}

/* ---- EVENTI (3 card) ---- */
.events-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px}
.event-card{position:relative; border-radius:var(--radius); overflow:hidden; min-height:420px; display:flex; flex-direction:column; justify-content:flex-end; color:#fff; box-shadow:var(--shadow)}
.event-card__bg{position:absolute; inset:0; background-size:cover; background-position:center; transition:transform .6s ease}
.event-card:hover .event-card__bg{transform:scale(1.06)}
.event-card__grad{position:absolute; inset:0}
.event-card.day .event-card__grad{background:linear-gradient(180deg, rgba(11,48,80,.1), rgba(11,48,80,.86))}
.event-card.sun .event-card__grad{background:linear-gradient(180deg, rgba(122,46,58,.1), rgba(43,18,12,.86))}
.event-card.priv .event-card__grad{background:linear-gradient(180deg, rgba(6,32,47,.12), rgba(6,32,47,.9))}
.event-card__body{position:relative; padding:26px 24px 28px}
.event-card .badge{position:absolute; top:18px; left:18px; font-family:var(--font-mono); font-size:.64rem; letter-spacing:.16em; text-transform:uppercase; background:rgba(255,255,255,.18); backdrop-filter:blur(4px); padding:6px 12px; border-radius:100px}
.event-card .times{display:flex; gap:7px; flex-wrap:wrap; margin-bottom:12px}
.event-card .times span{font-family:var(--font-mono); font-size:.72rem; background:rgba(255,255,255,.18); padding:3px 10px; border-radius:100px}
.event-card h3{font-size:1.5rem; color:#fff; margin-bottom:8px}
.event-card p{font-size:.88rem; color:rgba(255,255,255,.9); margin-bottom:18px}

/* ---- VIDEO + SERVIZI ---- */
.video-section{display:grid; grid-template-columns:1.05fr .95fr; gap:40px; align-items:center}
.video-frame{position:relative; border-radius:var(--radius); overflow:hidden; aspect-ratio:16/9; box-shadow:var(--shadow); cursor:pointer; background:#06202F}
.yt-facade{position:absolute; inset:0; background-size:cover; background-position:center}
.yt-facade::before{content:""; position:absolute; inset:0; background:rgba(6,32,47,.35); transition:.25s}
.yt-facade:hover::before{background:rgba(6,32,47,.15)}
.yt-facade .play{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:78px; height:78px; border-radius:50%; background:rgba(255,255,255,.92); display:grid; place-items:center; transition:transform .2s}
.yt-facade:hover .play{transform:translate(-50%,-50%) scale(1.08)}
.yt-facade .play::after{content:""; border-left:22px solid var(--ionian); border-top:13px solid transparent; border-bottom:13px solid transparent; margin-left:5px}
.yt-facade.is-playing::before,.yt-facade.is-playing .play{display:none}
.yt-facade iframe{position:absolute; inset:0; width:100%; height:100%; border:0}
.video-section .services li{list-style:none; padding-left:30px; position:relative; margin-bottom:12px; font-size:.96rem}
.video-section .services li::before{content:""; position:absolute; left:0; top:2px; width:18px; height:18px; background:url(../img/anchor.png) no-repeat center/contain; opacity:.8}
.video-section .services{padding:0; margin:18px 0 0}

/* ---- TESTIMONIALS strip ---- */
.testi-strip{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
.testi{background:#fff; border:1px solid var(--calce-2); border-radius:var(--radius); padding:22px 22px}
.testi .stars{color:var(--ottone); letter-spacing:2px; margin-bottom:8px}
.testi p{font-size:.9rem; color:#3a4f5e; font-style:italic}
.testi .who{font-weight:600; font-size:.86rem; color:var(--ionian); margin-top:10px}
.testi .src{font-family:var(--font-mono); font-size:.62rem; letter-spacing:.1em; color:var(--nebbia)}
.rating-badge{display:inline-flex; align-items:center; gap:12px; background:#fff; border:1px solid var(--calce-2); border-radius:100px; padding:10px 22px; box-shadow:var(--shadow)}
.rating-badge b{font-family:var(--font-display); font-size:1.7rem; color:var(--ionian)}

/* ---- NEWSLETTER su immagine comandante (full-bleed, overlay a destra) ---- */
.newsletter-capt{position:relative; min-height:clamp(420px,56vh,560px); display:flex; align-items:center; overflow:hidden; background:#0B3050}
.newsletter-capt__bg{position:absolute; inset:0; background:url(../img/captain.jpg) no-repeat left center/cover}
.newsletter-capt__grad{position:absolute; inset:0; background:linear-gradient(90deg, rgba(6,32,47,.15) 0%, rgba(6,32,47,.1) 30%, rgba(245,240,230,.92) 62%, var(--calce) 100%)}
.newsletter-capt__panel{position:relative; margin-left:auto; width:min(520px,46%); padding:clamp(28px,4vw,46px) var(--gutter); }
.newsletter-capt__panel .eyebrow{margin-bottom:12px}
.newsletter-capt__panel h2{color:var(--ionian)}
.newsletter-capt__panel p{color:#42586a; font-size:.96rem}
.nl-form{margin-top:16px}
.nl-row{display:flex; gap:10px; flex-wrap:wrap}
.nl-form input[type=email]{flex:1; min-width:200px; height:48px; border:1px solid var(--calce-2); border-radius:100px; padding:0 18px; font-size:.95rem; background:#fff}
.nl-consent{display:flex; gap:8px; align-items:flex-start; margin-top:12px; font-size:.78rem; color:var(--nebbia)}
.nl-consent input{margin-top:2px}

/* decoro: timone watermark e rosa dei venti */
.deco-wheel-bg{position:absolute; right:-90px; top:50%; transform:translateY(-50%); width:340px; opacity:.06; pointer-events:none}
.deco-rose{width:120px; height:auto; margin:0 auto 14px; filter:drop-shadow(0 12px 20px rgba(0,0,0,.3))}

/* ---- responsive homepage ---- */
@media (max-width:980px){
  .quick-cards{grid-template-columns:repeat(2,1fr); margin-top:-40px}
  .events-grid{grid-template-columns:1fr}
  .video-section{grid-template-columns:1fr; gap:26px}
  .testi-strip{grid-template-columns:1fr}
  .newsletter-capt__grad{background:linear-gradient(180deg, rgba(6,32,47,.2) 0%, rgba(245,240,230,.92) 55%, var(--calce) 100%)}
  .newsletter-capt__panel{width:100%; margin:0; align-self:flex-end}
  .newsletter-capt__bg{background-position:center top}
}
@media (max-width:560px){
  .quick-cards{grid-template-columns:repeat(2,1fr); gap:12px}
  .slider-dots{bottom:18px}
}

/* ---- TESTI: avatar + card CTA migliore ---- */
.testi{display:flex; flex-direction:column}
.testi__head{display:flex; align-items:center; gap:12px; margin-bottom:6px}
.testi__avatar{width:46px; height:46px; border-radius:50%; flex:0 0 auto; display:grid; place-items:center; overflow:hidden; background:linear-gradient(135deg,var(--turchese),var(--ionian))}
.testi__avatar.sun{background:linear-gradient(135deg,var(--tramonto-2),var(--tramonto))}
.testi__avatar svg{width:30px; height:30px; color:#fff; opacity:.92}
.testi__avatar img{width:100%; height:100%; object-fit:cover}
.testi__meta{flex:1; min-width:0}
.testi__name{font-weight:600; font-size:.92rem; color:var(--ionian); display:flex; align-items:center; gap:7px}
.testi__name .gmark{width:15px; height:15px; flex:0 0 auto}
.testi__head .stars{margin:2px 0 0}
.testi blockquote{margin:0; font-size:.9rem; color:#3a4f5e; font-style:italic; line-height:1.55}

.testi--cta{background:linear-gradient(150deg,var(--ionian),var(--abyss)); color:#fff; justify-content:center; gap:6px; padding:26px 24px}
.testi--cta .ic{width:40px; height:40px; color:var(--ottone); margin-bottom:6px}
.testi--cta .ic svg{width:100%; height:100%}
.testi--cta h3{color:#fff; font-size:1.18rem; margin:0 0 6px}
.testi--cta p{color:var(--schiuma); font-style:normal; font-size:.88rem; margin:0 0 16px}

/* ---- ALTERNANZA SFONDI ---- */
.section--underwater{position:relative; color:#fff; background:#0a2b40; overflow:hidden}
.section--underwater::before{content:""; position:absolute; inset:0; background:url(../img/sea-bg.jpg) center/cover; opacity:.5}
.section--underwater::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(8,36,58,.80), rgba(11,48,80,.92))}
.section--underwater > *{position:relative; z-index:1}
.section--underwater h2{color:#fff}
.section--underwater p{color:#D7E6EE}
.section--underwater .eyebrow{color:var(--ottone)}
.section--underwater .services li{color:#EAF3F6}
.section--mist{background:linear-gradient(180deg, var(--calce-2), #fff)}

/* ---- TESTIMONIAL CAROUSEL ---- */
.testi-carousel{position:relative; max-width:780px; margin:30px auto 0; min-height:300px}
.testi-slide{position:absolute; inset:0; opacity:0; visibility:hidden; transition:opacity .55s ease; display:flex; flex-direction:column; align-items:center; text-align:center; padding:8px 12px}
.testi-slide.is-active{opacity:1; visibility:visible; position:relative}
.testi-av{width:66px; height:66px; border-radius:50%; display:grid; place-items:center; color:#fff; font-family:var(--font-display); font-weight:700; font-size:1.5rem; margin-bottom:14px; box-shadow:var(--shadow)}
.testi-av.c0{background:linear-gradient(135deg,var(--turchese),var(--ionian))}
.testi-av.c1{background:linear-gradient(135deg,var(--tramonto),var(--tramonto-2))}
.testi-av.c2{background:linear-gradient(135deg,#3E8E7E,var(--ionian))}
.testi-av.c3{background:linear-gradient(135deg,var(--ottone),#8a6d2a)}
.testi-slide .stars{color:var(--ottone); letter-spacing:3px; font-size:1.15rem; margin-bottom:14px}
.testi-slide .quote{font-family:var(--font-display); font-size:clamp(1.18rem,2.2vw,1.62rem); line-height:1.5; color:var(--ionian); font-style:italic; margin:0 0 18px; max-width:58ch}
.testi-slide .testi-name{font-weight:600; color:var(--ionian); display:inline-flex; align-items:center; gap:7px; font-size:1rem}
.testi-slide .testi-name .gmark{width:15px; height:15px}
.testi-slide .testi-name .src{font-family:var(--font-mono); font-size:.64rem; letter-spacing:.12em; color:var(--nebbia); text-transform:uppercase}

.testi-dots{display:flex; gap:8px; justify-content:center; margin-top:24px}
.testi-dot{width:9px; height:9px; border-radius:50%; border:0; background:var(--calce-2); cursor:pointer; padding:0; transition:.25s}
.testi-dot.is-active{background:var(--ottone); width:26px; border-radius:5px}
.testi-arrow{position:absolute; top:46%; transform:translateY(-50%); width:42px; height:42px; border-radius:50%; border:1px solid var(--calce-2); background:#fff; color:var(--ionian); font-size:1.4rem; cursor:pointer; z-index:3; box-shadow:var(--shadow); transition:.2s}
.testi-arrow:hover{background:var(--ottone); color:#fff; border-color:var(--ottone)}
.testi-arrow.prev{left:-6px} .testi-arrow.next{right:-6px}
.testi-cta-row{text-align:center; margin-top:26px}
@media (max-width:680px){
  .testi-carousel{min-height:360px}
  .testi-arrow{display:none}
}

/* =========================================================================
   SPRINT 3 — Layout boxed, sidebar, pagine, moduli
   ========================================================================= */

/* ---- BOXED / FULL WIDTH ---- */
body.layout-boxed{background:#0a2238}
.layout-boxed #page{max-width:var(--boxed-w,1340px); margin-inline:auto; background:var(--calce); box-shadow:0 0 70px rgba(0,0,0,.42); overflow-x:clip}

/* ---- PAGE HERO (banner con immagine) ---- */
.page-hero--banner{position:relative; isolation:isolate; overflow:hidden}
.page-hero__bg{position:absolute; inset:-10% 0; background:url(../img/sea-bg.jpg) center/cover no-repeat; opacity:.5; z-index:-2}
.page-hero--banner::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(6,32,47,.5),rgba(6,32,47,.82)); z-index:-1}
.page-hero__inner{position:relative}
.page-hero--banner .eyebrow{justify-content:center; color:var(--ottone); margin-bottom:12px}

/* ---- CONTENT AREA + SIDEBAR ---- */
.content-area{max-width:var(--wrap); margin-inline:auto; padding:clamp(40px,6vw,72px) var(--gutter)}
.content-area .entry{max-width:none; margin:0; padding:0}
.content-area.has-sidebar{display:grid; grid-template-columns:minmax(0,1fr) 304px; gap:44px; align-items:start}
.entry-thumb{margin:0 0 26px; border-radius:var(--radius); overflow:hidden}
.entry-thumb img{display:block; width:100%; height:auto}

.widget-area{display:flex; flex-direction:column; gap:22px; position:sticky; top:20px}
.widget{background:#fff; border:1px solid var(--calce-2); border-radius:14px; padding:20px; box-shadow:var(--shadow)}
.widget__title{font-size:1.05rem; margin:0 0 12px; padding-bottom:10px; border-bottom:1px solid var(--calce-2)}
.widget ul{list-style:none; padding:0; margin:0}
.widget li{padding:7px 0; border-bottom:1px dashed var(--calce-2)}
.widget li:last-child{border-bottom:0}
.widget a{color:var(--ionian)} .widget a:hover{color:var(--turchese)}

/* ---- ARMATORE / CHI SIAMO ---- */
.armatore__grid{display:grid; grid-template-columns:.92fr 1.08fr; gap:48px; align-items:center}
.armatore__media{display:flex; justify-content:center}
.armatore__media .rope-frame{max-width:460px; width:100%}
.armatore__body h2{font-size:clamp(1.7rem,3vw,2.5rem); min-height:1.1em}
.skills{margin-top:26px; display:flex; flex-direction:column; gap:16px}
.skillbar__head{display:flex; justify-content:space-between; font-size:.9rem; font-weight:600; color:var(--ionian); margin-bottom:6px}
.skillbar__pct{color:var(--turchese)}
.skillbar__track{height:9px; background:var(--calce-2); border-radius:100px; overflow:hidden}
.skillbar__fill{display:block; height:100%; width:0; border-radius:100px; background:linear-gradient(90deg,var(--turchese),var(--ottone)); transition:width 1.3s cubic-bezier(.2,.7,.2,1)}
.skillbar.is-visible .skillbar__fill{width:var(--pct)}

/* ---- CONTATTI ---- */
.contact-cards{display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-bottom:60px}
.contact-card{background:#fff; border:1px solid var(--calce-2); border-radius:14px; padding:24px 18px; text-align:center; box-shadow:var(--shadow)}
.contact-card__ic{display:grid; place-items:center; width:42px; height:42px; margin:0 auto 12px; color:var(--turchese)}
.contact-card__ic svg{width:42px; height:42px}
.contact-card h3{font-size:1rem; margin-bottom:6px}
.contact-card p{font-size:.86rem; color:var(--nebbia); margin:0; line-height:1.5}
.contact-card a{color:var(--ionian)}
.contact-split{display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:stretch}
.contact-map{border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); height:100%; min-height:460px}
.contact-map iframe{width:100%; height:100%; min-height:460px; border:0; display:block}

/* ---- MODULI NATIVI ---- */
.form-switch{margin-bottom:18px}
.form-switch label{display:block; font-weight:600; margin-bottom:6px; font-size:.9rem; color:var(--ionian)}
.form-switch__select,
.pharus-form input,
.pharus-form select,
.pharus-form textarea{width:100%; border:1px solid var(--calce-2); border-radius:10px; padding:11px 13px; font:inherit; background:#fff; color:var(--inchiostro)}
.pharus-form input:focus,.pharus-form select:focus,.pharus-form textarea:focus,.form-switch__select:focus{outline:2px solid var(--turchese); outline-offset:1px; border-color:var(--turchese)}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px}
.form-row{display:flex; flex-direction:column; gap:5px}
.form-row[hidden], .pharus-form [hidden]{display:none !important}
.form-row label{font-size:.82rem; font-weight:600; color:var(--ionian)}
.form-row--wide{grid-column:1 / -1}
.form-row .req{color:var(--tramonto)}
.pharus-form textarea{resize:vertical; min-height:120px}
.form-actions{display:flex; align-items:center; gap:14px; margin-top:16px; flex-wrap:wrap}
.form-privacy{font-size:.76rem; color:var(--nebbia)}
.pharus-hp{position:absolute !important; left:-9999px; width:1px; height:1px; overflow:hidden}
.form-notice{padding:14px 18px; border-radius:10px; margin-bottom:18px; font-size:.92rem}
.form-notice--ok{background:#E3F4E8; border:1px solid #9FD8B0; color:#1f6b3a}
.form-notice--err{background:#FBE6E0; border:1px solid #F0B49F; color:#9b3a1e}

/* ---- responsive Sprint 3 ---- */
@media (max-width:900px){
  .content-area.has-sidebar{grid-template-columns:1fr}
  .widget-area{position:static}
  .armatore__grid{grid-template-columns:1fr; gap:30px}
  .contact-cards{grid-template-columns:repeat(2,1fr)}
  .contact-split{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
}
@media (max-width:520px){
  .contact-cards{grid-template-columns:1fr}
}

/* =========================================================================
   REVISIONE — header leggero, pagina Tour, widget BABE, contatti, condizionali
   ========================================================================= */

/* intestazione pagina leggera (sostituisce il banner) */
.page-head{padding:clamp(34px,5vw,58px) 0 10px; text-align:center}
.page-head h1{color:var(--ionian); font-size:clamp(1.9rem,4vw,2.8rem)}
.page-head .eyebrow{justify-content:center; color:var(--ottone); margin-bottom:10px}

/* ---- PAGINA TOUR ---- */
.tour-figure{max-width:560px; margin:0 0 30px; padding:8px; background:#fff; border:1px solid var(--calce-2); border-radius:16px; box-shadow:0 18px 40px rgba(6,32,47,.16); position:relative}
.tour-figure::before{content:""; position:absolute; inset:8px; border:1px solid rgba(201,162,75,.55); border-radius:10px; pointer-events:none; z-index:2}
.tour-figure img{display:block; width:100%; height:auto; border-radius:10px}
.tour-content{text-align:justify; hyphens:auto}
.tour-content :is(h1,h2,h3,h4){text-align:left}
.tour-highlights{list-style:none; padding:0; margin:26px 0; display:grid; grid-template-columns:repeat(2,1fr); gap:12px}
.tour-highlights li{position:relative; padding:13px 14px 13px 46px; background:var(--calce-2); border-radius:10px; font-size:.92rem}
.tour-highlights li::before{content:""; position:absolute; left:12px; top:50%; transform:translateY(-50%); width:24px; height:24px; background:url(../img/anchor.png) no-repeat center/contain}
.tour-map{margin-top:30px}
.tour-map h3{margin-bottom:12px}
.tour-map .contact-map, .tour-map .contact-map iframe{min-height:340px}

/* sidebar Tour un po' più larga per ospitare il form BABE */
.single-to_book .content-area.has-sidebar{grid-template-columns:minmax(0,1fr) 360px}

/* ---- WIDGET PRENOTAZIONE BABE (classi reali del plugin) ---- */
.widget_babe_widget_booking_form{background:#fff; color:var(--inchiostro); overflow:hidden; border-top:4px solid var(--ottone); border-radius:14px}
.widget_babe_widget_booking_form .widget__title{color:var(--ionian); font-size:1.2rem; margin-bottom:8px}
.widget_babe_widget_booking_form .booking-form-block{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 12px; padding:12px 0; margin:0; border-bottom:1px solid var(--calce-2)}
.widget_babe_widget_booking_form .booking-form-block:last-of-type{border-bottom:0}
.widget_babe_widget_booking_form .booking_form_input_label{flex-grow:13; font-weight:700; color:var(--ionian); font-size:.9rem; letter-spacing:.01em}
.widget_babe_widget_booking_form input[type=text],
.widget_babe_widget_booking_form input[type=date],
.widget_babe_widget_booking_form input[type=number],
.widget_babe_widget_booking_form input[type=email],
.widget_babe_widget_booking_form select,
.widget_babe_widget_booking_form textarea{border:1px solid var(--calce-2); border-radius:9px; padding:9px 11px; background:#fff; color:var(--inchiostro); font:inherit; max-width:100%}
.widget_babe_widget_booking_form select{min-width:88px}
.widget_babe_widget_booking_form input[type=checkbox]{accent-color:var(--turchese); width:auto; margin:0 8px 0 0}
.widget_babe_widget_booking_form .submit_group{display:flex; justify-content:center; margin:18px 0 2px}
.widget_babe_widget_booking_form .submit_group button,
.widget_babe_widget_booking_form button,
.widget_babe_widget_booking_form input[type=submit],
.widget_babe_widget_booking_form a.button{width:100%; text-align:center; background:var(--ottone) !important; color:#08243a !important; border:0; border-radius:100px; padding:14px 22px; font-weight:700; font-size:1rem; cursor:pointer; text-decoration:none; margin:5px}
.widget_babe_widget_booking_form .item_info_total_price,
.widget_babe_widget_booking_form .table_order_totals_amount,
.widget_babe_widget_booking_form .table_order_totals_total{color:var(--ottone) !important; font-weight:700}

/* la barra laterale Tour resta in vista durante lo scroll */
.single-to_book .widget-area{position:sticky; top:24px; align-self:start}

/* ---- CALENDARIO BABE (classi reali del plugin) ---- */
.cal-week-names{display:flex; background:var(--calce-2); border-radius:10px 10px 0 0; overflow:hidden; margin:0}
.cal-week-names > *{flex:1; text-align:center; padding:9px 4px; font-size:.74rem; font-weight:700; letter-spacing:.04em; color:var(--ionian); text-transform:uppercase}
.cal-month-bar{text-align:center; padding:9px; background-color:var(--ionian) !important; color:#fff !important; border:0 !important; font-weight:600; letter-spacing:.02em}
.cal-month-bar a, .cal-month-bar span, .cal-month-bar i{color:var(--ottone) !important; cursor:pointer}
.cal-dates-block{display:flex; flex-wrap:wrap}
.cal-cell{flex-basis:14.2857%; box-sizing:border-box; border:1px solid var(--calce-2) !important; min-height:54px; padding:6px; text-align:right; position:relative}
.cal-cell-date{color:var(--ionian); font-weight:600; font-size:.9rem}
.cal-book-info{display:block; text-align:center; color:var(--ottone) !important; font-weight:700; font-size:.74rem; margin-top:4px}
.cal-cell.cal-cell-active{cursor:pointer; background:rgba(31,169,184,.07)}
.cal-cell.cal-cell-active:hover{background:rgba(31,169,184,.16)}
.cal-cell.cal-cell-disabled-first, .cal-cell.cal-cell-disabled-last{opacity:.45}

/* popup dettaglio prezzi/biglietti al hover sul calendario */
.view-rate-details{background:#fff !important; color:var(--inchiostro) !important; border:1px solid var(--calce-2); border-radius:10px; box-shadow:0 12px 30px rgba(11,48,80,.20); padding:12px 14px !important; min-width:190px; font-size:.82rem; line-height:1.55; text-align:left; z-index:50}
.view-rate-details > span, .view-rate-details > div, .view-rate-details > p, .view-rate-details li{display:block; margin:0 0 5px}
.view-rate-details > span:last-child, .view-rate-details > div:last-child{margin-bottom:0}
.view-rate-details strong, .view-rate-details b{color:var(--ionian); font-weight:700}
.view-rate-details .price, .view-rate-details .amount{color:var(--ottone); font-weight:700}

/* ---- CONTATTI: card cliccabili + intro ---- */
.contact-card{display:block; text-decoration:none; transition:transform .2s, box-shadow .2s}
.contact-card:hover{transform:translateY(-4px); box-shadow:0 16px 34px rgba(6,32,47,.16); color:var(--ionian)}
.contact-intro{max-width:74ch; margin:0 auto 34px; text-align:center; color:#42586a}
.contact-intro p{margin-bottom:12px}
.contact-forms-intro{color:var(--nebbia); font-size:.9rem; margin:-4px 0 16px}

/* ---- MODULI: checkbox + campi condizionali ---- */
.checkbox-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:8px}
.checkbox-item{display:flex; align-items:center; gap:8px; font-size:.86rem; font-weight:400; color:var(--inchiostro)}
.checkbox-item input{width:auto; margin:0}
.form-row--cond{animation:condIn .3s ease}
@keyframes condIn{from{opacity:0; transform:translateY(-4px)}to{opacity:1; transform:none}}

/* ---- ARMATORE: ruolo + social ---- */
.armatore__role{font-family:var(--font-mono); font-size:.8rem; letter-spacing:.12em; text-transform:uppercase; color:var(--turchese); margin:-4px 0 16px}
.armatore__social{margin:16px 0 6px}
.armatore__social .social-row__list a{color:var(--ionian)}
.armatore__social .social-row__list a:hover{color:var(--turchese)}
.armatore__social .social-row__label{color:var(--nebbia)}

@media (max-width:680px){
  .tour-highlights{grid-template-columns:1fr}
  .checkbox-grid{grid-template-columns:1fr}
}

/* =========================================================================
   RIFINITURE — menù più curato + responsive contatti
   ========================================================================= */

/* voce menù evidenziata a pulsante: in WP aggiungi la classe CSS "prenota" alla voce */
.primary-menu .prenota > a,
.primary-menu .menu-item-cta > a{background:var(--ottone); color:#08243a; padding:9px 20px; border-radius:100px; font-weight:700}
.primary-menu .prenota > a::after,
.primary-menu .menu-item-cta > a::after{display:none}
.primary-menu .prenota > a:hover,
.primary-menu .menu-item-cta > a:hover{background:#dcbb6e; color:#08243a; transform:translateY(-1px)}
.primary-menu a{transition:color .2s, transform .2s}
/* descrizioni voci di menù (facoltative) */
.primary-menu .menu-item .menu-desc{display:block; font-size:.68rem; color:var(--nebbia); font-weight:400; letter-spacing:0}

@media (max-width:900px){
  .single-to_book .content-area.has-sidebar{grid-template-columns:1fr}
  .tour-figure{max-width:100%}
}
@media (max-width:900px){
  .primary-menu .prenota > a,
  .primary-menu .menu-item-cta > a{display:inline-block; margin:8px 0}
}

/* =========================================================================
   ICONE MENU — aggiungi in WP la classe (es. mi-home, mi-tours...) alla voce
   ========================================================================= */
.primary-menu [class*="mi-"] > a::before{content:""; display:inline-block; width:17px; height:17px; margin-right:8px; vertical-align:-3px; background-color:currentColor; -webkit-mask:var(--ico) center/contain no-repeat; mask:var(--ico) center/contain no-repeat}
.primary-menu .mi-home > a{--ico:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M3%2011l9-7%209%207'/%3E%3Cpath%20d='M5%2010v10h14V10'/%3E%3C/svg%3E")}
.primary-menu .mi-about > a{--ico:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Ccircle%20cx='12'%20cy='4'%20r='2'/%3E%3Cpath%20d='M12%206v9'/%3E%3Cpath%20d='M5%2012a7%207%200%200%200%2014%200'/%3E%3Cpath%20d='M3%2012h3M18%2012h3'/%3E%3C/svg%3E")}
.primary-menu .mi-tours > a{--ico:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Ccircle%20cx='12'%20cy='12'%20r='9'/%3E%3Cpath%20d='M16%208l-2.5%205.5L8%2016l2.5-5.5z'/%3E%3C/svg%3E")}
.primary-menu .mi-contact > a{--ico:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Crect%20x='3'%20y='5'%20width='18'%20height='14'%20rx='2'/%3E%3Cpath%20d='m3%207%209%206%209-6'/%3E%3C/svg%3E")}
.primary-menu .mi-book > a{--ico:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Crect%20x='3'%20y='4'%20width='18'%20height='17'%20rx='2'/%3E%3Cpath%20d='M3%209h18M8%202v4M16%202v4'/%3E%3C/svg%3E")}
.primary-menu .mi-gallery > a{--ico:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Crect%20x='3'%20y='4'%20width='18'%20height='14'%20rx='2'/%3E%3Ccircle%20cx='8.5'%20cy='9'%20r='1.5'/%3E%3Cpath%20d='m3%2016%205-4%204%203%203-2%206%205'/%3E%3C/svg%3E")}

/* =========================================================================
   PAGINA LISTA TOURS (scenografica)
   ========================================================================= */
.tours-intro{max-width:70ch; margin:0 auto 34px; text-align:center; color:#42586a; font-size:1.05rem}
.tour-feature{display:grid; grid-template-columns:1fr 1fr; align-items:stretch; max-width:var(--wrap); margin:0 auto; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); background:#fff}
.tour-feature + .tour-feature{margin-top:34px}
.tour-feature__img{min-height:380px; background-size:cover; background-position:center}
.tour-feature__body{padding:clamp(28px,4vw,54px); display:flex; flex-direction:column; justify-content:center}
.tour-feature .eyebrow{color:var(--turchese); margin-bottom:8px}
.tour-feature h2{font-size:clamp(1.6rem,3vw,2.3rem); margin:.1em 0 .4em}
.tour-feature p{color:#42586a; margin-bottom:6px}
.tour-feature .price{font-family:var(--font-display); font-size:1.6rem; color:var(--ottone); font-weight:700; margin:12px 0 20px; line-height:1.2}
.tour-feature .price small{display:block; font-family:var(--font-mono); font-size:.68rem; color:var(--nebbia); letter-spacing:.1em; text-transform:uppercase; font-weight:400; margin-top:3px}
.tour-feature .btn{align-self:flex-start}
.tour-feature--rev .tour-feature__img{order:2}

.tours-events{position:relative; isolation:isolate; max-width:var(--wrap); margin:0 auto; border-radius:var(--radius); overflow:hidden; color:#fff; text-align:center; padding:clamp(46px,7vw,90px) var(--gutter)}
.tours-events__bg{position:absolute; inset:0; background-size:cover; background-position:center; z-index:-2}
.tours-events::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(6,32,47,.62),rgba(6,32,47,.84)); z-index:-1}
.tours-events h2{color:#fff; font-size:clamp(1.7rem,3.4vw,2.6rem)}

@media (max-width:820px){
  .tour-feature{grid-template-columns:1fr}
  .tour-feature__img{min-height:240px; order:0 !important}
}

/* =========================================================================
   FOOTER — contenuto predefinito curato
   ========================================================================= */
.site-footer__main{max-width:var(--wrap); margin-inline:auto; padding:56px var(--gutter) 28px}
.site-footer__main-inner{display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:42px}
.footer-brand__name{font-family:var(--font-display); font-weight:900; font-size:1.5rem; letter-spacing:.2em; color:#fff; display:block}
.footer-brand__tag{font-family:var(--font-mono); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ottone); display:block; margin:5px 0 14px}
.footer-brand p{color:var(--schiuma); font-size:.9rem; max-width:44ch; line-height:1.6}
.footer-brand__social{margin-top:16px}
.footer-contacts, .footer-links{list-style:none; padding:0; margin:0}
.footer-contacts li, .footer-links li{padding:6px 0; font-size:.9rem; color:var(--schiuma)}
.footer-contacts a, .footer-links a{color:var(--schiuma)}
.footer-contacts a:hover, .footer-links a:hover{color:var(--ottone)}
.site-footer__main .footer-widget__title{color:#fff; font-size:1.02rem; margin-bottom:10px}
@media (max-width:820px){ .site-footer__main-inner{grid-template-columns:1fr; gap:30px} }

/* ---- FOOTER: logo ufficiale ---- */
.footer-brand__logo{display:inline-block; margin-bottom:10px; line-height:0}
.footer-brand__logo img, .footer-brand__logo .custom-logo{max-height:62px; width:auto; height:auto}
.footer-brand__logo .custom-logo-link{pointer-events:auto}

/* =========================================================================
   LOADER — onde del mare all'apertura
   ========================================================================= */
.pharus-loader{position:fixed; inset:0; z-index:99999; background:linear-gradient(180deg,#06202F 0%,#0B3050 100%); display:flex; flex-direction:column; align-items:center; justify-content:center; transition:opacity .6s ease, visibility .6s ease; overflow:hidden}
.pharus-loader.is-hidden{opacity:0; visibility:hidden}
.pharus-loader__brand{position:relative; z-index:2; text-align:center; animation:loaderPulse 1.9s ease-in-out infinite}
.pharus-loader__name{display:block; font-family:var(--font-display,serif); font-weight:900; letter-spacing:.32em; font-size:clamp(1.9rem,5vw,3rem); color:#fff; text-indent:.32em}
.pharus-loader__sub{display:block; font-family:var(--font-mono,monospace); font-size:.68rem; letter-spacing:.36em; text-transform:uppercase; color:var(--ottone,#C9A24B); margin-top:10px; text-indent:.36em}
@keyframes loaderPulse{0%,100%{opacity:.78; transform:translateY(0)}50%{opacity:1; transform:translateY(-5px)}}
.pharus-loader__sea{position:absolute; left:0; right:0; bottom:0; height:150px; z-index:1}
.pharus-loader__wave{position:absolute; left:0; bottom:0; width:200%; height:100%; background:url(../img/waves-sep.png) repeat-x bottom; background-size:auto 58px; opacity:.5; animation:loaderWave 5s linear infinite}
.pharus-loader__wave.w2{background-size:auto 90px; opacity:.28; animation-duration:8s; animation-direction:reverse}
@keyframes loaderWave{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion: reduce){.pharus-loader__brand, .pharus-loader__wave{animation:none}}

/* =========================================================================
   SPRINT 4/5 — WhatsApp flottante, Galleria + Lightbox
   ========================================================================= */
.wa-float{position:fixed; right:20px; bottom:20px; z-index:9000; display:inline-flex; align-items:center; background:#25D366; color:#fff; border-radius:100px; padding:14px; box-shadow:0 10px 26px rgba(0,0,0,.28); transition:transform .2s}
.wa-float svg{width:28px; height:28px; flex:0 0 auto; color:#fff}
.wa-float__txt{max-width:0; overflow:hidden; white-space:nowrap; font-weight:700; font-size:.92rem; transition:max-width .3s ease, margin .3s ease}
.wa-float:hover{transform:translateY(-3px); color:#fff}
.wa-float:hover .wa-float__txt{max-width:130px; margin-left:9px}
@media (max-width:600px){ .wa-float{right:14px; bottom:14px; padding:13px} .wa-float svg{width:26px; height:26px} }

.gallery-masonry{columns:3 260px; column-gap:14px}
.gallery-item{display:block; width:100%; margin:0 0 14px; padding:0; border:0; background:none; cursor:pointer; break-inside:avoid; border-radius:12px; overflow:hidden; box-shadow:var(--shadow)}
.gallery-item img{display:block; width:100%; height:auto; transition:transform .5s ease}
.gallery-item:hover img{transform:scale(1.05)}

.lightbox{position:fixed; inset:0; z-index:99998; background:rgba(6,32,47,.93); display:flex; align-items:center; justify-content:center}
.lightbox[hidden]{display:none}
.lightbox__img{max-width:90vw; max-height:86vh; border-radius:8px; box-shadow:0 24px 70px rgba(0,0,0,.55)}
.lightbox__close{position:absolute; top:16px; right:22px; background:none; border:0; color:#fff; font-size:2.6rem; cursor:pointer; line-height:1}
.lightbox__nav{position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.32); color:#fff; width:52px; height:52px; border-radius:50%; font-size:1.8rem; cursor:pointer; display:grid; place-items:center}
.lightbox__nav.prev{left:20px} .lightbox__nav.next{right:20px}
.lightbox__nav:hover{background:var(--ottone); border-color:var(--ottone); color:#08243a}
@media (max-width:600px){ .lightbox__nav{width:42px; height:42px; font-size:1.4rem} .lightbox__close{font-size:2.1rem} }

/* avatar recensione con foto profilo Google */
.testi-av--photo{background-size:cover; background-position:center; color:transparent}

/* =========================================================================
   BANNER COOKIE (GDPR)
   ========================================================================= */
.cookie-banner{position:fixed; left:0; right:0; bottom:0; z-index:9500; background:var(--abyss); color:var(--schiuma); box-shadow:0 -8px 30px rgba(0,0,0,.32)}
.cookie-banner[hidden]{display:none}
.cookie-banner__inner{max-width:var(--wrap); margin-inline:auto; padding:16px var(--gutter); display:flex; align-items:center; gap:18px; flex-wrap:wrap; justify-content:space-between}
.cookie-banner__txt{font-size:.86rem; margin:0; flex:1; min-width:240px; line-height:1.5}
.cookie-banner__txt a{color:var(--ottone); text-decoration:underline}
.cookie-banner__btns{display:flex; gap:10px; flex-wrap:wrap}
.cookie-banner .btn{padding:10px 20px; font-size:.88rem}
.cookie-banner .btn--ghost{color:#fff; border:1px solid rgba(255,255,255,.4)}
@media (max-width:600px){ .cookie-banner__inner{flex-direction:column; align-items:stretch} .cookie-banner__btns .btn{flex:1} }

/* indirizzo punto d'imbarco (pagina Tour) */
.tour-map__addr{margin:2px 0 12px; font-weight:600}
.tour-map__addr a{color:var(--turchese)}
.tour-map__addr a:hover{color:var(--ionian)}

/* galleria da blocco nativo WordPress */
.gallery-native figure{margin:0}
.gallery-native img{border-radius:12px; box-shadow:var(--shadow); cursor:zoom-in; transition:transform .4s ease; display:block; height:auto}
.gallery-native a:hover img, .gallery-native img:hover{transform:scale(1.03)}
.gallery-native .wp-block-gallery{margin-inline:auto}

/* =========================================================================
   RECENSIONI ON-SITE
   ========================================================================= */
.reviews-layout{display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:40px; align-items:start; max-width:var(--wrap); margin:0 auto}
.reviews-main{min-width:0}

.reviews-summary{display:flex; flex-wrap:wrap; align-items:center; gap:6px 18px; background:linear-gradient(135deg,var(--ionian),var(--abyss)); color:#fff; border-radius:18px; padding:22px 28px; margin-bottom:26px; box-shadow:var(--shadow)}
.reviews-summary__num{font-family:var(--font-display); font-size:3rem; font-weight:900; line-height:1}
.reviews-summary__meta{display:flex; flex-direction:column; gap:3px}
.reviews-summary .stars{color:var(--ottone); font-size:1.25rem; letter-spacing:2px}
.reviews-summary .stars .star-empty{color:rgba(255,255,255,.28)}
.reviews-summary__count{font-family:var(--font-mono); font-size:.74rem; letter-spacing:.08em; text-transform:uppercase; opacity:.85}
.reviews-summary__tag{flex:1 1 100%; margin:6px 0 0; color:var(--schiuma); font-size:.9rem}

.reviews-grid{columns:2 280px; column-gap:18px}
.review-card{break-inside:avoid; background:#fff; border:1px solid var(--calce-2); border-radius:14px; padding:20px 22px; box-shadow:var(--shadow); margin:0 0 18px}
.review-card .stars{color:var(--ottone); font-size:1.02rem; letter-spacing:2px}
.review-card .stars .star-empty{color:#dcdcdc}
.review-text{margin:10px 0 14px; color:var(--inchiostro); font-style:italic; line-height:1.55}
.review-author{display:flex; align-items:center; gap:10px; font-weight:700; color:var(--ionian); font-size:.92rem}
.review-author__av{display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--turchese); color:#fff; font-weight:800; font-size:.9rem; flex:0 0 auto}
.review-author small{display:block; font-weight:400; color:var(--nebbia)}
.reviews-empty{text-align:center; color:#42586a; padding:30px 0}

.reviews-aside{position:sticky; top:24px}
.review-form-box{background:var(--calce-2); border-radius:18px; padding:26px 24px; box-shadow:var(--shadow)}
.review-form-box h3{margin:0 0 4px; color:var(--ionian)}
.review-form-box__sub{margin:0 0 14px; font-size:.86rem; color:#5a6b78}
.review-form .rf-label{display:block; font-weight:600; color:var(--ionian); margin:14px 0 6px; font-size:.9rem}
.review-form input[type=text], .review-form textarea{width:100%; border:1px solid #ddd5c6; border-radius:10px; padding:11px 13px; background:#fff; font:inherit}
.review-form button{margin-top:20px; width:100%}
.star-input{display:inline-flex; flex-direction:row-reverse; justify-content:flex-end}
.star-input input{display:none}
.star-input label{color:#d3cdbf; font-size:2rem; cursor:pointer; padding:0 3px; transition:color .15s ease}
.star-input label:hover, .star-input label:hover ~ label, .star-input input:checked ~ label{color:var(--ottone)}
.pharus-hp{position:absolute !important; left:-9999px !important; height:0; width:0; overflow:hidden}

@media (max-width:900px){
  .reviews-layout{grid-template-columns:1fr; gap:28px}
  .reviews-aside{position:static}
  .reviews-grid{columns:1}
}



.site-footer__developer{max-width:var(--wrap);margin:0 auto;padding:13px var(--gutter) 17px;border-top:1px solid rgba(191,233,236,.1);display:flex;justify-content:center;align-items:center;gap:7px 12px;flex-wrap:wrap;text-align:center;color:rgba(255,255,255,.7);font-size:.76rem}.site-footer__developer strong{color:#fff}.site-footer__developer a{color:#d9c080;text-decoration:none}.site-footer__developer a:hover{text-decoration:underline}@media(max-width:700px){.site-footer__developer{flex-direction:column;gap:4px}}

/* Footer mobile swipe carousel — v0.8.10 */
.site-footer__swipe-hint{display:none}
@media (max-width:820px){
  .site-footer__swipe-hint{display:flex;align-items:center;justify-content:center;gap:10px;padding:18px var(--gutter) 0;color:rgba(255,255,255,.76);font-size:.78rem;letter-spacing:.04em;text-transform:uppercase}
  .site-footer__swipe-hint span{font-size:1.2rem;line-height:1;color:var(--ottone)}
  .site-footer__widgets,
  .site-footer__main-inner{display:flex!important;grid-template-columns:none!important;gap:16px!important;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);padding-inline:var(--gutter);padding-bottom:22px;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;scrollbar-width:none}
  .site-footer__widgets::-webkit-scrollbar,
  .site-footer__main-inner::-webkit-scrollbar{display:none}
  .site-footer__widgets>.footer-col,
  .site-footer__main-inner>.footer-brand,
  .site-footer__main-inner>.footer-block{flex:0 0 min(84vw,360px);min-width:0;scroll-snap-align:start;scroll-snap-stop:always;padding:22px;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(255,255,255,.045);box-shadow:0 12px 28px rgba(0,0,0,.12)}
  .site-footer__main{overflow:hidden}
  .site-footer__main-inner{max-width:none;margin:0;padding-top:26px}
  .site-footer__widgets{max-width:none;margin:0;padding-top:26px}
}
