/* ==========================================================================
   Servus Gelting — Partner (/partner)

   1:1 nach dem Canvas-Rendering. Quelle:
   canvas/roesterei/seite-partner.jsx — P1

   Aufbau: Hero, Filterleiste mit Zählern, Flagship-Bild mit Café-Block,
   Partner als Kartenraster, Partner-werden-CTA auf Espresso.
   ========================================================================== */


/* --------------------------------------------------------------------------
   Bänder
   -------------------------------------------------------------------------- */

.band--dunkel {
  background: var(--espresso);
  color: var(--cream);
}


/* --------------------------------------------------------------------------
   1. Hero
   -------------------------------------------------------------------------- */

.pt-hero { padding-block: 100px 56px; }

.pt-hero__ey {
  font-size: 12px;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--amber);
}

.pt-hero__titel {
  max-width: 1100px;
  margin-top: 18px;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 88px;
  line-height: 1;
  letter-spacing: .012em;
  text-transform: uppercase;
  color: var(--espresso);
}

.pt-hero__vorspann {
  max-width: 700px;
  margin-top: 26px;
  font-size: 19px;
  line-height: 1.65;
  color: var(--muted-brown);
}


/* --------------------------------------------------------------------------
   2. Filterleiste

   Anders als auf Aktuelles trägt jeder Knopf seine Anzahl mit.
   -------------------------------------------------------------------------- */

/* Der Block aus Filterleiste und Flagship trägt unten 56px, wie im
   Artboard — sonst rückt das Kartenraster zu nah heran. */
.pt-block { padding-bottom: 56px; }

/* Die Filterleiste steht unter dem Flagship und direkt über den Karten,
   die sie filtert. Die 32px Abstand saßen vorher am Flagship — mit der
   getauschten Reihenfolge gehören sie hierher. */
.pt-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 32px;
}

.pt-filter button {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 13px 20px;
  border: 1.5px solid var(--linie);
  border-radius: 6px;
  background: transparent;
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--espresso);
  transition: background-color var(--dur-fast) var(--ease-out),
              border-color var(--dur-fast) var(--ease-out),
              color var(--dur-fast) var(--ease-out);
}

.pt-filter button:hover { border-color: var(--espresso); }

/* partner.js blendet Knöpfe ohne Karten aus und die ganze Leiste, wenn
   nur eine Art übrig ist; ohne JavaScript bleibt sie über hidden aus.
   Ohne diese Regeln gewänne display: flex gegen das hidden. */
.pt-filter[hidden],
.pt-filter button[hidden] { display: none; }

.pt-filter button.ist-aktiv {
  background: var(--espresso);
  border-color: var(--espresso);
  color: var(--cream);
}

.pt-filter__zahl {
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: 11px;
  line-height: 1;
  opacity: .7;
}


/* --------------------------------------------------------------------------
   3. Flagship — das eigene Café
   -------------------------------------------------------------------------- */

.flagship {
  position: relative;
  height: 560px;
  border-radius: 8px;
  overflow: hidden;
}

.flagship__bild { position: absolute; inset: 0; }

/* Verlauf von links unten nach rechts oben (72deg) — links steht der Text */
.flagship__schleier {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    72deg,
    rgba(20, 14, 8, .92) 0%,
    rgba(20, 14, 8, .6) 40%,
    rgba(20, 14, 8, .08) 70%,
    rgba(20, 14, 8, .3) 100%
  );
}

.flagship__marke {
  position: absolute;
  top: 28px;
  left: 44px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 16px;
  border-radius: 999px;
  background: var(--amber);
  color: var(--cream);
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
  line-height: 1;
}

.flagship__marke::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--cream);
}

.flagship__text {
  position: absolute;
  left: 44px;
  right: 44px;
  bottom: 48px;
  max-width: 640px;
  color: var(--cream);
}

.flagship__ey {
  font-size: 12px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(246, 238, 223, .82);
}

.flagship__titel {
  margin-top: 12px;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 64px;
  line-height: .98;
  letter-spacing: .012em;
  text-transform: uppercase;
  color: var(--cream);
}

.flagship__body {
  max-width: 520px;
  margin-top: 18px;
  font-size: 17.5px;
  line-height: 1.65;
  color: rgba(246, 238, 223, .92);
}

.flagship__adresse {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 16px 0 26px;
  font-size: 14.5px;
  color: rgba(246, 238, 223, .86);
}


/* --------------------------------------------------------------------------
   4. Partner-Raster
   -------------------------------------------------------------------------- */

