/*
 Theme Name:   Woodmart Child
 Description:  Woodmart Child Theme
 Author:       XTemos
 Author URI:   http://xtemos.com
 Template:     woodmart
 Version:      1.0.1
 Text Domain:  woodmart
*/

/* ==========================================================================
   WoodMart-Migration (20.08.2026) — Layout-Beruhigung der konvertierten
   Seiten. WARUM hier statt Theme-Options-CSS: Datei ist versionierbar,
   überlebt Theme-Updates und ist der eine Ort für globale Anpassungen.
   ========================================================================== */

/* Kartenreihen (3+ Spalten): Bilder einheitlich hoch und zentriert,
   damit Gerätekarten ruhig in einer Linie stehen */
.wp-block-columns:has(> .wp-block-column:nth-child(3)) .wp-block-image img {
    max-height: 260px;
    width: auto;
    object-fit: contain;
}

/* Bilder in Spalten generell zentriert und in der Höhe begrenzt —
   verhindert, dass einzelne Produktfotos das Layout sprengen */
.wp-block-column .wp-block-image,
.wp-block-column .wp-block-gallery {
    text-align: center;
}
.wp-block-column .wp-block-image img {
    max-height: 480px;
    width: auto;
    margin-inline: auto;
}

/* Freistehende Content-Bilder nie höher als ~60 % des Viewports */
.wp-block-image img {
    max-height: min(60vh, 620px);
    width: auto;
}

/* Galerie-Grids: einheitlicher Beschnitt für ruhige Rasterkanten */
.wp-block-gallery.is-cropped .wp-block-image img {
    aspect-ratio: 4 / 3;
    object-fit: cover;
    max-height: none;
}

/* Tabellen: volle Breite, luftige Zellen, horizontal scrollbar auf Mobil */
.wp-block-table {
    overflow-x: auto;
}
.wp-block-table table {
    width: 100%;
}
.wp-block-table td,
.wp-block-table th {
    padding: 10px 14px;
    vertical-align: top;
}

/* ==========================================================================
   Vollbreite & Footer-Anschluss (Adrian 20.08.: „Banner immer volle Breite
   und bündig mit Footer")
   WoodMart begrenzt den Content auf 1400px und kennt kein full-bleed für
   alignfull — hier nachgerüstet. overflow-x wird vom Seiten-Wrapper geclippt.
   ========================================================================== */
.entry-content .alignfull {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}
/* Endet eine Seite mit einem vollbreiten Banner/Cover, schließt es bündig
   mit dem Footer ab (40px-Wrapper-Padding kompensieren) */
.wd-content-layout:has(.entry-content > .alignfull:last-child) {
    padding-bottom: 0;
}
.entry-content > .alignfull:last-child { margin-bottom: 0; }
.entry-content > .alignfull:last-child .wp-block-cover,
.entry-content > .alignfull:last-child.wp-block-cover { border-radius: 0; }

/* ==========================================================================
   Slideshow (Ersatz für Avada-Karussell): wischbar, Pfeile, Unterschriften
   ========================================================================== */
