/**
 * PWS Website-Generator – Responsive Hardening
 * Version 1.2.19
 *
 * CORE:      zentrale Frontend-Hülle und alle generierten PWS-Komponenten.
 * ROOT CAUSE: über Releases gewachsene, später geladene CSS-Regeln konnten
 *             ältere Mobile-Breakpoints überstimmen; feste/minimale Breiten
 *             einzelner Komponenten konnten schmale Viewports belasten.
 * REGRESSION: Diese Datei wird absichtlich NACH frontend.css geladen und
 *             enthält nur Layout-/Responsive-Regeln. Geschäftslogik,
 *             Inhalte, Preise und Portalziele bleiben unberührt.
 */

/* ---------- Globale Breiten- und Umbruchgarantien ---------- */
html,
body.pwsws-site {
	width: 100%;
	max-width: 100%;
	overflow-x: hidden;
}

@supports (overflow: clip) {
	html,
	body.pwsws-site {
		overflow-x: clip;
	}
}

body.pwsws-site .pwsws-header,
body.pwsws-site .pwsws-main,
body.pwsws-site .pwsws-footer,
body.pwsws-site .pwsws-section,
body.pwsws-site .pwsws-hero,
body.pwsws-site .pwsws-final-cta,
body.pwsws-site .pwsws-portal-banner {
	max-width: 100%;
}

/* Grid-/Flex-Kinder dürfen ihre Spalte niemals durch intrinsische Breite sprengen. */
body.pwsws-site .pwsws-header__inner > *,
body.pwsws-site .pwsws-navigation > *,
body.pwsws-site .pwsws-navigation__actions > *,
body.pwsws-site .pwsws-hero__grid > *,
body.pwsws-site .pwsws-card-grid > *,
body.pwsws-site .pwsws-price-grid > *,
body.pwsws-site .pwsws-split > *,
body.pwsws-site .pwsws-process > *,
body.pwsws-site .pwsws-portal-cards > *,
body.pwsws-site .pwsws-contact-panel > *,
body.pwsws-site .pwsws-portal-banner .pwsws-container > *,
body.pwsws-site .pwsws-footer__cta .pwsws-container > *,
body.pwsws-site .pwsws-footer__grid > *,
body.pwsws-site .pwsws-footer__bottom .pwsws-container > *,
body.pwsws-site .pwsws-service-index__links > *,
body.pwsws-site .pwsws-service__header > *,
body.pwsws-site .pwsws-service__details > *,
body.pwsws-site .pwsws-service__footer > * {
	min-width: 0;
	max-width: 100%;
}

body.pwsws-site img,
body.pwsws-site svg,
body.pwsws-site video,
body.pwsws-site canvas,
body.pwsws-site iframe,
body.pwsws-site table {
	max-width: 100%;
}

body.pwsws-site h1,
body.pwsws-site h2,
body.pwsws-site h3,
body.pwsws-site h4,
body.pwsws-site p,
body.pwsws-site li,
body.pwsws-site a,
body.pwsws-site strong,
body.pwsws-site small,
body.pwsws-site span,
body.pwsws-site summary,
body.pwsws-site address {
	overflow-wrap: break-word;
	word-break: normal;
}

body.pwsws-site .pwsws-button,
body.pwsws-site .pwsws-header-login,
body.pwsws-site .pwsws-header-cta {
	max-width: 100%;
	min-width: 0;
	white-space: normal;
	text-align: center;
}

body.pwsws-site .pwsws-actions {
	max-width: 100%;
}

body.pwsws-site .pwsws-eyebrow,
body.pwsws-site .pwsws-heading > span,
body.pwsws-site .pwsws-portal-banner span,
body.pwsws-site .pwsws-final-cta > .pwsws-container > span,
body.pwsws-site .pwsws-footer__cta span,
body.pwsws-site .pwsws-service-index__heading > span,
body.pwsws-site .pwsws-service__type,
body.pwsws-site .pwsws-price-card__head > span,
body.pwsws-site .pwsws-portal-cards article > span,
body.pwsws-site .pwsws-contact-tool__heading span {
	max-width: 100%;
	flex-wrap: wrap;
	white-space: normal;
}

body.pwsws-site .pwsws-contact-panel__email,
body.pwsws-site .pwsws-footer__address a,
body.pwsws-site .pwsws-text-link {
	overflow-wrap: anywhere;
}

