/* ==========================================================================
   Patcarlis · Produktstudio-System
   Verbindliche Spezifikation: docs/02-design-system.md
   Farben nur aus der Token-Liste. Radius nur aus der Radius-Skala.
   ========================================================================== */

@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400;font-display:swap;
  src:url("/assets/fonts/instrument-sans-400.woff2") format("woff2")}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:500;font-display:swap;
  src:url("/assets/fonts/instrument-sans-500.woff2") format("woff2")}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:600;font-display:swap;
  src:url("/assets/fonts/instrument-sans-600.woff2") format("woff2")}

:root{
  /* Farben — die vollstaendige zugelassene Liste */
  --ink:#000000;
  --paper:#FFFFFF;
  --silver:#F2F2F2;
  --mute-on-light:#5D5D5D;
  --mute-on-dark:#9B9B9B;
  --line-light:rgba(0,0,0,.14);
  --line-dark:rgba(255,255,255,.18);

  /* Radius-Skala */
  --r-0:0;
  --r-s:6px;
  --r-m:14px;
  --r-l:20px;
  --r-pill:999px;
  --r-circle:50%;

  /* Spacing */
  --s-2:8px; --s-3:16px; --s-4:24px; --s-5:32px;
  --s-6:48px; --s-7:64px; --s-8:80px; --s-9:120px;

  --sans:"Instrument Sans","Helvetica Neue",Helvetica,Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --ease:cubic-bezier(.2,.7,.2,1);
  --t-fast:120ms; --t-base:200ms;

  color-scheme:light dark;
}

*,*::before,*::after{box-sizing:border-box}

html{-webkit-text-size-adjust:100%}

body{
  margin:0;
  font-family:var(--sans);
  font-size:16px;
  line-height:1.45;
  background:var(--ink);
  color:var(--paper);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

img{max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline}
button{font:inherit;color:inherit}

:focus-visible{outline:2px solid currentColor;outline-offset:3px;border-radius:var(--r-s)}

.skip-link{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--paper);color:var(--ink);
  padding:12px 18px;border-radius:var(--r-0);font-weight:500;
}
.skip-link:focus{left:0}

.visually-hidden{
  position:absolute;width:1px;height:1px;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;
}

/* ==========================================================================
   Kopfzeile
   mix-blend-mode:difference laesst die Navigation ueber hellen und dunklen
   Panels gleichermassen lesbar bleiben, ohne Scroll-Logik.
   ========================================================================== */

header.top{
  position:fixed;top:0;left:0;right:0;z-index:20;
  display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);
  padding:22px 32px;
  mix-blend-mode:difference;color:var(--paper);
}
.wordmark{font-size:13px;font-weight:600;letter-spacing:.34em;padding-left:.34em;white-space:nowrap}
.wordmark:hover{text-decoration:none}
.nav{display:flex;gap:30px;font-size:14px;font-weight:500}
.nav a:hover{text-decoration:underline;text-underline-offset:4px}
.top .go{font-size:14px;font-weight:500;white-space:nowrap}
.mobile-nav-trigger{
  display:none;background:none;border:1px solid currentColor;
  border-radius:var(--r-pill);padding:7px 16px;font-size:13px;font-weight:500;cursor:pointer;
}
@media(max-width:860px){
  header.top{padding:16px 20px}
  .nav,.top .go{display:none}
  .mobile-nav-trigger{display:inline-block}
}

/* ==========================================================================
   Panels
   ========================================================================== */

.panel{
  padding:var(--s-9) var(--s-4) var(--s-8);
  text-align:center;
}
.panel.full{min-height:100svh;display:grid;grid-template-rows:auto 1fr auto;padding-top:108px;padding-bottom:40px}
.panel.dark{background:var(--ink);color:var(--paper)}
.panel.light{background:var(--paper);color:var(--ink)}
.panel.silver{background:var(--silver);color:var(--ink)}
.panel-inner{max-width:1180px;margin:0 auto;width:100%}
.panel.text-left,.panel.text-left .panel-inner{text-align:left}

