/*
Theme Name: Tomeks Fliesen
Theme URI: https://tomeks-fliesen.de
Template: twentytwentyfive
Author: Tomeks Fliesen
Description: Child Theme von Twenty Twenty-Five für Tomeks Fliesen. Enthält Marken-Schriften (Jost, Playfair Display), Farben, Komponenten und die Angleichung des Instagram-Feeds (Smash Balloon Social Photo Feed).
Requires at least: 6.7
Tested up to: 7.1
Requires PHP: 7.2
Version: 1.3.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentyfive-child
Tags: one-column, custom-colors, custom-logo, editor-style, full-site-editing, block-patterns, wide-blocks, block-styles
*/

/* Hinweis: Diese Datei enthält die kompletten Marken-Styles.
   Das Parent-Theme (Twenty Twenty-Five) wird über functions.php geladen.
   Struktur des Child-Themes:

     twentytwentyfive-child/
       style.css                 <- diese Datei
       functions.php
       screenshot.png            (optional, 1200x900, Vorschaubild im Theme-Wähler)
       assets/fonts/             Jost + Playfair Display (Variable Fonts, je normal und kursiv)
       assets/img/               Logo, Favicons, Fotos
*/

/* Tomeks Fliesen – Website-Styles
   Einbinden über ein Child-Theme (functions.php: wp_enqueue_style) oder ein CSS-Plugin.
   Schrift- und Bildpfade unten ggf. an den Upload-Ort anpassen.
   Pfad-Annahme: /wp-content/uploads/tomeks-fliesen/  */

