/**
 * Mobile and WordPress block layout fixes.
 */

html {
	overflow-x: clip;
	-webkit-text-size-adjust: 100%;
}

body {
	overflow-x: clip;
}

main#inhalt {
	overflow-x: clip;
	max-width: 100%;
}

/* Gutenberg groups replace <section> — restore section rhythm on top-level blocks */
main#inhalt > .wp-block-group,
main#inhalt > section {
	border-top: 1px solid var(--line);
}

main#inhalt > .wp-block-group:not(.page-hero):not(.legal-hero):not(.reference-hero):not(.payment-fast-track):not(.payment-helper),
main#inhalt > section:not(.page-hero):not(.legal-hero):not(.reference-hero):not(.payment-fast-track):not(.payment-helper) {
	padding: 100px 0;
}

main#inhalt > .wp-block-group.page-hero,
main#inhalt > .wp-block-group.legal-hero,
main#inhalt > .wp-block-group.reference-hero,
main#inhalt > .wp-block-group.payment-fast-track,
main#inhalt > .wp-block-group.payment-helper,
main#inhalt > section.page-hero,
main#inhalt > section.legal-hero,
main#inhalt > section.reference-hero,
main#inhalt > section.payment-fast-track,
main#inhalt > section.payment-helper {
	padding: 0;
	border-top: 0;
}

main#inhalt > .wp-block-group.payment-fast-track,
main#inhalt > section.payment-fast-track {
	padding: 48px 0;
}

main#inhalt > .wp-block-group.payment-helper,
main#inhalt > section.payment-helper {
	padding: 100px 0;
	border-top: 1px solid var(--line);
}

body.page-anfrage main#inhalt > .wrap.form-layout,
body.page-anfrage main#inhalt .wp-block-html .wrap.form-layout {
	padding: 100px 0;
	border-top: 1px solid var(--line);
}

body.page-anfrage .page-hero,
body.page-anfrage main#inhalt .wp-block-group.page-hero {
	background: #121211;
}

body.page-anfrage .page-hero .eyebrow {
	color: var(--gold);
}

body.page-anfrage .form-card {
	background: #f2efe7;
	border-top: 8px solid var(--gold);
	color: #171716;
}

/* Reset default WordPress block spacing inside page content */
main#inhalt .wp-block-group,
main#inhalt .wp-block-heading,
main#inhalt .wp-block-paragraph,
main#inhalt .wp-block-image,
main#inhalt .wp-block-html {
	margin-block: 0;
}

main#inhalt .wp-block-image img,
main#inhalt .wp-block-image figure {
	max-width: 100%;
	height: auto;
}

main#inhalt .wp-block-group .wrap {
	width: min(calc(100% - 40px), var(--max));
	margin-inline: auto;
}

/* Header / mobile navigation */
.top .nav {
	position: relative;
	align-items: center;
}

body.nav-open {
	overflow: hidden;
}

/* Prevent horizontal scroll from hero background transforms */
.page-hero,
.page-hero.home-hero,
.page-hero.academy-hero {
	overflow: hidden;
	isolation: isolate;
}

/* Akademie hero: full photo behind a flat 55% black overlay, replacing the
   directional scrims so the whole image stays visible under the copy. */
.page-hero.hero-plain,
.page-hero.has-image.hero-plain,
.page-hero.academy-hero.hero-plain {
	background: linear-gradient(rgba(0, 0, 0, 0.55), rgba(0, 0, 0, 0.55)), var(--hero) center / cover no-repeat;
}

.page-hero.hero-plain:before,
.page-hero.hero-plain:after {
	display: none;
}

.page-hero.hero-plain .hero-copy {
	text-shadow: 0 2px 18px rgba(0, 0, 0, .85), 0 1px 4px rgba(0, 0, 0, .7);
}

.page-hero.hero-plain .hero-caption {
	text-shadow: 0 1px 6px rgba(0, 0, 0, .9);
}

.crumb {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
}

/* Touch-friendly controls */
@media (max-width: 950px) {
	.top .nav {
		flex-wrap: wrap;
		gap: 12px 16px;
	}

	.menu {
		flex: 0 0 auto;
		min-height: 44px;
		min-width: 44px;
	}

	.nav-main {
		top: 100%;
		left: 0;
		right: 0;
		width: 100%;
		max-height: calc(100dvh - 76px);
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		z-index: 60;
		border-bottom: 1px solid var(--line);
		box-shadow: 0 18px 40px rgba(0, 0, 0, 0.45);
	}

	.nav-main > a,
	.nav-main .nav-cta {
		min-height: 48px;
	}

	.contract-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.station-sample-grid,
	.rio-service-fields {
		grid-template-columns: 1fr;
	}

	.proof-list p,
	.facts p {
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
	}

	.section-head > p {
		max-width: none;
		margin-top: 16px;
	}
}