h1,h2,h3,h4{margin:0;text-wrap:balance}
.panel h2{font-size:clamp(34px,5vw,60px);font-weight:500;letter-spacing:-.028em;line-height:1.03}
.panel h3{font-size:clamp(21px,2.4vw,26px);font-weight:500;letter-spacing:-.015em;line-height:1.2}

.sub{
  max-width:34em;margin:16px auto 0;
  font-size:clamp(16px,1.5vw,19px);line-height:1.5;
}
.panel.text-left .sub{margin-left:0}
.dark .sub{color:var(--mute-on-dark)}
.light .sub,.silver .sub{color:var(--mute-on-light)}

.section-eyebrow{
  font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  margin:0 0 18px;
}
.dark .section-eyebrow{color:var(--mute-on-dark)}
.light .section-eyebrow,.silver .section-eyebrow{color:var(--mute-on-light)}

/* Hero */
.hero h1{font-size:clamp(42px,7.6vw,104px);font-weight:500;letter-spacing:-.04em;line-height:.98}
.hero .sub{margin-top:22px}

/* ==========================================================================
   Buttons
   ========================================================================== */

.cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:var(--s-5)}
.panel.text-left .cta{justify-content:flex-start}

.btn{
  display:inline-flex;align-items:center;justify-content:center;
  height:48px;min-width:212px;padding:0 28px;
  border:1px solid transparent;border-radius:var(--r-pill);
  font-size:15px;font-weight:500;cursor:pointer;
  transition:background var(--t-base) var(--ease),color var(--t-base) var(--ease),border-color var(--t-base) var(--ease);
}
.btn:hover{text-decoration:none}
.dark .btn.primary{background:var(--paper);color:var(--ink)}
.dark .btn.primary:hover{background:var(--mute-on-dark)}
.dark .btn.secondary{border-color:var(--line-dark);color:var(--paper)}
.dark .btn.secondary:hover{border-color:var(--paper)}
.light .btn.primary,.silver .btn.primary{background:var(--ink);color:var(--paper)}
.light .btn.primary:hover,.silver .btn.primary:hover{background:var(--mute-on-light)}
.light .btn.secondary,.silver .btn.secondary{border-color:var(--line-light);color:var(--ink)}
.light .btn.secondary:hover,.silver .btn.secondary:hover{border-color:var(--ink)}

.action-primary{
  display:inline-flex;align-items:center;justify-content:center;
  height:48px;padding:0 28px;border:1px solid var(--ink);border-radius:var(--r-pill);
  background:var(--ink);color:var(--paper);font-size:15px;font-weight:500;cursor:pointer;
  transition:background var(--t-base) var(--ease);
}
.action-primary:hover{background:var(--mute-on-light);text-decoration:none}
.text-button{
  background:none;border:0;padding:12px 4px;font-size:15px;font-weight:500;
  cursor:pointer;text-decoration:underline;text-underline-offset:4px;
}
@media(max-width:560px){
  .btn,.action-primary{width:100%;min-width:0}
  .cta{flex-direction:column}
}

/* ==========================================================================
   Marken-Emblem im Hero
   ========================================================================== */

.stage{display:grid;place-items:center;padding:36px 0 28px}
.brand-scene{position:relative;isolation:isolate;display:grid;place-items:center;width:100%;min-height:280px}
.horizon{
  position:absolute;width:min(960px,88vw);height:1px;
  background:linear-gradient(90deg,transparent,var(--line-dark) 24%,var(--line-dark) 76%,transparent);
}
.brand-lockup{position:relative;display:grid;place-items:center;gap:20px}
.hero-emblem{display:block;width:clamp(140px,15vw,196px);height:auto;overflow:visible}
.hero-wordmark{font-size:12px;font-weight:600;letter-spacing:.42em;padding-left:.42em;color:var(--mute-on-dark)}

@keyframes brand-signal-in{from{opacity:0;transform:translate3d(-10px,-8px,0)}to{opacity:1;transform:none}}
@keyframes brand-frame-in{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}
.brand-frame{animation:brand-frame-in 900ms var(--ease) both}
.brand-signal-first{animation:brand-signal-in 1000ms var(--ease) 320ms both}
.brand-signal-second{animation:brand-signal-in 1000ms var(--ease) 520ms both}

