/*
Theme Name: DJK Retzstadt
Theme URI: https://www.djk-retzstadt.de
Author: DJK Retzstadt e. V.
Description: Block-Theme der DJK Retzstadt – Nachbau des bisherigen Typo3-Layouts (Schwarz/DJK-Rot, Oswald & Open Sans) mit News-Startseite, Abteilungsseiten mit Reitern, Sidebar und Sponsorenleiste.
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: djk-retzstadt
*/

/* ================= Grundlayout ================= */
html {
	background: #3a3b3c url("assets/images/hintergrund.jpg") center / cover fixed no-repeat;
}
body {
	background: transparent;
	min-height: 100vh;
}
.wp-site-blocks {
	max-width: var(--wp--style--global--wide-size);
	margin: 0 auto;
	padding: 0;
}
.wp-site-blocks > * {
	margin-block-start: 0;
}
::selection {
	background: var(--wp--preset--color--djk-rot);
	color: #fff;
}
hr.wp-block-separator,
.wp-block-separator {
	border: 0;
	height: 1px;
	width: 100%;
	max-width: none;
	background: linear-gradient(90deg, #000 0, #000 30%, #e1e1e1 30%, #e1e1e1);
	margin: 25px 0 30px;
	opacity: 1;
}

/* ================= Kopfbereich ================= */
.djk-header {
	background: rgba(255, 255, 255, 0.7);
	border-top: 10px solid #000;
}
.djk-header .wp-block-site-tagline,
.djk-header .djk-claim {
	position: relative;
	display: inline-block;
	margin: 0;
	padding: 10px 25px;
	background: var(--wp--preset--color--djk-rot);
	color: #fff;
	font-family: var(--wp--preset--font-family--oswald);
	font-size: clamp(1.25rem, 3vw, 1.875rem);
	text-transform: uppercase;
	line-height: 1.2;
}
.djk-header .wp-block-site-tagline::after,
.djk-header .djk-claim::after {
	content: "";
	position: absolute;
	top: 90%;
	left: 0;
	border: 10px solid transparent;
	border-top-color: var(--wp--preset--color--djk-rot);
	border-left-color: var(--wp--preset--color--djk-rot);
	pointer-events: none;
}
.djk-header .wp-block-site-logo img {
	height: 140px;
	width: auto;
}

/* ================= Hauptnavigation ================= */
.djk-nav {
	background: #000;
	border-bottom: 3px solid var(--wp--preset--color--djk-rot);
	font-family: var(--wp--preset--font-family--oswald);
	text-transform: uppercase;
}
.djk-nav .wp-block-navigation-item__content,
.djk-nav .wp-block-navigation-item__content:hover,
.djk-nav .wp-block-navigation-item__content:focus {
	color: #fff !important;
	text-decoration: none;
}
.djk-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	padding: 0 22px;
	line-height: 40px;
	position: relative;
	z-index: 0;
}
.djk-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::before {
	content: "";
	position: absolute;
	inset: auto 0 0 0;
	height: 0;
	background: var(--wp--preset--color--djk-rot);
	transition: height 0.2s linear;
	z-index: -1;
}
.djk-nav .wp-block-navigation-item:hover > .wp-block-navigation-item__content::before,
.djk-nav .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content::before,
.djk-nav .wp-block-navigation-item.current-menu-ancestor > .wp-block-navigation-item__content::before {
	height: 100%;
}
.djk-nav .wp-block-navigation__submenu-container {
	background: #000 !important;
	border: 0 !important;
	min-width: 15em !important;
}
.djk-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 6px 20px !important;
	line-height: 1.6;
}
.djk-nav .wp-block-navigation__submenu-container .wp-block-navigation-item:hover > .wp-block-navigation-item__content {
	background: var(--wp--preset--color--djk-rot);
}
.djk-nav .wp-block-navigation__submenu-icon {
	display: none;
}
.djk-nav .wp-block-navigation__responsive-container-open {
	color: #fff;
	padding: 10px 16px;
}
.djk-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: #000 !important;
	color: #fff !important;
	padding: 24px;
}
.djk-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	padding: 4px 0 !important;
	line-height: 1.6;
}
.djk-nav .is-menu-open .wp-block-navigation-item__content::before {
	display: none;
}
.djk-nav .is-menu-open .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--djk-rot) !important;
}

