html {
  color-scheme: light only;
}

/* Keep emphasis weight in white headings; theme sets strong to --bs-gray-800 */
.text-white-stable strong,
.text-white-stick strong,
.text-white strong {
  color: inherit;
}

.page-hero-equal-height {
  min-height: calc(var(--bs-body-font-size) * 31.25) !important;
  display: flex;
  align-items: center;
}

.page-hero-equal-height > .container {
  width: 100%;
}

/* Split hero (home + airport service pages): fixed band height on md+ */
@media (min-width: 768px) {
  .hero-split {
    height: 38.625rem;
    min-height: 38.625rem;
    max-height: 38.625rem;
    display: flex;
    align-items: center;
    box-sizing: border-box;
  }

  .hero-split > .container {
    width: 100%;
  }
}

/* Dark CTA band icon rings (flat rates, kids, ethics, etc.) */
.cta-band-icon-ring {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  flex-shrink: 0;
}

.cta-band-icon-ring > i {
  display: block;
  line-height: 1;
}

/* Outline heart glyph sits high in the Bootstrap Icons em box */
.cta-band-icon-ring > .bi-heart {
  transform: translateY(0.2rem);
}

/* Phone CTA (matches contact "Ready to Book?" tel button) */
.btn.btn-phone-cta {
  background: #67a5f1;
  color: #fff;
  border: 1.5px solid rgba(255, 255, 255, 0.4);
  transition: background-color 0.2s ease;
}

.btn.btn-phone-cta:hover {
  background-color: var(--bs-primary);
}

.btn.btn-phone-cta .bi {
  color: inherit;
}

/* Reservation + phone button stack (home, pricing, contact, etc.) */
.cta-btn-stack {
  max-width: min(100%, 23rem);
}

/* Home "Guaranteed Flat Rates" CTA lead copy:
   ≥ laptop (992px): cap width so the paragraph wraps to ~2 lines, centered.
   < laptop: no cap — uses full width of the column (normal flow). */
@media (min-width: 992px) {
  .cta-flat-rates-lead {
    display: block;
    max-width: min(100%, 48rem);
    margin-left: auto;
    margin-right: auto;
  }
}

/* Pricing "Save More" — same border tone as footer `text-body-secondary` / `--bs-secondary-color` */
.pricing-banner-rule {
  flex-grow: 1;
  margin: 0;
  border: 0;
  border-top: 1px solid var(--bs-secondary-color);
}

.pricing-banner-icon-ring {
  width: 52px;
  height: 52px;
  border: 1px solid var(--bs-secondary-color);
}

/* Blog list layout (blog.html): thumbnails + YouTube in horizontal rows */
.blog-list-view .zoom-img > a {
  display: block;
  border-radius: 0.75rem;
  overflow: hidden;
}

.blog-list-view .zoom-img img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  vertical-align: middle;
}

.blog-list-view .zoom-img .js-youtube-player {
  border-radius: 0.75rem;
  overflow: hidden;
  aspect-ratio: 16 / 9;
}

/* Single blog post: in-article body links use brand primary blue */
main article.col-lg-8.offset-lg-2 p a.link-primary,
main article.col-lg-8.offset-lg-2 li a.link-primary,
main article.col-lg-8.offset-lg-2 td a.link-primary,
main article.col-lg-8.offset-lg-2 p a.link-primary:hover,
main article.col-lg-8.offset-lg-2 li a.link-primary:hover,
main article.col-lg-8.offset-lg-2 td a.link-primary:hover,
main article.col-lg-8.offset-lg-2 p a.link-primary:focus,
main article.col-lg-8.offset-lg-2 li a.link-primary:focus,
main article.col-lg-8.offset-lg-2 td a.link-primary:focus {
  color: var(--bs-primary) !important;
  text-decoration-color: var(--bs-primary) !important;
}

/* Home jarallax hero: copy sits in an absolutely positioned flex layer
   (align-items: center). Padding on .hero-agency does not inset that layer,
   so vertical breathing room uses .hero-agency-content (not for overlay nav —
   navbar stays normal in-flow).
   Small viewports: shorter band so less empty space above the fold; md+ fixed min-height. */
.hero-agency {
  min-height: clamp(25rem, 72dvh, 32rem);
  padding: 0;
}

@media (min-width: 768px) {
  .hero-agency {
    min-height: 520px;
  }
}

.hero-agency .hero-agency-content {
  box-sizing: border-box;
  padding-top: max(env(safe-area-inset-top, 0px), 0.5rem);
  padding-bottom: clamp(1rem, 2.5vw, 2rem);
}

.read-more-toggle .icon-chevron-up {
  display: none;
}

.read-more-toggle[aria-expanded="true"] .icon-chevron-down {
  display: none;
}

.read-more-toggle[aria-expanded="true"] .icon-chevron-up {
  display: inline-block;
}

.pricing-lax-card {
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease;
}

.pricing-lax-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 1.25rem 2.5rem rgba(0, 0, 0, 0.13) !important;
}

/* Dark theme: theme.min.css ships purple primary emphasis/subtle tokens;
   override to match brand blue (#4a95ed) used in light mode. */
[data-bs-theme="dark"] {
  --bs-primary-text-emphasis: #7eb6f6;
  --bs-primary-bg-subtle: #152d4a;
  --bs-primary-border-subtle: #2d5f9e;
}

/* Keep logo readable on dark footer */
footer .footer-brand-logo {
  filter: brightness(0) invert(1);
}

/* Main footer link columns */
footer > .container a {
  font-size: 14px;
}

footer > .container a:not(.btn):hover {
  color: #fff !important;
}

/* In-page footer anchors: offset for navbar when scrolling */
#mobile-app,
#services,
#fleet,
#pricing-examples,
#faq {
  scroll-margin-top: 5.5rem;
}

/* Section padding utilities: 88px = fleet total bottom (pb 40px + mb 48px) */
@media (min-width: 992px) {
  .py-lg-88 {
    padding-top: 5.5rem !important;
    padding-bottom: 5.5rem !important;
  }
  .pt-lg-88 {
    padding-top: 5.5rem !important;
  }
  .pb-lg-88 {
    padding-bottom: 5.5rem !important;
  }
}

/* Split text/media sections: text first on mobile, media below with spacing */
@media (max-width: 767.98px) {
  .row.align-items-start > [class*="col-"]:has(h2),
  .row.align-items-center > [class*="col-"]:has(h2) {
    order: 0 !important;
  }

  .row.align-items-start > [class*="col-"]:has(figure, iframe, video),
  .row.align-items-center > [class*="col-"]:has(figure, iframe, video) {
    order: 1 !important;
    margin-top: 3rem;
  }
}
