:root {
  --bv-black: #0b0b0f;
  --bv-dark: #14141c;
  --bv-dark-2: #1d1d29;
  --bv-gold: #e6b64c;
  --bv-gold-deep: #b98a24;
  --bv-cream: #f7f2e7;
  --bv-white: #ffffff;
  --bv-text: #2a2a33;
  --bv-text-soft: #4a4a57;
  --bv-line: rgba(230, 182, 76, 0.28);
  --bv-radius: 18px;
  --bv-radius-sm: 12px;
  --bv-shadow: 0 24px 60px rgba(11, 11, 15, 0.18);
  --bv-shadow-soft: 0 12px 32px rgba(11, 11, 15, 0.1);
  --bv-font-body: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;
  --bv-font-display: "Playfair Display", Georgia, serif;
  --bv-transition: 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--bv-font-body);
  color: var(--bv-text);
  background: var(--bv-cream);
  line-height: 1.7;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5 {
  font-family: var(--bv-font-display);
  color: var(--bv-black);
  line-height: 1.15;
  letter-spacing: -0.02em;
}

h1 {
  font-size: clamp(2.2rem, 5vw, 4rem);
  font-weight: 800;
}

h2 {
  font-size: clamp(1.8rem, 3.4vw, 2.9rem);
  font-weight: 700;
}

h3 {
  font-size: clamp(1.3rem, 2.2vw, 1.85rem);
  font-weight: 700;
}

p {
  font-size: 1.05rem;
  color: var(--bv-text-soft);
}

a {
  color: var(--bv-gold-deep);
  text-decoration: none;
  transition: color var(--bv-transition);
}

a:hover {
  color: var(--bv-black);
}

.container {
  max-width: 1240px;
}

.bv-section {
  padding: 96px 0;
  position: relative;
}

.bv-section--tight {
  padding: 64px 0;
}

.bv-section--dark {
  background: var(--bv-dark);
}

.bv-section--dark h1,
.bv-section--dark h2,
.bv-section--dark h3,
.bv-section--dark h4 {
  color: var(--bv-white);
}

.bv-section--dark p {
  color: rgba(255, 255, 255, 0.82);
}

.bv-section--image {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: var(--bv-white);
}

.bv-section--image h2,
.bv-section--image h3 {
  color: var(--bv-white);
}

.bv-section--image p {
  color: rgba(255, 255, 255, 0.9);
}

.bv-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--bv-font-body);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--bv-gold-deep);
  margin-bottom: 18px;
}

.bv-section--dark .bv-eyebrow,
.bv-section--image .bv-eyebrow {
  color: var(--bv-gold);
}

.bv-eyebrow::before {
  content: "";
  width: 34px;
  height: 2px;
  background: currentColor;
  display: inline-block;
}

.bv-lead {
  font-size: 1.15rem;
  max-width: 720px;
}

.bv-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 15px 34px;
  border-radius: 999px;
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.02em;
  border: 2px solid transparent;
  transition: transform var(--bv-transition), box-shadow var(--bv-transition), background var(--bv-transition), color var(--bv-transition);
  cursor: pointer;
}

.bv-btn--gold {
  background: linear-gradient(135deg, var(--bv-gold), var(--bv-gold-deep));
  color: var(--bv-black);
  box-shadow: 0 14px 34px rgba(230, 182, 76, 0.35);
}

.bv-btn--gold:hover {
  transform: translateY(-3px);
  color: var(--bv-black);
  box-shadow: 0 20px 44px rgba(230, 182, 76, 0.5);
}

.bv-btn--outline {
  background: transparent;
  border-color: var(--bv-gold);
  color: var(--bv-gold);
}

.bv-btn--outline:hover {
  background: var(--bv-gold);
  color: var(--bv-black);
  transform: translateY(-3px);
}

.bv-btn--dark {
  background: var(--bv-black);
  color: var(--bv-white);
}

.bv-btn--dark:hover {
  background: var(--bv-dark-2);
  color: var(--bv-gold);
  transform: translateY(-3px);
}

.bv-header {
  background: rgba(11, 11, 15, 0.94);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--bv-line);
  padding: 14px 0;
}

.bv-header__top {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.85);
}

.bv-header__top i {
  color: var(--bv-gold);
  margin-right: 6px;
}

.bv-nav {
  display: flex;
  align-items: center;
  gap: 26px;
  flex-wrap: wrap;
}

.bv-nav__link {
  color: var(--bv-white);
  font-weight: 600;
  font-size: 0.95rem;
  position: relative;
}

