/* ============================================================
   Tasty Studios — Studio-Website
   Design-System: warm, Kachel/Neumorph (Vorlage: Tasty Hub)
   Schriften: Plus Jakarta Sans (variabel) + IBM Plex Mono
   ============================================================ */

/* --- Schriften (selbst gehostet) --- */
@font-face{font-family:'Jakarta';src:url('../fonts/jakarta-var.woff2') format('woff2');font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:'PlexMono';src:url('../fonts/plexmono-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'PlexMono';src:url('../fonts/plexmono-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}

/* --- Token --- */
:root{
  --bg:#ECEAE4;
  --card:#F5F3EE;
  --ink:#1F1E1A;
  --muted:#6E6A60;
  --value:#9A7B4F;
  --accent:#B8371F;
  --dark:#0C0D12;
  --dark-2:#14151D;
  --dark-ink:#F4F3EE;
  --dark-muted:#9C9EA8;

  --display:'Jakarta',-apple-system,BlinkMacSystemFont,sans-serif;
  --text:'Jakarta',-apple-system,BlinkMacSystemFont,sans-serif;
  --mono:'PlexMono','SF Mono',monospace;

  /* Flächen-Kontext: wird pro Sektion umgesetzt */
  --fg:var(--ink);
  --fg-strong:var(--ink);
  --fg-mute:var(--muted);
  --rule:rgba(60,54,42,.12);
  --tile:var(--card);
  --shadow-tile:
    0 28px 56px -28px rgba(60,54,42,.34),
    0 6px 16px -8px rgba(60,54,42,.14),
    inset 0 1.5px 0 rgba(255,255,255,.95);
  --shadow-soft:
    0 14px 30px -18px rgba(60,54,42,.30),
    inset 0 1px 0 rgba(255,255,255,.9);
  --shadow-inset:
    inset 3px 4px 10px rgba(60,54,42,.09),
    inset -3px -3px 8px rgba(255,255,255,.85);

  --gut:clamp(22px,5vw,72px);
  --maxw:1280px;
  --ease:cubic-bezier(.32,.72,0,1);
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
}

body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--text);
  font-weight:400;
  font-size:1.0625rem;
  line-height:1.6;
  letter-spacing:-.005em;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
  text-rendering:optimizeLegibility;
}

::selection{background:var(--accent);color:#fff}

:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:4px;
  border-radius:2px;
}

img{max-width:100%;height:auto;display:block}

/* ============================================================
   Flächen: hell-warm als Grund, Dunkel als Kontrast
   ============================================================ */
.stage{
  background:var(--sbg,var(--bg));
  color:var(--fg);
  position:relative;
}
.stage--ink{
  --sbg:#ECEAE4;
  --fg:#1F1E1A;--fg-strong:#1F1E1A;--fg-mute:#6E6A60;
  --rule:rgba(60,54,42,.12);--tile:#F5F3EE;
}
.stage--cream{
  --sbg:#E3E0D8;
  --fg:#1F1E1A;--fg-strong:#1F1E1A;--fg-mute:#666258;
  --rule:rgba(60,54,42,.14);--tile:#EFEDE6;
}
.stage--navy{
  --sbg:#0C0D12;
  --fg:#F4F3EE;--fg-strong:#F4F3EE;--fg-mute:#9C9EA8;
  --rule:rgba(255,255,255,.09);--tile:rgba(255,255,255,.035);
  --shadow-tile:0 30px 60px -30px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.08);
  --shadow-soft:0 18px 36px -22px rgba(0,0,0,.7),inset 0 1px 0 rgba(255,255,255,.07);
  --shadow-inset:inset 0 1px 0 rgba(255,255,255,.06);
}
.stage--slate{
  --sbg:#14151D;
  --fg:#F4F3EE;--fg-strong:#F4F3EE;--fg-mute:#9C9EA8;
  --rule:rgba(255,255,255,.09);--tile:rgba(255,255,255,.035);
  --shadow-tile:0 30px 60px -30px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.08);
  --shadow-soft:0 18px 36px -22px rgba(0,0,0,.7),inset 0 1px 0 rgba(255,255,255,.07);
  --shadow-inset:inset 0 1px 0 rgba(255,255,255,.06);
}

/* ============================================================
   Raster
   ============================================================ */
.shell{
  width:100%;
  max-width:var(--maxw);
  margin-inline:auto;
  padding-inline:var(--gut);
}

.band{padding-block:clamp(5.5rem,12vh,10rem)}
.band--tight{padding-block:clamp(4rem,8vh,7rem)}
.band--tall{padding-block:clamp(9rem,20vh,17rem)}

