/* Polfood theme. Tokens follow the original Elementor kit. */
:root {
	--accent: #d40f14;
	--dark: #333;
	--text: #949494;
	--grey: #bcbcbc;
	--light: #f2f2f2;
	--white: #fff;
	--blue: #2196f3;
	--font: Montserrat, system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
	--w: 1170px;
	--gutter: 20px;
	--header: 90px;
	--fs-text: 1.125rem;
	--fs-small: 0.914rem;
	--fs-h1: 2.945rem;
	--fs-h2: 2.25rem;
	--fs-h3: 1.82rem;
	--fs-kicker: 1.125rem;
}
@media (max-width: 1024px) {
	:root { --fs-h1: 2.4rem; --fs-h2: 1.82rem; --fs-h3: 1.6rem; }
}
@media (max-width: 767px) {
	:root { --header: 64px; --fs-text: 1rem; --fs-h1: 1.82rem; --fs-h2: 1.82rem; --fs-h3: 1.406rem; }
}

/* Base ------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header) + 10px); }
body { margin: 0; font: 400 var(--fs-text)/1.618 var(--font); color: var(--text); background: var(--white); overflow-x: clip; }
img, svg, video { max-width: 100%; height: auto; }
img { display: block; }
a { color: var(--accent); text-decoration: none; transition: color .2s; }
a:hover { color: var(--dark); }
h1, h2, h3, h4, h5, h6 { color: var(--dark); font-weight: 600; line-height: 1.25; margin: 0 0 .6em; }
h1 { font-size: var(--fs-h1); line-height: 1.1; }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); }
h4 { font-size: 1.4rem; }
h5 { font-size: 1.125rem; }
p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }
strong, b { font-weight: 600; color: var(--dark); }
table { width: 100%; border-collapse: collapse; font-size: var(--fs-small); }
th, td { padding: .75em 1em; text-align: left; border-bottom: 1px solid #e3e3e3; }
th { color: var(--dark); font-weight: 600; background: var(--light); }
.icon { width: 1em; height: 1em; flex: none; }
.container { width: min(100% - 2 * var(--gutter), var(--w)); margin-inline: auto; }
.section { padding-block: clamp(50px, 8vw, 120px); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: absolute; left: -9999px; top: 0; z-index: 1000; padding: 10px 16px; background: var(--dark); color: #fff; }
.skip-link:focus { left: 10px; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

.btn, .wp-block-button__link {
	display: inline-block; padding: 14px 30px; border: 2px solid var(--accent); border-radius: 0;
	background: var(--accent); color: #fff; font: 600 1.125rem/1.2 var(--font); text-transform: uppercase; cursor: pointer;
	transition: background .2s, color .2s, border-color .2s;
}
.btn:hover, .wp-block-button__link:hover { background: var(--dark); border-color: var(--dark); color: #fff; }
.is-style-outline .wp-block-button__link, .btn--outline { background: transparent; color: var(--dark); }
.is-style-outline .wp-block-button__link:hover, .btn--outline:hover { background: var(--accent); border-color: var(--accent); color: #fff; }
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 15px; margin-top: 30px; }

/* Header ---------------------------------------------------------------- */
.site-header { position: sticky; top: 0; z-index: 100; display: flex; align-items: stretch; height: var(--header); background: #fff; box-shadow: 0 1px 0 rgba(0,0,0,.04); }
.admin-bar .site-header { top: var(--wp-admin--admin-bar--height, 0px); }
.site-header__brand { display: flex; align-items: center; gap: 30px; padding-inline: 30px; flex: 1 1 auto; min-width: 0; }
.site-header__brand .logo img, .site-header__brand .custom-logo { width: 168px; height: auto; }
.site-header__tagline { margin: 0; max-width: 360px; font-size: .906rem; font-style: italic; line-height: 1.6; color: var(--text); }
.site-header__shop { display: flex; align-items: center; justify-content: center; width: 120px; flex: none; background: linear-gradient(135deg, #e0362f, var(--accent) 60%, #a50c10); color: #fff; font-weight: 500; font-size: 1.125rem; line-height: 1.25; text-transform: uppercase; text-align: center; }
.site-header__shop:hover { color: #fff; background: var(--dark); }
.site-header__contact { display: flex; align-items: center; gap: 60px; padding-inline: 30px; background: var(--grey); flex: none; }
.site-header__contact a { display: flex; align-items: center; gap: 20px; color: var(--dark); font-size: 1.125rem; }
.site-header__contact .icon { width: 24px; height: 24px; color: #fff; }
.lang-switch { display: flex; flex-direction: column; width: 90px; flex: none; background: var(--dark); }
.lang-switch a { flex: 1; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 1.125rem; }
.lang-switch a + a { border-top: 1px solid rgba(255,255,255,.25); }
.lang-switch a:hover { background: var(--accent); color: #fff; }
.site-header__toggle { width: 90px; flex: none; border: 0; padding: 0; background: var(--accent); color: #fff; cursor: pointer; display: grid; place-items: center; }
.site-header__toggle .icon { width: 28px; height: 28px; grid-area: 1 / 1; }
.site-header__toggle .is-open, .menu-open .site-header__toggle .is-closed { display: none; }
.menu-open .site-header__toggle .is-open { display: block; }

/* Mega menu overlay */
.site-menu { position: fixed; inset: var(--header) 0 auto 0; z-index: 99; display: flex; background: var(--light); max-height: calc(100vh - var(--header)); overflow-y: auto; }
.admin-bar .site-menu { top: calc(var(--header) + var(--wp-admin--admin-bar--height, 0px)); }
.site-menu[hidden] { display: none; }
.site-menu__nav { flex: 1; padding: 60px 30px 60px max(30px, calc((100vw - 1440px) / 2 + 310px)); }
.mega-menu { list-style: none; margin: 0; padding: 0; columns: 2 380px; column-gap: 40px; max-width: 840px; }
.mega-menu > li { break-inside: avoid; padding: 0 0 30px; }
.mega-menu > li > a { display: block; padding-left: 30px; border-left: 5px solid var(--accent); color: var(--dark); font-size: 2.25rem; font-weight: 600; line-height: 1.25; margin-bottom: 20px; }
.mega-menu > li > a[href="#"] { pointer-events: none; }
.mega-menu .sub-menu { list-style: none; margin: 0; padding: 0 0 0 35px; }
.mega-menu .sub-menu a { color: var(--text); font-size: 1.125rem; line-height: 1.62; }
.mega-menu .sub-menu a:hover, .mega-menu .current-menu-item > a { color: var(--accent); }
.site-menu__side { width: 180px; flex: none; display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: 40px; background: #fff; padding-top: 130px; }
.site-menu__follow { writing-mode: vertical-rl; color: var(--text); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; position: relative; padding-bottom: 50px; margin: 0; }
.site-menu__follow::after { content: ""; position: absolute; left: 50%; bottom: 0; width: 1px; height: 35px; background: var(--text); }
.site-menu__side .social-icons { flex-direction: column; }
.site-menu__side .katalog-button { width: 100%; }
.menu-open { overflow: hidden; }

.social-icons { display: flex; gap: 10px; }
.social-icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: #8c8c8c; color: #fff; }
.social-icon:hover { background: var(--accent); color: #fff; }
.social-icon .icon { width: 18px; height: 18px; }
.katalog-button { display: flex; align-items: center; justify-content: center; gap: 15px; height: 52px; padding: 0 30px; background: var(--accent); color: #fff; font-weight: 600; font-size: 1.125rem; text-transform: uppercase; }
.katalog-button:hover { background: var(--dark); color: #fff; }
.katalog-button .icon { width: 22px; height: 22px; }

@media (max-width: 1200px) {
	.site-header__tagline { display: none; }
	.site-header__contact { gap: 30px; }
	.site-header__contact span { display: none; }
}
@media (max-width: 767px) {
	.site-header__brand { padding-inline: 12px; }
	.site-header__brand .logo img, .site-header__brand .custom-logo { width: 100px; }
	.site-header__contact { display: none; }
	.site-header__shop { width: 84px; font-size: .8rem; }
	.lang-switch { width: 56px; }
	.lang-switch a { font-size: .95rem; }
	.site-header__toggle { width: 64px; }
	.site-menu { flex-direction: column; }
	.site-menu__nav { padding: 40px 20px; }
	.mega-menu > li > a { font-size: 1.6rem; padding-left: 20px; margin-bottom: 12px; }
	.mega-menu .sub-menu { padding-left: 25px; }
	.site-menu__side { width: 100%; padding: 30px 0 0; }
	.site-menu__follow { writing-mode: horizontal-tb; padding: 0; }
	.site-menu__follow::after { display: none; }
	.site-menu__side .social-icons { flex-direction: row; }
}

/* Content layout -------------------------------------------------------- */
.entry__content > * { width: min(100% - 2 * var(--gutter), var(--w)); margin-inline: auto; }
.entry__content > .alignfull, .entry__content > .pf-section.alignfull, .entry__content > .pf-hero { width: 100%; max-width: none; }
.entry__content > .alignwide { width: min(100% - 2 * var(--gutter), 1400px); }
.entry__content--narrow > * { width: min(100% - 2 * var(--gutter), 870px); }
.entry__content--narrow { padding-bottom: 80px; }
.entry__content--narrow img { margin-block: 1.5em; }
.entry__content > :last-child { margin-bottom: 0; }

.pf-section { padding-block: clamp(50px, 7vw, 100px); position: relative; }
/* Top-level sections span the full width (backgrounds bleed), their content stays boxed. */
.entry__content > .pf-section:not(.wp-block-cover) { width: 100%; padding-inline: max(var(--gutter), calc((100% - var(--w)) / 2)); }
.entry__content > .pf-section { overflow: hidden; }
/* Elementor sections with a background that became a bare columns block */
.entry__content > .pf-cols[class*="has-bg-"] { width: 100%; padding: clamp(50px, 7vw, 100px) max(var(--gutter), calc((100% - var(--w)) / 2 - 15px)); position: relative; overflow: hidden; }
.entry__content > .pf-cols[class*="has-bg-"] .pf-abs { right: max(var(--gutter), calc((100% - var(--w)) / 2)); bottom: 0; width: auto; height: calc(100% + 75px); }
.entry__content > .pf-cols[class*="has-bg-"] .pf-abs img { height: 100%; width: auto; }
/* Home "Über Uns": portrait standing on the section edge, faint logo behind it */
.front > .pf-cols.has-bg-pf-light { padding-block: 105px; overflow: visible; }
.front > .pf-cols.has-bg-pf-light::before { content: ""; position: absolute; inset: 0; background: url(../img/logo-black.svg) no-repeat 50vw 25% / 50vw auto; opacity: .1; pointer-events: none; }
.pf-anchor, .entry__content [id] { scroll-margin-top: var(--header); }
.has-bg-pf-light { background: var(--light); }
.has-bg-pf-accent { background: var(--accent); color: #fff; }
.has-bg-pf-grey { background: var(--grey); }
.has-bg-pf-dark { background: var(--dark); color: #fff; }
.has-bg-pf-accent :is(h1,h2,h3,h4,p,a), .has-bg-pf-dark :is(h1,h2,h3,h4,p,a) { color: #fff; }
.has-pf-white-color { color: #fff !important; }
.has-pf-accent-color { color: var(--accent) !important; }
.has-pf-text-color { color: var(--text, #949494) !important; }
.has-pf-dark-color { color: #333 !important; }
.has-pf-grey-color { color: #bcbcbc !important; }
.has-pf-light-color { color: #f2f2f2 !important; }
.has-text-align-center { text-align: center; }
.has-text-align-right { text-align: right; }

.pf-h1 { font-size: var(--fs-h1); line-height: 1.1; }
.pf-h2 { font-size: var(--fs-h2); }
.pf-h3 { font-size: var(--fs-h3); }
.pf-kicker { font-size: var(--fs-kicker); text-transform: uppercase; }
.pf-small { font-size: var(--fs-small); }

/* Columns */
.wp-block-columns { display: flex; flex-wrap: nowrap; gap: 0; align-items: flex-start; }
.pf-cols { align-items: stretch; }
.pf-cols.is-wrap { flex-wrap: wrap !important; }
.wp-block-column { flex: 1 1 0; min-width: 0; padding: 0 15px; }
.wp-block-column[style*="flex-basis"] { flex-grow: 0; }
.wp-block-column.has-bg-pf-light { padding: 60px 50px; align-self: stretch; }
.pf-row { display: flex; flex-wrap: wrap; align-items: flex-start; }
.pf-row > .pf-iconbox.has-icon { flex: 1 1 25%; }
.pf-row > * { flex: 0 1 auto; min-width: 0; }
.pf-row > .pf-iconbox.has-icon { flex: 1 1 25%; }
.pf-row > .wp-block-buttons:has(+ .wp-block-buttons) { margin-right: 20px; }
@media (max-width: 767px) {
	.wp-block-columns { flex-wrap: wrap !important; }
	.wp-block-column, .wp-block-column[style*="flex-basis"] { flex-basis: 100% !important; padding: 0; }
	.wp-block-column + .wp-block-column { margin-top: 30px; }
	.wp-block-column.has-bg-pf-light { padding: 40px 20px; }
	.pf-row > .pf-iconbox.has-icon { flex-basis: 50%; }
}

/* Text */
.pf-text { margin-bottom: 1.2em; }
.pf-text ul, .wp-block-list { padding-left: 40px; }

/* Images */
.wp-block-image { margin: 0 0 1em; }
.wp-block-image img { max-width: 100%; height: auto; vertical-align: middle; }
.wp-block-image.pf-align-right { text-align: right; }
.wp-block-image.pf-align-center { text-align: center; }
.wp-block-image.is-resized img { width: auto; max-width: 100%; }
.pf-video { width: 100%; display: block; background: #000; aspect-ratio: 16 / 9; object-fit: cover; }

/* Cover (backgrounds, CTA tiles, slides, page hero) */
.wp-block-cover { position: relative; display: flex; align-items: center; overflow: hidden; min-height: 300px; }
.wp-block-cover__image-background { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.wp-block-cover__background { position: absolute; inset: 0; z-index: 1; background: #000; opacity: 0; }
.wp-block-cover__background.has-background-dim-40 { opacity: .4; }
.wp-block-cover__inner-container { position: relative; z-index: 2; width: 100%; }
.wp-block-cover.pf-section { display: block; min-height: 0; }
.wp-block-cover.pf-section > .wp-block-cover__inner-container > * { width: min(100% - 2 * var(--gutter), var(--w)); margin-inline: auto; }
.wp-block-cover.pf-section > .wp-block-cover__inner-container > .pf-section { padding-block: 0; }

.pf-hero { position: relative; display: flex; align-items: center; min-height: 292px; padding-block: 60px; background: var(--dark); overflow: hidden; }
.pf-hero--plain { min-height: 200px; background: var(--light); }
.pf-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.wp-block-cover.pf-hero { min-height: 292px; }
.wp-block-cover.pf-hero .wp-block-cover__inner-container, .pf-hero .container { width: min(100% - 2 * var(--gutter), var(--w)); margin-inline: auto; position: relative; z-index: 2; }
.pf-hero__title { color: #fff; font-size: var(--fs-h1); margin: 0; text-shadow: 0 1px 12px rgba(0,0,0,.25); }
.pf-hero--plain .pf-hero__title { color: var(--dark); text-shadow: none; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 20px; font-size: var(--fs-small); color: #fff; }
.breadcrumbs__current { color: var(--grey); }
.pf-hero--katalog { min-height: 350px; }
.breadcrumbs a { color: #fff; }
.pf-hero--plain .breadcrumbs a { color: var(--text); }
.breadcrumbs span { color: rgba(255,255,255,.6); }
@media (max-width: 767px) { .pf-hero, .wp-block-cover.pf-hero { min-height: 200px; } }

/* Slider */
.slider { position: relative; ; overflow: hidden; }
.slider__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.slider__track::-webkit-scrollbar { display: none; }
.slider__track > .wp-block-cover { flex: 0 0 100%; scroll-snap-align: start; min-height: 720px !important; }
.pf-slide .wp-block-cover__inner-container { width: min(100% - 2 * var(--gutter), var(--w)); margin-inline: auto; padding-right: 25%; }
.pf-slide__title, .pf-slide__subtitle { color: #fff; font-size: var(--fs-h1); line-height: 1.1; margin-bottom: 30px; text-shadow: 0 1px 14px rgba(0,0,0,.3); }
.pf-slide__text { color: #fff; font-size: 1.125rem; text-shadow: 0 1px 8px rgba(0,0,0,.4); }
.pf-slide .wp-block-button__link { padding: 15px 30px; }
.slider__dots { position: absolute; left: 0; right: 0; bottom: 30px; display: flex; justify-content: center; gap: 12px; z-index: 3; }
.slider__dots button { width: 12px; height: 12px; padding: 0; border-radius: 50%; border: 0; background: rgba(255,255,255,.5); cursor: pointer; }
.slider__dots button[aria-current="true"] { background: var(--accent); }
.slider__arrow { position: absolute; top: 50%; z-index: 3; width: 50px; height: 50px; margin-top: -25px; border: 0; background: rgba(0,0,0,.25); color: #fff; cursor: pointer; opacity: 0; transition: opacity .2s; }
.slider:hover .slider__arrow, .slider__arrow:focus-visible { opacity: 1; }
.slider__arrow--prev { left: 20px; }
.slider__arrow--prev .icon { transform: scaleX(-1); }
.slider__arrow--next { right: 20px; }
.slider__arrow .icon { width: 26px; height: 26px; }
@media (max-width: 767px) {
	.slider__track > .wp-block-cover { min-height: 520px !important; }
	.pf-slide .wp-block-cover__inner-container { padding-right: 0; }
}
.entry__content > .pf-section:has(> .slider) { padding: 0; width: 100%; }

/* Icon box & text box */
.pf-iconbox { padding: 15px; }
.pf-iconbox.has-icon { text-align: center; }
.pf-iconbox__icon { margin: 0 0 25px; display: flex; justify-content: center; }
.pf-iconbox__icon img, .pf-icon { width: 70px; height: 70px; object-fit: contain; }
/* SVG icons drawn as masks so they take the original Elementor colours */
.pf-svg { display: inline-block; width: var(--icon-size, 70px); height: var(--icon-size, 70px); background: var(--icon-color, var(--accent)); -webkit-mask: var(--icon) center / contain no-repeat; mask: var(--icon) center / contain no-repeat; vertical-align: middle; }
.pf-svg.is-stacked { box-sizing: content-box; position: relative; padding: var(--icon-pad, 0px); border-radius: 50%; background: var(--icon-bg); -webkit-mask: none; mask: none; transition: transform .3s; }
.pf-svg.is-stacked::after { content: ""; position: absolute; inset: var(--icon-pad, 0px); background: var(--icon-color); -webkit-mask: var(--icon) center / contain no-repeat; mask: var(--icon) center / contain no-repeat; transition: background-color .3s; }
a:hover > .pf-svg.is-stacked { transform: translateY(-8px); }
a:hover > .pf-svg.is-stacked::after { background: var(--accent); }
/* Decorative images that Elementor positioned absolutely (e.g. the swirl next to "Über Uns") */

.pf-cols:has(.pf-abs) { position: relative; }
.pf-abs { position: absolute; right: calc(-1 * max(0px, (100vw - var(--w)) / 2)); bottom: -100px; width: min(55vw, 760px); margin: 0; pointer-events: none; z-index: 0; }
.pf-abs ~ .pf-abs { display: none; }
.pf-cols:has(.pf-abs) > .wp-block-column { position: relative; z-index: 1; }
.pf-cols:has(.pf-abs) > .wp-block-column:has(> .pf-abs) { position: static; }
@media (max-width: 767px) { .pf-abs { display: none; } }
.pf-iconbox__title { font-size: 1.125rem; font-weight: 600; text-transform: uppercase; margin-bottom: 15px; }
.pf-iconbox__title a { color: var(--dark); }
.pf-iconbox__title a:hover { color: var(--accent); }
.pf-iconbox__text { font-size: var(--fs-small); line-height: 1.618; }
.pf-iconbox__text:is(div) { font-size: var(--fs-text); }
.pf-iconbox.is-stacked .pf-iconbox__icon img { width: 110px; height: 110px; padding: 15px; border-radius: 50%; background: #fff; }
.pf-textbox { padding: 0; }
.pf-textbox .pf-iconbox__title { font-size: var(--fs-h3); text-transform: none; margin-bottom: 30px; }
.pf-textbox .pf-iconbox__text { font-size: var(--fs-text); }

/* Front page: Geschäftsfelder band with the swirl watermark */
.front > .pf-section:nth-child(2) { padding-block: 120px; overflow: hidden; }
.front > .pf-section:nth-child(2)::before { content: ""; position: absolute; left: -23vw; top: 0; width: 50vw; height: 100%; background: url(../img/logo-black.svg) no-repeat left top / 50vw auto; opacity: .05; pointer-events: none; }
.front > .pf-section:nth-child(2) .pf-iconbox__title a { color: var(--dark); }

/* Grey box with heading next to a background image (Nachhaltigkeit on the front page) */
/* Red quote box ("Unser Anspruch ist …") */
.pf-cols > .wp-block-column[style*="33.33"]:last-child > .pf-textbox:only-child { background: var(--accent); padding: 70px; position: relative; z-index: 2; }
.pf-cols > .wp-block-column[style*="33.33"]:last-child > .pf-textbox:only-child :is(h3, p) { color: #fff; }
.pf-cols > .wp-block-column[style*="33.33"]:last-child > .pf-textbox:only-child .pf-iconbox__title { font-size: var(--fs-kicker); text-transform: uppercase; margin-bottom: 20px; }
.pf-cols > .wp-block-column[style*="33.33"]:last-child > .pf-textbox:only-child .pf-iconbox__text { font-size: var(--fs-h3); font-weight: 600; line-height: 1.25; }
@media (max-width: 1024px) {
	.pf-cols > .wp-block-column[style*="33.33"]:last-child > .pf-textbox:only-child { padding: 40px 30px; margin-top: 0; }
}

/* CTA tiles (Produkt-Katalog, Eigenmarken, Bio-Produkte) */
.pf-cta.wp-block-cover { min-height: 370px; aspect-ratio: 1; align-items: flex-end; background: #ddd; }
.pf-cta .wp-block-cover__inner-container { padding: 35px; }
.pf-cta .wp-block-cover__image-background { transition: transform .5s; }
.pf-cta:hover .wp-block-cover__image-background { transform: scale(1.05); }
.pf-cta__title { color: #fff; font-size: var(--fs-h1); line-height: 1.1; margin: 0; }
.pf-cta__title a { color: inherit; }
.pf-cta__title a::after { content: ""; position: absolute; inset: 0; z-index: 3; }
.pf-cta__text { color: #fff; font-size: var(--fs-h1); font-weight: 600; line-height: 1.1; margin: 0; }
.pf-cta__arrow { margin: 25px 0 0; }
.pf-cta__arrow .pf-svg { width: 40px; height: 30px; }
@media (max-width: 1024px) { .pf-row > .pf-cta { flex-basis: 100%; } .pf-cta.wp-block-cover { aspect-ratio: auto; min-height: 280px; } }

/* Counter */
.pf-counter { display: inline-flex; flex-direction: column; justify-content: center; width: 270px; height: 270px; padding: 30px; background: var(--accent); color: #fff; }
.pf-counter .counter { display: block; font-size: 4.766rem; font-weight: 700; line-height: 1.1; text-align: center; }
.pf-counter__title { margin: 10px 0 0; font-weight: 600; text-transform: uppercase; line-height: 1.25; color: #fff; }
@media (max-width: 767px) { .pf-counter { width: 100%; height: auto; } }

/* Image box (team) */
.pf-imagebox__img img { aspect-ratio: 1; object-fit: cover; }
.pf-imagebox__title { font-size: 1.125rem; margin: 20px 0 5px; }
.pf-imagebox__text { font-size: var(--fs-small); }
.pf-iconlist { list-style: none; padding: 0; margin: 15px 0 0; }
.pf-iconlist li { display: flex; align-items: center; gap: 12px; font-size: var(--fs-small); color: var(--dark); }
.pf-iconlist a { display: flex; gap: 12px; align-items: center; color: var(--dark); }
.pf-fa { display: inline-block; width: 14px; height: 14px; flex: none; background: currentColor; -webkit-mask: var(--fa) center / contain no-repeat; mask: var(--fa) center / contain no-repeat; color: var(--accent); }
.pf-fa.fa-phone-alt, .pf-fa.fa-phone, .pf-fa.fa-mobile-alt { --fa: url(../icons/phone.svg); }
.pf-fa.fa-envelope, .pf-fa.fa-envelope-open { --fa: url(../icons/envelope.svg); }
.pf-fa.fa-map-marker-alt { --fa: url(../icons/pin.svg); }
.pf-fa.fa-fax { --fa: url(../icons/fax.svg); }
.pf-fa.fa-exclamation-triangle { --fa: url(../icons/warning.svg); }
.pf-fa.fa-file-pdf { --fa: url(../icons/file-pdf.svg); color: inherit; }
.pf-fa[style*="--fa-size"] { width: var(--fa-size); height: var(--fa-size); }
.pf-btn .pf-fa { width: 1em; height: 1em; vertical-align: -.125em; margin-right: 15px; }
/* Icon box with the icon to the left of the title (Elementor position: left) */
.pf-iconbox.is-icon-left { display: grid; grid-template-columns: auto 1fr; column-gap: 12px; align-items: start; text-align: left; }
.pf-iconbox.is-icon-left > .pf-iconbox__icon { grid-row: 1 / span 2; margin: 0; line-height: 1; padding-top: 4px; }
.pf-iconbox.is-icon-left > :not(.pf-iconbox__icon) { grid-column: 2; }
.pf-iconbox__text > p:last-child { margin-bottom: 0; }
.has-bg-pf-text { background: var(--text); }
.pf-hero--color { padding-block: 120px; min-height: 0; }
.pf-hero--color > .pf-hero__title { width: min(100% - 2 * var(--gutter), var(--w)); margin-inline: auto; }
.pf-icon-only { margin: 0; padding: 15px; text-align: center; }
.pf-icon-only img { width: auto; height: auto; max-width: 170px; }
.pf-icon-only.is-stacked img { width: 150px; height: 150px; padding: 20px; border-radius: 50%; background: var(--light); }

/* Timeline (Geschichte) */
/* Horizontal timeline (JetElements "chess" layout): cards alternate above / below a line */
.pf-timeline { --tl-gap: 30px; padding-left: 10px !important; display: grid; grid-template-rows: auto 19px auto; grid-auto-flow: column; grid-auto-columns: calc((100% - 2 * var(--tl-gap)) / 3); column-gap: var(--tl-gap); overflow-x: auto; padding: 30px 0 20px; scrollbar-color: var(--grey) var(--light); }
.pf-timeline::-webkit-scrollbar { height: 10px; background: var(--light); }
.pf-timeline::-webkit-scrollbar-thumb { background: var(--grey); }
.pf-timeline__item { grid-row: 1 / 4; display: grid; grid-template-rows: subgrid; position: relative; }
.pf-timeline__item::before { content: ""; grid-row: 2; align-self: center; height: 2px; margin-right: calc(-1 * var(--tl-gap)); background: var(--light); }
.pf-timeline__item::after { content: ""; position: absolute; left: -8px; top: 50%; width: 19px; height: 19px; box-sizing: border-box; border: 4px solid var(--accent); border-radius: 50%; background: #fff; }
.pf-timeline__card { grid-row: 1; align-self: end; border-left: 1px solid var(--grey); padding: 0 0 15px 30px; margin: 0; }
.pf-timeline__item:nth-child(even) .pf-timeline__card { grid-row: 3; align-self: start; padding: 15px 0 0 30px; }
.pf-timeline:not(.is-chess) .pf-timeline__item .pf-timeline__card { grid-row: 3; align-self: start; padding: 15px 0 0 30px; }
.pf-timeline__item:has(.pf-timeline__card) { row-gap: 0; }
.pf-timeline__item { grid-template-rows: subgrid; }
.pf-timeline__year { color: var(--dark); font-size: var(--fs-text); margin: 0 0 10px; }
.pf-timeline__title { font-size: 1.125rem; }
.pf-timeline__text { font-size: var(--fs-small); margin: 0; }
@media (max-width: 1024px) { .pf-timeline { grid-auto-columns: calc((100% - var(--tl-gap)) / 2); } }
@media (max-width: 767px) { .pf-timeline { grid-auto-columns: 85%; } }

/* Details (toggle) */
.wp-block-details { border-bottom: 1px solid #e3e3e3; padding: 18px 0; }
.wp-block-details summary { cursor: pointer; color: var(--dark); font-weight: 600; }

/* News cards ------------------------------------------------------------ */
.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
@media (max-width: 1024px) { .cards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 680px) { .cards { grid-template-columns: 1fr; } }
.card { display: flex; flex-direction: column; background: #fff; border: 1px solid #f0f0f0; box-shadow: 0 0 10px rgba(0,0,0,.03); }
.card__media { position: relative; display: block; aspect-ratio: 370 / 263; background: var(--light); }
.card__media img { width: 100%; height: 100%; object-fit: cover; }
.card__badge { position: absolute; right: 20px; bottom: -14px; padding: 4px 15px; border-radius: 999px; background: var(--accent); color: #fff; font-size: .75rem; font-weight: 600; text-transform: uppercase; line-height: 1.9; }
.card--events .card__badge, .card__badge.card--events { background: var(--blue); }
.entry__meta .card__badge { position: static; margin-right: 15px; }
.card__body { flex: 1; padding: 30px 30px 20px; display: flex; flex-direction: column; }
.card__title { font-size: 1.82rem; margin-bottom: 25px; }
.card__title a { color: var(--dark); }
.card__title a:hover { color: var(--accent); }
.card__excerpt { font-size: .906rem; line-height: 1.6; margin-bottom: 25px; flex: 1; }
.card__more { font-weight: 600; font-size: 1.125rem; text-transform: uppercase; }
.card--events .card__more { color: var(--blue); }
.card__date { padding: 12px 30px; border-top: 1px solid #f0f0f0; font-size: .906rem; color: #adadad; }
.pf-posts__more { text-align: center; margin-top: 30px; }
.pf-posts__more .btn { padding: 12px 30px; }

/* Katalog tiles & product ---------------------------------------------- */
.tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
@media (max-width: 1024px) { .tiles { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .tiles { grid-template-columns: 1fr; } }
.tile { position: relative; display: flex; align-items: flex-end; aspect-ratio: 1; overflow: hidden; background: var(--grey); color: #fff; }
.tile__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 40%, rgba(0,0,0,.45)); }
.tile:hover .tile__img { transform: scale(1.05); }
.tile__body { position: relative; z-index: 1; padding: 35px; display: flex; flex-direction: column; gap: 20px; }
.tile__title { font-size: var(--fs-h1); font-weight: 600; line-height: 1.1; color: #fff; hyphens: auto; }
.tiles--pages .tile__title { font-size: clamp(1.5rem, 2.2vw, 2.25rem); overflow-wrap: break-word; }
.tile .icon { width: 40px; height: 30px; color: #fff; }

.product { display: grid; grid-template-columns: minmax(0, 1fr) 270px; gap: 60px; align-items: start; }
.product__main { max-width: 770px; }
.product__title { font-size: var(--fs-h2); margin-bottom: 25px; }
.product__desc { margin-bottom: 30px; }
.product__table { overflow-x: auto; margin-bottom: 40px; }
.product__table table { width: auto; min-width: min(100%, 770px); border-collapse: collapse; font-size: var(--fs-small); text-align: center; }
.product__table :is(th, td) { border: 1px solid #ccc; padding: 6px 15px; text-align: center; }
.product__table th { font-weight: 700; text-transform: uppercase; color: var(--dark); }
.product__gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; max-width: 770px; }
.product__gallery img { width: 100%; height: auto; }
.katalog-nav { background: var(--light); padding: 30px; font-size: 1rem; line-height: 1.6; }
.katalog-nav__title { font-weight: 600; text-transform: uppercase; color: var(--dark); margin-bottom: 10px; }
.katalog-nav ol { margin: 0; padding-left: 18px; list-style: decimal; }
.katalog-nav a { color: var(--text); }
.katalog-nav a:hover, .katalog-nav .current_page_item > a { color: var(--accent); }
@media (max-width: 1024px) { .product { grid-template-columns: 1fr; } }

/* Post meta / nav */
.entry__meta { display: flex; align-items: center; padding-block: 30px; font-size: var(--fs-small); }
.post-nav { display: flex; justify-content: space-between; gap: 30px; padding-bottom: 80px; font-weight: 600; }
.nav-links { display: flex; justify-content: center; gap: 10px; margin-top: 50px; }
.page-numbers { padding: 6px 14px; border: 1px solid #e3e3e3; color: var(--dark); }
.page-numbers.current { background: var(--accent); border-color: var(--accent); color: #fff; }

/* Forms ------------------------------------------------------------------ */
.pf-form { display: grid; gap: 20px; }
.pf-form label { display: block; margin-bottom: 6px; color: var(--dark); font-size: var(--fs-small); font-weight: 500; }
.pf-form input:not([type="checkbox"]):not([type="radio"]), .pf-form textarea, .pf-form select {
	width: 100%; padding: 12px 15px; border: 1px solid #d5d5d5; border-radius: 0; font: inherit; font-size: 1rem; color: var(--dark); background: #fff;
}
.pf-form input:focus, .pf-form textarea:focus { border-color: var(--accent); outline: none; }
.pf-form .is-invalid { border-color: var(--accent) !important; }
.pf-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
@media (max-width: 680px) { .pf-form__row { grid-template-columns: 1fr; } }
.pf-form__check { display: flex; gap: 10px; align-items: flex-start; font-size: var(--fs-small); }
.pf-form__check input { margin-top: 5px; accent-color: var(--accent); }
.pf-form__hp { position: absolute; left: -9999px; }
.pf-form__msg { padding: 15px 20px; background: var(--light); color: var(--dark); }
.pf-form__msg.is-error { background: #fdecec; color: var(--accent); }
.pf-form__msg:empty { display: none; }

/* Footer ------------------------------------------------------------------ */
.site-footer { position: relative; background: var(--grey); color: #fff; overflow: hidden; }
.site-footer::before { content: ""; position: absolute; left: -120px; top: 120px; width: 480px; height: 560px; background: url(../img/logo-outline.svg) no-repeat left top / contain; pointer-events: none; }
.site-footer a { color: #fff; }
.site-footer a:hover { color: var(--dark); }
.site-footer__inner { position: relative; display: grid; grid-template-columns: 270px 1fr 270px; gap: 30px; padding-block: 120px; }
.site-footer__logo .logo img { width: 170px; }
.site-footer__heading, .footer-menu > li > a { display: block; margin: 0 0 15px; color: #fff; font-size: 1.125rem; font-weight: 600; text-transform: uppercase; }
.footer-menu > li > a[href="#"] { pointer-events: none; }
.footer-menu { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 30px; }
.footer-menu > li { break-inside: avoid; margin-bottom: 30px; }
.footer-menu .sub-menu { list-style: none; margin: 0; padding: 0; }
.footer-menu .sub-menu a, .contact-list { font-size: .906rem; line-height: 1.6; }
.contact-list { list-style: none; margin: 0 0 40px; padding: 0; }
.contact-list li { display: flex; gap: 18px; align-items: flex-start; }
.contact-list .icon { width: 16px; height: 16px; margin-top: 4px; color: #fff; }
.site-footer .social-icon { width: 30px; height: 30px; }
.site-footer__bottom { position: relative; display: flex; background: var(--dark); }
.site-footer__bottom-inner { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding-block: 14px; font-size: .906rem; }
.site-footer__bottom p { margin: 0; color: #fff; }
.legal-menu { display: flex; flex-wrap: wrap; gap: 60px; list-style: none; margin: 0; padding: 0; }
.site-footer__bottom .katalog-button { position: absolute; right: 0; top: 0; height: 100%; width: 182px; }
@media (max-width: 1600px) { .site-footer__bottom-inner { padding-right: 200px; } }
@media (max-width: 1024px) {
	.site-footer__inner { grid-template-columns: 1fr 1fr; padding-block: 70px; }
	.site-footer__nav { grid-column: 1 / -1; grid-row: 2; }
	.legal-menu { gap: 25px; }
}
@media (max-width: 680px) {
	.site-footer__inner { grid-template-columns: 1fr; }
	.site-footer__company { grid-row: 2; }
	.site-footer__nav { grid-row: 3; }
	.footer-menu { columns: 1; }
	.site-footer__bottom { flex-direction: column; }
	.site-footer__bottom-inner { flex-direction: column; align-items: flex-start; padding: 20px 0; }
	.site-footer__bottom .katalog-button { position: static; width: 100%; }
}

/* Cookie banner */
.cookie-banner { position: fixed; left: 0; right: 0; bottom: 0; z-index: 200; display: flex; align-items: center; justify-content: center; gap: 30px; padding: 20px var(--gutter); background: #fff; box-shadow: 0 -4px 24px rgba(0,0,0,.12); }
.cookie-banner[hidden] { display: none; }
.cookie-banner p { margin: 0; max-width: 820px; font-size: var(--fs-small); color: var(--dark); }
.cookie-banner .btn { padding: 10px 26px; font-size: 1rem; }
@media (max-width: 680px) { .cookie-banner { flex-direction: column; align-items: stretch; gap: 15px; } }

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

/* Minimal layout helpers (core global layout styles are not loaded) */
:where(.is-layout-flex) { display: flex; flex-wrap: wrap; align-items: center; }
:where(.is-layout-flex.is-vertical) { flex-direction: column; align-items: flex-start; }
.is-content-justification-center { justify-content: center; }
.is-content-justification-right { justify-content: flex-end; }

/* Core block bits the theme still needs (wp-block-library is not loaded on the front end) */
.wp-block-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; margin: 0 0 1.5em; }
.wp-block-gallery .wp-block-image { margin: 0; }
.wp-block-gallery.columns-default img { aspect-ratio: 4 / 3; object-fit: cover; }
.wp-block-gallery[class*="columns-"]:not(.columns-default) { grid-template-columns: repeat(var(--cols), 1fr); gap: 30px; align-items: center; }
.wp-block-gallery.columns-2 { --cols: 2; } .wp-block-gallery.columns-3 { --cols: 3; } .wp-block-gallery.columns-4 { --cols: 4; }
.wp-block-gallery:not(.columns-default) img { width: 100%; }
.wp-block-embed { margin: 0 0 1.5em; }
.wp-block-embed__wrapper { position: relative; aspect-ratio: 16 / 9; }
.wp-block-embed__wrapper iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.wp-block-separator { border: 0; border-top: 1px solid #e3e3e3; margin: 2em auto; }
.wp-block-spacer { clear: both; }
.wp-block-table { overflow-x: auto; margin: 0 0 1.5em; }
.wp-block-quote { margin: 1.5em 0; padding-left: 1.5em; border-left: 4px solid var(--accent); color: var(--dark); }
figcaption, .wp-element-caption { font-size: var(--fs-small); margin-top: .5em; }
.aligncenter { margin-inline: auto; text-align: center; }
.alignleft { float: left; margin: 0 1.5em 1em 0; }
.alignright { float: right; margin: 0 0 1em 1.5em; }
.has-text-align-left { text-align: left; }

/* Icon box labels in small type (e.g. "Unsere Zielgruppe") */
.pf-iconbox__title.pf-small { font-size: var(--fs-small); font-weight: 400; text-transform: none; }
.pf-iconbox__title.pf-text { font-size: 1.125rem; font-weight: 400; line-height: 1.618; text-transform: none; margin: 8px 0 16px; }
.pf-video { height: auto; }
.entry__content .pf-iconlist li { font-size: 1rem; margin-bottom: 4px; }
.pf-contact > p:last-child { text-align: right; }
.site-header__shop.is-current { visibility: hidden; }

/* Elementor "sticky: top" columns (desktop only) */
@media (min-width: 1025px) { .pf-sticky { position: sticky; top: calc(var(--header) + 30px); align-self: flex-start; } }

/* Text + button box (career "Bewerben") */
.pf-cta-box { font-size: 1rem; line-height: 1.618; color: var(--dark); }
.pf-cta-box p { margin: 0 0 30px; }
.pf-cta-box .wp-block-button, .pf-cta-box .wp-block-button__link { width: 100%; }
.pf-cta-box .wp-block-button__link { padding: 14px 15px; font-size: 1rem; text-transform: uppercase; text-align: center; border-width: 0; }

/* Image box with the image beside the text (team page avatars) */
.pf-imagebox.is-left, .pf-imagebox.is-right { display: grid; grid-template-columns: 70px 1fr; column-gap: 31px; align-items: start; }
.pf-imagebox.is-right { grid-template-columns: 1fr 70px; }
.pf-imagebox.is-right > .pf-imagebox__img { order: 2; }
.pf-imagebox.is-left > .pf-imagebox__img, .pf-imagebox.is-right > .pf-imagebox__img { margin: 0; }
.pf-imagebox.is-left .pf-imagebox__img img, .pf-imagebox.is-right .pf-imagebox__img img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 50%; }
.pf-imagebox__body > * { margin: 0; }
.pf-imagebox__title { color: var(--dark); font-size: var(--fs-text); line-height: 1.618; }
.pf-imagebox__body .pf-imagebox__text { font-size: var(--fs-small); color: var(--text); line-height: 1.618; }

/* Single news / blog post (same narrow column as the old Elementor single template) */
.post-single { width: min(100% - 2 * var(--gutter), 770px); margin: 0 auto; padding-top: 100px; }
.post-single__crumbs { display: block; color: var(--grey); font-size: 1.125rem; margin: 0 0 20px; }
.post-single__crumbs span { color: var(--grey); }
.post-single__crumbs a { color: var(--grey); }
.post-single__crumbs a:hover { color: var(--accent); }
.post-single__title { font-size: clamp(2rem, 3.3vw, 2.945rem); font-weight: 600; line-height: 1.1; color: var(--dark); margin: 0 0 30px; }
.post-single__meta { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 30px; font-size: .8rem; color: var(--grey); }
.post-single__meta time { display: inline-flex; align-items: center; gap: 6px; }
.post-single__meta .icon { width: 14px; height: 14px; }
.post-single__meta .card__badge { position: static; font-size: 12px; padding: 2px 14px; border-radius: 20px; line-height: 29px; }
.post-single__img { margin: 0 0 30px; }
.post-single__img img { width: 100%; height: auto; display: block; }
.post-single__content { color: var(--text); font-size: 1.125rem; line-height: 1.618; }
.post-single__content p { margin: 0 0 1.618em; }
.post-single__content h2 { font-size: 2rem; font-weight: 500; line-height: 1.2; color: var(--text); margin: 8px 0 16px; }
.post-single__content h3 { font-size: 1.5rem; font-weight: 500; line-height: 1.2; color: var(--text); margin: 8px 0 16px; }
.post-single__content .wp-block-image img { width: 100%; }
.post-single .post-nav { padding-top: 40px; }
.card__badge.card--trends { background: #9c27b0; }
.pf-listing-intro { margin: 0 0 40px; }
.pf-imagebox__body { min-width: 0; overflow-wrap: anywhere; }

/* Elementor responsive visibility */
@media (min-width: 1025px) { .pf-hide-desktop { display: none !important; } }
@media (min-width: 768px) and (max-width: 1024px) { .pf-hide-tablet { display: none !important; } }
@media (max-width: 767px) { .pf-hide-mobile { display: none !important; } }