/* ==========================================================================
   Die drei Luecken · Karten-Raster
   ========================================================================== */

.gap-grid,.work-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;
  margin-top:var(--s-6);text-align:left;
}
.gap-card,.work-card{
  display:flex;flex-direction:column;gap:10px;
  padding:30px;border-radius:var(--r-l);min-width:0;
}
.dark .gap-card,.dark .work-card{background:var(--paper);color:var(--ink)}
.light .gap-card,.light .work-card{background:var(--silver)}
.silver .gap-card,.silver .work-card{background:var(--paper)}
.gap-card .n,.work-card .n{
  font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  color:var(--mute-on-light);
}
.gap-card h3,.work-card h3{font-size:22px;font-weight:600;letter-spacing:-.015em;line-height:1.2}
.gap-card p,.work-card p{margin:0;color:var(--mute-on-light);font-size:15.5px;line-height:1.5}
.work-card .ex{
  margin-top:auto;padding-top:14px;border-top:1px solid var(--line-light);
  font-size:14px;color:var(--mute-on-light);
}
@media(max-width:900px){.gap-grid,.work-grid{grid-template-columns:1fr}}

/* ==========================================================================
   Branchen
   ========================================================================== */

.branchen-list{
  margin-top:var(--s-6);text-align:left;
  border-top:1px solid var(--line-light);
}
.dark .branchen-list{border-color:var(--line-dark)}
.branche-row{
  display:grid;grid-template-columns:minmax(190px,1fr) 2fr auto;
  gap:8px 28px;align-items:baseline;
  padding:22px 4px;border-bottom:1px solid var(--line-light);
  transition:padding-left var(--t-base) var(--ease);
}
.dark .branche-row{border-color:var(--line-dark)}
.branche-row:hover{padding-left:12px;text-decoration:none}
.branche-row b{font-size:19px;font-weight:600;letter-spacing:-.012em}
.branche-row .sys{
  display:block;margin-top:4px;
  font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
}
.branche-row p{margin:0;font-size:15.5px;line-height:1.5}
.branche-row .go{font-size:14px;font-weight:500;white-space:nowrap}
.light .branche-row .sys,.light .branche-row p,.silver .branche-row .sys,.silver .branche-row p{color:var(--mute-on-light)}
.dark .branche-row .sys,.dark .branche-row p{color:var(--mute-on-dark)}
@media(max-width:860px){
  .branche-row{grid-template-columns:1fr;gap:6px}
  .branche-row .go{margin-top:6px}
}

/* ==========================================================================
   Fallstudie
   ========================================================================== */

.case{
  display:grid;grid-template-columns:1fr 1fr;gap:var(--s-6);
  align-items:center;text-align:left;margin-top:var(--s-6);
}
.case-figures{display:flex;flex-wrap:wrap;gap:var(--s-6);margin-top:var(--s-5)}
.case-figures div{min-width:130px}
.case-figures strong{display:block;font-size:26px;font-weight:600;letter-spacing:-.02em}
.case-figures span{font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--mute-on-light)}
.dark .case-figures span{color:var(--mute-on-dark)}
@media(max-width:900px){.case{grid-template-columns:1fr}}

