@charset "UTF-8";

/*
 * Bagno Vittoria — Mediterranean contemporary restyle
 * This stylesheet intentionally sits after the original theme so that the
 * existing content,
galleries and navigation logic can stay intact.
 */

:root {
  --bv-ink: #12343d;
  --bv-ink-soft: #48636a;
  --bv-night: #073947;
  --bv-night-deep: #042b36;
  --bv-sea: #0a8794;
  --bv-sea-bright: #20b6b2;
  --bv-sky: #bde9e4;
  --bv-sand: #f4ecdc;
  --bv-sand-light: #fbf8f1;
  --bv-white: #ffffff;
  --bv-coral: #ef705f;
  --bv-coral-dark: #d95345;
  --bv-border: rgba(7, 57, 71, 0.13);
  --bv-shadow-sm: 0 14px 34px rgba(7, 57, 71, 0.10);
  --bv-shadow: 0 28px 70px rgba(7, 57, 71, 0.16);
  --bv-radius-sm: 18px;
  --bv-radius: 30px;
  --bv-radius-lg: 54px;
  --bv-ease: cubic-bezier(.22, 1, .36, 1);
  --bv-font-body: "Manrope", "Segoe UI Variable", "Segoe UI", Arial, sans-serif;
  --bv-font-display: "Sora", "Manrope", "Segoe UI Variable", sans-serif;
}

html {
  scroll-behavior: auto;
  background: var(--bv-night-deep);
}

body {
  margin: 0;
  overflow-x: hidden;
  color: var(--bv-ink);
  background:
    radial-gradient(circle at 8% 18%, rgba(32, 182, 178, .07), transparent 28rem),
    var(--bv-sand-light);
  font-family: "Montserrat", Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: -.01em;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

::selection {
  color: var(--bv-white);
  background: var(--bv-coral);
}

body * {
  box-sizing: border-box;
}

body a {
  color: var(--bv-sea);
  text-decoration: none;
  transition: color .25s ease, opacity .25s ease, transform .25s ease;
}

body a:hover,
body a:focus {
  color: var(--bv-coral-dark);
  text-decoration: none;
}

body a:focus-visible,
body button:focus-visible,
body input:focus-visible,
body textarea:focus-visible {
  outline: 3px solid rgba(239, 112, 95, .42);
  outline-offset: 4px;
}

body p {
  margin: 0;
  color: var(--bv-ink-soft);
  font-size: clamp(15px, 1.05vw, 17px);
  line-height: 1.82;
}

body h1,
body h2,
body h3,
body h4,
body h5,
body h6 {
  margin-top: 0;
  color: var(--bv-ink);
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 700;
  letter-spacing: -.035em;
}

body h1 {
  font-size: clamp(48px, 7.3vw, 106px);
  line-height: .94;
}

body h2 {
  font-size: clamp(37px, 4.6vw, 67px);
  line-height: 1.02;
}

body h3 {
  font-size: clamp(28px, 3vw, 43px);
  line-height: 1.12;
}

body h4 {
  font-size: clamp(21px, 2vw, 28px);
  line-height: 1.25;
}

body h6 {
  display: inline-block;
  margin-bottom: 18px;
  color: var(--bv-sea);
  font-family: "Montserrat", Helvetica, Arial, sans-serif;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .18em;
  text-transform: uppercase;
}

body h6::before {
  display: inline-block;
  width: 28px;
  height: 2px;
  margin: 0 12px 3px 0;
  border-radius: 2px;
  background: currentColor;
  content: "";
}

.page {
  overflow: clip;
  background: var(--bv-sand-light);
}

.container {
  width: min(100% - 48px, 1240px);
  max-width: 1240px;
  padding-right: 0;
  padding-left: 0;
}

.row {
  margin-right: -18px;
  margin-left: -18px;
}

.row > [class*="col-"] {
  padding-right: 18px;
  padding-left: 18px;
}

.row-30 {
  margin-bottom: -30px;
}

.row-30 > * {
  margin-bottom: 30px;
}

.row-50 {
  margin-bottom: -50px;
}

.row-50 > * {
  margin-bottom: 50px;
}

/* Loading state */
#page-loader {
  background: var(--bv-sand-light);
}

.cssload-speeding-wheel {
  border-color: rgba(10, 135, 148, .18);
  border-left-color: var(--bv-sea);
}

/* Header */
.page-header {
  position: relative;
  z-index: 100;
}

.rd-navbar-wrap,
.rd-navbar {
  background: transparent;
}

.rd-navbar-top-panel__outer {
  color: rgba(255, 255, 255, .82);
  background: var(--bv-night-deep);
  border: 0;
}

.rd-navbar-static .rd-navbar-top-panel__outer {
  color: rgba(255, 255, 255, .84) !important;
  background: var(--bv-night-deep) !important;
}

.rd-navbar-static .rd-navbar-top-panel__outer p,
.rd-navbar-static .rd-navbar-top-panel__outer a,
.rd-navbar-static .rd-navbar-top-panel__outer .icon {
  color: rgba(255, 255, 255, .78) !important;
}

.rd-navbar-static .rd-navbar-top-panel__outer a:hover {
  color: var(--bv-sky) !important;
}

.rd-navbar-top-panel,
.rd-navbar-inner {
  width: min(100% - 48px, 1440px);
  max-width: 1440px;
  margin: 0 auto;
}

.rd-navbar-top-panel__main,
.rd-navbar-top-panel__content {
  background: transparent;
}

.rd-navbar-items-list {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px 24px;
  min-height: 42px;
  margin: 0;
  padding: 5px 0;
  list-style: none;
}

.rd-navbar-items-list li {
  margin: 0;
  padding: 0;
  border: 0;
}

.rd-navbar-items-list .unit {
  align-items: center;
  margin: 0;
}

.rd-navbar-items-list .unit-left {
  margin-right: 7px;
}

.rd-navbar-items-list p,
.rd-navbar-items-list a,
.rd-navbar-items-list .icon {
  color: rgba(255, 255, 255, .78);
  font-family: "Montserrat", Helvetica, Arial, sans-serif;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: .055em;
}

.rd-navbar-items-list a:hover {
  color: var(--bv-sky);
}

.rd-navbar-items-list img {
  width: 16px;
  height: 16px;
  object-fit: contain;
}

.rd-navbar-inner {
  min-height: 96px;
  border-radius: 0 0 28px 28px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 14px 38px rgba(7, 57, 71, .12);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.rd-navbar-brand img {
  display: block;
  width: auto;
  height: 78px;
  object-fit: contain;
}

.rd-navbar-nav {
  font-family: "Montserrat", Helvetica, Arial, sans-serif;
}

.rd-navbar-nav > li > a {
  color: var(--bv-ink);
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .075em;
  text-transform: uppercase;
}

.rd-navbar-static .rd-navbar-nav > li {
  padding-right: 0 !important;
  padding-left: 0 !important;
}

.rd-navbar-nav > li > a:hover,
.rd-navbar-nav > li.bv-current > a,
.rd-navbar-nav > li > a[aria-current="page"] {
  color: var(--bv-sea);
}

.rd-navbar-nav > li > a img {
  width: 21px;
  height: 21px;
  border: 2px solid var(--bv-white);
  border-radius: 50%;
  object-fit: cover;
  box-shadow: 0 0 0 1px var(--bv-border);
}

@media (min-width: 1200px) {
  .rd-navbar-static .rd-navbar-inner {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    align-items: center;
    padding: 8px 26px 8px 18px;
  }

  .rd-navbar-static .rd-navbar-panel,
.rd-navbar-static .rd-navbar-nav-wrap {
    float: none;
    width: auto;
    padding: 0;
  }

  .rd-navbar-static .rd-navbar-brand {
    margin: 0;
  }

  .rd-navbar-static .rd-navbar-nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    margin: 0;
  }

  .rd-navbar-static .rd-navbar-nav > li {
    margin: 0;
  }

  .rd-navbar-static .rd-navbar-nav > li > a {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 40px;
    padding: 0 9px;
    border-radius: 999px;
  }

  .rd-navbar-static .rd-navbar-nav > li > a::after {
    position: absolute;
    right: 10px;
    bottom: 6px;
    left: 10px;
    height: 2px;
    border-radius: 2px;
    background: var(--bv-coral);
    content: "";
    opacity: 0;
    transform: scaleX(.25);
    transition: opacity .25s ease, transform .35s var(--bv-ease);
  }

  .rd-navbar-static .rd-navbar-nav > li > a:hover::after,
.rd-navbar-static .rd-navbar-nav > li.bv-current > a::after {
    opacity: 1;
    transform: scaleX(1);
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-language-link > a {
    padding-right: 5px;
    padding-left: 5px;
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-language-link {
    width: 31px !important;
    min-width: 31px !important;
    flex: 0 0 31px !important;
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-language-link > a {
    width: 31px !important;
    min-width: 31px !important;
    padding: 0 !important;
    justify-content: center;
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-language-link > a > div {
    display: flex;
    width: 23px;
    align-items: center;
    justify-content: center;
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-language-link img {
    width: 21px !important;
    min-width: 21px !important;
    max-width: none !important;
  }

  .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-inner {
    grid-template-columns: 108px minmax(0, 1fr);
    min-height: 72px;
    padding-top: 5px;
    padding-bottom: 5px;
  }

  .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-panel {
    display: flex !important;
    width: 108px !important;
    height: 62px !important;
    align-items: center;
  }

  .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-brand,
.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-brand img {
    width: auto !important;
    height: 60px !important;
    max-height: 60px !important;
  }

  .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-nav-wrap {
    position: static !important;
    display: block !important;
    float: none !important;
    width: auto !important;
    margin: 0 !important;
  }

  .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-nav {
    position: static !important;
    right: auto !important;
    left: auto !important;
    width: auto !important;
    margin: 0 !important;
    transform: none !important;
    justify-content: flex-end;
  }
}

/* Mobile navigation keeps the established menu behaviour,
with a new skin. */
.rd-navbar-fixed .rd-navbar-panel {
  height: 76px;
  color: var(--bv-ink);
  background: rgba(255, 255, 255, .97);
  box-shadow: 0 10px 30px rgba(7, 57, 71, .12);
  backdrop-filter: blur(18px);
}

.rd-navbar-fixed .rd-navbar-brand {
  top: 7px;
  left: 64px;
}

.rd-navbar-fixed .rd-navbar-brand img {
  width: auto;
  height: 62px;
}

.rd-navbar-fixed .rd-navbar-toggle {
  top: 21px;
  left: 18px;
  width: 34px;
  height: 34px;
  padding: 0;
  color: var(--bv-night);
}

.rd-navbar-fixed .rd-navbar-toggle span,
.rd-navbar-fixed .rd-navbar-toggle span::before,
.rd-navbar-fixed .rd-navbar-toggle span::after {
  background: var(--bv-night);
}

.rd-navbar-fixed .rd-navbar-nav-wrap {
  top: 76px;
  width: min(340px, 88vw);
  padding: 22px 18px 30px;
  color: var(--bv-ink);
  background: var(--bv-sand-light);
  box-shadow: 20px 30px 60px rgba(7, 57, 71, .2);
}

.rd-navbar-fixed .rd-navbar-nav > li {
  margin: 0 0 4px;
}

.rd-navbar-fixed .rd-navbar-nav > li > a {
  display: block;
  padding: 13px 16px;
  border-radius: 12px;
  color: var(--bv-ink);
}

.rd-navbar-fixed .rd-navbar-nav > li.bv-current > a,
.rd-navbar-fixed .rd-navbar-nav > li > a:hover {
  color: var(--bv-white);
  background: var(--bv-sea);
}

.rd-navbar-fixed .rd-navbar-top-panel__outer {
  top: 76px;
  color: var(--bv-white);
  background: var(--bv-night-deep);
}

/* Homepage hero */
.swiper-form-wrap {
  position: relative;
  overflow: hidden;
  background: var(--bv-night);
}

.swiper-slider_fullheight {
  height: clamp(610px, 79vh, 860px) !important;
  min-height: 610px;
}

.swiper-slider_fullheight .swiper-slide {
  position: relative;
  background-position: center center;
  background-size: cover;
}

.swiper-slider_fullheight .swiper-slide::before {
  position: absolute;
  z-index: 1;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(3, 33, 42, .84) 0%, rgba(3, 33, 42, .58) 43%, rgba(3, 33, 42, .12) 77%),
    linear-gradient(0deg, rgba(3, 33, 42, .42), transparent 52%);
  content: "";
}

.swiper-slider_fullheight .swiper-slide::after {
  position: absolute;
  z-index: 2;
  top: 38px;
  right: 38px;
  bottom: 38px;
  left: 38px;
  border: 1px solid rgba(255, 255, 255, .32);
  border-radius: var(--bv-radius-lg);
  content: "";
  pointer-events: none;
}

.swiper-slide-caption {
  z-index: 3;
  display: flex;
  align-items: center;
  height: 100%;
  padding: 54px 0 86px;
  text-align: left;
}

.swiper-slide-caption .row {
  justify-content: flex-start !important;
}

.swiper-slide-caption [class*="col-"] {
  max-width: 880px;
  flex: 0 0 880px;
}

.swiper-slide-caption h6,
.swiper-slide-caption h2,
.swiper-slide-caption h1,
.swiper-slide-caption p {
  color: var(--bv-white);
  text-shadow: 0 3px 24px rgba(0, 0, 0, .22);
}

.swiper-slide-caption h6 {
  margin-bottom: 22px;
  padding: 9px 14px;
  border: 1px solid rgba(255, 255, 255, .34);
  border-radius: 999px;
  font-family: "Montserrat", Helvetica, Arial, sans-serif;
  font-size: 11px;
  letter-spacing: .2em;
  background: rgba(255, 255, 255, .08);
  backdrop-filter: blur(7px);
}

.swiper-slide-caption h6::before {
  display: none;
  content: none;
}

.swiper-slide-caption h2 {
  margin-bottom: 8px;
  font-family: "Montserrat", Helvetica, Arial, sans-serif;
  font-size: clamp(14px, 1.8vw, 22px);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.swiper-slide-caption h1 {
  margin-bottom: 26px;
  max-width: 840px;
}

.swiper-slide-caption p {
  max-width: 660px;
  padding-left: 22px;
  border-left: 3px solid var(--bv-coral);
  font-size: clamp(16px, 1.6vw, 21px);
  line-height: 1.6;
}

.swiper-slider_fullheight .swiper-pagination {
  z-index: 5;
  right: auto !important;
  bottom: 40px !important;
  left: max(24px, calc((100vw - 1240px) / 2)) !important;
  display: flex;
  align-items: center;
  width: auto !important;
  min-height: 44px;
  padding: 6px;
  gap: 3px;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 999px;
  background: rgba(4, 43, 54, .46);
  box-shadow:
    0 14px 34px rgba(3, 29, 37, .25),
    inset 0 1px 0 rgba(255, 255, 255, .1);
  backdrop-filter: blur(14px) saturate(135%);
  -webkit-backdrop-filter: blur(14px) saturate(135%);
}

.swiper-slider_fullheight .swiper-pagination-bullet {
  position: relative;
  display: block;
  width: 38px;
  height: 30px;
  margin: 0 !important;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, .055);
  box-shadow: none;
  opacity: 1;
  cursor: pointer;
  transform: none !important;
  transition:
    width .42s var(--bv-ease),
    background-color .25s ease,
    box-shadow .25s ease,
    transform .28s var(--bv-ease) !important;
}

.swiper-slider_fullheight .swiper-pagination-bullet::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 21px;
  height: 4px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .58);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2);
  content: "";
  transform: translate(-50%, -50%) !important;
  transition:
    width .42s var(--bv-ease),
    height .28s ease,
    background-color .25s ease,
    box-shadow .25s ease;
}

.swiper-slider_fullheight .swiper-pagination-bullet:hover {
  background: rgba(255, 207, 192, .15);
  box-shadow: inset 0 0 0 1px rgba(255, 198, 180, .22);
  transform: translateY(-2px) !important;
}

.swiper-slider_fullheight .swiper-pagination-bullet:hover::before {
  width: 27px;
  height: 5px;
  background: #ffc2b2;
  box-shadow: 0 0 14px rgba(255, 176, 154, .38);
}

.swiper-slider_fullheight .swiper-pagination-bullet-active {
  width: 58px;
  background: rgba(239, 112, 95, .18);
  box-shadow:
    inset 0 0 0 1px rgba(255, 181, 162, .28),
    0 8px 18px rgba(217, 83, 69, .16);
}

.swiper-slider_fullheight .swiper-pagination-bullet-active::before,
.swiper-slider_fullheight .swiper-pagination-bullet-active:hover::before {
  width: 36px;
  height: 5px;
  background: linear-gradient(90deg, #ff9c82, var(--bv-coral));
  box-shadow:
    0 0 15px rgba(239, 112, 95, .48),
    inset 0 1px 0 rgba(255, 255, 255, .28);
}

.swiper-slider_fullheight .swiper-pagination-bullet-active:hover {
  background: rgba(239, 112, 95, .26);
}

.swiper-slider_fullheight .swiper-pagination-bullet:focus-visible {
  outline: 2px solid #ffd0c3;
  outline-offset: 2px;
  background: rgba(255, 207, 192, .16);
}

@media (max-width: 479.98px) {
  .swiper-slider_fullheight .swiper-pagination {
    min-height: 40px;
    padding: 5px;
  }

  .swiper-slider_fullheight .swiper-pagination-bullet {
    width: 34px;
    height: 28px;
  }

  .swiper-slider_fullheight .swiper-pagination-bullet-active {
    width: 50px;
  }

  .swiper-slider_fullheight .swiper-pagination-bullet-active::before,
.swiper-slider_fullheight .swiper-pagination-bullet-active:hover::before {
    width: 31px;
  }
}

.bv-heritage-card {
  position: absolute;
  z-index: 6;
  right: max(38px, calc((100vw - 1240px) / 2));
  bottom: 40px;
  display: flex;
  width: 225px;
  min-height: 86px;
  padding: 17px 20px;
  border: 1px solid rgba(255, 255, 255, .3);
  border-radius: 22px;
  color: var(--bv-white);
  background: rgba(4, 43, 54, .52);
  box-shadow: 0 18px 44px rgba(4, 43, 54, .24);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  flex-direction: column;
  justify-content: center;
  pointer-events: none;
}

.bv-heritage-card strong {
  color: var(--bv-white);
  font-family: "Playfair Display", Georgia, serif;
  font-size: 24px;
  line-height: 1.05;
  letter-spacing: -.025em;
}

.bv-heritage-card span {
  margin-top: 6px;
  color: rgba(255, 255, 255, .7);
  font-family: "Montserrat", Helvetica, Arial, sans-serif;
  font-size: 9px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .13em;
  text-transform: uppercase;
}

/* Internal page hero */
.parallax-header {
  position: relative;
  min-height: 450px;
  overflow: hidden;
  border-radius: 0 0 var(--bv-radius-lg) var(--bv-radius-lg);
  background-position: center !important;
  background-size: cover !important;
  box-shadow: var(--bv-shadow);
}

.parallax-header::before {
  position: absolute;
  z-index: 1;
  inset: 0;
  background:
    linear-gradient(115deg, rgba(4, 43, 54, .86), rgba(4, 43, 54, .31) 68%),
    linear-gradient(0deg, rgba(4, 43, 54, .36), transparent 54%);
  content: "";
}

.parallax-header::after {
  position: absolute;
  z-index: 2;
  right: 34px;
  bottom: 28px;
  left: 34px;
  height: 1px;
  background: rgba(255, 255, 255, .34);
  content: "";
}

.parallax-header .parallax-content,
.parallax-header__inner,
.parallax-header__content {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 450px;
}

.parallax-header__content .row {
  justify-content: flex-start !important;
}

.parallax-header__content [class*="col-"] {
  max-width: 980px;
  flex: 0 0 980px;
  text-align: left;
}

.parallax-header h2 {
  position: relative;
  margin: 0;
  padding-top: 54px;
  color: var(--bv-white);
  font-size: clamp(46px, 6.5vw, 88px);
  text-shadow: 0 4px 30px rgba(0, 0, 0, .2);
}

.parallax-header h2::before {
  position: absolute;
  top: 28px;
  left: 0;
  color: var(--bv-sky);
  font-family: "Montserrat", Helvetica, Arial, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  content: "Bagno Vittoria · Tirrenia";
}

/* Main content */
.section-md,
.section-lg {
  position: relative;
}

.section-md {
  padding-top: clamp(72px, 8vw, 112px);
  padding-bottom: clamp(72px, 8vw, 112px);
}

.section-lg {
  padding-top: clamp(86px, 10vw, 142px);
  padding-bottom: clamp(86px, 10vw, 142px);
}

.bg-default {
  background-color: var(--bv-sand-light) !important;
}

.bg-gray-lighter {
  background:
    radial-gradient(circle at 82% 18%, rgba(32, 182, 178, .12), transparent 23rem),
    var(--bv-sand) !important;
}

.bg-accent {
  color: var(--bv-white);
  background:
    radial-gradient(circle at 87% 15%, rgba(189, 233, 228, .22), transparent 19rem),
    linear-gradient(135deg, var(--bv-sea), var(--bv-night)) !important;
}

.section-lg > .container > .row > [class*="col-"] > h2,
.section-md > .container > h2,
.section-md > .container > h3 {
  margin-bottom: 30px;
}

.section-lg > .container > .row > [class*="col-"] > p + .button,
.section-md p + .button {
  margin-top: 34px;
}

@media (min-width: 768px) {
  .page > .section-lg.bg-default + .section-lg.bg-default {
    padding-top: 24px;
  }
}

.section-md.text-center > .container > h3 {
  max-width: 850px;
  margin-right: auto;
  margin-left: auto;
}

.text-width-2 {
  max-width: 710px;
}

.button,
button.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 15px 26px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-family: "Montserrat", Helvetica, Arial, sans-serif;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .13em;
  text-transform: uppercase;
  box-shadow: 0 12px 26px rgba(239, 112, 95, .20);
  transition: transform .3s var(--bv-ease), box-shadow .3s ease, background .25s ease;
}

.button::after {
  margin-left: 10px;
  font-size: 18px;
  font-weight: 400;
  line-height: 0;
  content: "→";
}

.button-primary,
button.button-primary {
  color: var(--bv-white);
  background: var(--bv-coral);
  border-color: var(--bv-coral);
}

.button-primary:hover,
.button-primary:focus,
button.button-primary:hover,
button.button-primary:focus {
  color: var(--bv-white);
  background: var(--bv-coral-dark);
  border-color: var(--bv-coral-dark);
  box-shadow: 0 17px 34px rgba(217, 83, 69, .28);
  transform: translateY(-3px);
}

.button-primary-outline {
  color: var(--bv-white);
  background: transparent;
  border-color: rgba(255, 255, 255, .6);
  box-shadow: none;
}

/* Media cards,
video and galleries */
.videoWrapper {
  position: relative;
  width: 100%;
  max-width: 1040px;
  margin-right: auto;
  margin-left: auto;
  height: auto !important;
  padding: 0 !important;
  padding-bottom: 0 !important;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border: 10px solid var(--bv-white);
  border-radius: var(--bv-radius);
  background: var(--bv-night);
  box-shadow: var(--bv-shadow);
}

.videoWrapper::after {
  position: absolute;
  inset: 0;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: calc(var(--bv-radius) - 10px);
  content: "";
  pointer-events: none;
}

.videoWrapper iframe,
.videoWrapper video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.owl-carousel {
  overflow: hidden;
  border-radius: var(--bv-radius);
  background: var(--bv-night);
  box-shadow: var(--bv-shadow);
}

.owl-carousel .owl-stage-outer,
.owl-carousel .owl-stage,
.owl-carousel .owl-item,
.owl-carousel .item,
.owl-carousel figure,
.img-thumbnail-variant-1 {
  border-radius: var(--bv-radius);
}

.owl-carousel figure {
  position: relative;
  height: clamp(340px, 42vw, 560px);
  margin: 0;
  overflow: hidden;
  background: var(--bv-night);
}

.owl-carousel figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .8s var(--bv-ease), filter .5s ease;
}

.img-thumbnail-variant-1:hover figure img {
  filter: saturate(1.08);
  transform: scale(1.045);
}

.img-thumbnail-variant-1 .caption {
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(4, 43, 54, .34);
  opacity: 0;
  transition: opacity .3s ease;
}

.img-thumbnail-variant-1:hover .caption {
  opacity: 1;
}

.owl-nav button {
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 50%;
  color: var(--bv-night);
  background: rgba(255, 255, 255, .92);
  box-shadow: var(--bv-shadow-sm);
}

.owl-dots {
  bottom: 20px;
}

.owl-dot span {
  background: rgba(255, 255, 255, .6);
}

.owl-dot.active span {
  background: var(--bv-coral);
}


/* Reviews */
.quote-review {
  position: relative;
  height: 100%;
  min-height: 310px;
  padding: 32px;
  overflow: hidden;
  border: 1px solid var(--bv-border);
  border-radius: var(--bv-radius);
  background: rgba(255, 255, 255, .74);
  box-shadow: var(--bv-shadow-sm);
  text-align: left;
  transition: transform .4s var(--bv-ease), box-shadow .4s ease;
}

.quote-review::before {
  display: block;
  margin-bottom: 14px;
  color: var(--bv-coral);
  font-family: "Playfair Display", Georgia, serif;
  font-size: 68px;
  font-weight: 700;
  line-height: .55;
  content: "“";
}

.quote-review:hover {
  box-shadow: var(--bv-shadow);
  transform: translateY(-8px);
}

.quote-review h4 {
  margin-bottom: 22px;
  font-size: 22px;
}

.quote-review__body p {
  font-size: 14px;
  line-height: 1.75;
}

.quote-review__body .cite {
  margin-top: 20px;
  color: var(--bv-sea);
  font-weight: 700;
}

/* Virtual tour and map */
.object-wrap {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  min-height: 600px;
  overflow: hidden;
}

.object-wrap > .section-lg {
  display: flex;
  align-items: center;
  min-width: 0;
  padding-top: clamp(78px, 9vw, 126px);
  padding-bottom: clamp(78px, 9vw, 126px);
}

.object-wrap > .section-lg .container {
  width: min(100% - 64px, 620px);
  margin-right: 54px;
  margin-left: auto;
}

.object-wrap > .section-lg .row,
.object-wrap > .section-lg [class*="col-"] {
  display: block;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  flex: none;
}

.object-wrap__body,
.object-wrap__body-sizing-1,
.object-wrap__body-md-right {
  position: relative !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  width: 100% !important;
  min-height: 600px;
  overflow: hidden;
  border-radius: var(--bv-radius-lg) 0 0 var(--bv-radius-lg);
  box-shadow: -20px 0 54px rgba(7, 57, 71, .12);
}

.object-wrap__body iframe {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  border: 0;
  filter: saturate(.9) contrast(1.03);
}

.object-wrap.bg-gray-lighter .object-wrap__body {
  border: 12px solid var(--bv-sand);
  border-radius: var(--bv-radius-lg) 0 0 var(--bv-radius-lg);
}

/* Contact page */
.contact-info {
  height: 100%;
  margin: 0;
  padding: 32px;
  border: 1px solid var(--bv-border);
  border-radius: var(--bv-radius);
  background: var(--bv-sand);
  box-shadow: var(--bv-shadow-sm);
}

.contact-info li + li {
  margin-top: 32px;
  padding-top: 28px;
  border-top: 1px solid var(--bv-border);
}

.contact-info h4 {
  margin-bottom: 12px;
  color: var(--bv-sea);
  font-size: 22px;
}

.rd-mailform {
  padding: clamp(28px, 4vw, 48px);
  border: 1px solid var(--bv-border);
  border-radius: var(--bv-radius);
  background: var(--bv-white);
  box-shadow: var(--bv-shadow-sm);
}

.form-label-outside {
  margin-bottom: 8px;
  color: var(--bv-ink);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .11em;
}

.form-input {
  min-height: 56px;
  padding: 15px 17px;
  border: 1px solid var(--bv-border);
  border-radius: 14px;
  color: var(--bv-ink);
  background: var(--bv-sand-light);
  box-shadow: none;
}

.form-input:focus {
  border-color: var(--bv-sea);
  background: var(--bv-white);
  box-shadow: 0 0 0 4px rgba(10, 135, 148, .10);
}

textarea.form-input {
  min-height: 180px;
}

.rd-mailform input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin-right: 6px;
  accent-color: var(--bv-sea);
}

.button[disabled],
button[disabled] {
  cursor: not-allowed;
  opacity: .55;
  filter: grayscale(.25);
}

/* Footer */
.pre-footer-corporate {
  position: relative;
  padding-top: clamp(86px, 9vw, 126px);
  padding-bottom: clamp(72px, 8vw, 104px);
  color: rgba(255, 255, 255, .76);
  background:
    radial-gradient(circle at 14% 20%, rgba(32, 182, 178, .22), transparent 26rem),
    var(--bv-night) !important;
}

.pre-footer-corporate::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 22px;
  border-radius: 0 0 50% 50%;
  background: var(--bv-sand-light);
  content: "";
}

.pre-footer-corporate p,
.pre-footer-corporate a,
.pre-footer-corporate .unit-body,
.pre-footer-corporate .icon {
  color: rgba(255, 255, 255, .76);
}

.pre-footer-corporate a:hover {
  color: var(--bv-sky);
}

.pre-footer-corporate h6 {
  color: var(--bv-sky);
}

.pre-footer-corporate .list-xs,
.pre-footer-corporate ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.pre-footer-corporate .list-xs li + li {
  margin-top: 14px;
}

.pre-footer-corporate .unit {
  align-items: flex-start;
}

.pre-footer-corporate .unit-left {
  min-width: 20px;
  margin-right: 10px;
}

.pre-footer-corporate img[src*="logo-instagram"],
.pre-footer-corporate img[src*="logo-facebook"] {
  width: 42px;
  height: 42px;
  margin: 6px 5px 0 0;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 50%;
  transition: transform .3s var(--bv-ease), box-shadow .3s ease;
}

.pre-footer-corporate:not(.bv-prefooter-modern) a:hover img[src*="logo-instagram"],
.pre-footer-corporate:not(.bv-prefooter-modern) a:hover img[src*="logo-facebook"] {
  box-shadow: 0 12px 24px rgba(0, 0, 0, .2);
  transform: translateY(-4px);
}

.pre-footer-corporate img[src*="segnalato"] {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  outline: 0;
  background: transparent;
  box-shadow: none;
}

.footer-corporate {
  position: relative;
  padding: 0;
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(circle at 8% 10%, rgba(32, 182, 178, .16), transparent 24rem),
    radial-gradient(circle at 96% 110%, rgba(239, 112, 95, .13), transparent 22rem),
    var(--bv-night-deep) !important;
}

.footer-corporate::before {
  position: absolute;
  z-index: -1;
  top: 0;
  right: 0;
  left: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--bv-sea-bright), var(--bv-sky) 48%, var(--bv-coral));
  content: "";
}

.footer-corporate__inner {
  display: flex;
  padding: clamp(34px, 4vw, 52px) 0 28px;
  border: 0;
  flex-direction: column;
  gap: 22px;
}

.footer-corporate__main {
  display: grid;
  align-items: stretch;
  grid-template-columns: minmax(250px, .82fr) minmax(0, 1.7fr);
  gap: clamp(22px, 4vw, 56px);
}

.footer-corporate__identity {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
}

.footer-corporate__brand {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  gap: 15px;
  color: var(--bv-white) !important;
}

.footer-corporate__logo {
  display: grid;
  width: 68px;
  height: 68px;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 20px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 16px 34px rgba(0, 0, 0, .16);
  place-items: center;
  transition: transform .35s var(--bv-ease), box-shadow .35s ease;
}

.footer-corporate__brand:hover .footer-corporate__logo {
  box-shadow: 0 20px 42px rgba(0, 0, 0, .24);
  transform: translateY(-3px) rotate(-2deg);
}

.footer-corporate__logo img {
  width: 54px;
  max-width: 54px;
  height: 50px;
  object-fit: contain;
}

.footer-corporate__signature {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.footer-corporate__signature strong {
  color: var(--bv-white);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 20px;
  line-height: 1.1;
  letter-spacing: -.02em;
}

.footer-corporate__signature span {
  color: var(--bv-sky);
  font-size: 9px;
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.footer-corporate__copyright {
  max-width: 330px;
  margin: 16px 0 0;
  color: rgba(255, 255, 255, .64);
  font-size: 11px;
  line-height: 1.65;
  letter-spacing: .02em;
}

.footer-corporate__legal {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(120px, .72fr) minmax(205px, 1.34fr) minmax(240px, 1.7fr);
  gap: 10px;
}

.footer-corporate__legal-item {
  display: flex;
  min-width: 0;
  min-height: 100px;
  padding: 17px 18px;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 18px;
  flex-direction: column;
  justify-content: center;
  color: rgba(255, 255, 255, .88) !important;
  background: rgba(255, 255, 255, .055);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .04);
  backdrop-filter: blur(8px);
  transition: border-color .3s ease, background-color .3s ease, transform .3s var(--bv-ease);
}

a.footer-corporate__legal-item:hover {
  border-color: rgba(189, 233, 228, .38);
  color: var(--bv-white) !important;
  background: rgba(255, 255, 255, .09);
  transform: translateY(-3px);
}

.footer-corporate__legal-label {
  margin-bottom: 7px;
  color: var(--bv-sea-bright);
  font-size: 9px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.footer-corporate__legal-item strong {
  overflow-wrap: anywhere;
  color: inherit;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.45;
}

.footer-corporate__legal-item small {
  margin-top: 4px;
  color: rgba(255, 255, 255, .56);
  font-size: 9px;
  line-height: 1.45;
}

.footer-corporate__privacy {
  position: relative;
  padding-right: 42px;
}

.footer-corporate__privacy::after {
  position: absolute;
  top: 50%;
  right: 17px;
  color: var(--bv-sky);
  content: "↗";
  font-size: 18px;
  line-height: 1;
  transform: translateY(-50%);
}

.footer-corporate__lower {
  display: flex;
  padding-top: 17px;
  border-top: 1px solid rgba(255, 255, 255, .1);
  align-items: center;
  justify-content: flex-end;
}

.footer-corporate__credit {
  margin: 0;
  color: rgba(255, 255, 255, .48);
  font-size: 10px;
  line-height: 1.6;
  letter-spacing: .025em;
}

.footer-corporate__credit a {
  color: rgba(255, 255, 255, .7);
}

.footer-corporate__credit a:hover {
  color: var(--bv-sky);
}

.footer-corporate__credit img {
  display: inline-block;
  width: 11px;
  height: auto;
  margin: 0 3px;
  vertical-align: middle;
}

.footer-corporate .technical-cookie-notice {
  display: flex;
  width: 100%;
  margin: 0;
  padding: 16px 110px 16px 17px;
  border: 1px solid rgba(189, 233, 228, .14);
  border-radius: 18px;
  align-items: flex-start;
  gap: 12px;
  color: rgba(255, 255, 255, .65);
  background: rgba(189, 233, 228, .055);
  font-size: 10px;
  line-height: 1.7;
  letter-spacing: .015em;
  text-align: left;
}

.technical-cookie-notice__icon {
  display: grid;
  min-width: 25px;
  height: 25px;
  border: 1px solid rgba(189, 233, 228, .28);
  border-radius: 50%;
  color: var(--bv-sky);
  background: rgba(32, 182, 178, .08);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  place-items: center;
}

/* Video archive */
.bv-page-video .page > .section-lg:not(.bg-accent) {
  padding-top: clamp(48px, 6vw, 84px);
  padding-bottom: clamp(48px, 6vw, 84px);
}

.bv-page-video .page > .section-lg:not(.bg-accent) .col-lg-6 {
  max-width: 920px;
  flex: 0 0 920px;
}

.bv-page-video .page > .section-lg:nth-of-type(odd) {
  background: var(--bv-sand) !important;
}

/* Gentle progressive reveal */
.bv-js .bv-reveal {
  opacity: 0;
  transform: translateY(34px);
  transition: opacity .85s var(--bv-ease), transform .85s var(--bv-ease);
}

.bv-js .bv-reveal.bv-visible {
  opacity: 1;
  transform: translateY(0);
}

.wow-animation .wow {
  visibility: visible !important;
}

/* Responsive refinements */
@media (max-width: 1199.98px) {
  .page {
    padding-top: 0 !important;
  }

  .page-header {
    position: sticky !important;
    z-index: 1000;
    top: 0;
    height: 76px;
  }

  .rd-navbar-wrap,
  .rd-navbar {
    height: 76px !important;
  }

  .rd-navbar-top-panel,
  .rd-navbar-inner {
    width: 100%;
    border-radius: 0;
  }

  .rd-navbar-fixed .rd-navbar-top-panel__toggle,
  .rd-navbar-fixed .rd-navbar-top-panel__outer {
    display: none !important;
  }

  .rd-navbar-fixed .rd-navbar-panel {
    position: relative !important;
    top: 0 !important;
    right: auto !important;
    bottom: auto !important;
    left: 0 !important;
    transform: none !important;
  }

  .rd-navbar-fixed .rd-navbar-nav-wrap {
    position: absolute !important;
    top: 76px !important;
    right: auto !important;
    bottom: auto !important;
    left: 0 !important;
    height: calc(100vh - 76px) !important;
    max-height: calc(100vh - 76px) !important;
    overflow-x: hidden;
    overflow-y: auto;
    transform: translateX(-105%) !important;
  }

  .rd-navbar-fixed .rd-navbar-nav-wrap.active {
    transform: translateX(0) !important;
  }

  .swiper-slider_fullheight {
    height: clamp(600px, 75vh, 760px) !important;
  }

  .swiper-slide-caption {
    padding-top: 104px;
  }

  .swiper-slide-caption [class*="col-"],
  .parallax-header__content [class*="col-"] {
    max-width: 82%;
    flex-basis: 82%;
  }

  .object-wrap > .section-lg .container {
    margin-right: 32px;
  }
}

@media (min-width: 768px) and (max-width: 1199.98px) {
  .page-header {
    position: sticky !important;
    top: 0;
    height: 82px;
  }

  .rd-navbar-wrap,
.rd-navbar {
    height: 82px !important;
  }

  .rd-navbar-static .rd-navbar-top-panel__outer {
    display: none !important;
  }

  .rd-navbar-static .rd-navbar-inner {
    display: flex !important;
    width: calc(100% - 30px);
    min-height: 132px;
    padding: 7px 16px 12px;
    border-radius: 0 0 26px 26px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }

  .rd-navbar-static .rd-navbar-panel {
    display: flex !important;
    float: none !important;
    width: 100% !important;
    height: 70px;
    margin: 0;
    align-items: center;
    justify-content: center;
  }

  .rd-navbar-static .rd-navbar-brand {
    margin: 0;
  }

  .rd-navbar-static .rd-navbar-brand img {
    width: auto;
    height: 66px;
    max-height: 66px;
  }

  .rd-navbar-static .rd-navbar-nav-wrap {
    display: block !important;
    float: none !important;
    width: 100% !important;
    padding: 0;
  }

  .rd-navbar-static .rd-navbar-nav {
    display: flex !important;
    width: 100% !important;
    margin: 0 !important;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
  }

  .rd-navbar-static .rd-navbar-nav > li {
    width: auto !important;
    margin: 0 !important;
    flex: 0 0 auto;
  }

  .rd-navbar-static .rd-navbar-nav > li > a {
    display: flex;
    min-height: 34px;
    padding: 0 7px !important;
    border-radius: 999px;
    font-size: 9px;
    align-items: center;
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-language-link {
    width: 29px !important;
    min-width: 29px !important;
    flex: 0 0 29px !important;
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-language-link > a {
    width: 29px !important;
    min-width: 29px !important;
    padding: 0 !important;
    justify-content: center;
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-language-link img {
    width: 19px !important;
    min-width: 19px !important;
    max-width: none !important;
    height: 19px !important;
  }
}

@media (max-width: 991px) {
  body {
    font-size: 15px;
  }

  .container {
    width: min(100% - 36px, 920px);
  }

  .swiper-slider_fullheight .swiper-slide::after {
    top: 20px;
    right: 18px;
    bottom: 20px;
    left: 18px;
    border-radius: 34px;
  }

  .swiper-slide-caption [class*="col-"],
.parallax-header__content [class*="col-"] {
    max-width: 100%;
    flex: 0 0 100%;
  }

  .parallax-header,
.parallax-header .parallax-content,
.parallax-header__inner,
.parallax-header__content {
    min-height: 390px;
  }

  .parallax-header {
    border-radius: 0 0 36px 36px;
  }

  .object-wrap {
    display: flex;
    min-height: 0;
    flex-direction: column;
  }

  .bv-page-video .page > .section-lg:not(.bg-accent) .col-lg-6 {
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
  }

  .object-wrap > .section-lg .container {
    width: min(100% - 36px, 720px);
    margin-right: auto;
    margin-left: auto;
  }

  .object-wrap__body,
.object-wrap__body-sizing-1,
.object-wrap__body-md-right {
    min-height: 480px;
    margin: 0 18px 24px;
    width: calc(100% - 36px) !important;
    border-radius: 34px !important;
    box-shadow: var(--bv-shadow-sm);
  }

  .pre-footer-corporate .row > [class*="col-"] {
    margin-bottom: 46px;
  }

  .ui-to-top {
    display: none !important;
  }

  .footer-corporate .technical-cookie-notice {
    padding-right: 17px;
  }

  .footer-corporate__main {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .footer-corporate__identity {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
  }

  .footer-corporate__copyright {
    margin-top: 0;
    text-align: right;
  }

  .footer-corporate__legal {
    grid-template-columns: minmax(110px, .72fr) minmax(190px, 1.28fr) minmax(230px, 1.7fr);
  }
}

@media (max-width: 767.98px) {
  .container {
    width: min(100% - 28px, 680px);
  }

  body h6 {
    font-size: 10px;
    letter-spacing: .14em;
  }

  .swiper-slider_fullheight {
    height: 690px !important;
    min-height: 690px;
  }

  .swiper-slider_fullheight .swiper-slide {
    background-position: 58% center;
  }

  .swiper-slider_fullheight .swiper-slide::before {
    background:
      linear-gradient(90deg, rgba(3, 33, 42, .78), rgba(3, 33, 42, .32)),
      linear-gradient(0deg, rgba(3, 33, 42, .64), transparent 68%);
  }

  .swiper-slide-caption {
    align-items: flex-end;
    padding: 120px 0 104px;
  }

  .swiper-slide-caption h1 {
    font-size: clamp(47px, 15vw, 72px);
  }

  .swiper-slide-caption h2 {
    font-size: 12px;
  }

  .swiper-slide-caption p {
    font-size: 15px;
  }

  .swiper-slider_fullheight .swiper-pagination {
    bottom: 52px !important;
    left: 28px !important;
  }

  .bv-heritage-card {
    right: 22px;
    bottom: 36px;
    width: 158px;
    min-height: 65px;
    padding: 12px 14px;
    border-radius: 17px;
  }

  .bv-heritage-card strong {
    font-size: 18px;
  }

  .bv-heritage-card span {
    margin-top: 3px;
    font-size: 7px;
    letter-spacing: .1em;
  }

  .parallax-header,
.parallax-header .parallax-content,
.parallax-header__inner,
.parallax-header__content {
    min-height: 350px;
  }

  .parallax-header h2 {
    padding-top: 40px;
    font-size: clamp(42px, 13vw, 68px);
  }

  .parallax-header h2::before {
    top: 18px;
    font-size: 9px;
  }

  .section-md,
.section-lg {
    padding-top: 72px;
    padding-bottom: 72px;
  }

  .row-50 > * {
    margin-bottom: 36px;
  }

  .videoWrapper {
    border-width: 5px;
    border-radius: 20px;
  }

  .owl-carousel,
.owl-carousel .owl-stage-outer,
.owl-carousel .owl-stage,
.owl-carousel .owl-item,
.owl-carousel .item,
.owl-carousel figure,
.img-thumbnail-variant-1 {
    border-radius: 20px;
  }

  .owl-carousel figure {
    height: 72vw;
    min-height: 280px;
    max-height: 420px;
  }

  .quote-review {
    min-height: 0;
  }

  .object-wrap__body,
.object-wrap__body-sizing-1,
.object-wrap__body-md-right {
    min-height: 390px;
    margin-right: 14px;
    margin-left: 14px;
    width: calc(100% - 28px) !important;
  }

  .contact-info,
.rd-mailform {
    padding: 24px;
    border-radius: 22px;
  }

  .pre-footer-corporate {
    padding-bottom: 50px;
  }

  .footer-corporate {
    text-align: center;
  }

  .footer-corporate__inner {
    padding-top: 34px;
    gap: 18px;
  }

  .footer-corporate__identity {
    flex-direction: column;
    gap: 12px;
  }

  .footer-corporate__brand {
    margin: 0 auto;
  }

  .footer-corporate__copyright {
    margin-top: 0;
    text-align: center;
  }

  .footer-corporate__legal {
    grid-template-columns: 1fr;
  }

  .footer-corporate__legal-item {
    min-height: 0;
    text-align: left;
  }

  .footer-corporate__lower {
    justify-content: center;
  }

  .footer-corporate .technical-cookie-notice {
    padding: 15px;
    text-align: left;
  }
}

@media (max-width: 479px) {
  .swiper-slider_fullheight .swiper-slide::after {
    right: 10px;
    left: 10px;
  }

  .swiper-slide-caption h6 {
    padding: 8px 11px;
    letter-spacing: .12em;
  }

  .object-wrap__body,
.object-wrap__body-sizing-1,
.object-wrap__body-md-right {
    min-height: 330px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
*::before,
*::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }

  .bv-js .bv-reveal {
    opacity: 1;
    transform: none;
  }
}

/* 2026 experience layer: faster navigation,
clearer hierarchy and mobile actions */
#page-loader {
  z-index: 3000;
  opacity: 1;
  visibility: visible;
  transition: opacity .42s ease, visibility .42s ease;
}

.bv-page-ready #page-loader {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.bv-skip-link {
  position: fixed;
  z-index: 4000;
  top: 12px;
  left: 12px;
  padding: 11px 17px;
  border-radius: 999px;
  color: var(--bv-white) !important;
  background: var(--bv-night-deep);
  box-shadow: var(--bv-shadow-sm);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  transform: translateY(-160%);
}

.bv-skip-link:focus {
  transform: translateY(0);
}

.bv-scroll-progress {
  position: fixed;
  z-index: 1800;
  top: 0;
  right: 0;
  left: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--bv-sea-bright), var(--bv-coral));
  box-shadow: 0 2px 12px rgba(32, 182, 178, .26);
  pointer-events: none;
  transform: scaleX(0);
  transform-origin: 0 50%;
}

.bv-menu-scrim {
  position: fixed;
  z-index: 90;
  inset: 76px 0 0;
  display: block;
  width: 100%;
  height: calc(100% - 76px);
  padding: 0;
  border: 0;
  opacity: 0;
  visibility: hidden;
  background: rgba(4, 43, 54, .56);
  backdrop-filter: blur(4px);
  transition: opacity .3s ease, visibility .3s ease;
}

.bv-menu-open .bv-menu-scrim {
  opacity: 1;
  visibility: visible;
}

.bv-menu-open {
  overflow: hidden;
}

@media (min-width: 1200px) {
  .bv-menu-scrim {
    display: none;
  }

  .rd-navbar-static .rd-navbar-nav > li > a.bv-nav-contact {
    margin-left: 4px;
    padding-right: 17px;
    padding-left: 17px;
    color: var(--bv-white);
    background: var(--bv-coral);
    box-shadow: 0 10px 24px rgba(239, 112, 95, .22);
  }

  .rd-navbar-static .rd-navbar-nav > li > a.bv-nav-contact::after {
    display: none;
  }

  .rd-navbar-static .rd-navbar-nav > li > a.bv-nav-contact:hover {
    color: var(--bv-white);
    background: var(--bv-coral-dark);
    transform: translateY(-2px);
  }
}

.rd-navbar-fixed .rd-navbar-nav > li > a.bv-nav-contact {
  color: var(--bv-white);
  background: var(--bv-coral);
}

/* Homepage choice cards */
.bv-home-quicklinks {
  position: relative;
  z-index: 8;
  margin-top: -30px;
  padding-bottom: 26px;
}

.bv-home-quicklinks__inner {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.bv-home-quicklinks__item {
  position: relative;
  display: grid;
  min-height: 108px;
  padding: 20px 54px 18px 20px;
  overflow: hidden;
  border: 1px solid var(--bv-border);
  border-radius: 20px;
  color: var(--bv-ink) !important;
  background: rgba(255, 255, 255, .96);
  box-shadow: var(--bv-shadow-sm);
  align-content: center;
  backdrop-filter: blur(14px);
  transition: border-color .3s ease, box-shadow .3s ease, transform .35s var(--bv-ease);
}

.bv-home-quicklinks__item:hover {
  border-color: rgba(10, 135, 148, .28);
  box-shadow: var(--bv-shadow);
  transform: translateY(-6px);
}

.bv-home-quicklinks__number {
  margin-bottom: 9px;
  color: var(--bv-sea);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .16em;
}

.bv-home-quicklinks__item strong {
  color: var(--bv-ink);
  font-family: "Playfair Display", Georgia, serif;
  font-size: clamp(18px, 2vw, 24px);
  line-height: 1.1;
}

.bv-home-quicklinks__icon {
  position: absolute;
  top: 50%;
  right: 20px;
  display: grid;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  color: var(--bv-white);
  background: var(--bv-sea);
  font-size: 16px;
  place-items: center;
  transform: translateY(-50%);
  transition: background .25s ease, transform .35s var(--bv-ease);
}

.bv-home-quicklinks__icon svg {
  display: block;
  width: 20px;
  height: 20px;
}

.bv-home-quicklinks__item:hover .bv-home-quicklinks__icon {
  background: var(--bv-coral);
  transform: translateY(-50%) rotate(8deg) scale(1.08);
}

/* Internal page navigator */
.bv-page-nav {
  position: relative;
  z-index: 8;
  margin-top: -28px;
  margin-bottom: 12px;
}

.bv-page-nav__inner {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 9px;
  border: 1px solid var(--bv-border);
  border-radius: 22px;
  background: rgba(255, 255, 255, .96);
  box-shadow: var(--bv-shadow-sm);
  backdrop-filter: blur(16px);
}

.bv-page-nav__item {
  display: flex;
  min-width: 0;
  min-height: 62px;
  padding: 13px 15px;
  border-radius: 15px;
  align-items: center;
  gap: 12px;
  color: var(--bv-ink) !important;
  transition: color .25s ease, background .25s ease, transform .3s var(--bv-ease);
}

.bv-page-nav__item:hover,
.bv-page-nav__item:focus {
  color: var(--bv-white) !important;
  background: var(--bv-sea);
  transform: translateY(-2px);
}

.bv-page-nav__number {
  color: var(--bv-coral);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .13em;
}

.bv-page-nav__item:hover .bv-page-nav__number,
.bv-page-nav__item:focus .bv-page-nav__number {
  color: var(--bv-sky);
}

.bv-page-nav__label {
  min-width: 0;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.35;
  letter-spacing: .07em;
  overflow-wrap: normal;
  text-transform: uppercase;
  white-space: normal;
}

/* Wider,
editorial galleries */
.bv-gallery-section {
  padding-top: clamp(30px, 5vw, 72px);
}

.bv-gallery-section > .container > .row > [class*="col-"] {
  width: 100%;
  max-width: 1040px;
  flex: 0 0 1040px;
}

.bv-gallery-section .owl-carousel::before {
  position: absolute;
  z-index: 3;
  top: 20px;
  left: 20px;
  padding: 8px 12px;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 999px;
  color: var(--bv-white);
  background: rgba(4, 43, 54, .54);
  content: "GALLERY";
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .16em;
  pointer-events: none;
  backdrop-filter: blur(8px);
}

.bv-video-section {
  position: relative;
}

.bv-video-section::before {
  position: absolute;
  z-index: 2;
  top: clamp(46px, 7vw, 92px);
  left: max(18px, calc((100vw - 1060px) / 2));
  color: rgba(10, 135, 148, .25);
  content: var(--bv-video-index);
  font-family: "Playfair Display", Georgia, serif;
  font-size: clamp(48px, 6vw, 82px);
  font-weight: 700;
  line-height: 1;
}

/* Restaurant becomes an editorial destination page */
.bv-restaurant-intro {
  overflow: hidden;
  background:
    radial-gradient(circle at 15% 12%, rgba(239, 112, 95, .09), transparent 26rem),
    radial-gradient(circle at 90% 32%, rgba(32, 182, 178, .10), transparent 25rem),
    var(--bv-sand-light) !important;
}

.bv-restaurant-intro > .container > .row:first-child > [class*="col-"] {
  max-width: 930px;
  flex: 0 0 930px;
}

@media (max-width: 991px) {
  .bv-restaurant-intro > .container > .row:first-child > [class*="col-"] {
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
  }
}

.bv-restaurant-intro img[src*="logo-ristorante"] {
  width: min(220px, 62vw);
  height: auto;
  padding: 20px;
  border: 1px solid var(--bv-border);
  border-radius: 28px;
  background: var(--bv-white);
  box-shadow: var(--bv-shadow-sm);
}

.bv-restaurant-intro font[color="red"] {
  display: inline-flex;
  margin: 8px 0 20px;
  padding: 10px 16px;
  border-radius: 999px;
  color: var(--bv-white) !important;
  background: var(--bv-coral);
  font-size: 12px;
  font-weight: 700;
}

.bv-restaurant-intro font[color="red"] a {
  color: inherit;
}

.bv-restaurant-highlights {
  display: grid;
  margin: 32px 0 38px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.bv-restaurant-highlight {
  display: flex;
  min-height: 104px;
  padding: 19px;
  border: 1px solid var(--bv-border);
  border-radius: 20px;
  background: rgba(255, 255, 255, .78);
  box-shadow: var(--bv-shadow-sm);
  flex-direction: column;
  justify-content: center;
}

.bv-restaurant-highlight strong {
  color: var(--bv-sea);
  font-family: "Playfair Display", Georgia, serif;
  font-size: 22px;
  line-height: 1.15;
}

.bv-restaurant-highlight span {
  margin-top: 7px;
  color: var(--bv-ink-soft);
  font-size: 10px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: .05em;
  text-transform: uppercase;
}

/* Responsive pre-footer cards for brand,
contacts and social channels. */
.pre-footer-corporate {
  padding-top: clamp(76px, 8vw, 108px);
  padding-bottom: clamp(64px, 7vw, 88px);
}

.pre-footer-corporate .row {
  display: grid;
  grid-template-columns: 1.15fr .92fr .92fr;
  gap: 16px;
}

.pre-footer-corporate .row > .bv-prefooter-card {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: clamp(22px, 3vw, 30px);
  border: 1px solid rgba(255, 255, 255, .11);
  border-radius: 24px;
  background: rgba(255, 255, 255, .055);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .04);
  backdrop-filter: blur(10px);
}

.pre-footer-corporate .bv-prefooter-card h6 {
  display: flex;
  margin-bottom: 22px;
  align-items: center;
  gap: 10px;
}

.pre-footer-corporate .bv-prefooter-card h6::before {
  width: 24px;
  height: 2px;
  background: var(--bv-coral);
  content: "";
}

.bv-message-counter {
  margin-top: 7px;
  color: var(--bv-ink-soft);
  font-size: 10px;
  line-height: 1.4;
  text-align: right;
}

.bv-mobile-actions {
  display: none;
}

/* Compact responsive behaviour */
@media (max-width: 1199.98px) {
  .bv-home-quicklinks__inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bv-gallery-section > .container > .row > [class*="col-"] {
    width: min(100%, 920px);
    max-width: 920px;
    flex: 0 0 920px;
  }

  .pre-footer-corporate .row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pre-footer-corporate .row > .bv-prefooter-card--1 {
    grid-column: 1 / -1;
  }
}

@media (max-width: 767.98px) {
  body {
    padding-bottom: 82px;
  }

  .bv-home-quicklinks {
    margin-top: -18px;
    overflow: hidden;
  }

  .bv-home-quicklinks__inner,
.bv-page-nav__inner {
    display: flex;
    width: auto;
    margin-right: -14px;
    margin-left: -14px;
    padding-right: 14px;
    padding-left: 14px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  .bv-home-quicklinks__inner::-webkit-scrollbar,
.bv-page-nav__inner::-webkit-scrollbar {
    display: none;
  }

  .bv-home-quicklinks__item {
    min-width: min(270px, 78vw);
    min-height: 96px;
    scroll-snap-align: start;
  }

  .bv-page-nav {
    margin-top: -18px;
    padding: 0 14px;
  }

  .bv-page-nav__inner {
    border-right: 0;
    border-left: 0;
    border-radius: 0;
  }

  .bv-page-nav__item {
    min-width: 166px;
    scroll-snap-align: start;
  }

  .bv-gallery-section > .container > .row > [class*="col-"] {
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
  }

  .bv-gallery-section .owl-carousel::before {
    top: 14px;
    left: 14px;
  }

  .bv-video-section::before {
    top: 26px;
    left: 18px;
    font-size: 46px;
  }

  .bv-restaurant-highlights {
    grid-template-columns: 1fr;
  }

  .bv-restaurant-highlight {
    min-height: 88px;
  }

  .pre-footer-corporate .row {
    display: grid;
    grid-template-columns: 1fr;
  }

  .pre-footer-corporate .row > .bv-prefooter-card--1 {
    grid-column: auto;
  }

  .bv-mobile-actions {
    position: fixed;
    z-index: 1700;
    right: 10px;
    bottom: 10px;
    left: 10px;
    display: grid;
    min-height: 64px;
    padding: 7px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 20px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    background: rgba(4, 43, 54, .95);
    box-shadow: 0 18px 46px rgba(4, 43, 54, .34);
    backdrop-filter: blur(16px);
  }

  .bv-mobile-actions__item {
    display: flex;
    min-width: 0;
    padding: 6px 4px;
    border-radius: 14px;
    align-items: center;
    flex-direction: column;
    justify-content: center;
    gap: 3px;
    color: rgba(255, 255, 255, .82) !important;
  }

  .bv-mobile-actions__item + .bv-mobile-actions__item {
    border-left: 1px solid rgba(255, 255, 255, .11);
  }

  .bv-mobile-actions__item:active {
    background: rgba(255, 255, 255, .08);
  }

  .bv-mobile-actions__icon {
    display: grid;
    width: 26px;
    height: 26px;
    color: var(--bv-sea-bright);
    font-size: 18px;
    line-height: 1;
    place-items: center;
  }

  .bv-mobile-actions__label {
    overflow: hidden;
    max-width: 100%;
    font-size: 8px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: .045em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
  }

  .rd-navbar-fixed .rd-navbar-nav > li.bv-language-link {
    display: inline-block;
    width: 46px;
    margin: 8px 4px 0 0;
    vertical-align: top;
  }

  .rd-navbar-fixed .rd-navbar-nav > li.bv-language-link > a {
    display: grid;
    width: 44px;
    min-height: 44px;
    padding: 0;
    place-items: center;
  }

  .rd-navbar-fixed .rd-navbar-nav > li.bv-language-link > a img {
    width: 23px !important;
    height: 23px !important;
  }

  body.bv-page-contatti {
    padding-bottom: 0;
  }

  .bv-page-contatti .bv-mobile-actions {
    display: none;
  }

  .footer-corporate__inner {
    padding-bottom: 22px;
  }
}

/* 2026 typography and section refinement */
body,
input,
textarea,
select,
button,
.button,
.rd-navbar-nav,
.rd-navbar-items-list,
.form-input,
.form-label-outside {
  font-family: var(--bv-font-body);
}

body {
  font-size: 17px;
  line-height: 1.72;
  letter-spacing: -.006em;
}

body p {
  color: #405e66;
  font-size: clamp(16.5px, 1.08vw, 18.5px);
  font-weight: 450;
  line-height: 1.78;
  letter-spacing: -.012em;
  text-wrap: pretty;
}

body h1,
body h2,
body h3,
body h4,
body h5,
.bv-home-quicklinks__item strong,
.bv-restaurant-highlight strong,
.footer-corporate__signature strong {
  font-family: var(--bv-font-display);
  font-weight: 750;
  letter-spacing: -.052em;
  text-wrap: balance;
}

body h1 {
  font-size: clamp(48px, 6.9vw, 98px);
  line-height: .98;
}

body h2 {
  font-size: clamp(38px, 4.45vw, 64px);
  line-height: 1.04;
}

body h3 {
  font-size: clamp(29px, 3vw, 44px);
  line-height: 1.12;
}

body h4 {
  font-size: clamp(23px, 2vw, 30px);
  line-height: 1.24;
}

body h6,
.swiper-slide-caption h6,
.parallax-header h2::before,
.button,
button.button,
.bv-page-nav__label,
.bv-gallery-section .owl-carousel::before {
  font-family: var(--bv-font-body);
}

body h6 {
  margin-bottom: 20px;
  font-size: clamp(12.5px, .95vw, 14px);
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: .145em;
}

.rd-navbar-items-list p,
.rd-navbar-items-list a,
.rd-navbar-items-list .icon {
  font-family: var(--bv-font-body);
  font-size: 11.5px;
  font-weight: 650;
  letter-spacing: .025em;
}

.rd-navbar-nav > li > a {
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .055em;
}

.swiper-slide-caption h2 {
  font-family: var(--bv-font-body);
  font-size: clamp(15px, 1.55vw, 21px);
  font-weight: 800;
  letter-spacing: .145em;
}

.swiper-slide-caption h6 {
  font-size: 12.5px;
  letter-spacing: .16em;
}

.swiper-slide-caption p {
  max-width: 700px;
  font-size: clamp(17px, 1.55vw, 21px);
  font-weight: 500;
  line-height: 1.62;
}

.parallax-header h2 {
  max-width: 1040px;
  font-size: clamp(48px, 6.25vw, 84px);
  line-height: 1.01;
}

.parallax-header h2::before {
  font-size: 12px;
  letter-spacing: .18em;
}

.button,
button.button {
  min-height: 56px;
  padding: 16px 28px;
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: .095em;
}

/* The sections read as distinct,
contemporary editorial blocks. */
.page > .section-md,
.page > .section-lg {
  isolation: isolate;
  overflow: hidden;
}

.page > .section-md > .container,
.page > .section-lg > .container {
  position: relative;
  z-index: 1;
}

.page > section + section:not(.pre-footer-corporate) {
  border-top: 1px solid rgba(7, 57, 71, .065);
}

.section-lg > .container > .row > [class*="col-"] > h2,
.section-md > .container > h2,
.section-md > .container > h3 {
  margin-bottom: 34px;
}

.bv-page-servizi .page > .section-lg.bg-default.text-center > .container,
.bv-page-spiaggia .page > .section-lg.bg-default.text-center > .container {
  width: min(100% - 48px, 1120px);
  padding: clamp(44px, 6vw, 76px);
  border: 1px solid rgba(7, 57, 71, .10);
  border-radius: 38px;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, .98), rgba(255, 255, 255, .72)),
    var(--bv-sand-light);
  box-shadow: 0 26px 70px rgba(7, 57, 71, .11);
}

.bv-page-servizi .page > .section-lg.bg-default.text-center,
.bv-page-spiaggia .page > .section-lg.bg-default.text-center {
  background:
    radial-gradient(circle at 10% 10%, rgba(32, 182, 178, .10), transparent 24rem),
    var(--bv-sand) !important;
}

.bv-page-servizi .page > .section-lg.bg-default.text-center p,
.bv-page-spiaggia .page > .section-lg.bg-default.text-center p {
  max-width: 820px;
  margin-right: auto;
  margin-left: auto;
}

.bv-gallery-section {
  background: var(--bv-sand-light) !important;
}

.bv-gallery-section .owl-carousel {
  border: 8px solid rgba(255, 255, 255, .9);
  box-shadow: 0 32px 86px rgba(7, 57, 71, .18);
}

.bv-gallery-section .owl-carousel::before {
  padding: 9px 14px;
  font-size: 10.5px;
  letter-spacing: .13em;
}

.quote-review {
  min-height: 330px;
  padding: 36px;
  border-color: rgba(7, 57, 71, .11);
  background: linear-gradient(145deg, rgba(255, 255, 255, .94), rgba(255, 255, 255, .7));
}

.quote-review::before {
  font-family: var(--bv-font-display);
  font-size: 72px;
}

.quote-review h4 {
  font-size: 24px;
}

.quote-review__body p {
  font-size: 16px;
  line-height: 1.78;
}

.object-wrap {
  padding: clamp(26px, 4vw, 54px);
  gap: clamp(20px, 3vw, 42px);
  align-items: stretch;
}

.object-wrap > .section-lg {
  border: 1px solid rgba(7, 57, 71, .09);
  border-radius: 38px;
  background: rgba(255, 255, 255, .62);
  box-shadow: var(--bv-shadow-sm);
}

.object-wrap > .section-lg .container {
  width: min(100% - 64px, 620px);
  margin-right: auto;
  margin-left: auto;
}

.object-wrap__body,
.object-wrap__body-sizing-1,
.object-wrap__body-md-right,
.object-wrap.bg-gray-lighter .object-wrap__body {
  min-height: 620px;
  border: 8px solid rgba(255, 255, 255, .86);
  border-radius: 38px !important;
  box-shadow: var(--bv-shadow);
}

.object-wrap > .section-lg h3 {
  margin-bottom: 24px;
}

.object-wrap > .section-lg p + .button {
  margin-top: 30px;
}

.contact-info,
.rd-mailform {
  border-radius: 34px;
  box-shadow: 0 28px 72px rgba(7, 57, 71, .13);
}

.contact-info {
  padding: clamp(30px, 4vw, 46px);
  background:
    radial-gradient(circle at 100% 0, rgba(32, 182, 178, .11), transparent 18rem),
    var(--bv-sand);
}

.contact-info h4 {
  font-size: 24px;
}

.form-label-outside {
  margin-bottom: 9px;
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: .075em;
}

.form-input {
  min-height: 60px;
  padding: 16px 18px;
  border-radius: 16px;
  font-size: 16px;
  font-weight: 500;
}

textarea.form-input {
  min-height: 200px;
}

.bv-message-counter {
  font-size: 11.5px;
}

.bv-home-quicklinks__item {
  min-height: 124px;
  padding: 23px 62px 21px 23px;
  border-radius: 24px;
}

.bv-home-quicklinks__number,
.bv-page-nav__number {
  font-size: 10.5px;
}

.bv-home-quicklinks__item strong {
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.12;
}

.bv-home-quicklinks__icon {
  right: 22px;
  width: 38px;
  height: 38px;
  font-size: 18px;
}

.bv-page-nav__inner {
  padding: 10px;
  border-radius: 25px;
}

.bv-page-nav__item {
  min-height: 68px;
  padding: 15px 17px;
  border-radius: 17px;
}

.bv-page-nav__label {
  font-size: 11.5px;
  line-height: 1.4;
  letter-spacing: .055em;
}

.bv-restaurant-highlight {
  min-height: 116px;
  padding: 23px;
  border-radius: 24px;
}

.bv-restaurant-highlight strong {
  font-size: 23px;
}

.bv-restaurant-highlight span {
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: .035em;
}

.pre-footer-corporate .row > .bv-prefooter-card {
  padding: clamp(26px, 3vw, 36px);
  border-radius: 28px;
}

.pre-footer-corporate p,
.pre-footer-corporate a,
.pre-footer-corporate .unit-body,
.pre-footer-corporate .list-xs {
  font-size: 15px;
  line-height: 1.72;
}

.footer-corporate__signature strong {
  font-size: 21px;
  line-height: 1.15;
}

.footer-corporate__signature span,
.footer-corporate__legal-label {
  font-size: 10.5px;
  letter-spacing: .115em;
}

.footer-corporate__copyright,
.footer-corporate__address {
  font-size: 12.5px;
  line-height: 1.7;
}

.footer-corporate__legal-item {
  min-height: 112px;
  padding: 20px;
  border-radius: 20px;
}

.footer-corporate__legal-item strong {
  font-size: 12.5px;
  line-height: 1.5;
}

.footer-corporate__legal-item small {
  font-size: 10.5px;
  line-height: 1.55;
}

.footer-corporate__credit {
  font-size: 11.5px;
}

.footer-corporate .technical-cookie-notice {
  font-size: 11.5px;
  line-height: 1.72;
}

.bv-heritage-card strong,
.bv-video-section::before {
  font-family: var(--bv-font-display);
}

.bv-heritage-card strong {
  font-weight: 750;
  letter-spacing: -.045em;
}

.bv-heritage-card span {
  font-family: var(--bv-font-body);
  font-size: 10px;
}

@media (min-width: 768px) and (max-width: 1199.98px) {
  .rd-navbar-static .rd-navbar-nav > li > a {
    min-height: 36px;
    padding-right: 6px !important;
    padding-left: 6px !important;
    font-size: 10.5px;
    letter-spacing: .035em;
  }

  .object-wrap {
    padding: 30px 18px 42px;
  }
}

@media (max-width: 991px) {
  body {
    font-size: 16.5px;
  }

  .object-wrap {
    padding: 26px 0 38px;
    gap: 22px;
  }

  .object-wrap > .section-lg {
    margin: 0 18px;
    border-radius: 32px;
  }

  .object-wrap > .section-lg .container {
    width: min(100% - 48px, 720px);
  }

  .object-wrap__body,
.object-wrap__body-sizing-1,
.object-wrap__body-md-right,
.object-wrap.bg-gray-lighter .object-wrap__body {
    min-height: 500px;
    border-width: 7px;
    border-radius: 32px !important;
  }
}

@media (max-width: 767.98px) {
  body {
    font-size: 16px;
  }

  body p {
    font-size: 16px;
    line-height: 1.76;
  }

  body h1 {
    font-size: clamp(46px, 13.7vw, 66px);
  }

  body h2 {
    font-size: clamp(34px, 10vw, 48px);
  }

  body h3 {
    font-size: clamp(28px, 8vw, 38px);
  }

  body h4 {
    font-size: 23px;
  }

  body h6 {
    font-size: 11.5px;
    line-height: 1.55;
    letter-spacing: .115em;
  }

  .rd-navbar-fixed .rd-navbar-nav > li > a {
    padding: 14px 16px;
    font-size: 13px;
  }

  .swiper-slide-caption h6 {
    font-size: 11.5px;
  }

  .swiper-slide-caption h2 {
    font-size: 14px;
  }

  .swiper-slide-caption p {
    font-size: 16.5px;
    line-height: 1.65;
  }

  .bv-heritage-card span {
    font-size: 9px;
  }

  .parallax-header h2::before {
    font-size: 10.5px;
  }

  .section-md {
    padding-top: 68px;
    padding-bottom: 68px;
  }

  .section-lg {
    padding-top: 76px;
    padding-bottom: 76px;
  }

  .bv-page-servizi .page > .section-lg.bg-default.text-center > .container,
.bv-page-spiaggia .page > .section-lg.bg-default.text-center > .container {
    width: calc(100% - 28px);
    padding: 34px 22px;
    border-radius: 28px;
  }

  .bv-gallery-section .owl-carousel {
    border-width: 5px;
  }

  .quote-review {
    padding: 30px;
  }

  .quote-review__body p {
    font-size: 16px;
  }

  .object-wrap {
    padding-top: 20px;
  }

  .object-wrap > .section-lg {
    margin: 0 14px;
    border-radius: 28px;
  }

  .object-wrap > .section-lg .container {
    width: calc(100% - 40px);
  }

  .object-wrap__body,
.object-wrap__body-sizing-1,
.object-wrap__body-md-right,
.object-wrap.bg-gray-lighter .object-wrap__body {
    min-height: 370px;
    border-width: 5px;
    border-radius: 28px !important;
  }

  .contact-info,
.rd-mailform {
    padding: 28px 22px;
    border-radius: 26px;
  }

  .form-label-outside {
    font-size: 12px;
  }

  .form-input {
    font-size: 16px;
  }

  .bv-home-quicklinks__item {
    min-height: 112px;
  }

  .bv-page-nav__item {
    min-width: 180px;
    min-height: 66px;
  }

  .bv-page-nav__label {
    font-size: 11px;
  }

  .bv-mobile-actions__label {
    font-size: 10px;
  }

  .pre-footer-corporate p,
.pre-footer-corporate a,
.pre-footer-corporate .unit-body,
.pre-footer-corporate .list-xs {
    font-size: 15px;
  }

  .footer-corporate__copyright,
.footer-corporate__address,
.footer-corporate__legal-item strong {
    font-size: 12.5px;
  }

  .footer-corporate .technical-cookie-notice {
    font-size: 12px;
  }
}

/* Homepage opening video slide */
.bv-hero-video-slide {
  position: relative;
  overflow: hidden;
  background-color: var(--bv-night-deep);
}

.bv-hero-video-slide::before {
  background:
    linear-gradient(90deg, rgba(3, 33, 42, .20), rgba(3, 33, 42, .04) 72%),
    linear-gradient(0deg, rgba(3, 33, 42, .28), transparent 48%);
}

.bv-hero-video {
  position: absolute;
  z-index: 0;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  object-fit: cover;
  object-position: center center;
  pointer-events: none;
}

.bv-hero-video-slide--unavailable .bv-hero-video {
  opacity: 0;
}

.bv-hero-video-controls {
  position: absolute;
  z-index: 8;
  top: 62px;
  left: 62px;
  display: flex;
  gap: 8px;
}

.bv-hero-video-control {
  display: grid;
  width: 46px;
  height: 46px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .34);
  border-radius: 50%;
  color: var(--bv-white);
  background: rgba(4, 43, 54, .52);
  box-shadow: 0 12px 30px rgba(4, 43, 54, .22);
  font-family: var(--bv-font-body);
  font-size: 15px;
  line-height: 1;
  cursor: pointer;
  place-items: center;
  backdrop-filter: blur(12px);
  transition: background .25s ease, border-color .25s ease, transform .3s var(--bv-ease);
}

.bv-hero-video-control:hover,
.bv-hero-video-control:focus-visible {
  border-color: rgba(255, 255, 255, .72);
  color: var(--bv-white);
  background: var(--bv-sea);
  transform: translateY(-2px);
}

.bv-hero-video-control svg {
  display: block;
  width: 19px;
  height: 19px;
  pointer-events: none;
}

@media (max-width: 991px) {
  .bv-hero-video {
    z-index: 3;
    top: 50%;
    right: auto;
    bottom: auto;
    left: 50%;
    width: min(calc(100% - 72px), 900px);
    height: auto;
    aspect-ratio: 16 / 9;
    border: 7px solid rgba(255, 255, 255, .92);
    border-radius: 28px;
    object-fit: contain;
    object-position: center center;
    box-shadow: 0 32px 76px rgba(4, 43, 54, .34);
    transform: translate(-50%, -50%);
  }

  .bv-hero-video-slide::before {
    background:
      linear-gradient(0deg, rgba(3, 33, 42, .42), rgba(3, 33, 42, .16) 52%, rgba(3, 33, 42, .34)),
      linear-gradient(90deg, rgba(3, 33, 42, .22), transparent 70%);
  }

  .bv-hero-video-controls {
    top: calc(50% - min(23vw, 205px));
    left: max(calc(50% - 432px), 54px);
  }
}

@media (max-width: 767.98px) {
  .bv-hero-video {
    right: 14px;
    left: 14px;
    width: calc(100% - 28px);
    border: 5px solid rgba(255, 255, 255, .92);
    border-radius: 22px;
    box-shadow: 0 28px 66px rgba(4, 43, 54, .34);
    transform: translateY(-50%);
  }

  .bv-hero-video-controls {
    top: calc(50% - 28.125vw + 22px);
    left: 26px;
    gap: 7px;
  }

  .bv-hero-video-control {
    width: 43px;
    height: 43px;
    font-size: 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bv-hero-video {
    object-position: center center;
  }
}

/* Final interface polish: clearer navigation,
richer depth and tighter tablets */
.bv-page-nav__hint {
  display: none;
}

.bv-page-nav__item.is-active,
.bv-page-nav__item[aria-current="location"] {
  color: var(--bv-white) !important;
  background: linear-gradient(135deg, var(--bv-sea), #086b79);
  box-shadow: 0 13px 30px rgba(10, 135, 148, .22);
  transform: translateY(-2px);
}

.bv-page-nav__item.is-active .bv-page-nav__number,
.bv-page-nav__item[aria-current="location"] .bv-page-nav__number {
  color: var(--bv-sky);
}

.bv-home-quicklinks__item::before {
  position: absolute;
  top: 0;
  right: 22px;
  left: 22px;
  height: 3px;
  border-radius: 0 0 999px 999px;
  background: linear-gradient(90deg, var(--bv-sea-bright), var(--bv-coral));
  content: "";
  opacity: .68;
  transform: scaleX(.42);
  transform-origin: 0 50%;
  transition: opacity .3s ease, transform .45s var(--bv-ease);
}

.bv-home-quicklinks__item:hover::before,
.bv-home-quicklinks__item:focus-visible::before {
  opacity: 1;
  transform: scaleX(1);
}

.bv-restaurant-highlight,
.pre-footer-corporate .row > .bv-prefooter-card,
.contact-info,
.rd-mailform {
  transition: border-color .3s ease, box-shadow .35s ease, transform .4s var(--bv-ease);
}

.bv-restaurant-highlight:hover,
.pre-footer-corporate .row > .bv-prefooter-card:hover {
  transform: translateY(-5px);
}

.bv-restaurant-highlight:hover {
  border-color: rgba(10, 135, 148, .26);
  box-shadow: 0 24px 54px rgba(7, 57, 71, .13);
}

.pre-footer-corporate .row > .bv-prefooter-card:hover {
  border-color: rgba(189, 233, 228, .24);
  background: rgba(255, 255, 255, .075);
}

.rd-mailform:focus-within {
  border-color: rgba(10, 135, 148, .28);
  box-shadow: 0 32px 80px rgba(7, 57, 71, .16), 0 0 0 5px rgba(10, 135, 148, .055);
}

.bv-mobile-actions__icon svg {
  display: block;
  width: 20px;
  height: 20px;
}

@media (max-width: 767.98px) {
  .bv-mobile-actions {
    transition: opacity .22s ease, visibility .22s ease, transform .3s var(--bv-ease);
  }

  body.bv-menu-open .bv-mobile-actions {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transform: translateY(calc(100% + 18px));
  }
}

@media (max-width: 767.98px) and (max-height: 500px) {
  body {
    padding-bottom: 0;
  }

  .bv-mobile-actions {
    display: none !important;
  }
}

@media (min-width: 768px) and (max-width: 1199.98px) {
  .rd-navbar-static .rd-navbar-inner {
    min-height: 116px;
    padding: 5px 14px 9px;
  }

  .rd-navbar-static .rd-navbar-panel {
    height: 58px;
  }

  .rd-navbar-static .rd-navbar-brand img {
    height: 54px;
    max-height: 54px;
  }

  .rd-navbar-static .rd-navbar-nav > li > a {
    min-height: 32px;
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  .bv-page-nav__item {
    padding-right: 10px;
    padding-left: 10px;
    gap: 7px;
  }

  .bv-page-nav__label {
    font-size: 10px;
    letter-spacing: .02em;
  }
}

@media (min-width: 768px) and (max-width: 1199.98px) and (max-height: 600px) and (orientation: landscape) {
  .rd-navbar-static .rd-navbar-inner {
    min-height: 104px;
    padding-top: 3px;
    padding-bottom: 7px;
  }

  .rd-navbar-static .rd-navbar-panel {
    height: 50px;
  }

  .rd-navbar-static .rd-navbar-brand img {
    height: 47px;
    max-height: 47px;
  }

  .rd-navbar-static .rd-navbar-nav > li > a {
    min-height: 30px;
  }
}

@media (max-width: 767.98px) {
  .bv-page-nav__hint {
    position: absolute;
    z-index: 4;
    top: 50%;
    right: 8px;
    display: grid;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(255, 255, 255, .55);
    border-radius: 50%;
    color: var(--bv-white);
    background: var(--bv-coral);
    box-shadow: 0 12px 28px rgba(217, 83, 69, .28);
    opacity: 0;
    place-items: center;
    pointer-events: none;
    transform: translate(10px, -50%) scale(.8);
    transition: opacity .25s ease, transform .35s var(--bv-ease);
  }

  .bv-page-nav__hint svg {
    width: 18px;
    height: 18px;
  }

  .bv-page-nav--scrollable:not(.bv-page-nav--at-end) .bv-page-nav__hint {
    opacity: 1;
    transform: translate(0, -50%) scale(1);
    animation: bv-nav-hint 1.8s ease-in-out infinite;
  }

  .bv-page-nav__item.is-active,
.bv-page-nav__item[aria-current="location"] {
    transform: none;
  }
}

@keyframes bv-nav-hint {
  0%,
100% { transform: translate(0, -50%) scale(1); }
  50% { transform: translate(4px, -50%) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .bv-page-nav__hint {
    animation: none !important;
  }
}

/* Keep the opening video fully visible on short landscape screens */
@media (max-width: 767.98px) and (max-height: 500.98px) and (orientation: landscape) {
  .swiper-slider_fullheight {
    height: calc(100dvh - 76px) !important;
    min-height: 0 !important;
  }

  .bv-hero-video {
    top: 50%;
    right: auto;
    bottom: auto;
    left: 50%;
    width: auto;
    max-width: calc(100% - 104px);
    height: calc(100% - 24px);
    max-height: calc(100% - 24px);
    transform: translate(-50%, -50%);
  }

  .bv-hero-video-controls {
    top: auto;
    bottom: 14px;
    left: 18px;
  }

  .swiper-slider_fullheight .swiper-slide::after {
    inset: 8px;
    border-radius: 22px;
  }

  .swiper-slide-caption {
    align-items: center;
    box-sizing: border-box;
    height: 100%;
    min-height: 0 !important;
    padding: 18px 0 32px;
  }

  .swiper-slide-caption h6,
  .swiper-slide-caption p {
    display: none;
  }

  .swiper-slide-caption h1 {
    margin-bottom: 6px;
    font-size: clamp(32px, 8vw, 46px);
  }

  .swiper-slide-caption h2 {
    margin-bottom: 0;
    font-size: 11px;
  }

  .swiper-slider_fullheight .swiper-pagination {
    bottom: 12px !important;
    left: 18px !important;
  }

  .bv-heritage-card {
    display: none;
  }

  .bv-home-quicklinks {
    margin-top: 0;
  }
}

@media (min-width: 768px) and (max-width: 991.98px) and (max-height: 600.98px) and (orientation: landscape) {
  .swiper-slider_fullheight {
    height: calc(100dvh - 170px) !important;
    min-height: 0 !important;
  }

  .bv-hero-video {
    top: 50%;
    right: auto;
    bottom: auto;
    left: 50%;
    width: auto;
    max-width: calc(100% - 152px);
    height: calc(100% - 24px);
    max-height: calc(100% - 24px);
    transform: translate(-50%, -50%);
  }

  .bv-hero-video-controls {
    top: auto;
    bottom: 16px;
    left: 26px;
  }

  .swiper-slider_fullheight .swiper-slide::after {
    inset: 9px 16px;
    border-radius: 24px;
  }

  .swiper-slide-caption,
.swiper-form-wrap .swiper-slide-caption {
    align-items: center;
    box-sizing: border-box;
    height: 100%;
    min-height: 0 !important;
    padding: 22px 0 36px !important;
  }

  .swiper-slide-caption h6,
.swiper-slide-caption p {
    display: none;
  }

  .swiper-slide-caption h1 {
    margin-bottom: 6px;
    font-size: clamp(34px, 6vw, 48px);
    line-height: 1.03;
  }

  .swiper-slider_fullheight .swiper-pagination {
    bottom: 14px !important;
  }

  .bv-heritage-card {
    display: none;
  }

  .bv-home-quicklinks {
    margin-top: 0;
  }
}

/* Smooth the 1199px rounding edge used by the legacy navbar */
@media (min-width: 768px) and (max-width: 1199.98px) {
  .rd-navbar-static .rd-navbar-top-panel {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    overflow: hidden;
  }
}

/* Compact desktop/tablet hero for short browser windows */
@media (min-width: 992px) and (max-width: 1199.98px) and (max-height: 600.98px) and (orientation: landscape) {
  .swiper-slider_fullheight {
    height: calc(100dvh - 165px) !important;
    min-height: 0 !important;
  }

  .swiper-form-wrap .swiper-slide-caption {
    align-items: center;
    box-sizing: border-box;
    height: 100%;
    min-height: 0 !important;
    padding: 20px 54px 34px !important;
  }

  .swiper-slide-caption h6,
  .swiper-slide-caption p {
    display: none;
  }

  .swiper-slide-caption h1 {
    margin-bottom: 5px;
    font-size: clamp(34px, 5vw, 50px);
    line-height: 1.03;
  }

  .swiper-slide-caption h2 {
    margin-bottom: 0;
    font-size: 13px;
  }

  .swiper-slider_fullheight .swiper-pagination {
    bottom: 13px !important;
  }

  .bv-heritage-card {
    display: none;
  }

  .bv-home-quicklinks {
    margin-top: 0;
  }
}

@media (min-width: 1200px) and (max-height: 600.98px) and (orientation: landscape) {
  .swiper-slider_fullheight {
    height: calc(100dvh - 182px) !important;
    min-height: 0 !important;
  }

  .swiper-form-wrap .swiper-slide-caption {
    align-items: center;
    box-sizing: border-box;
    height: 100%;
    min-height: 0 !important;
    padding: 18px 0 32px !important;
  }

  .swiper-slide-caption h6,
.swiper-slide-caption p {
    display: none;
  }

  .swiper-slide-caption h1 {
    margin-bottom: 5px;
    font-size: clamp(36px, 4vw, 52px);
    line-height: 1.03;
  }

  .swiper-slide-caption h2 {
    margin-bottom: 0;
    font-size: 13px;
  }

  .swiper-slider_fullheight .swiper-pagination {
    bottom: 13px !important;
  }

  .bv-heritage-card {
    display: none;
  }

  .bv-home-quicklinks {
    margin-top: 0;
  }
}

/* Keep pagination and the heritage badge separate on narrow phones. */
@media (max-width: 479.98px) and (orientation: portrait) {
  .swiper-slider_fullheight .swiper-pagination {
    bottom: 44px !important;
    left: 18px !important;
  }

  .swiper-form-wrap .bv-heritage-card {
    right: 14px;
    bottom: 106px;
    width: 150px;
  }
}

/* Responsive lightbox: keep every photograph and control usable at any size */
body.lg-on {
  overflow: hidden !important;
  overscroll-behavior: none;
}

body.lg-on .bv-mobile-actions,
body.lg-on .ui-to-top.bv-to-top-modern {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transform: translateY(calc(100% + 18px)) !important;
}

.lg-backdrop {
  background:
    radial-gradient(circle at 50% 42%, rgba(12, 109, 120, .28), transparent 48%),
    #031d25;
}

.lg-backdrop.in {
  opacity: .97;
}

.lg-outer {
  color: #fff;
  font-family: var(--bv-font-body);
  overscroll-behavior: contain;
}

.lg-toolbar {
  min-height: 64px;
  padding: max(4px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) 4px max(8px, env(safe-area-inset-left));
  align-items: flex-start;
  background: linear-gradient(180deg, rgba(2, 26, 34, .92), rgba(2, 26, 34, .08));
}

.lg-toolbar .lg-icon {
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  margin: 4px 2px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 50%;
  color: #fff;
  background: rgba(255, 255, 255, .08);
  line-height: 48px;
  transition: color .2s ease, background-color .2s ease, border-color .2s ease, transform .2s ease;
}

.lg-toolbar .lg-icon:hover,
.lg-toolbar .lg-icon:focus-visible {
  border-color: rgba(255, 255, 255, .42);
  color: #fff;
  background: rgba(255, 255, 255, .2);
  outline: none;
  transform: translateY(-1px);
}

.lg-toolbar .lg-close {
  border-color: rgba(255, 255, 255, .28);
  background: var(--bv-coral);
}

/* The photo viewer toolbar contains only its close button. The script removes
 * the other controls as well; this rule prevents them flashing before setup. */
.lg-outer .lg-toolbar .lg-icon:not(.lg-close),
.lg-outer #lg-dropdown-overlay,
.lg-outer #lg-share {
  display: none !important;
}

.lg-toolbar .lg-fullscreen::before,
.lg-toolbar .lg-fullscreen::after,
.lg-toolbar #lg-actual-size::before,
.lg-toolbar #lg-actual-size::after {
  display: none !important;
  content: none !important;
}

#lg-counter {
  flex: 0 0 auto;
  min-width: 70px;
  height: 48px;
  margin: 4px auto 4px 2px;
  padding: 0 14px;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 999px;
  color: #fff;
  background: rgba(2, 26, 34, .46);
  font-size: 14px;
  font-weight: 700;
  line-height: 48px;
  letter-spacing: .04em;
}

.lg-actions .lg-next,
.lg-actions .lg-prev {
  display: grid;
  width: 52px;
  height: 52px;
  margin-top: -26px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .32);
  border-radius: 50%;
  color: #fff;
  background: rgba(7, 107, 119, .88);
  box-shadow: 0 14px 30px rgba(0, 0, 0, .25);
  line-height: 52px;
  place-items: center;
  transition: opacity .2s ease, transform .2s ease, background-color .2s ease;
}

.lg-actions .lg-next:hover,
.lg-actions .lg-next:focus-visible,
.lg-actions .lg-prev:hover,
.lg-actions .lg-prev:focus-visible {
  color: #fff;
  background: var(--bv-coral);
  outline: none;
}

.lg-actions .lg-next {
  right: max(14px, env(safe-area-inset-right));
}

.lg-actions .lg-prev {
  left: max(14px, env(safe-area-inset-left));
}

.lg-outer .lg-thumb-outer {
  padding-bottom: env(safe-area-inset-bottom);
  background: linear-gradient(0deg, rgba(2, 24, 31, .98), rgba(2, 24, 31, .82));
  box-shadow: 0 -14px 36px rgba(0, 0, 0, .2);
  backdrop-filter: blur(14px);
}

.lg-outer .lg-thumb-item {
  border-radius: 8px;
  opacity: .6;
}

.lg-outer .lg-thumb-item.active,
.lg-outer .lg-thumb-item:hover,
.lg-outer .lg-thumb-item:focus-visible {
  box-shadow: 0 0 0 2px var(--bv-sea-bright);
  opacity: 1;
}

@media (hover: none), (max-width: 767.98px) {
  .lg-hide-items .lg-toolbar,
.lg-hide-items .lg-prev,
.lg-hide-items .lg-next,
.lg-toolbar,
.lg-prev,
.lg-next {
    opacity: 1 !important;
    transform: none !important;
  }
}

@media (max-width: 479px) {
  .lg-toolbar {
    min-height: 60px;
    justify-content: space-between;
  }

  .lg-toolbar .lg-download,
.lg-toolbar .lg-autoplay-button,
.lg-toolbar #lg-actual-size,
.lg-toolbar #lg-share,
.lg-toolbar #lg-zoom-in,
.lg-toolbar #lg-zoom-out {
    display: none !important;
  }

  .lg-toolbar .lg-close {
    flex-basis: 46px;
    width: 46px;
    height: 46px;
    line-height: 46px;
  }

  #lg-counter {
    min-width: 68px;
    height: 46px;
    line-height: 46px;
  }

  .lg-actions .lg-next,
.lg-actions .lg-prev {
    width: 46px;
    height: 46px;
    margin-top: -23px;
    line-height: 46px;
  }

  .lg-actions .lg-next {
    right: max(7px, env(safe-area-inset-right));
  }

  .lg-actions .lg-prev {
    left: max(7px, env(safe-area-inset-left));
  }
}

@media (max-height: 500.98px) and (orientation: landscape) {
  .lg-outer .lg-thumb-outer,
.lg-outer .lg-toogle-thumb {
    display: none !important;
  }

  .lg-outer .lg-inner {
    top: 60px;
    height: calc(100% - 60px);
  }

  .lg-outer.lg-has-thumb .lg-item,
.lg-outer.lg-can-toggle .lg-item {
    padding-bottom: 0;
  }
}

@media (max-width: 359px) {
  .lg-actions .lg-next,
.lg-actions .lg-prev {
    width: 44px;
    height: 44px;
    margin-top: -22px;
    line-height: 44px;
  }
}

/* Contact page — direct,
editorial and form-free */
.bv-page-contatti .parallax-header__content h2 {
  margin-bottom: 16px;
}

.bv-contact-hero__lead {
  max-width: 760px;
  margin: 0 auto !important;
  color: rgba(255, 255, 255, .88) !important;
  font-size: clamp(16px, 1.45vw, 20px) !important;
  line-height: 1.65 !important;
  text-wrap: balance;
}

.bv-contact-hub {
  position: relative;
  overflow: hidden;
  padding: clamp(70px, 8vw, 118px) 0 clamp(76px, 9vw, 132px);
  background:
    radial-gradient(circle at 92% 8%, rgba(32, 182, 178, .13), transparent 28rem),
    radial-gradient(circle at 5% 95%, rgba(239, 112, 95, .09), transparent 25rem),
    var(--bv-sand-light);
}

.bv-contact-seo-feature {
  display: flex;
  width: fit-content;
  max-width: min(100%, 470px);
  min-height: 50px;
  margin: 0 0 clamp(28px, 3.2vw, 44px) auto;
  padding: 12px 18px 12px 15px;
  border: 1px solid rgba(10, 135, 148, .14);
  border-left: 4px solid var(--bv-coral);
  border-radius: 14px 30px 14px 30px;
  align-items: center;
  gap: 13px;
  color: #08747b;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .94), rgba(235, 247, 243, .82));
  font-family: var(--bv-font-body);
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: .055em;
  line-height: 1.48;
  text-transform: uppercase;
  overflow-wrap: anywhere;
  text-wrap: balance;
  box-shadow: 0 18px 46px rgba(7, 57, 71, .09);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.bv-contact-seo-feature::before {
  width: 3px;
  height: 28px;
  min-width: 3px;
  border-radius: 3px;
  background: linear-gradient(180deg, var(--bv-sea-bright), var(--bv-coral));
  content: "";
}

.bv-contact-hub__intro {
  position: relative;
  z-index: 1;
  display: grid;
  margin-bottom: clamp(42px, 5vw, 72px);
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 34px;
}

.bv-contact-hub__copy {
  max-width: 850px;
}

.bv-contact-eyebrow {
  display: inline-flex;
  margin-bottom: 18px;
  color: var(--bv-sea);
  font-family: var(--bv-font-body);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: .16em;
  text-transform: uppercase;
  align-items: center;
  gap: 12px;
}

.bv-contact-eyebrow::before {
  width: 34px;
  height: 2px;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--bv-sea), var(--bv-sea-bright));
  content: "";
}

.bv-contact-hub__copy h2 {
  max-width: 820px;
  margin-bottom: 22px;
  font-family: var(--bv-font-display);
  font-size: clamp(40px, 5.2vw, 72px);
  font-weight: 750;
  line-height: 1.02;
  letter-spacing: -.055em;
  text-wrap: balance;
}

.bv-contact-hub__copy > p {
  max-width: 760px;
  font-size: clamp(16px, 1.25vw, 19px);
  line-height: 1.78;
}

.bv-contact-hub__note {
  display: flex;
  min-width: 236px;
  padding: 18px 21px;
  border: 1px solid rgba(10, 135, 148, .14);
  border-radius: 22px;
  align-items: center;
  gap: 13px;
  background: rgba(255, 255, 255, .72);
  box-shadow: 0 18px 46px rgba(7, 57, 71, .08);
  backdrop-filter: blur(12px);
}

.bv-contact-hub__note-dot {
  position: relative;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: var(--bv-sea-bright);
  box-shadow: 0 0 0 7px rgba(32, 182, 178, .12);
}

.bv-contact-hub__note-dot::after {
  position: absolute;
  inset: -7px;
  border: 1px solid rgba(32, 182, 178, .3);
  border-radius: inherit;
  animation: bv-contact-pulse 2.2s ease-out infinite;
  content: "";
}

@keyframes bv-contact-pulse {
  0% { opacity: .75; transform: scale(.72); }
  75%,
100% { opacity: 0; transform: scale(1.45); }
}

.bv-contact-hub__note p {
  display: flex;
  margin: 0;
  flex-direction: column;
  gap: 2px;
  font-size: 12px;
  line-height: 1.45;
}

.bv-contact-hub__note strong {
  color: var(--bv-ink);
  font-family: var(--bv-font-display);
  font-size: 15px;
  font-weight: 750;
}

.bv-contact-hub__note span:last-child {
  color: var(--bv-ink-soft);
}

.bv-contact-layout {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(340px, .9fr) minmax(0, 1.45fr);
  gap: clamp(20px, 2.4vw, 34px);
}

.bv-contact-location {
  position: relative;
  overflow: hidden;
  min-height: 660px;
  margin: 0;
  border-radius: 42px;
  color: var(--bv-white);
  background:
    linear-gradient(180deg, rgba(2, 29, 37, .28) 0%, rgba(2, 29, 37, .5) 52%, rgba(2, 29, 37, .94) 100%),
    url("../images/parallax-5.jpg?v=20260817-modern") center / cover no-repeat;
  box-shadow: 0 34px 90px rgba(7, 57, 71, .24);
  isolation: isolate;
}

.bv-contact-location::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(2, 29, 37, .04) 0%, rgba(2, 29, 37, .16) 38%, rgba(2, 29, 37, .68) 100%),
    linear-gradient(115deg, rgba(7, 100, 112, .38), rgba(2, 29, 37, .12) 58%, rgba(2, 29, 37, .34));
  content: "";
}

.bv-contact-location::after {
  position: absolute;
  z-index: -1;
  top: 26px;
  right: 26px;
  width: 122px;
  height: 122px;
  border: 1px solid rgba(255, 255, 255, .38);
  border-radius: 50%;
  background: url("../images/logo.png?v=20260817-modern") center / 78% auto no-repeat;
  content: "";
  filter: saturate(.9) contrast(1.04);
  mix-blend-mode: multiply;
  opacity: .68;
  pointer-events: none;
}

.bv-contact-location__content {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  padding: clamp(30px, 4vw, 54px);
  background: linear-gradient(180deg, rgba(2, 29, 37, 0) 0%, rgba(2, 29, 37, .36) 24%, rgba(2, 29, 37, .7) 100%);
  text-shadow: 0 2px 14px rgba(0, 15, 22, .72);
  backdrop-filter: blur(1.5px) saturate(.9);
  -webkit-backdrop-filter: blur(1.5px) saturate(.9);
}

.bv-contact-location__icon {
  display: grid;
  width: 58px;
  height: 58px;
  margin-bottom: 26px;
  border: 1px solid rgba(255, 255, 255, .4);
  border-radius: 20px;
  color: var(--bv-white);
  background: rgba(2, 29, 37, .42);
  font-size: 27px;
  place-items: center;
  backdrop-filter: blur(12px);
}

.bv-contact-location__label {
  display: block;
  margin-bottom: 9px;
  color: #dcfffb;
  font-family: var(--bv-font-body);
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.bv-contact-location h3 {
  max-width: 400px;
  margin-bottom: 20px;
  color: var(--bv-white);
  font-family: var(--bv-font-display);
  font-size: clamp(32px, 3.6vw, 48px);
  font-weight: 750;
  line-height: 1.06;
  letter-spacing: -.045em;
  text-shadow: 0 3px 24px rgba(0, 15, 22, .82);
}

.bv-contact-location address {
  display: flex;
  margin-bottom: 22px;
  color: rgba(255, 255, 255, .94);
  font-size: 15px;
  font-style: normal;
  line-height: 1.65;
  flex-direction: column;
}

.bv-contact-location address strong {
  margin-bottom: 3px;
  color: var(--bv-white);
  font-size: 17px;
}

.bv-contact-location__vat {
  display: inline-flex;
  margin-bottom: 28px;
  padding: 8px 12px;
  border: 1px solid rgba(255, 255, 255, .34);
  border-radius: 999px;
  color: rgba(255, 255, 255, .94);
  background: rgba(2, 29, 37, .48);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .055em;
  box-shadow: 0 10px 28px rgba(0, 15, 22, .24);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.bv-contact-location__link {
  display: flex;
  width: fit-content;
  min-height: 52px;
  padding: 0 19px;
  border-radius: 999px;
  color: var(--bv-night-deep) !important;
  background: var(--bv-white);
  font-size: 13px;
  font-weight: 800;
  align-items: center;
  gap: 10px;
  text-shadow: none;
  box-shadow: 0 14px 36px rgba(3, 33, 42, .24);
}

.bv-contact-location__link span {
  color: var(--bv-sea);
  font-size: 20px;
}

.bv-contact-location__link:hover {
  color: var(--bv-white) !important;
  background: var(--bv-coral);
  transform: translateY(-3px);
}

.bv-contact-location__link:hover span {
  color: inherit;
}

.bv-contact-channels {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(3, minmax(0, 1fr));
  gap: clamp(14px, 1.5vw, 20px);
}

.bv-contact-channel {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 190px;
  overflow: hidden;
  padding: clamp(22px, 2.35vw, 32px);
  border: 1px solid rgba(7, 57, 71, .10);
  border-radius: 30px;
  color: var(--bv-ink) !important;
  background: rgba(255, 255, 255, .89);
  align-items: flex-start;
  flex-direction: column;
  justify-content: space-between;
  gap: 22px;
  box-shadow: 0 19px 54px rgba(7, 57, 71, .095);
  transition: border-color .3s ease, box-shadow .4s var(--bv-ease), transform .4s var(--bv-ease);
}

.bv-contact-channel::after {
  position: absolute;
  top: 23px;
  right: 25px;
  color: rgba(7, 57, 71, .35);
  content: "↗";
  font-size: 19px;
  line-height: 1;
  transition: color .3s ease, transform .35s var(--bv-ease);
}

.bv-contact-channel:hover,
.bv-contact-channel:focus-visible {
  border-color: rgba(10, 135, 148, .28);
  color: var(--bv-ink) !important;
  box-shadow: 0 28px 66px rgba(7, 57, 71, .15);
  transform: translateY(-6px);
}

.bv-contact-channel:hover::after {
  color: var(--bv-coral);
  transform: translate(3px, -3px);
}

.bv-contact-channel--email {
  grid-column: 1 / -1;
  min-height: 166px;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
}

.bv-contact-channel__icon {
  position: relative;
  z-index: 1;
  display: grid;
  width: 55px;
  height: 55px;
  flex: 0 0 55px;
  border-radius: 18px;
  color: var(--bv-sea);
  background: rgba(10, 135, 148, .09);
  font-size: 25px;
  place-items: center;
}

.bv-contact-channel--fitness .bv-contact-channel__icon {
  color: var(--bv-coral-dark);
  background: rgba(239, 112, 95, .10);
}

.bv-contact-channel--whatsapp .bv-contact-channel__icon {
  background: rgba(37, 211, 102, .10);
}

.bv-contact-channel__icon img {
  display: block;
  width: 28px;
  height: 28px;
  object-fit: contain;
}

.bv-contact-channel__copy {
  position: relative;
  z-index: 1;
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.bv-contact-channel__copy small {
  overflow: hidden;
  margin-bottom: 5px;
  color: var(--bv-ink-soft);
  font-size: 10px;
  font-weight: 750;
  line-height: 1.35;
  letter-spacing: .075em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.bv-contact-channel__copy strong {
  margin-bottom: 5px;
  color: var(--bv-ink);
  font-family: var(--bv-font-display);
  font-size: clamp(18px, 1.7vw, 24px);
  font-weight: 750;
  line-height: 1.18;
  letter-spacing: -.035em;
}

.bv-contact-channel__copy > span {
  overflow-wrap: anywhere;
  color: var(--bv-sea);
  font-size: clamp(13px, 1.05vw, 15px);
  font-weight: 700;
  line-height: 1.45;
}

.bv-page-contatti .object-wrap iframe {
  background: var(--bv-sand);
}

@media (max-width: 1199.98px) {
  .bv-contact-layout {
    grid-template-columns: minmax(310px, .82fr) minmax(0, 1.18fr);
  }

  .bv-contact-location {
    min-height: 620px;
  }

  .bv-contact-channel {
    min-height: 178px;
  }

  .bv-contact-channel--email {
    min-height: 156px;
  }
}

@media (max-width: 991.98px) {
  .bv-contact-hub__intro {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .bv-contact-hub__note {
    width: fit-content;
  }

  .bv-contact-layout {
    grid-template-columns: 1fr;
  }

  .bv-contact-location {
    min-height: 500px;
  }

  .bv-contact-channels {
    grid-auto-rows: minmax(174px, auto);
    grid-template-rows: none;
  }
}

@media (max-width: 767.98px) {
  .bv-contact-hero__lead {
    width: min(100%, 520px);
    font-size: 16px !important;
  }

  .bv-contact-hub {
    padding-top: 62px;
    padding-bottom: 76px;
  }

  .bv-contact-seo-feature {
    width: 100%;
    max-width: none;
    min-height: 48px;
    margin-bottom: 26px;
    margin-left: 0;
    padding: 12px 15px;
    border-radius: 13px 26px 13px 26px;
    font-size: 11px;
    letter-spacing: .04em;
  }

  .bv-contact-hub__intro {
    margin-bottom: 38px;
    gap: 25px;
  }

  .bv-contact-hub__copy h2 {
    margin-bottom: 18px;
    font-size: clamp(37px, 11.8vw, 52px);
  }

  .bv-contact-hub__copy > p {
    font-size: 16px;
    line-height: 1.72;
  }

  .bv-contact-hub__note {
    width: 100%;
    min-width: 0;
  }

  .bv-contact-layout {
    gap: 18px;
  }

  .bv-contact-location {
    min-height: 520px;
    border-radius: 32px;
  }

  .bv-contact-location__content {
    padding: 28px;
  }

  .bv-contact-location h3 {
    font-size: 37px;
  }

  .bv-contact-channels {
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
  }

  .bv-contact-channel,
.bv-contact-channel--email {
    min-height: 150px;
    padding: 23px;
    grid-column: auto;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
  }

  .bv-contact-channel__copy {
    padding-right: 20px;
  }

  .bv-contact-channel__copy small {
    white-space: normal;
  }
}

@media (max-width: 420px) {
  .bv-contact-location {
    min-height: 500px;
  }

  .bv-contact-location__content {
    padding: 24px;
  }

  .bv-contact-location__icon {
    width: 52px;
    height: 52px;
    margin-bottom: 22px;
  }

  .bv-contact-location h3 {
    font-size: 34px;
  }

  .bv-contact-location__link {
    width: 100%;
    justify-content: center;
  }

  .bv-contact-channel,
.bv-contact-channel--email {
    min-height: 142px;
    padding: 20px;
    gap: 16px;
  }

  .bv-contact-channel::after {
    top: 18px;
    right: 19px;
  }

  .bv-contact-channel__icon {
    width: 50px;
    height: 50px;
    flex-basis: 50px;
  }

  .bv-contact-channel__copy strong {
    font-size: 19px;
  }
}

@media (max-height: 500.98px) and (orientation: landscape) {
  .bv-page-contatti .ui-to-top {
    display: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bv-contact-hub__note-dot::after {
    animation: none;
  }

  .bv-contact-channel {
    transition: none;
  }
}

/* Refined mobile navigation: compact brand bar and ordered off-canvas menu */
.bv-mobile-brand-copy,
.bv-mobile-menu-head,
.bv-mobile-language-title {
  display: none;
}

.rd-navbar-fixed .rd-navbar-panel {
  z-index: 1202;
  height: 82px;
  border-bottom: 1px solid rgba(7, 57, 71, .08);
  border-radius: 0 0 24px 24px;
  background:
    linear-gradient(110deg, rgba(255, 255, 255, .98), rgba(247, 253, 252, .96));
  box-shadow: 0 14px 38px rgba(7, 57, 71, .13);
}

.rd-navbar-fixed .rd-navbar-toggle {
  top: 17px;
  left: 14px;
  display: grid;
  width: 48px;
  height: 48px;
  border: 1px solid rgba(10, 135, 148, .15);
  border-radius: 16px;
  color: var(--bv-night);
  background: rgba(10, 135, 148, .075);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .75);
  place-items: center;
  transition: color .25s ease, background .25s ease, border-color .25s ease, box-shadow .3s ease, transform .25s ease;
}

.rd-navbar-fixed .rd-navbar-toggle:hover,
.rd-navbar-fixed .rd-navbar-toggle:focus-visible {
  border-color: rgba(10, 135, 148, .3);
  background: rgba(10, 135, 148, .12);
  box-shadow: 0 9px 22px rgba(7, 57, 71, .12);
}

.rd-navbar-fixed .rd-navbar-toggle:focus-visible {
  outline: 3px solid rgba(239, 112, 95, .26);
  outline-offset: 2px;
}

.rd-navbar-fixed .rd-navbar-toggle.active {
  border-color: transparent;
  color: var(--bv-white);
  background: linear-gradient(135deg, var(--bv-sea-bright), var(--bv-sea));
  box-shadow: 0 12px 26px rgba(10, 135, 148, .25);
  transform: rotate(2deg);
}

.rd-navbar-fixed .rd-navbar-toggle span,
.rd-navbar-fixed .rd-navbar-toggle span::before,
.rd-navbar-fixed .rd-navbar-toggle span::after {
  width: 21px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
}

.rd-navbar-fixed .rd-navbar-toggle.active span {
  background: transparent;
}

.rd-navbar-fixed .rd-navbar-brand {
  top: 8px;
  left: 76px;
  height: 66px;
}

.rd-navbar-fixed .rd-navbar-brand .brand__name {
  display: flex;
  height: 66px;
  align-items: center;
  gap: 10px;
  text-align: left;
}

.rd-navbar-fixed .rd-navbar-brand img {
  width: auto;
  height: 60px;
  flex: 0 0 auto;
}

.rd-navbar-fixed .bv-mobile-brand-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
}

.rd-navbar-fixed .bv-mobile-brand-copy strong {
  overflow: hidden;
  padding-bottom: .08em;
  color: var(--bv-night);
  font-size: 17px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -.035em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.rd-navbar-fixed .bv-mobile-brand-copy small {
  margin-top: 5px;
  color: var(--bv-sea);
  font-size: 8px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .14em;
  text-transform: uppercase;
  white-space: nowrap;
}

.rd-navbar-fixed .rd-navbar-nav-wrap {
  z-index: 1201;
  top: 82px !important;
  bottom: auto !important;
  left: 0 !important;
  width: min(390px, calc(100vw - 14px));
  height: calc(100vh - 82px) !important;
  height: calc(100dvh - 82px) !important;
  max-height: calc(100vh - 82px) !important;
  max-height: calc(100dvh - 82px) !important;
  padding: 12px 12px max(28px, env(safe-area-inset-bottom));
  border: 1px solid rgba(7, 57, 71, .09);
  border-top: 0;
  border-left: 0;
  border-radius: 0 0 30px 0;
  color: var(--bv-ink);
  background:
    radial-gradient(circle at 92% 11%, rgba(32, 182, 178, .13), transparent 14rem),
    linear-gradient(160deg, #fbf9f3 0%, #f3f8f5 100%);
  box-shadow: 26px 34px 70px rgba(4, 43, 54, .23);
  overscroll-behavior: contain;
  scrollbar-color: rgba(10, 135, 148, .34) transparent;
  scrollbar-width: thin;
  transform: translateX(calc(-100% - 18px)) !important;
  transition: transform .42s var(--bv-ease), box-shadow .35s ease;
}

.rd-navbar-fixed .rd-navbar-nav-wrap::-webkit-scrollbar {
  width: 5px;
}

.rd-navbar-fixed .rd-navbar-nav-wrap::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(10, 135, 148, .34);
}

.rd-navbar-fixed .rd-navbar-nav-wrap.active {
  transform: translateX(0) !important;
}

.rd-navbar-fixed .bv-mobile-menu-head {
  position: relative;
  display: flex;
  min-height: 100px;
  margin-bottom: 12px;
  padding: 22px 82px 20px 22px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .15);
  border-radius: 23px;
  color: var(--bv-white);
  background:
    radial-gradient(circle at 88% 18%, rgba(189, 233, 228, .2), transparent 8rem),
    linear-gradient(135deg, var(--bv-sea), var(--bv-night));
  box-shadow: 0 18px 38px rgba(7, 57, 71, .18);
  flex-direction: column;
  justify-content: center;
}

.rd-navbar-fixed .bv-mobile-menu-head__eyebrow {
  color: var(--bv-sky);
  font-size: 8px;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.rd-navbar-fixed .bv-mobile-menu-head__title {
  margin-top: 7px;
  color: var(--bv-white);
  font-family: var(--bv-font-display);
  font-size: 28px;
  font-weight: 750;
  line-height: 1;
  letter-spacing: -.045em;
}

.rd-navbar-fixed .bv-mobile-menu-head__mark {
  position: absolute;
  top: 50%;
  right: 16px;
  display: grid;
  width: 62px;
  height: 62px;
  padding: 6px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .72);
  border-radius: 50%;
  background: linear-gradient(145deg, #fff, #f1f8f5);
  box-shadow:
    0 14px 30px rgba(3, 33, 42, .26),
    0 0 0 5px rgba(255, 255, 255, .08),
    inset 0 1px 0 rgba(255, 255, 255, .95);
  place-items: center;
  transform: translateY(-50%);
}

.rd-navbar-fixed .bv-mobile-menu-head__mark img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 0;
  object-fit: contain;
  object-position: center;
  filter: saturate(1.06) contrast(1.02);
}

.rd-navbar-fixed .rd-navbar-nav {
  margin: 0 !important;
  padding: 0 2px 14px;
  counter-reset: bv-mobile-nav;
}

.rd-navbar-fixed .rd-navbar-nav > li.bv-nav-main {
  margin: 0 0 5px;
  counter-increment: bv-mobile-nav;
}

.rd-navbar-fixed .rd-navbar-nav > li.bv-nav-main > a {
  display: grid;
  min-height: 50px;
  padding: 9px 13px 9px 10px;
  border: 1px solid transparent;
  border-radius: 15px;
  grid-template-columns: 34px minmax(0, 1fr) 18px;
  align-items: center;
  column-gap: 9px;
  color: var(--bv-ink);
  background: rgba(255, 255, 255, .56);
  font-size: 12.5px;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: .06em;
  text-transform: uppercase;
  transition: color .22s ease, background .22s ease, border-color .22s ease, box-shadow .25s ease, transform .25s ease;
}

.rd-navbar-fixed .rd-navbar-nav > li.bv-nav-main > a::before {
  display: grid;
  width: 30px;
  height: 30px;
  border-radius: 10px;
  color: var(--bv-sea);
  background: rgba(10, 135, 148, .09);
  content: counter(bv-mobile-nav, decimal-leading-zero);
  font-size: 8px;
  font-weight: 850;
  letter-spacing: .08em;
  place-items: center;
}

.rd-navbar-fixed .rd-navbar-nav > li.bv-nav-main > a::after {
  color: rgba(7, 57, 71, .35);
  content: "›";
  font-size: 21px;
  font-weight: 400;
  line-height: 1;
  text-align: center;
}

.rd-navbar-fixed .rd-navbar-nav > li.bv-nav-main > a:hover,
.rd-navbar-fixed .rd-navbar-nav > li.bv-nav-main > a:focus-visible {
  border-color: rgba(10, 135, 148, .18);
  color: var(--bv-sea);
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 10px 22px rgba(7, 57, 71, .09);
  transform: translateX(3px);
}

.rd-navbar-fixed .rd-navbar-nav > li.bv-current > a,
.rd-navbar-fixed .rd-navbar-nav > li.bv-current > a:hover,
.rd-navbar-fixed .rd-navbar-nav > li.bv-current > a:focus-visible {
  border-color: transparent;
  color: var(--bv-white);
  background: linear-gradient(135deg, var(--bv-sea-bright), var(--bv-sea));
  box-shadow: 0 14px 30px rgba(10, 135, 148, .22);
  transform: none;
}

.rd-navbar-fixed .rd-navbar-nav > li.bv-current > a::before,
.rd-navbar-fixed .rd-navbar-nav > li.bv-current > a::after,
.rd-navbar-fixed .rd-navbar-nav > li > a.bv-nav-contact::before,
.rd-navbar-fixed .rd-navbar-nav > li > a.bv-nav-contact::after {
  color: var(--bv-white);
}

.rd-navbar-fixed .rd-navbar-nav > li.bv-current > a::before,
.rd-navbar-fixed .rd-navbar-nav > li > a.bv-nav-contact::before {
  background: rgba(255, 255, 255, .16);
}

.rd-navbar-fixed .rd-navbar-nav > li > a.bv-nav-contact,
.rd-navbar-fixed .rd-navbar-nav > li > a.bv-nav-contact:hover,
.rd-navbar-fixed .rd-navbar-nav > li > a.bv-nav-contact:focus-visible {
  border-color: transparent;
  color: var(--bv-white);
  background: linear-gradient(135deg, var(--bv-coral), var(--bv-coral-dark));
  box-shadow: 0 13px 28px rgba(239, 112, 95, .22);
}

.rd-navbar-fixed .bv-mobile-language-title {
  display: block;
  width: 100%;
  clear: both;
  margin: 15px 4px 8px !important;
  padding-top: 15px;
  border-top: 1px solid rgba(7, 57, 71, .1);
}

.rd-navbar-fixed .bv-mobile-language-title span {
  display: block;
  color: var(--bv-ink-soft);
  font-size: 8.5px;
  font-weight: 850;
  line-height: 1.3;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.rd-navbar-fixed .rd-navbar-nav > li.bv-language-link {
  display: block;
  float: left;
  width: 25%;
  margin: 0 !important;
  padding: 0 2px;
  vertical-align: top;
}

.rd-navbar-fixed .rd-navbar-nav > li.bv-language-link > a {
  display: grid;
  width: 100%;
  min-height: 52px;
  padding: 0;
  border: 1px solid rgba(7, 57, 71, .09);
  border-radius: 15px;
  background: rgba(255, 255, 255, .74);
  box-shadow: 0 7px 18px rgba(7, 57, 71, .055);
  place-items: center;
  transition: border-color .22s ease, box-shadow .25s ease, transform .25s ease;
}

.rd-navbar-fixed .rd-navbar-nav > li.bv-language-link > a:hover,
.rd-navbar-fixed .rd-navbar-nav > li.bv-language-link > a:focus-visible {
  border-color: rgba(10, 135, 148, .3);
  box-shadow: 0 10px 22px rgba(7, 57, 71, .1);
  transform: translateY(-2px);
}

.rd-navbar-fixed .rd-navbar-nav > li.bv-language-link > a img {
  width: 25px !important;
  height: 25px !important;
  border: 2px solid var(--bv-white);
  box-shadow: 0 5px 14px rgba(7, 57, 71, .16);
}

/* Keep the floated language buttons inside the scrollable menu flow so the
   panel's bottom padding remains visible even on short mobile viewports. */
.rd-navbar-fixed .rd-navbar-nav::after {
  display: block;
  width: 100%;
  height: 0;
  clear: both;
  content: "";
}

.rd-navbar-fixed .rd-navbar-nav > li:last-child:not(.bv-language-link):not(.bv-nav-main) {
  display: none !important;
}

.bv-menu-scrim {
  z-index: 1200;
  inset: 82px 0 0;
  height: calc(100% - 82px);
  background: rgba(3, 33, 42, .64);
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
  transition: opacity .32s ease, visibility 0s linear .32s;
}

.bv-menu-open .bv-menu-scrim {
  transition-delay: 0s;
}

.bv-menu-open .page-header {
  position: sticky !important;
  z-index: 1301;
  top: 0;
}

.bv-menu-open .bv-mobile-actions {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transform: translateY(calc(100% + 18px)) !important;
}

@media (max-width: 359px) {
  .rd-navbar-fixed .rd-navbar-brand {
    left: 70px;
  }

  .rd-navbar-fixed .rd-navbar-brand img {
    height: 54px;
  }

  .rd-navbar-fixed .bv-mobile-brand-copy strong {
    font-size: 15px;
  }

  .rd-navbar-fixed .bv-mobile-brand-copy small {
    font-size: 8px;
    letter-spacing: .1em;
  }

  .rd-navbar-fixed .rd-navbar-nav-wrap {
    width: calc(100vw - 8px);
  }
}

@media (max-height: 500px) and (orientation: landscape) {
  .rd-navbar-fixed .rd-navbar-panel {
    height: 68px;
    border-radius: 0 0 20px 20px;
  }

  .rd-navbar-fixed .rd-navbar-toggle {
    top: 10px;
    width: 46px;
    height: 46px;
    border-radius: 15px;
  }

  .rd-navbar-fixed .rd-navbar-brand {
    top: 3px;
    left: 72px;
    height: 62px;
  }

  .rd-navbar-fixed .rd-navbar-brand .brand__name {
    height: 62px;
  }

  .rd-navbar-fixed .rd-navbar-brand img {
    height: 54px;
  }

  .rd-navbar-fixed .rd-navbar-nav-wrap {
    top: 68px !important;
    height: calc(100vh - 68px) !important;
    height: calc(100dvh - 68px) !important;
    max-height: calc(100vh - 68px) !important;
    max-height: calc(100dvh - 68px) !important;
  }

  .rd-navbar-fixed .bv-mobile-menu-head {
    min-height: 76px;
    padding-top: 14px;
    padding-bottom: 14px;
  }

  .rd-navbar-fixed .bv-mobile-menu-head__title {
    font-size: 23px;
  }

  .rd-navbar-fixed .rd-navbar-nav > li.bv-nav-main > a {
    min-height: 44px;
    padding-top: 6px;
    padding-bottom: 6px;
  }

  .bv-menu-scrim {
    inset: 68px 0 0;
    height: calc(100% - 68px);
  }
}

/* ================================================================
 * Editorial section system — 2026 refinement
 * ================================================================ */

.page > section {
  scroll-margin-top: 118px;
}

.page h2,
.page h3 {
  text-wrap: balance;
}

.page p {
  text-wrap: pretty;
}

.bv-gallery-label {
  display: flex;
  max-width: 920px;
  margin: 0 auto 18px;
  align-items: center;
  gap: 11px;
  color: var(--bv-ink);
}

.bv-gallery-label__kicker {
  display: grid;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border: 1px solid rgba(10, 135, 148, .17);
  border-radius: 11px;
  color: var(--bv-sea);
  background: rgba(10, 135, 148, .08);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .08em;
  place-items: center;
}

.bv-gallery-label__title {
  font-family: var(--bv-font-display);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

/* The long home introduction becomes a scannable editorial story. */
.bv-home-story {
  position: relative;
  padding: clamp(76px, 8vw, 124px) 0 !important;
  overflow: hidden;
  background:
    radial-gradient(circle at 9% 7%, rgba(32, 182, 178, .12), transparent 24rem),
    linear-gradient(150deg, #f8f2e7 0%, #fffdf8 52%, #eef8f5 100%) !important;
}

.bv-home-story > .container > .row {
  align-items: flex-start;
  row-gap: clamp(34px, 5vw, 68px);
}

.bv-home-story__copy {
  padding: clamp(30px, 4vw, 52px);
  border: 1px solid rgba(7, 57, 71, .1);
  border-radius: 34px;
  background: rgba(255, 255, 255, .78);
  box-shadow: 0 28px 76px rgba(7, 57, 71, .11);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.bv-home-story__copy h6 {
  display: flex;
  margin-bottom: 14px;
  align-items: center;
  gap: 12px;
  color: var(--bv-sea);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .17em;
  text-transform: uppercase;
}

.bv-home-story__copy h6::before {
  width: 26px;
  height: 1px;
  background: var(--bv-sea);
  content: "";
}

.bv-home-story__copy h2 {
  max-width: 560px;
  margin-bottom: 28px;
  font-size: clamp(38px, 4.7vw, 64px);
  line-height: 1.02;
  letter-spacing: -.055em;
}

.bv-story-grid {
  display: grid;
  margin: 0 0 30px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.bv-story-card {
  position: relative;
  min-height: 100%;
  padding: 22px 20px 20px 58px;
  border: 1px solid rgba(7, 57, 71, .085);
  border-radius: 20px;
  background: linear-gradient(145deg, rgba(255, 255, 255, .9), rgba(245, 250, 247, .72));
  box-shadow: 0 12px 30px rgba(7, 57, 71, .055);
  transition: border-color .25s ease, box-shadow .3s ease, transform .3s var(--bv-ease);
}

.bv-story-card::before {
  position: absolute;
  top: 20px;
  left: 17px;
  display: grid;
  width: 29px;
  height: 29px;
  border-radius: 9px;
  color: var(--bv-sea);
  background: rgba(10, 135, 148, .09);
  content: attr(data-index);
  font-size: 8px;
  font-weight: 850;
  letter-spacing: .07em;
  place-items: center;
}

.bv-story-card p {
  color: var(--bv-ink-soft);
  font-size: 14px;
  line-height: 1.68;
}

.bv-story-card:hover {
  border-color: rgba(10, 135, 148, .2);
  box-shadow: 0 18px 38px rgba(7, 57, 71, .09);
  transform: translateY(-4px);
}

.bv-home-story__copy > .button {
  width: 100%;
  justify-content: center;
}

.bv-home-story__media {
  position: relative;
  top: auto;
  padding-top: 6px;
}

.bv-home-story__media .bv-gallery-label {
  margin-bottom: 14px;
}

.bv-home-story__media .owl-carousel {
  overflow: hidden;
  border: 9px solid rgba(255, 255, 255, .88);
  border-radius: 32px;
  box-shadow: 0 32px 82px rgba(7, 57, 71, .17);
}

/* A compact,
responsive video library replaces the repeated full-width rows. */
.bv-video-library {
  position: relative;
  padding: clamp(72px, 8vw, 122px) 0 !important;
  background: linear-gradient(145deg, #f7f1e5, #f8fcf9) !important;
}

.bv-video-library__heading {
  display: grid;
  max-width: 760px;
  margin: 0 auto clamp(34px, 5vw, 58px);
  text-align: center;
  justify-items: center;
}

.bv-video-library__eyebrow {
  display: inline-flex;
  margin-bottom: 14px;
  align-items: center;
  gap: 10px;
  color: var(--bv-sea);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .17em;
  text-transform: uppercase;
}

.bv-video-library__eyebrow::before,
.bv-video-library__eyebrow::after {
  width: 28px;
  height: 1px;
  background: currentColor;
  content: "";
}

.bv-video-library__heading h2 {
  margin: 0;
  font-size: clamp(42px, 6vw, 74px);
  line-height: 1;
  letter-spacing: -.055em;
}

.bv-video-library__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 2.4vw, 30px);
}

.bv-video-card {
  position: relative;
  min-width: 0;
  padding: 14px;
  border: 1px solid rgba(7, 57, 71, .1);
  border-radius: 28px;
  background: rgba(255, 255, 255, .82);
  box-shadow: 0 22px 54px rgba(7, 57, 71, .11);
  transition: border-color .25s ease, box-shadow .3s ease, transform .35s var(--bv-ease);
}

.bv-video-card:first-child {
  grid-column: 1 / -1;
}

.bv-video-card:hover {
  border-color: rgba(10, 135, 148, .22);
  box-shadow: 0 30px 72px rgba(7, 57, 71, .16);
  transform: translateY(-6px);
}

.bv-video-card__badge {
  display: inline-flex;
  min-height: 34px;
  margin: 0 0 11px 2px;
  padding: 0 13px;
  border-radius: 999px;
  align-items: center;
  color: var(--bv-sea);
  background: rgba(10, 135, 148, .09);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.bv-video-card .videoWrapper {
  margin: 0;
  overflow: hidden;
  border-radius: 19px;
  background: var(--bv-night);
}

.bv-video-card iframe {
  border-radius: 19px;
}

/* Tighter rhythm for image-led sections and cleaner mobile reading. */
.bv-gallery-section:not(.bv-home-story):not(.bv-restaurant-intro) {
  padding-top: clamp(54px, 7vw, 96px) !important;
  padding-bottom: clamp(54px, 7vw, 96px) !important;
}

.bv-gallery-section .owl-carousel {
  max-width: 920px;
  margin-right: auto;
  margin-left: auto;
}

@media (max-width: 991.98px) {
  .bv-home-story__copy {
    padding: clamp(28px, 5vw, 44px);
  }

  .bv-home-story__media {
    position: relative;
    top: auto;
    padding-top: 0;
  }

  .bv-video-library__grid {
    gap: 18px;
  }
}

@media (min-width: 992px) {
  .bv-home-story > .container > .row > .bv-home-story__copy {
    flex: 0 0 62%;
    max-width: 62%;
  }

  .bv-home-story > .container > .row > .bv-home-story__media {
    flex: 0 0 38%;
    max-width: 38%;
  }
}

@media (max-width: 767.98px) {
  .page > section {
    scroll-margin-top: 96px;
  }

  .bv-gallery-label {
    width: calc(100% - 4px);
    margin-bottom: 13px;
  }

  .bv-home-story {
    padding: 48px 0 60px !important;
  }

  .bv-home-story > .container {
    width: min(100% - 28px, 720px);
  }

  .bv-home-story > .container > .row {
    margin-right: 0;
    margin-left: 0;
  }

  .bv-home-story > .container > .row > .bv-home-story__copy,
.bv-home-story > .container > .row > .bv-home-story__media {
    flex: 0 0 100%;
    width: 100%;
    max-width: 100%;
    padding-right: 0;
    padding-left: 0;
  }

  .bv-home-story__copy {
    padding: 26px 18px 20px;
    border-radius: 28px;
  }

  .bv-home-story__copy h2 {
    margin-bottom: 22px;
    font-size: clamp(35px, 11vw, 48px);
  }

  .bv-story-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .bv-story-card {
    padding: 18px 16px 18px 54px;
    border-radius: 17px;
  }

  .bv-story-card::before {
    top: 17px;
    left: 15px;
  }

  .bv-story-card p {
    font-size: 14.5px;
    line-height: 1.72;
  }

  .bv-home-story__media {
    padding: 0 4px;
  }

  .bv-home-story__media .owl-carousel {
    border-width: 7px;
    border-radius: 25px;
  }

  .bv-video-library {
    padding: 54px 0 66px !important;
  }

  .bv-video-library > .container {
    width: min(100% - 28px, 720px);
  }

  .bv-video-library__heading {
    margin-bottom: 28px;
  }

  .bv-video-library__heading h2 {
    font-size: clamp(38px, 12vw, 54px);
  }

  .bv-video-library__grid {
    grid-template-columns: 1fr;
    gap: 15px;
  }

  .bv-video-card,
.bv-video-card:first-child {
    grid-column: auto;
  }

  .bv-video-card {
    padding: 10px;
    border-radius: 23px;
  }

  .bv-video-card__badge {
    margin-bottom: 8px;
  }

  .bv-video-card .videoWrapper,
.bv-video-card iframe {
    border-radius: 16px;
  }

  .bv-gallery-section:not(.bv-home-story):not(.bv-restaurant-intro) {
    padding-top: 48px !important;
    padding-bottom: 54px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bv-story-card,
.bv-video-card {
    transition: none;
  }
}

/* Keep the desktop back-to-top control discreet while reading and clear of the footer notice. */
@media (min-width: 1200px) {
  .ui-to-top {
    bottom: 40px;
  }

  .ui-to-top.bv-to-top-clear-footer {
    bottom: 112px;
  }
}

/* 2026 coastal-luxury finish: richer depth without changing the site's content. */
.page {
  background:
    radial-gradient(circle at 6% 12%, rgba(32, 182, 178, .075), transparent 28rem),
    radial-gradient(circle at 94% 34%, rgba(239, 112, 95, .055), transparent 30rem),
    linear-gradient(180deg, #fbf8f1 0%, #f7f1e6 100%);
}

.rd-navbar-static .rd-navbar-inner {
  border: 1px solid rgba(7, 57, 71, .075);
  background: linear-gradient(135deg, rgba(255, 255, 255, .985), rgba(251, 248, 241, .955));
  box-shadow: 0 20px 52px rgba(7, 57, 71, .12);
  backdrop-filter: blur(22px) saturate(135%);
  -webkit-backdrop-filter: blur(22px) saturate(135%);
}

.bv-header-scrolled .rd-navbar-static .rd-navbar-inner {
  border-color: rgba(10, 135, 148, .12);
  background: linear-gradient(135deg, rgba(255, 255, 255, .975), rgba(248, 245, 237, .94));
  box-shadow: 0 24px 64px rgba(4, 43, 54, .17);
}

.parallax-header h2,
.bv-page-index .swiper-slide-caption h2,
.bv-page-index .swiper-slide-caption h6 {
  text-shadow: 0 8px 32px rgba(3, 33, 42, .32);
}

.bv-home-quicklinks__item {
  overflow: hidden;
  isolation: isolate;
  border-color: rgba(7, 57, 71, .09);
  background: linear-gradient(145deg, rgba(255, 255, 255, .99), rgba(248, 247, 241, .91));
  box-shadow: 0 22px 54px rgba(7, 57, 71, .115);
}

.bv-home-quicklinks__item::after {
  position: absolute;
  z-index: 2;
  top: 0;
  right: 22px;
  left: 22px;
  height: 4px;
  border-radius: 0 0 999px 999px;
  background: linear-gradient(90deg, var(--bv-sea-bright), var(--bv-sea));
  content: "";
  opacity: .72;
}

.bv-home-quicklinks__item:nth-child(2)::after {
  background: linear-gradient(90deg, var(--bv-sea), var(--bv-sky));
}

.bv-home-quicklinks__item:nth-child(3)::after {
  background: linear-gradient(90deg, #d5ad7e, var(--bv-coral));
}

.bv-home-quicklinks__item:nth-child(4)::after {
  background: linear-gradient(90deg, var(--bv-coral), #f3a17e);
}

.bv-page-nav__inner {
  border: 1px solid rgba(7, 57, 71, .08);
  background: linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(249, 247, 241, .91));
  box-shadow: 0 24px 62px rgba(7, 57, 71, .14);
  backdrop-filter: blur(18px) saturate(130%);
  -webkit-backdrop-filter: blur(18px) saturate(130%);
}

.bv-page-servizi .page > .section-lg.bg-default.text-center > .container,
.bv-page-spiaggia .page > .section-lg.bg-default.text-center > .container {
  box-shadow:
    inset 0 4px 0 rgba(32, 182, 178, .62),
    0 34px 88px rgba(7, 57, 71, .135);
}

.object-wrap > .section-lg,
.quote-review,
.bv-story-card,
.bv-video-card {
  border-color: rgba(7, 57, 71, .095);
  background: linear-gradient(145deg, rgba(255, 255, 255, .96), rgba(250, 247, 239, .82));
  box-shadow: 0 24px 62px rgba(7, 57, 71, .105);
}

.button-primary,
button.button-primary {
  border-color: transparent !important;
  background: linear-gradient(135deg, #ef705f 0%, #e85e51 62%, #d95345 100%) !important;
  box-shadow: 0 16px 34px rgba(217, 83, 69, .25) !important;
}

.button-primary:hover,
.button-primary:focus,
button.button-primary:hover,
button.button-primary:focus {
  background: linear-gradient(135deg, #e85e51, #cf493e) !important;
  box-shadow: 0 20px 42px rgba(217, 83, 69, .34) !important;
}

.pre-footer-corporate .row > .bv-prefooter-card,
.footer-corporate__legal-item,
.technical-cookie-notice {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .075);
}

.footer-corporate__legal-item {
  transition: border-color .28s ease, background .28s ease, box-shadow .32s ease, transform .32s var(--bv-ease);
}

a.footer-corporate__legal-item:hover,
a.footer-corporate__legal-item:focus-visible {
  border-color: rgba(189, 233, 228, .28);
  background: rgba(255, 255, 255, .075);
  box-shadow: 0 18px 38px rgba(3, 33, 42, .18), inset 0 1px 0 rgba(255, 255, 255, .12);
  transform: translateY(-4px);
}

.ui-to-top {
  border: 1px solid rgba(255, 255, 255, .34);
  background: linear-gradient(145deg, #11969d, #076471) !important;
  box-shadow: 0 16px 34px rgba(4, 43, 54, .2);
}

.ui-to-top:hover,
.ui-to-top:focus-visible {
  background: linear-gradient(145deg, var(--bv-sea), var(--bv-night)) !important;
  box-shadow: 0 20px 42px rgba(4, 43, 54, .3);
}

@media (max-width: 767.98px) {
  .bv-page-servizi .page > .section-lg.bg-default.text-center > .container,
.bv-page-spiaggia .page > .section-lg.bg-default.text-center > .container {
    width: calc(100% - 28px);
    padding: 34px 22px 32px;
    border-radius: 28px;
    box-shadow:
      inset 0 3px 0 rgba(32, 182, 178, .58),
      0 22px 54px rgba(7, 57, 71, .12);
  }

  .bv-home-quicklinks__item::after {
    right: 16px;
    left: 16px;
    height: 3px;
  }

  .bv-page-nav__inner {
    box-shadow: 0 18px 42px rgba(7, 57, 71, .12);
  }
}

/* Keep the complete tablet navigation comfortable to read without crowding it. */
@media (min-width: 768px) and (max-width: 1199.98px) {
  .rd-navbar-static .rd-navbar-nav > li > a {
    padding-right: clamp(6px, .7vw, 9px) !important;
    padding-left: clamp(6px, .7vw, 9px) !important;
    font-size: clamp(10.5px, 1.05vw, 11px);
    font-weight: 750;
    letter-spacing: .012em;
  }
}

/* 2026 contemporary coastal design system: Sora + Manrope. */
:root {
  --bv-font-body: "Manrope", "Segoe UI Variable", "Segoe UI", Arial, sans-serif;
  --bv-font-display: "Sora", "Manrope", "Segoe UI Variable", sans-serif;
  --bv-surface: #fffdf9;
  --bv-surface-soft: #f2f7f5;
  --bv-surface-sand: #f5efe4;
  --bv-line: rgba(7, 57, 71, .105);
  --bv-radius-card: 34px;
  --bv-radius-section: 54px;
  --bv-shadow-card: 0 22px 62px rgba(7, 57, 71, .105);
  --bv-shadow-float: 0 34px 96px rgba(7, 57, 71, .15);
}

html,
body,
body button,
body input,
body select,
body textarea,
body table,
body p,
body li,
body a {
  font-family: var(--bv-font-body) !important;
}

body {
  color: #284850;
  font-size: 17.5px;
  font-variation-settings: "opsz" 17;
  font-synthesis: none;
  letter-spacing: -.012em;
}

body p,
body li {
  font-size: clamp(17px, 1.05vw, 18.5px);
  line-height: 1.76;
}

body h1,
body h2,
body h3,
body h4,
body h5,
body h6,
.parallax-header h2,
.bv-page-index .swiper-slide-caption h2,
.bv-page-index .swiper-slide-caption h6,
.bv-story-card__title,
.bv-home-quicklinks__item strong,
.bv-page-nav__label,
.bv-contact-channel__copy strong,
.footer-corporate__title {
  font-family: var(--bv-font-display) !important;
  font-optical-sizing: auto;
  font-weight: 650;
  letter-spacing: -.045em;
}

body h1,
body h2,
body h3 {
  color: #073947;
  text-wrap: balance;
}

body h1 {
  font-size: clamp(43px, 5.8vw, 82px);
  line-height: .98;
}

body h2 {
  font-size: clamp(38px, 4.5vw, 66px);
  line-height: 1.02;
}

body h3 {
  font-size: clamp(32px, 3.25vw, 50px);
  line-height: 1.06;
}

body h4 {
  font-size: clamp(23px, 2.1vw, 32px);
  line-height: 1.16;
}

.rd-navbar-static .rd-navbar-nav > li > a,
.rd-navbar-fixed .rd-navbar-nav > li > a,
.rd-navbar-fixed .rd-navbar-toggle,
.button,
button,
.ui-to-top {
  font-family: var(--bv-font-display) !important;
}

.rd-navbar-static .rd-navbar-inner {
  border-radius: 0 0 32px 32px;
  background: rgba(255, 253, 249, .965);
  box-shadow: 0 24px 70px rgba(4, 43, 54, .145);
}

.rd-navbar-static .rd-navbar-nav > li > a {
  padding-right: clamp(9px, 1vw, 15px) !important;
  padding-left: clamp(9px, 1vw, 15px) !important;
  color: #31515a;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: -.012em;
  text-transform: none;
}

.rd-navbar-static .rd-navbar-nav > li > a::after {
  right: 13px;
  bottom: 14px;
  left: 13px;
  height: 2px;
  border-radius: 999px;
}

.rd-navbar-static .rd-navbar-nav > li > a:hover,
.rd-navbar-static .rd-navbar-nav > li.active > a,
.rd-navbar-static .rd-navbar-nav > li.bv-current > a {
  color: #08717a;
}

.rd-navbar-static .rd-navbar-nav > li > a.bv-nav-contact {
  padding: 15px 24px !important;
  border-radius: 16px 28px 16px 28px;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .012em;
  text-transform: none;
}

.bv-page-index .swiper-slide-caption h2 {
  max-width: 920px;
  font-size: clamp(45px, 6.3vw, 88px);
  font-weight: 700;
  line-height: .94;
  letter-spacing: -.055em;
}

.bv-page-index .swiper-slide-caption h6,
.parallax-header .shell h6 {
  font-size: clamp(13px, 1.4vw, 18px);
  font-weight: 600;
  letter-spacing: .025em;
}

.button,
button.button {
  min-height: 52px;
  padding: 16px 25px;
  border-radius: 15px 27px 15px 27px;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .015em;
  text-transform: none;
}

.page > .section-md,
.page > .section-lg {
  position: relative;
  overflow: hidden;
  padding-top: clamp(74px, 8vw, 122px);
  padding-bottom: clamp(74px, 8vw, 122px);
}

.page > .section-md > .container,
.page > .section-lg > .container,
.bv-gallery-section > .container {
  position: relative;
  z-index: 1;
  width: min(100% - 48px, 1240px);
  max-width: 1240px;
}

.page > .section-md.bg-default,
.page > .section-lg.bg-default {
  background:
    radial-gradient(circle at 92% 12%, rgba(32, 182, 178, .09), transparent 23rem),
    linear-gradient(145deg, #fffdf9, #f8f6f0);
}

.page > .section-md.bg-gray-lighter,
.page > .section-lg.bg-gray-lighter {
  background:
    radial-gradient(circle at 6% 90%, rgba(239, 112, 95, .075), transparent 24rem),
    linear-gradient(145deg, #edf6f3, #f8f4ec);
}

.bv-home-quicklinks {
  padding: 22px 0 28px;
  background: #073947;
}

.bv-home-quicklinks__inner {
  gap: 13px;
}

.bv-home-quicklinks__item {
  min-height: 118px;
  padding: 24px 22px 22px;
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 15px 30px 15px 30px;
  background: rgba(255, 255, 255, .075);
  box-shadow: none;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.bv-home-quicklinks__item::after {
  top: auto;
  right: 22px;
  bottom: 13px;
  left: 22px;
  height: 2px;
  opacity: .8;
}

.bv-home-quicklinks__item:hover,
.bv-home-quicklinks__item:focus-visible {
  border-color: rgba(255, 255, 255, .25);
  background: rgba(255, 255, 255, .13);
  box-shadow: 0 18px 36px rgba(3, 33, 42, .25);
  transform: translateY(-5px);
}

.bv-home-quicklinks__item strong {
  color: #fff;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: -.025em;
}

.bv-home-quicklinks__number {
  color: #9edbd6;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.bv-page-nav__number {
  max-width: 100%;
  overflow: hidden;
  letter-spacing: .075em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.bv-video-card__badge {
  max-width: 100%;
  padding-top: 7px;
  padding-bottom: 7px;
  line-height: 1.35;
  text-align: left;
  white-space: normal;
}

.bv-home-quicklinks__icon {
  border-color: rgba(255, 255, 255, .13);
  background: rgba(255, 255, 255, .09);
  color: #fff;
}

.bv-page-nav {
  margin-top: -28px;
  padding: 0 clamp(16px, 4vw, 46px);
}

.bv-page-nav__inner {
  max-width: 1160px;
  padding: 11px;
  border-radius: 17px 32px 17px 32px;
  background: rgba(255, 253, 249, .97);
}

.bv-page-nav__item {
  min-height: 70px;
  border-radius: 13px 24px 13px 24px;
}

.bv-page-nav__label {
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -.018em;
  text-transform: none;
}

.bv-page-servizi .page > .section-lg.bg-default.text-center,
.bv-page-spiaggia .page > .section-lg.bg-default.text-center {
  padding-top: clamp(80px, 9vw, 132px);
  padding-bottom: clamp(80px, 9vw, 132px);
  background:
    linear-gradient(125deg, rgba(16, 145, 151, .12), transparent 44%),
    linear-gradient(180deg, #f3f8f5, #f5efe4);
}

.bv-page-servizi .page > .section-lg.bg-default.text-center > .container,
.bv-page-spiaggia .page > .section-lg.bg-default.text-center > .container {
  max-width: 1120px;
  padding: clamp(58px, 7vw, 92px) clamp(34px, 7vw, 92px);
  border: 1px solid rgba(7, 57, 71, .09);
  border-top: 0;
  border-radius: 18px 72px 18px 72px;
  background:
    linear-gradient(90deg, var(--bv-sea-bright), var(--bv-coral)) top / 100% 5px no-repeat,
    rgba(255, 253, 249, .96);
  box-shadow: var(--bv-shadow-float);
  text-align: left;
}

.bv-page-servizi .page > .section-lg.bg-default.text-center h3,
.bv-page-spiaggia .page > .section-lg.bg-default.text-center h3 {
  max-width: 800px;
  margin-right: 0;
  margin-left: 0;
  font-size: clamp(42px, 5.2vw, 70px);
}

.bv-page-servizi .page > .section-lg.bg-default.text-center p,
.bv-page-spiaggia .page > .section-lg.bg-default.text-center p {
  max-width: 850px;
  margin-right: 0;
  margin-left: 0;
  color: #48636a;
  font-size: clamp(17px, 1.2vw, 19px);
}

.bv-page-servizi .page > .section-lg.bg-default.text-center .button,
.bv-page-spiaggia .page > .section-lg.bg-default.text-center .button {
  margin-left: 0;
}

.bv-gallery-section:not(.bv-home-story):not(.bv-restaurant-intro) {
  padding-top: clamp(76px, 8vw, 118px) !important;
  padding-bottom: clamp(82px, 9vw, 132px) !important;
  background:
    radial-gradient(circle at 88% 12%, rgba(32, 182, 178, .25), transparent 27rem),
    radial-gradient(circle at 8% 88%, rgba(239, 112, 95, .14), transparent 25rem),
    #073947 !important;
}

.bv-gallery-section .owl-carousel {
  padding: 11px;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 18px 48px 18px 48px;
  background: rgba(255, 255, 255, .085);
  box-shadow: 0 34px 86px rgba(3, 33, 42, .32);
}

.bv-gallery-section .owl-carousel::before {
  top: -52px;
  left: 0;
  color: #d6efec;
  font-family: var(--bv-font-display) !important;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .04em;
}

.bv-gallery-section .owl-item img,
.bv-gallery-section .owl-carousel .item {
  border-radius: 13px 40px 13px 40px;
}

.bv-home-story {
  background:
    radial-gradient(circle at 94% 20%, rgba(32, 182, 178, .11), transparent 24rem),
    #f6f2e9;
}

.bv-home-story .bv-story-grid {
  gap: clamp(16px, 2vw, 28px);
}

.bv-story-card {
  border-radius: 17px 40px 17px 40px;
  background: rgba(255, 253, 249, .92);
}

.bv-story-card:nth-child(even) {
  transform: translateY(24px);
}

.bv-story-card:hover {
  transform: translateY(-7px);
}

.bv-story-card:nth-child(even):hover {
  transform: translateY(17px);
}

.bv-story-card__title {
  color: #073947;
  font-size: clamp(21px, 2vw, 28px);
}

.bv-video-library {
  background:
    radial-gradient(circle at 4% 6%, rgba(239, 112, 95, .09), transparent 24rem),
    linear-gradient(150deg, #fffdf9, #edf6f3);
}

.bv-video-card {
  border-radius: 18px 42px 18px 42px;
  background: rgba(255, 253, 249, .95);
}

.bv-video-card:nth-child(3n + 2) {
  background: linear-gradient(145deg, #e9f5f2, #fffdf9);
}

.bv-video-card__badge {
  font-family: var(--bv-font-display) !important;
  font-weight: 600;
  letter-spacing: .02em;
}

.section-md.bg-gray-lighter.text-center .row.row-30 {
  align-items: stretch;
}

.quote-review {
  height: 100%;
  padding: clamp(28px, 3vw, 42px);
  border: 0;
  border-radius: 16px 38px 16px 38px;
  background:
    linear-gradient(90deg, var(--bv-sea-bright), var(--bv-coral)) top / 100% 4px no-repeat,
    rgba(255, 253, 249, .97);
  box-shadow: var(--bv-shadow-card);
}

.quote-review:nth-child(2n) {
  border-radius: 38px 16px 38px 16px;
}

.quote-review::before {
  color: rgba(10, 135, 148, .18);
  font-family: var(--bv-font-display) !important;
  font-size: 92px;
}

.quote-review h4 {
  font-size: 21px;
}

.quote-review__body p {
  color: #48636a;
  font-size: 16.5px;
}

.object-wrap {
  padding: clamp(24px, 3.4vw, 52px);
  background: #eef6f3 !important;
}

.object-wrap:nth-of-type(even) {
  background: #f5efe4 !important;
}

.object-wrap > .section-lg {
  border: 1px solid var(--bv-line);
  border-radius: 20px 58px 20px 58px;
  background: rgba(255, 253, 249, .96);
  box-shadow: var(--bv-shadow-card);
}

.object-wrap:nth-of-type(even) > .section-lg {
  border-radius: 58px 20px 58px 20px;
}

.object-wrap > .section-lg .container {
  padding: clamp(42px, 5vw, 72px);
}

.object-wrap > .section-lg h3 {
  max-width: 650px;
  font-size: clamp(35px, 4vw, 56px);
}

.object-wrap > .section-lg p {
  max-width: 660px;
  color: #4b686f;
}

.object-wrap__body {
  overflow: hidden;
  border: 10px solid rgba(255, 255, 255, .72);
  border-radius: 18px 48px 18px 48px;
  box-shadow: 0 25px 68px rgba(7, 57, 71, .16);
}

.bv-restaurant-intro,
.bv-contact-hub {
  background:
    radial-gradient(circle at 90% 10%, rgba(32, 182, 178, .12), transparent 24rem),
    linear-gradient(145deg, #fffdf9, #f2f7f5);
}

.bv-contact-location,
.bv-contact-channel {
  border-radius: 17px 38px 17px 38px;
}

.bv-contact-channel:nth-child(even) {
  border-radius: 38px 17px 38px 17px;
}

.pre-footer-corporate {
  background:
    radial-gradient(circle at 9% 12%, rgba(32, 182, 178, .18), transparent 24rem),
    linear-gradient(145deg, #073947, #031f28) !important;
}

.pre-footer-corporate .row > .bv-prefooter-card {
  border-radius: 15px 32px 15px 32px;
  background: rgba(255, 255, 255, .055);
}

.footer-corporate__legal-item,
.technical-cookie-notice {
  border-radius: 14px 26px 14px 26px;
}

@media (max-width: 1199.98px) {
  .rd-navbar-fixed .rd-navbar-toggle {
    border-radius: 14px 23px 14px 23px;
  }

  .rd-navbar-fixed .rd-navbar-nav-wrap {
    border-radius: 0 30px 30px 0;
    background:
      radial-gradient(circle at 10% 7%, rgba(32, 182, 178, .13), transparent 17rem),
      #f9f7f1;
  }

  .rd-navbar-fixed .rd-navbar-nav > li.bv-nav-main > a {
    min-height: 58px;
    border-radius: 12px 24px 12px 24px;
    font-family: var(--bv-font-display) !important;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: -.018em;
    text-transform: none;
  }

  .rd-navbar-fixed .rd-navbar-nav > li > a.bv-nav-contact {
    border-radius: 13px 25px 13px 25px;
    font-size: 15px;
    letter-spacing: -.012em;
    text-transform: none;
  }

  .rd-navbar-fixed .bv-mobile-menu-title {
    font-family: var(--bv-font-display) !important;
    font-weight: 650;
    letter-spacing: -.035em;
  }

  .rd-navbar-fixed .bv-mobile-language-title {
    font-family: var(--bv-font-display) !important;
    font-weight: 650;
    letter-spacing: .08em;
  }
}

@media (min-width: 768px) and (max-width: 1199.98px) {
  .rd-navbar-static .rd-navbar-nav > li > a {
    font-family: var(--bv-font-display) !important;
    font-size: clamp(10.5px, 1.05vw, 11.5px);
    font-weight: 600;
    letter-spacing: -.015em;
  }
}

@media (max-width: 767.98px) {
  body {
    font-size: 17px;
  }

  body p,
body li {
    font-size: 16.5px;
    line-height: 1.7;
  }

  .page > .section-md,
.page > .section-lg {
    padding-top: 62px;
    padding-bottom: 62px;
  }

  .page > .section-md > .container,
.page > .section-lg > .container,
.bv-gallery-section > .container {
    width: min(100% - 28px, 1240px);
  }

  .bv-page-index .swiper-slide-caption h2 {
    font-size: clamp(39px, 12.5vw, 58px);
  }

  .bv-home-quicklinks {
    padding: 15px 0 20px;
  }

  .bv-home-quicklinks__item {
    min-width: min(77vw, 285px);
    min-height: 106px;
    padding: 20px 18px;
    border-radius: 13px 25px 13px 25px;
  }

  .bv-page-nav {
    margin-top: -16px;
    padding-right: 14px;
    padding-left: 14px;
  }

  .bv-page-nav__inner {
    border-radius: 14px 26px 14px 26px;
  }

  .bv-page-servizi .page > .section-lg.bg-default.text-center > .container,
.bv-page-spiaggia .page > .section-lg.bg-default.text-center > .container {
    width: calc(100% - 28px);
    padding: 42px 24px 40px;
    border-radius: 14px 38px 14px 38px;
    text-align: left;
  }

  .bv-page-servizi .page > .section-lg.bg-default.text-center h3,
.bv-page-spiaggia .page > .section-lg.bg-default.text-center h3 {
    font-size: clamp(36px, 11vw, 50px);
  }

  .bv-gallery-section:not(.bv-home-story):not(.bv-restaurant-intro) {
    padding-top: 68px !important;
    padding-bottom: 74px !important;
  }

  .bv-gallery-section .owl-carousel {
    padding: 7px;
    border-radius: 14px 31px 14px 31px;
  }

  .bv-gallery-section .owl-item img,
.bv-gallery-section .owl-carousel .item {
    border-radius: 10px 25px 10px 25px;
  }

  .bv-story-card:nth-child(even),
.bv-story-card:nth-child(even):hover {
    transform: none;
  }

  .object-wrap {
    padding: 16px 14px;
  }

  .object-wrap > .section-lg,
.object-wrap:nth-of-type(even) > .section-lg {
    border-radius: 14px 34px 14px 34px;
  }

  .object-wrap > .section-lg .container {
    padding: 36px 24px;
  }

  .object-wrap__body {
    border-width: 6px;
    border-radius: 12px 30px 12px 30px;
  }

  .quote-review,
.quote-review:nth-child(2n) {
    border-radius: 14px 30px 14px 30px;
  }
}

@media (max-width: 359.98px) {
  .rd-navbar-fixed .rd-navbar-nav > li.bv-nav-main > a,
.rd-navbar-fixed .rd-navbar-nav > li > a.bv-nav-contact {
    min-height: 53px;
    font-size: 14px;
  }

  .bv-page-servizi .page > .section-lg.bg-default.text-center > .container,
.bv-page-spiaggia .page > .section-lg.bg-default.text-center > .container {
    width: calc(100% - 20px);
    padding-right: 20px;
    padding-left: 20px;
  }
}

/* Final visibility corrections for the shared navigation and gallery label. */
.rd-navbar-static .bv-mobile-language-title {
  display: none !important;
}

.bv-gallery-section .owl-carousel {
  overflow: visible;
}

/* Deliberate two-row navigation on compact tablets and long translations. */
@media (min-width: 768px) and (max-width: 899.98px) {
  .rd-navbar-static .rd-navbar-nav {
    display: grid !important;
    grid-template-columns: repeat(8, max-content);
    gap: 7px 2px;
    align-items: center;
    justify-content: center;
  }

  .rd-navbar-static .rd-navbar-nav > li {
    float: none !important;
    margin: 0 !important;
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-nav-main {
    grid-row: 1;
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-language-link {
    grid-row: 2;
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-mobile-language-title + li.bv-language-link {
    grid-column: 3;
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-language-link:nth-last-child(4) {
    grid-column: 3 !important;
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-language-link:nth-last-child(3) {
    grid-column: 4 !important;
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-language-link:nth-last-child(2) {
    grid-column: 5 !important;
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-language-link:nth-last-child(1) {
    grid-column: 6 !important;
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-language-link > a {
    padding: 0 5px !important;
  }
}

@media (min-width: 900px) and (max-width: 1199.98px) {
  .rd-navbar-static .rd-navbar-nav > li > a {
    padding-right: 7px !important;
    padding-left: 7px !important;
    font-size: 11.5px;
  }
}

/* Draw the lightbox arrows in CSS so they never depend on the legacy icon font. */
.lg-actions .lg-next::before,
.lg-actions .lg-prev::after {
  display: block;
  width: 11px;
  height: 11px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  content: "" !important;
  font-family: inherit;
}

.lg-actions .lg-next::before {
  transform: translateX(-2px) rotate(45deg);
}

.lg-actions .lg-prev::after {
  transform: translateX(2px) rotate(-135deg);
}

/* Keep the VAT number compact inside the narrow legal card. */
.footer-corporate__legal-item:first-child strong {
  overflow-wrap: normal;
  font-size: 11.5px;
  letter-spacing: -.02em;
  white-space: nowrap;
}

/* Branded first paint: keep the legacy loader from exposing the old template. */
#page-loader {
  display: grid !important;
  z-index: 2147483000;
  opacity: 1 !important;
  visibility: visible !important;
  place-items: center;
  background:
    radial-gradient(circle at 18% 16%, rgba(32, 182, 178, .16), transparent 23rem),
    radial-gradient(circle at 86% 82%, rgba(239, 112, 95, .12), transparent 24rem),
    linear-gradient(145deg, #f8f4eb, #eef6f3);
  transition: opacity .38s ease, visibility .38s ease;
}

#page-loader .cssload-container {
  position: relative;
  display: grid;
  width: min(calc(100% - 40px), 290px);
  height: auto;
  min-height: 238px;
  padding: 30px 26px 27px;
  border: 1px solid rgba(7, 57, 71, .1);
  border-radius: 18px 48px 18px 48px;
  background: rgba(255, 253, 249, .94);
  box-shadow: 0 30px 86px rgba(7, 57, 71, .16);
  place-items: center;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

#page-loader .cssload-container::before {
  width: 112px;
  height: 104px;
  background: url("../images/logo.png?v=20260817-modern") center / contain no-repeat;
  content: "";
}

#page-loader .cssload-container::after {
  color: #073947;
  content: "Bagno Vittoria · Tirrenia";
  font-family: var(--bv-font-display);
  font-size: 15px;
  font-weight: 650;
  letter-spacing: -.02em;
}

#page-loader .cssload-speeding-wheel {
  width: 30px;
  height: 30px;
  margin: 7px auto 0;
  border: 3px solid rgba(10, 135, 148, .18);
  border-top-color: var(--bv-coral);
  border-right-color: var(--bv-sea);
  border-left-color: rgba(10, 135, 148, .18);
  border-bottom-color: rgba(10, 135, 148, .18);
  box-shadow: none;
}

.bv-page-ready #page-loader {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

#page-loader[hidden] {
  display: none !important;
}

@media (max-width: 479.98px) {
  #page-loader .cssload-container {
    width: min(calc(100% - 32px), 254px);
    min-height: 214px;
    padding: 25px 22px 23px;
    border-radius: 15px 38px 15px 38px;
  }

  #page-loader .cssload-container::before {
    width: 98px;
    height: 91px;
  }
}

/* ========================================================================
 * Coastal signature layer — a clearer,
more immersive beach-club experience
 * ======================================================================== */
:root {
  --bv-ocean: #063f4d;
  --bv-ocean-deep: #032c37;
  --bv-aqua: #12a4a7;
  --bv-aqua-soft: #dff3ef;
  --bv-sun: #f2b65f;
  --bv-foam: #fffdf8;
  --bv-coastal-shadow: 0 26px 76px rgba(4, 48, 60, .14);
}

.bv-coastal-section {
  position: relative;
  isolation: isolate;
}

.bv-section-keyphrase {
  position: absolute;
  z-index: 2;
  top: clamp(16px, 2.2vw, 30px);
  right: clamp(16px, 3.8vw, 54px);
  max-width: min(72%, 520px);
  margin: 0;
  padding: 9px 15px 8px;
  border: 1px solid rgba(6, 63, 77, .11);
  border-left: 3px solid var(--bv-aqua);
  border-radius: 9px 22px 9px 22px;
  color: rgba(6, 63, 77, .78);
  background: rgba(255, 253, 248, .82);
  box-shadow: 0 12px 30px rgba(6, 63, 77, .07);
  font-family: var(--bv-font-body) !important;
  font-size: clamp(10px, .8vw, 12px);
  font-weight: 760;
  line-height: 1.35;
  letter-spacing: .055em;
  text-align: right;
  text-transform: uppercase;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  pointer-events: none;
}

.bv-coastal-section--dark > .bv-section-keyphrase {
  border-color: rgba(255, 255, 255, .18);
  border-left-color: var(--bv-coral);
  color: rgba(255, 255, 255, .88);
  background: rgba(3, 44, 55, .68);
  box-shadow: 0 14px 34px rgba(1, 25, 32, .18);
}

.bv-coastal-section > .container,
.bv-coastal-section > .shell {
  position: relative;
  z-index: 1;
}

/* Home introduction: editorial copy beside a cinematic video frame. */
.bv-page-index .bv-video-section:not(.bv-video-library) {
  padding-top: clamp(74px, 8vw, 118px);
  padding-bottom: clamp(74px, 8vw, 118px);
  background:
    radial-gradient(circle at 8% 12%, rgba(18, 164, 167, .13), transparent 25rem),
    linear-gradient(135deg, #f4f0e6, #f7fbf8) !important;
}

.bv-page-index .bv-video-section:not(.bv-video-library) > .container {
  display: grid;
  grid-template-columns: minmax(250px, .68fr) minmax(0, 1.32fr);
  align-items: center;
  gap: clamp(34px, 6vw, 82px);
  text-align: left;
}

.bv-page-index .bv-video-section:not(.bv-video-library) > .container > br {
  display: none;
}

.bv-page-index .bv-video-section:not(.bv-video-library) h3 {
  max-width: 440px;
  margin: 0;
  color: var(--bv-ocean);
  font-size: clamp(37px, 4.4vw, 62px);
  line-height: 1.02;
}

.bv-page-index .bv-video-section:not(.bv-video-library) h3::before {
  display: block;
  width: fit-content;
  margin-bottom: 18px;
  padding: 8px 12px;
  border: 1px solid rgba(18, 164, 167, .16);
  border-radius: 999px;
  color: var(--bv-aqua);
  background: rgba(255, 255, 255, .72);
  content: "Bagno Vittoria · Tirrenia";
  font-family: var(--bv-font-body) !important;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.bv-page-index .bv-video-section:not(.bv-video-library) .videoWrapper {
  position: relative;
  margin: 0;
  overflow: visible;
  border: 10px solid rgba(255, 253, 248, .94);
  border-radius: 20px 58px 20px 58px;
  background: var(--bv-ocean-deep);
  box-shadow: 0 35px 92px rgba(4, 48, 60, .22);
}

.bv-page-index .bv-video-section:not(.bv-video-library) .videoWrapper::before {
  position: absolute;
  z-index: -1;
  right: -24px;
  bottom: -24px;
  width: 54%;
  height: 54%;
  border: 1px solid rgba(18, 164, 167, .25);
  border-radius: 0 0 26px 0;
  content: "";
}

.bv-page-index .bv-video-section:not(.bv-video-library) iframe {
  border-radius: 12px 47px 12px 47px;
}

/* Stronger visual rhythm for galleries,
stories and testimonials. */
.bv-gallery-section:not(.bv-home-story):not(.bv-restaurant-intro) .bv-gallery-label {
  color: #fff;
}

.bv-gallery-section:not(.bv-home-story):not(.bv-restaurant-intro) .bv-gallery-label__kicker {
  border-color: rgba(255, 255, 255, .18);
  color: #dff8f3;
  background: rgba(255, 255, 255, .09);
}

.bv-gallery-section .owl-carousel {
  transition: border-color .35s ease, box-shadow .45s var(--bv-ease), transform .45s var(--bv-ease);
}

.bv-gallery-section .img-thumbnail-variant-1 img {
  transition: transform .8s var(--bv-ease), filter .45s ease;
}

.bv-story-card,
.quote-review,
.bv-video-card,
.bv-contact-channel {
  outline: 1px solid transparent;
  outline-offset: -1px;
}

.bv-story-card::after,
.quote-review::after {
  position: absolute;
  right: 22px;
  bottom: 18px;
  width: 34px;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--bv-aqua), var(--bv-coral));
  content: "";
  opacity: .45;
}

.quote-review {
  position: relative;
  overflow: hidden;
}

.quote-review .cite {
  display: inline-flex;
  margin-top: 22px;
  padding: 7px 11px;
  border-radius: 999px;
  color: var(--bv-ocean) !important;
  background: var(--bv-aqua-soft);
  font-weight: 700;
}

/* Page navigator: clearer active state and better touch affordance. */
.bv-page-nav__inner {
  border-color: rgba(6, 63, 77, .1);
  box-shadow: 0 22px 68px rgba(4, 48, 60, .16);
}

.bv-page-nav__item {
  position: relative;
  overflow: hidden;
}

.bv-page-nav__item::after {
  position: absolute;
  right: 14px;
  bottom: 8px;
  left: 14px;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--bv-aqua), var(--bv-coral));
  content: "";
  opacity: 0;
  transform: scaleX(.35);
  transition: opacity .25s ease, transform .35s var(--bv-ease);
}

.bv-page-nav__item.is-active::after,
.bv-page-nav__item[aria-current="location"]::after {
  opacity: 1;
  transform: scaleX(1);
}

/* Maps and virtual tour read as one contemporary split experience. */
.object-wrap {
  position: relative;
  isolation: isolate;
}

.object-wrap > .section-lg {
  transition: border-color .35s ease, box-shadow .45s var(--bv-ease), transform .45s var(--bv-ease);
}

.object-wrap__body iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 100%;
  border: 0;
  filter: saturate(.9) contrast(1.02);
}

@media (hover: hover) and (pointer: fine) {
  .bv-gallery-section .owl-carousel:hover {
    border-color: rgba(255, 255, 255, .3);
    box-shadow: 0 42px 104px rgba(3, 33, 42, .4);
    transform: translateY(-5px);
  }

  .bv-gallery-section .img-thumbnail-variant-1:hover img {
    filter: saturate(1.06) contrast(1.02);
    transform: scale(1.035);
  }

  .object-wrap > .section-lg:hover {
    border-color: rgba(18, 164, 167, .2);
    box-shadow: 0 34px 88px rgba(4, 48, 60, .16);
    transform: translateY(-4px);
  }

  .bv-story-card:hover,
.quote-review:hover,
.bv-video-card:hover,
.bv-contact-channel:hover {
    outline-color: rgba(18, 164, 167, .14);
  }
}

@media (max-width: 991.98px) {
  .bv-page-index .bv-video-section:not(.bv-video-library) > .container {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .bv-page-index .bv-video-section:not(.bv-video-library) h3 {
    max-width: 680px;
  }
}

@media (max-width: 767.98px) {
  .bv-section-keyphrase {
    top: 11px;
    right: 12px;
    max-width: calc(100% - 24px);
    padding: 7px 10px 6px;
    border-left-width: 2px;
    border-radius: 7px 16px 7px 16px;
    font-size: 9px;
    letter-spacing: .035em;
  }

  .bv-page-index .bv-video-section:not(.bv-video-library) {
    padding-top: 60px;
    padding-bottom: 68px;
  }

  .bv-page-index .bv-video-section:not(.bv-video-library) > .container {
    width: min(100% - 28px, 720px);
    gap: 28px;
  }

  .bv-page-index .bv-video-section:not(.bv-video-library) h3 {
    font-size: clamp(34px, 10.5vw, 47px);
  }

  .bv-page-index .bv-video-section:not(.bv-video-library) .videoWrapper {
    border-width: 7px;
    border-radius: 14px 34px 14px 34px;
  }

  .bv-page-index .bv-video-section:not(.bv-video-library) iframe {
    border-radius: 8px 27px 8px 27px;
  }

  .bv-story-card::after,
.quote-review::after {
    right: 17px;
    bottom: 14px;
  }

  .bv-page-nav__item {
    min-height: 64px;
  }
}

@media (max-width: 379.98px) {
  .bv-page-index .bv-video-section:not(.bv-video-library) h3::before {
    font-size: 8.5px;
    letter-spacing: .06em;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bv-gallery-section .owl-carousel,
.bv-gallery-section .img-thumbnail-variant-1 img,
.object-wrap > .section-lg,
.bv-page-nav__item::after {
    transition: none !important;
  }
}

/* Compact landscape layout for phones and tablets with limited height. */
@media (min-width: 720px) and (max-width: 991.98px) and (orientation: landscape) {
  .bv-page-index .bv-video-section:not(.bv-video-library) {
    padding-top: 54px;
    padding-bottom: 58px;
  }

  .bv-page-index .bv-video-section:not(.bv-video-library) > .container {
    grid-template-columns: minmax(220px, .72fr) minmax(0, 1.28fr);
    gap: 30px;
  }

  .bv-page-index .bv-video-section:not(.bv-video-library) h3 {
    font-size: clamp(32px, 4.8vw, 43px);
  }

  .bv-page-index .bv-video-section:not(.bv-video-library) h3::before {
    margin-bottom: 13px;
  }

}

@media (max-height: 500.98px) and (orientation: landscape) {
  .bv-section-keyphrase {
    top: 8px;
    max-width: 62%;
    padding: 5px 8px;
    font-size: 8px;
  }
}

/* Modern back-to-top: compact coastal control,
available on every device. */
.ui-to-top.bv-to-top-modern,
.mobile .ui-to-top.bv-to-top-modern,
.tablet .ui-to-top.bv-to-top-modern {
  position: fixed;
  z-index: 1750;
  right: max(22px, env(safe-area-inset-right));
  bottom: max(28px, env(safe-area-inset-bottom));
  display: flex !important;
  width: 56px;
  height: 56px;
  padding: 0;
  overflow: visible;
  border: 0;
  border-radius: 18px;
  align-items: center;
  justify-content: center;
  color: #fff !important;
  background:
    radial-gradient(circle at 24% 16%, rgba(255, 255, 255, .27), transparent 43%),
    linear-gradient(145deg, #159ca2 0%, #08717a 58%, #054a55 100%) !important;
  box-shadow:
    0 14px 32px rgba(3, 36, 45, .27),
    inset 0 1px 0 rgba(255, 255, 255, .26),
    inset 0 -1px 0 rgba(0, 29, 38, .18);
  line-height: 1;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  opacity: 0 !important;
  visibility: hidden;
  pointer-events: none;
  transform: translate3d(0, 18px, 0) scale(.88) !important;
  transform-origin: 50% 100%;
  transition:
    opacity .25s ease,
    visibility .25s ease,
    background .3s ease,
    border-color .3s ease,
    box-shadow .35s var(--bv-ease),
    transform .38s var(--bv-ease) !important;
}

.ui-to-top.bv-to-top-modern::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 24px;
  height: 32px;
  border: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 32'%3E%3Cpath d='M12 30V3M2 13L12 3l10 10' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  content: "";
  font-family: inherit;
  transform: translate(-50%, -50%);
  transition: transform .3s var(--bv-ease);
}

.ui-to-top.bv-to-top-modern::after {
  display: none;
  content: none;
}

.ui-to-top.bv-to-top-modern.bv-to-top-ready {
  opacity: 1 !important;
  visibility: visible;
  pointer-events: auto;
  transform: translate3d(0, 0, 0) scale(1) !important;
}

.ui-to-top.bv-to-top-modern:focus-visible {
  outline: none;
  box-shadow:
    0 0 0 4px rgba(135, 229, 219, .2),
    0 16px 36px rgba(3, 36, 45, .3),
    inset 0 1px 0 rgba(255, 255, 255, .25);
}

.ui-to-top.bv-to-top-modern.bv-to-top-ready:active {
  background: linear-gradient(145deg, #07616a, #043f49) !important;
  box-shadow: 0 8px 18px rgba(3, 36, 45, .23), inset 0 2px 4px rgba(0, 25, 34, .2);
  transform: translate3d(0, -1px, 0) scale(.96) !important;
}

body.bv-menu-open .ui-to-top.bv-to-top-modern,
.ui-to-top.bv-to-top-modern.bv-to-top-mobile-footer {
  opacity: 0 !important;
  visibility: hidden;
  pointer-events: none;
  transform: translate3d(0, 18px, 0) scale(.88) !important;
}

@media (hover: hover) and (pointer: fine) {
  .ui-to-top.bv-to-top-modern.bv-to-top-ready:hover {
    background:
      radial-gradient(circle at 24% 18%, rgba(255, 255, 255, .24), transparent 45%),
      linear-gradient(145deg, #f37a68 0%, #df5e50 100%) !important;
    box-shadow: 0 18px 38px rgba(120, 38, 31, .3), inset 0 1px 0 rgba(255, 255, 255, .24);
    transform: translate3d(0, -4px, 0) scale(1.025) !important;
  }

  .ui-to-top.bv-to-top-modern:hover::before {
    transform: translate(-50%, -50%) translateY(-2px);
  }
}

@media (min-width: 768px) {
  .ui-to-top.bv-to-top-modern.bv-to-top-clear-footer {
    bottom: 112px;
  }
}

@media (max-width: 767.98px) {
  .ui-to-top.bv-to-top-modern,
.mobile .ui-to-top.bv-to-top-modern,
.tablet .ui-to-top.bv-to-top-modern {
    right: max(14px, env(safe-area-inset-right));
    bottom: max(94px, calc(84px + env(safe-area-inset-bottom)));
    width: 46px;
    height: 46px;
    border-radius: 15px;
    box-shadow: 0 11px 26px rgba(3, 36, 45, .26), inset 0 1px 0 rgba(255, 255, 255, .22);
  }

  .bv-page-contatti .ui-to-top.bv-to-top-modern {
    bottom: max(16px, env(safe-area-inset-bottom));
  }

  .ui-to-top.bv-to-top-modern::before {
    width: 21px;
    height: 28px;
  }
}

@media (max-width: 319.98px) {
  .ui-to-top.bv-to-top-modern,
  .mobile .ui-to-top.bv-to-top-modern,
  .tablet .ui-to-top.bv-to-top-modern {
    display: none !important;
  }
}

/* Frequently asked questions — editorial accordion shared by every language. */
.bv-faq {
  --bv-faq-deep: #073f4a;
  --bv-faq-deeper: #052f38;
  --bv-faq-aqua: #56d2c8;
  --bv-faq-coral: #f36d60;
  --bv-faq-paper: #fffdf9;
  --bv-faq-ink: #083d49;
  position: relative;
  z-index: 1;
  overflow: hidden;
  padding: clamp(70px, 8vw, 128px) max(18px, env(safe-area-inset-right)) clamp(74px, 8vw, 132px) max(18px, env(safe-area-inset-left));
  color: #fff;
  background:
    radial-gradient(circle at 8% 16%, rgba(86, 210, 200, .22), transparent 27%),
    radial-gradient(circle at 94% 88%, rgba(243, 109, 96, .16), transparent 29%),
    linear-gradient(135deg, var(--bv-faq-deep), var(--bv-faq-deeper));
}

.bv-faq::before {
  display: none;
  content: none;
}

.bv-faq::after {
  position: absolute;
  top: 0;
  left: 50%;
  width: min(320px, 46vw);
  height: 4px;
  border-radius: 0 0 999px 999px;
  background: linear-gradient(90deg, var(--bv-faq-aqua), var(--bv-faq-coral));
  content: "";
  transform: translateX(-50%);
}

.bv-faq__container {
  display: grid;
  grid-template-columns: minmax(250px, .72fr) minmax(0, 1.38fr);
  gap: clamp(34px, 6vw, 96px);
  align-items: start;
  width: min(1420px, 100%);
  margin: 0 auto;
}

.bv-faq__header {
  max-width: 520px;
  padding-top: 8px;
}

.bv-faq__eyebrow {
  display: inline-flex;
  gap: 11px;
  align-items: center;
  margin: 0 0 22px;
  color: #bff7f2;
  font-size: clamp(12px, .86vw, 14px);
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.bv-faq__eyebrow::before {
  display: none;
  content: none;
}

.bv-faq .bv-faq__header h2 {
  max-width: 620px;
  margin: 0;
  color: #fff !important;
  font-family: "Sora", "Manrope", sans-serif;
  font-size: clamp(40px, 5.1vw, 76px);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -.045em;
  overflow-wrap: normal;
  hyphens: none;
  text-wrap: balance;
}

.bv-faq__intro {
  max-width: 520px;
  margin: clamp(22px, 3vw, 34px) 0 0;
  color: #e8f6f5;
  font-size: clamp(16px, 1.18vw, 19px);
  font-weight: 500;
  line-height: 1.75;
}

.bv-faq__count {
  display: inline-flex;
  gap: 13px;
  align-items: center;
  margin: clamp(28px, 4vw, 48px) 0 0;
  padding: 8px 18px 8px 9px;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 999px;
  color: #eaf8f7;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.bv-faq__count strong {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 50%;
  color: var(--bv-faq-deeper);
  background: var(--bv-faq-aqua);
  font-family: "Sora", "Manrope", sans-serif;
  font-size: 14px;
}

.bv-faq__list {
  display: grid;
  gap: 15px;
  min-width: 0;
}

.bv-faq__item {
  overflow: hidden;
  border: 1px solid rgba(154, 207, 204, .72);
  border-radius: 25px;
  color: var(--bv-faq-ink);
  background: var(--bv-faq-paper);
  box-shadow: 0 18px 45px rgba(0, 23, 29, .16);
  transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}

.bv-faq__item:hover {
  border-color: var(--bv-faq-aqua);
  box-shadow: 0 22px 55px rgba(0, 23, 29, .23);
  transform: translateY(-2px);
}

.bv-faq__item[open] {
  border-color: rgba(86, 210, 200, .95);
  background: linear-gradient(135deg, #fffdf9, #f2fbfa);
}

.bv-faq__item summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: clamp(14px, 2vw, 22px);
  align-items: center;
  min-height: 92px;
  padding: 20px clamp(19px, 2.3vw, 30px);
  color: var(--bv-faq-ink);
  cursor: pointer;
  list-style: none;
  user-select: none;
}

.bv-faq__item summary::-webkit-details-marker {
  display: none;
}

.bv-faq__item summary:focus-visible {
  outline: 3px solid var(--bv-faq-coral);
  outline-offset: -5px;
  border-radius: 21px;
}

.bv-faq__index {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border: 1px solid #c5e5e2;
  border-radius: 15px;
  color: #086a76;
  background: #e9f7f5;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .08em;
}

.bv-faq__question {
  min-width: 0;
  color: var(--bv-faq-ink);
  font-family: "Sora", "Manrope", sans-serif;
  font-size: clamp(17px, 1.34vw, 21px);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -.018em;
  overflow-wrap: break-word;
  hyphens: none;
}

.bv-faq__toggle {
  position: relative;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  border: 1px solid #add7d4;
  border-radius: 50%;
  background: #f1f9f8;
  transition: border-color .25s ease, background .25s ease, transform .35s var(--bv-ease, cubic-bezier(.2, .8, .2, 1));
}

.bv-faq__toggle::before,
.bv-faq__toggle::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 16px;
  height: 2px;
  border-radius: 99px;
  background: #086a76;
  content: "";
  transform: translate(-50%, -50%);
}

.bv-faq__toggle::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.bv-faq__item[open] .bv-faq__toggle {
  border-color: var(--bv-faq-coral);
  background: var(--bv-faq-coral);
  transform: rotate(45deg);
}

.bv-faq__item[open] .bv-faq__toggle::before,
.bv-faq__item[open] .bv-faq__toggle::after {
  background: #fff;
}

.bv-faq__answer {
  padding: 0 clamp(20px, 3vw, 34px) clamp(24px, 3vw, 32px) clamp(86px, 7vw, 104px);
}

.bv-faq__answer::before {
  display: block;
  width: 100%;
  height: 1px;
  margin: 0 0 18px;
  background: linear-gradient(90deg, rgba(8, 106, 118, .27), transparent);
  content: "";
}

.bv-faq__answer p {
  margin: 0;
  color: #355c64;
  font-size: clamp(15.5px, 1.08vw, 18px);
  font-weight: 500;
  line-height: 1.72;
  overflow-wrap: break-word;
  hyphens: none;
}

@media (max-width: 991.98px) {
  .bv-faq__container {
    grid-template-columns: 1fr;
  }

  .bv-faq__header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 24px;
    max-width: none;
  }

  .bv-faq__eyebrow,
.bv-faq__intro {
    grid-column: 1;
  }

  .bv-faq .bv-faq__header h2 {
    grid-column: 1;
  }

  .bv-faq__count {
    grid-column: 2;
    grid-row: 1 / span 3;
    align-self: center;
    margin: 0;
  }
}

@media (max-width: 639.98px) {
  .bv-faq {
    padding: 60px max(12px, env(safe-area-inset-right)) 64px max(12px, env(safe-area-inset-left));
  }

  .bv-faq__container {
    gap: 32px;
  }

  .bv-faq__header {
    display: block;
    padding: 0 6px;
  }

  .bv-faq__eyebrow {
    margin-bottom: 16px;
  }

  .bv-faq .bv-faq__header h2 {
    font-size: clamp(34px, 11vw, 48px);
    line-height: 1.12;
  }

  .bv-faq__intro {
    margin-top: 18px;
    font-size: 16px;
    line-height: 1.65;
  }

  .bv-faq__count {
    margin-top: 24px;
  }

  .bv-faq__item {
    border-radius: 20px;
  }

  .bv-faq__item:hover {
    transform: none;
  }

  .bv-faq__item summary {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 11px;
    min-height: 82px;
    padding: 16px 14px;
  }

  .bv-faq__index {
    width: 38px;
    height: 38px;
    border-radius: 12px;
    font-size: 11px;
  }

  .bv-faq__question {
    font-size: clamp(15.5px, 4.5vw, 18px);
    line-height: 1.42;
  }

  .bv-faq__toggle {
    width: 36px;
    height: 36px;
  }

  .bv-faq__toggle::before,
.bv-faq__toggle::after {
    width: 13px;
  }

  .bv-faq__answer {
    padding: 0 17px 21px 63px;
  }

  .bv-faq__answer::before {
    margin-bottom: 14px;
  }

  .bv-faq__answer p {
    font-size: 15.5px;
    line-height: 1.67;
  }
}

@media (max-width: 359.98px) {
  .bv-faq__item summary {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .bv-faq__toggle {
    display: none;
  }

  .bv-faq__answer {
    padding-left: 17px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bv-faq__item,
.bv-faq__toggle {
    transition: none;
  }
}

/* End frequently asked questions. */

@media (max-width: 767.98px) and (max-height: 500.98px) and (orientation: landscape) {
  .ui-to-top.bv-to-top-modern,
  .mobile .ui-to-top.bv-to-top-modern,
  .tablet .ui-to-top.bv-to-top-modern {
    right: max(10px, env(safe-area-inset-right));
    bottom: max(10px, env(safe-area-inset-bottom));
    width: 42px;
    height: 42px;
    border-radius: 14px;
  }

  .ui-to-top.bv-to-top-modern::before {
    width: 19px;
    height: 25px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ui-to-top.bv-to-top-modern,
.ui-to-top.bv-to-top-modern::before,
.ui-to-top.bv-to-top-modern::after {
    transition: none !important;
  }
}

/* ========================================================================
 * Premium navigation and a crisp,
asset-free language icon system
 * ======================================================================== */
.bv-flag-icon {
  position: relative;
  display: block;
  width: 28px;
  height: 28px;
  overflow: hidden;
  border: 2px solid #fff;
  border-radius: 50%;
  background-color: #eef3f2;
  background-position: center;
  background-repeat: no-repeat;
  box-shadow:
    0 0 0 1px rgba(6, 63, 77, .13),
    0 6px 16px rgba(6, 63, 77, .16);
  flex: 0 0 28px;
  isolation: isolate;
}

.bv-flag-icon::after {
  position: absolute;
  z-index: 2;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(145deg, rgba(255, 255, 255, .32), transparent 42%, rgba(3, 32, 40, .09));
  content: "";
  pointer-events: none;
}

.bv-flag-icon--ita {
  background: linear-gradient(90deg, #009246 0 33.333%, #fff 33.333% 66.666%, #ce2b37 66.666% 100%);
}

.bv-flag-icon--fr {
  background: linear-gradient(90deg, #002395 0 33.333%, #fff 33.333% 66.666%, #ed2939 66.666% 100%);
}

.bv-flag-icon--de {
  background: linear-gradient(180deg, #171717 0 33.333%, #dd202b 33.333% 66.666%, #f7cf3f 66.666% 100%);
}

.bv-flag-icon--es {
  background: linear-gradient(180deg, #aa151b 0 25%, #f1bf00 25% 75%, #aa151b 75% 100%);
}

.bv-flag-icon--en {
  background-color: #012169;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 30' preserveAspectRatio='none'%3E%3Cpath fill='%23012169' d='M0 0h60v30H0z'/%3E%3Cpath stroke='%23fff' stroke-width='7' d='M0 0l60 30M60 0L0 30'/%3E%3Cpath stroke='%23c8102e' stroke-width='3.5' d='M0 0l60 30M60 0L0 30'/%3E%3Cpath stroke='%23fff' stroke-width='10' d='M30 0v30M0 15h60'/%3E%3Cpath stroke='%23c8102e' stroke-width='6' d='M30 0v30M0 15h60'/%3E%3C/svg%3E");
  background-size: 100% 100%;
}

@media (min-width: 1200px) {
  .rd-navbar-static .rd-navbar-inner {
    position: relative;
    width: min(calc(100% - 28px), 1580px);
    min-height: 122px;
    margin: 0 auto;
    padding: 10px clamp(20px, 2.2vw, 34px) 10px clamp(18px, 2vw, 30px);
    border: 1px solid rgba(6, 63, 77, .08);
    border-top: 0;
    border-radius: 0 0 38px 38px;
    background:
      radial-gradient(circle at 9% 15%, rgba(18, 164, 167, .065), transparent 15rem),
      linear-gradient(135deg, rgba(255, 255, 255, .985), rgba(251, 248, 241, .965));
    grid-template-columns: 162px minmax(0, 1fr);
    box-shadow: 0 24px 70px rgba(4, 48, 60, .13);
  }

  .rd-navbar-static .rd-navbar-inner::before {
    position: absolute;
    right: 42px;
    bottom: 0;
    left: 42px;
    height: 3px;
    border-radius: 999px 999px 0 0;
    background: linear-gradient(90deg, transparent, rgba(18, 164, 167, .72) 24%, rgba(239, 112, 95, .72) 76%, transparent);
    content: "";
    opacity: .38;
    pointer-events: none;
  }

  .rd-navbar-static .rd-navbar-panel {
    display: flex !important;
    width: 162px !important;
    height: 102px !important;
    align-items: center;
  }

  .rd-navbar-static .rd-navbar-brand img {
    width: auto !important;
    height: 98px !important;
    max-height: 98px !important;
    filter: drop-shadow(0 8px 14px rgba(6, 63, 77, .07));
  }

  .rd-navbar-static .rd-navbar-nav {
    gap: 5px;
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-nav-main > a {
    min-height: 48px;
    padding: 0 clamp(10px, .85vw, 15px) !important;
    border: 1px solid transparent;
    border-radius: 15px 24px 15px 24px;
    color: #294d56;
    background: transparent;
    font-size: clamp(11.5px, .86vw, 13px);
    font-weight: 650;
    letter-spacing: -.018em;
    transition: color .25s ease, background .25s ease, border-color .25s ease, box-shadow .35s var(--bv-ease), transform .35s var(--bv-ease);
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-nav-main > a::after {
    right: 16px;
    bottom: 8px;
    left: 16px;
    height: 2px;
    background: linear-gradient(90deg, var(--bv-aqua), var(--bv-coral));
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-nav-main > a:hover,
.rd-navbar-static .rd-navbar-nav > li.bv-nav-main > a:focus-visible {
    border-color: rgba(18, 164, 167, .12);
    color: var(--bv-ocean);
    background: rgba(223, 243, 239, .62);
    box-shadow: 0 10px 24px rgba(6, 63, 77, .07);
    transform: translateY(-2px);
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-current > a,
.rd-navbar-static .rd-navbar-nav > li.bv-current > a:hover,
.rd-navbar-static .rd-navbar-nav > li.bv-current > a:focus-visible {
    border-color: rgba(18, 164, 167, .17);
    color: #08717a;
    background: linear-gradient(135deg, rgba(223, 243, 239, .94), rgba(255, 253, 248, .88));
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .6), 0 12px 28px rgba(6, 63, 77, .08);
    transform: none;
  }

  .rd-navbar-static .rd-navbar-nav > li > a.bv-nav-contact,
.rd-navbar-static .rd-navbar-nav > li > a.bv-nav-contact:hover,
.rd-navbar-static .rd-navbar-nav > li > a.bv-nav-contact:focus-visible {
    min-height: 54px;
    margin-left: 5px;
    padding: 0 clamp(20px, 1.6vw, 28px) !important;
    border: 0;
    border-radius: 17px 30px 17px 30px;
    color: #fff;
    background: linear-gradient(135deg, #f37664, #e85b4d);
    box-shadow: 0 16px 34px rgba(217, 83, 69, .24);
  }

  .rd-navbar-static .rd-navbar-nav > li > a.bv-nav-contact:hover,
.rd-navbar-static .rd-navbar-nav > li > a.bv-nav-contact:focus-visible {
    box-shadow: 0 20px 42px rgba(217, 83, 69, .31);
    transform: translateY(-3px);
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-language-link {
    width: 40px !important;
    min-width: 40px !important;
    flex: 0 0 40px !important;
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-language-link > a {
    width: 40px !important;
    min-width: 40px !important;
    min-height: 40px;
    padding: 0 !important;
    border: 1px solid rgba(6, 63, 77, .095);
    border-radius: 13px;
    background: rgba(255, 255, 255, .76);
    justify-content: center;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8), 0 8px 18px rgba(6, 63, 77, .07);
    transition: border-color .25s ease, background .25s ease, box-shadow .3s ease, transform .3s var(--bv-ease);
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-language-link > a::after {
    display: none !important;
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-language-link > a > div {
    display: grid;
    width: auto;
    place-items: center;
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-language-link > a:hover,
.rd-navbar-static .rd-navbar-nav > li.bv-language-link > a:focus-visible {
    border-color: rgba(18, 164, 167, .28);
    background: #fff;
    box-shadow: 0 12px 26px rgba(6, 63, 77, .13);
    transform: translateY(-2px);
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-language-link > a:hover .bv-flag-icon,
.rd-navbar-static .rd-navbar-nav > li.bv-language-link > a:focus-visible .bv-flag-icon {
    transform: none;
  }

  .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-inner {
    min-height: 78px;
    grid-template-columns: 112px minmax(0, 1fr);
  }

  .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-panel {
    width: 112px !important;
    height: 66px !important;
  }

  .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-brand img {
    height: 60px !important;
    max-height: 60px !important;
  }

  .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-nav > li.bv-nav-main > a {
    min-height: 42px;
  }

  .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-nav > li > a.bv-nav-contact {
    min-height: 46px;
  }
}

@media (min-width: 1200px) and (max-width: 1399.98px) {
  .rd-navbar-static .rd-navbar-inner {
    grid-template-columns: 130px minmax(0, 1fr);
    padding-right: 16px;
    padding-left: 16px;
  }

  .rd-navbar-static .rd-navbar-panel {
    width: 130px !important;
  }

  .rd-navbar-static .rd-navbar-brand img {
    height: 84px !important;
    max-height: 84px !important;
  }

  .rd-navbar-static .rd-navbar-nav {
    gap: 2px;
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-nav-main > a {
    padding-right: 8px !important;
    padding-left: 8px !important;
    font-size: 11px;
  }

  .rd-navbar-static .rd-navbar-nav > li > a.bv-nav-contact {
    padding-right: 16px !important;
    padding-left: 16px !important;
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-language-link,
.rd-navbar-static .rd-navbar-nav > li.bv-language-link > a {
    width: 34px !important;
    min-width: 34px !important;
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-language-link {
    flex-basis: 34px !important;
  }

  .rd-navbar-static .bv-flag-icon {
    width: 23px;
    height: 23px;
    flex-basis: 23px;
  }
}

@media (min-width: 768px) and (max-width: 1199.98px) {
  .rd-navbar-static .rd-navbar-nav > li.bv-language-link,
.rd-navbar-static .rd-navbar-nav > li.bv-language-link > a {
    width: 34px !important;
    min-width: 34px !important;
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-language-link {
    flex-basis: 34px !important;
  }

  .rd-navbar-static .bv-flag-icon {
    width: 24px;
    height: 24px;
    flex-basis: 24px;
  }
}

@media (max-width: 1199.98px) {
  .rd-navbar-fixed .rd-navbar-nav > li.bv-language-link > a {
    min-height: 70px;
    border-radius: 14px 24px 14px 24px;
    background: linear-gradient(145deg, rgba(255, 255, 255, .96), rgba(239, 247, 244, .82));
    grid-template-rows: auto auto;
    gap: 5px;
  }

  .rd-navbar-fixed .rd-navbar-nav > li.bv-language-link > a::after {
    position: static;
    display: block !important;
    width: auto;
    height: auto;
    border: 0;
    color: #527078;
    background: none;
    content: attr(data-bv-language-short);
    font-family: var(--bv-font-display) !important;
    font-size: 9px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .09em;
    opacity: 1;
    transform: none;
  }

  .rd-navbar-fixed .bv-flag-icon {
    width: 30px;
    height: 30px;
    flex-basis: 30px;
  }

  .rd-navbar-fixed .rd-navbar-nav > li.bv-current > a {
    background: linear-gradient(135deg, #16aaa7, #087f8b);
  }

  .rd-navbar-fixed .rd-navbar-nav > li.bv-nav-main > a:hover,
.rd-navbar-fixed .rd-navbar-nav > li.bv-nav-main > a:focus-visible {
    transform: translateX(4px);
  }
}

@media (max-width: 379.98px) {
  .rd-navbar-fixed .rd-navbar-nav > li.bv-language-link > a {
    min-height: 64px;
  }

  .rd-navbar-fixed .bv-flag-icon {
    width: 27px;
    height: 27px;
    flex-basis: 27px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rd-navbar-static .rd-navbar-nav > li > a,
.rd-navbar-fixed .rd-navbar-nav > li > a,
.bv-flag-icon {
    transition: none !important;
  }
}

/* ========================================================================
 * Premium contact ribbon above the main navigation
 * ======================================================================== */
@media (min-width: 1200px) {
  .rd-navbar-static .rd-navbar-top-panel__outer {
    position: relative;
    width: calc(100% + 30px);
    max-width: none;
    margin-right: -15px;
    margin-left: -15px;
    overflow: hidden;
    padding: 7px 14px 9px;
    border-bottom: 1px solid rgba(189, 233, 228, .13);
    background:
      radial-gradient(circle at 12% -80%, rgba(32, 182, 178, .24), transparent 28rem),
      radial-gradient(circle at 86% 180%, rgba(239, 112, 95, .12), transparent 26rem),
      linear-gradient(115deg, #032e39 0%, #073f4a 48%, #032a35 100%) !important;
    box-shadow: 0 12px 34px rgba(3, 33, 42, .15);
    isolation: isolate;
  }

  .rd-navbar-static .rd-navbar-top-panel__outer::after {
    position: absolute;
    z-index: 0;
    right: 7%;
    bottom: 0;
    left: 7%;
    height: 2px;
    border-radius: 999px 999px 0 0;
    background: linear-gradient(90deg, transparent, rgba(189, 233, 228, .62) 25%, rgba(239, 112, 95, .54) 75%, transparent);
    content: "";
    opacity: .58;
    pointer-events: none;
  }

  .rd-navbar-static .rd-navbar-top-panel {
    width: min(calc(100% - 28px), 1580px);
    max-width: 1580px;
    border-bottom: 0;
  }

  .rd-navbar-static .rd-navbar-top-panel__main,
  .rd-navbar-static .rd-navbar-top-panel__content {
    width: 100%;
  }

  .rd-navbar-static .rd-navbar-items-list {
    display: grid;
    width: 100%;
    min-height: 66px;
    margin: 0;
    padding: 0;
    grid-template-columns: minmax(0, 1.38fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.34fr) minmax(0, 1.08fr);
    gap: 8px;
    align-items: stretch;
    flex: 1 1 100%;
  }

  .rd-navbar-static .rd-navbar-items-list > li {
    position: relative;
    display: flex;
    min-width: 0;
    min-height: 62px;
    margin: 0;
    padding: 9px 11px;
    overflow: hidden;
    border: 1px solid rgba(189, 233, 228, .105);
    border-radius: 13px 22px 13px 22px;
    background: linear-gradient(145deg, rgba(255, 255, 255, .075), rgba(255, 255, 255, .025));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .055);
    align-items: center;
    transition: border-color .25s ease, background .25s ease, box-shadow .3s ease, transform .3s var(--bv-ease);
  }

  .rd-navbar-static .rd-navbar-items-list > li:first-child {
    padding-left: 11px;
  }

  .rd-navbar-static .rd-navbar-items-list > li:nth-child(even) {
    border-radius: 22px 13px 22px 13px;
  }

  .rd-navbar-static .rd-navbar-items-list > li::before {
    position: absolute;
    top: 0;
    right: 16px;
    left: 16px;
    height: 2px;
    border-radius: 0 0 999px 999px;
    background: linear-gradient(90deg, rgba(32, 182, 178, .05), rgba(189, 233, 228, .66), rgba(32, 182, 178, .05));
    content: "";
    opacity: .55;
  }

  .rd-navbar-static .rd-navbar-items-list > li:hover,
  .rd-navbar-static .rd-navbar-items-list > li:focus-within {
    border-color: rgba(189, 233, 228, .24);
    background: linear-gradient(145deg, rgba(255, 255, 255, .115), rgba(255, 255, 255, .045));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 12px 28px rgba(1, 24, 31, .16);
    transform: translateY(-2px);
  }

  .rd-navbar-static .rd-navbar-items-list .unit {
    display: flex;
    width: 100%;
    min-width: 0;
    margin: 0;
    align-items: center;
  }

  .rd-navbar-static .rd-navbar-items-list .unit-left {
    display: grid;
    width: 36px;
    height: 36px;
    min-width: 36px;
    margin: 0 10px 0 0;
    border: 1px solid rgba(189, 233, 228, .18);
    border-radius: 11px 17px 11px 17px;
    color: #bde9e4 !important;
    background: rgba(189, 233, 228, .09);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .07);
    place-items: center;
    transition: border-color .25s ease, background .25s ease, transform .3s var(--bv-ease);
  }

  .rd-navbar-static .rd-navbar-items-list > li:nth-child(4) .unit-left {
    border-color: rgba(79, 218, 109, .25);
    background: rgba(37, 211, 102, .12);
  }

  .rd-navbar-static .rd-navbar-items-list > li:hover .unit-left,
  .rd-navbar-static .rd-navbar-items-list > li:focus-within .unit-left {
    border-color: rgba(189, 233, 228, .34);
    background: rgba(189, 233, 228, .14);
    transform: rotate(-3deg) scale(1.04);
  }

  .rd-navbar-static .rd-navbar-items-list .unit-body {
    min-width: 0;
    margin-bottom: 0;
    overflow-wrap: anywhere;
    white-space: normal;
  }

  .rd-navbar-static .rd-navbar-items-list p {
    margin: 0;
  }

  .rd-navbar-static .rd-navbar-items-list p,
  .rd-navbar-static .rd-navbar-items-list a,
  .rd-navbar-static .rd-navbar-items-list .icon {
    color: rgba(244, 251, 250, .9) !important;
    font-family: var(--bv-font-body) !important;
    font-size: clamp(10.5px, .72vw, 12px);
    font-weight: 600;
    line-height: 1.42;
    letter-spacing: -.008em;
  }

  .rd-navbar-static .rd-navbar-items-list .icon {
    font-size: 17px;
    line-height: 1;
  }

  .rd-navbar-static .rd-navbar-items-list a {
    display: inline;
    overflow-wrap: anywhere;
    text-decoration: none;
    text-underline-offset: 3px;
    transition: color .22s ease, text-decoration-color .22s ease;
  }

  .rd-navbar-static .rd-navbar-items-list a[href^="tel:"],
  .rd-navbar-static .rd-navbar-items-list a[href^="mailto:"] {
    overflow-wrap: normal;
    white-space: nowrap;
  }

  .rd-navbar-static .rd-navbar-items-list a:hover,
  .rd-navbar-static .rd-navbar-items-list a:focus-visible {
    color: #fff !important;
    text-decoration: underline;
    text-decoration-color: rgba(189, 233, 228, .58);
  }

  .rd-navbar-static .rd-navbar-items-list img {
    width: 19px;
    height: 19px;
    object-fit: contain;
    filter: drop-shadow(0 4px 8px rgba(1, 24, 31, .2));
  }

  .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-top-panel__outer,
  .rd-navbar-static.rd-navbar--is-clone .rd-navbar-top-panel__outer {
    display: none !important;
    padding: 0;
  }
}

@media (min-width: 1200px) and (max-width: 1399.98px) {
  .rd-navbar-static .rd-navbar-top-panel__outer {
    padding-right: 7px;
    padding-left: 7px;
  }

  .rd-navbar-static .rd-navbar-top-panel {
    width: calc(100% - 40px);
  }

  .rd-navbar-static .rd-navbar-items-list {
    gap: 5px;
    grid-template-columns: minmax(0, 1.32fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.23fr) minmax(0, 1.05fr);
  }

  .rd-navbar-static .rd-navbar-items-list > li {
    padding-right: 8px;
    padding-left: 8px;
  }

  .rd-navbar-static .rd-navbar-items-list > li:first-child {
    padding-left: 8px;
  }

  .rd-navbar-static .rd-navbar-items-list .unit-left {
    width: 32px;
    height: 32px;
    min-width: 32px;
    margin-right: 7px;
  }

  .rd-navbar-static .rd-navbar-items-list p,
.rd-navbar-static .rd-navbar-items-list a {
    font-size: 10px;
    line-height: 1.38;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rd-navbar-static .rd-navbar-items-list > li,
.rd-navbar-static .rd-navbar-items-list .unit-left {
    transition: none !important;
  }
}

/* Homepage hero: one complete viewport before the following content begins. */
body > .page > .swiper-form-wrap,
body > .page > .swiper-form-wrap .swiper-slider_fullheight {
  height: 100vh !important;
  height: 100svh !important;
  height: 100dvh !important;
  min-height: 100vh !important;
  min-height: 100svh !important;
  max-height: none !important;
}

body > .page > .swiper-form-wrap .swiper-slider_fullheight .swiper-wrapper,
body > .page > .swiper-form-wrap .swiper-slider_fullheight .swiper-slide {
  height: 100% !important;
  min-height: 0 !important;
}

.bv-page-index .bv-home-quicklinks {
  margin-top: 0 !important;
}

/* Remove the legacy gold primary colour from links on dark coastal surfaces. */
.context-dark .link-primary,
.bg-accent .link-primary,
.bg-gray-dark .link-primary,
.bg-black .link-primary,
.bg-gray-darker .link-primary,
.bg-image-4 .link-primary,
.bg-image-6 .link-primary {
  color: var(--bv-sea-bright) !important;
}

.context-dark .link-primary:hover,
.context-dark .link-primary:focus-visible,
.bg-accent .link-primary:hover,
.bg-accent .link-primary:focus-visible,
.bg-gray-dark .link-primary:hover,
.bg-gray-dark .link-primary:focus-visible,
.bg-black .link-primary:hover,
.bg-black .link-primary:focus-visible,
.bg-gray-darker .link-primary:hover,
.bg-gray-darker .link-primary:focus-visible,
.bg-image-4 .link-primary:hover,
.bg-image-4 .link-primary:focus-visible,
.bg-image-6 .link-primary:hover,
.bg-image-6 .link-primary:focus-visible {
  color: #fff !important;
}

.rd-navbar-top-panel__outer .rd-navbar-items-list a,
.rd-navbar-top-panel__outer .rd-navbar-items-list a.link-primary {
  color: rgba(244, 251, 250, .9) !important;
}

.rd-navbar-top-panel__outer .rd-navbar-items-list a:hover,
.rd-navbar-top-panel__outer .rd-navbar-items-list a:focus-visible,
.rd-navbar-top-panel__outer .rd-navbar-items-list a.link-primary:hover,
.rd-navbar-top-panel__outer .rd-navbar-items-list a.link-primary:focus-visible {
  color: #ffe7b3 !important;
  text-decoration-color: rgba(255, 211, 143, .92);
  text-decoration-thickness: 1.5px;
  text-shadow: 0 1px 10px rgba(255, 220, 166, .16);
}

/* Homepage story and gallery — balanced coastal editorial layout. */
.bv-gallery-section .owl-carousel::before {
  display: none;
  content: none;
}

.bv-gallery-label {
  display: flex;
  max-width: none;
  margin: 0 0 16px;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px 12px;
}

.bv-gallery-label__kicker {
  display: inline-flex;
  width: auto;
  min-width: 0;
  max-width: 100%;
  height: auto;
  min-height: 32px;
  padding: 7px 12px;
  border: 1px solid rgba(10, 135, 148, .16);
  border-radius: 999px;
  align-items: center;
  flex: 0 1 auto;
  color: var(--bv-sea);
  background: rgba(10, 135, 148, .08);
  font-family: var(--bv-font-body);
  font-size: 10px;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.bv-gallery-label__title {
  font-size: clamp(16px, 1.5vw, 20px);
  font-weight: 650;
  line-height: 1.2;
  letter-spacing: -.015em;
  text-transform: none;
}

.bv-home-story {
  position: relative;
  padding: clamp(82px, 8vw, 132px) 0 !important;
  /* Sticky content must remain fully visible while it reaches either edge
   * of the section; the page itself already contains horizontal artwork. */
  overflow: visible;
  isolation: isolate;
  background:
    radial-gradient(circle at 6% 12%, rgba(32, 182, 178, .16), transparent 27rem),
    radial-gradient(circle at 94% 88%, rgba(239, 112, 95, .11), transparent 28rem),
    linear-gradient(145deg, #f5faf7 0%, #fffdf8 48%, #f4efe5 100%) !important;
}

/* Outrank the legacy section clipping rule for the sticky-content host. */
.page > .bv-home-story.section-md,
.page > .bv-home-story.section-lg {
  overflow: visible;
}

/* Remove the completed reveal transform: even translateY(0) creates a
 * containing block that can make sticky descendants appear clipped. */
.bv-js .bv-home-story.bv-reveal.bv-visible {
  transform: none;
}

.bv-home-story::before {
  display: none;
  content: none;
}

.bv-home-story::after {
  display: none;
  content: none;
}

.bv-home-story > .container {
  width: min(100% - 48px, 1240px);
  max-width: 1240px;
}

.bv-home-story > .container > .row {
  display: grid;
  margin: 0;
  align-items: start;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(44px, 6vw, 76px);
  /* The legacy .row-50 utility translates the whole row upwards. This grid
   * already owns its spacing, so that transform only leaves an empty tail. */
  transform: none;
}

.bv-home-story > .container > .row > .bv-home-story__copy,
.bv-home-story > .container > .row > .bv-home-story__media {
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0;
  flex: none;
}

.bv-home-story__copy {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.bv-home-story__copy h6 {
  display: inline-flex;
  min-height: 34px;
  margin: 0 0 18px;
  padding: 7px 13px;
  border: 1px solid rgba(10, 135, 148, .14);
  border-radius: 999px;
  align-items: center;
  gap: 9px;
  color: var(--bv-sea);
  background: rgba(255, 255, 255, .62);
  font-size: 10px;
  line-height: 1.25;
  letter-spacing: .11em;
  box-shadow: 0 8px 24px rgba(7, 57, 71, .055);
}

.bv-home-story__copy h6::before {
  display: none;
  content: none;
}

.bv-home-story__copy h2 {
  max-width: 720px;
  margin: 0 0 clamp(30px, 4vw, 46px);
  color: var(--bv-ocean);
  font-size: clamp(48px, 5.5vw, 78px);
  line-height: .98;
  letter-spacing: -.06em;
}

.bv-story-grid {
  display: grid;
  margin: 0 0 34px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(14px, 1.8vw, 22px);
}

.bv-story-card {
  position: relative;
  min-width: 0;
  min-height: 100%;
  padding: clamp(23px, 2.4vw, 30px);
  overflow: hidden;
  border: 1px solid rgba(7, 57, 71, .09);
  border-radius: 26px;
  background: rgba(255, 255, 255, .82);
  box-shadow: 0 18px 48px rgba(7, 57, 71, .075);
  transform: none;
  transition: border-color .3s ease, box-shadow .4s var(--bv-ease), transform .4s var(--bv-ease);
}

.bv-story-card:nth-child(2),
.bv-story-card:nth-child(3) {
  background: linear-gradient(145deg, rgba(229, 245, 241, .94), rgba(255, 253, 248, .9));
}

.bv-story-card:nth-child(even),
.bv-story-card:nth-child(even):hover {
  transform: none;
}

.bv-story-card::before {
  display: none;
  content: none;
}

.bv-story-card::after {
  right: 24px;
  bottom: 20px;
  width: 42px;
  height: 3px;
  opacity: .48;
}

.bv-story-card__label {
  position: relative;
  z-index: 1;
  display: inline-flex;
  min-height: 30px;
  margin: 0 0 15px;
  padding: 6px 10px;
  border-radius: 999px;
  align-items: center;
  color: #087d86;
  background: rgba(10, 135, 148, .095);
  font-family: var(--bv-font-body);
  font-size: 10.5px;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.bv-story-card p {
  position: relative;
  z-index: 1;
  margin: 0;
  color: #3f5f67;
  font-size: clamp(15.5px, 1.2vw, 17px);
  line-height: 1.72;
}

.bv-home-story__copy > .button {
  width: auto;
  min-width: min(100%, 260px);
  justify-content: center;
}

.bv-home-story__media {
  position: relative;
  top: auto;
  height: fit-content;
  min-height: 0;
  padding: clamp(15px, 1.8vw, 20px) !important;
  align-self: start;
  border: 1px solid rgba(255, 255, 255, .13);
  border-radius: 36px;
  background:
    radial-gradient(circle at 100% 0, rgba(32, 182, 178, .2), transparent 20rem),
    linear-gradient(150deg, #073947, #032832);
  box-shadow: 0 34px 88px rgba(4, 48, 60, .23);
}

.bv-home-story__media .bv-gallery-label {
  margin: 0 3px 15px;
  color: #fff;
}

.bv-home-story__media .bv-gallery-label__kicker {
  border-color: rgba(255, 255, 255, .15);
  color: #dff8f3;
  background: rgba(255, 255, 255, .085);
}

.bv-home-story__media .bv-gallery-label__title {
  color: #fff;
}

.bv-home-story__media .owl-carousel {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  overflow: visible;
  border: 0;
  border-radius: 25px;
  background: transparent;
  box-shadow: none;
  transform: none;
}

.bv-home-story__media .owl-stage-outer {
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .15);
  border-radius: 25px;
  background: #062f3a;
  box-shadow: 0 22px 54px rgba(1, 25, 32, .32);
}

.bv-home-story__media .owl-carousel figure {
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 4 / 3;
  border-radius: 24px;
}

.bv-home-story__media .owl-carousel figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bv-home-story__media .owl-prev,
.bv-home-story__media .owl-next {
  top: calc(50% - 18px);
  display: grid !important;
  width: 46px;
  height: 46px;
  margin-top: 0;
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 16px;
  color: #fff;
  background: rgba(3, 40, 50, .82);
  font-size: 23px;
  line-height: 1;
  place-items: center;
  box-shadow: 0 14px 30px rgba(1, 25, 32, .28);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.bv-home-story__media .owl-prev {
  left: 14px;
}

.bv-home-story__media .owl-next {
  right: 14px;
}

.bv-home-story__media .owl-prev:hover,
.bv-home-story__media .owl-next:hover,
.bv-home-story__media .owl-prev:focus-visible,
.bv-home-story__media .owl-next:focus-visible {
  border-color: rgba(255, 255, 255, .52);
  color: #fff;
  background: var(--bv-coral);
}

.bv-home-story__media .owl-dots {
  position: relative;
  bottom: auto;
  display: flex !important;
  width: min(100%, 250px);
  margin: 16px auto 0;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px;
}

.bv-home-story__media .owl-dot,
.bv-home-story__media .owl-dot + .owl-dot {
  width: 8px;
  height: 8px;
  margin: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, .28);
  transition: width .3s var(--bv-ease), background .25s ease;
}

.bv-home-story__media .owl-dot:hover,
.bv-home-story__media .owl-dot:focus-visible {
  background: rgba(255, 255, 255, .62);
}

.bv-home-story__media .owl-dot.active {
  width: 24px;
  background: linear-gradient(90deg, var(--bv-sea-bright), var(--bv-coral));
}

.bv-home-story__gallery-meta {
  display: flex;
  margin: 16px 3px 2px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: rgba(232, 247, 245, .74);
  font-size: 11px;
  line-height: 1.45;
}

.bv-home-story__gallery-count {
  display: inline-flex;
  min-height: 29px;
  padding: 5px 10px;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 999px;
  align-items: center;
  flex: 0 0 auto;
  color: #fff;
  background: rgba(255, 255, 255, .07);
  font-weight: 750;
}

.bv-home-story__gallery-hint {
  max-width: 250px;
  text-align: right;
}

@media (min-width: 1100px) {
  .bv-home-story {
    /* Keep the original lower breathing room inside the sticky containing
     * block, so the complete panel stays visible up to the section edge. */
    padding-bottom: 0 !important;
  }

  .bv-home-story > .container > .row {
    grid-template-columns: minmax(0, 1.34fr) minmax(390px, .86fr);
    gap: clamp(40px, 4.2vw, 62px);
    padding-bottom: clamp(82px, 8vw, 132px);
  }

  .bv-home-story.bv-home-story--sticky-fit .bv-home-story__media {
    position: sticky;
    z-index: 2;
    top: var(--bv-story-sticky-top, calc(var(--bv-anchor-offset, 100px) + 18px));
    height: max-content;
    align-self: start;
  }
}

@media (max-width: 1099.98px) {
  .bv-home-story__copy h2 {
    max-width: 820px;
  }

  .bv-home-story__media {
    width: min(100%, 760px) !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }
}

@media (max-width: 767.98px) {
  .bv-home-story {
    padding: 62px 0 clamp(34px, 8vw, 46px) !important;
  }

  .bv-home-story::after {
    top: 28px;
    right: -72px;
    width: 235px;
  }

  .bv-home-story > .container {
    width: min(100% - 28px, 720px);
  }

  .bv-home-story > .container > .row {
    gap: 42px;
  }

  .bv-home-story__copy h2 {
    margin-bottom: 28px;
    font-size: clamp(40px, 12.5vw, 58px);
    line-height: 1;
  }

  .bv-story-grid {
    margin-bottom: 28px;
    gap: 12px;
  }

  .bv-story-card {
    padding: 22px;
    border-radius: 22px;
  }

  .bv-story-card p {
    font-size: 16px;
    line-height: 1.68;
  }

  .bv-home-story__copy > .button {
    width: 100%;
  }

  .bv-home-story__media {
    padding: 10px 10px 14px !important;
    border-radius: 27px;
  }

  .bv-home-story__media .bv-gallery-label {
    margin: 2px 3px 12px;
  }

  .bv-home-story__media .owl-carousel,
.bv-home-story__media .owl-stage-outer,
.bv-home-story__media .owl-carousel figure {
    border-radius: 20px;
  }

  .bv-home-story__media .owl-prev,
.bv-home-story__media .owl-next {
    width: 40px;
    height: 40px;
    border-radius: 14px;
    font-size: 20px;
  }

  .bv-home-story__media .owl-prev {
    left: 9px;
  }

  .bv-home-story__media .owl-next {
    right: 9px;
  }

  .bv-home-story__gallery-meta {
    display: grid;
    margin-top: 12px;
    align-items: center;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 8px 12px;
  }

  .bv-home-story__gallery-hint {
    max-width: none;
    text-align: left;
    overflow-wrap: anywhere;
  }
}

@media (max-width: 639.98px) {
  .bv-story-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 359.98px) {
  .bv-home-story > .container {
    width: calc(100% - 20px);
  }

  .bv-home-story__copy h2 {
    font-size: 37px;
  }

  .bv-home-story__copy h6,
.bv-gallery-label__kicker,
.bv-story-card__label {
    font-size: 9px;
  }

  .bv-story-card {
    padding: 20px 18px;
  }
}

@media (hover: hover) and (pointer: fine) {
  .bv-story-card:hover,
.bv-story-card:nth-child(even):hover {
    border-color: rgba(10, 135, 148, .22);
    box-shadow: 0 26px 62px rgba(7, 57, 71, .12);
    transform: translateY(-6px);
  }

  .bv-home-story__media .owl-carousel:hover {
    border-color: transparent;
    box-shadow: none;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bv-story-card,
.bv-home-story__media .owl-dot,
.bv-home-story__media .img-thumbnail-variant-1 img {
    transition: none !important;
  }
}

/* Homepage reviews — a compact,
premium guest-story section. */
.bv-home-reviews {
  position: relative;
  padding: clamp(92px, 9vw, 142px) 0 clamp(64px, 6vw, 86px) !important;
  overflow: hidden;
  isolation: isolate;
  color: #fff;
  background:
    radial-gradient(circle at 9% 14%, rgba(32, 182, 178, .23), transparent 27rem),
    radial-gradient(circle at 92% 84%, rgba(239, 112, 95, .17), transparent 30rem),
    linear-gradient(145deg, #073947 0%, #042d38 54%, #031f28 100%) !important;
}

.bv-home-reviews::before {
  display: none;
  content: none;
}

.bv-home-reviews::after {
  display: none;
  content: none;
}

.bv-home-reviews > .bv-section-keyphrase {
  border-color: rgba(255, 255, 255, .16);
  border-left-color: var(--bv-coral);
  color: rgba(244, 251, 250, .84);
  background: rgba(3, 31, 40, .55);
}

.bv-home-reviews__container {
  position: relative;
  z-index: 1;
  width: min(100% - 48px, 1240px) !important;
  max-width: 1240px !important;
}

.bv-home-reviews__eyebrow {
  display: inline-flex;
  min-height: 34px;
  margin: 0 0 18px;
  padding: 7px 13px;
  border: 1px solid rgba(255, 255, 255, .15);
  border-radius: 999px;
  align-items: center;
  gap: 9px;
  color: #d9f5f1;
  background: rgba(255, 255, 255, .075);
  font-size: 10px;
  line-height: 1.25;
  letter-spacing: .1em;
  box-shadow: 0 12px 32px rgba(1, 25, 32, .18);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.bv-home-reviews__eyebrow::before {
  display: none;
  content: none;
}

.bv-home-reviews__title {
  max-width: 880px;
  margin: 0 auto 18px;
  color: #fff;
  font-size: clamp(54px, 7vw, 92px);
  line-height: .94;
  letter-spacing: -.065em;
}

.bv-home-reviews__intro {
  max-width: 650px;
  margin: 0 auto clamp(64px, 6vw, 86px);
  color: rgba(226, 242, 240, .78);
  font-size: clamp(16px, 1.4vw, 19px);
  line-height: 1.65;
  text-align: center;
}

.bv-home-reviews__grid {
  display: grid;
  margin: 0;
  align-items: stretch;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 2.4vw, 30px);
}

/* The original row-50 utility lifts the whole row by 50px and cancels the
 * breathing room below the localized intro. Reviews own their spacing. */
html .page .bv-home-reviews .bv-home-reviews__grid.row-50 {
  margin-top: 0;
  margin-bottom: 0;
  transform: none;
}

.bv-home-reviews__grid > .bv-review-card__column {
  width: auto;
  max-width: none;
  min-width: 0;
  height: 100%;
  margin: 0;
  padding: 0;
  flex: none;
}

.bv-home-reviews .quote-review {
  position: relative;
  display: flex;
  height: 100%;
  min-height: 0;
  padding: clamp(27px, 2.6vw, 36px);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .64);
  border-radius: 28px;
  flex-direction: column;
  color: var(--bv-ocean);
  background:
    radial-gradient(circle at 100% 0, rgba(32, 182, 178, .105), transparent 16rem),
    #fffdf8;
  box-shadow: 0 30px 74px rgba(1, 25, 32, .24);
  text-align: left;
  transform: none;
  transition: border-color .3s ease, box-shadow .4s var(--bv-ease), transform .4s var(--bv-ease);
}

.bv-home-reviews__grid > .bv-review-card__column:nth-child(2) .quote-review {
  background:
    radial-gradient(circle at 100% 0, rgba(239, 112, 95, .105), transparent 16rem),
    #fffdf8;
}

.bv-home-reviews__grid > .bv-review-card__column:nth-child(3) .quote-review {
  background:
    radial-gradient(circle at 100% 0, rgba(242, 182, 95, .11), transparent 16rem),
    #fffdf8;
}

.bv-home-reviews .quote-review::before {
  position: relative;
  z-index: 1;
  display: grid;
  width: 56px;
  height: 56px;
  margin: 0 0 24px;
  border: 1px solid rgba(10, 135, 148, .12);
  border-radius: 18px;
  color: #087d86;
  background: rgba(10, 135, 148, .09);
  content: "“";
  font-family: var(--bv-font-display) !important;
  font-size: 62px;
  font-weight: 650;
  line-height: 1;
  place-items: center;
}

.bv-home-reviews__grid > .bv-review-card__column:nth-child(2) .quote-review::before {
  border-color: rgba(239, 112, 95, .13);
  color: #d85f51;
  background: rgba(239, 112, 95, .09);
}

.bv-home-reviews .quote-review::after {
  position: absolute;
  top: 0;
  right: 24px;
  bottom: auto;
  left: 24px;
  width: auto;
  height: 4px;
  border-radius: 0 0 999px 999px;
  background: linear-gradient(90deg, var(--bv-sea-bright), var(--bv-coral));
  content: "";
  opacity: .9;
}

.bv-home-reviews .bv-review-card__label {
  max-width: 290px;
  margin: 0 0 18px;
  color: #0b4655;
  font-family: var(--bv-font-body) !important;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.45;
  letter-spacing: .075em;
  text-transform: uppercase;
}

.bv-home-reviews .quote-review__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
}

.bv-home-reviews .bv-review-card__text {
  margin: 0;
  color: #45636a;
  font-size: clamp(15.5px, 1.25vw, 17px);
  line-height: 1.75;
}

.bv-review-card__footer {
  display: flex;
  margin-top: clamp(26px, 3vw, 38px);
  padding-top: 20px;
  border-top: 1px solid rgba(7, 57, 71, .09);
  align-items: center;
  gap: 13px;
}

.bv-review-card__avatar {
  display: grid;
  width: 46px;
  height: 46px;
  flex: 0 0 46px;
  border-radius: 15px;
  color: #fff;
  background: linear-gradient(145deg, #0a8b91, #20b6b2);
  font-family: var(--bv-font-display);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -.02em;
  place-items: center;
  box-shadow: 0 10px 24px rgba(10, 135, 148, .2);
}

.bv-home-reviews__grid > .bv-review-card__column:nth-child(2) .bv-review-card__avatar {
  background: linear-gradient(145deg, #e56456, #ef8a74);
  box-shadow: 0 10px 24px rgba(239, 112, 95, .2);
}

.bv-review-card__author {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.bv-home-reviews .quote-review .cite {
  display: block;
  margin: 0;
  padding: 0;
  color: #073947 !important;
  background: transparent;
  font-family: var(--bv-font-display);
  font-size: 16px;
  font-weight: 650;
  line-height: 1.3;
}

.bv-review-card__role {
  color: #6d858a;
  font-size: 10.5px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: .035em;
}

@media (min-width: 760px) and (max-width: 1179.98px) {
  .bv-home-reviews__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bv-home-reviews__grid > .bv-review-card__column:last-child {
    width: min(100%, 580px);
    grid-column: 1 / -1;
    justify-self: center;
  }
}

@media (max-width: 759.98px) {
  .bv-home-reviews {
    padding: 72px 0 56px !important;
  }

  .bv-home-reviews::after {
    top: 42px;
    right: -34px;
    width: 166px;
    border-radius: 22px 10px 22px 22px;
    background-size: calc(100% - 28px) auto, auto;
    opacity: .2;
    transform: rotate(2deg);
  }

  .bv-home-reviews__container {
    width: min(100% - 28px, 620px) !important;
  }

  .bv-home-reviews__title {
    margin-bottom: 15px;
    font-size: clamp(46px, 15vw, 64px);
    line-height: .98;
  }

  .bv-home-reviews__intro {
    margin-bottom: 34px;
    font-size: 16px;
  }

  .bv-home-reviews__grid {
    margin-bottom: 0;
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }

  html .page .bv-home-reviews .bv-home-reviews__grid.row-50 {
    margin-bottom: 0;
  }

  .bv-home-reviews .quote-review {
    padding: 25px 22px;
    border-radius: 23px;
  }

  .bv-home-reviews .quote-review::before {
    width: 48px;
    height: 48px;
    margin-bottom: 20px;
    border-radius: 15px;
    font-size: 54px;
  }

  .bv-home-reviews .bv-review-card__label {
    margin-bottom: 15px;
    font-size: 10px;
  }

  .bv-home-reviews .bv-review-card__text {
    font-size: 16px;
    line-height: 1.7;
  }

}

@media (max-width: 359.98px) {
  .bv-home-reviews__container {
    width: calc(100% - 20px) !important;
  }

  .bv-home-reviews__title {
    font-size: 42px;
  }

  .bv-home-reviews .quote-review {
    padding: 23px 18px;
  }

  .bv-review-card__avatar {
    width: 42px;
    height: 42px;
    flex-basis: 42px;
    border-radius: 13px;
  }

}

@media (hover: hover) and (pointer: fine) {
  .bv-home-reviews .quote-review:hover {
    border-color: rgba(32, 182, 178, .58);
    box-shadow: 0 38px 92px rgba(1, 25, 32, .32);
    transform: translateY(-7px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .bv-home-reviews .quote-review {
    transition: none !important;
  }
}

/* RistoVittoria gallery — compact cinematic presentation. */
.bv-restaurant-intro .bv-restaurant-gallery {
  display: block;
  margin: clamp(54px, 7vw, 92px) 0 0;
  /* Neutralize the legacy .row-50 lift: spacing must stay in normal flow. */
  transform: none;
}

.bv-restaurant-intro .bv-restaurant-gallery > .bv-restaurant-gallery__column {
  position: relative;
  width: min(calc(100% - clamp(24px, 3.5vw, 52px)), 1020px);
  max-width: 1020px;
  margin: 0 auto;
  padding: clamp(14px, 2vw, 24px);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 38px;
  color: #fff;
  background:
    radial-gradient(circle at 100% 0, rgba(239, 112, 95, .2), transparent 26rem),
    radial-gradient(circle at 0 100%, rgba(32, 182, 178, .18), transparent 24rem),
    linear-gradient(145deg, #073947, #032832);
  box-shadow: 0 38px 96px rgba(4, 48, 60, .24);
  flex: none;
}

.bv-restaurant-intro .bv-restaurant-gallery > .bv-restaurant-gallery__column::before {
  display: none;
  content: none;
}

.bv-restaurant-gallery__label {
  position: relative;
  z-index: 1;
  max-width: none;
  margin: 0 3px 17px;
  color: #fff;
}

.bv-restaurant-gallery__label .bv-gallery-label__kicker {
  border-color: rgba(255, 255, 255, .16);
  color: #dff8f3;
  background: rgba(255, 255, 255, .085);
}

.bv-restaurant-gallery__label .bv-gallery-label__title {
  color: #fff;
  font-size: clamp(18px, 2vw, 25px);
}

.bv-restaurant-intro .bv-restaurant-gallery__carousel {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  overflow: visible;
  border: 0;
  border-radius: 27px;
  background: transparent;
  box-shadow: none;
  transform: none;
}

.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-stage-outer {
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .15);
  border-radius: 27px;
  background: #062f3a;
  box-shadow: 0 26px 62px rgba(1, 25, 32, .34);
}

.bv-restaurant-intro .bv-restaurant-gallery__carousel figure {
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  border-radius: 26px;
  background: #062f3a;
}

.bv-restaurant-intro .bv-restaurant-gallery__carousel figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bv-restaurant-intro .bv-restaurant-gallery__carousel .caption {
  border-radius: 26px;
  background: linear-gradient(180deg, rgba(3, 31, 40, .06), rgba(3, 31, 40, .42));
}

.bv-restaurant-intro .bv-restaurant-gallery__carousel .caption .icon {
  display: grid;
  width: 58px;
  height: 58px;
  border: 1px solid rgba(255, 255, 255, .34);
  border-radius: 18px;
  color: #fff;
  background: rgba(3, 40, 50, .62);
  font-size: 25px;
  place-items: center;
  box-shadow: 0 16px 36px rgba(1, 25, 32, .28);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-prev,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-next {
  top: calc(50% - 18px);
  display: grid !important;
  width: 48px;
  height: 48px;
  margin-top: 0;
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 16px;
  color: #fff;
  background: rgba(3, 40, 50, .84);
  font-size: 23px;
  line-height: 1;
  place-items: center;
  box-shadow: 0 16px 34px rgba(1, 25, 32, .3);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-prev {
  left: 16px;
}

.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-next {
  right: 16px;
}

.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-prev:hover,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-next:hover,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-prev:focus-visible,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-next:focus-visible {
  border-color: rgba(255, 255, 255, .52);
  color: #fff;
  background: var(--bv-coral);
}

.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-dots {
  position: relative;
  bottom: auto;
  display: flex !important;
  width: min(100%, 280px);
  margin: 17px auto 0;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px;
}

.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-dot,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-dot + .owl-dot {
  width: 8px;
  height: 8px;
  margin: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, .27);
  transition: width .3s var(--bv-ease), background .25s ease;
}

.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-dot:hover,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-dot:focus-visible {
  background: rgba(255, 255, 255, .62);
}

.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-dot.active {
  width: 26px;
  background: linear-gradient(90deg, var(--bv-sea-bright), var(--bv-coral));
}

.bv-restaurant-gallery__meta {
  position: relative;
  z-index: 1;
  display: flex;
  margin: 17px 3px 2px;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  color: rgba(232, 247, 245, .74);
  font-size: 11px;
  line-height: 1.45;
  text-align: left;
}

.bv-restaurant-gallery__count {
  display: inline-flex;
  min-height: 30px;
  padding: 5px 10px;
  border: 1px solid rgba(255, 255, 255, .13);
  border-radius: 999px;
  align-items: center;
  flex: 0 0 auto;
  color: #fff;
  background: rgba(255, 255, 255, .075);
  font-weight: 750;
}

.bv-restaurant-gallery__hint {
  max-width: 440px;
  text-align: right;
}

@media (max-width: 767.98px) {
  .bv-restaurant-intro .bv-restaurant-gallery {
    margin-top: 44px;
  }

  .bv-restaurant-intro .bv-restaurant-gallery > .bv-restaurant-gallery__column {
    width: min(calc(100% - 10px), 560px);
    max-width: 560px;
    padding: 10px 10px 14px;
    border-radius: 27px;
  }

  .bv-restaurant-gallery__label {
    margin: 2px 3px 12px;
  }

  .bv-restaurant-gallery__label .bv-gallery-label__title {
    font-size: 18px;
  }

  .bv-restaurant-intro .bv-restaurant-gallery__carousel,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-stage-outer,
.bv-restaurant-intro .bv-restaurant-gallery__carousel figure,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .caption {
    border-radius: 20px;
  }

  .bv-restaurant-intro .bv-restaurant-gallery__carousel figure {
    aspect-ratio: 4 / 3;
  }

  .bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-prev,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-next {
    width: 40px;
    height: 40px;
    border-radius: 14px;
    font-size: 20px;
  }

  .bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-prev {
    left: 9px;
  }

  .bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-next {
    right: 9px;
  }

  .bv-restaurant-gallery__meta {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
  }

  .bv-restaurant-gallery__hint {
    max-width: none;
    text-align: left;
  }
}

/* Short laptop/tablet viewports: keep the complete gallery and controls
   comfortably inside the visible screen without changing the photo crop. */
@media (min-width: 768px) and (max-height: 820px) {
  .bv-restaurant-intro .bv-restaurant-gallery {
    margin-top: clamp(38px, 5vh, 54px);
  }

  .bv-restaurant-intro .bv-restaurant-gallery > .bv-restaurant-gallery__column {
    width: min(calc(100% - 40px), 900px);
    max-width: 900px;
    padding: clamp(13px, 1.7vw, 20px);
  }
}

@media (min-width: 768px) and (max-height: 700px) {
  .bv-restaurant-intro .bv-restaurant-gallery > .bv-restaurant-gallery__column {
    width: min(calc(100% - 40px), 820px);
    max-width: 820px;
  }
}

@media (max-width: 359.98px) {
  .bv-restaurant-intro .bv-restaurant-gallery > .bv-restaurant-gallery__column {
    padding: 8px 8px 12px;
  }

  .bv-restaurant-gallery__label .bv-gallery-label__kicker {
    font-size: 8.5px;
  }

  .bv-restaurant-gallery__label .bv-gallery-label__title {
    font-size: 16px;
  }
}

@media (hover: hover) and (pointer: fine) {
  .bv-restaurant-intro .bv-restaurant-gallery__carousel:hover {
    border-color: transparent;
    box-shadow: none;
    transform: none;
  }

  .bv-restaurant-intro .bv-restaurant-gallery__carousel .img-thumbnail-variant-1:hover img {
    filter: saturate(1.04) contrast(1.015);
    transform: scale(1.025);
  }
}

@media (prefers-reduced-motion: reduce) {
  .bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-dot,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .img-thumbnail-variant-1 img {
    transition: none !important;
  }
}

/* Shared pre-footer — modern identity,
contacts and trust area. */
.bv-prefooter-modern {
  position: relative;
  padding: clamp(84px, 8vw, 122px) 0 clamp(72px, 7vw, 104px);
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(circle at 7% 10%, rgba(32, 182, 178, .22), transparent 28rem),
    radial-gradient(circle at 94% 88%, rgba(239, 112, 95, .13), transparent 28rem),
    linear-gradient(145deg, #073947 0%, #032832 58%, #021c24 100%) !important;
}

.bv-prefooter-modern::before {
  position: absolute;
  z-index: 1;
  top: 0;
  right: 0;
  left: 0;
  height: 4px;
  border-radius: 0;
  background: linear-gradient(90deg, var(--bv-sea-bright), var(--bv-coral) 52%, var(--bv-sun));
  content: "";
}

.bv-prefooter-modern::after {
  display: none;
  content: none;
}

.bv-prefooter-modern__container {
  position: relative;
  z-index: 2;
  width: min(100% - 48px, 1360px);
  max-width: 1360px;
}

.bv-prefooter-modern .bv-prefooter-modern__grid {
  display: grid;
  margin: 0;
  align-items: stretch;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr) minmax(0, .9fr);
  gap: clamp(16px, 2vw, 26px);
}

.bv-prefooter-modern .bv-prefooter-modern__grid > .bv-prefooter-card {
  position: relative;
  display: flex;
  width: auto;
  max-width: none;
  min-width: 0;
  min-height: 100%;
  margin: 0;
  padding: clamp(26px, 3vw, 38px);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .11);
  border-radius: 29px;
  flex: none;
  flex-direction: column;
  background: rgba(255, 255, 255, .052);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .055), 0 24px 66px rgba(1, 25, 32, .17);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  transform: none;
  transition: border-color .3s ease, background .3s ease, box-shadow .4s var(--bv-ease), transform .4s var(--bv-ease);
}

.bv-prefooter-modern .bv-prefooter-modern__grid > .bv-prefooter-story {
  background:
    radial-gradient(circle at 100% 0, rgba(32, 182, 178, .12), transparent 18rem),
    rgba(255, 255, 255, .065);
}

.bv-prefooter-modern .bv-prefooter-modern__grid > .bv-prefooter-card::after {
  position: absolute;
  top: 0;
  right: 28px;
  left: 28px;
  height: 3px;
  border-radius: 0 0 999px 999px;
  background: linear-gradient(90deg, var(--bv-sea-bright), var(--bv-coral));
  content: "";
  opacity: .72;
}

.bv-prefooter-brand {
  display: flex;
  margin: 0 0 24px;
  align-items: center;
  gap: 14px;
}

.bv-prefooter-brand > img {
  display: block;
  width: 64px;
  height: 58px;
  padding: 4px;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 18px;
  object-fit: contain;
  background: #fff;
  box-shadow: 0 14px 30px rgba(1, 25, 32, .2);
}

.bv-prefooter-brand__copy {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.bv-prefooter-brand__copy strong {
  color: #fff;
  font-family: var(--bv-font-display);
  font-size: clamp(20px, 2vw, 26px);
  font-weight: 650;
  line-height: 1.05;
  letter-spacing: -.045em;
}

.bv-prefooter-brand__copy span {
  color: #bde9e4;
  font-size: 9.5px;
  font-weight: 800;
  line-height: 1.35;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.bv-prefooter-modern .bv-prefooter-story__copy {
  margin: 0;
  color: rgba(236, 247, 245, .78);
  font-size: clamp(15.5px, 1.2vw, 17px);
  line-height: 1.72;
}

.bv-prefooter-seo {
  display: grid;
  margin-top: clamp(20px, 2.2vw, 28px);
  padding-top: clamp(18px, 2vw, 24px);
  border-top: 1px solid rgba(255, 255, 255, .1);
  gap: 16px;
}

.bv-prefooter-modern .bv-prefooter-seo__text {
  margin: 0;
  color: rgba(236, 247, 245, .84);
  font-size: clamp(13.5px, 1vw, 15px);
  line-height: 1.66;
}

.bv-prefooter-highlights {
  display: grid;
  margin: 0;
  padding: 0;
  list-style: none;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.bv-prefooter-highlights li {
  min-width: 0;
  margin: 0;
}

.bv-prefooter-highlights li:last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

.bv-prefooter-highlights a {
  position: relative;
  display: flex;
  min-height: 48px;
  padding: 10px 32px 10px 13px;
  border: 1px solid rgba(189, 233, 228, .12);
  border-radius: 14px;
  align-items: center;
  color: #d9f5f1 !important;
  background: rgba(255, 255, 255, .045);
  font-size: 11.5px;
  font-weight: 760;
  line-height: 1.38;
  text-decoration: none;
  overflow-wrap: anywhere;
  transition: border-color .25s ease, background .25s ease, transform .3s var(--bv-ease);
}

.bv-prefooter-highlights a::after {
  position: absolute;
  top: 50%;
  right: 12px;
  color: var(--bv-sea-bright);
  content: "→";
  font-size: 15px;
  line-height: 1;
  transform: translateY(-50%);
  transition: transform .25s ease;
}

.bv-prefooter-highlights a:hover,
.bv-prefooter-highlights a:focus-visible {
  border-color: rgba(189, 233, 228, .3);
  color: #fff !important;
  background: rgba(32, 182, 178, .12);
  transform: translateY(-2px);
}

.bv-prefooter-highlights a:hover::after,
.bv-prefooter-highlights a:focus-visible::after {
  transform: translate(3px, -50%);
}

.bv-prefooter-story > br,
.bv-prefooter-channels > br {
  display: none;
}

.bv-prefooter-trust {
  display: flex;
  margin-top: auto;
  padding-top: clamp(28px, 3.5vw, 42px);
  align-items: center;
  justify-content: flex-start;
}

.bv-prefooter-trust__badge {
  display: inline-flex;
  width: auto;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  align-items: center;
  background: transparent;
  box-shadow: none;
}

.bv-prefooter-modern .bv-prefooter-trust__badge img[src*="segnalato"] {
  display: block;
  width: 140px;
  max-width: 100%;
  height: 39px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.bv-prefooter-modern .bv-prefooter-card h6 {
  display: flex;
  min-height: 32px;
  margin: 0 0 22px;
  align-items: center;
  gap: 11px;
  color: #dff8f3;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.35;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.bv-prefooter-modern .bv-prefooter-card h6::before {
  width: 24px;
  height: 3px;
  margin: 0;
  border-radius: 999px;
  background: var(--bv-coral);
}

.bv-prefooter-modern .list-xs {
  display: grid;
  gap: 11px;
}

.bv-prefooter-modern .list-xs .bv-prefooter-contact-item,
.bv-prefooter-modern .list-xs .bv-prefooter-contact-item + .bv-prefooter-contact-item {
  margin: 0;
  padding: 13px;
  border: 1px solid rgba(255, 255, 255, .085);
  border-radius: 17px;
  background: rgba(255, 255, 255, .035);
  transition: border-color .25s ease, background .25s ease, transform .3s var(--bv-ease);
}

.bv-prefooter-modern .bv-prefooter-contact-item .unit {
  display: flex;
  align-items: center;
}

.bv-prefooter-modern .bv-prefooter-contact-item .unit-left {
  display: grid;
  width: 38px;
  height: 38px;
  min-width: 38px;
  margin: 0 12px 0 0;
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 13px;
  color: #bde9e4;
  background: rgba(255, 255, 255, .06);
  place-items: center;
}

.bv-prefooter-modern .bv-prefooter-contact-item .unit-left .icon {
  color: #bde9e4 !important;
  font-size: 19px;
  line-height: 1;
}

.bv-prefooter-modern .bv-prefooter-contact-item .unit-left img {
  width: 20px;
  height: 20px;
  margin: 0;
  object-fit: contain;
}

.bv-prefooter-modern .bv-prefooter-contact-item .unit-body,
.bv-prefooter-modern .bv-prefooter-contact-item .unit-body p {
  min-width: 0;
  margin: 0;
  color: rgba(237, 247, 246, .78);
  font-size: 14px;
  line-height: 1.58;
  overflow-wrap: anywhere;
}

.bv-prefooter-modern .bv-prefooter-contact-item a,
.bv-prefooter-modern .bv-prefooter-contact-item a.link-primary {
  color: #ccefeb !important;
  text-decoration: none;
  text-underline-offset: 3px;
}

.bv-prefooter-modern .bv-prefooter-contact-item a:hover,
.bv-prefooter-modern .bv-prefooter-contact-item a:focus-visible,
.bv-prefooter-modern .bv-prefooter-contact-item a.link-primary:hover,
.bv-prefooter-modern .bv-prefooter-contact-item a.link-primary:focus-visible {
  color: #fff !important;
  text-decoration: underline;
  text-decoration-color: var(--bv-coral);
}

.bv-prefooter-socials {
  display: flex;
  margin-top: 18px;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
}

.bv-prefooter-social-link {
  position: relative;
  display: grid;
  width: 50px;
  height: 50px;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .11);
  border-radius: 16px;
  background: rgba(255, 255, 255, .055);
  cursor: pointer;
  isolation: isolate;
  place-items: center;
  -webkit-tap-highlight-color: transparent;
  transition: border-color .25s ease, background .25s ease, box-shadow .25s ease, transform .3s var(--bv-ease);
}

.bv-prefooter-modern .bv-prefooter-social-link img[src*="logo-instagram"],
.bv-prefooter-modern .bv-prefooter-social-link img[src*="logo-facebook"] {
  display: block;
  width: 32px;
  height: 32px;
  margin: 0;
  border: 0;
  border-radius: 10px;
  box-shadow: none;
  pointer-events: none;
  transform: none !important;
  transition: none;
}

.bv-prefooter-modern .bv-prefooter-social-link:hover,
.bv-prefooter-modern .bv-prefooter-social-link:focus-visible {
  border-color: rgba(108, 225, 216, .48);
  background: linear-gradient(145deg, rgba(54, 154, 158, .24), rgba(255, 255, 255, .105));
  box-shadow: 0 13px 28px rgba(0, 23, 37, .25), inset 0 1px 0 rgba(255, 255, 255, .13);
  transform: translateY(-3px) scale(1.02);
}

.bv-prefooter-modern .bv-prefooter-social-link--instagram:hover img,
.bv-prefooter-modern .bv-prefooter-social-link--instagram:focus-visible img {
  /* Cancel the legacy image-only hover so both networks animate solely
   * through their identical outer button. */
  box-shadow: none !important;
  transform: none !important;
}

@media (min-width: 768px) and (max-width: 1179.98px) {
  .bv-prefooter-modern .bv-prefooter-modern__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bv-prefooter-modern .bv-prefooter-modern__grid > .bv-prefooter-card--1 {
    grid-column: 1 / -1;
  }

  .bv-prefooter-highlights {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bv-prefooter-highlights li:last-child {
    grid-column: auto;
  }
}

@media (max-width: 767.98px) {
  .bv-prefooter-modern {
    padding: 68px 0 76px;
  }

  .bv-prefooter-modern__container {
    width: min(100% - 28px, 620px);
  }

  .bv-prefooter-modern .bv-prefooter-modern__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 13px;
  }

  .bv-prefooter-modern .bv-prefooter-modern__grid > .bv-prefooter-card,
.bv-prefooter-modern .bv-prefooter-modern__grid > .bv-prefooter-card--1 {
    min-height: 0;
    margin: 0;
    padding: 24px 20px;
    border-radius: 23px;
    grid-column: auto;
  }

  .bv-prefooter-modern .bv-prefooter-contact-item .unit-body,
.bv-prefooter-modern .bv-prefooter-contact-item .unit-body p {
    font-size: 14.5px;
  }
}

@media (max-width: 539.98px) {
  .bv-prefooter-highlights {
    grid-template-columns: minmax(0, 1fr);
  }

  .bv-prefooter-highlights li:last-child {
    grid-column: auto;
  }
}

@media (max-width: 359.98px) {
  .bv-prefooter-modern__container {
    width: calc(100% - 20px);
  }

  .bv-prefooter-modern .bv-prefooter-modern__grid > .bv-prefooter-card {
    padding: 22px 16px;
  }

  .bv-prefooter-brand > img {
    width: 56px;
    height: 52px;
  }

  .bv-prefooter-brand__copy strong {
    font-size: 19px;
  }

  .bv-prefooter-modern .list-xs .bv-prefooter-contact-item {
    padding: 11px;
  }

  .bv-prefooter-modern .bv-prefooter-contact-item .unit-left {
    width: 35px;
    height: 35px;
    min-width: 35px;
    margin-right: 10px;
  }
}

@media (hover: hover) and (pointer: fine) {
  .bv-prefooter-modern .bv-prefooter-modern__grid > .bv-prefooter-card:hover {
    border-color: rgba(189, 233, 228, .22);
    background-color: rgba(255, 255, 255, .072);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .07), 0 32px 82px rgba(1, 25, 32, .24);
    transform: translateY(-5px);
  }

  .bv-prefooter-modern .bv-prefooter-contact-item:hover {
    border-color: rgba(189, 233, 228, .18);
    background: rgba(255, 255, 255, .058);
    transform: translateX(3px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .bv-prefooter-modern .bv-prefooter-card,
.bv-prefooter-modern .bv-prefooter-contact-item,
.bv-prefooter-highlights a,
.bv-prefooter-highlights a::after,
.bv-prefooter-social-link {
    transition: none !important;
  }
}

/* Virtual tour and location: compact immersive split layout. */
.page > .bv-experience-map.object-wrap {
  position: relative;
  display: grid !important;
  min-height: 0;
  padding: clamp(54px, 5vw, 82px) max(clamp(22px, 4vw, 58px), calc((100vw - 1380px) / 2));
  overflow: hidden;
  align-items: stretch;
  grid-template-columns: minmax(320px, .78fr) minmax(0, 1.22fr);
  gap: clamp(20px, 2.4vw, 34px);
  background:
    radial-gradient(circle at 8% 14%, rgba(72, 199, 194, .16), transparent 25%),
    linear-gradient(135deg, #edf7f4 0%, #f7f2e9 54%, #edf6f2 100%) !important;
}

.page > .bv-experience-map.object-wrap::before,
.page > .bv-experience-map.object-wrap::after {
  position: absolute;
  width: clamp(220px, 23vw, 410px);
  height: clamp(220px, 23vw, 410px);
  border: 1px solid rgba(9, 113, 123, .45);
  border-radius: 50%;
  background: url("../images/logo.png?v=20260817-modern") center / 62% auto no-repeat;
  content: "";
  mix-blend-mode: multiply;
  opacity: .2;
  pointer-events: none;
}

.page > .bv-experience-map.object-wrap::before {
  top: -22%;
  left: -8%;
}

.page > .bv-experience-map.object-wrap::after {
  right: -7%;
  bottom: -29%;
}

.bv-experience-map > .bv-experience-map__panel.section-lg {
  position: relative;
  z-index: 1;
  display: flex;
  min-width: 0;
  min-height: 560px;
  margin: 0 !important;
  padding: 0;
  overflow: hidden;
  align-items: stretch;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 34px 12px 34px 34px !important;
  background:
    linear-gradient(150deg, rgba(255, 255, 255, .075), transparent 42%),
    linear-gradient(145deg, #063e4c 0%, #075868 55%, #087b7d 125%) !important;
  box-shadow: 0 30px 74px rgba(4, 49, 61, .2);
  color: #fff;
  isolation: isolate;
}

.bv-experience-map > .bv-experience-map__panel.section-lg::before {
  position: absolute;
  top: 0;
  right: clamp(28px, 5vw, 64px);
  width: clamp(86px, 9vw, 140px);
  height: 4px;
  border-radius: 0 0 8px 8px;
  background: linear-gradient(90deg, var(--bv-aqua), var(--bv-coral));
  content: "";
}

.bv-experience-map > .bv-experience-map__panel.section-lg::after {
  display: none;
  content: none;
}

.bv-experience-map > .bv-experience-map__panel.section-lg .container {
  position: relative;
  z-index: 1;
  display: flex;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: clamp(42px, 4.8vw, 68px) clamp(30px, 4vw, 56px);
  align-items: center;
}

.bv-experience-map > .bv-experience-map__panel .row,
.bv-experience-map > .bv-experience-map__panel .bv-experience-map__copy {
  width: 100%;
}

.bv-experience-map__copy {
  position: relative;
  z-index: 1;
  min-width: 0;
}

.bv-experience-map__badge {
  display: inline-flex;
  min-height: 38px;
  margin-bottom: clamp(24px, 3vw, 38px);
  padding: 6px 15px 6px 8px;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 999px;
  background: rgba(255, 255, 255, .105);
  color: rgba(255, 255, 255, .94);
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .1em;
  line-height: 1.25;
  text-transform: uppercase;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08);
}

.bv-experience-map__badge-mark,
.bv-experience-map__badge-icon {
  display: inline-flex;
  width: 25px;
  height: 25px;
  min-width: 25px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, .15);
  color: #fff;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: -.02em;
}

.bv-experience-map__badge-icon svg {
  width: 14px;
  height: 14px;
}

.bv-experience-map .bv-experience-map__eyebrow {
  max-width: 34em;
  margin: 0 0 14px;
  color: #9fe2dd;
  font-size: clamp(12px, 1vw, 14px);
  font-weight: 750;
  letter-spacing: .075em;
  line-height: 1.5;
  text-transform: uppercase;
}

.bv-experience-map .bv-experience-map__title {
  max-width: 9em;
  margin: 0;
  color: #fff;
  font-size: clamp(48px, 4.5vw, 72px);
  line-height: .98;
  letter-spacing: -.052em;
  text-wrap: balance;
}

.bv-experience-map .bv-experience-map__title + p,
.bv-experience-map .bv-experience-map__copy > p {
  max-width: 37em;
  margin-top: clamp(25px, 3vw, 38px);
  color: rgba(242, 251, 250, .82);
  font-size: clamp(16px, 1.35vw, 18px);
  line-height: 1.78;
}

.bv-experience-map__hint {
  display: flex;
  width: fit-content;
  max-width: 100%;
  min-height: 45px;
  margin-top: clamp(28px, 3vw, 42px);
  padding: 10px 16px;
  align-items: center;
  gap: 11px;
  border: 1px solid rgba(255, 255, 255, .15);
  border-radius: 14px;
  background: rgba(1, 34, 43, .22);
  color: rgba(255, 255, 255, .88);
  font-size: 13px;
  font-weight: 650;
  line-height: 1.45;
}

.bv-experience-map__hint-dot {
  position: relative;
  width: 9px;
  height: 9px;
  min-width: 9px;
  border-radius: 50%;
  background: #71d8ce;
  box-shadow: 0 0 0 5px rgba(113, 216, 206, .13);
}

.bv-experience-map > .bv-experience-map__media.object-wrap__body,
.bv-experience-map.bg-gray-lighter > .bv-experience-map__media.object-wrap__body {
  position: relative !important;
  z-index: 1;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  width: 100% !important;
  min-width: 0;
  min-height: 560px;
  margin: 0;
  overflow: hidden;
  border: 8px solid rgba(255, 255, 255, .86);
  border-radius: 12px 34px 34px 34px !important;
  background: #dce9e7;
  box-shadow: 0 30px 76px rgba(4, 49, 61, .18);
  transition: border-color .35s ease, box-shadow .45s var(--bv-ease), transform .45s var(--bv-ease);
  isolation: isolate;
}

.bv-experience-map > .bv-experience-map__media.object-wrap__body::after {
  position: absolute;
  z-index: 2;
  inset: 0;
  border: 1px solid rgba(6, 62, 76, .12);
  border-radius: 25px;
  content: "";
  pointer-events: none;
}

.bv-experience-map > .bv-experience-map__media iframe {
  position: absolute;
  inset: 0;
  display: block;
  width: 100% !important;
  height: 100% !important;
  min-height: 100%;
  border: 0;
  filter: saturate(.94) contrast(1.025);
}

.page > .bv-location-map.object-wrap {
  background:
    radial-gradient(circle at 92% 16%, rgba(244, 112, 96, .09), transparent 24%),
    linear-gradient(135deg, #f7f2e8 0%, #f8fbf8 48%, #eaf5f1 100%) !important;
}

.bv-location-map > .bv-experience-map__panel.section-lg {
  border-color: rgba(7, 75, 88, .1);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, .94), rgba(250, 247, 239, .88)),
    #fffdf8 !important;
  box-shadow: 0 28px 70px rgba(5, 56, 68, .12);
  color: var(--bv-ink);
}

.bv-location-map > .bv-experience-map__panel.section-lg::after {
  opacity: .035;
}

.bv-location-map .bv-experience-map__badge {
  border-color: rgba(7, 111, 120, .13);
  background: rgba(12, 135, 141, .075);
  color: #08747b;
}

.bv-location-map .bv-experience-map__badge-icon {
  background: rgba(12, 135, 141, .11);
  color: #08747b;
}

.bv-location-map .bv-experience-map__eyebrow {
  color: #08747b;
}

.bv-location-map .bv-experience-map__title {
  max-width: 12em;
  color: var(--bv-ink);
  font-size: clamp(37px, 3.5vw, 55px);
  line-height: 1.06;
  letter-spacing: -.045em;
}

.bv-location-map .bv-experience-map__title + p,
.bv-location-map .bv-experience-map__copy > p {
  color: #48646b;
  font-size: clamp(15.5px, 1.2vw, 17px);
  line-height: 1.72;
}

.bv-location-map .bv-experience-map__hint {
  border-color: rgba(7, 90, 100, .11);
  background: rgba(12, 135, 141, .07);
  color: #28545d;
}

@media (hover: hover) and (pointer: fine) {
  .bv-experience-map > .bv-experience-map__panel.section-lg:hover {
    border-color: rgba(115, 218, 209, .26);
    box-shadow: 0 36px 88px rgba(4, 49, 61, .24);
    transform: translateY(-4px);
  }

  .bv-experience-map > .bv-experience-map__media.object-wrap__body:hover {
    border-color: #fff;
    box-shadow: 0 38px 92px rgba(4, 49, 61, .22);
    transform: translateY(-4px);
  }
}

@media (max-width: 1099.98px) {
  .page > .bv-experience-map.object-wrap {
    padding: clamp(42px, 6vw, 68px) max(18px, calc((100vw - 880px) / 2));
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }

  .bv-experience-map > .bv-experience-map__panel.section-lg {
    min-height: 0;
    border-radius: 32px 12px 32px 32px !important;
  }

  .bv-experience-map > .bv-experience-map__panel.section-lg .container {
    padding: clamp(38px, 6vw, 58px);
  }

  .bv-experience-map .bv-experience-map__title {
    max-width: 12em;
  }

  .bv-location-map .bv-experience-map__title {
    max-width: 15em;
  }

  .bv-experience-map > .bv-experience-map__media.object-wrap__body,
.bv-experience-map.bg-gray-lighter > .bv-experience-map__media.object-wrap__body {
    min-height: clamp(410px, 62vw, 590px);
    border-radius: 12px 32px 32px 32px !important;
  }
}

@media (max-width: 767.98px) {
  .page > .bv-experience-map.object-wrap {
    padding: 42px 14px;
    gap: 14px;
  }

  .bv-experience-map > .bv-experience-map__panel.section-lg {
    border-radius: 27px 10px 27px 27px !important;
  }

  .bv-experience-map > .bv-experience-map__panel.section-lg::before {
    right: 24px;
    width: 82px;
  }

  .bv-experience-map > .bv-experience-map__panel.section-lg .container {
    width: 100%;
    padding: 34px 24px 36px;
  }

  .bv-experience-map__badge {
    min-height: 36px;
    margin-bottom: 27px;
    padding-right: 13px;
    font-size: 10.5px;
    letter-spacing: .085em;
  }

  .bv-experience-map .bv-experience-map__eyebrow {
    margin-bottom: 11px;
    font-size: 11.5px;
  }

  .bv-experience-map .bv-experience-map__title {
    max-width: none;
    font-size: clamp(39px, 11vw, 52px);
    line-height: 1;
  }

  .bv-location-map .bv-experience-map__title {
    font-size: clamp(32px, 8.8vw, 43px);
    line-height: 1.08;
  }

  .bv-experience-map .bv-experience-map__title + p,
.bv-experience-map .bv-experience-map__copy > p {
    margin-top: 24px;
    font-size: 15.5px;
    line-height: 1.7;
  }

  .bv-experience-map__hint {
    width: 100%;
    margin-top: 28px;
    padding: 11px 13px;
    font-size: 12px;
  }

  .bv-experience-map > .bv-experience-map__media.object-wrap__body,
.bv-experience-map.bg-gray-lighter > .bv-experience-map__media.object-wrap__body {
    width: 100% !important;
    min-height: clamp(310px, 76vw, 460px);
    margin: 0;
    border-width: 5px;
    border-radius: 10px 27px 27px 27px !important;
  }

  .bv-experience-map > .bv-experience-map__media.object-wrap__body::after {
    border-radius: 21px;
  }
}

@media (max-width: 399.98px) {
  .page > .bv-experience-map.object-wrap {
    padding-right: 10px;
    padding-left: 10px;
  }

  .bv-experience-map > .bv-experience-map__panel.section-lg .container {
    padding: 30px 19px 32px;
  }

  .bv-experience-map__badge {
    max-width: 100%;
    letter-spacing: .065em;
  }

  .bv-experience-map > .bv-experience-map__media.object-wrap__body,
.bv-experience-map.bg-gray-lighter > .bv-experience-map__media.object-wrap__body {
    min-height: 285px;
  }
}

@media (min-width: 720px) and (max-width: 1099.98px) and (orientation: landscape) and (max-height: 650px) {
  .page > .bv-virtual-tour.object-wrap {
    padding: 34px max(18px, calc((100vw - 1030px) / 2));
    grid-template-columns: minmax(280px, .8fr) minmax(0, 1.2fr);
    gap: 18px;
  }

  .bv-virtual-tour > .bv-experience-map__panel.section-lg .container {
    padding: 34px 28px;
  }

  .bv-virtual-tour .bv-experience-map__badge {
    margin-bottom: 22px;
  }

  .bv-virtual-tour .bv-experience-map__title {
    font-size: clamp(40px, 5.4vw, 54px);
  }

  .bv-virtual-tour .bv-experience-map__title + p,
.bv-virtual-tour .bv-experience-map__copy > p {
    margin-top: 21px;
    font-size: 14.5px;
    line-height: 1.62;
  }

  .bv-virtual-tour .bv-experience-map__hint {
    margin-top: 23px;
  }

  .bv-virtual-tour > .bv-experience-map__media.object-wrap__body {
    min-height: 430px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bv-experience-map > .bv-experience-map__panel.section-lg,
.bv-experience-map > .bv-experience-map__media.object-wrap__body {
    transition: none !important;
  }
}

/* RistoVittoria overview — editorial masthead and readable menu cards. */
.bv-restaurant-intro.section-lg {
  position: relative;
  padding-top: clamp(70px, 7vw, 110px);
  padding-bottom: clamp(82px, 8vw, 124px);
  overflow: hidden;
  background:
    radial-gradient(circle at 7% 9%, rgba(32, 182, 178, .16), transparent 27rem),
    radial-gradient(circle at 94% 28%, rgba(239, 112, 95, .12), transparent 26rem),
    linear-gradient(145deg, #f8f5ec, #eef6f3) !important;
}

.bv-restaurant-intro.section-lg::before {
  display: none;
  content: none;
}

.bv-restaurant-intro > .container {
  position: relative;
  z-index: 1;
  width: min(100% - 48px, 1320px);
  max-width: 1320px;
}

.bv-restaurant-intro > .container > .row:first-child {
  display: block;
  margin: 0;
}

.bv-restaurant-intro > .container > .row:first-child > .bv-restaurant-overview {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  text-align: left;
  flex: none;
}

.bv-restaurant-masthead {
  position: relative;
  display: grid;
  min-height: 390px;
  padding: 16px;
  overflow: hidden;
  align-items: stretch;
  grid-template-columns: minmax(235px, .72fr) minmax(0, 1.58fr);
  gap: 16px;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 42px 16px 42px 42px;
  color: #fff;
  background:
    radial-gradient(circle at 91% 9%, rgba(239, 112, 95, .22), transparent 24rem),
    radial-gradient(circle at 5% 100%, rgba(32, 182, 178, .2), transparent 23rem),
    linear-gradient(142deg, #063e4c 0%, #052e39 72%);
  box-shadow: 0 38px 92px rgba(4, 48, 60, .22);
  isolation: isolate;
}

.bv-restaurant-masthead::before {
  position: absolute;
  top: -150px;
  right: -110px;
  width: 360px;
  height: 360px;
  border: 1px solid rgba(255, 255, 255, .09);
  border-radius: 50%;
  box-shadow: 0 0 0 42px rgba(255, 255, 255, .025), 0 0 0 86px rgba(255, 255, 255, .018);
  content: "";
  pointer-events: none;
}

.bv-restaurant-masthead__brand {
  position: relative;
  z-index: 1;
  display: grid;
  min-width: 0;
  padding: clamp(25px, 3vw, 40px);
  border: 1px solid rgba(6, 62, 76, .08);
  border-radius: 29px 10px 29px 29px;
  background:
    radial-gradient(circle at 50% 50%,
      #f7f7f7 0 185px,
      rgba(247, 247, 247, .94) 220px,
      rgba(255, 253, 248, .58) 285px,
      transparent 360px),
    radial-gradient(circle at 50% 15%, rgba(32, 182, 178, .085), transparent 58%),
    linear-gradient(145deg, #f3faf7 0%, #fffdf8 56%, #f7f3ec 100%);
  place-items: center;
  box-shadow: inset 0 1px 0 #fff, 0 22px 54px rgba(1, 25, 32, .18);
}

.bv-restaurant-intro .bv-restaurant-masthead__logo,
.bv-restaurant-intro img.bv-restaurant-masthead__logo[src*="logo-ristorante"] {
  display: block;
  width: min(100%, 255px);
  height: auto;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  filter: none;
}

.bv-restaurant-masthead__copy {
  position: relative;
  z-index: 1;
  display: flex;
  min-width: 0;
  padding: clamp(34px, 4.8vw, 68px);
  align-items: flex-start;
  flex-direction: column;
  justify-content: center;
}

.bv-restaurant-masthead__eyebrow {
  display: inline-flex;
  margin-bottom: 19px;
  padding: 8px 13px;
  border: 1px solid rgba(154, 231, 223, .2);
  border-radius: 999px;
  color: #bfeee9;
  background: rgba(255, 255, 255, .075);
  font-size: 12.5px;
  font-weight: 780;
  letter-spacing: .11em;
  line-height: 1.35;
  text-transform: uppercase;
}

.bv-restaurant-intro .bv-restaurant-masthead__title {
  max-width: 13em;
  margin: 0;
  color: #fff;
  font-size: clamp(43px, 5vw, 72px);
  line-height: .99;
  letter-spacing: -.052em;
  text-wrap: balance;
}

.bv-restaurant-phone {
  display: inline-flex;
  max-width: 100%;
  min-height: 54px;
  margin-top: clamp(27px, 3vw, 38px);
  padding: 8px 18px 8px 9px;
  align-items: center;
  gap: 12px;
  border: 1px solid rgba(255, 255, 255, .19);
  border-radius: 17px;
  color: #fff;
  background: linear-gradient(135deg, #ef705f, #e85f54);
  font-size: 15px;
  line-height: 1.45;
  box-shadow: 0 18px 42px rgba(216, 77, 66, .28);
  transition: border-color .3s ease, box-shadow .35s ease, transform .35s var(--bv-ease);
}

.bv-restaurant-phone:hover,
.bv-restaurant-phone:focus-visible {
  color: #fff;
}

.bv-restaurant-phone__icon {
  display: grid;
  width: 36px;
  height: 36px;
  min-width: 36px;
  border-radius: 11px;
  color: #fff;
  background: rgba(255, 255, 255, .14);
  place-items: center;
}

.bv-restaurant-phone__icon svg {
  width: 18px;
  height: 18px;
}

.bv-restaurant-phone__copy {
  display: flex;
  min-width: 0;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 5px;
}

.bv-restaurant-phone__copy > span {
  color: rgba(255, 255, 255, .82);
  font-size: clamp(14px, .9vw, 15px);
}

.bv-restaurant-phone__copy strong {
  color: #fff;
  font-size: clamp(16px, 1vw, 17px);
  letter-spacing: .01em;
}

.bv-restaurant-intro .bv-restaurant-highlights {
  position: relative;
  z-index: 2;
  display: grid;
  width: calc(100% - clamp(30px, 6vw, 86px));
  margin: -34px auto 0;
  padding: 10px;
  border: 1px solid rgba(6, 79, 90, .1);
  border-radius: 30px;
  background: rgba(241, 248, 245, .88);
  box-shadow: 0 26px 68px rgba(4, 48, 60, .13), inset 0 1px 0 rgba(255, 255, 255, .92);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(9px, 1vw, 14px);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.bv-restaurant-intro .bv-restaurant-highlight {
  --bv-highlight-accent: #12989b;
  --bv-highlight-tint: rgba(32, 182, 178, .13);
  position: relative;
  display: flex;
  min-height: 138px;
  padding: 29px 30px 27px;
  overflow: hidden;
  border: 1px solid rgba(6, 79, 90, .08);
  border-radius: 22px;
  background:
    linear-gradient(135deg, var(--bv-highlight-tint), rgba(255, 255, 255, .97) 46%, #fffdf8 100%);
  box-shadow: 0 12px 30px rgba(4, 48, 60, .075), inset 0 1px 0 #fff;
  flex-direction: column;
  justify-content: center;
  transition: border-color .3s ease, box-shadow .4s ease, transform .4s var(--bv-ease);
}

.bv-restaurant-intro .bv-restaurant-highlight:nth-child(2) {
  --bv-highlight-accent: #cf584d;
  --bv-highlight-tint: rgba(239, 112, 95, .12);
}

.bv-restaurant-intro .bv-restaurant-highlight:nth-child(3) {
  --bv-highlight-accent: #b17c39;
  --bv-highlight-tint: rgba(216, 172, 103, .14);
}

.bv-restaurant-intro .bv-restaurant-highlight::before {
  position: absolute;
  top: 24px;
  bottom: 24px;
  left: 0;
  width: 4px;
  border-radius: 0 6px 6px 0;
  background: var(--bv-highlight-accent);
  content: "";
  transform: scaleY(.72);
  transition: transform .4s var(--bv-ease);
}

.bv-restaurant-intro .bv-restaurant-highlight strong {
  color: var(--bv-sea);
  font-family: inherit;
  font-size: clamp(25px, 2.1vw, 31px);
  font-weight: 780;
  line-height: 1.12;
  letter-spacing: -.03em;
}

.bv-restaurant-intro .bv-restaurant-highlight span {
  margin-top: 11px;
  color: #516b70;
  font-size: 12px;
  font-weight: 760;
  line-height: 1.5;
  letter-spacing: .075em;
  text-transform: uppercase;
}

.bv-restaurant-content {
  margin-top: clamp(42px, 5vw, 68px);
}

.bv-restaurant-lead {
  position: relative;
  display: grid;
  padding: clamp(34px, 4.6vw, 62px);
  overflow: hidden;
  align-items: center;
  grid-template-columns: minmax(250px, .78fr) minmax(0, 1.22fr);
  gap: clamp(28px, 5vw, 72px);
  border: 1px solid rgba(7, 77, 88, .09);
  border-radius: 18px 44px 18px 44px;
  background:
    radial-gradient(circle at 100% 0, rgba(32, 182, 178, .11), transparent 25rem),
    rgba(255, 253, 249, .92);
  box-shadow: 0 28px 68px rgba(4, 48, 60, .105);
}

.bv-restaurant-lead::before {
  position: absolute;
  top: 0;
  left: clamp(34px, 5vw, 66px);
  width: clamp(84px, 9vw, 138px);
  height: 4px;
  border-radius: 0 0 8px 8px;
  background: linear-gradient(90deg, var(--bv-sea-bright), var(--bv-coral));
  content: "";
}

.bv-restaurant-intro .bv-restaurant-lead__title {
  margin: 0;
  color: var(--bv-sea);
  font-size: clamp(36px, 4.1vw, 58px);
  line-height: 1.02;
  letter-spacing: -.046em;
  text-wrap: balance;
}

.bv-restaurant-lead__body {
  position: relative;
  min-width: 0;
  padding-left: clamp(24px, 3vw, 40px);
  border-left: 1px solid rgba(9, 117, 125, .18);
}

.bv-restaurant-lead__text {
  margin: 0;
  color: #48646b;
  font-size: clamp(18px, 1.6vw, 22px);
  line-height: 1.72;
}

.bv-restaurant-lead-features {
  display: grid;
  margin-top: clamp(20px, 2.4vw, 28px);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.bv-restaurant-lead-features > span {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 48px;
  padding: 11px 13px 11px 36px;
  border: 1px solid rgba(8, 104, 113, .1);
  border-radius: 15px;
  align-items: center;
  color: #315b63;
  background: rgba(238, 247, 244, .72);
  font-size: clamp(12.5px, 1vw, 14px);
  font-weight: 720;
  line-height: 1.42;
  overflow-wrap: anywhere;
}

.bv-restaurant-lead-features > span::before {
  position: absolute;
  top: 50%;
  left: 16px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--bv-sea-bright), var(--bv-coral));
  box-shadow: 0 0 0 4px rgba(32, 182, 178, .09);
  content: "";
  transform: translateY(-50%);
}

.bv-restaurant-menu-grid {
  display: grid;
  margin-top: clamp(22px, 3vw, 34px);
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(16px, 2vw, 24px);
}

.bv-restaurant-menu-card {
  position: relative;
  min-width: 0;
  padding: clamp(30px, 3.4vw, 44px);
  overflow: hidden;
  border: 1px solid rgba(6, 79, 90, .1);
  border-radius: 31px;
  background: rgba(255, 253, 249, .97);
  box-shadow: 0 26px 64px rgba(4, 48, 60, .11);
  transition: border-color .3s ease, box-shadow .42s ease, transform .42s var(--bv-ease);
}

.bv-restaurant-menu-card::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 5px;
  background: linear-gradient(90deg, #20b6b2, #82d4cc);
  content: "";
}

.bv-restaurant-menu-card--1 {
  grid-column: span 5;
}

.bv-restaurant-menu-card--2 {
  grid-column: span 7;
}

.bv-restaurant-menu-card--2::before {
  background: linear-gradient(90deg, #ef705f, #f5a374);
}

.bv-restaurant-menu-card--3 {
  grid-column: 1 / -1;
  background:
    radial-gradient(circle at 95% 0, rgba(239, 112, 95, .09), transparent 22rem),
    rgba(255, 253, 249, .97);
}

.bv-restaurant-menu-card--3::before {
  background: linear-gradient(90deg, #20b6b2 0%, #ef705f 52%, #e5b972 100%);
}

.bv-restaurant-menu-card__header {
  margin-bottom: 18px;
}

.bv-restaurant-menu-card__brand {
  display: block;
  margin-bottom: 11px;
  color: #0b898d;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .14em;
  line-height: 1.3;
  text-transform: uppercase;
}

.bv-restaurant-menu-card__title {
  margin: 0;
  color: var(--bv-ink);
  font-size: clamp(27px, 3vw, 39px);
  line-height: 1.06;
  letter-spacing: -.038em;
  text-wrap: balance;
}

.bv-restaurant-menu-card__description {
  max-width: 50em;
  margin: -4px 0 24px;
  color: #60787d;
  font-size: clamp(16px, 1.2vw, 18px);
  line-height: 1.68;
}

.bv-restaurant-menu-list {
  display: grid;
  margin: 0;
  padding: 0;
  list-style: none;
  gap: 10px;
}

.bv-restaurant-menu-card--3 .bv-restaurant-menu-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.bv-restaurant-menu-list__item {
  position: relative;
  min-width: 0;
  margin: 0;
  padding: 13px 14px 13px 38px;
  border: 1px solid rgba(8, 104, 113, .085);
  border-radius: 15px;
  color: #48636a;
  background: rgba(238, 247, 244, .65);
  font-size: clamp(16px, 1.1vw, 17.5px);
  line-height: 1.6;
}

.bv-restaurant-menu-list__item::before {
  position: absolute;
  top: 20px;
  left: 17px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--bv-sea-bright), var(--bv-coral));
  box-shadow: 0 0 0 4px rgba(32, 182, 178, .09);
  content: "";
}

.bv-restaurant-menu-list__item strong {
  color: #083f4d;
  font-weight: 780;
}

@media (hover: hover) and (pointer: fine) {
  .bv-restaurant-phone:hover {
    border-color: rgba(255, 255, 255, .38);
    box-shadow: 0 24px 54px rgba(216, 77, 66, .36);
    transform: translateY(-3px);
  }

  .bv-restaurant-intro .bv-restaurant-highlight:hover,
.bv-restaurant-menu-card:hover {
    border-color: rgba(11, 137, 141, .2);
    box-shadow: 0 34px 78px rgba(4, 48, 60, .15);
    transform: translateY(-5px);
  }

  .bv-restaurant-intro .bv-restaurant-highlight:hover::before {
    transform: scaleY(1);
  }
}

@media (max-width: 1099.98px) {
  .bv-restaurant-masthead {
    min-height: 360px;
    grid-template-columns: minmax(210px, .66fr) minmax(0, 1.34fr);
  }

  .bv-restaurant-masthead__copy {
    padding: 40px;
  }

  .bv-restaurant-menu-card--1,
.bv-restaurant-menu-card--2 {
    grid-column: span 6;
  }

  .bv-restaurant-menu-card--3 .bv-restaurant-menu-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 899.98px) {
  .bv-restaurant-intro > .container {
    width: min(100% - 32px, 760px);
  }

  .bv-restaurant-masthead {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
  }

  .bv-restaurant-masthead__brand {
    min-height: 210px;
    border-radius: 28px 10px 28px 28px;
  }

  .bv-restaurant-intro .bv-restaurant-masthead__logo,
.bv-restaurant-intro img.bv-restaurant-masthead__logo[src*="logo-ristorante"] {
    width: min(240px, 62vw);
  }

  .bv-restaurant-masthead__copy {
    padding: 42px 34px 46px;
  }

  .bv-restaurant-intro .bv-restaurant-highlights {
    width: calc(100% - 24px);
    padding: 8px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }

  .bv-restaurant-intro .bv-restaurant-highlight {
    min-height: 122px;
    padding: 24px 20px 22px;
  }

  .bv-restaurant-lead {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }

  .bv-restaurant-lead__body {
    padding-top: 22px;
    padding-left: 0;
    border-top: 1px solid rgba(9, 117, 125, .16);
    border-left: 0;
  }

  .bv-restaurant-menu-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .bv-restaurant-menu-card--1,
.bv-restaurant-menu-card--2,
.bv-restaurant-menu-card--3 {
    grid-column: auto;
  }
}

@media (max-width: 639.98px) {
  .bv-restaurant-intro.section-lg {
    padding-top: 54px;
    padding-bottom: 78px;
  }

  .bv-restaurant-intro > .container {
    width: calc(100% - 24px);
  }

  .bv-restaurant-masthead {
    padding: 9px;
    gap: 9px;
    border-radius: 29px 11px 29px 29px;
  }

  .bv-restaurant-masthead__brand {
    min-height: 175px;
    padding: 28px;
    border-radius: 22px 8px 22px 22px;
  }

  .bv-restaurant-masthead__copy {
    padding: 31px 22px 36px;
  }

  .bv-restaurant-masthead__eyebrow {
    margin-bottom: 15px;
    font-size: 11.5px;
  }

  .bv-restaurant-intro .bv-restaurant-masthead__title {
    font-size: clamp(37px, 11.5vw, 51px);
  }

  .bv-restaurant-phone {
    width: 100%;
    min-height: 64px;
    margin-top: 25px;
    padding: 10px 14px 10px 10px;
  }

  .bv-restaurant-phone__copy {
    align-items: flex-start;
    flex-direction: column;
    gap: 1px;
  }

  .bv-restaurant-intro .bv-restaurant-highlights {
    width: calc(100% - 20px);
    margin-top: -20px;
    padding: 7px;
    border-radius: 24px;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }

  .bv-restaurant-intro .bv-restaurant-highlight {
    min-height: 102px;
    padding: 22px 24px 20px;
    border-radius: 18px;
  }

  .bv-restaurant-intro .bv-restaurant-highlight strong {
    font-size: 23px;
  }

  .bv-restaurant-content {
    margin-top: 36px;
  }

  .bv-restaurant-lead {
    padding: 31px 23px;
    border-radius: 14px 29px 14px 29px;
  }

  .bv-restaurant-intro .bv-restaurant-lead__title {
    font-size: clamp(32px, 9.5vw, 43px);
  }

  .bv-restaurant-lead__text {
    font-size: 17.5px;
    line-height: 1.7;
  }

  .bv-restaurant-lead-features {
    grid-template-columns: minmax(0, 1fr);
  }

  .bv-restaurant-lead-features > span {
    min-height: 44px;
  }

  .bv-restaurant-menu-grid {
    margin-top: 14px;
    gap: 14px;
  }

  .bv-restaurant-menu-card {
    padding: 28px 20px 23px;
    border-radius: 24px;
  }

  .bv-restaurant-menu-card__title {
    font-size: 29px;
  }

  .bv-restaurant-menu-card__description {
    font-size: 16px;
  }

  .bv-restaurant-menu-card--3 .bv-restaurant-menu-list {
    grid-template-columns: minmax(0, 1fr);
  }

  .bv-restaurant-menu-list__item {
    padding: 13px 13px 13px 37px;
    font-size: 15.5px;
  }

  .bv-restaurant-menu-list__item::before {
    top: 21px;
    left: 16px;
  }
}

@media (max-width: 359.98px) {
  .bv-restaurant-intro > .container {
    width: calc(100% - 16px);
  }

  .bv-restaurant-masthead__copy {
    padding-right: 17px;
    padding-left: 17px;
  }

  .bv-restaurant-phone {
    align-items: flex-start;
  }

  .bv-restaurant-phone__copy > span {
    font-size: 13.5px;
  }

  .bv-restaurant-menu-card {
    padding-right: 16px;
    padding-left: 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bv-restaurant-phone,
.bv-restaurant-intro .bv-restaurant-highlight,
.bv-restaurant-intro .bv-restaurant-highlight::before,
.bv-restaurant-menu-card {
    transition: none !important;
  }
}

/* Beach overview — image-led introduction and responsive service cards. */
.bv-page-spiaggia .page > .bv-beach-overview.section-lg {
  position: relative;
  padding: clamp(72px, 7vw, 112px) 0 clamp(82px, 8vw, 124px);
  overflow: hidden;
  background:
    radial-gradient(circle at 6% 12%, rgba(32, 182, 178, .2), transparent 28rem),
    radial-gradient(circle at 94% 84%, rgba(239, 112, 95, .11), transparent 26rem),
    linear-gradient(145deg, #edf7f4, #f7f2e8 60%, #eef6f3) !important;
}

.bv-page-spiaggia .page > .bv-beach-overview.section-lg::before,
.bv-page-spiaggia .page > .bv-beach-overview.section-lg::after {
  position: absolute;
  border: 1px solid rgba(7, 96, 106, .075);
  border-radius: 50%;
  background:
    linear-gradient(rgba(255, 255, 255, .8), rgba(255, 255, 255, .8)),
    url("../images/logo.png?v=20260817-modern") center / 58% auto no-repeat;
  content: "";
  mix-blend-mode: multiply;
  pointer-events: none;
}

.bv-page-spiaggia .page > .bv-beach-overview.section-lg::before {
  top: -180px;
  left: -140px;
  width: 420px;
  height: 420px;
  box-shadow: 0 0 0 54px rgba(7, 96, 106, .018), 0 0 0 108px rgba(7, 96, 106, .012);
}

.bv-page-spiaggia .page > .bv-beach-overview.section-lg::after {
  right: -150px;
  bottom: -230px;
  width: 470px;
  height: 470px;
}

.bv-page-spiaggia .bv-beach-overview > .bv-beach-overview__container.container,
.bv-page-spiaggia .page > .bv-beach-overview.section-lg.bg-default.text-center > .bv-beach-overview__container {
  position: relative;
  z-index: 1;
  width: min(100% - 48px, 1360px);
  max-width: 1360px;
  margin: 0 auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  text-align: left;
}

.bv-beach-overview__row {
  display: block;
  margin: 0;
}

.bv-beach-overview__row > .bv-beach-overview__column {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  flex: none;
}

.bv-beach-showcase {
  position: relative;
  display: grid;
  min-height: 570px;
  padding: 16px;
  overflow: hidden;
  align-items: stretch;
  grid-template-columns: minmax(330px, .88fr) minmax(0, 1.12fr);
  gap: 16px;
  border: 1px solid rgba(255, 255, 255, .15);
  border-radius: 44px 16px 44px 44px;
  background:
    radial-gradient(circle at 5% 100%, rgba(32, 182, 178, .23), transparent 24rem),
    radial-gradient(circle at 96% 0, rgba(239, 112, 95, .18), transparent 22rem),
    linear-gradient(145deg, #063e4c, #032c37);
  box-shadow: 0 38px 94px rgba(4, 48, 60, .23);
  isolation: isolate;
}

.bv-beach-showcase__copy {
  position: relative;
  z-index: 1;
  display: flex;
  min-width: 0;
  padding: clamp(38px, 5vw, 70px);
  align-items: flex-start;
  flex-direction: column;
  justify-content: center;
}

.bv-page-spiaggia .bv-beach-showcase__eyebrow {
  display: inline-flex;
  max-width: 38em;
  margin: 0 0 clamp(22px, 3vw, 34px);
  padding: 10px 17px;
  align-items: center;
  align-self: flex-start;
  border: 1px solid rgba(160, 235, 227, .2);
  border-radius: 999px;
  color: #bdece7;
  background: linear-gradient(135deg, rgba(255, 255, 255, .09), rgba(255, 255, 255, .055));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .055), 0 10px 28px rgba(0, 22, 29, .08);
  font-size: clamp(10px, .95vw, 12px);
  font-weight: 780;
  letter-spacing: .09em;
  line-height: 1.45;
  text-align: left;
  text-wrap: balance;
  text-transform: uppercase;
}

.bv-page-spiaggia .bv-beach-showcase__eyebrow::before {
  display: none;
  content: none;
}

.bv-page-spiaggia .bv-beach-showcase__title {
  max-width: 10em;
  margin: 0;
  color: #fff;
  font-size: clamp(48px, 5.5vw, 78px);
  line-height: .97;
  letter-spacing: -.055em;
  text-wrap: balance;
}

.bv-beach-showcase__media {
  position: relative;
  z-index: 1;
  min-width: 0;
  min-height: 538px;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .21);
  border-radius: 12px 31px 31px 31px;
  background: #dce9e7;
  box-shadow: 0 28px 68px rgba(1, 25, 32, .3);
}

.bv-beach-showcase__media::after {
  position: absolute;
  inset: 0;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: inherit;
  background: linear-gradient(180deg, transparent 62%, rgba(2, 31, 39, .38));
  content: "";
  pointer-events: none;
}

.bv-beach-showcase__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(1.02) contrast(1.025);
  transition: filter .5s ease, transform .8s var(--bv-ease);
}

.bv-beach-showcase__media figcaption {
  position: absolute;
  z-index: 2;
  right: 20px;
  bottom: 20px;
  display: inline-flex;
  min-height: 43px;
  padding: 10px 15px;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 14px;
  color: #fff;
  background: rgba(3, 43, 53, .68);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .08em;
  line-height: 1.3;
  text-transform: uppercase;
  box-shadow: 0 16px 36px rgba(1, 25, 32, .25);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.bv-beach-showcase__caption-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #75ddd3;
  box-shadow: 0 0 0 5px rgba(117, 221, 211, .13);
}

.bv-beach-service-grid {
  display: grid;
  margin-top: clamp(22px, 3vw, 34px);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(14px, 2vw, 22px);
}

.bv-beach-service-card {
  position: relative;
  min-width: 0;
  min-height: 260px;
  padding: clamp(28px, 3.2vw, 42px);
  overflow: hidden;
  border: 1px solid rgba(6, 79, 90, .095);
  border-radius: 30px;
  background: rgba(255, 253, 249, .96);
  box-shadow: 0 26px 64px rgba(4, 48, 60, .11);
  transition: border-color .32s ease, box-shadow .42s ease, transform .42s var(--bv-ease);
}

.bv-beach-service-card::after {
  display: none;
  content: none;
}

.bv-beach-service-card--2 {
  background:
    radial-gradient(circle at 100% 0, rgba(32, 182, 178, .11), transparent 19rem),
    rgba(255, 253, 249, .97);
}

.bv-beach-service-card--3 {
  background:
    radial-gradient(circle at 100% 0, rgba(239, 112, 95, .1), transparent 18rem),
    rgba(255, 253, 249, .97);
}

.bv-beach-service-card__header {
  position: relative;
  z-index: 1;
  display: flex;
  margin-bottom: 20px;
  align-items: center;
  gap: 13px;
}

.bv-beach-service-card__marker {
  position: relative;
  width: 34px;
  height: 34px;
  min-width: 34px;
  border: 1px solid rgba(9, 132, 139, .13);
  border-radius: 11px;
  background: rgba(32, 182, 178, .09);
}

.bv-beach-service-card__marker::before,
.bv-beach-service-card__marker::after {
  position: absolute;
  top: 15px;
  left: 9px;
  width: 15px;
  height: 2px;
  border-radius: 2px;
  background: #0a8c91;
  content: "";
}

.bv-beach-service-card__marker::after {
  transform: rotate(90deg);
}

.bv-beach-service-card--2 .bv-beach-service-card__marker {
  background: rgba(239, 112, 95, .09);
}

.bv-beach-service-card--2 .bv-beach-service-card__marker::before,
.bv-beach-service-card--2 .bv-beach-service-card__marker::after {
  background: var(--bv-coral);
}

.bv-beach-service-card--3 .bv-beach-service-card__marker {
  border-radius: 50%;
  background: linear-gradient(145deg, rgba(32, 182, 178, .12), rgba(239, 112, 95, .1));
}

.bv-page-spiaggia .bv-beach-service-card__title {
  margin: 0;
  color: var(--bv-sea);
  font-size: clamp(22px, 2.1vw, 29px);
  line-height: 1.08;
  letter-spacing: -.032em;
  text-wrap: balance;
}

.bv-page-spiaggia .bv-beach-service-card__text {
  position: relative;
  z-index: 1;
  max-width: none;
  margin: 0;
  color: #4b666d;
  font-size: clamp(15.5px, 1.25vw, 17px);
  line-height: 1.75;
}

.bv-beach-overview__actions {
  display: flex;
  margin-top: clamp(28px, 4vw, 48px);
  justify-content: center;
}

.bv-page-spiaggia .bv-beach-overview__cta.button {
  display: inline-flex;
  min-height: 58px;
  margin: 0;
  padding: 12px 13px 12px 25px;
  align-items: center;
  justify-content: center;
  gap: 17px;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 18px;
  color: #fff;
  background: linear-gradient(135deg, #0b9197, #076574);
  box-shadow: 0 20px 46px rgba(5, 88, 99, .22);
  transition: border-color .3s ease, box-shadow .36s ease, transform .36s var(--bv-ease);
}

.bv-beach-overview__cta-icon {
  display: grid;
  width: 34px;
  height: 34px;
  border-radius: 11px;
  color: #fff;
  background: rgba(255, 255, 255, .13);
  place-items: center;
}

.bv-beach-overview__cta-icon svg {
  width: 18px;
  height: 18px;
}

.bv-page-spiaggia .bv-beach-overview__cta.button::after {
  display: none;
  content: none;
}

.bv-beach-overview__cta-icon {
  transition: transform .3s var(--bv-ease, cubic-bezier(.2, .8, .2, 1));
}

.bv-beach-overview__cta:hover .bv-beach-overview__cta-icon,
.bv-beach-overview__cta:focus-visible .bv-beach-overview__cta-icon {
  transform: translateX(3px);
}

@media (hover: hover) and (pointer: fine) {
  .bv-beach-showcase__media:hover img {
    filter: saturate(1.08) contrast(1.03);
    transform: scale(1.035);
  }

  .bv-beach-service-card:hover {
    border-color: rgba(10, 140, 145, .2);
    box-shadow: 0 34px 80px rgba(4, 48, 60, .15);
    transform: translateY(-6px);
  }

  .bv-page-spiaggia .bv-beach-overview__cta.button:hover {
    border-color: rgba(255, 255, 255, .34);
    color: #fff;
    box-shadow: 0 27px 58px rgba(5, 88, 99, .3);
    transform: translateY(-4px);
  }
}

@media (max-width: 1099.98px) {
  .bv-beach-showcase {
    min-height: 530px;
    grid-template-columns: minmax(300px, .82fr) minmax(0, 1.18fr);
  }

  .bv-beach-showcase__copy {
    padding: 42px 34px;
  }

  .bv-page-spiaggia .bv-beach-showcase__title {
    font-size: clamp(46px, 6vw, 65px);
  }

  .bv-beach-showcase__media {
    min-height: 498px;
  }

  .bv-beach-service-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bv-beach-service-card--2 {
    grid-column: auto;
  }

  .bv-beach-service-card--3 {
    min-height: 0;
    grid-column: 1 / -1;
  }
}

@media (max-width: 819.98px) {
  .bv-page-spiaggia .bv-beach-overview > .bv-beach-overview__container.container,
.bv-page-spiaggia .page > .bv-beach-overview.section-lg.bg-default.text-center > .bv-beach-overview__container {
    width: min(100% - 32px, 720px);
  }

  .bv-beach-showcase {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
  }

  .bv-beach-showcase__copy {
    min-height: 420px;
    padding: 48px;
  }

  .bv-page-spiaggia .bv-beach-showcase__title {
    max-width: 11em;
    font-size: clamp(48px, 9vw, 68px);
  }

  .bv-beach-showcase__media {
    min-height: clamp(390px, 62vw, 510px);
    border-radius: 11px 28px 28px 28px;
  }

  .bv-beach-service-card {
    min-height: 245px;
  }
}

@media (max-width: 599.98px) {
  .bv-page-spiaggia .page > .bv-beach-overview.section-lg {
    padding-top: 52px;
    padding-bottom: 78px;
  }

  .bv-page-spiaggia .bv-beach-overview > .bv-beach-overview__container.container,
.bv-page-spiaggia .page > .bv-beach-overview.section-lg.bg-default.text-center > .bv-beach-overview__container {
    width: calc(100% - 24px);
  }

  .bv-beach-showcase {
    padding: 9px;
    gap: 9px;
    border-radius: 29px 10px 29px 29px;
  }

  .bv-beach-showcase__copy {
    min-height: 360px;
    padding: 36px 23px 40px;
  }

  .bv-page-spiaggia .bv-beach-showcase__eyebrow {
    margin-bottom: 22px;
    padding: 9px 14px;
    font-size: 9.5px;
    line-height: 1.5;
  }

  .bv-page-spiaggia .bv-beach-showcase__title {
    font-size: clamp(39px, 12.5vw, 53px);
    line-height: 1;
  }

  .bv-beach-showcase__media {
    min-height: clamp(300px, 78vw, 420px);
    border-radius: 9px 21px 21px 21px;
  }

  .bv-beach-showcase__media figcaption {
    right: 12px;
    bottom: 12px;
    min-height: 38px;
    padding: 8px 11px;
    font-size: 9.5px;
  }

  .bv-beach-service-grid {
    margin-top: 14px;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
  }

  .bv-beach-service-card,
.bv-beach-service-card--3 {
    min-height: 0;
    padding: 27px 22px 29px;
    border-radius: 23px;
    grid-column: auto;
  }

  .bv-beach-service-card__header {
    margin-bottom: 16px;
  }

  .bv-page-spiaggia .bv-beach-service-card__title {
    font-size: 24px;
  }

  .bv-page-spiaggia .bv-beach-service-card__text {
    font-size: 15px;
    line-height: 1.7;
  }

  .bv-beach-overview__actions {
    margin-top: 26px;
  }

  .bv-page-spiaggia .bv-beach-overview__cta.button {
    width: 100%;
    min-height: 58px;
    padding-left: 19px;
    justify-content: space-between;
    text-align: left;
  }
}

@media (max-width: 359.98px) {
  .bv-page-spiaggia .bv-beach-overview > .bv-beach-overview__container.container,
.bv-page-spiaggia .page > .bv-beach-overview.section-lg.bg-default.text-center > .bv-beach-overview__container {
    width: calc(100% - 16px);
  }

  .bv-beach-showcase__copy {
    min-height: 330px;
    padding-right: 18px;
    padding-left: 18px;
  }

  .bv-beach-service-card {
    padding-right: 17px;
    padding-left: 17px;
  }

  .bv-page-spiaggia .bv-beach-overview__cta.button {
    font-size: 11px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bv-beach-showcase__media img,
.bv-beach-service-card,
.bv-page-spiaggia .bv-beach-overview__cta.button {
    transition: none !important;
  }
}

/* Services overview — cinematic entertainment mosaic and story cards. */
.bv-page-servizi .page > .bv-services-overview.section-lg {
  position: relative;
  padding: clamp(86px, 8vw, 128px) 0 clamp(86px, 8vw, 126px);
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 7% 12%, rgba(32, 182, 178, .23), transparent 29rem),
    radial-gradient(circle at 96% 75%, rgba(239, 112, 95, .19), transparent 28rem),
    linear-gradient(145deg, #063e4c 0%, #032d38 58%, #022630 100%) !important;
  isolation: isolate;
}

.bv-page-servizi .page > .bv-services-overview.section-lg::before {
  display: none;
  content: none;
}

.bv-page-servizi .page > .bv-services-overview.section-lg::after {
  position: absolute;
  top: -250px;
  right: -190px;
  width: 520px;
  height: 520px;
  border: 1px solid rgba(255, 255, 255, .065);
  border-radius: 50%;
  box-shadow: 0 0 0 58px rgba(255, 255, 255, .014), 0 0 0 116px rgba(255, 255, 255, .009);
  content: "";
  pointer-events: none;
}

.bv-page-servizi .bv-services-overview > .bv-services-overview__container.container,
.bv-page-servizi .page > .bv-services-overview.section-lg.bg-default.text-center > .bv-services-overview__container {
  position: relative;
  z-index: 1;
  width: min(100% - 48px, 1380px);
  max-width: 1380px;
  margin: 0 auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  text-align: left;
}

.bv-services-overview__row {
  display: block;
  margin: 0;
}

.bv-services-overview__row > .bv-services-overview__column {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  flex: none;
}

.bv-services-showcase {
  position: relative;
  display: grid;
  min-height: 620px;
  align-items: stretch;
  grid-template-columns: minmax(350px, .82fr) minmax(0, 1.18fr);
  gap: clamp(22px, 3vw, 40px);
}

.bv-services-showcase__copy {
  position: relative;
  display: flex;
  min-width: 0;
  padding: clamp(38px, 5vw, 72px) clamp(12px, 2vw, 28px);
  align-items: flex-start;
  flex-direction: column;
  justify-content: center;
}

.bv-services-showcase__copy::before {
  position: absolute;
  top: 9%;
  left: 0;
  width: 4px;
  height: 82%;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--bv-sea-bright), var(--bv-coral), transparent);
  content: "";
  opacity: .7;
}

.bv-page-servizi .bv-services-showcase__eyebrow {
  display: inline-flex;
  max-width: 40em;
  margin: 0 0 clamp(24px, 3vw, 36px);
  padding: 9px 14px;
  border: 1px solid rgba(154, 232, 224, .2);
  border-radius: 999px;
  color: #c3efea;
  background: rgba(255, 255, 255, .07);
  font-size: clamp(10px, .95vw, 12px);
  font-weight: 780;
  letter-spacing: .09em;
  line-height: 1.45;
  text-transform: uppercase;
}

.bv-page-servizi .bv-services-showcase__title {
  max-width: 10.5em;
  margin: 0;
  color: #fff;
  font-size: clamp(50px, 5.6vw, 80px);
  line-height: .97;
  letter-spacing: -.056em;
  text-wrap: balance;
}

.bv-page-servizi .bv-services-showcase__cta.button {
  display: inline-flex;
  min-height: 58px;
  margin: clamp(34px, 4vw, 48px) 0 0;
  padding: 12px 13px 12px 24px;
  align-items: center;
  justify-content: center;
  gap: 16px;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 18px;
  color: #fff;
  background: linear-gradient(135deg, #ef705f, #e85f54);
  box-shadow: 0 21px 48px rgba(215, 76, 66, .3);
  transition: border-color .3s ease, box-shadow .38s ease, transform .38s var(--bv-ease);
}

.bv-services-showcase__cta-icon {
  display: grid;
  width: 34px;
  height: 34px;
  border-radius: 11px;
  color: #fff;
  background: rgba(255, 255, 255, .14);
  place-items: center;
}

.bv-services-showcase__cta-icon svg {
  width: 18px;
  height: 18px;
}

.bv-page-servizi .bv-services-showcase__cta.button::after {
  display: none;
  content: none;
}

.bv-services-showcase__cta-icon {
  transition: transform .3s var(--bv-ease, cubic-bezier(.2, .8, .2, 1));
}

.bv-services-showcase__cta:hover .bv-services-showcase__cta-icon,
.bv-services-showcase__cta:focus-visible .bv-services-showcase__cta-icon {
  transform: translateX(3px);
}

.bv-services-showcase__media {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 620px;
  padding: 11px;
  overflow: hidden;
  grid-template-columns: minmax(0, 1.18fr) minmax(190px, .82fr);
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 10px;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 42px 15px 42px 42px;
  background: rgba(255, 255, 255, .065);
  box-shadow: 0 36px 88px rgba(1, 25, 32, .32);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.bv-services-showcase__photo {
  position: relative;
  min-width: 0;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .13);
  border-radius: 26px;
  background: #0a4b58;
}

.bv-services-showcase__photo--1 {
  border-radius: 31px 11px 11px 31px;
  grid-row: 1 / -1;
}

.bv-services-showcase__photo--2 {
  border-radius: 11px 28px 11px 11px;
}

.bv-services-showcase__photo--3 {
  border-radius: 11px 11px 28px 11px;
}

.bv-services-showcase__photo::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 58%, rgba(1, 29, 37, .35));
  content: "";
  pointer-events: none;
}

.bv-services-showcase__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(1.02) contrast(1.025);
  transition: filter .5s ease, transform .8s var(--bv-ease);
}

.bv-services-showcase__photo--1 img {
  object-position: 52% center;
}

.bv-services-showcase__photo figcaption {
  position: absolute;
  z-index: 2;
  right: 18px;
  bottom: 18px;
  display: inline-flex;
  min-height: 42px;
  padding: 10px 14px;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(255, 255, 255, .21);
  border-radius: 14px;
  color: #fff;
  background: rgba(3, 43, 53, .7);
  font-size: 10.5px;
  font-weight: 760;
  letter-spacing: .08em;
  line-height: 1.3;
  text-transform: uppercase;
  box-shadow: 0 15px 34px rgba(1, 25, 32, .25);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.bv-services-showcase__caption-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #75ddd3;
  box-shadow: 0 0 0 5px rgba(117, 221, 211, .13);
}

.bv-services-story-grid {
  display: grid;
  margin-top: clamp(34px, 4vw, 54px);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(14px, 2vw, 22px);
}

.bv-services-story-card {
  position: relative;
  min-width: 0;
  min-height: 260px;
  padding: clamp(29px, 3.1vw, 42px);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .115);
  border-radius: 29px;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, .09), rgba(255, 255, 255, .045));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .04), 0 24px 58px rgba(1, 25, 32, .18);
  transition: border-color .32s ease, background-color .32s ease, box-shadow .42s ease, transform .42s var(--bv-ease);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.bv-services-story-card--1 {
  border-top-color: rgba(103, 219, 209, .46);
}

.bv-services-story-card--2 {
  border-top-color: rgba(239, 112, 95, .45);
}

.bv-services-story-card--3 {
  border-top-color: rgba(228, 185, 114, .42);
}

.bv-services-story-card__header {
  position: relative;
  z-index: 1;
  display: flex;
  margin-bottom: 21px;
  align-items: center;
  gap: 13px;
}

.bv-services-story-card__marker {
  position: relative;
  width: 34px;
  height: 34px;
  min-width: 34px;
  border: 1px solid rgba(159, 231, 224, .17);
  border-radius: 50%;
  background: rgba(117, 221, 211, .08);
}

.bv-services-story-card__marker::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #75ddd3;
  box-shadow: 0 0 0 5px rgba(117, 221, 211, .09);
  content: "";
  transform: translate(-50%, -50%);
}

.bv-services-story-card--2 .bv-services-story-card__marker::before {
  background: #ef8a79;
  box-shadow: 0 0 0 5px rgba(239, 138, 121, .09);
}

.bv-services-story-card--3 .bv-services-story-card__marker::before {
  background: #e4b972;
  box-shadow: 0 0 0 5px rgba(228, 185, 114, .09);
}

.bv-page-servizi .bv-services-story-card__title {
  margin: 0;
  color: #fff;
  font-size: clamp(21px, 2vw, 28px);
  line-height: 1.09;
  letter-spacing: -.03em;
  text-wrap: balance;
}

.bv-page-servizi .bv-services-story-card__text {
  position: relative;
  z-index: 1;
  max-width: none;
  margin: 0;
  color: rgba(229, 243, 241, .76);
  font-size: clamp(15px, 1.18vw, 16.5px);
  line-height: 1.75;
}

@media (hover: hover) and (pointer: fine) {
  .bv-services-showcase__photo:hover img {
    filter: saturate(1.09) contrast(1.03);
    transform: scale(1.04);
  }

  .bv-page-servizi .bv-services-showcase__cta.button:hover {
    border-color: rgba(255, 255, 255, .38);
    color: #fff;
    box-shadow: 0 28px 62px rgba(215, 76, 66, .38);
    transform: translateY(-4px);
  }

  .bv-services-story-card:hover {
    border-color: rgba(255, 255, 255, .2);
    background-color: rgba(255, 255, 255, .03);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06), 0 34px 76px rgba(1, 25, 32, .25);
    transform: translateY(-6px);
  }
}

@media (max-width: 1099.98px) {
  .bv-services-showcase {
    min-height: 570px;
    grid-template-columns: minmax(315px, .8fr) minmax(0, 1.2fr);
  }

  .bv-services-showcase__copy {
    padding: 42px 20px;
  }

  .bv-page-servizi .bv-services-showcase__title {
    font-size: clamp(47px, 6vw, 66px);
  }

  .bv-services-showcase__media {
    min-height: 570px;
    grid-template-columns: minmax(0, 1fr) minmax(160px, .78fr);
  }

  .bv-services-story-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bv-services-story-card--3 {
    min-height: 0;
    grid-column: 1 / -1;
  }
}

@media (max-width: 839.98px) {
  .bv-page-servizi .bv-services-overview > .bv-services-overview__container.container,
.bv-page-servizi .page > .bv-services-overview.section-lg.bg-default.text-center > .bv-services-overview__container {
    width: min(100% - 32px, 740px);
  }

  .bv-services-showcase {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
    gap: 26px;
  }

  .bv-services-showcase__copy {
    min-height: 460px;
    padding: 46px 42px;
  }

  .bv-page-servizi .bv-services-showcase__title {
    max-width: 12em;
    font-size: clamp(48px, 9vw, 69px);
  }

  .bv-services-showcase__media {
    min-height: 560px;
  }

  .bv-services-story-card {
    min-height: 240px;
  }
}

@media (max-width: 599.98px) {
  .bv-page-servizi .page > .bv-services-overview.section-lg {
    padding-top: 68px;
    padding-bottom: 78px;
  }

  .bv-page-servizi .bv-services-overview > .bv-services-overview__container.container,
.bv-page-servizi .page > .bv-services-overview.section-lg.bg-default.text-center > .bv-services-overview__container {
    width: calc(100% - 24px);
  }

  .bv-services-showcase {
    gap: 18px;
  }

  .bv-services-showcase__copy {
    min-height: 410px;
    padding: 38px 23px 42px;
  }

  .bv-services-showcase__copy::before {
    height: 76%;
  }

  .bv-page-servizi .bv-services-showcase__eyebrow {
    margin-bottom: 22px;
    padding: 8px 11px;
    font-size: 9.5px;
  }

  .bv-page-servizi .bv-services-showcase__title {
    font-size: clamp(39px, 12.5vw, 54px);
    line-height: 1;
  }

  .bv-page-servizi .bv-services-showcase__cta.button {
    width: 100%;
    min-height: 58px;
    margin-top: 29px;
    padding-left: 18px;
    justify-content: space-between;
    text-align: left;
  }

  .bv-services-showcase__media {
    min-height: 525px;
    padding: 8px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: minmax(0, 1.25fr) minmax(0, .75fr);
    gap: 7px;
    border-radius: 29px 10px 29px 29px;
  }

  .bv-services-showcase__photo--1 {
    border-radius: 21px 8px 8px 8px;
    grid-column: 1 / -1;
    grid-row: auto;
  }

  .bv-services-showcase__photo--2 {
    border-radius: 8px 8px 8px 21px;
  }

  .bv-services-showcase__photo--3 {
    border-radius: 8px 8px 21px 8px;
  }

  .bv-services-showcase__photo figcaption {
    right: 11px;
    bottom: 11px;
    min-height: 37px;
    padding: 8px 10px;
    font-size: 9px;
  }

  .bv-services-story-grid {
    margin-top: 22px;
    grid-template-columns: minmax(0, 1fr);
    gap: 11px;
  }

  .bv-services-story-card,
.bv-services-story-card--3 {
    min-height: 0;
    padding: 27px 22px 29px;
    border-radius: 23px;
    grid-column: auto;
  }

  .bv-services-story-card__header {
    margin-bottom: 16px;
  }

  .bv-page-servizi .bv-services-story-card__title {
    font-size: 24px;
  }

  .bv-page-servizi .bv-services-story-card__text {
    font-size: 15px;
    line-height: 1.7;
  }
}

@media (max-width: 359.98px) {
  .bv-page-servizi .bv-services-overview > .bv-services-overview__container.container,
.bv-page-servizi .page > .bv-services-overview.section-lg.bg-default.text-center > .bv-services-overview__container {
    width: calc(100% - 16px);
  }

  .bv-services-showcase__copy {
    padding-right: 18px;
    padding-left: 18px;
  }

  .bv-page-servizi .bv-services-showcase__cta.button {
    font-size: 11px;
  }

  .bv-services-story-card {
    padding-right: 17px;
    padding-left: 17px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bv-services-showcase__photo img,
.bv-page-servizi .bv-services-showcase__cta.button,
.bv-services-story-card {
    transition: none !important;
  }
}

/* Location map — useful address card,
compact information and clear route action. */
.page > .bv-location-map.bv-experience-map.object-wrap {
  padding-top: clamp(70px, 7vw, 104px);
  padding-bottom: clamp(76px, 7vw, 112px);
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(18px, 2vw, 28px);
  background:
    radial-gradient(circle at 5% 13%, rgba(32, 182, 178, .16), transparent 27rem),
    radial-gradient(circle at 94% 82%, rgba(239, 112, 95, .09), transparent 25rem),
    linear-gradient(135deg, #f6f1e7, #f5faf7 52%, #eaf5f1) !important;
}

.bv-location-map > .bv-experience-map__panel.section-lg {
  min-height: 0;
  border-color: rgba(7, 75, 88, .105);
  border-radius: 34px !important;
  background:
    radial-gradient(circle at 100% 0, rgba(32, 182, 178, .105), transparent 22rem),
    linear-gradient(145deg, rgba(255, 255, 255, .97), rgba(250, 247, 239, .92)),
    #fffdf8 !important;
  box-shadow: 0 32px 78px rgba(5, 56, 68, .13);
}

.bv-location-map > .bv-experience-map__panel.section-lg::before {
  right: auto;
  left: clamp(34px, 4vw, 58px);
  width: clamp(92px, 9vw, 136px);
}

.bv-location-map > .bv-experience-map__panel.section-lg::after {
  right: -25px;
  bottom: -20px;
  width: clamp(180px, 17vw, 255px);
  opacity: .04;
}

.bv-location-map > .bv-experience-map__panel.section-lg .container {
  padding: clamp(38px, 4vw, 54px) clamp(30px, 4vw, 54px);
}

.bv-location-map .bv-experience-map__badge {
  display: flex;
  width: max-content;
  max-width: 100%;
  margin-bottom: clamp(17px, 1.6vw, 22px);
}

.bv-location-map .bv-experience-map__badge > span:last-child {
  min-width: 0;
  overflow-wrap: anywhere;
}

.bv-location-map .bv-experience-map__eyebrow {
  display: flex;
  width: 100%;
  max-width: none;
  margin-bottom: 12px;
  align-items: flex-start;
  gap: 12px;
  clear: both;
  font-size: 11px;
}

.bv-location-map .bv-experience-map__eyebrow::before {
  width: 28px;
  min-width: 28px;
  margin: .68em 0 0;
  flex: 0 0 28px;
}

.bv-location-map .bv-experience-map__title {
  max-width: 15em;
  color: #073f4d;
  font-size: clamp(36px, 3vw, 50px);
  line-height: 1.055;
  letter-spacing: -.046em;
}

.bv-location-details {
  display: grid;
  margin-top: clamp(27px, 3vw, 38px);
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}

.bv-location-detail-card {
  position: relative;
  min-width: 0;
  padding: 20px 20px 20px 24px;
  overflow: hidden;
  border: 1px solid rgba(7, 97, 107, .09);
  border-radius: 18px;
  background: rgba(237, 247, 244, .7);
}

.bv-location-detail-card::before {
  position: absolute;
  top: 21px;
  bottom: 21px;
  left: 0;
  width: 3px;
  border-radius: 0 3px 3px 0;
  background: var(--bv-sea-bright);
  content: "";
}

.bv-location-detail-card--2 {
  background:
    radial-gradient(circle at 100% 0, rgba(239, 112, 95, .08), transparent 15rem),
    rgba(255, 249, 242, .78);
}

.bv-location-detail-card--2::before {
  background: var(--bv-coral);
}

.bv-location-detail-card__title {
  margin: 0 0 7px;
  color: #08777d;
  font-size: clamp(14.5px, 1vw, 16px);
  font-weight: 800;
  letter-spacing: .045em;
  line-height: 1.35;
  text-transform: uppercase;
}

.bv-location-detail-card--2 .bv-location-detail-card__title {
  color: #c95f53;
}

.bv-location-detail-card__text,
.bv-location-map .bv-experience-map__copy .bv-location-detail-card__text {
  max-width: none;
  margin: 0;
  color: #506a70;
  font-size: clamp(15.5px, 1.08vw, 17px);
  line-height: 1.66;
}

.bv-location-utility {
  display: grid;
  margin-top: 15px;
  grid-template-columns: minmax(0, 1fr);
  gap: 9px;
}

.bv-location-address,
.bv-location-route {
  display: flex;
  min-width: 0;
  min-height: 58px;
  padding: 10px 13px;
  align-items: center;
  border-radius: 17px;
}

.bv-location-address {
  gap: 12px;
  border: 1px solid rgba(7, 90, 100, .1);
  background: rgba(255, 255, 255, .76);
  box-shadow: 0 13px 30px rgba(5, 56, 68, .07);
}

.bv-location-address__icon {
  display: grid;
  width: 37px;
  height: 37px;
  min-width: 37px;
  border-radius: 12px;
  color: #087c82;
  background: rgba(32, 182, 178, .1);
  place-items: center;
}

.bv-location-address__icon svg {
  width: 18px;
  height: 18px;
}

.bv-location-address__copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 2px;
}

.bv-location-address__copy strong {
  color: #073f4d;
  font-size: 15.5px;
  line-height: 1.25;
}

.bv-location-address__copy > span {
  overflow-wrap: anywhere;
  color: #63787c;
  font-size: 13.5px;
  line-height: 1.42;
}

.bv-location-route {
  padding-left: 18px;
  justify-content: space-between;
  gap: 14px;
  border: 1px solid rgba(255, 255, 255, .2);
  color: #fff;
  background: linear-gradient(135deg, #08717a, #034b59);
  font-size: 14px;
  font-weight: 760;
  letter-spacing: .025em;
  line-height: 1.35;
  text-decoration: none;
  box-shadow: 0 17px 38px rgba(5, 88, 99, .2);
  transition: border-color .3s ease, box-shadow .36s ease, transform .36s var(--bv-ease);
}

.bv-location-route:link,
.bv-location-route:visited,
.bv-location-route:hover,
.bv-location-route:focus,
.bv-location-route:focus-visible,
.bv-location-route:active {
  color: #fff !important;
  text-decoration: none;
}

.bv-location-route:active {
  background: linear-gradient(135deg, #065f68, #023d49);
  box-shadow: 0 10px 24px rgba(3, 66, 77, .24);
}

.bv-location-route__icon {
  display: grid;
  width: 34px;
  height: 34px;
  min-width: 34px;
  border-radius: 11px;
  color: #fff;
  background: rgba(255, 255, 255, .13);
  place-items: center;
}

.bv-location-route__icon svg {
  width: 18px;
  height: 18px;
}

.bv-location-map .bv-experience-map__hint {
  width: 100%;
  min-height: 46px;
  margin-top: 10px;
  padding: 10px 14px;
  border-radius: 13px;
  font-size: 13.25px;
  line-height: 1.45;
}

.bv-location-map > .bv-experience-map__media.object-wrap__body,
.bv-location-map.bg-gray-lighter > .bv-experience-map__media.object-wrap__body {
  min-height: clamp(440px, 36vw, 560px);
  border-color: rgba(255, 255, 255, .94);
  border-radius: 34px !important;
  box-shadow: 0 32px 82px rgba(4, 49, 61, .19);
}

@media (min-width: 1100px) {
  .bv-location-map > .bv-experience-map__panel .row {
    margin: 0;
  }

  .bv-location-map .bv-experience-map__copy {
    /* The legacy .object-wrap column rule has greater selector specificity
     * and otherwise turns this layout back into a single vertical stack. */
    display: grid !important;
    width: 100% !important;
    max-width: none;
    min-width: 0;
    padding: 0;
    align-items: start;
    flex: none;
    grid-template-columns: minmax(360px, .95fr) minmax(0, 1.05fr);
    grid-template-rows: auto auto minmax(0, 1fr) auto auto;
    column-gap: clamp(34px, 4vw, 62px);
  }

  .page > .bv-location-map.bv-experience-map.object-wrap .bv-experience-map__title {
    max-width: none;
    font-size: clamp(36px, 2.6vw, 46px);
    line-height: 1.08;
  }

  .bv-location-map .bv-experience-map__badge {
    grid-column: 1;
    grid-row: 1;
  }

  .bv-location-map .bv-experience-map__eyebrow {
    grid-column: 1;
    grid-row: 2;
  }

  .bv-location-map .bv-experience-map__title {
    grid-column: 1;
    grid-row: 3;
  }

  .bv-location-map .bv-location-details {
    margin-top: 0;
    align-self: stretch;
    grid-column: 2;
    grid-row: 1 / 4;
    gap: 12px;
  }

  .bv-location-map .bv-location-utility {
    margin-top: clamp(24px, 2.4vw, 34px);
    grid-column: 1 / -1;
    grid-row: 4;
    grid-template-columns: minmax(0, 1.2fr) minmax(250px, .8fr);
    gap: 12px;
  }

  .bv-location-map .bv-experience-map__hint {
    margin-top: 12px;
    grid-column: 1 / -1;
    grid-row: 5;
  }
}

@media (hover: hover) and (pointer: fine) {
  .bv-location-route:hover {
    border-color: rgba(255, 255, 255, .37);
    box-shadow: 0 23px 52px rgba(5, 88, 99, .29);
    transform: translateY(-3px);
  }
}

@media (max-width: 1099.98px) {
  .page > .bv-location-map.bv-experience-map.object-wrap {
    padding: clamp(52px, 6vw, 76px) max(18px, calc((100vw - 880px) / 2));
    grid-template-columns: minmax(0, 1fr);
  }

  .bv-location-map > .bv-experience-map__panel.section-lg {
    min-height: 0;
  }

  .bv-location-map .bv-experience-map__title {
    max-width: 16em;
  }

  .bv-location-details {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bv-location-utility {
    grid-template-columns: minmax(0, 1.2fr) minmax(210px, .8fr);
  }

  .bv-location-map > .bv-experience-map__media.object-wrap__body,
.bv-location-map.bg-gray-lighter > .bv-experience-map__media.object-wrap__body {
    min-height: clamp(470px, 62vw, 590px);
  }
}

@media (max-width: 679.98px) {
  .page > .bv-location-map.bv-experience-map.object-wrap {
    padding: 45px 12px;
    gap: 13px;
  }

  .bv-location-map > .bv-experience-map__panel.section-lg {
    border-radius: 27px 10px 27px 27px !important;
  }

  .bv-location-map > .bv-experience-map__panel.section-lg .container {
    padding: 34px 22px 30px;
  }

  .bv-location-map .bv-experience-map__badge {
    margin-bottom: 24px;
  }

  .bv-location-map .bv-experience-map__eyebrow {
    font-size: 10px;
  }

  .bv-location-map .bv-experience-map__title {
    font-size: clamp(31px, 8.8vw, 42px);
    line-height: 1.075;
  }

  .bv-location-details,
.bv-location-utility {
    grid-template-columns: minmax(0, 1fr);
  }

  .bv-location-detail-card {
    padding: 18px 17px 18px 21px;
    border-radius: 16px;
  }

  .bv-location-detail-card__title {
    font-size: 15px;
  }

  .bv-location-detail-card__text,
.bv-location-map .bv-experience-map__copy .bv-location-detail-card__text {
    font-size: 15.5px;
    line-height: 1.66;
  }

  .bv-location-map > .bv-experience-map__media.object-wrap__body,
.bv-location-map.bg-gray-lighter > .bv-experience-map__media.object-wrap__body {
    min-height: clamp(320px, 82vw, 450px);
    border-width: 5px;
    border-radius: 10px 27px 27px 27px !important;
  }
}

@media (max-width: 359.98px) {
  .page > .bv-location-map.bv-experience-map.object-wrap {
    padding-right: 8px;
    padding-left: 8px;
  }

  .bv-location-map > .bv-experience-map__panel.section-lg .container {
    padding-right: 17px;
    padding-left: 17px;
  }

  .bv-location-address,
.bv-location-route {
    padding-right: 10px;
    padding-left: 10px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bv-location-route {
    transition: none !important;
  }
}

/* Shared services and beach galleries — compact photographic showcase. */
.page > .bv-gallery-showcase.bv-gallery-section {
  position: relative;
  padding-top: clamp(78px, 7.5vw, 112px) !important;
  padding-bottom: clamp(82px, 8vw, 124px) !important;
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(circle at 9% 12%, rgba(32, 182, 178, .25), transparent 28rem),
    radial-gradient(circle at 92% 82%, rgba(239, 112, 95, .14), transparent 27rem),
    linear-gradient(140deg, #032d38 0%, #064b58 53%, #073947 100%) !important;
}

.page > .bv-gallery-showcase::before {
  display: none;
  content: none;
}

.page > .bv-gallery-showcase::after {
  display: none;
  content: none;
}

.page > .bv-gallery-showcase > .bv-section-keyphrase {
  top: clamp(18px, 2.2vw, 28px);
  border-color: rgba(255, 255, 255, .13);
  border-left-color: var(--bv-coral);
  color: rgba(237, 249, 247, .78);
  background: rgba(2, 36, 45, .62);
  box-shadow: 0 14px 34px rgba(1, 25, 32, .18);
}

.page > .bv-gallery-showcase > .container {
  width: min(calc(100% - 56px), 1040px);
  max-width: 1040px;
}

.page > .bv-gallery-showcase > .container > .row {
  margin: 0;
}

.page > .bv-gallery-showcase > .container > .row > .bv-gallery-showcase__deck {
  position: relative;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: clamp(18px, 2.2vw, 28px);
  flex: 0 0 100%;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.bv-gallery-showcase .bv-gallery-showcase__header {
  display: grid;
  min-height: 98px;
  margin: 0;
  padding: 3px 5px clamp(18px, 2vw, 24px);
  align-items: end;
  grid-template-columns: minmax(0, 1fr) minmax(230px, .58fr);
  gap: 16px 36px;
  color: #fff;
}

.bv-gallery-showcase .bv-gallery-label__kicker {
  width: max-content;
  min-height: 31px;
  margin: 0 0 10px;
  padding: 7px 11px;
  border-color: rgba(255, 255, 255, .15);
  color: #b9ebe5;
  background: rgba(255, 255, 255, .075);
  font-size: 9.5px;
  letter-spacing: .095em;
  grid-column: 1;
}

.bv-gallery-showcase .bv-gallery-label__title {
  display: block;
  max-width: 740px;
  color: #fff;
  font-family: var(--bv-font-display);
  font-size: clamp(31px, 3.5vw, 49px);
  font-weight: 650;
  line-height: 1.02;
  letter-spacing: -.045em;
  grid-column: 1;
}

.bv-gallery-showcase__lead {
  max-width: 390px;
  padding: 0 5px 4px 24px;
  border-left: 2px solid rgba(32, 182, 178, .48);
  color: rgba(226, 243, 241, .7);
  font-size: clamp(12.5px, 1vw, 14px);
  line-height: 1.62;
  grid-column: 2;
  grid-row: 1 / span 2;
}

.bv-gallery-showcase .bv-gallery-showcase__carousel.owl-carousel {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 8px;
  overflow: visible;
  border: 1px solid rgba(255, 255, 255, .17);
  border-radius: 31px 10px 31px 31px;
  background: rgba(1, 30, 38, .72);
  box-shadow: 0 25px 62px rgba(1, 25, 32, .36);
  transform: none;
}

.bv-gallery-showcase .bv-gallery-showcase__carousel::before {
  display: none;
  content: none;
}

.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-stage-outer {
  overflow: hidden;
  border-radius: 24px 7px 24px 24px;
  background: #02252e;
}

.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-stage,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-item,
.bv-gallery-showcase .bv-gallery-showcase__carousel .item,
.bv-gallery-showcase .bv-gallery-showcase__carousel .img-thumbnail-variant-1,
.bv-gallery-showcase .bv-gallery-showcase__carousel figure {
  min-height: 0;
}

.bv-gallery-showcase .bv-gallery-showcase__carousel .item,
.bv-gallery-showcase .bv-gallery-showcase__carousel .img-thumbnail-variant-1,
.bv-gallery-showcase .bv-gallery-showcase__carousel figure,
.bv-gallery-showcase .bv-gallery-showcase__carousel figure img {
  display: block;
  width: 100%;
  border-radius: 24px 7px 24px 24px;
}

.bv-gallery-showcase .bv-gallery-showcase__carousel figure {
  height: auto;
  max-height: 580px;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #073947;
}

.bv-gallery-showcase .bv-gallery-showcase__carousel figure img {
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(1.035) contrast(1.015);
  transition: filter .42s ease, transform .75s var(--bv-ease);
}

.bv-gallery-showcase .bv-gallery-showcase__carousel .caption {
  border-radius: 24px 7px 24px 24px;
  background: linear-gradient(180deg, transparent 58%, rgba(1, 24, 31, .36));
}

.bv-gallery-showcase .bv-gallery-showcase__carousel .caption .icon {
  position: absolute;
  top: auto;
  right: 18px;
  bottom: 17px;
  left: auto;
  display: grid;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 14px;
  color: #fff;
  background: rgba(3, 45, 56, .68);
  font-size: 19px;
  place-items: center;
  box-shadow: 0 11px 24px rgba(1, 25, 32, .2);
  backdrop-filter: blur(9px);
  -webkit-backdrop-filter: blur(9px);
}

.bv-gallery-showcase .bv-gallery-showcase__carousel .img-thumbnail-variant-1:focus-visible {
  outline: 3px solid rgba(255, 255, 255, .92);
  outline-offset: -5px;
}

.bv-gallery-showcase .bv-gallery-showcase__carousel .img-thumbnail-variant-1:focus-visible .caption {
  opacity: 1;
  transform: none;
}

.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-prev,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-next {
  top: 50%;
  display: grid !important;
  width: 52px;
  height: 52px;
  margin-top: -26px;
  border: 1px solid rgba(255, 255, 255, .25);
  border-radius: 17px;
  color: #fff;
  background: rgba(2, 37, 47, .82);
  font-size: 23px;
  line-height: 1;
  place-items: center;
  box-shadow: 0 16px 32px rgba(1, 25, 32, .28);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: border-color .25s ease, background .25s ease, transform .32s var(--bv-ease);
}

.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-prev {
  left: 18px;
}

.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-next {
  right: 18px;
}

.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-prev:hover,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-next:hover,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-prev:focus-visible,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-next:focus-visible {
  border-color: rgba(255, 255, 255, .55);
  color: #fff;
  background: var(--bv-coral);
  transform: scale(1.055);
}

.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-dots {
  position: relative;
  bottom: auto;
  display: flex !important;
  width: min(100%, 520px);
  margin: 16px auto 8px;
  padding: 0 8px;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  gap: 7px;
}

.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-dot,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-dot + .owl-dot {
  width: 8px;
  height: 8px;
  margin: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, .25);
  box-shadow: none;
  transition: width .3s var(--bv-ease), background .25s ease, transform .25s ease;
}

.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-dot:hover,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-dot:focus-visible {
  background: rgba(255, 255, 255, .66);
  transform: scale(1.15);
}

.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-dot.active {
  width: 30px;
  background: linear-gradient(90deg, var(--bv-sea-bright), var(--bv-coral));
}

.bv-gallery-showcase__meta {
  display: flex;
  min-height: 38px;
  margin: 16px 5px 0;
  align-items: center;
  justify-content: space-between;
  gap: 12px 22px;
  color: rgba(226, 243, 241, .68);
  font-size: 11.5px;
  line-height: 1.45;
}

.bv-gallery-showcase__count {
  display: inline-flex;
  min-height: 31px;
  padding: 6px 11px;
  border: 1px solid rgba(255, 255, 255, .13);
  border-radius: 999px;
  align-items: center;
  flex: 0 0 auto;
  color: #fff;
  background: rgba(255, 255, 255, .07);
  font-weight: 760;
}

.bv-gallery-showcase__hint {
  max-width: 430px;
  text-align: right;
}

@media (hover: hover) and (pointer: fine) {
  .bv-gallery-showcase .bv-gallery-showcase__carousel.owl-carousel:hover {
    border-color: rgba(255, 255, 255, .28);
    box-shadow: 0 31px 78px rgba(1, 25, 32, .43);
    transform: none;
  }

  .bv-gallery-showcase .bv-gallery-showcase__carousel .img-thumbnail-variant-1:hover img {
    filter: saturate(1.09) contrast(1.025);
    transform: scale(1.025);
  }
}

@media (max-width: 899.98px) {
  .page > .bv-gallery-showcase > .container {
    width: min(calc(100% - 34px), 760px);
  }

  .bv-gallery-showcase .bv-gallery-showcase__carousel figure {
    max-height: 520px;
  }

  .bv-gallery-showcase .bv-gallery-showcase__header {
    grid-template-columns: minmax(0, 1fr);
    gap: 9px;
  }

  .bv-gallery-showcase__lead {
    max-width: 620px;
    padding: 9px 0 0;
    border-top: 1px solid rgba(255, 255, 255, .12);
    border-left: 0;
    grid-column: 1;
    grid-row: auto;
  }

}

@media (max-width: 599.98px) {
  .page > .bv-gallery-showcase.bv-gallery-section {
    padding-top: 68px !important;
    padding-bottom: 72px !important;
  }

  .page > .bv-gallery-showcase > .bv-section-keyphrase {
    top: 10px;
    right: 12px;
    max-width: calc(100% - 24px);
  }

  .page > .bv-gallery-showcase > .container {
    width: calc(100% - 20px);
  }

  .page > .bv-gallery-showcase > .container > .row > .bv-gallery-showcase__deck {
    padding: 10px 10px 15px;
    border-radius: 28px 9px 28px 28px;
  }

  .bv-gallery-showcase .bv-gallery-showcase__header {
    min-height: 0;
    padding: 10px 8px 17px;
  }

  .bv-gallery-showcase .bv-gallery-label__kicker {
    margin-bottom: 5px;
  }

  .bv-gallery-showcase .bv-gallery-label__title {
    font-size: clamp(28px, 8.5vw, 38px);
    line-height: 1.06;
  }

  .bv-gallery-showcase__lead {
    padding-top: 8px;
    font-size: 12px;
  }

  .bv-gallery-showcase .bv-gallery-showcase__carousel.owl-carousel {
    padding: 5px;
    border-radius: 21px 7px 21px 21px;
  }

  .bv-gallery-showcase .bv-gallery-showcase__carousel .owl-stage-outer,
.bv-gallery-showcase .bv-gallery-showcase__carousel .item,
.bv-gallery-showcase .bv-gallery-showcase__carousel .img-thumbnail-variant-1,
.bv-gallery-showcase .bv-gallery-showcase__carousel figure,
.bv-gallery-showcase .bv-gallery-showcase__carousel figure img,
.bv-gallery-showcase .bv-gallery-showcase__carousel .caption {
    border-radius: 16px 5px 16px 16px;
  }

  .bv-gallery-showcase .bv-gallery-showcase__carousel figure {
    max-height: none;
    aspect-ratio: 4 / 3;
  }

  .bv-gallery-showcase .bv-gallery-showcase__carousel .owl-prev,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-next {
    width: 42px;
    height: 42px;
    margin-top: -21px;
    border-radius: 14px;
    font-size: 20px;
  }

  .bv-gallery-showcase .bv-gallery-showcase__carousel .owl-prev {
    left: 9px;
  }

  .bv-gallery-showcase .bv-gallery-showcase__carousel .owl-next {
    right: 9px;
  }

  .bv-gallery-showcase .bv-gallery-showcase__carousel .caption .icon {
    right: 10px;
    bottom: 10px;
    width: 35px;
    height: 35px;
    border-radius: 11px;
    font-size: 16px;
  }

  .bv-gallery-showcase .bv-gallery-showcase__carousel .owl-dots {
    margin-top: 12px;
    gap: 6px;
  }

  .bv-gallery-showcase .bv-gallery-showcase__carousel .owl-dot,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-dot + .owl-dot {
    width: 7px;
    height: 7px;
  }

  .bv-gallery-showcase .bv-gallery-showcase__carousel .owl-dot.active {
    width: 23px;
  }

  .bv-gallery-showcase__meta {
    margin: 13px 7px 0;
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
  }

  .bv-gallery-showcase__hint {
    max-width: none;
    text-align: left;
  }
}

@media (hover: none), (pointer: coarse) {
  .bv-gallery-showcase .bv-gallery-showcase__carousel .caption {
    opacity: 1;
    transform: none;
  }
}

@media (max-width: 359.98px) {
  .page > .bv-gallery-showcase > .container {
    width: calc(100% - 12px);
  }

  .page > .bv-gallery-showcase > .container > .row > .bv-gallery-showcase__deck {
    padding-right: 7px;
    padding-left: 7px;
  }

  .bv-gallery-showcase .bv-gallery-label__title {
    font-size: 27px;
  }

  .bv-gallery-showcase .bv-gallery-showcase__carousel .owl-prev,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-next {
    width: 39px;
    height: 39px;
    margin-top: -19.5px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bv-gallery-showcase .bv-gallery-showcase__carousel figure img,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-prev,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-next,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-dot {
    transition: none !important;
  }
}

/* Services and beach galleries: remove the legacy row-50 tail and keep the
   section close proportional to the rest of the site at every viewport size. */
body.bv-page-servizi .page > .bv-gallery-showcase.bv-gallery-section,
body.bv-page-spiaggia .page > .bv-gallery-showcase.bv-gallery-section {
  padding-bottom: clamp(46px, 4vw, 64px) !important;
}

body.bv-page-servizi .page > .bv-gallery-showcase > .container > .row,
body.bv-page-spiaggia .page > .bv-gallery-showcase > .container > .row {
  margin-bottom: -50px;
}

/* Textual section markers replace the old oversized 01/02 decorations. */
.bv-video-section::before {
  top: clamp(18px, 2.2vw, 30px);
  left: max(16px, calc((100vw - 1240px) / 2));
  display: inline-flex;
  width: auto;
  max-width: min(52vw, 360px);
  min-height: 32px;
  padding: 7px 12px;
  border: 1px solid rgba(7, 91, 101, .11);
  border-radius: 999px;
  align-items: center;
  overflow: hidden;
  color: #087b82;
  background: rgba(255, 253, 248, .8);
  content: var(--bv-video-index);
  font-family: var(--bv-font-body);
  font-size: 9.5px;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: .075em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
  box-shadow: 0 10px 28px rgba(5, 56, 68, .07);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

@media (max-width: 599.98px) {
  .bv-video-section::before {
    top: 10px;
    left: 12px;
    max-width: calc(100% - 24px);
    min-height: 29px;
    padding: 6px 10px;
    font-size: 8.5px;
  }
}

/* Homepage opening: exactly the viewport space below the real navigation. */
:root {
  --bv-home-header-fallback: 205px;
}

body.bv-page-index > .page > .swiper-form-wrap,
body.bv-page-index > .page > .swiper-form-wrap .swiper-slider_fullheight {
  box-sizing: border-box;
  height: calc(100vh - var(--bv-home-header-height, var(--bv-home-header-fallback))) !important;
  height: calc(100svh - var(--bv-home-header-height, var(--bv-home-header-fallback))) !important;
  height: calc(var(--bv-home-viewport-height, 100dvh) - var(--bv-home-header-height, var(--bv-home-header-fallback))) !important;
  min-height: 0 !important;
  max-height: calc(var(--bv-home-viewport-height, 100dvh) - var(--bv-home-header-height, var(--bv-home-header-fallback))) !important;
  margin: 0 !important;
}

body.bv-page-index > .page > .swiper-form-wrap .swiper-slider_fullheight .swiper-wrapper,
body.bv-page-index > .page > .swiper-form-wrap .swiper-slider_fullheight .swiper-slide {
  height: 100% !important;
  min-height: 0 !important;
  max-height: 100% !important;
}

body > .page > .swiper-form-wrap .bv-hero-video {
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  max-width: none;
  height: 100%;
  max-height: none;
  aspect-ratio: auto;
  border: 0;
  border-radius: 0;
  object-fit: cover;
  object-position: center center;
  box-shadow: none;
  transform: none;
}

body > .page > .swiper-form-wrap .swiper-slider_fullheight .swiper-slide {
  background-position: center center;
  background-size: cover;
}

@media (max-width: 1199.98px) {
  :root {
    --bv-home-header-fallback: 132px;
  }
}

@media (max-width: 767.98px) {
  :root {
    --bv-home-header-fallback: 82px;
  }

  .page-header,
.rd-navbar-wrap,
.rd-navbar {
    height: 82px !important;
  }

  body > .page > .swiper-form-wrap .swiper-slider_fullheight .swiper-slide::after {
    inset: 10px;
    border-radius: 22px;
  }

  body > .page > .swiper-form-wrap .bv-hero-video-controls {
    top: 18px;
    bottom: auto;
    left: 18px;
  }

  body > .page > .swiper-form-wrap .swiper-slider_fullheight .swiper-pagination {
    bottom: max(80px, calc(70px + env(safe-area-inset-bottom))) !important;
  }
}

@media (max-width: 479.98px) and (orientation: portrait) {
  body > .page > .swiper-form-wrap .bv-heritage-card {
    bottom: max(128px, calc(118px + env(safe-area-inset-bottom)));
  }
}

@media (max-width: 767.98px) and (max-height: 500px) and (orientation: landscape) {
  :root {
    --bv-home-header-fallback: 68px;
  }

  .page-header,
.rd-navbar-wrap,
.rd-navbar {
    height: 68px !important;
  }

  body > .page > .swiper-form-wrap .swiper-slider_fullheight .swiper-pagination {
    bottom: max(12px, env(safe-area-inset-bottom)) !important;
  }
}

@media (max-height: 560px) and (orientation: landscape) {
  body > .page > .swiper-form-wrap .swiper-slider_fullheight .swiper-slide::after {
    inset: 7px 10px;
    border-radius: 18px;
  }

  body > .page > .swiper-form-wrap .bv-hero-video-controls {
    top: 12px;
    left: 14px;
  }

  body > .page > .swiper-form-wrap .bv-hero-video-control {
    width: 40px;
    height: 40px;
  }
}

/* Stable link states and a crisp Facebook mark in the modern pre-footer. */
.bv-prefooter-modern .bv-prefooter-social-link--facebook::before {
  display: grid;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 50%;
  color: #ffffff;
  background: linear-gradient(145deg, #3995ff 0%, #1877f2 52%, #0866d9 100%);
  content: "f";
  font-family: "Arial Black", Arial, sans-serif;
  font-weight: 900;
  line-height: 1;
  text-align: center;
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
  place-items: center;
  box-shadow: none;
}

.bv-prefooter-modern .bv-prefooter-social-link:link,
.bv-prefooter-modern .bv-prefooter-social-link:visited,
.bv-prefooter-modern .bv-prefooter-social-link:hover,
.bv-prefooter-modern .bv-prefooter-social-link:focus,
.bv-prefooter-modern .bv-prefooter-social-link:active {
  color: #ffffff !important;
}

.bv-prefooter-modern .bv-prefooter-social-link--facebook img {
  display: none !important;
}

.bv-prefooter-modern .bv-prefooter-social-link--facebook::before {
  width: 32px;
  height: 32px;
  font-size: 20px;
  pointer-events: none;
  transform: none !important;
  transition: none;
}

.bv-prefooter-modern .bv-prefooter-social-link--facebook:hover::before,
.bv-prefooter-modern .bv-prefooter-social-link--facebook:focus-visible::before {
  transform: none !important;
}

.bv-prefooter-modern .bv-prefooter-social-link:active {
  border-color: rgba(108, 225, 216, .38);
  box-shadow: 0 6px 15px rgba(0, 23, 37, .2);
  transform: translateY(0) scale(.96);
}

.bv-prefooter-modern .bv-prefooter-contact-item a:link,
.bv-prefooter-modern .bv-prefooter-contact-item a:visited {
  color: #caeeea !important;
}

.bv-prefooter-modern .bv-prefooter-contact-item a:hover,
.bv-prefooter-modern .bv-prefooter-contact-item a:focus,
.bv-prefooter-modern .bv-prefooter-contact-item a:active {
  color: #ffffff !important;
}

@media (prefers-reduced-motion: reduce) {
  .bv-prefooter-modern .bv-prefooter-social-link--instagram img,
.bv-prefooter-modern .bv-prefooter-social-link--facebook::before {
    transition: none;
  }
}

@media (hover: none) {
  .bv-prefooter-modern .bv-prefooter-social-link:hover:not(:active) {
    border-color: rgba(255, 255, 255, .11);
    background: rgba(255, 255, 255, .055);
    box-shadow: none;
    transform: none;
  }
}

/* More legible navigation labels,
with translation-safe responsive sizing. */
@media (min-width: 1400px) {
  .rd-navbar-static .rd-navbar-nav > li.bv-nav-main > a {
    padding-right: clamp(10px, .72vw, 14px) !important;
    padding-left: clamp(10px, .72vw, 14px) !important;
    font-size: clamp(13.5px, .82vw, 15.5px);
    letter-spacing: -.022em;
  }

  .rd-navbar-static .rd-navbar-nav > li > a.bv-nav-contact,
  .rd-navbar-static .rd-navbar-nav > li > a.bv-nav-contact:hover,
  .rd-navbar-static .rd-navbar-nav > li > a.bv-nav-contact:focus-visible {
    padding-right: clamp(19px, 1.35vw, 26px) !important;
    padding-left: clamp(19px, 1.35vw, 26px) !important;
  }
}

@media (min-width: 1200px) and (max-width: 1399.98px) {
  .rd-navbar-static .rd-navbar-nav > li.bv-nav-main > a {
    padding-right: clamp(6px, .55vw, 8px) !important;
    padding-left: clamp(6px, .55vw, 8px) !important;
    font-size: clamp(12.25px, .94vw, 13px);
    letter-spacing: -.025em;
  }

  .rd-navbar-static .rd-navbar-nav > li > a.bv-nav-contact,
  .rd-navbar-static .rd-navbar-nav > li > a.bv-nav-contact:hover,
  .rd-navbar-static .rd-navbar-nav > li > a.bv-nav-contact:focus-visible {
    padding-right: 14px !important;
    padding-left: 14px !important;
  }
}

@media (max-width: 1199.98px) {
  .rd-navbar-fixed .rd-navbar-nav > li.bv-nav-main > a,
.rd-navbar-fixed .rd-navbar-nav > li > a.bv-nav-contact {
    font-size: clamp(15.5px, 4vw, 16.5px);
    line-height: 1.24;
  }
}

@media (max-width: 359.98px) {
  .rd-navbar-fixed .rd-navbar-nav > li.bv-nav-main > a,
.rd-navbar-fixed .rd-navbar-nav > li > a.bv-nav-contact {
    font-size: 15px;
  }
}

/* Centre every video inside its card on both axes,
including the featured item. */
.bv-video-library__grid .bv-video-card {
  display: flex;
  flex-direction: column;
}

.bv-video-library__grid .bv-video-card__badge {
  align-self: flex-start;
}

.bv-video-library__grid .bv-video-card .videoWrapper {
  width: min(100%, 1040px);
  margin: auto;
  align-self: center;
}

.bv-page-video .bv-video-section .row,
.bv-page-video .bv-video-section .item {
  align-items: center;
  justify-content: center;
}

.bv-page-video .bv-video-section .item {
  display: flex;
  min-height: 100%;
  flex-direction: column;
}

.bv-page-video .bv-video-section .videoWrapper {
  margin: auto;
}

/* Wider mobile sections with a small,
consistent breathing edge. */
@media (max-width: 767.98px) {
  .page > section > .container,
  .page > section:not(.bv-experience-map) > [class*="section-"] > .container {
    box-sizing: border-box;
    width: calc(100% - 16px) !important;
    max-width: none !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }

  .page > .bv-experience-map.object-wrap,
  .page > .bv-location-map.bv-experience-map.object-wrap {
    padding-right: 8px !important;
    padding-left: 8px !important;
  }

  .bv-experience-map > .bv-experience-map__panel.section-lg .container,
  .bv-location-map > .bv-experience-map__panel.section-lg .container {
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 18px !important;
    padding-left: 18px !important;
  }

  .bv-experience-map > .bv-experience-map__media.object-wrap__body,
  .bv-experience-map.bg-gray-lighter > .bv-experience-map__media.object-wrap__body {
    width: 100% !important;
    max-width: none !important;
  }
}

@media (max-width: 359.98px) {
  .page > section > .container,
.page > section:not(.bv-experience-map) > [class*="section-"] > .container {
    width: calc(100% - 12px) !important;
  }

  .page > .bv-experience-map.object-wrap,
.page > .bv-location-map.bv-experience-map.object-wrap {
    padding-right: 6px !important;
    padding-left: 6px !important;
  }

  .bv-experience-map > .bv-experience-map__panel.section-lg .container,
.bv-location-map > .bv-experience-map__panel.section-lg .container {
    padding-right: 16px !important;
    padding-left: 16px !important;
  }
}

/* Final typographic legibility layer: keep type consistent after page-specific rules. */
:root {
  --bv-font-body: "Manrope", "Segoe UI Variable", "Segoe UI", Arial, sans-serif;
  --bv-font-display: "Sora", "Manrope", "Segoe UI Variable", sans-serif;
}

body {
  font-size: 18px;
  font-variation-settings: normal;
}

body p,
body li {
  font-size: clamp(17.5px, 1.08vw, 19.5px);
  line-height: 1.74;
}

.rd-navbar-items-list p,
.rd-navbar-items-list a,
.rd-navbar-items-list .icon {
  font-size: 12.5px;
}

.button,
button.button {
  font-size: 13.5px;
}

.bv-section-keyphrase,
.bv-contact-seo-feature,
.bv-contact-eyebrow,
.bv-contact-channel__copy small,
.bv-gallery-label__kicker,
.bv-experience-map__badge,
.bv-experience-map .bv-experience-map__eyebrow,
.bv-video-card__badge {
  font-size: clamp(12.5px, .9vw, 14px);
  line-height: 1.45;
}

@media (min-width: 1400px) {
  .rd-navbar-static .rd-navbar-nav > li.bv-nav-main > a {
    font-size: clamp(14px, .82vw, 15.75px);
  }

  .rd-navbar-static .rd-navbar-nav > li > a.bv-nav-contact {
    font-size: 14px;
  }
}

@media (min-width: 1200px) and (max-width: 1399.98px) {
  .rd-navbar-static .rd-navbar-nav > li.bv-nav-main > a {
    font-size: clamp(12.75px, .95vw, 13.5px);
  }

  .rd-navbar-static .rd-navbar-nav > li > a.bv-nav-contact {
    font-size: 13px;
  }
}

@media (max-width: 767.98px) {
  body {
    font-size: 17px;
  }

  body p,
body li {
    font-size: clamp(17px, 4.55vw, 18px);
    line-height: 1.72;
  }

  .button,
button.button {
    font-size: 13px;
  }

  .bv-section-keyphrase,
.bv-contact-seo-feature,
.bv-contact-eyebrow,
.bv-contact-channel__copy small,
.bv-gallery-label__kicker,
.bv-experience-map__badge,
.bv-experience-map .bv-experience-map__eyebrow,
.bv-video-card__badge {
    font-size: 12.25px;
    letter-spacing: .045em;
  }

  .rd-navbar-fixed .rd-navbar-nav > li.bv-nav-main > a,
.rd-navbar-fixed .rd-navbar-nav > li > a.bv-nav-contact {
    font-size: 16.5px;
  }
}

@media (max-width: 359.98px) {
  body p,
body li {
    font-size: 16.5px;
  }
}

/* WCAG 2.2 AA contrast layer.
 * The darker coastal accents preserve the visual identity while keeping
 * normal text,
interactive labels and meaningful controls at AA contrast. */
:root {
  --bv-sea: #08717a;
  --bv-aqua: #08717a;
  --bv-coral: #b8443a;
  --bv-coral-dark: #983129;
}

/* Text links inside prose remain identifiable without relying on colour alone. */
.page p a:not(.button),
.page address a:not(.button),
.page .technical-cookie-notice a,
.page .footer-corporate__credit a {
  text-decoration: underline;
  text-decoration-thickness: .1em;
  text-underline-offset: .18em;
}

/* A two-tone focus indicator stays visible on both light and dark surfaces. */
:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid #fff !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 6px #063f4d !important;
}

/* Primary actions: white labels now exceed 4.5:1 in every state. */
.button-primary,
button.button-primary,
.bv-restaurant-phone,
.bv-services-showcase__cta,
.rd-navbar-static .rd-navbar-nav > li > a.bv-nav-contact,
.rd-navbar-fixed .rd-navbar-nav > li > a.bv-nav-contact {
  border-color: #b8443a !important;
  color: #fff !important;
  background: linear-gradient(135deg, #b8443a 0%, #a83a31 100%) !important;
}

.button-primary:hover,
.button-primary:focus,
button.button-primary:hover,
button.button-primary:focus,
.bv-restaurant-phone:hover,
.bv-restaurant-phone:focus-visible,
.bv-services-showcase__cta:hover,
.bv-services-showcase__cta:focus-visible,
.rd-navbar-static .rd-navbar-nav > li > a.bv-nav-contact:hover,
.rd-navbar-static .rd-navbar-nav > li > a.bv-nav-contact:focus-visible,
.rd-navbar-fixed .rd-navbar-nav > li > a.bv-nav-contact:hover,
.rd-navbar-fixed .rd-navbar-nav > li > a.bv-nav-contact:focus-visible {
  border-color: #983129 !important;
  color: #fff !important;
  background: linear-gradient(135deg, #a83a31 0%, #8d2d27 100%) !important;
}

.ui-to-top.bv-to-top-modern:hover {
  color: #fff !important;
  background:
    radial-gradient(circle at 24% 18%, rgba(255, 255, 255, .24), transparent 45%),
    linear-gradient(145deg, #f37a68 0%, #df5e50 100%) !important;
}

.ui-to-top.bv-to-top-modern:focus-visible {
  color: #fff !important;
  outline: none !important;
  background:
    radial-gradient(circle at 24% 16%, rgba(255, 255, 255, .28), transparent 43%),
    linear-gradient(145deg, #159ca2 0%, #08717a 58%, #054a55 100%) !important;
}

/* Small secondary copy uses the same readable muted tone throughout. */
.bv-review-card__role,
.bv-restaurant-menu-card__brand,
.bv-location-detail-card--2 .bv-location-detail-card__title {
  color: #52686e;
}

.bv-contact-channel::after,
.rd-navbar-fixed .rd-navbar-nav > li.bv-nav-main > a::after {
  color: #52686e;
}

/* Review initials are text,
so their coloured tiles use accessible fills. */
.bv-review-card__avatar {
  color: #fff;
  background: linear-gradient(145deg, #08717a, #075e67);
}

.bv-home-reviews__grid > .bv-review-card__column:nth-child(2) .bv-review-card__avatar {
  color: #fff;
  background: linear-gradient(145deg, #b8443a, #983129);
}

/* Contact location card: preserve the panoramic photo,
then fade it into a
   solid reading surface instead of stacking dark overlays over the image. */
.bv-contact-location {
  border: 1px solid rgba(255, 255, 255, .24);
  background: linear-gradient(155deg, #063d48 0%, #032c36 42%, #021d25 100%);
  box-shadow: 0 34px 90px rgba(7, 57, 71, .2), inset 0 1px 0 rgba(255, 255, 255, .12);
}

.bv-contact-location::before {
  z-index: 0;
  inset: 0 0 auto;
  width: 100%;
  height: auto;
  aspect-ratio: 61 / 30;
  background:
    linear-gradient(180deg, rgba(2, 29, 37, .02) 0%, rgba(2, 29, 37, .04) 68%, rgba(2, 29, 37, .34) 100%),
    url("../images/parallax-5.jpg?v=20260817-modern") center / cover no-repeat;
  filter: saturate(1.08) contrast(1.03) brightness(1.08);
  opacity: 1;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 74%, rgba(0, 0, 0, .72) 87%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 0%, #000 74%, rgba(0, 0, 0, .72) 87%, transparent 100%);
}

.bv-contact-location::after {
  z-index: 2;
  top: clamp(18px, 2vw, 26px);
  right: clamp(18px, 2vw, 26px);
  width: clamp(84px, 7.5vw, 106px);
  height: clamp(84px, 7.5vw, 106px);
  border-color: rgba(7, 57, 71, .12);
  background: #fff url("../images/logo.png?v=20260817-modern") center / 76% auto no-repeat;
  box-shadow: 0 14px 36px rgba(2, 29, 37, .18);
  filter: none;
  mix-blend-mode: normal;
  opacity: 1;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.bv-contact-location__content {
  z-index: 1;
  background: linear-gradient(180deg, rgba(2, 29, 37, 0) 0%, rgba(2, 29, 37, .58) 18%, rgba(2, 29, 37, .9) 42%, #021d25 72%);
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.bv-contact-location__label,
.bv-contact-location address,
.bv-contact-location__vat {
  color: #fff;
}

/* Pagination is meaningful UI: inactive and active states both exceed 3:1. */
.swiper-slider_fullheight .swiper-pagination-bullet::before {
  background: rgba(255, 255, 255, .72);
}

.swiper-slider_fullheight .swiper-pagination-bullet-active::before,
.swiper-slider_fullheight .swiper-pagination-bullet-active:hover::before {
  background: linear-gradient(90deg, #fff 0 18%, #ff9c82 18% 100%);
}

.bv-home-story__media .owl-dot,
.bv-home-story__media .owl-dot + .owl-dot,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-dot,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-dot + .owl-dot,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-dot,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-dot + .owl-dot {
  background: rgba(255, 255, 255, .62);
}

.bv-home-story__media .owl-dot.active,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-dot.active,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-dot.active {
  background: linear-gradient(90deg, #20b6b2, #ff9c82);
}

/* Flag-only language controls keep a visible 3:1 boundary on light headers. */
.rd-navbar-static .rd-navbar-nav > li.bv-language-link > a,
.rd-navbar-fixed .rd-navbar-nav > li.bv-language-link > a {
  box-shadow: 0 0 0 2px #52686e, 0 10px 24px rgba(7, 57, 71, .14);
}

/* Footer legal copy is small,
therefore it uses a comfortably readable value. */
.footer-corporate__credit,
.footer-corporate__credit a,
.footer-corporate .technical-cookie-notice,
.footer-corporate .technical-cookie-notice a,
.footer-corporate__copyright,
.footer-corporate__address {
  color: rgba(255, 255, 255, .84);
}

/* Exact anchor alignment: the runtime value follows the real sticky header. */
[id] {
  scroll-margin-top: var(--bv-anchor-offset, 109px) !important;
}

@media (max-width: 1199.98px) {
  [id] {
    scroll-margin-top: var(--bv-anchor-offset, 90px) !important;
  }
}

@media (max-width: 389.98px) {
  [id] {
    scroll-margin-top: var(--bv-anchor-offset, 90px) !important;
  }
}

/* Readable multiline titles: Sora's deep descenders need generous leading,
   especially where large headings wrap on mobile. */
.page h1,
.page h2 {
  line-height: 1.18 !important;
}

.page h3 {
  line-height: 1.22 !important;
}

.page h4,
.page h5,
.page h6 {
  line-height: 1.3 !important;
}

/* Never add automatic hyphens when multilingual copy wraps. */
html,
body,
body :where(h1, h2, h3, h4, h5, h6, p, li, a, span, strong, em, small, address, figcaption, label, button) {
  -webkit-hyphens: none !important;
  -moz-hyphens: none !important;
  hyphens: none !important;
}

/* Stable,
crisp language flags: hover must never rotate,
scale or clip them. */
.bv-flag-icon {
  box-sizing: border-box;
  overflow: hidden !important;
  border-radius: 50% !important;
  background-position: center !important;
  transform: none !important;
  transform-origin: center;
  backface-visibility: hidden;
  transition: filter .22s ease, box-shadow .22s ease !important;
}

.bv-flag-icon::after {
  border-radius: 50% !important;
}

.rd-navbar-static .rd-navbar-nav > li.bv-language-link > a,
.rd-navbar-fixed .rd-navbar-nav > li.bv-language-link > a {
  overflow: visible !important;
}

.rd-navbar-static .rd-navbar-nav > li.bv-language-link > a:hover,
.rd-navbar-static .rd-navbar-nav > li.bv-language-link > a:focus-visible,
.rd-navbar-fixed .rd-navbar-nav > li.bv-language-link > a:hover,
.rd-navbar-fixed .rd-navbar-nav > li.bv-language-link > a:focus-visible {
  transform: translateY(-2px) !important;
}

.rd-navbar-static .rd-navbar-nav > li.bv-language-link > a:hover .bv-flag-icon,
.rd-navbar-static .rd-navbar-nav > li.bv-language-link > a:focus-visible .bv-flag-icon,
.rd-navbar-fixed .rd-navbar-nav > li.bv-language-link > a:hover .bv-flag-icon,
.rd-navbar-fixed .rd-navbar-nav > li.bv-language-link > a:focus-visible .bv-flag-icon {
  filter: saturate(1.06) contrast(1.02);
  transform: none !important;
}

/* Final contrast safeguards for dark editorial surfaces.
 * These selectors intentionally outrank the legacy page-heading and generic
 * section backgrounds that still ship with the original theme. */
.bv-home-reviews .bv-home-reviews__eyebrow {
  border-color: rgba(255, 255, 255, .28);
  color: #eaf9f7 !important;
  background: rgba(2, 29, 37, .72);
}

.bv-home-reviews .bv-home-reviews__title {
  color: #fff !important;
  text-shadow: 0 10px 32px rgba(0, 0, 0, .18);
}

.bv-page-servizi .page > .bv-services-overview.section-lg.bg-default.text-center {
  color: #fff !important;
  background:
    radial-gradient(circle at 7% 12%, rgba(32, 182, 178, .23), transparent 29rem),
    radial-gradient(circle at 96% 75%, rgba(239, 112, 95, .19), transparent 28rem),
    linear-gradient(145deg, #063e4c 0%, #032d38 58%, #022630 100%) !important;
}

body.bv-page-servizi .page > .bv-services-overview.section-lg.bg-default.text-center > p.bv-section-keyphrase {
  max-width: min(72%, 520px);
  margin: 0;
  padding: 9px 15px 8px;
  border-color: rgba(255, 255, 255, .24);
  border-left-color: #e15a4e;
  color: #f3fbfa !important;
  background: rgba(2, 29, 37, .82);
  font-size: clamp(12.5px, .9vw, 14px);
  line-height: 1.45;
  letter-spacing: .055em;
  text-align: right;
}

@media (max-width: 767.98px) {
  body.bv-page-servizi .page > .bv-services-overview.section-lg.bg-default.text-center > p.bv-section-keyphrase {
    max-width: calc(100% - 24px);
    padding: 7px 10px 6px;
    font-size: 12.25px;
    letter-spacing: .045em;
  }
}

@media (max-height: 500.98px) and (orientation: landscape) {
  body.bv-page-servizi .page > .bv-services-overview.section-lg.bg-default.text-center > p.bv-section-keyphrase {
    max-width: 62%;
    padding: 5px 8px;
    font-size: 8px;
    line-height: 1.35;
  }
}

.bv-page-servizi .bv-services-overview .bv-services-showcase__eyebrow {
  border-color: rgba(255, 255, 255, .27);
  color: #dcf5f1 !important;
  background: rgba(2, 29, 37, .68);
}

.bv-page-servizi .bv-services-overview .bv-services-showcase__title,
.bv-page-servizi .bv-services-overview .bv-services-story-card__title {
  color: #fff !important;
}

.bv-page-servizi .bv-services-overview .bv-services-story-card__text {
  color: #d9eeeb !important;
}

.bv-page-servizi .bv-services-overview .bv-services-story-card {
  border-color: rgba(255, 255, 255, .2);
  background: linear-gradient(145deg, rgba(255, 255, 255, .105), rgba(255, 255, 255, .055));
}

.bv-page-nav__item.is-active .bv-page-nav__number,
.bv-page-nav__item[aria-current="location"] .bv-page-nav__number {
  color: #fff !important;
}

/* Small labels need the full AA ratio too,
not only the large headings. */
.bv-story-card__label {
  color: #075e67 !important;
}

.bv-gallery-showcase__lead,
.bv-gallery-showcase__hint {
  color: #edf9f7 !important;
}

.bv-experience-map__badge-mark {
  color: #fff !important;
  background: #075e67;
}

#footer #copyrights .footer-corporate__legal-label,
.footer-corporate span.footer-corporate__legal-label {
  color: #9fe3dc !important;
}

.bv-restaurant-phone__copy > span {
  color: #fff !important;
}

/* Translation-safe internal navigation: long French,
German and Spanish
 * labels may wrap naturally,
but are never ellipsised or clipped. */
@media (max-width: 991.98px) {
  .bv-page-nav__item {
    min-height: 78px;
    padding-top: 12px;
    padding-bottom: 12px;
    align-items: flex-start;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
  }

  .bv-page-nav__number,
  .bv-page-nav__label {
    max-width: 100%;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
    overflow-wrap: normal;
    word-break: normal;
  }

  .bv-page-nav__number {
    flex: 0 0 auto;
    line-height: 1.25;
  }

  .bv-page-nav__label {
    line-height: 1.28;
  }
}

@media (max-width: 767.98px) {
  .bv-page-nav__item {
    min-width: 190px;
  }
}

/* Keep gallery navigation completely outside the photographic area. */
.bv-home-story__media .owl-nav,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-nav,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-nav {
  position: relative !important;
  inset: auto !important;
  z-index: 2;
  display: flex !important;
  width: fit-content;
  min-width: 116px;
  min-height: 54px;
  margin: 14px auto 0 !important;
  padding: 5px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 18px;
  background: rgba(255, 255, 255, .075);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 12px 28px rgba(1, 25, 32, .2);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.bv-home-story__media .owl-prev,
.bv-home-story__media .owl-next,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-prev,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-next,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-prev,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-next {
  position: static !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  display: grid !important;
  width: 44px !important;
  min-width: 44px;
  height: 44px !important;
  margin: 0 !important;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 14px !important;
  color: #fff;
  background: rgba(3, 53, 65, .96);
  font-size: 21px !important;
  line-height: 1 !important;
  place-items: center;
  box-shadow: 0 8px 20px rgba(1, 25, 32, .22);
  transform: none !important;
  transition: border-color .22s ease, background .22s ease, box-shadow .22s ease, transform .22s ease !important;
}

.bv-home-story__media .owl-prev:hover,
.bv-home-story__media .owl-next:hover,
.bv-home-story__media .owl-prev:focus-visible,
.bv-home-story__media .owl-next:focus-visible,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-prev:hover,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-next:hover,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-prev:focus-visible,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-next:focus-visible,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-prev:hover,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-next:hover,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-prev:focus-visible,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-next:focus-visible {
  border-color: rgba(255, 255, 255, .58);
  color: #fff;
  background: var(--bv-coral);
  box-shadow: 0 10px 24px rgba(239, 112, 95, .28);
  transform: translateY(-2px) !important;
}

.bv-home-story__media .owl-prev:focus-visible,
.bv-home-story__media .owl-next:focus-visible,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-prev:focus-visible,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-next:focus-visible,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-prev:focus-visible,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-next:focus-visible {
  outline: 3px solid rgba(255, 255, 255, .92);
  outline-offset: 3px;
}

.bv-home-story__media .owl-prev.disabled,
.bv-home-story__media .owl-next.disabled,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-prev.disabled,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-next.disabled,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-prev.disabled,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-next.disabled {
  opacity: .38;
  box-shadow: none;
  pointer-events: none;
}

.bv-home-story__media .owl-dots,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-dots,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-dots {
  margin-top: 11px !important;
}

@media (max-width: 575.98px) {
  .bv-home-story__media .owl-nav,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-nav,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-nav {
    min-width: 110px;
    min-height: 52px;
    margin-top: 11px !important;
    padding: 4px;
    border-radius: 17px;
  }

  .bv-home-story__media .owl-prev,
.bv-home-story__media .owl-next,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-prev,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .owl-next,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-prev,
.bv-gallery-showcase .bv-gallery-showcase__carousel .owl-next {
    width: 44px !important;
    min-width: 44px;
    height: 44px !important;
    border-radius: 13px !important;
    font-size: 20px !important;
  }
}

/* Edge-to-edge gallery photos: one rounded mask,
with no legacy inner frame. */
.bv-home-story__media .owl-carousel .img-thumbnail-variant-1,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .img-thumbnail-variant-1,
.bv-gallery-showcase .bv-gallery-showcase__carousel .img-thumbnail-variant-1 {
  overflow: hidden;
  border: 0 !important;
  isolation: isolate;
  contain: paint;
}

.bv-home-story__media .owl-carousel figure,
.bv-restaurant-intro .bv-restaurant-gallery__carousel figure,
.bv-gallery-showcase .bv-gallery-showcase__carousel figure {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  overflow: hidden;
  border-radius: 0 !important;
  clip-path: none !important;
}

.bv-home-story__media .owl-carousel .img-thumbnail-variant-1 {
  border-radius: 24px !important;
  clip-path: inset(0 round 24px);
}

.bv-restaurant-intro .bv-restaurant-gallery__carousel .img-thumbnail-variant-1 {
  border-radius: 26px !important;
  clip-path: inset(0 round 26px);
}

.bv-gallery-showcase .bv-gallery-showcase__carousel .img-thumbnail-variant-1 {
  border-radius: 24px !important;
  clip-path: inset(0 round 24px);
}

.bv-home-story__media .owl-carousel figure img,
.bv-restaurant-intro .bv-restaurant-gallery__carousel figure img,
.bv-gallery-showcase .bv-gallery-showcase__carousel figure img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  min-width: 100%;
  min-height: 100%;
  border-radius: 0 !important;
  object-fit: cover !important;
  object-position: center center;
}

.bv-home-story__media .owl-carousel .img-thumbnail-variant-1 .caption,
.bv-restaurant-intro .bv-restaurant-gallery__carousel .img-thumbnail-variant-1 .caption,
.bv-gallery-showcase .bv-gallery-showcase__carousel .img-thumbnail-variant-1 .caption {
  overflow: hidden;
}

.bv-home-story__media .owl-carousel .img-thumbnail-variant-1 .caption {
  border-radius: 0 !important;
}

.bv-restaurant-intro .bv-restaurant-gallery__carousel .img-thumbnail-variant-1 .caption {
  border-radius: 0 !important;
}

.bv-gallery-showcase .bv-gallery-showcase__carousel .img-thumbnail-variant-1 .caption {
  border-radius: 0 !important;
}

@media (max-width: 767.98px) {
  .bv-gallery-showcase .bv-gallery-showcase__carousel .img-thumbnail-variant-1 {
    border-radius: 16px !important;
    clip-path: inset(0 round 16px);
  }
}

/* Blend the logo's native white canvas into the warm navigation surface. */
.rd-navbar-static .rd-navbar-brand img,
.rd-navbar-fixed .rd-navbar-brand img {
  background: transparent !important;
  filter: none !important;
  mix-blend-mode: darken;
}

@media (min-width: 768px) {
  .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-inner {
    background: #fff !important;
  }

  .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-brand img {
    mix-blend-mode: multiply;
  }
}

/* Content-adaptive story cards: compact masonry instead of equal-height gaps. */
.bv-story-grid {
  display: block;
  column-count: 2;
  column-fill: balance;
  column-gap: clamp(14px, 1.8vw, 22px);
}

.bv-story-card {
  display: inline-block;
  width: 100%;
  height: auto;
  min-height: 0;
  margin: 0 0 clamp(14px, 1.8vw, 22px);
  break-inside: avoid;
  vertical-align: top;
  -webkit-column-break-inside: avoid;
}

.bv-story-card:nth-child(4n + 1) {
  border-radius: 30px 14px 30px 30px;
}

.bv-story-card:nth-child(4n + 2) {
  border-radius: 14px 30px 30px 30px;
}

.bv-story-card:nth-child(4n + 3) {
  border-radius: 30px 30px 14px 30px;
}

.bv-story-card:nth-child(4n) {
  border-radius: 30px 30px 30px 14px;
}

@media (max-width: 767.98px) {
  .bv-story-grid {
    column-count: 1;
    column-gap: 0;
  }

  .bv-story-card {
    display: block;
    margin-bottom: 12px;
    border-radius: 22px 10px 22px 22px;
  }

  .bv-story-card:nth-child(even) {
    border-radius: 10px 22px 22px 22px;
  }
}

/* Beach services — editorial cards with controlled typography at every width. */
.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-grid {
  display: grid;
  margin-top: clamp(24px, 3vw, 38px);
  align-items: stretch;
  grid-template-columns: minmax(0, 1.12fr) minmax(340px, .88fr);
  grid-template-areas:
    "support comfort"
    "support sea";
  gap: clamp(15px, 1.6vw, 22px);
}

.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 0;
  padding: clamp(30px, 3.2vw, 46px);
  overflow: hidden;
  flex-direction: column;
  justify-content: center;
  border: 1px solid rgba(6, 79, 90, .12);
  border-radius: 32px 13px 32px 32px;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, .96), rgba(248, 252, 249, .94)),
    #fffdf9;
  box-shadow: 0 24px 58px rgba(4, 48, 60, .105);
  isolation: isolate;
}

.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card::before {
  position: absolute;
  z-index: 2;
  top: 0;
  right: clamp(26px, 4vw, 52px);
  left: clamp(26px, 4vw, 52px);
  height: 4px;
  border-radius: 0 0 999px 999px;
  background: linear-gradient(90deg, #20b6b2, #76dcd1);
  content: "";
  pointer-events: none;
}

.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card--1 {
  grid-area: comfort;
}

.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card--2 {
  min-height: 100%;
  border-color: rgba(255, 255, 255, .16);
  border-radius: 13px 38px 38px 38px;
  color: #fff;
  background:
    radial-gradient(circle at 92% 8%, rgba(38, 196, 187, .24), transparent 22rem),
    radial-gradient(circle at 4% 94%, rgba(239, 112, 95, .16), transparent 20rem),
    linear-gradient(145deg, #075866, #03323e 66%, #022731);
  box-shadow: 0 32px 76px rgba(2, 39, 48, .22);
  grid-area: support;
}

.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card--2::before {
  background: linear-gradient(90deg, #ff9c82, #ffd0c2);
}

.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card--3 {
  border-radius: 32px 32px 13px 32px;
  background:
    radial-gradient(circle at 100% 0, rgba(239, 112, 95, .1), transparent 18rem),
    linear-gradient(145deg, rgba(255, 255, 255, .96), rgba(255, 249, 246, .94)),
    #fffdf9;
  grid-area: sea;
}

.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card--3::before {
  background: linear-gradient(90deg, #20b6b2, #ff9c82);
}

.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card__header {
  position: relative;
  z-index: 1;
  display: grid;
  min-width: 0;
  margin: 0 0 clamp(18px, 2vw, 25px);
  align-items: center;
  grid-template-columns: 54px minmax(0, 1fr);
  gap: clamp(15px, 1.5vw, 20px);
}

.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card__marker {
  position: relative;
  display: grid;
  width: 54px;
  height: 54px;
  min-width: 54px;
  border: 1px solid rgba(8, 123, 132, .16);
  border-radius: 17px;
  color: #087e87;
  background: rgba(32, 182, 178, .105);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .72);
  place-items: center;
}

.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card__marker::before {
  position: static;
  width: auto;
  height: auto;
  border: 0;
  border-radius: 0;
  background: none;
  color: currentColor;
  content: "✦";
  font-family: Arial, sans-serif;
  font-size: 23px;
  font-weight: 700;
  line-height: 1;
  transform: none;
}

.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card__marker::after {
  display: none;
}

.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card--2 .bv-beach-service-card__marker {
  border-color: rgba(255, 255, 255, .2);
  color: #ffd3c8;
  background: rgba(255, 255, 255, .09);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12);
}

.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card--2 .bv-beach-service-card__marker::before {
  content: "✓";
}

.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card--3 .bv-beach-service-card__marker {
  color: #087e87;
  background: linear-gradient(145deg, rgba(32, 182, 178, .13), rgba(239, 112, 95, .1));
}

.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card--3 .bv-beach-service-card__marker::before {
  content: "≈";
  font-size: 30px;
}

.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card h3.bv-beach-service-card__title {
  min-width: 0;
  max-width: 14ch;
  margin: 0;
  color: #075d68;
  font-size: clamp(27px, 2.2vw, 36px);
  line-height: 1.22 !important;
  letter-spacing: -.035em;
  overflow-wrap: normal;
  text-wrap: balance;
  word-break: normal;
}

.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card--2 h3.bv-beach-service-card__title {
  max-width: 18ch;
  color: #fff;
  font-size: clamp(32px, 2.65vw, 43px);
}

.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card p.bv-beach-service-card__text {
  position: relative;
  z-index: 1;
  max-width: 46em;
  margin: 0;
  color: #3f5e66;
  font-size: clamp(16px, 1.25vw, 18px);
  line-height: 1.72;
  text-wrap: pretty;
}

.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card--2 p.bv-beach-service-card__text {
  max-width: 42em;
  color: #dcefed;
}

@media (hover: hover) and (pointer: fine) {
  .bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card:hover {
    border-color: rgba(10, 140, 145, .25);
    box-shadow: 0 31px 72px rgba(4, 48, 60, .145);
    transform: translateY(-5px);
  }

  .bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card--2:hover {
    border-color: rgba(255, 255, 255, .28);
    box-shadow: 0 39px 88px rgba(2, 39, 48, .3);
  }
}

@media (max-width: 1099.98px) {
  .bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
      "comfort support"
      "sea sea";
  }

  .bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card--3 {
    min-height: 210px;
  }
}

@media (max-width: 819.98px) {
  .bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-grid {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: none;
    gap: 13px;
  }

  .bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card,
.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card--1,
.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card--2,
.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card--3 {
    min-height: 0;
    padding: clamp(27px, 6vw, 38px);
    border-radius: 25px 10px 25px 25px;
    grid-area: auto;
  }

  .bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card--2 {
    border-radius: 10px 25px 25px 25px;
  }

  .bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card--3 {
    border-radius: 25px 25px 10px 25px;
  }

  .bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card__header {
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 14px;
  }

  .bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card__marker {
    width: 48px;
    height: 48px;
    min-width: 48px;
    border-radius: 15px;
  }

  .bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card h3.bv-beach-service-card__title,
.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card--2 h3.bv-beach-service-card__title {
    max-width: none;
    font-size: clamp(27px, 6vw, 34px);
  }
}

@media (max-width: 419.98px) {
  .bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-grid {
    margin-top: 13px;
    gap: 11px;
  }

  .bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card,
.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card--1,
.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card--2,
.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card--3 {
    padding: 25px 20px 27px;
  }

  .bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card__header {
    margin-bottom: 15px;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 12px;
  }

  .bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card__marker {
    width: 44px;
    height: 44px;
    min-width: 44px;
    border-radius: 14px;
  }

  .bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card h3.bv-beach-service-card__title,
.bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card--2 h3.bv-beach-service-card__title {
    font-size: clamp(25px, 8vw, 31px);
  }

  .bv-page-spiaggia .page > .bv-beach-overview .bv-beach-service-card p.bv-beach-service-card__text {
    font-size: 15.5px;
    line-height: 1.67;
  }
}

/* Page navigator — compact section indicator,
persistent for the active item
 * and revealed on hover/focus for every other destination. */
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item::after {
  position: absolute;
  right: auto;
  bottom: 9px;
  left: 50%;
  width: clamp(44px, 22%, 66px);
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, #fff 0 24%, #ff9c82 24% 100%);
  content: "";
  opacity: 0;
  transform: translateX(-50%) scaleX(.45);
  transform-origin: 50% 50%;
  transition: opacity .22s ease, transform .36s var(--bv-ease), width .36s var(--bv-ease);
}

.bv-page-nav .bv-page-nav__inner .bv-page-nav__item:hover::after,
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item:focus-visible::after,
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item.is-active::after,
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item[aria-current="location"]::after {
  width: clamp(50px, 28%, 76px);
  opacity: 1;
  transform: translateX(-50%) scaleX(1);
}

.bv-page-nav .bv-page-nav__inner .bv-page-nav__item:focus-visible {
  outline: 3px solid rgba(10, 135, 148, .3);
  outline-offset: 3px;
}

@media (max-width: 767.98px) {
  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item::after {
    bottom: 8px;
    width: 42px;
  }

  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item:hover::after,
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item:focus-visible::after,
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item.is-active::after,
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item[aria-current="location"]::after {
    width: 54px;
  }
}

/* Page navigator states: the scroll-spy stays semantic only. A filled card is
 * reserved for a real hover; keyboard focus keeps a distinct outline on the
 * neutral card and a retained mouse focus can never look like hover. */
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item.is-active,
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item[aria-current="location"],
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item:focus:not(:focus-visible) {
  color: var(--bv-ink) !important;
  background: transparent;
  box-shadow: none;
  transform: none;
}

.bv-page-nav .bv-page-nav__inner .bv-page-nav__item.is-active .bv-page-nav__number,
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item[aria-current="location"] .bv-page-nav__number,
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item:focus:not(:focus-visible) .bv-page-nav__number {
  color: var(--bv-coral) !important;
}

.bv-page-nav .bv-page-nav__inner .bv-page-nav__item.is-active::after,
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item[aria-current="location"]::after,
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item:focus:not(:focus-visible)::after {
  opacity: 0;
  transform: translateX(-50%) scaleX(.45);
}

.bv-page-nav .bv-page-nav__inner .bv-page-nav__item:focus-visible {
  color: var(--bv-ink) !important;
  background: transparent;
  box-shadow: none;
  transform: none;
}

.bv-page-nav .bv-page-nav__inner .bv-page-nav__item:focus-visible .bv-page-nav__number {
  color: var(--bv-coral) !important;
}

.bv-page-nav .bv-page-nav__inner .bv-page-nav__item:focus-visible::after {
  opacity: 0;
  transform: translateX(-50%) scaleX(.45);
}

@media (hover: hover) and (pointer: fine) {
  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item:hover {
    color: var(--bv-white) !important;
    background: linear-gradient(135deg, var(--bv-sea), #086b79);
    box-shadow: 0 13px 30px rgba(10, 135, 148, .22);
    transform: translateY(-2px);
  }

  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item:hover .bv-page-nav__number {
    color: #fff !important;
  }

  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item:hover::after {
    width: clamp(50px, 28%, 76px);
    opacity: 1;
    transform: translateX(-50%) scaleX(1);
  }
}

@media (hover: none), (pointer: coarse) {
  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item:hover:not(:focus-visible) {
    color: var(--bv-ink) !important;
    background: transparent;
    box-shadow: none;
    transform: none;
  }

  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item:hover:not(:focus-visible) .bv-page-nav__number {
    color: var(--bv-coral) !important;
  }

  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item:hover:not(:focus-visible)::after {
    opacity: 0;
    transform: translateX(-50%) scaleX(.45);
  }
}

/* Homepage slider — draggable,
touch-friendly and visually balanced at every
 * viewport size. These final rules intentionally close the older cascade. */
body.bv-page-index > .page > .swiper-form-wrap .swiper-container {
  cursor: grab;
  touch-action: pan-y pinch-zoom;
  overscroll-behavior-x: contain;
  -webkit-user-select: none;
  user-select: none;
}

body.bv-page-index > .page > .swiper-form-wrap .swiper-container:active {
  cursor: grabbing;
}

body.bv-page-index > .page > .swiper-form-wrap .swiper-slide,
body.bv-page-index > .page > .swiper-form-wrap .swiper-slide img,
body.bv-page-index > .page > .swiper-form-wrap .bv-hero-video {
  -webkit-user-drag: none;
}

body.bv-page-index > .page > .swiper-form-wrap .bv-hero-video-controls,
body.bv-page-index > .page > .swiper-form-wrap .bv-hero-video-control,
body.bv-page-index > .page > .swiper-form-wrap .swiper-pagination {
  cursor: default;
  touch-action: manipulation;
}

body.bv-page-index > .page > .swiper-form-wrap .swiper-pagination-bullet,
body.bv-page-index > .page > .swiper-form-wrap .bv-hero-video-control {
  cursor: pointer;
}

body.bv-page-index > .page > .swiper-form-wrap .swiper-slide-caption {
  box-sizing: border-box;
  height: 100%;
  min-height: 0 !important;
  padding: clamp(36px, 5vh, 64px) 0 clamp(88px, 13vh, 124px) !important;
  align-items: center;
  overflow: visible;
}

body.bv-page-index > .page > .swiper-form-wrap .swiper-slide-caption > .container {
  width: min(calc(100% - 72px), 1240px);
  max-width: 1240px;
  padding-right: 0;
  padding-left: 0;
}

body.bv-page-index > .page > .swiper-form-wrap .swiper-slide-caption .row {
  margin-right: 0;
  margin-left: 0;
}

body.bv-page-index > .page > .swiper-form-wrap .swiper-slide-caption [class*="col-"] {
  width: min(100%, 780px);
  max-width: 780px;
  padding-right: 0;
  padding-left: 0;
  flex: 0 1 780px;
}

body.bv-page-index > .page > .swiper-form-wrap .swiper-slide-caption h6 {
  max-width: 100%;
  margin: 0 0 14px;
  padding: 8px 13px;
  font-size: clamp(11px, min(1vw, 2vh), 13px);
  line-height: 1.35;
  letter-spacing: .11em;
}

body.bv-page-index > .page > .swiper-form-wrap .swiper-slide-caption h2 {
  max-width: 100%;
  margin: 0 0 11px;
  padding: 0;
  color: rgba(255, 255, 255, .88);
  background: transparent;
  font-size: clamp(13px, min(1.25vw, 2.35vh), 18px) !important;
  font-weight: 750;
  line-height: 1.35;
  letter-spacing: .13em;
  text-transform: uppercase;
  text-wrap: balance;
}

body.bv-page-index > .page > .swiper-form-wrap .swiper-slide-caption h1 {
  max-width: 780px;
  margin: 0 0 clamp(18px, 2.4vh, 26px);
  font-size: clamp(42px, min(5.2vw, 10vh), 76px) !important;
  font-weight: 700;
  line-height: 1.04;
  letter-spacing: -.055em;
  text-wrap: balance;
}

body.bv-page-index > .page > .swiper-form-wrap .swiper-slide-caption p {
  max-width: 650px;
  margin: 0;
  padding-left: 18px;
  font-size: clamp(15.5px, min(1.25vw, 2.5vh), 19px);
  line-height: 1.55;
  text-wrap: pretty;
}

@media (max-width: 1199.98px) {
  body.bv-page-index > .page > .swiper-form-wrap .bv-heritage-card {
    display: none;
  }

  body.bv-page-index > .page > .swiper-form-wrap .swiper-slider_fullheight .swiper-pagination {
    bottom: max(22px, calc(14px + env(safe-area-inset-bottom))) !important;
  }
}

@media (max-width: 767.98px) {
  body.bv-page-index > .page > .swiper-form-wrap .swiper-slide-caption {
    padding: max(32px, env(safe-area-inset-top)) 0 max(76px, calc(66px + env(safe-area-inset-bottom))) !important;
    align-items: center;
  }

  body.bv-page-index > .page > .swiper-form-wrap .swiper-slide-caption > .container {
    width: calc(100% - 36px);
  }

  body.bv-page-index > .page > .swiper-form-wrap .swiper-slide-caption h6 {
    margin-bottom: 10px;
    padding: 7px 10px;
    font-size: 10.5px;
  }

  body.bv-page-index > .page > .swiper-form-wrap .swiper-slide-caption h2 {
    margin-bottom: 9px;
    font-size: clamp(11px, 3.2vw, 13px) !important;
    line-height: 1.4;
    letter-spacing: .095em;
  }

  body.bv-page-index > .page > .swiper-form-wrap .swiper-slide-caption h1 {
    max-width: 100%;
    margin-bottom: 16px;
    font-size: clamp(34px, min(11.2vw, 8.5vh), 52px) !important;
    line-height: 1.06;
  }

  body.bv-page-index > .page > .swiper-form-wrap .swiper-slide-caption p {
    max-width: 100%;
    padding-left: 14px;
    font-size: clamp(14px, 4vw, 16px);
    line-height: 1.5;
  }

  body.bv-page-index > .page > .swiper-form-wrap .swiper-slider_fullheight .swiper-pagination {
    right: auto !important;
    bottom: max(18px, calc(10px + env(safe-area-inset-bottom))) !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
  }
}

@media (max-width: 359.98px) {
  body.bv-page-index > .page > .swiper-form-wrap .swiper-slide-caption > .container {
    width: calc(100% - 28px);
  }

  body.bv-page-index > .page > .swiper-form-wrap .swiper-slide-caption h6 {
    display: none;
  }

  body.bv-page-index > .page > .swiper-form-wrap .swiper-slide-caption h1 {
    font-size: clamp(32px, min(10.5vw, 8vh), 40px) !important;
  }

  body.bv-page-index > .page > .swiper-form-wrap .swiper-slider_fullheight .swiper-pagination-bullet {
    width: 30px;
  }

  body.bv-page-index > .page > .swiper-form-wrap .swiper-slider_fullheight .swiper-pagination-bullet-active {
    width: 44px;
  }
}

@media (max-height: 620px) and (orientation: landscape) {
  body.bv-page-index > .page > .swiper-form-wrap .swiper-slide-caption {
    padding: 20px 0 48px !important;
  }

  body.bv-page-index > .page > .swiper-form-wrap .swiper-slide-caption h6,
body.bv-page-index > .page > .swiper-form-wrap .swiper-slide-caption p {
    display: none !important;
  }

  body.bv-page-index > .page > .swiper-form-wrap .swiper-slide-caption h2 {
    margin-bottom: 6px;
    font-size: clamp(10px, 1.3vw, 13px) !important;
  }

  body.bv-page-index > .page > .swiper-form-wrap .swiper-slide-caption h1 {
    margin-bottom: 0;
    font-size: clamp(30px, min(5vw, 12vh), 50px) !important;
    line-height: 1.03;
  }

  body.bv-page-index > .page > .swiper-form-wrap .swiper-slider_fullheight .swiper-pagination {
    bottom: max(10px, env(safe-area-inset-bottom)) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.bv-page-index > .page > .swiper-form-wrap .swiper-container {
    scroll-behavior: auto;
  }
}

/* Mobile homepage choices — every snapped card keeps a real inset,
including
 * after the user has scrolled to the middle or end of the list. */
@media (max-width: 767.98px) {
  body.bv-page-index .bv-home-quicklinks {
    box-sizing: border-box;
    overflow: hidden;
  }

  body.bv-page-index .bv-home-quicklinks > .bv-home-quicklinks__inner.container {
    display: flex;
    width: 100%;
    max-width: none;
    margin-right: 0;
    margin-left: 0;
    padding: 7px max(18px, env(safe-area-inset-right)) 10px max(18px, env(safe-area-inset-left));
    box-sizing: border-box;
    overflow-x: auto;
    overflow-y: hidden;
    gap: 13px;
    scroll-padding-right: max(18px, env(safe-area-inset-right));
    scroll-padding-left: max(18px, env(safe-area-inset-left));
    scroll-snap-type: x mandatory;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  body.bv-page-index .bv-home-quicklinks > .bv-home-quicklinks__inner.container::-webkit-scrollbar {
    display: none;
  }

  body.bv-page-index .bv-home-quicklinks__item {
    width: min(78vw, 300px);
    min-width: min(78vw, 300px);
    max-width: min(78vw, 300px);
    min-height: 118px;
    padding: 20px 68px 20px 20px;
    box-sizing: border-box;
    flex: 0 0 min(78vw, 300px);
    scroll-margin-right: max(18px, env(safe-area-inset-right));
    scroll-margin-left: max(18px, env(safe-area-inset-left));
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }

  body.bv-page-index .bv-home-quicklinks__item strong {
    display: block;
    max-width: 100%;
    overflow-wrap: break-word;
    hyphens: auto;
  }

  body.bv-page-index .bv-home-quicklinks__icon {
    right: 18px;
  }
}

@media (max-width: 359.98px) {
  body.bv-page-index .bv-home-quicklinks > .bv-home-quicklinks__inner.container {
    padding-right: max(14px, env(safe-area-inset-right));
    padding-left: max(14px, env(safe-area-inset-left));
    scroll-padding-right: max(14px, env(safe-area-inset-right));
    scroll-padding-left: max(14px, env(safe-area-inset-left));
  }

  body.bv-page-index .bv-home-quicklinks__item {
    width: calc(100vw - 60px);
    min-width: calc(100vw - 60px);
    max-width: calc(100vw - 60px);
    padding-right: 62px;
    padding-left: 17px;
    flex-basis: calc(100vw - 60px);
  }
}

/* Homepage story labels share one real-flow stack, so translations and zoom
 * can never place the territorial keyphrase over the welcome eyebrow. */
body.bv-page-index .bv-home-story__label-stack {
  position: relative;
  z-index: 2;
  display: flex;
  max-width: 100%;
  margin: 0 0 clamp(22px, 3vw, 30px);
  align-items: flex-start;
  flex-direction: column;
  gap: 10px;
}

body.bv-page-index .bv-home-story__label-stack > h6 {
  max-width: 100%;
  margin: 0 !important;
}

body.bv-page-index .bv-home-story__label-stack > .bv-section-keyphrase {
  position: relative !important;
  inset: auto !important;
  display: flex;
  width: fit-content;
  max-width: 100%;
  min-height: 36px;
  margin: 0 !important;
  padding: 8px 14px;
  align-items: center;
  overflow: visible;
  text-align: left;
  overflow-wrap: anywhere;
  white-space: normal;
}

body.bv-page-index .bv-home-story__label-stack + h2 {
  margin-top: 0 !important;
}

/* Homepage section headings: at compact widths labels take part in the real
 * document flow, so long translations can wrap without covering headings. */
@media (max-width: 991.98px) {
  body.bv-page-index .bv-video-section:not(.bv-video-library)::before {
    display: none;
    content: none;
  }

  body.bv-page-index .bv-video-section:not(.bv-video-library) > .bv-section-keyphrase,
  body.bv-page-index .bv-home-story > .bv-section-keyphrase {
    position: relative !important;
    inset: auto !important;
    display: flex;
    width: fit-content;
    max-width: min(calc(100% - 32px), 640px);
    min-height: 36px;
    margin: 0 auto clamp(24px, 4vw, 34px);
    padding: 8px 14px;
    align-items: center;
    justify-content: center;
    overflow: visible;
    text-align: center;
    overflow-wrap: anywhere;
    white-space: normal;
  }

  body.bv-page-index .bv-video-section:not(.bv-video-library) {
    padding-top: clamp(42px, 6vw, 58px) !important;
  }

  body.bv-page-index .bv-home-story {
    padding-top: clamp(44px, 6vw, 62px) !important;
  }

  body.bv-page-index .bv-home-story__copy h6,
  body.bv-page-index .bv-home-reviews__eyebrow {
    width: fit-content;
    max-width: 100%;
    height: auto;
    min-height: 38px;
    padding: 9px 14px;
    box-sizing: border-box;
    justify-content: center;
    line-height: 1.45;
    text-align: center;
    overflow-wrap: anywhere;
    white-space: normal;
  }

  body.bv-page-index .bv-home-story__label-stack {
    align-items: center;
  }

  body.bv-page-index .bv-home-story__label-stack > .bv-section-keyphrase {
    justify-content: center;
    text-align: center;
  }

  /* This sentence duplicates the visible review eyebrow. Keep it available
   * to assistive technology without adding a second overlapping pill. */
  body.bv-page-index .bv-home-reviews > .bv-section-keyphrase {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    min-height: 0 !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
  }

  body.bv-page-index .bv-home-reviews {
    padding-top: clamp(54px, 7vw, 72px) !important;
  }

  body.bv-page-index .bv-home-reviews::after {
    top: 78px;
    opacity: .1;
  }

  body.bv-page-index .bv-home-reviews__eyebrow {
    margin-bottom: 20px;
  }

  body.bv-page-index .bv-home-reviews__title {
    max-width: 100%;
    margin-bottom: 20px;
    font-size: clamp(42px, 11vw, 72px);
    line-height: 1.04;
    letter-spacing: -.045em;
    overflow-wrap: break-word;
    hyphens: auto;
  }

  body.bv-page-index .bv-home-reviews__intro {
    display: block;
    max-width: min(100%, 650px);
    margin: 0 auto clamp(58px, 7vw, 76px);
    color: rgba(234, 249, 247, .9);
    line-height: 1.65;
    overflow: visible;
  }

  body.bv-page-index .bv-home-reviews__grid {
    position: relative;
    clear: both;
    margin-top: 0;
  }
}

@media (max-width: 575.98px) {
  body.bv-page-index .bv-video-section:not(.bv-video-library) > .bv-section-keyphrase,
body.bv-page-index .bv-home-story > .bv-section-keyphrase {
    max-width: calc(100% - 28px);
    margin-bottom: 24px;
    padding: 8px 12px;
    font-size: 11.75px;
    line-height: 1.42;
  }

  body.bv-page-index .bv-video-section:not(.bv-video-library) > .container {
    gap: 24px;
  }

  body.bv-page-index .bv-video-section:not(.bv-video-library) h3 {
    font-size: clamp(32px, 10vw, 44px);
    line-height: 1.08;
    letter-spacing: -.035em;
    overflow-wrap: break-word;
    hyphens: auto;
  }

  body.bv-page-index .bv-home-story__copy h6,
body.bv-page-index .bv-home-reviews__eyebrow {
    margin-right: auto;
    margin-left: auto;
    font-size: 10.75px;
    letter-spacing: .075em;
  }

  body.bv-page-index .bv-home-story__copy h2 {
    font-size: clamp(36px, 11vw, 52px);
    line-height: 1.06;
    letter-spacing: -.045em;
    overflow-wrap: break-word;
    hyphens: auto;
  }

  body.bv-page-index .bv-home-reviews {
    padding-top: 52px !important;
  }

  body.bv-page-index .bv-home-reviews::after {
    right: -52px;
    width: 150px;
    opacity: .075;
  }

  body.bv-page-index .bv-home-reviews__title {
    font-size: clamp(40px, 12vw, 56px);
  }

  body.bv-page-index .bv-home-reviews__intro {
    font-size: 15.5px;
    line-height: 1.68;
  }
}

@media (max-width: 359.98px) {
  body.bv-page-index .bv-video-section:not(.bv-video-library) > .bv-section-keyphrase,
body.bv-page-index .bv-home-story > .bv-section-keyphrase {
    max-width: calc(100% - 20px);
    padding: 8px 10px;
    font-size: 11px;
  }

  body.bv-page-index .bv-home-reviews__title {
    font-size: 39px;
  }

  body.bv-page-index .bv-home-reviews__intro {
    font-size: 15px;
  }
}

/* FAQ topic badge: replaces the generic answer counter with a page-specific,
* locally relevant phrase that remains readable with longer translations. */
.bv-faq__count {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  min-height: 58px;
  padding: 9px 20px 9px 9px;
  box-sizing: border-box;
  align-items: center;
  gap: 13px;
  border-color: rgba(255, 255, 255, .24);
  color: #f1fbfa;
  background: rgba(255, 255, 255, .055);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .07), 0 14px 34px rgba(1, 28, 35, .13);
  letter-spacing: normal;
  text-transform: none;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.bv-faq__count::before {
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  border-radius: 50%;
  background:
    radial-gradient(circle at center, var(--bv-faq-deeper) 0 3px, transparent 3.5px),
    linear-gradient(145deg, var(--bv-faq-aqua), #75e2d8);
  box-shadow: 0 9px 22px rgba(1, 29, 36, .22), inset 0 1px 0 rgba(255, 255, 255, .42);
  content: "";
}

.bv-faq__count strong {
  display: none;
}

.bv-faq__count span {
  min-width: 0;
  max-width: 420px;
  color: inherit;
  font-family: "Manrope", "Segoe UI", Arial, sans-serif;
  font-size: clamp(11.5px, .82vw, 13px);
  font-weight: 800;
  line-height: 1.45;
  letter-spacing: .07em;
  text-align: left;
  text-transform: uppercase;
  overflow-wrap: anywhere;
  hyphens: auto;
  text-wrap: balance;
}

@media (max-width: 991.98px) {
  .bv-faq__header {
    display: block;
  }

  .bv-faq__count {
    margin-top: 28px;
  }
}

@media (max-width: 479.98px) {
  .bv-faq__count {
    width: 100%;
    min-height: 56px;
    padding: 9px 14px 9px 9px;
    border-radius: 22px;
  }

  .bv-faq__count::before {
    width: 36px;
    height: 36px;
    flex-basis: 36px;
  }

  .bv-faq__count span {
    max-width: none;
    font-size: 11px;
    letter-spacing: .055em;
  }
}

/* Compact pre-footer composition: every panel follows its real content height.
 * The richer story balances a stacked contacts/social column on wide screens. */
.bv-prefooter-modern {
  padding-top: clamp(68px, 6vw, 94px);
  padding-bottom: clamp(54px, 5vw, 72px);
}

.bv-prefooter-modern .bv-prefooter-modern__grid {
  align-items: start;
  align-content: start;
  grid-auto-rows: max-content;
  gap: clamp(14px, 1.7vw, 22px);
}

.bv-prefooter-modern .bv-prefooter-modern__grid > .bv-prefooter-card {
  height: auto !important;
  min-height: 0 !important;
  padding: clamp(24px, 2.5vw, 34px);
  align-self: start;
}

.bv-prefooter-modern .bv-prefooter-trust {
  margin-top: clamp(24px, 3vw, 34px);
  padding-top: 0;
}

.bv-prefooter-modern .bv-prefooter-card h6 {
  margin-bottom: 18px;
}

.bv-prefooter-modern .bv-prefooter-socials {
  margin-top: 14px;
}

@media (min-width: 1180px) {
  .bv-prefooter-modern .bv-prefooter-modern__grid {
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
  }

  .bv-prefooter-modern .bv-prefooter-modern__grid > .bv-prefooter-card--1 {
    grid-column: 1;
    grid-row: 1 / span 2;
  }

  .bv-prefooter-modern .bv-prefooter-modern__grid > .bv-prefooter-card--2 {
    grid-column: 2;
    grid-row: 1;
  }

  .bv-prefooter-modern .bv-prefooter-modern__grid > .bv-prefooter-card--3 {
    grid-column: 2;
    grid-row: 2;
  }
}

@media (min-width: 768px) and (max-width: 1179.98px) {
  .bv-prefooter-modern .bv-prefooter-modern__grid {
    align-items: start;
  }

  .bv-prefooter-modern .bv-prefooter-modern__grid > .bv-prefooter-card--2,
.bv-prefooter-modern .bv-prefooter-modern__grid > .bv-prefooter-card--3 {
    align-self: start;
  }
}

@media (max-width: 767.98px) {
  .bv-prefooter-modern {
    padding: 54px 0 58px;
  }

  .bv-prefooter-modern .bv-prefooter-modern__grid {
    grid-auto-rows: max-content;
    gap: 12px;
  }

  .bv-prefooter-modern .bv-prefooter-modern__grid > .bv-prefooter-card,
.bv-prefooter-modern .bv-prefooter-modern__grid > .bv-prefooter-card--1 {
    height: auto !important;
    min-height: 0 !important;
    padding: 22px 18px;
    align-self: start;
  }

  .bv-prefooter-modern .bv-prefooter-trust {
    margin-top: 24px;
  }
}

@media (max-width: 359.98px) {
  .bv-prefooter-modern {
    padding-top: 48px;
    padding-bottom: 52px;
  }

  .bv-prefooter-modern .bv-prefooter-modern__grid > .bv-prefooter-card {
    padding: 20px 15px;
  }
}

body h1,
body h2 {
  line-height: 1.18 !important;
  overflow-wrap: break-word;
  text-wrap: balance;
}

body h3 {
  line-height: 1.22 !important;
  overflow-wrap: break-word;
  text-wrap: balance;
}

/* The opening slider has a fixed viewport height,
so it keeps compact but
 * collision-safe leading while its small overline retains normal spacing. */
body.bv-page-index > .page > .swiper-form-wrap .swiper-slide-caption h1 {
  line-height: 1.12 !important;
}

body.bv-page-index > .page > .swiper-form-wrap .swiper-slide-caption h2 {
  line-height: 1.35 !important;
}

@media (max-width: 767.98px) {
  body h1,
body h2 {
    line-height: 1.2 !important;
    hyphens: auto;
  }

  body h3 {
    line-height: 1.24 !important;
    hyphens: auto;
  }

  body.bv-page-index > .page > .swiper-form-wrap .swiper-slide-caption h1 {
    line-height: 1.14 !important;
  }
}

/* Services story cards: keep every translation readable and inside its card. */
body.bv-page-servizi .bv-services-story-grid {
  align-items: stretch;
}

body.bv-page-servizi .bv-services-story-card {
  display: flex;
  min-height: 0;
  height: auto;
  padding: clamp(26px, 2.2vw, 36px);
  flex-direction: column;
}

body.bv-page-servizi .bv-services-story-card__header {
  display: grid;
  min-width: 0;
  align-items: start;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 12px;
}

body.bv-page-servizi .bv-services-story-card__marker {
  width: 30px;
  height: 30px;
  min-width: 30px;
  margin-top: 2px;
}

body.bv-page-servizi .bv-services-overview .bv-services-story-card__title {
  min-width: 0;
  max-width: 100%;
  font-size: clamp(22px, 1.55vw, 31px) !important;
  line-height: 1.22 !important;
  letter-spacing: -.035em;
  word-break: normal;
  overflow-wrap: break-word;
  hyphens: none !important;
  text-wrap: balance;
}

body.bv-page-servizi .bv-services-overview .bv-services-story-card__text {
  max-width: 58ch;
  font-size: clamp(15px, 1vw, 17px);
  line-height: 1.68;
  word-break: normal;
  overflow-wrap: break-word;
  hyphens: none !important;
  text-wrap: pretty;
}

@media (max-width: 1279.98px) {
  body.bv-page-servizi .bv-services-story-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.bv-page-servizi .bv-services-story-card--3 {
    grid-column: 1 / -1;
  }
}

@media (max-width: 759.98px) {
  body.bv-page-servizi .bv-services-story-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  body.bv-page-servizi .bv-services-story-card,
  body.bv-page-servizi .bv-services-story-card--3 {
    padding: clamp(23px, 6vw, 30px);
    grid-column: auto;
  }

  body.bv-page-servizi .bv-services-overview .bv-services-story-card__title {
    font-size: clamp(21px, 6.6vw, 27px) !important;
    line-height: 1.24 !important;
  }

  body.bv-page-servizi .bv-services-overview .bv-services-story-card__text {
    max-width: none;
    font-size: clamp(14.5px, 4.2vw, 16px);
    line-height: 1.65;
  }
}

@media (max-width: 359.98px) {
  body.bv-page-servizi .bv-services-story-card__header {
    grid-template-columns: 26px minmax(0, 1fr);
    gap: 10px;
  }

  body.bv-page-servizi .bv-services-story-card__marker {
    width: 26px;
    height: 26px;
    min-width: 26px;
  }
}

/* Language selector: clean flag buttons without heavy outlines. */
.rd-navbar-static .rd-navbar-nav > li.bv-language-link > a,
.rd-navbar-fixed .rd-navbar-nav > li.bv-language-link > a {
  border: 0 !important;
  box-shadow: none !important;
}

.rd-navbar-static .rd-navbar-nav > li.bv-language-link > a {
  background: transparent;
}

.rd-navbar-static .rd-navbar-nav > li.bv-language-link > a:hover,
.rd-navbar-static .rd-navbar-nav > li.bv-language-link > a:focus-visible,
.rd-navbar-fixed .rd-navbar-nav > li.bv-language-link > a:hover,
.rd-navbar-fixed .rd-navbar-nav > li.bv-language-link > a:focus-visible {
  border: 0 !important;
  background-color: rgba(32, 182, 178, .08);
  box-shadow: none !important;
}

.rd-navbar-static .rd-navbar-nav > li.bv-language-link > a:focus-visible,
.rd-navbar-fixed .rd-navbar-nav > li.bv-language-link > a:focus-visible {
  outline: 2px solid rgba(10, 135, 148, .52);
  outline-offset: 2px;
}

.bv-flag-icon {
  border: 0 !important;
  box-shadow: 0 4px 11px rgba(6, 63, 77, .14) !important;
}

/* Viewport-aware photo galleries: the complete card remains visible below
   the fixed navigation, including localized headings and every control. */
.bv-home-story__media,
.bv-restaurant-gallery__column,
.bv-gallery-showcase__deck {
  scroll-margin-top: calc(var(--bv-anchor-offset, 108px) + 16px);
}

.bv-home-story__media.bv-gallery-panel--viewport-fit .owl-carousel figure,
.bv-restaurant-gallery__column.bv-gallery-panel--viewport-fit .bv-restaurant-gallery__carousel figure,
.bv-gallery-showcase__deck.bv-gallery-panel--viewport-fit .bv-gallery-showcase__carousel figure {
  height: var(--bv-gallery-fit-height) !important;
  min-height: 0 !important;
  max-height: var(--bv-gallery-fit-height) !important;
  aspect-ratio: auto !important;
}

@media (max-width: 991.98px) {
  .bv-home-story__media,
  .bv-restaurant-gallery__column,
  .bv-gallery-showcase__deck {
    scroll-margin-top: calc(var(--bv-anchor-offset, 76px) + 12px);
  }
}

/* Responsive title scale: mobile headings stay expressive without taking
   over the viewport; the tablet step keeps the transition to desktop fluid. */
@media (min-width: 768px) and (max-width: 991.98px) {
  body h2:not(.not-animated) {
    font-size: clamp(36px, 4.2vw, 42px) !important;
    line-height: 1.12 !important;
  }

  body h3 {
    font-size: clamp(30px, 3.3vw, 34px) !important;
    line-height: 1.16 !important;
  }

  body.bv-page-index > .page > .swiper-form-wrap .swiper-slide-caption h1 {
    font-size: clamp(42px, 5vw, 50px) !important;
    line-height: 1.08 !important;
  }
}

@media (max-width: 767.98px) {
  body h2:not(.not-animated) {
    font-size: clamp(29px, 8.7vw, 36px) !important;
    line-height: 1.1 !important;
    letter-spacing: -.04em;
  }

  body h3 {
    font-size: clamp(24px, 7vw, 30px) !important;
    line-height: 1.15 !important;
    letter-spacing: -.035em;
  }

  body.bv-page-index > .page > .swiper-form-wrap .swiper-slide-caption h1 {
    font-size: clamp(32px, 9.5vw, 42px) !important;
    line-height: 1.08 !important;
  }

  body.bv-page-index .bv-video-section:not(.bv-video-library) h3 {
    font-size: clamp(28px, 8vw, 34px) !important;
    line-height: 1.12 !important;
  }

  body h2:not(.not-animated),
  body h3 {
    overflow-wrap: break-word;
    hyphens: auto;
    text-wrap: balance;
  }
}

/* Internal page navigator: layered destination cards with a clear hierarchy. */
.bv-page-nav {
  margin-top: clamp(-42px, -2.8vw, -30px);
}

.bv-page-nav .bv-page-nav__inner {
  position: relative;
  max-width: 1240px;
  padding: 12px;
  overflow: hidden;
  border: 1px solid rgba(7, 57, 71, .1);
  border-radius: 32px 14px 32px 32px;
  background:
    radial-gradient(circle at 8% 0%, rgba(32, 182, 178, .12), transparent 15rem),
    radial-gradient(circle at 92% 100%, rgba(239, 112, 95, .09), transparent 16rem),
    linear-gradient(135deg, rgba(255, 255, 255, .985), rgba(249, 246, 238, .965));
  box-shadow:
    0 28px 72px rgba(4, 48, 60, .16),
    inset 0 1px 0 rgba(255, 255, 255, .88);
  gap: 12px;
  isolation: isolate;
}

.bv-page-nav .bv-page-nav__inner::before {
  position: absolute;
  z-index: -1;
  top: -80px;
  left: 17%;
  width: 36%;
  height: 150px;
  border-radius: 50%;
  background: rgba(32, 182, 178, .09);
  content: "";
  filter: blur(24px);
  pointer-events: none;
}

.bv-page-nav .bv-page-nav__inner .bv-page-nav__item {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 96px;
  padding: 15px 15px;
  overflow: hidden;
  border: 1px solid rgba(6, 91, 101, .15);
  border-radius: 22px 9px 22px 22px;
  color: var(--bv-ink) !important;
  background: linear-gradient(145deg, #fff 0%, #f5fbf8 58%, #edf5f1 100%);
  box-shadow:
    0 12px 28px rgba(7, 57, 71, .085),
    inset 0 1px 0 #fff;
  align-items: center;
  grid-template-columns: 40px minmax(0, 1fr) 38px;
  gap: 13px;
  transform: none;
  transition:
    border-color .28s ease,
    background .3s ease,
    box-shadow .35s var(--bv-ease),
    transform .35s var(--bv-ease);
}

.bv-page-nav .bv-page-nav__inner .bv-page-nav__item::before {
  position: absolute;
  top: 0;
  right: 24px;
  left: 24px;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(32, 182, 178, .9), rgba(239, 112, 95, .66));
  content: "";
  opacity: .72;
  transform: scaleX(.74);
  transition: opacity .28s ease, transform .38s var(--bv-ease);
}

.bv-page-nav .bv-page-nav__inner .bv-page-nav__item::after {
  right: 60px;
  bottom: 11px;
  left: 60px;
  width: auto;
  height: 2px;
  background: linear-gradient(90deg, var(--bv-sea), var(--bv-coral));
  opacity: .28;
  transform: scaleX(.5);
}

.bv-page-nav__index {
  display: grid;
  width: 40px;
  height: 40px;
  border: 1px solid rgba(8, 123, 132, .28);
  border-radius: 13px 6px 13px 13px;
  color: #075f69;
  background: linear-gradient(145deg, #effaf8, #dff2ef);
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .045em;
  place-items: center;
  box-shadow: inset 0 1px 0 #fff, 0 7px 16px rgba(7, 83, 93, .08);
  transition: border-color .28s ease, color .28s ease, background .28s ease, box-shadow .32s ease, transform .35s var(--bv-ease);
}

.bv-page-nav__copy {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.bv-page-nav .bv-page-nav__number {
  display: block;
  color: #a83229 !important;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .095em;
}

.bv-page-nav .bv-page-nav__label {
  display: block;
  color: var(--bv-ink);
  font-size: clamp(15px, 1.18vw, 17px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -.025em;
  text-wrap: balance;
}

.bv-page-nav__icon {
  display: grid;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(8, 123, 132, .24);
  border-radius: 13px;
  color: #076873;
  background: rgba(255, 255, 255, .92);
  place-items: center;
  box-shadow: 0 8px 18px rgba(7, 57, 71, .08);
  transition: border-color .28s ease, color .28s ease, background .28s ease, transform .35s var(--bv-ease);
}

.bv-page-nav__icon svg {
  width: 18px;
  height: 18px;
}

.bv-page-nav .bv-page-nav__inner .bv-page-nav__item:focus:not(:focus-visible) {
  border-color: rgba(6, 91, 101, .15);
  color: var(--bv-ink) !important;
  background: linear-gradient(145deg, #fff 0%, #f5fbf8 58%, #edf5f1 100%);
  box-shadow:
    0 12px 28px rgba(7, 57, 71, .085),
    inset 0 1px 0 #fff;
  transform: none;
}

/* The current destination remains visibly selected after a click without
 * sacrificing contrast. Explicit child colours close the older link-state
 * cascade shared by every translated page. */
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item.is-active,
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item[aria-current="location"],
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item:active {
  border-color: rgba(8, 123, 132, .46);
  color: #082f39 !important;
  background: linear-gradient(135deg, #def3ef 0%, #f8fcf8 54%, #fdf0eb 100%);
  box-shadow:
    inset 4px 0 0 #0a8794,
    0 16px 34px rgba(5, 78, 88, .14),
    inset 0 1px 0 #fff;
  transform: none;
}

.bv-page-nav .bv-page-nav__inner .bv-page-nav__item.is-active .bv-page-nav__index,
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item[aria-current="location"] .bv-page-nav__index,
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item:active .bv-page-nav__index {
  border-color: rgba(4, 72, 82, .42);
  color: #fff;
  background: linear-gradient(145deg, #087b87, #075d6b);
  box-shadow: 0 9px 20px rgba(4, 72, 82, .22), inset 0 1px 0 rgba(255, 255, 255, .26);
  transform: none;
}

.bv-page-nav .bv-page-nav__inner .bv-page-nav__item.is-active .bv-page-nav__number,
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item[aria-current="location"] .bv-page-nav__number,
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item:active .bv-page-nav__number {
  color: #9f3028 !important;
}

.bv-page-nav .bv-page-nav__inner .bv-page-nav__item.is-active .bv-page-nav__label,
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item[aria-current="location"] .bv-page-nav__label,
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item:active .bv-page-nav__label {
  color: #082f39;
}

.bv-page-nav .bv-page-nav__inner .bv-page-nav__item.is-active .bv-page-nav__icon,
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item[aria-current="location"] .bv-page-nav__icon,
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item:active .bv-page-nav__icon {
  border-color: rgba(8, 123, 132, .32);
  color: #075d67;
  background: rgba(255, 255, 255, .88);
  transform: none;
}

.bv-page-nav .bv-page-nav__inner .bv-page-nav__item.is-active::before,
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item[aria-current="location"]::before,
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item:active::before {
  opacity: 1;
  transform: scaleX(1);
}

.bv-page-nav .bv-page-nav__inner .bv-page-nav__item.is-active::after,
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item[aria-current="location"]::after,
.bv-page-nav .bv-page-nav__inner .bv-page-nav__item:active::after {
  width: auto;
  opacity: .72;
  transform: scaleX(1);
}

.bv-page-nav .bv-page-nav__inner .bv-page-nav__item:focus-visible {
  border-color: rgba(8, 123, 132, .55);
  outline: 3px solid rgba(10, 135, 148, .34);
  outline-offset: 3px;
}

@media (hover: hover) and (pointer: fine) {
  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item:hover {
    border-color: rgba(126, 222, 214, .62) !important;
    color: #fff !important;
    background: linear-gradient(135deg, #077781, #054b59 72%, #043b48) !important;
    box-shadow: 0 20px 42px rgba(4, 57, 69, .28);
    transform: translateY(-4px);
  }

  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item:hover::before {
    opacity: 1;
    transform: scaleX(1);
  }

  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item:hover::after {
    width: auto;
    opacity: .9;
    transform: scaleX(1);
  }

  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item:hover .bv-page-nav__index {
    border-color: rgba(255, 255, 255, .62) !important;
    color: #fff !important;
    background: linear-gradient(145deg, #063d49, #022c36) !important;
    box-shadow: 0 10px 22px rgba(1, 28, 35, .32), inset 0 1px 0 rgba(255, 255, 255, .18);
    transform: translateY(-2px) rotate(-3deg) scale(1.06);
  }

  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item:hover .bv-page-nav__number {
    color: #fff2ed !important;
  }

  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item:hover .bv-page-nav__label {
    color: #fff !important;
  }

  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item:hover .bv-page-nav__icon {
    border-color: rgba(255, 255, 255, .86) !important;
    color: #075d6b !important;
    background: #fff !important;
    transform: translateX(3px);
  }

  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item:hover:active {
    box-shadow: 0 13px 28px rgba(4, 57, 69, .24);
    transform: translateY(-1px) scale(.995);
  }
}

@media (hover: none), (pointer: coarse) {
  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item:not(.is-active):not([aria-current="location"]):hover:not(:focus-visible) {
    border-color: rgba(6, 91, 101, .15);
    color: var(--bv-ink) !important;
    background: linear-gradient(145deg, #fff 0%, #f5fbf8 58%, #edf5f1 100%);
    box-shadow:
      0 12px 28px rgba(7, 57, 71, .085),
      inset 0 1px 0 #fff;
    transform: none;
  }

  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item:not(.is-active):not([aria-current="location"]):hover:not(:focus-visible) .bv-page-nav__index {
    border-color: rgba(8, 123, 132, .28);
    color: #075f69;
    background: linear-gradient(145deg, #effaf8, #dff2ef);
    transform: none;
  }

  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item:not(.is-active):not([aria-current="location"]):hover:not(:focus-visible) .bv-page-nav__number {
    color: #a83229 !important;
  }

  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item:not(.is-active):not([aria-current="location"]):hover:not(:focus-visible) .bv-page-nav__label {
    color: var(--bv-ink);
  }

  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item:not(.is-active):not([aria-current="location"]):hover:not(:focus-visible) .bv-page-nav__icon {
    border-color: rgba(8, 123, 132, .24);
    color: #076873;
    background: rgba(255, 255, 255, .92);
    transform: none;
  }
}

@media (min-width: 768px) and (max-width: 991.98px) {
  .bv-page-nav .bv-page-nav__inner {
    padding: 10px;
    gap: 8px;
  }

  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item {
    min-height: 92px;
    padding: 12px 10px;
    grid-template-columns: 34px minmax(0, 1fr) 32px;
    gap: 8px;
  }

  .bv-page-nav__index,
  .bv-page-nav__icon {
    width: 34px;
    height: 34px;
    border-radius: 11px;
  }

  .bv-page-nav .bv-page-nav__label {
    font-size: 14px;
  }
}

@media (max-width: 767.98px) {
  .bv-page-nav {
    margin-top: -22px;
    padding-right: 10px;
    padding-left: 10px;
  }

  .bv-page-nav .bv-page-nav__inner {
    margin-right: 0;
    margin-left: 0;
    padding: 10px;
    overflow-x: auto;
    border-right: 1px solid rgba(7, 57, 71, .1);
    border-left: 1px solid rgba(7, 57, 71, .1);
    border-radius: 24px 10px 24px 24px;
    gap: 10px;
  }

  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item {
    min-width: min(250px, calc(100vw - 48px));
    min-height: 94px;
    padding: 12px;
    align-items: center;
    grid-template-columns: 34px minmax(0, 1fr) 34px;
    gap: 9px;
    scroll-snap-align: center;
  }

  .bv-page-nav__index,
  .bv-page-nav__icon {
    width: 34px;
    height: 34px;
    border-radius: 11px;
  }

  .bv-page-nav .bv-page-nav__number {
    font-size: 9px;
  }

  .bv-page-nav .bv-page-nav__label {
    font-size: 14.5px;
    line-height: 1.18;
  }

  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item::after {
    right: 50px;
    left: 50px;
  }

  .bv-page-nav .bv-page-nav__hint {
    display: none !important;
  }
}

@media (max-width: 359.98px) {
  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item {
    min-width: min(228px, 72vw);
    padding-right: 10px;
    padding-left: 10px;
    grid-template-columns: 32px minmax(0, 1fr) 32px;
    gap: 8px;
  }

  .bv-page-nav__index,
  .bv-page-nav__icon {
    width: 32px;
    height: 32px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item,
  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item::before,
  .bv-page-nav .bv-page-nav__inner .bv-page-nav__item::after,
  .bv-page-nav__index,
  .bv-page-nav__icon {
    transition: none !important;
  }
}

/* Homepage story: on phones lead with the territorial keyphrase, then show
 * the welcome eyebrow. Tablet and desktop retain the established order. */
@media (max-width: 767.98px) {
  body.bv-page-index .bv-home-story__label-stack > .bv-section-keyphrase {
    order: -1;
  }
}

/* The fullscreen control uses an unavailable icon glyph on some devices.
 * Hide it immediately; the shared gallery enhancer also removes it from DOM. */
.lg-outer .lg-toolbar .lg-fullscreen {
  display: none !important;
}

/* Tablet portrait uses the same compact, sticky mobile header as the rest of
 * the responsive range. Keep its wrapper aligned with the 82px menu panel. */
@media (min-width: 768px) and (max-width: 899.98px) and (orientation: portrait) {
  .page-header,
  .rd-navbar-wrap,
  .rd-navbar {
    height: 82px !important;
  }

  .rd-navbar-static .rd-navbar-inner {
    display: grid !important;
    width: calc(100% - 24px);
    height: 112px;
    min-height: 112px;
    padding: 7px 14px !important;
    border-radius: 0 0 26px 26px;
    align-items: center;
    grid-template-columns: 78px minmax(0, 1fr);
    gap: 12px;
  }

  .rd-navbar-static .rd-navbar-panel {
    display: flex !important;
    width: 78px !important;
    height: 88px !important;
    margin: 0 !important;
    padding: 0 !important;
    align-items: center;
    justify-content: center;
    grid-column: 1;
    grid-row: 1;
  }

  .rd-navbar-static .rd-navbar-brand,
  .rd-navbar-static .rd-navbar-brand img {
    width: auto !important;
    height: 74px !important;
    max-height: 74px !important;
    margin: 0 !important;
  }

  .rd-navbar-static .rd-navbar-nav-wrap {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    grid-column: 2;
    grid-row: 1;
  }

  .rd-navbar-static .rd-navbar-nav {
    display: grid !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    grid-template-columns: repeat(8, max-content);
    grid-template-rows: 42px 34px;
    align-content: center;
    align-items: center;
    justify-content: center;
    gap: 2px 0;
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-nav-main > a {
    min-height: 34px;
    padding-right: 6px !important;
    padding-left: 6px !important;
    font-size: 9px;
  }

  .rd-navbar-static .rd-navbar-nav > li > a.bv-nav-contact,
  .rd-navbar-static .rd-navbar-nav > li > a.bv-nav-contact:hover,
  .rd-navbar-static .rd-navbar-nav > li > a.bv-nav-contact:focus-visible {
    min-height: 42px;
    margin-left: 4px;
    padding-right: 15px !important;
    padding-left: 15px !important;
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-language-link,
  .rd-navbar-static .rd-navbar-nav > li.bv-language-link > a {
    width: 32px !important;
    min-width: 32px !important;
    height: 32px;
  }

  .rd-navbar-static .rd-navbar-nav > li.bv-language-link {
    flex-basis: 32px !important;
  }

  .rd-navbar-static .bv-flag-icon {
    width: 23px;
    height: 23px;
    flex-basis: 23px;
  }
}

/* Photo viewer: the picture is the only visual content. Captions and the
 * thumbnail rail are disabled in JavaScript; these guards also prevent a
 * cached gallery instance from flashing either element while it opens. */
.lg-outer .lg-sub-html,
.lg-outer .lg-thumb-outer,
.lg-outer .lg-toogle-thumb {
  display: none !important;
}

.lg-outer.lg-has-thumb .lg-item,
.lg-outer.lg-can-toggle .lg-item {
  padding-bottom: 0 !important;
}

/* On phones, including landscape phones, navigation occupies its own row
 * below the media area instead of covering the left and right of the photo. */
@media (max-width: 767.98px), (max-height: 500.98px) and (orientation: landscape) {
  .lg-outer .lg {
    display: grid;
    grid-template-rows: 64px minmax(0, 1fr) calc(76px + env(safe-area-inset-bottom));
    grid-template-columns: minmax(0, 1fr);
  }

  .lg-outer .lg-toolbar {
    position: relative;
    grid-row: 1;
    grid-column: 1;
  }

  .lg-outer .lg-inner {
    position: relative;
    top: auto;
    bottom: auto;
    width: 100%;
    height: 100%;
    min-height: 0;
    grid-row: 2;
    grid-column: 1;
  }

  .lg-outer .lg-actions {
    position: relative;
    z-index: 1181;
    display: flex;
    padding: 8px 0 calc(12px + env(safe-area-inset-bottom));
    align-items: center;
    justify-content: center;
    gap: 14px;
    grid-row: 3;
    grid-column: 1;
    pointer-events: none;
  }

  .lg-outer .lg-actions .lg-prev,
  .lg-outer .lg-actions .lg-next {
    position: relative;
    top: auto;
    right: auto;
    left: auto;
    margin: 0;
    transform: none !important;
    pointer-events: auto;
  }
}

@media (max-width: 479.98px) {
  .lg-outer .lg {
    grid-template-rows: 60px minmax(0, 1fr) calc(72px + env(safe-area-inset-bottom));
  }
}

/* Keep the expanded desktop navigation on the same vertical axis as the
 * brand. The legacy creative-navbar rule adds 40px above the menu at the top
 * of the page, which visibly drops every label below the header centre. */
@media (min-width: 1200px) {
  .rd-navbar-static:not(.rd-navbar--is-stuck).rd-navbar_creative .rd-navbar-nav-wrap {
    margin-top: 0;
  }
}

/* The two longest German labels nearly consume the full desktop menu row at
 * large font sizes. Preserve a safe buffer for focus rings and font-rendering
 * differences without changing the other translations. */
@media (min-width: 1800px) {
  html[lang="de"] .rd-navbar-static:not(.rd-navbar--is-stuck) .rd-navbar-nav {
    gap: 4px;
  }

  html[lang="de"] .rd-navbar-static:not(.rd-navbar--is-stuck) .rd-navbar-nav > li.bv-nav-main > a:not(.bv-nav-contact) {
    padding-right: 13px !important;
    padding-left: 13px !important;
  }
}

