/* ============================================================
   GESANDTSCHAFT — Design-System (Theme-Stylesheet)
   Dunkle, zeremonielle Editorial-Identität. Eine Akzentfarbe: Purpurrot.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600&family=Spectral:wght@300;400;500&family=Archivo:wght@400;500;600&display=swap');

:root{
  --canvas:#f3f1ed;
  --canvas-elevated:#e9e6df;
  --ink:#1e1518;
  --body:#423a3e;
  --muted:#5f5853;
  --muted-soft:#857d77;
  --primary:#9c2447;
  --primary-on-dark:#9c2447;
  --hairline:rgba(30,21,24,0.12);
  --font-display:'Playfair Display', Georgia, serif;
  --font-text:'Spectral', Georgia, serif;
  --font-label:'Archivo', system-ui, sans-serif;
  --container-max:1140px;
  --container-padding-x:72px;
  --container-padding-x-mobile:28px;
  --editorial-label-column:240px;
  --editorial-text-max:680px;
  --editorial-gap:56px;
  --hero-glow:radial-gradient(ellipse 60% 55% at 50% 42%, rgba(156,36,71,0.05), rgba(243,241,237,0) 70%);
  --ease:cubic-bezier(0.22,0.61,0.36,1);
  --dur:180ms;
}

*{box-sizing:border-box;}
html,body{margin:0;background:var(--canvas);}
body{font-family:var(--font-text);color:var(--body);}
a{color:var(--primary-on-dark);}
img{max-width:100%;height:auto;}

.gx-container{max-width:var(--container-max);margin:0 auto;padding:0 var(--container-padding-x);}

/* ---- Top-Nav ---- */
.gx-nav{display:flex;justify-content:center;gap:48px;padding:30px 0 0;flex-wrap:wrap;}
.gx-nav ul{list-style:none;display:flex;gap:48px;flex-wrap:wrap;margin:0;padding:0;justify-content:center;}
.gx-nav a{font:500 12px/1.4 var(--font-label);letter-spacing:0.24em;text-transform:uppercase;color:var(--primary-on-dark);text-decoration:none;padding:12px 4px;transition:color var(--dur) var(--ease);}
.gx-nav a:hover,.gx-nav .current-menu-item a{color:var(--ink);}

/* ---- Hero ---- */
.gx-hero{min-height:74vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 28px 40px;}
.gx-crest{position:relative;display:inline-flex;align-items:center;justify-content:center;}
.gx-crest--hero{width:500px;max-width:84vw;}
.gx-crest--hero .gx-glow{position:absolute;inset:-55% -12%;background:var(--hero-glow);pointer-events:none;}
.gx-crest img{position:relative;width:100%;height:auto;object-fit:contain;display:block;}
.gx-preamble{font:400 44px/1.32 var(--font-display);letter-spacing:-0.3px;color:var(--ink);max-width:840px;margin:40px 0 0;text-wrap:balance;}
.gx-cta-wrap{margin-top:48px;}

/* ---- Ceremonial link ---- */
.gx-cere-link{display:inline-block;font:600 13px/1 var(--font-label);letter-spacing:0.2em;text-transform:uppercase;color:var(--ink);text-decoration:none;background:none;border:none;cursor:pointer;padding-bottom:6px;border-bottom:1px solid var(--primary-on-dark);transition:color var(--dur) var(--ease);}
.gx-cere-link:hover{color:var(--primary-on-dark);}

/* ---- Sections ---- */
.gx-section{padding:80px 0;}
.gx-section--bordered{border-top:1px solid var(--hairline);}
.gx-band-elevated{background:var(--canvas-elevated);border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);padding:80px 0;}

/* ---- Section head ---- */
.gx-eyebrow{font:500 12px/1.6 var(--font-label);letter-spacing:0.24em;text-transform:uppercase;color:var(--primary-on-dark);}
.gx-h2{font:500 38px/1.18 var(--font-display);letter-spacing:-0.2px;color:var(--ink);margin:16px 0 0;text-wrap:balance;}
.gx-h2 .sub{display:block;font:400 22px/1.3 var(--font-display);color:var(--muted);margin-top:6px;letter-spacing:0;}
.gx-section-head{max-width:760px;margin-bottom:56px;}

/* ---- Editorial row ---- */
.gx-row{display:grid;grid-template-columns:var(--editorial-label-column) minmax(0,var(--editorial-text-max));gap:var(--editorial-gap);align-items:start;}
.gx-row + .gx-row{margin-top:48px;}
.gx-row__label{padding-top:6px;}
.gx-label{font:500 12px/1.6 var(--font-label);letter-spacing:0.24em;text-transform:uppercase;color:var(--primary-on-dark);}
.gx-row__text{font:400 20px/1.8 var(--font-text);color:var(--body);}
.gx-row__text p{margin:0 0 20px;}
.gx-row__text p:last-child{margin-bottom:0;}
.gx-row__text em{color:var(--ink);font-style:italic;}

