/* =========================================================
   COMMON - caricato in modo non bloccante su tutte le pagine
   Menu mobile, footer, modale newsletter e componenti
   condivisi tra le pagine (bottoni, kicker, card "biglietto",
   slider, indicatore di scroll).
   Variabili e reset sono nel CSS critico critical-base.css.
   ========================================================= */

/* ---------- MENU MOBILE (off-canvas) ---------- */
.mobile-menu-overlay{z-index:100000;background:rgba(0,0,0,.6);transition:opacity .4s ease}
.mobile-menu-overlay.active{opacity:1;visibility:visible}

.mobile-menu-sidebar{z-index:100001;box-shadow:4px 0 20px rgba(0,0,0,.15);transition:transform .6s cubic-bezier(.16,1,.3,1)}
.mobile-menu-sidebar.active{transform:translateX(0)}

.mobile-menu-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--c-bg-gray)}
.close-menu-btn{background:none;border:none;font-size:32px;line-height:1;color:var(--c-text);cursor:pointer}

.mobile-menu-links{display:flex;flex-direction:column;gap:20px;padding:20px;list-style:none}
.mobile-menu-links a{display:block;font-size:18px;font-weight:600;color:var(--c-text);text-decoration:none}
.mobile-menu-links a:hover{color:var(--c-primary)}

.mobile-submenu-toggle{display:flex;justify-content:space-between;align-items:center;width:100%;padding:0;background:none;border:none;font-size:18px;font-weight:600;color:var(--c-text);text-align:left;cursor:pointer}
.mobile-submenu-toggle svg{transition:transform .3s ease}
.mobile-submenu-toggle.active svg{transform:rotate(180deg);color:var(--c-primary)}

.mobile-submenu{display:none;flex-direction:column;gap:15px;padding:15px 0 0 15px;list-style:none}
.mobile-submenu.active{display:flex}
.mobile-submenu a{font-size:16px;font-weight:300}
.mobile-dropdown-footer{padding-top:10px;border-top:1px dashed var(--c-border)}
.mobile-dropdown-footer a{font-weight:700;color:var(--c-primary)}

