/* ==========================================================================
   rgx-2026.css · roland-gruenewald.de · Redesign 2026 (Konzept B)
   Liegt per FTP unter /assets/rgx-2026.css, Schriften unter /assets/fonts/.
   Präfix: rgx-  (rg- ist von der alten Seite belegt)
   Regeln:
   - Basis-Resets mit :where(), damit Komponentenklassen immer gewinnen.
   - Komponenten als "body .rgx-xyz".
   - Jede Sektion, Header und Footer laufen per 100vw-Technik über die volle Breite.
   - Kein JavaScript nötig (Menü per Checkbox, FAQ per <details>).
   Breakpoints: 1080 (Tablet), 980 (Burger-Menü), 700 (Handy, einspaltig).
   ========================================================================== */

/* ---------- Schriften (lokal, DSGVO) ---------- */
@font-face{
  font-family:"Bricolage Grotesque";
  font-style:normal;
  font-weight:200 800;
  font-stretch:75% 100%;
  font-display:swap;
  src:url("fonts/bricolage-grotesque-latin-standard-normal.woff2") format("woff2-variations"),
      url("fonts/bricolage-grotesque-latin-standard-normal.woff2") format("woff2");
}
@font-face{
  font-family:"Figtree";
  font-style:normal;
  font-weight:300 900;
  font-display:swap;
  src:url("fonts/figtree-latin-wght-normal.woff2") format("woff2-variations"),
      url("fonts/figtree-latin-wght-normal.woff2") format("woff2");
}

/* ---------- Farben, Schriften, Abstände ---------- */
:root{
  --rgx-sand:#f3eee5;      /* Grundfläche */
  --rgx-beige:#e8e0d1;     /* zweite Fläche */
  --rgx-paper:#fbf8f2;     /* Karten */
  --rgx-ink:#262620;       /* Text */
  --rgx-muted:#5d5a50;     /* Nebentext */
  --rgx-line:rgba(38,38,32,.14);
  --rgx-moss:#4f6238;      /* Grün, Akzent 1 */
  --rgx-moss-dk:#3b4a29;
  --rgx-moss-text:#dfe3d3; /* Text auf Grün */
  --rgx-terra:#ad5631;     /* Terrakotta, Hauptbutton (weiße Schrift 5,1:1) */
  --rgx-terra-text:#8e4226;/* Terrakotta für kleine Schrift auf hellem Grund */
  --rgx-terra-dk:#8e4226;
  --rgx-blush:#f1d9c8;     /* helles Terrakotta */
  --rgx-display:"Bricolage Grotesque",ui-sans-serif,system-ui,sans-serif;
  --rgx-text:"Figtree",ui-sans-serif,system-ui,sans-serif;
  --rgx-r-lg:28px;
  --rgx-r-md:16px;
  --rgx-r-btn:14px;
  --rgx-gut:80px;
  --rgx-max:1280px;
  --rgx-pad:120px;
  --rgx-header-h:80px;
  --rgx-ico-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
  --rgx-ico-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14m-7-7l7 7-7 7'/%3E%3C/svg%3E");
  --rgx-ico-plus:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E");
  --rgx-ico-info:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4M12 8h.01'/%3E%3C/svg%3E");
}
@media (max-width:1080px){:root{--rgx-gut:48px}}
@media (max-width:700px){:root{--rgx-gut:22px;--rgx-pad:80px;--rgx-header-h:68px}}

/* Seitliches Scrollen durch 100vw verhindern (clip bricht kein sticky) */
body{overflow-x:clip}

/* Divi-Hüllen um rgx-Module neutralisieren (Divi 4 und Divi 5).
   Divi setzt zwischen Modulen einer Spalte einen Abstand (Divi 5: gap, Divi 4: margin-bottom)
   und gibt Sektion und Zeile Innenabstände. Durch diese Lücken scheint der weiße Hintergrund.
   Greift nur bei Sektionen, Zeilen, Spalten und Modulen, die ein rgx-Modul enthalten. */
.et_pb_section:has(.rgx-section, .rgx-header, .rgx-footer){padding:0 !important;margin:0 !important;background-color:transparent !important}
.et_pb_row:has(.rgx-section, .rgx-header, .rgx-footer){padding:0 !important;margin:0 auto !important;width:100% !important;max-width:100% !important;gap:0 !important;row-gap:0 !important;column-gap:0 !important}
.et_pb_column:has(.rgx-section, .rgx-header, .rgx-footer){padding:0 !important;margin:0 !important;gap:0 !important;row-gap:0 !important}
.et_pb_module:has(.rgx-section, .rgx-header, .rgx-footer){margin:0 !important;padding:0 !important}
.et_pb_code_inner:has(.rgx-section, .rgx-header, .rgx-footer) > :is(p, br){display:none}

