/* VisitBHV v5.12 — International standards cleanup
   One master layer for consistency, publication-readiness and template isolation. */
:root {
  --vbhv-ink:#0d1b2a;
  --vbhv-muted:#5f6f80;
  --vbhv-teal:#0f766e;
  --vbhv-teal-2:#2ec4b6;
  --vbhv-cream:#f7f3ee;
  --vbhv-paper:#ffffff;
  --vbhv-navy:#071c2d;
  --vbhv-line:rgba(13,27,42,.12);
  --vbhv-shadow:0 24px 70px rgba(13,27,42,.08);
  --vbhv-radius:28px;
  --vbhv-max:1180px;
}

html, body { overflow-x: clip !important; }
body.vbhv-standards-v512 { background:#f7f3ee; }
body.vbhv-standards-v512 a { text-underline-offset: .18em; }
.vbhv-hidden-template-title { display:none!important; }

/* Global section rhythm */
body.vbhv-standards-v512 .visitbhv-page-section,
body.vbhv-standards-v512 .vbhv-guides-directory,
body.vbhv-standards-v512 .visitbhv-events-card-section,
body.vbhv-standards-v512 .vbhv-attraction-single,
body.vbhv-standards-v512 .vbhv-guide-reading-layout {
  width:min(100% - 2rem, var(--vbhv-max))!important;
  max-width:var(--vbhv-max)!important;
  margin-inline:auto!important;
}

/* Header/nav should remain universal and above detail layouts. */
body.vbhv-standards-v512 header,
body.vbhv-standards-v512 .site-header,
body.vbhv-standards-v512 .main-header,
body.vbhv-standards-v512 .navbar {
  z-index:100!important;
}

/* Homepage events: strong contrast and visible cards. */
body.home .visitbhv-managed-events {
  display:grid!important;
  gap:1rem!important;
  max-width:860px!important;
}
body.home .visitbhv-managed-event,
.vbhv-event-card-normalized {
  background:rgba(255,255,255,.96)!important;
  border:1px solid rgba(13,27,42,.12)!important;
  border-radius:22px!important;
  box-shadow:0 18px 48px rgba(13,27,42,.08)!important;
  color:var(--vbhv-ink)!important;
}
body.home .visitbhv-managed-event h3,
body.home .visitbhv-managed-event h3 a,
body.home .visitbhv-managed-event p,
body.home .visitbhv-managed-event .vbhv-readable-event-text,
.vbhv-readable-event-text {
  color:var(--vbhv-ink)!important;
  opacity:1!important;
  text-shadow:none!important;
}
body.home .visitbhv-managed-event .visitbhv-managed-overline,
body.home .visitbhv-managed-event .visitbhv-managed-link,
body.home .visitbhv-managed-event a:not(h3 a) {
  color:var(--vbhv-teal)!important;
}
body.home .visitbhv-managed-event__date,
body.home .visitbhv-managed-event__date * {
  background:#0b6f6d!important;
  color:#fff!important;
  text-shadow:none!important;
}

/* Events directory: image-ready destination cards. */
.visitbhv-events-card-section { padding-top:clamp(3.5rem,7vw,6rem)!important; }
.visitbhv-events-card-grid {
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:1.35rem!important;
  max-width:1180px!important;
  margin:2.25rem auto 0!important;
}
.visitbhv-event-feature-card {
  overflow:hidden!important;
  display:grid!important;
  grid-template-columns:minmax(240px,42%) 1fr!important;
  min-height:320px!important;
  border:1px solid rgba(13,27,42,.12)!important;
  border-radius:32px!important;
  background:#fff!important;
  box-shadow:var(--vbhv-shadow)!important;
}
.visitbhv-event-feature-card__media {
  min-height:320px!important;
  background-size:cover!important;
  background-position:center!important;
}
.visitbhv-event-feature-card__media--fallback {
  display:grid!important;
  place-items:center!important;
  background:radial-gradient(circle at 20% 20%, rgba(255,255,255,.2), transparent 34%), linear-gradient(135deg,#0b6f6d,#071c2d)!important;
}
.visitbhv-event-feature-card__body { padding:1.6rem!important; }
.visitbhv-event-feature-card h3,
.visitbhv-event-feature-card h3 a { color:var(--vbhv-ink)!important; text-decoration:none!important; }
.visitbhv-event-excerpt { color:rgba(13,27,42,.72)!important; }
.visitbhv-event-date-badge { background:#0b6f6d!important; color:#fff!important; }
.visitbhv-event-date-badge * { color:#fff!important; }

/* Guides: pleasant card library and post-like article pages. */
.vbhv-guide-card-grid { gap:1.25rem!important; }
.vbhv-guide-card {
  border-radius:28px!important;
  background:linear-gradient(180deg,#fff 0%,#fbf8f4 100%)!important;
  border:1px solid rgba(13,27,42,.12)!important;
  box-shadow:0 18px 48px rgba(13,27,42,.07)!important;
}
.vbhv-guide-card:hover { transform:translateY(-4px)!important; box-shadow:0 28px 72px rgba(13,27,42,.12)!important; }
.vbhv-guide-card-link { padding:1.45rem!important; }
.vbhv-guide-card-body h3 { color:var(--vbhv-ink)!important; font-size:clamp(1.25rem,2vw,1.6rem)!important; }
.vbhv-guide-card-body p { color:#34495a!important; }
.vbhv-guide-card-action { color:var(--vbhv-teal)!important; }
.vbhv-guide-single-page { background:#f7f3ee!important; }
.vbhv-guide-reading-hero { padding-top:clamp(4rem,8vw,7rem)!important; }
.vbhv-guide-reading-card,
.vbhv-guide-side-card {
  border-radius:30px!important;
  box-shadow:var(--vbhv-shadow)!important;
}
.vbhv-guide-body h2 { color:#0f3b4d!important; }
.vbhv-guide-body p,
.vbhv-guide-body li { color:#33485b!important; }
.vbhv-guide-side-card { background:#071c2d!important; }

/* Attraction detail pages: clean article system, not cramped table blocks. */
body.vbhv-single-attraction,
body.single-attraction { background:#f7f3ee!important; }
body.vbhv-single-attraction .entry-title,
body.single-attraction .entry-title,
body.vbhv-single-attraction .post-title,
body.single-attraction .post-title,
body.vbhv-single-attraction .archive-title,
body.single-attraction .archive-title,
body.vbhv-single-attraction .widget-area,
body.single-attraction .widget-area,
body.vbhv-single-attraction .sidebar,
body.single-attraction .sidebar,
body.vbhv-single-attraction aside:not(.vbhv-detail-tip):not(.vbhv-guide-side-card),
body.single-attraction aside:not(.vbhv-detail-tip):not(.vbhv-guide-side-card) { display:none!important; }
body.vbhv-single-attraction .site-content,
body.single-attraction .site-content,
body.vbhv-single-attraction main,
body.single-attraction main,
body.vbhv-single-attraction .content-area,
body.single-attraction .content-area,
body.vbhv-single-attraction .container,
body.single-attraction .container,
body.vbhv-single-attraction .wrap,
body.single-attraction .wrap,
body.vbhv-single-attraction .detail-page,
body.single-attraction .detail-page,
body.vbhv-single-attraction .detail-grid,
body.single-attraction .detail-grid,
body.vbhv-single-attraction .detail-main,
body.single-attraction .detail-main,
body.vbhv-single-attraction .inner-content,
body.single-attraction .inner-content {
  width:100%!important;
  max-width:none!important;
  display:block!important;
  grid-template-columns:1fr!important;
  margin-left:0!important;
  margin-right:0!important;
  padding-left:0!important;
  padding-right:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.vbhv-attraction-single {
  width:min(100% - 2rem,1180px)!important;
  max-width:1180px!important;
  margin:0 auto!important;
  padding:clamp(2.5rem,5vw,5.5rem) 0 clamp(4rem,7vw,7rem)!important;
}
.vbhv-detail-hero,
.vbhv-detail-glance,
.vbhv-detail-panels,
.vbhv-detail-story,
.vbhv-detail-footer-cta { margin-inline:auto!important; }
.vbhv-detail-hero { gap:clamp(1.25rem,3vw,2.4rem)!important; }
.vbhv-detail-hero__copy,
.vbhv-detail-hero__media,
.vbhv-detail-glance,
.vbhv-detail-panel,
.vbhv-detail-story,
.vbhv-detail-footer-cta {
  border-radius:32px!important;
  border:1px solid rgba(13,27,42,.10)!important;
  box-shadow:var(--vbhv-shadow)!important;
}
.vbhv-detail-hero__copy { min-height:420px!important; }
.vbhv-detail-hero h1 { color:var(--vbhv-ink)!important; }
.vbhv-detail-facts-grid { gap:.9rem!important; }
.vbhv-detail-fact,
.vbhv-detail-panel { background:#fff!important; }
.vbhv-detail-fact p { overflow-wrap:anywhere!important; }
.vbhv-detail-panel p,
.vbhv-detail-panel li { overflow-wrap:anywhere!important; }
.vbhv-detail-panel--wide { grid-column:span 2!important; }
.vbhv-detail-footer-cta { background:#071c2d!important; }
.vbhv-detail-footer-cta h2,
.vbhv-detail-footer-cta p { color:#fff!important; }

/* Remove old attraction wrapper blocks that created cramped pages. */
body.vbhv-single-attraction .detail-hero,
body.single-attraction .detail-hero,
body.vbhv-single-attraction .detail-sidebar,
body.single-attraction .detail-sidebar,
body.vbhv-single-attraction .quick-facts,
body.single-attraction .quick-facts,
body.vbhv-single-attraction .practical-information:not(.vbhv-detail-panel),
body.single-attraction .practical-information:not(.vbhv-detail-panel) { display:none!important; }

/* Hard universal footer system: same footer across all pages, detached from page templates. */
body.vbhv-standards-v512 footer,
body.vbhv-standards-v512 .site-footer,
body.vbhv-standards-v512 #colophon,
body.vbhv-standards-v512 .vbhv-official-footer,
body.vbhv-standards-v512 .vbhv-footer-normalized {
  clear:both!important;
  display:block!important;
  position:relative!important;
  z-index:60!important;
  width:100vw!important;
  max-width:100vw!important;
  min-width:100vw!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
  margin-top:0!important;
  background:#071c2d!important;
  color:rgba(255,255,255,.78)!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
  transform:none!important;
}
body > footer.vbhv-footer-normalized,
body > footer.site-footer,
body > #colophon { margin-left:0!important; margin-right:0!important; width:100%!important; max-width:100%!important; min-width:0!important; }
body.vbhv-standards-v512 footer .container,
body.vbhv-standards-v512 footer .wrap,
body.vbhv-standards-v512 footer .vbhv-official-footer-grid,
body.vbhv-standards-v512 footer .vbhv-footer-grid-normalized {
  width:min(100% - 2.5rem,1180px)!important;
  max-width:1180px!important;
  margin:0 auto!important;
  padding:clamp(3.5rem,6vw,5.5rem) 0!important;
  display:grid!important;
  grid-template-columns:minmax(220px,1.25fr) minmax(150px,.8fr) minmax(150px,.8fr) minmax(230px,1fr)!important;
  gap:clamp(1.5rem,4vw,3.5rem)!important;
  align-items:start!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  float:none!important;
  box-sizing:border-box!important;
}
body.vbhv-standards-v512 footer .vbhv-official-footer-bottom,
body.vbhv-standards-v512 footer .vbhv-footer-bottom-normalized {
  width:min(100% - 2.5rem,1180px)!important;
  max-width:1180px!important;
  margin:0 auto!important;
  padding:1.15rem 0!important;
  border-top:1px solid rgba(255,255,255,.12)!important;
  display:flex!important;
  justify-content:space-between!important;
  gap:1rem!important;
}
body.vbhv-standards-v512 footer h1,
body.vbhv-standards-v512 footer h2,
body.vbhv-standards-v512 footer h3,
body.vbhv-standards-v512 footer h4 {
  color:#fff!important;
  font-size:.82rem!important;
  line-height:1.25!important;
  letter-spacing:.12em!important;
  text-transform:uppercase!important;
  margin:0 0 1rem!important;
}
body.vbhv-standards-v512 footer p,
body.vbhv-standards-v512 footer li,
body.vbhv-standards-v512 footer span,
body.vbhv-standards-v512 footer label,
body.vbhv-standards-v512 footer a {
  color:rgba(255,255,255,.78)!important;
  line-height:1.55!important;
  text-decoration:none!important;
  text-shadow:none!important;
}
body.vbhv-standards-v512 footer a:hover { color:#46d5cf!important; }
body.vbhv-standards-v512 footer input[type="email"],
body.vbhv-standards-v512 footer input[type="text"] {
  min-height:44px!important;
  border-radius:999px!important;
  border:1px solid rgba(255,255,255,.18)!important;
  background:rgba(255,255,255,.08)!important;
  color:#fff!important;
  padding:.75rem 1rem!important;
}
body.vbhv-standards-v512 footer button,
body.vbhv-standards-v512 footer input[type="submit"] {
  min-height:44px!important;
  border-radius:999px!important;
  background:#2ec4b6!important;
  color:#071c2d!important;
  border:0!important;
  font-weight:900!important;
  padding:.75rem 1rem!important;
}

@media (max-width:980px){
  .visitbhv-events-card-grid,
  .vbhv-detail-hero,
  .vbhv-detail-glance,
  .vbhv-guide-reading-layout { grid-template-columns:1fr!important; }
  .vbhv-detail-panels { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  body.vbhv-standards-v512 footer .container,
  body.vbhv-standards-v512 footer .wrap,
  body.vbhv-standards-v512 footer .vbhv-official-footer-grid,
  body.vbhv-standards-v512 footer .vbhv-footer-grid-normalized { grid-template-columns:1fr 1fr!important; }
}
@media (max-width:700px){
  body.vbhv-standards-v512 .visitbhv-page-section,
  body.vbhv-standards-v512 .vbhv-attraction-single,
  body.vbhv-standards-v512 .vbhv-guide-reading-layout { width:min(100% - 1rem,1180px)!important; }
  .visitbhv-event-feature-card,
  .vbhv-detail-facts-grid,
  .vbhv-detail-panels { grid-template-columns:1fr!important; }
  .vbhv-detail-panel--wide { grid-column:auto!important; }
  .vbhv-detail-hero__copy,
  .vbhv-detail-hero__media,
  .vbhv-detail-glance,
  .vbhv-detail-panel,
  .vbhv-detail-story,
  .vbhv-detail-footer-cta { border-radius:24px!important; }
  .vbhv-detail-footer-cta { flex-direction:column!important; align-items:flex-start!important; }
  body.vbhv-standards-v512 footer .container,
  body.vbhv-standards-v512 footer .wrap,
  body.vbhv-standards-v512 footer .vbhv-official-footer-grid,
  body.vbhv-standards-v512 footer .vbhv-footer-grid-normalized,
  body.vbhv-standards-v512 footer .vbhv-official-footer-bottom,
  body.vbhv-standards-v512 footer .vbhv-footer-bottom-normalized {
    width:min(100% - 1.25rem,1180px)!important;
    grid-template-columns:1fr!important;
    flex-direction:column!important;
  }
}


/* v5.12.1 audit hardening */
html:not(.visitbhv-sound-homepage) audio,
html:not(.visitbhv-sound-homepage) .visitbhv-sound-control,
html:not(.visitbhv-sound-homepage) .visitbhv-sound-toggle,
html:not(.visitbhv-sound-homepage) [data-visitbhv-sound] { display:none!important; visibility:hidden!important; }
body:not(.home) .visitbhv-sound-control,
body:not(.home) .visitbhv-sound-toggle,
body:not(.home) [data-visitbhv-sound] { display:none!important; visibility:hidden!important; }
.vbhv-events-final .visitbhv-events-card-grid { margin-top:0!important; }
.vbhv-events-hero { text-align:center!important; padding-top:clamp(4rem,8vw,7rem)!important; }
.vbhv-guides-directory .vbhv-guide-card-grid:empty::before { content:'Guide posts are being prepared. Refresh the page in a moment.'; display:block; padding:2rem; background:#fff; border-radius:24px; }
