/*
Theme Name: couture margot – Divi Child
Theme URI: https://couture-margot.com/
Description: Divi-Child für couture-margot.com – Änderungsschneiderei & Textilreinigung Basel. Design-System in Limegrün + Schwarz (wie Ladenschild), Divi-editierbar (cm-* Klassen).
Author: PANART Marketing OÜ
Template: Divi
Version: 0.1.0
Text Domain: couture-margot-child
*/

:root{
  /* Marken-Limegrün #99FF33 + Schwarz. */
  --cm-green:#99FF33; --cm-green-dark:#66CC00; --cm-green-2:#B6FF66; --cm-green-soft:#ECFFCF;
  --cm-link:#3f7a00;            /* dunkles Grün für lesbare Links/Eyebrows auf Weiss */
  --cm-topbar:#336600;         /* dunkles Grün für die Top-Bar (weisse Schrift lesbar) */
  --cm-gold:#d9a300;           /* nur für Sterne-Bewertungen */
  --cm-ink:#111511; --cm-ink-2:#2a2f26; --cm-muted:#5c6357; --cm-line:#e6e9dd;
  --cm-bg:#ffffff; --cm-bg-soft:#f7f9ef; --cm-bg-dark:#111511;
  --cm-radius:16px; --cm-radius-lg:24px;
  --cm-shadow:0 18px 50px rgba(17,21,17,.09); --cm-shadow-lg:0 36px 80px rgba(17,21,17,.15);
  --cm-maxw:1140px;
  --cm-serif:'Fraunces',Georgia,'Times New Roman',serif;
  --cm-sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
}

/* ---------- Base ---------- */
body,.et_pb_text,p,li,a,span,div{ font-family:var(--cm-sans); }
body{ color:var(--cm-ink); -webkit-font-smoothing:antialiased; }
h1,h2,h3,h4{ font-family:var(--cm-serif); color:var(--cm-ink); font-weight:600; letter-spacing:-.01em; line-height:1.12; }
h1{ font-size:clamp(2.4rem,5.4vw,4rem); }
h2{ font-size:clamp(1.9rem,3.4vw,2.7rem); }
h3{ font-size:1.2rem; font-family:var(--cm-sans); font-weight:700; letter-spacing:-.01em; }
p{ line-height:1.65; }
a{ color:var(--cm-link); text-decoration:none; }

/* Section-Rhythmus + Divi-5-Normalisierung (scoped auf cm-*) */
.et_pb_section{ padding:88px 0; background:var(--cm-bg); }
.et_pb_section[class*="cm-"]{ padding:84px 0; overflow:hidden; box-sizing:border-box; background-position:center; }

/* WICHTIG – Divi legt module_class auf die <section>, und denselben Namen
   trägt innen der Inhalts-Container (z. B. Section .cm-person > … > div.cm-person).
   Ohne diese Normalisierung greifen Layout-Regeln wie `display:grid` oder
   `max-width` auch auf die Section: die Divi-Row wird zum schmalen Grid-Item
   bzw. die Section schrumpft und klebt am linken Bildschirmrand.
   Die Section ist immer nur ein volle Breite einnehmendes Band – das Layout
   macht ausschliesslich der innere Container. */
.et_pb_section[class*="cm-"]{
	display:block;
	width:auto;
	max-width:none;
	grid-template-columns:none;
	gap:0;
	margin-left:0;
	margin-right:0;
}
.et_pb_section[class*="cm-"] > .et_pb_row,
.et_pb_section[class*="cm-"] .et_pb_row{ width:92%; max-width:var(--cm-maxw); margin:0 auto; padding:0; }
.et_pb_section[class*="cm-"] .et_pb_column{ width:100%; margin:0; padding:0; float:none; }
.et_pb_section[class*="cm-"] .et_pb_text,
.et_pb_section[class*="cm-"] .et_pb_text_inner{ width:100%; max-width:100%; color:inherit; line-height:1.65; }
.et_pb_section[class*="cm-"] .et_pb_text ul,
.et_pb_section[class*="cm-"] .et_pb_text ol{ list-style:none; margin:0; padding:0; }
.et_pb_section[class*="cm-"] p{ margin:0 0 1em; }
.et_pb_section[class*="cm-"] p:last-child{ margin-bottom:0; }
.et_pb_section[class*="cm-"] *{ max-width:100%; box-sizing:border-box; }
html, body, #page-container, #et-main-area, #main-content, .et_builder_inner_content{ overflow-x:hidden; max-width:100%; }

