/*
Theme Name: weyou-2026
Theme URI: https://weyou.eu
Author: WEYOU GmbH
Description: Custom Block-Theme für weyou.eu – Smoke Black Editorial. Raster-System nach Template-Referenz (Full-Width, Haarlinien-Frames), Schwarz auf Weiß. 08/2026.
Version: 1.8.0
Requires at least: 6.9
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: weyou-2026
*/

/* ---------- Grundlagen ---------- */

html { -webkit-text-size-adjust: 100%; }
body { margin: 0; }

::selection { background: var(--wp--preset--color--accent); color: var(--wp--preset--color--ink); }
:focus-visible { outline: 2px solid var(--wp--preset--color--ink); outline-offset: 2px; }

:root {
  --wy-line: 1px solid rgba(39, 43, 51, 0.25);
  --wy-ink: #272B33;
  --wy-surface: #F4F4F5;
  --wy-pad: clamp(1.25rem, 4vw, 3rem);
}

/* Marker-Gelb: NUR für markierten Text */
.wy-marker, mark { background: linear-gradient(transparent 52%, var(--wp--preset--color--accent) 52%); color: inherit; padding: 0 0.1em; }

/* ---------- Header ---------- */

.wy-header { border-bottom: var(--wy-line); }
.wy-header .wp-block-site-logo img { height: 32px; width: auto; }
.wy-header .wp-block-navigation a { text-decoration: none; font-weight: 500; font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.06em; }
.wy-header .wp-block-navigation a:hover,
.wy-header .wp-block-navigation .current-menu-item > a { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 6px; }

/* ---------- Raster-System (Template-Referenz) ---------- */

.wy-shell { width: 100%; box-sizing: border-box; margin-left: auto; margin-right: auto; padding-left: clamp(1.25rem, 3.5vw, 4.5rem); padding-right: clamp(1.25rem, 3.5vw, 4.5rem); }
.wy-headrow { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-top: 1.1rem; padding-bottom: 1.1rem; }
.wy-footrow { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; padding-top: 2rem; padding-bottom: 2rem; }
.wy-sec { padding-top: clamp(3rem, 6vw, 5rem); padding-bottom: clamp(3rem, 6vw, 5rem); border-top: var(--wy-line); }
.wy-sec--open { border-top: none; }

.wy-sub { font-size: var(--wp--preset--font-size--large); font-weight: 300; line-height: 1.5; max-width: 34rem; }
.wy-small { font-size: var(--wp--preset--font-size--small); opacity: 0.8; }
.wy-measure { max-width: 42rem; }

/* Buttons (auch als reine Anker) */
.wy-btn, .wp-block-button__link.wp-element-button { display: inline-block; background: var(--wy-ink); color: #fff; padding: 0.85rem 1.5rem; text-decoration: none; font-weight: 500; border: 1px solid var(--wy-ink); }
.wy-btn:hover, .wp-block-button__link.wp-element-button:hover { background: #fff; color: var(--wy-ink); }
.wy-btn--ghost { background: transparent; color: var(--wy-ink); }
.wy-btn--ghost:hover { background: var(--wy-ink); color: #fff; }
.wy-btnrow { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 2rem; }

/* Textlink */
.wy-link { font-weight: 500; text-decoration: none; color: var(--wy-ink); border-bottom: 2px solid var(--wy-ink); padding-bottom: 2px; }
.wy-link:hover { border-bottom-width: 3px; }

/* Bild-Platzhalter (keine Bilder – MW) */
.wy-imgbox { background: var(--wy-surface); border: var(--wy-line); aspect-ratio: 4 / 3; width: 100%; max-height: 520px; }
.wy-imgbox--tall { aspect-ratio: auto; height: clamp(360px, 40vw, 640px); }
.wy-imgbox--wide { aspect-ratio: 16 / 9; max-height: 320px; }
.wy-imgbox--noframe { border: none; }

h1, h2, h3 { overflow-wrap: break-word; }
.wy-hero2 h1, .wy-pagehead h1 { hyphens: auto; }

/* Hero-Split */
.wy-hero2 { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.wy-hero2 h1 { margin: 0 0 1.25rem; }

/* Kopf-Sektion (Unterseiten: große H1 + Subline) */
.wy-pagehead h1 { margin: 0 0 1rem; }

/* Seiten-Label links / Inhalt rechts */
.wy-side { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.4fr); gap: clamp(2rem, 4vw, 4rem); }
.wy-side > h2 { margin: 0; }

/* Steps: Riesen-Ziffern, 3 Spalten */
.wy-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(2rem, 4vw, 3.5rem); }
.wy-step-num { font-size: clamp(2.8rem, 4.5vw, 4.9rem); font-weight: 700; line-height: 1; color: rgba(39, 43, 51, 0.18); margin: 0 0 0.75rem; }
.wy-step h3 { margin: 0 0 0.5rem; }
.wy-step p { margin: 0; }

/* Kachel-Raster mit Rahmen (2- und 3-spaltig) */
.wy-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: var(--wy-line); border-left: var(--wy-line); margin-top: 2.5rem; }
.wy-tiles--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.wy-tile { border-right: var(--wy-line); border-bottom: var(--wy-line); padding: clamp(1.5rem, 3vw, 2.25rem); display: flex; flex-direction: column; gap: 1rem; }
.wy-tile h3 { margin: 0; }
.wy-tile p { margin: 0; }
.wy-tile .wy-imgbox { border: var(--wy-line); margin-top: auto; }
.wy-tile .wy-link { align-self: flex-start; }

/* Zickzack 60/40 */
.wy-zz { display: grid; grid-template-columns: 3fr 2fr; border-top: var(--wy-line); }
.wy-zz:last-of-type { border-bottom: var(--wy-line); }
.wy-zz--flip { grid-template-columns: 2fr 3fr; }
.wy-zz-text { padding: clamp(2rem, 4vw, 3.5rem); }
.wy-zz-text h2, .wy-zz-text h3 { margin-top: 0; }
.wy-zz-media { border-left: var(--wy-line); background: var(--wy-surface); min-height: 280px; }
.wy-zz--flip .wy-zz-media { border-left: none; border-right: var(--wy-line); }

/* Titel-Text-Reihen */
.wy-row2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 1.5rem 3rem; border-top: var(--wy-line); padding: 1.75rem 0; }
.wy-row2 h3 { margin: 0; }
.wy-row2 p { margin: 0; }
.wy-rowset { margin-top: 2.5rem; border-bottom: var(--wy-line); }

