/* compliance.css — disclosure, consent and legal-page styling.
   Loaded after site.css. Nothing here is generated: edit freely. */

/* ---------- generic block rhythm for hand-written pages ---------- */
.wbb1215-main .wbb1215-heading{
  --mb:calc(var(--scale) * clamp(4px, 0.6vw, 8px));
  --mt:calc(var(--scale) * clamp(28px, 4vw, 48px));
}
.wbb1215-main > .wbb1215-heading:first-child{--mt:0px}
.wbb1215-main .wbb1215-heading h3{--mt:calc(var(--scale) * clamp(16px, 2.4vw, 28px))}

/* ---------- top advertising-disclosure bar (above the fold) ---------- */
.ov-topdisc{position:relative;z-index:2}
.ov-topdisc strong{color:var(--c-ink);font-weight:600}
.ov-topdisc a{text-decoration:underline}

/* ---------- "partner link" labelling ---------- */
.ov-tag{
  display:inline-block;padding:.15em .6em;margin-right:.5em;
  border:1px solid var(--c-brand);border-radius:99px;
  font-size:.74em;font-weight:700;line-height:1.6;letter-spacing:.06em;
  text-transform:uppercase;color:var(--c-brand);white-space:nowrap;vertical-align:.08em;
}
.ov-note{
  margin:.6em 0 0;font-size:.82em;line-height:1.55;color:var(--c-muted);text-wrap:pretty;
}
.ov-note a{text-decoration:underline}
.ov-ext{font-size:.85em;opacity:.8;margin-left:.35em}

/* a disclosure panel used at the top of the article and beside each offer */
.ov-box{
  margin:0;padding:clamp(14px,2vw,20px);
  border:1px solid var(--c-line);border-left:3px solid var(--c-brand);
  border-radius:var(--radius);background:var(--c-soft);
  font-size:.92em;line-height:1.6;text-align:left;
}
.ov-box > :first-child{margin-top:0}
.ov-box > :last-child{margin-bottom:0}
.ov-box h2,.ov-box h3{
  margin:0 0 .45em;font-family:var(--f-body);font-size:1em;font-weight:700;
  letter-spacing:.02em;color:var(--c-ink);
}
.ov-box p{margin:0 0 .6em}
.ov-box a{text-decoration:underline}

/* ---------- figures ---------- */
.ov-fig{margin:0}
.ov-fig img{
  width:100%;height:auto;display:block;
  border:1px solid var(--c-line);border-radius:var(--radius);background:var(--c-surface);
}
.ov-fig figcaption{
  margin:.55em 0 0;font-size:.82em;line-height:1.5;color:var(--c-muted);text-wrap:pretty;
}

/* ---------- definition-style key/value list (legal notice) ---------- */
.ov-dl{margin:0;display:grid;grid-template-columns:minmax(9rem,auto) 1fr;gap:.45em 1.2em}
.ov-dl dt{font-weight:600;color:var(--c-muted)}
.ov-dl dd{margin:0}
@media (max-width:540px){
  .ov-dl{grid-template-columns:1fr;gap:.1em}
  .ov-dl dd{margin:0 0 .7em}
}

/* ---------- cookie table ---------- */
.ov-tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.ov-table{width:100%;border-collapse:collapse;font-size:.86em;min-width:34rem;text-align:left}
.ov-table caption{caption-side:top;text-align:left;padding-bottom:.5em;color:var(--c-muted);font-size:.95em}
.ov-table th,.ov-table td{padding:.6em .8em;border-bottom:1px solid var(--c-line);vertical-align:top}
.ov-table thead th{
  font-size:.82em;letter-spacing:.06em;text-transform:uppercase;color:var(--c-muted);
  border-bottom:1px solid var(--c-line);white-space:nowrap;
}
.ov-table tbody th{font-weight:600;color:var(--c-ink);white-space:nowrap}

/* ---------- consent banner: match the site's dark theme ---------- */
.wbb1215-pop[data-layout="cookie"] .wbb1215-pop-box{
  background:var(--c-surface);color:var(--c-ink);
  border:1px solid var(--c-line);border-radius:10px;
  box-shadow:0 18px 50px rgba(0,0,0,.55);
  width:min(560px,calc(100vw - 24px));margin:12px;
  max-height:calc(100dvh - 24px);overflow-y:auto;
}
.wbb1215-ck-h{color:var(--c-ink);font-family:var(--f-head);font-size:18px}
.wbb1215-ck-p{color:var(--c-muted);text-align:left;margin-bottom:18px}
.wbb1215-ck-p a,.wbb1215-ck-cd a{color:var(--c-brand);text-decoration:underline}
.wbb1215-ck-cn{color:var(--c-ink)}
.wbb1215-ck-cd{color:var(--c-muted);text-align:left}
.wbb1215-ck-swu{background:#4a5163}
.wbb1215-ck-act{flex-wrap:wrap;gap:10px}
.wbb1215-ck-group{flex-wrap:wrap;gap:10px}

/* Accept and Reject are the same size, weight and shape: refusing must be
   exactly as easy as consenting (GDPR Art. 7(3), EDPB Guidelines 03/2022). */
.ov-ck-main{
  min-width:132px;height:42px;padding:0 18px;border-radius:6px;border:1px solid transparent;
  font-size:14px;font-weight:600;letter-spacing:.01em;
}
.ov-ck-accept{background:var(--c-brand);color:#fff}
.ov-ck-accept:hover{filter:brightness(1.12)}
.ov-ck-reject{background:#3b4254;color:#fff}
.ov-ck-reject:hover{filter:brightness(1.2)}
.ov-ck-link{
  background:none;border:0;padding:0;color:var(--c-muted);
  font-size:14px;font-weight:500;text-decoration:underline;cursor:pointer;
}
.ov-ck-link:hover{color:var(--c-brand)}
@media (max-width:520px){
  .wbb1215-ck-act{flex-direction:column;align-items:stretch}
  .wbb1215-ck-group{flex-direction:column}
  .ov-ck-main{width:100%}
  .ov-ck-link{order:2;margin-top:4px}
}

/* ---------- chrome ---------- */
/* site.css already collapses the nav at 900px; just soften the link size. */
.wbb1215-nav-links{font-size:.86em;row-gap:6px}
.wbb1215-foot-links{margin-bottom:1.1em}
/* site.css styles .wbb1215-disc as a full-width top bar; in the footer it is
   just a paragraph, so drop the bar chrome. */
.wbb1215-foot .wbb1215-disc{
  background:none;border:0;padding:0;max-width:74ch;margin:0 auto .8em;
  font-size:.92em;line-height:1.6;
}
.ov-legalline{margin:0 0 .4em;opacity:.85}

/* ---------- accessibility ---------- */
:where(a,button,summary,input):focus-visible{
  outline:2px solid var(--c-brand);outline-offset:2px;border-radius:2px;
}
.ov-sr{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
.ov-skip{
  position:absolute;left:8px;top:-60px;z-index:100;
  padding:10px 16px;background:var(--c-brand);color:#fff;border-radius:0 0 6px 6px;
  transition:top .15s;
}
.ov-skip:focus{top:0;text-decoration:none}
