/* Reset and base styles */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: Arial, sans-serif;
  background-color: #f5f5f5;
  color: #333;
}

.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px;
}

/* Header */
.header {
  background-color: white;
  border-bottom: 2px solid #d73027;
  padding: 12px 0;
}

.header-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.logo img {
  height: 40px;
}

.nav {
  display: flex;
  align-items: center;
  gap: 24px;
}

.nav-link {
  text-decoration: none;
  color: #666;
  font-size: 14px;
}

.country-selector {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: #333;
}

.flag {
  display: flex;
  width: 20px;
  height: 14px;
  border: 1px solid #ccc;
}

.flag-yellow {
  background-color: #ffcc00;
  flex: 1;
}

.flag-blue {
  background-color: #0033cc;
  flex: 1;
}

.flag-red {
  background-color: #cc0000;
  flex: 1;
}

/* Journey Progress */
.journey-progress {
  background-color: white;
  padding: 0;
}

.progress-background {
  background-color: #f7f7f7;
  width: 100%;
  padding: 10px 10px 0 10px;
  position: relative;
}

.progress-line {
  width: calc(100% - 32px);
  height: 2px;
  background-color: #c1c1c1;
  position: absolute;
  top: 25px;
  left: 16px;
  z-index: 1;
}

.progress-line.active {
  background-color: #00aec7;
}

.progress-container {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  position: relative;
  z-index: 2;
  padding-bottom: 10px;
}

.progress-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
}

.step-circle {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background-color: #f7f7f7;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 8px;
}

.step-circle.active {
  background-color: #f7f7f7;
}

.step-circle svg {
  width: 30px;
  height: 30px;
}

.progress-step.active .step-circle svg path {
  fill: #00aec7;
}

.step-info {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  min-width: 80px;
}

.step-number-label {
  font-family:
    Lato,
    -apple-system,
    Roboto,
    Helvetica,
    sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 16px;
  color: #c1c1c1;
  margin-bottom: 2px;
}

.progress-step.active .step-number-label {
  color: #00aec7;
}

.step-title {
  font-family:
    Lato,
    -apple-system,
    Roboto,
    Helvetica,
    sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 16px;
  color: #c1c1c1;
}

.progress-step.active .step-title {
  color: #00aec7;
}

/* Flight Itinerary */
.flight-itinerary {
  background-color: white;
  padding: 16px 0;
}

.itinerary-container {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #e0e0e0;
  border-radius: 10px;
  background: white;
  height: 75px;
  padding: 0 16px;
  position: relative;
}

.itinerary-city {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 5px;
  min-width: 65px;
  max-width: 200px;
}

.itinerary-city h3 {
  color: #163a70;
  font-family:
    Lato,
    -apple-system,
    Roboto,
    Helvetica,
    sans-serif;
  font-size: 20px;
  font-weight: 900;
  line-height: 20px;
  margin: 0;
}

.itinerary-city .airport-code {
  color: #163a70;
  font-family:
    Lato,
    -apple-system,
    Roboto,
    Helvetica,
    sans-serif;
  font-size: 16px;
  font-weight: 300;
  line-height: 20px;
  text-transform: uppercase;
}

.flight-date-section {
  display: flex;
  width: 149px;
  padding: 0 10px;
  justify-content: center;
  align-items: center;
  margin: 0 20px;
}

.date-line {
  display: flex;
  width: 129px;
  padding: 0 37px 0.8px 37px;
  justify-content: center;
  align-items: center;
  border-bottom: 0.8px solid #163a70;
  height: 17px;
  position: relative;
}

.flight-date {
  color: #163a70;
  text-align: center;
  font-family:
    Lato,
    -apple-system,
    Roboto,
    Helvetica,
    sans-serif;
  font-size: 12px;
  font-weight: 700;
  line-height: 16px;
  background: white;
  padding: 0 4px;
}

.edit-button-container {
  display: flex;
  height: 16px;
  padding: 0 12px;
  justify-content: center;
  align-items: center;
  margin-left: 20px;
}