/* Stilisiertes Beispiel-Objekt */
.obj{
  width:100%;max-width:520px;padding:26px;border-radius:var(--r-m);
  background:var(--ink);color:var(--paper);border:1px solid var(--line-dark);
  text-align:left;
}
.light .obj,.silver .obj{background:var(--paper);color:var(--ink);border-color:var(--line-light)}
.obj .head{
  display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;
  font-size:10px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
  padding-bottom:14px;margin-bottom:16px;border-bottom:1px solid var(--line-dark);
}
.light .obj .head,.silver .obj .head{border-color:var(--line-light)}
.obj .head span:last-child{color:var(--mute-on-dark)}
.light .obj .head span:last-child,.silver .obj .head span:last-child{color:var(--mute-on-light)}
.obj .title{font-size:19px;font-weight:600;letter-spacing:-.012em;margin-bottom:16px}
.obj .week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:16px}
.obj .week .col{display:grid;gap:6px}
.obj .week b{font-size:10px;font-weight:500;letter-spacing:.1em;color:var(--mute-on-dark)}
.light .obj .week b,.silver .obj .week b{color:var(--mute-on-light)}
.obj .slot{display:block;height:22px;border-radius:var(--r-s);border:1px solid var(--line-dark)}
.light .obj .slot,.silver .obj .slot{border-color:var(--line-light)}
.obj .slot.busy{background:var(--mute-on-dark);border-color:transparent}
.obj .slot.hot{background:var(--paper);border-color:transparent}
.light .obj .slot.busy,.silver .obj .slot.busy{background:var(--mute-on-light)}
.light .obj .slot.hot,.silver .obj .slot.hot{background:var(--ink)}
.obj .foot{
  display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding-top:14px;border-top:1px solid var(--line-dark);font-size:13px;
}
.light .obj .foot,.silver .obj .foot{border-color:var(--line-light)}

/* ==========================================================================
   Vertrauenszeile
   ========================================================================== */

.trust{
  display:flex;flex-wrap:wrap;justify-content:center;gap:10px 14px;
  margin-top:var(--s-5);
}
.trust span{
  border:1px solid var(--line-light);border-radius:var(--r-pill);
  padding:7px 16px;font-size:13px;font-weight:500;
}
.dark .trust span{border-color:var(--line-dark)}
.panel.text-left .trust{justify-content:flex-start}

/* ==========================================================================
   Ansprechpartner
   ========================================================================== */

.person{
  display:flex;align-items:center;gap:var(--s-4);
  margin-top:var(--s-5);text-align:left;
}
.panel:not(.text-left) .person{justify-content:center}
.person img{
  width:92px;height:92px;flex:none;
  border-radius:var(--r-circle);object-fit:cover;
}
.person b{display:block;font-size:17px;font-weight:600;letter-spacing:-.012em}
.person span{font-size:14px;color:var(--mute-on-light)}
.dark .person span{color:var(--mute-on-dark)}
@media(max-width:520px){
  .person{flex-direction:column;align-items:flex-start;gap:var(--s-3)}
  .panel:not(.text-left) .person{align-items:center;text-align:center}
}

/* ==========================================================================
   Formulare
   ========================================================================== */

.form{display:grid;gap:var(--s-3);max-width:640px;margin:var(--s-6) auto 0;text-align:left}
.panel.text-left .form{margin-left:0}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3)}
@media(max-width:600px){.form-row{grid-template-columns:1fr}}

.field-label{display:grid;gap:7px;font-size:13px;font-weight:500}
.field-label input,.field-label textarea,.field-label select{
  font:inherit;font-size:16px;width:100%;
  padding:13px 15px;border-radius:var(--r-s);
  border:1px solid var(--line-light);background:var(--paper);color:var(--ink);
}
.dark .field-label input,.dark .field-label textarea,.dark .field-label select{
  border-color:var(--line-dark);background:var(--ink);color:var(--paper);
}
.field-label textarea{resize:vertical;min-height:120px}
.field-label input:focus-visible,.field-label textarea:focus-visible,.field-label select:focus-visible{
  outline:2px solid currentColor;outline-offset:1px;
}
.field-hint{font-size:13px;font-weight:400;color:var(--mute-on-light)}
.dark .field-hint{color:var(--mute-on-dark)}

.form-consent{display:flex;gap:11px;align-items:flex-start;font-size:14px;line-height:1.45}
.form-consent input{margin-top:3px;width:18px;height:18px;flex:none}
.form-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.form-error,.inline-success{
  border-radius:var(--r-m);padding:13px 16px;font-size:15px;
  border:1px solid currentColor;
}
.disclosure{font-size:13px;line-height:1.5;color:var(--mute-on-light);margin:0}
.dark .disclosure{color:var(--mute-on-dark)}
.noscript-note{padding:var(--s-4);text-align:center;background:var(--ink);color:var(--paper)}