.bv-nav__link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -6px;
  width: 0;
  height: 2px;
  background: var(--bv-gold);
  transition: width var(--bv-transition);
}

.bv-nav__link:hover {
  color: var(--bv-gold);
}

.bv-nav__link:hover::after {
  width: 100%;
}

.bv-nav__toggle {
  background: transparent;
  border: 1px solid var(--bv-line);
  color: var(--bv-gold);
  border-radius: 10px;
  padding: 8px 12px;
  font-size: 1.2rem;
}

.bv-hero {
  position: relative;
  min-height: 92vh;
  display: flex;
  align-items: center;
  background-size: cover;
  background-position: center;
  color: var(--bv-white);
}

.bv-hero h1 {
  color: var(--bv-white);
}

.bv-hero p {
  color: rgba(255, 255, 255, 0.9);
  font-size: 1.15rem;
  max-width: 640px;
}

.bv-hero__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 28px;
}

.bv-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 18px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid var(--bv-line);
  color: var(--bv-white);
  font-size: 0.85rem;
  font-weight: 600;
  backdrop-filter: blur(8px);
}

.bv-chip i {
  color: var(--bv-gold);
}

.bv-badge-18 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #b3261e;
  color: var(--bv-white);
  font-weight: 800;
  font-size: 1.05rem;
  border: 2px solid rgba(255, 255, 255, 0.6);
  flex-shrink: 0;
}

.bv-disclaimer {
  background: var(--bv-dark-2);
  border: 1px solid var(--bv-line);
  border-radius: var(--bv-radius);
  padding: 34px;
}

.bv-disclaimer h3 {
  color: var(--bv-white);
}

.bv-disclaimer p {
  color: rgba(255, 255, 255, 0.8);
}

.bv-disclaimer__list {
  list-style: none;
  padding: 0;
  margin: 18px 0 0;
  display: grid;
  gap: 10px;
}

.bv-disclaimer__list li {
  color: rgba(255, 255, 255, 0.85);
  padding-left: 28px;
  position: relative;
}

.bv-disclaimer__list li i {
  color: var(--bv-gold);
  position: absolute;
  left: 0;
  top: 6px;
}

.bv-card {
  background: var(--bv-white);
  border-radius: var(--bv-radius);
  box-shadow: var(--bv-shadow-soft);
  overflow: hidden;
  height: 100%;
  display: flex;
  flex-direction: column;
  transition: transform var(--bv-transition), box-shadow var(--bv-transition);
}

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

.bv-card__media {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--bv-dark-2);
}

.bv-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

.bv-card:hover .bv-card__media img {
  transform: scale(1.06);
}

.bv-card__tag {
  position: absolute;
  top: 16px;
  left: 16px;
  background: var(--bv-gold);
  color: var(--bv-black);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 6px 14px;
  border-radius: 999px;
}

.bv-card__body {
  padding: 26px;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 12px;
}

.bv-card__body h3 {
  margin: 0;
  font-size: 1.35rem;
}

.bv-card__body p {
  margin: 0;
  flex: 1;
}

.bv-card__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 8px;
  border-top: 1px solid rgba(11, 11, 15, 0.08);
}

.bv-price {
  font-family: var(--bv-font-display);
  font-weight: 800;
  font-size: 1.5rem;
  color: var(--bv-black);
}

.bv-price span {
  font-size: 0.85rem;
  font-family: var(--bv-font-body);
  font-weight: 600;
  color: var(--bv-text-soft);
}

.bv-stat {
  text-align: center;
  padding: 32px 18px;
  background: var(--bv-white);
  border-radius: var(--bv-radius-sm);
  box-shadow: var(--bv-shadow-soft);
  height: 100%;
}

.bv-stat__num {
  font-family: var(--bv-font-display);
  font-size: clamp(2.2rem, 4vw, 3.2rem);
  font-weight: 800;
  color: var(--bv-gold-deep);
  line-height: 1;
  display: block;
}

.bv-stat__label {
  margin-top: 10px;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--bv-text-soft);
}

.bv-feature {
  display: flex;
  gap: 20px;
  padding: 28px;
  background: var(--bv-white);
  border-radius: var(--bv-radius);
  box-shadow: var(--bv-shadow-soft);
  height: 100%;
  transition: transform var(--bv-transition);
}

.bv-feature:hover {
  transform: translateY(-6px);
}

.bv-feature__icon {
  flex-shrink: 0;
  width: 58px;
  height: 58px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--bv-gold), var(--bv-gold-deep));
  color: var(--bv-black);
  font-size: 1.4rem;
}

