@keyframes consent-fade{
  from{ opacity:0 } to{ opacity:1 }
}

/* ── Settings dialog (first-visit prompt + footer re-open) ───── */
.consent-dialog{
  position:fixed; inset:0; z-index:1001;
  background:rgba(15,15,15,0.65);
  display:flex; align-items:center; justify-content:center;
  padding:24px;
  font-family:var(--font-body); font-size:14px; line-height:1.55;
  animation:consent-fade 0.2s ease-out;
}
.consent-dialog[hidden]{ display:none }
.consent-dialog-inner{
  background:var(--bg); color:var(--text);
  border:1px solid var(--text);
  max-width:560px; width:100%;
  max-height:calc(100vh - 48px); overflow:auto;
  padding:32px clamp(20px, 4vw, 36px);
  box-shadow:0 24px 60px rgba(0,0,0,0.45);
  position:relative;
}
.consent-dialog-inner::before{
  content:''; position:absolute;
  top:0; left:0; right:0; height:4px;
  background:var(--accent);
}
.consent-dialog h2{
  font-family:var(--font-display); font-weight:700;
  font-size:24px; letter-spacing:0.03em;
  text-transform:uppercase; margin-bottom:10px;
  color:var(--text);
}
.consent-dialog > .consent-dialog-inner > p{
  color:var(--text-mid); margin-bottom:20px;
}
.consent-dialog > .consent-dialog-inner > p a{
  color:var(--text); text-decoration:underline;
  text-underline-offset:2px;
}
.consent-dialog > .consent-dialog-inner > p a:hover{ color:var(--accent) }
.consent-dialog-cat{
  border-top:1px solid var(--line-strong);
  padding:18px 0;
}
.consent-dialog-cat:last-of-type{ border-bottom:1px solid var(--line-strong) }
.consent-dialog-cat-head{
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; margin-bottom:6px;
}
.consent-dialog-cat-head h3{
  font-family:var(--font-display); font-weight:600;
  font-size:15px; letter-spacing:0.04em;
  text-transform:uppercase;
}
.consent-dialog-cat p{ color:var(--text-mid); margin:0 }
.consent-dialog-cat small{
  display:block; color:var(--text-light); margin-top:4px;
  font-family:var(--font-mono); font-size:11px;
}

/* Switch toggle — outlined (off) vs filled (on) */
.consent-switch{
  position:relative; display:inline-block;
  width:44px; height:24px; flex-shrink:0;
}
.consent-switch input{
  position:absolute; inset:0; opacity:0; cursor:pointer; margin:0;
  z-index:1;
}
.consent-switch-track{
  position:absolute; inset:0;
  background:transparent;
  border:1.5px solid var(--text);
  border-radius:24px;
  box-sizing:border-box;
  transition:background 0.15s;
}
.consent-switch-track::after{
  content:''; position:absolute;
  top:2px; left:2px; width:17px; height:17px;
  background:var(--text); border-radius:50%;
  transition:transform 0.15s, background 0.15s;
}
.consent-switch input:checked + .consent-switch-track{
  background:#ffffff;
}
.consent-switch input:checked + .consent-switch-track::after{
  background:#0f0f0f;
  transform:translateX(20px);
}
.consent-switch input:focus-visible + .consent-switch-track{
  outline:2px solid var(--accent); outline-offset:2px;
}

.consent-dialog-actions{
  display:flex; flex-wrap:wrap; gap:8px;
  margin-top:24px; justify-content:flex-end;
}
.consent-dialog-actions button{
  border:1px solid var(--text);
  background:transparent; color:var(--text);
  padding:11px 18px; font-family:var(--font-body); font-size:13px;
  font-weight:500; letter-spacing:0.04em;
  cursor:pointer;
  transition:background 0.15s, color 0.15s;
}
.consent-dialog-actions button:hover{
  background:var(--text); color:var(--bg);
}
.consent-dialog-actions .primary{
  background:var(--text); color:var(--bg);
}
.consent-dialog-actions .primary:hover{
  background:var(--accent); color:var(--text);
  border-color:var(--accent);
}

/* ── Blocked iframe placeholder ──────────────────────────────── */
.consent-frame{
  display:flex; align-items:center; justify-content:center;
  background:var(--surface); color:var(--text-mid);
  border:1px dashed var(--line-strong);
  font-family:var(--font-body); font-size:13px; line-height:1.5;
  padding:24px 20px; text-align:center;
  min-height:120px; width:100%;
}
.consent-frame[data-shape="video"]{ aspect-ratio:16/9; min-height:0 }
.consent-frame-msg{ max-width:420px }
.consent-frame-msg strong{
  display:block; font-family:var(--font-display);
  font-weight:600; font-size:14px; letter-spacing:0.06em;
  text-transform:uppercase; color:var(--text);
  margin-bottom:6px;
}
.consent-frame-msg p{ margin:0 0 12px; color:var(--text-mid) }
.consent-frame-msg button{
  border:1px solid var(--text); background:var(--text); color:var(--bg);
  padding:8px 14px; font-size:12px; letter-spacing:0.04em;
  cursor:pointer; transition:background 0.15s, color 0.15s;
}
.consent-frame-msg button:hover{
  background:transparent; color:var(--text);
}
.consent-frame-msg small{
  display:block; margin-top:10px;
  color:var(--text-light); font-family:var(--font-mono); font-size:10px;
}
.consent-frame-msg small a{ text-decoration:underline }

/* Footer link to reopen settings */
.consent-open-link{
  background:none; border:none; padding:0;
  color:inherit; font:inherit; cursor:pointer;
  text-decoration:none;
}
.consent-open-link:hover{ text-decoration:underline }
