/*
Theme Name:        Gartenfreunde Freiburg-Nord
Theme URI:         https://www.gartenfreunde-freiburg.de/
Description:       Childtheme von Twenty Twenty-Five für den Verein der Gartenfreunde Freiburg-Nord e.V. – Header mit Bienenbild, automatischer Startseiten-Slider (reines CSS), Seitenleiste mit Bewerberstatus, Terminen, Kategorien und Newsletter.
Author:            Daniel Mader
Template:          twentytwentyfive
Version:           2.1.1
Requires at least: 6.7
Tested up to:      7.1
Requires PHP:      7.4
License:           GNU General Public License v2 or later
License URI:       http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:       gartenfreunde
*/

/* Farben kommen aus theme.json (Vereinspalette). Kurzformen für diese Datei: */
:root {
	--gfn-akzent: var(--wp--preset--color--accent-1);
	--gfn-akzent-dunkel: var(--wp--preset--color--accent-2);
	--gfn-dunkel: var(--wp--preset--color--accent-3);
	--gfn-gedaempft: var(--wp--preset--color--accent-4);
	--gfn-flaeche: var(--wp--preset--color--accent-5);
	--gfn-rahmen: var(--wp--preset--color--accent-6);
	--gfn-rot: var(--wp--preset--color--rot);
}

/* ==========================================================
   Header: Bienenbild mit Logo und Vereinsname
   ========================================================== */
