/*
 * Libeauty – Design
 * Farben, Schriften und Schriftgrößen kommen aus theme.json (im Editor unter Design → Stile änderbar).
 * Radien und Schatten stehen in theme.json unter settings.custom.
 * Desktop ist die Grundlage, die Handy-Ansicht steht im Block @media (max-width: 900px) weiter unten.
 */

/* ---------- Grundlagen ---------- */
html { scroll-behavior: smooth; }
body { overflow-x: hidden; -webkit-font-smoothing: antialiased; }
body .wp-site-blocks > *,
body .lb-main > * { margin-block: 0; }
body .wp-site-blocks { padding: 0; }
.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
:focus-visible { outline: 2px solid var(--wp--preset--color--akzent); outline-offset: 4px; border-radius: 8px; }
body h1, body h2 { text-wrap: balance; }

body .lb-wrap {
	max-width: var(--wp--style--global--wide-size, 1240px);
	margin-inline: auto;
	padding-inline: var(--wp--preset--spacing--rand);
	box-sizing: border-box;
}

/* Glas-Karten */
body .lb-glass {
	background: var(--wp--preset--color--glas);
	border: 1px solid var(--wp--preset--color--glas-rand);
	-webkit-backdrop-filter: blur(16px) saturate(1.4);
	backdrop-filter: blur(16px) saturate(1.4);
	box-shadow: var(--wp--custom--schatten--karte), inset 0 1px 0 var(--wp--preset--color--glas-rand);
}
body .lb-tilt { transition: transform .6s cubic-bezier(.2, .8, .2, 1); transform-style: preserve-3d; will-change: transform; }

/* ---------- Hero: Logo im Vollbild ---------- */
body .lb-hero {
	min-height: 100vh; min-height: 100svh;
	display: grid; place-items: center;
	position: relative; overflow: hidden; margin: 0;
	background: var(--wp--preset--gradient--hero);
}
body .lb-hero::after {
	content: ""; position: absolute; bottom: 28px; left: 50%;
	width: 1px; height: 60px; z-index: 2;
	background: linear-gradient(var(--wp--preset--color--akzent), transparent);
}
body .lb-logo {
	position: relative; z-index: 2; margin: 0;
	border-radius: var(--wp--custom--radius--logo);
	padding: clamp(40px, 5vw, 72px) clamp(40px, 6vw, 100px);
	background: var(--wp--preset--gradient--kachel);
	border: 1px solid var(--wp--preset--color--glas-rand);
	box-shadow: var(--wp--custom--schatten--logo), inset 0 1px 0 var(--wp--preset--color--glas-rand);
	animation: lb-in 1.8s cubic-bezier(.2, .8, .2, 1) both;
}
body .lb-logo > * { margin: 0; }
body .lb-logo > .lb-mark { width: min(60vw, 860px, 108svh); aspect-ratio: 1700 / 993; margin: 0; }
body .lb-mark img { width: 100%; height: 100%; object-fit: contain; display: block; animation: lb-write 2.8s .7s cubic-bezier(.55, 0, .25, 1) both; }
@keyframes lb-in { from { opacity: 0; transform: translateY(34px) scale(.96); } }
@keyframes lb-write { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0); } }

/* ---------- Über mich ---------- */
body .lb-about { padding: var(--wp--preset--spacing--abschnitt-oben) 0 var(--wp--preset--spacing--abschnitt-unten); margin: 0; }
body .wp-block-columns.lb-about-cols {
	display: grid; grid-template-columns: 5fr 6fr;
	gap: var(--wp--preset--spacing--spalten);
	align-items: center; margin-block: 0;
}
body .lb-about-cols > .wp-block-column { min-width: 0; align-self: center; }
body .lb-portrait { position: relative; perspective: 1400px; margin: 0; }
body .lb-portrait > * { margin: 0; }
body .lb-portrait > .lb-portrait-img {
	border-radius: var(--wp--custom--radius--portrait); overflow: hidden;
	aspect-ratio: 2 / 3; box-shadow: var(--wp--custom--schatten--portrait); margin: 0;
}
body .lb-portrait-img img { width: 100%; height: 112%; object-fit: cover; object-position: 50% 20%; display: block; max-width: none; }
body .lb-portrait > .lb-chip {
	position: absolute; right: -9%; bottom: 7%; margin: 0;
	width: min(78%, 330px); padding: 26px 28px;
	border-radius: var(--wp--custom--radius--chip);
}
body .lb-chip > * { margin: 0; }
body .lb-chip > .lb-quote {
	font-family: var(--wp--preset--font-family--cormorant); font-weight: 300;
	font-size: var(--wp--preset--font-size--zitat); line-height: 1.3;
}
body .lb-chip > .lb-quote-src { margin-top: 10px; color: var(--wp--preset--color--text-gedaempft); font-size: .85rem; }
body .lb-about-txt > * { margin: 0; }
body .lb-about-txt > .lb-about-title { margin-bottom: 2rem; }
body .lb-about-txt > .lb-about-text { color: var(--wp--preset--color--text-gedaempft); max-width: 32em; margin-bottom: 1.15rem; }
body .lb-about-txt > .lb-sign {
	font-family: var(--wp--preset--font-family--cormorant); font-style: italic; font-weight: 300;
	font-size: var(--wp--preset--font-size--unterschrift); color: var(--wp--preset--color--text);
	margin-top: 1.6rem; margin-bottom: 1.15rem;
}

