/* GALINI – Ergänzungen zu theme.json.
   Alles, was sich nicht als Block-Einstellung ausdrücken lässt:
   Kopfleiste, Detail-Komponenten, Druck. Rund 6 KB, keine Abhängigkeiten. */

:root{ --galini-rule: rgba(15,44,66,.13); --galini-rule-2: rgba(15,44,66,.07); }

body{ -webkit-font-smoothing: antialiased; }
p{ max-width: 68ch; }
:where(.entry-content) > *{ max-width: 68ch; }
:focus-visible{ outline: 2px solid var(--wp--preset--color--sage); outline-offset: 3px; }

/* Sprunglink */
.skip-link{ position:absolute; left:-999px; top:0; z-index:100;
  background: var(--wp--preset--color--ocean); color: var(--wp--preset--color--creme);
  padding: 10px 16px; text-decoration:none; }
.skip-link:focus{ left:8px; top:8px; }

/* Kopfleiste */
.galini-header{ position: sticky; top: 0; z-index: 50; }
.galini-header .wp-block-site-title a{ font-family: var(--wp--preset--font-family--serif);
  font-weight:500; font-size:19px; letter-spacing:.2em; text-transform:uppercase;
  text-decoration:none; }
.galini-header .wp-block-navigation{ font-size:14.5px; }
.galini-header .wp-block-navigation a{ text-decoration:none; color: var(--wp--preset--color--ocean-hell); }
.galini-header .wp-block-navigation a:hover{ color: var(--wp--preset--color--ocean); }
.galini-header .wp-block-navigation .current-menu-item a{ color: var(--wp--preset--color--ocean);
  border-bottom:1px solid var(--wp--preset--color--sage); }
.galini-mark{ width:46px; height:auto; display:block; flex:0 0 auto; }

/* Auftakt */
.galini-hero{ padding-block: clamp(44px,7vw,96px) clamp(36px,5vw,70px); }
.galini-hero .galini-hero-mark{ width:100%; max-width:340px; height:auto; justify-self:end; }
@media (max-width:820px){ .galini-hero .galini-hero-mark{ max-width:250px; justify-self:start; } }
.galini-lead{ font-size: var(--wp--preset--font-size--lead); line-height:1.52;
  color: var(--wp--preset--color--ocean-hell); max-width:60ch; }
.galini-eyebrow{ font-family: var(--wp--preset--font-family--sans); font-size:11.5px;
  letter-spacing:.24em; text-transform:uppercase; color: var(--wp--preset--color--sage);
  font-weight:500; margin-bottom:14px; }

/* Karten mit Oberlinie */
.galini-karte{ border-top:2px solid var(--wp--preset--color--sage); padding-top:18px; }
.galini-karte h3{ margin-bottom:9px; }
.galini-karte p{ font-size:15.5px; color: var(--wp--preset--color--ocean-hell); }

/* Themenliste */
.galini-themen ul{ list-style:none; margin:0; padding:0; columns:2; column-gap:clamp(24px,4vw,56px); }
@media (max-width:700px){ .galini-themen ul{ columns:1; } }
.galini-themen li{ padding:13px 0 13px 26px; border-bottom:1px solid var(--galini-rule-2);
  position:relative; font-size:15.5px; color: var(--wp--preset--color--ocean-hell);
  break-inside:avoid; }
.galini-themen li::before{ content:""; position:absolute; left:0; top:23px; width:12px;
  height:1.5px; background: var(--wp--preset--color--sage); }

/* Nummerierte Liste */
.galini-schritte{ list-style:none; margin:0; padding:0; counter-reset:gs; }
.galini-schritte > li{ counter-increment:gs; display:grid;
  grid-template-columns: clamp(54px,7vw,92px) minmax(0,1fr); gap:clamp(16px,3vw,38px);
  padding-block: clamp(22px,3vw,34px); border-top:1px solid var(--galini-rule-2); }
.galini-schritte > li:first-child{ border-top:0; }
.galini-schritte > li::before{ content: counter(gs,decimal-leading-zero);
  font-family: var(--wp--preset--font-family--serif); font-size:clamp(26px,3.4vw,40px);
  color: var(--wp--preset--color--sage); line-height:1; }

/* Preise */
.galini-preise{ list-style:none; margin:0; padding:0; border-top:1px solid var(--galini-rule); }
.galini-preise > li{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px 24px;
  padding-block: clamp(18px,2.6vw,28px); border-bottom:1px solid var(--galini-rule-2);
  align-items:baseline; }
.galini-preise h3{ font-size:clamp(19px,2vw,24px); margin:0; }
.galini-preise .dauer{ font-family: var(--wp--preset--font-family--mono); font-size:11.5px;
  letter-spacing:.1em; text-transform:uppercase; color: var(--wp--preset--color--ocean-hell);
  margin:5px 0 0; }
.galini-preise .preis{ font-family: var(--wp--preset--font-family--serif);
  font-size:clamp(22px,2.6vw,30px); text-align:right; white-space:nowrap; }
