/* Shared privacy controls and editorial policy page. */
html { scroll-padding-bottom: calc(var(--cookie-banner-height, 0px) + 24px); }
body { padding-bottom: var(--cookie-banner-height, 0px); }
.footer-privacy { display:flex; flex-wrap:wrap; align-items:center; gap:8px 28px; padding-top:16px; font-size:13px; color:var(--ink); }
.footer-privacy a,.footer-privacy button { display:inline-flex; align-items:center; min-height:44px; text-decoration:underline; text-underline-offset:4px; }
.footer-privacy button { border:0; padding:0; color:inherit; background:transparent; }
.privacy-note a { text-decoration:underline; text-underline-offset:3px; }
.cookie-banner { position:fixed; bottom:0; inset-inline:0; z-index:50; border-top:2px solid var(--blue); background:var(--paper); box-shadow:0 -8px 36px #172f4512; max-height:65vh; max-height:65dvh; overflow:auto; padding-bottom:env(safe-area-inset-bottom); }
.cookie-banner-inner { width:min(1264px,calc(100% - 64px)); margin:auto; padding-block:23px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:18px 32px; }
.cookie-copy h2 { font-size:27px; line-height:1.2; margin-bottom:9px; }
.cookie-copy p { max-width:640px; font-size:16px; line-height:1.7; color:var(--muted); }
.cookie-copy a,.cookie-detail a,.policy-main a:not(.button) { text-decoration:underline; text-underline-offset:4px; }
.cookie-actions { display:flex; flex-wrap:wrap; gap:10px; }
.cookie-button { min-height:48px; border:1px solid var(--blue); border-radius:3px; background:white; color:var(--blue); padding:12px 16px; font-size:13px; font-weight:650; line-height:1.5; transition:background 180ms,color 180ms; }
.cookie-button:hover { background:var(--wash); color:var(--ink); }
.cookie-button:active { background:var(--blue); color:white; }
.cookie-feedback { color:var(--ink); background:var(--wash); border-left:3px solid var(--blue); padding:12px; font-size:14px; grid-column:1/-1; }
.cookie-dialog { width:min(600px,calc(100% - 32px)); max-height:calc(100vh - 40px); max-height:calc(100dvh - 40px); margin:auto; padding:30px; border:1px solid var(--field-border); border-top:4px solid var(--blue); border-radius:4px; color:var(--ink); background:white; overflow:auto; overscroll-behavior:contain; box-shadow:0 20px 80px #172f4533; }
.cookie-dialog::backdrop { background:#172f4580; }
.cookie-dialog:not([open]) { display:none; }
.cookie-dialog-heading { display:flex; justify-content:space-between; align-items:center; gap:15px; margin-bottom:13px; }
.cookie-dialog-heading .eyebrow { margin:0; font-size:12px; }
.cookie-close { min-height:44px; padding:8px 12px; border:1px solid var(--field-border); border-radius:3px; background:white; color:var(--ink); font-size:13px; }
.cookie-close:hover { background:var(--wash); }
.cookie-dialog h2 { font-size:34px; line-height:1.2; margin-bottom:17px; }
.cookie-dialog>p { font-size:16px; line-height:1.75; color:var(--muted); }
.cookie-category { padding-block:20px; border-bottom:1px solid var(--line); }
.cookie-category-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; }
.cookie-category h3,.cookie-option strong { font-size:16px; font-weight:650; line-height:1.5; }
.cookie-required { font-size:12px; font-weight:650; color:var(--blue); flex-shrink:0; }
.cookie-category p { margin-top:10px; font-size:16px; line-height:1.75; color:var(--muted); }
.cookie-option { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:48px; cursor:pointer; }
.cookie-option>span { display:grid; gap:3px; }
.cookie-option-detail { font-size:12px; color:var(--muted); }
.cookie-option input { width:24px; height:24px; margin:10px; flex-shrink:0; accent-color:var(--blue); cursor:pointer; }
.cookie-category .analytics-availability { padding:10px 12px; font-size:12px; color:var(--ink); background:var(--wash); }
.cookie-detail { margin-block:19px; }
.cookie-dialog-actions { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:22px; }
.policy-header .header-inner { min-height:98px; }
.policy-header-links { display:flex; align-items:center; gap:28px; font-size:14px; }
.policy-header-links a { min-height:48px; display:inline-flex; align-items:center; }
.policy-header-links a:first-child { text-decoration:underline; text-underline-offset:5px; }
.policy-hero { padding-block:66px 47px; background:var(--wash); border-bottom:1px solid var(--line); }
.policy-hero h1 { max-width:840px; font-size:clamp(42px,5vw,68px); line-height:1.12; }
.policy-hero .eyebrow { margin-bottom:22px; }
.policy-lead { max-width:710px; margin-top:24px; font-size:18px; color:var(--muted); line-height:1.8; }
.policy-date { margin-top:23px; font-size:13px; color:var(--muted); }
.policy-layout { display:grid; grid-template-columns:250px minmax(0,760px); gap:72px; padding-block:60px 85px; align-items:start; }
.policy-toc { position:sticky; top:130px; border-top:2px solid var(--blue); padding-top:23px; }
.policy-toc h2 { font-family:var(--body); font-size:15px; font-weight:650; letter-spacing:0; margin-bottom:12px; }
.policy-toc a { display:block; min-height:44px; padding:10px 0; font-size:14px; line-height:1.6; color:var(--muted); text-decoration:none!important; }
.policy-toc a:hover { color:var(--blue); text-decoration:underline!important; }
.policy-toc .cookie-button { margin-top:18px; width:100%; }
.policy-summary { border-left:3px solid var(--blue); background:var(--wash); padding:25px 28px; margin-bottom:42px; }
.policy-summary h2 { font-size:28px; margin-bottom:16px; }
.policy-summary ul { margin:0; }
.policy-main ul { padding-left:21px; list-style:disc; }
.policy-main li { margin-block:9px; }
.policy-main article { min-width:0; }
.policy-section { margin-top:44px; padding-top:31px; border-top:1px solid var(--line); }
.policy-section h2 { font-size:33px; line-height:1.2; margin-bottom:21px; }
.policy-section h3 { font-size:18px; line-height:1.5; margin:24px 0 10px; }
.policy-section p { max-width:70ch; margin-top:15px; line-height:1.85; }
.policy-section p,.policy-section li,.policy-summary li { color:var(--muted); font-size:16px; }
.policy-main strong { color:var(--ink); font-weight:650; }
.policy-main a { color:var(--blue); overflow-wrap:anywhere; }
.policy-facts { display:grid; gap:20px; margin:24px 0; }
.policy-fact { border:1px solid var(--line); padding:23px; }
.policy-fact h3 { margin-top:0; }
.policy-fact p { margin-top:9px; }
.policy-contact { margin-top:25px; padding:27px; background:var(--wash); }
.policy-contact .button { margin-top:20px; color:white; text-decoration:none; }
.policy-main code { font-family:var(--body); font-size:.9em; overflow-wrap:anywhere; }
@media(max-width:1100px) {
  .cookie-banner-inner { grid-template-columns:1fr; gap:17px; }
  .cookie-copy p { max-width:850px; }
  .policy-layout { grid-template-columns:220px minmax(0,1fr); gap:42px; }
}
@media(max-width:760px) {
  .policy-header .header-inner { min-height:88px; flex-wrap:nowrap; gap:20px; }
  .policy-header-links { font-size:13px; gap:0; }
  .policy-header-links .button { display:none; }
  .policy-hero { padding-block:42px 36px; }
  .policy-lead { font-size:16px; }
  .policy-layout { grid-template-columns:1fr; gap:36px; padding-block:36px 60px; }
  .policy-toc { position:static; }
  .policy-toc-links { display:grid; grid-template-columns:1fr 1fr; gap:0 20px; }
  .policy-toc .cookie-button { width:auto; }
  .policy-summary { padding:22px; }
  .policy-section h2 { font-size:30px; }
  .cookie-banner-inner { width:calc(100% - 40px); padding-block:18px; }
  .cookie-copy h2 { font-size:24px; }
  .cookie-copy p { font-size:16px; line-height:1.65; }
  .cookie-actions { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
  .cookie-actions button:last-child { grid-column:1/-1; }
  .cookie-button { padding:11px 10px; font-size:13px; }
}
@media(max-width:400px) {
  .cookie-banner-inner { width:calc(100% - 32px); }
  .cookie-dialog { padding:20px; }
  .cookie-dialog h2 { font-size:29px; }
  .cookie-dialog-actions { grid-template-columns:1fr; gap:10px; }
  .policy-toc-links { grid-template-columns:1fr; }
  .policy-fact,.policy-contact { padding:20px; }
}
@media(prefers-reduced-motion:reduce) { .cookie-button { transition:none; } }
@media print { body { padding-bottom:0; } .cookie-banner,.cookie-dialog,.footer-privacy button,.policy-toc { display:none!important; } .policy-layout { display:block; } .policy-hero { padding-block:20px; } }
