/* ============================================================================
   Coffee Festival Europe — LAYOUTS · der Aufbau der Abschnitte (Stand 03.09.2026)

   Die Rueckmeldung: "alle Unterseiten sehen fast gleich aus". Und das stimmte
   im Aufbau — zwoelf Seiten folgten derselben Reihe: Kopf, drei Regeln in
   Spalten, Prosa, Fragen, Kartenraster. Die Sprache (Farbe, Schrift, Bewegung,
   Trenner, Ornamente) bleibt auf allen Seiten dieselbe; das ist die Marke.
   Was sich unterscheidet, ist die KOMPOSITION: dieselben Bausteine, anders
   gesetzt. Diese Datei liefert die Varianten, die Seiten tragen sie als
   Klassen (siehe tools/layouts.py fuer die Zuordnung).

     .psec--split    Kopfzeile links als haftende Spalte, Inhalt rechts
     .psec--center   Kopfzeile mittig, Inhalt in drei Spalten
     .psec--panel    der ganze Abschnitt auf einer Tafel mit Rand
     .cards--bento   die erste Karte gross ueber zwei Spalten und zwei Zeilen
     .cards--list    Karten als Zeilen mit Haarlinien statt als Raster
     .rules--stack   Regeln als Verzeichnis: Nummer links, Text rechts
     .rules--tiles   Regeln als Kacheln in zwei Spalten
     .faq--cols      Fragen in zwei Spalten

   Unter 900px faellt alles auf die eine Spalte zurueck, die es schon gab —
   auf dem Telefon ist der Aufbau ohnehin derselbe.

   page.css laedt NACH dieser Datei und setzt .cards, .rules und .faq mit
   derselben Spezifitaet; darum stehen die Varianten hier als Doppelklasse
   (.cards.cards--list), sonst gewinnt das Raster aus page.css.
   ========================================================================== */

/* ---- immer ---------------------------------------------------------------- */
.psec--panel .shell{
  width:calc(100% - 2 * var(--gutter));padding:clamp(26px,3.6vw,60px) clamp(20px,3vw,56px);
  border-radius:clamp(18px,2vw,30px);border:1px solid rgba(244,238,228,.09);
  background:linear-gradient(180deg,rgba(244,238,228,.045),rgba(244,238,228,.02))}
/* die Signaturmarke der Kopfzeile sitzt links ausserhalb — auf der Tafel
   wuerde sie am Rand kleben, also rueckt sie ein */
.psec--panel .psec__head::before{left:auto;right:calc(100% + 8px)}

.cards.cards--list{grid-template-columns:1fr;gap:0;border-top:1px solid rgba(244,238,228,.14)}
.cards.cards--list > .card{
  display:grid;grid-template-columns:auto minmax(0,11rem) minmax(0,1fr) auto;
  align-items:center;column-gap:clamp(16px,2.2vw,36px);row-gap:.35rem;
  padding:clamp(18px,2.2vw,30px) clamp(6px,.8vw,14px);
  border:0;border-bottom:1px solid rgba(244,238,228,.1);border-radius:0;background:transparent}
.cards.cards--list > .card .card__ico{grid-row:span 2}
.cards.cards--list > .card .card__t{grid-column:2;margin:0;font-size:clamp(1rem,1.15vw,1.12rem)}
.cards.cards--list > .card .card__b{grid-column:3;margin:0;max-width:62ch}
.cards.cards--list > .card .card__meta{grid-column:2;margin:0}
.cards.cards--list > .card .card__go{grid-column:4;grid-row:1 / span 2}
.cards.cards--list > .card:not(:has(.card__ico)) .card__t{grid-column:1 / 3}
.cards.cards--list > .card:not(:has(.card__ico)) .card__meta{grid-column:1 / 3}
.cards.cards--list > .card::after{display:none}
.cards.cards--list > .card:hover{transform:translate3d(8px,0,0);background:rgba(244,238,228,.03);border-color:rgba(244,238,228,.1)}
@media (max-width:699px){
  .cards.cards--list > .card{grid-template-columns:auto minmax(0,1fr)}
  .cards.cards--list > .card .card__t,.cards.cards--list > .card .card__b,.cards.cards--list > .card .card__meta{grid-column:2}
  .cards.cards--list > .card .card__go{grid-column:2;grid-row:auto;justify-self:start}
}