/* ---------- Schriften: Jost + Playfair Display (Variable Fonts, SIL OFL) ---------- */
@font-face{font-family:"Jost";src:url("assets/fonts/Jost-Variable.ttf");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Jost";src:url("assets/fonts/Jost-Variable-Italic.ttf");font-weight:100 900;font-style:italic;font-display:swap}
@font-face{font-family:"Playfair Display";src:url("assets/fonts/PlayfairDisplay-Variable.ttf");font-weight:400 900;font-style:normal;font-display:swap}
@font-face{font-family:"Playfair Display";src:url("assets/fonts/PlayfairDisplay-Variable-Italic.ttf");font-weight:400 900;font-style:italic;font-display:swap}

/* ---------- Tokens ---------- */
.tf{--blue-900:#00243a;--blue-800:#003553;--blue-700:#00466a;--blue-600:#00537f;--blue-300:#6fb0d3;--blue-200:#b5d7e8;--blue-100:#e2eff6;--berry-700:#8e2247;--berry-600:#a92a56;--berry-500:#c43163;--berry-400:#d55d85;--berry-100:#f9e9ef;--sand-50:#f7f5f2;--sand-100:#efece7;--sand-200:#ddd8d1;--grout-300:#bdb8b1;--grout-400:#8e8a85;--slate-600:#5b5f63;--slate-800:#2b3237;--font-core:"Jost",Futura,"Avenir Next",system-ui,sans-serif;--font-accent:"Playfair Display",Georgia,serif;--container:1240px;--ease:cubic-bezier(.2,.6,.2,1)}

/* ---------- Grundlagen ---------- */
.tf{font-family:var(--font-core);font-size:19px;line-height:1.65;color:var(--slate-800);background:#fff;text-wrap:pretty}
.tf *,.tf *::before,.tf *::after{box-sizing:border-box}
.tf h1,.tf h2,.tf h3{margin:0;color:var(--blue-600);letter-spacing:-.01em;line-height:1.14}
.tf h1{font-size:54px;font-weight:800;line-height:1.1}
.tf h2{font-size:33px;font-weight:700}
.tf h3{font-size:21px;font-weight:700}
.tf p{margin:0}
.tf img{display:block;max-width:100%}
.tf a{color:var(--blue-600);text-decoration:none;transition:color .12s var(--ease)}
.tf a:hover{color:var(--berry-500)}
.tf ::selection{background:var(--berry-500);color:#fff}
.tf :focus-visible{outline:2px solid var(--berry-500);outline-offset:2px}
.tf-wrap{max-width:var(--container);margin:0 auto;padding:0 24px}
.tf-section{padding:96px 0}
.tf-section--alt{background:var(--sand-50)}
.tf-section--blue{background:var(--blue-600);background-image:linear-gradient(rgba(255,255,255,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.14) 1px,transparent 1px);background-size:44px 44px}
.tf-eyebrow{font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--berry-500);margin-bottom:12px}
.tf-eyebrow--inv{color:var(--berry-400)}
.tf-lead{font-size:21px;margin-top:16px;color:var(--slate-600);max-width:46ch}
.tf-head{max-width:46ch}
.tf-head--inv h2,.tf-head--inv h1{color:#fff}
.tf-head--inv .tf-lead{color:rgba(255,255,255,.72)}
.tf-headrow{display:flex;align-items:flex-end;gap:32px;flex-wrap:wrap}
.tf-headrow>.tf-btn,.tf-headrow>.tf-spacer{margin-left:auto}

/* ---------- Buttons ---------- */
.tf-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-core);font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:15px 28px;border:2px solid transparent;border-radius:2px;cursor:pointer;white-space:nowrap;transition:background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease),transform .12s var(--ease)}
.tf-btn--lg{padding:19px 38px;font-size:16px}
.tf-btn--sm{padding:10px 18px;font-size:12px}
.tf-btn--primary{background:var(--blue-600);color:#fff;border-color:var(--blue-600)}
.tf-btn--primary:hover{background:var(--blue-700);border-color:var(--blue-700);color:#fff;transform:translateY(-2px)}
.tf-btn--accent{background:var(--berry-500);color:#fff;border-color:var(--berry-500)}
.tf-btn--accent:hover{background:var(--berry-600);border-color:var(--berry-600);color:#fff;transform:translateY(-2px)}
.tf-btn--outline{background:transparent;color:var(--blue-600);border-color:var(--blue-600)}
.tf-btn--outline:hover{background:var(--blue-600);color:#fff;transform:translateY(-2px)}
.tf-btn--inv{background:#fff;color:var(--blue-600);border-color:#fff}
.tf-btn--inv:hover{background:var(--blue-600);border-color:var(--blue-600);color:#fff;transform:translateY(-2px)}
.tf-btn--invline{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.tf-btn--invline:hover{background:transparent;border-color:var(--berry-500);color:var(--berry-500);transform:translateY(-2px)}
.tf-btn:active{transform:scale(.985)}

/* ---------- Kopfzeile ---------- */
.tf-header{position:sticky;top:0;z-index:40;background:var(--blue-600);border-bottom:1px solid rgba(255,255,255,.16)}
.tf-header--over{position:absolute;left:0;right:0;top:0;background:rgba(0,36,58,.42);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.tf-header .tf-bar{max-width:var(--container);margin:0 auto;padding:0 24px;height:90px;display:flex;align-items:center;gap:32px}
.tf-header .tf-logo img{height:44px;width:auto}
.tf-nav{margin-left:auto;display:flex;align-items:center;gap:24px}
.tf-nav a{font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fff;padding-bottom:4px;border-bottom:2px solid transparent}
.tf-nav a:hover,.tf-nav a.is-active{color:#fff;border-bottom-color:var(--berry-500)}

/* ---------- Hero ---------- */
.tf-hero{position:relative;min-height:88vh;display:grid;align-items:end;background:var(--blue-800);overflow:hidden}
.tf-hero>img,.tf-hero>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tf-hero-scrim{position:absolute;inset:0;background:linear-gradient(to right,rgba(0,36,58,.9) 0%,rgba(0,36,58,.45) 45%,rgba(0,36,58,0) 85%)}
.tf-hero-body{position:relative;max-width:var(--container);width:100%;margin:0 auto;padding:96px 24px;color:#fff}
.tf-hero-body .tf-eyebrow{color:#fff}
.tf-hero h1{font-size:70px;font-weight:900;line-height:.98;letter-spacing:-.02em;text-transform:uppercase;color:#fff;max-width:18ch}
.tf-hero p{font-size:21px;margin-top:24px;max-width:34ch}
.tf-cta{display:flex;gap:12px;margin-top:32px;flex-wrap:wrap}

/* ---------- Raster & Karten ---------- */
.tf-grid{display:grid;gap:16px;margin-top:48px}
.tf-grid--3{grid-template-columns:repeat(3,1fr)}
.tf-grid--4{grid-template-columns:repeat(4,1fr)}
.tf-grid--2{grid-template-columns:1fr 1fr;gap:96px;margin-top:0}
.tf-card{background:#fff;border-radius:2px;padding:32px;box-shadow:inset 0 0 0 1px var(--sand-200)}
.tf-card--blue{background:var(--blue-600);color:#fff;box-shadow:none}
.tf-card--blue h3{color:#fff}
.tf-card p{font-size:14px;line-height:1.75;color:var(--slate-600);margin-top:8px}
.tf-card--blue p{color:rgba(255,255,255,.72)}
.tf-card--flush{padding:0;overflow:hidden}
.tf-card--flush .tf-card-body{padding:24px}
.tf-icon{width:26px;height:26px;color:var(--berry-500);margin-bottom:16px}
.tf-stats{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.tf-stat-v{font-size:54px;font-weight:900;line-height:.98;letter-spacing:-.02em;color:var(--blue-600)}
.tf-stat-l{font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--slate-600);margin-top:8px}
.tf-step{border-top:2px solid rgba(255,255,255,.28);padding-top:16px}
.tf-step-n{font-size:33px;font-weight:900;line-height:1;color:var(--berry-400)}
.tf-step h3{color:#fff;margin-top:12px}
.tf-step p{font-size:14px;line-height:1.75;color:rgba(255,255,255,.72);margin-top:8px}
.tf-badge{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;padding:6px 10px 5px;border-radius:2px;background:var(--blue-100);color:var(--blue-600)}
.tf-badge--accent{background:var(--berry-100);color:var(--berry-700)}
.tf-quote{margin:0;border-left:3px solid var(--berry-500);padding-left:24px}
.tf-quote p{font-family:var(--font-accent);font-style:italic;font-size:25px;line-height:1.4;color:var(--blue-600)}
.tf-quote footer{font-size:14px;color:var(--slate-600);margin-top:16px}
.tf-note{background:var(--blue-100);color:var(--blue-700);padding:16px 24px;border-radius:2px;box-shadow:inset 3px 0 0 0 var(--blue-600);font-size:14px;margin-top:24px}
.tf-note b{display:block;font-size:18px;margin-bottom:4px}

/* ---------- Galerie ---------- */
.tf-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:32px}
.tf-tile{position:relative;margin:0;aspect-ratio:1/1;overflow:hidden;background:var(--blue-800);border-radius:2px}
.tf-tile--wide{aspect-ratio:16/10}
.tf-tile--43{aspect-ratio:4/3}
.tf-tile img{width:100%;height:100%;object-fit:cover;transition:transform .42s var(--ease)}
.tf-tile:hover img{transform:scale(1.04)}
.tf-tile-ph{width:100%;height:100%;display:grid;place-items:center;color:rgba(255,255,255,.5);font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;background-image:linear-gradient(rgba(255,255,255,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.14) 1px,transparent 1px);background-size:44px 44px}
.tf-tile figcaption{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:24px;color:#fff;background:linear-gradient(to top,rgba(0,36,58,.92) 0%,rgba(0,36,58,.65) 38%,rgba(0,36,58,0) 78%)}
.tf-tile figcaption .tf-eyebrow{color:var(--berry-400);margin-bottom:8px}
.tf-tile figcaption strong{font-size:21px;font-weight:700}
.tf-tile figcaption span{font-size:14px;color:rgba(255,255,255,.72)}

/* ---------- Kontakt ---------- */
.tf-field{display:grid;gap:8px;margin-bottom:24px}
.tf-field label{font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--blue-600)}
.tf-field select,.tf-field textarea{width:100%;font-family:var(--font-core);font-size:19px;color:var(--slate-800);background:#fff;border:1px solid var(--sand-200);border-radius:2px;padding:13px 14px;outline:none;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}
.tf-field select:focus,.tf-field textarea:focus{border-color:var(--berry-500);box-shadow:0 0 0 3px rgba(196,49,99,.35)}
.tf-field small{font-size:14px;color:var(--slate-600)}
.tf-preview{background:#fff;box-shadow:inset 0 0 0 1px var(--sand-200);border-radius:2px;padding:24px;margin-bottom:24px}
.tf-preview span{font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--grout-400);display:block;margin-bottom:12px}
.tf-contact-list{display:grid;gap:12px;margin-top:16px}
.tf-contact-list a,.tf-contact-list div{display:flex;gap:10px;align-items:flex-start;color:#fff;font-size:21px}
.tf-contact-list a:hover{color:#fff;text-decoration:underline}
.tf-contact-list .tf-muted{color:rgba(255,255,255,.72);font-size:18px}

/* ---------- Fußzeile ---------- */
.tf-footer{background:var(--blue-900);color:#fff;padding:96px 0 24px;background-image:linear-gradient(rgba(255,255,255,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.14) 1px,transparent 1px);background-size:44px 44px}
.tf-footer-top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:48px}
.tf-footer img{height:56px;width:auto}
.tf-footer p{font-size:14px;line-height:1.75;color:rgba(255,255,255,.72);margin-top:16px}
.tf-footer a{color:#fff}
.tf-footer a:hover{color:#fff;text-decoration:underline}
.tf-footer .tf-col-title{font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--berry-400)}
.tf-footer ul{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:8px}
.tf-footer ul a{font-size:14px;color:rgba(255,255,255,.72)}
.tf-footer-bottom{margin-top:64px;padding-top:24px;border-top:1px solid rgba(255,255,255,.22);display:flex;flex-wrap:wrap;gap:24px;font-size:14px;color:rgba(255,255,255,.72)}
.tf-footer-bottom .tf-legal{margin-left:auto;display:flex;gap:24px}

/* ---------- Smash Balloon: Plugin-Stile an das Design angleichen ---------- */
.tf .sbi_feed,.tf #cff{--x:0}
.tf .sbi_wrapper .sbi_item,.tf #sb_instagram .sbi_item{background:#fff!important;border:0!important;border-radius:2px!important;box-shadow:inset 0 0 0 1px var(--sand-200)!important;padding:0 0 24px!important;margin-bottom:0!important;font-family:var(--font-core)!important}
.tf #sb_instagram .sbi_post-text,.tf #sb_instagram .sbi_text-wrapper{padding:0 24px!important;font-size:18px!important;line-height:1.62!important;color:var(--slate-800)!important}
.tf #sb_instagram .sbi_date{font-size:14px!important;color:var(--slate-600)!important;padding:0 24px!important}
.tf #sb_instagram .sbi_post-links a,.tf #sb_instagram .sbi_link{font-size:14px!important;font-weight:700!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:var(--berry-500)!important}
.tf #sb_instagram .sbi_author-text,.tf #sb_instagram .sbi_likebox-wrapper{display:none!important}

/* ---------- Mobil ---------- */
@media (max-width:1024px){
.tf-grid--3{grid-template-columns:1fr 1fr}
.tf-grid--4{grid-template-columns:1fr 1fr}
.tf-grid--2{grid-template-columns:1fr;gap:48px}
.tf-nav{gap:16px}
.tf-nav a{font-size:12px}
.tf-header .tf-bar{height:76px}
.tf-header .tf-logo img{height:36px}
}
@media (max-width:640px){
.tf-section{padding:64px 0}
.tf h1{font-size:38px}
.tf h2{font-size:27px}
.tf-hero h1{font-size:44px}
.tf-hero p,.tf-lead{font-size:18px}
.tf-grid--3,.tf-grid--4,.tf-gallery{grid-template-columns:1fr}
.tf-stats{grid-template-columns:1fr 1fr;gap:24px}
.tf-stat-v{font-size:38px}
.tf-footer-top{grid-template-columns:1fr;gap:32px}
.tf-footer-bottom .tf-legal{margin-left:0}
.tf-header .tf-bar{height:72px}
.tf-nav{display:none}/* darunter das Menü des Themes nutzen */
.tf-header .tf-logo img{height:34px}
}

/* =========================================================================
   GUTENBERG / TWENTY TWENTY-FIVE
   Diese Regeln greifen nur bei der Block-Variante (Ordner gutenberg/).
   Die Klassen sitzen auf den Blöcken, das Markup erzeugt WordPress selbst.
   ========================================================================= */

/* Inhaltsbreite: Twenty Twenty-Five rechnet mit ca. 645px, dieses Design mit 1240px.
   Die Layout-Variablen des Themes werden hier für die eigenen Abschnitte überschrieben. */
.tf{--wp--style--global--content-size:1240px;--wp--style--global--wide-size:1240px;font-weight:400}
.tf.tf-section{padding-inline:24px}
.tf.tf-section>.wp-block-columns,.tf.tf-section>.wp-block-group:not(.tf-card),.tf.tf-section>.wp-block-heading,.tf.tf-section>p,.tf.tf-section>.wp-block-buttons,.tf.tf-section>.wp-block-quote{max-width:1240px;margin-inline:auto}

/* Abschnitte: die Breitenbegrenzung kommt vom Theme (Layout „Inhaltsbreite“). */
.tf-section--slim{padding-block:64px}

/* Hero als Cover-Block */
.tf-hero-cover{min-height:88vh;padding:0!important}
.tf-hero-cover .wp-block-cover__inner-container{max-width:1240px;margin-inline:auto;padding:96px 24px;color:#fff}
.tf-hero-cover .tf-eyebrow{color:#fff}
.tf-hero-title{font-size:70px!important;font-weight:900;line-height:.98;letter-spacing:-.02em;text-transform:uppercase;color:#fff!important;max-width:18ch;margin:0}
.tf-hero-lead{font-size:21px;color:#fff;margin-top:24px;max-width:34ch}
.tf-hero-cover .tf-cta{margin-top:32px}

/* Spalten-Raster */
.tf .wp-block-columns{margin-bottom:0}
.tf-cols{gap:96px!important;align-items:start}
.tf .wp-block-columns.tf-cols:not(:first-child){margin-top:48px!important}
.tf-tiles:first-of-type{margin-top:48px!important}
.tf-cols--mid{align-items:center;margin-top:64px!important}
.tf-cards{gap:16px!important;margin-top:16px!important}
.tf-cards:first-of-type{margin-top:48px!important}
.tf-steps{gap:24px!important;margin-top:48px!important}
.tf-stats{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.tf-stats .tf-stat-v{margin:0}
.tf-stats .tf-stat-l{margin:8px 0 0}
.tf-tiles{gap:4px!important;margin-top:4px!important}

/* Karten als Spalten-/Gruppenblock */
.tf .wp-block-column.tf-card,.tf .wp-block-group.tf-card{background:#fff;border-radius:2px;padding:32px;box-shadow:inset 0 0 0 1px var(--sand-200)}
.tf .wp-block-group.tf-card+.wp-block-group.tf-card{margin-top:16px}
.tf .wp-block-group.tf-card--blue{background:var(--blue-600);color:#fff;box-shadow:none}
.tf .tf-card h3{margin-bottom:8px}
.tf .tf-card--blue h3{color:#fff}

/* Textrollen */
.tf-h-inv{color:#fff!important}
.tf-lead--inv{color:rgba(255,255,255,.72)}
.tf-muted-body{color:var(--slate-600);margin-top:32px}
.tf .tf-lead{margin-top:16px}
.tf .wp-block-heading+.tf-lead{margin-top:16px}

/* Ablaufschritte */
.tf .wp-block-column.tf-step{border-top:2px solid rgba(255,255,255,.28);padding-top:16px}
.tf .tf-step h3{color:#fff;margin:12px 0 8px}
.tf .tf-step p{font-size:14px;line-height:1.75;color:rgba(255,255,255,.72)}

/* Hinweisbox */
.tf .wp-block-group.tf-note{background:var(--blue-100);color:var(--blue-700);padding:16px 24px;border-radius:2px;box-shadow:inset 3px 0 0 0 var(--blue-600);margin-top:24px}
.tf .tf-note p{font-size:14px;color:var(--blue-700);margin:0}
.tf .tf-note-title{font-size:18px!important;font-weight:700;margin-bottom:4px!important}

/* Bildplatzhalter als Spalte */
.tf .wp-block-column.tf-tile{aspect-ratio:1/1;background:var(--blue-800);border-radius:2px;overflow:hidden}
.tf .wp-block-column.tf-tile .tf-tile-ph{height:100%;margin:0;display:grid;place-items:center;text-align:center;color:rgba(255,255,255,.5);font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;background-image:linear-gradient(rgba(255,255,255,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.14) 1px,transparent 1px);background-size:44px 44px}

/* Bild in einer Kachel: gleicher Zuschnitt wie die Platzhalter */
.tf .wp-block-column.tf-tile .tf-tile-img{height:100%;margin:0}
.tf .wp-block-column.tf-tile .tf-tile-img img{width:100%;height:100%;aspect-ratio:1/1;object-fit:cover;border-radius:0;transition:transform .42s var(--ease)}
.tf .wp-block-column.tf-tile:hover .tf-tile-img img{transform:scale(1.04)}

/* Zitat */
.tf .wp-block-quote.tf-quote{border-left:3px solid var(--berry-500);border-right:0;padding:0 0 0 24px;margin:0}
.tf .tf-quote p{font-family:var(--font-accent);font-style:italic;font-size:25px;line-height:1.4;color:var(--blue-600)}
.tf .tf-quote cite{display:block;font-style:normal;font-size:14px;color:var(--slate-600);margin-top:16px}

/* Kontaktliste in der blauen Karte */
.tf .tf-contact{font-size:21px;line-height:1.8;margin-top:16px}
.tf .tf-contact a{color:#fff}
.tf .tf-contact a:hover{color:#fff;text-decoration:underline}
.tf .tf-contact-muted{color:rgba(255,255,255,.72);margin-top:12px}

/* Buttons: die Klasse sitzt auf dem Wrapper, der Link wird gestylt */
.tf .wp-block-button.tf-btn{margin:0;display:block;padding:0;border:0;background:none;text-transform:none;letter-spacing:normal}
.tf .wp-block-button.tf-btn .wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-core);font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:15px 28px;border:2px solid transparent;border-radius:2px;background:none;transition:background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease),transform .12s var(--ease)}
.tf .wp-block-button.tf-btn--lg .wp-block-button__link{padding:19px 38px;font-size:16px}
.tf .wp-block-button.tf-btn--sm .wp-block-button__link{padding:10px 18px;font-size:12px}
.tf .wp-block-button.tf-btn--primary .wp-block-button__link{background:var(--blue-600);color:#fff;border-color:var(--blue-600)}
.tf .wp-block-button.tf-btn--primary .wp-block-button__link:hover{background:var(--blue-700);border-color:var(--blue-700);transform:translateY(-2px)}
.tf .wp-block-button.tf-btn--accent .wp-block-button__link{background:var(--berry-500);color:#fff;border-color:var(--berry-500)}
.tf .wp-block-button.tf-btn--accent .wp-block-button__link:hover{background:var(--berry-600);border-color:var(--berry-600);transform:translateY(-2px)}
.tf .wp-block-button.tf-btn--outline .wp-block-button__link{background:transparent;color:var(--blue-600);border-color:var(--blue-600)}
.tf .wp-block-button.tf-btn--outline .wp-block-button__link:hover{background:var(--blue-600);color:#fff;transform:translateY(-2px)}
.tf .wp-block-button.tf-btn--invline .wp-block-button__link{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.tf .wp-block-button.tf-btn--invline .wp-block-button__link:hover{background:transparent;border-color:var(--berry-500);color:var(--berry-500);transform:translateY(-2px)}
.tf .wp-block-button.tf-btn--inv .wp-block-button__link{background:#fff;color:var(--blue-600);border-color:#fff}
.tf .wp-block-button.tf-btn--inv .wp-block-button__link:hover{background:var(--blue-600);border-color:var(--blue-600);color:#fff;transform:translateY(-2px)}
.tf .wp-block-button.tf-btn .wp-block-button__link:active{transform:scale(.985)}

/* WhatsApp-Baustein im HTML-Block */
.tf .tf-wa .tf-btn{margin-top:0}
.tf-feed{margin-top:48px}

@media (max-width:1024px){
.tf-cols,.tf-cards,.tf-steps{gap:32px!important}
.tf-hero-title{font-size:52px!important}
}
@media (max-width:640px){
.tf-hero-title{font-size:40px!important}
.tf-hero-lead{font-size:18px}
.tf-section--slim{padding-block:48px}
}

/* Fußzeile als Blockvariante (gutenberg/08-footer.txt)
   Der Vorlagenteil begrenzt seine Kinder – die Fußzeile bricht hier bewusst aus,
   damit die blaue Fläche über die ganze Breite läuft. */
.tf.tf-footer-block{width:100%;max-width:none!important;margin-inline:0!important}
.wp-block-template-part>.tf.tf-footer-block,.wp-site-blocks>footer.tf.tf-footer-block{max-width:none!important}
.tf.tf-footer-block{background:var(--blue-900);color:#fff;padding-block:96px 24px;padding-inline:24px;background-image:linear-gradient(rgba(255,255,255,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.14) 1px,transparent 1px);background-size:44px 44px}
.tf-footer-block .tf-footer-cols,.tf-footer-block .tf-footer-bar{max-width:1240px;margin-inline:auto}
.tf-footer-block .tf-footer-cols{gap:48px!important;margin-bottom:0}
.tf-footer-block .tf-footer-logo{margin:0 0 16px}
.tf-footer-block .tf-footer-logo img{height:auto}
.tf-footer-address{font-size:14px;line-height:1.75;color:rgba(255,255,255,.72)}
.tf-footer-contact{font-size:18px;line-height:1.9;margin-top:16px}
.tf-footer-contact a{color:#fff}
.tf-footer-contact a:hover{color:#fff;text-decoration:underline}
.tf-footer-block .tf-col-title{font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--berry-400);margin:0}
.tf-footer-block .tf-footer-links{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:8px}
.tf-footer-block .tf-footer-links a{font-size:14px;color:rgba(255,255,255,.72)}
.tf-footer-block .tf-footer-links a:hover{color:#fff;text-decoration:underline}
.tf-footer-block .tf-footer-bar{margin-top:64px;padding-top:24px;border-top:1px solid rgba(255,255,255,.22);font-size:14px;color:rgba(255,255,255,.72)}
.tf-footer-block .tf-footer-bar p{font-size:14px;margin:0}
.tf-footer-legal a{color:rgba(255,255,255,.72)}
.tf-footer-legal a:hover{color:#fff;text-decoration:underline}
@media (max-width:640px){
.tf.tf-footer-block{padding-block:64px 24px;padding-inline:20px}
.tf.tf-section{padding-inline:20px}
.tf-footer-block .tf-footer-cols{gap:32px!important}
}

/* ============================================================
   Smash Balloon Reviews Feed – Google-Bewertungen
   Abschnitt "tf-reviews" in den Referenzen. Sterne in der
   Akzentfarbe, Karten wie die übrigen tf-card-Flächen.
   Klassennamen können sich zwischen Plugin-Versionen ändern –
   deshalb sind beide Schreibweisen (sbr- und sbr_) abgedeckt.
   ============================================================ */
.tf .tf-reviews{margin-top:64px}
.tf .tf-reviews .tf-eyebrow{margin-bottom:8px}
.tf .tf-reviews>h3{margin:0 0 32px}
.tf .tf-cta-row{margin-top:48px}
.tf-reviews-ph{margin-top:32px;min-height:220px;display:flex;align-items:center;justify-content:center;border:1px solid var(--sand-200);border-radius:2px;background-color:var(--sand-50);background-image:linear-gradient(to right,rgba(0,83,127,.12) 1px,transparent 1px),linear-gradient(to bottom,rgba(0,83,127,.12) 1px,transparent 1px);background-size:44px 44px;color:var(--slate-600);font-size:14px;letter-spacing:.04em;text-align:center;padding:24px}

/* Feed-Raster: drei Spalten, 16px Fuge – wie der Instagram-Feed */
.tf .sbr_feed,.tf .sb_reviews_feed,.tf #sbr_reviews{font-family:var(--font-core)!important}
.tf .sbr-reviews-wrap,.tf .sbr_reviews_wrap,.tf .sbr-feed-inner{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:16px!important;float:none!important}
.tf .sbr-review,.tf .sbr_review,.tf .sbr-item{background:#fff!important;border:1px solid var(--sand-200)!important;border-radius:2px!important;box-shadow:none!important;padding:24px!important;margin:0!important;width:auto!important;float:none!important;display:flex!important;flex-direction:column!important;gap:12px!important}

/* Kopf: Name und Datum */
.tf .sbr-author-name,.tf .sbr_author_name,.tf .sbr-review-author{font-family:var(--font-core)!important;font-size:16px!important;font-weight:600!important;color:var(--blue-600)!important;margin:0!important}
.tf .sbr-timestamp,.tf .sbr_timestamp,.tf .sbr-review-date{font-size:14px!important;color:var(--slate-600)!important;margin:0!important}

/* Sterne in der Akzentfarbe */
.tf .sbr-rating svg,.tf .sbr_rating svg,.tf .sbr-stars svg{fill:var(--berry-500)!important;color:var(--berry-500)!important}
.tf .sbr-rating svg path,.tf .sbr_rating svg path{fill:var(--berry-500)!important}
.tf .sbr-rating,.tf .sbr_rating{display:flex!important;gap:2px!important;margin:0!important}

/* Bewertungstext */
.tf .sbr-review-text,.tf .sbr_review_text,.tf .sbr-text{font-size:17px!important;line-height:1.62!important;color:var(--slate-800)!important;margin:0!important}
.tf .sbr-review-text a,.tf .sbr-read-more,.tf .sbr_read_more{color:var(--berry-500)!important;font-weight:600!important;text-decoration:none!important;border-bottom:1px solid rgba(196,49,99,.4)!important}

/* Profilbild: klein, rund, dezent */
.tf .sbr-author-img img,.tf .sbr_author_img img,.tf .sbr-avatar img{width:40px!important;height:40px!important;border-radius:50%!important;border:1px solid var(--sand-200)!important}

/* Kopfbereich des Feeds (Gesamtnote) */
.tf .sbr-header,.tf .sbr_header{border:0!important;padding:0 0 24px!important;background:transparent!important}
.tf .sbr-header .sbr-rating-num,.tf .sbr_header .sbr_rating_num{font-family:var(--font-accent)!important;font-size:40px!important;font-weight:600!important;color:var(--blue-600)!important;line-height:1!important}

/* Schaltflächen des Plugins (Mehr laden / Bewertung schreiben) */
.tf .sbr-load-more,.tf .sbr_load_more,.tf .sbr-btn{font-family:var(--font-core)!important;font-size:14px!important;font-weight:700!important;letter-spacing:.08em!important;text-transform:uppercase!important;background:transparent!important;color:var(--blue-600)!important;border:1px solid var(--blue-600)!important;border-radius:2px!important;padding:14px 26px!important;min-height:48px!important;box-shadow:none!important;margin-top:24px!important}
.tf .sbr-load-more:hover,.tf .sbr_load_more:hover,.tf .sbr-btn:hover{background:var(--blue-600)!important;color:#fff!important}

/* Google-Wortmarke des Plugins nicht verstecken – Attribution ist Pflicht */

@media (max-width:960px){
  .tf .sbr-reviews-wrap,.tf .sbr_reviews_wrap,.tf .sbr-feed-inner{grid-template-columns:repeat(2,1fr)!important}
}
@media (max-width:640px){
  .tf .sbr-reviews-wrap,.tf .sbr_reviews_wrap,.tf .sbr-feed-inner{grid-template-columns:1fr!important}
}

/* Sozialprofile: Buttonpaar im Instagram-Abschnitt */
.tf-social-links{display:flex;gap:12px;flex-wrap:wrap}
.tf .wp-block-buttons{display:flex;gap:12px;flex-wrap:wrap}

/* Hinweiskarte im Leistungsraster (9. Feld) */
.tf-card--note{background:var(--blue-100);border-color:var(--blue-200);box-shadow:inset 3px 0 0 0 var(--blue-600)}
.tf-card--note h3{color:var(--blue-700)}
.tf-card--note p{color:var(--blue-700)}
.tf .wp-block-column.tf-card--note{background:var(--blue-100);box-shadow:inset 3px 0 0 0 var(--blue-600)}
.tf .wp-block-column.tf-card--note h3,.tf .wp-block-column.tf-card--note p{color:var(--blue-700)}

/* Sozialprofile rechtsbündig */
.tf-social-links{margin-left:auto;justify-content:flex-end}
.tf .wp-block-buttons.tf-social-links{margin-left:auto;justify-content:flex-end}

/* Buttons: eigene Hover-Textfarbe gewinnt gegen .tf a:hover */
.tf a.tf-btn--primary:hover,.tf a.tf-btn--accent:hover,.tf a.tf-btn--outline:hover,.tf a.tf-btn--inv:hover{color:#fff}
.tf a.tf-btn--invline:hover{color:var(--berry-500)}
.tf .wp-block-button.tf-btn--primary a.wp-block-button__link:hover,.tf .wp-block-button.tf-btn--accent a.wp-block-button__link:hover,.tf .wp-block-button.tf-btn--outline a.wp-block-button__link:hover,.tf .wp-block-button.tf-btn--inv a.wp-block-button__link:hover{color:#fff}
.tf .wp-block-button.tf-btn--invline a.wp-block-button__link:hover{color:var(--berry-500)}

/* Ruhezustand: Buttonfarben gewinnen gegen .tf a{color:blue} */
.tf a.tf-btn--primary,.tf a.tf-btn--accent{color:#fff}
.tf a.tf-btn--invline{color:#fff}
.tf a.tf-btn--inv{color:var(--blue-600)}
.tf a.tf-btn--outline{color:var(--blue-600)}
.tf .wp-block-button.tf-btn--primary a.wp-block-button__link,.tf .wp-block-button.tf-btn--accent a.wp-block-button__link{color:#fff}
.tf .wp-block-button.tf-btn--invline a.wp-block-button__link{color:#fff}
.tf .wp-block-button.tf-btn--inv a.wp-block-button__link{color:var(--blue-600)}
.tf .wp-block-button.tf-btn--outline a.wp-block-button__link{color:var(--blue-600)}

/* Akzent-Button (z. B. „Auf WhatsApp senden“): Hover blau, Text bleibt weiß */
.tf-btn--accent:hover{background:var(--blue-600);border-color:var(--blue-600);color:#fff}
.tf a.tf-btn--accent:hover{color:#fff}
.tf .wp-block-button.tf-btn--accent .wp-block-button__link:hover{background:var(--blue-600);border-color:var(--blue-600)}
.tf .wp-block-button.tf-btn--accent a.wp-block-button__link:hover{color:#fff}

/* Betrieb: Überschrift/Kennzahlen und Fließtext/Notiz auf gleicher Höhe */
.tf-betrieb{display:grid;grid-template-columns:1fr 1fr;column-gap:96px;align-items:start}
.tf-betrieb-eyebrow{grid-column:1;grid-row:1}
.tf-betrieb-title{grid-column:1;grid-row:2;max-width:46ch}
.tf-betrieb .tf-stats{grid-column:2;grid-row:2}
.tf-betrieb-lead{grid-column:1;grid-row:3}
.tf-betrieb-note{grid-column:2;grid-row:3;margin-top:16px;color:var(--slate-600)}
@media (max-width:960px){
  .tf-betrieb{grid-template-columns:1fr;column-gap:0;row-gap:0}
  .tf-betrieb-eyebrow,.tf-betrieb-title,.tf-betrieb .tf-stats,.tf-betrieb-lead,.tf-betrieb-note{grid-column:1;grid-row:auto}
  .tf-betrieb .tf-stats{margin-top:32px}
  .tf-betrieb-note{margin-top:32px}
}
/* Gutenberg-Variante: Spalten oben ausrichten */
.tf .wp-block-columns.tf-cols--top{align-items:flex-start}

/* Betrieb, Zeile 3: gleicher oberer Abstand für beide Spalten */
.tf .tf-betrieb-lead,.tf .tf-betrieb-note{margin-top:16px}
.tf .tf-betrieb-note{color:var(--slate-600)}
@media (max-width:960px){
  .tf .tf-betrieb .tf-stats{margin-top:32px}
  .tf .tf-betrieb-note{margin-top:32px}
}

/* ------------------------------------------------------------
   Kein weißer Rand am Seitenanfang und vor der Fußzeile
   Twenty Twenty-Five legt auf .wp-site-blocks einen oberen und
   unteren Grundabstand und setzt zwischen den Bausteinen einen
   Blockabstand. Unsere Abschnitte bringen ihre Abstände selbst
   mit, deshalb entfallen beide hier.
   ------------------------------------------------------------ */
.wp-site-blocks{padding-top:0!important;padding-bottom:0!important}
/* Abstand über dem ersten Abschnitt (Inline-Style auf <main>) */
main.wp-block-group{margin-top:0!important;margin-block-start:0!important;margin-bottom:0!important;margin-block-end:0!important}
/* Abstand oben und unten in der Inhaltsgruppe (Inline-Style) */
main.wp-block-group>.wp-block-group{padding-top:0!important;padding-bottom:0!important}
main .wp-block-post-content,
.entry-content.wp-block-post-content,
.wp-block-post-content.has-global-padding,
.wp-block-post-content.is-layout-constrained{padding-top:0!important;padding-bottom:0!important;margin-top:0!important;margin-bottom:0!important;margin-block-start:0!important;margin-block-end:0!important}
/* Abstand zwischen letztem Abschnitt und Fußzeile */
.wp-site-blocks>footer,
.wp-site-blocks>.wp-block-template-part,
.wp-site-blocks>footer.wp-block-template-part{margin-top:0!important;margin-block-start:0!important;padding-top:0!important}
/* letzter Abschnitt im Inhalt: kein zusätzlicher Abstand nach unten */
main.wp-block-group>.wp-block-group>*:last-child,
main .wp-block-post-content>*:last-child{margin-bottom:0!important;margin-block-end:0!important}
main .wp-block-post-content>*:first-child{margin-block-start:0!important}
main .wp-block-post-content>*:last-child{margin-block-end:0!important}

/* ------------------------------------------------------------
   Blockabstand zwischen den Abschnitten entfernen
   WordPress setzt über :root :where(.is-layout-constrained) > *
   einen Abstand von 1.2rem vor jedes Kind. Unsere Abschnitte
   bringen ihre Abstände selbst mit; der zusätzliche Abstand
   erzeugt zwischen ihnen einen weißen Streifen.
   :where() hat Spezifität 0, deshalb genügt ein Klassenselektor.
   ------------------------------------------------------------ */
.entry-content>.tf-section,
.entry-content>section.tf,
.entry-content>.tf,
main .wp-block-post-content>.tf-section,
main .wp-block-post-content>section.tf,
main .wp-block-post-content>.tf{margin-block-start:0;margin-block-end:0;margin-top:0;margin-bottom:0}

/* Leere Absatzblöcke am Ende des Inhalts erzeugen Höhe (Zeilenhöhe)
   – sicherheitshalber ausblenden, besser im Editor löschen. */
.entry-content>p:empty,
main .wp-block-post-content>p:empty{display:none!important}

/* ------------------------------------------------------------
   Kopfzeile im Website-Editor (Vorlagenteil)
   Ergänzt die Regeln aus dem Abschnitt "Kopfzeile" weiter oben
   für die Blockstruktur von Gutenberg.
   ------------------------------------------------------------ */
header.tf-header>.tf-bar{max-width:var(--container);margin-inline:auto;padding:0 24px;min-height:90px;display:flex;align-items:center;gap:32px}
header.tf-header .tf-logo{margin:0}
header.tf-header .tf-logo img{display:block;height:44px;width:auto}
header.tf-header .tf-nav-wrap{gap:28px;margin-left:auto}

/* Menü: Textabsatz mit Links – Abstände über Flex, nicht über Leerzeichen */
header.tf-header .tf-nav{display:flex;align-items:center;gap:28px;margin:0;font-size:0}
header.tf-header .tf-nav a{font-family:var(--font-core);font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fff;text-decoration:none;padding-bottom:4px;border-bottom:2px solid transparent;transition:border-color .15s ease,color .15s ease}
header.tf-header .tf-nav a:hover{color:#fff;border-bottom-color:var(--berry-500)}

/* Menü des Theme-Navigationsblocks, falls du diesen statt der Links nutzt */
header.tf-header .wp-block-navigation{font-family:var(--font-core)}
header.tf-header .wp-block-navigation .wp-block-navigation-item__content{font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fff;text-decoration:none;padding-bottom:4px;border-bottom:2px solid transparent}
header.tf-header .wp-block-navigation .wp-block-navigation-item__content:hover{color:#fff;border-bottom-color:var(--berry-500)}
header.tf-header .wp-block-navigation .wp-block-navigation__responsive-container-open,
header.tf-header .wp-block-navigation .wp-block-navigation__responsive-container-close{color:#fff}

/* WhatsApp-Button in der Kopfzeile: kompakter als im Inhalt,
   im Ruhezustand nur Kontur, beim Hover gefüllt */
header.tf-header .tf-header-cta .wp-block-button__link{font-size:13px;padding:12px 20px;min-height:44px;background:transparent!important;color:#fff!important;border:1px solid var(--berry-500)!important}
header.tf-header .tf-header-cta .wp-block-button__link:hover{background:var(--berry-500)!important;color:#fff!important;border-color:var(--berry-500)!important}
header.tf-header .tf-header-cta a.wp-block-button__link{color:#fff!important}
header.tf-header .tf-header-cta a.wp-block-button__link:hover{color:#fff!important}

@media (max-width:960px){
  header.tf-header>.tf-bar{min-height:76px;gap:20px}
  header.tf-header .tf-logo img{height:36px}
  header.tf-header .tf-nav{gap:18px}
  header.tf-header .tf-nav a{font-size:12px}
}
@media (max-width:780px){
  header.tf-header .tf-nav{display:none}
  header.tf-header>.tf-bar{min-height:72px}
  header.tf-header .tf-logo img{height:34px}
}

/* ============================================================
   Rechtliche Unterseiten (Impressum, Datenschutz)
   ============================================================ */
.tf-legal-hero{background:var(--blue-600);padding:112px 0 56px;position:relative;overflow:hidden}
.tf-legal-hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(to right,rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.07) 1px,transparent 1px);background-size:44px 44px;pointer-events:none}
.tf-legal-hero>*{position:relative}
.tf-legal-hero>.tf-wrap{padding-inline:24px}
.tf-legal-hero>.tf-eyebrow,.tf-legal-hero>h1,.tf-legal-hero>.tf-legal-hero-lead{padding-inline:24px}
.tf-legal-hero .tf-eyebrow,.tf-legal-hero h1{margin-inline:0!important;text-align:left}
.tf-legal-hero h1{color:#fff;margin-top:12px;font-size:52px}
.tf-eyebrow--inv{color:rgba(255,255,255,.62)}
.tf-legal-hero-lead{margin-top:20px;max-width:56ch;margin-inline:0!important;text-align:left;color:rgba(255,255,255,.82);font-size:19px;line-height:1.6}

.tf-legal-body{padding:72px 0 96px}
.tf-legal-narrow{max-width:840px}

/* Impressum: Beschriftung links, Angabe rechts */
.tf-legal-rows{margin:0;display:grid;gap:0}
.tf-legal-row{display:grid;grid-template-columns:260px 1fr;gap:32px;padding:22px 0;border-top:1px solid var(--sand-200)}
.tf-legal-rows .tf-legal-row:last-child{border-bottom:1px solid var(--sand-200)}
.tf-legal-rows+.tf-legal-back{border-top:0;padding-top:0;margin-top:40px}
.tf-legal-rows dt{font-family:var(--font-core);font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--slate-600);margin:0;padding-top:3px}
.tf-legal-rows dd{margin:0;font-size:18px;line-height:1.6;color:var(--slate-800)}
.tf-legal-open{color:var(--slate-600);font-style:italic}

/* Datenschutz: Inhaltsverzeichnis und Abschnitte */
.tf-legal-grid{display:grid;grid-template-columns:260px 1fr;gap:80px;align-items:start}
.tf-legal-toc{position:sticky;top:120px}
.tf-legal-toc-title{font-family:var(--font-core);font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--slate-600);padding-bottom:14px;border-bottom:1px solid var(--sand-200)}
.tf-legal-toc ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.tf-legal-toc a{display:flex;gap:12px;padding:9px 0;font-size:15px;line-height:1.35;color:var(--slate-800);text-decoration:none;border-bottom:1px solid transparent}
.tf-legal-toc a span{font-family:var(--font-core);font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--blue-300);padding-top:2px}
.tf-legal-toc a:hover{color:var(--berry-500)}
.tf-legal-toc a:hover span{color:var(--berry-500)}

.tf-legal-sections{display:grid;gap:0}
.tf-legal-sec{padding:40px 0;border-top:1px solid var(--sand-200);scroll-margin-top:120px}
.tf-legal-sec:first-child{padding-top:0;border-top:0}
/* Abschnitt: normaler Fluss. Die Nummer steht als Auszeichnung IN der
   Überschrift (h2 > span.tf-legal-num) und hängt links im Bund – dadurch
   sind Überschrift und Fließtext immer auf derselben Kante, ohne Raster. */
.tf-legal-sec>*{margin-inline:0!important}
.tf-legal-sec h2{margin:0;font-size:28px}
.tf-legal-num{font-family:var(--font-core);font-size:13px;font-weight:700;letter-spacing:.14em;color:var(--berry-500);margin-right:12px;vertical-align:baseline}
.tf-legal-sec p{margin-top:16px;font-size:18px;line-height:1.68;color:var(--slate-800);max-width:68ch!important;text-wrap:pretty}
.tf-legal-sec>p:first-of-type{margin-top:18px}
.tf-legal-sec .tf-note{margin-top:24px}
.tf-legal-sec .tf-note,.tf-legal-sec .tf-note p{font-size:17px;line-height:1.6}
.tf-legal-sec .tf-note b,.tf-legal-sec .tf-note .tf-note-title{font-size:13px;line-height:1.4}

.tf-legal-back{margin-top:56px;padding-top:28px;border-top:1px solid var(--sand-200)}
.tf-legal-back a{font-family:var(--font-core);font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--blue-600);text-decoration:none}
.tf-legal-back a:hover{color:var(--berry-500)}

@media (max-width:960px){
  .tf-legal-hero{padding-block:96px 48px}
  .tf-legal-hero h1{font-size:38px}
  .tf-legal-grid{grid-template-columns:1fr;gap:48px}
  .tf-legal-toc{position:static}
  .tf-legal-row{grid-template-columns:1fr;gap:6px;padding:18px 0}
}
@media (max-width:640px){
  .tf-legal-hero h1{font-size:32px}
  .tf-legal-hero-lead{font-size:17px}
  .tf-legal-body{padding:56px 0 72px}
  .tf-legal-sec h2{font-size:24px}
  .tf-legal-sec p,.tf-legal-rows dd{font-size:17px}
  /* Nummer bleibt in der Überschriftzeile, ohne hängenden Bund */
}

/* Impressum: Textabschnitte unter der Tabelle */
.tf-legal-sections--plain{margin-top:56px}
.tf-legal-sections--plain .tf-legal-sec:first-child{padding-top:40px;border-top:0}
.tf-legal-sections--plain .tf-legal-sec h2{margin-top:0;font-size:24px}
.tf-legal-sections--plain+.tf-legal-back{margin-top:40px;padding-top:28px;border-top:1px solid var(--sand-200)}

/* Seitentitel des Themes ausblenden – die Seiten bringen ihre eigene
   Überschrift im Kopfband mit, sonst steht die H1 doppelt. */
.wp-block-post-title{display:none!important}

/* Impressum-Abschnitte ohne Nummer: Überschrift ohne hängenden Bund */
