/* ============================================================
   Plumshundenasen – Custom CSS für Beaver Builder / BB Theme
   Markenfarben: Magenta + Lime-Gelb + Hellrosa
   ============================================================ */

/* --- CSS-Variablen (Markenfarben) --- */
:root {
  --color-bg:           #FFFFFF;
  --color-bg-alt:       #F8E8F8;         /* zartes Hellrosa */
  --color-primary:      #E600AC;         /* Magenta */
  --color-primary-dark: #B50087;
  --color-accent:       #FEEB1A;         /* Lime-Gelb (aus bubble_cta.svg) */
  --color-dark:         #1A1A1A;
  --color-text:         #1A1A1A;
  --color-text-soft:    #666666;
  --color-white:        #FFFFFF;
  --color-green:        #3DB54A;
  --radius:             14px;
  --shadow:             0 4px 20px rgba(0, 0, 0, 0.10);
  --font-base:          -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* --- Basis-Reset (ergänzt BB Theme) --- */
html { scroll-behavior: smooth; }
img  { max-width: 100%; }

/* ============================================================
   BB THEME HEADER – Magenta-Override
   ============================================================ */

/* Hintergrund Magenta */
.fl-page-header,
.fl-page-header-fixed,
.fl-page-header .fl-page-header-primary {
  background-color: var(--color-primary) !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.15) !important;
}

/* Logo-Größe */
.fl-page-header-logo img,
.fl-logo-img {
  height: 72px !important;
  width: auto !important;
  max-width: none !important;
}

/* Nav-Links weiß */
.fl-page-nav .menu > li > a,
.fl-nav-bar > li > a,
.fl-page-nav-right .menu > li > a {
  color: #ffffff !important;
  font-weight: 600 !important;
  font-size: 0.9rem !important;
  opacity: 0.9;
  text-decoration: none !important;
  transition: opacity 0.15s ease !important;
}
.fl-page-nav .menu > li > a:hover,
.fl-nav-bar > li > a:hover {
  color: #ffffff !important;
  opacity: 1 !important;
}

/* Mobile Burger-Menü weiß */
/* Korrektur 2026-07-02: tatsaechliche Klasse ist .fl-menu-mobile-toggle
   (nicht .fl-mobile-nav-toggle wie urspruenglich angenommen) - dadurch
   griff diese Regel bisher nie, Icon blieb schwarz statt weiss. */
.fl-menu-mobile-toggle svg {
  color: #ffffff !important;
  fill: #ffffff !important;
}
.fl-menu-mobile-toggle svg path,
.fl-menu-mobile-toggle svg rect,
.fl-menu-mobile-toggle svg line {
  stroke: #ffffff !important;
  fill: #ffffff !important;
}

/* ============================================================
   NAV-CTA – Sprechblase
   ============================================================ */

.menu-item-cta { padding: 0 !important; }
.menu-item-cta > a,
.menu-item-cta > a:hover { background: none !important; }

.nav-cta {
  display: inline-block;
  text-decoration: none !important;
  padding: 0 !important;
  transition: transform 0.15s ease;
}
.nav-cta:hover { transform: scale(1.06); }
.nav-cta-img {
  display: block;
  height: 82px;
  width: auto;
}

/* Mobile: CTA ausblenden, Burger-Menü übernimmt */
@media (max-width: 820px) {
  .menu-item-cta { display: none !important; }
}

/* ============================================================
   TYPOGRAFIE
   ============================================================ */

h1, h2, h3, h4 {
  font-family: var(--font-base);
  color: var(--color-primary);
  line-height: 1.2;
}
h1 { font-size: clamp(1.8rem, 4vw, 2.8rem); font-weight: 900; font-style: italic; }
h2 { font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 900; font-style: italic; text-align: center; }
h3 { font-size: 1.2rem; font-weight: 700; }
h4 { font-size: 1rem;   font-weight: 700; }

.section-brand {
  text-align: center;
  font-size: .85rem;
  font-weight: 700;
  color: var(--color-primary);
  letter-spacing: .04em;
  margin: -.3em 0 1.6rem;
}
.section-brand span { color: var(--color-accent); }

.section-intro {
  text-align: center;
  color: var(--color-text-soft);
  max-width: 640px;
  margin: 0 auto 2.5rem;
}

/* ============================================================
   BUTTONS
   ============================================================ */

