/*
Theme Name: Landoria
Theme URI: https://landoria.de
Author: Landoria e. V.
Description: Ruhiges, würdiges Block-Theme für Landoria e. V. – Lebensbaum-Logo, Salbeigrün, Waldgrün und Gold, Schrift Lora (lokal eingebunden, ohne Google-Server).
Version: 1.2
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: landoria
*/

/* ---------- Grundlagen ---------- */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
:where(p, li) { text-wrap: pretty; }
:where(h1, h2, h3) { text-wrap: balance; }
a:focus-visible, button:focus-visible, .wp-element-button:focus-visible, summary:focus-visible {
	outline: 3px solid var(--wp--preset--color--gold); outline-offset: 3px; border-radius: 4px;
}
.screen-reader-text:not(:focus) { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* ---------- Kopf ---------- */
.lan-kopf { border-bottom: 1px solid var(--wp--preset--color--linie); background: var(--wp--preset--color--papier); }
.lan-kopf__innen { gap: 1.5rem; }
.lan-logo { display: block; line-height: 0; }
.lan-logo img { height: 56px; width: auto; }
.lan-kopf .wp-block-navigation { font-size: 1.0625rem; }
.lan-kopf .wp-block-navigation a { text-decoration: none; padding: .35rem 0; border-bottom: 2px solid transparent; }
.lan-kopf .wp-block-navigation a:hover { border-bottom-color: var(--wp--preset--color--salbei); }
.lan-kopf .wp-block-navigation-item.current-menu-item > a,
.lan-kopf .wp-block-navigation a[aria-current="page"] { border-bottom-color: var(--wp--preset--color--gold); }
@media (max-width: 600px) { .lan-logo img { height: 44px; } }

/* ---------- Abschnitte ---------- */
.lan-hell { background: var(--wp--preset--color--hell); }
.lan-dunkel { background: var(--wp--preset--color--waldgruen); color: var(--wp--preset--color--hell); }
.lan-dunkel :where(h1, h2, h3, h4, a:not(.wp-element-button)) { color: var(--wp--preset--color--hell); }
.lan-dunkel .wp-element-button { background: var(--wp--preset--color--hell); color: var(--wp--preset--color--waldgruen); }
.lan-dunkel .is-style-outline .wp-element-button { background: transparent; color: var(--wp--preset--color--hell); border-color: var(--wp--preset--color--hell); }

.lan-kicker { font-size: .8125rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 600; color: var(--wp--preset--color--salbei-dunkel); margin-bottom: .5rem; }
.lan-dunkel .lan-kicker { color: #C9D3CA; }
.lan-lead { font-size: clamp(1.125rem, 1rem + .5vw, 1.3125rem); line-height: 1.6; }

/* Startbereich mit großem, leisem Baum */
.lan-hero { position: relative; overflow: hidden; }
.lan-hero::after {
	content: ""; position: absolute; right: -6rem; bottom: -6rem; width: 28rem; height: 28rem; pointer-events: none;
	background: url("assets/baum-zart.svg") no-repeat center / contain; opacity: .9;
}
.lan-hero > * { position: relative; z-index: 1; }
@media (max-width: 781px) { .lan-hero::after { width: 16rem; height: 16rem; right: -4rem; bottom: -5rem; opacity: .5; } }

/* Karten */
.lan-karte {
	background: var(--wp--preset--color--papier); border: 1px solid var(--wp--preset--color--linie);
	border-radius: 14px; padding: 1.75rem 1.75rem 1.5rem; height: 100%; box-sizing: border-box;
}
.lan-karte h3 { margin-top: 0; }
.lan-karte p:last-child { margin-bottom: 0; }
.lan-karte .lan-mehr { margin-top: 1rem; }
.lan-mehr a { font-weight: 600; text-decoration: none; border-bottom: 1px solid var(--wp--preset--color--gold); }
.lan-mehr a::after { content: " →"; }

.lan-klein { font-size: .9375rem; color: var(--wp--preset--color--salbei-dunkel); }

/* Hinweiskasten */
.lan-hinweis {
	border-left: 3px solid var(--wp--preset--color--gold); background: var(--wp--preset--color--hell);
	padding: 1rem 1.25rem; border-radius: 0 10px 10px 0;
}
.lan-hinweis p { margin: 0; }

/* Ratgeber-Liste */
.lan-liste { list-style: none; padding-left: 0; }
.lan-liste li { border-bottom: 1px solid var(--wp--preset--color--linie); padding: .9rem 0; }
.lan-liste li:last-child { border-bottom: 0; }
.lan-liste a { font-family: var(--wp--preset--font-family--lora); font-size: 1.25rem; text-decoration: none; }
.lan-liste a:hover { text-decoration: underline; text-decoration-color: var(--wp--preset--color--gold); }
.lan-liste span { display: block; color: var(--wp--preset--color--salbei-dunkel); font-size: .9375rem; margin-top: .2rem; }

/* Zitat / Geschichte */
.lan-geschichte { font-family: var(--wp--preset--font-family--lora); font-size: clamp(1.25rem, 1.1rem + .6vw, 1.5rem); line-height: 1.55; font-style: italic; }

/* Formulare (Kontaktformular 7, GiveWP) */
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 textarea {
	width: 100%; box-sizing: border-box; padding: .75rem .9rem; font: inherit; color: inherit;
	border: 1px solid #A9B5AB; border-radius: 8px; background: #fff; margin-top: .35rem;
}
.wpcf7 label { display: block; font-weight: 600; margin-bottom: 1rem; }
.wpcf7 input[type="submit"] {
	background: var(--wp--preset--color--waldgruen); color: #fff; border: 0; border-radius: 999px;
	padding: .85rem 1.75rem; font: inherit; font-weight: 600; cursor: pointer; min-height: 44px;
}
.wpcf7 input[type="submit"]:hover { background: var(--wp--preset--color--salbei-dunkel); }

/* Neueste Beiträge */
.wp-block-latest-posts.lan-beitraege { padding-left: 0; }
.wp-block-latest-posts.lan-beitraege li { border-bottom: 1px solid var(--wp--preset--color--linie); padding: .9rem 0; }
.wp-block-latest-posts.lan-beitraege a { font-family: var(--wp--preset--font-family--lora); font-size: 1.1875rem; text-decoration: none; }
.wp-block-latest-posts__post-date { color: var(--wp--preset--color--salbei-dunkel); font-size: .875rem; }

/* ---------- Fuß ---------- */
.lan-fuss { font-size: .9375rem; }
.lan-fuss a { text-decoration: none; }
.lan-fuss a:hover { text-decoration: underline; }
.lan-fuss ul { list-style: none; padding: 0; margin: 0; }
.lan-fuss li { margin: .35rem 0; }
.lan-fuss__klein { font-size: .8125rem; color: #C9D3CA; margin: 0; }
.lan-fuss__unten { border-top: 1px solid #3E5045; margin-top: var(--wp--preset--spacing--40); padding-top: 1.25rem; }
/* Partner im Fuß (Karten wie auf amthero.de) */
.lan-projekte { margin-top: var(--wp--preset--spacing--50); }
.lan-projekte__raster { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: 1rem; margin-top: .75rem; }
.lan-fuss a.lan-projekt {
	display: flex; gap: 1.1rem; align-items: center; padding: 1.1rem 1.25rem; border: 1px solid #3E5045; border-radius: 12px;
	background: rgba(255,255,255,.03); color: #fff; text-decoration: none; transition: border-color .2s, background .2s;
}
.lan-fuss a.lan-projekt:hover, .lan-fuss a.lan-projekt:focus-visible { border-color: var(--wp--preset--color--gold); background: rgba(255,255,255,.06); text-decoration: none; }
.lan-projekt__logo { flex: 0 0 64px; width: 64px; height: 64px; display: flex; align-items: center; justify-content: center; border-radius: 10px; overflow: hidden; }
.lan-projekt__logo--hell { background: #fff; }
.lan-projekt__logo img { width: 100%; height: 100%; object-fit: contain; display: block; }
.lan-projekt__text { display: flex; flex-direction: column; gap: .2rem; line-height: 1.45; }
.lan-projekt__text strong { font-size: 1.0625rem; }
.lan-projekt__text span { color: #DCE3DC; }
.lan-projekt__text .lan-projekt__adresse { color: #B9C7BC; font-size: .875rem; }

/* Fotos */
.wp-block-image.lan-bild img { border-radius: 14px; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; object-position: center 35%; }
.lan-hero--bild .wp-block-image.lan-bild img { aspect-ratio: 4 / 3; }
.wp-block-image.lan-bild { margin-block: var(--wp--preset--spacing--40); }
.lan-hero--bild::after { display: none; }
.lan-hero--bild .wp-block-image.lan-bild { margin: 0; }
.lan-hero--bild .wp-block-columns { align-items: center; gap: var(--wp--preset--spacing--50); }

/* Vollbreite Abschnitte ohne Lücke aneinander */
.wp-block-post-content > .alignfull { margin-block-start: 0; margin-block-end: 0; }
main.wp-block-group:has(> .wp-block-post-content > .alignfull:first-child) { padding-top: 0; }