/* ---------- Leistungen ---------- */
body .lb-services {
	padding: var(--wp--preset--spacing--leistungen) 0 clamp(60px, 8vw, 100px); margin: 0;
	background: var(--wp--preset--gradient--leistungen);
}
body .lb-services .lb-wrap > * { margin: 0; }
body .lb-sv-head { text-align: center; padding: clamp(40px, 6vw, 80px) 0 clamp(30px, 5vw, 70px); }
body .lb-sv-head > * { margin: 0; }
body .lb-lead {
	color: var(--wp--preset--color--text-gedaempft);
	font-size: var(--wp--preset--font-size--einleitung);
	max-width: 34em; text-wrap: balance;
}
body .lb-sv-head > .lb-lead { margin: 1.4rem auto 0; }

body .wp-block-columns.lb-chap {
	display: grid; grid-template-columns: 1fr 1fr;
	gap: var(--wp--preset--spacing--spalten);
	align-items: center; padding: var(--wp--preset--spacing--thema) 0; margin: 0;
}
body .lb-chap > .wp-block-column { min-width: 0; align-self: center; }
body .lb-chap--rev > .lb-media-col { order: 2; }
body .lb-media {
	position: relative; aspect-ratio: 4 / 5.2;
	max-width: 520px; width: 100%; margin: 0 auto;
}
body .lb-media > .lb-big,
body .lb-media > .lb-small { position: absolute; overflow: hidden; margin: 0; }
body .lb-media > .lb-big {
	inset: 0 14% 10% 0;
	border-radius: var(--wp--custom--radius--bild);
	box-shadow: var(--wp--custom--schatten--bild);
}
body .lb-media > .lb-small {
	right: 0; bottom: 0; width: 46%; aspect-ratio: 3 / 4;
	border-radius: var(--wp--custom--radius--bild-klein);
	box-shadow: var(--wp--custom--schatten--bild-klein);
}
body .lb-chap--rev .lb-media > .lb-big { inset: 0 0 10% 14%; }
body .lb-chap--rev .lb-media > .lb-small { right: auto; left: 0; }
body .lb-media img { width: 100%; height: 100%; object-fit: cover; display: block; max-width: none; }
body .lb-media > .lb-big img { height: 114%; margin-top: -7%; }

body .lb-chap-text > * { margin: 0; }
body .lb-chap-text > .lb-sub { color: var(--wp--preset--color--text-gedaempft); margin: .5rem 0 2rem; }
body .lb-menu { border-radius: var(--wp--custom--radius--karte); padding: 14px 38px; }
body .lb-menu > * { margin: 0; }
body .lb-row {
	display: grid; grid-template-columns: 1fr auto; gap: 6px 26px;
	padding: 24px 0; border-bottom: 1px solid var(--wp--preset--color--linie);
	align-items: baseline;
}
body .lb-menu > .lb-row:last-child { border-bottom: 0; }
body .lb-row > * { margin: 0; }
body .lb-row > .lb-row-title {
	font-family: var(--wp--preset--font-family--cormorant); font-weight: 500;
	font-size: var(--wp--preset--font-size--leistung); line-height: 1.2;
}
body .lb-row > .lb-price {
	font-family: var(--wp--preset--font-family--cormorant); font-weight: 400;
	font-size: var(--wp--preset--font-size--preis); white-space: nowrap;
}
body .lb-row > .lb-desc {
	grid-column: 1; color: var(--wp--preset--color--text-gedaempft);
	font-size: var(--wp--preset--font-size--beschreibung); line-height: 1.65; max-width: 30em;
}
.lb-plus { display: none; }

