/* QualeSpiaggia v2 · v2.css — estensioni nazionali sopra brand/home/spiaggia/esplora.css */

/* Chip beta in nav */
.v2-beta-chip {
  display: inline-flex; align-items: center; padding: 3px 9px; border-radius: 999px;
  background: var(--qs-orange-soft, rgba(255,158,61,.12)); color: var(--qs-orange-dark, #E5882C);
  font: 700 11px/1 var(--qs-font-mono); letter-spacing: .08em; text-transform: uppercase;
}

/* Paywall / newsletter / login: mai visibili in v2 (pagine statiche ereditate) */
[data-paywall-card], #qs-footer-newsletter, .qs-footer-newsletter, [data-action="open-signup"],
[data-action="open-magic-link"], #qs-newsletter-banner, #qs-signup-modal { display: none !important; }

/* Gradienti "mare" per card/hero senza foto */
.v2-sea-adriatico { --sea1: #2AA7C7; --sea2: #0B4F6C; }
.v2-sea-ionio     { --sea1: #39B8C9; --sea2: #0E5D78; }
.v2-sea-tirreno   { --sea1: #3D8FC7; --sea2: #0B3F6C; }
.v2-sea-ligure    { --sea1: #4A9BB8; --sea2: #123F5A; }
.v2-sea-sardegna  { --sea1: #34C3C0; --sea2: #0B5A6C; }
.v2-sea-sicilia   { --sea1: #2F9FD0; --sea2: #0A4569; }
.v2-sea-messina   { --sea1: #35AECB; --sea2: #0C5470; }
.v2-sea-x         { --sea1: #2AA7C7; --sea2: #0B4F6C; }
.v2-media {
  background-color: var(--sea2, #0B4F6C);
  background-image:
    radial-gradient(120% 80% at 85% 0%, rgba(255,216,156,.55) 0%, transparent 55%),
    repeating-linear-gradient(170deg, rgba(255,255,255,.07) 0 2px, transparent 2px 18px),
    linear-gradient(180deg, var(--sea1, #2AA7C7) 0%, var(--sea2, #0B4F6C) 100%);
}
.beach-card-media.v2-media[style*="background-image"] { background-size: cover; }
.qs-score-na { background: rgba(255,255,255,.85); color: #5a6b73; }

/* Hero scheda senza foto */
.bch-hero--plain {
  min-height: 300px;
  background:
    radial-gradient(90% 120% at 100% 0%, rgba(255,216,156,.35) 0%, transparent 60%),
    repeating-linear-gradient(172deg, rgba(255,255,255,.05) 0 2px, transparent 2px 22px),
    linear-gradient(160deg, var(--sea1, #2AA7C7) 0%, var(--sea2, #0B4F6C) 75%);
}
.bch-hero--plain::before { background: linear-gradient(180deg, transparent 30%, rgba(11,47,68,.45) 100%); }
.bch-hero--plain .bch-hero-inner { min-height: 252px; }
.bch-hero--plain .bch-hero-title { font-size: clamp(40px, 6vw, 80px); }

/* Badge score compatto */
.v2-badge {
  display: inline-flex; align-items: center; justify-content: center; min-width: 38px; padding: 3px 9px;
  border-radius: 999px; color: #fff; font: 700 13px/1.4 var(--qs-font-mono); font-variant-numeric: tabular-nums;
}
.v2-badge-na { background: #c9d3d8; }

/* Layout pagine hub */
.v2-crumbs { max-width: 1200px; margin: 0 auto; }
.v2-wrap { max-width: 1200px; margin: 0 auto; padding: 24px 20px 72px; }
.v2-narrow { max-width: 880px; }
.v2-head { padding: 12px 0 8px; }
.v2-head .qs-lead { max-width: 760px; margin: 12px 0 20px; }
.v2-h1 { font-size: clamp(34px, 5vw, 56px); margin: 6px 0 0; }
.v2-h2 { font-size: clamp(24px, 3vw, 34px); margin: 0 0 18px; }
.v2-h2s { font-family: var(--qs-font-display); font-size: 22px; color: var(--qs-deep); margin: 32px 0 8px; }
.v2-h3 { font-family: var(--qs-font-display); font-size: 19px; margin: 28px 0 10px; }
.v2-h3 a { color: var(--qs-deep); text-decoration: none; }
.v2-section { margin-top: 48px; }
.v2-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 18px; }
.v2-grid .beach-card, .bch-nearby-grid .beach-card { text-decoration: none; color: inherit; }

.v2-map { height: 460px; border-radius: 18px; overflow: hidden; background: #D8EAEF; border: 1px solid var(--qs-border); }
.v2-map-error::after { content: "—"; display: block; padding: 20px; color: var(--qs-text-muted); }

.v2-prov-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.v2-prov-card {
  display: flex; flex-direction: column; gap: 4px; padding: 18px; border-radius: 14px; background: #fff;
  border: 1px solid var(--qs-border); text-decoration: none; color: var(--qs-deep); transition: box-shadow .15s;
}
.v2-prov-card:hover { box-shadow: var(--qs-shadow-md); }
.v2-prov-card strong { font-family: var(--qs-font-display); font-size: 18px; }
.v2-prov-card span { font-size: 14px; color: var(--qs-text-soft); }
.v2-prov-card .v2-prov-best { color: var(--qs-score-perfect, #2E8B6E); font-weight: 600; }

.v2-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.v2-table { width: 100%; border-collapse: collapse; font-size: 15px; background: #fff; border-radius: 14px; overflow: hidden; }
.v2-table th, .v2-table td { padding: 10px 12px; text-align: left; border-bottom: 1px solid #eef2f4; }
.v2-table th { font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: #5a6b73; background: #fbfaf7; }
.v2-table a { color: var(--qs-deep); font-weight: 600; text-decoration: none; }
.v2-table a:hover { text-decoration: underline; }
.v2-td-score { width: 70px; }
.v2-rank { color: #9aa7ad; width: 36px; font-variant-numeric: tabular-nums; }

.v2-chips { list-style: none; padding: 0; margin: 16px 0 0; display: flex; flex-wrap: wrap; gap: 10px; }
.v2-chip {
  display: inline-block; padding: 10px 16px; border: 1px solid #d7e3ea; border-radius: 999px; background: #fff;
  color: #0B4F6C; text-decoration: none; font-size: 14px; font-weight: 600; line-height: 1.2;
}
.v2-chip:hover { border-color: var(--qs-deep); }

.v2-updated { font-size: 13px; color: #7a8990; margin: 6px 0 20px; }
.v2-answer { font-size: 17px; line-height: 1.6; color: #1a3540; }
.v2-answer a { color: var(--qs-deep); font-weight: 600; }
.v2-note { font-size: 14px; color: #5a6b73; }

/* Esplora */
.v2-filters { display: flex; flex-wrap: wrap; gap: 10px; margin: 8px 0 20px; }
.v2-filters select, .v2-search input {
  height: 46px; border-radius: 12px; border: 1px solid var(--qs-border-strong); background: #fff;
  padding: 0 14px; font: inherit; font-size: 15px; color: var(--qs-deep);
}
.v2-search { flex: 1 1 260px; }
.v2-search input { width: 100%; box-sizing: border-box; }
.v2-filters select { flex: 0 1 200px; }
.v2-filters select:disabled { opacity: .5; }
.v2-explore { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.v2-explore .v2-map { height: 640px; position: sticky; top: 84px; }
.v2-count { font: 600 13px var(--qs-font-mono); color: var(--qs-text-muted); letter-spacing: .04em; margin: 0 0 10px; text-transform: uppercase; }
.v2-list { list-style: none; padding: 0; margin: 0 0 16px; display: flex; flex-direction: column; gap: 8px; }
.v2-row a {
  display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 12px; background: #fff;
  border: 1px solid var(--qs-border); text-decoration: none; color: var(--qs-deep);
}
.v2-row a:hover { border-color: var(--qs-border-strong); box-shadow: var(--qs-shadow-sm); }
.v2-row-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.v2-row-main strong { font-size: 15.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v2-row-main span { font-size: 13px; color: var(--qs-text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v2-row-type { font-size: 12px; color: var(--qs-text-soft); }
.v2-reg-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.v2-reg-block { background: #fff; border: 1px solid var(--qs-border); border-radius: 16px; padding: 18px 20px; }
.v2-reg-block h3 { margin: 0 0 8px; font-family: var(--qs-font-display); font-size: 20px; }
.v2-reg-block h3 a { color: var(--qs-deep); text-decoration: none; }
.v2-reg-block h3 span { font: 600 12px var(--qs-font-mono); color: var(--qs-text-muted); margin-left: 6px; }
.v2-reg-block ul { list-style: none; padding: 0; margin: 0 0 10px; display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 14px; }
.v2-reg-block li a { color: var(--qs-deep); }
.v2-reg-block li span { color: var(--qs-text-faint); font-size: 12px; }
.v2-reg-today { font-size: 14px; font-weight: 600; color: var(--qs-orange-dark, #E5882C); text-decoration: none; }

/* Home */
.v2-home-hero .home-hero-grid { align-items: center; }
.v2-hero-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.v2-hero-cards .beach-card { text-decoration: none; color: inherit; }
.v2-near { padding: 64px 0 40px; background: #fff; }
.v2-near .qs-lead { max-width: 640px; }
.v2-near-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 20px 0 12px; }
.v2-near-or { color: var(--qs-text-muted); font-size: 14px; }
.v2-near-actions select { height: 46px; border-radius: 12px; border: 1px solid var(--qs-border-strong); padding: 0 14px; font: inherit; background: #fff; color: var(--qs-deep); }
.v2-near-status { min-height: 1.4em; color: var(--qs-text-soft); font-size: 14px; }
.v2-regions { padding: 64px 0; margin-top: 0; background: #f8f6f1; }
.v2-reg-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px; margin-top: 28px; }
.v2-reg-card { background: #fff; border-radius: 16px; padding: 22px; border: 1px solid var(--qs-border); }
.v2-reg-card h3 { margin: 0 0 10px; font-family: var(--qs-font-display); font-size: 21px; }
.v2-reg-card h3 a { color: var(--qs-deep); text-decoration: none; }
.v2-top { list-style: none; counter-reset: top; padding: 0; margin: 0 0 14px; }
.v2-top li { counter-increment: top; display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid #f0f2f3; }
.v2-top li::before { content: counter(top); font: 700 12px var(--qs-font-mono); color: var(--qs-text-faint); width: 14px; }
.v2-top li a { flex: 1; min-width: 0; display: flex; flex-direction: column; text-decoration: none; color: var(--qs-deep); }
.v2-top-name { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v2-top-place { font-size: 12.5px; color: var(--qs-text-muted); }
.v2-reg-links { display: flex; justify-content: space-between; gap: 10px; font-size: 14px; }
.v2-reg-links a { color: var(--qs-orange-dark, #E5882C); font-weight: 600; text-decoration: none; }
.v2-factors { max-width: 880px; margin: 32px auto 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }

/* Scheda */
.v2-where { grid-template-columns: 1fr 1fr !important; align-items: stretch; }
.v2-minimap { min-height: 280px; border-radius: 16px; overflow: hidden; background: #D8EAEF; border: 1px solid var(--qs-border); }
.v2-day-slots { display: flex; justify-content: center; gap: 6px; font: 600 10.5px var(--qs-font-mono); color: var(--qs-text-muted); }
.v2-404 { text-align: center; padding-top: 80px; }

/* Pin mappa (anche fuori da esplora.css) */
.qs-map-pin {
  display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%;
  background: #fff; border: 2.5px solid currentColor; font: 700 12px var(--qs-font-mono);
  box-shadow: 0 2px 6px rgba(11,79,108,.2);
}
.qs-map-cluster {
  width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; border-radius: 50%;
  background: var(--c, #2F8F6F); color: #fff; font: 700 13px var(--qs-font-mono);
  box-shadow: 0 0 0 6px color-mix(in srgb, var(--c, #2F8F6F) 25%, transparent);
}
.marker-cluster, .marker-cluster div { background: transparent !important; }

@media (max-width: 900px) {
  .v2-explore { grid-template-columns: 1fr; }
  .v2-explore .v2-map { position: static; height: 380px; }
  .v2-where { grid-template-columns: 1fr !important; }
  .v2-hero-cards { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .v2-wrap { padding: 16px 16px 56px; }
  .v2-map { height: 360px; }
  .v2-filters select { flex: 1 1 45%; }
  .v2-factors { grid-template-columns: 1fr; }
  .v2-hero-cards { display: none; }
  .v2-row-type { display: none; }
  .v2-table th:nth-child(3), .v2-table td:nth-child(3) { display: none; }
  .v2-credits th:nth-child(3), .v2-credits td:nth-child(3) { display: table-cell; }
  .v2-beta-chip { display: none; }
}

/* Footer nazionale: brand + 4 colonne */
@media (min-width: 901px) {
  .qs-footer-inner { grid-template-columns: 1.4fr repeat(4, 1fr); gap: 32px; }
}

/* FAQ scheda nuova: una colonna leggibile */
.v2-faq .bch-body-inner { display: block; max-width: 880px; }
.v2-faq .bch-faq-item { margin-bottom: 8px; }

/* Card: immagine sempre 16:9 anche su mobile (foto, vista aerea, mappa OSM e gradiente hanno la stessa
   altezza; un taglio più basso toglierebbe la dicitura © OpenStreetMap stampata in basso nelle mappe) */
.beach-card-media.v2-media { aspect-ratio: 16/9; background-position: center; }
@media (max-width: 600px) {
  .v2-grid { grid-template-columns: 1fr; gap: 12px; }
}

/* Previsioni scheda nuova: su mobile tutti i 7 giorni con scroll orizzontale */
@media (max-width: 960px) {
  .v2-forecast .bch-forecast-grid { display: flex; overflow-x: auto; gap: 6px; scroll-snap-type: x proximity; padding-bottom: 4px; }
  .v2-forecast .bch-forecast-grid .bch-day { display: block !important; flex: 0 0 78px; scroll-snap-align: start; }
}
/* le colonne della griglia scheda non devono allargarsi al contenuto scrollabile (previsioni) */
.bch-body-inner > * { min-width: 0; }
.v2-stale { margin-top: 6px; font-size: 12.5px; color: #8a5a00; background: #fff4e0; border-radius: 8px; padding: 4px 8px; display: inline-block; }

/* Attribuzione foto (licenze CC: autore + licenza + link) */
.v2-photo-credit { display: block; margin-top: 8px; font-size: 11.5px; color: rgba(255,248,238,.8); text-shadow: 0 1px 2px rgba(0,0,0,.4); }
.v2-photo-credit a { color: inherit; text-decoration: underline; }

/* Home: mappa Italia completa */
.v2-bigmap { padding: 64px 0 56px; background: var(--qs-sand, #FFF8EE); scroll-margin-top: 72px; }
.v2-bigmap .qs-lead { max-width: 720px; }
.v2-bigmap-frame { position: relative; max-width: 1280px; margin: 20px auto 0; padding: 0 24px; }
.v2-bigmap .v2-map { height: 70vh; min-height: 420px; max-height: 860px; }
.v2-map-activate { position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%); z-index: 500; box-shadow: var(--qs-shadow-lg); }
.v2-legend { list-style: none; padding: 0; margin: 16px 0 0; display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 14px; color: var(--qs-text-soft); }
.v2-legend li { display: inline-flex; align-items: center; gap: 7px; }
.v2-dot { width: 14px; height: 14px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 0 1px rgba(11,79,108,.2); }
.v2-legend-range { font: 600 11.5px var(--qs-font-mono); color: var(--qs-text-muted); }
@media (max-width: 600px) {
  .v2-bigmap { padding: 44px 0 40px; }
  .v2-bigmap-frame { padding: 0 12px; }
  .v2-bigmap .v2-map { height: 60vh; min-height: 340px; }
}
iframe.v2-minimap { border: 0; width: 100%; display: block; }
.bch-hero-glink { display: contents; }
/* vista aerea: etichetta per non scambiarla per una foto */
.v2-hero-badge { position: absolute; top: 16px; right: 16px; z-index: 2; padding: 4px 10px; border-radius: 999px;
  background: rgba(11,47,68,.72); color: var(--qs-sand); font-size: 12px; font-weight: 600; letter-spacing: .02em; }
/* Places UI Kit (foto Google Maps, solo a runtime) */
.v2-gplace { width: 360px; max-width: 100%; background: #fff; border-radius: 14px; overflow: hidden;
  box-shadow: 0 6px 24px rgba(0,0,0,.25); color: #1b2a33; }
.v2-gplace gmp-place-details-compact { width: 100%; }
@media (max-width: 720px) { .v2-gplace { width: 100%; } }
/* vista satellite Mapbox (Static Images API): ancorata in basso, dove Mapbox stampa il logo */
.v2-sat-img { object-position: center bottom; }
/* stesso overlay delle schede con foto, alleggerito solo nell'angolo basso-sinistro (sfumato, senza bordi)
   dove Mapbox stampa il suo logo, che deve restare riconoscibile */
.v2-hero-sat::before {
  -webkit-mask-image: radial-gradient(ellipse 150px 70px at 0 100%, rgba(0,0,0,.25) 0%, rgba(0,0,0,.25) 45%, #000 100%);
  mask-image: radial-gradient(ellipse 150px 70px at 0 100%, rgba(0,0,0,.25) 0%, rgba(0,0,0,.25) 45%, #000 100%);
}
/* pulsante "Vista satellite" sugli hero con foto */
.v2-hero-tools { position: absolute; top: 16px; right: 16px; z-index: 3; display: flex; gap: 8px; align-items: center; }
.v2-hero-tools .v2-hero-badge { position: static; }
.v2-sat-toggle { font: inherit; font-size: 13px; font-weight: 600; padding: 6px 12px; border-radius: 999px; cursor: pointer;
  border: 1px solid rgba(255,248,238,.6); background: rgba(11,47,68,.72); color: var(--qs-sand); }
.v2-sat-toggle[aria-pressed="true"] { background: var(--qs-sand); color: var(--qs-deep); }
.v2-sat-toggle:focus-visible { outline: 2px solid var(--qs-gold); outline-offset: 2px; }

/* ── a11y (F3): skip link, titoli footer, lingua corrente, nota sezione Salento ── */
.v2-skip { position: absolute; left: 12px; top: -60px; z-index: 1000; padding: 10px 16px; border-radius: 8px;
  background: var(--qs-deep); color: var(--qs-sand); font-weight: 700; text-decoration: none; }
.v2-skip:focus { top: 12px; outline: 2px solid var(--qs-gold); outline-offset: 2px; }
.qs-footer-col .qs-footer-h { font-family: var(--qs-font-mono); font-size: 11px; font-weight: 700; letter-spacing: 2px;
  text-transform: uppercase; color: var(--qs-gold); margin: 0 0 16px; line-height: inherit; }
.qs-nav-lang-menu a[aria-current="true"] { color: var(--qs-deep); background: rgba(255,158,61,0.08); }
.v2-section-note { max-width: 1120px; margin: 12px auto 0; padding: 10px 16px; border-radius: 10px; font-size: 14px;
  background: rgba(11,79,108,0.06); color: var(--qs-deep); }
.v2-section-note a { color: inherit; font-weight: 700; }
@media (max-width: 1150px) { .v2-section-note { margin: 12px 16px 0; } }

/* ── hub e schede (F4/F5): filtri con etichetta visibile, testi calcolati, venti, guide, crediti ── */
.v2-filters { align-items: flex-end; }
.v2-fieldset { display: flex; flex-direction: column; gap: 4px; flex: 0 1 200px; }
.v2-fieldset select { flex: none; width: 100%; }
.v2-field-lbl { font: 600 11px var(--qs-font-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--qs-text-muted); }
.v2-near-or { font-size: 14px; color: var(--qs-text-soft); }
.v2-prose { max-width: 820px; }
.v2-prose p, .v2-faq-item p { font-size: 16px; line-height: 1.65; color: #1a3540; }
.v2-prose a, .v2-faq-item a, .v2-note a, .v2-best-list a { color: var(--qs-deep); font-weight: 600; }
.v2-faq-item { max-width: 820px; border-bottom: 1px solid var(--qs-border); padding: 4px 0 10px; }
.v2-faq-item h3 { font-family: var(--qs-font-display); font-size: 18px; margin: 14px 0 6px; color: var(--qs-deep); }
.v2-more-link { margin: 8px 0 0; font-size: 14px; }
.v2-more-link a { color: var(--qs-orange-dark, #E5882C); font-weight: 600; text-decoration: none; }
.v2-best-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.v2-best-list li { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; }
.v2-byline { font-size: 13px; color: var(--qs-text-muted); margin: 12px 0 0; }
.v2-byline a { color: inherit; }
.v2-wind-table th[scope="row"] { text-transform: none; letter-spacing: 0; font-size: 15px; color: var(--qs-deep); background: none; }
.v2-wind-offshore td:last-child { color: var(--qs-score-perfect, #2E8B6E); font-weight: 600; }
.v2-wind-onshore td:last-child { color: #C2462F; font-weight: 600; }
.v2-winds .bch-body-inner, .v2-guide .bch-body-inner { display: block; max-width: 880px; }
.v2-toc { background: #fbfaf7; border: 1px solid var(--qs-border); border-radius: 12px; padding: 12px 18px; margin: 12px 0 20px; }
.v2-toc ol { margin: 0; padding-left: 18px; }
.v2-toc .v2-toc-l3 { margin-left: 14px; list-style: circle; }
.v2-sources { font-size: 14px; }
.v2-pager { display: flex; gap: 8px; margin: 12px 0; }
.v2-pager a { padding: 4px 10px; border: 1px solid var(--qs-border); border-radius: 8px; text-decoration: none; color: var(--qs-deep); }
.v2-pager a[aria-current="page"] { background: var(--qs-deep); color: #fff; }
.v2-credit-regions { columns: 3 220px; padding-left: 18px; }
.v2-credit-regions span { color: var(--qs-text-faint); font-size: 12px; }
@media (max-width: 600px) { .v2-filters .v2-fieldset { flex: 1 1 45%; } }
/* breadcrumb delle pagine della sezione Salento (zone/tipo/…): non caricano spiaggia.css */
.bch-breadcrumb { max-width: 1200px; margin: 0 auto; padding: 16px 24px 0; font-family: var(--qs-font-mono);
  font-size: 12.5px; color: var(--qs-text-muted); letter-spacing: 0.02em; }
.bch-breadcrumb a { color: var(--qs-text-muted); }
.bch-breadcrumb a:hover { color: var(--qs-deep); }
.bch-breadcrumb .sep { margin: 0 6px; }
.bch-breadcrumb .current { color: var(--qs-deep); font-weight: 600; }
/* schede legacy: link a provincia, regione e mare oggi */
.v2-geo-links.bch-nearby { padding-bottom: 8px; }
.v2-geo-links p { margin: 8px 0 0; line-height: 1.8; }
.v2-geo-links a { color: var(--qs-deep); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
/* link affiliati GetYourGuide (sitelib/affiliate.py): card discreta con dicitura visibile */
.v2-aff { margin: 40px 0 0; max-width: 820px; background: #fbfaf7; border: 1px solid var(--qs-border); border-radius: 14px; padding: 16px 20px; }
.v2-guide .v2-aff { margin: 20px 0 8px; }
.v2-aff-h { margin: 0 0 8px; font: 700 11px/1.4 var(--qs-font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--qs-text-muted); }
.v2-aff-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.v2-aff-list a { color: var(--qs-deep); font-weight: 600; text-decoration: underline; text-decoration-color: var(--qs-border-strong); text-underline-offset: 3px; overflow-wrap: anywhere; }
.v2-aff-list a:hover { text-decoration-color: var(--qs-deep); }
.v2-aff-note { margin: 10px 0 0; font-size: 12.5px; line-height: 1.5; color: var(--qs-text-muted); }
