/* ============================================================
   KOOPERATIONSPARTNER – Stylesheet
   Farben: Hauptfarbe #bac6ae | Akzentfarbe #1d89f6
   ============================================================ */

:root {
  --hac-gruen:    #bac6ae;
  --hac-gruen-dk: #9aab8c;
  --hac-blau:     #1d89f6;
  --hac-blau-dk:  #0e6ed0;
  --hac-heading:  #0f0f0f;   /* Überschriften */
  --hac-text:     #333333;   /* Fließtext */
  --hac-text-lt:  #6b6b6b;   /* Untertitel / dezenter Text */
  --hac-bg:       #fafaf8;
  --hac-white:    #ffffff;
  --hac-border:   #e8ede4;
  --hac-radius:   4px;
  --hac-shadow:   0 2px 16px rgba(0,0,0,.08);
  --hac-gap:      32px;
}

/* ── ALLGEMEIN ────────────────────────────────────────────── */
.hac-single-partner,
.hac-partner-uebersicht {
  color: var(--hac-text);
  font-size: 1rem;
  line-height: 1.7;
}

.hac-partner-section__inner,
.hac-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 60px 30px;
  box-sizing: border-box;
  width: 100%;
}

.hac-partner-section__title {
  font-size: clamp(1.4rem, 3vw, 2rem);
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--hac-heading);
  margin-bottom: 8px;
  line-height: 1.25;
}

.hac-partner-section__subtitle {
  color: var(--hac-heading);
  font-size: 1.05rem;
  font-weight: 400;
  margin-bottom: 24px;
  font-style: normal;
  font-family: inherit;
  letter-spacing: normal;
  text-transform: none;
}

/* ── PARTNER-BADGE ────────────────────────────────────────── */
.hac-partner-badge {
  display: inline-block;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .07em;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: 20px;
  margin-bottom: 14px;
  color: var(--hac-white);
}

.hac-partner-badge--hof_alla_cava {
  background: var(--hac-gruen-dk);
}

.hac-partner-badge--elektro_laimer {
  background: var(--hac-blau);
}

/* ── HERO ─────────────────────────────────────────────────── */
.hac-partner-hero {
  background: var(--hac-bg);
  border-bottom: 1px solid var(--hac-border);
}

.hac-partner-hero__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 60px 30px;
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 48px;
  align-items: start;
}

@media (max-width: 860px) {
  .hac-partner-hero__inner {
    grid-template-columns: 1fr;
  }
}

/* Eigener Platz für das Bild: feste 4:5-Box, alle Formate (hoch/quer/quadratisch) gleichmäßig gefüllt */
.hac-partner-hero__image {
  margin: 0;
  border-radius: var(--hac-radius);
  overflow: hidden;
  position: relative;
  aspect-ratio: 4 / 5;
  background: var(--hac-bg);
  box-shadow: var(--hac-shadow);
}

.hac-partner-hero__image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top; /* Gesicht oben – ACF-Feld kann das je Partner überschreiben */
  display: block;
  border-radius: var(--hac-radius);
}

.hac-partner-hero__name {
  font-size: clamp(2rem, 4.5vw, 3.2rem);
  font-weight: 800;
  letter-spacing: .03em;
  text-transform: uppercase;
  margin-bottom: 6px;
  color: var(--hac-heading);
  line-height: 1.1;
}

.hac-partner-hero__kategorie {
  font-size: .85rem;
  font-weight: 700;
  color: var(--hac-gruen-dk);
  text-transform: uppercase;
  letter-spacing: .12em;
  margin-bottom: 6px;
}

.hac-partner-hero__tagline {
  font-size: 1.05rem;
  font-weight: 400;
  font-style: italic;
  color: var(--hac-heading);
  margin-bottom: 22px;
  line-height: 1.5;
}

.hac-partner-hero__intro {
  margin-bottom: 28px;
}

.hac-partner-hero__intro a {
  color: var(--hac-blau);
  text-decoration: none;
}

.hac-partner-hero__intro a:hover {
  text-decoration: underline;
}