.cm-features,.cm-pricelist,.cm-testimonials,.cm-faq{ background:var(--cm-bg-soft); }
.cm-eyebrow{ text-transform:uppercase; letter-spacing:.16em; font-weight:800; color:var(--cm-link); font-size:.78rem; margin:0 0 12px; }
.cm-sub{ font-size:1.1rem; color:var(--cm-muted); max-width:64ch; }
.cm-center{ text-align:center; } .cm-center .cm-sub{ margin-left:auto; margin-right:auto; }
.cm-head{ margin-bottom:36px; }
.cm-pill{ display:inline-block; background:var(--cm-green); color:var(--cm-ink); font-size:.78rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; padding:7px 16px; border-radius:999px; }
.cm-ic{ width:26px; height:26px; }

/* ---------- Buttons (Lime + Schwarz) ---------- */
.cm-btn{ display:inline-block; font-weight:700; font-size:1.0rem; padding:14px 28px; border-radius:12px; transition:transform .15s,box-shadow .15s,background .15s,color .15s; cursor:pointer; border:2px solid var(--cm-ink); }
.cm-btn--primary{ background:var(--cm-green); color:var(--cm-ink); border-color:var(--cm-ink); }
.cm-btn--primary:hover{ background:var(--cm-ink); color:var(--cm-green); transform:translateY(-2px); box-shadow:0 14px 30px rgba(17,21,17,.28); }
.cm-btn--ghost{ background:transparent; color:var(--cm-ink); border-color:var(--cm-ink); }
.cm-btn--ghost:hover{ background:var(--cm-ink); color:var(--cm-green); transform:translateY(-2px); }
.cm-hero-cta,.cm-band-cta{ display:flex; flex-wrap:wrap; gap:14px; margin-top:28px; }

/* ---------- Reveal ---------- */
.cm-reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s ease,transform .7s ease; }
.cm-reveal.is-visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .cm-reveal{ opacity:1; transform:none; transition:none; } }

