.contact-hero {
  padding-top: var(--space-64);
}

.contact-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-32);
  align-items: center;
}

@media (min-width: 900px) {
  .contact-hero__inner {
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  }
}

.contact-hero__lead {
  font-size: var(--font-size-lg);
  color: var(--color-text-soft);
}

.contact-hero__highlights {
  margin-top: var(--space-24);
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
}

.contact-hero__stats {
  background: radial-gradient(circle at top left, rgba(247, 168, 196, 0.18), transparent 55%),
              radial-gradient(circle at bottom right, rgba(123, 220, 181, 0.18), transparent 50%),
              #ffffff;
}

.contact-hero__stats-grid {
  gap: var(--space-24);
}

.contact-hero__cta {
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
}

@media (min-width: 640px) {
  .contact-hero__cta {
    flex-direction: row;
  }
}

.contact-section__grid {
  align-items: flex-start;
}

.contact-section__links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-8);
}

.contact-form {
  backdrop-filter: blur(14px);
}

.checkbox-label {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: var(--font-size-xs);
  color: var(--color-text-soft);
}

.checkbox-label input[type="checkbox"] {
  margin-top: 0.1rem;
}

.contact-details__inner {
  margin-top: var(--space-16);
}

.contact-details__grid {
  gap: var(--space-24);
}

.contact-details__card h2 {
  font-size: var(--font-size-2xl);
}

.contact-dl {
  margin-top: var(--space-16);
}

.contact-dl__item {
  margin-bottom: var(--space-12);
}

.contact-dl__item dt {
  font-size: var(--font-size-xs);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--color-text-muted);
  margin-bottom: 0.15rem;
}

.contact-dl__item dd {
  margin: 0;
  font-size: var(--font-size-sm);
  color: var(--color-text-soft);
}

.small-text {
  font-size: var(--font-size-xs);
}

.contact-reservation {
  margin-top: var(--space-8);
}

.contact-location__grid {
  gap: var(--space-24);
}

.contact-map__wrapper {
  margin-top: var(--space-16);
}

.contact-map__placeholder {
  border-radius: var(--radius-lg);
  border: 1px dashed rgba(148, 163, 184, 0.6);
  min-height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-24);
}

.contact-map__info {
  max-width: 420px;
}

.contact-map__link:hover .contact-map__placeholder {
  border-style: solid;
  box-shadow: var(--shadow-sm);
}

.contact-privacy__inner {
  margin-top: var(--space-16);
}

.contact-privacy__grid {
  gap: var(--space-32);
}

.contact-privacy__cta {
  background: radial-gradient(circle at top left, rgba(200, 181, 255, 0.18), transparent 55%),
              radial-gradient(circle at bottom right, rgba(247, 168, 196, 0.18), transparent 50%),
              #ffffff;
}

.contact-faq__header {
  max-width: 640px;
}

.contact-faq__grid {
  margin-top: var(--space-32);
  gap: var(--space-32);
}

.contact-faq__column {
  display: flex;
  flex-direction: column;
}

.faq-item[ data-open="true" ] .faq-button span:last-child {
  transform: rotate(45deg);
}

@media (prefers-reduced-motion: no-preference) {
  .faq-panel {
    transition: max-height var(--transition-slow), opacity var(--transition-slow);
  }
}

@media (min-width: 1024px) {
  .contact-details__grid,
  .contact-location__grid {
    align-items: stretch;
  }
}
