/*
Theme Name:   HerzDame
Theme URI:    https://herzdame-leichlingen.de
Description:  Child-Theme für HerzDame Leichlingen auf Basis von Kadence. Farben, lokale Schriften und Gestaltungselemente aus dem Webkonzept.
Author:       Werbeteam Corp. für Fachhandel in Leichlingen
Template:     kadence
Version:      1.5.0
Text Domain:  herzdame
*/

/* ---------- Gestaltungs-Tokens ---------- */
:root {
	--hd-creme: #F8F3F1;
	--hd-nude: #EFE3DF;
	--hd-rose: #EAD6DA;
	--hd-puder: #D9AEB7;
	--hd-mauve: #A8928F;
	--hd-mauve-dark: #6E5B59;
	--hd-mauve-deep: #5A4947;
	--hd-dark: #3F3333;
	--hd-gold: #B8995E;
	--hd-champagne: #E4D5BA;
	--hd-text: #3B302F;
	--hd-muted: #6F605E;
	--hd-serif: "Cormorant Garamond", Georgia, serif;
	--hd-sans: "Jost", "Segoe UI", sans-serif;
	--hd-script: "Great Vibes", cursive;
	--hd-radius: 16px;
	--hd-shadow: 0 18px 40px -24px rgba(63, 51, 51, .35);

	/* Kadence-Variablen auf die HerzDame-Schriften setzen */
	--global-body-font-family: var(--hd-sans);
	--global-heading-font-family: var(--hd-serif);
}