.galini-preise .be{ grid-column:1/-1; font-size:15px; margin:8px 0 0;
  color: var(--wp--preset--color--ocean-hell); }

/* Fragen und Antworten */
.galini-faq{ border-top:1px solid var(--galini-rule); }
.galini-faq details{ border-bottom:1px solid var(--galini-rule-2); }
.galini-faq summary{ cursor:pointer; list-style:none; position:relative;
  padding: clamp(16px,2.2vw,22px) 44px clamp(16px,2.2vw,22px) 0;
  font-family: var(--wp--preset--font-family--serif); font-weight:500;
  font-size:clamp(17px,1.9vw,21px); line-height:1.3; }
.galini-faq summary::-webkit-details-marker{ display:none; }
.galini-faq summary::after{ content:""; position:absolute; right:8px; top:50%; width:11px;
  height:11px; border-right:1.5px solid var(--wp--preset--color--sage);
  border-bottom:1.5px solid var(--wp--preset--color--sage);
  transform:translateY(-70%) rotate(45deg); transition:transform .2s; }
.galini-faq details[open] summary::after{ transform:translateY(-30%) rotate(225deg); }
.galini-faq .antwort{ padding:0 0 clamp(18px,2.4vw,26px); font-size:15.5px;
  color: var(--wp--preset--color--ocean-hell); max-width:68ch; }

/* Abgrenzung / Notfall */
.galini-grenze{ background: var(--wp--preset--color--warn-bg); border-radius:2px;
  padding: clamp(24px,4vw,46px); }
.galini-grenze .galini-eyebrow{ color: var(--wp--preset--color--warn); }
.galini-grenze ul{ list-style:none; margin:0 0 26px; padding:0; }
.galini-grenze ul li{ padding:10px 0 10px 26px; position:relative; font-size:15.5px;
  border-bottom:1px solid rgba(138,75,35,.16); color: var(--wp--preset--color--ocean-hell); }
.galini-grenze ul li::before{ content:"\00d7"; position:absolute; left:4px; top:10px;
  color: var(--wp--preset--color--warn); font-family: var(--wp--preset--font-family--mono); }
.galini-hilfe{ list-style:none; margin:0; padding:0; }
.galini-hilfe li{ display:flex; flex-wrap:wrap; gap:4px 16px; justify-content:space-between;
  padding:11px 0; border-bottom:1px solid rgba(138,75,35,.16); font-size:15px; }
.galini-hilfe b{ font-family: var(--wp--preset--font-family--mono); white-space:nowrap; }

/* Merkmale */
.galini-merkmale{ display:flex; flex-wrap:wrap; gap:8px; list-style:none; margin:18px 0 0; padding:0; }
.galini-merkmale li{ font-size:12.5px; letter-spacing:.06em; border:1px solid var(--galini-rule);
  border-radius:2px; padding:5px 11px; color: var(--wp--preset--color--ocean-hell); }
.galini-hinweis{ border-left:2px solid var(--wp--preset--color--sage); padding-left:14px;
  font-size:14px; color: var(--wp--preset--color--ocean-hell); max-width:62ch; }

/* Formular */
.galini-formular input[type=text], .galini-formular input[type=email],
.galini-formular select, .galini-formular textarea{
  font: inherit; font-size:16px; font-weight:300; width:100%;
  background: var(--wp--preset--color--papier); border:1px solid var(--galini-rule);
  border-radius:2px; padding:12px 14px; color: var(--wp--preset--color--ocean); }
.galini-formular label{ font-size:13px; letter-spacing:.08em; text-transform:uppercase;
  color: var(--wp--preset--color--ocean-hell); font-weight:500; display:block; margin-bottom:7px; }
.galini-formular textarea{ min-height:140px; resize:vertical; }
.galini-formular input[type=tel]{ font: inherit; font-size:16px; font-weight:300; width:100%;
  background: var(--wp--preset--color--papier); border:1px solid var(--galini-rule);
  border-radius:2px; padding:12px 14px; color: var(--wp--preset--color--ocean); }
/* Felder: Rahmen und Innenabstand in der Breite (sonst ragen sie am Falthandy über den Rand), nie unter 16 px */
.galini-formular input, .galini-formular select, .galini-formular textarea{ box-sizing:border-box; max-width:100%; font-size:16px; }
.galini-formular select{ min-height:48px; }
/* Haken: 44 × 44 px Tippfläche, sichtbar ein Kästchen von 24 px (transparenter Rand als Abstand) */
.galini-formular__haken input[type=checkbox]{ -webkit-appearance:none; appearance:none; flex:0 0 auto; width:44px; height:44px;
  margin:-10px 0 -10px -10px; border:10px solid transparent; border-radius:14px; background-clip:padding-box;
  background-color: var(--wp--preset--color--papier); box-shadow: inset 0 0 0 1.5px var(--wp--preset--color--ocean-hell);
  cursor:pointer; accent-color:auto; }