/* Software-Check */
.choice{
  display:flex;align-items:center;gap:12px;
  padding:15px 17px;border:1px solid var(--line-light);border-radius:var(--r-m);
  cursor:pointer;font-size:15.5px;
}
.choice:has(input:checked){border-color:currentColor;border-width:1.5px}
.choice input{width:19px;height:19px;flex:none;border-radius:var(--r-circle);margin:0}
.choice span{flex:1}
fieldset{border:0;padding:0;margin:0;display:grid;gap:11px}
legend{font-size:19px;font-weight:600;letter-spacing:-.012em;margin-bottom:14px;padding:0}
.check-progress-label{font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--mute-on-light);margin:0 0 8px}
progress{width:100%;height:3px;border-radius:var(--r-0);margin-bottom:var(--s-4);accent-color:var(--ink)}
.check-footer{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);margin-top:var(--s-4)}
.check-result h3{font-size:24px;font-weight:600;letter-spacing:-.018em;margin-bottom:10px}
.check-result ol{padding-left:20px;margin:14px 0;display:grid;gap:8px}
.check-result .quoted{
  background:var(--silver);border-radius:var(--r-m);padding:14px 16px;
  font-size:14.5px;color:var(--mute-on-light);margin:14px 0;
}

/* ==========================================================================
   Dialoge
   ========================================================================== */

.studio-dialog{
  width:min(680px,calc(100vw - 32px));max-height:88vh;
  padding:34px 32px;border:0;border-radius:var(--r-l);
  background:var(--paper);color:var(--ink);overflow:auto;
}
.studio-dialog::backdrop{background:rgba(0,0,0,.6)}
.dialog-brand{font-size:11px;font-weight:600;letter-spacing:.34em;color:var(--mute-on-light);margin-bottom:14px}
.studio-dialog h2{font-size:clamp(26px,3.4vw,34px);font-weight:600;letter-spacing:-.022em;line-height:1.1;margin-bottom:12px}
.studio-dialog h2:focus-visible{outline-offset:6px}
.dialog-intro{color:var(--mute-on-light);margin:0 0 var(--s-4)}
.dialog-body ul{padding-left:20px;display:grid;gap:8px;margin:16px 0}
.dialog-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:var(--s-5)}
.close-button{
  position:absolute;top:16px;right:16px;
  width:36px;height:36px;display:grid;place-items:center;
  background:none;border:1px solid var(--line-light);border-radius:var(--r-circle);
  font-size:19px;line-height:1;cursor:pointer;
}
.close-button:hover{border-color:var(--ink)}
.mobile-links{display:grid;gap:2px;font-size:21px;font-weight:500}
.mobile-links a{padding:13px 0;border-bottom:1px solid var(--line-light)}

/* ==========================================================================
   Dokumentseiten · Impressum, Datenschutz, Blog, Branchen-Fliesstext
   ========================================================================== */

body.document-page{background:var(--paper);color:var(--ink)}
.document-main{
  max-width:820px;margin:0 auto;
  padding:calc(108px + var(--s-6)) var(--s-4) var(--s-8);
}
.document-main h1{font-size:clamp(34px,5vw,56px);font-weight:500;letter-spacing:-.03em;line-height:1.04;margin-bottom:var(--s-4)}
.document-main h2{font-size:clamp(22px,2.6vw,29px);font-weight:600;letter-spacing:-.018em;line-height:1.15;margin:var(--s-7) 0 var(--s-3)}
.document-main h3{font-size:19px;font-weight:600;letter-spacing:-.01em;margin:var(--s-5) 0 var(--s-2)}
.document-main p,.document-main li{font-size:16.5px;line-height:1.65;max-width:68ch}
.document-main ul,.document-main ol{padding-left:22px;display:grid;gap:7px}
.document-intro{font-size:clamp(17px,2vw,20px);line-height:1.5;color:var(--mute-on-light);max-width:60ch}
.document-main a{text-decoration:underline;text-underline-offset:3px}
.document-main code{font-family:var(--mono);font-size:.9em}

/* ==========================================================================
   Fusszeile
   ========================================================================== */