.partnerraster {
  padding-bottom: 96px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

/* Kartenfläche im helleren Ton (--off-white, #FFFDF8) statt der ruhigen
   Zweitfläche des Entwurfs (--flaeche-karte, #F9F2E4) — auf Wunsch des
   Kunden, 15.09.2026. Passt zum weißen Grund der Logokarten. */
.partner {
  display: flex;
  flex-direction: column;
  background: var(--off-white);
  border: 1px solid var(--linie);
  border-radius: 6px;
  overflow: hidden;
}

.partner[hidden] { display: none; }

.partner__bild { aspect-ratio: 4 / 3; }

.partner__inhalt {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 22px 24px 26px;
}

/* Kategorie als umrandete Pille mit Punkt */
.partner__kat {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 11px;
  border: 1px solid var(--linie);
  border-radius: 999px;
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: 10px;
  letter-spacing: .15em;
  text-transform: uppercase;
  line-height: 1;
  color: var(--amber);
}

.partner__kat::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--amber);
}

.partner__name {
  margin-top: 14px;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 25px;
  line-height: 1.02;
  letter-spacing: .012em;
  text-transform: uppercase;
  color: var(--espresso);
}

.partner__ort {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 9px;
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: .02em;
  /* 1.9 wie überall bei der Mono-Auszeichnung — ohne diese Zeile
     erbt die Zeile 1.55 und die Karte wird 4px zu niedrig. */
  line-height: 1.9;
  color: var(--muted-brown);
}

.partner__text {
  flex: 1;
  margin: 14px 0 18px;
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--muted-brown);
}

.partner__link {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--amber);
  text-decoration: none;
}
.partner__link:hover { text-decoration: underline; }


/* --------------------------------------------------------------------------
   5. Partner werden — auf Espresso, zentriert
   -------------------------------------------------------------------------- */

.partnerwerden {
  padding-block: 96px 104px;
  text-align: center;
}

.partnerwerden .eyebrow { display: block; margin-bottom: 16px; color: var(--tan); }

.partnerwerden .h2 {
  font-size: 54px;
  line-height: 1.04;
  color: var(--cream);
}

.partnerwerden p {
  max-width: 600px;
  margin: 20px auto 32px;
  font-size: 18px;
  line-height: 1.65;
  color: rgba(246, 238, 223, .78);
}


/* --------------------------------------------------------------------------
   6. Schmalere Fenster

   ACHTUNG: Das Mobil-Artboard „07 · Partner — Mobile 390"
   (SeitePartnerMobile) ist hier NICHT umgesetzt. Dort scrollt die
   Filterleiste waagerecht. Was folgt, bricht nur die Desktop-Fassung um.
   -------------------------------------------------------------------------- */

@media (max-width: 1200px) {
  .partnerraster { grid-template-columns: repeat(2, 1fr); }
  .flagship { height: 480px; }
  .flagship__titel { font-size: clamp(38px, 5vw, 64px); }
}

@media (max-width: 900px) {
  .pt-hero { padding-block: 64px 40px; }
  .pt-hero__titel { font-size: clamp(38px, 9vw, 88px); }
  .partnerraster { grid-template-columns: 1fr; }
  .flagship { height: auto; min-height: 460px; }
  .flagship__text { left: 24px; right: 24px; bottom: 32px; }
  .flagship__marke { top: 20px; left: 24px; }
  .partnerwerden .h2 { font-size: clamp(30px, 6.5vw, 54px); }
}


/* --------------------------------------------------------------------------
   Mobil — Artboard „07 · Partner — Mobile 390"
   Gemessen gegen die eigenständige Artboard-Ausgabe des Kunden
   (_referenz/partner-mobile.html), geprüft mit _abgleich.html.

   ABWEICHUNG, bewusst: Das Artboard stellt die Filterleiste über das
   Flagship. Bei uns steht sie darunter, direkt über den Karten, die sie
   filtert — vom Kunden entschieden, siehe CLAUDE.md. Die Abstände sind
   deshalb gespiegelt: Was im Artboard zwischen Hero und Filtern liegt
   (48px), liegt bei uns zwischen Hero und Flagship; die 46px zwischen
   Filtern und Flagship liegen bei uns zwischen Flagship und Filtern.
   Die Summe beider Blöcke bleibt gleich.
   -------------------------------------------------------------------------- */

