/* Cookie consent: banner + customise panel. Reusable on every page. */
.cc{position:fixed;left:20px;bottom:20px;z-index:2000;width:min(460px,calc(100% - 32px));padding:24px 24px 18px;border-radius:18px;background:rgba(10,14,26,.94);border:1px solid rgba(185,220,255,.16);box-shadow:0 30px 80px -20px rgba(0,0,0,.85),0 0 60px -20px rgba(47,143,255,.35);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);color:#f3f2ee;font-family:'Manrope',system-ui,sans-serif;opacity:0;transform:translateY(24px) scale(.98);transition:opacity .45s cubic-bezier(.16,1,.3,1),transform .45s cubic-bezier(.16,1,.3,1)}
.cc.show{opacity:1;transform:none}
.cc[hidden]{display:none}
.cc h2{margin:0 0 10px;font-size:19px;font-weight:800;letter-spacing:-.02em;display:flex;align-items:center;gap:10px}
.cc h2 svg{width:22px;height:22px;color:#57a6ff;flex:none}
.cc p{margin:0;color:#c5cddd;font-size:14px;line-height:1.65}
.cc p a{color:#9fcbff}
.cc-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px}
.cc-btn{font:inherit;font-size:14px;font-weight:700;padding:12px 10px;border-radius:12px;cursor:pointer;border:1px solid transparent;transition:transform .2s,box-shadow .25s,background .25s,border-color .25s}
.cc-btn:hover{transform:translateY(-1px)}
.cc-btn:focus-visible{outline:2px solid #57a6ff;outline-offset:3px}
.cc-ghost{background:transparent;color:#f3f2ee;border-color:rgba(243,242,238,.35)}
.cc-ghost:hover{border-color:#57a6ff}
.cc-solid{background:linear-gradient(110deg,#2f8fff,#57a6ff);color:#03101f;box-shadow:0 0 22px rgba(47,143,255,.35)}
.cc-solid:hover{box-shadow:0 0 34px rgba(47,143,255,.6)}
.cc-foot{margin-top:14px;text-align:center;font-size:11.5px;color:#7f88a3}
/* customise view */
.cc-prefs{display:none;margin-top:16px;border-top:1px solid rgba(243,242,238,.1)}
.cc.customising .cc-prefs{display:block}
.cc.customising .cc-row.main{display:none}
.cc-cat{display:flex;gap:14px;align-items:flex-start;justify-content:space-between;padding:14px 0;border-bottom:1px solid rgba(243,242,238,.08)}
.cc-cat b{display:block;font-size:14.5px;margin-bottom:3px}
.cc-cat span{display:block;font-size:12.5px;color:#9ea6bd;line-height:1.5}
.cc-switch{position:relative;flex:none;width:44px;height:26px;margin-top:2px}
.cc-switch input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;z-index:1}
.cc-switch i{position:absolute;inset:0;border-radius:100px;background:rgba(243,242,238,.18);transition:background .25s}
.cc-switch i::after{content:'';position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .25s cubic-bezier(.16,1,.3,1)}
.cc-switch input:checked+i{background:#2f8fff}
.cc-switch input:checked+i::after{transform:translateX(18px)}
.cc-switch input:disabled+i{opacity:.55}
.cc-switch input:focus-visible+i{outline:2px solid #57a6ff;outline-offset:3px}
.cc-row.prefs{grid-template-columns:1fr 1fr;margin-top:16px}
/* map placeholder until functional cookies are allowed */
.cc-map-hold{display:grid;place-items:center;gap:10px;height:220px;padding:20px;text-align:center;background:#070b16;color:#9ea6bd;font-size:13.5px}
.cc-map-hold button{font:inherit;font-weight:700;font-size:13px;padding:9px 16px;border-radius:100px;border:1px solid rgba(243,242,238,.25);background:rgba(255,255,255,.04);color:#f3f2ee;cursor:pointer}
/* slim bar: the first view stays low and out of the way of the hero film */
.cc:not(.customising){left:50%;translate:-50% 0;bottom:14px;width:min(1080px,calc(100% - 24px));display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:22px;padding:12px 12px 12px 20px;border-radius:16px;background:rgba(10,14,26,.82)}
.cc:not(.customising) h2{font-size:14.5px;margin:0 0 2px;gap:8px}
.cc:not(.customising) h2 svg{width:17px;height:17px}
.cc:not(.customising) p{font-size:12.5px;line-height:1.45}
.cc:not(.customising) .cc-row.main{display:flex;margin-top:0;gap:8px}
.cc:not(.customising) .cc-btn{padding:10px 18px;font-size:13px;white-space:nowrap}
.cc:not(.customising) .cc-foot{display:none}
@media (max-width:820px){
  .cc:not(.customising){grid-template-columns:1fr;gap:12px;padding:14px}
  .cc:not(.customising) .cc-row.main .cc-btn{flex:1;padding:10px 8px}
}
@media (max-width:520px){.cc.customising{left:12px;bottom:12px;width:calc(100% - 24px);padding:20px 18px 14px;max-height:calc(100svh - 24px);overflow:auto}}
@media (prefers-reduced-motion:reduce){.cc{transition:none}}
