/*
Theme Name: Christina Harms Fotografie
Description: Child-Theme für Twenty Twenty-Five. Nachbau des Aufbaus der Pixieset-Vorlage „Dahlia“: dunkles Schiefer-Farbschema, Baskervville und Nunito, versetzte Bildflächen, Kundenstimmen-Slider und Instagram-Raster.
Author: Christina Harms
Template: twentytwentyfive
Version: 2.9.0
Requires at least: 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: christina-harms
*/

/* ==========================================================================
   Grundwerte
   Alle Maße sind aus der mobilen Vorlage (393 px Breite) abgeleitet.
   ========================================================================== */

:root {
	--ch-section-space: clamp(4.25rem, 3.25rem + 3.6vw, 7.5rem);
	--ch-offset: 13%;
	--ch-gutter: var(--wp--style--root--padding-left, 1.25rem);
	--ch-panel: var(--wp--preset--color--accent-2, #42434c);
	--ch-heading: var(--wp--preset--color--accent-3, #f4f6f9);
	--ch-muted: var(--wp--preset--color--accent-4, #d2d4d9);
	--ch-cream: var(--wp--preset--color--accent-1, #f6eee1);
	--ch-serif: var(--wp--preset--font-family--baskervville, Georgia, serif);
	--ch-sans: var(--wp--preset--font-family--nunito, system-ui, sans-serif);
}

html {
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* Lange deutsche Wörter (z. B. „Schwangerschaftsfotografie“) sauber trennen statt umbrechen. */
h1,
h2,
h3,
h4,
h5,
h6 {
	hyphens: auto;
	overflow-wrap: break-word;
	text-wrap: balance;
}

:where(a, button, .wp-element-button):focus-visible {
	outline: 1px solid var(--ch-cream);
	outline-offset: 3px;
}

/* Der Header liegt auf der Startseite über dem Titelbild. */
.wp-site-blocks,
.ch-front-shell {
	position: relative;
}

.ch-front-shell > .ch-front {
	margin-block-start: 0;
}

body.home .wp-site-blocks > header.wp-block-template-part {
	position: absolute;
	inset: 0 0 auto;
	z-index: 20;
}

/* Abschnitte schließen ohne Lücke aneinander an (WordPress setzt sonst Blockabstände). */
.wp-site-blocks > .ch-front,
.wp-site-blocks > footer {
	margin-block-start: 0;
}

.ch-section .ch-cta,
.ch-section .ch-card,
.ch-section .ch-about__media,
.ch-section .ch-insta__badge {
	box-sizing: border-box;
}

.ch-section {
	margin-block: 0;
	padding-top: var(--ch-section-space);
	padding-bottom: var(--ch-section-space);
}

/* ==========================================================================
   Wiederkehrende Elemente
   ========================================================================== */

/* Kleine Versal-Unterzeile (z. B. „LIEBE, FAMILIE, DIE KLEINSTEN“) */
.ch-eyebrow {
	color: var(--ch-heading);
	font-family: var(--ch-sans);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	letter-spacing: 0.2em;
	line-height: 1.5;
	text-transform: uppercase;
}

/* Zentrierte Überschrift mit Unterzeile */
.ch-section .ch-intro {
	text-align: center;
}

.ch-section .ch-intro > * {
	margin-block: 0;
}

.ch-section .ch-intro > .wp-block-heading + .ch-eyebrow {
	margin-block-start: 1.75rem;
}

/* Sperrsatz optisch zentrieren (Laufweite hängt sonst rechts an). */
.ch-section .ch-intro .ch-eyebrow,
.ch-cta .ch-eyebrow {
	padding-inline-start: 0.2em;
}

/* Verlinkte Überschriften und Unterzeilen in Silber, wie in der Vorlage */
.ch-section .ch-intro--links a {
	color: var(--ch-muted);
	text-decoration: none;
	transition: color 0.2s ease;
}

.ch-section .ch-intro--links a:hover {
	color: var(--ch-heading);
}

/* Kursive Serifenzeilen (Leitsatz, Namen, Instagram-Einladung) */
.ch-tagline,
.ch-slide__name,
.ch-insta__title {
	font-family: var(--ch-serif);
	font-size: var(--wp--preset--font-size--large);
	font-style: italic;
	line-height: 1.35;
}

/* Bilder füllen ihre Fläche immer exakt aus. */
.ch-section .wp-block-image {
	margin: 0;
}

.ch-section .wp-block-image img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
	object-position: center;
}

/* ==========================================================================
   Header
   ========================================================================== */

.alignfull.ch-header {
	padding-top: 1rem;
	padding-bottom: 1rem;
}

.ch-header .ch-header__inner {
	display: grid;
	grid-template-columns: 1fr minmax(0, 60%) 1fr;
	align-items: center;
	column-gap: 1rem;
}

.ch-header .ch-header__inner > * {
	margin-block: 0;
}

.ch-header .ch-header__inner > .wp-block-site-logo {
	grid-column: 2;
	text-align: center;
}

.ch-header .ch-header__inner > .wp-block-navigation {
	grid-column: 3;
	justify-self: end;
}

.ch-header .wp-block-site-logo a {
	color: var(--wp--preset--color--contrast, #fff);
	text-decoration: none;
}

/* Startseite: Header schwebt über dem Titelbild. */
.ch-header-overlay {
	position: absolute;
	inset: 0 0 auto;
	z-index: 20;
}

.ch-header-overlay .alignfull.ch-header {
	padding-top: 0.5rem;
	padding-bottom: 0;
	background: transparent;
}

/* Schmales Hamburger-Symbol mit drei feinen Linien */
.ch-header .wp-block-navigation__responsive-container-open {
	position: relative;
	width: 1.875rem;
	height: 1.25rem;
	padding: 0;
	color: var(--wp--preset--color--contrast, #fff);
}

.ch-header .wp-block-navigation__responsive-container-open svg {
	display: none;
}

.ch-header .wp-block-navigation__responsive-container-open::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(currentColor 0 0) top / 100% 1px no-repeat,
		linear-gradient(currentColor 0 0) center / 100% 1px no-repeat,
		linear-gradient(currentColor 0 0) bottom / 100% 1px no-repeat;
}

/* Geöffnetes Menü: zentrierte Versalien auf Schiefer */
.ch-header .wp-block-navigation__responsive-container.is-menu-open {
	padding: 1.25rem var(--ch-gutter);
}

.ch-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	top: 0.25rem;
	right: 0;
}

.ch-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	justify-content: center;
	min-height: calc(100dvh - 2.5rem);
	padding-top: 0;
}

.ch-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
	gap: 2rem;
	align-items: center;
}

.ch-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	align-items: center;
	font-size: 0.9375rem;
	letter-spacing: 0.22em;
	text-align: center;
}

.ch-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	padding-inline-start: 0.22em;
	text-decoration: none;
}

.ch-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container {
	gap: 1rem;
	align-items: center;
	padding: 1.1rem 0 0;
	min-width: 0;
}

.ch-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item {
	font-size: 0.75rem;
	color: var(--ch-muted);
}

/* ==========================================================================
   1 · Titelbild
   ========================================================================== */

.alignfull.ch-hero {
	padding-top: 0;
	background-color: var(--ch-panel);
}

.ch-hero .ch-hero__image {
	position: relative;
	max-width: none;
}

/* Leichter Verlauf oben, damit der weiße Seitentitel auf hellen Fotos lesbar bleibt. */
.ch-hero .ch-hero__image::after {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 35%;
	background: linear-gradient(rgba(35, 36, 43, 0.35), rgba(35, 36, 43, 0));
	pointer-events: none;
}

.ch-hero .ch-hero__image img {
	aspect-ratio: 3 / 4;
}

.ch-hero .ch-hero__title {
	margin-block-start: clamp(2.5rem, 4vw, 3.5rem);
	text-align: center;
}

/* ==========================================================================
   2 · Über mich
   ========================================================================== */