/* Werte / 4-Spalter */
.wy-vals { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 3rem); margin-top: 2.5rem; }
.wy-val h3 { border-top: 2px solid var(--wy-ink); padding-top: 1rem; margin: 0 0 0.5rem; }
.wy-val p { margin: 0; }

/* Großzitat / Aphorismus */
blockquote.wy-aphorismus { border-left: 3px solid var(--wy-ink); margin: 3rem 0; padding: 0.35rem 0 0.35rem 1.5rem; }
blockquote.wy-aphorismus p { font-style: italic; font-size: clamp(1.35rem, 2vw, 1.7rem); font-weight: 400; line-height: 1.35; margin: 0; }
.wy-quote { max-width: 52rem; }
.wy-quote p { font-style: italic; font-size: clamp(1.35rem, 2vw, 1.7rem); line-height: 1.4; margin: 0 0 1rem; }

/* Logo-Band */
.wy-logoband { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.wy-logo { font-weight: 700; letter-spacing: 0.12em; color: rgba(39, 43, 51, 0.35); font-size: 0.9375rem; }

/* Karten (Impulse) */
.wy-cardmeta { font-size: var(--wp--preset--font-size--small); opacity: 0.7; margin: 0; }

/* CTA-Band (hell, gerahmt) */
.wy-ctaband { background: var(--wy-surface); }
.wy-cta-grid { display: grid; grid-template-columns: 1.25fr 1fr; gap: 3rem; align-items: start; }
.wy-cta-grid h2 { font-size: var(--wp--preset--font-size--xx-large); line-height: 1.05; margin: 0; }
.wy-cta-side { border-left: var(--wy-line); padding-left: 3rem; }
.wy-cta-side > :first-child { margin-top: 0; }

/* Formular (statisch, Muster) */
.wy-form label { display: block; font-weight: 500; margin-bottom: 0.35rem; }
.wy-form input, .wy-form textarea { width: 100%; box-sizing: border-box; border: var(--wy-line); background: #fff; padding: 0.85rem 1rem; font: inherit; color: var(--wy-ink); margin-bottom: 1.25rem; border-radius: 0; }
.wy-form input:focus, .wy-form textarea:focus { outline: 2px solid var(--wy-ink); outline-offset: 0; }

/* ---------- Bestand (Marketing-Seite v1) ---------- */

.wy-hero { padding-top: clamp(2.5rem, 5vw, 4.5rem); padding-bottom: clamp(2.5rem, 5vw, 4.5rem); }
.wy-hero h1 { margin: 0; }
.wy-subline { font-size: var(--wp--preset--font-size--large); font-weight: 300; line-height: 1.5; margin-top: 1.5rem; }
.wy-hero .wp-block-buttons { margin-top: 2rem; }
.wy-ph { background: var(--wy-surface); border: var(--wy-line); min-height: clamp(240px, 30vw, 400px); height: 100%; }
.wy-meta { font-size: var(--wp--preset--font-size--large); font-weight: 300; line-height: 1.55; }
.wy-section { padding-top: clamp(3.5rem, 7vw, 5.5rem); padding-bottom: clamp(3.5rem, 7vw, 5.5rem); }
.wy-nums { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.75rem 3.5rem; margin-top: 2.5rem; }
.wy-num { font-size: clamp(2.8rem, 4.5vw, 4.9rem); font-weight: 700; line-height: 1; color: rgba(39, 43, 51, 0.18); margin: 0 0 0.75rem; }
.wy-nums p { margin: 0; }
.wy-nums .wp-block-group { margin: 0; }
.wy-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 1.5rem 3rem; border-top: var(--wy-line); padding-top: 1.75rem; margin-top: 2.5rem; }
.wy-row > * { margin: 0; }
.wy-row h3 { margin: 0; }
.wy-row .wy-row-body > :first-child { margin-top: 0; }
.wy-row .wy-row-body > * { margin-top: 1rem; }
.wy-transition { font-style: italic; color: rgba(39, 43, 51, 0.75); }
.wy-deep h2 { border-top: var(--wy-line); padding-top: 2.25rem; margin-top: 3.5rem; }
.wy-prose h3 { margin-top: 2rem; }
.wy-contact-grid { display: grid; grid-template-columns: 1.25fr 1fr; gap: 3rem; align-items: start; }
.wy-contact-grid > * { margin: 0; }
.wy-contact h2 { font-size: var(--wp--preset--font-size--xx-large); line-height: 1.05; margin: 0; }
.wy-contact a { color: var(--wp--preset--color--base); }
.wy-contact-side { border-left: 1px solid rgba(255, 255, 255, 0.25); padding-left: 3rem; }
.wy-contact-side > :first-child { margin-top: 0; }
.wy-contact .wp-block-button__link { background: var(--wp--preset--color--base); color: var(--wp--preset--color--ink); border-color: var(--wp--preset--color--base); }
.wy-contact .wp-block-button__link:hover { background: transparent; color: var(--wp--preset--color--base); border-color: var(--wp--preset--color--base); }
.wy-contact-meta { font-size: var(--wp--preset--font-size--small); opacity: 0.85; }

/* ---------- Footer ---------- */

.wy-footer { border-top: var(--wy-line); font-size: var(--wp--preset--font-size--small); }
.wy-footer a { text-decoration: none; }
.wy-footer a:hover { text-decoration: underline; }

/* ---------- Muster-Repository (Template 1:1, invertiert) ---------- */

.wy-sec { position: relative; }
.wy-tag { position: absolute; top: 0.75rem; right: clamp(1.25rem, 3.5vw, 4.5rem); font-size: 0.75rem; letter-spacing: 0.1em; color: rgba(39, 43, 51, 0.35); font-weight: 500; }

/* A3: Service-Kachel mit Bild rechts */
.wy-tile2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); border-right: var(--wy-line); border-bottom: var(--wy-line); }
.wy-tile2-info { padding: clamp(1.5rem, 3vw, 2.25rem); display: flex; flex-direction: column; }
.wy-tile2-info h3 { margin: 0 0 1rem; }
.wy-tile2-info .wy-link { margin-top: auto; align-self: flex-start; }
.wy-tile2 .wy-imgbox { border: none; border-left: var(--wy-line); aspect-ratio: auto; height: 100%; min-height: 260px; max-height: none; }

