/*
 * Holzapfel Jahresringe – Theme-Styles (Frontend und Editor).
 * Farben, Schriften und Maße kommen aus theme.json (--wp--preset--*, --wp--custom--*).
 * Ring-Farben (--ring-<slug>, .ring-<slug>) erzeugt functions.php aus inc/rings.json.
 */

/* ---------- Basis ---------- */
:root .wp-site-blocks > * {
	margin-block-start: 0;
	margin-block-end: 0;
}

body {
	-webkit-font-smoothing: antialiased;
	overflow-wrap: break-word;
}

img,
svg {
	max-width: 100%;
}

::selection {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
}

/* Sichtbarer Fokus */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
	border-radius: 4px;
}

/* Skip-Link */
.holzapfel-skip-link {
	position: absolute;
	top: 8px;
	left: 8px;
	z-index: 100000;
	padding: 12px 20px;
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--amber);
	color: var(--wp--preset--color--on-accent);
	font-weight: 600;
	text-decoration: none;
	transform: translateY(-200%);
}

.holzapfel-skip-link:focus {
	transform: none;
}

/* Bänder: volle Breite, Inhalt max. 1160 px */
.holzapfel-band {
	padding-inline: var(--wp--preset--spacing--30);
}

.holzapfel-section {
	padding-block: var(--wp--preset--spacing--70);
}

.holzapfel-band--surface {
	background: var(--wp--preset--color--surface);
}

.holzapfel-eyebrow {
	margin: 0 0 8px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--s);
	font-weight: 500;
	color: var(--wp--preset--color--accent-2);
}

.holzapfel-section-title {
	margin-top: 0;
	margin-bottom: var(--wp--preset--spacing--40);
}

/* ---------- Kopfzeile ---------- */
.holzapfel-header {
	padding-block: var(--wp--preset--spacing--30);
}

.holzapfel-header__inner {
	justify-content: space-between;
	align-items: center;
	gap: var(--wp--preset--spacing--20);
}

.holzapfel-brand {
	align-items: center;
	gap: 12px;
}

.holzapfel-brand .wp-block-image {
	flex: none;
	margin: 0;
}

.holzapfel-brand .wp-block-image img {
	display: block;
	border-radius: 0;
}

.holzapfel-brand .wp-block-site-title {
	margin: 0;
}

.holzapfel-header__menu {
	align-items: center;
	gap: 4px;
}

.holzapfel-nav .wp-block-navigation-item__content {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
}

.holzapfel-nav .wp-block-navigation__responsive-container-close,
.holzapfel-nav .wp-block-navigation__responsive-container-open {
	min-height: 44px;
	min-width: 44px;
	align-items: center;
	justify-content: center;
}

/* Kern blendet das Menü-Symbol ab 600 px aus – hier nur auf schmalen Bildschirmen anzeigen */
@media (max-width: 599px) {
	.holzapfel-nav .wp-block-navigation__responsive-container-open {
		display: inline-flex;
	}
}

.holzapfel-nav .wp-block-navigation__responsive-container-close {
	display: inline-flex;
}

.holzapfel-nav .wp-block-navigation-item__content {
	padding: 10px 14px;
}

.holzapfel-nav .wp-block-navigation-item__content:hover,
.holzapfel-nav .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--accent);
}

.holzapfel-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
}

.holzapfel-nav .is-menu-open .wp-block-navigation__container,
.holzapfel-nav.items-justified-right .is-menu-open .wp-block-navigation__responsive-container-content {
	gap: 4px;
	align-items: flex-start;
}

.holzapfel-nav .is-menu-open .wp-block-navigation-item__content {
	font-size: var(--wp--preset--font-size--xl);
}

/* Umschalter */
.holzapfel-mode-toggle {
	min-width: 44px;
	min-height: 44px;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--wp--preset--color--border-strong);
	border-radius: var(--wp--custom--radius--pill);
	background: transparent;
	color: var(--wp--preset--color--contrast);
	cursor: pointer;
}

.holzapfel-mode-toggle:hover {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
}

/* Dunkel (Standard): Sonne zeigen ("zu Hell wechseln"); Hell: Mond */
.holzapfel-mode-toggle__moon {
	display: none;
}

:root[data-theme="light"] .holzapfel-mode-toggle__sun {
	display: none;
}

:root[data-theme="light"] .holzapfel-mode-toggle__moon {
	display: block;
}

@media (prefers-color-scheme: light) {
	:root:not([data-theme]) .holzapfel-mode-toggle__sun {
		display: none;
	}

	:root:not([data-theme]) .holzapfel-mode-toggle__moon {
		display: block;
	}
}

/* ---------- Fußzeile ---------- */
.holzapfel-footer {
	border-top: 1px solid var(--wp--preset--color--border);
	padding-block: var(--wp--preset--spacing--40);
}

