/* =========================================================
   Naturheilpraxis Mayer – Projekt-CSS (Overrides & Patterns)
   Design-Basis: Variante 2 "Elegant" + Kundenfeedback
   ========================================================= */

:root{
  --nhm-cream:#F5F1E7; --nhm-cream-2:#EFE9DA; --nhm-card:#FBF9F3;
  --nhm-ink:#232320; --nhm-ink-soft:#565449; --nhm-ink-mute:#8A8678;
  --nhm-olive:#8A7C1E; --nhm-olive-deep:#6E6417; --nhm-gold:#D3B61F;
  --nhm-blue:#AEC8D2; --nhm-blue-deep:#7FA3B0; --nhm-blue-soft:#E7EEF1;
  --nhm-orange:#E89A56; --nhm-line:#DDD7C7;
}

/* --- Einheitlicher hellblauer Rahmen hinter ALLEN Bildern (Kundenwunsch) ---
   Klasse .nhm-framed auf Image-Widgets => hellblaue "Passepartout"-Mat. */
/* Versetzter hellblauer Rahmen NUR unten + rechts (wie Konzept 2) */
.elementor-widget-image.nhm-framed{ background:transparent !important; padding:0 !important; }
.nhm-framed img{ display:block; width:100%; height:auto; box-shadow:18px 18px 0 0 #AEC8D2; }
.nhm-framed--shadow img{ box-shadow:18px 18px 0 0 #AEC8D2, 0 28px 46px -30px rgba(60,50,20,.38); }
@media (max-width:767px){
  .nhm-framed img{ box-shadow:11px 11px 0 0 #AEC8D2; }
}

/* --- Section-Paddings responsiv reduzieren --- */
@media (max-width:1024px){
  .e-con:not(.e-child){ --padding-top:64px; --padding-bottom:64px; }
}
@media (max-width:767px){
  .e-con:not(.e-child){ --padding-top:48px; --padding-bottom:48px; --padding-left:18px; --padding-right:18px; }
}

/* --- Buttons full-width auf sehr kleinen Screens --- */
@media (max-width:480px){
  .elementor-widget-button .elementor-button{ width:100%; justify-content:center; }
}

/* --- Serif-Headlines: optische Feinheiten --- */
.nhm-serif, .nhm-serif *{ font-family:"Cormorant Garamond", Georgia, serif !important; }
.nhm-italic{ font-style:italic; }

/* =================== HEADER / NAV =================== */
.nhm-header{ box-shadow:0 1px 0 var(--nhm-line); }
.nhm-brand-lockup{ display:flex; align-items:center; gap:.6rem; text-decoration:none; }
.nhm-brand-lockup img{ height:46px; width:auto; }
.nhm-brand-lockup .wm{ display:flex; flex-direction:column; line-height:1.12; }
.nhm-brand-lockup .wm b{ font:700 .82rem/1.1 "Source Sans 3",sans-serif; letter-spacing:.2em; text-transform:uppercase; color:var(--nhm-ink); }
.nhm-brand-lockup .wm span{ font:600 .6rem/1.2 "Source Sans 3",sans-serif; letter-spacing:.3em; text-transform:uppercase; color:var(--nhm-olive); }

/* Termin-CTA im Menü als eckiger Button */
.elementor-nav-menu .nhm-cta > a.elementor-item{
  background:var(--nhm-olive); color:var(--nhm-card) !important; border-radius:0;
  padding:11px 22px !important; margin-left:.4rem; font-weight:700 !important;
  transition:background .2s;
}
.elementor-nav-menu .nhm-cta > a.elementor-item:hover{ background:var(--nhm-olive-deep); }
.elementor-nav-menu--dropdown .nhm-cta > a.elementor-item{ background:var(--nhm-olive); color:#fff !important; text-align:center; }

/* =================== FOOTER (V3-Stil, dunkel) =================== */
.nhm-logo-white img{ filter:brightness(0) invert(1); opacity:.95; }
.nhm-footer a{ transition:color .2s; }
.nhm-footer a:hover{ color:#fff !important; }
/* Bottom-Zeile: alles in einer Zeile */
.nhm-footer-bottom .e-con-inner{ flex-direction:row !important; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem; }
.nhm-foot-legal{ display:flex; gap:1.4rem; }
.nhm-foot-legal .elementor-icon-list-item{ margin:0 !important; }

/* Footer-Spalten auf Mobile untereinander, Links sichtbar (kein Burger) */
@media (max-width:767px){
  .nhm-footer-cols .e-con-inner{ flex-direction:column !important; gap:2rem; }
  .nhm-footer-bottom .e-con-inner{ flex-direction:column !important; text-align:center; }
}

/* Footer-Rechtslinks ohne Icon (kein Häkchen) */
.nhm-foot-legal .elementor-icon-list-icon{ display:none !important; }
.nhm-foot-legal .elementor-icon-list-text{ margin-left:0 !important; }

/* =================== HERO (V2-Konzept) =================== */
.nhm-hero{ position:relative; overflow:hidden; }
.nhm-hero-motif{ position:absolute !important; left:-24px; top:50%; transform:translateY(-50%);
  height:118%; opacity:.13; pointer-events:none; z-index:0; padding:0 !important; background:none !important; box-shadow:none !important; }
.nhm-hero-motif img{ height:100% !important; width:auto !important; max-width:none !important; }
.nhm-hero-inner{ position:relative; z-index:2; }
.nhm-hero-card .elementor-widget-container{ }
@media (max-width:960px){
  .nhm-hero{ background:var(--nhm-cream) !important; }
  .nhm-hero-motif{ display:none; }
}

/* =================== MOBILE-SAFETY / OVERFLOW =================== */
html, body{ overflow-x:hidden; max-width:100%; }
.e-con, .e-con-inner{ max-width:100%; }
img, iframe{ max-width:100%; }
@media (max-width:767px){
  /* Hero-Typo mobil bändigen, damit nichts überläuft */
  .nhm-hero .elementor-widget-html h1{ font-size:2rem !important; line-height:1.12 !important; }
  .nhm-hero .elementor-heading-title{ letter-spacing:.1em !important; }
  .nhm-hero-card{ width:100% !important; }
}

/* Mobile-Header: Logo links, Burger rechts – eine Zeile (P1) */
@media (max-width:1024px){
  .nhm-header{ flex-wrap:nowrap !important; align-items:center !important; }
  .nhm-header .elementor-widget-html{ flex:1 1 auto; min-width:0; }
  .nhm-header .elementor-widget-nav-menu{ flex:0 0 auto; width:auto !important; }
  .nhm-header .elementor-nav-menu--main{ justify-content:flex-end; }
  .nhm-brand-lockup img{ height:40px; }
}
.nhm-brand-lockup .wm b{ white-space:nowrap; }

/* Mobile-Dropdown vollbreit + saubere Items */
@media (max-width:1024px){
  .nhm-header .elementor-nav-menu--dropdown{ width:100vw !important; left:50% !important; transform:translateX(-50%); margin-top:14px; box-shadow:0 20px 40px -24px rgba(60,50,20,.4); }
  .nhm-header .elementor-nav-menu--dropdown a{ padding:16px 32px !important; font-size:15px !important; }
}

/* =================== BLOG-PROSA (Single Post) =================== */
.nhm-prose{ }
.nhm-prose h2{ font-family:"Cormorant Garamond",Georgia,serif; font-weight:600; font-size:1.95rem; color:var(--nhm-ink); margin:2.2rem 0 .7rem; line-height:1.16; }
.nhm-prose h3{ font-family:"Cormorant Garamond",Georgia,serif; font-weight:600; font-size:1.45rem; color:var(--nhm-ink); margin:1.6rem 0 .4rem; }
.nhm-prose p{ color:var(--nhm-ink-soft); font-size:1.07rem; line-height:1.78; margin:0 0 1.1em; }
.nhm-prose > ul{ margin:0 0 1.3em; padding-left:0; list-style:none; }
.nhm-prose > ul > li{ position:relative; padding-left:1.6em; margin-bottom:.55em; color:var(--nhm-ink-soft); line-height:1.7; }
.nhm-prose > ul > li::before{ content:""; position:absolute; left:.2em; top:.66em; width:7px; height:7px; border-radius:50%; background:var(--nhm-olive); }
.nhm-prose strong{ color:var(--nhm-ink); font-weight:700; }
.nhm-prose em{ font-style:italic; }
/* Callout-Box ("3 Dinge …") */
.nhm-callout{ background:var(--nhm-blue-soft); border-left:4px solid var(--nhm-olive); padding:1.4rem 1.6rem; margin:1.9rem 0; }
.nhm-callout .nhm-callout-t{ font-weight:700; color:var(--nhm-ink); margin-bottom:.5rem; font-size:1.05rem; }
.nhm-callout ul{ margin:0; padding-left:0; list-style:none; }
.nhm-callout ul li{ position:relative; padding-left:1.5em; margin-bottom:.35em; color:var(--nhm-ink-soft); }
.nhm-callout ul li::before{ content:""; position:absolute; left:.2em; top:.6em; width:6px; height:6px; border-radius:50%; background:var(--nhm-olive); }

/* FAQ – natives <details>-Akkordeon */
.nhm-faq details{ border-bottom:1px solid var(--nhm-line); }
.nhm-faq summary{ cursor:pointer; list-style:none; padding:1.15rem 2.2rem 1.15rem 0; font-family:"Source Sans 3",sans-serif; font-weight:700; font-size:1.06rem; color:var(--nhm-ink); position:relative; transition:color .2s; }
.nhm-faq summary::-webkit-details-marker{ display:none; }
.nhm-faq summary::after{ content:"+"; position:absolute; right:.1rem; top:50%; transform:translateY(-50%); font-size:1.5rem; color:var(--nhm-olive); font-weight:400; }
.nhm-faq details[open] summary::after{ content:"\2013"; }
.nhm-faq details[open] summary{ color:var(--nhm-olive-deep); }
.nhm-faq .nhm-faq-a{ padding:0 0 1.25rem; color:var(--nhm-ink-soft); line-height:1.75; }

/* =================== BLOG LOOP-CARDS =================== */
.nhm-loopcard{ transition:transform .25s, box-shadow .25s; height:100%; }
.nhm-loopcard:hover{ transform:translateY(-5px); }
.nhm-loopcard .nhm-loop-cat{ }
.e-loop-item .nhm-framed img{ box-shadow:12px 12px 0 0 #AEC8D2; }

/* Loop-Cards: einheitliche Bildhöhe (4:3) */
.e-loop-item .nhm-framed img{ aspect-ratio:4/3; object-fit:cover; object-position:center; }
.nhm-loopcard{ align-self:stretch; }
/* Versetzter Rahmen auch für Karten-Boxen (z.B. Google-Maps) */
.nhm-framebox{ box-shadow:18px 18px 0 0 #AEC8D2; }
@media (max-width:767px){ .nhm-framebox{ box-shadow:11px 11px 0 0 #AEC8D2; } }

/* Klickbare Karten via Stretched-Link (Container-Links rendern in dieser Elementor-Version nicht) */
.nhm-card{ position:relative; transition:transform .25s, box-shadow .25s; }
.nhm-card:hover{ transform:translateY(-6px); box-shadow:0 26px 56px -34px rgba(60,50,20,.45); }
.nhm-loopcard{ position:relative; }
.nhm-cardlink a, .nhm-loopcard .elementor-widget-image a{ text-decoration:none !important; }
.nhm-cardlink a::after,
.nhm-loopcard .elementor-widget-image a::after{
  content:""; position:absolute; inset:0; z-index:6;
}
.nhm-loopcard{ transition:transform .25s; }
.nhm-loopcard:hover{ transform:translateY(-5px); }

/* CTA-Band: Überschrift, Text & Button mittig zentriert */
.nhm-cta-band .e-con-inner{ align-items:center !important; text-align:center; }
.nhm-cta-band .e-con-inner > .e-con{ align-items:center !important; }
.nhm-cta-band .elementor-heading-title,
.nhm-cta-band .elementor-widget-text-editor{ text-align:center !important; }
.nhm-cta-band .elementor-button-wrapper{ width:100%; text-align:center; }

/* Terminbuchungs-Karte (Konzept 2) */
.nhm-booking-group + .nhm-booking-group{ margin-top:1.5rem; padding-top:1.3rem; border-top:1px solid var(--nhm-line); }
.nhm-booking h4{ font-family:"Cormorant Garamond",Georgia,serif; font-weight:600; font-size:1.5rem; color:var(--nhm-ink); margin:0 0 .2rem; }
.nhm-booking-sub{ font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; font-weight:700; color:var(--nhm-olive); margin:.9rem 0 .3rem; }
.nhm-booking-item{ padding:.65rem 0; border-bottom:1px dashed var(--nhm-line); }
.nhm-booking-item:last-child{ border-bottom:0; }
.nhm-booking-item .n{ font-weight:700; color:var(--nhm-ink); font-size:.98rem; }
.nhm-booking-item .m{ color:var(--nhm-olive-deep); font-weight:700; font-size:.8rem; margin-left:.5rem; }
.nhm-booking-item .d{ display:block; color:var(--nhm-ink-soft); font-size:.9rem; margin-top:.2rem; line-height:1.55; }

/* Prinzipien-Liste (Über mich) – Term fett */
.nhm-checklist-strong .elementor-icon-list-text strong{ color:var(--nhm-ink); }

/* CTA-Band Zentrierung – Korrektur (echte Container) */
.nhm-cta-band, .nhm-cta-band .e-con{ align-items:center !important; }
.nhm-cta-band .elementor-heading-title,
.nhm-cta-band .elementor-widget-text-editor,
.nhm-cta-band .elementor-widget-text-editor *{ text-align:center !important; }
.nhm-cta-band .elementor-button-wrapper{ text-align:center; }

/* =================== FEEDBACK RUNDE 1 =================== */
/* Akzent-Wort in Headlines (olive, kursiv) – wie „ganzheitlicher“ */
.elementor-heading-title .nhm-accent,
.nhm-accent{ color:var(--nhm-olive); font-style:italic; }

/* Verfahren-Liste (Design Konzept 2: Farbpunkt, Serif-Titel, Trennlinie) */
.nhm-methods{ width:100%; margin-top:.6rem; }
.nhm-method{ position:relative; padding:1.1rem 0 1.1rem 28px !important; border-bottom:1px solid var(--nhm-line); }
.nhm-method:last-child{ border-bottom:0; }
.nhm-method::before{ content:""; position:absolute; left:0; top:1.55rem; width:12px; height:12px; border-radius:50%; background:var(--nhm-olive); }
.nhm-method--orange::before{ background:var(--nhm-orange); }
.nhm-method--blue-deep::before{ background:var(--nhm-blue-deep); }
.nhm-method--gold::before{ background:var(--nhm-gold); }
.nhm-method .elementor-heading-title{ font-family:"Cormorant Garamond",Georgia,serif; line-height:1.25; }
.nhm-method p{ margin:0; }

/* Interne Links im Fließtext: CD-Olive statt WordPress-Standardrot. Footer + Buttons bleiben unberührt. */
.elementor-widget-text-editor a:not(.elementor-button),
.nhm-prose a:not(.elementor-button){
  color:var(--nhm-olive-deep);
  text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px;
  text-decoration-color:rgba(138,124,30,.45);
  transition:color .18s ease, text-decoration-color .18s ease;
}
.elementor-widget-text-editor a:not(.elementor-button):hover,
.nhm-prose a:not(.elementor-button):hover{ color:var(--nhm-olive); text-decoration-color:var(--nhm-olive); }
footer .elementor-widget-text-editor a{ color:inherit; text-decoration:none; }

/* Checklisten: Haken auf Höhe der ERSTEN Zeile, nicht vertikal zentriert */
.nhm-checklist-strong .elementor-icon-list-item,
.nhm-anliegen .elementor-icon-list-item,
.nhm-media-list .elementor-icon-list-item{ align-items:flex-start !important; }
.nhm-checklist-strong .elementor-icon-list-icon,
.nhm-anliegen .elementor-icon-list-icon,
.nhm-media-list .elementor-icon-list-icon{ margin-top:.3em; }

/* „Typische Anliegen“ / „Was ich anbiete“: zweispaltig, mobil einspaltig */
.nhm-anliegen .elementor-icon-list-items{ columns:2; column-gap:52px; text-align:left; }
.nhm-anliegen .elementor-icon-list-item{ break-inside:avoid; -webkit-column-break-inside:avoid; display:flex !important; }
@media (max-width:1024px){ .nhm-anliegen .elementor-icon-list-items{ columns:1; } }

/* Elementor setzt <a> in Icon-Listen auf display:flex – ein Link mitten im
   Listentext bekäme dadurch eine eigene Zeile. Inline zurückholen. */
.elementor-icon-list-text a{
  display:inline !important; align-items:initial !important;
  color:var(--nhm-olive-deep);
  text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px;
  text-decoration-color:rgba(138,124,30,.45);
}
.elementor-icon-list-text a:hover{ color:var(--nhm-olive); text-decoration-color:var(--nhm-olive); }
footer .elementor-icon-list-text a{ color:inherit; text-decoration:none; }

/* Hinweis-Absatz unter „Mein Ansatz“ (Labordiagnostik-Kosten, Schmerzen-Freiwilligkeit) */
.nhm-note{ border-left:2px solid var(--nhm-blue); padding-left:14px; }
.nhm-note p{ margin:0; }

/* Abschluss-Satz unter einer Listen-Sektion */
.nhm-after{ max-width:60ch; margin:.4rem auto 0; }
.nhm-after p{ margin:0; }

/* Themen-Buttons über dem Blog-Grid: mittig – auch wenn sie mobil untereinander umbrechen.
   Die Button-Reihe ist ein direktes .e-con-Kind von .nhm-topics und steht per Default
   auf justify-content:normal, also linksbündig. */
.nhm-topics > .e-con{ justify-content:center; flex-wrap:wrap; }
.nhm-topics .elementor-button{ padding:9px 22px; font-size:.8rem; }

/* Workshop-Hinweisbox auf der Seminarseite. Standardmäßig ausgeblendet – Frau Mayer
   trägt die Daten ein und entfernt im Elementor-Editor die Haken bei „Ausblenden auf …". */
.nhm-workshop-box{ border-top:1px solid var(--nhm-line); border-bottom:1px solid var(--nhm-line); }
.nhm-ws{ border-left:3px solid var(--nhm-olive); padding:2px 0 2px 20px; }
.nhm-ws-eyebrow{ font:700 .72rem/1 "Source Sans 3",sans-serif; letter-spacing:.16em; text-transform:uppercase; color:var(--nhm-olive); margin:0 0 .5rem; }
.nhm-ws-title{ font-family:"Cormorant Garamond",Georgia,serif; font-size:1.7rem; font-weight:600; color:var(--nhm-ink); margin:0 0 .35rem; line-height:1.2; }
.nhm-ws-meta{ font-size:.95rem; color:var(--nhm-ink-soft); margin:0 0 .8rem; }
.nhm-ws-text{ color:var(--nhm-ink-soft); margin:0 0 .8rem; }
.nhm-ws-terms{ font-size:.9rem; color:var(--nhm-ink-mute); margin:0 0 .6rem; }
.nhm-ws-anmeldung{ margin:0 0 .35rem; }
.nhm-ws-flyer{ margin:0; }
.nhm-ws a{ color:var(--nhm-olive-deep); text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(138,124,30,.45); }
.nhm-ws a:hover{ color:var(--nhm-olive); text-decoration-color:var(--nhm-olive); }

/* Nummerierte Ablauf-Schritte (01, 02, …) – Nummern per Counter, damit Umsortieren nichts bricht */
.nhm-steps{ width:100%; counter-reset:nhmstep; margin-top:.4rem; }
.nhm-step{ position:relative; padding:1.05rem 0 1.05rem 46px !important; border-bottom:1px solid var(--nhm-line); counter-increment:nhmstep; }
.nhm-step:last-child{ border-bottom:0; }
.nhm-step::before{
  content:counter(nhmstep,decimal-leading-zero);
  position:absolute; left:0; top:1.35rem;
  font:700 .78rem/1 "Source Sans 3",sans-serif; letter-spacing:.09em; color:var(--nhm-olive);
}
.nhm-step .elementor-heading-title{ font-family:"Cormorant Garamond",Georgia,serif; line-height:1.25; }
.nhm-step p{ margin:0; }

/* Badges: nur grüne Umrandung, transparent */
.nhm-badges{ width:auto !important; }
.nhm-badge{ width:auto !important; flex:0 0 auto; background:transparent !important; }
.nhm-badge .elementor-heading-title{ white-space:nowrap; }

/* Terminbuchung: Gruppen klarer trennen */
.nhm-booking-group{ background:var(--nhm-cream); border-left:3px solid var(--nhm-olive); padding:1.1rem 1.2rem; }
.nhm-booking-group + .nhm-booking-group{ margin-top:1.4rem; padding-top:1.1rem; border-top:0; }
.nhm-booking-group h4{ margin:0 0 .5rem; }
.nhm-booking-group--coaching{ border-left-color:var(--nhm-blue-deep); background:var(--nhm-blue-soft); }
.nhm-booking-group--coaching .nhm-booking-item .m{ color:var(--nhm-blue-deep); }

/* Footer-Logo linksbündig (statt mittig) */
.nhm-footer-cols .elementor-widget-image.nhm-logo-white{ text-align:left !important; }
.nhm-footer-cols .elementor-widget-image.nhm-logo-white img{ margin-left:0 !important; }

/* Workshop-Hinweisstreifen (Startseite) – schmale Zeile */
.nhm-workshop-strip .e-con-inner,
.nhm-workshop-strip{ align-items:center !important; }
.nhm-workshop-strip .elementor-heading-title{ text-align:center; }
.nhm-workshop-strip a{ color:var(--nhm-olive-deep); text-decoration:underline; }
