/* Pfundner Erdbau – Theme-Styles (Ergänzung zu theme.json) */

:root {
	--pf-gruen: var(--wp--preset--color--gruen, #A3C428);
	--pf-gruen-dunkel: var(--wp--preset--color--gruen-dunkel, #4A6B0C);
	--pf-schwarz: var(--wp--preset--color--schwarz, #141414);
	--pf-grau: var(--wp--preset--color--grau, #575757);
	--pf-hell: var(--wp--preset--color--hell, #F3F5EE);
	--pf-linie: var(--wp--preset--color--linie, #E2E5DA);
	--pf-oswald: var(--wp--preset--font-family--oswald, Oswald, 'Arial Narrow', sans-serif);
}

body { margin: 0; }
.pf-main { margin-block-start: 0 !important; }
.wp-site-blocks > * + * { margin-block-start: 0; }

/* ---------- Kopfbereich ---------- */
.pf-topbar { background: var(--pf-schwarz); color: #E8E8E8; font-size: 0.875rem; padding-block: 0.5rem; }
.pf-topbar p { margin: 0; }
.pf-topbar a { color: #fff; text-decoration: none; }
.pf-topbar a:hover { color: var(--pf-gruen); }
.pf-topbar__inner { gap: 0.25rem 1.5rem; }

.pf-header { background: #fff; border-bottom: 1px solid var(--pf-linie); padding-block: 0.75rem; position: sticky; top: 0; z-index: 50; }
.admin-bar .pf-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .pf-header { top: 0; position: relative; } }
.pf-header__inner { gap: 1rem 1.5rem; }
.pf-header .wp-block-site-logo img { height: auto; max-width: 230px; }
.pf-nav { font-family: var(--pf-oswald); font-weight: 500; text-transform: uppercase; letter-spacing: 0.04em; font-size: 1rem; gap: 0.25rem 1.5rem; }
.pf-nav .wp-block-navigation-item__content { text-decoration: none; padding-block: 0.5rem; border-bottom: 3px solid transparent; }
.pf-nav .current-menu-item > .wp-block-navigation-item__content,
.pf-nav .wp-block-navigation-item__content:hover { border-bottom-color: var(--pf-gruen); color: var(--pf-schwarz); }
.pf-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 2rem; }
.pf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.5rem; }
@media (max-width: 600px) { .pf-header__cta { display: none !important; } }

/* ---------- Abschnitte ---------- */
.pf-section { padding-block: clamp(3rem, 7vw, 5.5rem); }
.pf-section--soft { background: var(--pf-hell); }
.pf-section--green { background: var(--pf-gruen); }
.pf-section--dark { background: var(--pf-schwarz); color: #fff; }
.pf-section--dark a:not(.wp-element-button) { color: #fff; }
.pf-section--tight { padding-block: 1.25rem; }
.pf-kicker { font-family: var(--pf-oswald); font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--pf-gruen-dunkel); font-size: 0.95rem; margin-bottom: 0.5rem; }
.pf-section--dark .pf-kicker, .pf-card--dark .pf-kicker { color: var(--pf-gruen); }
.pf-section--green .pf-kicker { color: var(--pf-schwarz); }
.pf-lead { font-size: 1.2rem; color: #3F3F3F; max-width: 48rem; }
.pf-section--dark .pf-lead { color: #D6D6D6; }
.pf-muted { color: var(--pf-grau); font-size: 0.95rem; }
.pf-hero h1 { margin-top: 0; }

/* Grün-Streifen mit Schlagworten */
.pf-strip { font-family: var(--pf-oswald); font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; font-size: 1.1rem; gap: 0.5rem 2.5rem; }
.pf-strip p { margin: 0; }

/* Chips / Sprungmarken */
.pf-chips { gap: 0.5rem; }
.pf-chips p { margin: 0; }
.pf-chips a, .pf-chip { display: inline-block; background: #fff; border: 1px solid #D5D9CB; padding: 0.55rem 1rem; font-family: var(--pf-oswald); text-transform: uppercase; font-size: 0.95rem; text-decoration: none; }
.pf-chips a:hover { background: var(--pf-gruen); border-color: var(--pf-gruen); color: var(--pf-schwarz); }
.pf-tags { gap: 0.4rem; }
.pf-tags p { margin: 0; background: var(--pf-hell); padding: 0.3rem 0.7rem; font-size: 0.9rem; }
.pf-card .pf-tags p { background: var(--pf-hell); }
.pf-section--soft .pf-tags p { background: #fff; border: 1px solid #D5D9CB; }

/* Karten */
.pf-grid { gap: 1rem; }
.pf-card { background: #fff; border: 1px solid var(--pf-linie); padding: 0 !important; display: flex; flex-direction: column; }
.pf-card > * { margin-left: 1.4rem !important; margin-right: 1.4rem !important; }
.pf-card > .pf-img, .pf-card > .pf-ph { margin: 0 !important; max-width: none !important; width: 100%; }
.pf-card > :last-child { margin-bottom: 1.4rem; }
.pf-card > .pf-img + *, .pf-card > .pf-ph + * { border-top: 4px solid var(--pf-gruen); padding-top: 1rem; margin-left: 0 !important; margin-right: 0 !important; padding-left: 1.4rem; padding-right: 1.4rem; }
.pf-card > :first-child:not(.pf-img):not(.pf-ph) { margin-top: 1.4rem; }
.pf-card h3 { margin: 0.25rem 0 0; hyphens: manual; -webkit-hyphens: manual; overflow-wrap: normal; }
.pf-card h3 a { text-decoration: none; }
.pf-card p { margin-block: 0.4rem; }
.pf-card--soft { background: var(--pf-hell); border-color: transparent; }
.pf-card--green { background: var(--pf-gruen); border-color: transparent; }
.pf-card--dark { background: var(--pf-schwarz); color: #fff; border-color: transparent; }
.pf-card--dark a:not(.wp-element-button) { color: var(--pf-gruen); }
.pf-card--big h2, .pf-card--big h3 { font-size: clamp(1.8rem, 3vw, 2.5rem); }
.pf-card .wp-block-buttons { margin-top: auto; padding-top: 0.75rem; }

.pf-img { margin: 0; }
.pf-img img { width: 100%; height: 100%; object-fit: cover; display: block; aspect-ratio: 4 / 3; }
.pf-hero .pf-img img { aspect-ratio: 5 / 4; }
.pf-ph { background: #E9ECE2; color: #6F7566; min-height: 200px; display: flex; align-items: center; justify-content: center; text-align: center; font-size: 0.9rem; }
.pf-ph p { margin: 0; padding: 1rem; }

/* Zweispalter */
.pf-split { display: grid; gap: clamp(1.5rem, 4vw, 3rem); grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; }
.pf-split--side { grid-template-columns: minmax(0, 320px) minmax(0, 1fr); align-items: start; }
.pf-split--main { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); align-items: start; }
.pf-split > * { margin: 0 !important; max-width: none !important; min-width: 0; }
@media (max-width: 860px) {
	.pf-split, .pf-split--side, .pf-split--main { grid-template-columns: minmax(0, 1fr); }
}

/* Überschriften: lange deutsche Wörter umbrechen */
h1, h2, h3 { overflow-wrap: break-word; hyphens: auto; -webkit-hyphens: auto; }
.pf-grid .pf-card h3 { font-size: clamp(1.15rem, 1.5vw, 1.4rem); }
.pf-box h2 { font-size: clamp(1.8rem, 3vw, 2.6rem); }
.pf-row h2 { font-size: clamp(1.8rem, 3vw, 2.6rem); }
.is-layout-constrained > .pf-lead { margin-left: 0 !important; }

/* Umrandeter Block (z. B. Abfallbehandlung) */
.pf-box { border: 2px solid var(--pf-schwarz); gap: 0 !important; align-items: stretch; }
.pf-box > * { padding: clamp(1.5rem, 4vw, 3rem); margin: 0 !important; }
.pf-box > .pf-box__side { background: var(--pf-hell); }

/* Leistungs-Zeilen */
.pf-row { padding-block: 2.5rem; border-bottom: 1px solid var(--pf-linie); gap: 2.5rem !important; align-items: center; scroll-margin-top: 110px; }
.pf-row:last-child { border-bottom: 0; }
.pf-num { font-family: var(--pf-oswald); font-weight: 600; color: var(--pf-gruen-dunkel); margin-bottom: 0; }
[id] { scroll-margin-top: 110px; }

/* Tabellen */
.pf-table { margin: 0; overflow-x: auto; }
.pf-table table { border-collapse: collapse; width: 100%; min-width: 520px; background: #fff; font-size: 0.97rem; }
.pf-table thead { border: 0; }
.pf-table th { background: var(--pf-schwarz); color: #fff; font-family: var(--pf-oswald); font-weight: 500; text-transform: uppercase; font-size: 0.85rem; text-align: left; padding: 0.6rem 0.85rem; border: 0; }
.pf-table td { padding: 0.55rem 0.85rem; border: 0; border-top: 1px solid #ECEEE6; vertical-align: top; }
.pf-table td a { font-weight: 700; color: var(--pf-gruen-dunkel); white-space: nowrap; }
.pf-table-title { font-family: var(--pf-oswald); font-weight: 600; text-transform: uppercase; font-size: 1.15rem; margin-bottom: 0.4rem; }

/* Downloads */
.pf-downloads p { margin: 0 0 0.5rem; }
.pf-downloads a { display: flex; justify-content: space-between; gap: 1rem; background: #fff; border: 1px solid var(--pf-linie); border-left: 4px solid var(--pf-gruen); padding: 0.8rem 1rem; text-decoration: none; font-weight: 600; }
.pf-downloads a::after { content: "PDF ↓"; font-weight: 400; color: var(--pf-grau); white-space: nowrap; }

/* Badge */
.pf-badge { display: inline-block; font-family: var(--pf-oswald); font-weight: 600; letter-spacing: 0.1em; font-size: 0.85rem; padding: 0.3rem 0.7rem; background: var(--pf-gruen); margin: 0; }
.pf-badge--dark { background: var(--pf-schwarz); color: #fff; }
.pf-facts { font-size: 1rem; }
.pf-facts strong { display: inline-block; min-width: 6.5rem; font-weight: 400; color: var(--pf-grau); }
.pf-price { font-family: var(--pf-oswald); font-weight: 600; font-size: 1.15rem; border-top: 1px solid #ECEEE6; padding-top: 0.75rem; }

/* Buttons */
.wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: var(--pf-schwarz); border: 2px solid var(--pf-schwarz); padding: calc(0.85rem - 2px) calc(1.4rem - 2px); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--pf-schwarz); color: #fff; }
.pf-section--dark .wp-block-button.is-style-outline > .wp-block-button__link, .pf-card--dark .wp-block-button.is-style-outline > .wp-block-button__link { color: #fff; border-color: #fff; }
.pf-btn-dark .wp-block-button__link { background: var(--pf-schwarz); color: #fff; }
.pf-btn-dark .wp-block-button__link:hover { background: var(--pf-gruen); color: var(--pf-schwarz); }
.pf-btn-big .wp-block-button__link { font-size: 1.5rem; }

/* Team */
.pf-person { border-top: 4px solid var(--pf-gruen); background: var(--pf-hell); padding: 1rem 1.2rem; }
.pf-person p { margin: 0; }
.pf-person .pf-person__name { font-family: var(--pf-oswald); font-weight: 600; text-transform: uppercase; font-size: 1.15rem; }
.pf-person .pf-person__role { color: var(--pf-grau); font-size: 0.95rem; }

/* Kontaktformular */
.pf-form-wrap { background: var(--pf-hell); padding: clamp(1.25rem, 4vw, 2.5rem); }
.pf-form label { display: block; font-weight: 600; font-size: 0.95rem; margin-bottom: 0.35rem; }
.pf-form input[type="text"], .pf-form input[type="email"], .pf-form input[type="tel"], .pf-form select, .pf-form textarea { width: 100%; box-sizing: border-box; font: inherit; font-size: 1rem; padding: 0.8rem; border: 1px solid #C9CEBE; background: #fff; border-radius: 0; }
.pf-form input:focus, .pf-form select:focus, .pf-form textarea:focus { outline: 3px solid var(--pf-gruen); outline-offset: 0; }
.pf-form p { margin: 0 0 1rem; }
.pf-form-row { display: flex; flex-wrap: wrap; gap: 0 1rem; }
.pf-form-row > p { flex: 1 1 14rem; }
.pf-form-hint { font-size: 0.9rem; color: var(--pf-grau); margin-top: -0.5rem !important; }
.pf-form-check { display: flex; gap: 0.6rem; align-items: flex-start; }
.pf-form-check input { width: 1.25rem; height: 1.25rem; margin: 0.15rem 0 0; flex: none; }
.pf-form-check label { font-weight: 400; }
.pf-form button { cursor: pointer; border: 0; background: var(--pf-schwarz); color: #fff; font-family: var(--pf-oswald); text-transform: uppercase; font-weight: 600; font-size: 1.1rem; padding: 0.9rem 1.6rem; }
.pf-form button:hover { background: var(--pf-gruen); color: var(--pf-schwarz); }
.pf-hp { position: absolute !important; left: -9999px !important; height: 1px; overflow: hidden; }
.pf-form-msg { padding: 1rem 1.2rem; font-weight: 600; margin: 0 0 1.25rem; }
.pf-form-msg--ok { background: var(--pf-gruen); }
.pf-form-msg--err { background: #FCE4E0; color: #8A1C0A; }

/* Fußbereich */
.pf-footer { background: var(--pf-schwarz); color: #CFCFCF; padding-block: 3.5rem 1.5rem; font-size: 0.95rem; }
.pf-footer a { color: #fff; }
.pf-footer a:hover { color: var(--pf-gruen); }
.pf-footer h3 { color: #fff; font-size: 1rem; font-weight: 500; margin: 0 0 0.4rem; }
.pf-footer p { margin: 0; }
.pf-footer__brand { font-family: var(--pf-oswald); font-weight: 700; font-size: 2rem; color: #fff; letter-spacing: 0.02em; line-height: 1; }
.pf-footer__claim { font-family: var(--pf-oswald); color: var(--pf-gruen); letter-spacing: 0.06em; text-transform: uppercase; margin-top: 0.4rem !important; }
.pf-footer__cols { gap: 2rem; }
.pf-footer__bottom { border-top: 1px solid #333; margin-top: 2.5rem; padding-top: 1.25rem; font-size: 0.875rem; gap: 0.5rem 1.5rem; }
.pf-footer__bottom a { color: #CFCFCF; }

/* Rechtstexte */
.pf-legal { max-width: 52rem; }
.pf-legal h2 { font-size: 1.5rem; margin-top: 2.5rem; }

/* Fokus sichtbar */
a:focus-visible, .wp-element-button:focus-visible { outline: 3px solid var(--pf-gruen); outline-offset: 2px; }

/* Gerätevermietung: Seitenspalte oben ausrichten, kompaktere Überschrift */
.pf-row.pf-split--side, .pf-row.pf-split--main { align-items: start; }
.pf-split--side > :first-child h2 { font-size: clamp(1.6rem, 2.4vw, 2.1rem); }

/* Video (2-Klick, datenschutzfreundlich) */
.pf-video { position: relative; }
.pf-video__btn { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; width: 100%; aspect-ratio: 16 / 9; border: 0; cursor: pointer; background: var(--pf-schwarz); color: #fff; font: inherit; padding: 1.5rem; }
.pf-video__play { width: 5rem; height: 5rem; border-radius: 50%; background: var(--pf-gruen); color: var(--pf-schwarz); display: flex; align-items: center; justify-content: center; transition: transform .15s; }
.pf-video__btn:hover .pf-video__play, .pf-video__btn:focus-visible .pf-video__play { transform: scale(1.08); }
.pf-video__titel { font-family: var(--pf-oswald); font-weight: 600; text-transform: uppercase; font-size: 1.25rem; letter-spacing: 0.03em; }
.pf-video__hinweis { font-size: 0.85rem; color: var(--pf-grau); margin: 0.6rem 0 0; }
.pf-video.is-loaded iframe { width: 100%; aspect-ratio: 16 / 9; border: 0; display: block; }

/* Team: optionales Foto je Person (Bild-Block in die Karte einfügen) */
.pf-person { display: flex; flex-direction: column; }
.pf-person .wp-block-image { margin: -1rem -1.2rem 0.9rem; }
.pf-person .wp-block-image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; }

/* Kontakt-Fakten */
.pf-contact-lines strong { display: inline-block; min-width: 4.5rem; font-weight: 600; }
.pf-split:has(.pf-form-wrap) { align-items: start; }

/* Aufklappbare Fotogalerien (Details-Block „Fotos ansehen“) */
.pf-gal { margin-top: 1.25rem; border-top: 1px solid var(--pf-linie); padding-top: 0.75rem; }
.pf-gal > summary { cursor: pointer; list-style: none; display: inline-flex; align-items: center; gap: 0.5rem; font-family: var(--pf-oswald); font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; font-size: 0.95rem; color: var(--pf-schwarz); padding: 0.35rem 0; }
.pf-gal > summary::-webkit-details-marker { display: none; }
.pf-gal > summary::before { content: "+"; display: inline-flex; align-items: center; justify-content: center; width: 1.5rem; height: 1.5rem; background: var(--pf-gruen); color: var(--pf-schwarz); font-size: 1.1rem; line-height: 1; }
.pf-gal[open] > summary::before { content: "–"; }
.pf-gal > summary:hover, .pf-gal > summary:focus-visible { color: var(--pf-gruen-dunkel); }
.pf-gal .wp-block-gallery { margin-top: 0.75rem; gap: 0.5rem; }
.pf-gal .wp-block-gallery .wp-block-image img { aspect-ratio: 4 / 3; object-fit: cover; }
.pf-gal .wp-block-gallery figcaption { font-size: 0.8rem; }
@media (max-width: 600px) {
	.pf-gal .wp-block-gallery.columns-3 .wp-block-image { width: calc(50% - 0.25rem) !important; }
}