.bv-feature h3 {
  font-size: 1.2rem;
  margin: 0 0 8px;
}

.bv-feature p {
  margin: 0;
  font-size: 0.98rem;
}

.bv-slider {
  position: relative;
  border-radius: var(--bv-radius);
  overflow: hidden;
  box-shadow: var(--bv-shadow);
}

.bv-slider__track {
  position: relative;
  min-height: 520px;
}

.bv-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.7s ease, visibility 0.7s ease;
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: flex-end;
}

.bv-slide.is-active {
  opacity: 1;
  visibility: visible;
  position: relative;
}

.bv-slide__content {
  padding: 48px;
  max-width: 640px;
  color: var(--bv-white);
}

.bv-slide__content h3 {
  color: var(--bv-white);
  font-size: clamp(1.6rem, 3vw, 2.4rem);
}

.bv-slide__content p {
  color: rgba(255, 255, 255, 0.9);
}

.bv-slider__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 52px;
  height: 52px;
  border-radius: 50%;
  border: none;
  background: rgba(255, 255, 255, 0.9);
  color: var(--bv-black);
  font-size: 1.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background var(--bv-transition), transform var(--bv-transition);
  z-index: 5;
}

.bv-slider__nav:hover {
  background: var(--bv-gold);
  transform: translateY(-50%) scale(1.08);
}

.bv-slider__nav--prev {
  left: 20px;
}

.bv-slider__nav--next {
  right: 20px;
}

.bv-slider__dots {
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
  z-index: 5;
}

.bv-slider__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: none;
  background: rgba(255, 255, 255, 0.5);
  cursor: pointer;
  transition: background var(--bv-transition), width var(--bv-transition);
}

.bv-slider__dot.is-active {
  background: var(--bv-gold);
  width: 30px;
  border-radius: 999px;
}

.bv-review {
  background: var(--bv-white);
  border-radius: var(--bv-radius);
  padding: 30px;
  height: 100%;
  box-shadow: var(--bv-shadow-soft);
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.bv-review__stars {
  color: var(--bv-gold);
  font-size: 0.95rem;
  letter-spacing: 2px;
}

.bv-review__text {
  font-size: 1rem;
  color: var(--bv-text-soft);
  font-style: italic;
  flex: 1;
}

.bv-review__author {
  display: flex;
  align-items: center;
  gap: 14px;
}

.bv-review__avatar {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--bv-gold), var(--bv-gold-deep));
  color: var(--bv-black);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
}

.bv-review__name {
  font-weight: 700;
  color: var(--bv-black);
  font-size: 0.95rem;
}

.bv-review__role {
  font-size: 0.82rem;
  color: var(--bv-text-soft);
}

.bv-partner {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 22px;
  background: var(--bv-white);
  border-radius: var(--bv-radius-sm);
  color: var(--bv-black);
  font-family: var(--bv-font-display);
  font-weight: 700;
  font-size: 1.1rem;
  letter-spacing: 0.06em;
  box-shadow: var(--bv-shadow-soft);
  text-align: center;
  height: 100%;
  transition: transform var(--bv-transition);
}

.bv-partner:hover {
  transform: translateY(-4px);
}

.bv-form {
  background: var(--bv-white);
  border-radius: var(--bv-radius);
  padding: 40px;
  box-shadow: var(--bv-shadow);
}

.bv-form label {
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--bv-black);
  margin-bottom: 6px;
}

.bv-form .form-control,
.bv-form .form-select {
  border: 1px solid rgba(11, 11, 15, 0.15);
  border-radius: var(--bv-radius-sm);
  padding: 13px 16px;
  background: var(--bv-cream);
  color: var(--bv-text);
  transition: border-color var(--bv-transition), box-shadow var(--bv-transition);
}

.bv-form .form-control:focus,
.bv-form .form-select:focus {
  border-color: var(--bv-gold);
  box-shadow: 0 0 0 4px rgba(230, 182, 76, 0.22);
  background: var(--bv-white);
  outline: none;
}

.bv-form__note {
  font-size: 0.82rem;
  color: var(--bv-text-soft);
}

.bv-notify {
  display: none;
  margin-top: 22px;
  padding: 18px 22px;
  border-radius: var(--bv-radius-sm);
  background: #eafaf1;
  border: 1px solid #9ad9b3;
  color: #0f5132;
  font-weight: 600;
}

.bv-notify.is-visible {
  display: block;
  animation: bvFadeUp 0.5s ease both;
}

