/* .page-title:before {
    background-color:  color-mix(in srgb, var(--background-color), transparent 100%);
} */
.skip-link {
  z-index: 100000;
  padding: 0.5rem 1rem;
  background: #fff;
  color: #1a1a1a;
  text-decoration: underline;
  border-radius: 4px;
  top: 0.75rem;
  left: 0.75rem;
}

.skip-link:focus {
  position: fixed;
  clip: auto;
  width: auto;
  height: auto;
  overflow: visible;
}

button.mobile-nav-toggle {
  background: transparent;
  border: 0;
  padding: 0;
  line-height: 0;
}

.home-hero {
    color: white;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 80px 0 80px 0;
    text-align: center;
    position: relative;
}

/* WCAG AA on #3498db: dark ink (reads as quiet footnote, not a high-contrast panel) */
.home-hero .home-hero-disclaimer {
    color: #0c1e2e;
    font-weight: 400;
}

.footer-maps-link {
    color: #ffffff;
    text-decoration: underline;
}

.footer-maps-link:hover {
    color: #ffffff;
    text-decoration-thickness: 2px;
}

.ads {
  background-color: white !important;
  margin-top: -3rem !important;
  position: relative;
  z-index: 1;
  padding: 2rem;
  border-bottom: 1px solid #3498db; /* your custom blue */
  border-radius: 8px 8px 0 0; /* optional: softens bottom corners */
}
.recent-posts-widget .post-item img {
    width: 140px;
    margin-right: 15px;
}
.service-image {
  height: auto !important;
}
/* CLS: logo has width/height on <img>; scale in header without layout jump */
.header .logo img {
  width: auto;
  max-height: 89px;
  height: auto;
  aspect-ratio: 280 / 89;
  object-fit: contain;
}

/* CLS: Viator widgets inject late — reserve space to limit layout shift */
.container.ads [data-vi-partner-id] {
  min-height: 260px;
}

.viator-widget-slot--banner {
  min-height: 280px;
  contain: layout style;
}

.viator-widget-slot--sidebar {
  min-height: 300px;
  contain: layout style;
}

@media (max-width: 576px) {
  .viator-widget-slot--banner {
    min-height: 220px;
  }
}

/* CLS: schedule text injected after fetch */
.next-guard-slot {
  min-height: 7.5rem;
}

#nextGuardBoxDesktop {
  min-height: 7rem;
}

/* CLS: home tab promo images — box size before decode */
.tabs .tab-content .content-box .image-box {
  aspect-ratio: 4 / 3;
  background-color: color-mix(in srgb, var(--default-color, #444), transparent 94%);
}

.tabs .tab-content .content-box .image-box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.badge-custom-blue {
    background-color: #3498db !important;
}

/* Article body: semantic h2 section titles — sized like the former h3 */
.service-details .service-content .service-description h2:not(.service-title) {
  font-size: 1.375rem;
  font-weight: 600;
  line-height: 1.35;
  margin-top: 1.75rem;
  margin-bottom: 0.65rem;
  color: var(--heading-color, #2c384e);
}

@media (min-width: 768px) {
  .service-details .service-content .service-description h2:not(.service-title) {
    font-size: 1.5rem;
  }
}



