/* =========================================================================
   photovoltaik-bayreuth.css
   ERGÄNZUNG zu styles.css und home.css (nicht deren Ersatz!).
   Die Reihenfolge im <head> ist: styles.css, home.css, dann diese Datei.
   Dadurch erben Kopfzeile, Fußzeile, Buttons, Farben und Schrift (Inter)
   automatisch das Design der Startseite. Hier stehen NUR die zusätzlichen
   Bausteine, die es nur auf der Bayreuth-Seite gibt. Alle Farben stammen
   aus den bestehenden Variablen (--ink, --blue, --yellow, --soft ...).
   ========================================================================= */

/* Sanfter Übergang: dunkle Abschnitte gehen nicht hart auf reines Weiß über,
   sondern auf den hellen Grundton --soft der Startseite. */
.pvb-page { background: var(--soft); }

.pvb-container {
  width: min(100%, var(--inner));
  margin: 0 auto;
  padding-left: var(--page);
  padding-right: var(--page);
}

.pvb-section { padding: clamp(64px, 8vw, 110px) 0; }

.pvb-head {
  max-width: 820px;
  margin: 0 auto clamp(34px, 5vw, 60px);
  text-align: center;
}
.pvb-eyebrow {
  display: inline-block;
  color: var(--blue-dark);
  font-size: 0.8rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  background: var(--blue-soft);
  padding: 0.45rem 0.95rem;
  border-radius: 999px;
  margin-bottom: 1rem;
}
.pvb-eyebrow--light { color: var(--ink); background: var(--yellow); }
.pvb-head h2 { margin: 0 auto; }

.skip-link {
  position: absolute; left: -999px; top: 0;
  background: var(--ink); color: #fff; padding: 12px 18px;
  border-radius: 0 0 12px 0; z-index: 999;
}
.skip-link:focus { left: 0; }

