/*
Theme Name: Putzfritze
Theme URI: https://www.putzfritze.de
Author: Putzfritze.de GmbH
Author URI: https://www.putzfritze.de
Description: Massgeschneidertes WordPress-Theme fuer die Putzfritze.de GmbH, Gebaeudereinigung Berlin. Enthaelt vollstaendige Rechtstexte (Impressum, Datenschutz, AGB, Widerruf), DSGVO-konformes Cookie-Consent, technische SEO-Optimierung (JSON-LD, Meta, Canonical, Sitemap, Breadcrumbs) und Local-SEO-Landingpages.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: putzfritze
Tags: business, local-business, seo, dsgvo, cleaning
*/

/* ==========================================================================
   1. Design Tokens
   ========================================================================== */

:root {
	/* Markenfarben - hier zentral anpassbar */
	--pf-blue: #0057b8;
	--pf-blue-dark: #04315f;
	--pf-blue-deep: #022342;
	--pf-blue-soft: #e8f1fb;
	--pf-accent: #ffc400;
	--pf-accent-dark: #e0a900;
	--pf-green: #17936a;

	--pf-ink: #10202f;
	--pf-body: #3d4d5c;
	--pf-muted: #6b7c8c;
	--pf-line: #dde5ec;
	--pf-bg: #ffffff;
	--pf-bg-alt: #f4f8fc;

	--pf-radius: 14px;
	--pf-radius-sm: 8px;
	--pf-shadow: 0 2px 4px rgba(4, 49, 95, .04), 0 12px 32px rgba(4, 49, 95, .08);
	--pf-shadow-lg: 0 4px 8px rgba(4, 49, 95, .06), 0 24px 60px rgba(4, 49, 95, .14);

	--pf-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--pf-wrap: 1180px;
	--pf-gutter: 24px;
}

/* ==========================================================================
   2. Reset & Basis
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

body {
	margin: 0;
	font-family: var(--pf-font);
	font-size: 17px;
	line-height: 1.7;
	color: var(--pf-body);
	background: var(--pf-bg);
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

img, svg, video { max-width: 100%; height: auto; display: block; }

/* Inline-Icons ohne eigene Groessenangabe auf Textgroesse begrenzen –
   ohne diese Regel skaliert ein SVG mit viewBox auf die Containerbreite. */
.pf-topbar svg,
.pf-btn svg,
.pf-footer svg,
.pf-job__meta svg,
.pf-sticky-call svg { width: 1.15em; height: 1.15em; flex-shrink: 0; }
a { color: var(--pf-blue); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--pf-blue-dark); }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--pf-font);
	color: var(--pf-ink);
	line-height: 1.18;
	letter-spacing: -.02em;
	margin: 0 0 .6em;
	font-weight: 800;
	text-wrap: balance;
}
h1 { font-size: clamp(2rem, 1.35rem + 2.6vw, 3.4rem); }
h2 { font-size: clamp(1.6rem, 1.2rem + 1.7vw, 2.4rem); }
h3 { font-size: clamp(1.2rem, 1.06rem + .6vw, 1.5rem); }
h4 { font-size: 1.1rem; }
p { margin: 0 0 1.15em; }
p:last-child { margin-bottom: 0; }
ul, ol { margin: 0 0 1.15em; padding-left: 1.3em; }
li { margin-bottom: .4em; }
strong { color: var(--pf-ink); font-weight: 700; }
small { font-size: .85em; }
hr { border: 0; border-top: 1px solid var(--pf-line); margin: 2.5rem 0; }

:focus-visible {
	outline: 3px solid var(--pf-accent);
	outline-offset: 2px;
	border-radius: 3px;
}

.pf-skip-link {
	position: absolute; left: -9999px; top: 0; z-index: 999;
	background: var(--pf-blue-dark); color: #fff; padding: 12px 20px;
	border-radius: 0 0 var(--pf-radius-sm) 0; font-weight: 600;
}
.pf-skip-link:focus { left: 0; color: #fff; }

.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; word-wrap: normal !important;
}

/* ==========================================================================
   3. Layout
   ========================================================================== */