.holzapfel-footer__inner {
	justify-content: space-between;
	align-items: center;
	gap: var(--wp--preset--spacing--30);
}

.holzapfel-footer p {
	margin: 0;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--s);
	font-weight: 500;
	color: var(--wp--preset--color--muted);
}

.holzapfel-footer .wp-block-navigation {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--m);
	font-weight: 400;
}

.holzapfel-footer .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--wp--preset--color--accent);
	text-decoration: underline;
}

.holzapfel-footer .wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--accent-hover);
	text-decoration: none;
}

/* ---------- Hero ---------- */
.holzapfel-hero {
	padding-top: var(--wp--preset--spacing--50);
	padding-bottom: var(--wp--preset--spacing--70);
}

.holzapfel-hero__inner {
	align-items: center;
	gap: 48px;
}

.holzapfel-hero__text {
	flex: 1 1 460px;
	min-width: 0;
}

.holzapfel-hero__text .holzapfel-eyebrow {
	margin-bottom: 20px;
}

.holzapfel-hero__text h1 {
	margin: 0;
}

.holzapfel-hero__text h1 mark {
	background: none;
	color: var(--wp--preset--color--accent);
}

.holzapfel-hero__lead {
	margin: 28px 0 36px;
	max-width: 32em;
	font-size: var(--wp--preset--font-size--l);
	color: var(--wp--preset--color--muted);
}

.holzapfel-hero__visual {
	flex: 1 1 400px;
	min-width: 0;
	display: flex;
	justify-content: center;
}

.holzapfel-hero__visual .wp-block-holzapfel-baumscheibe {
	width: 100%;
	max-width: 460px;
}

/* Baumscheibe */
.holzapfel-baumscheibe {
	display: block;
	width: 100%;
	height: auto;
	overflow: visible;
}

.holzapfel-baumscheibe .disc {
	fill: var(--wp--preset--color--surface);
	stroke: var(--wp--preset--color--border-strong);
	stroke-width: 2;
}

.holzapfel-baumscheibe .ring {
	fill: none;
	stroke: var(--ring-color);
	stroke-width: 11;
	transform-box: fill-box;
	transform-origin: center;
}

.holzapfel-baumscheibe .apple {
	fill: var(--wp--preset--color--apple);
}

.holzapfel-baumscheibe .crack {
	fill: none;
	stroke: var(--wp--preset--color--border-strong);
	stroke-width: 2;
}

.holzapfel-baumscheibe .pill rect {
	fill: var(--wp--preset--color--base);
	stroke: var(--ring-color);
	stroke-width: 1.5;
}

.holzapfel-baumscheibe .pill text {
	fill: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--mono);
	font-size: 15px;
	font-weight: 500;
}

@media (prefers-reduced-motion: no-preference) {
	.holzapfel-baumscheibe .ring {
		animation: holzapfel-ring-in 0.7s cubic-bezier(0.2, 0.7, 0.2, 1) both;
		animation-delay: calc(var(--i, 0) * 0.12s + 0.1s);
	}

	@keyframes holzapfel-ring-in {
		from {
			opacity: 0;
			transform: scale(0.82);
		}

		to {
			opacity: 1;
			transform: scale(1);
		}
	}
}

/* ---------- Themenraster / Karten ---------- */
.holzapfel-themes-grid.is-layout-grid {
	gap: 16px;
}

.holzapfel-card {
	position: relative;
	gap: 10px;
	align-items: stretch;
	padding: 28px;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--card);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
}

.holzapfel-card > * {
	margin: 0;
}

/* Ring-Symbol (Motiv: assets/motifs/ring-icon.svg) als Maske in der Ringfarbe */
.holzapfel-card::before {
	content: "";
	display: block;
	flex: none;
	width: 40px;
	height: 40px;
	background: var(--ring-color);
	-webkit-mask: url("../motifs/ring-icon.svg") center / contain no-repeat;
	mask: url("../motifs/ring-icon.svg") center / contain no-repeat;
}

.holzapfel-card h3 {
	font-size: var(--wp--preset--font-size--xl);
}

.holzapfel-card h3 a {
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}

/* Ganze Karte klickbar */
.holzapfel-card h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

.holzapfel-card:hover,
.holzapfel-card:focus-within {
	border-color: var(--ring-color, var(--wp--preset--color--accent));
}

.holzapfel-card:focus-within {
	outline: 3px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
}

.holzapfel-card h3 a:focus-visible {
	outline: none;
}

.holzapfel-card__text {
	color: var(--wp--preset--color--muted);
}

.holzapfel-card__link {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 500;
	color: var(--ring-color);
}