/* ---------- Kontakt ---------- */
body .lb-contact { padding: var(--wp--preset--spacing--kontakt) 0 40px; margin: 0; }
body .lb-cbox {
	position: relative; overflow: hidden; text-align: center;
	border-radius: var(--wp--custom--radius--kontakt);
	padding: clamp(60px, 8vw, 110px) clamp(30px, 6vw, 100px);
	background: var(--wp--preset--gradient--kachel);
	border: 1px solid var(--wp--preset--color--glas-rand);
	box-shadow: var(--wp--custom--schatten--karte), inset 0 1px 0 var(--wp--preset--color--glas-rand);
}
body .lb-cbox > * { margin: 0; }
body .lb-cbox > .lb-lead { margin: 1.4rem auto 0; }
body .lb-cbox > .lb-btns { gap: 14px; margin-top: 2.6rem; justify-content: center; }
body .lb-btns .wp-block-button__link { transition: transform .5s cubic-bezier(.2, .8, .2, 1); }
body .lb-btns .wp-block-button__link:hover { transform: translateY(-4px) scale(1.03); }
body .lb-btn-ghost .wp-block-button__link,
body .lb-btn-ghost .wp-block-button__link:hover {
	background: var(--wp--preset--color--glas); color: var(--wp--preset--color--text);
	border: 1px solid var(--wp--preset--color--glas-rand);
	-webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}
body .lb-cbox > .lb-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; margin-top: 4rem; text-align: center; }
body .lb-fact > * { margin: 0; }
body .lb-fact > .lb-fact-title {
	font-family: var(--wp--preset--font-family--cormorant); font-weight: 500;
	font-size: var(--wp--preset--font-size--zitat); line-height: 1.75; margin-bottom: .3rem;
}
body .lb-fact-text, body .lb-fact-text a { color: var(--wp--preset--color--text-gedaempft); font-size: .98rem; text-decoration: none; }
body .lb-fact-text a:hover { color: var(--wp--preset--color--text); }

/* ---------- Fußzeile ---------- */
body .lb-footer {
	padding: 50px 5vw calc(50px + env(safe-area-inset-bottom, 0px)); margin: 0;
	text-align: center; color: var(--wp--preset--color--text-gedaempft);
	font-size: var(--wp--preset--font-size--klein); line-height: 1.8;
}
body .lb-footer > * { margin: 0; }
body .lb-footer strong { font-weight: 400; color: var(--wp--preset--color--text); }
body .lb-footer a { color: var(--wp--preset--color--text-gedaempft); text-decoration: none; }
body .lb-footer a:hover { color: var(--wp--preset--color--text); text-decoration: underline; }
body .lb-dock { display: none; }

/* ---------- Unterseiten (Impressum, Datenschutz) ---------- */
body .lb-topbar {
	display: flex; align-items: center; justify-content: space-between; gap: 20px;
	max-width: var(--wp--style--global--wide-size, 1240px); margin: 0 auto;
	padding: 28px 5vw; box-sizing: border-box;
}
body .lb-topbar > * { margin: 0; }
body .lb-topbar > .lb-toplogo { width: 150px; margin: 0; }
body .lb-toplogo img { width: 100%; height: auto; display: block; }
body .lb-back { font-size: .9rem; }
body .lb-back a { color: var(--wp--preset--color--text-gedaempft); text-decoration: none; }
body .lb-back a:hover { color: var(--wp--preset--color--text); }
body .lb-page { padding: 40px 5vw 90px; }
body .lb-page .lb-page-title { font-size: clamp(2.4rem, 4vw, 3.4rem); margin-bottom: 2rem; }
body .lb-page h2 { font-size: 1.8rem; line-height: 1.2; margin-top: 2.2rem; }

/* =========================================================
   Handy (bis 900 px) – entspricht der Mobil-Version im Mockup
   ========================================================= */