.pf-wrap { width: 100%; max-width: var(--pf-wrap); margin-inline: auto; padding-inline: var(--pf-gutter); }
.pf-wrap--narrow { max-width: 820px; }
.pf-section { padding-block: clamp(3.5rem, 2rem + 6vw, 6.5rem); }
.pf-section--tight { padding-block: clamp(2.5rem, 1.5rem + 4vw, 4.5rem); }
.pf-section--alt { background: var(--pf-bg-alt); }
.pf-section--ink { background: var(--pf-blue-deep); color: #c9dcee; }
.pf-section--ink h2, .pf-section--ink h3 { color: #fff; }

.pf-grid { display: grid; gap: 28px; }
@media (min-width: 640px) { .pf-grid--2 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) {
	.pf-grid--3 { grid-template-columns: repeat(3, 1fr); }
	.pf-grid--4 { grid-template-columns: repeat(4, 1fr); }
}
@media (min-width: 640px) and (max-width: 899px) {
	.pf-grid--3, .pf-grid--4 { grid-template-columns: repeat(2, 1fr); }
}

.pf-eyebrow {
	display: inline-block;
	font-size: .78rem; font-weight: 800; letter-spacing: .14em;
	text-transform: uppercase; color: var(--pf-blue);
	margin-bottom: .9rem;
}
.pf-section--ink .pf-eyebrow { color: var(--pf-accent); }
.pf-lead { font-size: 1.14rem; color: var(--pf-muted); max-width: 62ch; }
.pf-section--ink .pf-lead { color: #a9c4dd; }
.pf-head { max-width: 720px; margin-bottom: 3rem; }
.pf-head--center { margin-inline: auto; text-align: center; }

/* ==========================================================================
   4. Buttons
   ========================================================================== */

.pf-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .55em;
	padding: .95em 1.7em;
	font-size: 1rem; font-weight: 700; line-height: 1.2;
	border-radius: 100px; border: 2px solid transparent;
	text-decoration: none; cursor: pointer;
	transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease;
	text-align: center;
}
.pf-btn:hover { transform: translateY(-2px); }
.pf-btn--primary { background: var(--pf-accent); color: var(--pf-blue-deep); box-shadow: 0 8px 22px rgba(255, 196, 0, .32); }
.pf-btn--primary:hover { background: var(--pf-accent-dark); color: var(--pf-blue-deep); }
.pf-btn--solid { background: var(--pf-blue); color: #fff; box-shadow: 0 8px 22px rgba(0, 87, 184, .26); }
.pf-btn--solid:hover { background: var(--pf-blue-dark); color: #fff; }
.pf-btn--ghost { border-color: currentColor; color: var(--pf-blue-dark); background: transparent; }
.pf-btn--ghost:hover { background: var(--pf-blue-dark); color: #fff; border-color: var(--pf-blue-dark); }
.pf-btn--light { background: rgba(255,255,255,.12); color: #fff; border-color: rgba(255,255,255,.35); }
.pf-btn--light:hover { background: #fff; color: var(--pf-blue-dark); }
.pf-btn--sm { padding: .65em 1.2em; font-size: .92rem; }
.pf-btn--block { width: 100%; }
.pf-btn-row { display: flex; flex-wrap: wrap; gap: 14px; }

/* ==========================================================================
   5. Header / Navigation
   ========================================================================== */

.pf-topbar {
	background: var(--pf-blue-deep);
	color: #a9c4dd;
	font-size: .87rem;
}
.pf-topbar .pf-wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 24px; min-height: 42px; }
.pf-topbar a { color: #fff; text-decoration: none; font-weight: 600; }
.pf-topbar a:hover { color: var(--pf-accent); text-decoration: underline; }
.pf-topbar__list { display: flex; flex-wrap: wrap; gap: 8px 20px; align-items: center; margin: 0; padding: 0; list-style: none; }
.pf-topbar__list li { margin: 0; display: inline-flex; align-items: center; gap: .4em; }
@media (max-width: 767px) { .pf-topbar__usp { display: none; } }

.pf-header {
	position: sticky; top: 0; z-index: 90;
	background: rgba(255,255,255,.96);
	backdrop-filter: saturate(160%) blur(10px);
	border-bottom: 1px solid var(--pf-line);
}
.pf-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 74px; }

.pf-logo { display: inline-flex; align-items: center; gap: 11px; text-decoration: none; flex-shrink: 0; }
.pf-logo__mark {
	width: 40px; height: 40px; border-radius: 11px; flex-shrink: 0;
	background: linear-gradient(140deg, var(--pf-blue) 0%, var(--pf-blue-dark) 100%);
	display: grid; place-items: center; color: var(--pf-accent);
	font-weight: 900; font-size: 1.15rem; letter-spacing: -.03em;
}
.pf-logo__text { display: flex; flex-direction: column; line-height: 1.1; }
.pf-logo__name { font-weight: 900; font-size: 1.22rem; color: var(--pf-ink); letter-spacing: -.03em; }
.pf-logo__tag { font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--pf-muted); }
.pf-logo img { max-height: 48px; width: auto; }

.pf-nav ul { display: flex; align-items: center; gap: 4px; list-style: none; margin: 0; padding: 0; }
.pf-nav li { margin: 0; position: relative; }
.pf-nav a {
	display: block; padding: .6em .8em; border-radius: var(--pf-radius-sm);
	font-size: .96rem; font-weight: 600; color: var(--pf-body); text-decoration: none;
	transition: background-color .15s ease, color .15s ease;
}
.pf-nav a:hover { background: var(--pf-blue-soft); color: var(--pf-blue-dark); }
.pf-nav .current-menu-item > a,
.pf-nav .current_page_item > a,
.pf-nav .current-menu-ancestor > a { color: var(--pf-blue); background: var(--pf-blue-soft); }

.pf-nav .sub-menu {
	display: block; position: absolute; top: calc(100% + 8px); left: 0; z-index: 20;
	min-width: 260px; padding: 8px; margin: 0;
	background: #fff; border: 1px solid var(--pf-line);
	border-radius: var(--pf-radius); box-shadow: var(--pf-shadow-lg);
	opacity: 0; visibility: hidden; transform: translateY(6px);
	transition: opacity .16s ease, transform .16s ease, visibility .16s;
}
.pf-nav li:hover > .sub-menu,
.pf-nav li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.pf-nav .sub-menu li { display: block; width: 100%; }
.pf-nav .sub-menu a { padding: .55em .8em; font-weight: 500; }

.pf-header__actions { display: flex; align-items: center; gap: 12px; }
@media (max-width: 1023px) { .pf-header__actions .pf-btn { display: none; } }

.pf-burger {
	display: none; width: 44px; height: 44px; padding: 0;
	border: 1px solid var(--pf-line); border-radius: var(--pf-radius-sm);
	background: #fff; cursor: pointer; position: relative;
}
.pf-burger span {
	position: absolute; left: 11px; width: 20px; height: 2px; border-radius: 2px;
	background: var(--pf-ink); transition: transform .22s ease, opacity .18s ease;
}
.pf-burger span:nth-child(1) { top: 15px; }
.pf-burger span:nth-child(2) { top: 21px; }
.pf-burger span:nth-child(3) { top: 27px; }
.pf-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.pf-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.pf-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 1023px) {
	.pf-burger { display: block; }
	.pf-nav {
		position: absolute; top: 100%; left: 0; right: 0;
		background: #fff; border-bottom: 1px solid var(--pf-line);
		box-shadow: var(--pf-shadow-lg);
		max-height: calc(100vh - 74px); overflow-y: auto;
		display: none;
	}
	.pf-nav.is-open { display: block; }
	.pf-nav ul { flex-direction: column; align-items: stretch; gap: 0; padding: 12px var(--pf-gutter) 20px; }
	.pf-nav li { border-bottom: 1px solid var(--pf-line); }
	.pf-nav > ul > li:last-child { border-bottom: 0; }
	.pf-nav a { padding: .85em .2em; font-size: 1.02rem; }
	.pf-nav .sub-menu {
		position: static; opacity: 1; visibility: visible; transform: none;
		box-shadow: none; border: 0; padding: 0 0 8px 14px; min-width: 0;
		border-left: 2px solid var(--pf-blue-soft);
	}
	.pf-nav .sub-menu a { font-size: .94rem; padding: .5em .2em; }
}

/* ==========================================================================
   6. Hero
   ========================================================================== */

.pf-hero {
	position: relative;
	background:
		radial-gradient(1100px 520px at 88% -12%, rgba(0,87,184,.18) 0%, transparent 62%),
		linear-gradient(168deg, #f7fbff 0%, #e9f2fb 100%);
	padding-block: clamp(3rem, 1.5rem + 6vw, 6rem);
	overflow: hidden;
}
.pf-hero::after {
	content: ""; position: absolute; right: -140px; bottom: -180px;
	width: 460px; height: 460px; border-radius: 50%;
	background: radial-gradient(circle, rgba(255,196,0,.22) 0%, transparent 68%);
	pointer-events: none;
}
.pf-hero__inner { position: relative; z-index: 1; display: grid; gap: 44px; align-items: center; }
@media (min-width: 980px) { .pf-hero__inner { grid-template-columns: 1.05fr .95fr; gap: 60px; } }
.pf-hero h1 { margin-bottom: .5em; }
.pf-hero__lead { font-size: clamp(1.05rem, 1rem + .35vw, 1.25rem); color: var(--pf-body); max-width: 56ch; margin-bottom: 2rem; }
.pf-hero__badges { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 1.6rem; }
.pf-badge {
	display: inline-flex; align-items: center; gap: .45em;
	background: #fff; border: 1px solid var(--pf-line);
	border-radius: 100px; padding: .45em 1em;
	font-size: .85rem; font-weight: 700; color: var(--pf-blue-dark);
	box-shadow: 0 2px 6px rgba(4,49,95,.05);
}
.pf-badge svg { width: 15px; height: 15px; color: var(--pf-green); flex-shrink: 0; }
.pf-hero__note { margin-top: 1.5rem; font-size: .9rem; color: var(--pf-muted); }

/* Angebotskarte im Hero */
.pf-quote-card {
	background: #fff; border-radius: var(--pf-radius);
	box-shadow: var(--pf-shadow-lg); padding: clamp(24px, 3vw, 34px);
	border-top: 5px solid var(--pf-accent);
}
.pf-quote-card h2 { font-size: 1.35rem; margin-bottom: .35em; }
.pf-quote-card__sub { font-size: .93rem; color: var(--pf-muted); margin-bottom: 1.4rem; }

/* ==========================================================================
   7. Karten / Leistungen
   ========================================================================== */

.pf-card {
	position: relative; display: flex; flex-direction: column;
	background: #fff; border: 1px solid var(--pf-line);
	border-radius: var(--pf-radius); padding: 28px;
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
	height: 100%;
}
.pf-card:hover { transform: translateY(-4px); box-shadow: var(--pf-shadow-lg); border-color: transparent; }
.pf-card h3 { font-size: 1.2rem; margin-bottom: .5em; }
.pf-card p { font-size: .97rem; color: var(--pf-muted); margin-bottom: 1.2em; }
.pf-card__icon {
	width: 50px; height: 50px; border-radius: 13px; margin-bottom: 18px;
	background: var(--pf-blue-soft); color: var(--pf-blue);
	display: grid; place-items: center; flex-shrink: 0;
}
.pf-card__icon svg { width: 25px; height: 25px; }
.pf-card__price { font-size: .87rem; font-weight: 800; color: var(--pf-green); margin-bottom: .8em; }
.pf-card__link { margin-top: auto; font-weight: 700; font-size: .94rem; text-decoration: none; display: inline-flex; align-items: center; gap: .4em; }
.pf-card__link::after { content: "\2192"; transition: transform .18s ease; }
.pf-card:hover .pf-card__link::after { transform: translateX(4px); }
.pf-card--stretch a.pf-card__cover { position: absolute; inset: 0; border-radius: var(--pf-radius); font-size: 0; }
.pf-card--stretch a.pf-card__cover::after { content: none; }
.pf-card span.pf-card__link { color: var(--pf-blue); }

/* USP-Kacheln */
.pf-usp { text-align: left; }
.pf-usp__num { font-size: 2.6rem; font-weight: 900; color: var(--pf-blue); letter-spacing: -.04em; line-height: 1; margin-bottom: .3rem; }
.pf-section--ink .pf-usp__num { color: var(--pf-accent); }
.pf-usp h3 { font-size: 1.08rem; }
.pf-usp p { font-size: .95rem; margin: 0; }

/* Ablauf / Schritte */
.pf-steps { counter-reset: pfstep; }
.pf-step { position: relative; padding-left: 66px; }
.pf-step::before {
	counter-increment: pfstep; content: counter(pfstep);
	position: absolute; left: 0; top: 0;
	width: 46px; height: 46px; border-radius: 50%;
	background: var(--pf-blue); color: #fff;
	display: grid; place-items: center; font-weight: 800; font-size: 1.15rem;
}
.pf-step h3 { font-size: 1.1rem; margin-bottom: .35em; }
.pf-step p { font-size: .96rem; color: var(--pf-muted); margin: 0; }

/* Check-Liste */
.pf-checks { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.pf-checks li { position: relative; padding-left: 32px; margin: 0; font-size: 1rem; }
.pf-checks li::before {
	content: ""; position: absolute; left: 0; top: .34em;
	width: 19px; height: 19px; border-radius: 50%;
	background: var(--pf-green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/12px no-repeat;
}
@media (min-width: 700px) { .pf-checks--2 { grid-template-columns: 1fr 1fr; column-gap: 28px; } }

/* ==========================================================================
   8. Preistabelle
   ========================================================================== */

.pf-table-wrap { overflow-x: auto; border: 1px solid var(--pf-line); border-radius: var(--pf-radius); background: #fff; -webkit-overflow-scrolling: touch; }
.pf-table { width: 100%; border-collapse: collapse; min-width: 560px; font-size: .97rem; }
.pf-table caption { caption-side: top; text-align: left; padding: 18px 22px 0; font-weight: 700; color: var(--pf-ink); }
.pf-table th, .pf-table td { padding: 15px 22px; text-align: left; border-bottom: 1px solid var(--pf-line); vertical-align: top; }
.pf-table thead th { background: var(--pf-blue-soft); color: var(--pf-blue-dark); font-weight: 800; font-size: .82rem; letter-spacing: .06em; text-transform: uppercase; }
.pf-table tbody tr:last-child td { border-bottom: 0; }
.pf-table tbody tr:hover { background: var(--pf-bg-alt); }
.pf-table .pf-price { font-weight: 800; color: var(--pf-ink); white-space: nowrap; }
.pf-table td small, .pf-table th small { display: block; color: var(--pf-muted); font-size: .85rem; font-weight: 400; margin-top: 4px; }
.pf-table tbody th { font-weight: 700; }
.pf-price-note { font-size: .9rem; color: var(--pf-muted); margin-top: 1rem; }

/* ==========================================================================
   9. FAQ (Accordion)
   ========================================================================== */

.pf-faq { border: 1px solid var(--pf-line); border-radius: var(--pf-radius); overflow: hidden; background: #fff; }
.pf-faq__item + .pf-faq__item { border-top: 1px solid var(--pf-line); }
.pf-faq__q {
	width: 100%; display: flex; align-items: flex-start; justify-content: space-between; gap: 18px;
	padding: 20px 24px; background: none; border: 0; cursor: pointer;
	font-family: inherit; font-size: 1.04rem; font-weight: 700; color: var(--pf-ink);
	text-align: left; line-height: 1.4;
}
.pf-faq__q:hover { background: var(--pf-bg-alt); }
.pf-faq__q::after {
	content: ""; flex-shrink: 0; width: 12px; height: 12px; margin-top: 6px;
	border-right: 2.5px solid var(--pf-blue); border-bottom: 2.5px solid var(--pf-blue);
	transform: rotate(45deg); transition: transform .22s ease;
}
.pf-faq__q[aria-expanded="true"]::after { transform: rotate(-135deg); }
.pf-faq__a { padding: 0 24px 22px; font-size: .99rem; color: var(--pf-muted); max-width: 74ch; }
.pf-faq__a[hidden] { display: none; }

/* ==========================================================================
   10. Formulare
   ========================================================================== */

.pf-form { display: grid; gap: 16px; }
.pf-form__row { display: grid; gap: 16px; }
@media (min-width: 620px) { .pf-form__row--2 { grid-template-columns: 1fr 1fr; } }
.pf-field { display: flex; flex-direction: column; gap: 6px; }
.pf-field label { font-size: .89rem; font-weight: 700; color: var(--pf-ink); }
.pf-field .pf-req { color: #c0392b; }
.pf-field input, .pf-field select, .pf-field textarea {
	width: 100%; padding: .78em .95em;
	font-family: inherit; font-size: 1rem; color: var(--pf-ink);
	background: #fff; border: 1.5px solid var(--pf-line); border-radius: var(--pf-radius-sm);
	transition: border-color .15s ease, box-shadow .15s ease;
}
.pf-field textarea { min-height: 130px; resize: vertical; }
.pf-field select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7c8c' stroke-width='2.5' stroke-linecap='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; background-size: 16px; padding-right: 40px; }
.pf-field input:focus, .pf-field select:focus, .pf-field textarea:focus {
	outline: none; border-color: var(--pf-blue); box-shadow: 0 0 0 3px rgba(0,87,184,.14);
}
.pf-field--consent { flex-direction: row; align-items: flex-start; gap: 11px; }
.pf-field--consent input { width: 19px; height: 19px; flex-shrink: 0; margin-top: 3px; accent-color: var(--pf-blue); }
.pf-field--consent label { font-size: .86rem; font-weight: 500; color: var(--pf-muted); line-height: 1.55; }
.pf-hp { position: absolute !important; left: -9999px !important; opacity: 0; height: 0; overflow: hidden; }

.pf-notice { padding: 15px 18px; border-radius: var(--pf-radius-sm); font-size: .95rem; margin-bottom: 20px; }
.pf-notice--ok { background: #e6f6ef; border: 1px solid #a8ddc7; color: #0d5c41; }
.pf-notice--err { background: #fdecea; border: 1px solid #f5b7b1; color: #922b21; }
.pf-form__legal { font-size: .82rem; color: var(--pf-muted); }

/* ==========================================================================
   11. Kontakt / Footer
   ========================================================================== */

.pf-contact-grid { display: grid; gap: 40px; }
@media (min-width: 920px) { .pf-contact-grid { grid-template-columns: 1fr 1.15fr; gap: 56px; } }
.pf-contact-list { list-style: none; padding: 0; margin: 0 0 2rem; display: grid; gap: 20px; }
.pf-contact-list li { display: flex; gap: 15px; margin: 0; }
.pf-contact-list svg { width: 21px; height: 21px; color: var(--pf-blue); flex-shrink: 0; margin-top: 3px; }
.pf-contact-list strong { display: block; font-size: .82rem; text-transform: uppercase; letter-spacing: .07em; color: var(--pf-muted); font-weight: 800; }
.pf-contact-list a { font-weight: 700; text-decoration: none; font-size: 1.05rem; }

.pf-map-placeholder {
	background: var(--pf-bg-alt); border: 1px dashed var(--pf-line); border-radius: var(--pf-radius);
	padding: 40px 28px; text-align: center; font-size: .93rem; color: var(--pf-muted);
}

.pf-cta {
	background: linear-gradient(140deg, var(--pf-blue) 0%, var(--pf-blue-deep) 100%);
	color: #cfe2f4; border-radius: var(--pf-radius); padding: clamp(32px, 4vw, 56px); text-align: center;
}
.pf-cta h2 { color: #fff; margin-bottom: .5em; }
.pf-cta p { max-width: 58ch; margin-inline: auto; margin-bottom: 1.9rem; }

.pf-footer { background: var(--pf-blue-deep); color: #9dbad4; font-size: .94rem; padding-top: clamp(3rem, 2rem + 3vw, 4.5rem); }
.pf-footer__grid { display: grid; gap: 36px; padding-bottom: 3rem; }
@media (min-width: 720px) { .pf-footer__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1020px) { .pf-footer__grid { grid-template-columns: 1.5fr 1fr 1fr 1.2fr; gap: 44px; } }
.pf-footer h3 { color: #fff; font-size: .86rem; text-transform: uppercase; letter-spacing: .1em; margin-bottom: 1.2em; font-weight: 800; }
.pf-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.pf-footer li { margin: 0; }
.pf-footer a { color: #9dbad4; text-decoration: none; }
.pf-footer a:hover { color: #fff; text-decoration: underline; }
.pf-footer .pf-logo__name { color: #fff; }
.pf-footer .pf-logo__tag { color: var(--pf-accent); }
.pf-footer__about p { font-size: .94rem; line-height: 1.65; }
.pf-footer__nap { font-style: normal; line-height: 1.8; }
.pf-footer__bottom {
	border-top: 1px solid rgba(255,255,255,.13);
	padding-block: 22px; display: flex; flex-wrap: wrap; gap: 10px 26px;
	align-items: center; justify-content: space-between; font-size: .86rem;
}
.pf-footer__legal { display: flex; flex-wrap: wrap; gap: 8px 20px; list-style: none; margin: 0; padding: 0; }

/* ==========================================================================
   12. Breadcrumbs, Seiten-Header, Inhalt
   ========================================================================== */

.pf-breadcrumb { font-size: .85rem; color: var(--pf-muted); padding-block: 14px; }
.pf-breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; }
.pf-breadcrumb li { margin: 0; display: flex; align-items: center; gap: 6px; }
.pf-breadcrumb li + li::before { content: "\203A"; color: var(--pf-line); }
.pf-breadcrumb a { color: var(--pf-muted); text-decoration: none; }
.pf-breadcrumb a:hover { color: var(--pf-blue); text-decoration: underline; }
.pf-breadcrumb [aria-current="page"] { color: var(--pf-ink); font-weight: 600; }

.pf-page-header { background: var(--pf-bg-alt); border-bottom: 1px solid var(--pf-line); padding-block: clamp(2.2rem, 1.4rem + 3vw, 4rem); }
.pf-page-header p.pf-lead { margin-top: .6rem; }

.pf-content { max-width: 78ch; }
.pf-content h2 { margin-top: 2.4em; }
.pf-content h3 { margin-top: 1.9em; }
.pf-content > *:first-child { margin-top: 0; }
.pf-content table { width: 100%; border-collapse: collapse; margin-bottom: 1.5em; }
.pf-content th, .pf-content td { border: 1px solid var(--pf-line); padding: 10px 14px; text-align: left; }
.pf-content blockquote { margin: 1.6em 0; padding: 4px 0 4px 22px; border-left: 4px solid var(--pf-accent); color: var(--pf-ink); font-size: 1.05rem; }
.pf-legal { font-size: .97rem; }
.pf-legal h2 { font-size: 1.35rem; margin-top: 2.2em; }
.pf-legal h3 { font-size: 1.08rem; margin-top: 1.7em; }
.pf-legal p, .pf-legal li { color: var(--pf-body); }

.pf-toc { background: var(--pf-bg-alt); border: 1px solid var(--pf-line); border-radius: var(--pf-radius); padding: 22px 26px; margin-bottom: 2.5rem; }
.pf-toc h2 { font-size: .86rem !important; text-transform: uppercase; letter-spacing: .09em; margin: 0 0 .9em !important; color: var(--pf-muted); }
.pf-toc ul { margin: 0; padding-left: 1.1em; font-size: .94rem; }

/* Einsatzgebiete */
.pf-areas { display: flex; flex-wrap: wrap; gap: 9px; list-style: none; padding: 0; margin: 0; }
.pf-areas li { margin: 0; }
.pf-areas span, .pf-areas a {
	display: inline-block; padding: .42em .95em; border-radius: 100px;
	background: #fff; border: 1px solid var(--pf-line);
	font-size: .88rem; font-weight: 600; color: var(--pf-body); text-decoration: none;
}
.pf-areas a:hover { border-color: var(--pf-blue); color: var(--pf-blue); }

/* Referenzen */
.pf-quote-box { background: #fff; border: 1px solid var(--pf-line); border-radius: var(--pf-radius); padding: 28px; }
.pf-quote-box p { font-size: 1.02rem; color: var(--pf-ink); }
.pf-quote-box footer { font-size: .89rem; color: var(--pf-muted); font-weight: 600; margin-top: 1rem; }

/* Jobs */
.pf-job { background: #fff; border: 1px solid var(--pf-line); border-radius: var(--pf-radius); padding: 26px 28px; }
.pf-job h3 { margin-bottom: .3em; }
.pf-job__meta { display: flex; flex-wrap: wrap; gap: 8px 16px; font-size: .87rem; color: var(--pf-muted); margin-bottom: 1.1em; font-weight: 600; }

/* ==========================================================================
   13. Cookie-Consent-Banner
   ========================================================================== */

.pf-cookie {
	position: fixed; inset: auto 16px 16px 16px; z-index: 9999;
	max-width: 520px; margin-inline: auto;
	background: #fff; border: 1px solid var(--pf-line); border-radius: var(--pf-radius);
	box-shadow: var(--pf-shadow-lg); padding: 24px;
	font-size: .92rem; color: var(--pf-body);
	max-height: min(80vh, 640px); overflow-y: auto;
	overscroll-behavior: contain;
}
@media (max-width: 480px) {
	.pf-cookie { padding: 18px; font-size: .88rem; }
	.pf-cookie__options { padding: 12px; }
}
.pf-cookie[hidden] { display: none; }
.pf-cookie h2 { font-size: 1.12rem; margin-bottom: .5em; }
.pf-cookie p { margin-bottom: 1em; }
.pf-cookie__options { display: grid; gap: 10px; margin-bottom: 1.2rem; padding: 14px; background: var(--pf-bg-alt); border-radius: var(--pf-radius-sm); }
.pf-cookie__opt { display: flex; align-items: flex-start; gap: 10px; font-size: .88rem; }
.pf-cookie__opt input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--pf-blue); flex-shrink: 0; }
.pf-cookie__opt input:disabled { opacity: .55; }
.pf-cookie__actions { display: grid; gap: 9px; }
@media (min-width: 480px) { .pf-cookie__actions { grid-template-columns: 1fr 1fr; } }
.pf-cookie__actions .pf-btn--primary { grid-column: 1 / -1; }
.pf-cookie__links { margin-top: 1rem; font-size: .82rem; display: flex; gap: 16px; }

.pf-consent-block {
	background: var(--pf-bg-alt); border: 1px dashed var(--pf-line);
	border-radius: var(--pf-radius); padding: 36px 28px; text-align: center;
}
.pf-consent-block p { font-size: .93rem; color: var(--pf-muted); max-width: 46ch; margin-inline: auto; }

/* ==========================================================================
   14. Sonstiges
   ========================================================================== */

.pf-404 { text-align: center; padding-block: clamp(4rem, 3rem + 6vw, 8rem); }
.pf-404__code { font-size: clamp(4rem, 3rem + 8vw, 8rem); font-weight: 900; color: var(--pf-blue-soft); line-height: 1; letter-spacing: -.05em; }

.pf-post-list { display: grid; gap: 26px; }
@media (min-width: 760px) { .pf-post-list { grid-template-columns: repeat(2, 1fr); } }
.pf-post-card time { font-size: .84rem; color: var(--pf-muted); font-weight: 600; }

.pf-pagination { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 2.5rem; }
.pf-pagination .page-numbers {
	display: grid; place-items: center; min-width: 42px; height: 42px; padding-inline: 12px;
	border: 1px solid var(--pf-line); border-radius: var(--pf-radius-sm);
	text-decoration: none; font-weight: 700; font-size: .93rem;
}
.pf-pagination .current { background: var(--pf-blue); color: #fff; border-color: var(--pf-blue); }

.pf-sticky-call { display: none; }
@media (max-width: 700px) {
	.pf-sticky-call {
		display: grid; grid-template-columns: 1fr 1fr; gap: 1px;
		position: fixed; inset: auto 0 0 0; z-index: 80;
		background: var(--pf-line); box-shadow: 0 -4px 20px rgba(4,49,95,.14);
	}
	.pf-sticky-call a {
		display: flex; align-items: center; justify-content: center; gap: .45em;
		padding: 14px 8px; background: #fff; color: var(--pf-blue-dark);
		font-weight: 800; font-size: .93rem; text-decoration: none;
	}
	.pf-sticky-call a.is-accent { background: var(--pf-accent); color: var(--pf-blue-deep); }
	.pf-sticky-call svg { width: 17px; height: 17px; }
	body { padding-bottom: 54px; }
	.pf-cookie { bottom: 62px; }
}

@media print {
	.pf-header, .pf-topbar, .pf-footer, .pf-cookie, .pf-sticky-call, .pf-btn { display: none !important; }
	body { font-size: 11pt; color: #000; }
}