footer{
  background:var(--ink);color:var(--mute-on-dark);
  padding:var(--s-7) var(--s-5) var(--s-6);
  border-top:1px solid var(--line-dark);
  font-size:14px;
}
.footer-inner{
  max-width:1180px;margin:0 auto;
  display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:var(--s-6) var(--s-5);
  text-align:left;
}
.footer-brand .claim{color:var(--paper);font-size:17px;font-weight:500;letter-spacing:-.012em;max-width:20em;margin:14px 0 0}
.footer-brand .meta{margin:14px 0 0;font-size:13.5px}
.footer-col h2{font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--paper);margin-bottom:14px}
.footer-col ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.footer-bottom{
  max-width:1180px;margin:var(--s-6) auto 0;padding-top:var(--s-4);
  border-top:1px solid var(--line-dark);
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:13px;
}
@media(max-width:860px){.footer-inner{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.footer-inner{grid-template-columns:1fr}}

/* ==========================================================================
   Bewegung
   ========================================================================== */

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important;
  }
}

/* ==========================================================================
   Relaunch v2 · Bausteine
   Gleiche Tokens, gleiche Radius-Skala. Neue Klassen nur fuer neue Bloecke.
   ========================================================================== */

/* Hero-Hinweis auf den Check (Startseite) */
.hero-cue{
  display:inline-flex;align-items:center;gap:10px;
  font-size:14px;font-weight:500;color:var(--mute-on-dark);
  text-decoration:none;
}
.hero-cue::before{content:"";width:28px;height:1px;background:currentColor}
.hero-cue:hover{color:var(--paper);text-decoration:none}

/* Textlinks in Panels */
.text-link{text-decoration:underline;text-underline-offset:4px;font-weight:500}
.text-link-row{margin:var(--s-4) 0 0;font-size:17px}

/* Software-Check inline */
.check-inline{max-width:640px;margin-top:var(--s-6)}
.check-inline fieldset{margin-bottom:var(--s-5)}
.check-inline .choice{background:var(--paper)}
.silver .check-inline .choice{background:var(--paper)}
.check-inline .field-label{margin-top:4px}
.check-inline .form-error{margin:0 0 var(--s-4)}
.check-inline .action-primary{margin-top:4px}
.check-result{
  max-width:640px;margin-top:var(--s-6);padding:30px;
  border-radius:var(--r-l);background:var(--silver);color:var(--ink);
}
.silver .check-result{background:var(--paper)}
.check-result .section-eyebrow{margin-bottom:12px}
.check-result p{margin:0 0 12px;line-height:1.55}
.check-result .dialog-actions{margin-top:var(--s-4)}
.check-result .action-primary{text-decoration:none}
.check-note{max-width:640px;margin-top:var(--s-4)}

/* Sprint-Eckdaten */
.sprint-facts{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-5);
  margin:var(--s-6) 0 0;text-align:left;
}
.sprint-facts div{padding-top:20px;border-top:1px solid var(--line-dark);min-width:0}
.light .sprint-facts div,.silver .sprint-facts div{border-color:var(--line-light)}
.sprint-facts dt{
  font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  color:var(--mute-on-dark);
}
.light .sprint-facts dt,.silver .sprint-facts dt{color:var(--mute-on-light)}
.sprint-facts dd{margin:12px 0 0;font-size:clamp(26px,3.2vw,38px);font-weight:600;letter-spacing:-.02em;line-height:1.1}
.sprint-facts dd.text{font-size:17px;font-weight:400;letter-spacing:0;line-height:1.5}
.hero .sprint-facts{margin-bottom:var(--s-5)}
@media(max-width:760px){.sprint-facts{grid-template-columns:1fr;gap:var(--s-4)}}

/* Wochenplan */
.weeks{margin-top:var(--s-6);border-top:1px solid var(--line-light)}
.week{
  display:grid;grid-template-columns:160px 1fr;gap:var(--s-4) var(--s-6);
  padding:var(--s-5) 0;border-bottom:1px solid var(--line-light);
}
.week .when{
  font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  color:var(--mute-on-light);padding-top:6px;
}
.week h3{font-size:22px;font-weight:600;letter-spacing:-.015em;line-height:1.2;margin-bottom:10px}
.week p{margin:0 0 12px;max-width:64ch;line-height:1.55}
.week p:last-child{margin-bottom:0}
.week a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:700px){.week{grid-template-columns:1fr;gap:8px}}