/* Kapitelmarke: Mono-Pille */
.mark{
  display:inline-flex;
  align-items:baseline;
  gap:1rem;
  padding:.55rem 1.15rem;
  border-radius:999px;
  background:var(--tile);
  box-shadow:var(--shadow-inset);
  margin-bottom:clamp(2.6rem,6vw,4.5rem);
}
.mark__no{
  font-family:var(--mono);
  font-weight:500;
  font-size:.66rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--accent);
  flex-shrink:0;
}
.mark__label{
  font-family:var(--mono);
  font-weight:500;
  font-size:.66rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--fg-mute);
}

/* ============================================================
   Typografie
   ============================================================ */
.display{
  font-family:var(--display);
  font-weight:800;
  line-height:1.02;
  letter-spacing:-.038em;
  color:var(--fg-strong);
  text-wrap:balance;
}
.display--hero{font-size:clamp(2.7rem,6.6vw,6rem);letter-spacing:-.045em}
.display--xl  {font-size:clamp(2.2rem,5.2vw,4.6rem);letter-spacing:-.04em}
.display--l   {font-size:clamp(1.9rem,3.9vw,3.3rem);line-height:1.06}
.display--m   {font-size:clamp(1.55rem,3vw,2.5rem);line-height:1.08;letter-spacing:-.03em}

.lead{
  font-size:clamp(1.2rem,2vw,1.5rem);
  line-height:1.45;
  font-weight:600;
  letter-spacing:-.018em;
  color:var(--fg);
  max-width:28ch;
}
.lead--wide{max-width:38ch}

.prose{
  font-size:1.05rem;
  line-height:1.66;
  font-weight:450;
  color:var(--fg-mute);
  max-width:40ch;
}
.prose--wide{max-width:56ch}
.prose strong{color:var(--fg);font-weight:700}
.prose p + p{margin-top:1.2em}

.tint{color:var(--value)}

.pull{
  font-family:var(--display);
  font-weight:800;
  font-size:clamp(1.7rem,3.4vw,2.9rem);
  line-height:1.12;
  letter-spacing:-.03em;
  color:var(--fg-strong);
  max-width:22ch;
}

.hairline{height:1px;background:var(--rule);border:0}

/* ============================================================
   Links & Aktionen
   ============================================================ */
a{color:inherit}

.link{
  display:inline-block;
  position:relative;
  text-decoration:none;
  font-size:.85rem;
  font-weight:700;
  letter-spacing:-.005em;
  color:var(--fg-strong);
  padding-top:.6rem;
  margin-top:-.6rem;
  padding-bottom:.42rem;
}
.link::after{
  content:"";
  position:absolute;left:0;bottom:0;
  width:100%;height:2px;border-radius:2px;
  background:currentColor;
  transform-origin:right;
  transform:scaleX(1);
  transition:transform .55s var(--ease);
}
.link:hover::after{transform-origin:left;transform:scaleX(0)}

.link--quiet{color:var(--fg-mute)}
.link--quiet:hover{color:var(--fg-strong)}