/* ---------- Basis-Resets (niedrige Spezifität) ---------- */
body :where(.rgx),
body :where(.rgx) *,
body :where(.rgx) *::before,
body :where(.rgx) *::after{box-sizing:border-box}
body :where(.rgx){font:400 17px/1.65 var(--rgx-text);color:var(--rgx-ink);-webkit-font-smoothing:antialiased;text-align:left}
body :where(.rgx) p{margin:0;padding:0}
body :where(.rgx) a{color:inherit;text-decoration:none}
/* Divi-Farbschemata (z. B. .et_color_scheme_orange a) färben sonst alle Links. Buttons und Textlinks bringen eigene Farben mit. */
body .rgx a:where(:not(.rgx-btn, .rgx-link)){color:inherit}
body :where(.rgx) img{display:block;max-width:100%;height:auto}
body :where(.rgx) :is(h1,h2,h3,h4){margin:0;padding:0;color:inherit}
/* Divi setzt Listen mit höherer Spezifität, deshalb hier mit Klasse */
body .rgx :is(ul,ol){list-style:none;margin:0;padding:0}
body .rgx li{margin:0;padding:0}
/* Überschriften: Schrift erzwingen, sonst überschreibt der Divi-Customizer */
body .rgx :is(h1,h2,h3,h4){font-family:var(--rgx-display);font-weight:450;font-stretch:90%;letter-spacing:-.035em;line-height:1.04}
body .rgx h1{font-size:clamp(44px,6.4vw,104px);line-height:1.02}
body .rgx h2{font-size:clamp(34px,4vw,60px)}
body .rgx h3{font-size:24px;letter-spacing:-.02em;line-height:1.2}
body .rgx h4{font-size:19px;letter-spacing:-.01em;line-height:1.3}
body .rgx svg.rgx-ico{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* ---------- Aufbau ---------- */
body .rgx-section,
body .rgx-header,
body .rgx-footer{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);position:relative}
body .rgx-section{padding:var(--rgx-pad) 0;background:var(--rgx-sand)}
body .rgx-bg-sand{background:var(--rgx-sand)}
body .rgx-bg-beige{background:var(--rgx-beige)}
body .rgx-bg-paper{background:var(--rgx-paper)}
body .rgx-bg-moss{background:var(--rgx-moss);color:var(--rgx-sand)}
body .rgx-bg-moss .rgx-lead,body .rgx-bg-moss p{color:var(--rgx-moss-text)}
body .rgx-wrap{width:min(100% - 2*var(--rgx-gut),var(--rgx-max));margin:0 auto}
body .rgx-wrap--narrow{max-width:960px}
body .rgx-wrap--text{max-width:760px}

/* ---------- Text ---------- */
body .rgx-label{display:block;font:500 14px/1.3 var(--rgx-text);color:var(--rgx-terra-text);margin-bottom:16px}
body .rgx-bg-moss .rgx-label{color:var(--rgx-blush)}
body .rgx-lead{font-size:clamp(18px,1.45vw,21px);line-height:1.55;color:var(--rgx-muted);max-width:46ch}
body .rgx-small{font-size:14px;line-height:1.5;color:var(--rgx-muted)}
body .rgx-accent{color:var(--rgx-moss)}
body .rgx-prose{font-size:18px;line-height:1.7;max-width:68ch}
body .rgx-prose > * + *{margin-top:18px}
body .rgx-prose h2{font-size:clamp(28px,3vw,40px);margin-top:48px}
body .rgx-prose h3{margin-top:36px}
body .rgx-prose ul{display:grid;gap:8px}
body .rgx-prose ul li{position:relative;padding-left:22px}
body .rgx-prose ul li::before{content:"";position:absolute;left:2px;top:.7em;width:7px;height:7px;border-radius:50%;background:var(--rgx-terra)}
body .rgx-prose a{color:var(--rgx-moss);text-decoration:underline;text-underline-offset:3px}
body .rgx-script{font-family:var(--rgx-display);font-stretch:75%;font-weight:400;letter-spacing:-.02em;color:var(--rgx-terra)}

/* Kopfzeile einer Sektion: h2 links, Einleitung rechts */
body .rgx-head{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;margin-bottom:56px;align-items:end}
body .rgx-head > :first-child{grid-column:1/8}
body .rgx-head > .rgx-lead{grid-column:8/13}
body .rgx-head--stack > *{grid-column:1/13 !important}