/* ---------- Header / Navigation ---------- */
body.pwsws-site .pwsws-brand {
	min-width: 0;
	max-width: 100%;
}

body.pwsws-site .pwsws-brand__images {
	max-width: 100%;
}

body.pwsws-site .pwsws-brand__logo,
body.pwsws-site .pwsws-header.is-scrolled .pwsws-brand__logo {
	max-width: 100%;
}

body.pwsws-site .pwsws-menu-toggle {
	flex: 0 0 auto;
}

@media (max-width: 1120px) {
	body.pwsws-site .pwsws-navigation {
		box-sizing: border-box;
		width: 100%;
		max-width: 100%;
		max-height: calc(100vh - 84px);
		max-height: calc(100dvh - 84px);
		overscroll-behavior: contain;
	}

	body.pwsws-site .pwsws-navigation > ul,
	body.pwsws-site .pwsws-navigation__dropdown,
	body.pwsws-site .pwsws-navigation__actions {
		min-width: 0;
		max-width: 100%;
	}

	body.pwsws-site .pwsws-navigation > ul > li,
	body.pwsws-site .pwsws-navigation__group,
	body.pwsws-site .pwsws-navigation__dropdown a {
		min-width: 0;
		max-width: 100%;
	}

	body.pwsws-site .pwsws-navigation > ul > li > a,
	body.pwsws-site .pwsws-navigation__group > button,
	body.pwsws-site .pwsws-navigation__dropdown a {
		overflow-wrap: anywhere;
		white-space: normal;
	}
}

/* ---------- Responsive Grundraster ---------- */
@media (max-width: 782px) {
	body.pwsws-site .pwsws-container,
	body.pwsws-site.pwsws-width--wide .pwsws-container,
	body.pwsws-site.pwsws-width--standard .pwsws-container,
	body.pwsws-site.pwsws-width--narrow .pwsws-container {
		width: min(100% - 30px, 700px);
		max-width: calc(100% - 30px);
	}

	body.pwsws-site .pwsws-hero__grid,
	body.pwsws-site .pwsws-layout--editorial .pwsws-hero__grid,
	body.pwsws-site .pwsws-layout--showcase .pwsws-hero__grid,
	body.pwsws-site .pwsws-layout--compact .pwsws-hero__grid,
	body.pwsws-site .pwsws-card-grid--3,
	body.pwsws-site .pwsws-price-grid,
	body.pwsws-site .pwsws-split,
	body.pwsws-site .pwsws-contact-panel,
	body.pwsws-site .pwsws-portal-banner .pwsws-container,
	body.pwsws-site .pwsws-footer__cta .pwsws-container,
	body.pwsws-site .pwsws-process,
	body.pwsws-site .pwsws-portal-cards,
	body.pwsws-site .pwsws-service-index__links,
	body.pwsws-site .pwsws-service__header,
	body.pwsws-site .pwsws-service__details .pwsws-detail-sections {
		grid-template-columns: minmax(0, 1fr);
	}

	body.pwsws-site .pwsws-hero__content,
	body.pwsws-site .pwsws-layout--editorial .pwsws-hero__content,
	body.pwsws-site .pwsws-layout--showcase .pwsws-hero__content,
	body.pwsws-site .pwsws-layout--compact .pwsws-hero__content,
	body.pwsws-site .pwsws-hero__media,
	body.pwsws-site .pwsws-layout--showcase .pwsws-hero__media {
		width: 100%;
		max-width: 100%;
	}

	body.pwsws-site .pwsws-hero__media::before {
		inset: -10px;
	}

	body.pwsws-site .pwsws-contact-panel,
	body.pwsws-site .pwsws-card,
	body.pwsws-site .pwsws-price-card,
	body.pwsws-site .pwsws-portal-cards article {
		padding-right: clamp(20px, 5vw, 30px);
		padding-left: clamp(20px, 5vw, 30px);
	}

	body.pwsws-site .pwsws-service-index,
	body.pwsws-site .pwsws-service__header,
	body.pwsws-site .pwsws-service__details,
	body.pwsws-site .pwsws-service__footer {
		max-width: 100%;
	}

	body.pwsws-site .pwsws-module-details .pwsws-detail-sections {
		min-width: 0;
	}

	body.pwsws-site .pwsws-footer__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 34px;
	}

	body.pwsws-site .pwsws-footer nav,
	body.pwsws-site .pwsws-footer__brand,
	body.pwsws-site .pwsws-footer__address {
		min-width: 0;
		max-width: 100%;
	}

	body.pwsws-site .pwsws-footer nav a {
		max-width: 100%;
		overflow-wrap: anywhere;
	}
}