.bv-notify--error {
  background: #fdecea;
  border-color: #f2a9a2;
  color: #7a2018;
}

.bv-map {
  border-radius: var(--bv-radius);
  overflow: hidden;
  box-shadow: var(--bv-shadow);
  line-height: 0;
}

.bv-map iframe {
  width: 100%;
  height: 460px;
  border: 0;
  display: block;
}

.bv-hours {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 12px;
}

.bv-hours li {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 10px;
  border-bottom: 1px dashed rgba(11, 11, 15, 0.12);
  font-size: 0.95rem;
  color: var(--bv-text-soft);
}

.bv-hours li strong {
  color: var(--bv-black);
}

.bv-accordion .accordion-item {
  border: 1px solid rgba(11, 11, 15, 0.1);
  border-radius: var(--bv-radius-sm) !important;
  margin-bottom: 14px;
  overflow: hidden;
  background: var(--bv-white);
}

.bv-accordion .accordion-button {
  font-family: var(--bv-font-display);
  font-weight: 700;
  font-size: 1.08rem;
  color: var(--bv-black);
  background: var(--bv-white);
  padding: 20px 24px;
}

.bv-accordion .accordion-button:not(.collapsed) {
  background: var(--bv-cream);
  color: var(--bv-black);
  box-shadow: none;
}

.bv-accordion .accordion-button:focus {
  box-shadow: 0 0 0 4px rgba(230, 182, 76, 0.25);
}

.bv-accordion .accordion-body {
  padding: 4px 24px 24px;
  color: var(--bv-text-soft);
}

.bv-process {
  display: grid;
  gap: 22px;
}

.bv-process__step {
  display: grid;
  grid-template-columns: 84px 1fr;
  gap: 24px;
  align-items: start;
  background: var(--bv-white);
  border-radius: var(--bv-radius);
  padding: 28px;
  box-shadow: var(--bv-shadow-soft);
}

.bv-process__num {
  font-family: var(--bv-font-display);
  font-size: 2.4rem;
  font-weight: 800;
  color: var(--bv-gold);
  line-height: 1;
}

.bv-process__step h3 {
  font-size: 1.2rem;
  margin: 0 0 8px;
}

.bv-process__step p {
  margin: 0;
  font-size: 0.98rem;
}

.bv-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 22px;
}

.bv-gallery__item {
  position: relative;
  border-radius: var(--bv-radius);
  overflow: hidden;
  aspect-ratio: 3 / 4;
  background: var(--bv-dark-2);
  box-shadow: var(--bv-shadow-soft);
}

.bv-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.bv-gallery__item:hover img {
  transform: scale(1.07);
}

.bv-gallery__caption {
  position: absolute;
  inset: auto 0 0 0;
  padding: 22px 20px;
  background: linear-gradient(to top, rgba(11, 11, 15, 0.88), rgba(11, 11, 15, 0));
  color: var(--bv-white);
  font-weight: 600;
  font-size: 0.98rem;
}

.bv-testimonial-lg {
  background: var(--bv-white);
  border-radius: var(--bv-radius);
  padding: 44px;
  box-shadow: var(--bv-shadow);
  text-align: center;
}

.bv-testimonial-lg__quote {
  font-family: var(--bv-font-display);
  font-size: clamp(1.2rem, 2.4vw, 1.8rem);
  color: var(--bv-black);
  line-height: 1.4;
}

.bv-timeline {
  position: relative;
  padding-left: 34px;
  border-left: 2px solid var(--bv-line);
  display: grid;
  gap: 34px;
}

.bv-timeline__item {
  position: relative;
}

.bv-timeline__item::before {
  content: "";
  position: absolute;
  left: -43px;
  top: 6px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--bv-gold);
  box-shadow: 0 0 0 5px rgba(230, 182, 76, 0.22);
}

.bv-timeline__year {
  font-family: var(--bv-font-display);
  font-weight: 800;
  color: var(--bv-gold-deep);
  font-size: 1.2rem;
}

.bv-team {
  text-align: center;
  background: var(--bv-white);
  border-radius: var(--bv-radius);
  overflow: hidden;
  box-shadow: var(--bv-shadow-soft);
  height: 100%;
  transition: transform var(--bv-transition);
}

.bv-team:hover {
  transform: translateY(-6px);
}

.bv-team__photo {
  aspect-ratio: 1 / 1;
  background: var(--bv-dark-2);
  overflow: hidden;
}

.bv-team__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bv-team__body {
  padding: 22px;
}

