/* First-party consent UI; product colors and normal page flow preserve access to all content. */
.consent-banner[hidden]{display:none}.consent-banner{background:var(--cream);border-bottom:1px solid var(--line);padding:25px 0;color:var(--ink)}.consent-banner-inner{display:grid;grid-template-columns:1fr auto;align-items:center;gap:30px}.consent-banner h2{font:600 20px/1.3 var(--sans);letter-spacing:-.02em;margin-bottom:10px;color:var(--forest)}.consent-banner p{font-size:13px;line-height:1.75;max-width:760px}.consent-banner a,.consent-dialog a{color:var(--olive-dark);text-underline-offset:3px}.consent-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.consent-banner .consent-actions{max-width:370px}.consent-btn{background:var(--olive-dark);color:#fff;border:1px solid var(--olive-dark);border-radius:5px;padding:12px 16px;min-height:46px;font:600 12px/1.5 var(--sans);cursor:pointer;flex:1 1 auto;text-align:center;white-space:normal}.consent-btn:hover{background:var(--forest);border-color:var(--forest)}.consent-actions .consent-settings{flex-basis:100%;background:transparent;color:var(--olive-dark);border-color:var(--olive-dark)}.consent-btn:focus-visible,.consent-dialog a:focus-visible,.consent-dialog input:focus-visible{outline:3px solid var(--gold);outline-offset:4px}.consent-dialog{color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:10px;width:min(600px,calc(100% - 32px));max-height:85vh;max-height:85dvh;overflow:auto;padding:28px;box-shadow:0 12px 55px #1d241b38}.consent-dialog::backdrop{background:#18231390}.consent-dialog:not([open]){display:none}.consent-dialog h2{font:500 30px/1.2 var(--serif);letter-spacing:-.035em;margin:0 0 15px;color:var(--forest)}.consent-dialog h2:focus,.consent-banner h2:focus{outline:3px solid var(--gold);outline-offset:5px}.consent-dialog p{font-size:13px;line-height:1.75;margin-block:0 15px}.consent-dialog .consent-header{display:flex;align-items:flex-start;gap:15px;justify-content:space-between}.consent-close{flex:0 0 auto;background:transparent;color:var(--olive-dark);font-size:12px;padding:10px;border:1px solid var(--line);border-radius:4px;min-height:44px;cursor:pointer}.consent-close:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.consent-category{display:block;border-block-start:1px solid var(--line);padding:20px 0}.consent-category-top{display:flex;align-items:center;justify-content:space-between;gap:16px}.consent-category strong{font-size:16px;color:var(--forest)}.consent-category small{display:block;margin-top:8px;font-size:12px;line-height:1.75;color:var(--muted)}.consent-category input{appearance:auto;width:22px;height:22px;accent-color:var(--olive-dark);flex-shrink:0;margin:10px;cursor:pointer}.consent-category input:disabled{opacity:1;cursor:default}.consent-dialog .consent-withdrawal{padding:14px;background:var(--cream);font-size:12px;border-radius:5px;margin:6px 0 20px}.consent-dialog .consent-save{width:100%;margin-bottom:10px}.consent-dialog .consent-actions{display:grid;grid-template-columns:1fr 1fr}.consent-storage-table{width:100%;border-collapse:collapse;margin:20px 0;font-size:12px}.consent-storage-table th,.consent-storage-table td{text-align:left;vertical-align:top;padding:12px 8px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.consent-storage-table th{color:var(--forest);font-weight:600}.consent-storage-table code{font-size:11px;overflow-wrap:anywhere;word-break:break-word}.consent-table-wrap{width:100%;overflow-x:auto}.consent-noscript{font-size:12px;padding:16px 20px;background:var(--cream);color:var(--ink)}
@media(max-width:1050px){.consent-banner-inner{grid-template-columns:1fr;gap:18px}.consent-banner .consent-actions{max-width:none;display:grid;grid-template-columns:1fr 1fr auto}.consent-actions .consent-settings{flex-basis:auto}}
@media(max-width:600px){.consent-banner{padding-block:22px}.consent-banner h2{font-size:19px}.consent-banner p{font-size:12px}.consent-banner .consent-actions{grid-template-columns:1fr 1fr;gap:10px}.consent-banner .consent-settings{grid-column:1 / -1}.consent-btn{padding:12px 10px;font-size:12px}.consent-dialog{width:calc(100% - 24px);padding:20px;max-height:90vh;max-height:90dvh}.consent-dialog h2{font-size:25px}.consent-dialog p{font-size:12px}.consent-close{font-size:11px}.consent-dialog .consent-actions{gap:10px}.consent-storage-table{font-size:11px}.consent-storage-table th,.consent-storage-table td{padding:10px 5px}}
@media(prefers-reduced-motion:reduce){.consent-dialog{scroll-behavior:auto}}
@media print{.consent-banner,.consent-dialog,.consent-noscript,#consent-feedback{display:none!important}}

/* Initial choice is a native modal: inert background, veil and no background scrolling. */
html.consent-locked{overflow:hidden;scrollbar-gutter:stable}
html.consent-locked body{position:fixed;top:var(--vp-consent-top,0px);left:0;right:0;width:100%;overflow:hidden;overscroll-behavior:none}
.consent-banner{position:fixed;inset:0;margin:auto;width:min(600px,calc(100% - 32px));height:fit-content;max-height:85vh;max-height:85dvh;overflow:auto;overscroll-behavior:contain;padding:30px;border:1px solid var(--line);border-radius:10px;background:var(--paper);box-shadow:0 12px 55px #1d241b38}
.consent-banner:not([open]){display:none}
.consent-banner::backdrop,.consent-dialog::backdrop{background:#18231390;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.consent-banner .consent-banner-inner{width:100%;display:grid;grid-template-columns:1fr;gap:22px;margin:0}
.consent-banner h2{font:500 30px/1.2 var(--serif);letter-spacing:-.035em;margin-bottom:16px}
.consent-banner p{font-size:13px;line-height:1.8}
.consent-banner .consent-actions{display:grid;grid-template-columns:1fr 1fr;max-width:none;gap:10px}
.consent-banner .consent-settings{grid-column:1 / -1}
.consent-dialog{overscroll-behavior:contain}
@media(max-width:600px){.consent-banner{width:calc(100% - 24px);padding:22px;max-height:90vh;max-height:90dvh}.consent-banner h2{font-size:25px}.consent-banner p{font-size:12px}}
@media print{html.consent-locked{overflow:visible}html.consent-locked body{position:static;width:auto;overflow:visible}}