/* ---------- FOOTER ---------- */
.site-footer{margin-top:40px;padding:60px 0 20px;background-color:var(--c-bg-soft);border-top:1px solid var(--c-border)}
.footer-container{display:grid;grid-template-columns:repeat(4,1fr);gap:40px;width:100%;max-width:1400px;margin:0 auto 40px;padding:0 5%}
.footer-col{display:flex;flex-direction:column}
.footer-title{margin-bottom:20px;font-size:18px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--c-primary)}
.footer-nav{display:flex;flex-direction:column;gap:12px}
.footer-nav a{font-size:15px;font-weight:300;color:var(--c-muted);text-decoration:none;transition:color .2s}
.footer-nav a:hover{color:var(--c-primary)}
.footer-contatti p{font-size:14px;line-height:1.6;color:var(--c-muted)}
.footer-contatti strong{font-size:15px;color:var(--c-text)}
.footer-pagamenti-grid{display:flex;flex-wrap:wrap;gap:10px}
.iconpay{padding:2px;object-fit:contain;background:#fff;border:1px solid var(--c-border);border-radius:4px}

.footer-bottom{width:100%;max-width:1400px;margin:0 auto;padding:25px 5% 0;border-top:1px solid var(--c-border);font-size:12px;line-height:1.5;text-align:center;color:var(--c-dashed)}
.footer-bottom strong{display:block;margin-top:8px;font-weight:600;color:var(--c-muted)}
.footer-bottom a{font-weight:700;color:var(--c-primary);text-decoration:none}
.footer-bottom a:hover{text-decoration:underline}

@media (max-width:1024px){
    .footer-container{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:600px){
    .footer-container{grid-template-columns:1fr;gap:30px}
}

/* ---------- MODALE NEWSLETTER ---------- */
.newsletter-overlay{z-index:100000;background:rgba(0,0,0,.6);transition:opacity .3s ease}
.newsletter-overlay.active{opacity:1;visibility:visible}

.newsletter-modal{z-index:100001;width:90%;max-width:750px;overflow:hidden;background:#fff;border-radius:12px;box-shadow:0 20px 50px rgba(0,0,0,.2);transition:all .3s cubic-bezier(.16,1,.3,1)}
.newsletter-modal.active{opacity:1;visibility:visible;transform:translate(-50%,-50%)}

.newsletter-close{position:absolute;z-index:10;top:15px;right:20px;background:none;border:none;font-size:32px;line-height:1;color:var(--c-text);cursor:pointer;transition:color .2s}
.newsletter-close:hover{color:var(--c-primary)}

.newsletter-layout{display:flex;max-height:90vh;overflow-y:auto}
.newsletter-image{display:none;flex:1;background-color:var(--c-bg-gray)}
.newsletter-image img{width:100%;height:100%;object-fit:cover}
.newsletter-content{display:flex;flex-direction:column;justify-content:center;flex:1.2;padding:40px}
.newsletter-content h3{margin-bottom:10px;font-size:28px;font-weight:900;line-height:1.1;color:var(--c-primary)}
.newsletter-desc{margin-bottom:25px;font-size:15px;line-height:1.5;color:var(--c-muted)}

.modern-form .form-group{margin-bottom:15px}
.modern-form label{display:block;margin-bottom:6px;font-size:12px;font-weight:600;text-transform:uppercase;color:var(--c-text)}
.modern-form input[type="text"],
.modern-form input[type="email"]{width:100%;padding:12px 15px;border:1px solid var(--c-border);border-radius:6px;font-size:15px;color:var(--c-text);transition:border-color .2s}
.modern-form input[type="text"]:focus,
.modern-form input[type="email"]:focus{border-color:var(--c-primary);outline:none}
.modern-form .form-error{margin-top:4px;font-size:12px;font-weight:500;color:#d9534f}
.privacy-note{display:block;margin-bottom:15px;font-size:12px;line-height:1.4;color:var(--c-muted)}

@media (min-width:768px){
    .newsletter-image{display:block}
}
@media (max-width:767px){
    .newsletter-content{padding:30px 20px}
    .newsletter-content h3{font-size:24px}
}

/* =========================================================
   COMPONENTI CONDIVISI
   ========================================================= */

/* ---------- KICKER (sottotitolo sopra i titoli) ---------- */
.section-kicker{display:block;margin-bottom:12px;font-size:13px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--c-primary)}

/* ---------- BOTTONI ---------- */
.btn-outline-primary{display:inline-block;padding:12px 28px;background:transparent;border:2px solid var(--c-primary);border-radius:6px;font-size:16px;font-weight:700;color:var(--c-primary);text-decoration:none;transition:all .3s ease}
.btn-outline-primary:hover{background-color:var(--c-primary);color:#fff}
.btn-sm{padding:8px 18px;font-size:14px;border-width:1.5px}

.btn-solid-primary{display:inline-block;padding:14px 32px;background-color:var(--c-primary);border-radius:8px;font-size:16px;font-weight:700;color:#fff;text-decoration:none;transition:background-color .3s ease}
.btn-solid-primary:hover{background-color:var(--c-primary-dark)}
.w-100{width:100%;border:none;text-align:center;cursor:pointer}

/* ---------- CARD "BIGLIETTO" TRATTA ----------
   .port-card         homepage
   .sidebar-port-card pagina compagnia (variante compatta)
   Il bordo trasparente evita il salto di layout all'hover. */
.port-card,.sidebar-port-card{position:relative;display:flex;justify-content:space-between;align-items:center;overflow:hidden;background-color:var(--c-bg-gray);border:1px solid transparent;border-radius:8px;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease}
.port-card{padding:19px 23px}
.sidebar-port-card{padding:15px 19px}
.port-card:hover,.sidebar-port-card:hover{background-color:#fff;border-color:var(--c-border)}
.port-card:hover{transform:translateY(-3px);box-shadow:0 10px 25px rgba(0,0,0,.06)}
.sidebar-port-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.06)}

.port-card-left,.port-card-right,
.sidebar-port-card-left,.sidebar-port-card-right{display:flex;flex-direction:column;justify-content:center;flex:1;text-align:left}
.port-card-left{padding-right:15px}
.sidebar-port-card-left{padding-right:10px}
.port-card-right,.sidebar-port-card-right{padding-left:15px}

.port-title{margin-bottom:6px;font-size:18px;font-weight:700}
.sidebar-port-title{margin-bottom:4px;font-size:18px;font-weight:700;line-height:1.2}
.port-subtitle{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--c-muted)}

/* Linea tratteggiata centrale con icona */
.port-card-divider,.sidebar-port-divider{position:relative;display:flex;align-items:center;justify-content:center;height:100%}
.port-card-divider::before,.sidebar-port-divider::before{content:'';position:absolute;z-index:1;top:-50px;bottom:-50px;left:50%;transform:translateX(-50%);border-left:1.5px dashed var(--c-dashed)}
.divider-icon,.sidebar-divider-icon{z-index:2;display:flex;align-items:center;justify-content:center;background-color:#fff;border-radius:50%;box-shadow:0 2px 6px rgba(0,0,0,.05)}
.divider-icon{width:32px;height:32px}
.sidebar-divider-icon{width:28px;height:28px}

/* ---------- SLIDER (compagnie in home, flotta in compagnia) ---------- */
.slider-wrapper,.fleet-slider-wrapper{position:relative;width:100%;overflow:hidden;padding-bottom:15px}
.slider-track,.fleet-slider-track{display:flex;gap:24px;transition:transform .4s ease-in-out}
.slider-controls,.fleet-slider-controls{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:20px}
.slider-arrow,.fleet-slider-arrow{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;background:#fff;border:1px solid var(--c-border);border-radius:50%;color:var(--c-text);cursor:pointer;transition:all .2s}
.slider-arrow:hover,.fleet-slider-arrow:hover{border-color:var(--c-primary);color:var(--c-primary)}
.slider-arrow:focus-visible,.fleet-slider-arrow:focus-visible{outline:2px solid var(--c-primary-dark);outline-offset:3px}

@media (prefers-reduced-motion:reduce){
    .slider-track,.fleet-slider-track{transition:none}
}

/* ---------- INDICATORE DI SCROLL (freccia animata) ----------
   Visibile solo quando le griglie diventano scrollabili (≤ 650px). */
.mobile-scroll-indicator{display:none}

@keyframes bounceScroll{
    0%,100%{transform:translateY(0)}
    50%{transform:translateY(8px)}
}

@media (max-width:650px){
    .mobile-scroll-indicator{z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:5px 0;font-size:14px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}
    .mobile-scroll-indicator svg{margin-top:5px;stroke:#000;animation:bounceScroll 2s infinite ease-in-out}
}

@media (prefers-reduced-motion:reduce){
    .mobile-scroll-indicator svg{animation:none}
}


.port-list-card{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;background-color:#fff;border:1px solid var(--c-bg-gray);border-radius:12px;text-decoration:none;box-shadow:0 4px 15px rgba(0,0,0,.03);transition:transform .3s ease,box-shadow .3s ease}
.port-list-card:hover{transform:translateY(-3px);box-shadow:0 10px 25px rgba(0,0,0,.08)}
.port-list-info{display:flex;flex-direction:column;gap:6px}
.port-list-name{font-size:18px;font-weight:700}
.port-list-country{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--c-muted)}
.port-list-arrow{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background-color:var(--c-primary-light);transition:background-color .3s ease}
.port-list-arrow svg{stroke:var(--c-primary);transition:stroke .3s ease}
.port-list-card:hover .port-list-arrow{background-color:var(--c-primary)}
.port-list-card:hover .port-list-arrow svg{stroke:#fff}/* ---------- RECENSIONI (sopra il footer) ----------
   Da incollare in fondo a common.css (già caricato su tutte le pagine).
   Usa le variabili di critical-base.css. */
.reviews-band{width:100%;max-width:1400px;margin:0 auto 50px;padding:0 5%}
.reviews-container{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:28px 32px;background:#fff;border:1px solid var(--c-border);border-radius:14px;box-shadow:0 4px 18px rgba(24,186,173,.08)}
.reviews-title{margin-bottom:6px;font-size:18px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--c-primary)}
.reviews-sub{font-size:15px;line-height:1.5;color:var(--c-muted)}
.reviews-cards{display:flex;gap:16px;flex-shrink:0}
.review-card{display:flex;align-items:center;gap:14px;min-width:270px;padding:14px 18px;border:1px solid var(--c-border);border-radius:10px;background:var(--c-bg-soft);color:var(--c-text);text-decoration:none;transition:border-color .2s,box-shadow .2s,transform .2s}
.review-card:hover,.review-card:focus-visible{border-color:var(--c-primary);box-shadow:0 6px 16px rgba(0,0,0,.06);transform:translateY(-2px)}
.review-card:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px}
.review-logo{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;border-radius:50%;background:#fff;border:1px solid var(--c-border)}
.review-body{display:flex;flex-direction:column;gap:2px;flex:1}
.review-source{font-size:13px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;color:var(--c-muted)}
.review-score{display:flex;align-items:center;gap:8px}
.review-score strong{font-size:24px;font-weight:700;line-height:1}
.review-count{font-size:13px;color:var(--c-muted)}
.review-cta{font-size:14px;font-weight:600;color:var(--c-primary);white-space:nowrap}

/* stelle: strato grigio + strato colorato tagliato alla percentuale del voto */
.review-stars{position:relative;display:inline-block;line-height:0}
.review-stars-bg,.review-stars-fg{display:inline-flex;gap:2px}
.review-stars-fg{position:absolute;top:0;left:0;width:var(--rv-fill,100%);overflow:hidden}
.review-stars svg{width:18px;height:18px;flex-shrink:0}
.review-stars-bg svg{fill:#dcdfe3}
.review-card--trustpilot .review-stars-fg svg{fill:#00b67a}
.review-card--google .review-stars-fg svg{fill:#fbbc04}

@media (max-width:1100px){
    .reviews-container{flex-direction:column;align-items:stretch;text-align:center}
    .reviews-cards{justify-content:center;flex-wrap:wrap}
}
@media (max-width:640px){
    .reviews-band{margin-bottom:35px}
    .reviews-container{padding:22px 16px}
    .reviews-cards{flex-direction:column}
    .review-card{min-width:0;text-align:left}
}
@media (prefers-reduced-motion:reduce){.review-card{transition:none}.review-card:hover{transform:none}}

/* ---------- SOCIAL (colonna "Il nostro brand") ---------- */
.footer-social{display:flex;align-items:center;gap:12px;margin-top:22px}
.footer-social-label{font-size:15px;font-weight:600;color:var(--c-text)}
.footer-social-link{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:#fff;border:1px solid var(--c-border);color:#1877f2;transition:background-color .2s,color .2s,border-color .2s}
.footer-social-link:hover,.footer-social-link:focus-visible{background:#1877f2;border-color:#1877f2;color:#fff}
.footer-social-link:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px}
