:root {
  --lv-ink: #0e141b;
  --lv-ink-2: #1b2531;
  --lv-ink-soft: #4a5766;
  --lv-cream: #faf6f0;
  --lv-sand: #efe6da;
  --lv-line: #ded2c2;
  --lv-accent: #b23a16;
  --lv-accent-deep: #8f2d10;
  --lv-accent-2: #d9552a;
  --lv-accent-soft: #f0c9ae;
  --lv-gold: #c9973f;
  --lv-white: #ffffff;
  --lv-shadow-s: 0 4px 14px rgba(14, 20, 27, 0.07);
  --lv-shadow-m: 0 18px 46px rgba(14, 20, 27, 0.12);
  --lv-shadow-l: 0 30px 80px rgba(14, 20, 27, 0.2);
  --lv-radius: 20px;
  --lv-radius-s: 12px;
  --lv-radius-pill: 999px;
  --lv-container: 1200px;
  --lv-font-display: "Fraunces", "Playfair Display", Georgia, "Times New Roman", serif;
  --lv-font-body: "Inter", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
  --lv-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: var(--lv-font-body);
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--lv-ink);
  background-color: var(--lv-cream);
  overflow-x: hidden;
}

img {
  max-width: 100%;
  height: auto;
}

a {
  color: var(--lv-accent);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

a:hover {
  color: var(--lv-accent-deep);
}

::selection {
  background: var(--lv-accent);
  color: var(--lv-white);
}

:focus-visible {
  outline: 3px solid var(--lv-accent-2);
  outline-offset: 3px;
  border-radius: 4px;
}

h1,
h2,
h3,
h4,
h5,
h6,
.lv-display {
  font-family: var(--lv-font-display);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -0.015em;
  color: var(--lv-ink);
  margin: 0 0 0.6em;
}

h1,
.lv-display--xl {
  font-size: clamp(2.3rem, 5.4vw, 4.25rem);
}

h2 {
  font-size: clamp(1.85rem, 3.6vw, 2.9rem);
}

h3 {
  font-size: clamp(1.3rem, 2.1vw, 1.75rem);
}

h4 {
  font-size: 1.2rem;
}

p {
  margin: 0 0 1.1rem;
}

p:last-child {
  margin-bottom: 0;
}

ul,
ol {
  padding-left: 1.15rem;
}

.lv-container {
  width: 100%;
  max-width: var(--lv-container);
  margin-inline: auto;
  padding-inline: clamp(18px, 4vw, 40px);
}

.lv-container--wide {
  max-width: 1420px;
}

.lv-section {
  position: relative;
  padding-block: clamp(64px, 9vw, 132px);
}

.lv-section--tight {
  padding-block: clamp(48px, 6vw, 84px);
}

.lv-band {
  background-color: var(--lv-ink);
  color: var(--lv-cream);
}

.lv-band h1,
.lv-band h2,
.lv-band h3,
.lv-band h4 {
  color: var(--lv-cream);
}

.lv-band a {
  color: var(--lv-accent-soft);
}

.lv-band a:hover {
  color: var(--lv-white);
}

.lv-surface {
  background-color: var(--lv-white);
}

.lv-surface--sand {
  background-color: var(--lv-sand);
}

.lv-photo {
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: var(--lv-white);
}

.lv-photo h1,
.lv-photo h2,
.lv-photo h3,
.lv-photo h4 {
  color: var(--lv-white);
}

.lv-photo--edge {
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 46px), 0 100%);
}

.lv-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-family: var(--lv-font-body);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--lv-accent);
  margin-bottom: 1rem;
}

.lv-photo .lv-eyebrow,
.lv-band .lv-eyebrow {
  color: var(--lv-accent-soft);
}

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

.lv-lead {
  font-size: clamp(1.05rem, 1.5vw, 1.22rem);
  line-height: 1.72;
  color: var(--lv-ink-soft);
  max-width: 62ch;
}

.lv-photo .lv-lead,
.lv-band .lv-lead {
  color: rgba(250, 246, 240, 0.9);
}

.lv-meta {
  font-size: 0.86rem;
  letter-spacing: 0.04em;
  color: var(--lv-ink-soft);
}

.lv-photo .lv-meta,
.lv-band .lv-meta {
  color: rgba(250, 246, 240, 0.82);
}

.lv-divider {
  height: 1px;
  border: 0;
  background: var(--lv-line);
  opacity: 1;
  margin-block: clamp(36px, 5vw, 64px);
}

.lv-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  padding: 0.95rem 1.75rem;
  font-family: var(--lv-font-body);
  font-size: 0.98rem;
  font-weight: 600;
  line-height: 1.2;
  border-radius: var(--lv-radius-pill);
  border: 1px solid transparent;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.3s var(--lv-ease), color 0.3s var(--lv-ease),
    border-color 0.3s var(--lv-ease), transform 0.3s var(--lv-ease),
    box-shadow 0.3s var(--lv-ease);
}

.lv-btn i {
  font-size: 0.9em;
}

.lv-btn--primary {
  background-color: var(--lv-accent);
  border-color: var(--lv-accent);
  color: var(--lv-white);
  box-shadow: 0 12px 28px rgba(178, 58, 22, 0.28);
}

.lv-btn--primary:hover {
  background-color: var(--lv-accent-deep);
  border-color: var(--lv-accent-deep);
  color: var(--lv-white);
  transform: translateY(-2px);
}

.lv-btn--ghost {
  background-color: transparent;
  border-color: var(--lv-line);
  color: var(--lv-ink);
}

.lv-btn--ghost:hover {
  border-color: var(--lv-accent);
  color: var(--lv-accent);
  transform: translateY(-2px);
}

.lv-btn--light {
  background-color: var(--lv-cream);
  border-color: var(--lv-cream);
  color: var(--lv-ink);
}

.lv-btn--light:hover {
  background-color: var(--lv-white);
  border-color: var(--lv-white);
  color: var(--lv-accent-deep);
  transform: translateY(-2px);
}

.lv-btn--outline-light {
  background-color: transparent;
  border-color: rgba(250, 246, 240, 0.55);
  color: var(--lv-cream);
}

.lv-btn--outline-light:hover {
  background-color: rgba(250, 246, 240, 0.12);
  border-color: var(--lv-cream);
  color: var(--lv-white);
  transform: translateY(-2px);
}

.lv-btn--block {
  width: 100%;
}

.lv-btn-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem;
  align-items: center;
}

.lv-header {
  position: fixed;
  inset-inline: 0;
  top: 0;
  z-index: 1030;
  transition: box-shadow 0.35s var(--lv-ease), background-color 0.35s var(--lv-ease);
}