.alignfull.ch-about {
	padding-bottom: 0;
}

.ch-about .ch-about__grid > * {
	margin-block: 0;
}

/* Dunkle Fläche ragt rechts und unten unter dem Bild hervor. */
.ch-about .ch-about__media {
	padding: 0 var(--ch-offset) 2.125rem 0;
	background-color: var(--ch-panel);
}

.ch-about .ch-about__media img {
	aspect-ratio: 5 / 6;
}

.ch-about .ch-about__grid > .ch-about__text {
	margin-block-start: 2.25rem;
}

.ch-about .ch-about__text {
	max-width: 34rem;
}

.ch-about .ch-about__text > * {
	margin-block: 0;
}

.ch-about .ch-about__text > .wp-block-heading + * {
	margin-block-start: 2rem;
}

.ch-about .ch-about__text > p + .ch-tagline {
	margin-block-start: 1.75rem;
}

.ch-about .ch-about__text > .wp-block-buttons {
	margin-block-start: 1.5rem;
}

/* ==========================================================================
   3 · Momente (Kategorien)
   ========================================================================== */

.ch-moments .ch-cards {
	display: grid;
	gap: 0.6875rem;
	margin-block-start: 3.125rem;
}

.ch-moments .ch-cards > * {
	margin: 0;
}

/* Titel und Bild sind gleich weit eingerückt, das Bild schließt rechts bündig ab. */
.ch-moments .ch-card {
	padding: 1.3rem 0 0 var(--ch-offset);
	background-color: var(--ch-panel);
}

.ch-moments .ch-card > * {
	margin-block: 0;
}

.ch-moments .ch-card .ch-card__title {
	margin-block-end: 2.05rem;
	color: var(--ch-heading);
	font-size: 1.0625rem;
	letter-spacing: 0.28em;
	line-height: 1.4;
	text-transform: uppercase;
}

.ch-moments .ch-card img {
	aspect-ratio: 4 / 3;
}

.ch-moments .ch-moments__more {
	margin-block-start: 4.4rem;
}

/* ==========================================================================
   4 · Kundenstimmen
   ========================================================================== */

.alignfull.ch-kindwords {
	padding-top: 2.5rem;
	padding-bottom: 2.5rem;
	background-color: var(--ch-panel);
}

.ch-kindwords .ch-slider {
	position: relative;
}

.ch-kindwords .ch-slide > *,
.ch-kindwords .ch-slide__text > * {
	margin-block: 0;
}

/* Ohne Skript (und im Editor) stehen die Stimmen untereinander. */
.ch-kindwords .ch-slider > .ch-slide + .ch-slide {
	margin-block-start: 4rem;
}

.ch-kindwords .ch-slide__words > * {
	margin-block: 0;
}

.ch-kindwords .ch-slide__text > .wp-block-heading + * {
	margin-block-start: 2.1rem;
}

.ch-kindwords .ch-slide__words > .ch-slide__quote + .ch-slide__name {
	margin-block-start: 1.6rem;
}

.ch-kindwords .ch-slide > .ch-slide__image {
	margin-block-start: 3.6rem;
}

.ch-kindwords .ch-slide__image img {
	aspect-ratio: 3 / 2;
}

/* Schon vor der Initialisierung nur die erste Kundenstimme anzeigen. */
.ch-kindwords .ch-slider:not(.is-ready) > .ch-slide + .ch-slide { display:none; }
.ch-kindwords .ch-slider.is-ready { display:block; }
.ch-kindwords .ch-slider.is-ready .ch-slide { min-width:0; margin:0; }
.ch-kindwords .ch-slider.is-ready .ch-slide[hidden] { display:none !important; }
/* Im Editor bleiben alle Stimmen für die Bearbeitung erreichbar. */
.editor-styles-wrapper .ch-kindwords .ch-slider:not(.is-ready) > .ch-slide + .ch-slide { display:block; }

.ch-kindwords .ch-slide__text > .ch-slider__nav {
	display: flex;
	gap: 3.75rem;
	margin-block-start: 3.6rem;
}

