/* GV Premium — Frontend (Badge, Formulare, Partner-Konto)
   Folgt DESIGN-SYSTEM.md (Quiet Luxury): Haarlinien statt Boxen, Label-Stimme,
   radius 0. Token-Fallbacks, falls eine Seite die gv-quiet-Blöcke nicht lädt. */

.gv-premium, .gv-premium-place, .gv-premium-profile, .gv-embeds, .gv-gallery {
  --gvp-ink: var(--color-ink, #1F211E);
  --gvp-stone: var(--color-stone, #EDEAE3);
  --gvp-stone-deep: var(--color-stone-deep, #DDD8CC);
  --gvp-moss: var(--color-moss, #4A5443);
  --gvp-terracotta: var(--color-terracotta-deep, #8A4F36);
  --gvp-mist: var(--color-mist, #66665E);
  --gvp-sans: var(--font-sans, 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif);
  --gvp-serif: var(--font-serif, 'Cormorant Garamond', 'Iowan Old Style', Palatino, Georgia, serif);
  --gvp-label: var(--text-label, 0.72rem);
  --gvp-track: var(--tracking-label, 0.14em);
  --gvp-premium: #6B2433; /* Bordeaux — DER Premium-Akzent (Remco 2026-06-12) */
}

/* ---- Label-Stimme ---- */
.gv-premium .gv-p-label {
  font-family: var(--gvp-sans);
  font-size: var(--gvp-label);
  letter-spacing: var(--gvp-track);
  text-transform: uppercase;
  color: var(--gvp-mist);
  font-weight: 500;
  margin: 0 0 10px;
}

/* ---- «Premium»-Badge (Wording-Guard: keine Empfehlung implizieren) ---- */
/* Archiv/Index-Zeile: Basis-Label (der Chip kommt aus archiv.css, Bordeaux) */
body.geodir-archive .geodir-post.gv-premium-place .geodir-entry-title::before,
.gv-premium-place .geodir-entry-title::before {
  content: "✓ Premium";
  display: block;
  font-family: var(--font-sans, Arial, sans-serif);
  font-size: var(--text-label, 0.72rem);
  font-weight: 500;
  letter-spacing: var(--tracking-label, 0.14em);
  text-transform: uppercase;
  color: #6B2433;
  margin: 0 0 6px;
}
/* Profilseite: stilles Label über dem Betriebsnamen (wie Archiv-Zeile) */
body.gv-premium-profile .entry-title::before,
body.gv-premium-profile h1.geodir-entry-title::before {
  content: "✓ Premium";
  display: block;
  width: fit-content;
  background: #6B2433;
  color: var(--color-field, #F7F5F0);
  padding: 5px 12px 4px;
  font-family: var(--font-sans, Arial, sans-serif);
  font-size: var(--text-label, 0.72rem);
  font-weight: 500;
  letter-spacing: var(--tracking-label, 0.14em);
  text-transform: uppercase;
  margin: 0 0 12px;
}
/* Profilseite: Premium-Bar über dem Faktenblock (gg-contact-card).
   Der content (mit Jahreszahl) kommt server-seitig aus class-badge.php
   (<style id="gv-premium-bar">) — nur auf Premium-Profilen. */
body.gv-premium-profile .gg-contact-card::before {
  display: block;
  box-sizing: border-box;
  width: 100%;
  background: var(--gvp-premium, #6B2433);
  color: var(--color-field, #F7F5F0);
  font-family: var(--font-sans, Arial, sans-serif);
  font-size: var(--text-label, 0.72rem);
  font-weight: 500;
  letter-spacing: var(--tracking-label, 0.14em);
  text-transform: uppercase;
  padding: 11px 18px;
  margin: 0 0 22px;
}
/* In der Premium-Box (Ortsseiten) trägt der Kicker das Badge */
.gv-premium-box .gv-premium-flag { color: #6B2433; font-weight: 600; }

/* ---- Hinweise ---- */
.gv-premium .gv-note {
  border-top: 1px solid var(--gvp-stone-deep);
  border-bottom: 1px solid var(--gvp-stone-deep);
  padding: 14px 0;
  margin: 18px 0;
  font-size: 0.9375rem;
  line-height: 1.6;
}
.gv-premium .gv-note-ok { color: var(--gvp-moss); }
.gv-premium .gv-note-err { color: var(--gvp-terracotta); }

/* ---- Formulare: stille Felder (Haarlinie, kein Radius, Moss-Fokus) ---- */
.gv-premium .gv-form { max-width: var(--measure, 680px); }
.gv-premium .gv-field { margin: 0 0 18px; }
.gv-premium .gv-field label {
  display: block;
  font-family: var(--gvp-sans);
  font-size: var(--gvp-label);
  letter-spacing: var(--gvp-track);
  text-transform: uppercase;
  color: var(--gvp-mist);
  font-weight: 500;
  margin-bottom: 6px;
}
.gv-premium input[type="text"],
.gv-premium input[type="email"],
.gv-premium input[type="tel"],
.gv-premium textarea {
  width: 100%;
  /* Heller als Stone gefüllt — Felder müssen ohne Fokus auffindbar sein */
  background: var(--color-field, #F7F5F0);
  border: 1px solid var(--gvp-stone-deep);
  border-radius: 0;
  padding: 10px 13px;
  font-family: var(--gvp-sans);
  font-size: 1rem;
  color: var(--gvp-ink);
  box-shadow: none;
}
.gv-premium input:focus, .gv-premium textarea:focus {
  outline: none;
  border-color: var(--gvp-moss);
  box-shadow: none;
}
.gv-premium .gv-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 28px;
}
@media (max-width: 560px) { .gv-premium .gv-grid { grid-template-columns: 1fr; } }
.gv-premium .gv-check label {
  /* Flex statt block: Checkbox und Text zwingend auf einer Zeile — Astra
     bricht die Checkbox sonst auf eigene Zeile (Remco 25.08.2026). */
  display: flex;
  align-items: flex-start;
  gap: 9px;
  font-size: 0.9375rem;
  text-transform: none;
  letter-spacing: 0;
  color: var(--gvp-ink);
  font-weight: 400;
  line-height: 1.6;
}
.gv-premium .gv-check input {
  margin: 4px 0 0;
  flex: 0 0 auto;
  display: inline-block;
  width: auto;
}
.gv-premium .gv-hint {
  display: block;
  font-size: 0.875rem;
  color: var(--gvp-mist);
  margin-top: 6px;
  line-height: 1.6;
}
/* Honeypot: visuell raus, für Bots da */
.gv-premium .gv-hp { position: absolute !important; left: -9999px !important; }

/* ---- Radio-Zeilen (Kundentyp / Anliegen im Offerten-Formular) ---- */
.gv-premium .gv-radio-row {
  border: none;
  padding: 0;
  margin: 0 0 20px;
}
.gv-premium .gv-radio-row legend {
  font-family: var(--gvp-sans);
  font-size: var(--gvp-label);
  letter-spacing: var(--gvp-track);
  text-transform: uppercase;
  color: var(--gvp-mist);
  font-weight: 500;
  padding: 0;
  margin-bottom: 8px;
}
.gv-premium .gv-radio-row label {
  display: block;
  font-size: 0.9375rem;
  line-height: 1.6;
  padding: 7px 0;
  border-top: 1px solid var(--gvp-stone-deep);
  cursor: pointer;
}
.gv-premium .gv-radio-row label:last-of-type { border-bottom: 1px solid var(--gvp-stone-deep); }
.gv-premium .gv-radio-row input { margin-right: 10px; accent-color: var(--gvp-moss); }

/* ---- /anfrage/ — Weiterleitungs-Seite (Free-Profil-Flow) ---- */
.gv-premium.gv-redirect { max-width: var(--measure, 680px); }
.gv-premium.gv-redirect .gv-direct {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 26px;
  border-top: 1px solid var(--gvp-stone-deep);
  border-bottom: 1px solid var(--gvp-stone-deep);
  padding: 16px 0;
  margin: 22px 0 34px;
}
/* Alternativen-Sektion: hellere Fläche (Feld-Ton der CI) — die Liste soll
   gegenüber dem nüchternen Free-Hinweis darüber sichtbar "poppen"
   (Premium-Verkaufsargument, Remco 2026-06-12). */
.gv-premium.gv-redirect .gv-redirect-list {
  background: var(--color-field, #F7F5F0);
  border: 1px solid var(--gvp-stone-deep);
  padding: clamp(22px, 4vw, 36px);
  margin-top: 38px;
}
.gv-premium.gv-redirect .gv-redirect-list h3 {
  font-family: var(--gvp-serif);
  font-weight: 500;
  font-size: clamp(1.55rem, 3vw, 1.9rem);
  line-height: 1.15;
  margin: 6px 0 4px;
}
.gv-premium .gv-alt-list { list-style: none; margin: 14px 0 0; padding: 0; }
.gv-premium .gv-alt-list li {
  border-top: 1px solid var(--gvp-stone-deep);
  padding: 20px 0;
}
.gv-premium .gv-alt-list li:first-child { margin-top: 6px; }
.gv-premium .gv-alt-list li:last-child { padding-bottom: 6px; }
.gv-premium .gv-alt-list h4 {
  font-family: var(--gvp-serif);
  font-weight: 500;
  font-size: 1.4rem;
  margin: 4px 0 8px;
}
/* Distanz zum gesuchten Betrieb: der eine warme Akzent im Kicker */
.gv-premium .gv-dist { color: var(--gvp-terracotta); }
/* Google-Sterne (site.js baut .gvh-rev um; Basis-Styles in site.css) */
.gv-premium .gv-alt-list .gvh-rev { margin: 0 0 12px; }
.gv-premium .gv-alt-list h4 a { color: var(--gvp-ink); text-decoration: none; }
.gv-premium .gv-alt-list h4 a:hover { color: var(--gvp-moss); }
.gv-premium .gv-alt-cta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px 26px;
  margin: 0;
}
.gv-premium .gv-premium-flag { color: #6B2433; font-weight: 600; }

/* ---- Plan-Auswahl ---- */
.gv-premium .gv-plans { border: none; padding: 0; margin: 0 0 22px; }
.gv-premium .gv-plans legend { padding: 0; margin-bottom: 10px; }
.gv-premium .gv-plan {
  display: block;
  border-top: 1px solid var(--gvp-stone-deep);
  padding: 12px 0;
  cursor: pointer;
  font-size: 0.9375rem;
}
.gv-premium .gv-plan:last-child { border-bottom: 1px solid var(--gvp-stone-deep); }
.gv-premium .gv-plan input { margin-right: 10px; accent-color: var(--gvp-moss); }

/* ---- Buttons ---- */
.gv-premium .gv-btn {
  display: inline-block;
  font-family: var(--gvp-sans);
  font-size: var(--gvp-label);
  letter-spacing: var(--gvp-track);
  text-transform: uppercase;
  font-weight: 500;
  text-decoration: none;
  color: var(--gvp-moss);
  border: none;
  background: none;
  padding: 0;
  cursor: pointer;
}
.gv-premium .gv-btn:hover { text-decoration: underline; text-underline-offset: 4px; }
.gv-premium .gv-btn-solid {
  background: var(--gvp-moss);
  color: var(--gvp-stone);
  padding: 13px 26px;
  border-radius: 0;
}
.gv-premium .gv-btn-solid:hover { background: var(--gvp-ink); text-decoration: none; }

/* ---- Upsell (Free-Profile): Besucher-Notiz + Inhaber-Box am Formular-Platz ---- */
.gv-premium.gv-upsell {
  margin: 28px 0;
  max-width: var(--measure, 680px);
}
.gv-premium.gv-upsell p { font-size: 0.9375rem; line-height: 1.7; }
.gv-premium.gv-upsell a { color: var(--gvp-moss); }
/* Hinweis «noch kein Premium-Partner»: ruhige Lead-in-Zeile (Mist + Haarlinie)
   statt Terrakotta-Kasten — EINE ruhige Conversion-Stelle (Remco 2026-06-25). */
.gv-premium.gv-upsell .gv-visitor-note {
  color: var(--gvp-mist);
  font-size: 0.9375rem;
  margin: 0 0 26px;
  padding: 0 0 22px;
  border-bottom: 1px solid var(--gvp-stone-deep);
}
/* Inhaber-Pitch: kein Rahmen — fügt sich still in den gg-enquiry-Block ein */
.gv-premium.gv-upsell .gv-upsell-box {
  padding: 0;
}
.gv-premium.gv-upsell .gv-upsell-box h3 {
  font-family: var(--gvp-serif);
  font-weight: 500;
  font-size: var(--text-h2, 1.5rem);
  color: var(--gvp-ink);
  margin: 0 0 0.45em;
}
.gv-premium.gv-upsell .gv-upsell-box > p { margin: 0 0 18px; max-width: 46em; }
.gv-premium.gv-upsell .gv-upsell-cta {
  display: flex;
  align-items: center;
  gap: 26px;
  flex-wrap: wrap;
  margin: 0 0 14px;
}
.gv-premium.gv-upsell .gv-upsell-cta .gv-btn-solid { color: var(--gvp-stone); }
.gv-premium.gv-upsell .gv-hint { margin: 0; }

/* ---- Partner-Konto ---- */
.gv-partner-account .gv-partner-listing {
  border-top: 1px solid var(--gvp-stone-deep);
  padding: 26px 0;
}
.gv-partner-account .gv-partner-listing:last-child { border-bottom: 1px solid var(--gvp-stone-deep); }
.gv-partner-account h3 { font-family: var(--gvp-serif); font-weight: 500; margin: 0 0 10px; }
.gv-partner-account h3 a { color: var(--gvp-ink); text-decoration: none; }
.gv-partner-account .gv-inquiry-list { list-style: none; margin: 0 0 16px; padding: 0; }
.gv-partner-account .gv-inquiry-list li {
  border-top: 1px solid var(--gvp-stone-deep);
  padding: 10px 0;
  font-size: 0.9375rem;
  line-height: 1.6;
}

/* ---- Ergebnis-Seiten (danke/abbruch) & Claim ---- */
.gv-premium.gv-claim, .gv-premium.gv-premium-result { max-width: var(--measure, 680px); }
.gv-premium h2 { font-family: var(--gvp-serif); font-weight: 500; }

/* Offerten-Formular ersetzt das Ninja-Form im gg-enquiry-Block (Seite 12):
   Titel übernimmt die Serif-Stimme der Profilseite. */
.gv-premium.gv-inquiry h3 {
  font-family: var(--gvp-serif);
  font-weight: 500;
  font-size: var(--text-h2, 1.6rem);
  color: var(--gvp-ink);
  margin: 0 0 0.4em;
}

/* ---- Profil-Hero: Banner + Logo-Plate (v1.3, Brief 11) ----
   Heterogenes Material gezähmt: Banner mit festem Seitenverhältnis
   (cover), Logo IMMER auf einer Plate fester Höhe (contain) — helle
   Logos automatisch auf Moss. Screenshots: Top-Anschnitt + Label. */
.gv-hero {
  --gvh-field: var(--color-field, #F7F5F0);
  --gvh-stone-deep: var(--color-stone-deep, #DDD8CC);
  --gvh-moss: var(--color-moss, #4A5443);
  --gvh-ink: var(--color-ink, #1F211E);
  position: relative;
  margin: 0 0 60px;
}
.gv-hero-banner {
  aspect-ratio: 3 / 1;
  overflow: hidden;
  position: relative;
  border: 1px solid var(--gvh-stone-deep);
  background: var(--gvh-stone-deep);
}
.gv-hero-banner img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  margin: 0;
}
.gv-hero-shot .gv-hero-banner img { object-position: top center; }
.gv-hero-banner::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: 0;
  height: 44%;
  background: linear-gradient(to top, rgba(31,33,30,0.30), rgba(31,33,30,0));
  pointer-events: none;
}
.gv-shot-label {
  position: absolute; top: 14px; right: 14px;
  font-family: var(--font-sans, 'Inter', sans-serif);
  font-size: var(--text-label, 0.72rem);
  letter-spacing: var(--tracking-label, 0.14em);
  text-transform: uppercase;
  font-weight: 500;
  color: var(--gvh-field);
  background: rgba(31,33,30,0.55);
  padding: 8px 13px;
  text-decoration: none !important;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
a.gv-shot-label:hover { background: rgba(31,33,30,0.8); color: #fff; }
.gv-hero-strip {
  height: 110px;
  border: 1px solid var(--gvh-stone-deep);
  background: linear-gradient(115deg, #46503F, var(--gvh-moss) 55%, #5C6852);
}
.gv-hero-logo {
  position: absolute;
  left: clamp(16px, 4vw, 40px);
  bottom: -30px;
  height: 88px;
  min-width: 104px;
  max-width: min(280px, 62%);
  padding: 14px 22px;
  display: flex; align-items: center; justify-content: center;
  background: var(--gvh-field);
  border: 1px solid var(--gvh-stone-deep);
  box-shadow: 0 1px 3px rgba(31,33,30,0.07);
}
.gv-hero-logo img {
  max-height: 56px;
  max-width: 232px;
  width: auto; height: auto;
  display: block;
  margin: 0;
}
.gv-hero-logo.gv-tone-light {
  background: var(--gvh-moss);
  border-color: var(--gvh-moss);
}
@media (max-width: 600px) {
  .gv-hero { margin-bottom: 46px; }
  .gv-hero-banner { aspect-ratio: 2.1 / 1; }
  .gv-hero-strip { height: 84px; }
  .gv-hero-logo {
    height: 66px; bottom: -22px;
    padding: 10px 14px;
    max-width: min(210px, 70%);
  }
  .gv-hero-logo img { max-height: 44px; max-width: 178px; }
}

/* ---- Eintrags-Formular (v1.4, /add-listing/) ---- */
.gv-submit .gv-form { max-width: var(--measure, 680px); }
.gv-submit .gv-field input[type="text"],
.gv-submit .gv-field input[type="url"],
.gv-submit .gv-field input[type="email"],
.gv-submit .gv-field textarea {
  width: 100%;
  background: var(--color-field, #F7F5F0);
  border: 1px solid var(--gvp-stone-deep);
  border-radius: 0;
  padding: 13px 15px;
  font-family: var(--gvp-sans);
  font-size: 0.9375rem;
  color: var(--gvp-ink);
}
.gv-submit .gv-field label {
  display: block;
  font-family: var(--gvp-sans);
  font-size: var(--gvp-label);
  letter-spacing: var(--gvp-track);
  text-transform: uppercase;
  color: var(--gvp-mist);
  font-weight: 500;
  margin-bottom: 7px;
}
.gv-submit .gv-field { margin: 0 0 18px; }
.gv-submit .gv-field-half { width: 48%; display: inline-block; vertical-align: top; }
.gv-submit .gv-field-half + .gv-field-half { margin-left: 3%; }
.gv-submit .gv-cats { border: none; padding: 0; margin: 0 0 18px; }
.gv-submit .gv-check-inline {
  display: inline-block;
  margin: 6px 18px 6px 0;
  font-family: var(--gvp-sans);
  font-size: 0.9375rem;
  color: var(--gvp-ink);
}
.gv-submit .gv-check-inline input { margin-right: 7px; }
@media (max-width: 540px) {
  .gv-submit .gv-field-half { width: 100%; display: block; }
  .gv-submit .gv-field-half + .gv-field-half { margin-left: 0; }
}

/* ---- Claim-Seite: Leistungs-Vergleich unter dem Checkout ----
   EXAKTE Kopie des #leistungen-Blocks von /fuer-betriebe/ (fb-compare aus
   fuer-betriebe.css, dort .fb-page-gescopt — hier unter .gv-premium).
   Werte 1:1 übernommen inkl. Karten-Fläche (#FBFAF7 + weicher Schatten).
   Bei Tabellen-Änderungen BEIDE Dateien pflegen. */
.gv-premium .gv-claim-vergleich {
  margin-top: 46px;
  border-top: 1px solid var(--gvp-stone-deep);
  padding-top: 26px;
}
.gv-premium .gv-claim-vergleich h2 {
  font-family: var(--gvp-serif);
  font-weight: 500;
  font-size: clamp(1.45rem, 2.8vw, 1.8rem);
  line-height: 1.18;
  margin: 6px 0 0;
}
.gv-premium .fb-compare {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  margin-top: clamp(26px, 4vw, 44px);
  font-size: 0.9375rem;
  background: #FBFAF7;
  box-shadow: 0 10px 28px rgba(31, 33, 30, 0.05);
  border: 1px solid var(--gvp-stone-deep);
}
.gv-premium .fb-compare th:first-child,
.gv-premium .fb-compare td:first-child { width: 44%; }
.gv-premium .fb-compare th,
.gv-premium .fb-compare td {
  border-top: 1px solid var(--gvp-stone-deep);
  padding: 12px 14px;
  text-align: left;
  vertical-align: top;
}
.gv-premium .fb-compare thead th {
  border-top: none;
  font-family: var(--gvp-sans);
  font-size: var(--gvp-label);
  letter-spacing: var(--gvp-track);
  text-transform: uppercase;
  font-weight: 500;
  color: var(--gvp-mist);
}
.gv-premium .fb-compare .fb-th-sub { display: block; font-weight: 400; margin-top: 2px; }
.gv-premium .fb-compare .fb-col-prem { background: var(--color-field, #F7F5F0); }
.gv-premium .fb-compare thead .fb-col-prem { color: var(--gvp-moss); }
.gv-premium .fb-fair { margin-top: 14px; font-size: 0.9375rem; color: var(--gvp-mist); }
@media (min-width: 641px) {
  .gv-premium .fb-compare th:not(:first-child),
  .gv-premium .fb-compare td:not(:first-child) { width: 28%; }
}
@media (max-width: 640px) {
  .gv-premium .fb-compare,
  .gv-premium .fb-compare tbody,
  .gv-premium .fb-compare tr,
  .gv-premium .fb-compare td { display: block; width: 100%; }
  .gv-premium .fb-compare { background: none; box-shadow: none; border: none; }
  .gv-premium .fb-compare thead { display: none; }
  .gv-premium .fb-compare tr { border-top: 1px solid var(--gvp-stone-deep); padding: 10px 0; }
  .gv-premium .fb-compare td { border: none; padding: 4px 0; }
  .gv-premium .fb-compare td[data-th]::before {
    content: attr(data-th) ": ";
    font-family: var(--gvp-sans);
    font-size: var(--gvp-label);
    letter-spacing: var(--gvp-track);
    text-transform: uppercase;
    color: var(--gvp-mist);
  }
  .gv-premium .fb-compare .fb-col-prem { background: none; }
}

/* ===== B4: Profil-Medien bearbeiten (Partner-Konto) ===== */
.gv-premium .gv-notice {
  margin: 0 0 18px;
  padding: 10px 14px;
  border: 1px solid var(--gvp-stone-deep);
  border-left: 3px solid var(--gvp-moss);
  background: var(--gvp-stone);
  font-family: var(--gvp-sans);
  font-size: 14px;
  color: var(--gvp-ink);
}
.gv-premium .gv-notice-err { border-left-color: var(--gvp-premium); }
.gv-premium .gv-edit {
  margin: 18px 0 0;
  padding: 18px 0 0;
  border-top: 1px solid var(--gvp-stone-deep);
}
.gv-premium .gv-edit-media {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px 28px;
  margin: 10px 0 0;
}
@media (max-width: 560px) { .gv-premium .gv-edit-media { grid-template-columns: 1fr; } }
.gv-premium .gv-edit-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin: 0 0 8px;
}
.gv-premium .gv-edit-lab {
  font-family: var(--gvp-sans);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: var(--gvp-track);
  text-transform: uppercase;
  color: var(--gvp-mist);
}
.gv-premium .gv-edit-has { font-size: 12px; color: var(--gvp-moss); }
.gv-premium .gv-edit-no { font-size: 12px; color: var(--gvp-mist); }
.gv-premium .gv-edit-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}
.gv-premium .gv-edit-row input[type="file"] {
  flex: 1 1 150px;
  min-width: 0;
  font-family: var(--gvp-sans);
  font-size: 13px;
  color: var(--gvp-ink);
}
.gv-premium .gv-btn-sm { padding: 9px 16px; font-size: 12px; }
.gv-premium .gv-edit-del { margin: 6px 0 0; }
.gv-premium .gv-link-del {
  background: none;
  border: none;
  padding: 0;
  font-family: var(--gvp-sans);
  font-size: 12px;
  letter-spacing: var(--gvp-track);
  text-transform: uppercase;
  color: var(--gvp-mist);
  text-decoration: underline;
  cursor: pointer;
}
.gv-premium .gv-link-del:hover { color: var(--gvp-premium); }
.gv-premium .gv-edit-hint {
  margin: 14px 0 0;
  font-family: var(--gvp-sans);
  font-size: 12px;
  color: var(--gvp-mist);
}
.gv-premium .gv-edit-desc { margin: 20px 0 0; display: flex; flex-direction: column; gap: 8px; }
.gv-premium .gv-edit-desc textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--gvp-stone-deep);
  background: #fff;
  border-radius: 0;
  padding: 12px 14px;
  font-family: var(--gvp-sans);
  font-size: 15px;
  line-height: 1.6;
  color: var(--gvp-ink);
  resize: vertical;
}
.gv-premium .gv-edit-desc textarea:focus { outline: none; border-color: var(--gvp-moss); }
.gv-premium .gv-edit-desc .gv-btn-sm { align-self: flex-start; }
.gv-owner-desc p { margin: 0 0 1em; }
.gv-owner-desc p:last-child { margin-bottom: 0; }

/* ---- Videos (B4): bis zu 2 YouTube-Highlights + Kanal-Kachel, als 3er-Reihe.
   Facade = ruhige Kachel; erst der Klick lädt YouTube (Datenschutz).
   Quiet-Luxury: Haarlinie, radius 0, Label-Stimme, kein Schlagschatten. */
.gv-embeds {
  margin: 2.4rem 0 0;
  font-family: var(--gvp-sans);
}
.gv-embeds-label { margin: 0 0 14px; }
.gv-embeds-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
@media (max-width: 720px) { .gv-embeds-row { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 460px) { .gv-embeds-row { grid-template-columns: 1fr; } }
.gv-embed {
  position: relative;
  border: 1px solid var(--gvp-stone-deep);
  background: var(--color-field, #F7F5F0);
}
.gv-embed-video { aspect-ratio: 16 / 9; }
/* YouTube-Kanal-Kachel (3. Box) */
.gv-embed-channel {
  aspect-ratio: 16 / 9;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 11px;
  padding: 16px;
  text-decoration: none;
  color: var(--gvp-ink);
  text-align: center;
  transition: background .18s ease;
}
.gv-embed-channel:hover { background: #fff; }
.gv-channel-play {
  width: 48px;
  height: 34px;
  border-radius: 8px;
  background: var(--gvp-moss);
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}
.gv-channel-play::after {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 7px 0 7px 12px;
  border-color: transparent transparent transparent #fff;
  margin-left: 2px;
}
.gv-embed-channel .gv-embed-note { align-items: center; }
.gv-embed-facade {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  min-height: 116px;
  padding: 22px 18px;
  border: 0;
  background: transparent;
  background-size: cover;
  background-position: center;
  color: var(--gvp-ink);
  font-family: var(--gvp-sans);
  cursor: pointer;
  text-align: center;
  transition: opacity .18s ease;
}
.gv-embed-video .gv-embed-facade {
  position: absolute;
  inset: 0;
  min-height: 0;
  height: 100%;
  justify-content: flex-end;
}
/* Lesbarkeits-Schleier über dem Video-Poster */
.gv-embed-video .gv-embed-facade::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(31,33,30,.78) 0%, rgba(31,33,30,.18) 46%, rgba(31,33,30,.30) 100%);
}
.gv-embed-facade:hover { opacity: .94; }
.gv-embed-facade > * { position: relative; }
/* Play-Glyph (CSS-Dreieck) für Video */
.gv-embed-play {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: rgba(255,255,255,.94);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 2px;
  flex: 0 0 auto;
}
.gv-embed-play::after {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 9px 0 9px 15px;
  border-color: transparent transparent transparent var(--gvp-premium);
  margin-left: 3px;
}
/* Social-Glyph (Buchstabe), ruhig gesetzt */
.gv-embed-ico {
  width: 42px;
  height: 42px;
  border: 1px solid var(--gvp-stone-deep);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--gvp-serif);
  font-size: 22px;
  line-height: 1;
  color: var(--gvp-ink);
  background: #fff;
}
.gv-embed-ico-instagram::after { content: "◎"; }
.gv-embed-ico-facebook::after  { content: "f"; font-weight: 600; }
.gv-embed-note {
  display: flex;
  flex-direction: column;
  gap: 3px;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .01em;
  color: var(--gvp-ink);
}
.gv-embed-video .gv-embed-note { color: #fff; }
.gv-embed-note small {
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0;
  color: var(--gvp-mist);
}
.gv-embed-video .gv-embed-note small { color: rgba(255,255,255,.82); }
/* Geladenes iframe */
.gv-embed-frame { display: block; width: 100%; border: 0; background: #fff; }
.gv-embed-frame-video { aspect-ratio: 16 / 9; height: auto; }
.gv-embed-frame-instagram { height: 640px; }
.gv-embed-frame-facebook  { height: 740px; }
.gv-embed-live { background: #fff; }
@media (max-width: 480px) {
  .gv-embed-frame-instagram { height: 560px; }
  .gv-embed-frame-facebook  { height: 520px; }
}

/* ---- Projekt-Kacheln (B4): Premium-Profile ----
   Kachel = Bild + Titel + Kurzbeschreibung, KEINE Verlinkung. Ruhiges Raster,
   Haarlinie, radius 0. */
.gv-gallery { margin: 2.4rem 0 0; font-family: var(--gvp-sans); }
.gv-gallery-label { margin: 0 0 14px; }
.gv-gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px 16px;
}
.gv-gallery-item {
  margin: 0;
  border: 1px solid var(--gvp-stone-deep);
  background: var(--color-field, #F7F5F0);
  display: flex;
  flex-direction: column;
}
.gv-gallery-img {
  display: block;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}
.gv-gallery-img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.gv-gallery-cap {
  padding: 13px 15px 15px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.gv-gallery-title {
  font-family: var(--gvp-serif);
  font-weight: 500;
  font-size: 1.18rem;
  line-height: 1.2;
  color: var(--gvp-ink);
}
.gv-gallery-desc {
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--gvp-mist);
}
@media (max-width: 720px) { .gv-gallery-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 460px) { .gv-gallery-grid { grid-template-columns: 1fr; } }

/* ---- Projekt-Kacheln im Partner-Konto (Bearbeiten) ---- */
.gv-premium .gv-edit-gallery { margin-top: 22px; }
.gv-premium .gv-edit-tile {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  border: 1px solid var(--gvp-stone-deep);
  background: var(--color-field, #F7F5F0);
  padding: 10px;
  margin: 0 0 10px;
}
.gv-premium .gv-edit-tile-save {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  flex: 1 1 auto;
  min-width: 0;
}
.gv-premium .gv-edit-tile img {
  width: 84px;
  height: 64px;
  object-fit: cover;
  flex: 0 0 auto;
}
.gv-premium .gv-edit-tile-fields {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1 1 auto;
  min-width: 0;
}
.gv-premium .gv-edit-tile-fields input[type="text"] { width: 100%; }
.gv-premium .gv-edit-tile-fields .gv-btn-sm { align-self: flex-start; }
.gv-premium .gv-tile-del { flex: 0 0 auto; }
.gv-premium .gv-edit-addtile {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-start;
  border-top: 1px solid var(--gvp-stone-deep);
  padding-top: 14px;
  margin-top: 4px;
}
.gv-premium .gv-edit-addtile input[type="text"] { width: 100%; max-width: 420px; }
.gv-premium .gv-edit-sub {
  font-family: var(--gvp-sans);
  font-size: var(--gvp-label);
  letter-spacing: var(--gvp-track);
  text-transform: uppercase;
  color: var(--gvp-mist);
  font-weight: 500;
  margin: 0;
}

/* ---- Claim-Suche / Typeahead (#30): Betrieb finden -> Checkout ---- */
.gv-premium .gv-plan-summary {
  font-size: 0.9375rem;
  color: var(--gvp-ink);
  border-left: 2px solid var(--gvp-premium);
  padding: 6px 0 6px 14px;
  margin: 0 0 18px;
}
.gv-premium .gv-plan-summary a { font-size: 0.875rem; }
.gv-premium .gv-claim-search { position: relative; max-width: var(--measure, 680px); margin: 0 0 14px; }
.gv-premium .gv-claim-search-input {
  width: 100%;
  background: var(--color-field, #F7F5F0);
  border: 1px solid var(--gvp-stone-deep);
  border-radius: 0;
  padding: 14px 16px;
  font-family: var(--gvp-sans);
  font-size: 1.0625rem;
  color: var(--gvp-ink);
}
.gv-premium .gv-claim-search-input:focus { outline: none; border-color: var(--gvp-moss); }
.gv-premium .gv-claim-search-results {
  list-style: none;
  margin: -1px 0 0;
  padding: 0;
  border: 1px solid var(--gvp-stone-deep);
  border-top: 0;
  background: #fff;
}
.gv-premium .gv-claim-res {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 13px 16px;
  border-top: 1px solid var(--gvp-stone);
  cursor: pointer;
}
.gv-premium .gv-claim-res:first-child { border-top: 0; }
.gv-premium .gv-claim-res:hover,
.gv-premium .gv-claim-res:focus { background: var(--color-field, #F7F5F0); outline: none; }
.gv-premium .gv-claim-res-name { font-weight: 500; color: var(--gvp-ink); }
.gv-premium .gv-claim-res-city { font-size: 0.875rem; color: var(--gvp-mist); }
.gv-premium .gv-claim-res-tag {
  margin-left: auto;
  font-size: var(--gvp-label);
  letter-spacing: var(--gvp-track);
  text-transform: uppercase;
  color: var(--gvp-moss);
}
.gv-premium .gv-claim-res-taken { cursor: default; opacity: 0.6; }
.gv-premium .gv-claim-res-taken:hover { background: none; }
.gv-premium .gv-claim-res-taken .gv-claim-res-tag { color: var(--gvp-premium); }
.gv-premium .gv-claim-search-empty {
  margin: 8px 2px 0;
  font-size: 0.9375rem;
  color: var(--gvp-mist);
}

/* ---- Offertenformular kompakt (eine Bildschirmhöhe): Chip-Auswahl statt
   gestapelter Radiozeilen; engere Abstände. ---- */
.gv-premium.gv-inquiry h3 { margin-bottom: 4px; }
.gv-premium.gv-inquiry .gv-form { margin-top: 18px; }
.gv-premium.gv-inquiry .gv-field { margin: 0 0 13px; }
.gv-premium.gv-inquiry .gv-grid { gap: 0 22px; }
.gv-premium.gv-inquiry textarea { line-height: 1.5; }
/* wpautop verpackt die Labels in ein <p> und setzt <br> dazwischen — daher
   wird SOWOHL das Fieldset ALS AUCH das innere <p> zum Flex-Container und das
   <br> ausgeblendet, sonst stapeln die Chips. !important, weil das Profil
   (GeoDirectory/AUI) mit höherer Spezifität dazwischenfunkt. */
.gv-premium .gv-radio-row.gv-chips,
.gv-premium .gv-radio-row.gv-chips p {
  display: flex !important;
  flex-flow: row wrap !important;
  align-items: center;
  gap: 8px;
  margin: 0 0 15px;
}
.gv-premium .gv-radio-row.gv-chips p { margin: 0 !important; flex: 0 0 100% !important; }
.gv-premium .gv-radio-row.gv-chips br { display: none !important; }
.gv-premium .gv-radio-row.gv-chips legend { flex: 0 0 100% !important; width: 100%; margin-bottom: 6px; float: none; }
.gv-premium .gv-radio-row.gv-chips label {
  display: inline-flex !important;
  flex: 0 0 auto !important;
  align-items: center;
  gap: 8px;
  width: auto !important;
  border: 1px solid var(--gvp-stone-deep);
  padding: 9px 14px;
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.25;
  cursor: pointer;
  background: var(--color-field, #F7F5F0);
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.gv-premium .gv-radio-row.gv-chips input { margin: 0; accent-color: var(--gvp-moss); }
.gv-premium .gv-radio-row.gv-chips label:hover { border-color: var(--gvp-mist); }
.gv-premium .gv-radio-row.gv-chips label:has(input:checked) {
  border-color: var(--gvp-moss);
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--gvp-moss);
}

/* Link-Kachel (nicht einbettbare Quellen, z. B. Instagram-Profile): wie eine
   Facade, aber die ganze Kachel ist ein Link nach aussen. */
.gv-embed-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 116px;
  padding: 22px 18px;
  text-decoration: none;
  color: var(--gvp-ink);
  text-align: center;
  transition: opacity .18s ease;
}
.gv-embed-link:hover { opacity: .92; }

/* ---- Partner-Konto Redesign (UX 2026-08-06) ----------------------------
   1/3 Bearbeiten-Spalte (einheitliche weisse Karten, solide CTAs) +
   2/3 klebende Live-Vorschau des Profils mit Platzhaltern für leere
   Elemente. Alles im .gv-partner-account-Scope — Claim-Flow/Upsell
   behalten ihre bisherigen Stile. */

.gv-partner-account { max-width: none; }

/* Kopf: Status + Name + Haupt-CTAs */
.gv-partner-account .gv-acct-head { margin: 6px 0 30px; }
.gv-partner-account .gv-acct-head h3 {
  font-family: var(--gvp-serif);
  font-size: clamp(1.7rem, 3vw, 2.1rem);
  font-weight: 500;
  margin: 6px 0 4px;
}
.gv-partner-account .gv-acct-count { margin: 0 0 4px; font-size: 0.9375rem; }
.gv-partner-account .gv-acct-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 16px 0 8px;
}

/* CTAs: im Konto sind Buttons SOLIDE — auffindbar statt Geistertext. */
.gv-partner-account .gv-btn {
  background: var(--gvp-moss);
  color: var(--gvp-stone);
  padding: 12px 22px;
  border: 1px solid var(--gvp-moss);
  border-radius: 0;
  cursor: pointer;
}
.gv-partner-account .gv-btn:hover {
  background: var(--gvp-ink);
  border-color: var(--gvp-ink);
  text-decoration: none;
}
.gv-partner-account .gv-btn-line {
  background: transparent;
  color: var(--gvp-moss);
}
.gv-partner-account .gv-btn-line:hover { background: var(--gvp-moss); color: var(--gvp-stone); }
.gv-partner-account .gv-btn-sm { padding: 10px 16px; font-size: 12px; }

/* Raster: Bearbeiten (1/3) + Vorschau (2/3) */
.gv-partner-account .gv-acct-grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 40px;
  align-items: start;
}
@media (max-width: 920px) {
  .gv-partner-account .gv-acct-grid { grid-template-columns: 1fr; gap: 28px; }
}

/* Karten: EINE Fläche für alles Editierbare */
.gv-partner-account .gv-card {
  background: #fff;
  border: 1px solid var(--gvp-stone-deep);
  padding: 20px 22px 22px;
  margin: 0 0 16px;
}
.gv-partner-account .gv-card-title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  font-family: var(--gvp-sans);
  font-size: var(--gvp-label);
  letter-spacing: var(--gvp-track);
  text-transform: uppercase;
  font-weight: 500;
  color: var(--gvp-ink);
  margin: 0 0 14px;
}
.gv-partner-account .gv-edit { margin: 0; padding: 0; border-top: none; }
.gv-partner-account .gv-edit-desc { margin: 0; }
.gv-partner-account .gv-edit-hint { margin: 12px 0 0; }
.gv-partner-account .gv-inquiry-list { margin: 0; }

/* Datei-Picker: gestylter Button statt nacktem input[type=file].
   Input bleibt fokussier-/validierbar (visually hidden, nicht display:none). */
.gv-partner-account .gv-file {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1 1 100%;
  min-width: 0;
}
.gv-partner-account .gv-file input[type="file"] {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  overflow: hidden;
  clip-path: inset(50%);
}
.gv-partner-account .gv-file-btn {
  flex: none;
  font-family: var(--gvp-sans);
  font-size: 12px;
  letter-spacing: var(--gvp-track);
  text-transform: uppercase;
  font-weight: 500;
  color: var(--gvp-moss);
  border: 1px solid var(--gvp-moss);
  padding: 9px 14px;
  cursor: pointer;
}
.gv-partner-account .gv-file:hover .gv-file-btn { background: var(--gvp-moss); color: var(--gvp-stone); }
.gv-partner-account .gv-file input:focus-visible ~ .gv-file-btn { outline: 2px solid var(--gvp-moss); outline-offset: 2px; }
.gv-partner-account .gv-file-name {
  font-family: var(--gvp-sans);
  font-size: 12.5px;
  color: var(--gvp-mist);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gv-partner-account .gv-edit-row { row-gap: 12px; }

/* Vorschau-Spalte */
.gv-partner-account .gv-acct-preview { position: sticky; top: 96px; }
@media (max-width: 920px) { .gv-partner-account .gv-acct-preview { position: static; } }
.gv-partner-account .gv-prev-top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 10px;
}
.gv-partner-account .gv-prev-top .gv-p-label { margin: 0; }
.gv-partner-account .gv-prev-top a {
  font-family: var(--gvp-sans);
  font-size: 13px;
  color: var(--gvp-moss);
}
.gv-partner-account .gv-prev-frame {
  background: #fff;
  border: 1px solid var(--gvp-stone-deep);
  padding: 0 0 24px;
}
.gv-partner-account .gv-prev-ph {
  display: flex;
  flex-direction: column;
  gap: 2px;
  align-items: center;
  justify-content: center;
  font-family: var(--gvp-sans);
  font-size: 12.5px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gvp-mist);
  text-align: center;
  padding: 8px;
}
.gv-partner-account .gv-prev-ph em {
  font-style: normal;
  text-transform: none;
  letter-spacing: 0;
  font-size: 12px;
  opacity: 0.75;
}
.gv-partner-account .gv-prev-empty { outline: 1.5px dashed var(--gvp-stone-deep); outline-offset: -7px; }
.gv-partner-account .gv-prev-banner {
  aspect-ratio: 3 / 1;
  background: var(--gvp-stone);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.gv-partner-account .gv-prev-banner img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gv-partner-account .gv-prev-head {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px 24px 0;
}
.gv-partner-account .gv-prev-logo {
  width: 64px;
  height: 64px;
  flex: none;
  background: var(--gvp-stone);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.gv-partner-account .gv-prev-logo img { width: 100%; height: 100%; object-fit: contain; display: block; }
.gv-partner-account .gv-prev-logo .gv-prev-ph { font-size: 10.5px; padding: 2px; }
.gv-partner-account .gv-prev-id { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.gv-partner-account .gv-prev-badge {
  font-family: var(--gvp-sans);
  font-size: 0.66rem;
  letter-spacing: var(--gvp-track);
  text-transform: uppercase;
  font-weight: 500;
  color: var(--gvp-premium);
}
.gv-partner-account .gv-prev-name {
  font-family: var(--gvp-serif);
  font-size: 1.45rem;
  line-height: 1.15;
  color: var(--gvp-ink);
}
.gv-partner-account .gv-prev-sec { padding: 20px 24px 0; }
.gv-partner-account .gv-prev-lab {
  font-family: var(--gvp-sans);
  font-size: 0.66rem;
  letter-spacing: var(--gvp-track);
  text-transform: uppercase;
  color: var(--gvp-mist);
  border-top: 1px solid var(--gvp-stone);
  padding-top: 16px;
  margin: 0 0 10px;
}
.gv-partner-account .gv-prev-desc {
  font-family: var(--gvp-sans);
  font-size: 0.9rem;
  line-height: 1.65;
  color: var(--gvp-ink);
  margin: 0;
}
.gv-partner-account .gv-prev-auto { font-style: italic; color: var(--gvp-mist); }
.gv-partner-account .gv-prev-note {
  font-family: var(--gvp-sans);
  font-size: 12px;
  color: var(--gvp-mist);
  margin: 8px 0 0;
}
.gv-partner-account .gv-prev-vids {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.gv-partner-account .gv-prev-vid {
  aspect-ratio: 16 / 9;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--gvp-sans);
  font-size: 11.5px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--gvp-mist);
  background: var(--gvp-stone);
  outline: 1.5px dashed var(--gvp-stone-deep);
  outline-offset: -6px;
  text-align: center;
  padding: 4px;
}
.gv-partner-account .gv-prev-vid.gv-on {
  background: var(--gvp-ink);
  color: var(--gvp-stone);
  outline: none;
}
.gv-partner-account .gv-prev-vid.gv-on::before { content: "▶"; margin-right: 7px; font-size: 10px; }
.gv-partner-account .gv-prev-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.gv-partner-account .gv-prev-tile {
  margin: 0;
  min-width: 0;
}
.gv-partner-account .gv-prev-tile img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}
.gv-partner-account .gv-prev-tile figcaption {
  font-family: var(--gvp-sans);
  font-size: 11.5px;
  color: var(--gvp-ink);
  margin-top: 5px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gv-partner-account .gv-prev-tile-empty {
  aspect-ratio: 4 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--gvp-sans);
  font-size: 11.5px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--gvp-mist);
  background: var(--gvp-stone);
  outline: 1.5px dashed var(--gvp-stone-deep);
  outline-offset: -6px;
}

/* Theme-Link-Unterstreichung in Konto-Buttons neutralisieren */
.gv-partner-account a.gv-btn,
.gv-partner-account a.gv-btn:hover,
.gv-partner-account .gv-btn:hover { text-decoration: none; }

/* Fix (2026-08-06): lange Anliegen-Chips sprengten die schmale Formular-
   Spalte — flex 0 0 auto verhindert Schrumpfen. Chips dürfen jetzt auf
   Containerbreite umbrechen; der Text bricht innerhalb des Chips um. */
.gv-premium .gv-radio-row.gv-chips label {
  flex: 0 1 auto !important;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

/* Vorschau: bestehende Profil-Inhalte (nicht editierbar, bleiben unverändert) */
.gv-partner-account .gv-prev-meta {
  font-family: var(--gvp-sans);
  font-size: 12.5px;
  color: var(--gvp-mist);
}
.gv-partner-account .gv-prev-ctas { display: flex; flex-wrap: wrap; gap: 8px; }
.gv-partner-account .gv-prev-cta {
  font-family: var(--gvp-sans);
  font-size: 11px;
  letter-spacing: var(--gvp-track);
  text-transform: uppercase;
  color: var(--gvp-mist);
  border: 1px solid var(--gvp-stone-deep);
  padding: 7px 12px;
}
.gv-partner-account .gv-prev-cta.gv-cta-solid {
  background: var(--gvp-moss);
  border-color: var(--gvp-moss);
  color: var(--gvp-stone);
}
.gv-partner-account .gv-prev-fix {
  background: #FAF9F5;
  border: 1px solid var(--gvp-stone-deep);
  padding: 12px 14px;
  font-family: var(--gvp-sans);
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--gvp-mist);
}
.gv-partner-account .gv-prev-facts { list-style: none; margin: 0; padding: 0; color: var(--gvp-ink); }
.gv-partner-account .gv-prev-facts li { padding: 2px 0; }
.gv-partner-account .gv-prev-legend {
  font-family: var(--gvp-sans);
  font-size: 12px;
  line-height: 1.6;
  color: var(--gvp-mist);
  margin: 14px 0 0;
  padding: 0 24px 0;
}

/* ---- Video-Block v2 (Remco 2026-08-06): grössere Kacheln, Videos über
   Projekten, Play-Button kollidierte mit dem Label. Zwei Highlights in
   2er-Reihe, Kanal-Link als schlanke Zeile darunter. Selbstgehostete
   Videos (erste Partei) als natives <video> ohne Facade. ---- */
.gv-embeds-row { grid-template-columns: repeat(2, 1fr); gap: 16px; }
@media (max-width: 560px) { .gv-embeds-row { grid-template-columns: 1fr; } }
.gv-embed-local { aspect-ratio: 16 / 9; overflow: hidden; }
.gv-embed-local video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  background: var(--gvp-ink);
}
.gv-embed-facade {
  aspect-ratio: 16 / 9;
  min-height: 0;
  position: relative;
  justify-content: center;
  background-size: cover;
  background-position: center;
}
/* Play-Kreis alleine zentriert; Label + Datenschutz-Hinweis als Leiste unten
   statt mitten über dem Thumbnail. */
.gv-embed-facade .gv-embed-play { margin: 0; width: 58px; height: 58px; }
.gv-embed-facade .gv-embed-note {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
  padding: 8px 12px;
  background: rgba(31, 33, 30, 0.72);
  color: #fff;
  font-size: 12.5px;
  text-align: left;
}
.gv-embed-facade .gv-embed-note small { font-size: 10.5px; opacity: 0.8; }
/* Kanal-Kachel: volle Breite, schlanke Zeile statt dritter Box */
.gv-embed-channel {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 16px;
  min-height: 0;
}
.gv-embed-channel .gv-embed-note { align-items: flex-start; text-align: left; }

/* ---- T5 (2026-08-25, IMPLEMENTATION-BRIEF-compliance.md): Einwilligung +
   Transparenzblock am Offerten-/Anfrage-Formular. Sichtbar ohne Aufklappen. */
.gv-premium .gv-consent label { font-weight: 500; }
.gv-premium .gv-consent .gv-consent-helper {
  display: block;
  margin: 4px 0 0 25px; /* bündig mit dem Label-Text (Checkbox ~16px + gap 9px) */
  font-size: 12.5px;
  color: var(--gvp-mist, #6B6557);
}
.gv-premium .gv-transparenz {
  margin-top: 26px;
  padding-top: 18px;
  border-top: 1px solid var(--gvp-hairline, #E3DED2);
  font-size: 13.5px;
  line-height: 1.65;
  color: var(--gvp-ink, #1F2A22);
}
.gv-premium .gv-transparenz p { margin: 0 0 0.7em; max-width: 62ch; }
.gv-premium .gv-transparenz .gv-transparenz-h {
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gvp-mist, #6B6557);
  margin: 1.2em 0 0.4em;
}
.gv-premium .gv-transparenz .gv-transparenz-h:first-child { margin-top: 0; }
