.hero-home {
  position: relative;
}

/* Text on the home page should use the full width of its layout column. */
.home-page .site-main :is(h1, h2, h3, h4, h5, h6, p) {
  max-width: none;
}

.story-highlight {
  align-self: stretch;
  min-width: 0;
  padding: var(--space-7);
  display: flex;
  flex-direction: column;
  gap: var(--space-7);
}

.story-highlight .card-header {
  min-width: 0;
  margin-bottom: 0;
}

.story-highlight .card-header > div,
.story-highlight .step-list,
.story-highlight .step-item,
.story-highlight .step-item > div:last-child {
  min-width: 0;
}

.story-highlight .step-item {
  align-items: flex-start;
}

.story-highlight .step-index {
  flex: 0 0 26px;
}

.story-highlight .card-title,
.story-highlight .step-content-title,
.story-highlight .step-content-text {
  overflow-wrap: break-word;
}

.story-cta {
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-4);
}

.story-cta > span {
  flex: 1 1 220px;
  min-width: 0;
}

.story-cta .btn {
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
  white-space: normal;
  line-height: 1.35;
  text-align: center;
}

.image-feature {
  position: relative;
  overflow: hidden;
  border-radius: 4px;
}

.image-feature-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.image-feature-caption {
  padding: 24px 24px 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  background: linear-gradient(180deg, rgba(11, 12, 13, 0.2), rgba(11, 12, 13, 0.9));
}

.menu-preview-copy {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.image-feature-invert {
  display: flex;
  align-items: stretch;
}

.image-feature-invert .image-feature-photo {
  border-radius: 4px;
}

.trust-grid {
  align-items: stretch;
}

.reserve-layout {
  align-items: flex-start;
}

.reserve-info {
  align-self: stretch;
  min-width: 0;
  padding: var(--space-7);
  display: flex;
  flex-direction: column;
  gap: var(--space-7);
}

.reserve-info > *,
.reserve-info .timetable > div,
.reserve-info .timetable-row,
.reserve-info .timetable-label,
.reserve-info .timetable-value {
  min-width: 0;
}

.reserve-info .timetable-row {
  align-items: flex-start;
  flex-wrap: wrap;
}

.reserve-info .timetable-value {
  max-width: 100%;
  overflow-wrap: anywhere;
  text-align: right;
}

.reserve-info .chip-schedule {
  max-width: 100%;
  white-space: normal;
  overflow-wrap: break-word;
  line-height: 1.4;
}

.reserve-actions {
  margin-top: 8px;
}

@media (max-width: 960px) {
  .image-feature,
  .image-feature-invert {
    min-height: 0;
  }

  .image-feature-photo {
    height: auto;
  }
}

@media (max-width: 640px) {
  .hero-home .hero-inner {
    grid-template-columns: minmax(0, 1fr);
  }

  .story-highlight {
    margin-top: 24px;
    padding: var(--space-5);
    gap: var(--space-6);
  }

  .reserve-info {
    padding: var(--space-5);
    gap: var(--space-6);
  }

  .reserve-info .timetable-value {
    text-align: left;
  }

  .story-cta {
    flex-direction: column;
    align-items: stretch;
  }

  .story-cta > span {
    flex-basis: auto;
  }

  .story-cta .btn {
    width: 100%;
  }
}

@media (max-width: 380px) {
  .story-highlight {
    padding: var(--space-4);
  }

  .story-highlight .step-item {
    gap: var(--space-3);
  }

  .story-highlight .card-title,
  .story-highlight .step-content-title {
    letter-spacing: 0.1em;
  }
}

ul {
  list-style: none !important;
}

.nav-toggle {
  display: flex;
  flex-direction: column;
}
