/*
Theme Name: CeFiSystems
Theme URI: https://www.cefisystems.de/
Author: CeFiSystems Cedric Fischer
Author URI: https://www.cefisystems.de/
Description: Block-Theme für CeFiSystems – Kassensysteme, Payment-Schnittstellen und POS-Hardware. Farben aus dem CeFi-Logo, jeder Leistungsbereich hat einen festen Logo-Blauton. Schriften lokal eingebunden (keine externen Anfragen).
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.1
Version: 1.10.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cefisystems
Tags: block-patterns, full-site-editing, custom-colors, one-column, wide-blocks
*/

/* ------------------------------------------------------------------
   1. Grundlagen
   ------------------------------------------------------------------ */

:root {
	--cefi-accent: var(--wp--preset--color--cefi-e);
	--cefi-on-accent: var(--wp--preset--color--weiss);
	--cefi-cube: url(assets/img/cube-payment.svg);
	--cefi-rail: 4px;
}

body {
	font-stretch: 100%;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

h1, h2, h3, h4,
.wp-block-post-title,
.wp-block-site-title {
	font-stretch: 112%;
	text-wrap: balance;
}

p { text-wrap: pretty; }

:where(a):focus-visible,
:where(button):focus-visible,
:where(summary):focus-visible {
	outline: 2px solid var(--wp--preset--color--cefi-e);
	outline-offset: 3px;
	border-radius: 2px;
}


::selection { background: var(--wp--preset--color--cefi-i); color: var(--wp--preset--color--tinte); }

/* Vollflächige Abschnitte schließen ohne weiße Fugen aneinander an */
.wp-site-blocks > main,
.wp-site-blocks > footer,
.wp-block-post-content > .alignfull,
main > .alignfull { margin-block-start: 0; }
.wp-block-post-content > .alignfull:first-child { margin-block-start: 0; }

/* Bereichs-Codierung: jeder Leistungsbereich hat einen Logo-Blauton */
.cefi-area--kasse,    .is-style-bereich-kasse    { --cefi-accent: var(--wp--preset--color--cefi-c); --cefi-cube: url(assets/img/cube-kasse.svg); }
.cefi-area--payment,  .is-style-bereich-payment  { --cefi-accent: var(--wp--preset--color--cefi-e); --cefi-cube: url(assets/img/cube-payment.svg); }
.cefi-area--hardware, .is-style-bereich-hardware { --cefi-accent: var(--wp--preset--color--cefi-f); --cefi-cube: url(assets/img/cube-hardware.svg); }
.cefi-area--service,  .is-style-bereich-service  { --cefi-accent: var(--wp--preset--color--cefi-i); --cefi-cube: url(assets/img/cube-service.svg); }

/* Abschnitte */
.cefi-section {
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--60);
}
.cefi-section--nebel { background: var(--wp--preset--color--nebel); }
.cefi-section--eng {
	padding-top: var(--wp--preset--spacing--50);
	padding-bottom: var(--wp--preset--spacing--50);
}

.cefi-lead {
	font-size: var(--wp--preset--font-size--gross);
	color: var(--wp--preset--color--schiefer);
	max-width: 60ch;
}

.cefi-section-intro { max-width: 46rem; margin-bottom: var(--wp--preset--spacing--50); }
.cefi-section-intro > * + * { margin-top: 1rem; }

/* ------------------------------------------------------------------
   2. Kopfzeile
   ------------------------------------------------------------------ */

.cefi-header {
	border-bottom: 1px solid var(--wp--preset--color--linie);
	background: var(--wp--preset--color--weiss);
	padding-top: .9rem;
	padding-bottom: .9rem;
}
.cefi-header__inner { gap: 1.5rem; }

.cefi-brand {
	display: inline-flex;
	align-items: center;
	gap: .7rem;
	color: var(--wp--preset--color--tinte);
	text-decoration: none;
	font-weight: 700;
	font-stretch: 112%;
	font-size: 1.3rem;
	letter-spacing: -0.01em;
	line-height: 1;
}
.cefi-brand img { height: 44px; width: auto; display: block; }
.cefi-brand:hover { color: var(--wp--preset--color--cefi-e); }

