.vlt-section {
  box-sizing:border-box;
  width:100%;
  margin:0;
  padding:clamp(48px,5vw,82px) clamp(18px,3vw,56px) clamp(58px,5.8vw,92px);
  background:
    radial-gradient(circle at 50% 6%, rgba(255,255,255,.9), rgba(255,255,255,0) 38%),
    linear-gradient(90deg, rgba(228,214,191,.16), rgba(255,255,255,0) 28%, rgba(255,255,255,0) 72%, rgba(228,214,191,.16)),
    #faf7f2;
  color:#0c2c27;
  overflow:hidden;
}

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

.vlt-shell {
  width:min(1540px,100%);
  margin:0 auto;
  text-align:center;
}

.vlt-header {
  margin:0 auto 18px;
}

.vlt-header h2 {
  margin:0;
  color:#0f302a;
  font-family:"Playfair Display","Cormorant Garamond",Georgia,serif;
  font-size:clamp(42px,4vw,67px);
  line-height:.9;
  font-weight:500;
  letter-spacing:-.035em;
}

.vlt-header h2 span {
  display:inline-block;
  font-size:1.14em;
  text-transform:none;
}

.vlt-divider {
  position:relative;
  width:min(420px,70%);
  height:18px;
  margin:15px auto 0;
}

.vlt-divider::before,
.vlt-divider::after {
  content:"";
  position:absolute;
  top:50%;
  width:44%;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(201,168,106,.75));
}

.vlt-divider::before { left:0; }
.vlt-divider::after { right:0; transform:scaleX(-1); }

.vlt-divider span {
  position:absolute;
  top:50%;
  left:50%;
  width:13px;
  height:13px;
  border:1px solid #c99a42;
  transform:translate(-50%,-50%) rotate(45deg);
}

.vlt-divider span::after {
  content:"";
  position:absolute;
  inset:3px;
  border-radius:50%;
  background:#c99a42;
}

.vlt-header p {
  margin:0;
  color:#293c37;
  font-family:"Inter","Helvetica Neue",Arial,sans-serif;
  font-size:13px;
  line-height:1.2;
  font-weight:500;
}

.vlt-grid {
  position:relative;
  min-height:560px;
  margin:10px auto 24px;
}

.vlt-card {
  position:absolute;
  display:grid;
  grid-template-columns:190px minmax(0,1fr);
  overflow:hidden;
  border:1px solid rgba(5,67,64,.11);
  border-radius:20px;
  background:rgba(255,252,245,.72);
  box-shadow:0 18px 48px rgba(45,36,22,.055);
  text-align:left;
  transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease;
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
}

.vlt-card:hover {
  transform:translateY(-7px);
  border-color:rgba(201,168,106,.38);
  box-shadow:0 28px 72px rgba(45,36,22,.11);
}

.vlt-card--1 {
  top:0;
  left:2%;
  width:455px;
}

.vlt-card--2 {
  top:0;
  left:36%;
  width:430px;
}

.vlt-card--3 {
  top:252px;
  left:8%;
  width:390px;
}

.vlt-card--4 {
  top:288px;
  left:40.5%;
  width:365px;
}

.vlt-card--5 {
  top:250px;
  right:1.5%;
  width:380px;
}

.vlt-card--6 {
  top:14px;
  right:4%;
  width:400px;
}

.vlt-card.compact {
  grid-template-columns:160px minmax(0,1fr);
}

.vlt-photo {
  margin:0;
  min-height:176px;
  overflow:hidden;
  background:#eadfcf;
}

.vlt-card.compact .vlt-photo { min-height:165px; }

.vlt-photo img {
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center top;
  transition:transform .55s ease;
}

.vlt-card:hover .vlt-photo img { transform:scale(1.06); }

.vlt-copy {
  padding:24px 24px 19px;
}

.vlt-card.compact .vlt-copy {
  padding:20px 18px 16px;
}

.vlt-quote {
  display:block;
  margin:-4px 0 8px;
  color:#c99a42;
  font-family:Georgia,serif;
  font-size:34px;
  line-height:.55;
  font-weight:700;
}

.vlt-copy p {
  margin:0 0 16px;
  color:#122d29;
  font-family:"Playfair Display","Cormorant Garamond",Georgia,serif;
  font-size:15px;
  line-height:1.35;
  font-weight:500;
}

.vlt-stars {
  margin:0 0 10px;
  color:#c99a42;
  font-family:"Inter",Arial,sans-serif;
  font-size:16px;
  line-height:1;
  letter-spacing:.12em;
}

.vlt-copy strong,
.vlt-copy small {
  display:block;
  color:#132f29;
  font-family:"Inter","Helvetica Neue",Arial,sans-serif;
}

.vlt-copy strong {
  font-size:14px;
  line-height:1.1;
  font-weight:800;
}

.vlt-copy small {
  margin-top:3px;
  font-size:11px;
  line-height:1;
  font-weight:500;
}

.vlt-cta {
  width:min(318px,90%);
  min-height:44px;
  margin:0 auto;
  padding:0 24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  border-radius:999px;
  color:#fff;
  background:#054340;
  text-decoration:none;
  box-shadow:0 13px 34px rgba(5,67,64,.2);
  transition:transform .28s ease,box-shadow .28s ease,background .28s ease;
}

.vlt-cta:hover,
.vlt-cta:focus-visible {
  color:#fff;
  background:#0a554e;
  transform:translateY(-3px);
  box-shadow:0 20px 48px rgba(5,67,64,.28);
  outline:none;
}

.vlt-cta span {
  font-family:"Inter","Helvetica Neue",Arial,sans-serif;
  font-size:12px;
  line-height:1;
  font-weight:700;
  letter-spacing:.16em;
}

.vlt-cta i {
  color:#c9a86a;
  font-style:normal;
  font-size:16px;
}

.vlt-card.is-visible {
  animation:vltFadeUp .75s ease both;
  animation-delay:calc(var(--vlt-delay,0) * 80ms);
}

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

@media (max-width:1024px) {
  .vlt-shell {
    width:min(760px,100%);
  }

  .vlt-grid {
    min-height:0;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
  }

  .vlt-card,
  .vlt-card.compact {
    position:relative;
    top:auto;
    left:auto;
    right:auto;
    width:auto;
    grid-template-columns:42% minmax(0,1fr);
  }
}

@media (max-width:640px) {
  .vlt-section {
    padding:44px 14px 58px;
  }

  .vlt-header h2 {
    font-size:41px;
  }

  .vlt-grid {
    width:100vw;
    max-width:100vw;
    margin-left:calc(50% - 50vw);
    margin-right:calc(50% - 50vw);
    padding:4px 16px 18px;
    display:flex;
    grid-template-columns:none;
    gap:14px;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    scroll-behavior:smooth;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    touch-action:pan-x;
  }

  .vlt-grid::-webkit-scrollbar {
    display:none;
  }

  .vlt-card,
  .vlt-card.compact {
    flex:0 0 calc(100vw - 46px);
    width:calc(100vw - 46px);
    max-width:calc(100vw - 46px);
    scroll-snap-align:center;
    grid-template-columns:40% minmax(0,1fr);
    border-radius:18px;
  }

  .vlt-photo,
  .vlt-card.compact .vlt-photo {
    min-height:172px;
  }

  .vlt-copy,
  .vlt-card.compact .vlt-copy {
    padding:18px 15px 14px;
  }

  .vlt-copy p {
    font-size:13px;
  }
}

@media (prefers-reduced-motion:reduce) {
  .vlt-section *, .vlt-section *::before, .vlt-section *::after {
    animation:none!important;
    transition:none!important;
  }
}