.galuft-slider { position: relative; }
.galuft-slides {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    border-radius: 12px;
}
.galuft-slides::-webkit-scrollbar { display: none; }
.galuft-slide {
    flex: 0 0 100%;
    scroll-snap-align: center;
    margin: 0;
    text-align: center;
}
.galuft-slide img {
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    border-radius: 12px;
    max-height: 520px;
}
.galuft-slide figcaption { padding: 12px 10px 0; line-height: 1.45; }
.galuft-slide figcaption strong { display: block; font-weight: 600; }
.galuft-slide figcaption span { display: block; font-size: 0.88em; color: #6a6f76; margin-top: 2px; }
.galuft-slider-pfeil {
    position: absolute;
    top: 40%;
    transform: translateY(-50%);
    width: 42px; height: 42px;
    border-radius: 50%;
    border: none;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 1px 6px rgba(0, 0, 0, 0.22);
    font-size: 24px; line-height: 1;
    cursor: pointer;
    color: #005c6a;
    z-index: 2;
    transition: background 0.15s ease;
}
.galuft-slider-pfeil.links { left: 12px; }
.galuft-slider-pfeil.rechts { right: 12px; }
.galuft-slider-pfeil:hover { background: #fff; }

/* Beitrags-Grids (latest-posts): einheitliche Bildgröße, klickbar, Karten-Look
   (Adrian: „gleiche Größe alle Bilder, verlinkt") */
.wp-block-latest-posts.is-grid li { margin-bottom: 24px; }
.wp-block-latest-posts .wp-block-latest-posts__featured-image img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 10px;
    max-height: none;
}
.wp-block-latest-posts.is-grid li > a {
    font-weight: 600;
    display: block;
    margin-top: 8px;
}

/* ==========================================================================
   Woo-Shortcode-Grids ([products], [product_categories]): WoodMart stylt nur
   seine eigenen Grids — die klassischen Shortcode-Ausgaben (Konverter +
   Shop-Landing) hier als sauberes, responsives Karten-Raster.
   ========================================================================== */
/* WoodMart rendert Woo-Shortcodes als eigenes wd-grid, setzt aber inline
   --wd-col-*:1 (Spaltenzahl kommt beim klassischen Shortcode nicht durch).
   NUR im Shortcode-Kontext übersteuern: .woocommerce.columns-N existiert
   ausschließlich um Shortcode-Ausgaben — NIE das Shop-Archiv anfassen
   (Adrians Fund 21.08.: Archiv-Grid war zerschossen). */
.entry-content .woocommerce.columns-4 .wd-products,
.entry-content .woocommerce.columns-5 .wd-products {
    --wd-col-lg: 4 !important;
    --wd-col-md: 3 !important;
    --wd-col-sm: 2 !important;
}
.entry-content .woocommerce.columns-2 .wd-products { --wd-col-lg: 2 !important; --wd-col-md: 2 !important; --wd-col-sm: 1 !important; }
.entry-content .woocommerce.columns-3 .wd-products { --wd-col-lg: 3 !important; --wd-col-md: 3 !important; --wd-col-sm: 2 !important; }

/* Formulare (CF7): zentriert mit angenehmer Lesebreite statt linksbündiger
   Vollbreite (Adrian 21.08., /kontakt/) */
.entry-content .wpcf7 {
    max-width: 860px;
    margin-inline: auto;
}
.entry-content .wpcf7 input[type="text"],
.entry-content .wpcf7 input[type="email"],
.entry-content .wpcf7 input[type="tel"],
.entry-content .wpcf7 textarea,
.entry-content .wpcf7 select {
    width: 100%;
}

/* ==========================================================================
   Kategorien-Menü: Line-Icons je Hauptkategorie (Adrian 21.08., Punkt 1 —
   Vorbild WoodMart-Demo „Browse Categories"). Icons liegen als SVG neben
   dieser Datei; mask + currentColor macht sie in jeder Textfarbe scharf.
   Klassen (gicon gicon-…) stehen an den Menü-Items (kategorien_menue_bauen.py).
   ========================================================================== */
.wd-dropdown-cats li.gicon > a::before,
.wd-nav-vertical li.gicon > a::before,
li.gicon > a::before {
    content: "";
    display: inline-block;
    width: 21px;
    height: 21px;
    margin-right: 12px;
    vertical-align: -5px;
    background-color: currentColor;
    -webkit-mask: var(--gicon) no-repeat center / contain;
    mask: var(--gicon) no-repeat center / contain;
    flex: 0 0 auto;
}
li.gicon-luftreiniger    { --gicon: url(gicon-luftreiniger.svg); }
li.gicon-bautrockner     { --gicon: url(gicon-bautrockner.svg); }
li.gicon-luftentfeuchter { --gicon: url(gicon-luftentfeuchter.svg); }
li.gicon-luftbefeuchter  { --gicon: url(gicon-luftbefeuchter.svg); }
li.gicon-mietgeraete     { --gicon: url(gicon-mietgeraete.svg); }
li.gicon-ventilator      { --gicon: url(gicon-ventilator.svg); }
li.gicon-bauheizer       { --gicon: url(gicon-bauheizer.svg); }
li.gicon-desinfektion    { --gicon: url(gicon-desinfektion.svg); }
li.gicon-reinigung       { --gicon: url(gicon-reinigung.svg); }
li.gicon-ersatzfilter    { --gicon: url(gicon-ersatzfilter.svg); }
li.gicon-industrie       { --gicon: url(gicon-industrie.svg); }
li.gicon-zubehoer        { --gicon: url(gicon-zubehoer.svg); }
/* Unterpunkte im Flyout ohne Icon-Einzug bündig lassen */
li.gicon .sub-menu a::before { content: none; }

/* Marken-Leiste auf der Shop-Landing: Text-Pendant zur Logo-Reihe der
   furniture2-Demo — groß, grau, mit Abstand */
.galuft-markenleiste span {
    display: inline-block;
    margin: 6px 22px;
    font-size: 22px;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: #9aa0a6;
    white-space: nowrap;
}

/* Inline-Buttons (fusion_button, das im Fließtext steckte) */
a.galuft-inline-btn {
    display: inline-block;
    background: #005c6a;
    color: #fff !important;
    padding: 12px 26px;
    border-radius: 6px;
    font-weight: 600;
    text-decoration: none;
    margin: 6px 0;
    transition: background 0.2s ease;
}
a.galuft-inline-btn:hover {
    background: #00434e;
}

/* Bild-Caption-Wrapper aus dem alten Editor tragen feste Pixelbreiten —
   nie breiter als der Viewport (Mobil-Audit-Fund: attachment_-Wrapper) */
[id^="attachment_"],
.wp-caption {
    max-width: 100% !important;
    height: auto;
}
[id^="attachment_"] img,
.wp-caption img { max-width: 100%; height: auto; }

/* ALLE Tabellen horizontal scrollbar (auch nackte <table> aus HTML-Fallbacks,
   die nicht in figure.wp-block-table stecken) — Mobil-Audit: 15× */
.entry-content table,
.wpb_text_column table,
article table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* Mobil-Härtung: nichts erzwingt Überlauf */
@media (max-width: 768px) {
    .wp-block-column:empty { display: none; }
    /* min-width-Zwang und nowrap auf Mobil lösen */
    .entry-content [style*="min-width"],
    .wpb_text_column [style*="min-width"] { min-width: 0 !important; }
    .entry-content [style*="white-space:nowrap"],
    .entry-content [style*="white-space: nowrap"] { white-space: normal !important; }
    /* generische feste Breiten in Inhalten kappen (Bilder/Boxen) */
    .entry-content img[style*="width"],
    .entry-content figure[style*="width"] { max-width: 100% !important; }
    /* Hero mobil kompakter */
    .wp-block-cover { min-height: 200px !important; }
    .wp-block-cover h1 { font-size: clamp(24px, 7vw, 34px); }
}

/* ==========================================================================
   „Mit KI erzeugtes Bild"-Vermerk (Adrian 21.08., Punkt 8) — portiert von
   der Live-Seite (dort Avada-Karussell-Klassen). Klassen: ki1–ki4 an der
   figure eines Einzelbilds, ki5 am Slider/der Galerie (alle Bilder),
   ki-bN am Slider (nur Slide N). Der Konverter reicht sie durch.
   ========================================================================== */
:root {
    --ki-text: "Mit KI erzeugtes Bild";
    --ki-schrift: 8px;
    --ki-hintergrund: rgba(0, 0, 0, 0.40);
    --ki-farbe: rgba(255, 255, 255, 0.90);
    --ki-abstand: 6px;
}
figure:is(.ki1, .ki2, .ki3, .ki4),
figure:has(> img:is(.ki1, .ki2, .ki3, .ki4)),
.ki5 .galuft-slide,
.wp-block-gallery:is(.ki5) .wp-block-image,
.ki-b1 .galuft-slide:nth-child(1),
.ki-b2 .galuft-slide:nth-child(2),
.ki-b3 .galuft-slide:nth-child(3),
.ki-b4 .galuft-slide:nth-child(4),
.ki-b5 .galuft-slide:nth-child(5),
.ki-b6 .galuft-slide:nth-child(6),
.ki-b7 .galuft-slide:nth-child(7),
.ki-b8 .galuft-slide:nth-child(8) {
    position: relative;
}
figure:is(.ki1, .ki2, .ki3, .ki4)::before,
figure:has(> img:is(.ki1, .ki2, .ki3, .ki4))::before,
.ki5 .galuft-slide::before,
.wp-block-gallery:is(.ki5) .wp-block-image::before,
.ki-b1 .galuft-slide:nth-child(1)::before,
.ki-b2 .galuft-slide:nth-child(2)::before,
.ki-b3 .galuft-slide:nth-child(3)::before,
.ki-b4 .galuft-slide:nth-child(4)::before,
.ki-b5 .galuft-slide:nth-child(5)::before,
.ki-b6 .galuft-slide:nth-child(6)::before,
.ki-b7 .galuft-slide:nth-child(7)::before,
.ki-b8 .galuft-slide:nth-child(8)::before {
    content: var(--ki-text);
    position: absolute;
    inset: auto var(--ki-abstand) var(--ki-abstand) auto;
    background: var(--ki-hintergrund);
    color: var(--ki-farbe);
    font-size: var(--ki-schrift);
    line-height: 1.4;
    padding: 2px 6px;
    border-radius: 3px;
    pointer-events: none;
    z-index: 2;
}
.wp-block-cover:is(.ki1, .ki2, .ki3, .ki4)::before {
    content: var(--ki-text);
    position: absolute;
    right: var(--ki-abstand);
    bottom: var(--ki-abstand);
    background: var(--ki-hintergrund);
    color: var(--ki-farbe);
    font-size: var(--ki-schrift);
    line-height: 1.4;
    padding: 2px 6px;
    border-radius: 3px;
    pointer-events: none;
    z-index: 2;
}
/* Slider: Badge über dem Bild, nicht unter der Bildunterschrift */
.ki5 .galuft-slide::before,
[class*="ki-b"] .galuft-slide::before {
    inset: auto calc(var(--ki-abstand) + 4px) auto auto;
    top: 8px;
}

/* ==========================================================================
   Barrierefreiheit im Header statt schwebender Buttons (Adrian 21.08.):
   [wpa_toolbar] sitzt als Text/HTML-Element in der Topbar; die vom Plugin
   per JS eingefügte fixe Leiste rechts wird ausgeblendet.
   ========================================================================== */
.a11y-toolbar:not(.a11y-toolbar-widget) { display: none !important; }
.whb-header .a11y-toolbar-widget ul {
    display: flex;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.whb-header .a11y-toolbar-widget button {
    background: transparent;
    border: 1px solid rgba(0, 0, 0, 0.18);
    border-radius: 6px;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: inherit;
    cursor: pointer;
}
.whb-header .a11y-toolbar-widget button:hover {
    border-color: #005c6a;
    color: #005c6a;
}
/* Die Screenreader-Labels („Kontrast umschalten") sind im Header-Kontext
   sichtbar durchgeschlagen (Adrians Screenshot 21.08.) — das Plugin-CSS
   für .offscreen greift dort nicht. Klassisches visually-hidden: */
.a11y-toolbar-widget .offscreen {
    position: absolute !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}
.a11y-toolbar-widget .aticon {
    font-size: 14px;
    line-height: 1;
}

/* Hero-Cover: Titel-Typografie etwas kräftiger, Lesbarkeit auf Bild */
.wp-block-cover h1 {
    font-size: clamp(28px, 4vw, 46px);
    line-height: 1.1;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
    max-width: 900px;
}

/* Karten: konvertierte Avada-Spalten mit eigenem Hintergrund werden zu
   modernen Kacheln — Radius + Schatten statt der alten harten Border */
.wp-block-column.has-background {
    border-radius: 12px;
    padding: 24px 22px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.07);
}

/* Akkordeons (konvertierte Avada-Toggles/FAQ): klar als aufklappbar erkennbar —
   Karte, Chevron rechts (dreht bei offen), Hover-Feedback (Adrian 20.08.) */
details.wp-block-details {
    border: 1px solid rgba(0, 0, 0, 0.10);
    border-radius: 10px;
    padding: 0;
    margin-bottom: 12px;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    overflow: hidden;
    transition: box-shadow 0.2s ease;
}
details.wp-block-details:hover {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.10);
}
details.wp-block-details summary {
    font-weight: 600;
    cursor: pointer;
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 20px;
}
details.wp-block-details summary::-webkit-details-marker { display: none; }
details.wp-block-details summary::after {
    content: "";
    flex: 0 0 auto;
    width: 10px;
    height: 10px;
    border-right: 2px solid #005c6a;
    border-bottom: 2px solid #005c6a;
    transform: rotate(45deg);
    transition: transform 0.25s ease;
    margin-top: -4px;
}
details.wp-block-details[open] summary::after {
    transform: rotate(225deg);
    margin-top: 4px;
}
details.wp-block-details[open] summary {
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}
details.wp-block-details > *:not(summary) {
    padding: 4px 20px;
}
details.wp-block-details > *:last-child {
    padding-bottom: 16px;
}

