/* ============================================================
   COOKIE CONSENT · Corso 12 — on-brand, Consent Mode v2
   ============================================================ */
.cc-hidden{ display:none !important; }

/* backdrop */
.cc-backdrop{
  position:fixed; inset:0; z-index:1000; background:rgba(20,17,14,.55);
  backdrop-filter:blur(3px); opacity:0; animation:ccFade .5s var(--ease) forwards;
}
@keyframes ccFade{ to{ opacity:1; } }

/* ---- bottom banner ---- */
.cc-banner{
  position:fixed; left:50%; bottom:clamp(1rem,3vw,2.2rem); transform:translateX(-50%);
  z-index:1001; width:min(920px, calc(100% - 2rem));
  background:var(--ivory); color:var(--ink);
  border:1px solid var(--line); box-shadow:0 30px 70px -25px rgba(20,17,14,.5);
  padding:clamp(1.5rem,3vw,2.4rem); display:grid; gap:1.2rem;
  animation:ccUp .6s var(--ease) both;
}
@keyframes ccUp{ from{ opacity:0; transform:translate(-50%,24px);} to{ opacity:1; transform:translateX(-50%);} }
.cc-banner__head{ display:flex; align-items:center; gap:.9rem; }
.cc-banner__mark{ font-family:var(--f-display); font-weight:600; font-size:1.15rem; letter-spacing:.06em; color:var(--gold-deep); white-space:nowrap; }
.cc-banner__rule{ flex:1; height:1px; background:var(--line); }
.cc-title{ font-family:var(--f-display); font-weight:500; text-transform:uppercase; letter-spacing:.05em; font-size:1.4rem; line-height:1.1; }
.cc-text{ font-family:var(--f-body); font-size:1.05rem; line-height:1.6; color:var(--ink-soft); max-width:62ch; }
.cc-text a{ color:var(--gold-deep); text-decoration:underline; text-underline-offset:3px; }
.cc-actions{ display:flex; flex-wrap:wrap; gap:.7rem; align-items:center; }
.cc-btn{
  font-family:var(--f-ui); font-weight:500; font-size:.72rem; text-transform:uppercase; letter-spacing:.2em;
  padding:.95em 1.9em; border:1px solid var(--ink); background:transparent; color:var(--ink);
  transition:all .45s var(--ease); cursor:pointer;
}
.cc-btn:hover{ background:var(--ink); color:#fff; }
.cc-btn--gold{ background:var(--gold); border-color:var(--gold); color:#fff; }
.cc-btn--gold:hover{ background:var(--gold-deep); border-color:var(--gold-deep); }
.cc-btn--link{ border:none; padding:.95em .4em; letter-spacing:.16em; color:var(--ink-soft); }
.cc-btn--link:hover{ background:none; color:var(--gold-deep); text-decoration:underline; text-underline-offset:4px; }
.cc-actions--right{ margin-left:auto; }

/* ---- preferences modal ---- */
.cc-modal{
  position:fixed; left:50%; top:50%; transform:translate(-50%,-50%); z-index:1002;
  width:min(560px, calc(100% - 2rem)); max-height:88vh; overflow:auto;
  background:var(--ivory); border:1px solid var(--line); box-shadow:0 40px 90px -30px rgba(20,17,14,.6);
  padding:clamp(1.6rem,3vw,2.6rem); animation:ccPop .5s var(--ease) both;
}
@keyframes ccPop{ from{ opacity:0; transform:translate(-50%,-46%);} to{ opacity:1; transform:translate(-50%,-50%);} }
.cc-modal__eyebrow{ font-family:var(--f-ui); font-size:.66rem; text-transform:uppercase; letter-spacing:.32em; color:var(--gold-deep); margin-bottom:.7rem; }
.cc-modal__title{ font-family:var(--f-display); font-weight:500; text-transform:uppercase; letter-spacing:.04em; font-size:1.8rem; margin-bottom:.8rem; }
.cc-modal__intro{ font-family:var(--f-body); font-size:1.05rem; color:var(--ink-soft); margin-bottom:1.6rem; }
.cc-cat{ border-top:1px solid var(--line); padding:1.2rem 0; display:grid; grid-template-columns:1fr auto; gap:.4rem 1rem; align-items:center; }
.cc-cat__name{ font-family:var(--f-ui); font-weight:500; font-size:.86rem; letter-spacing:.06em; text-transform:uppercase; }
.cc-cat__desc{ grid-column:1/2; font-family:var(--f-body); font-size:1rem; color:var(--ink-soft); }
/* toggle */
.cc-switch{ position:relative; width:46px; height:24px; }
.cc-switch input{ position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; }
.cc-switch__track{ position:absolute; inset:0; background:#cfc6b6; border-radius:999px; transition:background .35s var(--ease); }
.cc-switch__track::after{ content:""; position:absolute; top:3px; left:3px; width:18px; height:18px; background:#fff; border-radius:50%; transition:transform .35s var(--ease); box-shadow:0 1px 3px rgba(0,0,0,.25); }
.cc-switch input:checked + .cc-switch__track{ background:var(--gold); }
.cc-switch input:checked + .cc-switch__track::after{ transform:translateX(22px); }
.cc-switch input:disabled + .cc-switch__track{ background:var(--gold-deep); opacity:.55; cursor:not-allowed; }
.cc-modal__actions{ display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.8rem; }
.cc-modal__actions .cc-btn{ flex:1; min-width:140px; }

/* ---- floating reopen button ---- */
.cc-fab{
  position:fixed; left:1.2rem; bottom:1.2rem; z-index:900;
  width:46px; height:46px; border-radius:50%; background:var(--ink); color:#fff;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  box-shadow:0 10px 30px -8px rgba(20,17,14,.6); transition:transform .4s var(--ease), background .4s;
}
.cc-fab:hover{ transform:translateY(-3px); background:var(--gold-deep); }
.cc-fab svg{ width:22px; height:22px; }

@media (max-width:560px){
  .cc-actions{ flex-direction:column; align-items:stretch; }
  .cc-actions--right{ margin-left:0; }
  .cc-btn{ width:100%; }
  .cc-modal__actions{ flex-direction:column; }
}