.btn {
  display: inline-block;
  padding: 12px 26px;
  border-radius: 999px;
  font-weight: 700;
  font-size: .95rem;
  text-decoration: none;
  border: 2px solid transparent;
  transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease;
  cursor: pointer;
}
.btn:hover { transform: translateY(-2px); box-shadow: var(--shadow); opacity: .92; }
.btn-primary   { background: var(--color-primary);  color: #fff; }
.btn-secondary { background: transparent; color: var(--color-primary); border-color: var(--color-primary); }
.btn-whatsapp  { background: var(--color-green);    color: #fff; }
.btn-accent    { background: var(--color-accent);   color: var(--color-primary); }

/* ============================================================
   SEKTIONEN – Row-Klassen (in BB Row → Erweitert → CSS-Klasse)
   ============================================================ */

.section { padding: 80px 0; }
.section-alt { background: var(--color-bg-alt) !important; }
.section-white { background: #ffffff !important; }

/* ============================================================
   HERO-SECTION
   Row-Klasse: "hero-row"
   Hintergrundbild + Weißverlauf in BB Row-Einstellungen setzen
   ============================================================ */

.hero-row .fl-row-content-wrap {
  background-size: cover !important;
  background-position: center right !important;
  background-image:
    linear-gradient(to right,
      rgba(255,255,255,0.92) 30%,
      rgba(255,255,255,0.40) 55%,
      rgba(255,255,255,0.00) 75%),
    var(--hero-bg, url('')) !important;
  min-height: 60vh;
  display: flex;
  align-items: center;
}
/* Hinweis: --hero-bg wird nicht automatisch gesetzt.
   Stattdessen: im BB Row "Hintergrund → Foto" das Bild
   (gruppenfoto-rasselbande.jpg) wählen und als
   Row-Custom-CSS den Weißverlauf via .hero-row ergänzen. */

.hero h1 { color: var(--color-primary); }
.hero-sub {
  font-size: 1.05rem;
  margin-bottom: 1.8rem;
  color: var(--color-dark);
  font-weight: 500;
}
.hero-cta { display: flex; flex-wrap: wrap; gap: 14px; }

/* ============================================================
   LEISTUNGEN – 9 Magenta-Karten
   Row-Klasse: "section"
   ============================================================ */

.card-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
@media (max-width: 900px) { .card-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .card-grid { grid-template-columns: 1fr; } }

.card {
  background: var(--color-primary);
  border-radius: var(--radius);
  padding: 22px 20px 20px;
  display: flex;
  align-items: center;
  gap: 14px;
}
.card-icon {
  flex-shrink: 0;
  width: 52px; height: 52px;
  border-radius: 50%;
  overflow: hidden;
  background: #fff;
}
.card-icon img { width: 100%; height: 100%; object-fit: cover; }
.card h3 { color: #fff; margin: 0 0 .2em; font-size: 1rem; }
.card p  { color: rgba(255,255,255,.85); margin: 0; font-size: .85rem; }

/* ============================================================
   KURSE-SEKTION
   ============================================================ */

.kurse-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
}
@media (max-width: 760px) { .kurse-grid { grid-template-columns: 1fr; } }
.kurse-visual {
  background: var(--color-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 48px;
  min-height: 300px;
}
.kurse-visual img { max-width: 200px; }
.kurse-text { padding: 48px; background: #fff; }
.kurse-text h3 { font-size: 1.4rem; font-style: italic; font-weight: 900; margin-bottom: .6em; }
.kurse-text p  { color: var(--color-text-soft); margin-bottom: 1.4rem; }
.kurse-cta { display: flex; flex-wrap: wrap; gap: 12px; }

/* UEBER MICH
   Row-Klasse: "section section-alt"
   Headline im weißen Bereich oberhalb, Foto randlos als Hintergrund mit rund. Ecken oben/unten,
   Text darunter in 2 Spalten
   ============================================================ */

.about-headline {
  text-align: center;
  padding: 50px 20px 26px;
}
.about-headline .headline {
  margin: 0;
}
.about-headline .subTitle {
  margin: 6px 0 0;
}
.ueber-mich-wrap {
  background: var(--color-bg-alt);
  border-radius: var(--radius);
  overflow: hidden;
  padding: 0;
}
.video-teaser {
  margin: 0;
  padding: 14px 24px;
  text-align: center;
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--color-white);
  background: var(--color-primary);
  letter-spacing: .01em;
}

.about-hero {
  min-height: 520px;
  margin-bottom: 32px;
  background-size: cover;
  background-position: center 30%;
  background-repeat: no-repeat;
}

.about-hero-video {
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
  object-fit: cover;
  display: block;
  cursor: pointer;
}
.about-hero-tag {
  position: absolute;
  left: 24px;
  bottom: 20px;
  background: var(--color-white);
  padding: 10px 22px;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.about-hero-name {
  font-size: 1.4rem;
  font-weight: 900;
  font-style: italic;
  color: var(--color-dark);
}
.about-hero-nick {
  margin-left: 4px;
  font-size: 1.1rem;
  color: var(--color-text-soft);
}
.about-text-columns {
  padding: 32px 32px 48px;
  column-count: 2;
  column-gap: 48px;
}
.about-text-columns p {
  margin: 0 0 1em;
  break-inside: avoid-column;
}
.about-text-columns .about-signoff {
  font-style: italic;
}
.about-badge {
  float: right;
  width: 108px;
  height: auto;
  margin: 0 0 10px 18px;
}
@media (max-width: 760px) {
  .about-headline { padding: 34px 16px 18px; }
  .about-hero { min-height: 10px; }
  .about-hero-tag { left: 14px; bottom: 14px; padding: 8px 16px; }
  .about-hero-name { font-size: 1.15rem; }
  .about-text-columns { column-count: 1; padding: 24px 20px 36px; }
  .about-badge { width: 84px; margin: 0 0 8px 14px; }
}

/* ============================================================
   DIE GANG – Hunde-Karten
   ============================================================ */

.gang-title {
  text-align: center;
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 900;
  font-style: italic;
  color: var(--color-primary);
  margin: 0 0 .4em;
}
.dog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
@media (max-width: 900px) { .dog-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .dog-grid { grid-template-columns: 1fr; } }

.dog-card {
  background: #fff;
  border: 2px solid var(--color-primary);
  border-radius: var(--radius);
  padding: 24px 20px 20px;
  text-align: center;
}
.dog-card-memory { background: var(--color-bg-alt); }
.dog-photo-wrap {
  width: 90px; height: 90px;
  border-radius: 50%;
  overflow: hidden;
  border: 3px solid var(--color-primary);
  margin: 0 auto -45px;
  position: relative;
  z-index: 1;
  background: var(--color-bg-alt);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
}
.dog-photo-wrap img { width: 100%; height: 100%; object-fit: cover; }
.dog-card-body { padding-top: 52px; }
.dog-card h4 { margin: 0 0 .2em; }
.dog-meta { color: var(--color-text-soft); font-size: .82rem; margin: 0 0 .6em; }
.dog-badge {
  display: inline-block;
  font-size: .65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  background: var(--color-accent);
  color: var(--color-primary);
  padding: 3px 9px;
  border-radius: 999px;
  margin-left: 6px;
  vertical-align: middle;
}
.dog-badge-soft { background: var(--color-primary); color: #fff; }

/* ============================================================
   FAQ ACCORDION
   Row-Klasse: "section section-alt"
   ============================================================ */

.accordion { max-width: 760px; margin: 0 auto; }
.accordion-item { margin-bottom: 8px; }
.accordion-trigger {
  width: 100%;
  text-align: left;
  background: var(--color-primary);
  border: none;
  border-radius: 10px;
  font-size: .95rem;
  font-weight: 600;
  color: #fff;
  padding: 16px 20px;
  cursor: pointer;
  position: relative;
  transition: background .15s ease;
}
.accordion-trigger:hover { background: var(--color-primary-dark); }
.accordion-trigger::after {
  content: "+";
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.3rem;
  transition: transform .2s ease;
}
.accordion-trigger[aria-expanded="true"] { border-radius: 10px 10px 0 0; }
.accordion-trigger[aria-expanded="true"]::after { transform: translateY(-50%) rotate(45deg); }
.accordion-panel {
  max-height: 0;
  overflow: hidden;
  transition: max-height .25s ease;
  background: #fff;
  border: 1px solid var(--color-primary);
  border-top: none;
  border-radius: 0 0 10px 10px;
}
.accordion-panel p { padding: 16px 20px; color: var(--color-text); margin: 0; }

/* ============================================================
   KONTAKT
   Row 7 – seit 2026-07-02 live. Layout-Update 2026-07-02:
   Ursprünglich ein einfaches 2-Spalten-Grid (links Kontaktdaten,
   rechts Formular) – wirkte zu hoch, weil die Nachricht-Textarea
   die Zeilenhöhe diktierte. Umgestellt auf: oben ein Flex-Streifen
   mit Kontaktliste + Adress-Box nebeneinander (.kontakt-top),
   darunter das Formular volle Breite mit intern 2 Spalten
   (.form-fields-grid: links Name/Mail/Telefon, rechts Nachricht+
   Datenschutz) – deutlich kompakter in der Höhe.
   ============================================================ */

.kontakt-top {
  display: flex;
  gap: 32px;
  max-width: 1000px;
  margin: 0 auto 32px;
  align-items: flex-start;
}
.kontakt-top > * { flex: 1; }
@media (max-width: 700px) { .kontakt-top { flex-direction: column; } }

.contact-list { list-style: none; padding: 0; margin: 0; }
.contact-list li { padding: 8px 0; border-bottom: 1px solid rgba(230,0,172,.15); font-size: var(--fs-base); color: var(--color-dark); }
.contact-list li strong { color: var(--color-primary); display: inline-block; min-width: 110px; }
.contact-list a { color: var(--color-dark); text-decoration: none; font-weight: 600; }
.contact-list a:hover { color: var(--color-primary); }

.map-placeholder {
  background: #fff;
  border-radius: var(--radius);
  padding: 28px;
  margin: 0;
}
.map-placeholder strong { color: var(--color-primary); font-size: var(--fs-md); }
.map-hint { color: var(--color-text-soft); font-size: var(--fs-sm); margin-top: .8rem; margin-bottom: 0; line-height: 1.5; }

.contact-form {
  background: #fff;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 32px;
  max-width: 1000px;
  margin: 0 auto;
}
.form-subtitle { margin: 0 0 .2em; font-style: italic; font-weight: 900; color: var(--color-dark); font-size: var(--fs-lg); }
.form-intro { margin: 0 0 1.2rem; color: var(--color-text-soft); font-size: var(--fs-sm); }

.form-fields-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  align-items: start;
}
@media (max-width: 700px) { .form-fields-grid { grid-template-columns: 1fr; } }

/* Contact Form 7 Styling (Plugin) */
.wpcf7-form label { display: block; font-weight: 700; font-size: var(--fs-sm); color: var(--color-primary); margin-bottom: 14px; }
.form-col-right label { margin-bottom: 16px; }

/* Einwilligungs-Checkbox (Datenschutz) - eigenes Layout statt generisches Feld-Label */
.wpcf7-form label:has(.wpcf7-acceptance) {
  display: block !important;
  font-weight: 400 !important;
  font-size: 1.4rem !important;
  color: var(--color-text) !important;
  margin-bottom: 0 !important;
}
.wpcf7-list-item {
  display: flex !important;
  align-items: flex-start;
  gap: 10px;
  margin: 0 !important;
}
.wpcf7-list-item label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
}
.wpcf7-acceptance input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin-top: 3px;
  flex-shrink: 0;
  accent-color: var(--color-primary);
  cursor: pointer;
}
.wpcf7-list-item-label {
  line-height: 1.5;
}
.wpcf7-list-item-label a {
  color: var(--color-primary);
  font-weight: 700;
  text-decoration: underline;
}
.wpcf7-list-item-label a:hover {
  color: var(--color-text);
}
.wpcf7-form p:has(.wpcf7-acceptance) {
  margin-bottom: 20px;
}
.wpcf7-form input,
.wpcf7-form textarea {
  width: 100%;
  padding: 10px 14px;
  border-radius: 8px;
  border: 1.5px solid rgba(230,0,172,.3);
  font-family: inherit;
  font-size: 1rem;
  margin-top: 6px;
}
.form-col-right textarea { min-height: 132px; }
.wpcf7-form input:focus,
.wpcf7-form textarea:focus {
  outline: none;
  border-color: var(--color-primary);
}
.wpcf7-form input[type="submit"],
.wpcf7-submit {
  background: var(--color-primary) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 999px !important;
  padding: 12px 28px !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  width: auto !important;
  transition: opacity .15s ease !important;
  margin-top: 4px;
}
.wpcf7-form input[type="submit"]:hover { opacity: .9 !important; }

/* Honeypot-Feld (Spamschutz) unsichtbar machen */
input.hp-field,
.hp-field-wrap {
  position: absolute !important;
  left: -9999px !important;
  top: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

/* ============================================================
   FOOTER – BB Theme Customize übernimmt die Basis,
   wir überschreiben Farbe & Layout
   ============================================================ */

.fl-page-footer-wrap,
.fl-page-footer {
  background: var(--color-primary) !important;
  color: #fff !important;
}
.fl-page-footer a,
.fl-page-footer p { color: rgba(255,255,255,.85) !important; }
.fl-page-footer a:hover { color: #fff !important; opacity: 1; }
.fl-page-footer-logo img { height: 80px !important; width: auto !important; }

/* Footer (Custom HTML falls genutzt) */
.footer-inner {
  display: grid;
  grid-template-columns: auto 1fr 1fr;
  gap: 32px;
  align-items: start;
}
@media (max-width: 700px) { .footer-inner { grid-template-columns: 1fr; } }
.footer-logo-img { height: 80px; width: auto; display: block; }
.footer-col p { font-size: .85rem; opacity: .85; margin: 0; line-height: 1.7; }
.footer-nav { display: flex; flex-direction: column; gap: 6px; margin-top: .5rem; }
.footer-nav a { color: #fff; text-decoration: none; font-size: .85rem; opacity: .85; }
.footer-nav a:hover { opacity: 1; }
.footer-copy { font-size: .8rem; opacity: .7; margin-top: .8rem !important; }

/* ============================================================
   REVEAL ANIMATION
   Klasse "reveal" per BB Row → Erweitert → CSS-Klasse setzen
   ============================================================ */

.reveal { opacity: 0; transform: translateY(16px); transition: opacity .5s ease, transform .5s ease; }
.reveal.is-visible { opacity: 1; transform: none; }

/* ============================================================
   BEWERTUNGEN / REVIEWS
   ============================================================ */

.review-card {
  background: #fff;
  border: 2px solid var(--color-bg-alt);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 28px;
}
.review-card p    { font-style: italic; color: var(--color-text); }
.review-card cite { color: var(--color-text-soft); font-size: .9rem; }
.section-note { text-align: center; color: var(--color-text-soft); margin-top: 2rem; }


/* ============================================================
   HERO – Subtitle & CTA-Buttons (HTML-Modul)
   ============================================================ */
.hero-subtitle {
  font-size: 1.6rem;
  color: #ffffff;
  font-weight: 500;
  margin: 0.6rem 0 1.4rem;
  max-width: 500px;
}
.hero-buttons {
  display: flex !important;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 0.5rem;
}
.btn-hero {
  display: inline-block !important;
  padding: 13px 30px !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  text-decoration: none !important;
  border: 2px solid transparent !important;
  transition: transform 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease;
  cursor: pointer;
  letter-spacing: 0.01em;
  line-height: 1.2 !important;
}
.btn-hero:hover { transform: translateY(-2px); box-shadow: 0 4px 18px rgba(0,0,0,0.22); opacity: 0.95; }
.btn-hero.btn-primary { background: var(--color-primary) !important; color: #ffffff !important; border-color: var(--color-primary) !important; }
.btn-hero.btn-secondary { background: rgba(230,0,172,0.10) !important; color: #E600AC !important; border-color: #E600AC !important; backdrop-filter: none !important; }
.btn-hero.btn-secondary:hover { background: rgba(230,0,172,0.18) !important; }
@media (max-width: 600px) {
  .hero-buttons { flex-direction: column; gap: 10px; }
  .btn-hero { text-align: center; }
}
/* ============================================================
   Subtitle & SubtitleColor - Global Style
   ============================================================ */
.subTitle{
	text-align:center;
	margin:-10px 0 0 0;
	font-size:1.8rem;
	color:#E600AC!important;
}
.subTitleColor{
	color:#FEEB1A;
}
.headlineBox h2.headline{
	font-size:3.4rem;
	font-weight:300;
	font-style:normal;
	color:#E600AC;
	margin:0 0 0 0;
}
.p_dec{
text-align: center;
	color: #666666; 
	max-width: 640px; 
	margin: 10px auto 2.5rem; 
	font-size: 1.4rem;
	line-height: 1.6;
}

/* ============================================================
   HERO – Subtitle & CTA-Buttons (HTML-Modul)
   ============================================================ */
.hero-subtitle {
  font-size: 1.6rem;
  color: #ffffff;
  font-weight: 500;
  margin: 0.6rem 0 1.4rem;
  max-width: 500px;
}
.hero-buttons {
  display: flex !important;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 0.5rem;
}
.btn-hero {
  display: inline-block !important;
  padding: 13px 30px !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  text-decoration: none !important;
  border: 2px solid transparent !important;
  transition: transform 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease;
  cursor: pointer;
  letter-spacing: 0.01em;
  line-height: 1.2 !important;
}
.btn-hero:hover { transform: translateY(-2px); box-shadow: 0 4px 18px rgba(0,0,0,0.22); opacity: 0.15s ease; }
.btn-hero.btn-primary { background: var(--color-primary) !important; color: #ffffff !important; border-color: var(--color-primary) !important; }
.btn-hero.btn-secondary { background: rgba(230,0,172,0.10) !important; color: #E600AC !important; border-color: #E600AC !important; backdrop-filter: none !important; }
.btn-hero.btn-secondary:hover { background: rgba(230,0,172,0.18) !important; }
@media (max-width: 600px) {
  .hero-buttons { flex-direction: column; gap: 10px; }
  .btn-hero { text-align: center; }
}

/* ==== HEADER MOBILE: Bubble-Breakpoint-Fix 2026-07-03 ==== */
/* Bug: Bubble-Spalte (fl-node-2pxa7yj4zb0u) hatte keine eigene
   Small-Breakpoint-Breite und rutschte dadurch komplett in eine
   zweite Zeile unter Logo+Burger, was den Header unnoetig hoch machte.
   Fix: Spaltengruppe bei max-width:768px als Flex erzwingen (statt BBs
   eigenem float-Fallback), Reihenfolge + Breiten setzen, sodass Logo,
   Bubble und Burger in einer Zeile stehen (Bubble mittig zwischen
   Logo und Navi/Burger, wie gewuenscht). */
@media (max-width: 768px) {
  .fl-node-ge2iuys4xk1t {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
  }
  .fl-node-ge2iuys4xk1t > .fl-col {
    float: none !important;
    clear: none !important;
    max-width: none !important;
  }
  .fl-node-3zhqpbmy1x5j { /* Logo */
    width: 40% !important;
    order: 1;
  }
  .fl-node-2pxa7yj4zb0u { /* Bubble "Erstgespräch buchen" - zwischen Logo und Burger */
    width: 40% !important;
    order: 2;
  }
  .fl-node-zleoy7kmqvf4 { /* Burger/Navi */
    width: 20% !important;
    order: 3;
  }
}

/* ==== HERO MOBILE FIX 2026-07-03 ==== */
/* Bug 1: Theme-Customizer-Skin-CSS setzt h1 fest auf 36px (auch in dessen
   eigenen max-width:767px-Media-Queries keine Verkleinerung) und gewinnt per
   Cascade-Reihenfolge gegen unseren rem-Clamp in dieser Datei. Dadurch bricht
   "Hundetraining" bei schmalem Overlay-Panel mitten im Wort um.
   Bug 2: Das Text-Overlay-Panel (Headline+Fließtext+Buttons, self-contained
   HTML-Modul fl-node-o9wg8b3t5xjs in Spalte fl-node-uvrkmqs1zn8h) ist bei
   Mobile nur ca. 50% der Viewport-Breite (Desktop-Splitlayout-Erbe, absolut
   positioniert ohne eigene Mobile-Breite) - zu wenig Platz fuer Headline UND
   Buttons.
   Bug 3: Sekundaer-Button "Kurse & Preise" (weisser Text, fast-transparenter
   Hintergrund) liegt dadurch teils auf dem hellen Weiss-Verlauf-Overlay -
   weiss auf weiss, kaum lesbar. */
@media (max-width: 767px) {
  .fl-node-po3fgkjxyl6v h1 {
    font-size: clamp(2.2rem, 6.1vw, 3.2rem) !important;
  }
  .fl-node-o9wg8b3t5xjs .hero-buttons {
    flex-direction: row !important;
    justify-content: space-around !important;
    gap: 0 !important;
  }
  .fl-node-o9wg8b3t5xjs .btn-hero {
    padding: 13px 13px !important;
  }
  .fl-node-po3fgkjxyl6v .fl-row-content {
    width: calc(100% - 40px) !important;
    max-width: 420px !important;
  }
  .fl-node-o9wg8b3t5xjs {
    width: 100% !important;
    flex: 1 1 auto !important;
  }
}

/* ==== HERO MOBILE 2026-07-03 (v2 - Nutzer-Feedback nach visueller Pruefung) ==== */
/* Erste Version (gestapelt: Bild oben klein, Text darunter solide) wurde vom
   Nutzer nach Ansicht verworfen - Design "spricht nicht an". Neue Richtung:
   Foto bleibt Fullscreen (wie urspruenglich), aber der Text-Block (Headline+
   Fließtext+Buttons) sitzt jetzt OBEN direkt unter dem Menü in voller Breite -
   dort ist im Foto normalerweise nur Himmel/Baumkronen zu sehen, also kein
   Konflikt mit dem eigentlichen Bildmotiv (Hunde/Personen meist im unteren
   Bilddrittel). Bildausschnitt wird über object-position gezielt gesteuert
   statt der bisherigen JS-Zufallspositionierung des BB-Slideshow-Widgets. */
@media (max-width: 767px) {
  /* Zeile wieder fullscreen */
  .fl-node-po3fgkjxyl6v.fl-row-full-height > .fl-row-content-wrap {
    min-height: 70vh !important;
    height: auto !important;
  }
  .fl-node-po3fgkjxyl6v .fl-bg-slideshow {
    position: absolute !important;
    top: 0 !important;
    bottom: 0 !important;
    height: auto !important;
  }
  /* Bildausschnitt: Fokus etwas oberhalb der Bildmitte, damit das eigentliche
     Motiv (meist unteres Bilddrittel) sichtbar bleibt und nicht vom Text
     verdeckt wird. Wert bei Bedarf nachjustieren (0%=oben, 100%=unten). */
  .fl-node-po3fgkjxyl6v .fl-slideshow-image-img {
    width: 100% !important;
    height: 100% !important;
    left: 0 !important;
    top: 0 !important;
    object-fit: cover !important;
    object-position: center 35% !important;
  }
  /* Text-Panel: oben, volle Breite, direkt unter dem Menü */
  .fl-node-po3fgkjxyl6v .fl-row-content {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-top: 0 !important;
  }
  .fl-node-o9wg8b3t5xjs {
    width: 100% !important;
    flex: 1 1 auto !important;
    background: rgba(255,255,255,0.75) !important;
    padding: 28px 20px 50px !important;
    text-align: center !important;
  }
  .fl-node-o9wg8b3t5xjs .hero-buttons {
    align-items: center !important;
  }
  .fl-node-po3fgkjxyl6v h1 {
    font-size: clamp(2.2rem, 6.1vw, 3.2rem) !important;
  }
  .fl-node-o9wg8b3t5xjs .hero-buttons {
    flex-direction: row !important;
    justify-content: space-around !important;
    gap: 0 !important;
  }
  .fl-node-o9wg8b3t5xjs .btn-hero {
    padding: 13px 13px !important;
  }
}

/* ==== Roboto lokal gehostet statt von Google geladen (2026-07-03) ==== */
/* Datei liegt in der Mediathek (via REST-Upload), Variable-Font-Datei
   deckt den kompletten Weight-Bereich 100-900 ab - eine Datei reicht
   fuer die genutzten Schnitte 300 und 700. */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(about:blank) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ==== Impressum/Datenschutz: einheitlich linksbuendig (2026-07-03) ==== */
.page-id-126 h2,
.page-id-3 h2 {
  text-align: left !important;
}


/* HEADER NAV: einheitlicher Fokus-Stil browseruebergreifend (2026-07-03)
   Grund: Chrome zeigt bei Klick/Fokus auf Nav-Links einen blauen Standard-Outline-Ring,
   Safari/Firefox zeigen dort (je nach OS-Theme) kaum sichtbaren Fokus-Rahmen.
   Fix: nativen Outline nur bei Maus-Fokus entfernen, bei Tastatur-Fokus (:focus-visible)
   einen einheitlichen, zur CI passenden Rahmen zeigen -> Barrierefreiheit bleibt erhalten. */
.fl-node-2p7f05t6rhmy .menu-item a:focus {
  outline: none;
}
.fl-node-2p7f05t6rhmy .menu-item a:focus-visible {
  outline: 2px solid #feeb1a;
  outline-offset: 2px;
}


/* NACH-OBEN-BUTTON: an CI angleichen (2026-07-03)
   Default (BB Theme Skin-CSS) war grau (rgba(0,0,0,0.2)), eckig, generisch.
   Jetzt: Magenta-Hintergrund, abgerundete Ecken, weisser Pfeil -> passt zu den
   uebrigen Buttons (Erstgespraech buchen, WhatsApp schreiben). !important noetig,
   da die Skin-CSS-Datei nach plums-custom.css laedt. */
#fl-to-top {
  background-color: var(--color-primary) !important;
  border: 2px solid #ffffff !important;
  border-radius: 10px !important;
  transition: background-color 0.2s ease !important;
}
#fl-to-top:hover {
  background-color: var(--color-primary-dark) !important;
}
#fl-to-top i {
  color: var(--color-white) !important;
}


/* SIDEBAR: Blog-Sidebar Widgets (Suche, Kategorien, neueste Beitraege, CTA-Box) - 2026-07-03 */
.widget-area .plums-sidebar-cta,
.plums-sidebar-cta {
  padding: 24px !important;
  border-radius: var(--radius) !important;
}


/* Blog-Karten "weiterlesen"-Pfeil - Fix: BB-kompilierte CSS zeigt literal "2192" statt Pfeilzeichen */
.blog-more::after {
  content: "\2192" !important;
}

/* Schatten hinter dem Icon-Logo (Kurse & Preise) - drop-shadow statt box-shadow, folgt der Bildform statt dem eckigen Container */
.iconLogo img {
  filter: drop-shadow(var(--shadow));
}


/* Footer (2026-07-07): Logo+Claim / Navigation / Kontakt / Social + Copyright-Leiste */
#plums-footer {
  background: var(--color-primary);
  color: #ffffff;
}
.plums-footer-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 50px 20px 30px;
  display: grid;
  grid-template-columns: 1.7fr 1fr 1fr 0.8fr;
  gap: 30px;
}
.plums-footer-col h4 {
  color: #feeb1a;
  font-size: 1.6rem;
  margin: 0 0 16px;
  font-weight: 700;
}
.plums-footer-brand .plums-footer-logo {
  width: 140px;
  margin-bottom: 16px;
}
.plums-footer-brand p {
  font-size: 1.4rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.85);
  margin: 0;
}
.plums-footer-col ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.plums-footer-col ul li {
  margin-bottom: 10px;
}
.plums-footer-col a {
  color: #ffffff;
  text-decoration: none;
  font-size: 1.4rem;
}
.plums-footer-col a:hover {
  color: #feeb1a;
}
.plums-footer-contact li {
  font-size: 1.4rem;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.6;
}
.plums-footer-note {
  font-size: 1.2rem;
  color: rgba(255, 255, 255, 0.65);
  margin: 10px 0 0;
  font-style: italic;
}
.plums-footer-social {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border: 2px solid #ffffff;
  border-radius: 50%;
  color: #ffffff;
  transition: border-color .2s, color .2s;
}
.plums-footer-social:hover {
  border-color: #feeb1a;
  color: #feeb1a;
}
.plums-footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.3);
  padding: 16px 20px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  font-size: 1.3rem;
  color: rgba(255, 255, 255, 0.85);
}
.plums-footer-legal-links a {
  color: #ffffff;
  text-decoration: underline;
  margin: 0 8px;
  font-size: 1.3rem;
}
.plums-footer-legal-links a:hover {
  color: #feeb1a;
}
@media (max-width: 767px) {
  .plums-footer-inner {
    grid-template-columns: 1fr;
    gap: 30px;
    text-align: center;
    padding: 40px 20px 20px;
  }
  .plums-footer-brand .plums-footer-logo {
    margin: 0 auto 16px;
  }
  .plums-footer-social {
    margin: 0 auto;
  }
}

/* Alten Theme-Standard-Footer ausblenden (redundant, zeigte nur "Powered by Beaver Builder") */
.fl-page-footer-wrap {
  display: none !important;
}


.about-headline .headline {
  color: var(--color-primary);
}
