/* Behavior for the original theme's custom elements on a static host. */
#stickyBar { z-index: 30; }
#stickyBar.hide { visibility: hidden; pointer-events: none; }
#header-sidebar-menu { display: none; }
#header-sidebar-menu[open] { display: block; visibility: visible; inset: auto 8px 8px; width: calc(100% - 16px); height: auto; max-height: 85dvh; padding: 24px; background: rgb(var(--dialog-background)); color: rgb(var(--text-primary)); border-radius: 8px; box-shadow: 0 0 0 100vmax #0006; }
#header-sidebar-menu > button { display: block; margin-left: auto; padding: 10px; }
#header-sidebar-menu .panel__wrapper { padding: 24px 8px; }
@media (min-width: 700px) { #header-sidebar-menu[open] { inset: 8px auto 8px 8px; width: 412px; max-height: none; } }
@media (min-width: 1150px) { #header-sidebar-menu[open] { display: none; } }

/* Policy dialogs match the reference's centered, scrollable panels. */
.policy-trigger { font-weight: bold; font-style: normal; }
[data-policy]:hover { text-decoration: underline; }
.policy-dialog { position: fixed; inset: 0; margin: auto; padding: 0; width: calc(100% - 32px); max-width: 700px; max-height: 88vh; border: 0; border-radius: 8px; background: #fff; color: #444; box-shadow: 0 25px 50px -12px #0004; }
.policy-dialog::backdrop { background: rgb(0 0 0 / 50%); }
.policy-panel { display: flex; flex-direction: column; max-height: 88vh; }
.policy-panel > header { display: flex; align-items: center; justify-content: space-between; flex-shrink: 0; padding: 16px 24px; border-bottom: 1px solid #ececec; }
.policy-panel h2 { margin: 0; font-family: Georgia, serif; font-size: 22px; line-height: 1.5; font-weight: 700; color: #1f2a37; }
.policy-close { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; font-size: 26px; line-height: 1; color: #666; }
.policy-close:hover { background: #f1f1f1; color: #111; }
.policy-body { overflow-y: auto; padding: 20px 24px; font-size: 14px; line-height: 1.7; text-align: left; }
.policy-body section { margin-bottom: 16px; }
.policy-body h3 { margin: 0 0 4px; font-size: 15px; font-weight: 700; color: #1f2a37; }
.policy-body p { margin: 0 0 8px; }
.policy-body > p:first-child { margin-bottom: 16px; }
.policy-body ul { list-style: disc; padding-left: 20px; margin: 4px 0 0; }
.policy-body li + li { margin-top: 4px; }
.policy-contact { white-space: pre-line; font-weight: 600; color: #1f2a37; }

/* Disclosure section mirrors the supplied reference footer. */
.footer-disclosures { width: 100%; border-top: 3px solid #2d9596; background: #e9ecef; color: #5b5b5b; }
.footer-disclosures-inner { box-sizing: border-box; max-width: 940px; margin-inline: auto; padding: 36px 20px; text-align: center; font-size: 13px; line-height: 1.7; font-style: normal; font-weight: 400; }
.footer-disclosures p { margin: 0; }
.footer-disclosures .disclosure-intro { margin-bottom: 20px; }
.footer-disclosures strong { color: #3a3a3a; font-weight: 700; }
.disclosure-policies { display: flex; flex-wrap: wrap; justify-content: center; column-gap: 16px; row-gap: 4px; margin-bottom: 20px; color: #3a3a3a; font-size: 13px; font-weight: 700; }
.disclosure-policies button { padding: 0; background: transparent; font: inherit; color: inherit; cursor: pointer; }
.footer-disclosures .disclosure-marketing { margin-bottom: 16px; }