.ch-slider__btn {
	display: grid;
	place-items: center;
	width: 1.875rem;
	height: 1.875rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background-color: var(--wp--preset--color--accent-5, #66666f);
	color: var(--wp--preset--color--contrast, #fff);
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.ch-slider__btn:hover {
	background-color: #7a7a84;
}

.ch-slider__btn svg {
	width: 0.45rem;
	height: 0.75rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.4;
}

/* ==========================================================================
   5 · Erlebnis, Anfrage & Preise
   ========================================================================== */

.ch-experience .ch-experience__grid > .ch-cta + .ch-intro {
	margin-block-start: 4.4rem;
}

.alignfull.ch-experience,
.alignfull.ch-insta {
	padding-bottom: 0;
}

.ch-experience .ch-experience__grid > * {
	margin-block: 0;
}

.ch-experience .ch-experience__grid > .ch-cta {
	margin-block-start: 3.125rem;
	padding: 4.25rem var(--ch-gutter) 5.75rem;
	background-color: var(--ch-panel);
	text-align: center;
}

.ch-experience .ch-cta > * {
	margin-block: 0;
}

.ch-experience .ch-cta > .wp-block-heading {
	max-width: 16ch;
	margin-inline: auto;
	color: var(--ch-heading);
}

.ch-experience .ch-cta > .ch-eyebrow {
	margin-block-start: 2.25rem;
}

.ch-experience .ch-cta > .wp-block-buttons {
	margin-block-start: 2.1rem;
}

/* ==========================================================================
   7 · Instagram
   ========================================================================== */

.ch-insta .ch-insta__title {
	margin-block: 0;
	text-align: center;
}

.ch-insta .ch-insta__wrap {
	position: relative;
	margin-block-start: 2.7rem;
}

.ch-insta .ch-insta__wrap > *,
.ch-insta .ch-insta__grid > * {
	margin: 0;
}

.ch-insta .ch-insta__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ch-insta .ch-insta__grid img {
	aspect-ratio: 1;
	opacity: 0.55;
}

/* Dunkler Kasten mit dem Handle, mittig über dem Raster */
.ch-insta .ch-insta__badge {
	position: absolute;
	top: 50%;
	left: 50%;
	box-sizing: border-box;
	display: grid;
	place-items: center;
	width: max-content;
	min-width: 74%;
	max-width: 100%;
	min-height: 31%;
	padding: 1.25rem 0.5rem;
	background-color: var(--ch-panel);
	transform: translate(-50%, -50%);
}

.ch-insta .ch-insta__badge p {
	margin: 0;
	padding-inline-start: 0.25em;
	font-family: var(--ch-serif);
	font-size: clamp(0.9375rem, 0.75rem + 1.1vw, 1.25rem);
	letter-spacing: 0.25em;
	text-transform: uppercase;
	white-space: nowrap;
}

.ch-insta .ch-insta__badge a {
	color: var(--ch-heading);
	text-decoration: none;
}

.ch-insta .ch-insta__badge a:hover {
	color: var(--ch-cream);
}

/* ==========================================================================
   Footer
   ========================================================================== */

.ch-footer {
	padding-top: var(--ch-section-space);
	padding-bottom: 2.5rem;
}

.ch-footer > * {
	margin-block: 0;
}

.ch-footer .ch-footer__nav {
	gap: 1.8rem;
}

.ch-footer > .ch-footer__nav {
	max-width: none;
}

.ch-footer .ch-footer__nav .wp-block-navigation-item__content {
	padding-inline-start: 0.16em;
	color: var(--ch-heading);
	text-decoration: none;
	transition: color 0.2s ease;
}

.ch-footer .ch-footer__nav .wp-block-navigation-item__content:hover {
	color: var(--ch-cream);
}

.ch-footer .wp-block-social-links.ch-footer__social {
	gap: 1.25rem;
	font-size: 12px; /* Symbole werden dadurch 15 px groß, wie in der Vorlage */
}

/* Mobil: Icons in eigener Zeile über Copyright und Pfeil */
.ch-footer .ch-footer__bottom > .ch-footer__social {
	order: -1;
	flex-basis: 100%;
	justify-content: center;
	margin-block-end: 3.25rem;
}

.ch-footer .ch-footer__social .wp-social-link-pinterest {
	border-radius: 50%;
	background-color: var(--ch-cream);
}

.ch-footer .ch-footer__social .wp-social-link-pinterest a {
	padding: 0.15em;
	color: var(--wp--preset--color--base, #4d4f5a);
}

.ch-footer .ch-footer__social .wp-social-link-pinterest svg {
	width: 0.95em;
	height: 0.95em;
}

.ch-footer .ch-footer__bottom {
	margin-block-start: 4.25rem;
	row-gap: 0;
}

.ch-footer .ch-footer__bottom > p {
	margin: 0;
}

/* Feiner Pfeil nach oben – der Text „Nach oben“ bleibt für Screenreader erhalten. */
.ch-footer .ch-to-top a {
	display: block;
	width: 1.25rem;
	height: 1.625rem;
	overflow: hidden;
	color: var(--wp--preset--color--contrast, #fff);
	background-color: currentColor;
	white-space: nowrap;
	text-indent: 200%;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 26' fill='none' stroke='black' stroke-width='1.1'%3E%3Cpath d='M10 25.5V1.5M1.5 10 10 1.5l8.5 8.5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 26' fill='none' stroke='black' stroke-width='1.1'%3E%3Cpath d='M10 25.5V1.5M1.5 10 10 1.5l8.5 8.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

.ch-footer .ch-to-top a:hover {
	color: var(--ch-cream);
}

/* ==========================================================================
   Unterseiten (Muster in der Kategorie „Christina Harms – Unterseiten“)
   ========================================================================== */

/* Gestaltete Seiten: Abstand für Seiten ohne Bildabschnitt am Anfang (z. B. Impressum) */
.ch-page > .wp-block-post-content > :first-child:not(.alignfull) {
	margin-block-start: var(--ch-section-space);
}

.ch-page > .wp-block-post-content > :last-child:not(.alignfull) {
	margin-block-end: var(--ch-section-space);
}

.wp-site-blocks > .ch-page {
	margin-block-start: 0;
}

/* Pfeil nach unten (springt zum nächsten Abschnitt) */
.ch-arrow-down a {
	display: inline-block;
	width: 0.75rem;
	height: 1.375rem;
	overflow: hidden;
	color: var(--wp--preset--color--contrast, #fff);
	background-color: currentColor;
	white-space: nowrap;
	text-indent: 200%;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 22' fill='none' stroke='black' stroke-width='1.1'%3E%3Cpath d='M6 0.5v20.5M1 16l5 5.5 5-5.5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 22' fill='none' stroke='black' stroke-width='1.1'%3E%3Cpath d='M6 0.5v20.5M1 16l5 5.5 5-5.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

.ch-arrow-down a:hover {
	color: var(--ch-cream);
}

/* --- Seitenkopf mit Pfeil (Portfolio, Galerie) --- */
.alignfull.ch-page-intro {
	padding-top: clamp(3rem, 2rem + 3.5vw, 5.3rem);
	padding-bottom: clamp(3.5rem, 2.5rem + 3vw, 6.2rem);
}

.ch-page-intro .ch-intro > .wp-block-heading + .ch-eyebrow {
	margin-block-start: 2.75rem;
}

.ch-page-intro .ch-intro > .ch-arrow-down {
	margin-block-start: 2.5rem;
	line-height: 0;
}

/* --- Galerie --- */
.alignfull.ch-gallery-section {
	padding-top: 0;
}

.ch-section .wp-block-gallery.ch-gallery {
	--wp--style--unstable-gallery-gap: 0.875rem;
	gap: 0.875rem;
	margin: 0;
}

.ch-section .wp-block-gallery.ch-gallery.has-nested-images figure.wp-block-image:not(#ch-einzelbild) img {
	aspect-ratio: 2 / 3;
	height: auto;
	object-fit: cover;
}

/* --- Kopf mit Bild links (Über mich, Kontakt) --- */
.alignfull.ch-split {
	padding-top: 1.5rem;
}

.ch-split .ch-split__grid > * {
	margin-block: 0;
}

.ch-split .ch-split__image img {
	aspect-ratio: 4 / 5;
}

.ch-split .ch-split__grid > .ch-split__text {
	margin-block-start: 3rem;
	text-align: center;
}

.ch-split .ch-split__text > * {
	margin-block: 0;
}

.ch-split .ch-split__text > * + * {
	margin-block-start: 2rem;
}

.ch-split .ch-split__text > .wp-block-heading + .ch-eyebrow {
	margin-block-start: 2.5rem;
}

.ch-split .ch-split__text > .ch-eyebrow {
	padding-inline-start: 0.2em;
}

.ch-split .ch-split__text > .ch-eyebrow a {
	text-decoration: none;
}

.ch-split .ch-split__text > .ch-arrow-down {
	margin-block-start: 3.5rem;
	line-height: 0;
}

.ch-split .ch-form-note {
	padding: 1.25rem 1.5rem;
	text-align: left;
	border: 1px dashed var(--ch-muted);
	font-size: var(--wp--preset--font-size--small);
}

.ch-split .ch-form-note > * {
	margin: 0;
}

/* --- Zwei Kundenstimmen --- */
.alignfull.ch-quotes {
	background-color: var(--ch-panel);
}

.ch-quotes .ch-quotes__grid {
	position: relative;
	display: grid;
	row-gap: 3.5rem;
	text-align: center;
}

/* Anführungszeichen als reines Gestaltungselement */
.ch-quotes .ch-quotes__grid::before {
	content: "\201C";
	display: block;
	color: var(--ch-heading);
	font-family: var(--ch-serif);
	font-size: 3rem;
	line-height: 0.6;
}

.ch-quotes .ch-quotes__grid > *,
.ch-quotes .ch-quotes__item > * {
	margin: 0;
}

.ch-quotes .ch-quotes__item {
	max-width: 30rem;
	margin-inline: auto;
}

.ch-quotes .ch-quotes__name {
	margin-block-start: 1.75rem;
	font-family: var(--ch-serif);
	font-size: var(--wp--preset--font-size--large);
	font-style: italic;
}

/* --- Bildcollage mit Textblöcken / Aussagen --- */
.ch-collage-section .ch-collage {
	margin-block-start: 3.5rem;
}

.ch-collage-section .ch-collage > *,
.ch-collage-section .ch-collage__images > *,
.ch-collage-section .ch-collage__block > * {
	margin: 0;
}

.ch-collage-section .ch-collage__images {
	position: relative;
	aspect-ratio: 699 / 670;
}

.ch-collage-section .ch-collage__images > .ch-collage__img {
	position: absolute;
}

.ch-collage-section .ch-collage__img img {
	width: 100%;
	height: 100%;
}

.ch-collage-section .ch-collage__img--a {
	top: 6.7%;
	left: 17%;
	width: 49.1%;
	height: 65.9%;
}

.ch-collage-section .ch-collage__img--b {
	top: 0;
	right: 0;
	width: 23.5%;
	height: 32%;
}

.ch-collage-section .ch-collage__img--c {
	top: 61.3%;
	left: 0;
	z-index: 1;
	width: 32%;
	height: 38.7%;
}

.ch-collage-section .ch-collage__blocks {
	margin-block-start: 3rem;
}

.ch-collage-section .ch-collage__blocks > * {
	margin-block: 0;
}

.ch-collage-section .ch-collage__blocks > * + * {
	margin-block-start: 2.75rem;
}

.ch-collage-section .ch-collage__block > h3 + p {
	margin-block-start: 1.25rem;
}

/* Nummerierte Aussagen: Zahl links, Satz rechts */
.ch-collage-section .ch-statement {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: baseline;
	column-gap: clamp(1.5rem, 1rem + 2vw, 3.8rem);
}

.ch-statement .ch-statement__num {
	font-family: var(--ch-serif);
	font-size: clamp(1.75rem, 1.5rem + 1vw, 2.5rem);
	line-height: 1;
}

.ch-statement .ch-statement__text {
	color: var(--ch-heading);
	font-family: var(--ch-serif);
	font-size: clamp(1.375rem, 1.2rem + 0.6vw, 1.75rem);
	line-height: 1.3;
}

/* --- Zentrierter Text --- */
.ch-centered .ch-intro > .wp-block-heading + * {
	margin-block-start: 2.5rem;
}

.ch-centered > .ch-intro {
	max-width: 52rem;
}

.ch-centered .ch-centered__text {
	max-width: 50rem;
	margin-inline: auto;
}

/* --- Text links, Bild rechts --- */
.ch-about--reverse .ch-about__grid > .ch-about__text {
	margin-block-start: 0;
}

.ch-about--reverse .ch-about__grid > .ch-about__media {
	margin-block-start: 3rem;
}

.ch-about--reverse .ch-about__media img {
	aspect-ratio: 5 / 7;
}

.alignfull.ch-about--reverse {
	padding-bottom: var(--ch-section-space);
}

.ch-about .ch-about__text > p + .ch-list {
	margin-block-start: 2.5rem;
}

.ch-about .ch-list {
	padding-inline-start: 1.25rem;
	font-size: 1rem;
	line-height: 1.6;
}

.ch-about .ch-list > li + li {
	margin-block-start: 0.25rem;
}

/* --- Breites Bild auf dunklem Band --- */
.alignfull.ch-band {
	padding-top: clamp(1.25rem, 1rem + 1vw, 1.75rem);
	padding-bottom: clamp(3rem, 2.5rem + 1.5vw, 3.75rem);
	background-color: var(--ch-panel);
	text-align: center;
}

.ch-band > * {
	margin-block: 0;
}

.ch-band .ch-band__image img {
	aspect-ratio: 3 / 2;
}

.ch-band .ch-band__image + .ch-band__label {
	margin-block-start: 3.75rem;
}

.ch-band .ch-band__label {
	color: var(--ch-heading);
	font-size: 1.0625rem;
	letter-spacing: 0.28em;
	line-height: 1.4;
	text-transform: uppercase;
	padding-inline-start: 0.28em;
}

.ch-band--cta .ch-band__image + .wp-block-heading {
	margin-block-start: 4.75rem;
}

.ch-band--cta .wp-block-heading + .wp-block-buttons {
	margin-block-start: 3rem;
}

/* --- Zitat-Fläche --- */
.alignfull.ch-quote-panel-section {
	padding-bottom: 0;
}

.ch-quote-panel-section .ch-quote-panel {
	box-sizing: border-box;
	padding: clamp(3.5rem, 2.5rem + 3vw, 5.6rem) var(--ch-gutter);
	background-color: var(--ch-panel);
	text-align: center;
}

.ch-quote-panel > * {
	margin: 0;
}

.ch-quote-panel .ch-quote-panel__text {
	max-width: 56rem;
	margin-inline: auto;
	color: var(--ch-heading);
	font-family: var(--ch-serif);
	font-size: var(--wp--preset--font-size--x-large);
	line-height: 1.15;
}

.ch-quote-panel .ch-quote-panel__author {
	margin-block-start: 1.25rem;
	font-family: var(--ch-serif);
	font-size: var(--wp--preset--font-size--large);
	font-style: italic;
}

/* ==========================================================================
   Tablet (ab 600 px)
   ========================================================================== */

@media (min-width: 600px) {
	.ch-hero .ch-hero__image img {
		aspect-ratio: 4 / 3;
	}

	.ch-band .ch-band__image img {
		aspect-ratio: 2 / 1;
	}
}

/* Mobil nur vier Instagram-Bilder (2 × 2), am Desktop sechs */
@media (max-width: 781px) {
	.ch-insta .ch-insta__grid > :nth-child(n + 5) {
		display: none;
	}
}

/* ==========================================================================
   Desktop (ab 782 px) – Maße aus der Desktop-Ansicht der Vorlage
   ========================================================================== */

@media (min-width: 782px) {
	/* Über mich: zwei gleich breite Spalten */
	.ch-about .ch-about__grid {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: center;
		column-gap: 9.4%;
	}

	.ch-about .ch-about__grid > .ch-about__text,
	.ch-about--reverse .ch-about__grid > .ch-about__media {
		margin-block-start: 0;
	}

	.ch-about .ch-about__media {
		padding: 0 18.4% 2.75rem 0;
	}

	.ch-about .ch-about__media img {
		aspect-ratio: 6 / 7;
	}

	.ch-about--reverse .ch-about__media img {
		aspect-ratio: 5 / 7;
	}

	.ch-about .ch-about__text {
		max-width: 32.5rem;
	}

	.ch-about--reverse .ch-about__text {
		padding-inline-start: 3.75rem;
	}

	.ch-about .ch-about__text > .wp-block-heading + * {
		margin-block-start: 3.6rem;
	}

	.ch-about--reverse .ch-about__text > .wp-block-heading + * {
		margin-block-start: 1.75rem;
	}

	.ch-about .ch-about__text > p + .ch-tagline {
		margin-block-start: 1.25rem;
	}

	.ch-about .ch-about__text > .wp-block-buttons {
		margin-block-start: 3.25rem;
	}

	.ch-about .ch-about__text > p + .ch-list {
		margin-block-start: 3.75rem;
	}

	.ch-about .ch-list {
		font-size: 1.0625rem;
	}

	/* Momente: 2 × 2, rechte Karten gespiegelt (Bild links bündig) */
	.ch-moments .ch-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.9375rem;
		margin-block-start: 5rem;
	}

	.ch-moments .ch-card {
		padding: 1.6rem 0 0 17%;
	}

	.ch-moments .ch-card:nth-child(even) {
		padding: 1.6rem 17% 0 0;
	}

	.ch-moments .ch-card:nth-child(even) .ch-card__title {
		padding-inline-start: 10.7%;
	}

	.ch-moments .ch-card .ch-card__title {
		margin-block-end: 2.5rem;
		font-size: 1rem;
	}

	.ch-moments .ch-card img {
		aspect-ratio: 3 / 2;
	}

	/* Kundenstimmen: Überschrift + Pfeile links, Zitat rechts, Bild darunter */
	.alignfull.ch-kindwords {
		padding-top: 5.5rem;
		padding-bottom: var(--ch-section-space);
	}

	.ch-kindwords .ch-slide__text {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-areas:
			"head words"
			"nav words";
		grid-template-rows: auto 1fr;
		align-items: start;
		column-gap: 0.9375rem;
	}

	.ch-kindwords .ch-slide__text > .wp-block-heading {
		grid-area: head;
	}

	.ch-kindwords .ch-slide__text > .ch-slide__words {
		grid-area: words;
		margin-block-start: 0;
	}

	.ch-kindwords .ch-slide__text > .ch-slider__nav {
		grid-area: nav;
		gap: 2.4rem;
		margin-block-start: 2.9rem;
	}

	.ch-kindwords .ch-slide__words > .ch-slide__quote + .ch-slide__name {
		margin-block-start: 1.75rem;
	}

	.ch-kindwords .ch-slide > .ch-slide__image {
		margin-block-start: 3.8rem;
	}

	.ch-kindwords .ch-slide__image img {
		aspect-ratio: 2 / 1;
	}

	.ch-slider__btn {
		width: 1.9rem;
		height: 1.9rem;
	}

	/* Instagram: sechs Bilder nebeneinander */
	.ch-insta .ch-insta__wrap {
		margin-block-start: 1.5rem;
	}

	.ch-insta .ch-insta__grid {
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}

	.ch-insta .ch-insta__badge {
		min-width: 0;
		min-height: 0;
		padding: 1.5rem 3rem;
	}

	/* Kopf mit Bild links: dunkle linke Hälfte, Text rechts zentriert */
	/* Unten bündig mit dem Bild, wie in der Vorlage */
	.alignfull.ch-split {
		padding-bottom: 0;
		background: linear-gradient(90deg, var(--ch-panel) 50%, transparent 50%);
	}

	.ch-split .ch-split__grid {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: center;
	}

	.ch-split .ch-split__grid > .ch-split__text {
		margin-block-start: 0;
		padding-inline-start: 3.6rem;
	}

	.ch-split--contact .ch-split__text {
		max-width: 32rem;
	}

	/* Zwei Kundenstimmen nebeneinander, Anführungszeichen in der Mitte */
	.ch-quotes .ch-quotes__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ch-quotes .ch-quotes__grid::before {
		position: absolute;
		top: 3.25rem;
		left: 50%;
		font-size: 2rem;
		transform: translateX(-50%);
	}

	/* Collage: Bilder links, gestaffelte Blöcke rechts */
	.ch-collage-section .ch-collage {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: start;
		column-gap: 0.9375rem;
		margin-block-start: 4.5rem;
	}

	.ch-collage-section .ch-collage__blocks {
		margin-block-start: 0;
		padding-block-start: 3.4rem;
	}

	.ch-collage-section .ch-collage__blocks > * + * {
		margin-block-start: 6.5rem;
	}

	.ch-collage-section .ch-collage__block {
		max-width: 56%;
	}

	.ch-collage-section .ch-collage__block:nth-child(1) {
		margin-inline-start: 42.5%;
	}

	.ch-collage-section .ch-collage__block:nth-child(2) {
		margin-inline-start: 25.5%;
	}

	.ch-collage-section .ch-collage__block:nth-child(n + 3) {
		margin-inline-start: 8.5%;
	}

	.ch-collage-section .ch-statement {
		max-width: 65%;
	}

	.ch-collage-section .ch-collage__block.ch-statement:nth-child(1) {
		margin-inline-start: 32%;
	}

	.ch-collage-section .ch-collage__block.ch-statement:nth-child(2) {
		margin-inline-start: 18%;
	}

	.ch-collage-section .ch-collage__block.ch-statement:nth-child(n + 3) {
		margin-inline-start: 4%;
	}

	.ch-collage-section .ch-collage__block > h3 + p {
		margin-block-start: 1.6rem;
	}
}

/* Header: Menü ab 1000 px sichtbar unter dem Seitentitel, darunter Hamburger */
@media (min-width: 600px) and (max-width: 999px) {
	.ch-header .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	.ch-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}
}

@media (min-width: 1000px) {
	.ch-header .ch-header__inner {
		grid-template-columns: minmax(0, 1fr);
		justify-items: center;
		row-gap: 2.2rem;
	}

	.ch-header .ch-header__inner > .wp-block-site-logo,
	.ch-header .ch-header__inner > .wp-block-navigation {
		grid-column: 1;
		justify-self: center;
	}

	.alignfull.ch-header,
	.ch-header-overlay .alignfull.ch-header {
		padding-top: 1.5rem;
		padding-bottom: 1rem;
	}

	/* Menüpunkte nebeneinander */
	.ch-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container {
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: center;
		align-items: center;
		gap: 0.75rem 3.375rem;
	}

	.ch-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-item__content {
		color: var(--ch-heading);
		text-decoration: none;
	}

	.ch-header-overlay .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-item__content {
		color: var(--wp--preset--color--contrast, #fff);
	}

	.ch-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-item__content:hover {
		color: var(--ch-cream);
	}

	/* „+“ statt Pfeil beim Untermenü, wie in der Vorlage */
	.ch-header .wp-block-navigation__submenu-icon {
		width: auto;
		height: auto;
		margin-inline-start: 0.5em;
		padding: 0;
		color: inherit;
	}

	.ch-header .wp-block-navigation__submenu-icon svg {
		display: none;
	}

	.ch-header .wp-block-navigation__submenu-icon::before {
		content: "+";
		font-family: var(--ch-serif);
		font-size: 0.875rem;
		line-height: 1;
	}

	.ch-header .wp-block-navigation .wp-block-navigation__submenu-container {
		min-width: 13rem;
		padding: 0.75rem 0;
		border: 0;
		background-color: var(--wp--preset--color--base, #4d4f5a);
		color: var(--ch-heading);
	}

	.ch-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		padding: 0.5rem 1.25rem;
	}

	/* Footer: Menü in einer Zeile, darunter Copyright | Icons | Pfeil */
	.ch-footer {
		padding-top: 3.5rem;
	}

	.ch-footer .ch-footer__nav,
	.ch-footer .ch-footer__nav .wp-block-navigation__container {
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: center;
		align-items: center;
		gap: 0.75rem 3.375rem;
	}

	.ch-footer .ch-footer__bottom {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
		align-items: center;
		margin-block-start: 4.5rem;
	}

	.ch-footer .ch-footer__bottom > .ch-footer__social {
		order: 0;
		margin-block-end: 0;
	}

	.ch-footer .ch-footer__bottom > .ch-to-top {
		justify-self: end;
	}
}

/* Erlebnis | Anfrage | Preise in drei Spalten */
@media (min-width: 1024px) {
	.ch-experience .ch-experience__grid {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.7fr) minmax(0, 1fr);
		align-items: center;
		column-gap: 5.25%;
	}

	.ch-experience .ch-experience__grid > .ch-cta,
	.ch-experience .ch-experience__grid > .ch-cta + .ch-intro {
		margin-block-start: 0;
	}

	.ch-experience .ch-intro > .wp-block-heading + .ch-eyebrow {
		margin-block-start: 1.9rem;
	}

	.ch-experience .ch-experience__grid > .ch-cta {
		padding: 4.4rem 1.5rem 3.6rem;
	}

	.ch-experience .ch-cta > .wp-block-heading {
		max-width: none;
	}

	.ch-experience .ch-cta > .ch-eyebrow {
		margin-block-start: 3.1rem;
	}

	.ch-experience .ch-cta > .wp-block-buttons {
		margin-block-start: 3.5rem;
	}

	.ch-hero .ch-hero__image img {
		aspect-ratio: 2 / 1;
		height: auto;
	}
}

/* Native Unterseitenblöcke: Portfolio, Ablauf, FAQ und umgekehrter Seitenkopf. */
.ch-portfolio-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.ch-portfolio-card { text-align:center; }
.ch-portfolio-card img { aspect-ratio:3/4; object-fit:cover; width:100%; }
/* Über mich: versetzte Texte und drei austauschbare Bildblöcke. */
.ch-story-section.ch-section { padding:5.5rem min(8.6vw,132px) 6rem; }
.ch-story-section .ch-story { display:grid; grid-template-columns:1fr 1fr; gap:0; max-width:1272px; width:100%; margin-inline:auto; }
.ch-story__texts { padding-top:1rem; min-width:0; }
.ch-story__block { max-width:26rem; margin:0; }
.ch-story__block + .ch-story__block { margin-top:7.5rem; margin-left:42%; }
.ch-story__block h2 { font-size:clamp(1.7rem,2.35vw,2.25rem); line-height:1.2; margin:0 0 1.75rem; }
.ch-story__block p { font-size:.875rem; line-height:1.55; margin:0 0 1rem; }
.ch-story__images { position:relative; aspect-ratio:636/520; min-width:0; margin:0; }
.ch-story__images .ch-story__image { position:absolute; margin:0; }
.ch-story__image--1 { left:1%; top:0; width:23%; }
.ch-story__image--2 { left:34.5%; top:7.7%; width:48.5%; }
.ch-story__image--3 { left:68%; top:54%; width:31.5%; }
.ch-story__images .ch-story__image img { display:block; width:100%; height:100%; object-fit:cover; }
.ch-story__image--1 img { aspect-ratio:147/187; }
.ch-story__image--2 img { aspect-ratio:308/390; }
.ch-story__image--3 img { aspect-ratio:201/232; }
@media(max-width:900px) {
 .ch-story__block + .ch-story__block { margin-left:18%; margin-top:4rem; }
 .ch-story__texts { padding-right:1.5rem; }
}
@media(max-width:600px) {
 .ch-story-section.ch-section { padding:3.5rem 1.5rem; }
 .ch-story-section .ch-story { grid-template-columns:1fr; gap:2.5rem; }
 .ch-story__texts { padding:0; }
 .ch-story__block { max-width:none; }
 .ch-story__block + .ch-story__block { margin:2.5rem 0 0; }
}
.ch-steps { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3rem 5rem; }
.ch-flow > .ch-eyebrow { text-align:center; margin-bottom:3rem; }
.ch-faq { max-width:60rem; }
.ch-faq .wp-block-details { border-bottom:1px solid var(--ch-muted); padding:1.5rem 0; }
.ch-faq summary { cursor:pointer; }
.ch-services-hero { padding-top:0; padding-bottom:0; }
.ch-services-hero img { aspect-ratio:2/1; object-fit:cover; }
.ch-section .wp-block-gallery.ch-gallery--natural { display:block; column-count:3; column-gap:.875rem; }
.ch-section .wp-block-gallery.ch-gallery--natural > figure.wp-block-image { display:inline-block; width:100%; margin:0 0 .875rem; break-inside:avoid; }
.ch-section .wp-block-gallery.ch-gallery.ch-gallery--natural.has-nested-images figure.wp-block-image:not(#ch-einzelbild) img { aspect-ratio:auto; height:auto; width:100%; }
@media(min-width:782px) {
 .alignfull.ch-split--reverse { background:linear-gradient(90deg,transparent 50%,var(--ch-panel) 50%); }
 .ch-split--reverse .ch-split__grid > .ch-split__text { padding:0 3.6rem 0 0; }
}
@media(max-width:781px) {
 .ch-portfolio-cards,.ch-steps { grid-template-columns:1fr; }
 .ch-split--reverse .ch-split__grid { display:flex; flex-direction:column; gap:2rem; }
 .ch-split--reverse .ch-split__image { order:-1; }
 .ch-section .wp-block-gallery.ch-gallery--natural { column-count:2; }
 .ch-services-hero img { aspect-ratio:4/3; }
}
@media(max-width:480px) { .ch-section .wp-block-gallery.ch-gallery--natural { column-count:1; } }

/* Das native Website-Logo bleibt mittig und behält sein Seitenverhältnis. */
.ch-header .ch-header__inner > .wp-block-site-logo { justify-self:center; min-width:0; max-width:100%; }
.ch-header .wp-block-site-logo a { display:block; }
.ch-header .wp-block-site-logo img { display:block; max-width:100%; height:auto; object-fit:contain; }

/* Nur das graue mitgelieferte Logo weiß anzeigen; eigene Medien bleiben unverändert. */
.ch-header .ch-logo-default img { filter:brightness(0) invert(1); }

/* Filigranere Überschriften auch bei gespeicherten globalen Schriftgrößen. */
.ch-section h1.wp-block-heading { font-size:clamp(1.65rem,1.2rem + 2vw,3rem); }
.ch-section h2.wp-block-heading { font-size:clamp(1.6rem,1.45rem + .85vw,2.4rem); }

/* Unterseiten: gleiche Innenränder auch bei schon gespeicherten Flow-Gruppen. */
.ch-page .ch-section {
 box-sizing:border-box;
 padding-inline:var(--wp--style--root--padding-left,clamp(1.25rem,4vw,5rem));
}
.ch-page .ch-section > .alignwide {
 max-width:var(--wp--style--global--wide-size,1600px);
 margin-inline:auto;
}
.ch-page .ch-split { padding-top:0; }
.ch-page .ch-split--reverse .ch-split__text > * { max-width:29rem; margin-inline:auto; }
.ch-page .ch-split--reverse .ch-split__image img { aspect-ratio:16/19; object-fit:cover; }
.ch-page .ch-centered > .ch-intro { max-width:45rem; }
.ch-page .ch-steps { max-width:58rem; margin-inline:auto; }
@media(min-width:782px) {
 .ch-page .ch-steps { column-gap:7.375rem; }
 .ch-page .ch-split--reverse .ch-split__grid > .ch-split__text { padding-right:3.6rem; }
}
@media(max-width:781px) {
 .ch-page .ch-split--reverse .ch-split__text { width:100%; }
 .ch-page .ch-split--reverse .ch-split__image { width:100%; }
}

/* Lokale Schriften: kein Abruf von Google im Frontend. */
@font-face { font-family:Baskervville; font-style:normal; font-weight:400 700; font-display:swap; src:url('assets/fonts/baskervville-regular.woff') format('woff'); }
@font-face { font-family:Baskervville; font-style:italic; font-weight:400 700; font-display:swap; src:url('assets/fonts/baskervville-italic.woff') format('woff'); }
@font-face { font-family:Nunito; font-style:normal; font-weight:200 1000; font-display:swap; src:url('assets/fonts/nunito-regular.woff') format('woff'); }

/* Erlebnis-Seite: ein gemeinsames Raster nach der Pixieset-Referenz. */
:is(.ch-expect-page .ch-page,.ch-page--expect) { --ch-expect-gutter:clamp(1.25rem,8.6vw,8.25rem); margin-block-start:0; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-section { padding-inline:var(--ch-expect-gutter); }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-section > .alignwide { max-width:1272px; margin-inline:auto; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-section p { font-family:var(--ch-sans); }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-section h1.wp-block-heading { font-size:clamp(1.75rem,1.2rem + 2vw,3rem); line-height:1.1; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-centered h2.wp-block-heading,
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-about h2.wp-block-heading { font-size:clamp(1.65rem,1.5rem + 1.08vw,2.5rem); line-height:1.2; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-collage__block h3,
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-step h3 { font-size:clamp(1.35rem,1.2rem + .58vw,1.85rem); line-height:1.4; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-centered { padding-block:5.5rem; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-centered > .ch-intro { max-width:45rem; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-split { padding-block:0; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-split__grid { align-items:center; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-split__text > * { max-width:30rem; margin-inline:auto; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-split__text > .ch-arrow-down { margin-block-start:3.5rem; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-arrow-down a { width:.75rem; height:1.6rem; opacity:.85; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-collage-section { padding-block:2.75rem 4rem; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-collage { margin-block-start:3.25rem; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-flow { background:var(--ch-panel); padding-block:0 5rem; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-flow__image { margin:0 auto 3.25rem; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-flow__image img { width:100%; aspect-ratio:2/1; object-fit:cover; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-flow > .ch-eyebrow { font-family:var(--ch-serif); font-weight:400; font-size:1rem; letter-spacing:.28em; margin:0 0 3.75rem; text-align:center; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-steps { position:relative; max-width:950px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:7.375rem; row-gap:3.5rem; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-steps > .ch-step { margin:0; min-width:0; text-align:center; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-step > * { margin:0; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-step > h3 + p { margin-top:1.5rem; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-steps::before { content:''; position:absolute; inset:0 auto 0 50%; width:1px; background:var(--ch-muted); opacity:.45; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-about--reverse { padding-block:7rem; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-about__text { padding:0; max-width:none; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-about__media { position:relative; isolation:isolate; background:none; padding:0; margin:0; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-about__media::before { content:''; position:absolute; z-index:-1; inset:-2.5rem -6.5rem -2.5rem 0; background:var(--ch-panel); }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-about__media img { display:block; width:100%; aspect-ratio:456/744; object-fit:cover; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-about__text > p + .ch-list { margin-top:3.5rem; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-list { font-size:var(--wp--preset--font-size--medium); line-height:1.6; padding-left:2.5rem; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-list > li + li { margin:0; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-band--cta { padding-block:0 3.25rem; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-band--cta .ch-band__image img { width:100%; aspect-ratio:2/1; object-fit:cover; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-band--cta .ch-band__image + h2.wp-block-heading { max-width:none; margin:4rem 0 0; font-size:clamp(1.6rem,1.45rem + .85vw,2.4rem); line-height:1.3; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-band--cta h2 + .wp-block-buttons { margin-top:2.75rem; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-band--cta .wp-block-button__link { font-size:.875rem; line-height:1.4; padding:.85rem 2.3rem; border-radius:0; }
@media(min-width:782px) {
 .ch-expect-page .ch-header { background:linear-gradient(90deg,var(--wp--preset--color--base) 50%,var(--ch-panel) 50%); }
 :is(.ch-expect-page .ch-page,.ch-page--expect) .ch-split--reverse { background:linear-gradient(90deg,var(--wp--preset--color--base) 50%,var(--ch-panel) 50%); }
 :is(.ch-expect-page .ch-page,.ch-page--expect) .ch-split__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 :is(.ch-expect-page .ch-page,.ch-page--expect) .ch-split--reverse .ch-split__text { padding:0 3.6rem 0 0; }
 :is(.ch-expect-page .ch-page,.ch-page--expect) .ch-split--reverse .ch-split__image img { aspect-ratio:16/19; }
 :is(.ch-expect-page .ch-page,.ch-page--expect) .ch-about__grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(3rem,11.5vw,11rem); max-width:calc(100% - 9.75rem); margin-left:3.25rem; }
 :is(.ch-expect-page .ch-page,.ch-page--expect) .ch-collage__blocks { padding-top:2.5rem; }
 :is(.ch-expect-page .ch-page,.ch-page--expect) .ch-collage__blocks > * + * { margin-top:5.75rem; }
}
@media(max-width:781px) {
 :is(.ch-expect-page .ch-page,.ch-page--expect) .ch-steps { grid-template-columns:1fr; gap:2.5rem; max-width:32rem; }
 :is(.ch-expect-page .ch-page,.ch-page--expect) .ch-steps::before { display:none; }
 :is(.ch-expect-page .ch-page,.ch-page--expect) .ch-collage-section { padding-block:2rem 3rem; }
 :is(.ch-expect-page .ch-page,.ch-page--expect) .ch-collage__blocks { padding-top:0; }
 :is(.ch-expect-page .ch-page,.ch-page--expect) .ch-split__grid { gap:2.5rem; }
 :is(.ch-expect-page .ch-page,.ch-page--expect) .ch-split__text { padding-bottom:3rem; }
 :is(.ch-expect-page .ch-page,.ch-page--expect) .ch-split__image { background:var(--ch-panel); padding:1.25rem 0 0; }
 :is(.ch-expect-page .ch-page,.ch-page--expect) .ch-about--reverse { padding-block:4rem; }
 :is(.ch-expect-page .ch-page,.ch-page--expect) .ch-about__media { margin:4rem 1.5rem 1.5rem 0; }
 :is(.ch-expect-page .ch-page,.ch-page--expect) .ch-about__media::before { inset:-1.5rem -1.5rem -1.5rem 0; }
 :is(.ch-expect-page .ch-page,.ch-page--expect) .ch-band--cta .ch-band__image img,:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-flow__image img { aspect-ratio:3/2; }
 :is(.ch-expect-page .ch-page,.ch-page--expect) .ch-band--cta .ch-band__image + h2.wp-block-heading { margin-top:2.5rem; }
}

/* Abstand zwischen Navigation und dem ersten Unterseitenfoto. */
.ch-page > .ch-section:first-child,
.ch-page > .wp-block-post-content > .ch-section:first-child {
 padding-top:clamp(2rem,3vw,3rem);
}
/* Kontakt: linke Hälfte dunkler, gleiche Bild- und Textspalten. */
.ch-contact-page .ch-page .ch-section { padding-inline:clamp(1.25rem,8.6vw,8.25rem); }
.ch-contact-page .ch-page .ch-section > .alignwide { max-width:1272px; margin-inline:auto; }
.ch-contact-page .ch-split--contact .ch-split__grid { gap:0; align-items:start; }
.ch-contact-page .ch-split--contact .ch-split__image img { display:block; width:100%; aspect-ratio:16/19; object-fit:cover; }
.ch-contact-page .ch-split--contact .ch-split__text { max-width:none; padding:4.5rem 0 4rem 5rem; margin:0; }
.ch-contact-page .ch-split--contact .ch-split__text > * { max-width:35rem; margin-inline:auto; }
.ch-contact-page .ch-split--contact h1.wp-block-heading { font-size:clamp(1.75rem,1.5rem + 1.08vw,2.5rem); line-height:1.2; }
.ch-contact-page .ch-split--contact .ch-split__text > p { max-width:25rem; }
.ch-contact-form { margin-top:3.75rem; text-align:center; }
.ch-contact-form > p { margin:0 0 1.6rem; }
.ch-contact-form label { display:block; font-family:var(--ch-serif); font-size:1rem; margin-bottom:.5rem; }
.ch-contact-form input:not([type=hidden]),.ch-contact-form textarea { box-sizing:border-box; width:100%; background:transparent; color:var(--ch-heading); border:0; border-bottom:1px solid var(--ch-muted); border-radius:0; padding:.75rem; font:inherit; }
.ch-contact-form textarea { resize:vertical; min-height:8rem; }
.ch-contact-form input:focus-visible,.ch-contact-form textarea:focus-visible,.ch-contact-form button:focus-visible { outline:2px solid var(--ch-cream); outline-offset:4px; }
.ch-contact-form button { border:0; border-radius:0; background:var(--ch-cream); color:var(--ch-panel); padding:.85rem 2.3rem; font:inherit; font-family:var(--ch-serif); cursor:pointer; }
.ch-contact-form .ch-contact-form__privacy { font-size:.8rem; line-height:1.6; margin-bottom:1.75rem; }
.ch-contact-form .ch-contact-form__status { padding:1rem; border:1px solid currentColor; }
.ch-contact-form__trap { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
@media(min-width:782px) {
 .ch-contact-page .ch-header,.ch-contact-page .ch-page .ch-split--contact { background:linear-gradient(90deg,var(--ch-panel) 50%,var(--wp--preset--color--base) 50%); }
 .ch-contact-page .ch-split--contact .ch-split__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:781px) {
 .ch-contact-page .ch-split--contact .ch-split__image { background:var(--ch-panel); padding:1.5rem 0; }
 .ch-contact-page .ch-split--contact .ch-split__text { padding:3rem 0; }
 .ch-contact-form { margin-top:2.75rem; }
}

/* Pflichtbestätigung: Checkbox darf nicht die breiten Textfeld-Stile erben. */
.ch-contact-form .ch-contact-form__consent { text-align:left; }
.ch-contact-form .ch-contact-form__consent label { display:flex; gap:.75rem; align-items:flex-start; font-family:var(--ch-sans); font-size:.85rem; line-height:1.6; }
.ch-contact-form input[type=checkbox] { width:1.15rem; height:1.15rem; flex:0 0 1.15rem; margin:.2rem 0 0; padding:0; accent-color:var(--ch-cream); }

/* Angebote: native Blöcke, gemeinsames Raster für Übersicht und Einzelseiten. */
.ch-page .ch-service { padding:clamp(2.5rem,5vw,5rem) clamp(1.25rem,8.6vw,8.25rem); }
.ch-service > * { max-width:1272px; margin-inline:auto; }
.ch-service__intro { max-width:45rem; text-align:center; margin-bottom:4rem; }
.ch-service__hero { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(2rem,6vw,6rem); align-items:start; }
.ch-service__hero > *,.ch-service__cards > * { min-width:0; margin-block:0; }
.ch-service__photo img { width:100%; aspect-ratio:3/4; object-fit:cover; }
.ch-service__text h1 { font-size:clamp(1.9rem,1.4rem + 1.5vw,2.9rem); line-height:1.15; }
.ch-service h2 { font-size:clamp(1.5rem,1.3rem + .5vw,2rem); }
.ch-service__price { font-family:var(--ch-serif); font-size:2rem; margin-block:1rem; }
.ch-service__list { padding-left:1.25rem; }
.ch-service__list li { margin-bottom:.65rem; }
.ch-service__cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3.5rem; }
.ch-service__card { padding-bottom:2rem; }
.ch-service__card-photo img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.ch-service__package { padding-block:1rem; border-bottom:1px solid var(--ch-muted); }
.ch-service__package h3 { font-size:1.35rem; margin:0; }
.ch-service__package .ch-service__price { margin-bottom:0; }
.ch-service__digital { padding:2.5rem; margin-top:4rem; background:var(--ch-panel); text-align:center; }
.ch-service__digital p { max-width:45rem; margin-inline:auto; }
.ch-service__actions { display:flex; flex-wrap:wrap; justify-content:center; gap:1rem; margin-top:3rem; }
.ch-service__actions > * { margin:0; }
@media(max-width:781px) {
 .ch-service__hero,.ch-service__cards { grid-template-columns:1fr; }
 .ch-service__digital { padding:1.5rem; }
}

/* 2.7.4: saved sections must not inherit the broad generic page constraints. */
.ch-about-page .ch-page .ch-story-section.ch-section {
 padding-inline:min(8.6vw,132px);
}
.ch-about-page .ch-page .ch-story-section > .ch-story.alignwide {
 max-width:1272px;
 width:100%;
}
/* Grid only after text wrappers exist; keep unrepaired custom content readable. */
.ch-story-section .ch-story:not(:has(> .ch-story__texts)) { display:block; max-width:48rem; }
.ch-story-section .ch-story:not(:has(> .ch-story__texts)) h2:not(:first-child) { margin-top:3rem; }
@media(min-width:782px) {
 .ch-about-page .ch-header { background:linear-gradient(90deg,var(--ch-panel) 50%,var(--wp--preset--color--base) 50%); }
 .ch-about-page .ch-page .ch-split.ch-section { padding-inline:min(8.6vw,132px); padding-top:3rem; }
 .ch-about-page .ch-page .ch-split > .ch-split__grid.alignwide { max-width:1272px; }
}
body.home .ch-hero.ch-section { padding-top:var(--ch-hero-spacing,64px); }
body.home .ch-hero .ch-hero__image img {
 object-position:var(--ch-hero-x,50%) var(--ch-hero-y,20%);
}
@media(max-width:781px) {
 body.home .ch-hero .ch-hero__image img { object-position:var(--ch-hero-x,50%) var(--ch-hero-mobile-y,20%); }
}
@media(max-width:600px) {
 .ch-about-page .ch-page .ch-story-section.ch-section { padding-inline:1.5rem; }
}

/* Service-Details: native blocks, matching the spacious photography layouts. */
.ch-service--detail > * + * { margin-top:clamp(3.5rem,7vw,6rem); }
.ch-service--detail .ch-service__hero { align-items:center; }
.ch-service--detail .ch-service__text { max-width:30rem; margin-inline:auto; text-align:center; }
.ch-service--detail .ch-service__photo { background:var(--ch-panel); padding:0 1.75rem 1.75rem 0; }
.ch-service--detail .ch-service__photo img { aspect-ratio:4/5; }
.ch-service__about { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,7vw,7rem); align-items:center; }
.ch-service__about-text { max-width:29rem; }
.ch-service__about-photo { background:var(--ch-panel); padding:1.75rem 0 0 1.75rem; }
.ch-service__about-photo img { aspect-ratio:4/3; }
.ch-service__inclusions { max-width:45rem; margin-inline:auto; }
.ch-service__pricing,.ch-service__flow { text-align:center; }
.ch-service__pricing { padding:clamp(1.5rem,4vw,3.5rem); background:var(--ch-panel); }
.ch-service__pricing > p { max-width:48rem; margin:2rem auto 0; }
.ch-service__offers { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; margin-top:2.5rem; }
.ch-service__offer { padding:1.5rem; margin:0; border:1px solid rgba(255,255,255,.22); }
.ch-service__offer h3 { font-size:1.4rem; line-height:1.3; margin-top:0; }
.ch-service__offer .ch-service__price { font-size:1.8rem; }
.ch-service__steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; margin-top:3rem; }
.ch-service__step { padding:0 1.5rem; margin:0; }
.ch-service__step + .ch-service__step { border-left:1px solid var(--ch-muted); }
.ch-service__step h3 { font-size:1.5rem; }
.ch-service__faq { max-width:52rem; }
.ch-service__faq > h2 { text-align:center; margin-bottom:2rem; }
.ch-service__faq-item { padding:1.25rem 0; border-bottom:1px solid var(--ch-muted); }
.ch-service__faq-item summary { cursor:pointer; font-family:var(--ch-serif); font-size:1.2rem; }
.ch-service__faq-item p { padding-top:.75rem; }
.ch-service__cta { text-align:center; padding:3rem 1.5rem; background:var(--ch-panel); }
.ch-service__cta > p { max-width:38rem; margin-inline:auto; }
.ch-service__cta .wp-block-buttons { margin-top:1.5rem; }
@media(max-width:781px) {
 .ch-service__about,.ch-service__steps { grid-template-columns:1fr; }
 .ch-service__step + .ch-service__step { border-left:0; border-top:1px solid var(--ch-muted); padding-top:2rem; }
 .ch-service__about-text { max-width:none; }
}
@media(max-width:540px) { .ch-service__offers { grid-template-columns:1fr; } }

/* 2.8.3: fixed collage frames override editor image resizing only here. */
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-collage__images > .ch-collage__img img {
 width:100% !important;
 height:100% !important;
 max-width:100%;
 aspect-ratio:auto !important;
 object-fit:cover;
 object-position:center;
}
/* Keep the timeline narrower than generic alignwide page groups. */
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-flow.ch-section:not(:has(> .ch-flow__image)) { padding-top:3.5rem; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-flow.ch-section > .ch-steps.alignwide {
 width:100%;
 max-width:950px;
 margin-inline:auto;
}
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-flow.ch-section > .ch-flow__image { margin-bottom:3.25rem; }
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-collage__block > p,
:is(.ch-expect-page .ch-page,.ch-page--expect) .ch-step > p { font-size:.8125rem; line-height:1.5; }
@media(min-width:782px) {
 :is(.ch-expect-page .ch-page,.ch-page--expect) .ch-steps > .ch-step { min-height:8.25rem; }
}
@media(max-width:781px) {
 :is(.ch-expect-page .ch-page,.ch-page--expect) .ch-flow.ch-section > .ch-steps.alignwide { max-width:32rem; }
 :is(.ch-expect-page .ch-page,.ch-page--expect) .ch-flow.ch-section:not(:has(> .ch-flow__image)) { padding-top:2.5rem; }
}

/* Portfolio: remove WordPress flow margins and align all three image frames. */
.ch-portfolio-cards { align-items:start; }
.ch-portfolio-cards > .ch-portfolio-card { margin-block:0; min-width:0; }
.ch-portfolio-card > .wp-block-image { width:100%; aspect-ratio:3/4; margin:0; }
.ch-portfolio-card > .wp-block-image > a { display:block; width:100%; height:100%; }
.ch-portfolio-card > .wp-block-image img {
 width:100% !important;
 height:100% !important;
 aspect-ratio:auto !important;
 object-fit:cover;
}
.ch-portfolio-page .ch-page .ch-gallery-section { padding-inline:min(8.6vw,132px); }
.ch-portfolio-page .ch-page .ch-gallery-section > .ch-portfolio-cards.alignwide { max-width:1272px; margin-inline:auto; }
@media(max-width:781px) {
 .ch-portfolio-cards > .ch-portfolio-card + .ch-portfolio-card { margin-top:2.5rem; }
 .ch-portfolio-page .ch-page .ch-gallery-section { padding-inline:1.5rem; }
}
