.reservation-wrap {
  max-width: 720px;
  margin: -4rem auto 0;
}

.reservation-wrap.reservation-split {
  max-width: none;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 720px);
  gap: clamp(1.25rem, 3vw, 2.25rem);
  align-items: stretch;
}

.quote-visual {
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--glass-shadow-soft);
  min-height: 280px;
}

.quote-visual img {
  width: 100%;
  height: 100%;
  min-height: 320px;
  object-fit: cover;
  object-position: center;
  display: block;
}

@media (min-width: 901px) {
  .reservation-wrap.reservation-split .quote-visual {
    min-height: 100%;
  }

  .reservation-wrap.reservation-split .quote-visual img {
    min-height: 100%;
  }
}

@media (max-width: 900px) {
  .reservation-wrap.reservation-split {
    grid-template-columns: 1fr;
    max-width: none;
  }

  .reservation-wrap.reservation-split .quote-visual {
    order: -1;
    min-height: 240px;
    max-height: 42vh;
  }

  .reservation-wrap.reservation-split .quote-visual img {
    min-height: 0;
    height: 100%;
    max-height: 42vh;
  }
}

.reservation-card,
.quote-card,
.contact-card,
.application-card {
  padding: clamp(1.4rem, 4vw, 2rem);
}

.reservation-card form .btn-primary[type="submit"],
.quote-card form .btn-primary[type="submit"],
.contact-card form .btn-primary[type="submit"] {
  margin-top: 15px;
}

.feature-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

@media (max-width: 980px) {
  .feature-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .feature-row {
    grid-template-columns: 1fr;
  }
}