/* Pillen-Knopf mit rundem Pfeil (Vorlage Tasty Hub) */
.action{
  display:inline-flex;
  align-items:center;
  gap:.9rem;
  background:var(--ink);
  color:#fff;
  text-decoration:none;
  font-size:.92rem;
  font-weight:700;
  letter-spacing:-.01em;
  border-radius:999px;
  padding:.5rem .5rem .5rem 1.6rem;
  box-shadow:0 16px 32px -14px rgba(31,30,26,.55);
  transition:transform .5s var(--ease),background .5s var(--ease);
}
.action:hover{transform:scale(1.02);background:#33312b}
.action:active{transform:scale(.98)}
.action__arrow{
  width:2.25rem;height:2.25rem;
  border-radius:999px;
  background:rgba(255,255,255,.14);
  display:flex;align-items:center;justify-content:center;
  font-size:.95rem;
  transition:transform .5s var(--ease),background .5s var(--ease);
}
.action:hover .action__arrow{transform:translateX(3px);background:var(--accent)}
.stage--navy .action,.stage--slate .action{background:#F4F3EE;color:#1F1E1A;box-shadow:0 16px 32px -14px rgba(0,0,0,.6)}
.stage--navy .action:hover,.stage--slate .action:hover{background:#fff}
.stage--navy .action .action__arrow,.stage--slate .action .action__arrow{background:rgba(31,30,26,.1)}
.stage--navy .action:hover .action__arrow,.stage--slate .action:hover .action__arrow{background:var(--accent);color:#fff}

/* ============================================================
   Kopfleiste — schwebende Pille
   ============================================================ */
.masthead{
  position:fixed;
  top:0;left:0;right:0;
  z-index:80;
  display:flex;
  justify-content:center;
  padding-top:1.1rem;
  pointer-events:none;
  transform:translateY(0);
  opacity:1;
  transition:transform .6s var(--ease),opacity .45s var(--ease);
}
.masthead.is-away{transform:translateY(-130%);opacity:0}
.masthead__inner{
  pointer-events:auto;
  display:flex;
  align-items:center;
  gap:1.6rem;
  background:rgba(245,243,238,.94);
  border-radius:999px;
  padding:.6rem .7rem .6rem 1.5rem;
  box-shadow:0 18px 44px -18px rgba(60,54,42,.38),inset 0 1px 0 rgba(255,255,255,.9);
}
.wordmark{
  font-family:var(--display);
  font-weight:800;
  font-size:.9rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  text-decoration:none;
  color:var(--ink);
}
.masthead__nav{display:flex;gap:1.35rem}
.masthead__nav a{
  font-size:.85rem;
  font-weight:600;
  letter-spacing:-.005em;
  text-decoration:none;
  color:var(--muted);
  transition:color .4s var(--ease);
}
.masthead__nav a:hover,.masthead__nav a.is-here{color:var(--ink)}

.masthead__act{
  display:inline-flex;align-items:center;gap:.6rem;
  font-size:.8rem;font-weight:700;letter-spacing:-.005em;
  text-decoration:none;color:#fff;
  background:var(--ink);
  border-radius:999px;
  padding:.55rem 1.15rem;
  transition:background .4s var(--ease),transform .4s var(--ease);
}
.masthead__act:hover{background:#33312b;transform:scale(1.02)}
.masthead__act i{font-style:normal;transition:transform .5s var(--ease)}
.masthead__act:hover i{transform:translateX(3px)}

/* Umschalter Hotels · Restaurants */
.mode{
  display:flex;gap:0;
  background:var(--bg);
  border-radius:999px;
  padding:.25rem;
  box-shadow:var(--shadow-inset);
}
.mode a{
  font-size:.78rem;font-weight:700;letter-spacing:-.005em;
  text-decoration:none;color:var(--muted);
  border-radius:999px;
  padding:.4rem 1rem;
  transition:color .4s var(--ease),background .4s var(--ease),box-shadow .4s var(--ease);
}
.mode a.is-on{background:var(--ink);color:#fff;box-shadow:0 8px 18px -8px rgba(31,30,26,.5)}
.mode a:hover{color:var(--ink)}
.mode a.is-on:hover{color:#fff}

.burger{
  display:none;
  width:2.5rem;height:2.5rem;
  background:none;border:0;cursor:pointer;
  position:relative;pointer-events:auto;
  flex-shrink:0;
}
.burger span{
  position:absolute;left:.55rem;right:.55rem;height:2px;border-radius:2px;
  background:var(--ink);
  transition:transform .5s var(--ease),opacity .35s var(--ease);
}
.burger span:nth-child(1){top:1rem}
.burger span:nth-child(2){top:1.5rem}
body.menu-auf .burger span:nth-child(1){transform:translateY(.25rem) rotate(45deg)}
body.menu-auf .burger span:nth-child(2){transform:translateY(-.25rem) rotate(-45deg)}

.drawer{
  position:fixed;inset:0;z-index:70;
  background:#ECEAE4;
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  text-align:center;
  padding:var(--gut);
  opacity:0;transform:translateY(-2%);
  pointer-events:none;
  transition:opacity .45s var(--ease),transform .55s var(--ease);
}
body.menu-auf .drawer{opacity:1;transform:none;pointer-events:auto}
.drawer a{
  display:block;
  font-family:var(--display);font-weight:800;
  font-size:clamp(1.7rem,7vw,2.3rem);
  letter-spacing:-.03em;color:var(--ink);text-decoration:none;
  padding-block:.5rem;
  transition:color .35s var(--ease);
}
.drawer a:hover{color:var(--accent)}
.drawer a + a{border-top:0}
.drawer__foot{
  margin-top:2.2rem;
  font-family:var(--mono);
  font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);
}
@media(max-width:1080px){
  .masthead__nav{display:none}
  .masthead__act{display:none}
  .burger{display:block}
}
@media(min-width:1081px){
  .masthead__nav{display:flex}
}
@media(max-width:640px){
  .masthead__inner{gap:.9rem;padding-left:1.1rem}
  .mode a{padding:.4rem .75rem}
}

/* ============================================================
   Auftakt (Zielgruppen-Seiten)
   ============================================================ */
.overture{
  min-height:100svh;
  min-height:100dvh;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding-bottom:clamp(2.4rem,5vh,4rem);
  padding-top:clamp(7rem,22vh,13rem);
  position:relative;
  overflow:hidden;
}
.overture__eyebrow{
  align-self:flex-start;
  font-family:var(--mono);
  font-size:.68rem;
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--fg-mute);
  border-radius:999px;
  padding:.55rem 1.15rem;
  background:var(--tile);
  box-shadow:var(--shadow-inset);
  margin-bottom:clamp(1.6rem,4vh,3rem);
  opacity:0;
  animation:fadeUp 1.3s var(--ease) .35s forwards;
}
.overture__title{max-width:19ch}
.overture__title .ln{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.06em}
.overture__title .ln > span{
  display:block;
  transform:translateY(105%);
  animation:riseIn 1.5s var(--ease) forwards;
}
.overture__title .ln:nth-child(1) > span{animation-delay:.5s}
.overture__title .ln:nth-child(2) > span{animation-delay:.62s}
.overture__title .ln:nth-child(3) > span{animation-delay:.74s}

.overture__foot{
  margin-top:clamp(3rem,8vh,6rem);
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:2rem;
  padding-top:1.4rem;
  border-top:1px solid var(--rule);
  opacity:0;
  animation:fadeUp 1.3s var(--ease) 1.05s forwards;
}
.overture__meta{
  font-family:var(--mono);
  font-size:.68rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--fg-mute);
}
.overture__cue{
  display:flex;
  align-items:center;
  gap:.85rem;
  font-family:var(--mono);
  font-size:.68rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--fg-mute);
}
.overture__cue i{
  display:block;
  width:2px;height:2.6rem;border-radius:2px;
  background:linear-gradient(to bottom,var(--value),transparent);
  animation:cue 2.6s var(--ease) infinite;
}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@keyframes riseIn{to{transform:translateY(0)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}

/* ============================================================
   Aussagen-Blöcke
   ============================================================ */
.statement{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:clamp(2.4rem,5vw,5rem);
}
@media(min-width:900px){
  .statement--split{grid-template-columns:1.05fr .95fr;align-items:start}
  .statement--offset{grid-template-columns:.72fr 1.58fr}
  .statement--offset > :first-child{padding-top:.6rem}
}

/* Aufzählung als Kachel mit Zeilen */
.ledger{
  background:var(--tile);
  border-radius:28px;
  box-shadow:var(--shadow-tile);
  padding:clamp(1rem,2.4vw,2rem) clamp(1.3rem,3vw,2.6rem);
}
.ledger__row{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:.5rem 3rem;
  padding-block:clamp(1.4rem,2.6vw,2rem);
  border-bottom:1px solid var(--rule);
}
.ledger__row:last-child{border-bottom:none}
@media(min-width:840px){
  .ledger__row{grid-template-columns:3.2rem 15rem minmax(0,1fr);align-items:baseline}
}
.ledger__no{
  font-family:var(--mono);
  font-size:.7rem;
  font-weight:500;
  letter-spacing:.14em;
  color:var(--accent);
}
.ledger__key{
  font-family:var(--display);
  font-weight:700;
  font-size:clamp(1.02rem,1.65vw,1.3rem);
  letter-spacing:-.02em;
  color:var(--fg-strong);
  line-height:1.25;
}
.ledger__val{
  font-size:1rem;
  line-height:1.62;
  color:var(--fg-mute);
  max-width:48ch;
}

/* ============================================================
   Einblendungen
   ============================================================ */
.rise{
  opacity:0;
  transform:translateY(26px);
  transition:opacity 1.05s var(--ease),transform 1.05s var(--ease);
  will-change:opacity,transform;
}
.rise.is-in{opacity:1;transform:none}
.rise[data-delay="1"]{transition-delay:.09s}
.rise[data-delay="2"]{transition-delay:.18s}
.rise[data-delay="3"]{transition-delay:.27s}
.rise[data-delay="4"]{transition-delay:.36s}

.wipe .ln{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.06em}
.wipe .ln > span{
  display:block;
  transform:translateY(105%);
  transition:transform 1.15s var(--ease);
}
.wipe.is-in .ln:nth-child(1) > span{transform:translateY(0)}
.wipe.is-in .ln:nth-child(2) > span{transform:translateY(0);transition-delay:.1s}
.wipe.is-in .ln:nth-child(3) > span{transform:translateY(0);transition-delay:.2s}
.wipe.is-in .ln:nth-child(4) > span{transform:translateY(0);transition-delay:.3s}

@media (prefers-reduced-motion:reduce){
  .rise{opacity:1;transform:none}
  .wipe .ln > span,.closing__title .ln > span,.overture__title .ln > span{transform:none;animation:none}
  .overture__eyebrow,.overture__foot{opacity:1;animation:none}
}

/* ============================================================
   Video
   ============================================================ */
.reise{
  position:relative;overflow:hidden;background:#0C0D12;
  aspect-ratio:16/9;cursor:pointer;
  border-radius:22px;
  box-shadow:var(--shadow-tile);
}
.reise img.poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.85;transition:opacity .6s var(--ease),transform 1.2s var(--ease)}
.reise:hover img.poster{transform:scale(1.02)}
.reise video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000}
.reise__spiel{
  position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:1.2rem;z-index:2;
}
.reise__knopf{
  width:clamp(4rem,7vw,5.5rem);height:clamp(4rem,7vw,5.5rem);border-radius:50%;
  background:rgba(244,243,238,.14);
  display:flex;align-items:center;justify-content:center;
  transition:background .45s var(--ease),transform .45s var(--ease);
}
.reise:hover .reise__knopf{background:var(--accent);transform:scale(1.06)}
.reise__knopf i{
  display:block;width:0;height:0;margin-left:4px;
  border-top:11px solid transparent;border-bottom:11px solid transparent;
  border-left:17px solid #fff;
}
.reise__wort{font-family:var(--mono);font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(244,243,238,.8)}
.reise.spielt .reise__spiel,.reise.spielt img.poster{display:none}
.reise.spielt{cursor:default}

/* ============================================================
   Referenz-Band
   ============================================================ */
.reel{overflow:hidden;position:relative;padding-block:.5rem}
.reel__track{
  display:flex;gap:clamp(1.2rem,2vw,2rem);width:max-content;
  animation:reelLauf 64s linear infinite;
  animation-play-state:paused;
  will-change:transform;
}
.reel.is-live .reel__track{animation-play-state:running}
.reel:hover .reel__track{animation-play-state:paused}
@keyframes reelLauf{to{transform:translateX(-50%)}}
.reel__item{
  display:block;width:clamp(280px,34vw,520px);flex:none;text-decoration:none;
}
.reel__shot{
  display:block;
  aspect-ratio:16/10;overflow:hidden;background:var(--tile);
  border-radius:18px;
  box-shadow:var(--shadow-soft);
}
.reel__shot img{width:100%;height:100%;object-fit:cover;object-position:top center}
.reel__name{
  display:flex;justify-content:space-between;gap:1rem;align-items:baseline;
  margin-top:.9rem;padding-inline:.3rem;
  font-family:var(--display);font-weight:700;font-size:.95rem;letter-spacing:-.01em;
  color:var(--fg-strong);
}
.reel__name span:last-child{
  font-family:var(--mono);font-weight:400;font-size:.62rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--fg-mute);
}
@media (prefers-reduced-motion:reduce){
  .reel__track{animation:none}
}

/* ============================================================
   Fragen
   ============================================================ */
.qa{
  background:var(--tile);
  border-radius:28px;
  box-shadow:var(--shadow-tile);
  padding:clamp(.6rem,1.6vw,1.4rem) clamp(1.3rem,3vw,2.6rem);
}
.qa__item{border-bottom:1px solid var(--rule)}
.qa__item:last-child{border-bottom:none}
.qa__q{
  width:100%;
  background:none;border:0;
  font-family:var(--display);
  font-weight:700;
  font-size:clamp(1rem,1.8vw,1.3rem);
  line-height:1.32;
  letter-spacing:-.02em;
  color:var(--fg-strong);
  text-align:left;
  padding-block:clamp(1.3rem,2.4vw,1.8rem);
  padding-right:3rem;
  cursor:pointer;
  position:relative;
  display:block;
  transition:color .4s var(--ease);
}
.qa__q:hover{color:var(--accent)}
.qa__q::after,.qa__q::before{
  content:"";position:absolute;right:.2rem;top:50%;
  background:currentColor;border-radius:2px;
  transition:transform .5s var(--ease),opacity .4s var(--ease);
}
.qa__q::before{width:14px;height:2px;transform:translateY(-50%)}
.qa__q::after{width:2px;height:14px;right:calc(.2rem + 6px);transform:translateY(-50%) scaleY(1)}
.qa__item.is-open .qa__q::after{transform:translateY(-50%) scaleY(0)}
.qa__a{
  overflow:hidden;
  max-height:0;
  transition:max-height .65s var(--ease);
}
.qa__a > div{
  padding-bottom:clamp(1.5rem,2.4vw,2rem);
  padding-right:clamp(0px,8vw,6rem);
  font-size:1rem;
  line-height:1.66;
  color:var(--fg-mute);
  max-width:58ch;
}

/* ============================================================
   Schluss
   ============================================================ */
.closing{
  min-height:88svh;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.closing__title .ln{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.06em}
.closing__title .ln > span{
  display:block;
  transform:translateY(105%);
  transition:transform 1.25s var(--ease);
}
.closing.is-in .closing__title .ln:nth-child(1) > span{transform:translateY(0);transition-delay:.05s}
.closing.is-in .closing__title .ln:nth-child(2) > span{transform:translateY(0);transition-delay:.17s}
.closing.is-in .closing__title .ln:nth-child(3) > span{transform:translateY(0);transition-delay:.29s}

.colophon{
  padding-block:2.6rem;
  border-top:1px solid var(--rule);
  display:flex;
  flex-wrap:wrap;
  gap:1.2rem 2.4rem;
  align-items:center;
  justify-content:space-between;
  font-family:var(--mono);
  font-size:.7rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--fg-mute);
}
.colophon a{text-decoration:none;transition:color .4s var(--ease);display:inline-block;padding-block:.5rem}
.colophon a:hover{color:var(--fg-strong)}
.colophon__set{display:flex;gap:1.8rem;flex-wrap:wrap}

/* ============================================================
   Rechtliches
   ============================================================ */
.legal{padding-top:clamp(7rem,15vh,10rem)}
.legal__title{margin-bottom:clamp(2.5rem,5vw,4rem)}
.legal h2{
  font-family:var(--display);
  font-weight:700;
  font-size:clamp(1.1rem,1.9vw,1.5rem);
  line-height:1.3;
  letter-spacing:-.02em;
  color:var(--fg-strong);
  margin-top:clamp(2.4rem,4vw,3.4rem);
  margin-bottom:.9rem;
  padding-top:1.6rem;
  border-top:1px solid var(--rule);
  max-width:62ch;
}
.legal h2:first-of-type{margin-top:0}
.legal p,.legal li{
  font-size:1rem;
  line-height:1.7;
  color:var(--fg-mute);
  max-width:62ch;
}
.legal p + p{margin-top:1rem}
.legal ul{margin:1rem 0 0 1.1rem;max-width:62ch}
.legal li{margin-bottom:.35rem}
.legal a{color:var(--fg);text-decoration:underline;text-underline-offset:.22em;text-decoration-thickness:1px}
.legal a:hover{color:var(--fg-strong)}
.legal__stand{margin-top:clamp(2.5rem,5vw,4rem);font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-mute)}

