/* =========================================================
   PAGINA COMPAGNIA - sezioni sotto la piega
   (testata, descrizione e motore sono nel CSS critico
    critical-company.css; card tratte, bottoni e slider condivisi
    sono in common.css)
   ========================================================= */

/* ---------- CONTENITORE INFERIORE ----------
   I titoli di sezione arrivano dalle traduzioni (compagnia.txt0X).
   Prima erano forzati da una regola globale "h3 {... !important}"
   che colpiva anche i titoli dei modali: ora sono limitati qui. */
.company-content{padding-bottom:80px}
.company-content h2,.company-content h3{margin:60px 0 10px;font-size:30px;font-weight:900;color:var(--c-text)}

/* ---------- DESTINAZIONI (variante compatta a 4 colonne) ---------- */
.company-destinations-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:30px 0;list-style:none}
.company-destinations-grid .destination-card{display:flex;flex-direction:column;gap:8px;color:var(--c-text);text-decoration:none}
.company-destinations-grid .destination-image-wrapper{position:relative;width:100%;aspect-ratio:3/4;overflow:hidden;border-radius:8px;box-shadow:0 4px 10px rgba(0,0,0,.05)}
.company-destinations-grid .destination-image-wrapper img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.company-destinations-grid .destination-card:hover .destination-image-wrapper img{transform:scale(1.08)}
.company-destinations-grid .destination-title{padding:0 2px;font-size:16px;font-weight:800;line-height:1.2;text-align:left;color:var(--c-text);transition:color .2s}
.company-destinations-grid .destination-card:hover .destination-title{color:var(--c-primary)}