/* ================= Header-Visual ================= */
.djk-visual,
.djk-visual img {
	display: block;
	width: 100%;
	margin: 0 !important;
}

/* ================= Inhaltsbereich ================= */
.djk-main {
	background: #fff;
	padding: 30px;
}
.djk-pagetitle {
	background: #000;
	color: #fff !important;
	padding: 10px 30px;
	margin: 0 !important;
	font-size: clamp(1.4rem, 3vw, 1.75rem);
}
.djk-columns {
	gap: 30px;
}
.wp-block-post-content > * + * {
	margin-block-start: 1.2em;
}

/* ================= News ================= */
.djk-news-list > li {
	margin-bottom: 30px;
	padding-bottom: 30px;
	background: linear-gradient(90deg, #000 0, #000 30%, #e1e1e1 30%, #e1e1e1) bottom / 100% 1px no-repeat;
}
.djk-news-card .wp-block-post-title {
	background: var(--wp--preset--color--djk-rot);
	margin: 0;
	padding: 10px 15px;
	font-size: 1.375rem;
}
.djk-news-card .wp-block-post-title a {
	color: #fff;
}
.djk-news-card .wp-block-post-featured-image {
	margin: 0;
}
.djk-news-card .wp-block-post-featured-image img {
	width: 100%;
	display: block;
}
.djk-datebar {
	background: #000;
	color: #fff;
	text-transform: uppercase;
	line-height: 30px;
	padding: 0 15px;
	margin: 0 0 15px !important;
}
.wp-block-read-more,
.djk-more {
	color: var(--wp--preset--color--djk-rot);
	display: inline-block;
	margin-top: 8px;
}
.djk-teaser {
	font-weight: 600;
	font-size: 1.05em;
}
.djk-teaser p {
	margin: 0 0 0.6em;
}
.wp-block-query-pagination {
	font-family: var(--wp--preset--font-family--oswald);
	text-transform: uppercase;
	gap: 6px;
}
.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers {
	display: inline-block;
	padding: 4px 12px;
	background: #000;
	color: #fff;
}
.wp-block-query-pagination .page-numbers.current,
.wp-block-query-pagination a:hover {
	background: var(--wp--preset--color--djk-rot);
}

/* ================= Sidebar ================= */
.djk-sidebar .wp-block-image {
	margin: 0 0 1rem;
}
.djk-sidebar h3 {
	margin-top: 1.5rem;
}
.djk-accordion > li {
	margin: 0 0 7px;
}
.djk-accordion .wp-block-post-title {
	margin: 0;
	font-size: 1rem;
}
.djk-accordion .wp-block-post-title a,
.djk-accordion .djk-acc-toggle {
	display: block;
	background: #c4c4c4;
	color: #474747;
	padding: 5px 34px 5px 15px;
	position: relative;
	cursor: pointer;
}
.djk-accordion .djk-acc-toggle::after {
	content: "+";
	position: absolute;
	right: 12px;
	top: 3px;
	font-size: 1.2rem;
}
.djk-accordion .is-open .djk-acc-toggle {
	background: var(--wp--preset--color--djk-rot);
	color: #fff;
}
.djk-accordion .is-open .djk-acc-toggle::after {
	content: "–";
}
.djk-accordion .djk-acc-body {
	padding: 10px 15px;
}
.djk-js .djk-accordion li:not(.is-open) .djk-acc-body {
	display: none;
}

/* ================= Reiter (Abteilungsseiten) ================= */
.djk-tabs-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 3px;
	margin: 0 0 20px;
	padding: 0;
	list-style: none;
	border-bottom: 3px solid var(--wp--preset--color--djk-rot);
}
.djk-tabs-nav button {
	font-family: var(--wp--preset--font-family--oswald);
	text-transform: uppercase;
	font-size: 1rem;
	border: 0;
	background: #000;
	color: #fff;
	padding: 10px 20px;
	cursor: pointer;
}
.djk-tabs-nav button[aria-selected="true"],
.djk-tabs-nav button:hover {
	background: var(--wp--preset--color--djk-rot);
}
.djk-tabs.is-enhanced .djk-tab-title {
	display: none;
}
.djk-tabs.is-enhanced .djk-tab[hidden] {
	display: none;
}
.djk-tab + .djk-tab {
	margin-top: 2rem;
}
.djk-tabs.is-enhanced .djk-tab + .djk-tab {
	margin-top: 0;
}

