/* Kagan Blue Card EU Self-Check — gescopte Styles.
   KEINE Google-Fonts: 'Newsreader' & 'IBM Plex Sans' kommen aus der theme-eigenen
   assets/css/fonts.css (global im Frontend vorhanden). Dieses Plugin laedt keine Schriften. */

.kagan-bluecard{
  --ink-900:#091428; --ink-700:#1A2C4A; --ink-500:#475569; --ink-400:#94A3B8;
  --surface:#FFFFFF; --surface-alt:#F8FAFC; --paper:#FAF8F3;
  --brass:#B8884F; --brass-deep:#8E6831;
  --line:rgba(9,20,40,.10); --line-soft:rgba(9,20,40,.06);
  --serif:'Newsreader','Times New Roman',serif;
  --sans:'IBM Plex Sans',system-ui,-apple-system,sans-serif;
  --shadow-card:0 1px 2px rgba(9,20,40,.04),0 4px 16px rgba(9,20,40,.06);
  --ease:cubic-bezier(.4,0,.2,1);
  font-family:var(--sans); color:var(--ink-900); line-height:1.65;
  -webkit-font-smoothing:antialiased;
  max-width:660px; margin-left:auto; margin-right:auto;
  margin-block:clamp(2rem,5vw,3.5rem);
}
.kagan-bluecard *,.kagan-bluecard *::before,.kagan-bluecard *::after{box-sizing:border-box;margin:0;padding:0;}
.kagan-bluecard .tool{ width:100%; max-width:660px; background:var(--surface); border:1px solid var(--line);
  border-radius:2px; box-shadow:var(--shadow-card); overflow:hidden; }
.kagan-bluecard .tool-head{ background:var(--ink-900); color:#fff; padding:1.6rem clamp(1.25rem,4vw,2.25rem) 1.5rem;
  display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.kagan-bluecard .eyebrow{ font-size:.66rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--brass); margin-bottom:.55rem; }