/* Fette Lead-Zeile (A4/C2) */
.wy-lead-strong { font-weight: 700; font-size: var(--wp--preset--font-size--large); line-height: 1.3; margin: 0 0 1.25rem; }
.wy-caption { font-size: var(--wp--preset--font-size--small); opacity: 0.7; margin-top: 0.75rem; max-width: 28rem; }

/* A6: Testimonial */
.wy-testi { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 2.5rem; align-items: start; max-width: 64rem; }
.wy-avatar { width: 96px; height: 96px; border-radius: 50%; background: var(--wy-surface); border: var(--wy-line); }
.wy-testi-quote > p:first-child { font-size: var(--wp--preset--font-size--large); line-height: 1.5; margin: 0 0 1.25rem; font-style: italic; }
.wy-testi-nav { display: flex; gap: 2rem; margin-top: 1.5rem; }

/* A7: Logo-Band (tonale Invertierung: graue Leiste) */
.wy-band { background: var(--wy-surface); border-top: var(--wy-line); border-bottom: var(--wy-line); }
.wy-band .wy-shell { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; padding-top: 1.75rem; padding-bottom: 1.75rem; }

/* A9/B8/C5/D3: CTA-Band-Split */
.wy-cta2 { display: grid; grid-template-columns: 1.5fr 1fr; }
.wy-cta2-head { padding-right: clamp(2rem, 4vw, 3.5rem); }
.wy-cta2-head h2 { font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1.05; margin: 0; }
.wy-cta2-side { border-left: var(--wy-line); padding-left: clamp(2rem, 4vw, 3.5rem); }
.wy-cta2-side > :first-child { margin-top: 0; }