/* ---------- HERO ---------- */
.cm-hero{ position:relative; overflow:hidden; padding:120px 0 96px;
  background:radial-gradient(1100px 520px at 82% -10%, var(--cm-green-soft), transparent 60%),
             linear-gradient(120deg,#f4ffe2 0%,#fff 55%); }
.cm-hero-inner{ position:relative; z-index:2; max-width:680px; }
.cm-hero-headline{ margin:16px 0 0; }
.cm-hero-text{ font-size:1.18rem; color:var(--cm-ink-2); margin-top:16px; max-width:56ch; }
.cm-trust{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; margin-top:32px; }
.cm-trust li{ display:flex; align-items:center; gap:8px; color:var(--cm-ink-2); font-weight:600; font-size:.92rem; }
.cm-trust .cm-ic{ width:20px; height:20px; color:var(--cm-green-dark); }
.cm-hero-visual{ position:absolute; right:-80px; top:50%; transform:translateY(-50%); width:460px; height:460px; pointer-events:none; z-index:1; display:grid; place-items:center; }
.cm-hero-visual span{ position:absolute; border-radius:50%; border:2px solid rgba(153,255,51,.55); }
.cm-hero-visual span:nth-child(1){ width:170px; height:170px; }
.cm-hero-visual span:nth-child(2){ width:300px; height:300px; }
.cm-hero-visual span:nth-child(3){ width:440px; height:440px; }
@media(max-width:900px){ .cm-hero-visual{ display:none; } }
@media(max-width:600px){ .cm-hero{ padding:52px 0 44px; } }

/* ---------- USP (Schwarz mit Lime) ---------- */
.et_pb_section.cm-usp{ background:var(--cm-bg-dark); }
.cm-usp .cm-eyebrow{ color:var(--cm-green); }
.cm-usp h2,.cm-usp .cm-sub{ color:#fff; }
.cm-usp-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; margin-top:8px; }
.cm-usp .cm-usp{ background:rgba(255,255,255,.04); border:1px solid rgba(153,255,51,.32); border-radius:var(--cm-radius); padding:26px 22px; }
.cm-usp .cm-usp-ic{ display:inline-grid; place-items:center; width:48px; height:48px; border-radius:12px; background:var(--cm-green); color:var(--cm-ink); margin-bottom:14px; }
.cm-usp .cm-usp h3{ color:#fff; margin-bottom:6px; }
.cm-usp .cm-usp p{ color:#c9d2bd; font-size:.95rem; }
@media(max-width:900px){ .cm-usp-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .cm-usp-grid{ grid-template-columns:1fr; } }

/* ---------- FEATURES / SERVICES ---------- */
.cm-feat-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:8px; }
.cm-feat{ display:block; position:relative; background:#fff; border:1px solid var(--cm-line); border-radius:var(--cm-radius); padding:28px 26px; box-shadow:var(--cm-shadow); color:inherit; }
.cm-feat--link{ transition:transform .18s,box-shadow .18s,border-color .18s; }
.cm-feat--link:hover{ transform:translateY(-3px); box-shadow:var(--cm-shadow-lg); border-color:var(--cm-green); }
.cm-feat-ic{ display:inline-grid; place-items:center; width:46px; height:46px; border-radius:12px; background:var(--cm-green-soft); color:var(--cm-link); margin-bottom:14px; }
.cm-feat h3{ margin-bottom:8px; }
.cm-feat p{ color:var(--cm-ink-2); }
.cm-feat-more{ display:inline-block; margin-top:12px; color:var(--cm-link); font-weight:700; position:relative; z-index:1; }
/* Ganze Karte klickbar (gestreckter Link, ohne Block-in-Anchor) */
.cm-feat--link .cm-feat-more::after{ content:""; position:absolute; inset:0; z-index:0; }
@media(max-width:900px){ .cm-feat-grid{ grid-template-columns:1fr; } }

/* ---------- STEPS ---------- */
.cm-steps{ display:flex; gap:16px; margin-top:8px; flex-wrap:wrap; }
.cm-step{ flex:1 1 200px; background:#fff; border:1px solid var(--cm-line); border-radius:var(--cm-radius); padding:26px; box-shadow:var(--cm-shadow); }
.cm-step-no{ display:grid; place-items:center; width:42px; height:42px; border-radius:12px; background:var(--cm-green); color:var(--cm-ink); font-weight:800; font-size:1.1rem; margin-bottom:12px; }
.cm-step h3{ margin-bottom:6px; }
.cm-step p{ color:var(--cm-ink-2); font-size:.96rem; }

/* ---------- PRICELIST ---------- */
.cm-pricelist{ max-width:760px; margin:0 auto; }
.cm-price-group{ margin:26px 0 10px; color:var(--cm-ink); border-left:4px solid var(--cm-green); padding-left:12px; }
.cm-price-rows li{ display:flex; justify-content:space-between; gap:16px; padding:13px 0; border-bottom:1px solid var(--cm-line); }
.cm-price-label em{ color:var(--cm-muted); font-style:normal; font-size:.88rem; display:block; }
.cm-price-value{ font-weight:800; color:var(--cm-ink); white-space:nowrap; }
.cm-price-note{ max-width:760px; margin:20px auto 0; color:var(--cm-muted); font-size:.9rem; }

/* Kompakte Werkzeug-/Überschrift-Sektionen – verhindert grosse Leerräume
   (z. B. Preise-Seite: Überschrift + Preisliste + Rechner). */
.et_pb_section.cm-toolwrap{ padding:24px 0; }
.et_pb_section.cm-prose{ padding:30px 0 4px; }
/* Hero-Sektion insgesamt kompakter (Desktop + Mobil) */
.et_pb_section.cm-hero{ padding:74px 0 48px; }
@media(max-width:600px){ .et_pb_section.cm-hero{ padding:46px 0 36px; } }
/* Jede Sektion direkt nach dem Hero: oberen Abstand knapp halten */
.et_pb_section.cm-hero + .et_pb_section[class*="cm-"]{ padding-top:28px; }
.et_pb_section.cm-prose + .et_pb_section.cm-toolwrap{ padding-top:0; }
.et_pb_section.cm-toolwrap + .et_pb_section.cm-toolwrap{ padding-top:0; }
.et_pb_section.cm-toolwrap + .et_pb_section.cm-band{ margin-top:0; }

/* ---------- GALLERY ---------- */
.cm-gallery{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:8px; }
.cm-ba{ position:relative; border-radius:var(--cm-radius); overflow:hidden; box-shadow:var(--cm-shadow); background:#fff; margin:0; }
.cm-ba img{ width:100%; height:auto; display:block; }
.cm-ba-tag{ position:absolute; top:12px; left:12px; background:rgba(17,21,17,.82); color:#fff; font-size:.72rem; font-weight:700; padding:4px 10px; border-radius:999px; }
.cm-ba-tag--after{ left:auto; right:12px; background:var(--cm-green); color:var(--cm-ink); }
.cm-ba figcaption{ padding:12px 14px; font-size:.9rem; color:var(--cm-ink-2); }
@media(max-width:800px){ .cm-gallery{ grid-template-columns:1fr 1fr; } }

/* ---------- TESTIMONIALS ---------- */
.cm-quotes{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:8px; }
.cm-quote{ background:#fff; border:1px solid var(--cm-line); border-radius:var(--cm-radius); padding:26px; box-shadow:var(--cm-shadow); margin:0; }
.cm-stars{ display:flex; gap:2px; color:var(--cm-gold); margin-bottom:10px; }
.cm-stars .cm-ic{ width:18px; height:18px; fill:var(--cm-gold); stroke:var(--cm-gold); }
.cm-quote blockquote{ margin:0 0 14px; font-size:1.02rem; color:var(--cm-ink-2); }
.cm-quote figcaption{ font-weight:700; }
.cm-quote figcaption span{ display:block; font-weight:500; color:var(--cm-muted); font-size:.88rem; }
@media(max-width:900px){ .cm-quotes{ grid-template-columns:1fr; } }

/* ---------- FAQ ---------- */
.cm-faq{ max-width:820px; margin:0 auto; }
.cm-faq-item{ background:#fff; border:1px solid var(--cm-line); border-radius:12px; margin-bottom:12px; padding:4px 20px; }
.cm-faq-item summary{ cursor:pointer; font-weight:700; padding:16px 0; list-style:none; }
.cm-faq-item summary::-webkit-details-marker{ display:none; }
.cm-faq-item[open] summary{ color:var(--cm-link); }
.cm-faq-a{ padding:0 0 16px; color:var(--cm-ink-2); }

/* ---------- PROSE ---------- */
.cm-prose{ max-width:760px; }
.cm-prose h2{ margin-bottom:8px; }
.cm-prose h2:after{ content:""; display:block; width:56px; height:5px; border-radius:4px; background:var(--cm-green); margin:16px 0 4px; }
.cm-prose p{ font-size:1.06rem; color:var(--cm-ink-2); }

/* ---------- NOTE ---------- */
.cm-note{ display:flex; gap:14px; align-items:flex-start; max-width:820px; background:var(--cm-green-soft); border:1px solid #cdf29a; border-radius:var(--cm-radius); padding:20px 24px; }
.cm-note .cm-ic{ color:var(--cm-link); flex:0 0 auto; margin-top:2px; }
.cm-note p{ color:var(--cm-ink-2); }

/* ---------- CTA-BAND (Lime-Fläche + Schwarz, wie Schild) ---------- */
.et_pb_section.cm-band{ background:var(--cm-green); }
.cm-band{ text-align:center; color:var(--cm-ink); }
.cm-band h2{ color:var(--cm-ink); }
.cm-band p{ color:var(--cm-ink-2); max-width:60ch; margin:10px auto 0; }
.cm-band-cta{ justify-content:center; }
.cm-band .cm-btn--primary{ background:var(--cm-ink); color:var(--cm-green); border-color:var(--cm-ink); }
.cm-band .cm-btn--primary:hover{ background:#000; color:#fff; }
.cm-band .cm-btn--ghost{ color:var(--cm-ink); border-color:var(--cm-ink); }
.cm-band .cm-btn--ghost:hover{ background:var(--cm-ink); color:var(--cm-green); }

/* =====================================================================
   HEADER / MENÜ (Divi) – oberster Balken Grün, Hauptheader Schwarz
   ===================================================================== */
/* Oberster Info-Balken (Top-Bar): kräftiges Grün, WEISSE Schrift (gut lesbar).
   Zeigt nur die Telefonnummer – die Footer-Links liegen im echten Footer, damit
   keine Doppelungen mit dem grossen Header entstehen. */
#page-container #top-header,.et_fixed_nav #top-header,#top-header{ background:#99FF33 !important; background-image:none !important; color:#111511 !important; }
#top-header a,#top-header span,#top-header p,#top-header li,#top-header #et-info,
#top-header #et-info span,#top-header #et-info a,#top-header #et-info li,
#top-header #et-secondary-nav li a,#top-header #et-secondary-nav li li a{ color:#111511 !important; font-weight:600; }
#top-header a:hover,#top-header #et-secondary-nav li a:hover{ color:#336600 !important; }
/* Telefonnummer in der Top-Bar grösser + fett */
#top-header #et-info,#top-header #et-info a,#top-header #et-info span,#top-header #et-info li{ font-size:16px !important; font-weight:800 !important; }
/* Menü-Links (Express/Preise/Ratgeber) in der Top-Bar fett – Layout bleibt der
   schmale Divi-Standard (Telefon links, Menü rechts, einzeilig). */
#top-header #et-secondary-nav li a{ font-weight:800 !important; }
/* Social-Icons in Top-Bar und Footer ausblenden */
#top-header .et-social-icons,#footer-bottom .et-social-icons,#et-footer-nav .et-social-icons,
#main-footer .et-social-icons{ display:none !important; }
/* Footer-Menü: aktiver Punkt grün statt Divi-Blau, grüner Hover */
#et-footer-nav ul li.current-menu-item > a,
#et-footer-nav ul li.current_page_item > a{ color:var(--cm-green) !important; }
#et-footer-nav ul li a:hover{ color:var(--cm-green) !important; }

/* Hauptheader: Schwarz */
#main-header,.et-fixed-header#main-header{ background:var(--cm-ink) !important; box-shadow:0 2px 14px rgba(0,0,0,.25) !important; }
/* Logo begrenzen + Logo & Markenname vertikal mittig im Header */
#main-header .logo_container{ width:auto !important; height:100% !important; display:flex !important; align-items:center !important; }
#main-header .logo_container a{ display:flex !important; align-items:center !important; height:100%; width:auto !important; }
#main-header #logo,#main-header .logo_container img,.et-fixed-header #logo{ position:relative !important; top:auto !important; bottom:auto !important; left:auto !important; margin:0 !important; transform:none !important; max-height:52px !important; width:auto !important; }
.cm-brandname{ align-self:center; margin-left:12px; color:var(--cm-green); font-family:var(--cm-serif); font-weight:600; font-size:clamp(1.05rem,1.7vw,1.35rem); letter-spacing:.01em; white-space:nowrap; line-height:1; }
/* Suche offen: Markennamen ausblenden, damit das Suchfeld ihn nicht überlappt */
html.cm-search-open .cm-brandname{ display:none !important; }
/* Divi-Suchfeld über dem Header undurchsichtig machen (Fallback) */
#main-header .et_search_form_container.et_pb_search_visible{ background:var(--cm-ink) !important; }
#main-header .et-search-field{ color:#fff !important; }
@media(max-width:600px){ .cm-brandname{ font-size:1rem; margin-left:9px; } }
/* Menü-Links: weiss, aktiv/hover = Limegrün */
#top-menu li a,#et_mobile_nav_menu .mobile_nav .select_page{ color:#fff !important; }
#top-menu li a:hover,
#top-menu li.current-menu-item > a,
#top-menu li.current_page_item > a,
.et-fixed-header #top-menu li a:hover{ color:var(--cm-green) !important; opacity:1; }
/* Untermenüs: heller Grund, dunkle Schrift */
#top-menu li ul.sub-menu{ background:#fff !important; border-color:var(--cm-line) !important; }
#top-menu li ul.sub-menu a{ color:var(--cm-ink) !important; }
#top-menu li ul.sub-menu a:hover{ color:var(--cm-green-dark) !important; background:var(--cm-green-soft) !important; }
/* Social-Media-Icons komplett aus (Footer + Top-Header) */
#footer-bottom .et-social-icons,
#top-header .et-social-icons,
#et-footer-nav .et-social-icons,
.et-social-icons{ display:none !important; }

/* Such-Icon + Hamburger (mobil) weiss */
#et_top_search #et_search_icon:before,#main-header .mobile_menu_bar:before{ color:#fff !important; }
/* CTA im Menü als Limegrün-Button mit schwarzer Schrift */
#top-menu li.cm-nav-cta a{ background:var(--cm-green); color:var(--cm-ink) !important; border-radius:10px; padding:8px 18px !important; font-weight:700; }
#top-menu li.cm-nav-cta a:hover{ background:#fff; color:var(--cm-ink) !important; }
/* Mobiles Menü: schwarzer Grund, weisse Links, grüne Hover */
.et_mobile_menu,.et_mobile_menu .menu-item a{ background:var(--cm-ink) !important; color:#fff !important; border-color:rgba(255,255,255,.12) !important; }
.et_mobile_menu .menu-item a:hover{ color:var(--cm-green) !important; }
.et_mobile_menu li.cm-nav-cta a{ color:var(--cm-green) !important; font-weight:700; }

/* ---------- PERSON (persönliche Note) ---------- */
.cm-person{ display:grid; grid-template-columns:300px 1fr; gap:44px; align-items:center; }
.cm-person-photo img{ width:100%; height:auto; border-radius:var(--cm-radius-lg); }
.cm-person-badge{ display:inline-block; background:var(--cm-green); color:var(--cm-ink); font-weight:800; padding:6px 14px; border-radius:999px; font-size:.82rem; letter-spacing:.04em; margin:0 0 6px; }
.cm-person-body{ font-size:1.1rem; color:var(--cm-ink-2); margin-top:8px; }
.cm-person-name{ margin-top:16px; font-weight:800; font-size:1.1rem; }
.cm-person-name span{ display:block; font-weight:500; color:var(--cm-muted); font-size:.9rem; }
@media(max-width:760px){ .cm-person{ grid-template-columns:1fr; gap:22px; } .cm-person-photo{ max-width:280px; } }

/* ---------- PHOTOS (Produkt-/Bildergalerie) ---------- */
.cm-photos{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:8px; }
.cm-photo{ margin:0; border-radius:var(--cm-radius); overflow:hidden; box-shadow:var(--cm-shadow); background:#fff; }
.cm-photo img{ width:100%; height:auto; display:block; }
.cm-photo figcaption{ padding:12px 14px; font-size:.9rem; color:var(--cm-ink-2); }
@media(max-width:800px){ .cm-photos{ grid-template-columns:1fr 1fr; } }
@media(max-width:520px){ .cm-photos{ grid-template-columns:1fr; } }

/* ---------- LEXIKON-INDEX ---------- */
.cm-index-list{ list-style:none; margin:0; padding:0; columns:3; column-gap:24px; }
.cm-index-list li{ break-inside:avoid; margin:0 0 8px; }
.cm-index-list a{ color:var(--cm-link); font-weight:600; }
.cm-index-list a:hover{ color:var(--cm-green-dark); text-decoration:underline; }
@media(max-width:800px){ .cm-index-list{ columns:2; } }
@media(max-width:520px){ .cm-index-list{ columns:1; } }

/* ---------- RELATED (interne Verlinkung) ---------- */
.et_pb_section.cm-relatedband{ background:var(--cm-bg-soft); padding:64px 0; }
.cm-related h2{ font-size:1.5rem; margin-bottom:20px; }
.cm-related-list{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.cm-related-link{ display:block; background:#fff; border:1px solid var(--cm-line); border-radius:12px; padding:18px 20px; color:var(--cm-ink); transition:transform .15s,box-shadow .15s,border-color .15s; }
.cm-related-link:hover{ transform:translateY(-2px); box-shadow:var(--cm-shadow); border-color:var(--cm-green); color:var(--cm-ink); }
.cm-related-link span{ display:block; font-weight:700; }
.cm-related-link em{ display:block; font-style:normal; color:var(--cm-muted); font-size:.9rem; margin-top:4px; }
.cm-related-link:after{ content:"→"; color:var(--cm-green-dark); font-weight:700; }
@media(max-width:800px){ .cm-related-list{ grid-template-columns:1fr; } }

/* ---------- REVIEW-CTA (QR-Landingpage) ---------- */
.et_pb_section.cm-reviewband{ background:var(--cm-green-soft); }
.cm-review{ max-width:640px; margin:0 auto; text-align:center; }
.cm-review-stars{ display:flex; justify-content:center; gap:4px; color:var(--cm-gold); margin-bottom:14px; }
.cm-review-stars .cm-ic{ width:34px; height:34px; fill:var(--cm-gold); stroke:var(--cm-gold); }
.cm-review h2{ margin-bottom:10px; }
.cm-review p{ color:var(--cm-ink-2); font-size:1.08rem; }
.cm-review .cm-btn{ margin-top:20px; }
.cm-review-alt{ margin-top:22px; font-size:.92rem; color:var(--cm-muted); }

/* =====================================================================
   RATGEBER-BEITRAG – eigenes single.php-Template (couture-margot-Stil)
   ===================================================================== */
.single-post #main-content .container{ width:100% !important; max-width:none !important; padding:0 !important; }
.single-post #left-area{ width:100% !important; padding:0 !important; float:none !important; }
.single-post #sidebar{ display:none !important; }
.single-post .cm-post{ background:#fff; }

/* Hero-Kopf */
.cm-post-hero{ background:radial-gradient(1100px 500px at 80% -20%, var(--cm-green-soft), transparent 60%), linear-gradient(120deg,#f4ffe2 0%,#fff 60%); padding:72px 0 46px; text-align:center; }
@media(max-width:600px){ .cm-post-hero{ padding:44px 0 32px; } }
.cm-post-hero-inner{ width:92%; max-width:820px; margin:0 auto; }
.cm-post-title{ font-family:var(--cm-serif); font-weight:600; color:var(--cm-ink); font-size:clamp(2rem,4.4vw,3.1rem); line-height:1.12; margin:16px 0 10px; }
.cm-post-meta{ color:var(--cm-muted); font-size:.9rem; }

/* Inhalt */
.cm-post-content{ padding:44px 0 8px; }
.cm-post-wrap{ width:92%; max-width:760px; margin:0 auto; }
.cm-post-image{ margin:0 0 30px; }
.cm-post-image img{ width:100%; height:auto; border-radius:var(--cm-radius-lg); box-shadow:var(--cm-shadow); }
.cm-post-body{ max-width:none; font-size:1.1rem; color:var(--cm-ink-2); }
.cm-post-body > p:first-of-type{ font-size:1.22rem; color:var(--cm-ink); }
.cm-post-body p{ margin:0 0 1.25em; line-height:1.8; }
.cm-post-body h2{ font-family:var(--cm-serif); font-weight:600; color:var(--cm-ink); font-size:1.6rem; margin:1.8em 0 .5em; }
.cm-post-body h2:after{ content:""; display:block; width:52px; height:4px; border-radius:4px; background:var(--cm-green); margin:12px 0 0; }
.cm-post-body h3{ font-weight:700; margin:1.4em 0 .3em; }
.cm-post-body a{ color:var(--cm-link); text-decoration:underline; }
.cm-post-body ul,.cm-post-body ol{ margin:0 0 1.25em; padding-left:1.3em; }
.cm-post-body li{ margin:.3em 0; line-height:1.7; }

/* Abschluss-CTA (Lime-Band) */
.cm-post-cta{ background:var(--cm-green); padding:60px 0; margin-top:44px; text-align:center; }
.cm-post-cta-inner{ width:92%; max-width:720px; margin:0 auto; }
.cm-post-cta h2{ color:var(--cm-ink); }
.cm-post-cta p{ color:var(--cm-ink-2); max-width:56ch; margin:10px auto 0; }
.cm-post-cta .cm-band-cta{ display:flex; flex-wrap:wrap; gap:14px; justify-content:center; margin-top:24px; }
.cm-post-cta .cm-btn--primary{ background:var(--cm-ink); color:var(--cm-green); border-color:var(--cm-ink); }
.cm-post-cta .cm-btn--primary:hover{ background:#000; color:#fff; }
.cm-post-cta .cm-btn--ghost{ color:var(--cm-ink); border-color:var(--cm-ink); }
.cm-post-cta .cm-btn--ghost:hover{ background:var(--cm-ink); color:var(--cm-green); }

/* Blog-/Ratgeber-Übersicht (Kacheln) */
.blog #sidebar,.archive #sidebar,.category #sidebar,.search #sidebar{ display:none !important; }
.blog #left-area,.archive #left-area,.category #left-area,.search #left-area{ width:100% !important; padding-right:0 !important; float:none !important; }
#left-area .et_pb_post{ background:#fff; border:1px solid var(--cm-line); border-radius:var(--cm-radius); padding:26px 28px; box-shadow:var(--cm-shadow); margin-bottom:26px; }
#left-area .et_pb_post .entry-title,#left-area .et_pb_post h2.entry-title{ font-family:var(--cm-serif); font-weight:600; }
#left-area .et_pb_post .entry-title a{ color:var(--cm-ink); }
#left-area .et_pb_post .entry-title a:hover{ color:var(--cm-link); }
#left-area .et_pb_post .post-meta,#left-area .et_pb_post .post-meta a{ color:var(--cm-muted); font-size:.85rem; }
#left-area .et_pb_post img,#left-area .et_pb_post .entry-featured-image-url img{ border-radius:var(--cm-radius); }
#left-area .et_pb_post .more-link,#left-area .et_pb_post .read-more-button{ display:inline-block; margin-top:10px; color:var(--cm-link); font-weight:700; }

/* ---------- CONTACT ---------- */
.cm-contact-grid{ display:grid; grid-template-columns:1fr 1.2fr; gap:40px; margin-top:8px; }
.cm-address{ font-style:normal; line-height:1.9; font-size:1.05rem; }
.cm-address a{ color:var(--cm-link); font-weight:600; }
.cm-transport{ margin-top:14px; padding:14px 16px; background:var(--cm-green-soft); border-left:4px solid var(--cm-green); border-radius:10px; font-size:.95rem; color:var(--cm-ink-2); max-width:420px; }
.cm-hours{ margin-top:24px; }
.cm-hours h3{ border-left:4px solid var(--cm-green); padding-left:10px; }
.cm-hours ul li{ display:flex; justify-content:space-between; gap:16px; padding:7px 0; border-bottom:1px solid var(--cm-line); max-width:340px; }
.cm-map{ margin-top:24px; border-radius:var(--cm-radius); overflow:hidden; }
.cm-map iframe{ width:100%; border:0; min-height:220px; }
@media(max-width:900px){ .cm-contact-grid{ grid-template-columns:1fr; } }