/* Listen in Panels */
.list-title{margin-top:var(--s-7);font-size:22px;font-weight:600;letter-spacing:-.015em}
.plain-list{margin:var(--s-4) 0 0;padding:0;list-style:none;display:grid;gap:14px;max-width:64ch}
.plain-list li{padding-left:22px;position:relative;line-height:1.55}
.plain-list li::before{content:"";position:absolute;left:0;top:.7em;width:10px;height:1px;background:currentColor}
.panel .plain-list + .sub{margin-top:var(--s-5)}

/* Vier Karten */
.gap-grid.four,.work-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1100px){.gap-grid.four,.work-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.gap-grid.four,.work-grid.four{grid-template-columns:1fr}}

/* Screenshot-Rahmen. Bis echte Bildschirmfotos vorliegen: als OFFEN gekennzeichnet. */
.shot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4);margin-top:var(--s-6)}
.shot{margin:0;min-width:0}
.shot-frame{
  aspect-ratio:16/10;display:grid;place-content:center;gap:10px;
  padding:var(--s-4);text-align:center;
  border:1px solid var(--line-light);border-radius:var(--r-m);background:var(--paper);color:var(--ink);
}
.silver .shot-frame{background:var(--paper)}
.dark .shot-frame{background:var(--ink);color:var(--paper);border-color:var(--line-dark)}
.shot-label{font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--mute-on-light)}
.dark .shot-label{color:var(--mute-on-dark)}
.shot-open{font-size:14px;line-height:1.45;color:var(--mute-on-light);max-width:24em}
.dark .shot-open{color:var(--mute-on-dark)}
.shot figcaption{margin-top:14px;font-size:14.5px;line-height:1.5;color:var(--mute-on-light)}
.dark .shot figcaption{color:var(--mute-on-dark)}
.case .shot{width:100%;max-width:520px}
@media(max-width:900px){.shot-grid{grid-template-columns:1fr}}

/* Fliesstext in Panels */
.prose{max-width:68ch;margin-top:var(--s-5)}
.prose p{font-size:17px;line-height:1.6;margin:0 0 16px}

/* Dokumentseiten: Person und Meta-Liste */
.document-main .person{margin:var(--s-5) 0}
.meta-list{margin:var(--s-6) 0 0;padding:0;display:grid;gap:14px;max-width:48ch}
.meta-list div{display:grid;grid-template-columns:120px 1fr;gap:12px;padding-top:14px;border-top:1px solid var(--line-light)}
.meta-list dt{font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--mute-on-light);padding-top:4px}
.meta-list dd{margin:0;font-size:16.5px}

/* Fusszeile mit einer Linkzeile */
.footer-inner{grid-template-columns:1.6fr 2fr;align-items:end}
.footer-links{display:flex;flex-wrap:wrap;gap:12px 26px;justify-content:flex-end;font-size:14px;font-weight:500;color:var(--paper)}
.footer-links a:hover{text-decoration:underline;text-underline-offset:4px}
@media(max-width:860px){
  .footer-inner{grid-template-columns:1fr}
  .footer-links{justify-content:flex-start}
}

/* Check-Block: auf Desktop Einleitung links, Formular rechts */
.check-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:var(--s-6) var(--s-8);align-items:start}
.check-layout .check-inline,.check-layout .check-result,.check-layout .check-note{margin-top:0;max-width:none}
.check-layout .check-result{margin-top:0}
.check-layout .check-note{margin-top:var(--s-4)}
.check-lead{position:sticky;top:120px}
@media(max-width:960px){
  .check-layout{grid-template-columns:1fr}
  .check-lead{position:static}
}

/* Kompakter Hero fuer Unterseiten */
.hero.compact{padding-top:168px;padding-bottom:var(--s-8)}
.hero.compact .cta{margin-top:var(--s-6)}
.hero.compact .sprint-facts{margin-top:var(--s-7)}
@media(max-width:860px){.hero.compact{padding-top:128px}}