/* ============================================================
   Studio-Startseite
   ============================================================ */

/* Auftakt */
.overture--studio{
  justify-content:center;align-items:center;text-align:center;
  padding-top:clamp(6rem,15vh,9rem);
  padding-bottom:clamp(2rem,5vh,3.5rem);
}
.overture--brand{
  justify-content:center;align-items:center;text-align:center;
  padding-top:clamp(5rem,14vh,9rem);
}
.brand__logo{
  width:clamp(88px,12vh,128px);height:auto;margin-inline:auto;
  filter:brightness(0) opacity(.92);
  opacity:0;animation:fadeUp 1.6s var(--ease) .2s forwards;
}
.stage--navy .brand__logo,.stage--slate .brand__logo{filter:none}
.brand__word{
  position:relative;
  font-family:var(--display);font-weight:800;
  font-size:clamp(.95rem,1.9vw,1.25rem);
  letter-spacing:.4em;text-indent:.4em;text-transform:uppercase;
  color:var(--fg-strong);line-height:1.1;
  margin-top:clamp(1.1rem,3vh,1.9rem);
  opacity:0;animation:fadeUp 1.5s var(--ease) .55s forwards;
}
/* Leucht-Ebene der dunklen Fassung — im warmen Design aus */
.brand__hof{display:none}
.brand__slogan{
  font-family:var(--mono);
  font-size:clamp(.7rem,1.2vw,.8rem);font-weight:500;
  letter-spacing:.24em;text-indent:.24em;text-transform:uppercase;
  color:var(--value);
  margin-top:clamp(1rem,2.6vh,1.8rem);
  opacity:0;animation:fadeUp 1.5s var(--ease) .85s forwards;
}
.overture--brand .overture__foot{width:100%}