.cefi-header .wp-block-navigation { gap: 1.35rem; }
.cefi-header .wp-block-navigation .current-menu-item > a,
.cefi-header .wp-block-navigation a[aria-current="page"] {
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: .45em;
	text-decoration-color: var(--wp--preset--color--cefi-e);
}
.cefi-header .wp-block-buttons { flex-shrink: 0; }

@media (max-width: 781px) {
	.cefi-header .cefi-header__cta { display: none; }
}

/* ------------------------------------------------------------------
   3. Aufmacher (Startseite) mit Logo-Bausteinen
   ------------------------------------------------------------------ */

.cefi-hero {
	padding-top: var(--wp--preset--spacing--50);
	padding-bottom: var(--wp--preset--spacing--60);
	overflow: hidden;
}
.cefi-hero .wp-block-columns { align-items: center; gap: var(--wp--preset--spacing--50); }
.cefi-hero h1 { font-size: var(--wp--preset--font-size--riesig); max-width: 15ch; }
.cefi-hero .cefi-lead { margin-top: 1.5rem; }
.cefi-hero .wp-block-buttons { margin-top: 2rem; }

.cefi-cluster { display: block; width: 100%; height: auto; max-width: 600px; margin-inline: auto; overflow: visible; }
.cefi-cluster a, .cefi-cluster text { text-decoration: none; }
.cefi-cube { cursor: pointer; transition: translate .25s ease; animation: cefi-drop .8s cubic-bezier(.2, .8, .2, 1) both; animation-delay: calc(var(--i) * 130ms + 150ms); }
.cefi-cube:hover, .cefi-cube:focus-visible { translate: 0 -16px; }
.cefi-cube:focus { outline: none; }
.cefi-cube:focus-visible .cefi-cube__front { stroke: var(--wp--preset--color--tinte); stroke-width: 14; }
.cefi-cube__label {
	font-family: var(--wp--preset--font-family--archivo);
	font-weight: 700;
	font-size: 86px;
	font-stretch: 100%;
	letter-spacing: -0.01em;
	pointer-events: none;
}
.cefi-hero__hint {
	text-align: center;
	color: var(--wp--preset--color--schiefer);
	font-size: var(--wp--preset--font-size--klein);
	margin-top: 1rem;
}

@keyframes cefi-drop {
	from { opacity: 0; transform: translateY(-60px); }
	to   { opacity: 1; transform: none; }
}

@media (max-width: 781px) {
	.cefi-cluster { max-width: 380px; }
}