.gfn-header-band {
	background: var(--gfn-dunkel) url("assets/images/header-biene.webp") 72% 45% / cover no-repeat;
	padding-top: 1.75rem;
	padding-bottom: 1.75rem;
	min-height: 200px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.gfn-branding { gap: 1.5rem; }
.gfn-logo { flex: 0 0 auto; margin: 0; }
.gfn-logo img {
	aspect-ratio: 1;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 2px 10px rgb(0 0 0 / .25);
}
.gfn-site-name { gap: .25rem; }
.gfn-header-band .wp-block-site-title,
.gfn-header-band .wp-block-site-title a,
.gfn-header-band .wp-block-site-tagline {
	color: #fff;
	text-decoration: none;
	text-shadow: 0 1px 3px rgb(0 0 0 / .55);
	margin: 0;
}
.gfn-header-band .wp-block-site-title { font-size: clamp(1.3rem, 2.6vw, 2rem); font-weight: 700; line-height: 1.2; }
.gfn-header-band .wp-block-site-tagline { font-size: clamp(.9rem, 1.4vw, 1.1rem); }
@media (max-width: 600px) {
	.gfn-header-band { min-height: 140px; padding-top: 1rem; padding-bottom: 1rem; background-position: 80% 45%; }
	.gfn-logo img { width: 72px !important; height: 72px !important; }
	.gfn-branding { gap: .9rem; }
	.gfn-header-band .wp-block-site-title { font-size: 1.15rem; }
	.gfn-header-band .wp-block-site-tagline { font-size: .85rem; }
	/* Navigationsleiste kompakter */
	.gfn-navbar .alignwide { gap: .4rem 1rem; }
	.gfn-contact { font-size: .8rem; }
	.gfn-btn-antrag .wp-block-button__link { font-size: .8rem; padding: .45rem .9rem; }
	/* Slider-Buttons kleiner, damit beide sichtbar bleiben */
	.gfn-slide .wp-block-button__link { padding: .7rem 1.4rem; font-size: 1rem; }
	.gfn-slide .wp-block-buttons { gap: .75rem; }
}

/* ==========================================================
   Navigationsleiste
   ========================================================== */
.gfn-navbar {
	background: var(--gfn-dunkel);
	color: #fff;
	padding-top: .6rem;
	padding-bottom: .6rem;
}
.gfn-navbar a,
.gfn-navbar .wp-block-navigation-item__content,
.gfn-navbar .wp-block-navigation__responsive-container-open,
.gfn-navbar .wp-block-search__button { color: #fff; }
.gfn-navbar a:hover,
.gfn-navbar .wp-block-navigation-item__content:hover { color: #DDEBDD; }
.gfn-navbar .wp-block-navigation { gap: 1.5rem; font-size: 1rem; }
.gfn-search .wp-block-search__button {
	background: transparent;
	border: 0;
	padding: .4rem;
}
.gfn-search .wp-block-search__button svg { fill: currentColor; }
.gfn-contact { margin: 0; font-size: .875rem; line-height: 1.4; }
.gfn-contact a { text-decoration: none; }
.gfn-btn-antrag .wp-block-button__link {
	background: var(--gfn-rot);
	color: #fff;
	font-size: .85rem;
	padding: .55rem 1rem;
}
.gfn-btn-antrag .wp-block-button__link:hover { background: #A51F1F; color: #fff; }

/* ==========================================================
   Startseiten-Slider (reines CSS, kein JavaScript)
   4 Folien × 7 s = 28 s pro Durchlauf. Bilder hier austauschen.
   ========================================================== */
.gfn-slider {
	display: grid;
	position: relative;
	overflow: hidden;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	background: var(--gfn-dunkel);
}
.gfn-slide {
	grid-area: 1 / 1;
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;
	min-height: min(70vh, 560px);
	padding: 3rem 1.5rem;
	margin: 0 !important;
	background-size: cover;
	background-position: center;
	opacity: 0;
	visibility: hidden;
	animation: gfn-slide 28s infinite;
	animation-delay: calc(var(--gfn-i) * 7s - 1s);
}
.gfn-slide::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgb(18 40 24 / .30), rgb(18 40 24 / .60));
}
.gfn-slide > * { position: relative; z-index: 1; }
.gfn-slide h1,
.gfn-slide h2 {
	color: #fff;
	font-size: clamp(2rem, 4.5vw, 3.4rem);
	line-height: 1.15;
	margin: 0 0 .75rem;
	text-shadow: 0 2px 8px rgb(0 0 0 / .45);
}
.gfn-slide p {
	color: #fff;
	font-size: clamp(1.05rem, 1.8vw, 1.35rem);
	margin: 0 0 1.75rem;
	text-shadow: 0 1px 4px rgb(0 0 0 / .5);
}
.gfn-slide .is-style-outline .wp-block-button__link {
	color: #fff;
	border: 2px solid #fff;
	background: transparent;
}
.gfn-slide .is-style-outline .wp-block-button__link:hover { background: rgb(255 255 255 / .15); }

.gfn-slide-1 { --gfn-i: 0; background-image: url("assets/images/slide-1-cosmea.webp"); background-position: 60% 60%; }
.gfn-slide-2 { --gfn-i: 1; background-image: url("assets/images/slide-2-garten.webp"); background-position: 50% 60%; }
.gfn-slide-3 { --gfn-i: 2; background-image: url("assets/images/slide-3-hoefle.webp"); background-position: 55% 55%; }
.gfn-slide-4 { --gfn-i: 3; background-image: url("assets/images/slide-4-rittersporn.webp"); background-position: 45% 50%; }

@keyframes gfn-slide {
	0%   { opacity: 0; visibility: visible; }
	3%   { opacity: 1; }
	25%  { opacity: 1; }
	28%  { opacity: 0; visibility: hidden; }
	100% { opacity: 0; visibility: hidden; }
}
/* Wer im Betriebssystem „Bewegung reduzieren“ gewählt hat, sieht nur die erste Folie. */
@media (prefers-reduced-motion: reduce) {
	.gfn-slide { animation: none; }
	.gfn-slide-1 { opacity: 1; visibility: visible; }
}
@media (max-width: 600px) {
	.gfn-slide { min-height: 420px; padding: 2rem 1rem; }
}
/* Im Editor alle Folien untereinander zeigen, damit sie bearbeitet werden können. */
.editor-styles-wrapper .gfn-slider { display: block; }
.editor-styles-wrapper .gfn-slide { animation: none; opacity: 1; visibility: visible; min-height: 320px; }

/* ==========================================================
   Inhalt und Seitenleiste
   ========================================================== */
.gfn-main { padding-top: var(--wp--preset--spacing--50); padding-bottom: var(--wp--preset--spacing--60); }
.gfn-layout { gap: clamp(2rem, 4vw, 4rem); }
.gfn-content-col > .wp-block-post-title { margin-top: 0; }

.gfn-meta {
	gap: .5rem 1rem;
	font-size: .8rem;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--gfn-gedaempft);
}
.gfn-meta a { color: var(--gfn-gedaempft); text-decoration: none; }
.gfn-meta a:hover { color: var(--gfn-akzent); }

/* Beitragsliste */
.gfn-post {
	padding-top: 1.75rem;
	padding-bottom: 1.75rem;
	border-bottom: 1px solid var(--gfn-rahmen);
	margin-bottom: 0 !important;
	gap: 2rem;
}
.gfn-post .wp-block-post-title { font-size: clamp(1.35rem, 2.4vw, 1.75rem); margin: .35rem 0 .6rem; line-height: 1.25; }
.gfn-post .wp-block-post-title a { text-decoration: none; color: var(--wp--preset--color--ueberschriften); }
.gfn-post .wp-block-post-title a:hover { color: var(--gfn-akzent); }
.gfn-post .wp-block-post-excerpt { font-size: 1rem; }
.gfn-post .wp-block-post-featured-image img { border-radius: 6px; }
.gfn-posts .wp-block-query-pagination { margin-top: 2rem; gap: .5rem; }
.gfn-posts .wp-block-query-pagination-numbers .page-numbers { display: inline-block; padding: .2rem .55rem; }
.gfn-posts .wp-block-query-pagination-numbers .current { background: var(--gfn-akzent); color: #fff; border-radius: 4px; }

.gfn-post-nav { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--gfn-rahmen); font-size: .95rem; }
.gfn-tags { margin-top: 2rem; font-size: .9rem; color: var(--gfn-gedaempft); }

/* Seitenleiste */
.gfn-sidebar > * + * { margin-top: 2.5rem; }
.gfn-widget-title {
	font-size: .9rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	padding-bottom: .5rem;
	margin-bottom: .75rem;
	border-bottom: 2px solid var(--gfn-akzent);
}
.gfn-categories { list-style: none; padding-left: 0; margin: 0; }
.gfn-categories li { padding: .3rem 0; border-bottom: 1px solid var(--gfn-rahmen); }
.gfn-categories a { text-decoration: none; }

/* Statusbox Bewerberliste (Muster „Status Bewerberliste“, Shortcode [gfn_status]) */
.gfn-status {
	border-left: 4px solid var(--gfn-akzent);
	background: var(--gfn-flaeche);
	padding: 1.25rem 1.25rem 1.5rem;
}
.gfn-status h3 { margin-top: 0; font-size: 1.2rem; font-weight: 700; }
.gfn-status ul { list-style: none; padding-left: 0; margin: .5rem 0 .75rem; }
.gfn-status p { font-size: .875rem; color: var(--gfn-gedaempft); }
.gfn-status .wp-block-buttons { display: flex; flex-wrap: wrap; gap: .75rem; }
.gfn-status .wp-block-button { flex: 1 1 12rem; margin: 0; }
.gfn-status .wp-block-button__link { display: block; width: 100%; box-sizing: border-box; text-align: center; font-size: .9rem; }
.gfn-status .wp-block-button:not(.is-style-outline) .wp-block-button__link { border: 2px solid transparent; }

/* Terminliste (Shortcode [gfn_termine]) */
.gfn-termine { list-style: none; padding: 0; margin: 0; }
.gfn-termin {
	display: grid;
	grid-template-columns: 3.25rem 1fr;
	gap: .75rem;
	align-items: start;
	padding: .65rem 0;
	border-bottom: 1px solid var(--gfn-rahmen);
}
.gfn-termin-datum { display: flex; flex-direction: column; align-items: center; line-height: 1.1; }
.gfn-termin-monat { font-size: .7rem; font-weight: 600; text-transform: uppercase; color: var(--gfn-gedaempft); }
.gfn-termin-tag { font-size: 1.5rem; font-weight: 700; color: var(--wp--preset--color--ueberschriften); }
.gfn-termin-info { display: flex; flex-direction: column; font-size: .95rem; line-height: 1.35; }
.gfn-termin-zeit { font-size: .8rem; color: var(--gfn-gedaempft); }
.gfn-termin-info a { text-decoration: none; font-weight: 600; }
.gfn-termine-mehr { margin-top: .75rem; font-size: .9rem; }

/* MailPoet-Formular: Theme-Schrift statt MailPoet-Serifenschrift */
.mailpoet_form input,
.mailpoet_form input::placeholder,
.mailpoet_form textarea,
.mailpoet_form select,
.mailpoet_form button { font-family: inherit !important; }
/* MailPoet-Button in Vereinsfarbe statt MailPoet-Blau */
.mailpoet_form .mailpoet_submit {
	background: var(--gfn-akzent) !important;
	border-color: var(--gfn-akzent) !important;
	color: #fff !important;
}
.mailpoet_form .mailpoet_submit:hover { background: var(--gfn-akzent-dunkel) !important; border-color: var(--gfn-akzent-dunkel) !important; }

/* ==========================================================
   Footer
   ========================================================== */
.gfn-footer {
	background: var(--gfn-flaeche);
	border-top: 1px solid var(--gfn-rahmen);
	padding-top: 1.5rem;
	padding-bottom: 1.5rem;
	font-size: .9rem;
	color: var(--gfn-gedaempft);
}
.gfn-footer p { margin: 0; }
.gfn-footer a { color: var(--gfn-gedaempft); }
.gfn-footer a:hover { color: var(--gfn-akzent); }