.edit-button {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  width: 16px;
  height: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.edit-button svg {
  width: 16px;
  height: 16px;
}

.search-other-dates-button {
  display: flex;
  height: 73px;
  padding: 16.6px 33.7px;
  justify-content: center;
  align-items: center;
  gap: 8px;
  border-radius: 0 8px 8px 0;
  border: 1px solid #5ac1d7;
  background: #5ac1d7;
  margin-left: auto;
  position: absolute;
  right: 0;
  top: 1px;
  width: 260px;
}

.search-button-content {
  display: flex;
  width: 131px;
  height: 40px;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 0;
  position: relative;
}

.search-text {
  display: flex;
  height: 24px;
  justify-content: center;
  align-items: center;
  gap: 8px;
  align-self: stretch;
  position: relative;
}

.ticket-icon {
  display: flex;
  height: 24px;
  align-items: center;
  position: absolute;
  left: -36px;
  top: 4px;
  width: 36px;
}

.ticket-icon svg {
  width: 40px;
  height: 24px;
}

.search-title {
  color: white;
  font-family:
    Lato,
    -apple-system,
    Roboto,
    Helvetica,
    sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 16px;
  position: absolute;
  left: 0;
  top: 4px;
  width: 95px;
  height: 16px;
}

.search-subtitle {
  color: white;
  font-family:
    Lato,
    -apple-system,
    Roboto,
    Helvetica,
    sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 16px;
  position: absolute;
  left: 0;
  top: 24px;
  width: 126px;
  height: 16px;
}

.aqui-button {
  display: flex;
  height: 28px;
  padding: 4.8px 8.8px;
  flex-direction: column;
  align-items: flex-start;
  border-radius: 6px;
  border: 1px solid #163a70;
  background: white;
  position: absolute;
  left: 137px;
  top: 23px;
  width: 54px;
  color: #163a70;
  font-family:
    Lato,
    -apple-system,
    Roboto,
    Helvetica,
    sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 16px;
  cursor: pointer;
  justify-content: center;
}

/* Date Navigation */
.date-navigation {
  background-color: white;
  padding: 16px 0;
  border-bottom: 1px solid #e0e0e0;
}

.date-navigation .container {
  display: flex;
  align-items: center;
  gap: 16px;
}

.date-nav-btn {
  background: none;
  border: none;
  padding: 8px;
  cursor: pointer;
  color: #666;
  border-radius: 4px;
}

.date-nav-btn:hover {
  background-color: #f0f0f0;
}

.dates-grid {
  display: flex;
  gap: 8px;
  flex: 1;
  justify-content: center;
}

.date-option {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 12px 16px;
  border: 1px solid #e0e0e0;
  border-radius: 4px;
  cursor: pointer;
  background-color: white;
  min-width: 100px;
}

.date-option.selected {
  background-color: #1b365d;
  color: white;
  border-color: #1b365d;
}

.date-option .day {
  font-size: 12px;
  margin-bottom: 4px;
}

.date-option .date {
  font-size: 14px;
  font-weight: bold;
  margin-bottom: 4px;
}

.date-option .price {
  font-size: 12px;
  color: #666;
}

.date-option.selected .price {
  color: white;
}

/* Flight Selection */
.flight-selection {
  background-color: white;
  padding: 24px 0;
}

.flight-direction {
  text-align: center;
  margin-bottom: 16px;
}

.flight-direction h2 {
  font-size: 24px;
  font-weight: bold;
  color: #1b365d;
  margin-bottom: 4px;
}

.flight-date {
  color: #666;
  font-size: 14px;
}

/* Promotional Message */
.promo-message {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px;
  background-color: #f8f9fa;
  border: 1px solid #e0e0e0;
  border-radius: 4px;
  margin-bottom: 24px;
  color: #666;
  font-size: 14px;
}

/* Flight Options */
.flight-options {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.flight-card {
  display: flex;
  align-items: center;
  padding: 24px;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  background-color: white;
  gap: 24px;
}

.flight-time {
  display: flex;
  align-items: center;
  gap: 24px;
  flex: 1;
}

.departure,
.arrival {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.departure .time,
.arrival .time {
  font-size: 24px;
  font-weight: bold;
  color: #1b365d;
}

.departure .city,
.arrival .city {
  font-size: 14px;
  color: #666;
}

.flight-duration {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  flex: 1;
}

.plane-icon {
  color: #4ecdc4;
}

.duration {
  font-size: 14px;
  color: #666;
}

.direct {
  font-size: 12px;
  color: #4ecdc4;
  background-color: #e8f8f7;
  padding: 4px 8px;
  border-radius: 12px;
}

.flight-details {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
  font-size: 12px;
  color: #666;
}

.fare-options {
  display: flex;
  gap: 16px;
}

.fare {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 16px 24px;
  border: 1px solid #e0e0e0;
  border-radius: 4px;
  cursor: pointer;
  min-width: 140px;
}

.fare.smart {
  background-color: #1b365d;
  color: white;
  border-color: #1b365d;
}

.fare.full {
  background-color: #ff9500;
  color: white;
  border-color: #ff9500;
}

.fare.selected {
  box-shadow: 0 0 0 2px #4ecdc4;
}

.fare-type {
  font-size: 12px;
  margin-bottom: 8px;
  text-transform: uppercase;
  font-weight: bold;
}

.fare .price {
  font-size: 18px;
  font-weight: bold;
}

/* Responsive */
@media (max-width: 768px) {
  .progress-bar {
    flex-wrap: wrap;
    gap: 16px;
  }

  .route-info {
    flex-direction: column;
    gap: 16px;
  }

  .search-actions {
    flex-direction: column;
    width: 100%;
  }

  .dates-grid {
    flex-wrap: wrap;
  }

  .flight-card {
    flex-direction: column;
    gap: 16px;
  }

  .flight-time {
    flex-direction: column;
    gap: 16px;
  }

  .fare-options {
    flex-direction: column;
    width: 100%;
  }
}

/* New Flight Card Styles */
.flight-card-container {
  display: flex;
  flex-direction: column;
  cursor: pointer;
  transition: all 0.2s ease;
  margin-bottom: 36px;
}

.flight-card-container:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

/* Flight Info Section */
.flight-info-section {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  height: 54px;
  margin-bottom: 16px;
}

.flight-time-section {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 5px;
  width: 116px;
  padding: 0 9px;
  height: 54px;
}

.flight-time-section.arrival {
  align-items: flex-end;
  width: 146px;
}

.time-display {
  color: #163a70;
  text-align: center;
  font-family:
    Lato,
    -apple-system,
    Roboto,
    Helvetica,
    sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 24px;
}

.location-info {
  display: flex;
  width: 98px;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}

.flight-time-section.arrival .location-info {
  width: 128px;
  align-items: flex-end;
}

.city-name {
  color: #163a70;
  font-family:
    Lato,
    -apple-system,
    Roboto,
    Helvetica,
    sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 16.8px;
  margin-bottom: 1px;
}

.flight-time-section.arrival .city-name {
  text-align: right;
}

.airport-name {
  color: #838383;
  font-family:
    Lato,
    -apple-system,
    Roboto,
    Helvetica,
    sans-serif;
  font-size: 10px;
  font-weight: 700;
  line-height: 12px;
}

.flight-time-section.arrival .airport-name {
  text-align: right;
}

/* Flight Duration Section */
.flight-duration-section {
  display: flex;
  flex: 1;
  align-items: center;
  justify-content: center;
  height: 43px;
  position: relative;
}

.plane-icon-section {
  position: absolute;
  left: 0;
  top: 7px;
}

.plane-icon-section svg {
  width: 35px;
  height: 35px;
}

.flight-path-lines {
  display: flex;
  width: 266px;
  justify-content: space-between;
  position: absolute;
  top: 25px;
  left: 35px;
}

.path-line {
  width: 88px;
  height: 1px;
  border-bottom: 0.8px solid #ccc;
}

.flight-status {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: absolute;
  left: 50%;
  top: 16px;
  transform: translateX(-50%);
  width: 36px;
}

.plane-circle {
  display: flex;
  width: 15px;
  height: 15px;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  background: #00aec7;
  margin-bottom: 5px;
}

.plane-circle img {
  width: 17px;
  height: 18px;
  margin-left: -1px;
  margin-top: -1px;
}

.direct-text {
  color: #00aec7;
  font-family:
    Lato,
    -apple-system,
    Roboto,
    Helvetica,
    sans-serif;
  font-size: 12px;
  font-style: italic;
  font-weight: 700;
  line-height: 24px;
  text-align: center;
  width: 38px;
}

/* Airline Info */
.airline-info {
  color: #163a70;
  font-family:
    Lato,
    -apple-system,
    Roboto,
    Helvetica,
    sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 16px;
  margin-bottom: 16px;
  padding-left: 18px;
}

/* Fare Options Section */
.fare-options-section {
  display: flex;
  width: 100%;
  max-width: 496px;
  margin: 0 auto;
}

.fare-option {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 26.8px 0 0.8px 0.8px;
  min-height: 98px;
  border: 0.8px solid #e0e0e0;
  position: relative;
  cursor: pointer;
  transition: all 0.2s ease;
}

.fare-option:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.smart-fare {
  border-radius: 6px 0 0 6px;
  border-right: none;
}

.club-fare {
  border-radius: 0 6px 6px 0;
  border-left: none;
}

.fare-header {
  display: flex;
  height: 26px;
  padding: 0 16px;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  border-bottom: 0.8px solid white;
}

.smart-fare .fare-header {
  background: #1d4071;
}

.club-fare .fare-header {
  background: #ffa400;
}

.fare-label {
  color: white;
  text-align: center;
  font-family:
    Lato,
    -apple-system,
    Roboto,
    Helvetica,
    sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
}

.info-icon {
  display: flex;
  width: 20px;
  height: 20px;
  padding: 3.6px 1.6px 4.4px 1.6px;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  border: 1px solid white;
  color: white;
  font-family:
    Lato,
    -apple-system,
    Roboto,
    Helvetica,
    sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 12px;
  margin-right: 8px;
}

.fare-price {
  font-family:
    Lato,
    -apple-system,
    Roboto,
    Helvetica,
    sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 32px;
  margin-top: 10px;
}

.smart-fare .fare-price {
  color: #1d4071;
}

.club-fare .fare-price {
  color: #ffa400;
}

/* Return Section */
.return-section {
  margin-top: 48px;
  margin-bottom: 24px;
}

.return-flights {
  margin-bottom: 48px;
}

/* Continue Section */
.continue-section {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 32px 0;
  margin-top: 48px;
}

.continue-button {
  display: flex;
  min-width: 180px;
  padding: 11.6px 59.18px 11.6px 39.19px;
  justify-content: center;
  align-items: center;
  gap: 12px;
  border-radius: 9999px;
  border: 1px solid #b2292e;
  background: #b2292e;
  color: white;
  text-align: center;
  font-family:
    Lato,
    -apple-system,
    Roboto,
    Helvetica,
    sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 18px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.continue-button:hover:not(:disabled) {
  background: #9d2428;
  border-color: #9d2428;
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(178, 41, 46, 0.3);
}

.continue-button:disabled {
  background: #ccc;
  border-color: #ccc;
  cursor: not-allowed;
  opacity: 0.6;
}

.continue-button svg {
  width: 25px;
  height: 25px;
  flex-shrink: 0;
}

/* Footer */
.footer {
  background-color: white;
  padding: 64px 0;
}

.footer-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 64px;
}

.payment-info h4,
.social-info h4 {
  color: var(--jetsmart-dark-blue);
  font-size: 18px;
  margin-bottom: 16px;
}

.payment-logos {
  display: flex;
  gap: 16px;
}

.payment-logos img {
  height: 48px;
}

.social-info {
  text-align: center;
}

.social-links {
  display: flex;
  gap: 16px;
}

.social-links a {
  font-size: 32px;
  color: var(--jetsmart-dark-blue);
  text-decoration: none;
}

.footer-links {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  margin-bottom: 64px;
}

.footer-column h5 {
  color: var(--jetsmart-dark-blue);
  font-size: 20px;
  font-weight: 900;
  margin-bottom: 16px;
}

.footer-column ul {
  list-style: none;
}

.footer-column li {
  margin-bottom: 8px;
}

.footer-column a {
  color: #666968;
  text-decoration: none;
}

.footer-column a:hover {
  color: var(--jetsmart-red);
}

.awards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 32px;
}

.awards img {
  width: 80px;
  height: 80px;
}

.footer-bottom {
  border-top: 8px solid var(--jetsmart-red);
  padding-top: 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.footer-bottom p {
  color: var(--jetsmart-dark-blue);
}

.footer-bottom img {
  height: 48px;
}

/* Footer responsive styles */
@media (max-width: 1024px) {
  .footer-links {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .footer-links {
    grid-template-columns: 1fr;
  }

  .footer-top {
    flex-direction: column;
    gap: 32px;
  }

  .footer-bottom {
    flex-direction: column;
    gap: 16px;
    text-align: center;
  }
}