/* Leiste mit Terminal-Herstellern unter dem Aufmacher */
.cefi-strip {
	background: var(--wp--preset--color--nebel);
	padding-top: 1.4rem;
	padding-bottom: 1.4rem;
}
.cefi-strip p { margin: 0; color: var(--wp--preset--color--schiefer); }
.cefi-strip .cefi-inline-list { margin: 0; }
/* Terminal-Hersteller im ZVT13-Abschnitt */
.cefi-vendors { gap: .5rem 1.5rem; }
.cefi-vendors > p { margin: 0; }
.cefi-zvt-vendors {
	margin-top: var(--wp--preset--spacing--50);
	padding-top: 1.5rem;
	border-top: 1px solid rgba(157, 171, 215, .25);
}
.cefi-dark .cefi-vendors > p { color: #AAB6D8; }
.cefi-dark .cefi-inline-list { color: #fff; }

.cefi-inline-list {
	list-style: none;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: .4rem 1.75rem;
	font-weight: 600;
	font-stretch: 108%;
	color: var(--wp--preset--color--tinte);
}
.cefi-inline-list li { margin: 0; }

/* ------------------------------------------------------------------
   4. Leistungsbereiche
   ------------------------------------------------------------------ */

.cefi-areas { row-gap: var(--wp--preset--spacing--50); }

.cefi-area {
	border-top: var(--cefi-rail) solid var(--cefi-accent);
	padding-top: 1.5rem;
}
.cefi-area > h3,
.cefi-area > h2 {
	display: flex;
	align-items: center;
	gap: .75rem;
}
.cefi-area > h3::before,
.cefi-area > h2::before {
	content: "";
	flex: 0 0 auto;
	width: 1.6em;
	height: 1.75em;
	background: var(--cefi-cube) center / contain no-repeat;
}
.cefi-area p { color: var(--wp--preset--color--schiefer); }
.cefi-area ul { padding-left: 1.1rem; margin-top: 1rem; }
.cefi-area li { margin: .3rem 0; }
.cefi-area li::marker { color: var(--cefi-accent); }
.cefi-area .cefi-more { margin-top: 1.25rem; font-weight: 600; }

/* Der Nebenbereich (IT-Service) bleibt bewusst leiser */
.cefi-side {
	border-left: var(--cefi-rail) solid var(--cefi-accent);
	padding-left: var(--wp--preset--spacing--40);
}
.cefi-side h2 { font-size: var(--wp--preset--font-size--x-gross); }
.cefi-side p { color: var(--wp--preset--color--schiefer); max-width: 62ch; }

/* ------------------------------------------------------------------
   5. Dunkler Abschnitt (ZVT13)
   ------------------------------------------------------------------ */

.cefi-dark {
	background: var(--wp--preset--color--tinte);
	color: #DCE3F3;
}
.cefi-dark h1, .cefi-dark h2, .cefi-dark h3, .cefi-dark h4 { color: #fff; }
.cefi-dark a:where(:not(.wp-element-button)) { color: var(--wp--preset--color--cefi-i); }
.cefi-dark a:where(:not(.wp-element-button)):hover { color: #fff; }
.cefi-dark .cefi-lead { color: #C3CDE6; }
.cefi-dark .cefi-log-caption { color: #AAB6D8; }
.cefi-dark .wp-block-button:not(.is-style-outline) .wp-element-button {
	background: var(--wp--preset--color--weiss);
	border-color: var(--wp--preset--color--weiss);
	color: var(--wp--preset--color--tinte);
}
.cefi-dark .wp-block-button:not(.is-style-outline) .wp-element-button:hover {
	background: var(--wp--preset--color--cefi-i);
	border-color: var(--wp--preset--color--cefi-i);
}
.cefi-dark .is-style-outline .wp-element-button { color: #fff; }
.cefi-dark .is-style-outline .wp-element-button:hover { background: rgba(255, 255, 255, .1); color: #fff; }
.cefi-dark :where(a, button):focus-visible { outline-color: #fff; }

/* Protokollmitschnitt einer Zahlung */
.cefi-log {
	margin: 0;
	padding: 1.25rem 1.5rem;
	list-style: none;
	background: #1B305E;
	border-left: var(--cefi-rail) solid var(--wp--preset--color--cefi-e);
	font-family: var(--wp--preset--font-family--plex-mono);
	font-size: .9rem;
	line-height: 1.5;
	color: #DCE3F3;
}
.cefi-log li {
	display: grid;
	grid-template-columns: 1.4rem 4.2rem 1fr;
	gap: .5rem;
	padding: .5rem 0;
	border-bottom: 1px solid rgba(157, 171, 215, .18);
}
.cefi-log li:last-child { border-bottom: 0; }
.cefi-log .dir { color: var(--wp--preset--color--cefi-i); font-family: var(--wp--preset--font-family--archivo); font-size: 1.1rem; line-height: 1.3; }
.cefi-log .apdu { color: #fff; font-weight: 500; }
.cefi-log .txt { font-family: var(--wp--preset--font-family--archivo); font-size: .95rem; }

.cefi-checklist { padding-left: 1.1rem; margin-top: 1.25rem; }
.cefi-checklist li { margin: .4rem 0; }
.cefi-checklist li::marker { color: var(--cefi-accent); }

/* MDBPay */
.cefi-mdbpay { align-items: start; }
.cefi-mdbpay .cefi-area h3 { font-size: var(--wp--preset--font-size--gross); }

/* POS Bridge: Schichtenbild der Plattform */
.cefi-stack { display: grid; gap: .6rem; }
.cefi-stack__row {
	display: grid;
	grid-template-columns: 7.5rem 1fr;
	gap: 1rem;
	align-items: center;
}
.cefi-stack__label { font-size: var(--wp--preset--font-size--klein); color: #AAB6D8; font-weight: 600; }
.cefi-stack__boxes { display: flex; flex-wrap: wrap; gap: .45rem; }
.cefi-stack__boxes span {
	flex: 1 1 auto;
	padding: .65rem .85rem;
	font-size: .92rem;
	font-weight: 600;
	text-align: center;
	border-radius: 3px;
	color: var(--wp--preset--color--tinte);
}
.cefi-stack__row--ui .cefi-stack__boxes span { background: #fff; }
.cefi-stack__row--bridge .cefi-stack__boxes span { background: var(--wp--preset--color--cefi-c); color: #fff; padding-top: 1rem; padding-bottom: 1rem; }
.cefi-stack__row--mod .cefi-stack__boxes span { background: var(--wp--preset--color--cefi-e); color: #fff; }
.cefi-stack__row--dev .cefi-stack__boxes span { background: var(--wp--preset--color--cefi-i); }
@media (max-width: 600px) {
	.cefi-stack__row { grid-template-columns: 1fr; gap: .35rem; }
}

/* Feld „Und noch vieles mehr!“ im Funktionsraster */
.cefi-hw > .wp-block-group.cefi-more-box {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: minmax(14rem, 1fr) 2fr;
	gap: .5rem 3rem;
	align-items: start;
	padding: 1.75rem 2rem;
	border-left: 0;
	background: var(--wp--preset--color--cefi-e);
	color: #fff;
}
.cefi-hw > .cefi-more-box > * { margin: 0; }
.cefi-hw > .cefi-more-box h3 { color: #fff; font-size: var(--wp--preset--font-size--x-gross); grid-row: span 2; }
.cefi-hw > .cefi-more-box p { color: #E9EEF8; }
.cefi-hw > .cefi-more-box ul { color: #fff; margin: 0; }
.cefi-hw > .cefi-more-box li::marker { color: var(--wp--preset--color--cefi-i); }
.cefi-hw > .cefi-more-box .cefi-more { grid-column: 2; }
.cefi-hw > .cefi-more-box a { color: #fff; }
.cefi-hw > .cefi-more-box a:focus-visible { outline-color: #fff; }
@media (max-width: 781px) {
	.cefi-hw > .wp-block-group.cefi-more-box { grid-template-columns: 1fr; padding: 1.5rem; }
	.cefi-hw > .cefi-more-box h3 { grid-row: auto; }
	.cefi-hw > .cefi-more-box .cefi-more { grid-column: 1; }
}

/* Leitsätze (POS Bridge) */
.cefi-pillars h3 { font-size: var(--wp--preset--font-size--gross); }
.cefi-pillars > .wp-block-group { border-left-width: var(--cefi-rail); }

/* ZVT-Simulator: Bildschirmfotos und Lizenzmodell */
.cefi-shot { margin: 0; }
.cefi-shot img {
	display: block;
	width: 100%;
	height: auto;
	border: 1px solid var(--wp--preset--color--linie);
	border-radius: 4px;
	box-shadow: 0 18px 40px -24px rgba(19, 36, 73, .45);
	background: #fff;
}
.cefi-shot figcaption { margin-top: .75rem; font-size: var(--wp--preset--font-size--klein); color: var(--wp--preset--color--schiefer); }
.cefi-shot--gross img { border-top: var(--cefi-rail) solid var(--wp--preset--color--cefi-e); }
.cefi-sim-teaser { align-items: center; }
.cefi-netz { align-items: center; }
.cefi-terminal-menue { align-items: center; }
.cefi-terminal-menue .cefi-checklist { margin-top: 1.5rem; }
.cefi-netz .cefi-stack__label { min-width: 0; }
.cefi-sim-details .cefi-shot img { aspect-ratio: 4 / 3; object-fit: contain; object-position: center top; background: var(--wp--preset--color--nebel); }
/* Vergrößerte Ansicht (Lightbox) zeigt das ganze Bild ohne Rahmen und Zuschnitt */
.wp-lightbox-overlay .cefi-shot img,
.wp-lightbox-overlay img {
	aspect-ratio: auto !important;
	object-fit: contain !important;
	border: 0;
	box-shadow: none;
	background: none;
}
.cefi-sim-details h3 { font-size: var(--wp--preset--font-size--gross); margin-top: 1.25rem; }
.cefi-sim-details p { color: var(--wp--preset--color--schiefer); }
.cefi-licenses { margin-top: var(--wp--preset--spacing--50); }
.cefi-license {
	padding: 1.4rem 1.6rem;
	background: var(--wp--preset--color--nebel);
	border-left: var(--cefi-rail) solid var(--wp--preset--color--cefi-e);
}
.cefi-license > * { margin: 0; }
.cefi-license h3 { font-size: var(--wp--preset--font-size--gross); margin-bottom: .4rem; }
.cefi-license .wp-block-buttons { margin-top: 1rem; }

/* Über uns */
.cefi-role {
	margin-top: -.4rem !important;
	color: var(--wp--preset--color--cefi-e);
	font-weight: 600;
	font-size: var(--wp--preset--font-size--gross);
}
.cefi-facts h3 { font-size: var(--wp--preset--font-size--gross); }
.cefi-facts ul { list-style: none; padding-left: 0; }
.cefi-facts li { padding: .45rem 0; margin: 0; border-bottom: 1px solid var(--wp--preset--color--linie); }
.cefi-more--pair a + a { margin-left: 1.5rem; }
.cefi-portrait { margin: 0 0 2rem; }
.cefi-portrait img { display: block; width: 100%; max-width: 340px; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }

/* Referenzen */
.cefi-refs > .wp-block-group {
	padding: 1.5rem 0;
	border-top: 1px solid var(--wp--preset--color--linie);
	max-width: 52rem;
}
.cefi-refs > .wp-block-group > * { margin-top: .4rem; margin-bottom: 0; }
.cefi-refs h3 { font-size: var(--wp--preset--font-size--x-gross); margin-top: .2rem !important; }
.cefi-ref__meta { font-size: var(--wp--preset--font-size--klein); color: var(--wp--preset--color--cefi-e); font-weight: 600; }
.cefi-ref__status { font-size: var(--wp--preset--font-size--klein); color: #9A4B00; }

.cefi-log-caption {
	font-size: var(--wp--preset--font-size--klein);
	color: var(--wp--preset--color--schiefer);
	margin-top: .75rem;
}

/* Befehlsliste mit ZVT-Klassen */
.cefi-cmds {
	list-style: none;
	padding: 0;
	columns: 2 18rem;
	column-gap: var(--wp--preset--spacing--50);
}
.cefi-cmds li {
	break-inside: avoid;
	padding: .45rem 0;
	border-bottom: 1px solid var(--wp--preset--color--linie);
}
.cefi-dark .cefi-cmds li { border-bottom-color: rgba(157, 171, 215, .2); }
.cefi-cmds code {
	display: inline-block;
	min-width: 3.6rem;
	margin-right: .5rem;
	font-family: var(--wp--preset--font-family--plex-mono);
	font-size: .85em;
	font-weight: 500;
	color: var(--wp--preset--color--cefi-e);
	background: none;
	padding: 0;
}
.cefi-dark .cefi-cmds code { color: var(--wp--preset--color--cefi-i); }

/* ------------------------------------------------------------------
   6. Listen- und Rasterbausteine
   ------------------------------------------------------------------ */

/* Terminal-Kompatibilität */
.cefi-terminals > .wp-block-group { border-top: 1px solid var(--wp--preset--color--linie); padding-top: 1rem; }
.cefi-terminals h3 { font-size: var(--wp--preset--font-size--gross); }
.cefi-terminals p { color: var(--wp--preset--color--schiefer); margin-top: .4rem; }

/* Gerätegruppen (Hardware) */
.cefi-hw { row-gap: 2.25rem; }
.cefi-hw > .wp-block-group {
	border-left: 2px solid var(--cefi-accent);
	padding-left: 1.1rem;
}
.cefi-hw h3 { font-size: var(--wp--preset--font-size--gross); }
.cefi-hw p { color: var(--wp--preset--color--schiefer); margin-top: .35rem; font-size: .98rem; }
.cefi-hw ul { padding-left: 1.1rem; margin-top: .5rem; color: var(--wp--preset--color--schiefer); font-size: .98rem; }
.cefi-hw li { margin: .3rem 0; }
.cefi-hw li::marker { color: var(--cefi-accent); }

/* Ablauf: echte Reihenfolge, daher nummeriert */
.cefi-steps { counter-reset: cefi-step; }
.cefi-steps > .wp-block-group { counter-increment: cefi-step; }
.cefi-steps h3 { font-size: var(--wp--preset--font-size--gross); }
.cefi-steps h3::before {
	content: counter(cefi-step);
	display: block;
	margin-bottom: .6rem;
	font-size: 2.6rem;
	font-weight: 300;
	font-stretch: 125%;
	line-height: 1;
	color: var(--wp--preset--color--cefi-e);
}
.cefi-steps p { color: var(--wp--preset--color--schiefer); margin-top: .5rem; }

/* Downloads (Support) */
.cefi-downloads > .wp-block-group {
	border-top: var(--cefi-rail) solid var(--cefi-accent);
	padding-top: 1.25rem;
}
.cefi-downloads p { color: var(--wp--preset--color--schiefer); }

/* Pressearchiv */
.cefi-press > .wp-block-group {
	display: grid;
	grid-template-columns: 9rem 1fr;
	gap: .25rem 2rem;
	padding: 1.4rem 0;
	border-top: 1px solid var(--wp--preset--color--linie);
}
.cefi-press > .wp-block-group > * { margin: 0; grid-column: 2; }
.cefi-press .cefi-press__date {
	grid-column: 1;
	grid-row: 1 / span 3;
	color: var(--wp--preset--color--schiefer);
	font-variant-numeric: tabular-nums;
	font-weight: 600;
}
.cefi-press h3 { font-size: var(--wp--preset--font-size--gross); }
.cefi-press p { color: var(--wp--preset--color--schiefer); }
@media (max-width: 600px) {
	.cefi-press > .wp-block-group { grid-template-columns: 1fr; }
	.cefi-press > .wp-block-group > *,
	.cefi-press .cefi-press__date { grid-column: 1; grid-row: auto; }
}

/* Hinweisbox (z. B. Entwurfshinweise) */
.cefi-notice {
	border-left: var(--cefi-rail) solid var(--wp--preset--color--cefi-e);
	background: var(--wp--preset--color--weiss);
	padding: 1.1rem 1.4rem;
}
.cefi-notice p { margin: 0; }

/* ------------------------------------------------------------------
   7. Seitenkopf für Unterseiten (einheitlich auf allen Seiten)
   ------------------------------------------------------------------ */

.cefi-pagehead {
	position: relative;
	background: var(--wp--preset--color--nebel);
	padding-top: var(--wp--preset--spacing--50);
	padding-bottom: var(--wp--preset--spacing--50);
	overflow: hidden;
	border-bottom: var(--cefi-rail) solid var(--cefi-accent);
}
.cefi-pagehead::after {
	content: "";
	position: absolute;
	right: max(var(--wp--preset--spacing--40), calc((100% - 1240px) / 2));
	top: 50%;
	height: min(70%, 180px);
	aspect-ratio: 680 / 760;
	translate: 0 -50%;
	background: var(--cefi-cube) center / contain no-repeat;
}
.cefi-pagehead > * { position: relative; z-index: 1; }
.cefi-pagehead__text { padding-right: clamp(0px, 14vw, 200px); }
.cefi-pagehead :where(h1, .wp-block-post-title) {
	font-size: var(--wp--preset--font-size--xx-gross);
	max-width: 22ch;
}
.cefi-pagehead .cefi-lead { margin-top: 1rem; max-width: 52ch; }
.cefi-pagehead .cefi-crumb {
	font-size: var(--wp--preset--font-size--klein);
	color: var(--wp--preset--color--schiefer);
	margin-bottom: .75rem;
}
.cefi-pagehead .cefi-crumb a { color: inherit; }
@media (max-width: 900px) {
	.cefi-pagehead::after { opacity: .18; right: -30px; }
}

/* Normale Seiten (Impressum, Datenschutz, Altseiten) */
.cefi-content {
	padding-top: var(--wp--preset--spacing--50);
	padding-bottom: var(--wp--preset--spacing--60);
}
.cefi-content :where(h2) { font-size: var(--wp--preset--font-size--x-gross); margin-top: 2.5rem; }
.cefi-content :where(h3) { font-size: var(--wp--preset--font-size--gross); margin-top: 2rem; }
.cefi-content :where(h4) { font-size: var(--wp--preset--font-size--normal); margin-top: 1.5rem; }
.cefi-content :where(p, li) { overflow-wrap: break-word; hyphens: manual; }
.cefi-content :where(img) { height: auto; }
.cefi-content table { border-collapse: collapse; width: 100%; }
.cefi-content :where(th, td) { border-bottom: 1px solid var(--wp--preset--color--linie); padding: .5rem .75rem .5rem 0; text-align: left; }

/* ------------------------------------------------------------------
   8. Kontakt-Abschnitt
   ------------------------------------------------------------------ */

.cefi-cta {
	background: var(--wp--preset--color--cefi-e);
	color: #fff;
}
.cefi-cta h2 { color: #fff; }
.cefi-cta p { color: #E9EEF8; }
.cefi-cta a:where(:not(.wp-element-button)) { color: #fff; }
.cefi-cta .wp-block-button:not(.is-style-outline) .wp-element-button {
	background: #fff;
	border-color: #fff;
	color: var(--wp--preset--color--tinte);
}
.cefi-cta .wp-block-button:not(.is-style-outline) .wp-element-button:hover {
	background: var(--wp--preset--color--tinte);
	border-color: var(--wp--preset--color--tinte);
	color: #fff;
}
.cefi-cta .is-style-outline .wp-element-button { color: #fff; }
.cefi-cta .is-style-outline .wp-element-button:hover { background: rgba(255, 255, 255, .12); }
.cefi-cta :where(a, button):focus-visible { outline-color: #fff; }
.cefi-contact-lines p { margin: .25rem 0; font-size: var(--wp--preset--font-size--gross); }
.cefi-contact-lines a { text-decoration-thickness: 1px; text-underline-offset: .2em; }

/* ------------------------------------------------------------------
   9. Fußzeile
   ------------------------------------------------------------------ */

.cefi-footer {
	background: var(--wp--preset--color--tinte);
	color: #C3CDE6;
	padding-top: var(--wp--preset--spacing--50);
	padding-bottom: var(--wp--preset--spacing--40);
	font-size: .97rem;
}
.cefi-footer h2 {
	color: #fff;
	font-size: var(--wp--preset--font-size--normal);
	font-stretch: 100%;
	letter-spacing: 0;
	margin-bottom: .75rem;
}
.cefi-footer a { color: #fff; text-decoration: none; }
.cefi-footer a:hover { color: var(--wp--preset--color--cefi-i); text-decoration: underline; }
.cefi-footer :where(a):focus-visible { outline-color: #fff; }
.cefi-footer ul { list-style: none; padding: 0; margin: 0; }
.cefi-footer li { margin: .35rem 0; }
.cefi-footer p { margin: .25rem 0; }
.cefi-footer .cefi-brand { color: #fff; }
.cefi-footer .cefi-brand img { height: 40px; }
.cefi-footer__claim { margin-top: 1rem !important; max-width: 30ch; }
.cefi-footer__motto {
	margin-top: .75rem !important;
	color: #fff;
	font-weight: 600;
	font-stretch: 108%;
	max-width: 30ch;
}
.cefi-footer__bottom {
	margin-top: var(--wp--preset--spacing--50);
	padding-top: 1.25rem;
	border-top: 1px solid rgba(157, 171, 215, .25);
	font-size: var(--wp--preset--font-size--klein);
	gap: .5rem 1.5rem;
}
.cefi-footer__bottom p { margin: 0; }

/* ------------------------------------------------------------------
   10. Beiträge / Archiv
   ------------------------------------------------------------------ */

.cefi-postlist .wp-block-post {
	padding: 1.5rem 0;
	border-top: 1px solid var(--wp--preset--color--linie);
}
.cefi-postlist .wp-block-post-title { font-size: var(--wp--preset--font-size--x-gross); margin: .3rem 0 .5rem; }
.cefi-postlist .wp-block-post-title a { text-decoration: none; color: var(--wp--preset--color--tinte); }
.cefi-postlist .wp-block-post-title a:hover { color: var(--wp--preset--color--cefi-e); }

/* ------------------------------------------------------------------
   11. Bewegung reduzieren
   ------------------------------------------------------------------ */

@media (prefers-reduced-motion: reduce) {
	.cefi-cube { animation: none; transition: none; }
	.cefi-cube:hover, .cefi-cube:focus-visible { translate: none; }
	html { scroll-behavior: auto; }
}

/* ------------------------------------------------------------------
   12. Partner, Fotos, Preise, Artikel
   ------------------------------------------------------------------ */

.cefi-section--linie { border-top: 1px solid var(--wp--preset--color--linie); }
.cefi-partner { align-items: center; }
.cefi-partner p { color: var(--wp--preset--color--schiefer); }
.cefi-logos {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.5rem 2.75rem;
}
.cefi-logos li { margin: 0; }
.cefi-logos img { display: block; height: auto; max-height: 44px; width: auto; }
.cefi-logos .cefi-logo--badge img { max-height: 72px; }

.cefi-terminals-head { align-items: end; margin-bottom: var(--wp--preset--spacing--40); }
.cefi-terminals-head .cefi-section-intro { margin-bottom: 0; }
.cefi-photos { display: flex; gap: 1.5rem; justify-content: flex-end; }
.cefi-photos figure { margin: 0; }
.cefi-photos img {
	display: block;
	height: 220px;
	width: auto;
	border-bottom: var(--cefi-rail) solid var(--wp--preset--color--cefi-e);
	background: #fff;
}
.cefi-photos figcaption { font-size: var(--wp--preset--font-size--klein); color: var(--wp--preset--color--schiefer); margin-top: .5rem; }
@media (max-width: 781px) {
	.cefi-photos { justify-content: flex-start; }
	.cefi-photos img { height: 170px; }
}

.cefi-funcs { row-gap: 2rem; }
.cefi-funcs > .wp-block-group { border-top: 1px solid rgba(157, 171, 215, .3); padding-top: 1rem; }
.cefi-funcs h3 { font-size: var(--wp--preset--font-size--gross); }
.cefi-funcs ul { padding-left: 1.1rem; margin-top: .6rem; }
.cefi-funcs li { margin: .3rem 0; }
.cefi-more-lists { margin-top: var(--wp--preset--spacing--50); }
.cefi-more-lists h3 { font-size: var(--wp--preset--font-size--gross); }
.cefi-more-lists ul { padding-left: 1.1rem; }
.cefi-more-lists li { margin: .35rem 0; }
.cefi-dark li::marker { color: var(--wp--preset--color--cefi-i); }

.cefi-small { font-size: var(--wp--preset--font-size--klein); color: var(--wp--preset--color--schiefer); }

.cefi-prices { margin: 0; }
.cefi-prices table { border-collapse: collapse; width: 100%; }
.cefi-prices th, .cefi-prices td {
	text-align: left;
	padding: .8rem 1rem .8rem 0;
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--linie);
	vertical-align: top;
}
.cefi-prices thead th {
	font-size: var(--wp--preset--font-size--klein);
	color: var(--wp--preset--color--schiefer);
	font-weight: 600;
	border-bottom: 2px solid var(--wp--preset--color--cefi-e);
}
.cefi-prices th:last-child, .cefi-prices td:last-child { text-align: right; padding-right: 0; width: 7rem; }
.cefi-prices td:last-child { font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cefi-prices small { color: var(--wp--preset--color--schiefer); font-size: .9em; display: inline-block; line-height: 1.45; margin-top: .2rem; }

.cefi-article h2 { font-size: var(--wp--preset--font-size--x-gross); margin-top: 2.5rem; }
.cefi-article h2:first-child { margin-top: 0; }
.cefi-article p { max-width: 68ch; }
.cefi-article .cefi-area h3 + ul { margin-bottom: 1.5rem; }
.cefi-article .cefi-area h3 { font-size: var(--wp--preset--font-size--gross); }

.cefi-content > .cefi-notice { background: var(--wp--preset--color--nebel); margin-bottom: 2rem; }

/* ------------------------------------------------------------------
   13. Hilfsklassen
   ------------------------------------------------------------------ */

.screen-reader-text {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}
.cefi-footer__bottom a + a { margin-left: 1.25rem; }