/* A10/E3: 4-Spalten-Footer */
.wy-foot4 { display: grid; grid-template-columns: 1.2fr 1fr 1.2fr 1.6fr; gap: clamp(2rem, 4vw, 4rem); padding-top: 3rem; padding-bottom: 2.5rem; }
.wy-foot4 h4 { margin: 0 0 1.25rem; font-size: 0.9375rem; font-weight: 700; }
.wy-foot4 ul { list-style: none; margin: 0; padding: 0; }
.wy-foot4 li { margin-bottom: 0.6rem; font-size: 0.9375rem; }
.wy-foot4 a { text-decoration: none; }
.wy-foot4 a:hover { text-decoration: underline; }
.wy-newsrow { display: flex; }
.wy-newsrow input { flex: 1; min-width: 0; border: var(--wy-line); padding: 0.8rem 1rem; font: inherit; border-radius: 0; }
.wy-footbar { display: flex; justify-content: space-between; gap: 2rem; border-top: var(--wy-line); padding-top: 1.25rem; padding-bottom: 2rem; font-size: 0.875rem; flex-wrap: wrap; }

/* E2: Formular-Raster + Karte */
.wy-consplit { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 4vw, 4rem); align-items: stretch; }
.wy-form2 { border: var(--wy-line); }
.wy-form2 .wy-2col { display: grid; grid-template-columns: 1fr 1fr; }
.wy-form2 input, .wy-form2 textarea { border: none; border-bottom: var(--wy-line); background: transparent; padding: 1rem; font: inherit; width: 100%; box-sizing: border-box; margin: 0; color: var(--wy-ink); border-radius: 0; }
.wy-form2 .wy-2col input:first-child { border-right: var(--wy-line); }
.wy-form2 textarea { border-bottom: none; min-height: 300px; resize: vertical; }
.wy-form-actions { display: flex; justify-content: flex-end; margin-top: 1rem; }
.wy-contactrow { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; margin-top: 2.5rem; }
.wy-map { background: var(--wy-surface); border: var(--wy-line); min-height: 520px; height: 100%; }

/* ---------- Muster-Quernavigation ---------- */

.wy-musterbar { background: var(--wy-surface); border-bottom: var(--wy-line); font-size: 0.8125rem; }
.wy-musterbar .wy-shell { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; padding-top: 0.55rem; padding-bottom: 0.55rem; }
.wy-musterbar-label { color: rgba(39, 43, 51, 0.45); letter-spacing: 0.06em; text-transform: uppercase; font-weight: 500; }
.wy-mlink { text-decoration: none; font-weight: 500; color: rgba(39, 43, 51, 0.7); }
.wy-mlink:hover { color: var(--wy-ink); text-decoration: underline; text-underline-offset: 4px; }
.page-id-2616 .wy-mlink-a, .page-id-2617 .wy-mlink-b, .page-id-2618 .wy-mlink-c, .page-id-2619 .wy-mlink-d, .page-id-2620 .wy-mlink-e, .page-id-2626 .wy-mlink-s { color: var(--wy-ink); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }

/* ---------- Styleguide-Seite ---------- */

.wy-spec { font-size: 0.8125rem; color: rgba(39, 43, 51, 0.45); margin: 0.5rem 0 2.25rem; letter-spacing: 0.02em; }
.wy-swatches { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; margin-top: 2rem; }
.wy-swatch { border: var(--wy-line); }
.wy-swatch-color { height: 110px; }
.wy-swatch-info { padding: 0.9rem 1rem; font-size: 0.9375rem; }
.wy-swatch-info strong { display: block; }
.wy-spacebar { background: var(--wy-surface); border: var(--wy-line); height: 1.25rem; margin: 0.4rem 0 0.2rem; }
.wy-linesample { border-top: var(--wy-line); margin: 1rem 0 0.25rem; }

/* ---------- Echte Seiten (Phase 1, 09/2026) ---------- */

/* Sektions-Kürzel: nur auf Musterseiten sichtbar, auf echten Seiten als Arbeitsreferenz im Markup */
.wy-tag { display: none; }
.page-template-page-muster .wy-tag { display: block; }

/* Meta-Einstieg als einzelner Zickzack: Rahmen des Zickzacks ersetzt die Sektionslinien */
.wy-sec--flush { padding-top: 0; padding-bottom: 0; border-top: none; }
.wy-sec--flush .wy-zz { border-top: var(--wy-line); border-bottom: var(--wy-line); }
.wy-sec--flush + .wy-sec { border-top: none; }
.wy-sec--flush + .wy-sec--chain .wy-zz:first-of-type { border-top: none; } /* Kette direkt nach Meta-Einstieg: eine Linie */

/* Kurz-Ebene: vier Pain-Points als Ziffern-Spalten */
.wy-steps--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 2.5rem); }

/* Tiefen-Strecke: Zickzack-Kette (Überleitungszeile gestrichen, MW 06.09.) */
.wy-sec--chain { padding-top: 0; padding-bottom: 0; border-top: none; } /* kein Weißraum zum Kontakt-Band (MW 06.09.) */
@media (min-width: 782px) { .wy-zzchain .wy-zz-media { min-height: clamp(420px, 48vw, 720px); } } /* Mindesthöhe Bildboxen = Durchschnitt der Kapitel-Boxen (MW 06.09.) */
.wy-sec--chain .wy-zz:last-of-type { border-bottom: none; } /* keine Doppellinie zum Kontakt-Band (MW 06.09.) */

