/* ==========================================================
   IslandTravelAtlas — Connectivity Grid Text V12

   CSS-only repair.

   No card elements, text, images, or overlays are inserted,
   removed, wrapped, or repositioned by this stylesheet.
   ========================================================== */

html body
main section.ita-route-grid-restored-v12 {
  --ita-grid-card-dark: #082820;
  --ita-grid-text: #ffffff;
  --ita-grid-copy: #e7f2ed;
  --ita-grid-badge: rgba(5, 39, 31, 0.84);
}

/* Preserve the existing grid. */

html body
main section.ita-route-grid-restored-v12
:where(
  .rf-destination-grid,
  .pm-destination-grid,
  [class*="destination-grid"]
) {
  gap:
    clamp(16px, 2.2vw, 24px) !important;
}

/* Existing destination card selectors only. */

html body
main section.ita-route-grid-restored-v12
:where(
  .rf-destination-card,
  .pm-destination-card,
  [class*="destination-card"]
) {
  position: relative !important;
  isolation: isolate !important;

  overflow: hidden !important;

  min-height: 280px !important;

  border-radius: 18px !important;

  background-color:
    var(--ita-grid-card-dark) !important;

  background-blend-mode:
    multiply !important;

  color:
    var(--ita-grid-text) !important;

  text-decoration: none !important;

  box-shadow:
    0 14px 34px rgba(9, 45, 37, 0.18) !important;
}

/*
   Darken existing card images without inserting an overlay.
   The image remains in its original position.
*/

html body
main section.ita-route-grid-restored-v12
:where(
  .rf-destination-card,
  .pm-destination-card,
  [class*="destination-card"]
)
img {
  opacity: 1 !important;

  filter:
    brightness(0.52)
    saturate(0.9)
    contrast(1.06) !important;
}

/* Restore all existing card content above the image. */

html body
main section.ita-route-grid-restored-v12
:where(
  .rf-destination-content,
  .pm-destination-content,
  [class*="destination-content"],
  [class*="card-content"],
  [class*="card-copy"]
) {
  position: relative !important;
  z-index: 3 !important;

  opacity: 1 !important;
  visibility: visible !important;
}

/* Destination names */

html body
main section.ita-route-grid-restored-v12
:where(
  .rf-destination-card,
  .pm-destination-card,
  [class*="destination-card"]
)
:where(
  h2,
  h3,
  h4,
  strong,
  b
) {
  position: relative !important;
  z-index: 3 !important;

  color:
    var(--ita-grid-text) !important;

  -webkit-text-fill-color:
    var(--ita-grid-text) !important;

  opacity: 1 !important;
  visibility: visible !important;

  font-weight: 800 !important;
  line-height: 1.18 !important;

  text-shadow:
    0 2px 10px rgba(0, 0, 0, 0.88) !important;
}

/* Route descriptions */

html body
main section.ita-route-grid-restored-v12
:where(
  .rf-destination-card,
  .pm-destination-card,
  [class*="destination-card"]
)
:where(
  p,
  em
) {
  position: relative !important;
  z-index: 3 !important;

  color:
    var(--ita-grid-copy) !important;

  -webkit-text-fill-color:
    var(--ita-grid-copy) !important;

  opacity: 1 !important;
  visibility: visible !important;

  line-height: 1.5 !important;

  text-shadow:
    0 2px 9px rgba(0, 0, 0, 0.88) !important;
}

/* Guide-count labels and other card metadata */

html body
main section.ita-route-grid-restored-v12
:where(
  .rf-destination-card,
  .pm-destination-card,
  [class*="destination-card"]
)
:where(
  small,
  span,
  [class*="count"],
  [class*="meta"],
  [class*="guide"]
) {
  position: relative !important;
  z-index: 3 !important;

  color:
    var(--ita-grid-text) !important;

  -webkit-text-fill-color:
    var(--ita-grid-text) !important;

  opacity: 1 !important;
  visibility: visible !important;

  text-shadow:
    0 2px 9px rgba(0, 0, 0, 0.88) !important;
}

/*
   If the original template uses a shade element, restore it
   instead of creating a new overlay.
*/

html body
main section.ita-route-grid-restored-v12
:where(
  .rf-destination-shade,
  .pm-destination-shade,
  [class*="destination-shade"]
) {
  position: absolute !important;
  z-index: 2 !important;
  inset: 0 !important;

  display: block !important;

  opacity: 1 !important;
  visibility: visible !important;

  pointer-events: none !important;

  background:
    linear-gradient(
      180deg,
      rgba(4, 22, 17, 0.08) 0%,
      rgba(4, 22, 17, 0.28) 34%,
      rgba(4, 22, 17, 0.78) 68%,
      rgba(4, 22, 17, 0.97) 100%
    ) !important;
}

/* Ensure links inherit the restored white text. */

html body
main section.ita-route-grid-restored-v12
:where(
  .rf-destination-card,
  .pm-destination-card,
  [class*="destination-card"]
),
html body
main section.ita-route-grid-restored-v12
:where(
  .rf-destination-card,
  .pm-destination-card,
  [class*="destination-card"]
):visited {
  color:
    var(--ita-grid-text) !important;

  -webkit-text-fill-color:
    var(--ita-grid-text) !important;
}

html body
main section.ita-route-grid-restored-v12
:where(
  .rf-destination-card,
  .pm-destination-card,
  [class*="destination-card"]
):hover {
  transform:
    translateY(-3px) !important;

  box-shadow:
    0 18px 42px rgba(9, 45, 37, 0.25) !important;
}

html body
main section.ita-route-grid-restored-v12
:where(
  .rf-destination-card,
  .pm-destination-card,
  [class*="destination-card"]
):focus-visible {
  outline:
    4px solid rgba(0, 124, 109, 0.34) !important;

  outline-offset:
    4px !important;
}

@media (max-width: 760px) {
  html body
  main section.ita-route-grid-restored-v12
  :where(
    .rf-destination-card,
    .pm-destination-card,
    [class*="destination-card"]
  ) {
    min-height:
      245px !important;
  }
}