/* ---------- SERVIZI ---------- */
.company-services-section{margin:65px 0}
.company-services-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:25px}
.company-service-card{display:flex;align-items:center;gap:16px;min-height:105px;padding:20px;background:var(--c-primary);border-radius:12px;transition:background .2s ease,box-shadow .2s ease,transform .2s ease}
.company-service-card:hover{background:var(--c-primary-dark);box-shadow:0 8px 20px rgba(0,0,0,.1);transform:translateY(-3px)}
.company-service-icon{display:flex;align-items:center;justify-content:center;flex:0 0 60px;width:60px;height:60px;background:#fff;border-radius:10px}
.company-service-icon img{display:block;width:44px;height:44px;object-fit:contain}
.company-service-name{font-size:16px;font-weight:700;line-height:1.35;color:#fff;overflow-wrap:anywhere}

/* ---------- MAPPA PORTI ---------- */
#map{width:100%;height:450px;margin:30px 0 40px;overflow:hidden;border:1px solid var(--c-border);border-radius:12px;box-shadow:0 4px 15px rgba(0,0,0,.05)}

.map-port-marker{display:block;width:18px;height:18px;padding:0;appearance:none;background:var(--c-text);border:3px solid #fff;border-radius:50%;box-shadow:0 3px 8px rgba(0,0,0,.3);cursor:pointer;transition:background .2s,box-shadow .2s,transform .2s}
.map-port-marker:hover{background:var(--c-primary);transform:scale(1.2);box-shadow:0 0 0 5px rgba(24,186,173,.2)}
.map-port-marker:focus-visible{outline:3px solid var(--c-primary);outline-offset:4px}

#map .maplibregl-popup-content{min-width:190px;padding:20px;background:#fff;border:none;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.15);font-family:var(--font);text-align:center}
#map .maplibregl-popup-close-button{padding:5px 9px;font-size:20px;color:var(--c-muted)}
.port-popup-content{display:flex;flex-direction:column;align-items:center;gap:15px}
.port-popup-title{margin:0;font-family:var(--font);font-size:20px;font-weight:800;line-height:1.2;color:var(--c-text)}
.port-popup-button{display:block;width:100%;padding:11px 18px;background:var(--c-primary);border:none;border-radius:6px;font-family:var(--font);font-size:14px;font-weight:700;color:#fff;text-align:center;text-decoration:none;transition:background .2s}
.port-popup-button:hover{background:var(--c-primary-dark);color:#fff}
.port-popup-button:focus-visible{outline:2px solid var(--c-primary-dark);outline-offset:3px}

/* ---------- FLOTTA (slider; frecce e binario in common.css) ---------- */
.company-fleet-section{margin:60px 0}
.fleet-slider-wrapper{margin-top:30px}
.fleet-slider-track{will-change:transform}
.fleet-slider-slide{display:flex;flex:0 0 calc((100% - 72px) / 4);min-width:0}
.fleet-slider-slide .fleet-card{width:100%;height:100%}
.fleet-slider-dots{display:none}

.fleet-card{display:flex;flex-direction:column;overflow:hidden;background-color:#fff;border:1px solid var(--c-border);border-radius:12px;color:var(--c-text);text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.fleet-card:hover{transform:translateY(-4px);border-color:var(--c-primary);box-shadow:0 12px 24px rgba(0,0,0,.08)}
.fleet-image-wrapper{width:100%;aspect-ratio:3/2;overflow:hidden;background-color:var(--c-bg-gray)}
.fleet-image-wrapper img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.fleet-card:hover .fleet-image-wrapper img{transform:scale(1.05)}
.fleet-card-content{display:flex;flex-direction:column;flex-grow:1;padding:20px}
.fleet-title,.company-content .fleet-title{margin:0 0 15px;font-size:20px;font-weight:800;transition:color .2s}
.fleet-card:hover .fleet-title{color:var(--c-primary)}
.fleet-services-wrapper{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}
.fleet-services-label{font-size:12px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--c-muted)}
.fleet-services-icons{display:flex;flex-wrap:wrap;gap:10px}
.fleet-services-icons img{opacity:.7;transition:opacity .2s; height: auto;}
.fleet-card:hover .fleet-services-icons img{opacity:1}
.fleet-action{margin-top:auto;padding-top:15px;border-top:1px solid var(--c-bg-gray);text-align:right}

/* ---------- TRATTE (card "biglietto" in common.css) ---------- */
.fullwidth-ports-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:20px}
.route-card-meta{display:flex;flex-direction:column;margin-top:6px;line-height:1.25}
.route-card-meta-label{color:var(--c-muted);font-size:12px}
.route-card-meta-value{font-size:14px;font-weight:500}
.route-card-price{color:var(--c-primary-dark)}

/* ---------- INFORMAZIONI UTILI (tab su desktop, accordion su mobile) ---------- */
.company-info-section{display:grid;grid-template-columns:minmax(220px,300px) 1fr;column-gap:40px;align-items:start;margin:80px 0}
.company-info-section > h2,.company-info-section > h3{grid-column:1 / -1;margin:0 0 30px}

/* Tab verticali a sinistra: reggono anche molte voci con titoli lunghi */
.company-info-tabs{display:flex;flex-direction:column;border-right:2px solid var(--c-border)}
.company-info-tab{margin-right:-2px;padding:14px 18px;background:transparent;border:none;border-right:3px solid transparent;font-size:15px;font-weight:700;line-height:1.35;text-align:left;color:var(--c-text);cursor:pointer;transition:color .2s,border-color .2s,background .2s}
.company-info-tab:hover{background:var(--c-bg-soft);color:var(--c-primary)}
.company-info-tab.active{border-right-color:var(--c-primary);color:var(--c-primary)}

.company-info-panel{display:none;padding:6px 5px 0}
.company-info-panel.active{display:block}
.company-info-panel h2,.company-info-panel h3{margin:0 0 15px;font-size:24px;font-weight:800}
.company-info-panel a{color:var(--c-primary)}

.company-info-question{display:none}
.company-info-answer{display:block}
.company-info-answer-content{font-size:16px;line-height:1.7;color:var(--c-muted)}
.company-info-answer-content p{margin-bottom:15px}
.company-info-answer-content ul,.company-info-answer-content ol{margin-bottom:15px;padding-left:25px}
.company-info-answer-content li{margin-bottom:8px}
.company-info-answer-content strong{font-weight:700}

.company-info-tab:focus-visible,.company-info-question:focus-visible{outline:2px solid var(--c-primary);outline-offset:3px}

/* ---------- FAQ + COMPAGNIA IN NUMERI ---------- */
.company-faq-stats-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:60px;align-items:start;margin:80px 0}
.company-faq-column,.company-stats-column{min-width:0}
.company-faq-stats-section .faq-stats-title{margin:0 0 25px;font-size:30px;font-weight:900;line-height:1.2}

.sidebar-faq-accordion{border-top:1px solid var(--c-border)}
.sidebar-faq-item{overflow:hidden;border-bottom:1px solid var(--c-border)}
.sidebar-faq-question{display:flex;align-items:center;gap:15px;padding:16px 0;font-size:16px;font-weight:700;cursor:pointer;transition:color .2s}
button.sidebar-faq-question{width:100%;background:none;border:none;text-align:left}
.sidebar-faq-icon{flex-shrink:0;width:15px;font-size:20px;font-weight:400;text-align:center}
.sidebar-faq-question:hover,.sidebar-faq-question:hover .sidebar-faq-icon{color:var(--c-primary)}
.sidebar-faq-answer{max-height:0;overflow:hidden;padding-left:30px;font-size:14px;line-height:1.6;color:var(--c-muted);transition:max-height .3s ease,padding .3s ease}
.sidebar-faq-item.active .sidebar-faq-answer{max-height:800px;padding-bottom:20px}
.sidebar-faq-item.active .sidebar-faq-question{padding-bottom:10px}

.company-stats-heading h2,.company-stats-heading h3{margin:0 0 25px;font-size:30px;font-weight:900;line-height:1.2;color:var(--c-text)}
.company-stats-heading p{margin-bottom:20px;font-size:16px;line-height:1.6;color:var(--c-muted)}

.company-stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.company-stat-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:195px;padding:25px 15px;background:var(--c-bg-soft);border:1px solid var(--c-border);border-radius:12px;text-align:center;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.company-stat-card:hover{transform:translateY(-4px);border-color:var(--c-primary);box-shadow:0 10px 25px rgba(0,0,0,.06)}
.company-stat-icon{display:flex;align-items:center;justify-content:center;width:54px;height:54px;margin-bottom:15px;background:var(--c-primary);border-radius:12px;color:#fff;}
.company-stat-icon svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.company-stat-number{display:block;margin-bottom:8px;font-size:36px;font-weight:900;line-height:1.1;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.company-stat-label{display:block;font-size:15px;font-weight:600;color:var(--c-muted)}

/* ---------- PAGINA TRATTA: MARKER DELLA MAPPA ----------
   Riusa pallino ed etichetta della mappa statica (.static-map-marker / .static-map-label). */
.route-marker{position:relative;display:block;width:18px;height:18px;text-decoration:none}
.route-marker .static-map-label{max-width:none}
.route-marker--left .static-map-label{left:auto;right:calc(50% + 17px)}
.route-marker:hover .static-map-marker,.route-marker:focus-visible .static-map-marker{background:var(--c-primary);box-shadow:0 0 0 5px rgba(24,186,173,.2);transform:translate(-50%,-50%) scale(1.2)}
.route-marker:hover .static-map-label,.route-marker:focus-visible .static-map-label{background:var(--c-primary);border-color:var(--c-primary);color:#fff}

/* ---------- PAGINA TRATTA: CARD DEI PORTI ---------- */
.route-ports-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:25px}
.route-port-card{display:flex;flex-direction:column;padding:20px;background:#fff;border:1px solid var(--c-border);border-radius:12px;transition:border-color .2s ease,box-shadow .2s ease}
.route-port-card:hover{border-color:var(--c-primary);box-shadow:0 10px 25px rgba(0,0,0,.06)}
.route-port-head{display:flex;align-items:center;gap:16px;margin-bottom:15px}
.route-port-head > img{flex-shrink:0;width:110px;height:90px;object-fit:cover;border-radius:8px}
.route-port-kicker{display:block;margin-bottom:4px;font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--c-primary)}
.route-port-title{margin:0 0 6px;font-size:22px;font-weight:800;line-height:1.2}
.route-port-text{margin-bottom:15px;font-size:15px;line-height:1.6;color:var(--c-muted)}
.route-port-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:auto;padding-top:15px;border-top:1px solid var(--c-bg-gray)}
.route-directions{display:inline-flex;align-items:center;gap:6px;font-size:15px;font-weight:700;color:var(--c-primary);text-decoration:none}
.route-directions:hover{text-decoration:underline}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1024px){
    .company-services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .fleet-slider-slide{flex:0 0 calc((100% - 24px) / 2)}
    .fullwidth-ports-grid{grid-template-columns:repeat(2,1fr)}
    .company-faq-stats-section{grid-template-columns:1fr;gap:50px}
}

@media (max-width:768px){
    .fullwidth-ports-grid{grid-template-columns:1fr}
    .route-ports-grid{grid-template-columns:1fr}
    /* Informazioni utili: da tab ad accordion */
    .company-info-section{display:block;margin:55px 0}
    .company-info-tabs{display:none}
    .company-info-desktop{border-top:1px solid var(--c-border)}
    .company-info-panel,.company-info-panel.active{display:block;padding:0;border-bottom:1px solid var(--c-border)}

    .company-info-question{display:flex;align-items:center;gap:15px;width:100%;padding:16px 0;background:transparent;border:none;font-size:16px;font-weight:700;text-align:left;color:var(--c-text);cursor:pointer;transition:color .2s}
    .company-info-question:hover,.company-info-question:hover .company-info-icon{color:var(--c-primary)}
    .company-info-icon{flex-shrink:0;width:15px;font-size:20px;font-weight:400;text-align:center}

    .company-info-answer{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease}
    .company-info-panel.mobile-open .company-info-answer{grid-template-rows:1fr}
    .company-info-answer-inner{min-height:0;overflow:hidden}
    .company-info-answer-content{padding:0 0 20px 30px;font-size:14px;line-height:1.6}
}

@media (max-width:650px){
    .company-fleet-section{margin:50px 0}
    .fleet-slider-slide{flex:0 0 100%}

    /* Servizi e tratte: colonna con scroll verticale e sfumatura */
    .company-services-section{margin:50px 0}
    .company-services-grid,.fullwidth-ports-grid{display:flex;flex-direction:column;gap:15px;max-height:380px;overflow-x:hidden;overflow-y:auto;scrollbar-width:thin;-webkit-mask-image:linear-gradient(to bottom,#000 75%,transparent 100%);mask-image:linear-gradient(to bottom,#000 75%,transparent 100%)}
    .company-services-grid .company-service-card{flex-shrink:0;min-height:95px;padding:14px 16px}
    .fullwidth-ports-grid .sidebar-port-card{flex-shrink:0;min-height:95px}
    .company-service-icon{flex-basis:52px;width:52px;height:52px}
    .company-service-icon img{width:40px;height:40px}
}

@media (max-width:600px){
    .company-faq-stats-section{gap:40px;margin:55px 0}
    .company-stats-grid{gap:12px}
    .company-stat-card{min-height:160px;padding:20px 10px}
    .company-stat-icon{width:45px;height:45px;margin-bottom:12px}
    .company-stat-icon svg{width:24px;height:24px}
    .company-stat-number{font-size:29px}
    .company-stat-label{font-size:13px}

    .company-destinations-grid{display:flex;flex-wrap:nowrap;gap:15px;overflow-x:auto;padding-bottom:20px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
    .company-destinations-grid::-webkit-scrollbar{display:none}
    .company-destinations-grid > li{flex:0 0 65%;scroll-snap-align:start}
    .company-destinations-grid .destination-title{font-size:20px}
}

@media (prefers-reduced-motion:reduce){
    .company-info-answer{transition:none}
}



/* ---------- PAGINA ELENCO COMPAGNIE ---------- */
.company-list-kicker{margin-top:60px}
.company-content .company-list-title{margin-top:0}
.fleet-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:30px 0 0;padding:0;list-style:none}
.fleet-grid>li{display:flex;min-width:0}
.fleet-grid .fleet-card{width:100%}
.fleet-card-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.fleet-card-head img{flex-shrink:0;width:44px;height:44px;object-fit:contain;border-radius:8px}
.fleet-card-head .fleet-title{margin:0}
.fleet-desc{margin:0 0 15px;font-size:14px;line-height:1.6;color:var(--c-muted)}
@media (max-width:1024px){.fleet-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:768px){.fleet-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}}
@media (max-width:520px){.fleet-grid{grid-template-columns:1fr}}

.fleet-grid div.fleet-card:hover{transform:none;border-color:var(--c-border);box-shadow:none}
.fleet-grid div.fleet-card:hover .fleet-title{color:inherit}
.fleet-grid div.fleet-card:hover .fleet-image-wrapper img{transform:none}


/* ---------- PAGINA ELENCO PORTI ---------- */
.ports-all-header{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:20px}
.ports-filter{position:relative;display:flex;align-items:center;width:100%;max-width:320px;color:var(--c-muted)}
.ports-filter svg{position:absolute;left:14px;pointer-events:none}
.ports-filter input{width:100%;padding:12px 14px 12px 42px;background:#fff;border:1px solid var(--c-border);border-radius:8px;font-size:15px;transition:border-color .2s,box-shadow .2s}
.ports-filter input:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px rgba(24,186,173,.15)}
.ports-all-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:30px 0 0;padding:0;list-style:none}
.ports-all-grid>li{display:flex;min-width:0}
.ports-all-grid>li[hidden]{display:none}
.ports-all-grid .port-list-card{width:100%;gap:12px}
.ports-all-grid .port-list-arrow{flex-shrink:0}
.ports-empty{margin-top:30px;font-size:16px;color:var(--c-muted)}
@media (max-width:1024px){.ports-all-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:768px){.ports-all-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.ports-filter{max-width:none}}
@media (max-width:520px){.ports-all-grid{grid-template-columns:1fr}}

/* ---------- PAGINA ELENCO TRATTE ---------- */
/* Menu delle nazioni: resta sotto la barra di navigazione (75px) mentre si scorre */
.routes-nav{position:sticky;top:75px;z-index:50;margin-top:25px;padding:12px 0}
/* fondo bianco e linea a tutta larghezza (l'ombra "spread" non crea scroll orizzontale) */
.routes-nav::before,.routes-nav.is-stuck::after{content:'';position:absolute;z-index:-1;left:0;right:0;clip-path:inset(0 -100vmax)}
.routes-nav::before{top:0;bottom:0;background:#fff;box-shadow:0 0 0 100vmax #fff}
.routes-nav.is-stuck::after{bottom:0;height:1px;background:var(--c-border);box-shadow:0 0 0 100vmax var(--c-border)}
.routes-nav-list{display:flex;gap:10px;margin:0;padding:2px;list-style:none;overflow-x:auto;scrollbar-width:none}
.routes-nav-list::-webkit-scrollbar{display:none}
.routes-nav-link{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;background:var(--c-bg-gray);border:1px solid transparent;border-radius:30px;font-size:15px;font-weight:600;color:var(--c-text);text-decoration:none;white-space:nowrap;transition:background .2s,border-color .2s,color .2s}
.routes-nav-link:hover{background:#fff;border-color:var(--c-primary);color:var(--c-primary)}
.routes-nav-link.active{background:var(--c-primary);border-color:var(--c-primary);color:#fff}
.routes-nav-link:focus-visible{outline:2px solid var(--c-primary-dark);outline-offset:2px}
.routes-nav-count{min-width:22px;padding:1px 7px;background:#fff;border-radius:20px;font-size:12px;font-weight:700;text-align:center;color:var(--c-muted)}
.routes-nav-link.active .routes-nav-count{color:var(--c-primary)}
.routes-country{margin-top:50px;scroll-margin-top:160px}
.routes-country-title{display:flex;align-items:center;gap:12px;margin:0 0 20px;font-size:24px;font-weight:800}
.routes-country-title img{border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}
.routes-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.routes-grid .port-card{min-height:95px}
@media (max-width:1024px){.routes-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:650px){
    .routes-grid{grid-template-columns:1fr;gap:15px}
    .routes-country{margin-top:40px}
    .routes-country-title{font-size:20px}
    .routes-nav-link{padding:8px 14px;font-size:14px}
}

/* ---------- PAGINA NAVE ---------- */
.company-logo-header a{display:block}
.ship-specs-section,.ship-cabins-section{margin:65px 0}
.ship-specs-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.company-stat-icon img{display:block;width:30px;height:30px;object-fit:contain}
.ship-specs-grid .company-stat-number{font-size:30px}
.ship-cabins-intro{margin-bottom:25px;font-size:16px;line-height:1.6;color:var(--c-muted)}
.ship-cabins-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.ship-cabin-card{display:flex;flex-direction:column;padding:22px;background:#fff;border:1px solid var(--c-border);border-radius:12px;transition:border-color .2s,box-shadow .2s}
.ship-cabin-card:hover{border-color:var(--c-primary);box-shadow:0 10px 25px rgba(0,0,0,.06)}
.ship-cabin-head{display:flex;align-items:center;gap:15px;margin-bottom:15px}
.ship-cabin-icon{background:var(--c-primary-light)}
.company-content .ship-cabin-title{margin:0;font-size:19px;font-weight:800;line-height:1.25}
.ship-cabin-text{font-size:15px;line-height:1.6;color:var(--c-muted)}
.ship-cabin-text p{margin-bottom:10px}
.ship-cabin-text ul{margin:0 0 10px;padding-left:18px}
.ship-back{margin-top:20px;text-align:center}
@media (max-width:1024px){
    .ship-specs-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
    .ship-cabins-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:650px){
    .ship-specs-section,.ship-cabins-section{margin:50px 0}
    .ship-specs-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
    .ship-specs-grid .company-stat-number{font-size:24px}
    .ship-cabins-grid{grid-template-columns:1fr;gap:15px}
}

/* ---------- PAGINA RASSEGNA STAMPA (card come "Sistemazioni a bordo" della pagina nave) ---------- */
.ship-cabins-section.press-month{margin:0}
.press-card{color:var(--c-text);text-decoration:none}
.press-card:hover .ship-cabin-title{color:var(--c-primary)}
.press-logo{display:flex;align-items:center;justify-content:center;flex:0 0 110px;height:60px;padding:8px;background:#fff;border:1px solid var(--c-border);border-radius:10px}
.press-logo img{display:block;max-width:100%;max-height:100%;object-fit:contain}
.press-meta{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:13px;color:var(--c-muted)}
.press-source{font-size:13px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--c-primary)}
.press-card .ship-cabin-title{margin-bottom:20px;transition:color .2s}
.press-read{display:inline-flex;align-items:center;gap:6px;margin-top:auto;padding-top:15px;border-top:1px solid var(--c-bg-gray);font-size:15px;font-weight:700;color:var(--c-primary)}
.press-stats{display:flex;flex-direction:column;padding:10px 30px;background:#fff;border-radius:8px;box-shadow:0 15px 35px rgba(0,0,0,.15)}
.press-stat{display:flex;flex-direction:column;gap:4px;padding:22px 0;border-bottom:1px dashed var(--c-dashed)}
.press-stat:last-child{border-bottom:none}
.press-stat-number{font-size:44px;font-weight:900;line-height:1;color:var(--c-primary);font-variant-numeric:tabular-nums}
.press-stat-number.press-stat-text{font-size:26px;line-height:1.15}
.press-stat-label{font-size:14px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--c-muted)}
@media (max-width:1024px){
    /* su mobile niente sovrapposizione (non c'è la foto sopra): il riquadro va sotto il testo e il "leggi tutto" */
    .company-sidebar.press-sidebar{order:7;margin:25px auto 10px}
    .press-stats{flex-direction:row;flex-wrap:wrap;padding:5px 15px}
    .press-stat{flex:1 1 0;align-items:center;min-width:0;padding:15px 8px;border-bottom:none;border-right:1px dashed var(--c-dashed);text-align:center}
    .press-stat:last-child{border-right:none}
    .press-stat-number{font-size:30px}
    .press-stat-number.press-stat-text{font-size:15px}
    .press-stat-label{font-size:11px}
}

/* ---------- ICONE E LOGHI DI RISERVA (file mancante) ---------- */
.company-service-icon svg{width:28px;height:28px;color:var(--c-primary)}
.company-stat-icon svg[width]{width:27px;height:27px}
.press-logo-text{font-size:12px;font-weight:800;line-height:1.2;text-align:center;color:var(--c-text)}
/* =========================================
   TABELLA TRATTE (regione / nazione)
   ========================================= */
.routes-table-wrapper{margin:30px 0 50px;overflow-x:auto;border:1px solid var(--c-border);border-radius:12px;box-shadow:0 4px 15px rgba(0,0,0,.05)}
.routes-table{width:100%;border-collapse:collapse;font-size:15px;text-align:left}
.routes-table thead th{padding:14px 16px;background:var(--c-primary-light);font-size:13px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--c-primary-dark);white-space:nowrap}
.routes-table th,.routes-table td{padding:14px 16px;border-bottom:1px solid var(--c-border);vertical-align:middle}
.routes-table tbody tr:last-child th,.routes-table tbody tr:last-child td{border-bottom:none}
.routes-table tbody tr:hover{background:var(--c-bg-soft)}
.routes-table-route a{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px;font-weight:700;color:var(--c-text);text-decoration:none}
.routes-table-route a:hover{color:var(--c-primary)}
.routes-table-arrow{font-size:13px;color:var(--c-primary)}
.routes-table-company{display:inline-block;margin:2px 6px 2px 0;padding:3px 10px;background:var(--c-bg-gray);border-radius:20px;font-size:13px;font-weight:600;color:var(--c-text);text-decoration:none;white-space:nowrap}
.routes-table-company:hover{background:var(--c-primary-light);color:var(--c-primary-dark)}
.routes-table-price{font-weight:800;color:var(--c-primary);white-space:nowrap}

/* =========================================
   QUALE PORTO SCEGLIERE IN BASE A DOVE VAI
   ========================================= */
.port-choice-section{margin:0 0 60px}
.port-choice-section > h2,.port-choice-section > h3{margin:0 0 25px}
.port-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.port-choice-card{display:flex;flex-direction:column;gap:6px;padding:22px;background:var(--c-bg-soft);border:1px solid var(--c-border);border-radius:12px}
.port-choice-label{font-size:13px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;color:var(--c-muted)}
.port-choice-destination{margin-bottom:8px;font-size:20px;font-weight:800;color:var(--c-text);text-decoration:none}
.port-choice-destination:hover{color:var(--c-primary)}
.port-choice-list{margin:0;padding:0;list-style:none}
.port-choice-list li{display:flex;flex-direction:column;padding:9px 0;border-bottom:1px dashed var(--c-border)}
.port-choice-list li:last-child{border-bottom:none}
.port-choice-list a{font-weight:700;color:var(--c-primary);text-decoration:none}
.port-choice-list a:hover{text-decoration:underline}
.port-choice-companies{font-size:13px;color:var(--c-muted)}

@media (max-width:1024px){.port-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:768px){
    /* tabella → schede impilate */
    .routes-table-wrapper{overflow:visible;border:none;box-shadow:none}
    .routes-table thead{display:none}
    .routes-table,.routes-table th,.routes-table td{display:block;width:100%}
    /* schede tratte in scorrimento orizzontale */
    .routes-table tbody{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:2px 2px 12px;scrollbar-width:thin}
    .routes-table tr{display:block;flex:0 0 82%;max-width:320px;padding:6px 0;border:1px solid var(--c-border);border-radius:12px;background:#fff;scroll-snap-align:start}
    .routes-table th,.routes-table td{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;padding:8px 16px;border-bottom:none;text-align:right}
    .routes-table td::before{content:attr(data-label);margin-right:auto;flex-shrink:0;font-size:13px;font-weight:600;color:var(--c-muted);text-align:left}
    .routes-table th.routes-table-route{justify-content:flex-start;padding-top:12px;padding-bottom:12px;border-bottom:1px solid var(--c-border);text-align:left}
    .routes-table-company{margin:0}
}
@media (max-width:768px){
    /* schede porti in scorrimento orizzontale */
    .port-choice-grid{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:2px 2px 12px;scrollbar-width:thin}
    .port-choice-card{flex:0 0 82%;max-width:320px;scroll-snap-align:start}
}

/* =========================================
   TRATTE E PORTI: oltre 10 tratte / 6 porti, su desktop si mostrano i primi
   e il resto si apre con "Mostra tutti" (su mobile restano tutti nello scroll)
   ========================================= */
.show-more-btn{display:block;margin:-30px auto 50px;padding:12px 26px;background:#fff;border:2px solid var(--c-primary);border-radius:30px;font-family:inherit;font-size:15px;font-weight:700;color:var(--c-primary);cursor:pointer;transition:background .2s,color .2s}
.show-more-btn:hover{background:var(--c-primary);color:#fff}
.show-more-btn:focus-visible{outline:2px solid var(--c-primary);outline-offset:3px}
.port-choice-grid + .show-more-btn{margin:25px auto 0}
@media (min-width:769px){
    .routes-table-wrapper.is-collapsed .is-extra,.port-choice-grid.is-collapsed .is-extra{display:none}
}
@media (max-width:768px){.show-more-btn{display:none}}

/* Schede porti: oltre 5 porti di partenza l'elenco scorre in verticale (si vedono 4 voci e mezza, così si capisce che continua) */
.port-choice-list--scroll{max-height:245px;margin-right:-10px;padding-right:10px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--c-primary) transparent}
.port-choice-list--scroll::-webkit-scrollbar{width:6px}
.port-choice-list--scroll::-webkit-scrollbar-thumb{background:var(--c-primary);border-radius:3px}

/* ---------- TESTI GENERATI DAI DATI (regione / nazione: _destinazione_dati.html.twig) ---------- */
.dest-data-summary{margin:0 0 20px}
.dest-departures{margin:20px 0 40px;padding:0;list-style:none}
.dest-departures li{padding:10px 0;border-bottom:1px solid var(--c-border)}
.dest-rank-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin:25px 0 40px}
.dest-rank-grid h3{margin:0 0 15px;font-size:20px;font-weight:800}
.dest-rank-list{margin:0;padding:0;list-style:none}
.dest-rank-list li{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--c-border)}
.dest-rank-value{font-weight:700;white-space:nowrap;color:var(--c-primary)}
@media (max-width:768px){
    .dest-rank-grid{grid-template-columns:1fr;gap:10px}
}