/* ---------- Smartphones ---------- */
@media (max-width: 620px) {
	body.pwsws-site .pwsws-header__inner,
	body.pwsws-site .pwsws-header.is-scrolled .pwsws-header__inner {
		width: calc(100% - 20px);
		max-width: calc(100% - 20px);
		gap: 10px;
	}

	body.pwsws-site .pwsws-brand {
		max-width: calc(100% - 64px);
	}

	body.pwsws-site .pwsws-brand__images {
		max-width: 100%;
	}

	body.pwsws-site .pwsws-brand__logo,
	body.pwsws-site .pwsws-header.is-scrolled .pwsws-brand__logo {
		width: min(190px, calc(100vw - 96px));
		height: auto;
		aspect-ratio: 276 / 79;
	}

	body.pwsws-site .pwsws-navigation {
		max-height: calc(100vh - 76px);
		max-height: calc(100dvh - 76px);
		padding-right: max(14px, env(safe-area-inset-right));
		padding-left: max(14px, env(safe-area-inset-left));
		padding-bottom: max(14px, env(safe-area-inset-bottom));
	}

	body.pwsws-site .pwsws-image-placeholder,
	body.pwsws-site .pwsws-selected-image {
		min-height: clamp(230px, 72vw, 320px);
	}

	body.pwsws-site .pwsws-service__prices--multiple {
		grid-template-columns: minmax(0, 1fr);
	}

	body.pwsws-site .pwsws-footer__logos img {
		width: min(315px, 100%);
		max-width: 100%;
		height: auto;
	}

	body.pwsws-site .pwsws-footer__bottom .pwsws-container {
		width: min(100% - 30px, 700px);
		max-width: calc(100% - 30px);
	}

	/* 1.2.18-Vorgabe bleibt erhalten: Rechtlinks eine Zeile, aber nur innerhalb ihres Scrollers. */
	body.pwsws-site .pwsws-footer__legal,
	body.pwsws-site .pwsws-footer__bottom .pwsws-footer__legal {
		min-width: 0;
		max-width: 100%;
		overscroll-behavior-inline: contain;
	}
}

@media (max-width: 480px) {
	body.pwsws-site .pwsws-container,
	body.pwsws-site.pwsws-width--wide .pwsws-container,
	body.pwsws-site.pwsws-width--standard .pwsws-container,
	body.pwsws-site.pwsws-width--narrow .pwsws-container,
	body.pwsws-site .pwsws-footer__bottom .pwsws-container {
		width: calc(100% - 24px);
		max-width: calc(100% - 24px);
	}

	body.pwsws-site .pwsws-section {
		padding-top: 48px;
		padding-bottom: 48px;
	}

	body.pwsws-site .pwsws-hero__grid,
	body.pwsws-site .pwsws-hero--inner .pwsws-hero__grid {
		padding-top: 42px;
		padding-bottom: 42px;
		gap: 30px;
	}

	body.pwsws-site .pwsws-hero h1,
	body.pwsws-site .pwsws-hero--inner h1 {
		font-size: clamp(32px, 10.5vw, 44px);
		line-height: 1.08;
		text-wrap: pretty;
	}

	body.pwsws-site .pwsws-heading h2,
	body.pwsws-site .pwsws-final-cta h2,
	body.pwsws-site .pwsws-portal-banner h2,
	body.pwsws-site .pwsws-footer__cta h2 {
		font-size: clamp(28px, 8.5vw, 40px);
		line-height: 1.12;
		text-wrap: pretty;
	}

	body.pwsws-site .pwsws-lead,
	body.pwsws-site .pwsws-heading p {
		font-size: 16px;
	}

	body.pwsws-site .pwsws-actions,
	body.pwsws-site .pwsws-actions--center,
	body.pwsws-site .pwsws-portal-banner .pwsws-actions,
	body.pwsws-site .pwsws-footer__cta .pwsws-actions,
	body.pwsws-site .pwsws-contact-panel__actions {
		align-items: stretch;
		justify-content: stretch;
		width: 100%;
		flex-direction: column;
	}

	body.pwsws-site .pwsws-actions .pwsws-button,
	body.pwsws-site .pwsws-contact-panel__actions .pwsws-button,
	body.pwsws-site .pwsws-service__footer .pwsws-button {
		width: 100%;
	}

	body.pwsws-site .pwsws-card,
	body.pwsws-site .pwsws-price-card,
	body.pwsws-site .pwsws-portal-cards article,
	body.pwsws-site .pwsws-contact-panel,
	body.pwsws-site .pwsws-service-index,
	body.pwsws-site .pwsws-service__header,
	body.pwsws-site .pwsws-service__details,
	body.pwsws-site .pwsws-service__footer {
		padding-right: 20px;
		padding-left: 20px;
	}

	body.pwsws-site .pwsws-service__details .pwsws-detail-section {
		padding-right: 18px;
		padding-left: 18px;
	}

	body.pwsws-site .pwsws-process li {
		align-items: flex-start;
		padding: 17px;
		gap: 13px;
	}

	body.pwsws-site .pwsws-process span {
		flex-basis: 42px;
		width: 42px;
		height: 42px;
	}

	body.pwsws-site .pwsws-faq-list summary {
		padding: 20px 52px 20px 18px;
	}

	body.pwsws-site .pwsws-faq-list summary::after {
		right: 15px;
	}

	body.pwsws-site .pwsws-faq-list details > div {
		padding-right: 18px;
		padding-left: 18px;
	}

	body.pwsws-site .pwsws-pricing-note,
	body.pwsws-site .pwsws-notice {
		padding: 17px;
	}

	body.pwsws-site .pwsws-footer__cta,
	body.pwsws-site .pwsws-footer__main {
		padding-top: 48px;
		padding-bottom: 48px;
	}
}