/* ================= Kacheln (Übersichtsseiten) ================= */
.djk-tiles {
	gap: 30px !important;
}
.djk-tile {
	display: flex;
	flex-direction: column;
	text-align: center;
}
.djk-tile .wp-block-image {
	margin: 0;
	overflow: hidden;
	background: #3a3b3c;
	aspect-ratio: 3 / 2;
}
.djk-tile .wp-block-image a {
	display: block;
	height: 100%;
}
.djk-tile .wp-block-image img {
	width: 100%;
	height: 100% !important;
	object-fit: cover;
	transition: opacity 0.2s, transform 0.4s;
}
.djk-tile .wp-block-image a:hover img {
	opacity: 0.6;
	transform: scale(1.04);
}
.djk-tile p {
	margin: 0 !important;
	background: #ddd;
	padding: 10px;
	border-bottom: 3px solid transparent;
	font-weight: 600;
	color: #616161;
}
.djk-tile:hover p {
	border-bottom-color: var(--wp--preset--color--djk-rot);
}
.djk-tile p a {
	color: #616161;
}

/* ================= Galerie ================= */
.wp-block-gallery.has-nested-images figure.wp-block-image img {
	transition: opacity 0.2s;
}
.wp-block-gallery.has-nested-images figure.wp-block-image:hover img {
	opacity: 0.8;
}

/* ================= Sponsoren ================= */
.djk-sponsors-title {
	background: #000;
	color: #fff;
	padding: 10px 30px;
	margin: 0 !important;
	font-size: 1.375rem;
}
.djk-sponsors {
	background: rgba(255, 255, 255, 0.7);
	border-bottom: 3px solid var(--wp--preset--color--djk-rot);
	padding: 20px 30px;
	overflow: hidden;
}
.djk-sponsors .wp-block-gallery,
.djk-sponsors .djk-logos {
	display: flex !important;
	flex-wrap: nowrap !important;
	gap: 40px !important;
	align-items: center;
	width: max-content;
	margin: 0 !important;
}
.djk-sponsors .wp-block-image {
	flex: 0 0 auto !important;
	width: auto !important;
	margin: 0 !important;
}
.djk-sponsors .wp-block-image img {
	max-height: 110px !important;
	max-width: 160px !important;
	width: auto !important;
	height: auto !important;
	object-fit: contain !important;
}
.djk-js .djk-sponsors.is-running .djk-logos {
	animation: djk-marquee var(--djk-marquee-duration, 60s) linear infinite;
}
.djk-sponsors:hover .djk-logos {
	animation-play-state: paused !important;
}
@keyframes djk-marquee {
	to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
	.djk-js .djk-sponsors.is-running .djk-logos { animation: none; }
	.djk-sponsors .djk-logos { flex-wrap: wrap !important; width: auto; }
}

/* ================= Fußzeile ================= */
.djk-footer {
	background: #000;
	color: #fff;
	border-bottom: 5px solid var(--wp--preset--color--djk-rot);
	padding: 15px 30px;
}
.djk-footer a {
	color: #fff;
}
.djk-footer p {
	margin: 0;
}

/* ================= Embeds ================= */
.wp-block-html iframe {
	max-width: 100%;
}

/* ================= Mobil ================= */
@media (max-width: 781px) {
	.djk-main {
		padding: 20px 16px;
	}
	.djk-header .wp-block-site-logo img {
		height: 90px;
	}
	.djk-pagetitle,
	.djk-sponsors-title {
		padding: 10px 16px;
	}
	.djk-sponsors {
		padding: 16px;
	}
	.djk-footer {
		padding: 15px 16px;
		text-align: center;
	}
	.djk-footer .wp-block-group {
		justify-content: center !important;
	}
}