.claim{
  font-family:var(--display);font-weight:800;
  font-size:clamp(2.6rem,7vw,6rem);
  line-height:1.0;letter-spacing:-.045em;color:var(--fg-strong);
  max-width:15ch;margin:clamp(1.8rem,4.4vh,3.2rem) auto 0;
  text-wrap:balance;
  opacity:0;animation:fadeUp 1.4s var(--ease) .75s forwards;
}
.claim em{font-style:normal;color:var(--value)}
.claim__sub{
  font-size:clamp(1.02rem,1.6vw,1.3rem);font-weight:500;line-height:1.55;
  letter-spacing:-.015em;
  color:var(--fg-mute);
  max-width:52ch;margin:clamp(1.5rem,3.4vh,2.4rem) auto 0;
  opacity:0;animation:fadeUp 1.4s var(--ease) .95s forwards;
}

.entries{
  display:grid;grid-template-columns:minmax(0,1fr);
  gap:.9rem;
  width:100%;max-width:52rem;
  margin:clamp(2.4rem,5.5vh,3.6rem) auto 0;
  opacity:0;animation:fadeUp 1.4s var(--ease) 1.15s forwards;
}
@media(min-width:760px){.entries{grid-template-columns:repeat(3,1fr)}}
.entry{
  text-decoration:none;
  background:var(--tile);
  border-radius:20px;
  box-shadow:var(--shadow-soft);
  padding:1.25rem 1rem;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);
}
.entry:hover{transform:translateY(-3px);box-shadow:var(--shadow-tile)}
.entry b{
  display:block;font-family:var(--display);font-weight:800;
  font-size:1rem;letter-spacing:-.02em;color:var(--fg-strong);margin-bottom:.35rem;
}
.entry span{
  display:block;
  font-family:var(--mono);
  font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-mute);
}