.lv-topbar {
  background-color: var(--lv-ink);
  color: var(--lv-cream);
  font-size: 0.84rem;
  transition: max-height 0.35s var(--lv-ease), opacity 0.25s var(--lv-ease);
  max-height: 60px;
  overflow: hidden;
}

.lv-header--scrolled .lv-topbar {
  max-height: 0;
  opacity: 0;
}

.lv-topbar__inner {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1.6rem;
  align-items: center;
  justify-content: space-between;
  padding-block: 0.55rem;
}

.lv-topbar__item {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--lv-cream);
  white-space: nowrap;
}

.lv-topbar__item i {
  color: var(--lv-accent-soft);
}

.lv-navbar {
  background-color: rgba(250, 246, 240, 0.96);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--lv-line);
}

.lv-header--scrolled .lv-navbar {
  box-shadow: var(--lv-shadow-s);
}

.lv-navbar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding-block: 0.85rem;
}

.lv-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  text-decoration: none;
  color: var(--lv-ink);
}

.lv-brand__name {
  font-family: var(--lv-font-display);
  font-size: 1.42rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1;
}

.lv-brand__tag {
  display: block;
  font-size: 0.68rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lv-ink-soft);
}

.lv-nav {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.lv-nav__link {
  display: inline-block;
  padding: 0.55rem 0.9rem;
  border-radius: var(--lv-radius-pill);
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--lv-ink);
  text-decoration: none;
  transition: background-color 0.25s var(--lv-ease), color 0.25s var(--lv-ease);
}

.lv-nav__link:hover,
.lv-nav__link.is-active {
  background-color: rgba(178, 58, 22, 0.1);
  color: var(--lv-accent-deep);
}

.lv-nav-toggle {
  display: none;
  width: 46px;
  height: 46px;
  align-items: center;
  justify-content: center;
  border-radius: var(--lv-radius-s);
  border: 1px solid var(--lv-line);
  background-color: var(--lv-white);
  color: var(--lv-ink);
  font-size: 1.15rem;
  cursor: pointer;
}

.lv-header__cta {
  display: inline-flex;
}

@media (max-width: 991.98px) {
  .lv-nav-toggle {
    display: inline-flex;
  }

  .lv-header__cta {
    display: none;
  }

  .lv-nav {
    position: absolute;
    inset-inline: 12px;
    top: calc(100% + 8px);
    flex-direction: column;
    align-items: stretch;
    gap: 0.2rem;
    padding: 1rem;
    background-color: var(--lv-white);
    border: 1px solid var(--lv-line);
    border-radius: var(--lv-radius);
    box-shadow: var(--lv-shadow-m);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: opacity 0.28s var(--lv-ease), transform 0.28s var(--lv-ease),
      visibility 0.28s var(--lv-ease);
  }

  .lv-nav.is-open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }

  .lv-nav__link {
    padding: 0.75rem 1rem;
    border-radius: var(--lv-radius-s);
  }
}

.lv-hero {
  position: relative;
  min-height: clamp(560px, 90vh, 860px);
  display: flex;
  align-items: center;
  padding-top: clamp(140px, 16vw, 210px);
  padding-bottom: clamp(70px, 8vw, 120px);
  overflow: hidden;
}

.lv-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
}

.lv-hero__title {
  font-size: clamp(2.4rem, 5.6vw, 4.4rem);
  margin-bottom: 1.1rem;
}

.lv-hero__title em {
  font-style: italic;
  color: var(--lv-accent-soft);
}

.lv-hero__lead {
  font-size: clamp(1.05rem, 1.6vw, 1.28rem);
  line-height: 1.7;
  color: rgba(250, 246, 240, 0.92);
  max-width: 54ch;
  margin-bottom: 2rem;
}

.lv-hero__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-top: 2rem;
}

.lv-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.45rem 0.95rem;
  border-radius: var(--lv-radius-pill);
  border: 1px solid rgba(250, 246, 240, 0.35);
  background-color: rgba(14, 20, 27, 0.35);
  color: var(--lv-cream);
  font-size: 0.84rem;
  font-weight: 500;
}

.lv-chip i {
  color: var(--lv-accent-soft);
}

@media (max-width: 991.98px) {
  .lv-hero__grid {
    grid-template-columns: 1fr;
  }
}

.lv-slider {
  position: relative;
}

.lv-slider .carousel-item {
  min-height: clamp(520px, 86vh, 820px);
  background-size: cover;
  background-position: center;
}

.lv-slider .carousel-item::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    100deg,
    rgba(14, 20, 27, 0.88) 0%,
    rgba(14, 20, 27, 0.62) 48%,
    rgba(14, 20, 27, 0.34) 100%
  );
}

.lv-slider__caption {
  position: relative;
  z-index: 2;
  max-width: 640px;
  color: var(--lv-cream);
  padding-block: clamp(140px, 16vw, 200px) clamp(80px, 10vw, 130px);
}

.lv-slider__caption h2 {
  color: var(--lv-cream);
}

.lv-slider__caption p {
  color: rgba(250, 246, 240, 0.9);
  font-size: 1.12rem;
  max-width: 52ch;
}

.lv-slider .carousel-indicators {
  margin-bottom: 2rem;
  z-index: 3;
}

.lv-slider .carousel-indicators [data-bs-target] {
  width: 34px;
  height: 4px;
  border-radius: 2px;
  border: 0;
  background-color: rgba(250, 246, 240, 0.45);
  opacity: 1;
}

.lv-slider .carousel-indicators .active {
  background-color: var(--lv-accent-soft);
}

.lv-slider .carousel-control-prev,
.lv-slider .carousel-control-next {
  width: 8%;
  opacity: 0.7;
}

.lv-slider .carousel-control-prev:hover,
.lv-slider .carousel-control-next:hover {
  opacity: 1;
}

.lv-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  background-color: var(--lv-white);
  border: 1px solid var(--lv-line);
  border-radius: var(--lv-radius);
  overflow: hidden;
  transition: transform 0.4s var(--lv-ease), box-shadow 0.4s var(--lv-ease),
    border-color 0.4s var(--lv-ease);
}

.lv-card:hover {
  transform: translateY(-6px);
  border-color: rgba(178, 58, 22, 0.35);
  box-shadow: var(--lv-shadow-m);
}

.lv-card__media {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background-color: var(--lv-sand);
}

.lv-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.7s var(--lv-ease);
}

.lv-card:hover .lv-card__media img {
  transform: scale(1.05);
}