@media (max-width: 767px) {

  /* Die Vorlage setzt durchgehend 24px Seitenrand; die geteilte
     Grundregel käme bei 390px auf 26px. */
  .pt-hero, .partnerraster, .partnerwerden { padding-inline: 24px; }

  /* --- Hero ------------------------------------------------------------ */
  .pt-hero { padding-block: 40px 30px; }
  .pt-hero__ey { font-size: 10.5px; line-height: 1.9; letter-spacing: .22em; }

  .pt-hero__titel {
    margin-top: 14px;
    font-size: 42px;
    line-height: 1;
    letter-spacing: .01em;
  }

  .pt-hero__vorspann { margin-top: 18px; font-size: 15px; line-height: 1.6; }

  /* --- Flagship und Filter ---------------------------------------------
     Der Block trägt keinen Seitenrand: Die Karte bekommt ihn als Rand,
     die Filterreihe als Innenabstand — sie rollt waagerecht und muss
     dafür über die volle Breite laufen. */
  .pt-block { padding: 18px 0 40px; }

  .flagship { height: 520px; min-height: 0; margin-inline: 24px; }
  .flagship__marke {
    top: 18px;
    left: 18px;
    padding: 7px 13px;
    font-size: 10px;
    letter-spacing: .15em;
  }
  .flagship__marke::before { width: 6px; height: 6px; }

  .flagship__text { left: 20px; right: 20px; bottom: 24px; max-width: none; }
  .flagship__ey { font-size: 10.5px; line-height: 1.9; letter-spacing: .18em; }

  .flagship__titel {
    margin-top: 10px;
    font-size: 36px;
    line-height: .98;
    letter-spacing: .01em;
  }

  .flagship__body { margin-top: 14px; font-size: 15px; line-height: 1.6; }
  .flagship__adresse { gap: 8px; margin: 14px 0 20px; font-size: 13.5px; line-height: 1.4; }

  .flagship__text .btn {
    display: flex;
    width: 100%;
    justify-content: center;
    padding: 15px 26px;
    font-size: 13px;
    letter-spacing: .1em;
    border-radius: 8px;
  }

  /* Sieben wären es hier nicht, drei sind es — aber „Verkostungsstelle 3"
     ist breit genug, dass die Reihe auch zu dritt über den Rand läuft.
     Also derselbe Rollbereich wie bei den Herkunftsregionen. */
  .pt-filter {
    flex-wrap: nowrap;
    gap: 8px;
    margin-top: 46px;
    padding-inline: 24px;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .pt-filter::-webkit-scrollbar { display: none; }

  .pt-filter button {
    flex: 0 0 auto;
    gap: 9px;
    padding: 12px 16px;
    font-size: 11.5px;
    letter-spacing: .1em;
    border-radius: 6px;
  }
  .pt-filter__zahl { font-size: 10.5px; line-height: 1; letter-spacing: .02em; }

  /* --- Partner-Karten ---------------------------------------------------- */
  .partnerraster {
    display: flex;
    flex-direction: column;
    gap: 22px;
    padding-block: 0 44px;
  }

  .partner__bild { height: 256px; }

  /* Block statt Flex: Marke und Verweis sind inline-flex und stehen in
     der Vorlage in Zeilenkaesten, die zusammen sechs Pixel hoeher sind
     als die Elemente selbst. Als Flex-Kinder entfallen diese Kaesten —
     derselbe Fall wie bei den Bereichsverweisen auf „Ueber uns". */
  .partner__inhalt { display: block; padding: 20px 22px 24px; }

  .partner__kat { padding: 6px 11px; font-size: 10px; }
  .partner__name { margin-top: 14px; font-size: 24px; line-height: 1.04; letter-spacing: .01em; }
  .partner__ort {
    gap: 8px;
    margin-top: 9px;
    font-size: 11.5px;
    line-height: 1.9;
    letter-spacing: .02em;
  }
  .partner__text { margin: 14px 0 18px; font-size: 15px; line-height: 1.6; }
  .partner__link { font-size: 11.5px; line-height: 1.55; }

  /* --- Partner werden ----------------------------------------------------- */
  .partnerwerden { padding-block: 46px 50px; }

  .partnerwerden .eyebrow {
    display: block;
    margin-bottom: 14px;
    font-size: 10.5px;
    letter-spacing: .26em;
  }
  .partnerwerden .h2 { font-size: 32px; line-height: 1.04; letter-spacing: .01em; }
  .partnerwerden p { margin: 16px 0 26px; font-size: 15px; line-height: 1.6; }

  .partnerwerden .btn {
    display: flex;
    width: 100%;
    justify-content: center;
    padding: 15px 26px;
    font-size: 13px;
    letter-spacing: .1em;
    border-radius: 8px;
  }
}