.hero__act{
  display:flex;flex-wrap:wrap;gap:1.4rem 2.2rem;
  align-items:center;justify-content:center;
  margin-top:clamp(2.2rem,5vh,3.2rem);
  opacity:0;animation:fadeUp 1.4s var(--ease) 1.35s forwards;
}

/* Leistungsblöcke */
.svc{
  display:grid;grid-template-columns:minmax(0,1fr);
  gap:clamp(1.6rem,3vw,3rem);
  background:var(--tile);
  border-radius:28px;
  box-shadow:var(--shadow-tile);
  padding:clamp(1.8rem,3.6vw,3.2rem);
}
.svc + .svc{margin-top:clamp(1.4rem,2.6vw,2.2rem)}
@media(min-width:900px){
  .svc{grid-template-columns:8rem minmax(0,1.15fr) minmax(0,1fr);gap:clamp(2rem,4vw,4.5rem);align-items:start}
}
.svc__kind{
  font-family:var(--mono);
  font-size:.66rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;
  color:var(--accent);padding-top:.5rem;
}
.svc__head{
  font-family:var(--display);font-weight:800;
  font-size:clamp(1.6rem,3.1vw,2.6rem);line-height:1.08;letter-spacing:-.032em;
  color:var(--fg-strong);max-width:15ch;margin-bottom:.9rem;
}
.svc__for{
  font-family:var(--mono);
  font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-mute);
}
.svc__note{font-size:.98rem;line-height:1.64;color:var(--fg-mute);max-width:44ch;margin-bottom:1.6rem}
.gain{list-style:none;margin:0 0 1.8rem;padding:0}
.gain li{
  position:relative;padding-left:1.5rem;
  font-size:1rem;font-weight:600;line-height:1.5;
  letter-spacing:-.01em;
  color:var(--fg);
  margin-bottom:.7rem;max-width:40ch;
}
.gain li::before{
  content:"";position:absolute;left:0;top:.6em;
  width:.6rem;height:.3rem;border-radius:3px;background:var(--accent);
}