.lv-card__badge {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 2;
  padding: 0.35rem 0.8rem;
  border-radius: var(--lv-radius-pill);
  background-color: rgba(14, 20, 27, 0.82);
  color: var(--lv-cream);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.lv-card__body {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  padding: clamp(20px, 2.4vw, 30px);
  flex: 1;
}

.lv-card__title {
  font-size: 1.32rem;
  margin: 0;
}

.lv-card__title a {
  color: inherit;
  text-decoration: none;
}

.lv-card__title a:hover {
  color: var(--lv-accent);
}

.lv-card__text {
  color: var(--lv-ink-soft);
  font-size: 0.98rem;
  margin: 0;
}

.lv-card__foot {
  margin-top: auto;
  padding-top: 0.9rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border-top: 1px solid var(--lv-line);
}

.lv-card__price {
  font-family: var(--lv-font-display);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--lv-accent-deep);
}

.lv-link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 600;
  font-size: 0.94rem;
  color: var(--lv-accent);
  text-decoration: none;
}

.lv-link-arrow i {
  transition: transform 0.3s var(--lv-ease);
}

.lv-link-arrow:hover i {
  transform: translateX(5px);
}

.lv-feature {
  display: flex;
  gap: 1.15rem;
  align-items: flex-start;
}

.lv-feature__icon {
  flex: 0 0 auto;
  width: 56px;
  height: 56px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 16px;
  background-color: rgba(178, 58, 22, 0.1);
  color: var(--lv-accent-deep);
  font-size: 1.25rem;
}

.lv-band .lv-feature__icon,
.lv-photo .lv-feature__icon {
  background-color: rgba(250, 246, 240, 0.14);
  color: var(--lv-accent-soft);
}

.lv-feature__title {
  font-family: var(--lv-font-display);
  font-size: 1.15rem;
  margin: 0 0 0.35rem;
}

.lv-feature__text {
  margin: 0;
  color: var(--lv-ink-soft);
  font-size: 0.96rem;
}

.lv-band .lv-feature__text,
.lv-photo .lv-feature__text {
  color: rgba(250, 246, 240, 0.86);
}

.lv-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: clamp(20px, 3vw, 40px);
}

.lv-stat {
  padding: 1.6rem 1.4rem;
  border-radius: var(--lv-radius);
  background-color: rgba(250, 246, 240, 0.06);
  border: 1px solid rgba(250, 246, 240, 0.16);
}

.lv-stat__value {
  font-family: var(--lv-font-display);
  font-size: clamp(2.1rem, 4vw, 3.2rem);
  font-weight: 600;
  line-height: 1;
  color: var(--lv-accent-soft);
  margin-bottom: 0.55rem;
}

.lv-stat__label {
  font-size: 0.94rem;
  color: rgba(250, 246, 240, 0.88);
  margin: 0;
}

.lv-stat--light {
  background-color: var(--lv-white);
  border-color: var(--lv-line);
}

.lv-stat--light .lv-stat__value {
  color: var(--lv-accent-deep);
}

.lv-stat--light .lv-stat__label {
  color: var(--lv-ink-soft);
}

.lv-steps {
  display: grid;
  gap: clamp(18px, 2.6vw, 28px);
  counter-reset: lv-step;
}

.lv-step {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: clamp(16px, 2.4vw, 30px);
  padding: clamp(20px, 2.6vw, 32px);
  background-color: var(--lv-white);
  border: 1px solid var(--lv-line);
  border-radius: var(--lv-radius);
  transition: border-color 0.35s var(--lv-ease), box-shadow 0.35s var(--lv-ease);
}

.lv-step:hover {
  border-color: rgba(178, 58, 22, 0.4);
  box-shadow: var(--lv-shadow-s);
}

.lv-step__num {
  font-family: var(--lv-font-display);
  font-size: 1.9rem;
  font-weight: 600;
  line-height: 1;
  color: var(--lv-accent);
  min-width: 58px;
}

.lv-step__title {
  font-size: 1.18rem;
  margin: 0 0 0.4rem;
}

.lv-step__text {
  margin: 0;
  color: var(--lv-ink-soft);
  font-size: 0.97rem;
}

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

.lv-gallery__item {
  position: relative;
  border-radius: var(--lv-radius);
  overflow: hidden;
  background-color: var(--lv-sand);
  aspect-ratio: 3 / 4;
}

.lv-gallery__item--wide {
  grid-column: span 2;
  aspect-ratio: 16 / 10;
}

.lv-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.8s var(--lv-ease);
}

.lv-gallery__item:hover img {
  transform: scale(1.06);
}

.lv-gallery__caption {
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  padding: 2.4rem 1.2rem 1.1rem;
  background: linear-gradient(rgba(14, 20, 27, 0), rgba(14, 20, 27, 0.88));
  color: var(--lv-cream);
  font-size: 0.94rem;
  font-weight: 500;
}

@media (max-width: 767.98px) {
  .lv-gallery__item--wide {
    grid-column: span 1;
    aspect-ratio: 4 / 3;
  }
}

.lv-quote {
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  padding: clamp(24px, 3vw, 36px);
  background-color: var(--lv-white);
  border: 1px solid var(--lv-line);
  border-radius: var(--lv-radius);
}

.lv-quote__stars {
  color: var(--lv-gold);
  font-size: 0.92rem;
  letter-spacing: 0.12em;
}

.lv-quote__text {
  font-family: var(--lv-font-display);
  font-size: 1.12rem;
  line-height: 1.6;
  color: var(--lv-ink);
  margin: 0;
}

.lv-quote__person {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  margin-top: auto;
  padding-top: 0.6rem;
}

.lv-quote__avatar {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  overflow: hidden;
  flex: 0 0 auto;
  background-color: var(--lv-sand);
}

.lv-quote__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.lv-quote__name {
  font-weight: 600;
  font-size: 0.98rem;
  margin: 0;
}

.lv-quote__role {
  font-size: 0.85rem;
  color: var(--lv-ink-soft);
  margin: 0;
}

.lv-person {
  text-align: center;
}

.lv-person__photo {
  width: 100%;
  aspect-ratio: 3 / 4;
  border-radius: var(--lv-radius);
  overflow: hidden;
  background-color: var(--lv-sand);
  margin-bottom: 1.1rem;
}

.lv-person__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.7s var(--lv-ease);
}

.lv-person:hover .lv-person__photo img {
  transform: scale(1.04);
}

.lv-person__name {
  font-family: var(--lv-font-display);
  font-size: 1.2rem;
  margin: 0 0 0.2rem;
}