@media (max-width: 900px) {
	body { line-height: 1.7; }
	body h1, body h2 { text-wrap: wrap; }
	body .lb-glass { box-shadow: 0 30px 60px -26px rgba(120, 84, 48, .24), inset 0 1px 0 var(--wp--preset--color--glas-rand); }

	/* Hero */
	body .lb-hero > .lb-logo {
		width: calc(100% - 32px); max-width: 560px; box-sizing: border-box;
		border-radius: var(--wp--custom--radius-mobil--logo);
		padding: 44px 14px 40px; margin-top: -3svh;
		box-shadow: 0 30px 60px -26px rgba(120, 84, 48, .24), inset 0 1px 0 var(--wp--preset--color--glas-rand);
		animation-duration: 1.6s;
	}
	body .lb-logo > .lb-mark { width: 100%; }
	body .lb-mark img { animation-duration: 2.6s; }
	body .lb-hero::after { bottom: calc(20px + env(safe-area-inset-bottom, 0px)); height: 46px; }

	/* Über mich */
	body .lb-about { padding: 64px 0 40px; }
	body .wp-block-columns.lb-about-cols { display: block; max-width: 560px; padding: 0; }
	body .lb-portrait { width: 66%; margin-left: 20px; perspective: none; }
	body .lb-portrait > .lb-portrait-img {
		border-radius: var(--wp--custom--radius-mobil--portrait); aspect-ratio: 4 / 5;
		box-shadow: 0 40px 60px -26px rgba(120, 84, 48, .24);
	}
	body .lb-portrait-img img { object-position: 50% 18%; }
	body .lb-portrait > .lb-chip {
		right: -42%; bottom: -26px; width: 76%; padding: 16px 18px; z-index: 2;
		border-radius: var(--wp--custom--radius-mobil--chip); box-sizing: border-box;
	}
	body .lb-chip > .lb-quote { font-size: 1.12rem; }
	body .lb-chip > .lb-quote-src { margin-top: 4px; font-size: .74rem; }
	body .lb-about-txt > .lb-about-title { font-size: 2.15rem; margin: 58px 22px .9rem; }
	body .lb-about-txt > .lb-about-text { margin: 0 22px .8rem; font-size: .97rem; line-height: 1.65; max-width: none; }
	body .lb-about-txt > .lb-sign { font-size: .97rem; margin: 1rem 22px .8rem; }

	/* Leistungen */
	body .lb-services { padding: 36px 0 8px; background: var(--wp--preset--gradient--leistungen-mobil); overflow: hidden; }
	body .lb-services .lb-wrap { padding-inline: 0; max-width: 560px; }
	body .lb-sv-head { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; padding: 12px 22px 30px; text-align: left; }
	body .lb-sv-head > .lb-sv-title { font-size: 2.5rem; line-height: 1; }
	body .lb-sv-head > .lb-lead { margin: 0; font-size: .82rem; line-height: 1.4; text-align: right; max-width: 11em; }
	body .wp-block-columns.lb-chap { display: block; padding: 0; margin: 0 0 46px; }
	body .lb-chap > .wp-block-column { width: auto; }
	body .lb-media { aspect-ratio: auto; max-width: none; width: auto; margin: 0 20px; height: clamp(230px, 64vw, 280px); }
	body .lb-media > .lb-big {
		inset: 0 auto 0 0; width: 68%; height: 100%;
		border-radius: var(--wp--custom--radius-mobil--bild);
		box-shadow: 0 34px 50px -26px rgba(120, 84, 48, .24);
	}
	body .lb-media > .lb-small { top: 22px; right: 0; bottom: auto; width: 40%; border-radius: var(--wp--custom--radius-mobil--bild-klein); box-shadow: 0 22px 40px -8px rgba(90, 60, 30, .36), 0 4px 14px rgba(90, 60, 30, .16); }
	body .lb-chap--rev .lb-media > .lb-big { inset: 0 0 0 auto; }
	body .lb-chap--rev .lb-media > .lb-small { left: 0; right: auto; }
	body .lb-chap-text {
		position: relative; z-index: 1; margin: -52px 14px 0;
		border-radius: var(--wp--custom--radius-mobil--karte); padding: 20px 20px 4px;
		background: rgba(255, 253, 249, .94);
		border: 1px solid var(--wp--preset--color--glas-rand);
		-webkit-backdrop-filter: blur(18px) saturate(1.5); backdrop-filter: blur(18px) saturate(1.5);
		box-shadow: 0 30px 60px -26px rgba(120, 84, 48, .24), inset 0 1px 0 var(--wp--preset--color--glas-rand);
	}
	body .lb-chap-text > .lb-chap-title { font-size: 1.95rem; line-height: 1.05; }
	body .lb-chap-text > .lb-sub { font-size: .84rem; margin: .2rem 0 .5rem; }
	body .lb-chap-text > .lb-menu { background: none; border: 0; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; padding: 0; border-radius: 0; }
	body .lb-row {
		grid-template-columns: 1fr auto; gap: 0 10px; align-items: center;
		padding: 11px 0; min-height: 46px; box-sizing: border-box;
		border-bottom: 0; border-top: 1px solid var(--wp--preset--color--linie);
	}
	body .lb-row:has(.lb-desc) { grid-template-columns: 1fr auto auto; cursor: pointer; }
	body .lb-row > .lb-row-title { font-size: 1.16rem; }
	body .lb-row > .lb-price { font-size: 1.24rem; }
	body .lb-row > .lb-desc { display: none; grid-column: 1 / -1; font-size: .9rem; line-height: 1.6; padding: 4px 0 14px; max-width: 30em; }
	body .lb-row.is-open { padding-bottom: 0; }
	body .lb-row.is-open > .lb-desc { display: block; }
	body .lb-row > .lb-plus {
		display: block; position: relative; width: 22px; height: 22px; padding: 0; margin: 0;
		border-radius: 50%; border: 1px solid var(--wp--preset--color--linie); background: none; cursor: pointer;
		transition: transform .4s cubic-bezier(.2, .8, .2, 1), background .3s;
	}
	.lb-plus::before, .lb-plus::after {
		content: ""; position: absolute; left: 50%; top: 50%; width: 9px; height: 1px;
		background: var(--wp--preset--color--text); transform: translate(-50%, -50%);
	}
	.lb-plus::after { transform: translate(-50%, -50%) rotate(90deg); }
	body .lb-row.is-open > .lb-plus { transform: rotate(45deg); background: var(--wp--preset--color--akzent-hell); }

	/* Kontakt */
	body .lb-contact { padding: 30px 14px 0; }
	body .lb-contact .lb-wrap { padding-inline: 0; max-width: 560px; }
	body .lb-cbox {
		border-radius: var(--wp--custom--radius-mobil--kontakt); padding: 38px 20px 26px;
		box-shadow: 0 30px 60px -26px rgba(120, 84, 48, .24), inset 0 1px 0 var(--wp--preset--color--glas-rand);
	}
	body .lb-cbox > .lb-contact-title { font-size: 2rem; line-height: 1.1; }
	body .lb-cbox > .lb-lead { margin-top: .6rem; font-size: .92rem; }
	body .lb-cbox > .lb-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 1.4rem; }
	body .lb-btns > .wp-block-button { width: auto; margin: 0; }
	body .lb-btns > .wp-block-button:first-child { grid-column: 1 / -1; }
	body .lb-btns .wp-block-button__link {
		display: block; width: 100%; box-sizing: border-box; text-align: center;
		padding: 14px 16px; font-size: .95rem; letter-spacing: .04em; min-height: 48px;
		box-shadow: 0 18px 30px -16px rgba(120, 84, 48, .24);
	}
	body .lb-btns .wp-block-button__link:hover { transform: none; }
	body .lb-cbox > .lb-facts {
		margin-top: 1.6rem; padding-top: 1.2rem; border-top: 1px solid var(--wp--preset--color--linie);
		grid-template-columns: 1fr 1fr; gap: 14px 12px; text-align: left;
	}
	body .lb-facts > .lb-fact:first-child { grid-column: 1 / -1; }
	body .lb-fact > .lb-fact-title { font-size: 1.12rem; line-height: 1.3; margin-bottom: 0; }
	body .lb-fact-text, body .lb-fact-text a { font-size: .88rem; line-height: 1.5; }

	/* Fußzeile */
	body .lb-footer { padding: 26px 20px calc(96px + env(safe-area-inset-bottom, 0px)); font-size: .72rem; line-height: 1.7; }

	/* Schwebende Kontaktleiste */
	body .lb-dock {
		display: block; position: fixed; left: 50%; bottom: calc(14px + env(safe-area-inset-bottom, 0px));
		z-index: 50; margin: 0; padding: 6px; border-radius: 999px; box-sizing: border-box;
		width: min(calc(100% - 40px), 340px);
		transform: translate(-50%, 140%); opacity: 0;
		transition: transform .6s cubic-bezier(.2, .8, .2, 1), opacity .4s;
	}
	body .lb-dock.is-visible { transform: translate(-50%, 0); opacity: 1; }
	body .lb-dock-btns { display: flex; flex-wrap: nowrap; gap: 6px; margin: 0; }
	body .lb-dock-btns > .wp-block-button { flex: 1; margin: 0; }
	body .lb-dock-btns .wp-block-button__link {
		display: block; width: 100%; box-sizing: border-box; text-align: center;
		padding: 14px 10px; font-size: .95rem; letter-spacing: .04em; min-height: 48px; box-shadow: none;
	}
	body .lb-dock .lb-btn-ghost .wp-block-button__link { background: transparent; border: 0; -webkit-backdrop-filter: none; backdrop-filter: none; }

	/* Unterseiten */
	body .lb-topbar { padding: 20px 20px; }
	body .lb-topbar > .lb-toplogo { width: 110px; }
	body .lb-page { padding: 24px 22px 80px; }
}

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