/* ── KONTAKT-BUTTONS ──────────────────────────────────────── */
.hac-partner-kontakt {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.hac-partner-kontakt__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 20px;
  border-radius: var(--hac-radius);
  font-size: .875rem;
  font-weight: 600;
  letter-spacing: .03em;
  text-decoration: none;
  transition: background .2s, color .2s, border-color .2s, box-shadow .2s, transform .15s;
  border: 1.5px solid #c8d4c2;
  color: var(--hac-text);
  background: var(--hac-white);
  white-space: nowrap;
  box-shadow: 0 1px 4px rgba(0,0,0,.07);
}

.hac-partner-kontakt__btn:hover {
  border-color: var(--hac-gruen);
  background: var(--hac-gruen);
  color: var(--hac-white);
  box-shadow: 0 3px 10px rgba(0,0,0,.12);
  transform: translateY(-1px);
}

.hac-partner-kontakt__btn svg {
  width: 16px;
  height: 16px;
  fill: currentColor;
  flex-shrink: 0;
}

.hac-partner-kontakt__btn--primary {
  background: var(--hac-blau);
  border-color: var(--hac-blau);
  color: var(--hac-white);
}
.hac-partner-kontakt__btn--primary:hover {
  background: var(--hac-blau-dk);
  border-color: var(--hac-blau-dk);
  color: var(--hac-white);
}

/* ── Social-Media-Buttons: Markenfarben im Default- und Hover-Zustand ── */

