.cookie-banner {position:fixed; z-index:40; inset:auto 20px 20px; max-width:680px; margin-left:auto; border:1px solid #bfcbbd; border-radius:18px; background:#fffefa; box-shadow:0 12px 60px #173d3328; padding:24px; color:var(--ink);}
.cookie-banner h2 {font:700 22px/1.25 var(--sans); letter-spacing:-.02em; margin:0 0 10px;}
.cookie-banner p {font-size:15px; line-height:1.6; color:#435a4b; margin:8px 0;}
.cookie-banner a,.privacy-links a,.legal-page a {text-decoration:underline; text-underline-offset:3px;}
.cookie-actions {display:flex; flex-wrap:wrap; gap:10px; margin-top:18px;}
.cookie-action {flex:1 1 160px; min-height:48px; padding:12px 16px; border:1px solid var(--ink); border-radius:10px; background:var(--ink); color:#fffefa; font:600 15px/1.35 var(--sans); text-align:center;}
.cookie-action:hover {background:#275445;}
.cookie-secondary {background:#fffefa; color:var(--ink);}
.cookie-secondary:hover {background:#edf0e7;}
.cookie-banner .cookie-settings-link {display:block; margin-top:10px; background:none; border:0; padding:8px 0; min-height:44px; font-size:14px; text-decoration:underline;}
#cookie-dialog {max-width:580px;}
#cookie-dialog .dialog-inner {padding:28px;}
#cookie-dialog h2 {font:700 28px/1.2 var(--sans); letter-spacing:-.02em;}
#cookie-dialog p {font-size:16px; line-height:1.6; color:#435a4b; margin:14px 0;}
.cookie-category {padding:18px 0; border-top:1px solid var(--line);}
.cookie-category>div,.cookie-category label {display:flex; justify-content:space-between; align-items:center; gap:16px; font-size:16px; font-weight:600;}
.cookie-category small {font-size:13px; font-weight:400; white-space:nowrap;}
.cookie-category input {width:24px; height:24px; accent-color:var(--ink); flex-shrink:0;}
#cookie-dialog .cookie-category p {font-size:14px; margin:8px 0 0;}
.privacy-links {display:flex; flex-wrap:wrap; gap:8px 18px; font-size:14px; margin-top:16px;}
.privacy-links a {min-height:36px; display:inline-flex; align-items:center;}
.site-footer .footer-privacy {display:flex; gap:16px; flex-wrap:wrap;}
.mobile-flow .mobile-footer {gap:0 14px;}
.mobile-flow .mobile-footer .text-link {font-size:14px;}
.sr-status {position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%);}
.legal-page {max-width:800px; margin:0 auto; padding:32px 24px 70px; color:var(--ink);}
.legal-page header {display:flex; flex-wrap:wrap; gap:20px; justify-content:space-between; padding-bottom:36px; font-size:14px;}
.legal-page h1 {font:500 clamp(34px,7vw,48px)/1.12 var(--serif); letter-spacing:-.035em; margin:12px 0 18px;}
.legal-page h2 {font:600 23px/1.3 var(--sans); margin:34px 0 12px;}
.legal-page p,.legal-page li {font-size:16px; line-height:1.75; margin:12px 0; color:#435a4b;}
.legal-page .legal-date {font-size:14px;}
.legal-page .legal-note {border-left:3px solid var(--ink); padding:12px 18px; background:#e8eddf;}
.legal-page table {width:100%; border-collapse:collapse; margin:24px 0; font-size:15px;}
.legal-page th,.legal-page td {text-align:left; vertical-align:top; padding:14px 10px; border-bottom:1px solid var(--line); overflow-wrap:anywhere;}
.legal-page footer {border-top:1px solid var(--line); margin-top:36px; padding-top:24px;}
@media(max-width:600px) {
  .cookie-banner {inset:auto 12px max(12px,env(safe-area-inset-bottom)); padding:20px; max-height:calc(100dvh - 24px); overflow:auto;}
  .cookie-actions {flex-direction:column; gap:8px;}
  .cookie-action {flex:auto; width:100%;}
  #cookie-dialog .dialog-inner {padding:20px;}
  .legal-page {padding:24px 20px 48px;}
  .legal-page th,.legal-page td {padding:12px 6px; font-size:14px;}
}