.lv-person__role {
  font-size: 0.86rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--lv-accent);
  margin: 0 0 0.7rem;
}

.lv-person__bio {
  font-size: 0.95rem;
  color: var(--lv-ink-soft);
  margin: 0;
}

.lv-faq .accordion-item {
  border: 1px solid var(--lv-line);
  border-radius: var(--lv-radius) !important;
  background-color: var(--lv-white);
  margin-bottom: 0.9rem;
  overflow: hidden;
}

.lv-faq .accordion-button {
  font-family: var(--lv-font-display);
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--lv-ink);
  background-color: var(--lv-white);
  padding: 1.15rem 1.4rem;
  box-shadow: none;
}

.lv-faq .accordion-button:not(.collapsed) {
  color: var(--lv-accent-deep);
  background-color: rgba(178, 58, 22, 0.06);
}

.lv-faq .accordion-button:focus {
  box-shadow: none;
  border-color: transparent;
}

.lv-faq .accordion-body {
  padding: 0.4rem 1.4rem 1.4rem;
  color: var(--lv-ink-soft);
  font-size: 0.98rem;
}

.lv-price-card {
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: clamp(24px, 3vw, 36px);
  background-color: var(--lv-white);
  border: 1px solid var(--lv-line);
  border-radius: var(--lv-radius);
  transition: transform 0.4s var(--lv-ease), box-shadow 0.4s var(--lv-ease);
}

.lv-price-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--lv-shadow-m);
}

.lv-price-card--featured {
  border-color: var(--lv-accent);
  box-shadow: 0 22px 60px rgba(178, 58, 22, 0.16);
}

.lv-price-card__label {
  font-size: 0.78rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lv-accent);
  font-weight: 700;
}

.lv-price-card__amount {
  font-family: var(--lv-font-display);
  font-size: clamp(2rem, 3.4vw, 2.7rem);
  font-weight: 600;
  line-height: 1;
  color: var(--lv-ink);
}

.lv-price-card__amount span {
  font-size: 0.95rem;
  font-family: var(--lv-font-body);
  color: var(--lv-ink-soft);
  font-weight: 500;
}

.lv-price-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.65rem;
}

.lv-price-list li {
  display: flex;
  gap: 0.65rem;
  align-items: flex-start;
  font-size: 0.96rem;
  color: var(--lv-ink-soft);
}

.lv-price-list i {
  color: var(--lv-accent);
  margin-top: 0.3rem;
}

.lv-price-card__cta {
  margin-top: auto;
}

.lv-table {
  width: 100%;
  border-collapse: collapse;
  background-color: var(--lv-white);
  border: 1px solid var(--lv-line);
  border-radius: var(--lv-radius);
  overflow: hidden;
}

.lv-table th,
.lv-table td {
  padding: 0.95rem 1.15rem;
  text-align: left;
  border-bottom: 1px solid var(--lv-line);
  font-size: 0.96rem;
}

.lv-table thead th {
  background-color: var(--lv-sand);
  font-family: var(--lv-font-display);
  font-size: 1rem;
  color: var(--lv-ink);
}

.lv-table tbody tr:last-child td {
  border-bottom: 0;
}

.lv-table td:last-child {
  font-weight: 600;
  color: var(--lv-accent-deep);
  white-space: nowrap;
}

.lv-form {
  display: grid;
  gap: 1.1rem;
}

.lv-form__row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1.1rem;
}

.lv-form__field label {
  display: block;
  font-size: 0.88rem;
  font-weight: 600;
  margin-bottom: 0.4rem;
  color: var(--lv-ink);
}

.lv-form__field .form-control,
.lv-form__field .form-select {
  width: 100%;
  padding: 0.85rem 1rem;
  font-family: var(--lv-font-body);
  font-size: 0.98rem;
  color: var(--lv-ink);
  background-color: var(--lv-white);
  border: 1px solid var(--lv-line);
  border-radius: var(--lv-radius-s);
  transition: border-color 0.25s var(--lv-ease), box-shadow 0.25s var(--lv-ease);
}

.lv-form__field .form-control::placeholder {
  color: #7c8a99;
}

.lv-form__field .form-control:focus,
.lv-form__field .form-select:focus {
  border-color: var(--lv-accent);
  box-shadow: 0 0 0 3px rgba(178, 58, 22, 0.16);
  outline: none;
}

.lv-form__consent {
  display: flex;
  gap: 0.7rem;
  align-items: flex-start;
  font-size: 0.88rem;
  color: var(--lv-ink-soft);
}

.lv-form__consent .form-check-input {
  margin-top: 0.22rem;
  flex: 0 0 auto;
}

.lv-form__consent .form-check-input:checked {
  background-color: var(--lv-accent);
  border-color: var(--lv-accent);
}

.lv-form .invalid-feedback {
  font-size: 0.84rem;
  color: #8f2410;
}

.lv-form.was-validated .form-control:invalid,
.lv-form.was-validated .form-select:invalid {
  border-color: #8f2410;
}

.lv-form.was-validated .form-check-input:invalid {
  border-color: #8f2410;
}

.lv-contact-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 1.15rem;
}

.lv-contact-list__item {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
}

.lv-contact-list__icon {
  width: 46px;
  height: 46px;
  flex: 0 0 auto;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(178, 58, 22, 0.1);
  color: var(--lv-accent-deep);
}

.lv-band .lv-contact-list__icon,
.lv-photo .lv-contact-list__icon {
  background-color: rgba(250, 246, 240, 0.14);
  color: var(--lv-accent-soft);
}

.lv-contact-list__label {
  font-size: 0.8rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--lv-ink-soft);
  margin: 0 0 0.15rem;
}

.lv-band .lv-contact-list__label,
.lv-photo .lv-contact-list__label {
  color: rgba(250, 246, 240, 0.78);
}

.lv-contact-list__value {
  font-size: 1.02rem;
  font-weight: 600;
  margin: 0;
  color: var(--lv-ink);
}

.lv-band .lv-contact-list__value,
.lv-photo .lv-contact-list__value {
  color: var(--lv-cream);
}

.lv-map {
  border-radius: var(--lv-radius);
  overflow: hidden;
  border: 1px solid var(--lv-line);
  min-height: 380px;
  background-color: var(--lv-sand);
}

.lv-map iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 380px;
  border: 0;
}

.lv-cta {
  position: relative;
  overflow: hidden;
  border-radius: var(--lv-radius);
  padding: clamp(34px, 5vw, 70px);
  background-color: var(--lv-ink);
  color: var(--lv-cream);
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
  gap: clamp(24px, 4vw, 56px);
  align-items: center;
}