/* ---- ab 900px ------------------------------------------------------------- */
@media (min-width:900px){

  /* geteilt: die Kopfzeile bleibt links stehen, waehrend rechts der Inhalt laeuft */
  .psec--split .shell{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);
    gap:clamp(28px,4.5vw,80px);align-items:start}
  .psec--split .psec__head{display:block;position:sticky;top:calc(var(--nav-h) + 28px);margin-bottom:0}
  .psec--split .psec__head > div{max-width:26ch}
  .psec--split .psec__lede{max-width:34ch}
  .psec--split .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .psec--split .rules{grid-template-columns:1fr}
  .psec--split .rules .rule{border-left:0;border-top:1px solid rgba(244,238,228,.1);
    padding-inline:0 clamp(20px,2.2vw,36px)}
  .psec--split .rules .rule:first-child{border-top:0}
  .psec--split .faq{margin-top:.2rem}

  /* mittig: die Kopfzeile steht in der Mitte, darunter drei Spalten */
  .psec--center .psec__head{flex-direction:column;align-items:center;text-align:center;gap:10px}
  .psec--center .psec__head::before{display:none}
  .psec--center .psec__head .label::after{left:50%;transform:translateX(-50%) scaleX(0)}
  body[data-pt] .psec--center .psec__head.mk-in .label::after{transform:translateX(-50%) scaleX(1)}
  .psec--center .psec__head > div{display:flex;flex-direction:column;align-items:center}
  .psec--center .psec__lede{margin-inline:auto;max-width:56ch}
  .psec--center .psec__title{max-width:22ch}
  .psec--center .cards{grid-template-columns:repeat(3,minmax(0,1fr))}
  .psec--center .rules{grid-template-columns:repeat(3,minmax(0,1fr))}

  /* Bento: die erste Karte traegt das Gewicht */
  .cards.cards--bento{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(0,auto)}
  .cards.cards--bento > .card:first-child{grid-column:span 2;grid-row:span 2;justify-content:flex-end;
    min-height:clamp(280px,30vw,440px);padding:clamp(26px,3vw,44px)}
  .cards.cards--bento > .card:first-child .card__t{font-size:clamp(1.5rem,2.4vw,2.3rem);line-height:1.08;
    letter-spacing:-.02em;max-width:18ch}
  .cards.cards--bento > .card:first-child .card__b{font-size:clamp(.96rem,1.1vw,1.08rem);max-width:46ch}
  .cards.cards--bento > .card:first-child .card__ico{position:absolute;top:clamp(22px,2.6vw,36px);left:clamp(26px,3vw,44px)}
  /* die Meta-Zeile wandert nach oben und wird zur Vorzeile; Titel und Text
     sitzen unten, wie auf einem Plakat */
  .cards.cards--bento > .card:first-child .card__meta{order:-1;margin:0 0 auto}
  .cards.cards--bento > .card:first-child:has(.card__ico) .card__meta{padding-left:calc(26px + 2.2rem)}
  .cards.cards--bento > .card:first-child .card__t{margin-top:auto}
  .cards.cards--bento > .card:first-child::after{width:60%;inset:auto auto -40% -20%}
  .psec--split .cards.cards--bento{grid-template-columns:repeat(2,minmax(0,1fr))}
  .psec--split .cards.cards--bento > .card:first-child{grid-column:span 2;grid-row:auto;min-height:clamp(220px,22vw,320px)}

  /* Verzeichnis: die Nummer wird zur Marginalie */
  .rules.rules--stack{grid-template-columns:1fr;border-top:0}
  .rules.rules--stack .rule{display:grid;grid-template-columns:clamp(64px,7vw,110px) minmax(0,1fr);
    column-gap:clamp(18px,2.4vw,40px);align-items:start;
    border-left:0;border-top:1px solid rgba(244,238,228,.12);
    padding:clamp(22px,2.6vw,38px) 0 clamp(24px,2.8vw,40px)}
  .rules.rules--stack .rule::before{left:0;right:auto;width:clamp(64px,7vw,110px)}
  .rules.rules--stack .rule__n{position:static;grid-row:span 2;align-self:start;
    font-family:var(--f-mono);font-weight:500;font-size:clamp(1.6rem,2.4vw,2.4rem);line-height:1;
    color:var(--ember);opacity:.9;-webkit-text-stroke:0;transform:none}
  .rules.rules--stack .rule__t{grid-column:2;margin-top:.1em;max-width:30ch}
  .rules.rules--stack .rule__b{grid-column:2;max-width:64ch}
  .rules.rules--stack .rule:hover .rule__n{transform:translate3d(6px,0,0)}

  /* Kacheln */
  .rules.rules--tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,1.4vw,20px);border-top:0;
    margin-top:clamp(12px,1.4vw,20px)}  /* Luft, wo davor Kennzahlen stehen (dortmund) */
  .rules.rules--tiles .rule{border:1px solid rgba(244,238,228,.1);border-radius:clamp(14px,1.4vw,22px);
    background:rgba(244,238,228,.03);padding:clamp(26px,2.8vw,40px) clamp(22px,2.4vw,36px)}
  .rules.rules--tiles .rule:first-child{border-left:1px solid rgba(244,238,228,.1)}
  .rules.rules--tiles .rule::before{border-radius:inherit inherit 0 0}
  .rules.rules--tiles .rule:hover{background:rgba(244,238,228,.05);border-color:rgba(226,85,30,.3)}
  .psec--center .rules.rules--tiles{grid-template-columns:repeat(2,minmax(0,1fr))}

  /* Fragen in zwei Spalten */
  .faq.faq--cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px clamp(14px,1.8vw,28px);align-items:start}
}