.kagan-bluecard .tool-head h1{ font-family:var(--serif); font-weight:400; font-size:clamp(1.5rem,4.5vw,2rem); letter-spacing:-.015em; line-height:1.12; color:#fff; }
.kagan-bluecard .lang{ display:flex; gap:.15rem; flex-shrink:0; }
.kagan-bluecard .lang button{ font-family:var(--sans); font-size:.72rem; font-weight:600; letter-spacing:.06em; color:rgba(255,255,255,.55);
  background:none; border:none; cursor:pointer; padding:.25rem .4rem; border-radius:2px; transition:color var(--ease) .15s; }
.kagan-bluecard .lang button[aria-pressed="true"]{ color:#fff; border-bottom:1.5px solid var(--brass); }
.kagan-bluecard .lang button:hover{ color:#fff; }
.kagan-bluecard .scope{ background:var(--paper); border-bottom:1px solid var(--line-soft); padding:.85rem clamp(1.25rem,4vw,2.25rem);
  font-size:.78rem; color:var(--ink-500); line-height:1.5; }
.kagan-bluecard .warn{ background:#FBF1E6; border-bottom:1px solid var(--brass); color:var(--brass-deep); padding:.85rem clamp(1.25rem,4vw,2.25rem);
  font-size:.82rem; font-weight:500; display:none; }
.kagan-bluecard .progress{ display:flex; gap:.4rem; padding:1.1rem clamp(1.25rem,4vw,2.25rem) 0; }
.kagan-bluecard .progress span{ height:3px; flex:1; background:var(--line); border-radius:2px; transition:background var(--ease) .3s; }
.kagan-bluecard .progress span.done{ background:var(--brass); }
.kagan-bluecard .progress span.active{ background:var(--ink-700); }
.kagan-bluecard .tool-body{ padding:1.5rem clamp(1.25rem,4vw,2.25rem) clamp(1.5rem,4vw,2.25rem); }
.kagan-bluecard .step-counter{ font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-500); margin-bottom:.6rem; }
.kagan-bluecard .q{ font-family:var(--serif); font-weight:400; font-size:clamp(1.3rem,3.6vw,1.7rem); line-height:1.22; letter-spacing:-.012em; margin-bottom:.5rem; }
.kagan-bluecard .q-hint{ color:var(--ink-500); font-size:.92rem; margin-bottom:1.35rem; max-width:52ch; }
.kagan-bluecard .options{ display:flex; flex-direction:column; gap:.6rem; }
.kagan-bluecard .opt{ text-align:left; width:100%; background:var(--surface); border:1px solid var(--line); border-radius:2px;
  padding:.95rem 1.1rem; font-family:var(--sans); font-size:.98rem; color:var(--ink-900); cursor:pointer; line-height:1.4;
  transition:border-color .15s var(--ease), background .15s var(--ease), transform .1s var(--ease);
  display:flex; align-items:center; gap:.75rem; }
.kagan-bluecard .opt .mark{ width:18px; height:18px; border:1.5px solid var(--ink-400); border-radius:50%; flex-shrink:0; transition:all .15s var(--ease); }
.kagan-bluecard .opt small{ display:block; color:var(--ink-500); font-size:.82rem; margin-top:.15rem; }
.kagan-bluecard .opt:hover{ border-color:var(--brass); background:var(--paper); }
.kagan-bluecard .opt:hover .mark{ border-color:var(--brass); box-shadow:inset 0 0 0 4px var(--brass); }
.kagan-bluecard .opt:active{ transform:scale(.992); }
.kagan-bluecard .opt:focus-visible{ outline:2px solid var(--ink-700); outline-offset:3px; }
.kagan-bluecard .back{ margin-top:1.4rem; background:none; border:none; cursor:pointer; font-family:var(--sans); font-size:.84rem;
  color:var(--ink-500); display:inline-flex; align-items:center; gap:.35rem; padding:.2rem 0; }
.kagan-bluecard .back:hover{ color:var(--ink-900); }
.kagan-bluecard .back:focus-visible{ outline:2px solid var(--ink-700); outline-offset:3px; }
.kagan-bluecard .result{ border-left:3px solid var(--brass); padding-left:1.25rem; }
.kagan-bluecard .result.neg{ border-left-color:var(--ink-400); }
.kagan-bluecard .result .verdict{ font-family:var(--serif); font-weight:400; font-size:clamp(1.35rem,3.6vw,1.8rem); line-height:1.2; letter-spacing:-.012em; margin-bottom:.7rem; }
.kagan-bluecard .result p{ color:var(--ink-500); font-size:.96rem; margin-bottom:.9rem; }
.kagan-bluecard .result p strong{ color:var(--ink-900); font-weight:600; }
.kagan-bluecard .panel{ background:var(--surface-alt); border:1px solid var(--line); border-radius:2px; padding:1rem 1.1rem; margin:1rem 0; }
.kagan-bluecard .panel .panel-label{ font-size:.66rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--brass-deep); margin-bottom:.4rem; }
.kagan-bluecard .panel p{ margin:0; color:var(--ink-700); font-size:.9rem; }
.kagan-bluecard .resume{ margin:1.1rem 0; }
.kagan-bluecard .resume-intro{ font-size:.9rem; color:var(--ink-900); font-weight:500; margin-bottom:.6rem; display:flex; gap:.55rem; align-items:flex-start; }
.kagan-bluecard .resume-intro svg{ flex-shrink:0; margin-top:.15rem; color:var(--brass); }
.kagan-bluecard .resume ul,.kagan-bluecard .neg-list ul{ list-style:none; display:flex; flex-direction:column; gap:.5rem; }
.kagan-bluecard .resume li{ position:relative; padding-left:1.1rem; font-size:.9rem; color:var(--ink-500); line-height:1.45; }
.kagan-bluecard .resume li::before{ content:""; position:absolute; left:0; top:.55em; width:5px; height:5px; background:var(--brass); border-radius:50%; }
.kagan-bluecard .neg-list{ margin:1rem 0; }
.kagan-bluecard .neg-intro{ font-size:.9rem; color:var(--ink-900); font-weight:500; margin-bottom:.6rem; }
.kagan-bluecard .neg-list li{ position:relative; padding-left:1.1rem; font-size:.9rem; color:var(--ink-500); line-height:1.45; }
.kagan-bluecard .neg-list li::before{ content:"\2013"; position:absolute; left:0; top:-.05em; color:var(--ink-400); }
.kagan-bluecard .ba-note{ font-size:.86rem; color:var(--ink-500); background:var(--paper); border:1px solid var(--line-soft); border-radius:2px; padding:.8rem 1rem; margin:.9rem 0; line-height:1.5; }
.kagan-bluecard .cta{ display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:0 1.75rem; margin-top:.6rem;
  background:var(--ink-900); color:#fff; border:1px solid var(--ink-900); border-radius:2px; font-family:var(--sans);
  font-size:.9rem; font-weight:500; letter-spacing:.02em; cursor:pointer; text-decoration:none; transition:opacity .15s var(--ease); }
.kagan-bluecard .cta:hover{ opacity:.85; }
.kagan-bluecard .cta:focus-visible{ outline:2px solid var(--brass); outline-offset:3px; }
.kagan-bluecard .anwalt-hinweis{ font-size:.78rem; color:var(--ink-500); margin-top:1.1rem; line-height:1.55; }
.kagan-bluecard .anwalt-hinweis a{ color:var(--ink-500); text-decoration:underline; text-underline-offset:2px; }
.kagan-bluecard .restart{ display:block; margin-top:1rem; background:none; border:none; cursor:pointer; font-size:.82rem; color:var(--ink-500); font-family:var(--sans); text-decoration:underline; text-underline-offset:3px; }
.kagan-bluecard .restart:hover{ color:var(--ink-900); }
.kagan-bluecard .disclaimer{ font-size:.74rem; color:var(--ink-500); line-height:1.55; padding:1rem clamp(1.25rem,4vw,2.25rem); border-top:1px solid var(--line-soft); }
.kagan-bluecard .disclaimer .brandline{ color:var(--ink-500); font-weight:500; display:block; margin-top:.5rem; }
.kagan-bluecard .disclaimer .brandline a{ color:var(--ink-500); }
.kagan-bluecard .fade{ animation:kbc-fade .35s var(--ease); }
@keyframes kbc-fade{ from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:none;} }
@media (prefers-reduced-motion:reduce){ .kagan-bluecard .fade{animation:none;} .kagan-bluecard *{transition:none!important;} }
