/*
Theme Name: Rhythmusfeuer
Theme URI: https://www.rhythmusfeuer.de
Author: Jens Frische
Description: Theme für „Rhythmusfeuer – Schlagwerkschule im Musikverein" im Look des Buchcovers. Mit Landingpages für alle QR-Codes (Play Alongs mit 3 Tonarten × 3 Tempi, Quiz, Auszählen, Videos), stabilen QR-Kurzlinks, QR-Code-Generator im Backend und eingebautem Quiz-System.
Version: 2.33.3
Requires at least: 6.2
Tested up to: 6.9
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: rhythmusfeuer
Tags: education, custom-menu, custom-logo, featured-images, translation-ready
*/

/* ---------- Schriften (lokal eingebunden, DSGVO-freundlich) ---------- */
@font-face { font-family: "Barlow Condensed"; src: url("assets/fonts/barlow-condensed-700.woff") format("woff"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Barlow Condensed"; src: url("assets/fonts/barlow-condensed-800.woff") format("woff"); font-weight: 800; font-style: normal; font-display: swap; }
@font-face { font-family: "Source Sans 3"; src: url("assets/fonts/source-sans-3-var.woff") format("woff"); font-weight: 200 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Source Sans 3"; src: url("assets/fonts/source-sans-3-italic-var.woff") format("woff"); font-weight: 200 900; font-style: italic; font-display: swap; }

/* ---------- Farben vom Cover ---------- */
:root {
	--rf-hellgruen: #ace09c;   /* Cover-Hintergrund */
	--rf-hellgruen-2: #c9ebbd;
	--rf-mintweiss: #f3fbef;
	--rf-gruen: #0a951f;       /* Schriftzug & Ringelshirt */
	--rf-gruen-dunkel: #07701a;
	--rf-rot: #de2a29;         /* Jacke & Flamme */
	--rf-rot-dunkel: #b81d1c;
	--rf-orange: #f5891a;      /* Flammenkern */
	--rf-blau: #002c5d;        /* Jeans */
	--rf-blau-hell: #1b4683;
	--rf-weiss: #ffffff;
	--rf-grau: #5d6b62;
	--rf-linie: #dcefd4;
	--rf-text: #17262a;
	--rf-haut: #fbe0d0;

	/* Überschriften-Schrift: Im Buch „Prater Sans Pro". Wer sie über Adobe Fonts lizenziert hat,
	   kann sie hier voranstellen, z. B.: "prater-sans-pro", "Barlow Condensed", … */
	--rf-font-head: "Barlow Condensed", "Arial Narrow", Arial, sans-serif;
	--rf-font-body: "Source Sans 3", "Source Sans Pro", "Segoe UI", Roboto, Arial, sans-serif;

	--rf-radius: 22px;
	--rf-radius-s: 12px;
	--rf-blob: 46px 30px 58px 26px / 34px 52px 30px 48px;
	--rf-schatten: 0 5px 0 var(--rf-blau);
	--rf-schatten-weich: 0 14px 34px rgba(0, 44, 93, .12);
	--rf-breite: 1180px;
	--rf-breite-text: 780px;
}

/* ---------- Basis ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--rf-font-body);
	font-size: 1.125rem;
	line-height: 1.6;
	color: var(--rf-text);
	background: var(--rf-hellgruen);
	-webkit-font-smoothing: antialiased;
}
img, svg, video { max-width: 100%; height: auto; }
a { color: var(--rf-gruen-dunkel); text-underline-offset: .18em; text-decoration-thickness: 2px; }
a:hover { color: var(--rf-rot); }
:focus-visible { outline: 3px solid var(--rf-blau); outline-offset: 3px; border-radius: 4px; }
::selection { background: var(--rf-rot); color: #fff; }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--rf-font-head);
	font-weight: 800;
	line-height: 1;
	text-transform: uppercase;
	letter-spacing: .01em;
	color: var(--rf-gruen);
	margin: 1.5em 0 .45em;
}
h1 { font-size: clamp(2.5rem, 6vw, 4.2rem); }
h2 { font-size: clamp(2rem, 4vw, 2.9rem); }
h3 { font-size: clamp(1.45rem, 2.6vw, 1.8rem); }
h4 { font-size: 1.35rem; }
p, ul, ol, blockquote, figure, table { margin: 0 0 1.15em; }

.screen-reader-text {
	border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; word-wrap: normal !important;
}
.screen-reader-text:focus {
	clip: auto !important; clip-path: none; height: auto; width: auto; z-index: 100000;
	background: var(--rf-blau); color: #fff; padding: 12px 20px; top: 10px; left: 10px; border-radius: 8px;
}

.rf-wrap { width: min(100% - 32px, var(--rf-breite)); margin-inline: auto; }
.rf-wrap--text { width: min(100% - 32px, var(--rf-breite-text)); margin-inline: auto; }

/* Ringel-Streifen wie Hannos Shirt */

/* Weiße „Blob"-Fläche wie die Formen auf dem Cover */
.rf-blob { background: #fff; border-radius: var(--rf-blob); }

/* ---------- Buttons ---------- */
.rf-button, .wp-block-button__link, button.rf-button, input[type="submit"] {
	display: inline-flex; align-items: center; justify-content: center; gap: .5em;
	font-family: var(--rf-font-head);
	font-weight: 800; font-size: 1.3rem; letter-spacing: .03em; text-transform: uppercase; line-height: 1;
	color: #fff; background: var(--rf-rot);
	border: 3px solid var(--rf-blau); border-radius: 999px;
	padding: .55em 1.3em .62em;
	box-shadow: 0 5px 0 var(--rf-blau);
	text-decoration: none; cursor: pointer;
	transition: transform .12s ease, box-shadow .12s ease, background .15s ease;
}
.rf-button:hover, .wp-block-button__link:hover, input[type="submit"]:hover { color: #fff; background: var(--rf-rot-dunkel); transform: translateY(2px); box-shadow: 0 3px 0 var(--rf-blau); }
.rf-button:active, .wp-block-button__link:active { transform: translateY(5px); box-shadow: 0 0 0 var(--rf-blau); }
.rf-button--gruen { background: var(--rf-gruen); }
.rf-button--gruen:hover { background: var(--rf-gruen-dunkel); }
.rf-button--hell { background: #fff; color: var(--rf-blau); }
.rf-button--hell:hover { background: var(--rf-mintweiss); color: var(--rf-blau); }
.rf-button--klein { font-size: 1.05rem; padding: .43em 1em .52em; }
.rf-button svg { width: 1em; height: 1em; }

/* ---------- Header ---------- */
.rf-header { background: var(--rf-hellgruen); position: sticky; top: 0; z-index: 50; transition: box-shadow .2s ease; }
.rf-header.is-gescrollt { box-shadow: 0 4px 14px rgba(0,44,93,.16); }
.admin-bar .rf-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .rf-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .rf-header { top: 0; } }
html { scroll-padding-top: 120px; }
.rf-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 112px; padding: 10px 0; }
.rf-logo { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; color: var(--rf-gruen); }
.rf-logo img { height: 96px; width: auto; display: block; }
.custom-logo-link img { max-height: 80px; width: auto; }
.rf-logo__text { font-family: var(--rf-font-head); font-weight: 800; text-transform: uppercase; line-height: .95; color: var(--rf-gruen); font-size: 1.75rem; letter-spacing: .02em; }
.rf-logo__text small { display: block; font-size: .78em; color: var(--rf-blau); }

.rf-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: nowrap; gap: 2px; }
.rf-nav a {
	display: block; padding: .45em .6em .47em; border-radius: 999px; white-space: nowrap;
	font-family: var(--rf-font-head); font-weight: 800; font-size: 1.1rem; text-transform: uppercase; letter-spacing: .02em; line-height: 1;
	color: var(--rf-blau); text-decoration: none;
}
.rf-nav a:hover, .rf-nav .current-menu-item > a, .rf-nav .current_page_item > a, .rf-nav .current-menu-ancestor > a, .rf-nav .current-menu-parent > a { background: #fff; color: var(--rf-gruen); }
.rf-nav li { position: relative; }
.rf-nav .sub-menu { display: none; position: absolute; left: 0; top: 100%; min-width: 240px; background: #fff; border: 3px solid var(--rf-blau); border-radius: var(--rf-radius-s); padding: 8px; flex-direction: column; box-shadow: var(--rf-schatten-weich); z-index: 60; }
.rf-nav li:hover > .sub-menu, .rf-nav li:focus-within > .sub-menu { display: flex; }
.rf-nav .sub-menu a { border-radius: 8px; font-size: 1.1rem; }
.rf-nav .sub-menu a:hover { background: var(--rf-hellgruen-2); }
.rf-nav .menu-item-has-children > a::after { content: "▾"; font-size: .7em; margin-left: .35em; vertical-align: .1em; }

.rf-menu-toggle { display: none; background: #fff; border: 3px solid var(--rf-blau); border-radius: 12px; width: 52px; height: 48px; cursor: pointer; padding: 0; color: var(--rf-blau); }
.rf-menu-toggle span { display: block; width: 22px; height: 3px; background: currentColor; margin: 4px auto; border-radius: 2px; transition: transform .2s, opacity .2s; }
.rf-menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.rf-menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.rf-menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 1300px) {
	.rf-menu-toggle { display: block; }
	.rf-nav { display: none; position: absolute; left: 12px; right: 12px; top: calc(100% - 6px); background: #fff; border: 3px solid var(--rf-blau); border-radius: var(--rf-radius); box-shadow: var(--rf-schatten-weich); max-height: calc(100vh - 120px); overflow: auto; }
	.rf-nav.is-open { display: block; }
	.rf-nav ul { flex-direction: column; padding: 12px; }
	.rf-nav .sub-menu { display: flex; position: static; border: 0; box-shadow: none; padding: 0 0 6px 18px; min-width: 0; }
	.rf-nav a { font-size: 1.35rem; }
	.rf-nav .menu-item-has-children > a::after { display: none; }
	.rf-logo img { height: 74px; }
	.rf-logo__text { font-size: 1.5rem; }
	.rf-header__inner { min-height: 90px; }
}
@media (max-width: 600px) { .rf-logo img { height: 60px; } .rf-logo__text { font-size: 1.25rem; } .rf-header__inner { min-height: 76px; } }
@media (max-width: 380px) { .rf-logo__text { font-size: 1.1rem; } }

/* ---------- Hero (Cover-Motiv) ---------- */
.rf-hero { position: relative; overflow: hidden; background: var(--rf-hellgruen); }
.rf-hero__inner { display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: 24px; padding: 0; }
.rf-hero__text { position: relative; z-index: 2; padding: 40px 0 100px; }
.rf-hero__logo { width: min(330px, 70%); display: block; margin: 0 0 18px -8px; }
.rf-hero__titel { margin: 0 0 .35em; font-size: clamp(2.4rem, 5.2vw, 4.2rem); color: #fff; line-height: .92; text-shadow: 0 3px 0 rgba(10,149,31,.25); }
.rf-hero__marke { display: block; color: var(--rf-gruen); font-size: 1.32em; line-height: .9; letter-spacing: .01em; text-shadow: none; margin-bottom: .08em; }
.rf-hero__titel small { display: block; font-size: .55em; color: #fff; margin-top: .15em; }
.rf-hero__lead { font-size: 1.25rem; max-width: 32em; color: var(--rf-blau); font-weight: 600; margin-bottom: 1.5em; }
.rf-hero__buttons { display: flex; flex-wrap: wrap; gap: 14px; }
.rf-hero__bild { position: absolute; z-index: 1; top: 0; bottom: 0; right: max(0px, calc((100% - var(--rf-breite)) / 2 - 70px)); margin: 0; pointer-events: none; }
.rf-hero__bild img { display: block; height: 100%; width: auto; max-width: none; }
.rf-hero__welle { display: block; width: 100%; height: 70px; margin-top: -69px; position: relative; z-index: 3; }
/* Kein grüner Haarstrich unter der Welle (Rundung bei krummen Pixelwerten): unterste Pixel weiß abdecken */
.rf-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: #fff; z-index: 4; pointer-events: none; }
@media (max-width: 980px) {
	.rf-hero__inner { grid-template-columns: 1fr; }
	.rf-hero__text { padding: 10px 0 0; text-align: left; }
	.rf-hero__bild { position: relative; right: auto; margin: 0 -16px; }
	.rf-hero__bild img { width: 100%; height: auto; aspect-ratio: 760 / 571; object-fit: cover; object-position: 100% 0; }
}
@media (max-width: 600px) {
	.rf-hero__bild img { aspect-ratio: 560 / 571; }
}

/* ---------- Sektionen ---------- */
.rf-section { padding: 84px 0; position: relative; }
.rf-section--weiss { background: #fff; }
.rf-section--mint { background: var(--rf-mintweiss); }
.rf-section--gruen { background: var(--rf-gruen); color: #fff; }
.rf-section--gruen h2, .rf-section--gruen h3 { color: #fff; }
.rf-section--gruen .rf-eyebrow { color: var(--rf-hellgruen); }
.rf-section--blau { background: var(--rf-blau); color: #fff; }
.rf-section--blau h2, .rf-section--blau h3 { color: #fff; }
.rf-section--blau .rf-eyebrow { color: var(--rf-hellgruen); }
.rf-section__kopf { max-width: 760px; margin-bottom: 40px; }
.rf-section__kopf h2 { margin-top: 0; }
.rf-section__kopf p { font-size: 1.2rem; }
.rf-eyebrow { display: inline-block; font-family: var(--rf-font-head); font-weight: 800; text-transform: uppercase; letter-spacing: .08em; font-size: 1.45rem; line-height: 1.1; color: var(--rf-rot); margin-bottom: .5em; }
.rf-welle { display: block; width: 100%; height: 60px; }
@media (max-width: 700px) { .rf-section { padding: 56px 0; } }

/* Karten */
.rf-karten { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
@media (max-width: 1000px) { .rf-karten { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .rf-karten { grid-template-columns: 1fr; } }
.rf-karte {
	position: relative; background: #fff; border: 3px solid var(--rf-blau); border-radius: var(--rf-radius);
	padding: 0 22px 24px; box-shadow: var(--rf-schatten); display: flex; flex-direction: column;
	text-decoration: none; color: var(--rf-text); transition: transform .15s ease;
}
a.rf-karte:hover { transform: translateY(-4px); color: var(--rf-text); }
.rf-karte__bild { height: 170px; display: flex; align-items: flex-end; justify-content: center; margin: 0 -22px 14px; background: var(--rf-hellgruen); border-radius: 19px 19px 0 0; overflow: hidden; }
.rf-karte__bild img { max-height: 160px; width: auto; display: block; }
.rf-karte h3 { margin: .15em 0 .3em; font-size: 1.7rem; hyphens: manual; overflow-wrap: break-word; }
.rf-karte p { margin: 0; font-size: 1.05rem; }
.rf-karte__mehr { margin-top: auto; padding-top: 14px; font-family: var(--rf-font-head); font-weight: 800; text-transform: uppercase; color: var(--rf-rot); letter-spacing: .04em; font-size: 1.15rem; }
.rf-karte__zahl { position: absolute; top: 12px; right: 14px; font-family: var(--rf-font-head); font-weight: 800; font-size: 1rem; background: var(--rf-blau); color: #fff; border-radius: 999px; padding: .15em .65em .25em; }

/* Zweispalter */
.rf-split { display: grid; grid-template-columns: .85fr 1.15fr; gap: 56px; align-items: center; }
.rf-split--umgekehrt { grid-template-columns: 1.15fr .85fr; }
.rf-split--umgekehrt .rf-split__bild { order: 2; }
.rf-split__bild { display: flex; justify-content: center; position: relative; }
.rf-split__bild img { max-height: 460px; width: auto; position: relative; z-index: 1; }
.rf-split__bild::before { content: ""; position: absolute; inset: 10% 6% 0; background: var(--rf-hellgruen); border-radius: var(--rf-blob); }
.rf-section--mint .rf-split__bild::before, .rf-section--weiss .rf-split__bild::before { background: var(--rf-hellgruen); }
.rf-section--gruen .rf-split__bild::before, .rf-section--blau .rf-split__bild::before { background: rgba(255,255,255,.14); }
.rf-split h2 { margin-top: 0; }
@media (max-width: 820px) {
	.rf-split, .rf-split--umgekehrt { grid-template-columns: 1fr; gap: 28px; }
	.rf-split--umgekehrt .rf-split__bild { order: 0; }
	.rf-split__bild img { max-height: 300px; }
}

.rf-liste-haken { list-style: none; padding: 0; }
.rf-liste-haken li { position: relative; padding-left: 2em; margin-bottom: .5em; }
.rf-liste-haken li::before { content: ""; position: absolute; left: 0; top: .15em; width: 1.2em; height: 1.2em; border-radius: 50%; background: var(--rf-gruen) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center/70% no-repeat; }
.rf-section--gruen .rf-liste-haken li::before, .rf-section--blau .rf-liste-haken li::before { background-color: var(--rf-rot); }

.rf-badge { display: inline-block; font-family: var(--rf-font-head); font-weight: 800; text-transform: uppercase; letter-spacing: .05em; font-size: 1rem; line-height: 1; padding: .29em .75em .36em; border-radius: 999px; align-self: flex-start; justify-self: start; background: var(--rf-hellgruen-2); color: var(--rf-gruen-dunkel); }
.rf-badge--rot { background: var(--rf-rot); color: #fff; }
.rf-badge--blau { background: var(--rf-blau); color: #fff; }

/* ---------- Seitenkopf & Inhalt ---------- */
.rf-seitenkopf { background: var(--rf-hellgruen); padding: 36px 0 60px; position: relative; overflow: hidden; }
.rf-seitenkopf__inner { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.rf-seitenkopf h1 { margin: .15em 0 0; color: #fff; text-shadow: 0 3px 0 rgba(10,149,31,.3); }
.rf-seitenkopf__meta { color: var(--rf-blau); margin-top: .6em; font-weight: 700; font-size: 1.15rem; }
.rf-seitenkopf__hanno { flex: none; height: 170px; width: auto; margin-bottom: -60px; }
@media (max-width: 700px) { .rf-seitenkopf__hanno { height: 110px; } }
.rf-brotkrumen { font-weight: 700; font-size: .98rem; color: var(--rf-blau); }
.rf-brotkrumen a { color: var(--rf-blau); text-decoration: none; }
.rf-brotkrumen a:hover { text-decoration: underline; }
.rf-brotkrumen span[aria-hidden] { margin: 0 .4em; opacity: .5; }

.rf-blatt { background: #fff; border-radius: 40px 40px 0 0; position: relative; margin-top: -30px; min-height: 40vh; }
.rf-content { padding: 56px 0 90px; }
.entry-content { overflow-wrap: break-word; }
.entry-content > * { max-width: var(--rf-breite-text); margin-left: auto; margin-right: auto; }
.entry-content > .alignwide { max-width: var(--rf-breite); }
.entry-content > .alignfull { max-width: none; }
.entry-content > *:first-child { margin-top: 0; }
.entry-content h2 { position: relative; padding-bottom: .3em; }
.entry-content h2::after { content: ""; position: absolute; left: 0; bottom: 0; width: 64px; height: 6px; background: repeating-linear-gradient(90deg, var(--rf-gruen) 0 12px, transparent 12px 18px); }
.entry-content h2.has-text-align-center::after { left: 50%; transform: translateX(-50%); }
.entry-content blockquote { border-left: 6px solid var(--rf-rot); background: var(--rf-mintweiss); padding: 18px 24px; border-radius: 0 var(--rf-radius-s) var(--rf-radius-s) 0; font-size: 1.15rem; }
.entry-content table { width: 100%; border-collapse: collapse; background: #fff; }
.entry-content th, .entry-content td { border: 2px solid var(--rf-linie); padding: 10px 12px; text-align: left; }
.entry-content th { background: var(--rf-gruen); color: #fff; font-family: var(--rf-font-head); text-transform: uppercase; letter-spacing: .03em; }
.entry-content img { border-radius: var(--rf-radius-s); }
.entry-content figcaption { color: var(--rf-grau); font-size: .95rem; text-align: center; }
.entry-content hr { border: 0; height: 10px; background: repeating-linear-gradient(90deg, var(--rf-gruen) 0 22px, transparent 22px 34px); margin: 3em auto; }
.entry-content iframe { max-width: 100%; border-radius: var(--rf-radius-s); }
.wp-block-image.aligncenter, .aligncenter { margin-left: auto; margin-right: auto; text-align: center; }
.alignleft { float: left; margin: .3em 1.5em 1em 0; }
.alignright { float: right; margin: .3em 0 1em 1.5em; }
.wp-block-file { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; background: var(--rf-mintweiss); border: 2px solid var(--rf-linie); border-radius: var(--rf-radius-s); padding: 14px 18px; }
.wp-block-file .wp-block-file__button { background: var(--rf-gruen); color: #fff; border-radius: 999px; padding: .4em 1em; font-family: var(--rf-font-head); font-weight: 800; text-transform: uppercase; text-decoration: none; }

/* Übetipp, Merkkasten, Sprechblase (wie im Buch) */
.rf-uebetipp, .is-style-rf-uebetipp { position: relative; background: #fff; border: 3px solid var(--rf-gruen); border-radius: var(--rf-radius); padding: 44px 26px 22px; margin: 2.4em auto; }
.rf-uebetipp::before, .is-style-rf-uebetipp::before { content: "Training: Übetipps"; position: absolute; top: -18px; left: 20px; font-family: var(--rf-font-head); font-weight: 800; text-transform: uppercase; letter-spacing: .05em; font-size: 1.2rem; background: var(--rf-gruen); color: #fff; padding: .25em .8em .2em; border-radius: 8px; }
.rf-merkkasten, .is-style-rf-merkkasten { background: var(--rf-mintweiss); border-left: 8px solid var(--rf-rot); border-radius: var(--rf-radius-s); padding: 20px 24px; margin: 2em auto; font-weight: 600; }
.rf-merkkasten > :last-child, .is-style-rf-merkkasten > :last-child, .is-style-rf-uebetipp > :last-child { margin-bottom: 0; }
.is-style-rf-sprechblase { position: relative; background: #fff; border: 3px solid var(--rf-blau); border-radius: 26px; padding: 20px 26px; margin: 2em auto 2.6em; box-shadow: var(--rf-schatten); }

/* ---------- Landingpages (QR-Ziele) ---------- */
.rf-landing__nav { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; margin-top: 48px; padding-top: 24px; border-top: 3px dashed var(--rf-linie); }
.rf-landing__nav a { font-family: var(--rf-font-head); font-weight: 800; text-transform: uppercase; font-size: 1.2rem; text-decoration: none; color: var(--rf-blau); }
.rf-landing__nav a:hover { color: var(--rf-rot); }
.rf-landing__nav .rf-landing__mitte { margin: 0 auto; }
.rf-landing__info { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.rf-bald { display: grid; grid-template-columns: 150px 1fr; gap: 20px; align-items: end; background: var(--rf-mintweiss); border: 3px dashed var(--rf-hellgruen); border-radius: var(--rf-radius); padding: 18px 22px 0; margin: 0 auto 30px; max-width: var(--rf-breite-text); }
.rf-bald img { display: block; max-height: 170px; width: auto; }
.rf-bald p { margin: 0 0 18px; }
.rf-bald strong { font-family: var(--rf-font-head); text-transform: uppercase; font-size: 1.5rem; color: var(--rf-gruen); display: block; line-height: 1.05; margin-bottom: .2em; }
@media (max-width: 560px) { .rf-bald { grid-template-columns: 90px 1fr; } .rf-bald img { max-height: 110px; } }

/* Play Along-Player: 3 Tonarten × 3 Tempi */
.rf-player { background: #fff; border: 3px solid var(--rf-blau); border-radius: var(--rf-radius); box-shadow: var(--rf-schatten); overflow: hidden; margin: 0 auto 32px; max-width: var(--rf-breite-text); }
.rf-player__tabs { display: flex; background: var(--rf-blau); padding: 10px 10px 0; gap: 6px; flex-wrap: wrap; }
.rf-player__tab { flex: 1; min-width: 90px; font: inherit; font-family: var(--rf-font-head); font-weight: 800; font-size: 1.3rem; text-transform: uppercase; letter-spacing: .03em; color: #fff; background: rgba(255,255,255,.12); border: 0; border-radius: 14px 14px 0 0; padding: .55em .6em .45em; cursor: pointer; line-height: 1; }
.rf-player__tab small { display: block; font-family: var(--rf-font-body); text-transform: none; letter-spacing: 0; font-weight: 600; font-size: .78rem; opacity: .85; margin-top: 3px; }
.rf-player__tab[aria-selected="true"] { background: #fff; color: var(--rf-blau); }
.rf-player__tab:hover:not([aria-selected="true"]) { background: rgba(255,255,255,.25); }
.rf-player__panel { padding: 18px 20px 20px; display: grid; gap: 12px; }
.rf-player__panel[hidden] { display: none; }
.rf-tempo { display: grid; grid-template-columns: 150px 1fr; gap: 14px; align-items: center; background: var(--rf-mintweiss); border-radius: var(--rf-radius-s); padding: 12px 14px; }
.rf-tempo__name { font-family: var(--rf-font-head); font-weight: 800; text-transform: uppercase; font-size: 1.3rem; color: var(--rf-gruen); line-height: 1; display: flex; align-items: center; gap: 8px; }
.rf-tempo__name .rf-tempo__icon { display: inline-flex; gap: 2px; }
.rf-tempo__name .rf-tempo__icon i { width: 7px; height: 14px; border-radius: 2px; background: var(--rf-hellgruen); display: block; }
.rf-tempo__name .rf-tempo__icon i.an { background: var(--rf-rot); }
.rf-tempo audio { width: 100%; height: 44px; }
.rf-tempo__leer { color: var(--rf-grau); font-weight: 600; font-style: italic; }
@media (max-width: 560px) { .rf-tempo { grid-template-columns: 1fr; gap: 6px; } }

.rf-video { position: relative; aspect-ratio: 16/9; background: var(--rf-blau); border-radius: var(--rf-radius); overflow: hidden; border: 3px solid var(--rf-blau); box-shadow: var(--rf-schatten); margin: 0 auto 30px; max-width: var(--rf-breite-text); }
.rf-video iframe, .rf-video video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.rf-video__start { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 20px; text-align: center; color: #fff; background: var(--rf-blau); border: 0; cursor: pointer; font: inherit; }
.rf-video__start .rf-video__play { width: 84px; height: 84px; border-radius: 50%; background: var(--rf-rot); display: flex; align-items: center; justify-content: center; box-shadow: 0 5px 0 rgba(0,0,0,.3); }
.rf-video__start .rf-video__play svg { width: 36px; height: 36px; margin-left: 5px; }
.rf-video__start small { max-width: 34em; opacity: .85; font-size: .9rem; }

/* Übersichten (Liedliste etc.) */
.rf-liste { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.rf-listeneintrag { display: grid; grid-template-columns: 58px 1fr; gap: 14px; align-items: center; background: #fff; border: 3px solid var(--rf-blau); border-radius: 16px; padding: 10px 14px 10px 10px; text-decoration: none; color: var(--rf-text); box-shadow: 0 4px 0 var(--rf-blau); transition: transform .12s ease; }
.rf-listeneintrag:hover { transform: translateY(-3px); color: var(--rf-text); }
.rf-listeneintrag__nr { width: 58px; height: 58px; border-radius: 14px; background: var(--rf-hellgruen); color: var(--rf-blau); display: flex; align-items: center; justify-content: center; font-family: var(--rf-font-head); font-weight: 800; font-size: 1.7rem; padding-bottom: 1px; box-sizing: border-box; }
.rf-listeneintrag__titel { font-weight: 800; line-height: 1.2; display: block; }
.rf-listeneintrag__meta { display: block; font-size: .92rem; line-height: 1.25; color: var(--rf-grau); font-weight: 600; margin-top: .2em; }
.rf-listeneintrag__status { display: block; margin-top: .3em; line-height: 1.2; font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--rf-rot); }
.rf-suche { max-width: 420px; margin: 0 0 24px; }

/* Hub-Kacheln */
.rf-hub { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 20px; }
@media (max-width: 520px) { .rf-hub { grid-template-columns: 1fr; } }

/* Beitragslisten */
.rf-beitraege { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 26px; }
.rf-beitrag { background: #fff; border: 3px solid var(--rf-blau); border-radius: var(--rf-radius); overflow: hidden; box-shadow: var(--rf-schatten); display: flex; flex-direction: column; }
.rf-beitrag__bild img { display: block; width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.rf-beitrag__bild--leer { display: block; position: relative; aspect-ratio: 16/10; background: var(--rf-hellgruen); overflow: hidden; }
.rf-beitrag__bild--leer img { position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); width: auto; height: 90%; max-width: 92%; aspect-ratio: auto; object-fit: contain; object-position: bottom; }
.rf-beitrag__body { padding: 20px 22px 24px; display: flex; flex-direction: column; flex: 1; }
.rf-beitrag h2 { font-size: 1.7rem; margin: 0 0 .3em; }
.rf-beitrag h2 a { color: var(--rf-gruen); text-decoration: none; }
.rf-beitrag h2 a:hover { color: var(--rf-rot); }
.rf-beitrag__meta { font-size: .95rem; color: var(--rf-grau); font-weight: 700; margin-bottom: .6em; }
.rf-beitrag__excerpt { flex: 1; }
.rf-beitrag__excerpt p { margin: 0 0 1em; }
.rf-beitrag .rf-karte__mehr { text-decoration: none; }

.nav-links, .rf-pagination { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 48px; }
.page-numbers { display: inline-flex; min-width: 44px; height: 44px; align-items: center; justify-content: center; padding: 0 12px; border: 3px solid var(--rf-blau); border-radius: 999px; font-family: var(--rf-font-head); font-weight: 800; font-size: 1.2rem; text-decoration: none; color: var(--rf-blau); background: #fff; }
.page-numbers.current, .page-numbers:hover { background: var(--rf-rot); color: #fff; }
.post-navigation .nav-links { justify-content: space-between; }
.post-navigation a { font-weight: 700; text-decoration: none; }

/* Formulare */
input[type="text"], input[type="email"], input[type="url"], input[type="search"], input[type="password"], input[type="number"], textarea, select {
	font: inherit; width: 100%; padding: .65em .9em; border: 3px solid var(--rf-blau); border-radius: var(--rf-radius-s); background: #fff; color: var(--rf-text);
}
input:focus, textarea:focus, select:focus { outline: none; border-color: var(--rf-gruen); box-shadow: 0 0 0 4px rgba(10,149,31,.2); }
.search-form { display: flex; gap: 10px; }
.search-form label { flex: 1; }
.search-submit { flex: none; }

/* Kommentare */
.rf-kommentare { margin-top: 64px; }
.comment-list { list-style: none; padding: 0; }
.comment-list .children { list-style: none; padding-left: 28px; }
.comment-body { background: var(--rf-mintweiss); border-radius: var(--rf-radius-s); padding: 18px 20px; margin-bottom: 16px; }
.comment-meta { font-size: .9rem; color: var(--rf-grau); }
.comment-author .avatar { border-radius: 50%; vertical-align: middle; margin-right: 8px; }

/* 404 */
.rf-404 { text-align: center; padding: 70px 0 100px; }
.rf-404 img { max-height: 320px; width: auto; }
.rf-404 h1 { margin-top: .4em; }

/* Sitemap */
.rf-sitemap ul { list-style: none; padding-left: 1.2em; }
.rf-sitemap > ul { padding-left: 0; }
.rf-sitemap li { margin: .25em 0; }
.rf-sitemap > ul > li > a { font-family: var(--rf-font-head); font-weight: 800; text-transform: uppercase; font-size: 1.3rem; }

/* ---------- Footer ---------- */
.rf-footer { background: var(--rf-gruen); color: #e7f7e2; position: relative; }
.rf-footer a:not(.rf-button) { color: #fff; }
.rf-footer__welle { display: block; position: absolute; left: 0; top: -58px; width: 100%; height: 60px; background: transparent; z-index: 2; pointer-events: none; }
.rf-footer__top { display: grid; grid-template-columns: minmax(0, 380px) auto auto auto; justify-content: space-between; gap: 40px; padding: 22px 0 26px; }
.rf-footer h2 { color: #fff; font-size: 1.6rem; margin: 0 0 .6em; }
.rf-footer ul { list-style: none; padding: 0; margin: 0; }
.rf-footer li { margin-bottom: 0; line-height: 1.55; }
.rf-footer h2 { margin-bottom: .4em; }
.rf-footer p { margin: 0 0 .8em; line-height: 1.5; }
.rf-footer li a { text-decoration: none; }
.rf-footer li a:hover { text-decoration: underline; }
.rf-footer__marke { display: flex; gap: 20px; align-items: flex-start; }
.rf-footer__marke img { width: 120px; flex: none; }
.rf-footer__bottom { border-top: 1px solid rgba(255,255,255,.2); padding: 12px 0 16px; font-size: .95rem; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; }
.rf-footer .widget { margin-bottom: 1.4em; }
.rf-nach-oben { position: fixed; right: 18px; bottom: 18px; width: 50px; height: 50px; border-radius: 50%; background: var(--rf-rot); color: #fff; border: 3px solid var(--rf-blau); box-shadow: 0 4px 0 var(--rf-blau); display: flex; align-items: center; justify-content: center; text-decoration: none; opacity: 0; pointer-events: none; transition: opacity .2s; z-index: 40; font-size: 1.4rem; font-weight: 900; }
.rf-nach-oben.is-sichtbar { opacity: 1; pointer-events: auto; }
.rf-nach-oben:hover { color: #fff; background: var(--rf-rot-dunkel); }
@media (max-width: 860px) { .rf-footer__top { grid-template-columns: 1fr; gap: 28px; } }

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

/* ---------- Downloads ---------- */
.rf-dl-liste { display: grid; gap: 22px; margin: 1.5em auto 2em; max-width: 860px; }
.rf-dl { display: grid; grid-template-columns: 150px 1fr; gap: 22px; align-items: center; background: #fff; border: 3px solid var(--rf-blau); border-radius: var(--rf-radius); box-shadow: var(--rf-schatten); padding: 18px 22px; }
.rf-dl__bild { display: block; background: var(--rf-mintweiss); border-radius: 10px; padding: 8px; }
.rf-dl__bild img { display: block; width: 100%; height: auto; border: 1px solid var(--rf-linie); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,44,93,.15); }
.rf-dl__text h3 { margin: 0 0 .25em; font-size: 1.45rem; }
.rf-dl__text p { margin: 0 0 .7em; }
.rf-dl__knoepfe { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: .4em 0 0 !important; }
.rf-dl__link { font-weight: 800; }
@media (max-width: 560px) { .rf-dl { grid-template-columns: 90px 1fr; gap: 14px; padding: 14px; } .rf-dl__text h3 { font-size: 1.2rem; } }
.rf-seitenkopf > .rf-seitenkopf__hanno { position: absolute; right: max(16px, calc(50% - 560px)); bottom: 30px; margin: 0; height: 150px; }
@media (max-width: 700px) { .rf-seitenkopf > .rf-seitenkopf__hanno { height: 90px; opacity: .9; } }

/* ---------- Intervalltraining: Levels ---------- */
.rf-level { margin: 0 auto 3.2em; }
.rf-level + .rf-level { padding-top: 2.6em; border-top: 4px dashed var(--rf-hellgruen); }
.rf-level__kopf { max-width: 760px; margin: 0 auto 1.2em; text-align: center; }
.rf-level__nr { display: inline-flex; align-items: center; justify-content: center; height: 2em; box-sizing: border-box; font-family: var(--rf-font-head); font-weight: 800; text-transform: uppercase; letter-spacing: .06em; font-size: 1.05rem; line-height: 1; color: #fff; background: var(--rf-gruen); border-radius: 999px; padding: 0 1.1em .1em; }
.rf-level__nr::before { content: ""; display: block; height: .08em; } /* optischer Ausgleich der Versalhöhe */
.rf-level--2 .rf-level__nr { background: var(--rf-rot); }
.rf-level--3 .rf-level__nr { background: var(--rf-blau); }
.rf-level__kopf h2 { margin: .35em 0 .25em; }
.rf-level__kopf p { margin: 0; }
/* Notenzeichen immer schwarz – wie in der Druck-PDF */
svg.rf-note { color: #000; }

/* Kontakt: Hanno groß */
.rf-seitenkopf > .rf-seitenkopf__hanno--gross { height: 260px; }
.rf-seitenkopf--gross { padding-top: 150px; }
@media (max-width: 700px) { .rf-seitenkopf--gross { padding-top: 60px; } }
@media (max-width: 700px) { .rf-seitenkopf > .rf-seitenkopf__hanno--gross { height: 150px; } }

/* Startseite: neueste Blogbeiträge – 3/4/5 je nach Breite, neueste zuerst */
.rf-wrap--blog { width: min(100% - 32px, 1500px); }
.rf-beitraege--start { grid-template-columns: repeat(3, 1fr); gap: 20px; }
.rf-beitraege--start > :nth-child(n+4) { display: none; }
.rf-beitraege--start .rf-beitrag h2 { font-size: 1.4rem; }
.rf-beitraege--start .rf-beitrag__body { padding: 16px 18px 20px; }
.rf-beitraege--start .rf-beitrag__excerpt { font-size: .97rem; }
@media (min-width: 1240px) { .rf-beitraege--start { grid-template-columns: repeat(4, 1fr); } .rf-beitraege--start > :nth-child(4) { display: flex; } }
@media (min-width: 1560px) { .rf-beitraege--start { grid-template-columns: repeat(5, 1fr); } .rf-beitraege--start > :nth-child(5) { display: flex; } }
@media (max-width: 900px) { .rf-beitraege--start { grid-template-columns: 1fr; max-width: 560px; margin-inline: auto; } }
.rf-beitraege__alle { text-align: center; margin: 34px 0 0; }
/* Hanno-Tipp im Blogbeitrag (Hanno + Sprechblase) */
.entry-content > .rf-hannotipp { max-width: var(--rf-breite-text); margin-top: 2.2em; margin-bottom: 2.2em; gap: 18px; }
.rf-hannotipp .is-style-rf-sprechblase { margin: 0 0 1em; }
.rf-hannotipp img { display: block; max-width: 100%; height: auto; margin-inline: auto; }
@media (max-width: 781px) { .rf-hannotipp > .wp-block-column:first-child { max-width: 150px; margin-inline: auto; } }

/* Startseite Quiz-Abschnitt: helles Cover-Grün, Hanno auf weißer Fläche */
.rf-section--hell { background: var(--rf-hellgruen); color: var(--rf-blau); }
.rf-section--hell h2 { color: var(--rf-gruen); }
.rf-section--hell .rf-eyebrow { color: var(--rf-rot); }
.rf-section--hell .rf-liste-haken a { color: var(--rf-blau); font-weight: 700; text-decoration-color: rgba(0,44,93,.35); }
.rf-section--hell .rf-liste-haken a:hover { color: var(--rf-rot); }
.rf-section--hell .rf-split__bild::before { background: #fff; }
@media (max-width: 700px) { .rf-eyebrow { font-size: 1.25rem; } }

@media (min-width: 861px) and (max-width: 1100px) { .rf-footer__top { grid-template-columns: auto auto auto; } .rf-footer__marke { grid-column: 1 / -1; } }
/* Seitenkopf: dezente Instrumentenzeichnungen wie im Startseiten-Kopf */
.rf-seitenkopf { background-image: url("assets/img/kopf-instrumente.webp"); background-repeat: no-repeat; background-position: center 14px; background-size: min(var(--rf-breite), calc(100% - 32px)) auto; }
@media (max-width: 700px) { .rf-seitenkopf { background-size: 760px auto; background-position: 30% 10px; } }
/* Breite Motive (z. B. Leiter) dürfen über den Bildrand des Kärtchens hinausragen */
.rf-karte__bild img[src*="hanno-tonleiter-nah"] { max-width: none; }
/* Unterseiten mit Hanno im Kopf: Kopf so hoch, dass Hanno ganz hineinpasst */
.rf-seitenkopf--hanno { padding-top: 80px; }
@media (max-width: 700px) { .rf-seitenkopf--hanno { padding-top: 50px; } }
/* Kontakt: Hanno im weißen Inhaltsbereich neben dem Text */
.rf-kontakt { display: flex; align-items: center; justify-content: center; gap: 48px; max-width: var(--rf-breite-text); margin-inline: auto; }
.rf-kontakt .entry-content { flex: 1; }
.rf-kontakt .entry-content > * { margin-left: 0; }
.rf-kontakt__hanno { flex: none; height: 300px; width: auto; }
@media (max-width: 700px) { .rf-kontakt { flex-direction: column; gap: 24px; } .rf-kontakt__hanno { height: 220px; } }
/* Intervalltraining: Hanno auf der Leiter, unten gekürzt – Kopf so groß wie bei den anderen Bereichen */
.rf-seitenkopf__hanno.rf-seitenkopf__hanno--leiter { height: 230px; }
@media (max-width: 700px) { .rf-seitenkopf__hanno.rf-seitenkopf__hanno--leiter { height: 120px; } }
@media (max-width: 700px) { .rf-seitenkopf__inner { flex-wrap: wrap; row-gap: 0; } .rf-seitenkopf__inner > .rf-seitenkopf__hanno { margin-left: auto; margin-top: -14px; } }
/* Buchcover auf der Startseite: Link in den Shop, hebt sich beim Überfahren ab */
.rf-buchcover { display: inline-block; position: relative; z-index: 1; transform: rotate(-3deg); transition: transform .25s ease; border-radius: 10px; }
.rf-buchcover img { display: block; max-height: 440px; width: auto; border-radius: 10px; box-shadow: 0 18px 40px rgba(0,44,93,.25); transition: box-shadow .25s ease; }
.rf-buchcover:hover, .rf-buchcover:focus-visible { transform: rotate(-1.5deg) scale(1.07) translateY(-6px); }
.rf-buchcover:hover img, .rf-buchcover:focus-visible img { box-shadow: 0 30px 60px rgba(0,44,93,.42), 0 0 0 4px #fff; }
@media (max-width: 860px) { .rf-buchcover img { max-height: 300px; } }
@media (prefers-reduced-motion: reduce) { .rf-buchcover, .rf-buchcover img { transition: none; } }
/* Hanno hebt sich überall mit einem feinen Schatten vom Hintergrund ab */
img[src*="/hanno-"]:not([src*="hero-hanno"]) { filter: drop-shadow(0 2px 1px rgba(0,44,93,.12)) drop-shadow(0 6px 10px rgba(0,44,93,.18)); }
/* Blog-Kärtchen: Hanno größer, unten angeschnitten */
.rf-beitrag__bild--leer img { top: auto; bottom: 0; height: 94%; width: 94%; max-width: none; object-fit: contain; object-position: center bottom; }

/* Erfolge: Sterne und Krone in Listen (Quiz, Intervalltraining) */
.rf-listeneintrag[data-rf-erfolg] { grid-template-columns: 58px 1fr auto; }
.rf-erfolg { position: relative; display: inline-flex; align-items: center; padding: 6px 4px 0 0; white-space: nowrap; }
.rf-erfolg__sterne { font-size: 1.35rem; letter-spacing: 1px; color: var(--rf-linie, #d5e9cd); line-height: 1; }
.rf-erfolg__sterne .is-an { color: #f7b500; text-shadow: 0 2px 0 rgba(0, 44, 93, .35); }
.rf-erfolg__krone { position: absolute; right: -10px; top: -12px; width: 26px; height: 20px; transform: rotate(18deg); filter: drop-shadow(0 2px 0 rgba(0, 44, 93, .35)); }
.rf-quiz__sterne.has-krone, .rf-metronom__sterne.has-krone { position: relative; display: inline-block; padding-right: 12px; }
.rf-quiz__sterne .rf-erfolg__krone { width: 44px; height: 33px; right: -26px; top: -24px; }
.rf-metronom__sterne .rf-erfolg__krone { width: 30px; height: 23px; right: -16px; top: -14px; }
@media (max-width: 480px) { .rf-listeneintrag[data-rf-erfolg] { grid-template-columns: 50px 1fr auto; } .rf-erfolg__sterne { font-size: 1.1rem; } }

/* Intervalltraining: gesperrte Stufen */
.rf-listeneintrag.is-gesperrt { opacity: .62; cursor: not-allowed; filter: grayscale(.6); }
.rf-listeneintrag.is-gesperrt:hover { transform: none; }
.rf-sperre { display: flex; align-items: center; margin-left: auto; padding-left: 8px; flex: 0 0 auto; color: var(--rf-blau); }
.rf-schloss { width: 24px; height: 24px; flex: 0 0 auto; }
.rf-iv__gesperrt, .rf-iv__rueckschritt { margin: 1em 0 0; padding: .8em 1em; border-radius: 14px; background: var(--rf-mintweiss); border: 3px solid var(--rf-hellgruen); }
.rf-iv__gesperrt { display: flex; gap: .7em; align-items: flex-start; }
.rf-iv__gesperrt .rf-schloss { width: 28px; height: 28px; color: var(--rf-blau); }
.rf-iv__rueckschritt { border-color: var(--rf-orange); background: #fff7ec; }
.rf-iv__rueckschritt p { margin: 0 0 .5em; }

/* Hinweis aufs freie Intervalltraining unter Level 3 */
.rf-frei-hinweis { max-width: 900px; margin: 0 auto 3em; display: flex; flex-wrap: wrap; gap: 1em 1.6em; align-items: center; justify-content: space-between; padding: 1.2em 1.4em; border: 3px solid var(--rf-blau); border-radius: var(--rf-radius); background: var(--rf-mintweiss); box-shadow: var(--rf-schatten); }
.rf-frei-hinweis > div { flex: 1 1 320px; }
.rf-frei-hinweis h3 { margin: 0 0 .3em; color: var(--rf-blau); }
.rf-frei-hinweis p { margin: 0; }
.rf-dl__bald { display: inline-block; font-weight: 700; color: var(--rf-grau); padding: .4em 0; }

/* Wellen ohne Haarstrich (2.29): Kopfbereich überlappt den folgenden Abschnitt um 1 px,
   der weiße Abschnitt darunter deckt die letzte Pixelzeile ab – bei jeder Zoomstufe. */
.rf-hero { margin-bottom: -1px; }
.rf-hero + * { position: relative; z-index: 1; }
.rf-hero__welle, .rf-footer__welle { shape-rendering: geometricPrecision; }

/* Kästen im Blog (Hanno-Tipp, Mitmach-Aufgabe, Übetipp): Text senkrecht mittig – keine Leerzeile unter dem letzten Absatz (2.29.1) */
.is-style-rf-sprechblase > :first-child, .is-style-rf-merkkasten > :first-child, .is-style-rf-uebetipp > :first-child,
.is-style-rf-sprechblase > .wp-block-group__inner-container > :first-child,
.is-style-rf-merkkasten > .wp-block-group__inner-container > :first-child,
.is-style-rf-uebetipp > .wp-block-group__inner-container > :first-child { margin-top: 0; }
.is-style-rf-sprechblase > :last-child,
.is-style-rf-sprechblase > .wp-block-group__inner-container > :last-child,
.is-style-rf-merkkasten > .wp-block-group__inner-container > :last-child,
.is-style-rf-uebetipp > .wp-block-group__inner-container > :last-child { margin-bottom: 0; }

/* Listen mit Vorschaubild (z. B. Flötenfeuer-Videos) */
.rf-listeneintrag--bild { grid-template-columns: 104px 1fr; }
.rf-listeneintrag--bild .rf-listeneintrag__nr { width: 104px; height: 78px; padding: 0; overflow: hidden; }
.rf-listeneintrag--bild .rf-listeneintrag__nr img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* Video-Startbild */
.rf-video__start.has-poster { background-color: var(--rf-hellgruen); background-size: cover; background-position: center; padding-right: 46%; }
.rf-video__start.has-poster strong { background: var(--rf-blau); color: #fff; border-radius: 999px; line-height: 1; padding: .47em .9em .33em; }

/* Lange Wörter in Listenkärtchen umbrechen statt herauslaufen */
.rf-listeneintrag > span:last-child { min-width: 0; }
.rf-listeneintrag__titel { hyphens: manual; -webkit-hyphens: manual; }
/* Passt dazu: Trainings und Downloads unter einem Video */
.rf-passt { max-width: var(--rf-breite-text); margin: 0 auto 30px; background: var(--rf-mintweiss); border-radius: var(--rf-radius); padding: 20px 24px; }
.rf-passt h2 { margin: 0 0 .4em; font-size: 1.6rem; color: var(--rf-gruen); }
.rf-passt h3 { margin: .8em 0 .4em; font-size: 1.1rem; color: var(--rf-blau); }
.rf-passt__knoepfe { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