/* Kein Block-Gap zwischen Template-Blöcken (Header/Main/Kontakt-Band/Footer stoßen aneinander, MW 06.09.) */
.wp-site-blocks > * + * { margin-block-start: 0; }
.is-layout-flow > .wy-sec, .is-layout-flow > .wy-band { margin-block-start: 0; } /* Sektionen im Inhaltsblock ohne Block-Gap */
.wy-zz-text blockquote.wy-aphorismus { margin: 2rem 0 0; }
.wy-zz-text p:last-child { margin-bottom: 0; }

/* Listen und Unterfragen in Zickzack-Texten (DACH-PL-Angebot, Leistungs-Übersicht) */
.wy-zz-text ul { margin: 0 0 1.25rem; padding-left: 1.2rem; max-width: 42rem; }
.wy-zz-text li { margin-bottom: 0.6rem; }
.wy-subq { font-style: italic; font-weight: 300; font-size: var(--wp--preset--font-size--large); margin: -0.5rem 0 1.25rem; max-width: 42rem; }
/* Schaubild-Fläche (TCDC) */
.wy-imgbox--schaubild { aspect-ratio: 16 / 9; max-height: 640px; }

/* Kontaktseite: Fluent Forms im E2-Raster (Form links, Kontaktdaten rechts) */
.wy-consplit > div > h3:first-child { margin-top: 0; }
.wy-ffwrap .frm-fluent-form > fieldset { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.25rem; border: 0; padding: 0; margin: 0; min-width: 0; }
.wy-ffwrap .wy-ff-full, .wy-ffwrap .ff_submit_btn_wrapper { grid-column: 1 / -1; }
.wy-ffwrap .ff-el-group { margin-bottom: 1.25rem; }
.wy-ffwrap .ff-el-input--label label { font-weight: 500; font-size: var(--wp--preset--font-size--small); margin-bottom: 0.35rem; }
.wy-ffwrap .ff-el-form-control { width: 100%; box-sizing: border-box; border: var(--wy-line); border-radius: 0; background: #fff; padding: 0.85rem 1rem; font: inherit; color: var(--wy-ink); box-shadow: none; }
.wy-ffwrap .ff-el-form-control:focus { outline: 2px solid var(--wy-ink); outline-offset: 0; border-color: var(--wy-ink); box-shadow: none; }
.wy-ffwrap textarea.ff-el-form-control { min-height: 200px; resize: vertical; }
.wy-ffwrap form.frm-fluent-form .ff-btn-submit.ff_btn_style { background: var(--wy-ink); color: #fff; border: 1px solid var(--wy-ink); border-radius: 0; padding: 0.85rem 1.5rem; font: inherit; font-weight: 500; min-height: 0; }
.wy-ffwrap form.frm-fluent-form .ff-btn-submit.ff_btn_style:hover { background: #fff; color: var(--wy-ink); }
.wy-ffwrap .ff-el-tc { font-size: var(--wp--preset--font-size--small); }
.wy-ffwrap .ff-message-success { border: var(--wy-line); background: var(--wy-surface); padding: 1.5rem; }
.wy-conside .wy-measure { max-width: 34rem; }
@media (max-width: 781px) { .wy-ffwrap .frm-fluent-form > fieldset { grid-template-columns: 1fr; } }

/* H1 = Leistungsname (SEO), Frage darunter in H1-Optik (MW 06.09.) */
.wy-pagehead .wy-kicker { font-size: var(--wp--preset--font-size--x-large); font-weight: 400; text-transform: uppercase; letter-spacing: 0.04em; line-height: 1.1; margin: 0 0 1rem; } /* Styleguide S1: Seitenname – H2-Größe, Regular, Versalien */
.wy-pagehead .wy-h1q { font-size: var(--wp--preset--font-size--xx-large); font-weight: 700; line-height: 1.2; letter-spacing: -0.005em; margin: 0 0 1rem; hyphens: auto; overflow-wrap: break-word; }

/* Buchungstool im Kontakt-Band */
.wy-booking { margin-top: 2.5rem; border: var(--wy-line); background: #fff; }
.wy-booking iframe { display: block; width: 100%; height: 750px; border: 0; }

/* Header: Dropdown Leistungen */
.wy-header .wp-block-navigation__submenu-container { background: #fff; border: var(--wy-line); padding: 0.5rem 0; min-width: 16rem; box-shadow: none; }
.wy-header .wp-block-navigation__submenu-container a { text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.8125rem; padding: 0.55rem 1rem; white-space: nowrap; }
.wy-header .wp-block-navigation__submenu-container .current-menu-item > a, .wy-header .wp-block-navigation__submenu-container a:hover { text-decoration: underline; text-underline-offset: 4px; }

/* Home: Kachel-Unterzeile + letzte Sektion vor dem Kontakt-Band */
.wy-tile2-info .wy-subq { margin: -0.5rem 0 1.25rem; }
.wy-hero2 .wy-btnrow { margin-top: 2rem; }

/* Kontakt-Block = A9 (graues Band, Split) */
.wy-ctaband .wy-cta2-side .wp-block-button__link { background: transparent; color: var(--wy-ink); border: 1px solid var(--wy-ink); }
.wy-ctaband .wy-cta2-side .wp-block-button__link:hover { background: var(--wy-ink); color: #fff; }
.wy-ctaband .wp-block-buttons { margin: 1.5rem 0; }
.wy-ctaband .wy-btnrow { margin-bottom: 1.25rem; } /* Abstand unter dem Termin-Button = Abstand darüber (MW 06.09.) */
.wy-ctaband .wy-contact-meta { font-size: var(--wp--preset--font-size--small); opacity: 0.85; margin: 0; }
.wy-ctaband .wy-contact-meta a { text-decoration: none; border-bottom: 1px solid rgba(39, 43, 51, 0.4); }

/* Footer = A10 (Spalten: Logo · Kontakt · Leistungen · Rechtliches – MW 06.09.) */
.wy-footer .wy-foot4 { grid-template-columns: 1.3fr 1.1fr 1.1fr 1fr; }
.wy-footer .wy-foot4 p { margin: 0 0 0.6rem; font-size: 0.9375rem; }
.wy-footer .wy-footlogo { display: inline-block; margin: -0.35rem 0 1rem; }
.wy-footer .wy-footlogo img { height: 40px; width: auto; display: block; }
/* Kontakt-Block: Überschrift in H2-Größe der Kapitel (MW 06.09.) */
.wy-ctaband .wy-cta2-head h2 { font-size: var(--wp--preset--font-size--x-large); line-height: 1.1; }
.wy-footer .wy-footbar a { text-decoration: none; }

/* ---------- Responsive ---------- */

@media (max-width: 1024px) {
  .wy-steps--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wy-tiles--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wy-vals { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 781px) {
  .wy-hero2, .wy-side, .wy-steps, .wy-zz, .wy-zz--flip, .wy-row2, .wy-cta-grid, .wy-contact-grid, .wy-nums { grid-template-columns: 1fr; }
  .wy-tiles, .wy-tiles--3 { grid-template-columns: 1fr; }
  .wy-vals { grid-template-columns: 1fr; }
  .wy-zz-media { border-left: none; border-top: var(--wy-line); min-height: 220px; }
  .wy-zz--flip .wy-zz-media { border-right: none; }
  .wy-zz-media { order: 2; }
  .wy-zz-text { padding-left: 0; padding-right: 0; }
  .wy-zz-text h2 { margin-top: 0; }
  .wy-cta-side { border-left: none; padding-left: 0; border-top: var(--wy-line); padding-top: 2rem; }
  .wy-contact-side { border-left: none; padding-left: 0; border-top: 1px solid rgba(255,255,255,0.25); padding-top: 2rem; }
}

@media (max-width: 781px) {
  .wy-tile2, .wy-cta2, .wy-consplit, .wy-testi { grid-template-columns: 1fr; }
  .wy-tile2 .wy-imgbox { border-left: none; border-top: var(--wy-line); }
  .wy-cta2-side { border-left: none; padding-left: 0; border-top: var(--wy-line); padding-top: 2rem; margin-top: 2rem; }
  .wy-foot4 { grid-template-columns: 1fr; }
  .wy-form2 .wy-2col { grid-template-columns: 1fr; }
  .wy-form2 .wy-2col input:first-child { border-right: none; }
  .wy-contactrow { grid-template-columns: 1fr; }
  .wy-map { min-height: 320px; }
}

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

/* 1.5.7 – Textlinks auf /tcdc/ (Beschluss 06.09.: Textlinks + Footer statt Menüpunkt) */
.wy-textlink { color: inherit; text-decoration: none; border-bottom: 1px solid rgba(39, 43, 51, 0.4); transition: border-color .15s; }
.wy-textlink:hover { border-bottom-color: currentColor; }
p .wy-textlink { font-style: italic; }
.wy-row2 h3 .wy-textlink { border-bottom-width: 2px; }
.wy-foot4 .wy-foot-sep { margin-top: 0.75rem; }

/* 1.5.9 – Rowset neben Seiten-Label (Home H5, DACH-PL): erste Reihe bündig mit dem H2, keine Linie darüber (MW 06.09.) */
.wy-side > .wy-rowset, .wy-side > div > .wy-rowset:first-child { margin-top: 0; }
.wy-side > .wy-rowset > .wy-row2:first-child, .wy-side > div > .wy-rowset:first-child > .wy-row2:first-child { border-top: none; padding-top: 0; }
@media (max-width: 781px) { .wy-side > .wy-rowset, .wy-side > div > .wy-rowset:first-child { margin-top: 1.5rem; } }

/* 1.6.1 – Rechtstexte (/impressum/: Sammelseite mit Ankern; eRecht24-Shortcodes) */
.wy-jumpnav { display: flex; flex-wrap: wrap; gap: 0.5rem 1.75rem; margin-top: 1.75rem; }
.wy-jumpnav a { font-size: 0.875rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.06em; text-decoration: none; color: inherit; border-bottom: 1px solid rgba(39, 43, 51, 0.4); padding-bottom: 2px; }
.wy-jumpnav a:hover { border-bottom-color: currentColor; }
.wy-legal-sec { scroll-margin-top: 1.5rem; }
.wy-legal { max-width: 42rem; font-size: 0.9375rem; line-height: 1.6; }
.wy-legal h1 { display: none; }
.wy-legal h2, .wy-legal h3, .wy-legal h4, .wy-legal h5 { font-weight: 700; line-height: 1.25; margin: 2rem 0 0.5rem; }
.wy-legal h2 { font-size: 1.25rem; }
.wy-legal h3 { font-size: 1.0625rem; }
.wy-legal h4 { font-size: 0.9375rem; }
.wy-legal h5 { font-size: 0.9375rem; font-weight: 500; font-style: italic; }
.wy-legal > .erecht24-legal-texts > :first-child { margin-top: 0; }
.wy-legal p, .wy-legal ul, .wy-legal ol { margin: 0 0 1rem; }
.wy-legal ul, .wy-legal ol { padding-left: 1.25rem; }
.wy-legal a { color: inherit; text-decoration: none; border-bottom: 1px solid rgba(39, 43, 51, 0.4); overflow-wrap: anywhere; }
.wy-legal a:hover { border-bottom-color: currentColor; }
.wy-legal .erecht24-legal-texts + .erecht24-legal-texts { margin-top: 2.5rem; }
/* 1.6.2 – Meta-Einstieg: Bildbox als Zeichen-Box (großes » in Step-Grau) – MW-Idee 06.09., Test auf Marketing */
.wy-zz-media--mark { display: flex; align-items: center; justify-content: center; }
.wy-zz-media--mark > span { font-size: clamp(9rem, 22vw, 20rem); font-weight: 700; line-height: 1; color: rgba(39, 43, 51, 0.18); transform: translateY(-0.06em); user-select: none; }
@media (max-width: 781px) { .wy-zz-media--mark { min-height: 160px; } .wy-zz-media--mark > span { font-size: 7rem; } }
/* 1.6.3 – Poster-Frames (Standbilder) in allen Bildflächen – Medien-Standard Stufe 1 (ohne Clip), 07.09. */
.wy-imgbox, .wy-zz-media { position: relative; overflow: hidden; }
.wy-media-poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; display: block; }
/* 1.6.4 – MW 07.09.: Motive ganz zeigen (fit statt cover); Flächen mit Poster auf Weiß */
.wy-imgbox:has(.wy-media-poster), .wy-zz-media:has(.wy-media-poster), .wy-imgbox:has(.wy-media-video), .wy-zz-media:has(.wy-media-video) { background: #fff; }
.wy-imgbox .wy-media-video, .wy-zz-media .wy-media-video { background: #fff; }
.wy-imgbox .wy-media-video, .wy-zz-media .wy-media-video { object-fit: contain !important; }
.wy-zz-media--mark .wy-media-poster { display: none; }

/* 1.6.6 – MW 07.09.: Meta-Einstieg-Fläche (wy-zz--single) auf allen Seiten weiß statt grau */
.wy-zz--single .wy-zz-media { background: #fff; }

/* 1.6.7 – MW 07.09.: Home-Kacheln – Leistungsnamen in Versalien Bold */
.wy-tile2-info h3 { text-transform: uppercase; font-weight: 700; letter-spacing: 0.04em; }

/* 1.6.8 – MW 07.09.: Home – weiterführende Links als Ghost-Buttons (Kacheln + Meta-Einstieg) */
.wy-tile2-info .wy-btn { margin-top: auto; align-self: flex-start; }
.wy-zz--single .wy-btnrow { margin-top: 1.5rem; }

/* 1.6.9 – MW 07.09.: Home-Kacheln – Bildbox war content-box (100 % + 1 px Rand) und überdeckte die rechte Kachel-Linie; jetzt border-box */
.wy-imgbox, .wy-zz-media { box-sizing: border-box; }

/* 1.7.1 – MW 07.09.: zurück auf contain; alle Poster-Frames auf 70 % zentriert (inset 15 %); Ausnahme Home-Hero bleibt 100 %. Raketen-Clip unverändert (Video, inline). Ersetzt den 1.7.0-Test (cover). Rückbau: Block entfernen, Version 1.6.9 */
.wy-imgbox .wy-media-poster, .wy-zz-media .wy-media-poster { object-fit: contain; inset: 15%; width: 70%; height: 70%; }
body.home .wy-imgbox--tall .wy-media-poster { inset: 0; width: 100%; height: 100%; }

/* 1.7.2 – MW 07.09.: Fragezeichen (Erlauben-Frage, Nr. 21) auf allen Seiten auf 50 % (inset 25 %) */
.wy-imgbox .wy-media-poster[src*="21_question-mark"], .wy-zz-media .wy-media-poster[src*="21_question-mark"] { inset: 25%; width: 50%; height: 50%; }

/* 1.7.3 – MW 07.09.: Europakarte (Nr. 08, Home-Kachel, Leistungen-Glied, DACH-PL D4.1) rechts ausgerichtet statt zentriert – 70 % Höhe bleibt, bündig am rechten Boxrand */
.wy-imgbox .wy-media-poster[src*="08_europe-map"], .wy-zz-media .wy-media-poster[src*="08_europe-map"] { inset: 15% 0 15% auto; object-position: right center; }

/* 1.7.4 – MW 07.09.: Meta-Pfeil Klar (Nr. 16, Linien bündeln sich) links ausgerichtet statt zentriert – 70 % bleibt, bündig am linken Boxrand */
.wy-imgbox .wy-media-poster[src*="16_arrow-bundle"], .wy-zz-media .wy-media-poster[src*="16_arrow-bundle"] { inset: 15% auto 15% 0; object-position: left center; }

/* 1.7.5 – MW 07.09.: Rakete (16:9-Standbild, Home-Kachel + Leistungen-Glied) optisch auf das Maß der Hochformat-Motive gebracht – Breite 60 % statt 70 %, da Querformat sonst die volle 70-%-Breite füllt und größer wirkt */
.wy-imgbox .wy-media-poster[src*="01_rocket_frame"], .wy-zz-media .wy-media-poster[src*="01_rocket_frame"] { inset: 15% 20%; width: 60%; height: 70%; }

/* 1.7.6 – MW 07.09.: Pfeil-Motive der Meta-Einstiege (16, 22, 28, 34, 47, 54, 59, 66) und Kompass (30) auf 100 % (inset 0) statt 70 %; hebt für Nr. 16 die 1.7.4-Linksausrichtung auf (bei 3:4-Bild in 3:4-Box ohnehin randbündig) */
.wy-imgbox .wy-media-poster[src*="16_arrow-bundle"],
.wy-zz-media .wy-media-poster[src*="16_arrow-bundle"],
.wy-imgbox .wy-media-poster[src*="22_arrow-trail"],
.wy-zz-media .wy-media-poster[src*="22_arrow-trail"],
.wy-imgbox .wy-media-poster[src*="30_compass"],
.wy-zz-media .wy-media-poster[src*="30_compass"],
.wy-imgbox .wy-media-poster[src*="28_arrow-steps"],
.wy-zz-media .wy-media-poster[src*="28_arrow-steps"],
.wy-imgbox .wy-media-poster[src*="34_arrow-breakthrough"],
.wy-zz-media .wy-media-poster[src*="34_arrow-breakthrough"],
.wy-imgbox .wy-media-poster[src*="47_arrow-pair"],
.wy-zz-media .wy-media-poster[src*="47_arrow-pair"],
.wy-imgbox .wy-media-poster[src*="54_arrow-group"],
.wy-zz-media .wy-media-poster[src*="54_arrow-group"],
.wy-imgbox .wy-media-poster[src*="66_arrow-target"],
.wy-zz-media .wy-media-poster[src*="66_arrow-target"],
.wy-imgbox .wy-media-poster[src*="59_arrow-arc"],
.wy-zz-media .wy-media-poster[src*="59_arrow-arc"] { inset: 0; width: 100%; height: 100%; object-position: center; }

/* 1.7.7 – MW 07.09.: Spion (Nr. 71) auf cover statt contain – füllt die Box vollständig (100 %, inset 0), Randbereiche werden beschnitten */
.wy-imgbox .wy-media-poster[src*="71_spy"], .wy-zz-media .wy-media-poster[src*="71_spy"] { object-fit: cover; inset: 0; width: 100%; height: 100%; object-position: center; }


/* ---------- Mobile-Fixes 07.09. (MW): Footer stapeln, Overlay-Menü Randabstand ---------- */
@media (max-width: 1024px) {
  .wy-footer .wy-foot4 { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 781px) {
  .wy-footer .wy-foot4 { grid-template-columns: 1fr; gap: 2rem; }
  .wy-footer .wy-foot4 h4 { margin-bottom: 0.75rem; }
  .wy-footer .wy-foot4 > div { min-width: 0; }
  .wy-footbar { gap: 1rem; padding-bottom: 5.5rem; } /* Platz für das fixe CCM19-Cookie-Icon unten links */
  .wy-footer, .wy-footer .wy-shell { overflow-x: hidden; }
  /* Overlay-Menü: WP-Padding hängt an --wp--style--root--padding-* (im Theme nicht gesetzt) → eigener Innenabstand wie .wy-shell */
  .wy-header .wp-block-navigation__responsive-container.is-menu-open { padding: 1.25rem clamp(1.25rem, 3.5vw, 4.5rem) 2rem; }
  .wy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container a { white-space: normal; }
}
