.container {
  background: #FFFFFF;
  border: 1px solid #E4EAE5;
  border-radius: 18px;
  padding: 22px 20px;
  box-shadow: 0 4px 24px -4px rgba(23, 33, 29, 0.06);
}

/* ── Header ──────────────────────────────────────────────────────────── */

.header {
  margin-bottom: 18px;
}

.titleRow {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 6px;
}

.headerIcon {
  color: #2FAE3B;
  flex-shrink: 0;
}

.title {
  margin: 0;
  font-size: 17px;
  font-weight: 800;
  color: #17211D;
  line-height: 1.3;
}

.subtitle {
  margin: 0 0 14px;
  font-size: 13px;
  color: #5E6D66;
  line-height: 1.45;
}

/* ── Status Legend ────────────────────────────────────────────────────── */

.legendRow {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 11.5px;
  color: #7B8B83;
}

.legendItem {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.legendDot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  display: inline-block;
}

.dotAvailable {
  background-color: #2FAE3B;
}

.dotAlmostFull {
  background-color: #F59E0B;
}

.dotFull {
  background-color: #94A3B8;
}

/* ── Month Navigation ─────────────────────────────────────────────────── */

.monthNav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  background: #F8FAF8;
  border-radius: 11px;
  margin-bottom: 16px;
  border: 1px solid #EDF3EE;
}

.monthLabel {
  font-size: 13.5px;
  font-weight: 700;
  color: #17211D;
}

.navArrowBtn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: 1px solid #DCE6DF;
  background: #FFFFFF;
  border-radius: 7px;
  color: #17211D;
  cursor: pointer;
  transition: all 0.15s ease;
}

.navArrowBtn:hover:not(:disabled) {
  background: #EDF7EF;
  border-color: #2FAE3B;
  color: #2FAE3B;
}

.navArrowBtn:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

/* ── Date Grid ────────────────────────────────────────────────────────── */

.dateGrid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 22px;
}

.dateCard {
  background: #FFFFFF;
  border: 1px solid #E4EAE5;
  border-radius: 12px;
  padding: 12px 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  cursor: pointer;
  text-align: center;
  transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
  outline: none;
}

.dateCard:hover:not(.dateCardDisabled) {
  transform: translateY(-2px);
  border-color: #2FAE3B;
  box-shadow: 0 4px 12px rgba(47, 174, 59, 0.08);
}

.dateCardSelected {
  border: 2px solid #2FAE3B !important;
  background: #F2F9F3 !important;
  box-shadow: 0 4px 14px rgba(47, 174, 59, 0.12);
  transform: translateY(-1px);
}

.dateCardDisabled {
  opacity: 0.55;
  background: #F8FAF8;
  cursor: not-allowed;
  border-color: #E2E8E4;
}

.cardDate {
  font-size: 13.5px;
  font-weight: 800;
  color: #17211D;
  line-height: 1.2;
}

/* ── Status Badge inside Card ─────────────────────────────────────────── */

.statusBadge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 7px;
  border-radius: 12px;
  font-size: 10px;
  font-weight: 600;
}

.badgeAvailable {
  background: #EDF7EF;
  color: #2FAE3B;
}

.badgeFull {
  background: #F1F5F9;
  color: #64748B;
}

.statusDot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  flex-shrink: 0;
}

.cardPrice {
  font-size: 11.5px;
  font-weight: 700;
  color: #17211D;
  margin-top: 2px;
}

.cardDuration {
  font-size: 10px;
  color: #7B8B83;
}

/* ── Selected Departure Summary ───────────────────────────────────────── */

.summaryBox {
  border-top: 1px solid #EDF3EE;
  padding-top: 18px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.summaryTitle {
  margin: 0;
  font-size: 14px;
  font-weight: 800;
  color: #17211D;
}

.summaryRows {
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.summaryItem {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 12.5px;
  color: #4A5550;
}

.summaryIcon {
  color: #2FAE3B;
  flex-shrink: 0;
}

.summaryText {
  line-height: 1.4;
}

.priceHighlight {
  color: #17211D;
  font-weight: 800;
  font-size: 13.5px;
}

/* ── Booking CTA Button ───────────────────────────────────────────────── */

.bookingBtn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  width: 100%;
  padding: 13px 20px;
  background: #2FAE3B;
  color: #FFFFFF;
  border-radius: 12px;
  font-size: 14.5px;
  font-weight: 700;
  text-decoration: none;
  border: none;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(47, 174, 59, 0.28);
  transition: all 0.2s ease;
}

.bookingBtn:hover {
  background: #269436;
  box-shadow: 0 6px 18px rgba(47, 174, 59, 0.35);
  transform: translateY(-1px);
}

.btnArrow {
  transition: transform 0.2s ease;
}

.bookingBtn:hover .btnArrow {
  transform: translateX(3px);
}

/* ── Trust Strip ──────────────────────────────────────────────────────── */

.trustStrip {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 11px;
  color: #7B8B83;
}

.lockIcon {
  color: #7B8B83;
}

/* ── Responsive ───────────────────────────────────────────────────────── */

@media (max-width: 768px) {
  .dateGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .dateCard {
    padding: 10px 6px;
  }

  .cardDate {
    font-size: 13px;
  }

  .cardPrice {
    font-size: 11px;
  }
}
