/* Web/Card/Departure (195:28) */

.aht-departure {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  overflow: hidden;
  background: var(--aht-color-background-raised);
  border: 1px solid transparent;
  border-radius: var(--aht-radius-6);
  box-shadow: 0 2px 8px 0 rgb(63 16 35 / 6%);
  transition:
    box-shadow var(--aht-duration-base) var(--aht-ease-standard),
    border-color var(--aht-duration-base) var(--aht-ease-standard);
}

/* Hover lifts the shadow and adds the warm hairline. */
.aht-departure:hover {
  border-color: var(--aht-color-line-warm);
  box-shadow: 0 8px 24px 0 rgb(63 16 35 / 12%);
}

.aht-departure:focus-visible {
  outline: 2px solid var(--aht-color-border-focus);
  outline-offset: 2px;
}

.aht-departure__image {
  width: 100%;
  height: 180px;
  flex-shrink: 0;
  background: var(--aht-color-background-subtle);
}

.aht-departure__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.aht-departure__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
  width: 100%;
  padding: var(--aht-spacing-20);
}

.aht-departure__header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--aht-spacing-8);
  width: 100%;
}

.aht-departure__header h3 {
  color: var(--aht-color-text-primary);
}

.aht-departure__dates,
.aht-departure__hotels,
.aht-departure__basis,
.aht-departure__note {
  color: var(--aht-color-text-secondary);
}

.aht-departure__rule {
  width: 100%;
  height: 1px;
  margin: 0;
  border: 0;
  background: var(--aht-color-line-warm);
}

.aht-departure__tiers {
  display: flex;
  flex-direction: column;
  gap: var(--aht-spacing-12);
  width: 100%;
}

.aht-departure__tiers li {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.aht-departure__tiers p:first-child {
  color: var(--aht-color-text-primary);
}

.aht-departure__deadline,
.aht-departure__action {
  width: 100%;
  color: var(--aht-color-text-brand);
}

.aht-departure__action {
  margin-top: auto;
  text-align: right;
}

/* The grid the cards sit in — three up on desktop, one up on mobile. */
.aht-departure-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--aht-spacing-24);
  align-items: stretch;
}

.aht-departure-grid > * {
  height: 100%;
}

@media (max-width: 1119px) {
  .aht-departure-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .aht-departure-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