.lv-cta h2,
.lv-cta h3 {
  color: var(--lv-cream);
}

.lv-cta p {
  color: rgba(250, 246, 240, 0.88);
}

@media (max-width: 767.98px) {
  .lv-cta {
    grid-template-columns: 1fr;
  }
}

.lv-timeline {
  position: relative;
  display: grid;
  gap: 2rem;
  padding-left: 2rem;
}

.lv-timeline::before {
  content: "";
  position: absolute;
  left: 7px;
  top: 6px;
  bottom: 6px;
  width: 2px;
  background: var(--lv-line);
}

.lv-timeline__item {
  position: relative;
}

.lv-timeline__item::before {
  content: "";
  position: absolute;
  left: -2rem;
  top: 8px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background-color: var(--lv-accent);
  border: 3px solid var(--lv-cream);
}

.lv-timeline__year {
  font-family: var(--lv-font-display);
  font-size: 1.05rem;
  color: var(--lv-accent-deep);
  font-weight: 600;
  margin: 0 0 0.25rem;
}

.lv-timeline__title {
  font-size: 1.15rem;
  margin: 0 0 0.35rem;
}

.lv-timeline__text {
  margin: 0;
  color: var(--lv-ink-soft);
  font-size: 0.97rem;
}

.lv-footer {
  background-color: var(--lv-ink);
  color: rgba(250, 246, 240, 0.86);
  padding-top: clamp(56px, 7vw, 96px);
}

.lv-footer h1,
.lv-footer h2,
.lv-footer h3,
.lv-footer h4 {
  color: var(--lv-cream);
}

.lv-footer a {
  color: rgba(250, 246, 240, 0.86);
  text-decoration: none;
}

.lv-footer a:hover {
  color: var(--lv-accent-soft);
}

.lv-footer__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr));
  gap: clamp(28px, 4vw, 56px);
  padding-bottom: clamp(36px, 5vw, 60px);
}

@media (max-width: 991.98px) {
  .lv-footer__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .lv-footer__grid {
    grid-template-columns: 1fr;
  }
}

.lv-footer__title {
  font-family: var(--lv-font-body);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lv-accent-soft);
  margin-bottom: 1.1rem;
}

.lv-footer__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.6rem;
  font-size: 0.95rem;
}

.lv-footer__about {
  font-size: 0.95rem;
  color: rgba(250, 246, 240, 0.8);
  margin-top: 1rem;
  max-width: 40ch;
}

.lv-footer__bottom {
  border-top: 1px solid rgba(250, 246, 240, 0.16);
  padding-block: 1.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 2rem;
  align-items: center;
  justify-content: space-between;
  font-size: 0.86rem;
}