.bv-team__body h3 {
  font-size: 1.15rem;
  margin: 0 0 4px;
}

.bv-team__role {
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--bv-gold-deep);
}

.bv-table {
  width: 100%;
  border-collapse: collapse;
  background: var(--bv-white);
  border-radius: var(--bv-radius);
  overflow: hidden;
  box-shadow: var(--bv-shadow-soft);
}

.bv-table th,
.bv-table td {
  padding: 18px 22px;
  text-align: left;
  border-bottom: 1px solid rgba(11, 11, 15, 0.08);
  font-size: 0.98rem;
}

.bv-table th {
  background: var(--bv-black);
  color: var(--bv-white);
  font-family: var(--bv-font-display);
  font-size: 1rem;
}

.bv-table tr:last-child td {
  border-bottom: none;
}

.bv-table td strong {
  color: var(--bv-black);
}

.bv-cta {
  background: linear-gradient(135deg, var(--bv-black), var(--bv-dark-2));
  border-radius: var(--bv-radius);
  padding: 56px;
  color: var(--bv-white);
  text-align: center;
  border: 1px solid var(--bv-line);
}

.bv-cta h2 {
  color: var(--bv-white);
}

.bv-cta p {
  color: rgba(255, 255, 255, 0.85);
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
}

.bv-footer {
  background: var(--bv-black);
  color: rgba(255, 255, 255, 0.8);
  padding: 72px 0 32px;
}

.bv-footer h4 {
  color: var(--bv-white);
  font-size: 1.1rem;
  margin-bottom: 20px;
}

.bv-footer p,
.bv-footer li,
.bv-footer a {
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.94rem;
}

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

.bv-footer__links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 10px;
}

.bv-footer__legal {
  border-top: 1px solid var(--bv-line);
  margin-top: 48px;
  padding-top: 26px;
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.6);
}

.bv-footer__legal a {
  font-size: 0.85rem;
}

.bv-footer__social {
  display: flex;
  gap: 12px;
  margin-top: 18px;
}

.bv-footer__social a {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1px solid var(--bv-line);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--bv-white);
  transition: background var(--bv-transition), color var(--bv-transition);
}

.bv-footer__social a:hover {
  background: var(--bv-gold);
  color: var(--bv-black);
}

.bv-cookie {
  position: fixed;
  left: 24px;
  right: 24px;
  bottom: 24px;
  z-index: 1080;
  background: rgba(11, 11, 15, 0.97);
  border: 1px solid var(--bv-line);
  border-radius: var(--bv-radius);
  padding: 22px 26px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px;
  justify-content: space-between;
  box-shadow: var(--bv-shadow);
  transform: translateY(140%);
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
  backdrop-filter: blur(10px);
}

.bv-cookie.is-visible {
  transform: translateY(0);
}

.bv-cookie__text {
  color: rgba(255, 255, 255, 0.85);
  font-size: 0.92rem;
  margin: 0;
  flex: 1 1 420px;
}

.bv-cookie__actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.bv-cookie__btn {
  border: none;
  border-radius: 999px;
  padding: 11px 24px;
  font-weight: 700;
  font-size: 0.9rem;
  cursor: pointer;
  transition: transform var(--bv-transition), background var(--bv-transition);
}

.bv-cookie__btn--accept {
  background: linear-gradient(135deg, var(--bv-gold), var(--bv-gold-deep));
  color: var(--bv-black);
}

.bv-cookie__btn--decline {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.4);
  color: var(--bv-white);
}

.bv-cookie__btn:hover {
  transform: translateY(-2px);
}

.bv-to-top {
  position: fixed;
  right: 24px;
  bottom: 24px;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: none;
  background: var(--bv-gold);
  color: var(--bv-black);
  font-size: 1.1rem;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(16px);
  transition: opacity var(--bv-transition), transform var(--bv-transition), visibility var(--bv-transition);
  z-index: 1070;
  box-shadow: 0 12px 28px rgba(11, 11, 15, 0.25);
}

.bv-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.bv-18-note {
  display: flex;
  align-items: center;
  gap: 18px;
  background: rgba(179, 38, 30, 0.1);
  border: 1px solid rgba(179, 38, 30, 0.35);
  border-radius: var(--bv-radius);
  padding: 20px 24px;
}

.bv-18-note p {
  margin: 0;
  color: var(--bv-text);
  font-size: 0.95rem;
  font-weight: 600;
}

.bv-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 12px;
}

.bv-list li {
  position: relative;
  padding-left: 30px;
  color: var(--bv-text-soft);
}