.galini-formular__haken input[type=checkbox]:checked{ background-color: var(--wp--preset--color--ocean); box-shadow:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%23F4F1EA' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:center; background-size:20px; }
.galini-formular__haken input[type=checkbox]:focus-visible{ outline:2px solid var(--wp--preset--color--sage); outline-offset:-8px; }
.galini-formular__haken input[type=checkbox][aria-invalid=true]{ box-shadow: inset 0 0 0 2px var(--wp--preset--color--warn); }
.galini-formular__form{ display:grid; grid-template-columns:1fr; gap:22px 28px; max-width:820px; }
@media (min-width:700px){ .galini-formular__form{ grid-template-columns:1fr 1fr; } }
.galini-formular__feld{ min-width:0; }
.galini-formular__feld--voll, .galini-formular__meldung, .galini-formular__notiz{ grid-column:1 / -1; }
.galini-formular__feld[hidden], .galini-formular__meldung[hidden]{ display:none; }
.galini-formular__optional{ text-transform:none; letter-spacing:0; font-weight:400; }
.galini-formular__hinweis{ display:block; margin-top:8px; font-size:14px; color: var(--wp--preset--color--ocean-hell);
  border-left:2px solid var(--wp--preset--color--sage); padding-left:12px; }
.galini-formular__fehler{ display:block; font-size:14px; color: var(--wp--preset--color--warn); margin-top:6px; }
.galini-formular__fehler:empty{ display:none; }
.galini-formular [aria-invalid=true]{ border-color: var(--wp--preset--color--warn); }
.galini-formular__meldung{ margin:0; padding:12px 16px; background: var(--wp--preset--color--warn-bg);
  color: var(--wp--preset--color--warn); border-radius:2px; font-size:15px; }
.galini-formular label.galini-formular__haken{ display:flex; gap:6px; align-items:flex-start; text-transform:none;
  letter-spacing:0; font-size:15px; font-weight:400; line-height:1.55; cursor:pointer; min-height:44px; }
.galini-formular__haken a{ display:inline; }
.galini-formular__falle{ position:absolute !important; left:-9999px; width:1px; height:1px; overflow:hidden; }
.galini-formular__senden{ min-height:48px; padding:0 32px; cursor:pointer; border:0; }
.galini-formular__senden:disabled{ opacity:.65; cursor:default; }
.galini-formular__notiz{ font-size:13.5px; color: var(--wp--preset--color--ocean-hell); margin:0; }
.galini-formular__danke{ max-width:62ch; padding:28px; background: var(--wp--preset--color--sage-pale); border-radius:2px; }
.galini-formular__danke h2{ margin-top:0; }
.galini-formular__danke:focus{ outline:2px solid var(--wp--preset--color--sage); outline-offset:3px; }

/* Menüpunkte in Kopf und Fuß: Tippziel ≥ 44 px */
.wp-block-navigation .wp-block-navigation-item__content{ display:inline-flex; align-items:center; min-height:44px; }
.galini-header .wp-block-navigation__container{ gap: 4px clamp(14px,2vw,30px); }

/* Kopf: nur die Linie unten (WordPress setzt mit der Rahmenfarbe sonst an allen Seiten einen Rand) */
.galini-header.has-border-color{ border-top:0; border-left:0; border-right:0; }

/* Anmelden im Kopf (Konto und Praxis) – Tippziel ≥ 44 px */
.galini-header .galini-kopf-rechts > .galini-anmelden{ margin-left:clamp(4px,1vw,14px); }
.galini-anmelden{ display:inline-flex; align-items:center; min-height:44px; padding:0 16px; border:1px solid var(--galini-rule);
  border-radius:999px; font-size:15px; text-decoration:none; color: var(--wp--preset--color--ocean); white-space:nowrap; }
.galini-anmelden:hover{ border-color: var(--wp--preset--color--ocean); }

/* Rechtstexte */
.ist-rechtstext .entry-content{ font-size:15.5px; }
.ist-rechtstext .entry-content p, .ist-rechtstext .entry-content li{ overflow-wrap:anywhere; }
.ist-rechtstext .entry-content h2{ font-size:clamp(19px,2.1vw,24px);
  margin: clamp(30px,4vw,46px) 0 12px; }
.ist-rechtstext .entry-content p,
.ist-rechtstext .entry-content li{ color: var(--wp--preset--color--ocean-hell); }

/* Fuß */
.galini-footer a{ text-decoration:none; color:inherit; }
.galini-footer ul.is-style-none{ list-style:none; padding-left:0; margin-left:0; }
/* Tippziele mindestens 44 px (Geräteprüfung): Links der Fußzeile und Menüknopf am Handy */
.galini-footer li > a{ display:inline-flex; align-items:center; min-height:44px; min-width:44px; }
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close{ min-width:44px; min-height:44px; justify-content:center; }
.galini-footer a:hover{ text-decoration:underline; text-underline-offset:3px; }

@media (prefers-reduced-motion: reduce){ *{ transition:none !important; } }

@media print{
  .galini-header, .galini-footer, .wp-block-navigation{ display:none !important; }
  body{ background:#fff; color:#000; font-size:11pt; }
  a[href^="http"]::after{ content:" (" attr(href) ")"; font-size:9pt; }
}