/* ---------- Typografie ---------- */
body {
	font-family: var(--hd-sans);
	font-size: 17.5px;
	line-height: 1.7;
	color: var(--hd-text);
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6,
.site-title,
.entry-title {
	font-family: var(--hd-serif);
	font-weight: 600;
	line-height: 1.15;
	color: var(--hd-dark);
}

h1 { font-size: clamp(2.6rem, 5.2vw, 4.3rem); }
h2 { font-size: clamp(2rem, 3.6vw, 2.9rem); }
h3 { font-size: 1.55rem; }

/* Schreibschrift-Akzent, z. B. „Stil & Balance“ oder „Unsere Öffnungszeiten“ */
.hd-script,
.has-hd-script-font-family {
	font-family: var(--hd-script);
	font-weight: 400;
	color: #8C6F6C;
}

/* Kleine Zeile über Überschriften mit weitem Buchstabenabstand wie auf dem Flyer */
.hd-eyebrow {
	display: inline-block;
	font-family: var(--hd-serif);
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: .2em;
	color: var(--hd-mauve-dark);
	margin-bottom: 12px;
}

/* ---------- Buttons ---------- */
.button,
.wp-block-button__link,
.kb-button,
button[type="submit"],
input[type="submit"] {
	border-radius: 999px;
	font-family: var(--hd-sans);
	font-weight: 500;
	letter-spacing: .02em;
	transition: background .25s, color .25s, transform .25s;
}

.button:hover,
.wp-block-button__link:hover,
.kb-button:hover {
	transform: translateY(-1px);
}

.is-style-outline > .wp-block-button__link {
	border: 1.5px solid var(--hd-mauve-dark);
	color: var(--hd-mauve-dark);
	background: transparent;
}

/* ---------- Karten, Flächen, Linien ---------- */
.hd-card {
	background: #FBF7F6;
	border-radius: var(--hd-radius);
	box-shadow: var(--hd-shadow);
}

.hd-bg-nude { background: var(--hd-nude); }
.hd-bg-rose { background: var(--hd-rose); }
.hd-bg-dark { background: var(--hd-dark); color: #EADDDB; }
.hd-bg-dark h1, .hd-bg-dark h2, .hd-bg-dark h3 { color: var(--hd-creme); }

.hd-line-art {
	fill: none;
	stroke: var(--hd-gold);
	stroke-width: 1.1;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* ---------- Workshop-Liste [hd_workshops] ---------- */
.hd-ws-list { display: grid; gap: 18px; max-width: 960px; margin: 40px auto; }
.hd-ws {
	display: grid; grid-template-columns: 130px 1fr auto; gap: 28px; align-items: center;
	background: #FBF7F6; border-radius: var(--hd-radius); padding: 22px 28px 22px 22px;
	box-shadow: var(--hd-shadow); transition: transform .3s;
}
.hd-ws:hover { transform: translateY(-3px); }
.hd-ws-date { background: var(--hd-rose); border-radius: 12px; text-align: center; padding: 14px 8px; font-family: var(--hd-serif); color: var(--hd-dark); }
.hd-ws-date b { display: block; font-size: 2.6rem; line-height: 1; font-weight: 600; }
.hd-ws-date span { display: block; font-size: 1rem; letter-spacing: .06em; }
.hd-ws-date small { display: block; font-family: var(--hd-sans); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--hd-muted); margin-top: 4px; }
.hd-ws-body h3 { font-size: 1.5rem; margin: 0 0 4px; }
.hd-ws-body h3 a { color: inherit; text-decoration: none; }
.hd-ws-body p { margin: 0; font-size: .98rem; }
.hd-ws-body .hd-ws-meta { font-size: .9rem; color: var(--hd-muted); margin-top: 4px; }
.hd-ws-side { text-align: right; }
.hd-ws-price { font-family: var(--hd-serif); font-size: 1.6rem; color: var(--hd-dark); line-height: 1.1; }
.hd-ws-price small { display: block; font-family: var(--hd-sans); font-size: .75rem; color: var(--hd-muted); }
.hd-ws-side .button { margin-top: 12px; padding: 10px 22px; font-size: .88rem; display: inline-block; }
@media (max-width: 640px) {
	.hd-ws { grid-template-columns: 84px 1fr; gap: 16px; padding: 18px; }
	.hd-ws-date b { font-size: 2rem; }
	.hd-ws-side { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; text-align: left; border-top: 1px solid #EBDFDC; padding-top: 14px; }
	.hd-ws-side .button { margin-top: 0; }
}

/* ---------- Startseite: Abschnitte ---------- */
.entry-content > .hd-section, .entry-content > .hd-hero { margin-top: 0 !important; margin-bottom: 0 !important; }
.hd-section { padding: 110px 24px; position: relative; }
.hd-section > * { max-width: 1140px; margin-left: auto; margin-right: auto; }
.hd-center { text-align: center; }
.hd-center .wp-block-buttons { justify-content: center; }
.hd-narrow > * { max-width: 680px; }
.hd-lead { font-size: 1.12rem; max-width: 480px; }
.hd-section .hd-eyebrow { margin-bottom: 4px; }
.hd-eyebrow + h1, .hd-eyebrow + h2 { margin-top: 0; }
.hd-note { font-size: .88rem; color: var(--hd-muted); margin-top: 18px; }
.hd-sign { font-family: var(--hd-script); font-size: 2.6rem; color: #8C6F6C; line-height: 1; margin-top: 18px; }
.hd-heart-doodle { width: 64px; margin: 0 auto 20px; display: block; }
.hd-heart-doodle path { fill: none; stroke: var(--hd-dark); stroke-width: 1.3; stroke-linecap: round; }
.hd-rounded img, .hd-room-img img, .hd-portrait img { border-radius: var(--hd-radius); }

/* Hero */
.hd-hero.wp-block-cover { padding: 150px 24px 90px; align-items: center; }
.hd-hero::after {
	content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background: linear-gradient(90deg, rgba(248,243,241,.96) 0%, rgba(248,243,241,.86) 40%, rgba(248,243,241,.15) 75%, transparent 100%);
}
.hd-hero .wp-block-cover__inner-container { position: relative; z-index: 2; max-width: 1140px; margin: 0 auto; width: 100%; }
.hd-hero .wp-block-cover__inner-container > * { max-width: 580px; margin-left: 0; }
.hd-hero h1 { margin-bottom: 22px; }
.hd-hero h1 .hd-script { display: block; font-size: 1.25em; line-height: 1.05; }

/* Drei Räume */
.hd-rooms { gap: 28px; margin-top: 40px; text-align: left; }
.hd-room { background: #FBF7F6; border-radius: var(--hd-radius); box-shadow: var(--hd-shadow); overflow: hidden; display: flex; flex-direction: column; padding-bottom: 30px; }
.hd-room .hd-room-img { margin: 0 0 22px; }
.hd-room .hd-room-img img { border-radius: 0; height: 230px; width: 100%; object-fit: cover; }
.hd-room > :not(.hd-room-img) { padding: 0 30px; }
.hd-room p { flex: 1; }

/* Motto */
.hd-motto-band { overflow: hidden; }
.hd-motto-band .hd-mandala { position: absolute; right: -160px; top: 50%; transform: translateY(-50%); width: 520px; max-width: none; opacity: .16; fill: none; stroke: var(--hd-gold); stroke-width: .8; }
.hd-motto-band h2.hd-motto { font-style: italic; font-weight: 500; font-size: clamp(2.1rem, 4.4vw, 3.5rem); color: var(--hd-creme); }
.hd-motto-band p { max-width: 560px; margin-left: auto !important; margin-right: auto !important; }
.hd-btn-light .wp-block-button__link { background: var(--hd-creme); color: var(--hd-dark); }
.hd-btn-light .wp-block-button__link:hover { background: #fff; }

/* Coaching-Karten */
.hd-offers { gap: 28px; margin: 40px auto; }
.hd-offer { padding: 38px 30px; border: 1px solid #EBDFDC; box-shadow: none; transition: transform .3s, box-shadow .3s; }
.hd-offer:hover { transform: translateY(-4px); box-shadow: var(--hd-shadow); }
.hd-icon { width: 62px; height: 62px; margin: 0 auto 18px; display: block; fill: none; stroke: var(--hd-mauve-dark); stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; }
.hd-offer .hd-sub { font-size: .76rem; letter-spacing: .16em; text-transform: uppercase; color: var(--hd-mauve-dark); margin-top: -6px; }
.hd-more a { color: var(--hd-mauve-dark); text-decoration: none; border-bottom: 1px solid var(--hd-gold); font-size: .9rem; }

/* Zweispaltige Abschnitte */
.hd-split { gap: 64px; align-items: center; }
.hd-col-40 { flex-basis: 40% !important; }
.hd-col-60 { flex-basis: 60% !important; }
.hd-portrait img { max-height: 560px; width: 100%; object-fit: cover; }

/* Galerie */
.hd-gallery.wp-block-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 40px; }
.hd-gallery.wp-block-gallery > figure.wp-block-image { width: auto !important; margin: 0 !important; }
.hd-gallery .wp-block-image img { border-radius: var(--hd-radius); }

/* Besuch */
.hd-visit .hd-visit-info { background: var(--hd-rose); border-radius: var(--hd-radius); padding: 44px 40px; }
.hd-hours-title .hd-script { font-size: 1.3em; }
.hd-hours { margin: 0 0 12px; }
.hd-visit { align-items: stretch !important; }
.hd-visit .wp-block-column { display: flex; flex-direction: column; }
.hd-visit-img { flex: 1; margin: 0; }
.hd-visit-img img { height: 100%; width: 100%; min-height: 420px; object-fit: cover; }

@media (max-width: 781px) {
	.hd-section { padding: 70px 16px; }
	.hd-hero.wp-block-cover { padding: 120px 16px 60px; }
	.hd-hero::after { background: linear-gradient(180deg, rgba(248,243,241,.94) 0%, rgba(248,243,241,.85) 60%, rgba(248,243,241,.6) 100%); }
	.hd-motto-band .hd-mandala { width: 340px; right: -170px; }
	.hd-visit .hd-visit-info { padding: 32px 22px; }
	.hd-visit-img img { min-height: 260px; }
	.hd-gallery.wp-block-gallery { grid-template-columns: repeat(2, 1fr); }
	.hd-gallery .wp-block-image img { height: auto; }
}

/* ---------- Unterseiten ---------- */
.hd-pt0 { padding-top: 40px; }
.hd-lead-center { font-size: 1.15rem; }
.hd-bereichslogo { margin: 50px auto 0 !important; }
.hd-wide-img img { width: 100%; max-height: 620px; object-fit: cover; }
.hd-motto-title { font-style: italic; font-weight: 500; }
.hd-bg-dark .hd-btn-ghost .wp-block-button__link { color: var(--hd-creme); border-color: var(--hd-creme); }
.hd-bg-dark .wp-block-buttons { justify-content: center; }

ul.hd-check { list-style: none; padding-left: 0; }
ul.hd-check li { position: relative; padding-left: 30px; margin-bottom: 10px; }
ul.hd-check li::before {
	content: ""; position: absolute; left: 2px; top: .55em; width: 14px; height: 13px;
	background: var(--hd-puder);
	clip-path: path("M7 13C3 10 0 7.5 0 4.2C0 1.8 1.8 0 4 0C5.3 0 6.4 .7 7 1.7C7.6 .7 8.7 0 10 0C12.2 0 14 1.8 14 4.2C14 7.5 11 10 7 13Z");
}

/* Schritte */
.hd-steps { gap: 24px; margin: 36px auto 30px; text-align: left; }
.hd-step { padding: 30px 28px; position: relative; }
.hd-step-no { font-family: var(--hd-serif); font-size: 3rem; line-height: 1; color: var(--hd-puder); margin: 0 0 8px; font-weight: 600; }

/* Häufige Fragen */
.hd-faq { background: #FBF7F6; border-radius: 12px; padding: 18px 22px; margin-bottom: 12px; border: 1px solid #EBDFDC; }
.hd-faq summary { font-family: var(--hd-serif); font-size: 1.3rem; font-weight: 600; cursor: pointer; color: var(--hd-dark); }
.hd-faq[open] summary { margin-bottom: 8px; }

/* Leistungsseiten */
.hd-glance { padding: 34px 32px; }
.hd-glance .latepoint-book-button-wrapper { margin: 18px 0 6px; }

/* Preisliste */
.hd-pricelist { max-width: 860px; margin: 0 auto; padding: 0 24px; }
.hd-price-item { background: #FBF7F6; border-radius: var(--hd-radius); box-shadow: var(--hd-shadow); padding: 26px 32px; margin-bottom: 18px; }
.hd-price-row { align-items: center !important; gap: 24px; margin: 0 !important; }
.hd-price-main h3 { margin: 0 0 4px; font-size: 1.5rem; }
.hd-price-meta { margin: 0; color: var(--hd-muted); font-size: .95rem; }
.hd-price-meta strong { color: var(--hd-mauve-dark); font-weight: 500; }
.hd-price-side { flex-basis: 220px !important; flex-grow: 0 !important; text-align: right; }
.hd-price { font-family: var(--hd-serif); font-size: 1.3rem; color: var(--hd-dark); margin: 0 0 10px; }

/* LatePoint: Buttons und Buchungsfenster in HerzDame-Farben */
.latepoint-book-button, a.latepoint-book-button {
	display: inline-block; background: var(--hd-mauve-dark) !important; color: #fff !important;
	border-radius: 999px !important; padding: 12px 26px !important; font-family: var(--hd-sans) !important;
	font-weight: 500 !important; font-size: .95rem !important; text-decoration: none !important; border: 0 !important;
	transition: background .25s, transform .25s;
}
.latepoint-book-button:hover { background: var(--hd-mauve-deep) !important; transform: translateY(-1px); }
.latepoint-w, .latepoint-lightbox-w, .latepoint-booking-form-element {
	--latepoint-brand-primary: #6E5B59;
	--latepoint-body-color: #3B302F;
	--latepoint-headings-color: #3F3333;
	--latepoint-side-panel-bg: #F8F3F1;
	--latepoint-border-radius: 12px;
	--latepoint-border-radius-md: 14px;
	--latepoint-border-radius-lg: 18px;
}
.latepoint-lightbox-w h1, .latepoint-lightbox-w h2, .latepoint-lightbox-w h3 { font-family: var(--hd-serif) !important; }
.latepoint-w .dp-timebox, .latepoint-lightbox-w .dp-timebox { background: #F3E6E8 !important; color: var(--hd-dark) !important; border-radius: 8px !important; }
.latepoint-w .dp-timebox:hover, .latepoint-lightbox-w .dp-timebox:hover,
.latepoint-w .dp-timebox.selected, .latepoint-lightbox-w .dp-timebox.selected { background: var(--hd-mauve-dark) !important; color: #fff !important; }
.latepoint-w .dp-timebox.is-booked, .latepoint-lightbox-w .dp-timebox.is-booked,
.latepoint-w .dp-timebox.is-off, .latepoint-lightbox-w .dp-timebox.is-off { background: #EEE7E6 !important; color: #A8999A !important; text-decoration: line-through; }
.latepoint-lightbox-w .os-day.selected .os-day-box, .latepoint-w .os-day.selected .os-day-box { background: var(--hd-mauve-dark) !important; color: #fff !important; }
.latepoint-lightbox-w .os-day-status .day-available, .latepoint-w .os-day-status .day-available { background: var(--hd-puder) !important; }

/* Anfahrt */
.hd-travel { gap: 24px; margin-top: 20px; }

@media (max-width: 781px) {
	.hd-price-side { flex-basis: 100% !important; text-align: left; }
	.hd-price-item { padding: 22px; }
}

/* ---------- Google-Karte (wird erst nach Zustimmung geladen) ---------- */
.hd-map { position: relative; border-radius: var(--hd-radius); overflow: hidden; min-height: 420px; height: 100%; background: #F4ECEA; box-shadow: var(--hd-shadow); }
.hd-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: grayscale(.9) sepia(.35) hue-rotate(-38deg) saturate(1.05) brightness(1.03) contrast(.92) !important; }
.hd-map-section .hd-map { max-width: 1140px; min-height: 460px; }
/* Platzhalter von Complianz im HerzDame-Stil */
.hd-map div.cmplz-placeholder-element, .hd-map .cmplz-blocked-content-container {
	position: absolute !important; inset: 0; width: 100% !important; height: 100% !important; min-height: 420px;
	background-color: #F4ECEA !important; background-size: cover !important; filter: grayscale(.5) sepia(.25);
}
.hd-map .cmplz-blocked-content-notice {
	background: rgba(251,247,246,.96) !important; color: var(--hd-text) !important; border-radius: var(--hd-radius) !important;
	box-shadow: var(--hd-shadow); padding: 22px 26px !important; max-width: 320px; font-family: var(--hd-sans) !important; font-size: .9rem !important;
}
.hd-map .cmplz-blocked-content-notice .cmplz-links a, .hd-map .cmplz-accept-service {
	color: var(--hd-mauve-dark) !important;
}
.hd-map button.cmplz-accept-category, .hd-map .cmplz-blocked-content-notice button {
	background: var(--hd-mauve-dark) !important; color: #fff !important; border-radius: 999px !important; border: 0 !important; padding: 10px 20px !important;
}

/* ---------- Cookie-Banner (Complianz) im HerzDame-Stil ---------- */
#cmplz-cookiebanner-container .cmplz-cookiebanner {
	font-family: var(--hd-sans) !important; border-radius: var(--hd-radius) !important; box-shadow: 0 24px 60px -30px rgba(63,51,51,.55) !important;
	background: #FBF7F6 !important; color: var(--hd-text) !important;
}
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-title { font-family: var(--hd-serif) !important; font-size: 1.35rem !important; color: var(--hd-dark) !important; }
#cmplz-cookiebanner-container .cmplz-btn { border-radius: 999px !important; font-family: var(--hd-sans) !important; font-weight: 500 !important; }
#cmplz-cookiebanner-container .cmplz-btn.cmplz-accept { background: var(--hd-mauve-dark) !important; border-color: var(--hd-mauve-dark) !important; color: #fff !important; }
#cmplz-cookiebanner-container .cmplz-btn.cmplz-deny, #cmplz-cookiebanner-container .cmplz-btn.cmplz-view-preferences, #cmplz-cookiebanner-container .cmplz-btn.cmplz-save-preferences {
	background: transparent !important; border: 1.5px solid var(--hd-mauve-dark) !important; color: var(--hd-mauve-dark) !important;
}
#cmplz-cookiebanner-container .cmplz-link { color: var(--hd-mauve-dark) !important; }
#cmplz-manage-consent .cmplz-manage-consent { background: var(--hd-dark) !important; color: #EADDDB !important; border-radius: 12px 12px 0 0 !important; font-family: var(--hd-sans) !important; }

/* ---------- Formulare (Contact Form 7) ---------- */
.hd-form-section > * { max-width: 720px; }
.hd-form-section { text-align: center; }
.hd-form { text-align: left; background: #FBF7F6; border-radius: var(--hd-radius); box-shadow: var(--hd-shadow); padding: 36px 36px 20px; margin-top: 26px; }
.hd-form label { display: block; font-size: .92rem; font-weight: 500; color: var(--hd-dark); }
.hd-form input[type="text"], .hd-form input[type="email"], .hd-form input[type="tel"], .hd-form input[type="number"], .hd-form select, .hd-form textarea {
	width: 100%; margin-top: 6px; padding: 12px 14px; border: 1px solid #D9C6C4; border-radius: 10px; background: #fff;
	font: inherit; font-weight: 400; color: var(--hd-text);
}
.hd-form input:focus, .hd-form select:focus, .hd-form textarea:focus { outline: 2px solid var(--hd-puder); border-color: var(--hd-mauve); }
.hd-form .wpcf7-radio .wpcf7-list-item { display: block; margin: 6px 0 0; font-weight: 400; }
.hd-consent { font-size: .85rem; color: var(--hd-muted); }
.hd-consent .wpcf7-list-item { margin: 0; }
.hd-consent label { font-weight: 400; display: flex; gap: 10px; align-items: flex-start; }
.hd-form input[type="submit"] { background: var(--hd-mauve-dark); color: #fff; border: 0; padding: 13px 30px; cursor: pointer; }
.hd-form input[type="submit"]:hover { background: var(--hd-mauve-deep); }
.wpcf7 form .wpcf7-response-output { border-radius: 10px; margin: 16px 0 0; }

/* ---------- Infoleiste ---------- */
.hd-topbar { background: var(--hd-dark); color: #EADDDB; font-size: .82rem; letter-spacing: .03em; }
.hd-topbar-in { max-width: 1240px; margin: 0 auto; padding: 7px 24px; display: flex; justify-content: space-between; gap: 16px; }
.hd-topbar a { color: #EADDDB; text-decoration: none; }
.hd-topbar a:hover { color: #fff; }
.hd-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--hd-mauve); margin-right: 8px; vertical-align: 1px; }
.hd-open-state.is-open .hd-dot { background: var(--hd-gold); box-shadow: 0 0 0 3px rgba(184,153,94,.25); }

/* ---------- Kopfzeile ---------- */
.site-branding a.brand { display: flex; align-items: center; gap: 12px; }
.site-branding a.brand img.custom-logo, .site-branding .brand img { max-height: 52px !important; width: auto !important; max-width: none !important; }
@media (max-width: 1024px) { .site-branding a.brand img.custom-logo, .site-branding .brand img { max-height: 44px !important; } }
.site-header .site-title { font-size: 1.75rem; letter-spacing: .01em; }
#masthead .site-main-header-wrap .site-header-row-container-inner { background: rgba(248,243,241,.97); }
.item-is-fixed .site-header-row-container-inner { box-shadow: 0 8px 24px -18px rgba(63,51,51,.45); }
.header-navigation .menu > li > a { font-size: .95rem; }
.header-button-wrap .header-button, .mobile-header-button-wrap .button {
	border-radius: 999px !important; background: var(--hd-mauve-dark); color: #fff; padding: 10px 22px; font-weight: 500;
}
.header-button-wrap .header-button:hover { background: var(--hd-mauve-deep); }

/* ---------- Fußzeile ---------- */
.hd-footer { background: var(--hd-dark); color: #DCCDCB; padding: 80px 24px 28px; font-size: .95rem; }
.hd-footer-in { max-width: 1140px; margin: 0 auto; display: grid; grid-template-columns: 1.4fr 1fr 1.1fr 1.1fr; gap: 40px; }
.hd-footer h4 { font-family: var(--hd-serif); font-weight: 600; font-size: 1.3rem; color: var(--hd-creme); margin: 0 0 14px; }
.hd-footer ul { list-style: none; margin: 0; padding: 0; }
.hd-footer li { margin-bottom: 8px; }
.hd-footer a { color: #DCCDCB; text-decoration: none; }
.hd-footer a:hover { color: #fff; }
.hd-footer-logos { display: flex; align-items: flex-end; gap: 18px; margin-bottom: 14px; }
.hd-footer-mode { height: 96px; width: auto; background: #F8F3F1; border-radius: 10px; padding: 8px; }
.hd-footer-signet { height: 72px; width: auto; }
.hd-footer-name { font-family: var(--hd-serif); font-size: 1.8rem; color: var(--hd-creme); margin: 0; font-weight: 600; }
.hd-footer-claim { font-family: var(--hd-script); font-size: 1.7rem; color: var(--hd-champagne); margin: 0; }
.hd-footer-heart { display: block; width: 52px; margin: 44px auto 0; }
.hd-footer-heart path { fill: none; stroke: var(--hd-champagne); stroke-width: 1.3; stroke-linecap: round; }
.hd-footer-bottom { max-width: 1140px; margin: 26px auto 0; padding-top: 22px; border-top: 1px solid #574747; display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; font-size: .84rem; }
.hd-footer-nav ul { display: flex; gap: 22px; flex-wrap: wrap; }
.hd-footer-nav li { margin: 0; }

@media (max-width: 900px) {
	.hd-footer-in { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
	.hd-footer-in { grid-template-columns: 1fr; }
	.hd-topbar-in { padding: 7px 16px; font-size: .78rem; }
	.hd-topbar-phone { display: none; }
	.hd-bereichslogo img { max-width: 150px !important; height: auto; }
}

/* ---------- Bildzuschnitt optimiert (Hochformat-Fotos vollständig zeigen) ---------- */
/* Titelbild: Ausschnitt auf den Tisch ausrichten */
.hd-hero .wp-block-cover__image-background { object-position: 55% 68% !important; }

/* Karten „Drei Räume“: Hochformat statt flacher Streifen */
.hd-room .hd-room-img img { height: auto !important; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 45%; }

/* Galerien als Mauerwerk: jedes Foto in voller Größe, ohne Beschnitt */
.hd-gallery.wp-block-gallery { display: block !important; column-count: 3; column-gap: 16px; }
.hd-gallery.wp-block-gallery > figure.wp-block-image {
	display: block; width: 100% !important; margin: 0 0 16px !important; break-inside: avoid; page-break-inside: avoid;
}
.hd-gallery.wp-block-gallery > figure.wp-block-image img {
	height: auto !important; width: 100% !important; object-fit: contain !important; border-radius: var(--hd-radius);
}

/* Bilder in zweispaltigen Abschnitten: natürliche Proportionen, begrenzte Höhe ohne Beschnitt */
.hd-split .wp-block-image img { width: 100%; height: auto; max-height: 640px; object-fit: contain; }
.hd-split .hd-rounded img { object-fit: cover; }

/* Porträts: Gesicht und Oberkörper im Bild halten */
.hd-portrait img { aspect-ratio: 4 / 5; height: auto !important; max-height: none !important; object-fit: cover; object-position: 50% 12%; }
.hd-wide-img img { object-position: 50% 30%; }

/* Fassade im Besuch-Abschnitt: in natürlichen Proportionen, senkrecht mittig */
.hd-visit .wp-block-column:has(.hd-visit-img) { justify-content: center; }
.hd-visit-img { flex: 0 0 auto !important; }
.hd-visit-img img { height: auto !important; min-height: 0 !important; object-fit: contain; }

@media (max-width: 781px) {
	.hd-gallery.wp-block-gallery { column-count: 2; column-gap: 12px; }
	.hd-gallery.wp-block-gallery > figure.wp-block-image { margin-bottom: 12px !important; }
	.hd-room .hd-room-img img { aspect-ratio: 4 / 4.6; }
}

/* Sichtbarer Fokus für Tastaturbedienung */
:focus-visible {
	outline: 2px solid var(--hd-mauve-dark);
	outline-offset: 3px;
}

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

/* Teamfoto im Hochformat: ganz zeigen, mittig */
.hd-team-img { max-width: 560px; margin-inline: auto !important; }
.hd-team-img img { width: 100% !important; height: auto !important; max-height: none !important; aspect-ratio: 3 / 4; object-fit: cover; }
.hd-team-img figcaption { text-align: center; }

/* Galerie "Neu eingetroffen" (Mode): eine Reihe mit 4 gleich hohen Bildern, mobil 2 × 2 */
.hd-gallery.hd-gallery-4.wp-block-gallery { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 16px; column-count: auto; }
.hd-gallery.hd-gallery-4.wp-block-gallery > figure.wp-block-image { margin: 0 !important; }
.hd-gallery.hd-gallery-4.wp-block-gallery > figure.wp-block-image img { width: 100% !important; height: auto !important; aspect-ratio: 3 / 4; object-fit: cover !important; }
@media (max-width: 767px) {
	.hd-gallery.hd-gallery-4.wp-block-gallery { grid-template-columns: repeat(2, 1fr); gap: 12px; }
}

/* Rechtstexte: ruhige Lesespalte */
.hd-legal > * { max-width: 760px !important; margin-left: auto !important; margin-right: auto !important; text-align: left; }
.hd-legal h2 { font-size: clamp(1.35rem, 1.1rem + 0.8vw, 1.7rem); margin-top: 2.2em; margin-bottom: 0.5em; }
.hd-legal h3 { font-size: 1.2rem; margin-top: 1.6em; margin-bottom: 0.4em; }
.hd-legal p, .hd-legal li { font-size: 1rem; line-height: 1.7; }
.hd-legal ul { padding-left: 1.2em; }
.hd-legal a { color: var(--hd-mauve-dark); text-decoration: underline; text-underline-offset: 3px; word-break: break-word; }
.hd-legal .hd-legal-stand { margin-top: 2.5em; color: var(--hd-muted); font-size: 0.9rem; }

/* Lange Seitentitel (z. B. Teilnahmebedingungen) mobil nicht abschneiden */
.page-title .entry-title { overflow-wrap: break-word; hyphens: auto; -webkit-hyphens: auto; }
@media (max-width: 480px) {
	.page-title .entry-title { font-size: 2.1rem; }
}

/* Preise & Termine: Workshop-Preisliste */
.hd-ws-platz {
	display: inline-block; background: var(--hd-mauve-dark); color: #fff !important; border-radius: 999px;
	padding: 12px 26px; font-family: var(--hd-sans); font-weight: 500; font-size: .95rem; text-decoration: none !important;
	transition: background .25s, transform .25s;
}
.hd-ws-platz:hover { background: var(--hd-mauve-deep); transform: translateY(-1px); }
.hd-price small { font-family: var(--hd-sans); font-size: .8rem; color: var(--hd-muted); }
.hd-ws-pricelist .hd-price-row { display: flex; flex-wrap: wrap; }
.hd-ws-pricelist .hd-price-main { flex: 1 1 300px; }
@media (max-width: 781px) { .hd-ws-pricelist .hd-price-side { flex-basis: 100% !important; text-align: left; } }