/* ---------- Hero ---------- */
.pvb-hero {
  position: relative;
  min-height: calc(100vh - var(--header));
  display: grid;
  align-items: flex-end;
  overflow: hidden;
  color: #fff;
}
.pvb-hero__media { position: absolute; inset: 0; z-index: 0; }
.pvb-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.pvb-hero__scrim {
  position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(180deg, rgba(7, 24, 39, 0.5) 0%, rgba(7, 24, 39, 0.32) 34%, rgba(7, 24, 39, 0.92) 100%),
    radial-gradient(circle at 14% 12%, rgba(27, 145, 208, 0.34), transparent 34%);
}
.pvb-hero__inner {
  position: relative; z-index: 2;
  padding-top: clamp(3rem, 7vw, 6rem);
  padding-bottom: clamp(3rem, 6vw, 5rem);
}
.pvb-badge {
  display: inline-flex; align-items: center;
  background: var(--yellow); color: var(--ink);
  font-weight: 900; font-size: 0.85rem;
  padding: 0.55rem 1rem; border-radius: 999px; margin-bottom: 1.3rem;
}
.pvb-hero h1 { color: #fff; margin: 0 0 1.1rem; max-width: 940px; }
.pvb-hero__sub {
  max-width: 680px; margin: 0 0 2rem;
  font-size: clamp(1.02rem, 1.4vw, 1.2rem);
  line-height: 1.7; color: rgba(255, 255, 255, 0.86);
}
.pvb-hero__sub strong { color: #fff; }
.pvb-hero__ctas { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 2rem; position: relative; }
.pvb-hero__trust {
  list-style: none; display: flex; flex-wrap: wrap;
  gap: 0.6rem 1.4rem; padding: 0; margin: 0;
  font-size: 0.92rem; color: rgba(255, 255, 255, 0.86);
}
.pvb-hero__trust li { position: relative; padding-left: 1.3rem; }
.pvb-hero__trust li::before { content: "✓"; position: absolute; left: 0; color: var(--yellow); font-weight: 900; }

/* CTA-Button (Hero) mit Reitermenü */
/* Hinweis: Das frühere Aufklapp-Reitermenü am Hero-Button wurde entfernt.
   Es klappte auf Touch-Geräten unsauber auf und verdeckte den Text. Der Button
   führt jetzt direkt zum Formular; die Zielgruppe (Privat/Gewerbe/Freifläche)
   wählt man dort über die Reiter im Formular. */
.pvb-cta-wrap { position: relative; }

/* ---------- Ablauf-Abschnitt "So läuft es ab" mit Bildhintergrund (background-panels.jpg) ---------- */
.pvb-ablauf-bg {
  position: relative; overflow: hidden;
}
.pvb-ablauf-bg::before {
  content: ""; position: absolute; inset: 0; z-index: 0;
  background-image:
    linear-gradient(180deg, rgba(246, 250, 252, 0.92), rgba(234, 243, 249, 0.9)),
    url("/assets/background-panels.jpg");
  background-size: cover; background-position: center;
}
.pvb-ablauf-bg > * { position: relative; z-index: 1; }

/* ---------- Kapazitäts-Hinweis ---------- */
.pvb-capacity {
  padding: clamp(48px, 6vw, 76px) 0;
  position: relative; overflow: hidden;
}
.pvb-capacity::before {
  content: ""; position: absolute; inset: 0; z-index: 0;
  background-image:
    linear-gradient(135deg, rgba(7, 24, 39, 0.92), rgba(11, 33, 53, 0.9)),
    url("/assets/background-panels2.jpg");
  background-size: cover; background-position: center;
}
.pvb-capacity > * { position: relative; z-index: 1; }
.pvb-capacity__box {
  display: flex; align-items: center; gap: 1.6rem;
  color: #fff; border-radius: 22px;
  padding: clamp(1.6rem, 3vw, 2.4rem);
  background: linear-gradient(135deg, var(--ink), var(--ink-2));
}
.pvb-capacity__num {
  flex: none; width: 76px; height: 76px; border-radius: 50%;
  background: var(--yellow); color: var(--ink);
  font-size: 2.1rem; font-weight: 900; display: grid; place-items: center;
}
.pvb-capacity__box h2 { color: #fff; margin: 0 0 0.5rem; font-size: clamp(1.3rem, 2.4vw, 1.75rem); }
.pvb-capacity__box p { color: rgba(255, 255, 255, 0.84); line-height: 1.7; margin: 0; max-width: none; }

/* ---------- Ablauf-Schritte ---------- */
.pvb-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; }
.pvb-step {
  background: #fff; border: 1px solid var(--line);
  border-radius: 18px; padding: 1.7rem; box-shadow: var(--shadow-soft);
}
.pvb-step__num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border-radius: 50%;
  background: var(--yellow); color: var(--ink); font-weight: 900; margin-bottom: 0.8rem;
}
.pvb-step h3 { margin: 0 0 0.4rem; font-size: 1.1rem; }
.pvb-step p { margin: 0; color: var(--muted); line-height: 1.6; }

/* ---------- Zielgruppen-Karten ---------- */
.pvb-audience-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.4rem; }
.pvb-card {
  background: #fff; border: 1px solid var(--line);
  border-radius: 18px; overflow: hidden; display: flex; flex-direction: column;
  box-shadow: var(--shadow-soft);
}
.pvb-card__img { width: 100%; height: 190px; object-fit: cover; display: block; }
.pvb-card__body { padding: 1.6rem; display: flex; flex-direction: column; gap: 0.65rem; flex-grow: 1; }
.pvb-card--dark { color: #fff; border-color: transparent; background: linear-gradient(135deg, var(--ink), var(--ink-2)); }
/* Kontrast-Fix: in der dunklen Karte ist ALLES hell */
.pvb-card--dark h3,
.pvb-card--dark p,
.pvb-card--dark .pvb-card__link { color: #fff; }
.pvb-tag {
  align-self: flex-start; font-size: 0.72rem; font-weight: 900;
  letter-spacing: 0.05em; text-transform: uppercase;
  padding: 0.32rem 0.72rem; border-radius: 999px;
  background: var(--blue-soft); color: var(--blue-dark);
}
.pvb-tag--accent { background: var(--yellow); color: var(--ink); }
.pvb-card h3 { margin: 0; font-size: 1.28rem; }
.pvb-card p { margin: 0; color: var(--muted); line-height: 1.6; flex-grow: 1; }
.pvb-card--dark p { color: rgba(255, 255, 255, 0.82); }
.pvb-card__link {
  color: var(--text); font-weight: 900; text-decoration: none;
  border-bottom: 2px solid var(--yellow); align-self: flex-start; padding-bottom: 2px;
}

/* ---------- Warum-Grid ---------- */
.pvb-why-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.2rem; }
.pvb-why {
  background: rgba(255, 255, 255, 0.94); border: 1px solid var(--line);
  border-radius: 18px; padding: 1.6rem;
}
.pvb-why h3 { margin: 0 0 0.4rem; font-size: 1.08rem; }
.pvb-why p { margin: 0; color: var(--muted); line-height: 1.6; }

/* ---------- Vertrauens-Videobereich (ci.mp4) ---------- */
.pvb-trust {
  position: relative; overflow: hidden; color: #fff;
  min-height: 640px; display: flex; align-items: center;
}
.pvb-trust__media { position: absolute; inset: 0; z-index: 0; }
.pvb-trust__video { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.pvb-trust__scrim {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(7, 24, 39, 0.82) 0%, rgba(7, 24, 39, 0.74) 45%, rgba(7, 24, 39, 0.92) 100%);
}
.pvb-trust__inner { position: relative; z-index: 2; width: 100%; text-align: center; }
.pvb-trust__inner h2 { color: #fff; margin: 0 auto 2.4rem; }
.pvb-trust-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.2rem; }
.pvb-trust-item {
  background: rgba(7, 24, 39, 0.4); border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 18px; padding: 1.8rem 1.2rem;
  display: flex; flex-direction: column; align-items: center; gap: 0.6rem;
}
.pvb-counter-row { display: flex; align-items: baseline; gap: 0.12rem; }
.pvb-counter { font-size: clamp(2.4rem, 5vw, 3.2rem); font-weight: 900; color: var(--yellow); line-height: 1; }
.pvb-counter-plus { font-size: clamp(1.4rem, 3vw, 2rem); font-weight: 900; color: var(--yellow); opacity: 0; transition: opacity 0.3s ease; }
.pvb-trust-item.is-counted .pvb-counter-plus { opacity: 1; }
.pvb-trust-item p { margin: 0; font-size: 0.95rem; line-height: 1.5; color: rgba(255, 255, 255, 0.84); }
.pvb-trust-icon { width: 42px; height: 42px; color: var(--yellow); }
.pvb-trust-label { font-size: 0.75rem; font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase; color: var(--yellow); }
.pvb-rotator { font-size: 1.05rem; font-weight: 780; color: #fff; min-height: 1.4em; transition: opacity 0.25s ease; }
.pvb-rotator.is-fading { opacity: 0; }

/* ---------- Freiflächen-/Utility-Videobereich (utility.mp4, Vollbreite) ---------- */
.pvb-utility {
  position: relative; overflow: hidden; color: #fff;
  min-height: 620px; display: flex; align-items: center;
}
.pvb-utility__media { position: absolute; inset: 0; z-index: 0; }
.pvb-utility__video { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.pvb-utility__scrim {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(115deg, rgba(7, 24, 39, 0.9) 0%, rgba(7, 24, 39, 0.66) 46%, rgba(7, 24, 39, 0.34) 100%);
}
.pvb-utility__inner { position: relative; z-index: 2; width: 100%; }
.pvb-utility__inner h2 { color: #fff; margin: 0 0 1rem; }
.pvb-utility__lead { max-width: 620px; color: rgba(255, 255, 255, 0.86); line-height: 1.7; margin: 0 0 1.6rem; }
.pvb-utility-list {
  list-style: none; padding: 0; margin: 0;
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.8rem 1.6rem; max-width: 720px;
}
.pvb-utility-list li { position: relative; padding-left: 1.7rem; color: rgba(255, 255, 255, 0.92); line-height: 1.5; }
.pvb-utility-list li::before {
  content: "✓"; position: absolute; left: 0; top: 0;
  color: var(--ink); background: var(--yellow);
  width: 20px; height: 20px; border-radius: 50%;
  display: grid; place-items: center; font-size: 0.72rem; font-weight: 900;
}

/* ---------- Lokaler SEO-Text mit Bildhintergrund (bayreuth2.jpg) ---------- */
.pvb-local {
  position: relative; overflow: hidden; color: #fff;
}
.pvb-local::before {
  content: ""; position: absolute; inset: 0; z-index: 0;
  background-image:
    linear-gradient(135deg, rgba(7, 24, 39, 0.6), rgba(7, 24, 39, 0.4)),
    url("/assets/black-panels-background.jpg");
  background-size: cover; background-position: center;
}
.pvb-local__inner { position: relative; z-index: 1; max-width: 820px; margin: 0 auto; }
.pvb-local__inner h2 { color: #fff; margin-bottom: 1rem; }
.pvb-local__inner p { color: rgba(255, 255, 255, 0.88); line-height: 1.8; margin-bottom: 1.2rem; }

/* ---------- FAQ ---------- */
.pvb-faq-list { max-width: 820px; margin: 0 auto; display: flex; flex-direction: column; gap: 0.8rem; }
.pvb-faq {
  border: 1px solid var(--line); border-radius: 14px;
  padding: 1rem 1.3rem; background: #fff; box-shadow: var(--shadow-soft);
}
.pvb-faq summary { cursor: pointer; font-weight: 900; color: var(--ink); list-style: none; }
.pvb-faq summary::-webkit-details-marker { display: none; }
.pvb-faq summary::after { content: "+"; float: right; font-weight: 900; color: var(--blue); }
.pvb-faq[open] summary::after { content: "–"; }
.pvb-faq p { margin: 0.8rem 0 0; color: var(--muted); line-height: 1.6; }

/* ---------- Formular ---------- */
.pvb-form-section {
  color: #fff;
  background: linear-gradient(135deg, var(--ink), var(--ink-2));
}
.pvb-form-wrap {
  max-width: 860px; margin: 0 auto; background: #fff; color: var(--text);
  border-radius: 24px; padding: clamp(1.6rem, 4vw, 3rem); box-shadow: var(--shadow);
}
.pvb-form-intro { text-align: center; margin-bottom: 2rem; }
.pvb-form-intro h2 { margin: 0.6rem auto; }
.pvb-form-intro p { color: var(--muted); line-height: 1.7; }
.pvb-tabs { display: flex; flex-wrap: wrap; gap: 0.6rem; border: none; padding: 0; margin: 0 0 0.6rem; }
.pvb-tabs legend { width: 100%; font-weight: 900; color: var(--ink); margin-bottom: 0.6rem; padding: 0; }
.pvb-tab { position: relative; }
.pvb-tab input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.pvb-tab span {
  display: inline-flex; padding: 0.65rem 1.2rem; border-radius: 999px;
  border: 2px solid var(--line); color: var(--ink); font-weight: 780; cursor: pointer;
}
.pvb-tab input:checked + span { background: var(--yellow); border-color: var(--yellow); color: var(--ink); }
.pvb-tab input:focus-visible + span { outline: 3px solid var(--blue); outline-offset: 2px; }
.pvb-tabs-note { font-size: 0.85rem; color: var(--muted); margin: 0 0 1.6rem; }
.pvb-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem; margin-bottom: 1.1rem; }
.pvb-field label { display: block; font-weight: 780; color: var(--ink); margin-bottom: 0.4rem; font-size: 0.92rem; }
.pvb-field input[type="text"],
.pvb-field input[type="email"],
.pvb-field input[type="tel"] {
  width: 100%; border: 1px solid var(--line); border-radius: 10px;
  padding: 0.8rem 0.9rem; font-family: var(--font); font-size: 0.98rem;
  color: var(--text); background: var(--soft);
}
.pvb-field--full { margin-bottom: 1.1rem; }
.pvb-field--consent { margin-bottom: 1.2rem; font-size: 0.9rem; color: var(--muted); }
.pvb-field--consent a { color: var(--blue-dark); }
.pvb-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.pvb-form .btn { width: 100%; }

/* ---------- Responsive ---------- */
@media (max-width: 960px) {
  .pvb-steps { grid-template-columns: 1fr; }
  .pvb-audience-grid { grid-template-columns: 1fr; }
  .pvb-why-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pvb-trust-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pvb-utility-list { grid-template-columns: 1fr; }
  .pvb-form-grid { grid-template-columns: 1fr; }
  .pvb-capacity__box { flex-direction: column; text-align: center; }
}
@media (max-width: 560px) {
  .pvb-why-grid { grid-template-columns: 1fr; }
  .pvb-trust-grid { grid-template-columns: 1fr; }
  .pvb-trust { min-height: 800px; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }


/* ---------- Ratgeber-Hinweis (CTA zum PV-Ratgeber) ---------- */
.pvb-ratgeber {
  padding: clamp(40px, 5vw, 64px) 0;
}
.pvb-ratgeber__box {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 1.4rem;
  background: linear-gradient(135deg, var(--ink), var(--ink-2));
  color: #fff; border-radius: 22px;
  padding: clamp(1.6rem, 3vw, 2.4rem) clamp(1.6rem, 3vw, 2.6rem);
}
.pvb-ratgeber__text { max-width: 640px; }
.pvb-ratgeber__eyebrow {
  display: inline-block; color: var(--ink); background: var(--yellow);
  font-size: 0.72rem; font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase;
  padding: 0.3rem 0.7rem; border-radius: 999px; margin-bottom: 0.7rem;
}
.pvb-ratgeber__box h2 { color: #fff; font-size: clamp(1.3rem, 2.4vw, 1.75rem); margin: 0 0 0.5rem; }
.pvb-ratgeber__box p { color: rgba(255, 255, 255, 0.84); line-height: 1.6; margin: 0; max-width: none; }
.pvb-ratgeber__box .btn { flex: none; }

@media (max-width: 720px) {
  .pvb-ratgeber__box { flex-direction: column; align-items: flex-start; }
  .pvb-ratgeber__box .btn { width: 100%; }
}