@media (prefers-reduced-motion: no-preference) {
	.holzapfel-card {
		transition: border-color 0.2s ease, transform 0.2s ease;
	}

	.holzapfel-card:hover {
		transform: translateY(-2px);
	}
}

/* Stil "Karte" für Gruppen */
.wp-block-group.is-style-karte {
	padding: 28px;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--card);
	background: var(--wp--preset--color--surface);
}

/* ---------- Chronik ---------- */
.holzapfel-chronik__list,
.wp-block-list.is-style-chronik {
	list-style: none;
	margin: 0;
	padding: 0;
}

.holzapfel-chronik__list > .wp-block-post,
.wp-block-list.is-style-chronik > li {
	margin: 0;
	padding: 24px 0;
	border-top: 1px solid var(--wp--preset--color--border);
}

.holzapfel-chronik__list > .wp-block-post:last-child,
.wp-block-list.is-style-chronik > li:last-child {
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.holzapfel-chronik__item {
	gap: 8px 32px;
	align-items: baseline;
}

.holzapfel-chronik__date {
	flex: 0 0 120px;
	margin: 0;
}

.holzapfel-chronik__title {
	flex: 1 1 360px;
	margin: 0;
	font-size: var(--wp--preset--font-size--xxl);
	letter-spacing: -0.02em;
}

.holzapfel-chronik__title a {
	display: inline-block;
	padding-block: 4px;
}

/* Kategorie-Pills */
.holzapfel-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.wp-block-post-terms a,
.holzapfel-pill {
	display: inline-flex;
	align-items: center;
	min-height: 28px;
	padding: 2px 12px;
	border: 1px solid var(--ring-color, var(--wp--preset--color--accent));
	border-radius: var(--wp--custom--radius--pill);
	color: var(--ring-color, var(--wp--preset--color--accent));
	text-decoration: none;
	text-transform: lowercase;
}

.wp-block-post-terms a:hover,
.holzapfel-pill:hover {
	background: var(--ring-color, var(--wp--preset--color--accent));
	color: var(--wp--preset--color--base);
}

/* ---------- Beitragskarten (Raster mit Bild) ---------- */
.holzapfel-post-cards .wp-block-post {
	margin: 0;
}

.holzapfel-post-card {
	height: 100%;
	gap: 12px;
	overflow: hidden;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--card);
	background: var(--wp--preset--color--surface);
}

.holzapfel-post-card .wp-block-post-featured-image {
	margin: 0;
}

.holzapfel-post-card .wp-block-post-featured-image img {
	display: block;
	width: 100%;
	border-radius: 0;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

.holzapfel-post-card__body {
	padding: 4px 28px 28px;
	gap: 10px;
}

.holzapfel-post-card__body > * {
	margin: 0;
}

.holzapfel-post-card__body h3 {
	font-size: var(--wp--preset--font-size--xl);
}

.holzapfel-post-card .wp-block-post-excerpt {
	color: var(--wp--preset--color--muted);
}

/* ---------- Archiv-Kopf (Ring-Farbe) ---------- */
.holzapfel-archive-head {
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.holzapfel-archive-head .holzapfel-eyebrow {
	color: var(--ring-color, var(--wp--preset--color--accent-2));
	display: flex;
	align-items: center;
	gap: 10px;
}

.holzapfel-archive-head .holzapfel-eyebrow::before {
	content: "";
	flex: none;
	width: 14px;
	height: 14px;
	border: 4px solid var(--ring-color, var(--wp--preset--color--accent-2));
	border-radius: 50%;
}

.holzapfel-archive-head h1 {
	margin: 0;
	font-size: clamp(40px, 5vw, 64px);
}

.holzapfel-archive-head .wp-block-term-description {
	margin-top: 20px;
	font-size: var(--wp--preset--font-size--l);
	color: var(--wp--preset--color--muted);
}

.holzapfel-archive-head .wp-block-term-description p {
	max-width: 32em;
	margin: 0;
}

.holzapfel-pagination {
	margin-top: var(--wp--preset--spacing--40);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--s);
	font-weight: 500;
	gap: 16px;
}

.holzapfel-pagination a,
.holzapfel-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	min-width: 44px;
	justify-content: center;
}

/* ---------- Einzelbeitrag ---------- */
.holzapfel-single__meta {
	align-items: center;
	gap: 12px 20px;
	margin-bottom: 20px;
}

.holzapfel-single__meta > * {
	margin: 0;
}

.holzapfel-single__title {
	margin-top: 0;
	margin-bottom: var(--wp--preset--spacing--40);
	font-size: clamp(36px, 5vw, 60px);
	line-height: 1.05;
	letter-spacing: -0.03em;
}

.holzapfel-single .wp-block-post-featured-image {
	margin-bottom: var(--wp--preset--spacing--40);
}

.holzapfel-single .wp-block-post-featured-image img {
	border-radius: var(--wp--custom--radius--card);
}

