/* Local layout and interaction corrections. */
html { scroll-padding-top: 6rem; }
html.site-scroll-locked { overflow: hidden !important; overscroll-behavior: none; }
.site-scroll-locked body { position: fixed !important; top: var(--locked-scroll-top, 0) !important; left: 0; right: 0; width: 100%; overflow: hidden !important; }
[data-site-dialog] { overscroll-behavior: contain; }
[data-site-dialog].hidden, [data-site-dialog].d-none, [hidden] { display: none !important; }
[data-site-dialog] > :first-child { min-width: 0; }
.site-price { white-space: nowrap; flex-shrink: 0; }
.site-independent-grid { align-items: start !important; }
.site-independent-card { height: auto !important; align-self: start !important; }
.site-independent-card .card { height: auto !important; }
select { text-indent: 0; }
@media (max-width: 640px) {
  [data-site-dialog] { max-height: 100dvh; overflow-y: auto; padding: .75rem !important; align-items: flex-start !important; }
  [data-site-dialog] > :first-child { margin-block: auto; max-height: calc(100dvh - 1.5rem) !important; overflow-y: auto; }
}
.policy-page .site-policy-main { padding: 2rem 1.25rem 3rem !important; width: 100% !important; max-width: 1120px !important; margin: 0 auto !important; min-height: 55vh !important; }
.policy-page .site-policy-shell { padding-block: 0 !important; margin-block: 0 !important; min-height: 0 !important; background: transparent !important; box-shadow: none !important; border: 0 !important; max-width: 100% !important; width: 100% !important; }
.policy-page .site-policy-main > :first-child { margin-top: 0 !important; }
.policy-page .site-policy-main header { padding-top: 0 !important; margin-top: 0 !important; }
.confirmation-page { min-height: 100vh; display: flex; flex-direction: column; }
.confirmation-page > .site-confirmation-main { flex: 1; min-height: calc(100svh - var(--site-header-height, 80px)) !important; padding: 2rem 1.25rem !important; display: flex; align-items: center; justify-content: center; }
.confirmation-page .site-confirmation-shell { padding-block: 0 !important; margin-block: 0 !important; min-height: 0 !important; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto !important; } }


.mobile-menu-overlay:not(.open) {display:none !important}.mobile-menu-overlay.open{display:flex !important}
#planner .site-planner-layout {display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
#planner .site-planner-layout > * {min-width:0;grid-column:auto}
#planner .site-planner-controls .js-add-item {gap:8px}
#planner .js-add-item > div {min-width:0}
#planner .js-add-item > div > div:last-child {min-width:0;overflow-wrap:anywhere}
#planner .js-planner-items-container > div {cursor:grab;transition:none}
#planner .js-planner-items-container > div:active {cursor:grabbing;z-index:5}
@media(min-width:1024px){#planner .site-planner-layout{grid-template-columns:minmax(280px,1fr) minmax(0,2fr)}#planner .site-planner-controls{grid-row:span 2}#planner .site-planner-summary{grid-column:2;display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}#planner .site-planner-summary > *{margin:0}}



.site-scroll-locked #cookieConsentBanner:not([data-site-dialog]),.site-scroll-locked #site-cookie-banner {visibility:hidden}

/* Full-screen navigation must stretch its rows, unlike centered dialog cards. */
.mobile-menu-overlay[data-site-dialog] {
  height:100dvh; max-height:100dvh; box-sizing:border-box;
  padding:20px 16px !important; align-items:stretch !important;
  justify-content:flex-start; overflow-y:auto;
}
.mobile-menu-overlay[data-site-dialog] > :first-child {
  width:100%; flex:0 0 auto; margin:0 !important;
  max-height:none !important; overflow:visible;
  padding-bottom:16px;
}
.mobile-menu-overlay .js-mobile-menu-close {
  display:flex; align-items:center; justify-content:center;
  width:44px; height:44px; flex-shrink:0;
}
.mobile-menu-overlay[data-site-dialog] > :nth-child(2) {
  width:100%; flex:0 0 auto; align-items:stretch;
  justify-content:flex-start; gap:8px; padding:24px 0;
}
.mobile-menu-overlay .js-mobile-nav-link {
  width:100%; max-width:none; min-height:52px;
  margin:0 !important; padding:12px 16px;
  justify-content:flex-start; text-align:left; border-radius:8px;
}
.mobile-menu-overlay .js-mobile-nav-link:last-child {
  margin-top:8px !important; justify-content:center; text-align:center;
}
.mobile-menu-overlay[data-site-dialog] > :last-child {
  width:100%; margin-top:auto; flex:0 0 auto; text-align:left;
}