/* ---- Divider ---- */
.gx-divider{height:1px;width:100%;background:var(--hairline);border:none;}
.gx-divider--v{width:1px;align-self:stretch;background:var(--hairline);}

/* ---- Aside note ---- */
.gx-note{margin-top:48px;border-left:1px solid var(--primary-on-dark);padding:4px 0 4px 28px;max-width:760px;font:400 16px/1.7 var(--font-text);color:var(--muted);}

/* ---- Quote band ---- */
.gx-quote{margin:0 auto;text-align:center;padding:24px 0;max-width:920px;}
.gx-quote blockquote{margin:0;font:400 42px/1.4 var(--font-display);letter-spacing:-0.3px;color:var(--ink);text-wrap:balance;}
.gx-quote figcaption{margin-top:28px;font:500 12px/1.6 var(--font-label);letter-spacing:0.24em;text-transform:uppercase;color:var(--primary-on-dark);}

/* ---- Tiers ---- */
.gx-tiers{display:grid;grid-template-columns:1fr auto 1fr;gap:64px;align-items:start;}
.gx-tier{display:flex;flex-direction:column;}
.gx-tier__name{margin:0;font:500 34px/1.2 var(--font-display);letter-spacing:-0.2px;color:var(--ink);}
.gx-tier__name span{display:block;font:400 16px/1.4 var(--font-label);letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-top:10px;}
.gx-tier__beitrag{margin-top:22px;font:500 15px/1.4 var(--font-label);letter-spacing:0.06em;font-feature-settings:'tnum';color:var(--primary-on-dark);}
.gx-tier ul{list-style:none;margin:28px 0 0;padding:0;}
.gx-tier li + li{border-top:1px solid var(--hairline);}
.gx-tier li span{display:block;padding:15px 0;font:400 18px/1.55 var(--font-text);color:var(--body);}

/* ---- Feature blocks ---- */
.gx-feature{display:grid;grid-template-columns:var(--editorial-label-column) minmax(0,var(--editorial-text-max));gap:var(--editorial-gap);align-items:start;padding:28px 0;border-top:1px solid var(--hairline);}
.gx-feature:last-of-type{border-bottom:1px solid var(--hairline);}
.gx-feature__term{font:500 21px/1.3 var(--font-display);color:var(--ink);}
.gx-feature__desc{font:400 18px/1.7 var(--font-text);color:var(--body);}
.gx-feature__desc p{margin:0 0 14px;}
.gx-feature__desc p:last-child{margin-bottom:0;}

/* ---- Numbered points ---- */
.gx-points{list-style:none;margin:0;padding:0;counter-reset:p;max-width:760px;}
.gx-points li{counter-increment:p;position:relative;padding:16px 0 16px 52px;border-top:1px solid var(--hairline);font:400 18px/1.6 var(--font-text);color:var(--body);}
.gx-points li:last-child{border-bottom:1px solid var(--hairline);}
.gx-points li::before{content:counter(p,decimal-leading-zero);position:absolute;left:0;top:18px;font:500 13px/1 var(--font-label);letter-spacing:0.1em;color:var(--primary-on-dark);}

/* ---- Moon portals ---- */
.gx-portals{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;align-items:stretch;margin-top:56px;}
.gx-portal{display:flex;flex-direction:column;gap:14px;padding:0 28px;}
.gx-portal__glyph{font:400 30px/1 var(--font-display);color:var(--primary-on-dark);}
.gx-portal h3{margin:0;font:500 21px/1.3 var(--font-display);color:var(--ink);}
.gx-portal p{margin:0;font:400 15px/1.6 var(--font-text);color:var(--body);}

/* ---- Dual CTA ---- */
.gx-dual{display:flex;gap:28px;justify-content:center;flex-wrap:wrap;margin-top:8px;}
.gx-buy{display:flex;flex-direction:column;align-items:center;gap:12px;padding:36px 40px;border:1px solid var(--hairline);min-width:280px;}
.gx-buy__name{font:500 24px/1.2 var(--font-display);color:var(--ink);}
.gx-buy__price{font:500 14px/1.4 var(--font-label);letter-spacing:0.06em;color:var(--primary-on-dark);font-feature-settings:'tnum';}

