/*
Theme Name: ABS-Netzwerk Nordwest
Description: Block-Theme für abs-nordwest.de (Full Site Editing).
Author: ABS-Netzwerk Nordwest
Version: 0.3.0
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: abs-nordwest
License: GPL-2.0-or-later
*/

/* Ergänzungen, die theme.json nicht abbildet */
:where(a, button, input, select, textarea, .wp-element-button):focus-visible { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 2px; }
.wp-site-blocks > * { margin-block-start: 0; }

/* Kopf */
.abs-topbar, .abs-topbar p, .abs-topbar .wp-block-navigation, .abs-topbar .wp-block-navigation-item__content { color: var(--wp--preset--color--white) !important; }
.abs-topbar p { margin: 0; }
.abs-topbar .wp-block-navigation-item__content:hover { text-decoration: underline; }
.abs-header { gap: 32px; }
.abs-logo img { display: block; height: 64px; width: auto; }
.abs-mainnav .wp-block-navigation-item__content { color: var(--wp--preset--color--text); }
.abs-mainnav .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--accent-text); text-decoration: underline; }
.abs-btn-accent .wp-block-button__link:hover { background-color: #236B1A !important; }

/* Hero */
.abs-hero { background: var(--wp--preset--color--surface); padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--50); }
.abs-hero__cols { gap: 48px; margin: 0; }
.abs-hero__text { display: flex; flex-direction: column; gap: 20px; }
.abs-hero__text > * { margin: 0 !important; }
.abs-kicker { font-size: 14px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--wp--preset--color--accent-text); }
.abs-hero__titel { font-size: var(--wp--preset--font-size--hero); line-height: 1.1; text-wrap: balance; }
.abs-lead { font-size: 18px; line-height: 1.6; color: var(--wp--preset--color--text-muted); text-wrap: pretty; }
.abs-hero__buttons { gap: 12px; }
.is-style-outline > .wp-block-button__link { background: transparent; color: var(--wp--preset--color--primary); border: 1.5px solid var(--wp--preset--color--primary); padding: 12.5px 22px; }
.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--white); }
.abs-hero__bild { margin: 0; }
.abs-hero__bild img { width: 100%; height: 340px; object-fit: cover; border-radius: 6px; display: block; }

/* Kacheln */
.abs-features { gap: 0 !important; margin: 0; border-bottom: 1px solid var(--wp--preset--color--line); }
.abs-features > .wp-block-column { padding: 32px; border-right: 1px solid var(--wp--preset--color--line); display: flex; flex-direction: column; gap: 10px; }
.abs-features > .wp-block-column:first-child { padding-left: var(--wp--preset--spacing--50); }
.abs-features > .wp-block-column:last-child { padding-right: var(--wp--preset--spacing--50); border-right: 0; }
.abs-features p { margin: 0; }
.abs-feature__titel { font-size: 18px; font-weight: 600; }
.abs-feature__titel::before { content: ""; display: block; width: 10px; height: 10px; border-radius: 50%; background: var(--wp--preset--color--accent); margin-bottom: 10px; }
.abs-feature__text { font-size: 15px; line-height: 1.5; color: #4A5361; }

/* Termine und Mitglied werden */
.abs-termine-cta { gap: 56px; margin: 0; padding: var(--wp--preset--spacing--50); }
.abs-termine-cta > .wp-block-column { display: flex; flex-direction: column; gap: 16px; }
.abs-termine-cta > .wp-block-column > * { margin: 0; }
.abs-h3 { font-size: var(--wp--preset--font-size--xl); margin: 0; }
.abs-more { margin: 0; font-size: 14px; font-weight: 500; }
.abs-termine { list-style: none; margin: 0; padding: 0; }
.abs-termine li { display: flex; gap: 20px; padding: 16px 0; border-top: 1px solid var(--wp--preset--color--line); }
.abs-termine li:last-child { border-bottom: 1px solid var(--wp--preset--color--line); }
.abs-termin__datum { width: 64px; flex: none; text-align: center; color: var(--wp--preset--color--primary); }
.abs-termin__datum b { display: block; font-size: 28px; line-height: 1; }
.abs-termin__datum abbr { font-size: 13px; font-weight: 600; text-decoration: none; }
.abs-termin__info { display: flex; flex-direction: column; gap: 4px; }
.abs-termin__info span { font-size: 14px; color: var(--wp--preset--color--meta); }
.abs-cta-box { border: 1px solid var(--wp--preset--color--line); border-radius: 6px; padding: 24px 28px; display: flex; flex-direction: column; gap: 14px; }
.abs-cta-box > * { margin: 0 !important; }
.abs-cta-box p { color: var(--wp--preset--color--text-muted); }
.abs-check { list-style: none; padding: 0; display: grid; gap: 6px; }
.abs-check li { padding-left: 22px; position: relative; }
.abs-check li::before { content: ""; position: absolute; left: 2px; top: .55em; width: 9px; height: 9px; border-radius: 50%; background: var(--wp--preset--color--accent); }

/* Fuß */
.abs-footer p { margin: 0; }
.abs-footer .wp-block-navigation-item__content { color: var(--wp--preset--color--footer-text); }

@media (max-width: 1024px) {
	.abs-features { flex-wrap: wrap !important; }
	.abs-features > .wp-block-column { flex-basis: 50% !important; padding: 28px var(--wp--preset--spacing--50) !important; border-bottom: 1px solid var(--wp--preset--color--line); }
	.abs-features > .wp-block-column:nth-child(2n) { border-right: 0; }
}
@media (max-width: 768px) {
	.abs-topbar__claim { display: none; }
	.abs-logo img { height: 48px; }
	.abs-header .wp-block-buttons { display: none; }
	.abs-hero__bild img { height: 220px; }
	.abs-features > .wp-block-column { flex-basis: 100% !important; border-right: 0; }
	.abs-termine-cta { gap: 40px; }
}

/* Termine aus dem Plugin */
.abs-termin__titel { font-weight: 600; color: var(--wp--preset--color--text); }
.abs-termin__titel:hover { color: var(--wp--preset--color--accent-text); }
.abs-termin__text { color: var(--wp--preset--color--text-muted) !important; font-size: 15px !important; }
.abs-termine--liste li { padding: 20px 0; }
.abs-termine-leer { color: var(--wp--preset--color--meta); }
.abs-kicker a { color: inherit; }
.abs-termin-details { display: grid; gap: 0; margin: 24px 0; border: 1px solid var(--wp--preset--color--line); border-radius: 6px; }
.abs-termin-details > div { display: flex; justify-content: space-between; gap: 16px; padding: 14px 18px; border-top: 1px solid var(--wp--preset--color--line); }
.abs-termin-details > div:first-child { border-top: 0; }
.abs-termin-details dt { color: var(--wp--preset--color--meta); }
.abs-termin-details dd { margin: 0; font-weight: 600; text-align: right; }
.abs-termin-vergangen { padding: 10px 14px; background: var(--wp--preset--color--surface); border-radius: 4px; }
.abs-platzhalter { color: var(--wp--preset--color--text-muted); font-size: 18px; }
