/* Pagina pesca: galleria delle catture e calendario dei pesci. Colori del tema (site.css). */
.bv-cal .screen-reader-text, .bv-gal .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Galleria ---------- */
.bv-gal__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: var(--wp--preset--spacing--40); }
.bv-gal .bv-chip { cursor: pointer; font: inherit; font-size: 0.875rem; font-weight: 700; gap: 6px; min-height: 44px; }
.bv-gal .bv-chip small { font-weight: 600; color: var(--bv-muted); }
.bv-gal .bv-chip.is-active { background: var(--bv-navy); border-color: var(--bv-navy); color: #fff; }
.bv-gal .bv-chip.is-active small { color: var(--bv-sky); }
.bv-gal__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.bv-gal__item { margin: 0; position: relative; border-radius: 16px; overflow: hidden; background: var(--bv-ice); }
.bv-gal__item[hidden] { display: none; }
.bv-gal__item a { display: block; }
.bv-gal__item img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; transition: transform 0.4s ease; }
.bv-gal__item a:hover img { transform: scale(1.04); }
.bv-gal__item a:focus-visible { outline: 3px solid var(--bv-ocean); outline-offset: -3px; }
.bv-gal__item figcaption { position: absolute; inset: auto 0 0; padding: 28px 12px 10px; font-size: 0.8125rem; font-weight: 700; line-height: 1.3; color: #fff; background: linear-gradient(to top, rgba(8, 28, 56, 0.8), rgba(8, 28, 56, 0)); pointer-events: none; }
.bv-gal__more { margin: var(--wp--preset--spacing--40) auto 0; border: 0; cursor: pointer; font: inherit; font-weight: 800; }

.bv-zoom { border: 0; padding: 0; max-width: min(1100px, 94vw); max-height: 92vh; background: transparent; overflow: visible; }
.bv-zoom::backdrop { background: rgba(5, 18, 38, 0.92); }
.bv-zoom img { display: block; max-width: 100%; max-height: 82vh; margin: 0 auto; border-radius: 12px; }
.bv-zoom p { margin: 10px 0 0; text-align: center; color: #fff; font-weight: 700; }
.bv-zoom button { position: absolute; border: 0; cursor: pointer; width: 48px; height: 48px; border-radius: 50%; background: rgba(255, 255, 255, 0.92); color: var(--bv-navy); font-size: 1.75rem; line-height: 1; }
.bv-zoom__close { top: -56px; right: 0; }
.bv-zoom__nav { top: calc(50% - 40px); }
.bv-zoom__nav--prev { left: -60px; }
.bv-zoom__nav--next { right: -60px; }

/* ---------- Calendario ---------- */
.bv-cal__scroll { overflow-x: auto; border: 1px solid var(--bv-line); border-radius: var(--bv-radius); background: #fff; }
.bv-cal__scroll:focus-visible { outline: 3px solid var(--bv-ocean); }
.bv-cal table { width: 100%; min-width: 720px; border-collapse: separate; border-spacing: 3px; padding: 10px; font-size: 0.875rem; }
.bv-cal th { font-weight: 700; color: var(--bv-muted); padding: 6px 2px; }
.bv-cal thead th abbr { text-decoration: none; }
.bv-cal__i { display: none; }
.bv-cal thead th.is-oggi { color: var(--bv-ocean); }
.bv-cal thead th.is-oggi abbr::after { content: " · oggi"; display: block; font-size: 0.6875rem; }
.bv-cal .bv-cal__name { position: sticky; left: 0; z-index: 1; background: #fff; text-align: left; white-space: nowrap; color: var(--bv-navy); padding-right: 12px; }
.bv-cal td { height: 34px; border-radius: 8px; background: var(--bv-ice); }
.bv-cal td.is-oggi { box-shadow: inset 0 0 0 2px var(--bv-navy); }
.bv-cal .is-top { background: var(--bv-ocean); }
.bv-cal .is-si { background: var(--bv-sky); }
.bv-cal .is-raro { background: var(--bv-mist); }
.bv-cal .is-nd { background: repeating-linear-gradient(45deg, var(--bv-ice), var(--bv-ice) 4px, #fff 4px, #fff 8px); }
.bv-cal__mare th { padding-top: 14px; }
.bv-cal .is-vento { background: #f2b36b; }
.bv-cal .is-medio { background: #f7dcb6; }
.bv-cal .is-calmo { background: #9fd8c5; }
.bv-cal__legend { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 14px 0 0; font-size: 0.875rem; color: var(--bv-muted); }
.bv-cal__legend span { display: inline-flex; align-items: center; gap: 8px; }
.bv-cal__legend i { width: 18px; height: 18px; border-radius: 5px; display: inline-block; }
.bv-cal__note { margin: 10px 0 0; font-size: 0.9375rem; color: var(--bv-muted); max-width: 760px; }

@media (max-width: 600px) {
	.bv-cal table { min-width: 0; border-spacing: 2px; padding: 8px 6px; font-size: 0.75rem; table-layout: fixed; }
	.bv-cal .bv-cal__name { width: 76px; white-space: normal; line-height: 1.2; padding-right: 4px; }
	.bv-cal td { height: 26px; border-radius: 5px; }
	.bv-cal__m { display: none; }
	.bv-cal__i { display: inline; }
	.bv-cal thead th.is-oggi abbr::after { content: ""; }
}
@media (max-width: 781px) {
	.bv-ihero--fish .bv-ihero__img { object-position: 30% center; }
	.bv-gal__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
	.bv-gal__chips { flex-wrap: nowrap; overflow-x: auto; margin-inline: -16px; padding-inline: 16px; scrollbar-width: none; }
	.bv-gal .bv-chip { flex: none; }
	.bv-zoom__nav { top: auto; bottom: -58px; }
	.bv-zoom__nav--prev { left: calc(50% - 56px); }
	.bv-zoom__nav--next { right: calc(50% - 56px); }
}
@media (prefers-reduced-motion: reduce) {
	.bv-gal__item img { transition: none; }
}

/* ---------- Titolo con parola chiave e fascia di richiesta a metà pagina ---------- */
.bv-ihero .bv-hero__kicker { display: block; margin-bottom: 0.6rem; font-size: clamp(1rem, 1.5vw, 1.25rem); line-height: 1.3; font-weight: 700; letter-spacing: 0; color: var(--bv-sky); }
.bv-fishcta { display: flex; align-items: center; justify-content: space-between; gap: 24px 40px; flex-wrap: wrap; margin-top: var(--wp--preset--spacing--60) !important; padding: clamp(28px, 4vw, 48px); border-radius: var(--bv-radius); color: #fff; background: linear-gradient(120deg, var(--bv-navy), var(--bv-ocean)); }
.bv-fishcta > div:first-child { flex: 1 1 420px; min-width: 0; }
.bv-fishcta h2 { margin: 0 0 0.5rem; color: #fff; }
.bv-fishcta p { margin: 0; color: var(--bv-mist); font-size: 1.0625rem; max-width: 60ch; }
.bv-fishcta__actions { display: flex; gap: 10px; flex-wrap: wrap; }
@media (max-width: 781px) {
	.bv-fishcta__actions { width: 100%; }
	.bv-fishcta__actions .bv-btn { flex: 1 1 100%; box-sizing: border-box; }
}

/* ---------- Pacchetti: "in breve", voli ---------- */
.bv-inbreve { margin: 0 0 1rem; padding: 16px 18px; border-radius: 16px; background: var(--bv-ice); color: var(--bv-navy); font-size: 1rem; line-height: 1.55; }
.bv-voli { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 24px 40px; align-items: start; margin-top: var(--wp--preset--spacing--60) !important; padding: clamp(24px, 4vw, 40px); border: 1px solid var(--bv-line); border-radius: var(--bv-radius); background: #fff; }
.bv-voli h2 { margin: 0.3rem 0 0.6rem; }
.bv-voli__testo p:not(.bv-eyebrow) { margin: 0; color: var(--bv-muted); }
.bv-voli__lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.bv-voli__lista li { display: flex; flex-direction: column; gap: 2px; padding: 14px 16px; border-radius: 14px; background: var(--bv-ice); }
.bv-voli__lista b { color: var(--bv-ocean); font-size: 0.8125rem; text-transform: uppercase; letter-spacing: 0.08em; }
.bv-voli__lista span { font-weight: 800; color: var(--bv-navy); }
.bv-voli__lista small { color: var(--bv-muted); }
.bv-voli__nota { grid-column: 1 / -1; margin: 0; font-size: 0.875rem; color: var(--bv-muted); }
@media (max-width: 781px) {
	.bv-voli { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 420px) {
	.bv-voli__lista { grid-template-columns: minmax(0, 1fr); }
}