.wp-block-post-content > * + * {
	margin-block-start: 1.4em;
}

.wp-block-post-content h2 {
	margin-top: 2em;
	font-size: clamp(28px, 4vw, 36px);
}

.wp-block-post-content h3 {
	margin-top: 1.8em;
}

.wp-block-post-content :is(h2, h3, h4) {
	margin-bottom: 0.5em;
}

.wp-block-post-content :where(img, figure, .wp-block-image, .wp-block-gallery, .wp-block-embed, .wp-block-video, .wp-block-table) {
	margin-block: 2.2em;
}

.wp-block-post-content figcaption,
.wp-block-image figcaption {
	margin-top: 10px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--muted);
	text-align: left;
}

.wp-block-quote {
	margin-inline: 0;
}

.wp-block-quote cite {
	display: block;
	margin-top: 10px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--xs);
	font-style: normal;
	color: var(--wp--preset--color--muted);
}

:not(pre) > code {
	padding: 2px 6px;
	border-radius: 6px;
	background: var(--wp--preset--color--surface);
	font-family: var(--wp--preset--font-family--mono);
	font-size: 0.88em;
	font-weight: 500;
}

pre.wp-block-code {
	overflow-x: auto;
}

pre.wp-block-code code {
	font-family: inherit;
	background: none;
	padding: 0;
}

.wp-block-table table {
	border-collapse: collapse;
}

.wp-block-table :is(th, td) {
	padding: 10px 14px;
	border: 1px solid var(--wp--preset--color--border);
	text-align: left;
}

.wp-block-table thead {
	border-bottom: 0;
}

.wp-block-table th {
	background: var(--wp--preset--color--surface);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--s);
	font-weight: 500;
}

.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
	background: var(--wp--preset--color--surface);
}

.wp-block-separator {
	border-color: var(--wp--preset--color--border);
}

.holzapfel-post-nav {
	margin-top: var(--wp--preset--spacing--50);
	padding-top: var(--wp--preset--spacing--30);
	border-top: 1px solid var(--wp--preset--color--border);
	justify-content: space-between;
	gap: 16px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--s);
}

.holzapfel-post-nav > * {
	margin: 0;
}

.holzapfel-post-nav a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
}

/* ---------- Buttons ---------- */
.wp-block-button .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
}

.wp-block-button.is-style-outline > .wp-block-button__link {
	border: 1px solid var(--wp--preset--color--border-strong);
	background: transparent;
	color: var(--wp--preset--color--contrast);
	padding: 14px 24px;
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover,
.wp-block-button.is-style-outline > .wp-block-button__link:focus {
	border-color: var(--wp--preset--color--accent);
	background: transparent;
	color: var(--wp--preset--color--accent);
}

/* ---------- Suche, Formulare, Kommentare ---------- */
.wp-block-search__input {
	min-height: 44px;
	padding: 8px 18px;
	border: 1px solid var(--wp--preset--color--border-strong);
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font: inherit;
}

.wp-block-search .wp-block-search__button {
	min-height: 44px;
	margin-left: 8px;
	padding: 8px 22px;
	border: 0;
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--amber);
	color: var(--wp--preset--color--on-accent);
	font: inherit;
	font-weight: 600;
}

.wp-block-comments {
	margin-top: var(--wp--preset--spacing--60);
}

.wp-block-comment-template {
	padding: 0;
	list-style: none;
}

.wp-block-comment-template > li {
	padding: 20px 0;
	border-top: 1px solid var(--wp--preset--color--border);
}

.wp-block-post-comments-form input:not([type="submit"]),
.wp-block-post-comments-form textarea {
	width: 100%;
	min-height: 44px;
	padding: 8px 14px;
	border: 1px solid var(--wp--preset--color--border-strong);
	border-radius: 12px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font: inherit;
}

.wp-block-post-comments-form input[type="submit"] {
	min-height: 44px;
	padding: 10px 24px;
	border: 0;
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--amber);
	color: var(--wp--preset--color--on-accent);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}

/* ---------- 404 / Leer ---------- */
.holzapfel-notfound {
	padding-block: var(--wp--preset--spacing--70);
}

.holzapfel-notfound h1 {
	margin-top: 0;
}

/* ---------- Bewegung reduzieren ---------- */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

/* ---------- Schmale Bildschirme ---------- */
@media (max-width: 600px) {
	.holzapfel-section {
		padding-block: var(--wp--preset--spacing--60);
	}

	.holzapfel-card {
		padding: 22px;
	}

	.holzapfel-chronik__date {
		flex-basis: 100%;
	}
}

/* Hauptbereich: Bänder liegen lückenlos untereinander */
:root main.wp-block-group > .holzapfel-band {
	margin-block: 0;
}