.lv-footer__legal {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 1.3rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

.lv-to-top {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 1040;
  width: 48px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 1px solid var(--lv-line);
  background-color: var(--lv-white);
  color: var(--lv-ink);
  box-shadow: var(--lv-shadow-s);
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity 0.3s var(--lv-ease), transform 0.3s var(--lv-ease),
    visibility 0.3s var(--lv-ease), background-color 0.3s var(--lv-ease);
  cursor: pointer;
}

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

.lv-to-top:hover {
  background-color: var(--lv-accent);
  border-color: var(--lv-accent);
  color: var(--lv-white);
}

.lv-cookie {
  position: fixed;
  left: clamp(12px, 3vw, 32px);
  right: clamp(12px, 3vw, 32px);
  bottom: clamp(12px, 3vw, 32px);
  z-index: 1080;
  animation: lv-cookie-enter 0.7s var(--lv-ease) both;
}

.lv-cookie__panel {
  max-width: 1120px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(16px, 2.6vw, 32px);
  padding: clamp(18px, 2.4vw, 28px) clamp(18px, 2.6vw, 34px);
  background-color: var(--lv-ink);
  color: var(--lv-cream);
  border: 1px solid rgba(250, 246, 240, 0.18);
  border-radius: var(--lv-radius);
  box-shadow: var(--lv-shadow-l);
}

.lv-cookie__icon {
  width: 54px;
  height: 54px;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 16px;
  background-color: rgba(178, 58, 22, 0.9);
  color: var(--lv-white);
  font-size: 1.2rem;
}

.lv-cookie__title {
  font-family: var(--lv-font-display);
  font-size: 1.14rem;
  font-weight: 600;
  margin: 0 0 0.3rem;
  color: var(--lv-cream);
}

.lv-cookie__text {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.6;
  color: rgba(250, 246, 240, 0.86);
}

.lv-cookie__link {
  color: var(--lv-accent-soft);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.lv-cookie__link:hover {
  color: var(--lv-white);
}

.lv-cookie__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  justify-content: flex-end;
}

.lv-cookie__btn {
  padding: 0.75rem 1.4rem;
  font-family: var(--lv-font-body);
  font-size: 0.92rem;
  font-weight: 600;
  border-radius: var(--lv-radius-pill);
  border: 1px solid transparent;
  cursor: pointer;
  transition: background-color 0.28s var(--lv-ease), color 0.28s var(--lv-ease),
    border-color 0.28s var(--lv-ease), transform 0.28s var(--lv-ease);
}

.lv-cookie__btn--accept {
  background-color: var(--lv-accent);
  border-color: var(--lv-accent);
  color: var(--lv-white);
}

.lv-cookie__btn--accept:hover {
  background-color: var(--lv-accent-deep);
  border-color: var(--lv-accent-deep);
  transform: translateY(-2px);
}

.lv-cookie__btn--decline {
  background-color: transparent;
  border-color: rgba(250, 246, 240, 0.45);
  color: var(--lv-cream);
}

.lv-cookie__btn--decline:hover {
  background-color: rgba(250, 246, 240, 0.14);
  border-color: var(--lv-cream);
  color: var(--lv-white);
}

.lv-cookie--hidden {
  animation: none;
  opacity: 0;
  transform: translateY(26px);
  pointer-events: none;
  transition: opacity 0.35s var(--lv-ease), transform 0.35s var(--lv-ease);
}

@media (max-width: 991.98px) {
  .lv-cookie__panel {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .lv-cookie__actions {
    grid-column: 1 / -1;
    justify-content: stretch;
  }

  .lv-cookie__btn {
    flex: 1 1 180px;
  }
}

@media (max-width: 575.98px) {
  .lv-cookie__panel {
    grid-template-columns: 1fr;
  }

  .lv-cookie__icon {
    width: 44px;
    height: 44px;
    font-size: 1rem;
  }
}

@keyframes lv-cookie-enter {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.lv-swap {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 1rem;
}

.lv-swatch {
  border-radius: var(--lv-radius-s);
  border: 1px solid var(--lv-line);
  padding: 1.1rem;
  background-color: var(--lv-white);
}

.lv-swatch__dot {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  margin-bottom: 0.8rem;
  border: 2px solid rgba(14, 20, 27, 0.12);
}

.lv-swatch__name {
  font-weight: 600;
  font-size: 0.95rem;
  margin: 0 0 0.2rem;
}

.lv-swatch__hint {
  font-size: 0.86rem;
  color: var(--lv-ink-soft);
  margin: 0;
}

.lv-swatch--clay .lv-swatch__dot {
  background-color: #c06a4a;
}

.lv-swatch--linen .lv-swatch__dot {
  background-color: #efe6da;
}

.lv-swatch--forest .lv-swatch__dot {
  background-color: #3d5a4c;
}

.lv-swatch--ink .lv-swatch__dot {
  background-color: #0e141b;
}

.lv-post {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(20px, 3vw, 40px);
  align-items: center;
  padding: clamp(18px, 2.2vw, 26px);
  background-color: var(--lv-white);
  border: 1px solid var(--lv-line);
  border-radius: var(--lv-radius);
  transition: box-shadow 0.35s var(--lv-ease), transform 0.35s var(--lv-ease);
}

.lv-post:hover {
  transform: translateY(-4px);
  box-shadow: var(--lv-shadow-m);
}

.lv-post__media {
  border-radius: var(--lv-radius-s);
  overflow: hidden;
  aspect-ratio: 16 / 11;
  background-color: var(--lv-sand);
}

.lv-post__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.lv-post__title {
  font-size: 1.35rem;
  margin: 0.4rem 0 0.6rem;
}

.lv-post__title a {
  color: inherit;
  text-decoration: none;
}

.lv-post__title a:hover {
  color: var(--lv-accent);
}

.lv-post__text {
  color: var(--lv-ink-soft);
  font-size: 0.97rem;
}

@media (max-width: 767.98px) {
  .lv-post {
    grid-template-columns: 1fr;
  }
}

.lv-article__body {
  font-size: 1.06rem;
  line-height: 1.8;
  color: var(--lv-ink-2);
}

.lv-article__body h2 {
  margin-top: 2.2rem;
}

.lv-article__body h3 {
  margin-top: 1.8rem;
}

.lv-article__body ul,
.lv-article__body ol {
  margin-bottom: 1.2rem;
}

.lv-article__body li {
  margin-bottom: 0.5rem;
}

.lv-article__body blockquote {
  margin: 1.8rem 0;
  padding: 1.2rem 1.6rem;
  border-left: 4px solid var(--lv-accent);
  background-color: var(--lv-sand);
  border-radius: 0 var(--lv-radius-s) var(--lv-radius-s) 0;
  font-family: var(--lv-font-display);
  font-size: 1.15rem;
  color: var(--lv-ink);
}

.lv-toc {
  padding: 1.4rem 1.6rem;
  border: 1px solid var(--lv-line);
  border-radius: var(--lv-radius-s);
  background-color: var(--lv-white);
}

.lv-toc ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.5rem;
  font-size: 0.94rem;
}

.lv-toc a {
  color: var(--lv-ink-soft);
  text-decoration: none;
}

.lv-toc a:hover {
  color: var(--lv-accent);
}

.lv-notice {
  padding: 1.2rem 1.5rem;
  border-radius: var(--lv-radius-s);
  border: 1px solid var(--lv-line);
  background-color: var(--lv-sand);
  font-size: 0.96rem;
  color: var(--lv-ink-2);
}

.lv-notice strong {
  color: var(--lv-ink);
}

.lv-ratio {
  border-radius: var(--lv-radius);
  overflow: hidden;
  background-color: var(--lv-sand);
}

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

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* QA_STEP_CARD_GRID_FIX .lv-steps:has(> .lv-step) */
@media(min-width:992px){.lv-steps:has(> .lv-step){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}.lv-steps:has(> .lv-step)>:not(.lv-step){grid-column:1/-1}.lv-steps:has(> .lv-step)>.lv-step{width:100%;max-width:100%;min-width:0}}

/* QA_FIX_AV_CONTRAST - hero on dark overlay + footer on dark background */
.lv-hero .lv-hero__title,
.lv-hero h1.lv-display {
  color: var(--lv-cream);
}

.lv-hero .lv-eyebrow {
  color: var(--lv-accent-soft);
}

/* keep the light card inside the hero readable */
.lv-hero .lv-card .lv-eyebrow {
  color: var(--lv-accent);
}

.lv-footer .lv-brand__tag {
  color: rgba(250, 246, 240, 0.8);
}

.lv-footer .lv-contact-list__label {
  color: rgba(250, 246, 240, 0.8);
}

.lv-footer .lv-contact-list__value {
  color: var(--lv-cream);
}

/* QA_FIX_AV_HEADER_OVERLAP - fixed header covers the hero on mobile */
@media (max-width: 991.98px) {
  main .lv-hero {
    padding-top: 220px;
  }
}

/* QA_FIX_AV_HEADER_OVERLAP_2 - reserve flow space above the hero so the fixed
   mobile header no longer sits on top of the first section */
@media (max-width: 991.98px) {
  main {
    padding-top: 212px;
  }

  main .lv-hero {
    padding-top: 28px;
  }
}

/* QA_FIX_K7_CONTRAST_OVERLAP */
.lv-photo {
  background-color: var(--lv-ink);
}

.lv-navbar {
  background-color: var(--lv-cream);
}

.lv-footer .lv-brand__tag {
  color: var(--lv-accent-soft);
}

.lv-footer .lv-contact-list__label {
  color: rgba(250, 246, 240, 0.8);
}

.lv-footer .lv-contact-list__value {
  color: var(--lv-cream);
}

.lv-photo .lv-surface .lv-eyebrow,
.lv-band .lv-surface .lv-eyebrow {
  color: var(--lv-accent);
}

.lv-photo .lv-surface h1,
.lv-photo .lv-surface h2,
.lv-photo .lv-surface h3,
.lv-photo .lv-surface h4,
.lv-band .lv-surface h1,
.lv-band .lv-surface h2,
.lv-band .lv-surface h3,
.lv-band .lv-surface h4 {
  color: var(--lv-ink);
}

.lv-photo .lv-surface .lv-meta,
.lv-band .lv-surface .lv-meta,
.lv-photo .lv-surface .lv-lead,
.lv-band .lv-surface .lv-lead,
.lv-photo .lv-surface .lv-card__text,
.lv-band .lv-surface .lv-card__text,
.lv-photo .lv-surface .lv-price-list li,
.lv-band .lv-surface .lv-price-list li {
  color: var(--lv-ink-soft);
}

.lv-form__success {
  margin: 0.5rem 0 0;
  padding: 0.85rem 1rem;
  border-radius: var(--lv-radius-s);
  background-color: rgba(178, 58, 22, 0.1);
  border: 1px solid rgba(178, 58, 22, 0.3);
  color: var(--lv-accent-deep);
  font-weight: 600;
}

@media (max-width: 991.98px) {
  .lv-hero.lv-photo {
    padding-top: calc(var(--lv-header-h, 200px) + 24px);
  }
}

/* QA_FIX_CONTRAST_2024: legible text on dark background-image sections (hero, stats, CTA) */
.lv-on-dark {
  color: var(--lv-cream);
}
.lv-on-dark h1,
.lv-on-dark h2,
.lv-on-dark h3,
.lv-on-dark h4,
.lv-on-dark .lv-display,
.lv-on-dark .lv-hero__title {
  color: var(--lv-cream);
}
.lv-on-dark .lv-eyebrow {
  color: #f7dcc8;
}
.lv-on-dark .lv-lead,
.lv-on-dark .lv-hero__lead {
  color: rgba(250, 246, 240, 0.94);
}
.lv-on-dark p {
  color: rgba(250, 246, 240, 0.92);
}

/* QA_FIX_FOOTER_CONTRAST_2024: footer brand tag + contact list on dark footer background */
.lv-footer .lv-brand,
.lv-footer .lv-brand__name {
  color: var(--lv-cream);
}
.lv-footer .lv-brand__tag {
  color: rgba(250, 246, 240, 0.82);
}
.lv-footer .lv-contact-list__icon {
  background-color: rgba(250, 246, 240, 0.16);
  color: var(--lv-accent-soft);
}
.lv-footer .lv-contact-list__label {
  color: rgba(250, 246, 240, 0.82);
}
.lv-footer .lv-contact-list__value {
  color: var(--lv-cream);
}

/* QA_FIX_HEADER_OFFSET_2024: keep content clear of the fixed header on small screens */
@media (max-width: 991.98px) {
  body {
    padding-top: var(--lv-header-h, 76px);
  }

  .lv-hero {
    padding-top: clamp(40px, 8vw, 72px);
  }
}

/* QA_FINAL_2024: legible lead text on dark hero/CTA background images */
.lv-hero .lv-lead,
.lv-hero p.lv-lead {
  color: rgba(250, 246, 240, 0.95);
}

.lv-cta .lv-lead,
.lv-cta p.lv-lead {
  color: rgba(250, 246, 240, 0.92);
}

/* QA_FINAL_2024: reserve flow space above the first section so the fixed
   mobile header no longer overlaps the hero box. */
@media (max-width: 991.98px) {
  body {
    padding-top: 190px !important;
  }

  main {
    padding-top: 0 !important;
  }

  main .lv-hero,
  .lv-hero {
    padding-top: 32px !important;
  }
}

/* QA_FIX_CONTACTS_2024: feature cards stack icon + text vertically instead of
   forcing title and paragraph into the same flex row (which overflowed the card) */
.lv-feature {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: 1.15rem;
  row-gap: 0.4rem;
  align-items: start;
}

.lv-feature > .lv-feature__icon {
  grid-row: 1 / span 2;
  align-self: start;
}

.lv-feature > .lv-feature__title {
  grid-column: 2;
  margin: 0;
  min-width: 0;
}

.lv-feature > .lv-feature__text {
  grid-column: 2;
  min-width: 0;
  overflow-wrap: break-word;
}

/* QA_FIX_CONTACTS_2024: hero lead was dark ink-soft on the dark hero overlay */
.lv-hero .lv-lead,
.lv-hero p.lv-lead {
  color: rgba(250, 246, 240, 0.95);
}

/* QA_FIX_CONTACTS_2024: form placeholders now meet 4.5:1 contrast on white */
.lv-form .form-control::placeholder,
.lv-form .form-select::placeholder,
.lv-form__field .form-control::placeholder {
  color: #5b6875;
  opacity: 1;
}

/* QA_FIX_CONTACTS_2024: reserve flow space equal to the fixed mobile header so
   the hero (and everything else) starts below it on small screens */
@media (max-width: 991.98px) {
  body {
    padding-top: var(--lv-header-h, 176px) !important;
  }

  main {
    padding-top: 0 !important;
  }

  main .lv-hero {
    padding-top: 32px !important;
    scroll-margin-top: var(--lv-header-h, 176px);
  }
}

/* QA_FIX_HEADER_OFFSET_UNIVERSAL_2025: reserve flow space equal to the fixed
   header height at ALL viewport widths so the fixed header never sits on top
   of the first hero section. Uses the --lv-header-h value set by main.js. */
body {
  padding-top: var(--lv-header-h, 130px) !important;
}

main > section:first-child,
main .lv-hero {
  padding-top: clamp(24px, 4vw, 56px) !important;
  scroll-margin-top: var(--lv-header-h, 130px);
}

/* QA_FIX_P4_HEADER_OFFSET: reserve the real fixed-header height in flow at
   EVERY breakpoint (not only mobile) so the hero box never sits under the
   fixed header. Uses the header height variable maintained by the site JS,
   with a safe CSS fallback. */
body {
  padding-top: 0 !important;
}

main {
  padding-top: var(--lv-header-h, 84px) !important;
}

@media (min-width: 992px) {
  main .lv-hero {
    padding-top: 72px !important;
  }
}

/* QA_ROUND2_HEADER: make the fixed navbar fully opaque and drop backdrop-filter
   so the header text always sits on the light cream surface (also over dark heroes) */
.lv-header {
  background-color: var(--lv-cream);
}
.lv-navbar {
  background-color: var(--lv-cream) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.lv-brand,
.lv-brand__name {
  color: var(--lv-ink) !important;
}
.lv-brand__tag {
  color: var(--lv-ink-soft) !important;
}
.lv-nav__link {
  color: var(--lv-ink) !important;
}
.lv-nav__link:hover,
.lv-nav__link.is-active {
  color: var(--lv-accent-deep) !important;
}

/* QA_ROUND2_DARK_SECTIONS: light text over the dark background-image sections
   ("In cijfers" and "Aanvraag") which now carry the .lv-photo class */
.lv-photo h1,
.lv-photo h2,
.lv-photo h3,
.lv-photo .lv-display {
  color: var(--lv-cream) !important;
}
.lv-photo .lv-eyebrow,
.lv-photo span.lv-eyebrow {
  color: var(--lv-accent-soft) !important;
}
.lv-photo > .lv-container p,
.lv-photo p {
  color: rgba(250, 246, 240, 0.94) !important;
}
.lv-photo .lv-contact-list__label {
  color: rgba(250, 246, 240, 0.85) !important;
}
.lv-photo .lv-contact-list__value {
  color: var(--lv-cream) !important;
}
/* but keep text inside the white form surface dark */
.lv-photo .lv-surface,
.lv-photo .lv-surface p,
.lv-photo .lv-surface label,
.lv-photo .lv-surface .form-label,
.lv-photo .lv-surface h1,
.lv-photo .lv-surface h2,
.lv-photo .lv-surface h3 {
  color: var(--lv-ink) !important;
}
.lv-photo .lv-surface .lv-eyebrow {
  color: var(--lv-accent) !important;
}

/* QA_ROUND2_HEADER_OVERLAP: reserve flow space equal to the fixed header so the
   hero box starts below it on small screens (single source of truth: main) */
@media (max-width: 991.98px) {
  body {
    padding-top: 0 !important;
  }
  main {
    padding-top: var(--lv-header-h, 150px) !important;
  }
  .lv-hero,
  main .lv-hero {
    padding-top: 24px !important;
  }
}

/* QA_FIX_PRICE_2025: footer brand wordmark + tag must stay light on the dark
   footer surface. The earlier global `!important` rules forced the brand text
   to ink colour, which made it invisible against the ink footer background. */
.lv-footer .lv-brand,
.lv-footer .lv-brand__name {
  color: var(--lv-cream) !important;
}
.lv-footer .lv-brand__tag {
  color: rgba(250, 246, 240, 0.82) !important;
}

/* QA_FIX_PRICE_2025: leave a real gap between the fixed mobile header and the
   first hero section instead of letting them touch (0px overlap). */
@media (max-width: 991.98px) {
  main {
    padding-top: calc(var(--lv-header-h, 150px) + 24px) !important;
  }
}

/* QA_FIX_2026_FOOTER_BRAND: the global ".lv-brand__name{color:var(--lv-ink)!important}"
   rule above forced dark ink text onto the dark footer background. Restore a light,
   opaque (non-alpha) colour there so the footer brand name/tag stay legible and
   the footer logo lockup is clearly visible. */
.lv-footer .lv-brand,
.lv-footer a.lv-brand,
.lv-footer .lv-brand__name {
  color: #faf6f0 !important;
  text-decoration: none;
}

.lv-footer .lv-brand__tag {
  color: #ded3c6 !important;
}

.lv-footer .lv-brand img {
  filter: none !important;
  opacity: 1 !important;
  position: relative;
  z-index: 2;
}

/* QA_FIX_2026_HEADER_OFFSET: the fixed header must sit ABOVE the first section,
   not flush against it. Reserve the measured header height plus a small gap in
   flow at every breakpoint (the JS keeps --lv-header-h up to date). */
main {
  padding-top: calc(var(--lv-header-h, 84px) + 18px) !important;
}

@media (max-width: 991.98px) {
  body {
    padding-top: 0 !important;
  }

  main {
    padding-top: calc(var(--lv-header-h, 150px) + 24px) !important;
  }

  main > section:first-child,
  main .lv-hero {
    padding-top: 28px !important;
    scroll-margin-top: calc(var(--lv-header-h, 150px) + 24px);
  }
}

/* QA_FINAL_FIX_PRIVACY: footer brand must be legible on the dark footer
   background. The earlier QA_ROUND2_HEADER rule forced --lv-ink on
   .lv-brand__name / .lv-brand__tag with !important, which collided with the
   dark footer. These scoped rules win inside the footer only and leave the
   light header untouched. */
.lv-footer .lv-brand,
.lv-footer .lv-brand__name {
  color: var(--lv-cream) !important;
}

.lv-footer .lv-brand__tag {
  color: var(--lv-accent-soft) !important;
}

.lv-footer .lv-contact-list__label {
  color: rgba(250, 246, 240, 0.85) !important;
}

.lv-footer .lv-contact-list__value {
  color: var(--lv-cream) !important;
}

/* QA_FINAL_FIX_PRIVACY: add a small buffer below the fixed header so the hero
   box never touches or sits under the fixed navbar on small screens. */
@media (max-width: 991.98px) {
  main {
    padding-top: calc(var(--lv-header-h, 150px) + 12px) !important;
  }
}

/* QA_STEP_LABEL_CLIP_FIX: the step title (h3) was landing in an implicit narrow
   grid column at the right edge because only `.lv-step__num` was placed in the
   first column while title + text auto-flowed into the second/third implicit
   tracks. That truncated the labels ("Om te plaatsen", "Prijsopgave", ...) at
   the viewport edge on mobile. Pin the number to column 1 and let the title and
   body text both occupy the flexible column 2 so they wrap inside the card. */
.lv-step {
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  overflow-wrap: break-word;
}

.lv-step > .lv-step__num {
  grid-column: 1;
  grid-row: 1 / span 2;
  align-self: start;
}

.lv-step > .lv-step__title {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  overflow-wrap: break-word;
}

.lv-step > .lv-step__text {
  grid-column: 2;
  grid-row: 2;
  min-width: 0;
  overflow-wrap: break-word;
}

@media (max-width: 575.98px) {
  .lv-step {
    gap: 0.6rem 1rem;
    padding: 1.25rem 1.1rem;
  }

  .lv-step > .lv-step__num {
    grid-row: 1;
    min-width: 0;
  }

  .lv-step > .lv-step__text {
    grid-column: 1 / -1;
    grid-row: 2;
  }
}

/* QA_FIX_GALLERY_CAPTION_CONTRAST: the gallery caption sits at the bottom of a
   photo tile whose lower edge can be light (e.g. the sprayed-ceiling photo).
   The old gradient faded to rgba(14,20,27,0.88), which against a light image
   area left the cream caption text around 2.9:1. Strengthen only this
   component's local backdrop (deeper + fully opaque at the text area) and use
   opaque white text — no global recolouring, palette unchanged. */
.lv-gallery__caption {
  background: linear-gradient(
    rgba(14, 20, 27, 0) 0%,
    rgba(14, 20, 27, 0.55) 38%,
    rgba(14, 20, 27, 0.94) 72%,
    #0e141b 100%
  );
  color: #ffffff;
  text-shadow: 0 1px 2px rgba(14, 20, 27, 0.55);
}