/* Extra schmale Geräte: keine Komponente darf Mindestbreite erzwingen. */
@media (max-width: 360px) {
	body.pwsws-site .pwsws-container,
	body.pwsws-site.pwsws-width--wide .pwsws-container,
	body.pwsws-site.pwsws-width--standard .pwsws-container,
	body.pwsws-site.pwsws-width--narrow .pwsws-container,
	body.pwsws-site .pwsws-footer__bottom .pwsws-container {
		width: calc(100% - 20px);
		max-width: calc(100% - 20px);
	}

	body.pwsws-site .pwsws-header__inner,
	body.pwsws-site .pwsws-header.is-scrolled .pwsws-header__inner {
		width: calc(100% - 14px);
		max-width: calc(100% - 14px);
	}

	body.pwsws-site .pwsws-brand__logo,
	body.pwsws-site .pwsws-header.is-scrolled .pwsws-brand__logo {
		width: min(166px, calc(100vw - 86px));
	}

	body.pwsws-site .pwsws-menu-toggle {
		width: 48px;
		height: 48px;
	}

	body.pwsws-site .pwsws-card,
	body.pwsws-site .pwsws-price-card,
	body.pwsws-site .pwsws-portal-cards article,
	body.pwsws-site .pwsws-contact-panel,
	body.pwsws-site .pwsws-service-index,
	body.pwsws-site .pwsws-service__header,
	body.pwsws-site .pwsws-service__details,
	body.pwsws-site .pwsws-service__footer {
		padding-right: 17px;
		padding-left: 17px;
	}

	body.pwsws-site .pwsws-eyebrow,
	body.pwsws-site .pwsws-heading > span,
	body.pwsws-site .pwsws-footer__cta span {
		letter-spacing: .1em;
	}
}

/* Landscape-Telefone: Navigation bleibt vollständig bedienbar. */
@media (max-height: 520px) and (orientation: landscape) and (max-width: 980px) {
	body.pwsws-site .pwsws-navigation {
		max-height: calc(100vh - 64px);
		max-height: calc(100dvh - 64px);
		padding-top: 10px;
		padding-bottom: max(10px, env(safe-area-inset-bottom));
	}

	body.pwsws-site .pwsws-header__inner,
	body.pwsws-site .pwsws-header.is-scrolled .pwsws-header__inner {
		min-height: 64px;
	}

	body.pwsws-site .pwsws-brand__logo,
	body.pwsws-site .pwsws-header.is-scrolled .pwsws-brand__logo {
		height: 46px;
		width: auto;
		max-width: min(190px, calc(100vw - 96px));
	}
}