/* WhatsApp */
.hac-partner-kontakt__btn--whatsapp       { background: #f0faf2; border-color: #25d366; color: #128c3e; }
.hac-partner-kontakt__btn--whatsapp:hover { background: #25d366; border-color: #25d366; color: #fff; }

/* Instagram */
.hac-partner-kontakt__btn--instagram       { background: #fdf0f5; border-color: #e1306c; color: #c1185b; }
.hac-partner-kontakt__btn--instagram:hover { background: #e1306c; border-color: #e1306c; color: #fff; }

/* Facebook */
.hac-partner-kontakt__btn--facebook       { background: #f0f4ff; border-color: #1877f2; color: #1877f2; }
.hac-partner-kontakt__btn--facebook:hover { background: #1877f2; border-color: #1877f2; color: #fff; }

/* YouTube */
.hac-partner-kontakt__btn--youtube       { background: #fff5f5; border-color: #ff0000; color: #cc0000; }
.hac-partner-kontakt__btn--youtube:hover { background: #ff0000; border-color: #ff0000; color: #fff; }

/* TikTok */
.hac-partner-kontakt__btn--tiktok       { background: #f5f5f5; border-color: #010101; color: #010101; }
.hac-partner-kontakt__btn--tiktok:hover { background: #010101; border-color: #010101; color: #fff; }

/* LinkedIn */
.hac-partner-kontakt__btn--linkedin       { background: #f0f6ff; border-color: #0a66c2; color: #0a66c2; }
.hac-partner-kontakt__btn--linkedin:hover { background: #0a66c2; border-color: #0a66c2; color: #fff; }

/* Xing */
.hac-partner-kontakt__btn--xing       { background: #f0f8f8; border-color: #026466; color: #026466; }
.hac-partner-kontakt__btn--xing:hover { background: #026466; border-color: #026466; color: #fff; }

/* Pinterest */
.hac-partner-kontakt__btn--pinterest       { background: #fff5f5; border-color: #e60023; color: #e60023; }
.hac-partner-kontakt__btn--pinterest:hover { background: #e60023; border-color: #e60023; color: #fff; }

/* Weitere Website */
.hac-partner-kontakt__btn--website       { background: #f5f8ff; border-color: #1d89f6; color: #1d89f6; }
.hac-partner-kontakt__btn--website:hover { background: #1d89f6; border-color: #1d89f6; color: #fff; }

/* Download */
.hac-partner-kontakt__btn--download       { background: #f5f7f4; }
.hac-partner-kontakt__btn--download:hover { background: var(--hac-gruen); border-color: var(--hac-gruen); color: #fff; }

/* ── WARUM PARTNER ────────────────────────────────────────── */
.hac-partner-warum {
  background: var(--hac-bg);
  border-top: 1px solid var(--hac-border);
  border-bottom: 1px solid var(--hac-border);
}

.hac-partner-warum .hac-partner-section__title {
  color: var(--hac-heading);
}

.hac-partner-warum__zitat {
  border: none;
  margin: 0 0 24px;
  padding: 24px 28px;
  display: flex;
  gap: 20px;
  align-items: flex-start;
  background: var(--hac-white);
  border-left: 4px solid var(--hac-gruen);
  border-radius: 0 var(--hac-radius) var(--hac-radius) 0;
  box-shadow: var(--hac-shadow);
}

/* Theme-Anführungszeichen via ::before unterdrücken */
.hac-partner-warum__zitat::before,
.hac-partner-warum__zitat::after {
  content: none !important;
  display: none !important;
}

.hac-partner-warum__zitat svg {
  width: 36px;
  height: 36px;
  fill: var(--hac-gruen);
  flex-shrink: 0;
  margin-top: 4px;
  opacity: .8;
}

.hac-partner-warum__zitat p {
  font-size: 1.3rem;
  font-style: italic;
  color: var(--hac-heading);
  margin: 0;
  line-height: 1.65;
}

.hac-partner-warum__text {
  color: var(--hac-text);
}

.hac-partner-warum__text a {
  color: var(--hac-blau);
}

/* ── VIDEO ────────────────────────────────────────────────── */
.hac-partner-video {
  /* Obere Hälfte Markengrün, untere Hälfte weiß – wie auf der Live-Site */
  background: linear-gradient(
    to bottom,
    var(--hac-gruen) 0%,
    var(--hac-gruen) 52%,
    var(--hac-white) 52%,
    var(--hac-white) 100%
  );
}

.hac-partner-video .hac-partner-section__title {
  text-align: center;
  color: var(--hac-heading);
}

.hac-partner-video .hac-partner-section__subtitle,
.hac-single-partner .hac-partner-video h3.hac-partner-section__subtitle {
  text-align: center;
  color: var(--hac-heading) !important;
  font-family: inherit !important;
}

.hac-video-wrap {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  border-radius: var(--hac-radius);
  box-shadow: 0 8px 40px rgba(0,0,0,.2);
}

.hac-video-wrap iframe {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
}

/* ── ANGEBOT ──────────────────────────────────────────────── */
.hac-partner-angebot {
  background: var(--hac-white);
  border-top: 1px solid var(--hac-border);
}

.hac-partner-angebot__text {
  margin-bottom: 24px;
}

.hac-partner-angebot__text ul {
  padding-left: 1.4em;
}

.hac-partner-angebot__text a {
  color: var(--hac-blau);
}

.hac-partner-angebot__leistungslink {
  margin-bottom: 20px;
  font-size: .95rem;
  color: var(--hac-text-lt);
}

.hac-partner-angebot__leistungslink a {
  color: var(--hac-blau);
  font-weight: 500;
}

/* ── INSTAGRAM EMBEDS ─────────────────────────────────────── */
.hac-partner-instagram__embeds {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  align-items: flex-start;
}

.hac-partner-instagram__embeds > * {
  flex: 1 1 300px;
  max-width: 540px;
}

/* ── GALERIE ──────────────────────────────────────────────── */
.hac-partner-galerie {
  background: var(--hac-bg);
  border-top: 1px solid var(--hac-border);
}

.hac-partner-galerie__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 12px;
}

.hac-partner-galerie__item {
  margin: 0;
  border-radius: var(--hac-radius);
  overflow: hidden;
  cursor: zoom-in;
}

.hac-partner-galerie__item img {
  width: 100%; height: 200px;
  object-fit: cover;
  display: block;
  transition: transform .3s;
}

.hac-partner-galerie__item:hover img {
  transform: scale(1.04);
}

/* ── LIGHTBOX ─────────────────────────────────────────────── */
.hac-lightbox {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: rgba(0,0,0,.88);
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.hac-lightbox.is-open {
  display: flex;
}

.hac-lightbox__img {
  max-width: 92vw;
  max-height: 88vh;
  object-fit: contain;
  border-radius: var(--hac-radius);
  box-shadow: 0 8px 60px rgba(0,0,0,.5);
}

.hac-lightbox__close {
  position: fixed;
  top: 18px;
  right: 22px;
  background: none;
  border: none;
  color: #fff;
  font-size: 2.2rem;
  line-height: 1;
  cursor: pointer;
  padding: 4px 10px;
  opacity: .8;
  transition: opacity .2s;
}

.hac-lightbox__close:hover { opacity: 1; }

.hac-lightbox__nav {
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255,255,255,.12);
  border: none;
  color: #fff;
  font-size: 2rem;
  padding: 12px 18px;
  cursor: pointer;
  border-radius: var(--hac-radius);
  transition: background .2s;
  line-height: 1;
}

.hac-lightbox__nav:hover { background: rgba(255,255,255,.25); }
.hac-lightbox__prev { left: 16px; }
.hac-lightbox__next { right: 16px; }

/* ── WEITERE PARTNER ──────────────────────────────────────── */
.hac-partner-weitere {
  background: var(--hac-white);
  border-top: 1px solid var(--hac-border);
}

/* ── ZURÜCK-LINK ──────────────────────────────────────────── */
.hac-partner-zurueck {
  border-top: 1px solid var(--hac-border);
  padding: 24px 30px;
}

.hac-partner-zurueck__link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--hac-text);
  text-decoration: none;
  font-size: .95rem;
  font-weight: 500;
  transition: color .2s;
}

.hac-partner-zurueck__link svg {
  width: 24px;
  height: 10px;
}

.hac-partner-zurueck__link:hover {
  color: var(--hac-blau);
}

/* ══════════════════════════════════════════════════════════
   PARTNER-KACHELN (Grid – Übersicht & Startseite)
   ══════════════════════════════════════════════════════════ */

.hac-partner-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: var(--hac-gap);
}

.hac-partner-grid--small {
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 20px;
}

.hac-partner-card {
  border-radius: var(--hac-radius);
  background: var(--hac-white);
  box-shadow: var(--hac-shadow);
  overflow: hidden;
  transition: box-shadow .25s, transform .25s;
}

.hac-partner-card:hover {
  box-shadow: 0 6px 28px rgba(0,0,0,.13);
  transform: translateY(-3px);
}

.hac-partner-card__link {
  display: block;
  text-decoration: none;
  color: inherit;
}

/* Exakt gleiche Methode wie .hac-partner-hero__image auf der Detailseite */
.hac-partner-card__image-wrap {
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--hac-bg);
  display: block;
  width: 100%;
}

.hac-partner-card__image-wrap img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block;
  transition: transform .4s;
}

.hac-partner-card:hover .hac-partner-card__image-wrap img {
  transform: scale(1.06);
}

.hac-partner-card__body {
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.hac-partner-card__name {
  font-weight: 600;
  font-size: .95rem;
  color: var(--hac-heading);
  display: block;
}

.hac-partner-card__kat {
  font-size: .8rem;
  color: var(--hac-text-lt);
  text-transform: uppercase;
  letter-spacing: .06em;
  display: block;
}

/* ══════════════════════════════════════════════════════════
   ÜBERSICHTSSEITE
   ══════════════════════════════════════════════════════════ */

.hac-partner-uebersicht {
  max-width: 1100px;
  margin: 0 auto;
  padding: 40px 30px 80px;
}

/* Sprungmarken-Navigation */
.hac-partner-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 48px;
  padding: 20px 0;
  border-bottom: 2px solid var(--hac-border);
}

.hac-partner-nav__link {
  padding: 8px 16px;
  border-radius: 20px;
  background: var(--hac-gruen);
  border: 1.5px solid var(--hac-gruen);
  color: var(--hac-heading);
  text-decoration: none;
  font-size: .875rem;
  font-weight: 500;
  transition: background .2s, border-color .2s, color .2s;
  white-space: nowrap;
}

.hac-partner-nav__link:hover {
  background: var(--hac-blau);
  border-color: var(--hac-blau);
  color: var(--hac-white);
}

/* Kategorie-Abschnitt */
.hac-partner-kategorie-section {
  margin-bottom: 56px;
}

.hac-partner-kategorie-section__title {
  font-size: clamp(1.1rem, 2vw, 1.5rem);
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--hac-heading);
  margin-bottom: 24px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--hac-gruen);
  scroll-margin-top: 100px;
}

/* ── STARTSEITEN-MODUL (Shortcode) ──────────────────────── */
.hac-partner-teaser {
  padding: 40px 20px;
}

.hac-partner-teaser__title {
  text-align: center;
  margin-bottom: 32px;
}

@media (max-width: 600px) {
  .hac-partner-hero__inner,
  .hac-partner-section__inner,
  .hac-partner-uebersicht {
    padding-left: 16px;
    padding-right: 16px;
  }

  .hac-partner-nav {
    gap: 6px;
  }

  .hac-partner-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
}
