:root { --consent-bg:#fffaf8; --consent-ink:#24181b; --consent-accent:#a74661; --consent-border:rgba(36,24,27,.18); }
.consent-banner { position:fixed; z-index:10000; left:1rem; right:1rem; bottom:1rem; max-width:1180px; margin:auto; padding:1.25rem; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:1.25rem; align-items:center; background:var(--consent-bg); color:var(--consent-ink); border:1px solid var(--consent-border); border-radius:18px; box-shadow:0 18px 60px rgba(36,24,27,.22); font-family:Jost,Arial,sans-serif; }
.consent-banner[hidden], .consent-modal-backdrop[hidden] { display:none !important; }
.consent-banner h2,.consent-modal h2 { margin:0 0 .45rem; font:400 clamp(1.35rem,3vw,1.8rem)/1.15 'Noto Serif Display',serif; }
.consent-banner p,.consent-modal p { margin:0; line-height:1.55; font-size:.92rem; }
.consent-actions { display:grid; grid-template-columns:repeat(3,minmax(135px,1fr)); gap:.6rem; }
.consent-actions button,.consent-modal-actions button,.consent-embed-load { min-height:46px; padding:.7rem 1rem; border:1.5px solid var(--consent-accent); border-radius:999px; background:transparent; color:var(--consent-accent); font:600 .82rem/1.2 Jost,Arial,sans-serif; cursor:pointer; }
.consent-actions button:hover,.consent-actions button:focus-visible,.consent-modal-actions button:hover,.consent-modal-actions button:focus-visible,.consent-embed-load:hover,.consent-embed-load:focus-visible { background:var(--consent-accent); color:white; outline:3px solid rgba(167,70,97,.2); outline-offset:2px; }
.consent-policy-links { display:flex; gap:1rem; flex-wrap:wrap; margin-top:.6rem; }
.consent-policy-links a { color:inherit; text-decoration:underline; text-underline-offset:3px; font-size:.82rem; }
.consent-modal-backdrop { position:fixed; z-index:10001; inset:0; display:grid; place-items:center; padding:1rem; background:rgba(20,12,14,.55); }
.consent-modal { width:min(680px,100%); max-height:calc(100vh - 2rem); overflow:auto; padding:1.4rem; border-radius:18px; background:var(--consent-bg); color:var(--consent-ink); box-shadow:0 24px 80px rgba(0,0,0,.3); font-family:Jost,Arial,sans-serif; }
.consent-modal-head { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.consent-modal-head button { width:42px; height:42px; border:1px solid var(--consent-border); border-radius:50%; background:transparent; font-size:1.6rem; cursor:pointer; }
.consent-category { display:grid; grid-template-columns:1fr auto; gap:1rem; align-items:center; padding:1rem 0; border-bottom:1px solid var(--consent-border); }
.consent-category strong { display:block; margin-bottom:.2rem; }
.consent-category p { color:#68585d; font-size:.86rem; }
.consent-always { color:#356246; font-size:.78rem; font-weight:600; }
.consent-switch { position:relative; width:48px; height:28px; flex:none; }
.consent-switch input { position:absolute; opacity:0; }
.consent-switch span { position:absolute; inset:0; border-radius:99px; background:#b9afb2; transition:.2s; cursor:pointer; }
.consent-switch span::after { content:''; position:absolute; width:22px; height:22px; top:3px; left:3px; border-radius:50%; background:white; transition:.2s; box-shadow:0 1px 4px rgba(0,0,0,.25); }
.consent-switch input:checked + span { background:var(--consent-accent); }
.consent-switch input:checked + span::after { transform:translateX(20px); }
.consent-switch input:focus-visible + span { outline:3px solid rgba(167,70,97,.25); outline-offset:2px; }
.consent-modal-actions { display:grid; grid-template-columns:repeat(3,1fr); gap:.6rem; margin-top:1.1rem; }
.consent-modal-open { overflow:hidden; }
.consent-embed { position:relative; min-height:300px; background:#efe8e5; }
.consent-embed iframe:not([src]) { display:none; }
.consent-embed-placeholder { position:absolute; inset:0; display:grid; place-content:center; justify-items:center; gap:1rem; padding:2rem; text-align:center; color:var(--consent-ink); }
.consent-embed.is-loaded .consent-embed-placeholder { display:none; }
.footer-legal { display:flex; gap:1rem; flex-wrap:wrap; margin-top:.8rem; font-size:.78rem; }
.footer-legal a,.footer-legal button { color:inherit; background:none; border:0; padding:0; text-decoration:underline; cursor:pointer; font:inherit; }
@media (max-width:900px) { .consent-banner { grid-template-columns:1fr; } .consent-actions { grid-template-columns:1fr; } }
@media (max-width:560px) {
  .consent-banner { left:.5rem; right:.5rem; bottom:.5rem; padding:.85rem; gap:.75rem; max-height:calc(100vh - 1rem); overflow:auto; }
  .consent-banner h2 { font-size:1.3rem; margin-bottom:.3rem; }
  .consent-banner p { font-size:.8rem; line-height:1.4; }
  .consent-policy-links { gap:.65rem; margin-top:.4rem; }
  .consent-policy-links a { font-size:.7rem; }
  .consent-actions { grid-template-columns:repeat(3,minmax(0,1fr)); gap:.35rem; }
  .consent-actions button { min-height:44px; padding:.5rem .2rem; font-size:.68rem; }
  .consent-modal-actions { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) { .consent-switch span,.consent-switch span::after { transition:none; } }