@media (max-width: 600px) {
	main#inhalt > .wp-block-group:not(.page-hero):not(.legal-hero):not(.reference-hero):not(.payment-fast-track):not(.payment-helper),
	main#inhalt > section:not(.page-hero):not(.legal-hero):not(.reference-hero):not(.payment-fast-track):not(.payment-helper) {
		padding: 72px 0;
	}

	main#inhalt .wp-block-group .wrap,
	.wrap {
		width: min(calc(100% - 28px), var(--max));
	}

	.page-hero h1 {
		font-size: clamp(36px, 11vw, 51px);
		line-height: 0.92;
		word-break: break-word;
	}

	h2 {
		font-size: clamp(28px, 8vw, 39px);
		word-break: break-word;
	}

	.lead {
		font-size: clamp(16px, 4.2vw, 18px);
	}

	.actions {
		flex-direction: column;
		align-items: stretch;
		width: 100%;
	}

	.actions .btn {
		width: 100%;
		min-height: 48px;
		text-align: center;
	}

	.order-timeline,
	.contract-cards,
	.phases {
		grid-template-columns: 1fr !important;
	}

	.proof,
	.split {
		gap: 40px;
	}

	.form-card input,
	.form-card select,
	.form-card textarea,
	.payment-helper input {
		font-size: 16px;
	}

	.chapter-item,
	.chapter-item > div {
		flex-direction: column;
		align-items: flex-start;
	}

	.table-scroll {
		margin-inline: -2px;
	}

	.brand {
		min-width: 0;
		flex: 1 1 auto;
		padding-right: 8px;
	}

	.brand strong {
		font-size: clamp(13px, 3.8vw, 18px);
		letter-spacing: 0.12em;
	}

	.brand small {
		font-size: 8px;
		letter-spacing: 0.16em;
		margin-top: 6px;
	}

	.pillars a {
		min-height: 0;
	}

	.personal-cards article {
		min-height: 0;
	}

	.quartet-original {
		gap: 36px;
	}

	.footer-withdrawal,
	.footer-withdrawal .btn {
		width: 100%;
	}
}

@media (max-width: 390px) {
	.page-hero {
		min-height: 480px;
	}

	.hero-copy {
		padding: 64px 0 72px;
	}

	.page-hero.home-hero:before {
		inset: -35%;
		transform: translateX(31%) scale(1.12);
	}

	.support-assistant__toggle {
		font-size: 0.62rem;
		padding: 0.7rem 0.9rem;
	}

	.booklet-grid article {
		grid-template-columns: 1fr;
	}

	.booklet-grid img {
		min-height: 180px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.page-hero.home-hero:before,
	.page-hero.academy-hero {
		transform: none;
	}
}



/* 1:1 Kurzprofil & Dennis Besseler Reference Section layout parity */
body.page-dennis-besseler main section[id] .wrap,
body.page-dennis-besseler main .reference-body .wrap,
#kurzprofil .wrap,
#biografie .wrap,
#dnl .wrap,
#werdegang .wrap,
#veroeffentlichungen .wrap,
#fachgebiete .wrap,
#wahrnehmung .wrap,
#leitgedanke .wrap,
.reference-body .wrap,
article.reference-body ~ section .wrap {
	--max: 900px !important;
	max-width: 900px !important;
}

/* Ensure header, footer, and navigation always stay at full 1200px max width */
header.top .wrap,
header.top .nav.wrap,
footer .wrap,
body.page-dennis-besseler header.top .wrap,
body.page-dennis-besseler header.top .nav.wrap,
body.page-dennis-besseler footer .wrap {
	--max: 1200px !important;
	max-width: 1200px !important;
}

body.page-dennis-besseler section[id] h2,
#kurzprofil h2,
#biografie h2,
#dnl h2,
#werdegang h2,
#veroeffentlichungen h2,
#fachgebiete h2,
#wahrnehmung h2,
#leitgedanke h2 {
	max-width: 820px;
}

body.page-dennis-besseler section[id] p:not(.eyebrow),
#kurzprofil p:not(.eyebrow),
#biografie p:not(.eyebrow),
#dnl p:not(.eyebrow),
#werdegang p:not(.eyebrow),
#veroeffentlichungen p:not(.eyebrow),
#fachgebiete p:not(.eyebrow),
#wahrnehmung p:not(.eyebrow),
#leitgedanke p:not(.eyebrow) {
	max-width: 850px;
	font-size: clamp(17px, 1.5vw, 20px) !important;
	line-height: 1.72 !important;
}

body.page-dennis-besseler section[id],
#kurzprofil,
#biografie,
#dnl,
#werdegang,
#veroeffentlichungen,
#fachgebiete,
#wahrnehmung,
#leitgedanke {
	scroll-margin-top: 95px;
}

/* 1:1 Homepage Strategic Decision Meeting card layout parity */
.personal-cards article {
	min-width: 0;
	overflow-wrap: break-word;
}

.personal-cards h3 {
	font-size: clamp(22px, 2.5vw, 36px);
	margin: 10px 0 18px;
	overflow-wrap: break-word;
	word-break: break-word;
	hyphens: auto;
}