/* Footer: Google-Bewertung + Versandpartner (Live-Footer-Pendant, 21.08.) */
.galuft-sterne { color: #f5a623; letter-spacing: 2px; }
.galuft-footer-bewertung { margin-top: 14px; }

/* Trust-Leiste ueber dem Footer (WoodMart-Prefooter, HTML-Block 33135):
   Zahlarten, Google-Bewertung, Versandpartner, Partner/Social — Pendant
   zur Live-Sektion (Review Runde 4: auf 188 Seiten vermisst) */
.galuft-trustbar {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
    padding: 34px 0 26px;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
}
.galuft-trustbar h4 {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 12px;
}
.galuft-trust-logos {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 10px;
    align-items: center;
}
.galuft-trust-logos img {
    height: 26px;
    width: auto;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 4px;
    padding: 3px 6px;
    box-sizing: content-box;
}
.galuft-versand-text { font-weight: 600; color: #6a6f76; }
.galuft-trust-social { display: flex; gap: 14px; flex-wrap: wrap; }
.galuft-trust-social a { font-weight: 600; }
@media (max-width: 992px) {
    .galuft-trustbar { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 576px) {
    .galuft-trustbar { grid-template-columns: 1fr; }
}

/* Breadcrumbs (Yoast, via the_content-Filter) — dezent ueber dem Inhalt */
.galuft-breadcrumb {
    font-size: 13px;
    color: #8a8f94;
    margin: 2px 0 14px;
}
.galuft-breadcrumb a { color: #6a6f76; }
.galuft-breadcrumb a:hover { color: #005c6a; }
/* Sitzt die Breadcrumb vor einem vollbreiten Hero, braucht sie Luft oben */
.entry-content > .galuft-breadcrumb + .alignfull { margin-top: 10px; }

/* Netto-Preis unter dem Hauptpreis (Gewerbekunden) */
.galuft-netto {
    display: block;
    font-size: 14px;
    font-weight: 400;
    color: #6a6f76;
    margin-top: 2px;
}

/* Foto-Kacheln (Einsatzgebiete): Avada-Spalten mit Hintergrundbild +
   Overlay — abgerundet, gleiche Hoehe je Zeile, ruhiger Innenabstand */
.wp-block-column > .wp-block-cover.galuft-kachel,
.wp-block-group > .wp-block-cover.galuft-kachel {
    width: 100%;
    border-radius: 14px;
    overflow: hidden;
    min-height: 100%;
    padding: 34px 26px;
}
.wp-block-columns:has(.galuft-kachel) { align-items: stretch; }
.wp-block-column:has(> .galuft-kachel) { display: flex; }
.galuft-kachel .wp-block-cover__inner-container { color: #fff; }
.galuft-kachel h2, .galuft-kachel h3 { color: #fff; }

/* Icon-Karten (Avada content_boxes, z.B. "Das macht uns aus"):
   FontAwesome-Solid-Glyphen aus Avadas weiterhin vorhandener Font-Datei —
   beim endgueltigen Avada-Rueckbau die woff2 ins Child kopieren! */
@font-face {
    font-family: "galuft-fa";
    src: url(/wp-content/themes/Avada/includes/lib/assets/fonts/fontawesome/webfonts/fa-solid-900.woff2) format("woff2");
    font-weight: 900;
    font-display: swap;
}
.galuft-cb-icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: #333a3f;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 4px auto 16px;
}
.galuft-cb-icon .galuft-fa {
    font-family: "galuft-fa";
    font-weight: 900;
    font-style: normal;
    font-size: 24px;
    color: #fff;
    line-height: 1;
}
/* weiße Karten der content_boxes: ruhige Innenabstaende */
.wp-block-column.has-background { min-height: 100%; }
.wp-block-columns:has(> .wp-block-column.has-background) { align-items: stretch; }

/* Mini-FontAwesome fuer die im Content verbliebenen <i class="fas/fab">-Icons
   (Sharing-Buttons der Rechner — live rendert Avadas FA, WoodMart laedt
   keins: weisse Quadrate, Adrians Fund 22.08.). Fonts aus dem noch
   vorhandenen Avada-Ordner; beim Avada-Rueckbau ins Child kopieren. */
@font-face {
    font-family: "galuft-fa-brands";
    src: url(/wp-content/themes/Avada/includes/lib/assets/fonts/fontawesome/webfonts/fa-brands-400.woff2) format("woff2");
    font-weight: 400;
    font-display: swap;
}
i.fas, i.fa { font-family: "galuft-fa"; font-weight: 900; font-style: normal; }
i.fab { font-family: "galuft-fa-brands"; font-weight: 400; font-style: normal; }
i.fas::before, i.fa::before, i.fab::before { content: var(--fa, ""); }
i.fa-envelope { --fa: "\f0e0"; }
i.fa-facebook { --fa: "\f09a"; }
i.fa-linkedin { --fa: "\f08c"; }
i.fa-twitter  { --fa: "\f099"; }

/* Rechner-Uebersicht: Line-Icons statt Emojis (Adrian 22.08.) */
.galuft-rechner-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: #005c6a;
    -webkit-mask: none;
    position: relative;
    margin-bottom: 6px;
}
.galuft-rechner-icon::after {
    content: "";
    position: absolute;
    inset: 9px;
    background: #fff;
    -webkit-mask: var(--gicon) no-repeat center / contain;
    mask: var(--gicon) no-repeat center / contain;
}

/* Rechner-Uebersicht: Karten-Grid (Adrian 22.08.: attraktiver, dezente Icons) */
.galuft-rechner-karte {
    background: #fff;
    border: 1px solid #e6e9ec;
    border-radius: 14px;
    padding: 28px 26px;
    height: 100%;
    box-shadow: 0 1px 3px rgba(6, 21, 36, .06);
    transition: box-shadow .2s, transform .2s;
}
.galuft-rechner-karte:hover {
    box-shadow: 0 10px 28px rgba(6, 21, 36, .12);
    transform: translateY(-2px);
}
.galuft-rechner-karte h3 { margin: 14px 0 8px; }
.galuft-rechner-karte p { margin-bottom: 10px; }
a.galuft-rechner-link { font-weight: 600; color: #0e7490; text-decoration: none; }
a.galuft-rechner-link:hover { text-decoration: underline; }

/* Adrians Breitenregel (22.08., 32-Zoll-Fund): Volle Breite nur fuer
   Deko-Flaechen (Hero-/CTA-Cover, Farbstreifen). Der INHALT solcher
   alignfull-Bloecke wird auf die Headermenue-Breite gedeckelt — Textzeilen
   liefen sonst ueber die ganze Monitorbreite. */
.entry-content .alignfull > .wp-block-cover__inner-container,
.entry-content > .wp-block-group.alignfull > * {
    max-width: 1370px;
    margin-left: auto;
    margin-right: auto;
}

/* Serviceversprechen unter der Kaufbox (Live-Pendant, Runde-5-Fund) */
.galuft-service {
    margin: 18px 0 6px;
    padding: 14px 16px;
    background: #f5f6f7;
    border-radius: 10px;
}
.galuft-service-titel { font-weight: 600; margin-bottom: 8px; }
.galuft-service ul { list-style: none; margin: 0; padding: 0; }
.galuft-service li { display: flex; align-items: center; gap: 10px; padding: 3px 0; }
.galuft-service .galuft-fa {
    font-family: "galuft-fa";
    font-weight: 900;
    font-style: normal;
    color: #005c6a;
    width: 20px;
    text-align: center;
}

/* Inhaltsverzeichnis der Ratgeber (Runde-5-Fund: fehlte komplett) */
ul.galuft-toc { margin: 0 0 24px; }
ul.galuft-toc li.galuft-toc-sub { margin-left: 22px; list-style: circle; }
ul.galuft-toc a { text-decoration: none; }
ul.galuft-toc a:hover { text-decoration: underline; }

/* Kategorie-SEO-Texte (22.08.): lange Texte unter dem Grid, Lesebreite */
.galuft-kat-unten {
    max-width: 1000px;
    margin: 40px auto 10px;
}
.galuft-kat-text h2, .galuft-kat-text h3 { margin-top: 22px; }

/* Buttons buendig (Adrian 22.08.): einheitliche Hoehe; in Kartenreihen
   sitzen Buttons am unteren Kartenrand, egal wie lang der Text darueber ist */
.entry-content .wp-block-button__link {
    min-height: 50px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.entry-content .wp-block-columns > .wp-block-column {
    display: flex;
    flex-direction: column;
}
.entry-content .wp-block-column > .wp-block-buttons:last-child,
.entry-content .wp-block-column > .wp-block-button:last-child,
.entry-content .wp-block-column > .wp-block-group:last-child > .wp-block-buttons:last-child {
    margin-top: auto;
    padding-top: 12px;
}
.galuft-kachel .wp-block-cover__inner-container {
    display: flex;
    flex-direction: column;
    min-height: inherit;
}
.galuft-kachel .wp-block-buttons:last-child { margin-top: auto; }
/* Karten-Gruppen (weisse Karten) fuellen ihre Spalte, Button unten */
.entry-content .wp-block-column > .wp-block-group.galuft-rechner-karte,
.entry-content .wp-block-column > .wp-block-group:only-child {
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* Startseiten-Sektionstitel zentriert — live rendert Avada sie mittig,
   der Quelltext sagt left (Spalten-Zentrierung). Nur Startseite, nur h2
   ohne explizite Ausrichtung (Runde-6-Fund: Titel links, Text zentriert). */
.page-id-7255 .entry-content h2.wp-block-heading:not([class*="has-text-align"]) {
    text-align: center;
}