/* ---- Footer ---- */
.gx-footer{border-top:1px solid var(--hairline);padding:64px 0 72px;text-align:center;}
.gx-footer__crest{display:flex;justify-content:center;margin-bottom:40px;}
.gx-crest--footer{width:200px;max-width:64vw;}
.gx-footer__cols{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;max-width:820px;margin:0 auto 36px;font:400 13px/1.9 var(--font-label);letter-spacing:0.03em;color:var(--body);}
.gx-footer__cols a{color:var(--body);text-decoration:none;}
.gx-footer__cols a:hover{color:var(--ink);}
.gx-footer__title{text-transform:uppercase;letter-spacing:0.2em;font-size:11px;color:var(--primary-on-dark);margin-bottom:8px;}
.gx-footer__legal{font:400 13px/1.9 var(--font-label);letter-spacing:0.03em;color:var(--muted-soft);}

/* ---- Vergleichs-Matrix (Berechtigungstabelle) ---- */
.gx-matrix-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.gx-matrix{width:100%;border-collapse:collapse;min-width:560px;}
.gx-matrix thead th{font:500 12px/1.4 var(--font-label);letter-spacing:0.18em;text-transform:uppercase;color:var(--primary-on-dark);text-align:center;padding:0 18px 16px;border-bottom:1px solid var(--hairline);}
.gx-matrix thead th:first-child{text-align:left;width:auto;}
.gx-matrix tbody th{font:400 18px/1.5 var(--font-text);color:var(--body);text-align:left;font-weight:400;padding:15px 18px;border-bottom:1px solid var(--hairline);}
.gx-matrix tbody td{text-align:center;width:150px;padding:15px 18px;border-bottom:1px solid var(--hairline);}
.gx-matrix__group th{font:500 12px/1.4 var(--font-label);letter-spacing:0.2em;text-transform:uppercase;color:var(--muted);padding:32px 18px 12px;border-bottom:1px solid var(--primary-on-dark);}
.gx-matrix__yes{color:var(--primary-on-dark);font-size:15px;}
.gx-matrix__no{color:var(--muted-soft);font-size:15px;}
.gx-matrix__val{color:var(--ink);font:500 14px/1.4 var(--font-label);letter-spacing:0.04em;font-feature-settings:'tnum';}
.gx-matrix-legend{margin-top:18px;font:400 13px/1.6 var(--font-label);letter-spacing:0.04em;color:var(--muted);}
.gx-matrix-legend .gx-matrix__yes,.gx-matrix-legend .gx-matrix__no{margin-right:6px;}

/* ============================================================
   Basis-Stil für generischen Seiteninhalt (the_content):
   greift bei Inhalten, die noch nicht ins gx-Markup umgesetzt sind.
   ============================================================ */
.gx-content{max-width:760px;margin:0 auto;font:400 20px/1.8 var(--font-text);color:var(--body);}
.gx-content h1{font:500 46px/1.15 var(--font-display);color:var(--ink);letter-spacing:-0.3px;margin:0 0 24px;}
.gx-content h2{font:500 34px/1.2 var(--font-display);color:var(--ink);margin:48px 0 16px;}
.gx-content h3{font:500 24px/1.3 var(--font-display);color:var(--ink);margin:36px 0 12px;}
.gx-content p{margin:0 0 22px;}
.gx-content a{color:var(--primary-on-dark);text-underline-offset:3px;}
.gx-content ul,.gx-content ol{margin:0 0 22px;padding-left:24px;}
.gx-content li{margin:0 0 10px;}
.gx-content blockquote{margin:32px 0;padding-left:28px;border-left:1px solid var(--primary-on-dark);font-style:italic;color:var(--ink);}
.gx-content hr{border:none;border-top:1px solid var(--hairline);margin:48px 0;}

/* ============================================================
   FluentForm dunkel (.gx-form-Hook, z. B. Interessensliste auf Seite 394).
   Der Wrapper liegt in einem erhöhten Band, darum sitzen die Felder auf dem
   tieferen Grund (canvas) mit Haarlinie, der Aufruf in Purpurrot.
   ============================================================ */