/* Haltung */
.thesis__lines{
  background:var(--tile);
  border-radius:24px;
  box-shadow:var(--shadow-inset);
  padding:clamp(.6rem,1.6vw,1.2rem) clamp(1.3rem,3vw,2.4rem);
  margin-block:clamp(2.2rem,4.5vw,3.4rem);
}
.thesis__lines p{
  border-bottom:1px solid var(--rule);
  padding-block:clamp(.85rem,1.8vw,1.2rem);
  font-size:clamp(1.02rem,1.75vw,1.3rem);
  font-weight:600;
  letter-spacing:-.015em;
  line-height:1.4;color:var(--fg);max-width:46ch;
}
.thesis__lines p:last-child{border-bottom:none}
.path{
  display:flex;flex-wrap:wrap;align-items:baseline;
  gap:.7rem clamp(.8rem,2vw,1.4rem);
  margin-top:clamp(2rem,4vw,3rem);
}
.path b{
  font-family:var(--display);font-weight:800;
  font-size:clamp(1.1rem,2.4vw,1.9rem);letter-spacing:-.03em;
  color:var(--fg-strong);
}
.path i{font-style:normal;color:var(--accent);font-size:clamp(.9rem,1.8vw,1.35rem)}

/* Zahlen */
.facts{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:clamp(1rem,2vw,1.5rem);
}
.fact{
  background:var(--tile);
  border-radius:20px;
  box-shadow:var(--shadow-soft);
  padding:clamp(1.4rem,2.6vw,2rem);
}
.fact b{
  display:block;font-family:var(--display);font-weight:800;
  font-size:clamp(1.7rem,3.4vw,2.6rem);letter-spacing:-.035em;
  color:var(--fg-strong);line-height:1;margin-bottom:.7rem;
}
.fact span{font-size:.92rem;line-height:1.5;color:var(--fg-mute);display:block;max-width:24ch}

