/* ========================================================= */
/* CRUISE SHARED STYLES — applies to ALL cruise pages        */
/* EXCEPT the main itineraries index page                    */
/* ========================================================= */

body:not(.page-cruise-itineraries) .section {
  padding: 60px 0;
}

body:not(.page-cruise-itineraries) .section-title {
  font-size: 2rem;
  margin-bottom: 10px;
  font-weight: 700;
  color: #222;
}

body:not(.page-cruise-itineraries) .section-subtitle {
  font-size: 1.1rem;
  margin-bottom: 30px;
  color: #555;
}

/* ------------------------- */
/* Grid System               */
/* ------------------------- */

body:not(.page-cruise-itineraries) .region-list-grid,
body:not(.page-cruise-itineraries) .cruise-list-grid,
body:not(.page-cruise-itineraries) .port-list-grid,
body:not(.page-cruise-itineraries) .itinerary-list-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 25px;
}

/* ------------------------- */
/* Card Component            */
/* ------------------------- */

body:not(.page-cruise-itineraries) .region-list-card,
body:not(.page-cruise-itineraries) .cruise-list-card,
body:not(.page-cruise-itineraries) .port-list-card,
body:not(.page-cruise-itineraries) .itinerary-list-card {
  background: #fff;
  border: 2px solid #c2c8d3;
  padding: 20px;
  border-radius: 8px;
  transition: all 0.25s ease;
}

body:not(.page-cruise-itineraries) .region-list-card:hover,
body:not(.page-cruise-itineraries) .cruise-list-card:hover,
body:not(.page-cruise-itineraries) .port-list-card:hover,
body:not(.page-cruise-itineraries) .itinerary-list-card:hover {
  border-color: #a8b0bb;
  transform: translateY(-3px);
}

body:not(.page-cruise-itineraries) .region-list-title,
body:not(.page-cruise-itineraries) .cruise-list-title,
body:not(.page-cruise-itineraries) .port-list-title,
body:not(.page-cruise-itineraries) .itinerary-list-title {
  font-size: 1.25rem;
  margin-bottom: 8px;
}

body:not(.page-cruise-itineraries) .region-list-title a,
body:not(.page-cruise-itineraries) .cruise-list-title a,
body:not(.page-cruise-itineraries) .port-list-title a,
body:not(.page-cruise-itineraries) .itinerary-list-title a {
  color: #0077cc;
  text-decoration: none;
  font-weight: 600;
}

body:not(.page-cruise-itineraries) .region-list-title a:hover,
body:not(.page-cruise-itineraries) .cruise-list-title a:hover,
body:not(.page-cruise-itineraries) .port-list-title a:hover,
body:not(.page-cruise-itineraries) .itinerary-list-title a:hover {
  text-decoration: underline;
}

body:not(.page-cruise-itineraries) .region-list-text,
body:not(.page-cruise-itineraries) .cruise-list-text,
body:not(.page-cruise-itineraries) .port-list-text,
body:not(.page-cruise-itineraries) .itinerary-list-text {
  color: #444;
  line-height: 1.5;
}

/* ------------------------- */
/* Buttons                   */
/* ------------------------- */

body:not(.page-cruise-itineraries) .btn {
  display: inline-block;
  padding: 12px 20px;
  border-radius: 6px;
  text-decoration: none;
  font-weight: 600;
  transition: background 0.25s ease;
}

body:not(.page-cruise-itineraries) .btn-primary {
  background: #0077cc;
  color: #fff;
}

body:not(.page-cruise-itineraries) .btn-primary:hover {
  background: #005fa3;
}

/* ------------------------- */
/* Map Embed                 */
/* ------------------------- */

body:not(.page-cruise-itineraries) .map-embed {
  margin-top: 20px;
  text-align: center;
}

/* ------------------------- */
/* Mobile Adjustments        */
/* ------------------------- */

@media (max-width: 600px) {
  body:not(.page-cruise-itineraries) .section {
    padding: 40px 0;
  }

  body:not(.page-cruise-itineraries) .section-title {
    font-size: 1.6rem;
  }

  body:not(.page-cruise-itineraries) .region-list-grid,
  body:not(.page-cruise-itineraries) .cruise-list-grid,
  body:not(.page-cruise-itineraries) .port-list-grid,
  body:not(.page-cruise-itineraries) .itinerary-list-grid {
    gap: 18px;
  }
}