.gx-form{max-width:560px;margin:28px 0 0;}
.gx-form .ff-el-group{margin-bottom:22px;}
.gx-form .ff-el-input--label label,
.gx-form label{font:500 12px/1.6 var(--font-label);letter-spacing:0.14em;text-transform:uppercase;color:var(--primary-on-dark);margin-bottom:8px;display:block;}
.gx-form .ff-el-input--label.ff-el-is-required label:after{color:var(--primary-on-dark);}
.gx-form input[type=text],
.gx-form input[type=email],
.gx-form input[type=tel],
.gx-form input[type=url],
.gx-form input[type=number],
.gx-form textarea,
.gx-form select,
.gx-form .ff-el-form-control{
  width:100%;background:var(--canvas);color:var(--ink);
  border:1px solid var(--hairline);border-radius:2px;
  font:400 16px/1.5 var(--font-text);padding:13px 16px;min-height:48px;box-shadow:none;
}
.gx-form textarea,.gx-form .ff-el-form-control textarea{min-height:120px;}
.gx-form input::placeholder,.gx-form textarea::placeholder,.gx-form .ff-el-form-control::placeholder{color:var(--muted-soft);}
.gx-form input:focus,.gx-form textarea:focus,.gx-form select:focus,.gx-form .ff-el-form-control:focus{
  outline:none;border-color:var(--primary-on-dark);box-shadow:0 0 0 2px rgba(207,90,116,0.25);
}
.gx-form .ff-el-form-check label,.gx-form .ff-el-checkable-label{text-transform:none;letter-spacing:0;color:var(--body);font:400 16px/1.6 var(--font-text);}
.gx-form input[type=checkbox],.gx-form input[type=radio]{accent-color:var(--primary);min-height:0;width:auto;}
.gx-form .ff-btn-submit,.gx-form button[type=submit]{
  font:600 13px/1 var(--font-label);letter-spacing:0.2em;text-transform:uppercase;
  background:var(--primary);color:#fff;border:1px solid var(--primary);border-radius:0;
  padding:18px 34px;min-height:48px;cursor:pointer;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease);
}
.gx-form .ff-btn-submit:hover,.gx-form button[type=submit]:hover{background:#7e1c39;border-color:#7e1c39;}
.gx-form .ff-el-is-error .ff-el-form-control,.gx-form .error input{border-color:var(--primary);}
.gx-form .error,.gx-form .text-danger,.gx-form .ff-el-is-error .error{color:var(--primary-on-dark);font:400 14px/1.5 var(--font-text);}
.gx-form .ff-message-success{background:var(--canvas);border:1px solid var(--hairline);border-left:2px solid var(--primary-on-dark);border-radius:2px;color:var(--body);padding:16px 20px;}

/* ============================================================
   Recht-/Pflichtseiten: schlankes Text-Layout (Impressum, Datenschutz,
   AGB, Widerruf, Versand-/Zahlungsarten). Eine ruhige Lesespalte auf
   Dunkel, kein Schmuck. Leichter Hero liefert den Titel.
   ============================================================ */
.gx-legal{max-width:760px;margin:0 auto;font:400 17px/1.75 var(--font-text);color:var(--body);}
.gx-legal__meta{font:500 11px/1.6 var(--font-label);letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin:0 0 40px;}
.gx-legal h2{font:500 27px/1.25 var(--font-display);color:var(--ink);letter-spacing:-0.2px;margin:52px 0 16px;}
.gx-legal h3{font:500 20px/1.3 var(--font-display);color:var(--ink);margin:40px 0 12px;}
.gx-legal h2:first-child,.gx-legal h3:first-child{margin-top:0;}
.gx-legal p{margin:0 0 18px;}
.gx-legal a{color:var(--primary-on-dark);text-underline-offset:3px;}
.gx-legal strong{color:var(--ink);font-weight:500;}
.gx-legal em{color:var(--ink);font-style:italic;}
.gx-legal ul,.gx-legal ol{margin:0 0 20px;padding-left:24px;}
.gx-legal li{margin:0 0 9px;}
.gx-legal li::marker{color:var(--primary-on-dark);}
.gx-legal hr{border:none;border-top:1px solid var(--hairline);margin:40px 0;}
.gx-legal table{width:100%;border-collapse:collapse;margin:0 0 20px;}
.gx-legal th,.gx-legal td{border:1px solid var(--hairline);padding:12px 14px;text-align:left;}
/* Sichtbarer Platzhalter-Marker: noch auszufüllende Werte (z. B. Germanized) */
.gx-legal .gx-todo{display:inline;background:rgba(207,90,116,0.12);border-bottom:1px solid var(--primary-on-dark);color:var(--ink);padding:1px 6px;font:400 15px/1.6 var(--font-label);letter-spacing:0.02em;}

/* ---- Mobile ---- */
@media(max-width:820px){
  .gx-container{padding:0 var(--container-padding-x-mobile);}
  .gx-preamble{font-size:30px;}
  .gx-row,.gx-feature{grid-template-columns:1fr;gap:14px;}
  .gx-h2{font-size:30px;}
  .gx-content h1{font-size:34px;}
  .gx-legal h2{font-size:23px;}
  .gx-quote blockquote{font-size:28px;}
  .gx-tiers{grid-template-columns:1fr;gap:40px;}
  .gx-tiers .gx-divider--v{display:none;}
  .gx-tier + .gx-tier{border-top:1px solid var(--hairline);padding-top:40px;}
  .gx-portals{grid-template-columns:1fr 1fr;}
  .gx-portals .gx-divider--v{display:none;}
  .gx-portal{padding:18px 0;}
  .gx-footer__cols{grid-template-columns:1fr;}
}

/* Visuell verstecktes Element (Screenreader/SEO), etwa das semantische h1 im Editorial-Kopf. */
.gx-visually-hidden{
  position:absolute;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
