/* Shared privacy controls and legal documents; all fonts/assets are local. */
.privacy-banner[hidden], .privacy-settings[hidden], .privacy-embed-content[hidden], .privacy-embed-message[hidden] { display:none !important; }
.privacy-banner { position:fixed; z-index:100100; bottom:20px; left:50%; transform:translateX(-50%); width:min(1060px,calc(100% - 32px)); max-height:calc(100dvh - 40px); overflow:auto; background:#fff; color:#38566a; border:1px solid #cfdee2; border-radius:22px; padding:26px 30px; box-shadow:0 10px 70px #203b4d40; display:grid; grid-template-columns:1fr; gap:16px; font-family:'Source Sans 3',sans-serif; }
.privacy-kicker,.legal-eyebrow { font-size:12px; letter-spacing:1.4px; font-weight:700; color:#527d8b; }
.privacy-banner h2 { font-size:25px; line-height:1.25; margin:6px 0 10px; }
.privacy-banner p { margin:0; font-size:16px; line-height:1.5; }
.privacy-banner .privacy-banner-links { margin-top:8px; }
.privacy-banner a,.privacy-external a { color:#38566a; text-decoration:underline; text-underline-offset:3px; }
.privacy-banner-actions { display:flex; flex-wrap:wrap; gap:10px; }
.privacy-button { display:inline-flex; justify-content:center; align-items:center; min-height:46px; padding:10px 20px; background:#38566a; color:white; font:700 16px 'Source Sans 3',sans-serif; border:1px solid #38566a; border-radius:11px; cursor:pointer; }
.privacy-button:hover { background:#2d4656; color:white; }
.privacy-button-settings { background:#fff; color:#38566a; }
.privacy-button:focus-visible,[data-privacy-settings]:focus-visible,.legal-page a:focus-visible { outline:3px solid #d18f50; outline-offset:3px; }
.privacy-settings { border-top:1px solid #dbe5e8; padding-top:10px; }
.privacy-option { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:12px 0; border-bottom:1px solid #e7eef0; }
.privacy-option input { width:24px; height:24px; accent-color:#38566a; flex:none; }
.privacy-option span { white-space:nowrap; font-size:13px; font-weight:700; }
.privacy-settings > p { margin:12px 0; font-size:14px; }
.privacy-choice-status:empty { display:none; }
.privacy-external { width:100%; }
.privacy-embed-message { padding:28px; border:1px solid #d6e3e6; border-radius:18px; background:#f0f6f7; text-align:center; color:#38566a; }
.privacy-embed-message p { margin:0 0 14px; }
.privacy-embed-message button { margin-top:8px; }
.map-items .privacy-embed-message { min-height:300px; display:flex; flex-direction:column; justify-content:center; align-items:center; }
[data-privacy-settings] { cursor:pointer; }
.footer-menu [data-privacy-settings] { color:inherit; font:inherit; padding:0; background:transparent; border:0; text-align:left; }
.footer-bottom .footer-wrapper { flex-wrap:wrap; gap:20px; }
.footer-bottom .footer-menu { display:flex; flex-wrap:wrap; gap:12px 20px; justify-content:flex-start; }
.footer-bottom .footer-menu li { margin:0; flex:none; }
.legal-main { padding-top:64px; padding-bottom:70px; }
.legal-heading { max-width:1000px; margin-bottom:42px; }
.legal-heading h1 { font-size:clamp(32px,4vw,52px); line-height:1.15; margin:12px 0 22px; }
.legal-intro { max-width:840px; font-size:21px; line-height:1.65; }
.legal-version { margin-top:16px; font-size:14px; color:#677f8c; }
.legal-highlights { display:flex; flex-wrap:wrap; gap:10px; margin:22px 0 0; padding:0; list-style:none; }
.legal-highlights li { background:#eaf2f3; color:#38566a; border:1px solid #dce8eb; border-radius:10px; padding:10px 15px; font-size:15px; font-weight:600; }
.legal-layout { display:grid; grid-template-columns:270px minmax(0,1fr); gap:55px; align-items:start; }
.legal-navigation { position:sticky; top:135px; background:#f3f6f6; border:1px solid #e2eaec; border-radius:16px; padding:23px; font-size:15px; }
.legal-navigation summary { font-size:18px; font-weight:700; cursor:pointer; color:#38566a; }
.legal-navigation nav { margin-top:14px; display:grid; gap:9px; }
.legal-navigation a { line-height:1.45; }
.legal-navigation > p { border-top:1px solid #d7e3e7; padding-top:18px; margin:20px 0 0; line-height:1.6; }
.legal-navigation > p a { overflow-wrap:anywhere; text-decoration:underline; }
.legal-content { font-size:18px; line-height:1.8; color:#536d7d; }
.legal-content section { scroll-margin-top:145px; padding-bottom:28px; margin-bottom:28px; border-bottom:1px solid #e2e9eb; }
.legal-content h2 { font-size:26px; line-height:1.35; margin-bottom:18px; }
.legal-content p { margin-bottom:16px; }
.legal-content p:last-child { margin-bottom:0; }
.legal-content a { color:#38566a; text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.legal-content strong { font-weight:700; color:#38566a; }
.legal-content ul { list-style:disc; margin:0 0 20px; padding-left:24px; }
.legal-content li { margin-bottom:12px; }
.legal-table-wrap { margin:20px 0; }
.legal-content table { width:100%; border-collapse:collapse; font-size:16px; line-height:1.6; }
.legal-content th { background:#eaf2f3; color:#38566a; text-align:left; }
.legal-content th,.legal-content td { padding:14px; border:1px solid #dce6e9; vertical-align:top; }
.legal-content td:first-child { width:35%; font-weight:600; }
.legal-content code { color:#38566a; font-size:13px; word-break:break-word; }
.legal-related { display:flex; gap:12px; flex-wrap:wrap; padding-top:24px; border-top:1px solid #dce6e9; }
.legal-related a,.legal-related button { background:#f0f5f6; border:1px solid #d7e4e8; border-radius:10px; padding:11px 17px; font:600 16px 'Source Sans 3',sans-serif; color:#38566a; }
.legal-related [aria-current] { background:#38566a; color:#fff; }
@media(max-width:991px) { .legal-layout { grid-template-columns:1fr; gap:30px; } .legal-navigation { position:static; } .legal-navigation nav { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 24px; } }
@media(max-width:575px) {
 .privacy-banner { bottom:8px; width:calc(100% - 16px); max-height:calc(100dvh - 16px); border-radius:17px; padding:19px; gap:14px; }
 .privacy-banner h2 { font-size:22px; } .privacy-banner p { font-size:14px; }
 .privacy-banner-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
 .privacy-button { font-size:14px; padding:10px 8px; }
 .privacy-button-settings { grid-column:1 / -1; }
 .privacy-option { gap:12px; } .privacy-option p { font-size:13px; }
 .privacy-embed-message { padding:22px 16px; }
 .legal-main { padding-top:36px; padding-bottom:40px; }
 .legal-heading { margin-bottom:28px; } .legal-intro { font-size:18px; line-height:1.6; }
 .legal-highlights { display:grid; gap:8px; } .legal-highlights li { padding:9px 12px; }
 .legal-navigation { padding:20px; } .legal-navigation nav { grid-template-columns:1fr; gap:9px; }
 .legal-content { font-size:17px; line-height:1.75; } .legal-content h2 { font-size:23px; }
 .legal-content section { scroll-margin-top:115px; margin-bottom:24px; padding-bottom:24px; }
 .legal-content table,.legal-content tbody,.legal-content tr,.legal-content td { display:block; }
 .legal-content thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
 .legal-content tr { margin-bottom:12px; border:1px solid #dce6e9; border-radius:12px; overflow:hidden; }
 .legal-content td { border:0; padding:12px 15px; }
 .legal-content td:first-child { width:100%; background:#eaf2f3; color:#38566a; }
 .legal-related { display:grid; } .legal-related a,.legal-related button { text-align:left; }
}
