/* PulseTrips light editorial travel theme — homepage */
:root {
  color-scheme: light;
  --bg: #F7F5EF;
  --panel: #FFFFFF;
  --panel-light: #EEF5F4;
  --text: #243B53;
  --muted: #647789;
  --line: rgba(36, 59, 83, .14);
  --blue: #6D9FC4;
  --cyan: #2D8983;
}
html { background: #F7F5EF; }
body {
  background: #F7F5EF !important;
  color: #243B53 !important;
}
.topbar {
  background: rgba(255,255,255,.94) !important;
  border-bottom: 1px solid #E4E9E8 !important;
  box-shadow: 0 4px 18px rgba(36,59,83,.045);
}
.brand-name { color: #243B53 !important; text-shadow: none !important; }
.brand-mark { background: linear-gradient(135deg,#DCEFEA,#DCEAF5) !important; color: #2D8983 !important; }
.nav-links a { color: #52677B !important; }
.nav-links a:hover { color: #2D8983 !important; }
.menu-button { background:#fff !important; color:#243B53 !important; border-color:#DCE5E5 !important; }
.hero.hero-banner {
  background-color:#DCEBEF !important;
  background-image: linear-gradient(90deg,rgba(20,43,59,.32),rgba(20,43,59,.12) 60%,rgba(20,43,59,.20)), url("https://images.unsplash.com/photo-1566073771259-6a8506099945?auto=format&fit=crop&w=2200&q=90") center 52% / cover no-repeat !important;
}
.hero-message { color:#fff; }
.hero-message h1, .hero-message .hero-copy, .hero-message .eyebrow { color:#fff !important; }
.hero-message .gradient-text {
  background:linear-gradient(100deg,#FFFFFF 0%,#D9F2EA 100%) !important;
  -webkit-background-clip:text !important;
  background-clip:text !important;
  -webkit-text-fill-color:transparent !important;
}
.hero-tags a {
  background:rgba(255,255,255,.92) !important;
  border:1px solid rgba(255,255,255,.9) !important;
  color:#243B53 !important;
}
.hero-tags a:hover { background:#E7F2EF !important; color:#1E6965 !important; }
.section { background-color:#F7F5EF; }
.section-alt {
  background:#EDF4F3 !important;
  border-top:1px solid #E1EBE8 !important;
  border-bottom:1px solid #E1EBE8 !important;
}
.section-heading h2, .section-heading h3 { color:#243B53 !important; }
.section-heading p { color:#647789 !important; text-shadow:none !important; }
.section-kicker { color:#2D8983 !important; }
#services .section-kicker, #featured .section-kicker {
  background:#E3F1ED !important; border-color:#C9E2DA !important;
  color:#26766F !important; box-shadow:none !important;
}
#services .section-heading h2, #featured .section-heading h2 {
  background:none !important; color:#243B53 !important;
  -webkit-text-fill-color:#243B53 !important;
}
#services .section-heading p, #featured .section-heading p {
  color:#647789 !important; text-shadow:none !important;
}
.destination-inspiration-content {
  background:linear-gradient(120deg,rgba(36,59,83,.78),rgba(45,137,131,.68)) !important;
}
.travel-picks-hero-content {
  background:linear-gradient(120deg,#EAF3F6 0%,#E7F2EF 100%) !important;
  color:#243B53 !important;
}
.travel-picks-hero-content .eyebrow,
.travel-picks-hero-content h2 { color:#243B53 !important; }
.travel-picks-hero-content p { color:#536A7D !important; }
.service-card, .offer-card, .destination-card, .featured-card {
  background-color:#FFFFFF !important;
  border-color:#E2E9E7 !important;
  box-shadow:0 10px 28px rgba(36,59,83,.065) !important;
}
.service-card h3, .offer-card h3, .destination-card h3,
.featured-card h3 { color:#243B53 !important; }
.service-card p, .offer-card p, .destination-card p,
.featured-card p { color:#647789 !important; }
.service-card .service-icon { background:#E7F2EF !important; color:#2D8983 !important; }
.planning-panel {
  border-color:#DCE8E5 !important;
  background:linear-gradient(125deg,#FFFFFF 0%,#EEF5F4 100%) !important;
  box-shadow:0 12px 30px rgba(36,59,83,.06) !important;
}
#about .about-panel { background:linear-gradient(125deg,#FFFFFF 0%,#EAF3F1 100%) !important; }
#about .about-copy h2, #about .about-tagline-card h3 { color:#243B53 !important; }
#about .about-copy p, #about .about-tagline-card p { color:#647789 !important; }
#contact .contact-tagline-card { background:linear-gradient(120deg,#fff,#E7F2EF) !important; }
#contact .contact-tagline-card h3 { color:#243B53 !important; }
#contact .contact-tagline-card p { color:#647789 !important; }
.footer, footer.footer {
  background:#E8EFED !important;
  color:#40576B !important;
  border-top:1px solid #DCE7E3 !important;
}
.footer .brand-name, .footer h3, .footer strong { color:#243B53 !important; }
.footer p, .footer a { color:#536A7D !important; }
.footer a:hover { color:#2D8983 !important; }
.footer-bottom { border-top-color:#D4E0DC !important; }
.pt-cookie-consent {
  background:#FFFFFF !important; color:#243B53 !important;
  border-color:#DCE8E5 !important; box-shadow:0 12px 36px rgba(36,59,83,.16) !important;
}
.pt-cookie-consent p { color:#536A7D !important; }
.pt-cookie-consent strong { color:#243B53 !important; }
.pt-cookie-consent a { color:#2D8983 !important; }
.pt-cookie-actions button { color:#243B53 !important; border-color:#D3E0DE !important; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; transition:none !important; }
}
/* Editorial journal cards and accessible FAQ accordion */
.journal-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.journal-card {
  min-width:0; overflow:hidden; border:1px solid #E2E9E7; border-radius:20px;
  background:#FFFFFF; box-shadow:0 10px 28px rgba(36,59,83,.065);
  transition:transform .2s ease,box-shadow .2s ease;
}
.journal-card:hover { transform:translateY(-4px); box-shadow:0 16px 34px rgba(36,59,83,.11); }
.journal-card > img { display:block; width:100%; height:220px; object-fit:cover; }
.journal-card-content { padding:22px; }
.journal-card-content > span { color:#2D8983; font-size:11px; font-weight:800; letter-spacing:1.2px; text-transform:uppercase; }
.journal-card-content h3 { margin:9px 0; color:#243B53; font-size:20px; line-height:1.35; }
.journal-card-content p { margin:0 0 16px; color:#647789; font-size:14px; line-height:1.75; }
.journal-card-content a { color:#26766F; font-size:14px; font-weight:800; }
.faq-list { display:grid; gap:12px; max-width:920px; margin-inline:auto; }
.faq-list details { padding:18px 22px; border:1px solid #DDE8E5; border-radius:14px; background:#FFFFFF; box-shadow:0 5px 16px rgba(36,59,83,.04); }
.faq-list summary { color:#243B53; font-weight:800; cursor:pointer; }
.faq-list details p { margin:12px 0 0; color:#647789; line-height:1.75; }
@media(max-width:800px) { .journal-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:560px) { .journal-grid { grid-template-columns:1fr; } .journal-card > img { height:205px; } }

/* Ten travel essentials: five balanced cards per row on wide screens. */
#services .service-grid { grid-template-columns:repeat(5,minmax(0,1fr)) !important; gap:18px !important; }
@media(max-width:1100px) { #services .service-grid { grid-template-columns:repeat(3,minmax(0,1fr)) !important; } }
@media(max-width:760px) { #services .service-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; } }
@media(max-width:520px) { #services .service-grid { grid-template-columns:1fr !important; } }


/* =========================================================
   FINAL READABILITY + ONE CONSISTENT CTA SYSTEM
   Applied across hero shortcuts, navigation, cards and footer.
   ========================================================= */
:root {
  --pt-primary: #F28A52;
  --pt-primary-hover: #E97842;
  --pt-ink: #243B53;
  --pt-teal: #2D8983;
  --pt-surface: #FFFFFF;
  --pt-border: #D7E2E1;
}

/* Hero shortcuts: high-contrast, readable coral buttons */
.hero-banner .hero-tags {
  gap: 12px !important;
  margin-top: 26px !important;
}
.hero-banner .hero-tags a,
.hero-banner .hero-tags a:visited {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 46px !important;
  padding: 11px 17px !important;
  border: 1px solid var(--pt-primary) !important;
  border-radius: 12px !important;
  background: var(--pt-primary) !important;
  color: var(--pt-ink) !important;
  -webkit-text-fill-color: var(--pt-ink) !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1.3 !important;
  text-shadow: none !important;
  text-decoration: none !important;
  box-shadow: 0 5px 14px rgba(36,59,83,.14) !important;
  animation: none !important;
  transition: background .18s ease, transform .18s ease, box-shadow .18s ease !important;
}
.hero-banner .hero-tags a:hover,
.hero-banner .hero-tags a:focus-visible {
  background: var(--pt-primary-hover) !important;
  border-color: var(--pt-primary-hover) !important;
  color: var(--pt-ink) !important;
  -webkit-text-fill-color: var(--pt-ink) !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(36,59,83,.18) !important;
}

/* One primary style for all action links and buttons throughout homepage */
a.affiliate-button,
a.nav-cta,
a.button,
a.card-link,
a.partner-link,
a.offer-card-content a,
a.journal-card-content-link,
button.button,
.hero-actions a.button {
  background: var(--pt-primary) !important;
  border: 1px solid var(--pt-primary) !important;
  color: var(--pt-ink) !important;
  -webkit-text-fill-color: var(--pt-ink) !important;
  font-weight: 800 !important;
  text-decoration: none !important;
}
a.affiliate-button:hover,
a.nav-cta:hover,
a.button:hover,
a.card-link:hover,
a.partner-link:hover,
a.offer-card-content a:hover,
button.button:hover,
.hero-actions a.button:hover {
  background: var(--pt-primary-hover) !important;
  border-color: var(--pt-primary-hover) !important;
  color: var(--pt-ink) !important;
  -webkit-text-fill-color: var(--pt-ink) !important;
}
a.button-secondary,
.hero-actions a.button-secondary {
  background: #FFFFFF !important;
  border: 1.5px solid #AFC2D0 !important;
  color: var(--pt-ink) !important;
  -webkit-text-fill-color: var(--pt-ink) !important;
}
a.button-secondary:hover,
.hero-actions a.button-secondary:hover {
  background: #E7F2EF !important;
  border-color: var(--pt-teal) !important;
  color: #205F5B !important;
  -webkit-text-fill-color: #205F5B !important;
}

/* Restore and make both legal information area and footer unmistakably visible */
.footer-info {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  width: 100% !important;
  padding: 42px 0 !important;
  background: #F0F4F1 !important;
  color: var(--pt-ink) !important;
}
.footer-info-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 18px !important;
}
.footer-info-card {
  display: block !important;
  min-width: 0 !important;
  padding: 22px !important;
  border: 1px solid #DCE7E3 !important;
  border-radius: 16px !important;
  background: #FFFFFF !important;
  color: #536A7D !important;
  box-shadow: 0 8px 22px rgba(36,59,83,.055) !important;
}
.footer-info-card h3 { color: var(--pt-ink) !important; }
.footer-info-card p { color: #536A7D !important; }
.footer-info-card a { color: var(--pt-teal) !important; font-weight: 700 !important; }

footer.footer,
.footer {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  z-index: 1 !important;
  width: 100% !important;
  min-height: 240px !important;
  padding: 48px 0 24px !important;
  margin: 0 !important;
  overflow: visible !important;
  background: #E8EFED !important;
  color: #40576B !important;
  border-top: 1px solid #D4E0DC !important;
}
.footer-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1.7fr) repeat(3, minmax(0, 1fr)) !important;
  gap: 24px !important;
  align-items: start !important;
}
.footer-about,
.footer-column {
  display: block !important;
  min-width: 0 !important;
  visibility: visible !important;
  opacity: 1 !important;
}
.footer-about .footer-tagline,
.footer-about .footer-booking-note,
.footer-disclosure,
.footer-bottom,
.footer-column h3,
.footer-column a {
  color: #40576B !important;
}
.footer-column h3,
.footer-about .brand-name,
.footer-disclosure strong {
  color: var(--pt-ink) !important;
}
.footer-column a:not(.affiliate-button) {
  display: block !important;
  width: fit-content !important;
  margin: 8px 0 !important;
  padding: 2px 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: #536A7D !important;
  -webkit-text-fill-color: #536A7D !important;
}
.footer-column a:not(.affiliate-button):hover {
  color: var(--pt-teal) !important;
  -webkit-text-fill-color: var(--pt-teal) !important;
}
.footer-column a.affiliate-button {
  display: flex !important;
  width: 100% !important;
  max-width: 230px !important;
  min-height: 40px !important;
  margin: 8px 0 !important;
  padding: 9px 12px !important;
  white-space: normal !important;
  font-size: 13px !important;
}
.footer-disclosure {
  margin-top: 24px !important;
  padding: 20px 0 !important;
  border-top: 1px solid #D4E0DC !important;
  color: #536A7D !important;
}
.footer-disclosure p,
.footer-disclosure p + p { color: #536A7D !important; }
.footer-bottom {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  padding-top: 18px !important;
  border-top: 1px solid #D4E0DC !important;
  color: #647789 !important;
}
.footer-bottom p { color: #647789 !important; }

@media (max-width: 900px) {
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 640px) {
  .hero-banner .hero-tags { justify-content: center !important; }
  .hero-banner .hero-tags a { flex: 1 1 calc(50% - 8px) !important; white-space: normal !important; text-align: center !important; }
  .footer-info-grid,
  .footer-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .footer-column a.affiliate-button { max-width: none !important; width: 100% !important; }
  .footer-bottom { align-items: flex-start !important; flex-direction: column !important; }
}


/* Prevent long hero shortcut labels from overflowing their button boxes. */
.hero-banner .hero-tags {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: stretch !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: 1000px !important;
  box-sizing: border-box !important;
}
.hero-banner .hero-tags a,
.hero-banner .hero-tags a:visited {
  box-sizing: border-box !important;
  flex: 1 1 205px !important;
  min-width: 0 !important;
  max-width: 245px !important;
  width: auto !important;
  min-height: 48px !important;
  height: auto !important;
  padding: 10px 12px !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
  text-align: center !important;
  line-height: 1.35 !important;
}
@media (max-width: 640px) {
  .hero-banner .hero-tags a,
  .hero-banner .hero-tags a:visited {
    flex: 1 1 calc(50% - 12px) !important;
    max-width: none !important;
    min-width: 0 !important;
    padding: 10px 8px !important;
    font-size: 13px !important;
  }
}
@media (max-width: 360px) {
  .hero-banner .hero-tags a,
  .hero-banner .hero-tags a:visited {
    flex-basis: 100% !important;
  }
}

/* Gentle, non-flashing glow for the main hero headline. */
.hero-message h1 {
  animation: pulseTripsHeadlineGlow 3.2s ease-in-out infinite;
  will-change: filter;
}
@keyframes pulseTripsHeadlineGlow {
  0%, 100% {
    filter: drop-shadow(0 0 0 rgba(45, 137, 131, 0));
  }
  50% {
    filter: drop-shadow(0 0 9px rgba(45, 137, 131, 0.28));
  }
}
@media (prefers-reduced-motion: reduce) {
  .hero-message h1 {
    animation: none !important;
    filter: none !important;
  }
}

/* Give the hero's Discover Partners action the same clear coral CTA treatment. */
.hero-actions a.button-secondary[href="#featured"] {
  background: var(--pt-primary) !important;
  border: 1px solid var(--pt-primary) !important;
  color: var(--pt-ink) !important;
  -webkit-text-fill-color: var(--pt-ink) !important;
  font-weight: 800 !important;
}
.hero-actions a.button-secondary[href="#featured"]:hover,
.hero-actions a.button-secondary[href="#featured"]:focus-visible {
  background: var(--pt-primary-hover) !important;
  border-color: var(--pt-primary-hover) !important;
  color: var(--pt-ink) !important;
  -webkit-text-fill-color: var(--pt-ink) !important;
}

/* Slightly deeper ocean-teal tone for footer text links. */
.footer-column a:not(.affiliate-button),
.footer-info-card a,
footer.footer a:not(.affiliate-button) {
  color: #276F6B !important;
  -webkit-text-fill-color: #276F6B !important;
}
.footer-column a:not(.affiliate-button):hover,
.footer-info-card a:hover,
footer.footer a:not(.affiliate-button):hover {
  color: #1F625F !important;
  -webkit-text-fill-color: #1F625F !important;
}

/* Inset the scenic hero image so it reads as a framed banner, not an extra-wide strip. */
.hero.hero-banner {
  width: calc(100% - 56px) !important;
  max-width: 1480px !important;
  min-height: 500px !important;
  margin: 28px auto !important;
  border-radius: 28px !important;
  overflow: hidden !important;
  background-clip: padding-box !important;
}
@media (max-width: 640px) {
  .hero.hero-banner {
    width: calc(100% - 24px) !important;
    min-height: 500px !important;
    margin: 12px auto !important;
    border-radius: 20px !important;
  }
}


/* Footer affiliate links: plain text, with a subtle hover lift and underline. */
.footer .footer-column a.footer-affiliate-link,
.footer .footer-column a.footer-affiliate-link:visited {
  display: inline-block !important;
  width: fit-content !important;
  max-width: 100% !important;
  min-height: 0 !important;
  margin: 7px 0 !important;
  padding: 2px 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #276F6B !important;
  -webkit-text-fill-color: #276F6B !important;
  font-size: inherit !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
  text-align: left !important;
  text-decoration: none !important;
  text-underline-offset: 4px !important;
  transform: translateY(0);
  transition: color .2s ease, transform .22s ease, text-decoration-color .2s ease !important;
}
.footer .footer-column a.footer-affiliate-link:hover,
.footer .footer-column a.footer-affiliate-link:focus-visible {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: #1F625F !important;
  -webkit-text-fill-color: #1F625F !important;
  text-decoration: underline !important;
  text-decoration-thickness: 1.5px !important;
  transform: translateY(-2px) !important;
}
.footer .footer-column a.footer-affiliate-link:active {
  transform: translateY(1px) !important;
}
@media (prefers-reduced-motion: reduce) {
  .footer .footer-column a.footer-affiliate-link {
    transition: none !important;
  }
  .footer .footer-column a.footer-affiliate-link:hover,
  .footer .footer-column a.footer-affiliate-link:focus-visible,
  .footer .footer-column a.footer-affiliate-link:active {
    transform: none !important;
  }
}


/* Unified footer navigation: every link uses the same typography and spacing. */
.footer .footer-column a,
.footer .footer-column a:visited {
  display: block !important;
  width: fit-content !important;
  max-width: 100% !important;
  min-height: 0 !important;
  margin: 8px 0 !important;
  padding: 2px 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #276F6B !important;
  -webkit-text-fill-color: #276F6B !important;
  font-family: inherit !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.6 !important;
  letter-spacing: normal !important;
  text-align: left !important;
  text-decoration: none !important;
  text-underline-offset: 4px !important;
  transform: translateY(0) !important;
  transition: color .2s ease, transform .22s ease !important;
}
.footer .footer-column a:hover,
.footer .footer-column a:focus-visible {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: #1F625F !important;
  -webkit-text-fill-color: #1F625F !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  text-decoration: underline !important;
  text-decoration-thickness: 1.5px !important;
  transform: translateY(-2px) !important;
}
.footer .footer-column a:active {
  transform: translateY(1px) !important;
}
@media (max-width: 640px) {
  .footer .footer-column a {
    font-size: 14px !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .footer .footer-column a {
    transition: none !important;
  }
  .footer .footer-column a:hover,
  .footer .footer-column a:focus-visible,
  .footer .footer-column a:active {
    transform: none !important;
  }
}


/* Final override: equalise normal and affiliate Explore links despite legacy selectors. */
footer.footer .footer-grid .footer-column > a,
footer.footer .footer-grid .footer-column > a:not(.affiliate-button),
footer.footer .footer-grid .footer-column > a.footer-affiliate-link {
  display: block !important;
  width: fit-content !important;
  max-width: 100% !important;
  min-height: 0 !important;
  margin: 8px 0 !important;
  padding: 2px 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-family: inherit !important;
  font-size: 14px !important;
  font-style: normal !important;
  font-weight: 500 !important;
  line-height: 1.6 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  color: #276F6B !important;
  -webkit-text-fill-color: #276F6B !important;
  text-decoration: none !important;
  transform: translateY(0) !important;
}
footer.footer .footer-grid .footer-column > a:hover,
footer.footer .footer-grid .footer-column > a:focus-visible {
  font-size: 14px !important;
  font-weight: 500 !important;
  color: #1F625F !important;
  -webkit-text-fill-color: #1F625F !important;
  text-decoration: underline !important;
  text-underline-offset: 4px !important;
  text-decoration-thickness: 1.5px !important;
  transform: translateY(-2px) !important;
}
footer.footer .footer-grid .footer-column > a:active {
  transform: translateY(1px) !important;
}


/* Compact welcome banner: reduce excess top/bottom space so the first page view shows more content. */
.hero.hero-banner {
  min-height: 0 !important;
  height: auto !important;
  padding-top: 42px !important;
  padding-bottom: 38px !important;
}
.hero.hero-banner .hero-grid {
  min-height: 0 !important;
  align-items: center !important;
}
@media (max-width: 760px) {
  .hero.hero-banner {
    min-height: 0 !important;
    height: auto !important;
    padding-top: 28px !important;
    padding-bottom: 26px !important;
  }
}
@media (max-width: 380px) {
  .hero.hero-banner {
    padding-top: 22px !important;
    padding-bottom: 20px !important;
  }
}


/* Extra-compact welcome banner: keep the hero content, remove excess vertical spacing. */
.hero.hero-banner {
  padding-top: 16px !important;
  padding-bottom: 14px !important;
  margin-top: 12px !important;
  margin-bottom: 16px !important;
}
.hero.hero-banner .hero-message .eyebrow {
  margin-bottom: 8px !important;
  padding: 5px 10px !important;
}
.hero.hero-banner .hero-message h1 {
  margin-top: 6px !important;
  margin-bottom: 10px !important;
  line-height: 1.12 !important;
}
.hero.hero-banner .hero-message .hero-copy {
  margin-top: 6px !important;
  margin-bottom: 8px !important;
  line-height: 1.45 !important;
}
.hero.hero-banner .hero-tags {
  gap: 8px !important;
  margin-top: 12px !important;
}
.hero.hero-banner .hero-tags a,
.hero.hero-banner .hero-tags a:visited {
  min-height: 38px !important;
  padding: 7px 10px !important;
  line-height: 1.2 !important;
}
.hero.hero-banner .hero-actions {
  gap: 9px !important;
  margin-top: 14px !important;
}
.hero.hero-banner .hero-actions a {
  min-height: 38px !important;
  padding: 8px 13px !important;
}
@media (max-width: 760px) {
  .hero.hero-banner {
    padding-top: 12px !important;
    padding-bottom: 10px !important;
    margin-top: 8px !important;
    margin-bottom: 12px !important;
  }
  .hero.hero-banner .hero-tags {
    margin-top: 10px !important;
    gap: 7px !important;
  }
  .hero.hero-banner .hero-tags a,
  .hero.hero-banner .hero-tags a:visited {
    min-height: 34px !important;
    padding: 6px 7px !important;
  }
  .hero.hero-banner .hero-actions {
    margin-top: 11px !important;
    gap: 7px !important;
  }
}
@media (max-width: 380px) {
  .hero.hero-banner {
    padding-top: 10px !important;
    padding-bottom: 8px !important;
  }
}


/* Hero supporting line: slightly larger, single-line on desktop, with a gentle blink pulse. */
.hero.hero-banner .hero-message .hero-copy {
  font-size: clamp(16px, 1.35vw, 18px) !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  white-space: nowrap !important;
  animation: pulseTripsHeroCopyBlink 1.8s ease-in-out infinite !important;
}
@keyframes pulseTripsHeroCopyBlink {
  0%, 100% { opacity: 1; }
  50% { opacity: .48; }
}
@media (max-width: 760px) {
  .hero.hero-banner .hero-message .hero-copy {
    font-size: clamp(12px, 2.5vw, 16px) !important;
    white-space: normal !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .hero.hero-banner .hero-message .hero-copy {
    animation: none !important;
    opacity: 1 !important;
  }
}


/* Restore the original hero shortcut and action button dimensions; keep only the banner crop. */
.hero.hero-banner .hero-tags a,
.hero.hero-banner .hero-tags a:visited {
  min-height: 48px !important;
  padding: 10px 12px !important;
}
.hero.hero-banner .hero-actions a {
  min-height: 44px !important;
  padding: 11px 18px !important;
}
@media (max-width: 640px) {
  .hero.hero-banner .hero-tags a,
  .hero.hero-banner .hero-tags a:visited {
    min-height: 48px !important;
    padding: 10px 8px !important;
  }
}


/* Premium international navigation: calm header, clear links, restrained brand accent. */
.topbar {
  background: rgba(255,255,255,.97) !important;
  border-bottom: 1px solid #E5ECEB !important;
  box-shadow: 0 3px 16px rgba(36,59,83,.045) !important;
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
}
.topbar .nav {
  min-height: 78px !important;
  gap: 24px !important;
}
.topbar .nav-links {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 4px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.topbar .nav-links > a:not(.nav-cta) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 40px !important;
  padding: 9px 11px !important;
  border: 1px solid transparent !important;
  border-radius: 9px !important;
  background: transparent !important;
  color: #40596D !important;
  font-size: 13px !important;
  font-weight: 650 !important;
  line-height: 1.25 !important;
  white-space: nowrap !important;
  transition: background .18s ease, border-color .18s ease, color .18s ease !important;
}
.topbar .nav-links > a:not(.nav-cta):hover,
.topbar .nav-links > a:not(.nav-cta):focus-visible {
  background: #EDF6F3 !important;
  border-color: #D7EAE4 !important;
  color: #236E67 !important;
}
.topbar .nav-links > a.nav-cta {
  min-height: 42px !important;
  margin-left: 7px !important;
  padding: 10px 16px !important;
  border-radius: 10px !important;
  background: #F28A52 !important;
  border: 1px solid #F28A52 !important;
  color: #243B53 !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  white-space: nowrap !important;
  box-shadow: 0 3px 9px rgba(242,138,82,.16) !important;
}
.topbar .nav-links > a.nav-cta:hover {
  background: #E97842 !important;
  border-color: #E97842 !important;
  color: #243B53 !important;
}
.topbar .nav-links a:focus-visible,
.topbar .menu-button:focus-visible {
  outline: 2px solid #2D8983 !important;
  outline-offset: 3px !important;
}
@media (max-width: 1100px) and (min-width: 761px) {
  .topbar .nav { gap: 12px !important; }
  .topbar .nav-links { gap: 1px !important; }
  .topbar .nav-links > a:not(.nav-cta) { padding: 8px 7px !important; font-size: 12px !important; }
  .topbar .nav-links > a.nav-cta { margin-left: 4px !important; padding: 9px 11px !important; font-size: 12px !important; }
}
@media (max-width: 760px) {
  .topbar .nav {
    min-height: 68px !important;
    gap: 12px !important;
  }
  .topbar .nav-links {
    gap: 5px !important;
    padding: 9px !important;
    margin-top: 8px !important;
    border: 1px solid #E0EBE8 !important;
    border-radius: 13px !important;
    background: #FFFFFF !important;
    box-shadow: 0 10px 26px rgba(36,59,83,.09) !important;
  }
  .topbar .nav-links > a:not(.nav-cta) {
    width: 100% !important;
    justify-content: flex-start !important;
    min-height: 42px !important;
    padding: 10px 12px !important;
    border: 1px solid transparent !important;
    border-radius: 8px !important;
    background: transparent !important;
    font-size: 14px !important;
  }
  .topbar .nav-links > a:not(.nav-cta):hover,
  .topbar .nav-links > a:not(.nav-cta):focus-visible {
    background: #EDF6F3 !important;
    border-color: #D7EAE4 !important;
  }
  .topbar .nav-links > a.nav-cta {
    width: 100% !important;
    justify-content: center !important;
    margin: 5px 0 0 !important;
    min-height: 44px !important;
  }
}


/* Actual banner crop requested: trim about 1 inch from both vertical ends.
   The header and the banner's text/buttons retain their existing sizes. */
.hero.hero-banner {
  min-height: 408px !important;
  height: auto !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
@media (max-width: 760px) {
  .hero.hero-banner {
    min-height: 308px !important;
    height: auto !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}


/* Unified partner action buttons: one consistent colour, shape and sizing */
#featured .partner-grid .partner-links {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: stretch !important;
  gap: 10px !important;
}
#featured .partner-grid .partner-links > a,
#about .about-panel .about-copy > a.button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  min-height: 46px !important;
  padding: 11px 18px !important;
  margin: 0 !important;
  border: 1px solid #F28A52 !important;
  border-radius: 12px !important;
  background: #F28A52 !important;
  color: #243B53 !important;
  -webkit-text-fill-color: #243B53 !important;
  box-shadow: 0 3px 10px rgba(36,59,83,.08) !important;
  font: inherit !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  text-align: center !important;
  text-decoration: none !important;
  white-space: normal !important;
  transition: background .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease !important;
}
#featured .partner-grid .partner-links > a:hover,
#about .about-panel .about-copy > a.button:hover {
  background: #E97843 !important;
  border-color: #E97843 !important;
  color: #243B53 !important;
  -webkit-text-fill-color: #243B53 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 7px 16px rgba(36,59,83,.14) !important;
}
#featured .partner-grid .partner-links > a:focus-visible,
#about .about-panel .about-copy > a.button:focus-visible {
  outline: 3px solid rgba(45,137,131,.35) !important;
  outline-offset: 3px !important;
}
@media (max-width: 640px) {
  #featured .partner-grid .partner-links > a,
  #about .about-panel .about-copy > a.button {
    min-height: 46px !important;
    padding: 11px 14px !important;
  }
}


/* Travel Journal: make each in-page action visibly clickable and consistent */
#travel-journal .journal-card-content > a.journal-card-content-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 46px !important;
  margin-top: 4px !important;
  padding: 11px 18px !important;
  border: 1px solid #F28A52 !important;
  border-radius: 12px !important;
  background: #F28A52 !important;
  color: #243B53 !important;
  -webkit-text-fill-color: #243B53 !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  text-decoration: none !important;
  box-shadow: 0 5px 14px rgba(242,138,82,.18) !important;
  cursor: pointer !important;
  transition: background .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease !important;
}
#travel-journal .journal-card-content > a.journal-card-content-link:hover {
  background: #E97843 !important;
  border-color: #E97843 !important;
  color: #243B53 !important;
  -webkit-text-fill-color: #243B53 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 18px rgba(36,59,83,.14) !important;
}
#travel-journal .journal-card-content > a.journal-card-content-link:focus-visible {
  outline: 3px solid rgba(45,137,131,.35) !important;
  outline-offset: 3px !important;
}
@media (max-width: 560px) {
  #travel-journal .journal-card-content > a.journal-card-content-link {
    width: 100% !important;
  }
}


/* Footer affiliate disclosure: hidden initially, toggled by its footer link. */
.footer-disclosure#affiliate-disclosure {
  display: none !important;
  scroll-margin-top: 100px;
}
.footer-disclosure#affiliate-disclosure.is-open {
  display: block !important;
}


/* PulseTrips signature mark: compass ring + flight path + aircraft */
.brand-mark {
  display: grid !important;
  place-items: center !important;
  flex: 0 0 46px !important;
  width: 46px !important;
  height: 46px !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 1px solid rgba(255,255,255,.48) !important;
  border-radius: 15px !important;
  background: linear-gradient(145deg,#243B53 0%,#236D78 58%,#2D8983 100%) !important;
  color: #fff !important;
  box-shadow: 0 6px 16px rgba(36,59,83,.20), inset 0 1px 0 rgba(255,255,255,.22) !important;
}
.brand-mark .brand-symbol {
  display: block !important;
  width: 39px !important;
  height: 39px !important;
}
.brand-name {
  color: #243B53 !important;
  font-family: "Manrope","DM Sans",sans-serif !important;
  font-weight: 800 !important;
  letter-spacing: -.75px !important;
}
.footer .brand-mark {
  background: linear-gradient(145deg,#243B53 0%,#236D78 58%,#2D8983 100%) !important;
}
.footer .brand-name { color: #fff !important; }
@media (max-width: 520px) {
  .brand-mark { flex-basis: 42px !important; width: 42px !important; height: 42px !important; }
  .brand-mark .brand-symbol { width: 36px !important; height: 36px !important; }
}


/* Refined PulseTrips globe-and-flight-path identity */
.brand-mark {
  width: 48px !important;
  height: 48px !important;
  flex-basis: 48px !important;
  border-radius: 16px !important;
  background: linear-gradient(145deg,#172F46 0%,#245B68 58%,#2D8983 100%) !important;
  border: 1px solid rgba(121,224,208,.55) !important;
  box-shadow: 0 7px 18px rgba(23,47,70,.20), inset 0 1px 0 rgba(255,255,255,.16) !important;
}
.brand-mark .brand-symbol {
  width: 43px !important;
  height: 43px !important;
}
.brand-name {
  color: #243B53 !important;
  font-family: "Manrope","DM Sans",sans-serif !important;
  font-size: clamp(19px,2vw,24px) !important;
  font-weight: 800 !important;
  letter-spacing: -.9px !important;
}
.footer .brand-mark {
  background: linear-gradient(145deg,#172F46 0%,#245B68 58%,#2D8983 100%) !important;
}
.footer .brand-name { color: #fff !important; }
@media(max-width:520px) {
  .brand-mark { width:44px !important;height:44px !important;flex-basis:44px !important; }
  .brand-mark .brand-symbol { width:40px !important;height:40px !important; }
  .brand-name { font-size:19px !important; }
}


/* Partner network: four equal editorial cards in a balanced 2x2 layout. */
#featured .partner-grid {
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  align-items:stretch !important;
  gap:24px !important;
}
#featured .partner-grid .featured-card {
  display:flex !important;
  flex-direction:column !important;
  min-width:0 !important;
  min-height:100% !important;
  padding:0 !important;
  overflow:hidden !important;
  border:1px solid #DCE7E4 !important;
  border-top:0 !important;
  border-radius:20px !important;
  background:#FFFFFF !important;
  box-shadow:0 12px 30px rgba(36,59,83,.075) !important;
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease !important;
}
#featured .partner-grid .featured-card:hover {
  transform:translateY(-4px) !important;
  border-color:#B9D8D1 !important;
  box-shadow:0 18px 38px rgba(36,59,83,.12) !important;
}
#featured .partner-grid .featured-image {
  display:block !important;
  width:100% !important;
  height:190px !important;
  object-fit:cover !important;
  object-position:center 48% !important;
}
#featured .partner-grid .featured-details {
  display:flex !important;
  flex:1 1 auto !important;
  flex-direction:column !important;
  padding:22px 24px 24px !important;
  background:#FFFFFF !important;
}
#featured .partner-grid .featured-top {
  margin:0 0 13px !important;
}
#featured .partner-grid .partner-label {
  min-height:30px !important;
  padding:6px 11px !important;
  border:1px solid #CFE5DE !important;
  border-radius:999px !important;
  background:#EDF6F2 !important;
  color:#276F6B !important;
  font-size:10px !important;
  font-weight:800 !important;
  letter-spacing:.7px !important;
}
#featured .partner-grid .partner-symbol {
  display:grid !important;
  place-items:center !important;
  width:40px !important;
  height:40px !important;
  flex:0 0 40px !important;
  border:1px solid #E0EBE8 !important;
  border-radius:13px !important;
  background:#F3F7F5 !important;
  color:#276F6B !important;
}
#featured .partner-grid .featured-details h3 {
  margin:0 0 9px !important;
  color:#243B53 !important;
  font-size:21px !important;
  line-height:1.3 !important;
}
#featured .partner-grid .featured-details p {
  flex:1 1 auto !important;
  margin:0 0 20px !important;
  color:#647789 !important;
  font-size:14px !important;
  line-height:1.7 !important;
}
#featured .partner-grid .partner-links {
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:stretch !important;
  gap:9px !important;
  margin-top:auto !important;
}
#featured .partner-grid .partner-links > a {
  display:inline-flex !important;
  flex:1 1 145px !important;
  min-width:0 !important;
  min-height:42px !important;
  justify-content:center !important;
  align-items:center !important;
  padding:10px 13px !important;
  border:1px solid #F28A52 !important;
  border-radius:11px !important;
  background:#F28A52 !important;
  color:#243B53 !important;
  -webkit-text-fill-color:#243B53 !important;
  font-size:13px !important;
  font-weight:800 !important;
  line-height:1.3 !important;
  text-align:center !important;
  text-decoration:none !important;
  box-shadow:0 4px 11px rgba(242,138,82,.14) !important;
}
#featured .partner-grid .partner-links > a:hover {
  background:#E97842 !important;
  border-color:#E97842 !important;
  transform:translateY(-2px) !important;
}
@media(max-width:760px) {
  #featured .partner-grid { grid-template-columns:1fr !important; gap:18px !important; }
  #featured .partner-grid .featured-image { height:205px !important; }
}
@media(min-width:761px) and (max-width:1050px) {
  #featured .partner-grid .featured-image { height:170px !important; }
  #featured .partner-grid .featured-details { padding:19px !important; }
}

/* FAQ and contact are one Help & Support destination, with two distinct roles. */
.help-support-section { padding-top:76px !important; padding-bottom:76px !important; }
.help-support-layout {
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(300px,.85fr);
  gap:30px;
  align-items:start;
}
.help-faq-column { min-width:0; }
.help-faq-column .section-heading { margin-bottom:24px !important; }
.help-faq-column .section-heading h2 { max-width:620px; }
.help-faq-column .faq-list { max-width:none !important; gap:10px !important; }
.help-faq-column .faq-list details {
  padding:17px 19px !important;
  border:1px solid #DCE7E4 !important;
  border-radius:13px !important;
  background:#FFFFFF !important;
  box-shadow:0 5px 16px rgba(36,59,83,.045) !important;
}
.help-faq-column .faq-list summary {
  color:#243B53 !important;
  font-size:14px !important;
  font-weight:800 !important;
  line-height:1.5 !important;
}
.help-faq-column .faq-list details p {
  color:#647789 !important;
  font-size:13px !important;
  line-height:1.7 !important;
}
.help-contact-card {
  min-width:0;
  overflow:hidden;
  border:1px solid #D8E6E1;
  border-radius:20px;
  background:#FFFFFF;
  box-shadow:0 12px 30px rgba(36,59,83,.075);
  scroll-margin-top:110px;
}
.help-contact-image { width:100%; height:205px; overflow:hidden; background:#E7F0ED; }
.help-contact-image img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 43%; }
.help-contact-content { padding:24px; }
.help-contact-content .section-kicker { margin-bottom:10px; color:#2D8983; font-size:11px; font-weight:800; letter-spacing:1.3px; }
.help-contact-content h2 { margin:0 0 12px; color:#243B53; font-size:clamp(23px,2.4vw,30px); line-height:1.2; }
.help-contact-content > p { margin:0 0 19px; color:#647789; font-size:14px; line-height:1.75; }
.help-contact-content > a.button {
  display:flex !important;
  width:100% !important;
  min-height:46px !important;
  align-items:center !important;
  justify-content:center !important;
  padding:11px 16px !important;
  border:1px solid #F28A52 !important;
  border-radius:11px !important;
  background:#F28A52 !important;
  color:#243B53 !important;
  -webkit-text-fill-color:#243B53 !important;
  font-weight:800 !important;
  text-align:center !important;
  text-decoration:none !important;
}
.help-contact-note {
  display:grid;
  gap:5px;
  margin-top:20px;
  padding:15px 16px;
  border:1px solid #DCEAE5;
  border-radius:13px;
  background:#F2F7F4;
}
.help-contact-note strong { color:#243B53; font-size:14px; }
.help-contact-note span { color:#647789; font-size:12px; line-height:1.6; }
@media(max-width:900px) {
  .help-support-layout { grid-template-columns:minmax(0,1fr) minmax(260px,.85fr); gap:20px; }
  .help-contact-content { padding:19px; }
}
@media(max-width:760px) {
  .help-support-section { padding-top:54px !important; padding-bottom:54px !important; }
  .help-support-layout { grid-template-columns:1fr; gap:24px; }
  .help-contact-card { max-width:none; }
  .help-contact-image { height:220px; }
}


/* International-standard footer refresh: clear navigation, strong contrast, responsive layout. */
footer.footer {
  padding:64px 0 26px !important;
  background:linear-gradient(145deg,#10283B 0%,#15384A 58%,#17464D 100%) !important;
  border-top:1px solid rgba(190,225,219,.22) !important;
  color:#DCE8EC !important;
}
footer.footer .footer-grid {
  display:grid !important;
  grid-template-columns:minmax(0,1.45fr) repeat(3,minmax(0,1fr)) !important;
  gap:clamp(24px,3.4vw,48px) !important;
  align-items:start !important;
}
footer.footer .footer-about .brand {
  display:inline-flex !important;
  align-items:center !important;
  gap:12px !important;
  margin-bottom:18px !important;
  text-decoration:none !important;
}
footer.footer .footer-about .brand-name {
  color:#FFFFFF !important;
  font-size:24px !important;
  font-weight:850 !important;
  letter-spacing:-.8px !important;
}
footer.footer .footer-about .footer-tagline {
  max-width:340px !important;
  margin:0 0 18px !important;
  color:#D3E1E7 !important;
  font-size:14px !important;
  line-height:1.85 !important;
}
footer.footer .footer-about .footer-booking-note {
  max-width:350px !important;
  margin:0 !important;
  padding:14px 15px !important;
  border:1px solid rgba(190,225,219,.2) !important;
  border-radius:12px !important;
  background:rgba(255,255,255,.055) !important;
  color:#C5D8DF !important;
  font-size:12px !important;
  line-height:1.7 !important;
}
footer.footer .footer-about .footer-booking-note strong { color:#FFFFFF !important; }
footer.footer .footer-column h3 {
  margin:5px 0 19px !important;
  color:#FFFFFF !important;
  font-size:14px !important;
  font-weight:850 !important;
  letter-spacing:.035em !important;
}
footer.footer .footer-grid .footer-column > a,
footer.footer .footer-grid .footer-column > a:visited {
  display:block !important;
  width:fit-content !important;
  max-width:100% !important;
  margin:0 0 13px !important;
  padding:0 !important;
  color:#C5D8DF !important;
  -webkit-text-fill-color:#C5D8DF !important;
  font-size:13px !important;
  font-weight:550 !important;
  line-height:1.55 !important;
  text-decoration:none !important;
  transform:none !important;
  transition:color .2s ease,transform .2s ease !important;
}
footer.footer .footer-grid .footer-column > a:hover,
footer.footer .footer-grid .footer-column > a:focus-visible {
  color:#8FE0D0 !important;
  -webkit-text-fill-color:#8FE0D0 !important;
  text-decoration:underline !important;
  text-underline-offset:4px !important;
  transform:translateX(3px) !important;
}
footer.footer .footer-grid .footer-column > a:focus-visible,
footer.footer .footer-about .brand:focus-visible {
  outline:2px solid #8FE0D0 !important;
  outline-offset:4px !important;
  border-radius:3px !important;
}
footer.footer .footer-disclosure#affiliate-disclosure {
  margin-top:42px !important;
  padding:20px 22px !important;
  border:1px solid rgba(190,225,219,.2) !important;
  border-radius:14px !important;
  background:rgba(5,20,31,.24) !important;
  color:#C5D8DF !important;
}
footer.footer .footer-disclosure#affiliate-disclosure p {
  margin:0 !important;
  color:#C5D8DF !important;
  font-size:12px !important;
  line-height:1.75 !important;
}
footer.footer .footer-disclosure#affiliate-disclosure p + p { margin-top:7px !important; }
footer.footer .footer-disclosure#affiliate-disclosure strong { color:#FFFFFF !important; }
footer.footer .footer-bottom {
  display:flex !important;
  justify-content:space-between !important;
  align-items:center !important;
  gap:12px 24px !important;
  margin-top:28px !important;
  padding-top:20px !important;
  border-top:1px solid rgba(190,225,219,.2) !important;
}
footer.footer .footer-bottom p {
  margin:0 !important;
  color:#AFC4CE !important;
  font-size:11px !important;
  line-height:1.6 !important;
}
@media(max-width:1000px) {
  footer.footer .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:34px 28px !important; }
}
@media(max-width:640px) {
  footer.footer { padding:46px 0 22px !important; }
  footer.footer .footer-grid { grid-template-columns:1fr !important; gap:27px !important; }
  footer.footer .footer-about .footer-tagline,
  footer.footer .footer-about .footer-booking-note { max-width:none !important; }
  footer.footer .footer-column h3 { margin-bottom:13px !important; }
  footer.footer .footer-grid .footer-column > a { margin-bottom:11px !important; }
  footer.footer .footer-bottom { align-items:flex-start !important; flex-direction:column !important; margin-top:22px !important; }
}
@media(prefers-reduced-motion:reduce) {
  footer.footer .footer-grid .footer-column > a { transition:none !important; }
  footer.footer .footer-grid .footer-column > a:hover,
  footer.footer .footer-grid .footer-column > a:focus-visible { transform:none !important; }
}


/* Final footer contrast pass: override legacy link colours and improve the note panel. */
footer.footer .footer-grid .footer-column > a,
footer.footer .footer-grid .footer-column > a:visited,
footer.footer .footer-grid .footer-column > a:not(.affiliate-button),
footer.footer .footer-grid .footer-column > a.footer-affiliate-link {
  color: #E4EDF1 !important;
  -webkit-text-fill-color: #E4EDF1 !important;
  font-family: "DM Sans", sans-serif !important;
  font-size: 14px !important;
  font-weight: 550 !important;
  line-height: 1.65 !important;
  letter-spacing: 0 !important;
}
footer.footer .footer-grid .footer-column > a:hover,
footer.footer .footer-grid .footer-column > a:focus-visible {
  color: #9AE6D7 !important;
  -webkit-text-fill-color: #9AE6D7 !important;
}
footer.footer .footer-about .footer-booking-note {
  background: #EAF3F1 !important;
  border: 1px solid #C6DDD7 !important;
  color: #385568 !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.75 !important;
}
footer.footer .footer-about .footer-booking-note strong {
  color: #173F50 !important;
  font-weight: 800 !important;
}
footer.footer .footer-column h3 {
  color: #FFFFFF !important;
  font-family: "Manrope", "DM Sans", sans-serif !important;
}
footer.footer .footer-about .footer-tagline {
  color: #DCE8EC !important;
}


/* Remove legacy white cards behind the three footer navigation columns. */
footer.footer .footer-grid > .footer-column {
  background: transparent !important;
  background-color: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  color: #E4EDF1 !important;
}
footer.footer .footer-grid > .footer-column h3 {
  background: transparent !important;
  color: #FFFFFF !important;
}
footer.footer .footer-grid > .footer-column a,
footer.footer .footer-grid > .footer-column a:visited {
  background: transparent !important;
  color: #E4EDF1 !important;
  -webkit-text-fill-color: #E4EDF1 !important;
}
footer.footer .footer-grid > .footer-column a:hover,
footer.footer .footer-grid > .footer-column a:focus-visible {
  background: transparent !important;
  color: #9AE6D7 !important;
  -webkit-text-fill-color: #9AE6D7 !important;
}


/* Blend the booking notice into the footer and match its readable light typography. */
footer.footer .footer-about .footer-booking-note {
  background: transparent !important;
  background-color: transparent !important;
  border: 1px solid rgba(190,225,219,.20) !important;
  color: #E4EDF1 !important;
  -webkit-text-fill-color: #E4EDF1 !important;
  font-family: inherit !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.75 !important;
  box-shadow: none !important;
}
footer.footer .footer-about .footer-booking-note strong {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  font-weight: 800 !important;
}

/* FINAL PULSETRIPS TRAVEL SERVICES GRID + READABLE CARD ACTIONS */
#services .section-heading { text-align:center !important; }
#services .section-heading > div { width:100% !important; }
#services .section-heading p { white-space:normal !important; color:#52677B !important; }

/* Wide desktop: four cards on row one, three centered on row two. */
#services .service-grid {
  display:grid !important;
  grid-template-columns:repeat(16,minmax(0,1fr)) !important;
  gap:22px !important;
  align-items:stretch !important;
}
#services .service-grid > .service-card {
  grid-column:span 4 !important;
  display:flex !important;
  flex-direction:column !important;
  min-width:0 !important;
  min-height:430px !important;
  height:100% !important;
  box-sizing:border-box !important;
  padding:220px 20px 22px !important;
  position:relative !important;
  overflow:hidden !important;
  border:1px solid #D8E3E8 !important;
  border-top:4px solid #E9783D !important;
  border-radius:18px !important;
  background-color:#FFFFFF !important;
  box-shadow:0 9px 24px rgba(27,59,94,.10) !important;
  color:#243B53 !important;
}
#services .service-grid > .service-card:nth-child(5) { grid-column:3 / span 4 !important; }
#services .service-grid > .service-card:nth-child(6) { grid-column:7 / span 4 !important; }
#services .service-grid > .service-card:nth-child(7) { grid-column:11 / span 4 !important; }

/* Fixed image window; the written content stays on a clean white panel. */
#services .service-grid > .service-card {
  background-size:100% 195px !important;
  background-position:top center !important;
  background-repeat:no-repeat !important;
}
#services .service-grid > .service-card::before { display:none !important; }
#services .service-grid > .service-card .service-icon {
  position:absolute !important;
  top:158px !important;
  left:17px !important;
  z-index:2 !important;
  width:48px !important;
  height:48px !important;
  display:grid !important;
  place-items:center !important;
  border:2px solid #FFFFFF !important;
  border-radius:14px !important;
  background:#FFFFFF !important;
  color:#26766F !important;
  box-shadow:0 4px 14px rgba(15,35,55,.20) !important;
}
#services .service-grid > .service-card h3 {
  margin:0 0 10px !important;
  color:#18364F !important;
  -webkit-text-fill-color:#18364F !important;
  font-size:19px !important;
  font-weight:850 !important;
  line-height:1.3 !important;
  text-shadow:none !important;
}
#services .service-grid > .service-card p {
  flex:1 1 auto !important;
  margin:0 0 18px !important;
  color:#52677B !important;
  -webkit-text-fill-color:#52677B !important;
  font-size:14px !important;
  font-weight:500 !important;
  line-height:1.65 !important;
  text-shadow:none !important;
}

/* All action buttons have one consistent size, contrast and bottom alignment. */
#services .service-grid > .service-card a.card-link {
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  align-self:stretch !important;
  width:100% !important;
  min-height:46px !important;
  box-sizing:border-box !important;
  margin: auto 0 0 !important;
  padding:11px 14px !important;
  border:1px solid #E9783D !important;
  border-radius:10px !important;
  background:#F28A52 !important;
  color:#17324D !important;
  -webkit-text-fill-color:#17324D !important;
  font-size:13px !important;
  font-weight:850 !important;
  line-height:1.35 !important;
  text-align:center !important;
  text-decoration:none !important;
  text-shadow:none !important;
  white-space:normal !important;
  overflow-wrap:anywhere !important;
  transition:background .18s ease, transform .18s ease, box-shadow .18s ease !important;
}
#services .service-grid > .service-card a.card-link:hover,
#services .service-grid > .service-card a.card-link:focus-visible {
  background:#E9783D !important;
  border-color:#D96831 !important;
  color:#102A43 !important;
  -webkit-text-fill-color:#102A43 !important;
  transform:translateY(-1px) !important;
  box-shadow:0 5px 13px rgba(27,59,94,.16) !important;
  outline:2px solid #244D68 !important;
  outline-offset:2px !important;
}
#services .service-grid > .service-card a.card-link + a.card-link {
  margin:9px 0 0 !important;
}
#services .service-support-note {
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  max-width:920px !important;
  margin:26px auto 0 !important;
  padding:16px 20px !important;
  border:1px solid #D5E2E8 !important;
  border-left:4px solid #E9783D !important;
  border-radius:13px !important;
  background:#F4F8FA !important;
  color:#435B70 !important;
  font-size:14px !important;
  line-height:1.7 !important;
}
#services .service-support-note strong { color:#18364F !important; }
#services .service-support-note a {
  color:#A9471C !important;
  -webkit-text-fill-color:#A9471C !important;
  font-weight:850 !important;
  text-decoration:underline !important;
}

/* Tablet: three columns, then two; phone: one full-width card. */
@media (max-width:1200px) {
  #services .service-grid { grid-template-columns:repeat(12,minmax(0,1fr)) !important; }
  #services .service-grid > .service-card,
  #services .service-grid > .service-card:nth-child(n) { grid-column:span 4 !important; }
}
@media (max-width:900px) {
  #services .service-grid { grid-template-columns:repeat(8,minmax(0,1fr)) !important; gap:18px !important; }
  #services .service-grid > .service-card,
  #services .service-grid > .service-card:nth-child(n) { grid-column:span 4 !important; }
  #services .service-grid > .service-card { min-height:410px !important; }
}
@media (max-width:600px) {
  #services .service-grid { grid-template-columns:minmax(0,1fr) !important; gap:16px !important; }
  #services .service-grid > .service-card,
  #services .service-grid > .service-card:nth-child(n) {
    grid-column:1 / -1 !important;
    min-height:390px !important;
    padding:210px 18px 20px !important;
    background-size:100% 185px !important;
  }
  #services .service-grid > .service-card .service-icon { top:148px !important; left:15px !important; }
  #services .service-support-note { align-items:flex-start !important; padding:14px !important; }
}


/* AIRHELP FLIGHT SUPPORT: placed inside the Flights card, below flight search. */
#services .service-grid > .service-card#flights .flight-support-copy {
  flex:0 0 auto !important;
  margin:12px 0 8px !important;
  color:#52677B !important;
  font-size:12px !important;
  line-height:1.55 !important;
}
#services .service-grid > .service-card#flights a.flight-support-link {
  margin:0 !important;
  min-height:42px !important;
  border:1px solid #B9CBD8 !important;
  background:#EAF2F7 !important;
  color:#18364F !important;
  -webkit-text-fill-color:#18364F !important;
  font-size:12px !important;
  font-weight:800 !important;
}
#services .service-grid > .service-card#flights a.flight-support-link:hover,
#services .service-grid > .service-card#flights a.flight-support-link:focus-visible {
  border-color:#547B96 !important;
  background:#DCEAF2 !important;
  color:#102A43 !important;
  -webkit-text-fill-color:#102A43 !important;
}


/* Refined AirHelp secondary action: coordinated with PulseTrips teal palette. */
#services .service-grid > .service-card#flights a.flight-support-link {
  margin:0 !important;
  min-height:42px !important;
  border:1px solid #B8DAD3 !important;
  border-radius:10px !important;
  background:#E7F2EF !important;
  color:#1F625D !important;
  -webkit-text-fill-color:#1F625D !important;
  font-size:12px !important;
  font-weight:800 !important;
  box-shadow:none !important;
}
#services .service-grid > .service-card#flights a.flight-support-link:hover,
#services .service-grid > .service-card#flights a.flight-support-link:focus-visible {
  border-color:#2D8983 !important;
  background:#D5EAE5 !important;
  color:#174F4B !important;
  -webkit-text-fill-color:#174F4B !important;
  box-shadow:0 4px 12px rgba(45,137,131,.14) !important;
}


/* Homepage rhythm refinement: bring sections closer without compressing card content. */
.section {
  padding-top: 48px !important;
  padding-bottom: 48px !important;
}
.section-heading {
  margin-bottom: 22px !important;
}
#services .section-heading,
#featured .section-heading {
  margin-bottom: 22px !important;
}
.help-support-section {
  padding-top: 48px !important;
  padding-bottom: 48px !important;
}
@media (max-width: 760px) {
  .section {
    padding-top: 36px !important;
    padding-bottom: 36px !important;
  }
  .section-heading {
    margin-bottom: 18px !important;
  }
  #services .section-heading,
  #featured .section-heading {
    margin-bottom: 18px !important;
  }
  .help-support-section {
    padding-top: 36px !important;
    padding-bottom: 36px !important;
  }
}


/* Consistent editorial alignment for the main homepage section headings. */
#destinations .section-heading,
#services .section-heading,
#featured .section-heading {
  display:block !important;
  max-width:760px !important;
  margin:0 0 22px !important;
  text-align:left !important;
}
#destinations .section-heading > div,
#services .section-heading > div,
#featured .section-heading > div {
  width:100% !important;
  text-align:left !important;
}
#destinations .section-heading .section-kicker,
#services .section-heading .section-kicker,
#featured .section-heading .section-kicker {
  margin-left:0 !important;
  margin-right:0 !important;
}
#destinations .section-heading p,
#services .section-heading p,
#featured .section-heading p {
  max-width:720px !important;
  margin-left:0 !important;
  margin-right:0 !important;
  text-align:left !important;
}
@media (max-width:760px) {
  #destinations .section-heading,
  #services .section-heading,
  #featured .section-heading {
    margin-bottom:18px !important;
  }
}


/* Accessibility refinement: keep small text readable on light editorial surfaces. */
:root {
  --muted:#52677B;
  --pt-muted:#52677B;
}
.section-kicker {
  color:#26766F !important;
}
.section-heading p,
#destinations .section-heading p,
#services .section-heading p,
#featured .section-heading p,
#services .section-heading > div p,
#featured .section-heading > div p,
.city-directory-heading p,
.service-card p,
.featured-card p,
.about-copy p,
.contact-copy p,
.about-tagline-card p,
.contact-tagline-card p,
.faq-list details p,
.footer-column a,
.footer-tagline,
.footer-bottom p {
  color:#52677B !important;
}


/* Final editorial line-length alignment for the three homepage sections. */
#services .section-heading { max-width:1100px !important; }
#services .section-heading p {
  max-width:none !important;
  white-space:nowrap !important;
  font-size:13px !important;
  line-height:1.55 !important;
}
#featured .section-heading { max-width:1100px !important; }
#featured .section-heading p {
  max-width:980px !important;
  white-space:normal !important;
  font-size:13.5px !important;
  line-height:1.6 !important;
}
@media (max-width:760px) {
  #services .section-heading p { white-space:normal !important; }
  #featured .section-heading p { max-width:100% !important; }
}


/* Unified typography for every primary homepage section heading. */
#destinations .section-heading h2,
#services .section-heading h2,
#featured .section-heading h2,
#faq .section-heading h2,
.city-directory-heading h3,
.about-copy h2,
.help-contact-content h2 {
  font-family:"Manrope", "DM Sans", sans-serif !important;
  font-size:clamp(30px,3.4vw,40px) !important;
  font-weight:850 !important;
  line-height:1.15 !important;
  letter-spacing:-.8px !important;
}
@media (max-width:760px) {
  #destinations .section-heading h2,
  #services .section-heading h2,
  #featured .section-heading h2,
  #faq .section-heading h2,
  .city-directory-heading h3,
  .about-copy h2,
  .help-contact-content h2 {
    font-size:clamp(28px,7vw,32px) !important;
    line-height:1.18 !important;
    letter-spacing:-.55px !important;
  }
}