/* ---------- Buttons und Links ---------- */
body .rgx-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:var(--rgx-r-btn);border:1.5px solid var(--rgx-ink);background:transparent;color:var(--rgx-ink);font:500 16px/1.2 var(--rgx-text);text-decoration:none;cursor:pointer;transition:transform .18s ease,background-color .18s ease,color .18s ease,border-color .18s ease}
body .rgx-btn:hover{transform:translateY(-2px);background:var(--rgx-ink);color:var(--rgx-sand)}
body .rgx-btn:active{transform:translateY(0) scale(.98)}
body .rgx-btn:focus-visible,body .rgx-link:focus-visible{outline:3px solid var(--rgx-terra);outline-offset:3px}
body .rgx-btn--primary{background:var(--rgx-terra);border-color:var(--rgx-terra);color:#fff}
body .rgx-btn--primary:hover{background:var(--rgx-terra-dk);border-color:var(--rgx-terra-dk);color:#fff}
body .rgx-btn--light{border-color:#fff;color:#fff}
body .rgx-btn--light:hover{background:#fff;color:var(--rgx-ink)}
body .rgx-btn--white{background:#fff;border-color:#fff;color:var(--rgx-terra)}
body .rgx-btn--white:hover{background:var(--rgx-ink);border-color:var(--rgx-ink);color:#fff}
body .rgx-btn--arrow::after{content:"";width:18px;height:18px;background:currentColor;-webkit-mask:var(--rgx-ico-arrow) center/contain no-repeat;mask:var(--rgx-ico-arrow) center/contain no-repeat;transition:transform .18s}
body .rgx-btn--arrow:hover::after{transform:translateX(3px)}
body .rgx-btn-row{display:flex;flex-wrap:wrap;gap:12px}
body .rgx .rgx-more{margin-top:40px}
body .rgx-link{display:inline-flex;align-items:center;gap:8px;color:var(--rgx-moss);font-weight:500;text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1.5px no-repeat;transition:background-size .25s}
body .rgx-link::after{content:"";width:18px;height:18px;background:currentColor;-webkit-mask:var(--rgx-ico-arrow) center/contain no-repeat;mask:var(--rgx-ico-arrow) center/contain no-repeat;transition:transform .18s}
body .rgx-link:hover{background-size:100% 1.5px}
body .rgx-link:hover::after{transform:translateX(3px)}
body .rgx-bg-moss .rgx-link{color:var(--rgx-blush)}

/* ---------- Raster ---------- */
body .rgx-grid{display:grid;gap:20px}
body .rgx-grid--2{grid-template-columns:repeat(2,1fr)}
body .rgx-grid--3{grid-template-columns:repeat(3,1fr)}
body .rgx-grid--4{grid-template-columns:repeat(4,1fr)}

/* Bild neben Text: Text links, Bild rechts */
body .rgx-split{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:center}
body .rgx-split__text{grid-column:1/6;display:flex;flex-direction:column;gap:22px}
body .rgx-split__pic{grid-column:7/13;border-radius:var(--rgx-r-lg);overflow:hidden;aspect-ratio:4/3;position:relative}
body .rgx-split__pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
body .rgx-split__pic:hover img{transform:scale(1.025)}
body .rgx-split--stretch{align-items:stretch}
body .rgx-split--stretch .rgx-split__pic{aspect-ratio:auto;min-height:420px}
body .rgx-split--reverse .rgx-split__text{grid-column:8/13;grid-row:1}
body .rgx-split--reverse .rgx-split__pic{grid-column:1/7;grid-row:1}

/* ---------- Startseiten-Hero ---------- */
body .rgx-hero{padding:72px 0 88px}
body .rgx-hero h1{max-width:15ch}
body .rgx-hero__row{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;margin-top:44px;align-items:stretch}
body .rgx-hero__copy{grid-column:1/6;display:flex;flex-direction:column;gap:28px;justify-content:space-between}
body .rgx-hero__pics{grid-column:6/13;display:grid;grid-template-columns:3fr 4fr;gap:16px;min-height:400px}
body .rgx-hero__pics a,body .rgx-hero__pics div{border-radius:var(--rgx-r-lg);overflow:hidden;position:relative;display:block}
body .rgx-hero__pics img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
body .rgx-hero__pics > :hover img{transform:scale(1.03)}
body .rgx-hero__pics > :first-child img{object-position:center 25%}
body .rgx-hero__pics > :last-child img{object-position:top left}
body .rgx-note{display:flex;gap:14px;align-items:center;padding:16px 18px;border-radius:var(--rgx-r-md);background:var(--rgx-paper);border:1px solid var(--rgx-line);font-size:15px;line-height:1.5}
body .rgx-note img{width:46px;height:46px;border-radius:50%;object-fit:cover;object-position:center 20%;flex:none}
body .rgx-note strong{display:block;font-weight:500}

/* ---------- Seiten-Hero mit Breadcrumb ---------- */
body .rgx-pagehero{padding:64px 0 88px}
body .rgx-breadcrumb{display:flex;flex-wrap:wrap;gap:8px;font-size:14px;color:var(--rgx-muted);margin-bottom:28px}
body .rgx-breadcrumb a{color:var(--rgx-muted);text-decoration:underline;text-underline-offset:3px}
body .rgx-breadcrumb a:hover{color:var(--rgx-ink)}
body .rgx-breadcrumb span[aria-hidden]{opacity:.6}
body .rgx-pagehero h1{font-size:clamp(40px,5vw,80px);max-width:18ch}
body .rgx-pagehero .rgx-lead{margin-top:24px}
body .rgx-pagehero .rgx-btn-row{margin-top:32px}
body .rgx-pagehero__grid{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:center}
body .rgx-pagehero__grid > :first-child{grid-column:1/8}
body .rgx-pagehero__pic{grid-column:8/13;border-radius:var(--rgx-r-lg);overflow:hidden;aspect-ratio:4/5;position:relative}
body .rgx-pagehero__pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* ---------- Zwei Karten auf Grün (z. B. "Zwei Herzen") ---------- */
body .rgx-duo{display:grid;grid-template-columns:1fr 1fr;gap:24px}
body .rgx-duo__card{border-radius:var(--rgx-r-lg);padding:40px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);display:flex;flex-direction:column;gap:14px}
body .rgx-duo__card p{color:var(--rgx-moss-text);max-width:46ch}
body .rgx-year{display:block;font:450 72px/1 var(--rgx-display);font-stretch:90%;letter-spacing:-.04em;color:var(--rgx-blush)}

/* ---------- Leistungen als Liste ---------- */
body .rgx-rows{border-top:1px solid var(--rgx-ink)}
body .rgx-row{display:grid;grid-template-columns:72px 5fr 6fr 40px;gap:24px;align-items:center;padding:26px 0;border-bottom:1px solid var(--rgx-line);transition:background-color .2s,padding .2s}
body a.rgx-row:hover{background:var(--rgx-paper);padding-left:16px;padding-right:16px}
body .rgx-row__n{font:450 18px/1 var(--rgx-display);color:var(--rgx-terra-text)}
body .rgx-row p{color:var(--rgx-muted);font-size:16px}
body .rgx-row .rgx-ico{color:var(--rgx-moss);justify-self:end}

/* ---------- Karten ---------- */
body .rgx-card{background:var(--rgx-paper);border:1px solid var(--rgx-line);border-radius:var(--rgx-r-lg);padding:36px;display:flex;flex-direction:column;gap:14px;color:var(--rgx-ink);transition:transform .2s ease,border-color .2s}
body a.rgx-card:hover{transform:translateY(-2px);border-color:rgba(79,98,56,.4)}
body .rgx-card p{color:var(--rgx-muted)}
body .rgx-card__icon{display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:var(--rgx-moss);color:#fff}
body .rgx-card__icon .rgx-ico{width:24px;height:24px}
body .rgx-card--blush{background:var(--rgx-blush);border-color:transparent}
body .rgx-card--outline{background:transparent}
body .rgx-card .rgx-link{margin-top:auto}

/* ---------- Pakete mit Preis ---------- */
body .rgx-plans{display:grid;grid-template-columns:1fr 1.25fr 1fr;gap:20px;align-items:stretch}
body .rgx-plan{background:var(--rgx-paper);border:1px solid var(--rgx-line);border-radius:var(--rgx-r-lg);padding:36px;display:flex;flex-direction:column;gap:18px}
body .rgx-plan__tag{display:inline-flex;align-self:flex-start;font:500 14px/1 var(--rgx-text);color:var(--rgx-muted)}
body .rgx-plan .rgx-price{font:450 46px/1 var(--rgx-display);font-stretch:90%;letter-spacing:-.035em}
body .rgx-plan .rgx-price small{display:block;font:400 15px/1.4 var(--rgx-text);font-stretch:100%;letter-spacing:0;color:var(--rgx-muted);margin-top:8px}
body .rgx-plan .rgx-small{margin-top:-4px}
body .rgx-plan .rgx-btn{margin-top:auto;width:100%}
body .rgx-plan.rgx-plan--main{background:var(--rgx-blush);border-color:transparent}
body .rgx-plan.rgx-plan--main .rgx-plan__tag{background:var(--rgx-terra);color:#fff;padding:7px 12px;border-radius:999px}
body .rgx-plan.rgx-plan--main .rgx-btn{background:var(--rgx-terra);border-color:var(--rgx-terra);color:#fff}
body .rgx-plan.rgx-plan--main .rgx-btn:hover{background:var(--rgx-ink);border-color:var(--rgx-ink)}

/* Häkchenliste (überall nutzbar) */
body .rgx-checks{display:grid;gap:10px;font-size:16px}
body .rgx-checks li{position:relative;padding-left:30px;line-height:1.5}
body .rgx-checks li::before{content:"";position:absolute;left:0;top:2px;width:20px;height:20px;background:var(--rgx-moss);-webkit-mask:var(--rgx-ico-check) center/contain no-repeat;mask:var(--rgx-ico-check) center/contain no-repeat}
body .rgx-checks--2{grid-template-columns:1fr 1fr;column-gap:16px}
body .rgx-bg-moss .rgx-checks li::before{background:var(--rgx-blush)}

/* Preisliste für Bausteine */
body .rgx-pricelist{margin-top:28px;background:var(--rgx-paper);border:1px solid var(--rgx-line);border-radius:var(--rgx-r-lg);padding:36px}
body .rgx-pricelist ul{margin-top:20px;display:grid;grid-template-columns:repeat(3,1fr);column-gap:40px}
body .rgx-pricelist li{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--rgx-line);font-size:16px}
body .rgx-pricelist li b{font-weight:500;white-space:nowrap}
body .rgx-pricelist .rgx-small{margin-top:20px}

/* ---------- Referenzen ---------- */
body .rgx-feature{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:center;background:var(--rgx-paper);border:1px solid var(--rgx-line);border-radius:var(--rgx-r-lg);padding:24px}
body .rgx-feature__pic{grid-column:1/8;border-radius:18px;overflow:hidden;aspect-ratio:3/2;display:block;position:relative}
body .rgx-feature__pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .6s ease}
body .rgx-feature__pic:hover img{transform:scale(1.025)}
body .rgx-feature__text{grid-column:8/13;padding:16px 24px 16px 8px;display:flex;flex-direction:column;gap:20px}
body .rgx-refs{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:20px}
body .rgx-refs--3{grid-template-columns:repeat(3,1fr)}
body .rgx-ref{display:flex;flex-direction:column;gap:12px;color:var(--rgx-ink)}
body .rgx-ref__shot{border-radius:18px;overflow:hidden;aspect-ratio:4/3;border:1px solid var(--rgx-line);position:relative}
body .rgx-ref__shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .5s ease}
body .rgx-ref:hover .rgx-ref__shot img{transform:scale(1.03)}
body .rgx-ref strong{display:block;font:500 17px/1.3 var(--rgx-text)}
body .rgx-ref span{display:block;font-size:14px;color:var(--rgx-muted)}
body .rgx-ref p{font-size:15px;color:var(--rgx-muted)}

/* ---------- Ablauf ---------- */
body .rgx-steps{counter-reset:rgx-s;display:grid}
body .rgx-steps li{display:grid;grid-template-columns:56px 1fr;gap:16px;padding:20px 0;border-top:1px solid var(--rgx-line)}
body .rgx-steps li::before{counter-increment:rgx-s;content:counter(rgx-s);display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--rgx-blush);color:var(--rgx-terra-text);font:500 17px/1 var(--rgx-display)}
body .rgx-steps strong{display:block;font:500 19px/1.3 var(--rgx-display);font-stretch:90%}
body .rgx-steps span{display:block;color:var(--rgx-muted);font-size:16px}
body .rgx-steps--row{grid-template-columns:repeat(4,1fr);gap:20px}
body .rgx-steps--3{grid-template-columns:repeat(3,1fr)}
body .rgx-steps--row li{grid-template-columns:1fr;gap:14px;border-top:0;padding:0;align-content:start}

/* ---------- FAQ ---------- */
body .rgx-faq details{border-top:1px solid var(--rgx-line);padding:22px 0}
body .rgx-faq details:last-child{border-bottom:1px solid var(--rgx-line)}
body .rgx-faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;font:500 19px/1.35 var(--rgx-display);font-stretch:90%}
body .rgx-faq summary::-webkit-details-marker{display:none}
body .rgx-faq summary::after{content:"";flex:none;width:22px;height:22px;margin-top:2px;background:var(--rgx-terra);-webkit-mask:var(--rgx-ico-plus) center/contain no-repeat;mask:var(--rgx-ico-plus) center/contain no-repeat;transition:transform .25s}
body .rgx-faq details[open] summary::after{transform:rotate(45deg)}
body .rgx-faq details p{margin-top:12px;color:var(--rgx-muted);max-width:62ch}
body .rgx-faq details p + p{margin-top:10px}

/* Zwei Spalten: links Ablauf oder Überschrift, rechts FAQ */
body .rgx-cols2{display:grid;grid-template-columns:repeat(12,1fr);gap:24px}
body .rgx-cols2 > :first-child{grid-column:1/6}
body .rgx-cols2 > :last-child{grid-column:7/13}
body .rgx-cols2 h2 + *{margin-top:32px}

/* ---------- Hinweis / Disclaimer ---------- */
body .rgx-notice{display:flex;gap:16px;align-items:flex-start;padding:22px 24px;border-radius:var(--rgx-r-md);background:var(--rgx-paper);border:1px solid var(--rgx-line);font-size:15px;line-height:1.55;color:var(--rgx-muted)}
body .rgx-notice::before{content:"";flex:none;width:22px;height:22px;margin-top:1px;background:var(--rgx-moss);-webkit-mask:var(--rgx-ico-info) center/contain no-repeat;mask:var(--rgx-ico-info) center/contain no-repeat}
body .rgx-notice strong{color:var(--rgx-ink);font-weight:500}

/* ---------- Formular und Zustimmung ---------- */
body .rgx-form{display:grid;gap:16px}
body .rgx-form label{display:grid;gap:6px;font-size:14px;font-weight:500}
body .rgx-form :is(input[type=text],input[type=email],input[type=tel],textarea,select){width:100%;min-height:50px;padding:12px 14px;border:1.5px solid var(--rgx-line);border-radius:12px;background:#fff;font:400 16px/1.4 var(--rgx-text);color:var(--rgx-ink)}
body .rgx-form textarea{min-height:140px;resize:vertical}
body .rgx-form .rgx-btn{justify-self:start}
body .rgx-form :is(input,textarea,select):focus{outline:none;border-color:var(--rgx-moss);box-shadow:0 0 0 3px rgba(79,98,56,.18)}
body .rgx-consent{display:flex !important;grid-template-columns:none;gap:12px;align-items:flex-start;font-size:14px !important;font-weight:400 !important;line-height:1.5;color:var(--rgx-muted)}
body .rgx-consent input{flex:none;width:20px;height:20px;margin:1px 0 0;accent-color:var(--rgx-moss)}
/* Kästchen im Formular: eigenes Aussehen, weil Divi oder Plugins sie sonst mit weißem Rand unsichtbar machen */
body .rgx .rgx-form input[type=checkbox]{-webkit-appearance:none !important;appearance:none !important;flex:none;width:20px !important;height:20px !important;margin:0 !important;padding:0 !important;border:1.5px solid rgba(38,38,32,.45) !important;border-radius:6px !important;background:#fff center/14px no-repeat !important;cursor:pointer;display:inline-block !important;vertical-align:middle;transition:background-color .15s,border-color .15s}
body .rgx .rgx-form input[type=checkbox]:hover{border-color:var(--rgx-moss) !important}
body .rgx .rgx-form input[type=checkbox]:checked{background-color:var(--rgx-moss) !important;border-color:var(--rgx-moss) !important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") !important}
body .rgx .rgx-form input[type=checkbox]:focus-visible{outline:3px solid var(--rgx-terra);outline-offset:2px}
body .rgx-consent a{text-decoration:underline}

/* Kontaktwege */
body .rgx-contact{display:grid;gap:18px}
body .rgx-contact li{display:flex;gap:16px;align-items:flex-start}
body .rgx .rgx-contact svg.rgx-ico{width:44px;height:44px;padding:11px;border-radius:12px;background:var(--rgx-paper);border:1px solid var(--rgx-line);color:var(--rgx-moss)}
body .rgx-contact strong{display:block;font-weight:500}
body .rgx-contact a{color:var(--rgx-moss);text-decoration:underline;text-underline-offset:3px}
body .rgx-subhead{margin:48px 0 8px}
body .rgx-formbox{background:var(--rgx-paper);border:1px solid var(--rgx-line);border-radius:var(--rgx-r-lg);padding:40px;display:flex;flex-direction:column;gap:20px}

/* Contact Form 7 im Stil von rgx-form (Formular als Kurzcode im Code-Modul) */
body .rgx-form .wpcf7-form{display:grid;gap:16px}
body .rgx-form .wpcf7-form p{margin:0;padding:0}
body .rgx-form .wpcf7-form-control-wrap{display:block}
body .rgx-form .wpcf7-checkbox,body .rgx-form .wpcf7-acceptance{display:flex;flex-wrap:wrap;gap:8px 18px}
body .rgx-form .wpcf7-list-item{margin:0;display:inline-flex}
body .rgx-form .wpcf7-list-item label{display:inline-flex;gap:8px;align-items:center;font-weight:400;font-size:15px}
body .rgx-form .wpcf7-list-item input{width:18px;height:18px;accent-color:var(--rgx-moss)}
body .rgx-form .wpcf7-acceptance .wpcf7-list-item label{align-items:flex-start;font-size:14px;color:var(--rgx-muted);line-height:1.5}
body .rgx-form input[type=submit]{justify-self:start;-webkit-appearance:none;appearance:none}
body .rgx-form .wpcf7-not-valid-tip{color:var(--rgx-terra-dk);font-size:14px;margin-top:6px}
body .rgx-form .wpcf7-response-output{margin:8px 0 0 !important;padding:14px 16px !important;border-radius:12px;border:1px solid var(--rgx-line) !important;font-size:15px}
body .rgx-form .wpcf7-spinner{margin:0 12px}
body .rgx-form fieldset{border:0;margin:0;padding:0;display:grid;gap:8px;font-size:14px;font-weight:500}

/* ---------- Linkliste mit Pfeilen ---------- */
body .rgx-linklist{display:grid;border-top:1px solid var(--rgx-line)}
body .rgx-linklist a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--rgx-line);font:500 17px/1.4 var(--rgx-text);transition:padding .2s,color .2s}
body .rgx-linklist a::after{content:"";flex:none;width:18px;height:18px;background:var(--rgx-moss);-webkit-mask:var(--rgx-ico-arrow) center/contain no-repeat;mask:var(--rgx-ico-arrow) center/contain no-repeat;transition:transform .2s}
body .rgx-linklist a:hover{padding-left:8px;color:var(--rgx-moss)}
body .rgx-linklist a:hover::after{transform:translateX(3px)}

/* ---------- Linkseite für Social-Media-Profile (/klick-mich/) ---------- */
body .rgx-bio{min-height:100svh;padding:56px 0 40px;display:flex;align-items:flex-start}
body .rgx-bio .rgx-wrap{max-width:520px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:18px}
/* Klasse sitzt am <img> oder, wenn ein WebP-Plugin das Bild verpackt, am <picture> */
body .rgx-bio__avatar{display:block;flex:none;width:112px;height:112px;border-radius:50%;overflow:hidden;object-fit:cover;object-position:center 20%;border:4px solid var(--rgx-paper);box-shadow:0 0 0 1px var(--rgx-line)}
body .rgx-bio__avatar img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center 20%}
body .rgx-bio h1{font-size:clamp(32px,6vw,44px);margin-top:4px}
body .rgx-bio .rgx-lead{text-align:center;margin:0 auto;font-size:18px}
body .rgx-bio__links{width:100%;display:grid;gap:12px;margin-top:10px;text-align:left}
body .rgx .rgx-bio__links a{display:flex;align-items:center;gap:14px;min-height:64px;padding:12px 18px;border-radius:var(--rgx-r-md);background:var(--rgx-paper);border:1px solid var(--rgx-line);color:var(--rgx-ink);font:500 17px/1.3 var(--rgx-text);transition:transform .18s,border-color .18s,background-color .18s}
body .rgx .rgx-bio__links a::after{content:"";margin-left:auto;flex:none;width:18px;height:18px;background:currentColor;opacity:.6;-webkit-mask:var(--rgx-ico-arrow) center/contain no-repeat;mask:var(--rgx-ico-arrow) center/contain no-repeat;transition:transform .18s}
body .rgx .rgx-bio__links a:hover{transform:translateY(-2px);border-color:rgba(79,98,56,.45)}
body .rgx .rgx-bio__links a:hover::after{transform:translateX(3px)}
body .rgx .rgx-bio__links a span{display:block;font-weight:400;font-size:14px;color:var(--rgx-muted)}
body .rgx .rgx-bio__links a .rgx-ico{width:40px;height:40px;padding:9px;border-radius:12px;background:var(--rgx-beige);color:var(--rgx-moss)}
body .rgx .rgx-bio__links a.rgx-bio__main{background:var(--rgx-terra);border-color:var(--rgx-terra);color:#fff}
body .rgx .rgx-bio__links a.rgx-bio__main span{color:#fff;opacity:.85}
body .rgx .rgx-bio__links a.rgx-bio__main .rgx-ico{background:rgba(255,255,255,.16);color:#fff}
body .rgx .rgx-bio__links a.rgx-bio__main:hover{background:var(--rgx-terra-dk);border-color:var(--rgx-terra-dk)}
body .rgx-bio__social{display:flex;gap:10px;margin-top:8px}
body .rgx .rgx-bio__social a{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:1.5px solid var(--rgx-line);color:var(--rgx-ink);transition:background-color .2s,color .2s,transform .2s}
body .rgx .rgx-bio__social a:hover{background:var(--rgx-ink);color:var(--rgx-sand);transform:translateY(-2px)}
body .rgx-bio__social svg{width:20px;height:20px}
body .rgx-bio__legal{display:flex;gap:18px;font-size:14px;color:var(--rgx-muted);margin-top:12px}
body .rgx .rgx-bio__legal a{color:var(--rgx-muted);text-decoration:underline;text-underline-offset:3px}

/* ---------- Fehlerseite 404 ---------- */
body .rgx-404{padding:72px 0 104px}
body .rgx-404 .rgx-split__text{gap:24px}
body .rgx-404 h1{font-size:clamp(40px,5vw,72px)}
body .rgx-404 .rgx-split__pic{aspect-ratio:956/828;background:var(--rgx-paper)}
body .rgx-404 .rgx-split__pic img{object-fit:cover}
body .rgx-404 .rgx-linklist{margin-top:8px}

/* ---------- QR-Code-Generator (Plugin „QR Meister“, Kurzcode [qr_meister]) ----------
   Ausnahme: Das Plugin bringt sein eigenes JavaScript mit. Hier nur die Optik in unseren Farben.
   Die Variablen stehen mit !important, weil das Plugin sie als Inline-Style und per Dark Mode setzt. */
body .rgx-qr .qrm-app{
  --qrm-accent:var(--rgx-terra) !important;--qrm-accent-hover:var(--rgx-terra-dk) !important;
  --qrm-border:rgba(38,38,32,.16) !important;--qrm-text:var(--rgx-ink) !important;--qrm-muted:var(--rgx-muted) !important;
  --qrm-bg:var(--rgx-paper) !important;--qrm-bg-soft:#fff !important;--qrm-radius:var(--rgx-r-lg) !important;--qrm-radius-sm:12px !important;
  font-family:var(--rgx-text) !important;font-size:16px;color:var(--rgx-ink)}
body .rgx-qr .qrm-grid{gap:24px}
body .rgx-qr .qrm-panel{padding:32px;border-color:var(--rgx-line);background:var(--rgx-paper)}
body .rgx-qr .qrm-panel--preview{background:#fff;top:calc(var(--rgx-header-h) + 24px)}
body .rgx-qr .qrm-section-title{font:500 19px/1.3 var(--rgx-display);font-stretch:90%;letter-spacing:-.01em;color:var(--rgx-ink);margin:8px 0 16px}
body .rgx-qr .qrm-label{font:500 14px/1.4 var(--rgx-text);color:var(--rgx-ink)}
body .rgx-qr .qrm-tab{padding:9px 16px;font:500 14px/1 var(--rgx-text);background:#fff}
body .rgx-qr .qrm-tab:hover{border-color:var(--rgx-terra)}
body .rgx-qr .qrm-tab.is-active{background:var(--rgx-terra);border-color:var(--rgx-terra);color:#fff}
body .rgx-qr :is(.qrm-input,.qrm-color){min-height:48px;padding:12px 14px;border:1.5px solid var(--rgx-line);border-radius:12px;background:#fff;font:400 16px/1.4 var(--rgx-text);color:var(--rgx-ink)}
body .rgx-qr .qrm-color{padding:4px}
body .rgx-qr :is(.qrm-input,.qrm-color):focus{outline:none;border-color:var(--rgx-moss);box-shadow:0 0 0 3px rgba(79,98,56,.18)}
body .rgx-qr .qrm-btn{min-height:48px;padding:0 22px;border-radius:var(--rgx-r-btn);font:500 15px/1 var(--rgx-text);transition:transform .18s,background-color .18s,border-color .18s,color .18s}
body .rgx-qr .qrm-btn:hover{transform:translateY(-2px)}
body .rgx-qr .qrm-btn--ghost{border:1.5px solid var(--rgx-ink);color:var(--rgx-ink)}
body .rgx-qr .qrm-btn--ghost:hover{background:var(--rgx-ink);color:var(--rgx-sand);border-color:var(--rgx-ink)}
body .rgx-qr .qrm-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
body .rgx-qr .qrm-preview-stage{border-radius:18px;background:var(--rgx-sand);padding:20px}
body .rgx-qr .qrm-hint,body .rgx-qr .qrm-status{font-size:14px;color:var(--rgx-muted)}
body .rgx-qr .qrm-checkbox{font-size:15px;color:var(--rgx-ink)}
body .rgx-qr .qrm-checkbox input{accent-color:var(--rgx-moss)}
body .rgx-qr .qrm-preset{border-color:#fff}
@media (max-width:700px){
  body .rgx-qr .qrm-panel{padding:22px 18px}
  body .rgx-qr .qrm-actions .qrm-btn{flex:1 1 100%}
}

/* ---------- Header ---------- */
body .rgx-header{background:var(--rgx-sand);border-bottom:1px solid var(--rgx-line);z-index:100}
body .rgx-header .rgx-wrap{display:flex;align-items:center;gap:32px;height:var(--rgx-header-h)}
body .rgx-logo{font:500 24px/1 var(--rgx-display);font-stretch:90%;letter-spacing:-.03em;color:var(--rgx-ink);white-space:nowrap}
body .rgx-logo span{color:var(--rgx-terra)}
body .rgx-menu{display:flex;gap:30px;margin:0 0 0 auto !important}
body .rgx-menu a{display:block;font:500 16px/1 var(--rgx-text);color:var(--rgx-ink);padding:8px 0;background:linear-gradient(var(--rgx-terra),var(--rgx-terra)) 0 100%/0 2px no-repeat;transition:background-size .25s}
body .rgx-menu a:hover,body .rgx-menu a[aria-current="page"]{background-size:100% 2px}
body .rgx-header .rgx-btn{min-height:46px}
body .rgx-menu__toggle{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
body .rgx-burger{display:none}
body .rgx-menu__cta{display:none}

/* ---------- Footer mit Abschluss-CTA ---------- */
body .rgx-footer{background:var(--rgx-beige);padding:110px 0 40px}
body .rgx-cta{background:var(--rgx-terra);color:#fff;border-radius:var(--rgx-r-lg);padding:64px;display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:center}
body .rgx-cta h2{grid-column:1/8;font-size:clamp(36px,4.6vw,68px)}
body .rgx-cta__side{grid-column:8/13;display:flex;flex-direction:column;gap:24px}
body .rgx-cta p{color:#fff}
body .rgx-social{display:flex;gap:10px}
body .rgx-social a{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;border:1.5px solid rgba(255,255,255,.6);color:#fff;transition:background-color .2s,color .2s,transform .2s}
body .rgx-social a:hover{background:#fff;color:var(--rgx-terra);transform:translateY(-2px)}
body .rgx-social svg{width:20px;height:20px}
body .rgx-fcols{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.4fr;gap:24px;padding:64px 0 48px}
body .rgx-fcols a[href^="mailto:"]{white-space:nowrap}
body .rgx-fcols h4{font:500 14px/1 var(--rgx-text);letter-spacing:0;color:var(--rgx-muted);margin-bottom:16px}
body .rgx-fcols ul{display:grid;gap:10px;font-size:15px}
body .rgx-fcols a:hover{color:var(--rgx-terra)}
body .rgx-fcols p{color:var(--rgx-muted);font-size:15px;margin-top:14px;max-width:34ch}
body .rgx-legal{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;font-size:14px;color:var(--rgx-muted);border-top:1px solid var(--rgx-line);padding-top:24px}
body .rgx-legal nav{display:flex;flex-wrap:wrap;gap:8px 20px}
body .rgx-legal a:hover{color:var(--rgx-ink)}

/* ==========================================================================
   Tablet
   ========================================================================== */
@media (max-width:1080px){
  body .rgx-hero__copy,body .rgx-hero__pics{grid-column:1/-1}
  body .rgx-hero__pics{min-height:380px}
  body .rgx-grid--4,body .rgx-refs{grid-template-columns:repeat(2,1fr)}
  body .rgx-plans{grid-template-columns:1fr 1fr}
  body .rgx-plan.rgx-plan--main{grid-column:1/3;order:-1}
  body .rgx-pricelist ul{grid-template-columns:1fr 1fr}
  body .rgx-steps--row{grid-template-columns:1fr 1fr;row-gap:36px}
  body .rgx-steps--3{grid-template-columns:repeat(3,1fr)}
}

/* ==========================================================================
   Burger-Menü und gestapelte Raster
   ========================================================================== */
@media (max-width:980px){
  body .rgx-header .rgx-wrap > .rgx-btn{display:none}
  body .rgx-burger{display:grid;place-items:center;margin-left:auto;width:46px;height:46px;border:1.5px solid var(--rgx-ink);border-radius:var(--rgx-r-btn);cursor:pointer}
  body .rgx-burger span,body .rgx-burger span::before,body .rgx-burger span::after{display:block;width:18px;height:2px;background:var(--rgx-ink);transition:transform .2s,opacity .2s}
  body .rgx-burger span{position:relative}
  body .rgx-burger span::before,body .rgx-burger span::after{content:"";position:absolute;left:0}
  body .rgx-burger span::before{top:-6px} body .rgx-burger span::after{top:6px}
  body .rgx-menu__toggle:checked ~ .rgx-burger span{background:transparent}
  body .rgx-menu__toggle:checked ~ .rgx-burger span::before{transform:translateY(6px) rotate(45deg)}
  body .rgx-menu__toggle:checked ~ .rgx-burger span::after{transform:translateY(-6px) rotate(-45deg)}
  body .rgx-menu__toggle:focus-visible ~ .rgx-burger{outline:3px solid var(--rgx-terra);outline-offset:3px}
  body .rgx .rgx-menu{display:none;position:fixed;left:0;right:0;top:var(--rgx-header-h);bottom:0;background:var(--rgx-sand);flex-direction:column;gap:0;padding:12px var(--rgx-gut) 32px;overflow-y:auto;z-index:99}
  body .rgx .rgx-menu__toggle:checked ~ .rgx-menu{display:flex}
  body .rgx-menu a{font-size:24px;padding:18px 0;border-bottom:1px solid var(--rgx-line);background:none}
  body .rgx .rgx-menu__cta{display:block;margin-top:24px}
  body .rgx-menu__cta a.rgx-btn{display:flex;width:100%;font-size:17px;padding:0 26px;border-bottom:0;background:var(--rgx-terra);color:#fff}

  body .rgx-head,body .rgx-cols2,body .rgx-split,body .rgx-pagehero__grid{grid-template-columns:1fr}
  body .rgx-head > *,body .rgx-cols2 > *,body .rgx-split__text,body .rgx-split__pic,body .rgx-pagehero__grid > *{grid-column:1/-1 !important;grid-row:auto !important}
  body .rgx-pagehero__pic{max-width:460px}
  body .rgx-duo,body .rgx-grid--2,body .rgx-grid--3{grid-template-columns:1fr}
  body .rgx-feature{grid-template-columns:1fr}
  body .rgx-feature__pic,body .rgx-feature__text{grid-column:1/-1}
  body .rgx-row{grid-template-columns:48px 1fr 32px}
  body .rgx-row p{grid-column:2/3}
  body .rgx-cta{grid-template-columns:1fr;padding:44px}
  body .rgx-cta h2,body .rgx-cta__side{grid-column:1/-1}
  body .rgx-fcols{grid-template-columns:1fr 1fr}
}

/* ==========================================================================
   Handy
   ========================================================================== */
@media (max-width:700px){
  body :where(.rgx){font-size:16px}
  body .rgx-hero{padding:40px 0 56px}
  body .rgx-pagehero{padding:40px 0 56px}
  body .rgx-hero__pics{min-height:0;grid-template-columns:1fr}
  body .rgx-hero__pics > *{aspect-ratio:4/3}
  body .rgx-hero__pics > :last-child{display:none}
  body .rgx-grid--4,body .rgx-refs,body .rgx-refs--3,body .rgx-plans,body .rgx-pricelist ul,body .rgx-checks--2,body .rgx-steps--row,body .rgx-steps--3{grid-template-columns:1fr}
  body .rgx-plan.rgx-plan--main{grid-column:auto}
  body .rgx-plan,body .rgx-card,body .rgx-pricelist{padding:28px 24px}
  body .rgx-btn-row .rgx-btn,body .rgx-form .rgx-btn{width:100%;justify-self:stretch}
  body .rgx-duo__card{padding:28px}
  body .rgx-year{font-size:56px}
  body .rgx-row{gap:14px;padding:20px 0}
  body .rgx-cta{padding:32px 24px}
  body .rgx-formbox{padding:28px 22px}
  body .rgx-form input[type=submit]{width:100%}
  body .rgx-fcols{grid-template-columns:1fr}
  body .rgx-footer{padding:72px 0 32px}
}

@media (prefers-reduced-motion:reduce){
  body .rgx *,body .rgx *::before,body .rgx *::after{transition:none !important}
}