/* Fallstudien */
.study{
  background:var(--tile);
  border-radius:28px;
  box-shadow:var(--shadow-tile);
  padding:clamp(1.6rem,3.4vw,3rem);
}
.study + .study,.study:first-of-type{margin-top:clamp(1.6rem,3vw,2.6rem)}
.study__top{
  display:grid;grid-template-columns:minmax(0,1fr);
  gap:1rem clamp(2rem,4vw,4rem);
  margin-bottom:clamp(1.6rem,3vw,2.4rem);
}
@media(min-width:900px){.study__top{grid-template-columns:1.3fr .9fr;align-items:end}}
.study__kind{
  font-family:var(--mono);
  font-size:.66rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;
  color:var(--accent);margin-bottom:.9rem;
}
.study__name{
  font-family:var(--display);font-weight:800;
  font-size:clamp(1.9rem,4.4vw,3.6rem);line-height:1.0;letter-spacing:-.04em;
  color:var(--fg-strong);
}
.study__roles{
  font-family:var(--mono);
  font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--fg-mute);line-height:2;
}
@media(min-width:900px){.study__roles{text-align:right}}
.study__shot{
  position:relative;overflow:hidden;background:var(--bg);
  aspect-ratio:16/9;display:block;
  border-radius:18px;
  box-shadow:var(--shadow-soft);
}
.study__shot img{
  width:100%;height:100%;object-fit:cover;object-position:top center;
  transform:scale(1.01);
  transition:transform 1.5s var(--ease);
}
.study__shot:hover img{transform:scale(1.045)}
.study__grid{
  display:grid;grid-template-columns:minmax(0,1fr);
  gap:clamp(1.4rem,2.6vw,2.4rem);
  margin-top:clamp(1.6rem,3vw,2.4rem);
}
@media(min-width:840px){.study__grid{grid-template-columns:repeat(3,1fr)}}
.study__col h4{
  font-family:var(--mono);
  font-size:.64rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;
  color:var(--accent);margin-bottom:.9rem;
  padding-bottom:.7rem;border-bottom:1px solid var(--rule);
}
.study__col p{font-size:.96rem;line-height:1.62;color:var(--fg-mute);max-width:36ch}
.study__go{margin-top:clamp(1.6rem,3vw,2.2rem)}

/* Bereichsraster */
.areas{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:clamp(1rem,2vw,1.4rem);
}
.area{
  background:var(--tile);
  border-radius:20px;
  box-shadow:var(--shadow-soft);
  padding:clamp(1.5rem,2.6vw,2rem);
  min-height:clamp(9rem,13vw,11rem);
  display:flex;flex-direction:column;justify-content:space-between;gap:1rem;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);
}
.area:hover{transform:translateY(-3px);box-shadow:var(--shadow-tile)}
.area b{
  font-family:var(--display);font-weight:800;
  font-size:clamp(1rem,1.7vw,1.3rem);letter-spacing:-.02em;
  color:var(--fg-strong);
}
.area span{font-size:.92rem;line-height:1.55;color:var(--fg-mute)}

/* Kurse */
.courses{
  display:grid;grid-template-columns:minmax(0,1fr);
  gap:clamp(1.2rem,2.4vw,1.8rem);
}
@media(min-width:880px){.courses{grid-template-columns:repeat(3,1fr)}}
.course{
  background:var(--tile);
  border-radius:24px;
  box-shadow:var(--shadow-tile);
  padding:clamp(1.6rem,2.8vw,2.3rem);
  display:flex;flex-direction:column;
  transition:transform .6s var(--ease);
}
.course:hover{transform:translateY(-4px)}
.course__no{
  font-family:var(--mono);
  font-size:.64rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;
  color:var(--accent);margin-bottom:1.4rem;
}
.course__name{
  font-family:var(--display);font-weight:800;
  font-size:clamp(1.25rem,2.2vw,1.65rem);line-height:1.08;letter-spacing:-.03em;
  color:var(--fg-strong);margin-bottom:.9rem;
}
.course__note{font-size:.94rem;line-height:1.6;color:var(--fg-mute);margin-bottom:1.5rem}
.course__set{list-style:none;margin:0 0 1.8rem;padding:0;border-top:1px solid var(--rule)}
.course__set li{
  display:flex;justify-content:space-between;gap:1rem;
  padding-block:.6rem;border-bottom:1px solid var(--rule);
  font-size:.82rem;line-height:1.5;color:var(--fg-mute);
}
.course__set li b{
  font-family:var(--mono);
  font-weight:400;font-size:.74rem;color:var(--value);text-align:right;max-width:17ch;
}
.course__go{margin-top:auto}

/* Abschluss-Handlung */
.act-row{display:flex;flex-wrap:wrap;gap:1.4rem 2.2rem;align-items:center;margin-top:2.4rem}
