/* Boavista – componenti che theme.json non copre. Colori e font: variabili del tema. */

:root {
	--bv-navy: var(--wp--preset--color--navy);
	--bv-deep: var(--wp--preset--color--deep);
	--bv-ocean: var(--wp--preset--color--ocean);
	--bv-sky: var(--wp--preset--color--sky);
	--bv-mist: var(--wp--preset--color--mist);
	--bv-ice: var(--wp--preset--color--ice);
	--bv-muted: var(--wp--preset--color--muted);
	--bv-line: var(--wp--preset--color--line);
	--bv-orange: var(--wp--preset--color--orange);
	--bv-radius: 24px;
	--bv-shadow: 0 12px 32px rgba(11, 37, 69, 0.1);
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
img { max-width: 100%; height: auto; }

/* ---------- Header ---------- */
.bv-header {
	position: sticky; top: 0; z-index: 50;
	background: rgba(255, 255, 255, 0.92);
	backdrop-filter: saturate(1.4) blur(12px);
	border-bottom: 1px solid var(--bv-line);
}
.bv-logo { display: inline-flex; align-items: center; gap: 10px; color: var(--bv-navy); font-weight: 800; font-size: 1.25rem; letter-spacing: -0.02em; white-space: nowrap; }
.bv-logo:hover { color: var(--bv-navy); }
.bv-logo__mark { width: 38px; height: 38px; border-radius: 12px; background: var(--bv-navy); display: inline-flex; align-items: center; justify-content: center; }
.bv-nav .wp-block-navigation-item__content { padding: 10px 14px; border-radius: 12px; color: var(--bv-navy); }
.bv-nav .wp-block-navigation-item__content:hover { background: var(--bv-ice); }
.bv-nav .bv-nav--strong .wp-block-navigation-item__content { font-weight: 800; }
.bv-nav .current-menu-item > .wp-block-navigation-item__content { background: var(--bv-ice); color: var(--bv-deep); }

.bv-btn-orange .wp-block-button__link { background: var(--bv-orange); color: var(--bv-navy); font-weight: 800; }
.bv-btn-orange .wp-block-button__link:hover { background: #ffa04a; color: var(--bv-navy); }
.is-style-outline .wp-block-button__link { border: 1.5px solid var(--bv-line); background: #fff; color: var(--bv-navy); }
.is-style-outline .wp-block-button__link:hover { border-color: var(--bv-ocean); background: var(--bv-ice); color: var(--bv-navy); }

/* ---------- Testi di servizio ---------- */
.bv-eyebrow { margin: 0; font-size: 0.8125rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--bv-ocean); }
.bv-accent { color: var(--bv-ocean); }
.bv-greeting { margin: 0; font-weight: 700; color: var(--bv-ocean); }

/* ---------- Hero ---------- */
.bv-hero__title { margin-block: 0.6rem 1.4rem; }
.bv-ask {
	display: flex; align-items: center; gap: 10px;
	background: #fff; border: 1px solid var(--bv-line); border-radius: 22px; padding: 10px;
	box-shadow: var(--bv-shadow);
}
.bv-ask:focus-within { border-color: var(--bv-ocean); }
.bv-ask__icon { flex: none; width: 48px; height: 48px; border-radius: 14px; background: var(--bv-ice); color: var(--bv-ocean); display: inline-flex; align-items: center; justify-content: center; }
.bv-ask input { flex: 1; min-width: 0; border: 0; background: transparent; font: inherit; font-size: 1.0625rem; min-height: 48px; color: var(--bv-navy); outline: none; }
.bv-ask button { flex: none; border: 0; border-radius: 14px; background: var(--bv-navy); color: #fff; font: inherit; font-weight: 700; padding: 0 22px; min-height: 48px; cursor: pointer; }
.bv-ask button:hover { background: var(--bv-ocean); }
.bv-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.bv-chip { display: inline-flex; align-items: center; min-height: 38px; padding: 0 14px; border-radius: 999px; border: 1px solid #cfdceb; background: #fff; font-size: 0.8125rem; font-weight: 600; color: var(--bv-deep); }
.bv-chip:hover { border-color: var(--bv-ocean); color: var(--bv-ocean); }

.bv-cam { position: relative; margin: 0; border-radius: 30px; overflow: hidden; min-height: 460px; color: #fff; background: var(--bv-deep); }
.bv-cam img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.bv-cam::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(8, 28, 56, 0.55), rgba(8, 28, 56, 0) 45%); }
.bv-live { position: absolute; z-index: 1; top: 18px; left: 18px; display: inline-flex; align-items: center; gap: 8px; background: rgba(8, 28, 56, 0.6); padding: 7px 12px; border-radius: 999px; font-size: 0.75rem; font-weight: 700; }
.bv-live__dot { width: 8px; height: 8px; border-radius: 50%; background: #ff5a5a; animation: bv-pulse 2s infinite; }
@keyframes bv-pulse { 0% { box-shadow: 0 0 0 0 rgba(255, 90, 90, 0.7); } 70% { box-shadow: 0 0 0 10px rgba(255, 90, 90, 0); } 100% { box-shadow: 0 0 0 0 rgba(255, 90, 90, 0); } }
.bv-cam__data { position: absolute; z-index: 1; left: 16px; right: 16px; bottom: 16px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.bv-cam__cell { background: rgba(8, 28, 56, 0.62); backdrop-filter: blur(6px); border-radius: 14px; padding: 12px; display: flex; flex-direction: column; }
.bv-cam__cell span { font-size: 0.6875rem; opacity: 0.85; }
.bv-cam__cell b { font-size: 1.25rem; }

/* ---------- 6 percorsi ---------- */
.bv-paths { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.bv-path { display: flex; flex-direction: column; gap: 10px; padding: 18px; border-radius: 20px; background: var(--bv-ice); color: var(--bv-navy); transition: transform 0.2s ease, box-shadow 0.2s ease; }
.bv-path:hover { transform: translateY(-3px); box-shadow: var(--bv-shadow); color: var(--bv-navy); }
.bv-path svg { width: 26px; height: 26px; fill: none; stroke: var(--bv-ocean); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.bv-path--dark { background: var(--bv-navy); color: #fff; }
.bv-path--deep { background: var(--bv-deep); color: #fff; }
.bv-path--dark:hover, .bv-path--deep:hover { color: #fff; }
.bv-path--dark svg, .bv-path--deep svg { stroke: var(--bv-sky); }

/* ---------- Ricerca immobili ---------- */
.bv-search { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; background: #fff; border-radius: 20px; padding: 10px; box-shadow: 0 10px 28px rgba(11, 37, 69, 0.08); }
.bv-search label { display: flex; flex-direction: column; gap: 2px; padding: 6px 10px; font-size: 0.75rem; font-weight: 700; color: var(--bv-muted); }
.bv-search select { border: 0; background: transparent; font: inherit; font-size: 0.9375rem; font-weight: 700; color: var(--bv-navy); min-height: 30px; cursor: pointer; }
.bv-search button { border: 0; border-radius: 14px; background: var(--bv-ocean); color: #fff; font: inherit; font-weight: 700; min-height: 52px; cursor: pointer; }
.bv-search button:hover { background: var(--bv-navy); }

/* ---------- Card immobile ---------- */
.bv-card { height: 100%; background: #fff; border-radius: var(--bv-radius); overflow: hidden; box-shadow: 0 1px 0 var(--bv-line); transition: transform 0.25s ease, box-shadow 0.25s ease; }
.bv-card:hover { transform: translateY(-4px); box-shadow: var(--bv-shadow); }
.bv-card__media { position: relative; }
.bv-card__img { margin: 0; overflow: hidden; }
.bv-card__img img { transition: transform 0.5s ease; }
.bv-card:hover .bv-card__img img { transform: scale(1.04); }
.bv-card__price { position: absolute; left: 12px; bottom: 12px; margin: 0; background: var(--bv-navy); color: #fff; padding: 6px 10px; border-radius: 10px; font-size: 0.875rem; font-weight: 800; }
.bv-card__body { padding: 16px 18px 20px; display: flex; flex-direction: column; gap: 6px; }
.bv-card__body > * { margin: 0; }
.bv-card__zona { font-size: 0.75rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--bv-ocean); }
.bv-card__title { font-size: 1.0625rem; line-height: 1.3; letter-spacing: -0.01em; }
.bv-card__title a { color: var(--bv-navy); }
.bv-card__specs { font-size: 0.8125rem; color: var(--bv-muted); }
.has-ice-background-color .bv-card { box-shadow: none; }
.bv-more { margin-top: var(--wp--preset--spacing--40); }
.bv-more__count { margin: 0; color: var(--bv-muted); }
.bv-more__count b { color: var(--bv-navy); font-size: 1.5rem; }

/* ---------- Investire ---------- */
.bv-invest { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 18px; margin-top: var(--wp--preset--spacing--40); }
.bv-invest__card { display: flex; flex-direction: column; gap: 12px; padding: 28px; border: 1px solid var(--bv-line); border-radius: var(--bv-radius); color: var(--bv-navy); transition: border-color 0.2s, box-shadow 0.2s; }
.bv-invest__card:hover { border-color: var(--bv-sky); box-shadow: var(--bv-shadow); color: var(--bv-navy); }
.bv-invest__card b { font-size: 1.375rem; letter-spacing: -0.02em; }
.bv-invest__card span:not(.bv-invest__icon) { color: var(--bv-muted); line-height: 1.55; }
.bv-invest__card em { font-style: normal; font-weight: 800; color: var(--bv-ocean); margin-top: auto; }
.bv-invest__icon { width: 52px; height: 52px; border-radius: 16px; background: var(--bv-ice); display: inline-flex; align-items: center; justify-content: center; }
.bv-invest__icon svg { width: 26px; height: 26px; fill: none; stroke: var(--bv-ocean); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.bv-invest__card--ocean { background: var(--bv-ocean); border-color: var(--bv-ocean); color: #fff; }
.bv-invest__card--ocean:hover { color: #fff; }
.bv-invest__card--ocean span:not(.bv-invest__icon), .bv-invest__card--ocean em { color: #e3eefa; }
.bv-invest__card--ocean .bv-invest__icon { background: rgba(255, 255, 255, 0.16); }
.bv-invest__card--ocean .bv-invest__icon svg { stroke: #fff; }

.bv-calc { margin-top: 18px; display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 18px; align-items: end; padding: 28px; border-radius: var(--bv-radius); background: var(--bv-navy); color: #fff; }
.bv-calc__intro { display: flex; flex-direction: column; gap: 4px; }
.bv-calc__intro b { font-size: 1.375rem; }
.bv-calc__intro span, .bv-calc label span, .bv-calc__result span, .bv-calc__result small { font-size: 0.8125rem; font-weight: 700; color: var(--bv-mist); }
.bv-calc label { display: flex; flex-direction: column; gap: 6px; }
.bv-calc input { height: 48px; border: 0; border-radius: 12px; padding: 0 12px; font: inherit; font-weight: 700; color: var(--bv-navy); }
.bv-calc__result { display: flex; flex-direction: column; gap: 2px; }
.bv-calc__result b { font-size: 2.25rem; line-height: 1.1; color: var(--bv-sky); }

/* ---------- Boa Vista NOW ---------- */
.bv-now { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 14px; }
.bv-tile { display: flex; flex-direction: column; justify-content: space-between; gap: 12px; min-height: 200px; padding: 22px; border-radius: var(--bv-radius); background: var(--bv-ice); color: var(--bv-navy); box-sizing: border-box; }
.bv-tile--dark { background: var(--bv-navy); color: #fff; }
.bv-tile--ocean { background: var(--bv-ocean); color: #fff; }
.bv-tile__row { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.bv-tile__label { font-weight: 700; }
.bv-tile__big { font-size: 3.5rem; font-weight: 800; letter-spacing: -0.04em; line-height: 1; }
.bv-tile__mid { font-size: 1.75rem; font-weight: 800; letter-spacing: -0.02em; line-height: 1.1; }
.bv-tile__note { font-size: 0.8125rem; color: var(--bv-muted); }
.bv-tile__link { font-size: 0.875rem; font-weight: 800; color: var(--bv-ocean); }
.bv-tile--ocean .bv-tile__link { color: #fff; }
.bv-wind { display: flex; align-items: center; gap: 12px; color: var(--bv-ocean); }
.bv-wind .bv-tile__mid { color: var(--bv-navy); }
.bv-days { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); text-align: center; font-size: 0.75rem; color: var(--bv-mist); }
.bv-days span { display: flex; flex-direction: column; }
.bv-days b { color: #fff; font-size: 0.875rem; }
.bv-list { margin: 0; display: flex; flex-direction: column; gap: 8px; }
.bv-list div { display: flex; justify-content: space-between; }
.bv-list dt { color: var(--bv-muted); }
.bv-list dd { margin: 0; font-weight: 800; }
.bv-pill { padding: 5px 10px; border-radius: 999px; font-size: 0.75rem; font-weight: 800; background: #fff; }
.bv-pill--good { color: #116b3a; }
.bv-pill--ok { color: #8a4a06; }
.bv-pill--bad { color: #9b1c1c; }
.bv-now__source, .bv-now__offline { margin-top: 12px; font-size: 0.75rem; color: var(--bv-muted); }

/* ---------- News ---------- */
.bv-post { display: flex; flex-direction: column; gap: 8px; }
.bv-post > * { margin: 0; }
.bv-post__img { margin: 0 0 6px; border-radius: 20px; overflow: hidden; }
.bv-post__img img { transition: transform 0.5s ease; }
.bv-post:hover .bv-post__img img { transform: scale(1.04); }
.bv-post__cat, .bv-post__cat a { font-size: 0.75rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--bv-ocean); }
.bv-post__title { font-size: 1.1875rem; line-height: 1.3; letter-spacing: -0.01em; }
.bv-post__title a { color: var(--bv-navy); }
.bv-pagination { margin-top: var(--wp--preset--spacing--50); gap: 6px; }
.bv-pagination .page-numbers { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; border-radius: 12px; background: var(--bv-ice); color: var(--bv-navy); font-weight: 700; }
.bv-pagination .page-numbers.current { background: var(--bv-navy); color: #fff; }

/* ---------- Pagine e articoli ---------- */
.bv-page-title { font-size: var(--wp--preset--font-size--x-large); }
.bv-meta { gap: 12px; align-items: center; }
.bv-content { font-size: 1.0625rem; }
.bv-content img { border-radius: 16px; }
.bv-content h2 { font-size: 1.75rem; margin-top: 2.2em; }
.bv-content h3 { margin-top: 1.8em; }

/* ---------- Scheda immobile ---------- */
.bv-crumbs { gap: 8px; font-size: 0.875rem; font-weight: 700; color: var(--bv-muted); }
.bv-crumbs > * { margin: 0; }
.bv-crumbs > *:not(:first-child)::before { content: "›"; margin-right: 8px; color: var(--bv-muted); }
.bv-immobile__title { font-size: clamp(1.75rem, 3.6vw, 2.75rem); max-width: 22ch; margin-block: 0.4rem 1.5rem; }
.bv-facts { position: sticky; top: 96px; display: flex; flex-direction: column; gap: 14px; padding: 26px; border-radius: var(--bv-radius); background: #fff; border: 1px solid var(--bv-line); box-shadow: var(--bv-shadow); }
.bv-facts > * { margin: 0; }
.bv-facts__stato { align-self: flex-start; padding: 5px 12px; border-radius: 999px; background: #ddf5e6; color: #116b3a; font-size: 0.8125rem; font-weight: 800; }
.bv-facts__price { font-size: 2.25rem; font-weight: 800; letter-spacing: -0.03em; line-height: 1; }
.bv-facts__list { margin: 0; display: flex; flex-direction: column; }
.bv-facts__list div { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--bv-line); }
.bv-facts__list dt { color: var(--bv-muted); }
.bv-facts__list dd { margin: 0; font-weight: 700; text-align: right; }
.bv-facts__buttons { gap: 8px; }
.bv-facts__note { font-size: 0.75rem; color: var(--bv-muted); }
.bv-btn { display: flex; align-items: center; justify-content: center; min-height: 50px; border-radius: 14px; font-weight: 800; }
.bv-btn--wa { background: var(--bv-navy); color: #fff; }
.bv-btn--wa:hover { background: var(--bv-ocean); color: #fff; }

/* ---------- Footer ---------- */
.bv-footer__list { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.bv-footer__legal { margin-top: var(--wp--preset--spacing--50); padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, 0.12); color: var(--bv-sky); }


/* =========================================================
   Sezione Investire
   ========================================================= */
.page-template-page-wide .wp-site-blocks main > * + * { margin-block-start: 0; }
.bv-section { padding-block: var(--wp--preset--spacing--60); }
.bv-section--band { padding-block: var(--wp--preset--spacing--60); }
.bv-lead { font-size: 1.1875rem; line-height: 1.6; color: var(--bv-muted); max-width: 60ch; }
.bv-center { text-align: center; margin-top: var(--wp--preset--spacing--40); font-weight: 700; }
.bv-eyebrow--light { color: var(--bv-sky); }
.bv-render-note { font-size: 0.8125rem; color: var(--bv-muted); margin-top: 8px; }

/* Sottomenu */
.bv-subnav { position: sticky; top: 71px; z-index: 40; background: rgba(255,255,255,0.95); backdrop-filter: blur(10px); border-bottom: 1px solid var(--bv-line); margin-block: 0 !important; }
.bv-subnav__inner { max-width: 1240px; margin: 0 auto; padding: 10px 1.5rem; display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.bv-subnav__inner::-webkit-scrollbar { display: none; }
.bv-subnav a { flex: none; display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border-radius: 12px; font-size: 0.875rem; font-weight: 700; color: var(--bv-deep); white-space: nowrap; }
.bv-subnav a:hover { background: var(--bv-ice); color: var(--bv-navy); }
.bv-subnav a.is-active { background: var(--bv-navy); color: #fff; }
.bv-subnav a.bv-subnav__cta { margin-left: auto; background: var(--bv-ocean); color: #fff; }
.bv-subnav a.bv-subnav__cta:hover { background: var(--bv-navy); color: #fff; }

/* Pulsanti */
.bv-btn { padding: 0 24px; text-align: center; transition: background 0.2s, color 0.2s, transform 0.2s; }
.bv-btn:hover { transform: translateY(-1px); }
.bv-btn--light { background: #fff; color: var(--bv-navy); }
.bv-btn--light:hover { background: var(--bv-ice); color: var(--bv-navy); }
.bv-btn--ghost { border: 1.5px solid rgba(255,255,255,0.7); color: #fff; }
.bv-btn--ghost:hover { background: rgba(255,255,255,0.12); color: #fff; }
.bv-btn--dark { background: var(--bv-navy); color: #fff; }
.bv-btn--dark:hover { background: var(--bv-ocean); color: #fff; }
.bv-btn--outline { border: 1.5px solid var(--bv-line); color: var(--bv-navy); background: #fff; }
.bv-btn--outline:hover { border-color: var(--bv-ocean); color: var(--bv-navy); }

/* Hero con immagine */
.bv-ihero { position: relative; min-height: 640px; display: flex; align-items: flex-end; color: #fff; overflow: hidden; background: var(--bv-navy); margin-block: 0 !important; }
.bv-ihero--short { min-height: 520px; }
.bv-ihero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.02); animation: bv-zoom 18s ease-out forwards; }
@keyframes bv-zoom { to { transform: scale(1.1); } }
.bv-ihero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(8, 28, 56, 0.85) 0%, rgba(8, 28, 56, 0.35) 55%, rgba(8, 28, 56, 0.1) 100%); }
.bv-ihero__inner { position: relative; z-index: 1; width: 100%; max-width: 1240px; margin: 0 auto; padding: 120px 1.5rem 64px; box-sizing: border-box; }
.bv-ihero h1, .bv-ihero h2 { color: #fff; font-size: clamp(2.25rem, 5.2vw, 4.25rem); max-width: 18ch; margin: 0.5rem 0 1rem; }
.bv-ihero__lead { font-size: 1.1875rem; line-height: 1.6; max-width: 58ch; color: #e3eefa; margin: 0; }
.bv-ihero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.bv-chips--light .bv-chip { background: rgba(8, 28, 56, 0.55); border-color: rgba(255,255,255,0.35); color: #fff; backdrop-filter: blur(6px); }

/* Numeri */
.bv-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1px; margin-top: -48px !important; position: relative; z-index: 2; background: var(--bv-line); border-radius: var(--bv-radius); overflow: hidden; box-shadow: var(--bv-shadow); }
.bv-stats div { background: #fff; padding: 24px; display: flex; flex-direction: column; gap: 4px; }
.bv-stats b { font-size: clamp(1.75rem, 3vw, 2.5rem); font-weight: 800; letter-spacing: -0.03em; color: var(--bv-navy); line-height: 1.05; }
.bv-stats span { font-size: 0.875rem; color: var(--bv-muted); }

/* Due formule */
.bv-duo { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 18px; margin-top: var(--wp--preset--spacing--40); }
.bv-duo__card { display: flex; flex-direction: column; gap: 12px; padding: 32px; border-radius: var(--bv-radius); border: 1px solid var(--bv-line); background: #fff; color: var(--bv-navy); transition: transform 0.2s, box-shadow 0.2s; }
.bv-duo__card:hover { transform: translateY(-3px); box-shadow: var(--bv-shadow); color: var(--bv-navy); }
.bv-duo__card b { font-size: 1.625rem; letter-spacing: -0.02em; line-height: 1.15; }
.bv-duo__card p { margin: 0; color: var(--bv-muted); }
.bv-duo__card em { font-style: normal; font-weight: 800; color: var(--bv-ocean); margin-top: auto; }
.bv-duo__tag { align-self: flex-start; padding: 6px 12px; border-radius: 999px; background: var(--bv-ice); color: var(--bv-ocean); font-size: 0.8125rem; font-weight: 800; }
.bv-duo__card--accent { background: var(--bv-navy); border-color: var(--bv-navy); color: #fff; }
.bv-duo__card--accent:hover { color: #fff; }
.bv-duo__card--accent p { color: var(--bv-mist); }
.bv-duo__card--accent em { color: var(--bv-sky); }
.bv-duo__card--accent .bv-duo__tag { background: rgba(255,255,255,0.12); color: var(--bv-sky); }

/* Liste con spunte */
.bv-ticks, .bv-dots { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.bv-ticks li, .bv-dots li { position: relative; padding-left: 30px; line-height: 1.5; }
.bv-ticks li::before { content: ""; position: absolute; left: 0; top: 2px; width: 20px; height: 20px; border-radius: 50%; background: var(--bv-sky) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B2545' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / 12px no-repeat; }
.bv-ticks--dark li::before { background-color: var(--bv-ice); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B5FA8' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E"); }
.bv-dots li::before { content: ""; position: absolute; left: 6px; top: 9px; width: 8px; height: 8px; border-radius: 50%; background: var(--bv-muted); }

/* Blocchi immagine + testo */
.bv-feature { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: clamp(24px, 5vw, 64px); align-items: center; padding-block: var(--wp--preset--spacing--50); }
.bv-feature__media { border-radius: 30px; overflow: hidden; aspect-ratio: 4 / 3; background: var(--bv-ice); }
.bv-feature__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.bv-feature:hover .bv-feature__media img { transform: scale(1.03); }
.bv-feature__text { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.bv-feature__text h2, .bv-feature__text p { margin: 0; }
.bv-feature__text > p:not(.bv-eyebrow) { font-size: 1.0625rem; color: var(--bv-muted); }
.bv-feature--reverse .bv-feature__media { order: 2; }
.bv-keyfacts { margin: 6px 0 8px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px; width: 100%; }
.bv-keyfacts div { display: flex; flex-direction: column; border-top: 1px solid var(--bv-line); padding-top: 10px; }
.bv-keyfacts dt { font-size: 0.8125rem; color: var(--bv-muted); }
.bv-keyfacts dd { margin: 0; font-size: 1.25rem; font-weight: 800; letter-spacing: -0.02em; }
.bv-keyfacts--card { background: var(--bv-ice); border-radius: var(--bv-radius); padding: 28px; box-sizing: border-box; align-self: start; }
.bv-keyfacts--card div { border-color: #d6e4f3; }

.bv-split { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: clamp(24px, 5vw, 64px); padding-block: var(--wp--preset--spacing--60); align-items: start; }
.bv-split h2 { margin-top: 0.4rem; }
.bv-quote { background: var(--bv-navy); color: #fff; border-radius: var(--bv-radius); padding: 36px; }
.bv-quote p { font-size: 1.375rem; font-weight: 700; line-height: 1.4; letter-spacing: -0.01em; margin: 0 0 16px; }
.bv-quote span { color: var(--bv-sky); font-weight: 700; font-size: 0.875rem; }

/* Motivi */
.bv-reasons { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 24px; margin-top: var(--wp--preset--spacing--40); }
.bv-reasons b { display: block; font-size: 1.125rem; margin-bottom: 6px; }
.bv-reasons p { margin: 0; color: var(--bv-muted); }
.bv-reasons--cards { padding-block: var(--wp--preset--spacing--50); }
.bv-reasons--cards div { background: var(--bv-ice); border-radius: var(--bv-radius); padding: 24px; }

/* Galleria render */
.bv-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 200px; gap: 12px; padding-top: var(--wp--preset--spacing--40); }
.bv-gallery figure { position: relative; margin: 0; border-radius: 18px; overflow: hidden; background: var(--bv-ice); }
.bv-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.bv-gallery figure:hover img { transform: scale(1.05); }
.bv-gallery figcaption { position: absolute; left: 10px; bottom: 10px; padding: 5px 10px; border-radius: 10px; background: rgba(8,28,56,0.65); color: #fff; font-size: 0.75rem; font-weight: 700; }
.bv-gallery__big { grid-column: span 2; grid-row: span 2; }
.bv-gallery figure:nth-child(n+6) { grid-column: span 2; }

/* Passi */
.bv-steps { padding-block: var(--wp--preset--spacing--60); }
.bv-steps ol { list-style: none; counter-reset: step; margin: var(--wp--preset--spacing--40) 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; }
.bv-steps li { counter-increment: step; display: flex; flex-direction: column; gap: 8px; padding: 24px; border-radius: var(--bv-radius); border: 1px solid var(--bv-line); }
.bv-steps li::before { content: counter(step, decimal-leading-zero); font-weight: 800; color: var(--bv-ocean); font-size: 0.875rem; }
.bv-steps li b { font-size: 1.125rem; }
.bv-steps li span { color: var(--bv-muted); font-size: 0.9375rem; line-height: 1.5; }

/* Cronologia */
.bv-timeline { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 3px solid var(--bv-line); margin-bottom: var(--wp--preset--spacing--50) !important; }
.bv-timeline div { position: relative; padding: 24px 16px 0 0; display: flex; flex-direction: column; gap: 4px; }
.bv-timeline div::before { content: ""; position: absolute; top: -11px; left: 0; width: 18px; height: 18px; border-radius: 50%; background: #fff; border: 3px solid var(--bv-line); }
.bv-timeline .is-done::before { background: var(--bv-ocean); border-color: var(--bv-ocean); }
.bv-timeline .is-now::before { background: #fff; border-color: var(--bv-ocean); box-shadow: 0 0 0 6px rgba(27,95,168,0.15); }
.bv-timeline b { font-size: 1.125rem; }
.bv-timeline span { color: var(--bv-muted); }

/* Pro e contro */
.bv-honest { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 18px; padding-bottom: var(--wp--preset--spacing--50); }
.bv-honest > div { padding: 28px; border-radius: var(--bv-radius); background: var(--bv-ice); }
.bv-honest h3 { margin-top: 0; }

/* Stampa */
.bv-press { padding-block: var(--wp--preset--spacing--50); text-align: center; }
.bv-press ul { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 36px; }
.bv-press li { font-size: clamp(1rem, 2vw, 1.375rem); font-weight: 800; letter-spacing: -0.01em; color: var(--bv-deep); opacity: 0.75; }

/* FAQ */
.bv-faq { padding-block: var(--wp--preset--spacing--50); max-width: 860px; }
.bv-faq h2 { margin-bottom: var(--wp--preset--spacing--40); }
.bv-faq details { border-bottom: 1px solid var(--bv-line); }
.bv-faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 16px; padding: 20px 0; font-weight: 700; font-size: 1.0625rem; }
.bv-faq summary::-webkit-details-marker { display: none; }
.bv-faq summary::after { content: "+"; font-size: 1.5rem; line-height: 1; color: var(--bv-ocean); transition: transform 0.2s; }
.bv-faq details[open] summary::after { transform: rotate(45deg); }
.bv-faq details p { margin: 0 0 20px; color: var(--bv-muted); }

/* Testate pagina */
.bv-pagehead { padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40); }
.bv-pagehead h1 { font-size: clamp(2.25rem, 5vw, 3.75rem); max-width: 20ch; margin: 0.5rem 0 1rem; }

/* Confronto */
.bv-compare { border: 1px solid var(--bv-line); border-radius: var(--bv-radius); overflow: hidden; }
.bv-compare__row { display: grid; grid-template-columns: 1fr 1.3fr 1.3fr; }
.bv-compare__row > * { padding: 16px 20px; border-top: 1px solid var(--bv-line); }
.bv-compare__row > *:nth-child(3) { background: var(--bv-ice); font-weight: 600; }
.bv-compare__row [role="rowheader"] { font-weight: 700; color: var(--bv-muted); }
.bv-compare__head > * { border-top: 0; font-weight: 800; font-size: 1.0625rem; color: var(--bv-navy); }
.bv-compare__head > *:nth-child(3) { background: var(--bv-navy); color: #fff; }
.bv-profiles { padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40); }

/* Storia e persona */
.bv-story { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0; border-top: 3px solid var(--bv-line); }
.bv-story div { position: relative; padding: 28px 20px 0 0; }
.bv-story div::before { content: ""; position: absolute; top: -11px; left: 0; width: 18px; height: 18px; border-radius: 50%; background: var(--bv-ocean); }
.bv-story b { color: var(--bv-ocean); font-weight: 800; font-size: 1.5rem; letter-spacing: -0.02em; }
.bv-story h3 { margin: 6px 0; }
.bv-story p { margin: 0; color: var(--bv-muted); }
.bv-person { display: grid; grid-template-columns: minmax(200px, 320px) 1fr; gap: clamp(24px, 5vw, 56px); align-items: center; padding-block: var(--wp--preset--spacing--60); }
.bv-person img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 30px; background: var(--bv-ice); }
.bv-person h2 { margin: 0.3rem 0 0.8rem; }

/* CTA con modulo */
.bv-cta { box-shadow: 0 24px 60px rgba(11, 37, 69, 0.16); border: 1px solid var(--bv-line); display: grid; grid-template-columns: 1fr 1fr; grid-template-areas: "media form" "text form"; gap: 0; border-radius: 32px; overflow: hidden; background: var(--bv-navy); color: #fff; }
.bv-cta__media { grid-area: media; min-height: 240px; }
.bv-cta__media img { width: 100%; height: 100%; object-fit: cover; }
.bv-cta__text { grid-area: text; padding: 32px 40px 40px; display: flex; flex-direction: column; gap: 16px; }
.bv-cta__text h2 { color: #fff; margin: 0; font-size: clamp(1.75rem, 3.2vw, 2.5rem); }
.bv-cta__text p { margin: 0; }
.bv-cta__alt { color: var(--bv-mist); font-size: 0.9375rem; }
.bv-cta__alt a { color: #fff; font-weight: 700; }
.bv-cta__form { grid-area: form; padding: 32px; background: #fff; color: var(--bv-navy); display: flex; align-items: center; }
.bv-cta__form .bv-form { width: 100%; }

/* Modulo */
.bv-form { display: flex; flex-direction: column; gap: 14px; }
.bv-form__title { font-size: 1.5rem; letter-spacing: -0.02em; }
.bv-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.bv-form__grid label { display: flex; flex-direction: column; gap: 6px; font-size: 0.8125rem; font-weight: 700; color: var(--bv-muted); }
.bv-form__full { grid-column: 1 / -1; }
.bv-form input:not([type="checkbox"]), .bv-form select, .bv-form textarea { width: 100%; box-sizing: border-box; min-height: 48px; padding: 10px 12px; border: 1px solid #cfdceb; border-radius: 12px; font: inherit; font-size: 1rem; font-weight: 500; color: var(--bv-navy); background: #fff; }
.bv-form input:focus, .bv-form select:focus, .bv-form textarea:focus { outline: 2px solid var(--bv-sky); outline-offset: 1px; border-color: var(--bv-ocean); }
.bv-form__consent { display: flex; gap: 10px; align-items: flex-start; font-size: 0.8125rem; color: var(--bv-muted); line-height: 1.45; }
.bv-form__consent input { margin-top: 2px; width: 18px; height: 18px; accent-color: var(--bv-ocean); flex: none; }
.bv-form__submit { min-height: 54px; border: 0; border-radius: 14px; background: var(--bv-ocean); color: #fff; font: inherit; font-size: 1rem; font-weight: 800; cursor: pointer; transition: background 0.2s; }
.bv-form__submit:hover { background: var(--bv-navy); }
.bv-form__note { margin: 0; font-size: 0.75rem; color: var(--bv-muted); }
.bv-form__error { margin: 0; padding: 10px 12px; border-radius: 10px; background: #fde8e8; color: #9b1c1c; font-weight: 700; font-size: 0.875rem; }
.bv-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.bv-form--done { padding: 8px 0; }
.bv-form--done b { font-size: 1.5rem; }
.bv-form--done p { color: var(--bv-muted); }

/* Pagina richiesta */
.bv-request { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: clamp(24px, 5vw, 64px); padding-block: var(--wp--preset--spacing--60); align-items: start; }
.bv-request h1 { font-size: clamp(2.5rem, 6vw, 4.5rem); margin: 0.4rem 0 1rem; }
.bv-next { list-style: none; counter-reset: n; margin: 28px 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.bv-next li { counter-increment: n; display: grid; grid-template-columns: 40px 1fr; column-gap: 14px; }
.bv-next li::before { content: counter(n); grid-row: span 2; width: 40px; height: 40px; border-radius: 12px; background: var(--bv-ice); color: var(--bv-ocean); font-weight: 800; display: flex; align-items: center; justify-content: center; }
.bv-next span { color: var(--bv-muted); }
.bv-request__direct { display: flex; flex-wrap: wrap; gap: 10px; }
.bv-request__form { padding: 32px; border-radius: 28px; border: 1px solid var(--bv-line); box-shadow: var(--bv-shadow); background: #fff; }

@media (max-width: 781px) {
	.bv-subnav { top: 64px; }
	.bv-ihero { min-height: 560px; }
	.bv-ihero__inner { padding-bottom: 72px; }
	.bv-stats { margin-top: -32px !important; }
	.bv-feature--reverse .bv-feature__media { order: 0; }
	.bv-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 150px; }
	.bv-timeline { grid-template-columns: 1fr; border-top: 0; border-left: 3px solid var(--bv-line); padding-left: 20px; }
	.bv-timeline div { padding: 0 0 24px; }
	.bv-timeline div::before { top: 2px; left: -31px; }
	.bv-compare__row { grid-template-columns: 1fr 1fr; }
	.bv-compare__row [role="rowheader"] { grid-column: 1 / -1; padding-bottom: 0; background: #fff; }
	.bv-compare__row [role="rowheader"] + * { border-top: 0; }
	.bv-compare__row [role="rowheader"] ~ * { border-top: 0; }
	.bv-compare__head > *:first-child { display: none; }
	.bv-person { grid-template-columns: 1fr; }
	.bv-person img { max-width: 260px; }
	.bv-cta { grid-template-columns: 1fr; grid-template-areas: "media" "text" "form"; }
	.bv-cta__text { padding: 28px 24px; }
	.bv-cta__form { padding: 24px; }
	.bv-form__grid { grid-template-columns: 1fr; }
	.bv-request__form { padding: 22px; }
}

/* ---------- Barra app (solo telefono) ---------- */
.bv-appbar { display: none; }

@media (max-width: 781px) {
	.bv-header .bv-header__cta .wp-block-button__link { padding: 0.6rem 0.9rem; font-size: 0.8125rem; white-space: nowrap; }
	.bv-logo { gap: 8px; }
	.bv-logo__mark { width: 40px; height: 40px; }
	.bv-logo__text { font-size: 0.875rem; font-weight: 700; letter-spacing: 0; color: var(--bv-deep); }
	.bv-header > .alignwide { gap: 8px !important; }
	.bv-header .bv-social { margin-left: auto; gap: 2px; }
	.bv-header .bv-social__link { width: 34px; height: 34px; }
	/* Telefono: webcam intera in alto, dati in una riga sotto */
	.bv-cam { min-height: 0; display: flex; flex-direction: column; border-radius: 24px; }
	.bv-cam__link { display: block; aspect-ratio: 16 / 10; position: relative; }
	.bv-cam::after { display: none; }
	.bv-cam__data { position: static; padding: 8px; gap: 6px; background: var(--bv-navy); }
	.bv-cam__cell { padding: 8px 6px; background: rgba(255, 255, 255, 0.08); backdrop-filter: none; align-items: center; text-align: center; }
	.bv-cam__cell b { font-size: 1.0625rem; }
	.bv-cam__data { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.bv-facts { position: static; }
	body { padding-bottom: 80px; }
	.bv-appbar {
		position: fixed; z-index: 60; left: 12px; right: 12px; bottom: 12px;
		display: flex; justify-content: space-between; gap: 2px;
		padding: 5px; border-radius: 20px; background: var(--bv-navy);
		box-shadow: 0 14px 34px rgba(11, 37, 69, 0.3);
		margin-bottom: env(safe-area-inset-bottom, 0px);
	}
	.bv-appbar__item { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; padding: 4px; border: 0; border-radius: 15px; background: transparent; color: #fff; font: inherit; font-size: 0.6875rem; font-weight: 700; line-height: 1.1; min-height: 42px; cursor: pointer; }
	.bv-appbar__item svg { width: 20px; height: 20px; flex: none; }
	.bv-appbar__item:hover { color: #fff; }
	.bv-appbar__item.is-active { background: #fff; color: var(--bv-navy); }
	.bv-appbar__item[aria-expanded="true"] { background: var(--bv-sky); color: var(--bv-navy); }

	/* Su telefono il menu dell'intestazione lascia il posto alla barra in basso e al pannello */
	.bv-header .bv-nav { display: none; }
}

/* ---------- Pannello menu (telefono) ---------- */
.bv-header__menu { display: none; align-items: center; justify-content: center; width: 44px; height: 44px; flex: none; border: 1px solid var(--bv-line); border-radius: 14px; background: #fff; color: var(--bv-navy); cursor: pointer; }
.bv-sheet { position: fixed; inset: auto 0 0 0; width: 100%; max-width: 560px; max-height: none; height: auto; margin: 0 auto; padding: 0; border: 0; background: transparent; overflow: visible; }
.bv-sheet::backdrop { background: rgba(11, 37, 69, 0.5); }
.bv-sheet[open] { animation: bv-sheet-up 0.32s cubic-bezier(0.2, 0.9, 0.25, 1); }
.bv-sheet[open]::backdrop { animation: bv-fade 0.25s ease; }
.bv-sheet.is-closing { animation: bv-sheet-down 0.22s ease-in forwards; }
.bv-sheet__panel {
	max-height: calc(100dvh - 48px); overflow-y: auto; overscroll-behavior: contain; box-sizing: border-box;
	padding: 6px 16px calc(18px + env(safe-area-inset-bottom, 0px));
	border-radius: 26px 26px 0 0; background: #fff; color: var(--bv-navy);
	box-shadow: 0 -18px 50px rgba(11, 37, 69, 0.25);
}
.bv-sheet__handle { position: sticky; top: -6px; z-index: 1; display: flex; justify-content: center; align-items: center; height: 34px; margin: -6px -16px 6px; background: #fff; touch-action: none; cursor: grab; }
.bv-sheet__handle span { width: 42px; height: 5px; border-radius: 5px; background: var(--bv-mist); }
.bv-sheet__close { position: absolute; right: 10px; top: 4px; display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 0; border-radius: 12px; background: var(--bv-ice); color: var(--bv-navy); cursor: pointer; }
.bv-sheet__search { display: flex; align-items: center; gap: 10px; padding: 0 14px; margin-bottom: 8px; border-radius: 16px; background: var(--bv-ice); color: var(--bv-muted); }
.bv-sheet__search input { flex: 1; min-width: 0; min-height: 48px; border: 0; background: transparent; font: inherit; font-size: 1rem; color: var(--bv-navy); outline: none; }
.bv-sheet__nav { display: flex; flex-direction: column; }
.bv-sheet__row { display: flex; align-items: center; gap: 12px; box-sizing: border-box; height: 54px; margin: 0; padding: 0 4px; line-height: 1.2; text-decoration: none; border-bottom: 1px solid var(--bv-line); color: var(--bv-navy); font-weight: 700; font-size: 1.0625rem; list-style: none; cursor: pointer; }
.bv-sheet__row::-webkit-details-marker { display: none; }
.bv-sheet__row svg { color: var(--bv-ocean); flex: none; }
.bv-sheet__row svg:last-child { margin-left: auto; color: var(--bv-sky); transition: transform 0.2s; }
.bv-sheet__row:hover { color: var(--bv-navy); }
.bv-sheet__row.is-current span { color: var(--bv-ocean); }
.bv-sheet__group[open] > .bv-sheet__row { border-bottom-color: transparent; }
.bv-sheet__group[open] > .bv-sheet__row svg:last-child { transform: rotate(180deg); }
.bv-sheet__chips { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 0 14px 36px; border-bottom: 1px solid var(--bv-line); }
.bv-sheet__chips .bv-chip { min-height: 36px; background: var(--bv-ice); border-color: transparent; }
.bv-sheet__chips .bv-chip.is-active { background: var(--bv-navy); color: #fff; }
.bv-sheet__sell { display: flex; justify-content: center; align-items: center; min-height: 50px; margin-top: 16px; border-radius: 16px; background: var(--bv-orange); color: var(--bv-navy); font-weight: 800; }
.bv-sheet__sell:hover { background: #ffa04a; color: var(--bv-navy); }
.bv-sheet__live { margin: 12px 0 0; text-align: center; font-size: 0.8125rem; color: var(--bv-muted); }
html:has(.bv-sheet[open]) { overflow: hidden; }
.bv-sheet__ideas { display: none; }
.bv-sheet__ideas p { margin: 10px 4px 8px; font-size: 0.8125rem; font-weight: 700; color: var(--bv-muted); }
.bv-sheet__ideas .bv-sheet__chips { padding: 0 0 6px; border: 0; }
.bv-sheet.is-search .bv-sheet__ideas { display: block; }
.bv-sheet.is-search .bv-sheet__nav, .bv-sheet.is-search .bv-sheet__live { display: none; }
.bv-sheet__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 16px; }
.bv-sheet__actions .bv-sheet__sell { margin-top: 0; }
.bv-sheet__wa { display: flex; justify-content: center; align-items: center; gap: 8px; min-height: 50px; border-radius: 16px; background: var(--bv-navy); color: #fff; font-weight: 800; }
.bv-sheet__wa:hover { color: #fff; background: var(--bv-deep); }

/* Instagram e Facebook nell'intestazione */
.bv-social { display: flex; align-items: center; gap: 4px; }
.bv-social__link { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 12px; color: var(--bv-ocean); }
.bv-social__link:hover { background: var(--bv-ice); color: var(--bv-navy); }
@keyframes bv-sheet-up { from { transform: translateY(100%); } }
@keyframes bv-sheet-down { to { transform: translateY(100%); } }
@keyframes bv-fade { from { opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* =========================================================
   Mobile first: scheda immobile, barra d'azione, The View
   ========================================================= */
.bv-facts .bv-btn { width: 100%; box-sizing: border-box; }
.bv-facts .bv-btn + .bv-btn { margin-top: 8px; }

/* Riquadro The View */
.bv-xsell { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 0; margin-top: var(--wp--preset--spacing--60) !important; border-radius: var(--bv-radius); overflow: hidden; background: var(--bv-ice); }
.bv-xsell img { width: 100%; height: 100%; min-height: 220px; object-fit: cover; }
.bv-xsell__text { padding: 28px; display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.bv-xsell__text b { font-size: 1.375rem; letter-spacing: -0.02em; line-height: 1.2; }
.bv-xsell__text p { margin: 0; color: var(--bv-muted); }
.bv-xsell__text .bv-eyebrow { color: var(--bv-ocean); }

/* Barra d'azione (solo telefono) */
.bv-actionbar { display: none; }

@media (max-width: 781px) {
	/* Scheda immobile: foto, poi prezzo e contatti, poi descrizione */
	.bv-immobile__cols { gap: 20px !important; }
	.bv-immobile__main { display: contents; }
	.bv-immobile__img { order: 1; }
	.bv-immobile__side { order: 2; }
	.bv-immobile__content { order: 3; }
	.bv-immobile__title { font-size: 1.625rem; margin-bottom: 1rem; }
	.bv-facts { padding: 20px; box-shadow: none; }
	.bv-facts__price { font-size: 2rem; }
	.bv-facts__list div { padding: 8px 0; }

	.bv-xsell { grid-template-columns: 1fr; }
	.bv-xsell img { min-height: 180px; max-height: 220px; }
	.bv-xsell__text { padding: 22px; }
	.bv-xsell__text .bv-btn { width: 100%; box-sizing: border-box; }

	/* Barra d'azione al posto della barra app */
	body:has(.bv-actionbar) .bv-appbar { display: none; }
	.bv-actionbar {
		position: fixed; z-index: 61; left: 12px; right: 12px; bottom: 12px;
		display: flex; align-items: center; gap: 8px;
		padding: 8px 8px 8px 16px; border-radius: 22px; background: var(--bv-navy); color: #fff;
		box-shadow: 0 14px 34px rgba(11, 37, 69, 0.3);
		padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px));
	}
	.bv-actionbar__menu { flex: none; width: 40px; height: 48px; margin-left: -8px; border: 0; border-radius: 16px; background: rgba(255, 255, 255, 0.1); color: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
	.bv-actionbar__info { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.2; }
	.bv-actionbar__info b { font-size: 0.9375rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.bv-actionbar__info span { font-size: 0.75rem; color: var(--bv-sky); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.bv-actionbar__wa { flex: none; width: 44px; height: 48px; border-radius: 16px; background: var(--bv-sky); color: var(--bv-navy); display: inline-flex; align-items: center; justify-content: center; }
	.bv-actionbar__cta { flex: none; height: 48px; padding: 0 14px; border-radius: 16px; background: #fff; color: var(--bv-navy); font-weight: 800; font-size: 0.875rem; display: inline-flex; align-items: center; }
	.bv-actionbar__cta:hover, .bv-actionbar__wa:hover { color: var(--bv-navy); }

	/* Sottomenu Investire: la richiesta è già nella barra in basso */
	.bv-subnav a.bv-subnav__cta { display: none; }
	.bv-subnav__inner { padding-inline: 12px; }

	/* Moduli comodi col pollice: niente zoom automatico su iPhone */
	.bv-form input:not([type="checkbox"]), .bv-form select, .bv-form textarea, .bv-search select, .bv-ask input { font-size: 16px; }
	.bv-form__submit { min-height: 56px; }

	/* Pagine Investire più compatte */
	.bv-ihero h1 { font-size: 2.125rem; }
	.bv-ihero__lead { font-size: 1.0625rem; }
	.bv-ihero__actions .bv-btn { flex: 1; }
	.bv-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.bv-stats div { padding: 16px; }
	.bv-duo__card { padding: 24px; }
	.bv-feature { padding-block: var(--wp--preset--spacing--40); }
	.bv-feature__text .bv-btn { width: 100%; box-sizing: border-box; }
	.bv-keyfacts dd { font-size: 1.0625rem; }
	.bv-cta { border-radius: 24px; }
	.bv-cta__media { min-height: 180px; max-height: 220px; }
}

/* Testi degli annunci importati: titoli proporzionati */
.bv-immobile__content h2 { font-size: clamp(1.25rem, 2.4vw, 1.625rem); margin-top: 1.6em; }
.bv-immobile__content h3 { font-size: 1.125rem; }
.bv-immobile__content > :first-child { margin-top: 0; }
.bv-ihero__inner { text-shadow: 0 1px 12px rgba(8, 28, 56, 0.45); }
.bv-ihero__inner .bv-btn, .bv-ihero__inner .bv-chip { text-shadow: none; }
.bv-ihero .bv-eyebrow--light { color: #fff; opacity: 0.9; }

/* =========================================================
   Vendi casa
   ========================================================= */
.bv-btn--orange { background: var(--bv-orange); color: var(--bv-navy); }
.bv-btn--orange:hover { background: #ffa04a; color: var(--bv-navy); }
.bv-ihero--sell .bv-ihero__img { object-position: center 40%; }
.bv-pricing { padding-block: var(--wp--preset--spacing--60); scroll-margin-top: 90px; }
.bv-pricing__head { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; margin-bottom: var(--wp--preset--spacing--40); }
.bv-pricing__head h2 { margin: 0 0 12px; }
.bv-segment { display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 4px; padding: 4px; border-radius: 16px; background: var(--bv-ice); }
.bv-segment button { min-height: 44px; padding: 0 16px; border: 0; border-radius: 12px; background: transparent; color: var(--bv-deep); font: inherit; font-weight: 700; font-size: 0.875rem; cursor: pointer; }
.bv-segment button[aria-checked="true"] { background: var(--bv-navy); color: #fff; }
.bv-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 18px; align-items: stretch; }
.bv-plan { position: relative; display: flex; flex-direction: column; gap: 12px; padding: 30px; border-radius: var(--bv-radius); border: 1px solid var(--bv-line); background: #fff; }
.bv-plan > p { margin: 0; }
.bv-plan .bv-ticks { margin-bottom: 8px; }
.bv-plan .bv-btn { margin-top: auto; }
.bv-plan__name { font-size: 0.875rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--bv-ocean); }
.bv-plan__tag { font-size: 1.375rem; font-weight: 800; letter-spacing: -0.02em; line-height: 1.2; }
.bv-plan__price { display: flex; flex-direction: column; padding: 14px 0; border-block: 1px solid var(--bv-line); }
.bv-plan__price b { font-size: 2.5rem; font-weight: 800; letter-spacing: -0.03em; line-height: 1.1; }
.bv-plan__price span { font-size: 0.8125rem; color: var(--bv-muted); }
.bv-plan--top { background: var(--bv-navy); border-color: var(--bv-navy); color: #fff; box-shadow: var(--bv-shadow); }
.bv-plan--top .bv-plan__name { color: var(--bv-sky); }
.bv-plan--top .bv-plan__price { border-color: rgba(255, 255, 255, 0.15); }
.bv-plan--top .bv-plan__price span { color: var(--bv-mist); }
.bv-plan__badge { position: absolute; top: -12px; right: 24px; padding: 6px 12px; border-radius: 999px; background: var(--bv-orange); color: var(--bv-navy); font-size: 0.75rem; font-weight: 800; }
.bv-request--sell { scroll-margin-top: 80px; border-top: 1px solid var(--bv-line); }
.bv-request--sell h2 { margin: 0.4rem 0 0.8rem; }
.bv-actionbar--sell .bv-actionbar__cta { background: var(--bv-orange); }

@media (max-width: 781px) {
	.bv-segment { width: 100%; box-sizing: border-box; flex-wrap: nowrap; }
	.bv-segment button { flex: 1; padding: 0 6px; font-size: 0.75rem; line-height: 1.2; }
	.bv-plan { padding: 24px; }
	.bv-plan--top { order: -1; }
	.bv-plan .bv-btn { width: 100%; box-sizing: border-box; }
	.bv-request__direct .bv-btn { flex: 1; }
}

/* =========================================================
   Vacanze
   ========================================================= */
.bv-duo--top { margin-top: var(--wp--preset--spacing--50) !important; }
.bv-hotels { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 18px; padding-bottom: var(--wp--preset--spacing--50); }
.bv-hotel { display: flex; flex-direction: column; border-radius: var(--bv-radius); overflow: hidden; background: #fff; border: 1px solid var(--bv-line); color: var(--bv-navy); transition: transform 0.25s ease, box-shadow 0.25s ease; }
.bv-hotel:hover { transform: translateY(-4px); box-shadow: var(--bv-shadow); color: var(--bv-navy); }
.bv-hotel__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--bv-ice); }
.bv-hotel__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.bv-hotel:hover .bv-hotel__media img { transform: scale(1.04); }
.bv-hotel__badge { position: absolute; left: 12px; bottom: 12px; padding: 6px 10px; border-radius: 10px; background: var(--bv-navy); color: #fff; font-size: 0.75rem; font-weight: 800; }
.bv-hotel__body { padding: 18px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.bv-hotel__body b { font-size: 1.25rem; letter-spacing: -0.02em; }
.bv-hotel__body p { margin: 0; color: var(--bv-muted); font-size: 0.9375rem; line-height: 1.5; }
.bv-hotel__meta { margin-top: auto; padding-top: 10px; font-size: 0.8125rem; font-weight: 700; color: var(--bv-deep); }
.bv-section h2 { margin-top: 0.4rem; }
.bv-plan .bv-list { margin: 4px 0; }
.bv-plan .bv-list div { padding: 8px 0; border-bottom: 1px solid var(--bv-line); }
.bv-plan--top .bv-btn--light { margin-top: auto; }
@media (max-width: 781px) {
	.bv-hotels { grid-template-columns: 1fr; }
	.bv-hotel { flex-direction: row; }
	.bv-hotel__media { aspect-ratio: auto; width: 38%; flex: none; }
	.bv-hotel__badge { left: 8px; bottom: 8px; font-size: 0.6875rem; padding: 4px 8px; }
	.bv-hotel__body { padding: 14px; }
	.bv-hotel__body b { font-size: 1.0625rem; }
	.bv-hotel__body p { display: none; }
	.bv-form__grid input[type="date"] { min-height: 48px; }
}

/* =========================================================
   Scopri Boa Vista
   ========================================================= */
.bv-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: -40px !important; position: relative; z-index: 2; }
.bv-tile-img { position: relative; display: flex; align-items: flex-end; aspect-ratio: 4 / 3; border-radius: 20px; overflow: hidden; color: #fff; background: var(--bv-deep); box-shadow: var(--bv-shadow); }
.bv-tile-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.bv-tile-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(8, 28, 56, 0.8), rgba(8, 28, 56, 0) 60%); }
.bv-tile-img b { position: relative; z-index: 1; padding: 14px 16px; font-size: 1.0625rem; line-height: 1.2; letter-spacing: -0.01em; }
.bv-tile-img:hover { color: #fff; }
.bv-tile-img:hover img { transform: scale(1.06); }

.bv-facts-strip { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1px; margin-top: var(--wp--preset--spacing--50) !important; background: var(--bv-line); border: 1px solid var(--bv-line); border-radius: var(--bv-radius); overflow: hidden; }
.bv-facts-strip div { background: #fff; padding: 16px; display: flex; flex-direction: column; gap: 2px; }
.bv-facts-strip span { font-size: 0.75rem; color: var(--bv-muted); }
.bv-facts-strip b { font-size: 0.9375rem; }

.bv-gsec { padding-top: var(--wp--preset--spacing--60); scroll-margin-top: 80px; }
.bv-gsec__head { max-width: 760px; margin-bottom: var(--wp--preset--spacing--40); }
.bv-gsec__head h2 { margin: 0.3rem 0 0.6rem; }
.bv-gsec__head > p:not(.bv-eyebrow) { margin: 0; font-size: 1.0625rem; color: var(--bv-muted); }
.bv-gsec__soon { margin-top: 14px; font-size: 0.875rem; font-weight: 700; color: var(--bv-ocean); }

.bv-glinks { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.bv-glink { display: flex; align-items: center; gap: 14px; padding: 10px; border-radius: 18px; border: 1px solid var(--bv-line); background: #fff; color: var(--bv-navy); font-weight: 700; line-height: 1.3; transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s; }
.bv-glink:hover { border-color: var(--bv-sky); box-shadow: var(--bv-shadow); color: var(--bv-navy); transform: translateY(-2px); }
.bv-glink img, .bv-glink i { flex: none; width: 72px; height: 72px; border-radius: 12px; object-fit: cover; background: var(--bv-ice); }
.bv-glink span { flex: 1; }

.bv-beaches { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin-bottom: 16px; }
.bv-beaches div, .bv-season div { padding: 20px; border-radius: 18px; background: var(--bv-ice); }
.bv-beaches b, .bv-season b { display: block; font-size: 1.0625rem; margin-bottom: 4px; }
.bv-beaches p, .bv-season p { margin: 0; color: var(--bv-muted); font-size: 0.9375rem; line-height: 1.5; }
.bv-season { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; margin-bottom: 16px; }
.bv-season span { display: inline-block; margin-bottom: 8px; padding: 4px 10px; border-radius: 999px; background: #fff; color: var(--bv-ocean); font-size: 0.8125rem; font-weight: 800; }

.bv-now-link { display: flex; flex-direction: column; gap: 4px; margin-top: 14px; padding: 20px; border-radius: 18px; background: var(--bv-navy); color: #fff; }
.bv-now-link:hover { color: #fff; background: var(--bv-deep); }
.bv-now-link span { color: var(--bv-sky); font-weight: 600; }

@media (max-width: 781px) {
	.bv-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: -28px !important; }
	.bv-tile-img { border-radius: 16px; aspect-ratio: 1 / 1; }
	.bv-tile-img b { padding: 12px; font-size: 0.9375rem; }
	.bv-facts-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.bv-facts-strip div { padding: 12px; }
	.bv-glinks { grid-template-columns: 1fr; }
	.bv-glink img, .bv-glink i { width: 60px; height: 60px; }
}

/* =========================================================
   Guida pratica: mesi, checklist, servizi
   ========================================================= */
.bv-months { padding-bottom: var(--wp--preset--spacing--40); }
.bv-months__tabs { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding: 4px; margin-bottom: 18px; border-radius: 16px; background: var(--bv-ice); }
.bv-months__tabs::-webkit-scrollbar { display: none; }
.bv-months__tabs button { flex: 1 0 auto; min-width: 56px; min-height: 44px; border: 0; border-radius: 12px; background: transparent; color: var(--bv-deep); font: inherit; font-weight: 700; font-size: 0.875rem; cursor: pointer; }
.bv-months__tabs button[aria-selected="true"] { background: var(--bv-navy); color: #fff; }
.bv-month { padding: 28px; border-radius: var(--bv-radius); border: 1px solid var(--bv-line); background: #fff; box-shadow: var(--bv-shadow); }
.bv-month h3 { margin: 0 0 6px; font-size: 1.75rem; }
.bv-month__note { margin: 0 0 18px; color: var(--bv-muted); font-size: 1.0625rem; }
.bv-month__stats { margin: 0 0 18px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.bv-month__stats div { padding: 14px; border-radius: 14px; background: var(--bv-ice); }
.bv-month__stats dt { font-size: 0.75rem; color: var(--bv-muted); }
.bv-month__stats dd { margin: 0; font-size: 1.25rem; font-weight: 800; letter-spacing: -0.02em; }
.bv-month__att { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.bv-month__att li { padding: 8px 14px; border-radius: 999px; background: var(--bv-navy); color: #fff; font-size: 0.875rem; font-weight: 700; }
.bv-month__att li:first-child { background: var(--bv-ice); color: var(--bv-deep); }

.bv-checklist__count { display: inline-block; margin-top: 8px; padding: 6px 12px; border-radius: 999px; background: var(--bv-ice); color: var(--bv-ocean); font-weight: 800; font-size: 0.875rem; }
.bv-checklist { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 18px; }
.bv-checklist fieldset { margin: 0; padding: 22px; border: 1px solid var(--bv-line); border-radius: var(--bv-radius); display: flex; flex-direction: column; gap: 4px; }
.bv-checklist legend { padding: 0 6px; font-weight: 800; font-size: 0.8125rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--bv-ocean); }
.bv-checklist label { display: flex; gap: 14px; align-items: flex-start; padding: 12px 4px; border-bottom: 1px solid var(--bv-line); cursor: pointer; }
.bv-checklist label:last-child { border-bottom: 0; }
.bv-checklist input { flex: none; width: 24px; height: 24px; margin-top: 2px; accent-color: var(--bv-ocean); }
.bv-checklist span { display: block; color: var(--bv-muted); font-size: 0.9375rem; line-height: 1.5; }
.bv-checklist span b { display: block; margin-bottom: 2px; color: var(--bv-navy); font-size: 1rem; }
.bv-checklist input:checked + span b { text-decoration: line-through; text-decoration-color: var(--bv-sky); }

.bv-badge-trust { display: inline-block; margin-top: 10px; padding: 8px 14px; border-radius: 999px; background: var(--bv-navy); color: #fff; font-size: 0.8125rem; font-weight: 800; }
.bv-services { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.bv-service { display: flex; flex-direction: column; border-radius: var(--bv-radius); overflow: hidden; border: 1px solid var(--bv-line); background: #fff; color: var(--bv-navy); transition: transform 0.2s, box-shadow 0.2s; }
.bv-service:hover { transform: translateY(-3px); box-shadow: var(--bv-shadow); color: var(--bv-navy); }
.bv-service img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.bv-service div { padding: 18px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.bv-service b { font-size: 1.1875rem; }
.bv-service p { margin: 0; color: var(--bv-muted); font-size: 0.9375rem; line-height: 1.5; }
.bv-service em { margin-top: auto; padding-top: 6px; font-style: normal; font-weight: 800; color: var(--bv-ocean); }

.bv-plan-trip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 14px !important; }
.bv-plan-trip a { display: flex; flex-direction: column; gap: 4px; padding: 18px; border-radius: 18px; background: var(--bv-navy); color: #fff; }
.bv-plan-trip a:hover { background: var(--bv-deep); color: #fff; }
.bv-plan-trip b { font-size: 1.0625rem; }
.bv-plan-trip span { font-size: 0.875rem; color: var(--bv-sky); }

@media (max-width: 781px) {
	.bv-month { padding: 20px; }
	.bv-month h3 { font-size: 1.375rem; }
	.bv-month__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.bv-checklist { grid-template-columns: 1fr; }
	.bv-checklist fieldset { padding: 16px; }
	.bv-services { grid-template-columns: 1fr; }
	.bv-service { flex-direction: row; }
	.bv-service img { width: 34%; aspect-ratio: auto; flex: none; }
	.bv-service div { padding: 14px; }
	.bv-service p { font-size: 0.875rem; }
	.bv-plan-trip { grid-template-columns: 1fr; }
}

/* =========================================================
   Pesca
   ========================================================= */
.bv-ihero--fish { min-height: 720px; }
.bv-ihero--fish .bv-ihero__img { animation-duration: 24s; }

.bv-fishnow { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin-top: 18px !important; padding: 16px 20px; border-radius: 18px; background: var(--bv-navy); color: #fff; }
.bv-fishnow .bv-live { position: static; }
.bv-fishnow b { font-size: 1.125rem; }
.bv-fishnow span:not(.bv-live):not(.bv-live__dot) { color: var(--bv-sky); font-size: 0.9375rem; }
.bv-fishnow a { margin-left: auto; color: #fff; font-weight: 800; font-size: 0.875rem; }

.bv-manifesto { padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40); text-align: center; max-width: 860px; }
.bv-manifesto p { margin: 0 0 0.6em; font-size: clamp(1.375rem, 3.2vw, 2.25rem); font-weight: 700; line-height: 1.3; letter-spacing: -0.02em; color: var(--bv-muted); }
.bv-manifesto .bv-manifesto__strong { color: var(--bv-navy); font-weight: 800; }

.bv-trips { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 18px; }
.bv-trip { display: flex; flex-direction: column; border-radius: var(--bv-radius); overflow: hidden; background: #fff; border: 1px solid var(--bv-line); color: var(--bv-navy); transition: transform 0.25s, box-shadow 0.25s; }
.bv-trip:hover { transform: translateY(-4px); box-shadow: var(--bv-shadow); color: var(--bv-navy); }
.bv-trip__media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--bv-deep); }
.bv-trip__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; }
.bv-trip:hover .bv-trip__media img { transform: scale(1.05); }
.bv-trip__badge { position: absolute; left: 12px; top: 12px; padding: 6px 10px; border-radius: 10px; background: var(--bv-orange); color: var(--bv-navy); font-size: 0.75rem; font-weight: 800; }
.bv-trip__stato { position: absolute; right: 12px; top: 12px; padding: 6px 10px; border-radius: 10px; background: #fff; color: #9b1c1c; font-size: 0.75rem; font-weight: 800; }
.bv-trip__body { padding: 18px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.bv-trip__date { font-size: 0.8125rem; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; color: var(--bv-ocean); }
.bv-trip__body b { font-size: 1.1875rem; line-height: 1.25; letter-spacing: -0.01em; }
.bv-trip__meta { font-size: 0.8125rem; color: var(--bv-muted); }
.bv-trip__price { margin-top: auto; padding-top: 12px; border-top: 1px solid var(--bv-line); font-size: 1.375rem; font-weight: 800; letter-spacing: -0.02em; display: flex; flex-direction: column; }
.bv-trip__price small { font-size: 0.75rem; font-weight: 600; color: var(--bv-muted); letter-spacing: 0; }

.bv-techs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.bv-tech { position: relative; display: flex; flex-direction: column; justify-content: flex-end; aspect-ratio: 4 / 3; padding: 18px; border-radius: 22px; overflow: hidden; color: #fff; background: var(--bv-deep); }
.bv-tech img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s; }
.bv-tech::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(8,28,56,0.85), rgba(8,28,56,0) 65%); }
.bv-tech b, .bv-tech span { position: relative; z-index: 1; }
.bv-tech b { font-size: 1.25rem; letter-spacing: -0.01em; }
.bv-tech span { font-size: 0.875rem; color: var(--bv-mist); }
.bv-tech:hover { color: #fff; }
.bv-tech:hover img { transform: scale(1.06); }

.bv-fishes { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.bv-fishes a { display: flex; flex-direction: column; gap: 8px; color: var(--bv-navy); }
.bv-fishes img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 50%; border: 4px solid var(--bv-ice); transition: transform 0.3s; }
.bv-fishes a:hover img { transform: scale(1.05); }
.bv-fishes b { text-align: center; font-size: 0.9375rem; }

.bv-videos { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.bv-yt { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; padding: 0; border: 0; border-radius: 20px; overflow: hidden; background: #000; cursor: pointer; }
.bv-yt img { width: 100%; height: 100%; object-fit: cover; opacity: 0.85; transition: opacity 0.3s, transform 0.5s; }
.bv-yt:hover img { opacity: 1; transform: scale(1.03); }
.bv-yt__play { position: absolute; left: 50%; top: 50%; width: 68px; height: 68px; margin: -34px 0 0 -34px; border-radius: 50%; background: rgba(255,255,255,0.92); box-shadow: 0 10px 30px rgba(0,0,0,0.35); }
.bv-yt__play::after { content: ""; position: absolute; left: 27px; top: 21px; border-style: solid; border-width: 13px 0 13px 21px; border-color: transparent transparent transparent var(--bv-navy); }
.bv-yt__title { position: absolute; left: 14px; right: 14px; bottom: 12px; color: #fff; font-weight: 800; font-size: 0.9375rem; text-align: left; text-shadow: 0 1px 10px rgba(0,0,0,0.6); }
.bv-yt__frame { width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: 20px; }

.bv-catches { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 4px; margin-top: var(--wp--preset--spacing--60) !important; }
.bv-catches img { width: 100%; aspect-ratio: 1; object-fit: cover; }

.bv-boat { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: clamp(24px, 5vw, 56px); align-items: center; padding-block: var(--wp--preset--spacing--50); scroll-margin-top: 90px; }
.bv-boat__media { position: relative; border-radius: 28px; overflow: hidden; aspect-ratio: 4 / 3; background: var(--bv-ice); }
.bv-boat__media img { width: 100%; height: 100%; object-fit: cover; }
.bv-boat__text h2 { margin: 0.2rem 0 0.8rem; }
.bv-boat__text > p { color: var(--bv-muted); font-size: 1.0625rem; }
.bv-boat__text > p b { color: var(--bv-navy); }
.bv-boat--reverse .bv-boat__media { order: 2; }
.bv-specs { margin: 16px 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 20px; }
.bv-specs div { border-top: 1px solid var(--bv-line); padding-top: 8px; }
.bv-specs dt { font-size: 0.75rem; color: var(--bv-muted); }
.bv-specs dd { margin: 0; font-weight: 700; }

.bv-species { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.bv-species article { border-radius: var(--bv-radius); overflow: hidden; border: 1px solid var(--bv-line); background: #fff; scroll-margin-top: 90px; }
.bv-species img, .bv-species i { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; background: linear-gradient(135deg, var(--bv-deep), var(--bv-ocean)); }
.bv-species div { padding: 18px; display: flex; flex-direction: column; gap: 4px; }
.bv-species b { font-size: 1.25rem; }
.bv-species span { font-size: 0.8125rem; font-weight: 800; color: var(--bv-ocean); }
.bv-species p { margin: 4px 0 0; color: var(--bv-muted); line-height: 1.5; }

.bv-program { list-style: none; margin: 18px 0 8px; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.bv-program li { display: grid; grid-template-columns: 110px 1fr; gap: 12px; padding: 12px 14px; border-radius: 14px; background: var(--bv-ice); }
.bv-program b { color: var(--bv-ocean); }

@media (max-width: 781px) {
	.bv-ihero--fish { min-height: 600px; }
	.bv-fishnow a { margin-left: 0; }
	.bv-techs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.bv-tech { aspect-ratio: 1; padding: 12px; border-radius: 16px; }
	.bv-tech b { font-size: 1rem; }
	.bv-tech span { font-size: 0.75rem; }
	.bv-fishes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.bv-catches { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.bv-boat--reverse .bv-boat__media { order: 0; }
	.bv-trips { grid-template-columns: 1fr; }
	.bv-program li { grid-template-columns: 1fr; gap: 2px; }
	.bv-videos { grid-template-columns: 1fr; }
}

/* =========================================================
   Pagina Meteo Boa Vista
   ========================================================= */
.bv-meteo-hero { margin-block: 0 !important; padding: clamp(40px, 7vw, 88px) var(--wp--preset--spacing--40) 32px; background: linear-gradient(180deg, var(--bv-ice) 0%, #fff 100%); }
.bv-meteo-hero__inner { max-width: 1200px; margin: 0 auto; }
.bv-meteo-hero h1 { margin: 0.4rem 0 0.75rem; font-size: clamp(2.25rem, 5vw, 4rem); letter-spacing: -0.03em; color: var(--bv-navy); }
.bv-meteo-hero__lead { max-width: 60ch; margin: 0; font-size: 1.125rem; color: var(--bv-muted); }
.bv-msec { margin-top: clamp(32px, 5vw, 56px) !important; scroll-margin-top: 140px; }
.bv-msec__title { margin: 0 0 6px; font-size: clamp(1.5rem, 3vw, 2rem); letter-spacing: -0.02em; }
.bv-msec__lead { margin: 0 0 18px; color: var(--bv-muted); }
.bv-meteo__off, .bv-meteo__source { color: var(--bv-muted); font-size: 0.875rem; }
.bv-meteo__source { margin-top: 24px !important; }

/* Adesso */
.bv-meteo__now { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); grid-template-areas: "big grid" "badges grid"; gap: 16px 28px; padding: clamp(22px, 4vw, 36px); border-radius: var(--bv-radius); background: var(--bv-navy); color: #fff; }
.bv-meteo__big { grid-area: big; display: flex; align-items: center; gap: 18px; }
.bv-meteo__big b { display: block; font-size: clamp(4rem, 9vw, 6rem); line-height: 1; font-weight: 800; letter-spacing: -0.04em; }
.bv-meteo__big span { color: var(--bv-mist); font-weight: 700; }
.bv-meteo__badges { grid-area: badges; display: flex; flex-wrap: wrap; gap: 8px; align-self: end; }
.bv-badge { display: inline-flex; align-items: center; min-height: 34px; padding: 0 14px; border-radius: 999px; background: #fff; font-size: 0.875rem; font-weight: 800; }
.bv-badge--good { color: #116b3a; } .bv-badge--ok { color: #8a4a06; } .bv-badge--bad { color: #9b1c1c; }
.bv-meteo__grid { grid-area: grid; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.bv-meteo__cell { display: flex; flex-direction: column; gap: 2px; padding: 14px; border-radius: 16px; background: rgba(255, 255, 255, 0.08); }
.bv-meteo__cell span { font-size: 0.8125rem; color: var(--bv-sky); font-weight: 700; }
.bv-meteo__cell b { display: flex; align-items: center; gap: 4px; font-size: 1.25rem; font-weight: 800; white-space: nowrap; }
.bv-meteo__cell small { font-size: 0.75rem; color: var(--bv-mist); }
.bv-meteo__cell .bv-warrow { color: var(--bv-sky); }

/* 24 ore */
.bv-hours { border: 1px solid var(--bv-line); border-radius: var(--bv-radius); overflow: hidden; }
.bv-hours__legend { display: flex; gap: 16px; justify-content: flex-end; padding: 10px 16px; font-size: 0.75rem; color: var(--bv-muted); border-bottom: 1px solid var(--bv-line); }
.bv-hours__scroll { overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; }
.bv-hours__inner { position: relative; padding-top: 28px; }
.bv-hours__chart { position: absolute; top: 34px; left: 0; display: block; }
.bv-hours ol { position: relative; display: flex; margin: 0; padding: 0; list-style: none; }
.bv-hours li { width: 64px; flex: none; display: flex; flex-direction: column; align-items: center; gap: 6px; padding-bottom: 14px; font-size: 0.8125rem; }
.bv-hours__t { height: 20px; margin-bottom: 52px; font-size: 0.9375rem; color: var(--bv-navy); }
.bv-hours__time { font-weight: 700; color: var(--bv-muted); }
.bv-hours__wind { display: flex; align-items: center; gap: 2px; color: var(--bv-navy); }
.bv-hours__wind small { color: var(--bv-muted); }
.bv-hours__wind .bv-warrow { color: var(--bv-ocean); }
.bv-hours__rain { color: var(--bv-ocean); }
.bv-hours__wave { color: var(--bv-muted); }
.bv-hours li:first-child .bv-hours__time { color: var(--bv-navy); }

/* 7 giorni */
.bv-week { margin: 0; padding: 0; list-style: none; border: 1px solid var(--bv-line); border-radius: var(--bv-radius); overflow: hidden; }
.bv-week li { display: grid; grid-template-columns: 64px 40px minmax(0, 1fr) 82px 56px 34px; align-items: center; gap: 12px; padding: 10px 18px; border-top: 1px solid var(--bv-line); }
.bv-week li:first-child { border-top: 0; background: var(--bv-ice); }
.bv-week__name { font-weight: 800; color: var(--bv-navy); }
.bv-week__temp { display: flex; align-items: center; gap: 10px; }
.bv-week__temp small { color: var(--bv-muted); font-size: 0.875rem; }
.bv-week__temp b { color: var(--bv-navy); }
.bv-week__temp i { position: relative; flex: 1; height: 6px; border-radius: 6px; background: var(--bv-line); }
.bv-week__temp em { position: absolute; top: 0; bottom: 0; border-radius: 6px; background: linear-gradient(90deg, var(--bv-sky), #F7B733); }
.bv-week__wind { display: flex; align-items: center; gap: 4px; font-weight: 700; color: var(--bv-navy); }
.bv-week__wind small { color: var(--bv-muted); font-weight: 500; }
.bv-week__wind .bv-warrow { color: var(--bv-ocean); }
.bv-week__wave { color: var(--bv-muted); font-size: 0.875rem; }
.bv-week__tags { display: flex; gap: 4px; }
.bv-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; vertical-align: middle; }
.bv-dot--good { background: #2bb673; } .bv-dot--ok { background: #F7B733; } .bv-dot--bad { background: #e05252; }
.bv-week__key { margin: 10px 4px 0; font-size: 0.8125rem; color: var(--bv-muted); }

/* Webcam */
.bv-cam-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.bv-cam-link { position: relative; display: flex; flex-direction: column; gap: 6px; min-height: 170px; justify-content: flex-end; padding: 22px; border-radius: var(--bv-radius); color: #fff; background: linear-gradient(160deg, var(--bv-ocean), var(--bv-navy)); overflow: hidden; }
.bv-cam-link:hover { color: #fff; transform: translateY(-2px); }
.bv-cam-link b { font-size: 1.25rem; }
.bv-cam-link span { color: var(--bv-mist); font-size: 0.875rem; }
.bv-cam-link em { margin-top: 6px; font-style: normal; font-weight: 800; color: var(--bv-sky); }
.bv-cam-link__live { position: absolute; top: 16px; left: 16px; display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; background: rgba(255, 255, 255, 0.15); color: #fff !important; font-weight: 800; font-size: 0.75rem !important; }
.bv-cam-link__live::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #ff5a5a; }

/* Windy e Windguru */
.bv-pro__tabs { display: inline-flex; gap: 4px; padding: 4px; margin-bottom: 12px; border-radius: 16px; background: var(--bv-ice); }
.bv-pro__tabs button { min-height: 40px; padding: 0 18px; border: 0; border-radius: 12px; background: transparent; font: inherit; font-weight: 800; color: var(--bv-deep); cursor: pointer; }
.bv-pro__tabs button[aria-selected="true"] { background: var(--bv-navy); color: #fff; }
.bv-pro__frame { position: relative; min-height: 460px; border-radius: var(--bv-radius); overflow: hidden; background: var(--bv-ice); border: 1px solid var(--bv-line); }
.bv-pro__frame iframe { display: block; width: 100%; height: 520px; border: 0; }
.bv-pro__wg { padding: 12px; overflow-x: auto; }
.bv-pro__load { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; border: 0; background: var(--bv-ice); color: var(--bv-navy); font: inherit; cursor: pointer; }
.bv-pro__load b { display: inline-flex; padding: 14px 24px; border-radius: 16px; background: var(--bv-navy); color: #fff; font-size: 1.0625rem; }
.bv-pro__load span { color: var(--bv-muted); font-size: 0.875rem; }
.bv-pro__frame.is-loaded .bv-pro__load { display: none; }
.bv-pro__note { margin: 8px 4px 0; font-size: 0.8125rem; color: var(--bv-muted); }

@media (max-width: 781px) {
	.bv-meteo__now { grid-template-columns: 1fr; grid-template-areas: "big" "badges" "grid"; padding: 22px; }
	.bv-meteo__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
	.bv-meteo__cell { padding: 12px; }
	.bv-meteo__cell b { font-size: 1.125rem; }
	.bv-week li { grid-template-columns: 44px 30px minmax(0, 1fr) 56px 24px; gap: 6px; padding: 10px 12px; }
	.bv-week__temp { gap: 6px; }
	.bv-week__temp i { min-width: 40px; }
	.bv-week__wave { display: none; }
	.bv-week__name { font-size: 0.9375rem; }
	.bv-week .bv-wicon { width: 28px; height: 28px; }
	.bv-pro__frame { min-height: 420px; }
	.bv-pro__frame iframe { height: 460px; }
	.bv-msec { scroll-margin-top: 120px; }
}
.bv-pro__frame.is-loaded:has(.bv-pro__wg) { min-height: 0; }

/* Webcam dentro la pagina meteo */
.bv-webcams { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.bv-webcam { margin: 0; }
.bv-webcam__open { position: relative; display: block; width: 100%; padding: 0; border: 0; font: inherit; border-radius: var(--bv-radius); overflow: hidden; background: var(--bv-navy); cursor: zoom-in; aspect-ratio: 16 / 9; }
.bv-webcam__open img { display: block; width: 100%; height: 100%; object-fit: cover; }
.bv-webcam__live { position: absolute; right: 12px; bottom: 12px; display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px; border-radius: 999px; background: rgba(8, 28, 56, 0.7); color: #fff; font-size: 0.75rem; font-weight: 800; }
.bv-webcam__live::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #ff5a5a; animation: bv-blink 1.6s infinite; }
.bv-webcam.is-dark .bv-webcam__live { display: none; }
.bv-webcam__off { position: absolute; inset: auto 12px 12px 12px; padding: 10px 14px; border-radius: 14px; background: rgba(255, 255, 255, 0.92); color: var(--bv-navy); font-size: 0.875rem; font-weight: 700; text-align: left; }
.bv-webcam figcaption { display: flex; flex-direction: column; gap: 2px; padding: 10px 4px 0; }
.bv-webcam figcaption b { color: var(--bv-navy); }
.bv-webcam figcaption span { color: var(--bv-muted); font-size: 0.875rem; }
.bv-webcam__credit { margin: 12px 4px 0; font-size: 0.8125rem; color: var(--bv-muted); }
.bv-camview { width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; padding: 0; border: 0; background: #000; }
.bv-camview::backdrop { background: #000; }
.bv-camview img { width: 100%; height: 100%; object-fit: contain; }
.bv-camview__close { position: absolute; top: calc(12px + env(safe-area-inset-top, 0px)); right: 12px; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 0; border-radius: 14px; background: rgba(255, 255, 255, 0.9); color: var(--bv-navy); cursor: pointer; }
@keyframes bv-blink { 50% { opacity: 0.3; } }
@media (max-width: 781px) {
	.bv-webcams { grid-template-columns: 1fr; }
	.bv-webcam__open { border-radius: 20px; }
}

/* Home: vetrina con The View e immobili */
.bv-vetrina { display: flex; flex-direction: column; gap: 12px; }
.bv-vetrina__main { position: relative; display: block; min-height: 380px; border-radius: 30px; overflow: hidden; color: #fff; background: var(--bv-navy); }
.bv-vetrina__main img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.bv-vetrina__main:hover img { transform: scale(1.03); }
.bv-vetrina__main::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(8, 28, 56, 0.88) 0%, rgba(8, 28, 56, 0.2) 55%, rgba(8, 28, 56, 0) 100%); }
.bv-vetrina__badge { position: absolute; z-index: 1; top: 18px; left: 18px; padding: 7px 12px; border-radius: 999px; background: #fff; color: var(--bv-navy); font-size: 0.75rem; font-weight: 800; }
.bv-vetrina__text { position: absolute; z-index: 1; left: 22px; right: 22px; bottom: 22px; display: flex; flex-direction: column; gap: 4px; }
.bv-vetrina__text b { font-size: clamp(1.375rem, 2.4vw, 1.75rem); line-height: 1.15; letter-spacing: -0.02em; }
.bv-vetrina__text span { color: var(--bv-mist); }
.bv-vetrina__text em { margin-top: 6px; font-style: normal; font-weight: 800; color: var(--bv-sky); }
.bv-vetrina__more { display: flex; flex-direction: column; gap: 2px; padding: 16px 20px; border-radius: 20px; background: var(--bv-ice); color: var(--bv-navy); }
.bv-vetrina__more:hover { color: var(--bv-navy); background: var(--bv-mist); }
.bv-vetrina__more b { font-size: 1.125rem; }
.bv-vetrina__more span { color: var(--bv-muted); font-size: 0.9375rem; }

/* Home: striscia "Boa Vista adesso" */
.bv-nowstrip { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; padding: 14px 18px; border-radius: 20px; background: var(--bv-navy); color: #fff; }
.bv-nowstrip:hover { color: #fff; background: var(--bv-deep); }
.bv-nowstrip .bv-live { position: static; }
.bv-nowstrip__data { font-weight: 700; }
.bv-nowstrip em { margin-left: auto; font-style: normal; font-weight: 800; color: var(--bv-sky); }
@media (max-width: 781px) {
	.bv-vetrina__main { min-height: 300px; border-radius: 24px; }
	.bv-nowstrip em { margin-left: 0; }
}

/* Pulsante privacy di iubenda: sopra la barra in basso, non sopra "Home" */
@media (max-width: 781px) {
	html body .iubenda-tp-btn.iubenda-cs-preferences-link[data-tp-float][data-tp-float] { bottom: calc(84px + env(safe-area-inset-bottom, 0px)) !important; left: 12px !important; transform: scale(0.85); transform-origin: left bottom; }
}

/* =========================================================
   App "Parti per Boa Vista"
   ========================================================= */
.bv-app__hero { margin-block: 0 !important; padding: clamp(40px, 7vw, 88px) var(--wp--preset--spacing--40) 36px; background: linear-gradient(160deg, var(--bv-navy) 0%, var(--bv-ocean) 100%); color: #fff; }
.bv-app__hero-inner { max-width: 1240px; margin: 0 auto; }
.bv-app__hero h1 { margin: 0.4rem 0 0.75rem; font-size: clamp(2.5rem, 6vw, 4.5rem); color: #fff; }
.bv-app__lead { max-width: 56ch; margin: 0; font-size: 1.125rem; color: var(--bv-mist); }
.bv-tripform { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.bv-tripform label { display: flex; flex-direction: column; gap: 6px; flex: 1 1 200px; max-width: 280px; font-size: 0.8125rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--bv-sky); }
.bv-tripform input, .bv-tripform select { min-height: 52px; padding: 0 14px; border: 0; border-radius: 14px; background: #fff; color: var(--bv-navy); font: inherit; font-size: 1rem; font-weight: 700; letter-spacing: 0; text-transform: none; }
.bv-tripform__countdown { margin: 18px 0 0; font-size: 1.25rem; font-weight: 800; }
.bv-tripform__countdown em { font-style: normal; color: var(--bv-sky); }
.bv-app__install { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 20px; }
.bv-app__install button { border: 0; font: inherit; font-weight: 800; cursor: pointer; }
.bv-app__install p { margin: 0; color: var(--bv-mist); font-size: 0.9375rem; }
.bv-app__install svg { vertical-align: -3px; }

.bv-app__tabs { position: sticky; top: var(--bv-header-h, 72px); z-index: 40; margin-block: 0 !important; display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding: 10px var(--wp--preset--spacing--40); background: rgba(255, 255, 255, 0.94); backdrop-filter: blur(12px); border-bottom: 1px solid var(--bv-line); }
.bv-app__tabs::-webkit-scrollbar { display: none; }
.bv-app__tabs a { flex: none; display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 999px; background: var(--bv-ice); color: var(--bv-deep); font-size: 0.875rem; font-weight: 700; white-space: nowrap; }
.bv-app__tabs a:hover, .bv-app__tabs a.is-active { background: var(--bv-navy); color: #fff; }

.bv-asec { padding-top: var(--wp--preset--spacing--50); scroll-margin-top: calc(var(--bv-header-h, 72px) + 70px); }
.bv-asec__head { max-width: 760px; margin-bottom: 20px; }
.bv-asec__head h2 { margin: 0.3rem 0 0.5rem; font-size: clamp(1.875rem, 4vw, 2.75rem); }
.bv-asec__head > p:not(.bv-eyebrow):not(.bv-checklist__count) { margin: 0; font-size: 1.0625rem; color: var(--bv-muted); }
.bv-asec__sub { margin: 32px 0 12px; font-size: 1.25rem; letter-spacing: -0.02em; }
.bv-asec__note { margin: 10px 0 0; color: var(--bv-muted); font-size: 0.9375rem; line-height: 1.55; }
.bv-asec__hint { margin: 0 0 14px; padding: 14px 18px; border-radius: 16px; background: var(--bv-ice); color: var(--bv-deep); font-weight: 600; }
.bv-asec .bv-dots { margin-top: 20px; }

.bv-timeline { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.bv-timeline li { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 18px 20px 18px 64px; border: 1px solid var(--bv-line); border-radius: 20px; color: var(--bv-muted); line-height: 1.5; }
.bv-timeline li::before { content: ""; position: absolute; left: 22px; top: 20px; width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--bv-sky); background: #fff; }
.bv-timeline b { color: var(--bv-navy); font-size: 1.0625rem; }
.bv-timeline__when { font-size: 0.8125rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--bv-ocean); }
.bv-timeline li.is-done { opacity: 0.6; }
.bv-timeline li.is-done::before { border-color: var(--bv-ocean); background: var(--bv-ocean) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center / 14px no-repeat; }
.bv-timeline li.is-next { border-color: var(--bv-ocean); background: var(--bv-ice); box-shadow: var(--bv-shadow); }
.bv-timeline li.is-next::before { border-color: var(--bv-orange); background: var(--bv-orange); }
.bv-timeline li.is-next .bv-timeline__when { color: var(--bv-navy); }

.bv-facts-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; margin-top: 20px; }
.bv-fact { display: flex; flex-direction: column; gap: 4px; padding: 18px; border-radius: 20px; background: var(--bv-ice); color: var(--bv-muted); font-size: 0.9375rem; line-height: 1.45; }
.bv-fact b { color: var(--bv-navy); font-size: 1.5rem; letter-spacing: -0.02em; line-height: 1.15; }
.bv-fact__label { font-size: 0.75rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--bv-ocean); }

.bv-table-wrap { overflow-x: auto; border: 1px solid var(--bv-line); border-radius: 20px; }
.bv-table { width: 100%; border-collapse: collapse; font-size: 0.9375rem; }
.bv-table th, .bv-table td { padding: 13px 16px; text-align: left; border-bottom: 1px solid var(--bv-line); vertical-align: top; }
.bv-table tbody tr:last-child > * { border-bottom: 0; }
.bv-table thead th { background: var(--bv-ice); font-size: 0.75rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--bv-ocean); }
.bv-table tbody th { font-weight: 700; color: var(--bv-navy); }
.bv-table td { color: var(--bv-muted); }
.bv-table td b { color: var(--bv-navy); }
.bv-table tr.is-mine > * { background: #fff8ef; }
.bv-table tr.is-mine th::after { content: " · il tuo"; color: var(--bv-orange); font-weight: 800; }

.bv-asteps { list-style: none; counter-reset: astep; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.bv-asteps li { counter-increment: astep; display: flex; flex-direction: column; gap: 4px; padding: 18px; border-radius: 20px; border: 1px solid var(--bv-line); color: var(--bv-muted); font-size: 0.9375rem; line-height: 1.5; }
.bv-asteps li::before { content: counter(astep); display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; margin-bottom: 4px; border-radius: 50%; background: var(--bv-navy); color: #fff; font-weight: 800; font-size: 0.875rem; }
.bv-asteps b { color: var(--bv-navy); font-size: 1.0625rem; }

.bv-converter { display: flex; align-items: flex-end; gap: 12px; max-width: 560px; padding: 18px; border-radius: 24px; background: var(--bv-navy); }
.bv-converter label { flex: 1; display: flex; flex-direction: column; gap: 6px; font-size: 0.75rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--bv-sky); }
.bv-converter input { width: 100%; min-width: 0; box-sizing: border-box; min-height: 56px; padding: 0 14px; border: 0; border-radius: 14px; font: inherit; font-size: 1.5rem; font-weight: 800; color: var(--bv-navy); }
.bv-converter__eq { padding-bottom: 14px; font-size: 1.5rem; font-weight: 800; color: #fff; }

.bv-alert { padding: 16px 18px; border-radius: 18px; background: #fff3e6; border: 1px solid #f7cfa3; color: #6b3a0a; line-height: 1.5; }
.bv-alert b { color: #4a2604; }


.bv-sos { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; }
.bv-sos a { display: flex; flex-direction: column; gap: 2px; padding: 16px 18px; border-radius: 20px; background: #fdecec; color: #7a1d1d; font-size: 0.875rem; font-weight: 600; }
.bv-sos a:hover { background: #fbdcdc; color: #7a1d1d; }
.bv-sos b { font-size: 1.625rem; letter-spacing: -0.02em; color: #b42318; }
.bv-sos a:nth-child(n+4) { background: var(--bv-ice); color: var(--bv-muted); }
.bv-sos a:nth-child(n+4) b { font-size: 1.125rem; color: var(--bv-navy); }

.bv-app__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.bv-app__view { padding: clamp(24px, 4vw, 44px); border-radius: 30px; background: linear-gradient(150deg, var(--bv-navy), var(--bv-ocean)); color: var(--bv-mist); }
.bv-app__view h2 { margin: 0.4rem 0 0.6rem; color: #fff; font-size: clamp(1.875rem, 4vw, 2.75rem); }
.bv-app__view p:not(.bv-eyebrow) { max-width: 60ch; margin: 0; font-size: 1.0625rem; }

@media (max-width: 781px) {
	.bv-tripform label { max-width: none; }
	.bv-timeline li { padding: 16px 16px 16px 54px; }
	.bv-timeline li::before { left: 18px; }
	.bv-table th, .bv-table td { padding: 11px 12px; }
	.bv-app__actions .bv-btn { flex: 1 1 100%; }
	.bv-converter input { font-size: 1.25rem; }
	.bv-facts-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.bv-fact { padding: 14px; font-size: 0.8125rem; }
	.bv-fact b { font-size: 1.1875rem; }
	.bv-fact__label { font-size: 0.6875rem; }
	.bv-sos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.bv-asteps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.bv-asteps li { padding: 14px; font-size: 0.875rem; }
	.bv-asteps b { font-size: 1rem; }
}
.bv-timeline li.is-late .bv-timeline__when { color: #b45309; }
.bv-table thead th { white-space: nowrap; }

/* App: intestazione sempre visibile, barra in basso dell'app, due fasi */
.bv-app-page .wp-site-blocks > .bv-header-wrap { position: sticky; top: 0; z-index: 50; }
.bv-app-page { padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px)); }
.bv-app-page .bv-appbar, .bv-app-page .bv-actionbar { display: none !important; }
.bv-appnav { position: fixed; z-index: 60; left: 12px; right: 12px; bottom: 12px; max-width: 560px; margin: 0 auto env(safe-area-inset-bottom, 0px); display: flex; gap: 2px; padding: 5px; border-radius: 22px; background: var(--bv-navy); box-shadow: 0 14px 34px rgba(11, 37, 69, 0.3); }
.bv-appnav__item { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 50px; padding: 4px 2px; border-radius: 17px; color: #fff; font-size: 0.6875rem; font-weight: 700; line-height: 1.1; text-align: center; }
.bv-appnav__item svg { width: 21px; height: 21px; flex: none; }
.bv-appnav__item:hover { color: #fff; background: rgba(255, 255, 255, 0.08); }
.bv-appnav__item.is-active { background: #fff; color: var(--bv-navy); }
.bv-appnav__item--sos svg { color: #ff9b91; }
.bv-appnav__item--investi { background: var(--bv-sky); color: var(--bv-navy); }
.bv-appnav__item--investi:hover { background: #a9d4f6; color: var(--bv-navy); }
.bv-appnav__item--investi.is-active { background: #fff; }

.bv-fasi { display: inline-flex; gap: 4px; padding: 4px; margin-bottom: 22px; border-radius: 999px; background: rgba(255, 255, 255, 0.12); }
.bv-fasi a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 999px; color: #fff; font-size: 0.875rem; font-weight: 700; white-space: nowrap; }
.bv-fasi a:hover { color: #fff; background: rgba(255, 255, 255, 0.1); }
.bv-fasi a.is-active { background: #fff; color: var(--bv-navy); }

.bv-app__hero .bv-clocks { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; max-width: 572px; }
.bv-app__hero .bv-clocks div { flex: 1 1 120px; display: flex; flex-direction: column; padding: 12px 16px; border-radius: 16px; background: rgba(255, 255, 255, 0.1); }
.bv-app__hero .bv-clocks span { font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--bv-sky); }
.bv-app__hero .bv-clocks b { font-size: 1.75rem; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; color: #fff; }
.bv-app__hero .bv-clocks p { flex-basis: 100%; margin: 0; color: var(--bv-mist); font-size: 0.875rem; }
.bv-app__hero--isola { background: linear-gradient(160deg, var(--bv-navy) 0%, var(--bv-ocean) 100%); }
.bv-app__hero--investi { background: linear-gradient(160deg, var(--bv-navy) 0%, #13315c 60%, #1b5fa8 100%); }
.bv-app__hero .bv-app__actions { margin-top: 22px; }
.bv-app__hero + .bv-nowstrip { margin-top: 16px !important; }

.bv-app__promo { display: flex; flex-direction: column; gap: 6px; padding: 24px; border-radius: 26px; background: linear-gradient(150deg, var(--bv-navy), var(--bv-ocean)); color: var(--bv-mist); }
.bv-app__promo:hover { color: var(--bv-mist); transform: translateY(-2px); }
.bv-app__promo b { color: #fff; font-size: 1.375rem; line-height: 1.2; letter-spacing: -0.02em; }
.bv-app__promo em { margin-top: 6px; font-style: normal; font-weight: 800; color: var(--bv-sky); }
.bv-app__viewfacts { list-style: none; margin: 18px 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.bv-app__viewfacts li { display: flex; flex-direction: column; padding: 12px; border-radius: 16px; background: rgba(255, 255, 255, 0.1); }
.bv-app__viewfacts b { color: #fff; font-size: 1.25rem; letter-spacing: -0.02em; }
.bv-app__viewfacts span { font-size: 0.8125rem; }
.bv-app__cta { padding: clamp(22px, 4vw, 40px); border-radius: 28px; background: var(--bv-ice); }
.bv-app__cta h2 { margin: 0 0 8px; font-size: clamp(1.75rem, 4vw, 2.5rem); }
.bv-app__cta p { margin: 0; max-width: 60ch; color: var(--bv-muted); font-size: 1.0625rem; }
.bv-facts-grid--3 { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }

/* Clima mese per mese */
.bv-clima { list-style: none; margin: 0; padding: 4px 2px 10px; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: thin; }
.bv-clima li { flex: 0 0 92px; display: flex; flex-direction: column; gap: 2px; padding: 12px; border-radius: 16px; border: 1px solid var(--bv-line); font-size: 0.75rem; color: var(--bv-muted); }
.bv-clima li b { font-size: 1rem; color: var(--bv-navy); text-transform: capitalize; }
.bv-clima em { font-style: normal; font-weight: 800; color: var(--bv-navy); }
.bv-clima li.is-trip { border-color: var(--bv-ocean); background: var(--bv-ice); box-shadow: 0 0 0 2px var(--bv-ocean) inset; }
.bv-clima__note { margin: 8px 0 0; padding: 14px 16px; border-radius: 16px; background: var(--bv-ice); color: var(--bv-deep); line-height: 1.5; }

/* A Boa Vista: ricerca, categorie, luoghi */
.bv-finder { display: flex; align-items: center; gap: 10px; max-width: 572px; margin-top: 22px; padding: 0 16px; border-radius: 18px; background: #fff; color: var(--bv-muted); box-shadow: var(--bv-shadow); }
.bv-finder input { flex: 1; min-width: 0; min-height: 54px; border: 0; background: transparent; font: inherit; font-size: 1rem; color: var(--bv-navy); outline: none; }
.bv-finder__none { margin: 14px 0 0; padding: 14px 16px; border-radius: 16px; background: var(--bv-ice); }
.bv-luoghi { padding-top: var(--wp--preset--spacing--40); scroll-margin-top: 90px; }
.bv-luoghi[hidden] { display: none; }
.bv-luoghi__head { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 14px; }
.bv-luoghi__icon { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 14px; background: var(--bv-navy); color: var(--bv-sky); }
.bv-luoghi__head h3 { margin: 0; font-size: 1.5rem; letter-spacing: -0.02em; }
.bv-luoghi__head p { margin: 2px 0 0; color: var(--bv-muted); font-size: 0.9375rem; line-height: 1.5; }
.bv-luoghi__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 12px; }
.bv-luoghi__empty { margin: 0; padding: 16px; border-radius: 18px; border: 1px dashed var(--bv-mist); color: var(--bv-muted); }
.bv-luogo { display: flex; flex-direction: column; gap: 8px; padding: 18px; border-radius: 20px; border: 1px solid var(--bv-line); background: #fff; font-size: 0.9375rem; line-height: 1.5; color: var(--bv-muted); }
.bv-luogo[hidden] { display: none; }
.bv-luogo h4 { margin: 0; font-size: 1.125rem; letter-spacing: -0.01em; color: var(--bv-navy); }
.bv-luogo p { margin: 0; }
.bv-luogo__meta { font-size: 0.8125rem; font-weight: 700; color: var(--bv-ocean); }
.bv-luogo__addr { font-size: 0.875rem; }
.bv-luogo__tel { font-weight: 800; color: var(--bv-navy); font-variant-numeric: tabular-nums; }
.bv-luogo__tip { padding: 10px 12px; border-radius: 12px; background: #fff8ef; color: #6b3a0a; font-size: 0.875rem; }
.bv-luogo__tip b { color: #4a2604; }
.bv-luogo__voto { display: flex; align-items: center; gap: 8px; }
.bv-luogo__voto b { color: var(--bv-navy); }
.bv-luogo__voti { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 12px; font-size: 0.8125rem; }
.bv-luogo__voti li { display: flex; align-items: center; justify-content: space-between; gap: 6px; }
.bv-stars { display: inline-flex; gap: 3px; }
.bv-stars i { width: 10px; height: 10px; border-radius: 50%; background: var(--bv-line); }
.bv-stars i.is-on { background: var(--bv-orange); }
.bv-luogo__voto .bv-stars i { width: 14px; height: 14px; }
.bv-luogo__actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; padding-top: 4px; }
.bv-luogo__btn { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 14px; border-radius: 12px; background: var(--bv-ice); color: var(--bv-deep); font-size: 0.8125rem; font-weight: 800; }
.bv-luogo__btn:hover { background: var(--bv-mist); color: var(--bv-navy); }
.bv-luogo__btn--call { background: var(--bv-navy); color: #fff; }
.bv-luogo__btn--call:hover { background: var(--bv-ocean); color: #fff; }

/* Investi: immobili */
.bv-appimms { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.bv-appimm { display: flex; flex-direction: column; overflow: hidden; border-radius: 20px; border: 1px solid var(--bv-line); background: #fff; color: var(--bv-navy); }
.bv-appimm:hover { color: var(--bv-navy); box-shadow: var(--bv-shadow); }
.bv-appimm img, .bv-appimm > i { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; background: var(--bv-ice); }
.bv-appimm__text { display: flex; flex-direction: column; gap: 2px; padding: 14px 16px; }
.bv-appimm__text b { font-size: 1rem; line-height: 1.3; }
.bv-appimm__text span { font-size: 0.8125rem; color: var(--bv-muted); }
.bv-appimm__text em { font-style: normal; font-weight: 800; color: var(--bv-ocean); }

@media (max-width: 781px) {
	.bv-fasi { display: flex; }
	.bv-fasi a { flex: 1; justify-content: center; padding: 0 10px; }
	.bv-app__viewfacts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
			.bv-luoghi__list { grid-template-columns: 1fr; }
	.bv-appimms { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
	.bv-appimm__text { padding: 10px 12px; }
	.bv-appimm__text b { font-size: 0.875rem; }
}
.bv-luogo__google { display: flex; align-items: center; gap: 6px; font-size: 0.8125rem; font-weight: 700; color: var(--bv-deep); }
.bv-luogo__google svg { color: var(--bv-orange); fill: var(--bv-orange); }
.bv-catgrid[hidden], .bv-asec[hidden] { display: none; }
.bv-luogo.has-foto { padding-top: 0; overflow: hidden; }
.bv-luogo__foto { display: block; width: calc(100% + 36px); max-width: none; margin: 0 -18px 4px; aspect-ratio: 16 / 9; object-fit: cover; background: var(--bv-ice); }

/* A Boa Vista: pulsanti delle categorie (bolla blu oceano con icona a tratto, onda in fondo come il logo) */
.bv-panel[hidden] { display: none; }
.bv-panel { scroll-margin-top: calc(var(--bv-header-h, 72px) + var(--bv-strip-h, 0px) + 12px); }
.bv-catgrid { margin-top: var(--wp--preset--spacing--40) !important; display: grid; grid-template-columns: repeat(auto-fill, minmax(112px, 1fr)); gap: 10px; }
.bv-cat { position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; min-height: 104px; padding: 12px 6px 16px; border-radius: 22px; border: 1px solid var(--bv-line); background: linear-gradient(180deg, #fff 0%, var(--bv-ice) 100%); color: var(--bv-navy); font-size: 0.8125rem; font-weight: 700; line-height: 1.15; text-align: center; transition: transform 0.15s, box-shadow 0.15s; }
.bv-cat::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 10px; opacity: 0.55; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='10' viewBox='0 0 40 10'%3E%3Cpath d='M0 6c5 0 5-4 10-4s5 4 10 4 5-4 10-4 5 4 10 4v4H0z' fill='%23CFE3F7'/%3E%3C/svg%3E") repeat-x bottom / 40px 10px; }
.bv-cat:hover { color: var(--bv-navy); transform: translateY(-2px); box-shadow: var(--bv-shadow); }
.bv-cat__icon { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 16px; background: linear-gradient(145deg, var(--bv-ocean) 0%, #2c8fd6 100%); color: #fff; box-shadow: 0 6px 14px rgba(27, 95, 168, 0.25); }
.bv-cat__icon svg { width: 26px; height: 26px; stroke-width: 1.8; }
.bv-cat--sos { grid-column: 1 / -1; flex-direction: row; min-height: 64px; background: linear-gradient(180deg, #fff 0%, #fdecec 100%); border-color: #f6d4d4; color: #7a1d1d; }
.bv-cat--sos .bv-cat__icon { width: 40px; height: 40px; background: linear-gradient(145deg, #c2412d, #e8664f); box-shadow: 0 6px 14px rgba(194, 65, 45, 0.25); }
.bv-cat--tutte { display: none; }
.bv-cat.is-active { border-color: var(--bv-ocean); background: var(--bv-navy); color: #fff; }
.bv-cat.is-active .bv-cat__icon { background: #fff; color: var(--bv-ocean); box-shadow: none; }

/* Con una sezione aperta: striscia fissa sotto l'intestazione */
.bv-catgrid.is-compact { position: sticky; top: var(--bv-header-h, 72px); z-index: 30; display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; margin-top: 12px !important; padding: 8px 2px; background: rgba(255, 255, 255, 0.96); backdrop-filter: blur(10px); border-bottom: 1px solid var(--bv-line); }
.bv-catgrid.is-compact::-webkit-scrollbar { display: none; }
.bv-catgrid.is-compact .bv-cat { flex: 0 0 76px; min-height: 0; padding: 8px 4px 10px; gap: 5px; border-radius: 16px; font-size: 0.625rem; }
.bv-catgrid.is-compact .bv-cat::after { height: 6px; background-size: 24px 6px; }
.bv-catgrid.is-compact .bv-cat__icon { width: 34px; height: 34px; border-radius: 11px; }
.bv-catgrid.is-compact .bv-cat__icon svg { width: 20px; height: 20px; }
.bv-catgrid.is-compact .bv-cat--tutte { display: flex; }
.bv-catgrid.is-compact .bv-cat--sos { flex-direction: column; }
@media (max-width: 781px) {
	.bv-catgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
	.bv-cat { min-height: 0; padding: 10px 4px 14px; gap: 6px; font-size: 0.75rem; border-radius: 18px; }
	.bv-cat__icon { width: 42px; height: 42px; border-radius: 14px; }
}
.bv-luogo__fig { position: relative; margin: 0 -18px 4px; }
.bv-luogo__fig .bv-luogo__foto { width: 100%; margin: 0; }
.bv-luogo__fig figcaption { position: absolute; right: 8px; bottom: 8px; padding: 2px 8px; border-radius: 8px; background: rgba(11, 37, 69, 0.6); color: #fff; font-size: 0.625rem; }
.bv-luogo__fig figcaption a { color: #fff; }
.bv-offline { display: inline-flex; align-items: center; gap: 8px; margin: 16px 0 0; padding: 8px 14px; border-radius: 999px; background: rgba(255, 255, 255, 0.14); color: #fff; font-size: 0.8125rem; font-weight: 700; }
.bv-offline[hidden] { display: none; }
.bv-offline__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--bv-sky); animation: bv-pulse 1.2s infinite; }
.bv-offline.is-done { background: #e7f7ee; color: #12633a; }
.bv-offline.is-done .bv-offline__dot { background: #1f9d55; animation: none; }
@keyframes bv-pulse { 50% { opacity: 0.3; } }
.bv-luogo__upd { margin: 0; font-size: 0.6875rem; color: var(--bv-muted); opacity: 0.8; }
.bv-form__set { margin: 0; padding: 0; border: 0; }
.bv-form__set legend { margin-bottom: 10px; font-weight: 800; font-size: 0.8125rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--bv-ocean); }
.bv-form__grid label small { font-weight: 500; }
.bv-form__inline { flex-direction: row !important; align-items: center; gap: 10px !important; }
.bv-form__inline input { width: 18px !important; min-height: 0 !important; height: 18px; flex: none; accent-color: var(--bv-ocean); }
.bv-form input[type="file"] { padding: 10px; background: var(--bv-ice); }
@media (max-width: 781px) { .bv-form--attivita .bv-form__grid { grid-template-columns: 1fr; } }
.bv-app__cta .bv-form p.bv-form__note { font-size: 0.8125rem; }

/* Meteo in breve (app, sopra "Passo per passo") */
.bv-meteobreve { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px 20px; padding: 16px 20px; border-radius: 24px; background: linear-gradient(150deg, var(--bv-ice) 0%, #fff 100%); border: 1px solid var(--bv-line); color: var(--bv-navy); }
.bv-meteobreve:hover { color: var(--bv-navy); box-shadow: var(--bv-shadow); }
.bv-meteobreve__now { display: flex; align-items: center; gap: 12px; }
.bv-meteobreve__now > span { display: flex; flex-direction: column; line-height: 1.2; }
.bv-meteobreve__now b { font-size: 2.25rem; letter-spacing: -0.03em; line-height: 1; }
.bv-meteobreve__now em { font-style: normal; font-weight: 700; font-size: 0.9375rem; }
.bv-meteobreve__now small { color: var(--bv-muted); font-size: 0.8125rem; }
.bv-meteobreve__days { list-style: none; margin: 0; padding: 0; display: flex; gap: 6px; justify-content: flex-end; }
.bv-meteobreve__days li { display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 62px; padding: 8px 6px; border-radius: 14px; background: #fff; font-size: 0.75rem; color: var(--bv-muted); }
.bv-meteobreve__days b { font-size: 1rem; color: var(--bv-navy); }
.bv-meteobreve__days small { font-size: 0.6875rem; }
.bv-meteobreve__more { font-size: 0.8125rem; font-weight: 800; color: var(--bv-ocean); white-space: nowrap; }
@media (max-width: 781px) {
	.bv-meteobreve { grid-template-columns: 1fr; padding: 14px; }
	.bv-meteobreve__days { justify-content: space-between; }
	.bv-meteobreve__days li { flex: 1; min-width: 0; }
}

.bv-luogo__btn--wa { background: #25d366; color: #fff; } .bv-luogo__btn--wa:hover { background: #1da851; color: #fff; }

/* Guida all'acquisto: elenco dei costi */
.bv-costs { margin: 0; padding: 0; list-style: none; border: 1px solid var(--bv-line); border-radius: var(--bv-radius); overflow: hidden; }
.bv-costs li { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.7fr) minmax(0, 1.6fr); gap: 16px; align-items: baseline; padding: 16px 22px; border-top: 1px solid var(--bv-line); }
.bv-costs li:first-child { border-top: 0; }
.bv-costs b { color: var(--bv-navy); }
.bv-costs strong { color: var(--bv-ocean); font-size: 1.125rem; font-weight: 800; }
.bv-costs span { color: var(--bv-muted); font-size: 0.9375rem; }
.bv-costs li.is-total { background: var(--bv-navy); }
.bv-costs li.is-total b, .bv-costs li.is-total strong { color: #fff; }
.bv-costs li.is-total strong { font-size: 1.375rem; }
.bv-costs li.is-total span { color: var(--bv-mist); }
@media (max-width: 781px) {
	.bv-costs li { grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; padding: 14px 16px; }
	.bv-costs span { grid-column: 1 / -1; }
	.bv-costs strong { text-align: right; }
}

/* Viaggio esplorativo */
.bv-exp { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.bv-exp article { display: flex; flex-direction: column; border-radius: var(--bv-radius); overflow: hidden; background: var(--bv-ice); }
.bv-exp img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.bv-exp article > div { position: relative; padding: 20px 22px 24px; }
.bv-exp span { position: absolute; top: -22px; left: 18px; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 14px; background: var(--bv-navy); color: #fff; font-weight: 800; }
.bv-exp h3 { margin: 8px 0 6px; font-size: 1.1875rem; color: var(--bv-navy); }
.bv-exp p { margin: 0; color: var(--bv-muted); font-size: 0.9375rem; }
.bv-trip-dates { margin: 18px 0 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.bv-trip-dates li { display: grid; grid-template-columns: 1fr 1fr auto; gap: 14px; align-items: center; padding: 14px 18px; border: 1px solid var(--bv-line); border-radius: 18px; }
.bv-trip-dates small { display: block; font-size: 0.75rem; font-weight: 700; color: var(--bv-muted); text-transform: uppercase; letter-spacing: 0.06em; }
.bv-trip-dates b { color: var(--bv-navy); font-size: 1.0625rem; }
.bv-trip-price { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: center; padding: clamp(24px, 4vw, 40px); border-radius: var(--bv-radius); background: var(--bv-navy); color: #fff; }
.bv-trip-price h3 { color: #fff; margin: 0 0 8px; }
.bv-trip-price p { color: var(--bv-mist); }
.bv-trip-price__old { margin: 6px 0 0; text-decoration: line-through; }
.bv-trip-price__new { margin: 0 0 6px; font-size: clamp(2.5rem, 6vw, 3.5rem); font-weight: 800; letter-spacing: -0.03em; color: #fff !important; }
.bv-trip-price__new small { font-size: 1rem; font-weight: 600; color: var(--bv-sky); }
@media (max-width: 781px) {
	.bv-exp { grid-template-columns: 1fr; }
	.bv-trip-dates li { grid-template-columns: 1fr 1fr; padding: 14px; }
	.bv-trip-dates .bv-btn { grid-column: 1 / -1; text-align: center; }
	.bv-trip-price { grid-template-columns: 1fr; }
}

/* Chiedi a Boa Vista (chat) */
.bv-chiedi { max-width: 760px; display: flex; flex-direction: column; gap: 12px; padding: 16px; border-radius: 28px; border: 1px solid var(--bv-line); background: linear-gradient(180deg, #fff 0%, var(--bv-ice) 100%); box-shadow: var(--bv-shadow); }
.bv-chiedi--off { padding: 20px 24px; }
.bv-chiedi__log { display: flex; flex-direction: column; gap: 10px; min-height: 220px; max-height: 60vh; overflow-y: auto; padding: 4px; }
.bv-chiedi__msg { max-width: 88%; padding: 12px 16px; border-radius: 20px; line-height: 1.55; font-size: 0.9375rem; }
.bv-chiedi__msg p { margin: 0 0 8px; }
.bv-chiedi__msg p:last-child { margin-bottom: 0; }
.bv-chiedi__msg ul { margin: 0 0 8px; padding-left: 20px; }
.bv-chiedi__msg.is-bot { align-self: flex-start; background: #fff; border: 1px solid var(--bv-line); border-bottom-left-radius: 6px; color: var(--bv-navy); }
.bv-chiedi__msg.is-user { align-self: flex-end; background: var(--bv-navy); color: #fff; border-bottom-right-radius: 6px; }
.bv-chiedi__msg a { font-weight: 700; }
.bv-chiedi__msg.is-typing { display: inline-flex; gap: 5px; padding: 16px 18px; }
.bv-chiedi__msg.is-typing span { width: 8px; height: 8px; border-radius: 50%; background: var(--bv-sky); animation: bv-pulse 1s infinite; }
.bv-chiedi__msg.is-typing span:nth-child(2) { animation-delay: 0.2s; }
.bv-chiedi__msg.is-typing span:nth-child(3) { animation-delay: 0.4s; }
.bv-chiedi__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.bv-chiedi__chips[hidden] { display: none; }
.bv-chiedi__chips .bv-chip { cursor: pointer; font: inherit; font-size: 0.8125rem; font-weight: 600; }
.bv-chiedi__form { display: flex; align-items: flex-end; gap: 8px; padding: 6px; border-radius: 20px; background: #fff; border: 1px solid #cfdceb; }
.bv-chiedi__form:focus-within { border-color: var(--bv-ocean); }
.bv-chiedi__form textarea { flex: 1; min-width: 0; min-height: 44px; max-height: 160px; padding: 11px 12px; border: 0; resize: none; font: inherit; font-size: 1rem; color: var(--bv-navy); background: transparent; outline: none; }
.bv-chiedi__form button { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border: 0; border-radius: 14px; background: var(--bv-ocean); color: #fff; cursor: pointer; }
.bv-chiedi__form button:disabled { opacity: 0.5; cursor: wait; }
.bv-chiedi__note { margin: 0; font-size: 0.75rem; color: var(--bv-muted); }
@media (max-width: 781px) {
	.bv-chiedi { padding: 10px; border-radius: 22px; }
	.bv-chiedi__msg { max-width: 94%; }
}
/* La chat in un pannello (in basso su telefono, al centro su computer) */
.bv-chiedi-sheet .bv-sheet__panel { display: flex; flex-direction: column; gap: 10px; padding-top: 12px; }
.bv-chiedi-sheet__head { display: flex; align-items: center; gap: 10px; padding-right: 44px; position: relative; font-size: 1.0625rem; }
.bv-chiedi-sheet__head .bv-sheet__close { top: -4px; right: -6px; }
.bv-chiedi-sheet__icon { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 12px; background: var(--bv-ice); color: var(--bv-ocean); }
.bv-chiedi-sheet .bv-chiedi { max-width: none; padding: 0; border: 0; background: none; box-shadow: none; }
.bv-chiedi-sheet .bv-chiedi__log { min-height: 160px; max-height: calc(100dvh - 330px); }
@media (min-width: 782px) {
	.bv-chiedi-sheet { inset: 0; margin: auto; max-width: 620px; }
	.bv-chiedi-sheet .bv-sheet__panel { border-radius: 26px; max-height: calc(100dvh - 80px); }
	.bv-chiedi-sheet .bv-chiedi__log { max-height: calc(100dvh - 380px); }
}

/* Logo 3B: profilo dell'isola nel cerchio, scritta BOAVISTA / 2000 */
.bv-logo__mark--isola { width: 42px; height: 42px; border-radius: 0; background: none; }
.bv-logo__mark--isola svg { display: block; width: 100%; height: 100%; }
.bv-logo .bv-logo__text { display: inline-flex; flex-direction: column; line-height: 1; font-size: 1.0625rem; font-weight: 700; letter-spacing: 0.2em; color: var(--bv-navy); }
.bv-logo__text small { margin-top: 4px; font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.55em; color: var(--bv-ocean); }
@media (max-width: 781px) {
	.bv-logo__mark--isola { width: 38px; height: 38px; }
	.bv-logo .bv-logo__text { font-size: 0.875rem; letter-spacing: 0.16em; color: var(--bv-navy); }
	.bv-logo__text small { font-size: 0.625rem; letter-spacing: 0.5em; }
}
.bv-chiedi__simili { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--bv-line); }
.bv-chiedi__simili span { flex-basis: 100%; font-size: 0.75rem; font-weight: 700; color: var(--bv-muted); }
.bv-chiedi__simili .bv-chip { cursor: pointer; font: inherit; font-size: 0.75rem; font-weight: 600; min-height: 32px; text-align: left; }
.bv-chiedi__gos { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.bv-chiedi__go { display: inline-flex; align-items: center; min-height: 38px; padding: 0 14px; border-radius: 12px; background: var(--bv-navy); color: #fff !important; font-size: 0.8125rem; font-weight: 800; }
.bv-chiedi__go:hover { background: var(--bv-ocean); }
.bv-chiedi__go--wa { background: #25d366; }
.bv-chiedi__go--wa:hover { background: #1da851; }

/* Home: chi siamo */
.bv-about { background: var(--bv-ice); }
.bv-about__grid { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: clamp(20px, 4vw, 56px); }
.bv-about h2 { margin: 0.4rem 0 0; font-size: clamp(1.75rem, 3.4vw, 2.5rem); letter-spacing: -0.02em; }
.bv-about__text p { margin: 0 0 14px; color: var(--bv-muted); font-size: 1.0625rem; line-height: 1.65; }
.bv-about__text p:last-child { margin: 18px 0 0; display: flex; flex-wrap: wrap; gap: 10px; }
@media (max-width: 781px) { .bv-about__grid { grid-template-columns: 1fr; } }

/* Riga legale del footer */
.bv-footer__legal p { margin: 0 0 6px; line-height: 1.6; }
.bv-footer__legal p + p { color: var(--bv-mist); opacity: 0.85; }
.bv-footer__legal b { color: #fff; font-weight: 700; }
.bv-footer__legal a { color: var(--bv-sky); text-decoration: underline; text-underline-offset: 2px; }
.bv-footer__legal a:hover { color: #fff; }
.bv-request__note { margin-top: 12px; font-size: 0.875rem; color: var(--bv-muted); } .bv-request__note a { color: var(--bv-ocean); text-decoration: underline; }

/* Pagina privacy: testo dell'informativa iubenda */
.bv-privacy { margin-top: var(--wp--preset--spacing--50) !important; color: var(--bv-navy); line-height: 1.65; }
.bv-privacy h1, .bv-privacy h2, .bv-privacy h3 { color: var(--bv-navy); letter-spacing: -0.01em; }
.bv-privacy #iubenda_policy, .bv-privacy .iub_container { max-width: 860px; }
.bv-privacy a { color: var(--bv-ocean); }
.bv-zona__intro { max-width: 70ch; font-size: 1.0625rem; margin-bottom: var(--wp--preset--spacing--40) !important; }
.bv-zone-links { margin-top: 14px; align-items: center; } .bv-zone-links span { font-weight: 700; color: var(--bv-muted); margin-right: 4px; }

/* Guida PDF gratuita [bv_guida_pdf] */
.bv-guida { scroll-margin-top: 120px; display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: clamp(24px, 5vw, 56px); align-items: center; margin-block: var(--wp--preset--spacing--60); padding: clamp(24px, 4vw, 48px); border-radius: 24px; background: var(--bv-ice, #eef5fc); }
.bv-guida h2 { margin: 0 0 8px; }
.bv-guida__text > p { color: var(--bv-muted); }
.bv-guida__form { margin-top: 16px; }
.bv-guida__btns { display: flex; flex-wrap: wrap; gap: 12px; }
.bv-guida__btns .bv-btn { padding-inline: 22px; }
.bv-guida__dl { background: var(--bv-ocean); color: #fff; }
.bv-guida__dl:hover { background: var(--bv-navy); color: #fff; }
.bv-guida__cover { aspect-ratio: 210 / 297; max-width: 280px; width: 100%; justify-self: center; display: flex; flex-direction: column; gap: 10px; padding: 28px 24px; box-sizing: border-box; border-radius: 6px 14px 14px 6px; background: var(--bv-navy); color: #fff; box-shadow: 0 24px 48px rgba(11, 37, 69, 0.25), inset 6px 0 0 rgba(255, 255, 255, 0.08); transform: rotate(2deg); }
.bv-guida__cover span { margin-top: 30%; font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--bv-sky); }
.bv-guida__cover b { font-size: 1.6rem; line-height: 1.1; letter-spacing: -0.02em; }
.bv-guida__cover small { color: var(--bv-mist); font-size: 0.8125rem; }
.bv-guida__cover i { margin-top: auto; font-style: normal; font-weight: 800; font-size: 0.75rem; letter-spacing: 0.06em; }
@media (max-width: 760px) {
	.bv-guida { grid-template-columns: 1fr; }
	.bv-guida__cover { order: -1; max-width: 150px; padding: 14px 12px; gap: 6px; }
	.bv-guida__cover span { margin-top: 20%; font-size: 0.5rem; }
	.bv-guida__cover b { font-size: 0.9rem; }
	.bv-guida__cover small { display: none; }
	.bv-guida__cover i { font-size: 0.5rem; }
}