.bv-list li i {
  position: absolute;
  left: 0;
  top: 5px;
  color: var(--bv-gold-deep);
}

.bv-section--dark .bv-list li {
  color: rgba(255, 255, 255, 0.85);
}

.bv-section--dark .bv-list li i {
  color: var(--bv-gold);
}

.bv-arch {
  border-radius: 999px 999px var(--bv-radius) var(--bv-radius);
  overflow: hidden;
  aspect-ratio: 3 / 4;
  background: var(--bv-dark-2);
}

.bv-arch img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bv-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}

.bv-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--bv-line), transparent);
  border: none;
  margin: 0;
}

@keyframes bvFadeUp {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (max-width: 991px) {
  .bv-section {
    padding: 68px 0;
  }

  .bv-split {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .bv-slider__track {
    min-height: 440px;
  }

  .bv-process__step {
    grid-template-columns: 60px 1fr;
  }

  .bv-form,
  .bv-cta {
    padding: 30px;
  }
}

@media (max-width: 767px) {
  .bv-hero {
    min-height: 80vh;
  }

  .bv-slide__content {
    padding: 28px;
  }

  .bv-slider__nav {
    width: 44px;
    height: 44px;
  }

  .bv-slider__nav--prev {
    left: 10px;
  }

  .bv-slider__nav--next {
    right: 10px;
  }

  .bv-cookie {
    left: 12px;
    right: 12px;
    bottom: 12px;
    padding: 18px;
  }

  .bv-to-top {
    right: 14px;
    bottom: 90px;
  }

  .bv-testimonial-lg {
    padding: 28px;
  }

  .bv-disclaimer {
    padding: 24px;
  }
}
/* ===== Accessibility / contrast overrides ===== */
/* Give image-based sections an explicit dark base color so overlaid light text
   is measured (and renders) against a dark background. */
.bv-hero,
.bv-section--image {
  background-color: var(--bv-black);
}

/* Darker gold for eyebrow / role / outline on light (cream & white) backgrounds */
.bv-eyebrow {
  color: #7a5a10;
}

.bv-team__role {
  color: #7a5a10;
}

.bv-btn--outline {
  border-color: #7a5a10;
  color: #7a5a10;
}

.bv-accordion .accordion-body a {
  color: #7a5a10;
}

/* Restore the lighter gold where the background is dark */
.bv-section--dark .bv-eyebrow,
.bv-section--image .bv-eyebrow,
.bv-hero .bv-eyebrow,
.bv-cta .bv-eyebrow {
  color: var(--bv-gold);
}

.bv-section--dark .bv-btn--outline,
.bv-section--image .bv-btn--outline,
.bv-hero .bv-btn--outline,
.bv-cta .bv-btn--outline {
  border-color: var(--bv-gold);
  color: var(--bv-gold);
}

/* Feature cards sit on a white background even inside the dark section,
   so their text must be dark for legibility. */
.bv-section--dark .bv-feature h3 {
  color: var(--bv-black);
}

.bv-section--dark .bv-feature p {
  color: var(--bv-text-soft);
}

/* ===== Accessibility / contrast overrides (blog page) ===== */
:root {
  /* Text-safe gold that meets 4.5:1 on light surfaces */
  --bv-gold-text: #7a5a0c;
}

/* Body / inline links on light surfaces use the darker gold */
a {
  color: var(--bv-gold-text);
}

a:hover {
  color: var(--bv-black);
}

/* Eyebrows sit on the light cream background everywhere except dark/image surfaces */
.bv-eyebrow {
  color: var(--bv-gold-text);
}

.bv-section--dark .bv-eyebrow,
.bv-section--image .bv-eyebrow,
.bv-hero .bv-eyebrow,
.bv-cta .bv-eyebrow {
  color: var(--bv-gold);
}

/* Outline buttons on light cards/sections need the darker gold */
.bv-btn--outline {
  color: var(--bv-gold-text);
  border-color: var(--bv-gold-text);
}

.bv-section--dark .bv-btn--outline,
.bv-section--image .bv-btn--outline,
.bv-hero .bv-btn--outline,
.bv-cta .bv-btn--outline {
  color: var(--bv-gold);
  border-color: var(--bv-gold);
}

.bv-btn--outline:hover {
  color: var(--bv-black);
}

/* Give image/gradient sections an explicit solid background color so
   text painted over them resolves against a dark surface */
.bv-hero {
  background-color: var(--bv-black);
}

.bv-cta {
  background-color: var(--bv-black);
}

.bv-section--image {
  background-color: var(--bv-black);
}

/* Cards / features that sit inside a dark section keep dark text on their white card */
.bv-section--dark .bv-feature h3,
.bv-section--dark .bv-card__body h3,
.bv-section--dark .bv-stat__num {
  color: var(--bv-black);
}

.bv-section--dark .bv-feature p,
.bv-section--dark .bv-card__body p {
  color: var(--bv-text-soft);
}

/* Form elements inside a dark section live on a white card */
.bv-section--dark .bv-form p,
.bv-section--dark .bv-form label,
.bv-section--dark .bv-form__note {
  color: var(--bv-text-soft);
}

.bv-section--dark .bv-form a,
.bv-section--dark .bv-form__note a {
  color: var(--bv-gold-text);
}

/* Footer hours on the black footer */
.bv-footer .bv-hours li {
  color: rgba(255, 255, 255, 0.8);
  border-bottom-color: rgba(255, 255, 255, 0.18);
}

.bv-footer .bv-hours li strong {
  color: #ffffff;
}

/* Links placed on dark image/disclaimer surfaces */
.bv-disclaimer a,
.bv-section--image a {
  color: var(--bv-gold);
}

/* ===== Contrast fixes, round 2 ===== */

/* .bv-list sits on a dark image section too (not just --dark) */
.bv-section--image .bv-list li {
  color: rgba(255, 255, 255, 0.9);
}

.bv-section--image .bv-list li i {
  color: var(--bv-gold);
}

/* CTA uses a gradient background; give it a solid base color so overlaid
   light text is measured against a dark background. */
.bv-cta {
  background-color: var(--bv-black);
}

/* Footer hours values must be light (they defaulted to near-black) */
.bv-footer .bv-hours li {
  color: rgba(255, 255, 255, 0.8);
  border-bottom-color: rgba(255, 255, 255, 0.18);
}

.bv-footer .bv-hours li strong {
  color: var(--bv-white);
}

/* ============================================================
   QA fixes: contrast on light backgrounds + safe fallback
   background colours for image based sections (so text stays
   readable even when the background photo cannot be loaded).
   ============================================================ */

/* Darker gold for body links so they pass 4.5:1 on cream/white */
a {
  color: #8a6410;
}

/* Eyebrow labels on light sections need a darker gold */
.bv-eyebrow {
  color: #8a6410;
}

/* ...but keep the bright gold on dark / image / overlaid contexts */
.bv-hero .bv-eyebrow,
.bv-section--dark .bv-eyebrow,
.bv-section--image .bv-eyebrow,
.bv-slide .bv-eyebrow,
.bv-cta .bv-eyebrow,
.bv-disclaimer .bv-eyebrow {
  color: var(--bv-gold);
}

/* Links that sit inside dark panels stay gold */
.bv-disclaimer a {
  color: var(--bv-gold);
}

/* Fallback background colours (image never fully transparent) */
.bv-hero,
.bv-section--image,
.bv-slide {
  background-color: #0b0b0f;
}

/* Outline buttons placed on light sections need a darker gold */
.bv-section:not(.bv-section--dark):not(.bv-section--image) .bv-btn--outline {
  color: #8a6410;
  border-color: #8a6410;
}

.bv-section:not(.bv-section--dark):not(.bv-section--image) .bv-btn--outline:hover {
  background: var(--bv-gold);
  color: var(--bv-black);
}

/* Hours lists inside dark panels (disclaimers / dark sections) */
.bv-disclaimer .bv-hours li,
.bv-section--dark .bv-hours li {
  color: rgba(255, 255, 255, 0.88);
  border-bottom-color: rgba(255, 255, 255, 0.22);
}

.bv-disclaimer .bv-hours li strong,
.bv-section--dark .bv-hours li strong {
  color: #ffffff;
}

/* Hours list in the footer */
.bv-footer .bv-hours li {
  color: rgba(255, 255, 255, 0.88);
  border-bottom-color: rgba(255, 255, 255, 0.22);
}

.bv-footer .bv-hours li strong {
  color: #ffffff;
}

/* Check lists inside image sections */
.bv-section--image .bv-list li {
  color: rgba(255, 255, 255, 0.92);
}

.bv-section--image .bv-list li i {
  color: var(--bv-gold);
}

/* Keep footer links light on the dark footer */
.bv-footer p,
.bv-footer li,
.bv-footer a,
.bv-footer__legal a {
  color: rgba(255, 255, 255, 0.85);
}

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

/* Slightly stronger inline "contact" values on dark panels */
.bv-disclaimer .bv-hours li span {
  color: rgba(255, 255, 255, 0.88);
}

/* ===== QA fix: outline button inside a dark CTA panel =====
   The generic "light section" rule was darkening the outline button color
   (specificity 0,4,0) even when the button rendered on the dark .bv-cta panel,
   causing a 3.66:1 contrast failure. This override (specificity 0,5,0) restores
   the bright gold so the label passes on the dark background. */
.bv-section:not(.bv-section--dark):not(.bv-section--image) .bv-cta .bv-btn--outline {
  color: var(--bv-gold);
  border-color: var(--bv-gold);
}

.bv-section:not(.bv-section--dark):not(.bv-section--image) .bv-cta .bv-btn--outline:hover {
  background: var(--bv-gold);
  color: var(--bv-black);
}

/* ============================================================
   QA fixes, round 3 — remaining contrast failures
   ============================================================ */

/* Process-step numbers render on WHITE cards, so the bright gold
   (#e6b64c) only reaches 1.88:1. Use the text-safe dark gold. */
.bv-process__num {
  color: #8a6410;
}

/* The 18+ note sits on the dark hero image. Its paragraph inherited the
   dark body text colour (#2a2a33) which was invisible over the dark red
   tint. Make the tint stronger and the text light. */
.bv-18-note {
  background: rgba(179, 38, 30, 0.28);
  border-color: rgba(255, 255, 255, 0.35);
}

.bv-18-note p {
  color: rgba(255, 255, 255, 0.95);
}

/* Outline buttons that live inside WHITE cards placed on dark or image
   sections were inheriting the bright gold (0,2,0) and failing on white.
   These render on the white card body, so use the dark gold instead. */
.bv-card__body .bv-btn--outline,
.bv-section--dark .bv-card__body .bv-btn--outline,
.bv-section--image .bv-card__body .bv-btn--outline {
  color: #8a6410;
  border-color: #8a6410;
}

.bv-card__body .bv-btn--outline:hover,
.bv-section--dark .bv-card__body .bv-btn--outline:hover,
.bv-section--image .bv-card__body .bv-btn--outline:hover {
  background: var(--bv-gold);
  color: var(--bv-black);
}

/* Outline button on the dark CTA panel must stay bright gold.
   (The generic "light section" rule was still winning here.) */
.bv-cta .bv-btn--outline,
.bv-cta a.bv-btn--outline {
  color: var(--bv-gold) !important;
  border-color: var(--bv-gold) !important;
}

.bv-cta .bv-btn--outline:hover,
.bv-cta a.bv-btn--outline:hover {
  background: var(--bv-gold) !important;
  color: var(--bv-black) !important;
}

/* ============================================================
   QA fixes, round 4 — price page contrast
   ============================================================ */

/* Hours / season list sits inside a dark .bv-section--image panel.
   It inherited the dark body text colours, so make it light. */
.bv-section--image .bv-hours li {
  color: rgba(255, 255, 255, 0.92);
  border-bottom-color: rgba(255, 255, 255, 0.22);
}

.bv-section--image .bv-hours li strong {
  color: #ffffff;
}

/* Check lists (.bv-list) that live inside WHITE cards placed on a
   dark section were inheriting the light "dark section" colour and
   rendering white-on-white. The card surface is white, so the text
   must be dark and the icons use the text-safe gold. */
.bv-section--dark .bv-card__body .bv-list li,
.bv-section--image .bv-card__body .bv-list li {
  color: var(--bv-text-soft);
}

.bv-section--dark .bv-card__body .bv-list li i,
.bv-section--image .bv-card__body .bv-list li i {
  color: var(--bv-gold-deep);
}

/* ============================================================
   QA fix: form lives on a WHITE card inside an image section.
   The generic `.bv-section--image p` rule made the form note
   white-on-white. Keep form text dark on the white card.
   ============================================================ */
.bv-section--image .bv-form p,
.bv-section--image .bv-form label,
.bv-section--image .bv-form__note {
  color: var(--bv-text-soft);
}

.bv-section--image .bv-form__note a,
.bv-section--image .bv-form a {
  color: var(--bv-gold-text);
}

/* ============================================================
   QA fix: contact section uses an inline background-image with a
   dark gradient overlay but no solid background-color, so the
   automated contrast checker resolved its (light) text against the
   page's cream body colour. Give it an explicit dark base colour.
   ============================================================ */
#bv-contacto {
  background-color: #0b0b0f;
}
