/* VGW Website – Ergänzungen zu theme.json */

/* Kopf */
.vgw-topbar a { color: inherit; text-decoration: none; }
.vgw-topbar a:hover { text-decoration: underline; }
.vgw-topbar p { margin: 0; }
.vgw-header { border-bottom: 1px solid var(--wp--preset--color--linie); }
.vgw-header .wp-block-navigation a { color: var(--wp--preset--color--schwarz); text-decoration: none; }
.vgw-header .wp-block-navigation a:hover,
.vgw-header .wp-block-navigation .current-menu-item > a { color: var(--wp--preset--color--vgw-rot); }
.vgw-header .wp-block-navigation__submenu-container { border: 0 !important; box-shadow: 0 8px 24px rgba(0, 0, 0, .12); padding: .4rem 0; }
.vgw-header .wp-block-navigation__submenu-container a { padding: .35rem 1.1rem !important; }

/* Seitentitel mit rotem Strich wie bisher */
.vgw-seitentitel::after,
.vgw-hero__titel::after {
	content: "";
	display: block;
	width: 3.5rem;
	height: 4px;
	margin-top: .8rem;
	background: var(--wp--preset--color--vgw-rot);
}

/* Startseite */
.vgw-hero__titel { color: #fff; margin-bottom: .5rem; }
.vgw-hero__text { max-width: 40rem; }
/* in der Bühne: Text bündig unter der Überschrift, Zeilenlänge trotzdem begrenzt */
.vgw-buehne > .vgw-buehne__text > .vgw-hero__text { max-width: var(--wp--style--global--wide-size) !important; padding-right: max(0px, calc(100% - 40rem)); }
.vgw-kachel {
	border-top: 4px solid var(--wp--preset--color--vgw-rot);
	background: var(--wp--preset--color--hellgrau);
	padding: var(--wp--preset--spacing--40);
}
.vgw-kachel h3 { margin-top: 0; }
.vgw-kachel h3 a { color: inherit; text-decoration: none; }
.vgw-kachel h3 a::after { content: " →"; color: var(--wp--preset--color--vgw-rot); }
.vgw-kachel p:last-child { margin-bottom: 0; }
.vgw-schwerpunkte { list-style: none; padding: 0; display: grid; gap: .8rem; }
.vgw-schwerpunkte li { padding-left: 1.6rem; position: relative; }
.vgw-schwerpunkte li::before { content: ""; position: absolute; left: 0; top: .55em; width: .7rem; height: .7rem; background: var(--wp--preset--color--vgw-rot); }

/* Bühne (Bildwechsel Startseite): Gruppe .vgw-buehne > Galerie .vgw-buehne__bilder + Gruppe .vgw-buehne__text */
.vgw-buehne {
	position: relative;
	min-height: min(68vh, 640px);
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	background: var(--wp--preset--color--schwarz);
	color: #fff;
}
.vgw-buehne > .vgw-buehne__bilder {
	position: absolute !important;
	inset: 0;
	margin: 0 !important;
	display: block !important;
	gap: 0 !important;
}
.vgw-buehne > .vgw-buehne__bilder > figure.wp-block-image {
	position: absolute !important;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	opacity: 0;
	transition: opacity 1.2s ease;
}
.vgw-buehne > .vgw-buehne__bilder > figure:first-child,
.vgw-buehne.ist-aktiv > .vgw-buehne__bilder > figure.is-aktiv { opacity: 1; }
.vgw-buehne.ist-aktiv > .vgw-buehne__bilder > figure:not(.is-aktiv) { opacity: 0; }
.vgw-buehne > .vgw-buehne__bilder > figure img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}
.vgw-buehne > .vgw-buehne__bilder > figure figcaption { display: none; }
.vgw-buehne::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0, 0, 0, .65) 0%, rgba(0, 0, 0, .25) 45%, rgba(0, 0, 0, 0) 75%);
	pointer-events: none;
}
.vgw-buehne > .vgw-buehne__text {
	position: relative;
	z-index: 1;
	width: 100%;
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--60);
}
.vgw-buehne .vgw-hero__titel,
.vgw-buehne .vgw-hero__text { color: #fff; text-shadow: 0 1px 12px rgba(0, 0, 0, .35); }
.vgw-buehne__pause {
	position: absolute;
	z-index: 2;
	right: var(--wp--preset--spacing--40);
	bottom: var(--wp--preset--spacing--30);
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
	color: #fff;
	background: rgba(0, 0, 0, .45);
	border: 1px solid rgba(255, 255, 255, .6);
	padding: .3rem .8rem;
	cursor: pointer;
}
.vgw-buehne__pause:hover { background: rgba(0, 0, 0, .7); }
@media (prefers-reduced-motion: reduce) {
	.vgw-buehne > .vgw-buehne__bilder > figure.wp-block-image { transition: none; }
}

/* Unterseiten */
.vgw-einleitung { max-width: 46rem; }
.vgw-leistungen .vgw-kachel ul { padding-left: 1.1rem; margin: 0; }
.vgw-leistungen .vgw-kachel li + li { margin-top: .35rem; }
.vgw-person { font-size: var(--wp--preset--font-size--small); }
.vgw-person .wp-block-image { margin-bottom: .6rem; }
.vgw-person .wp-block-image img { width: 100%; height: auto; display: block; background: var(--wp--preset--color--hellgrau); }
.vgw-person p { margin: 0; line-height: 1.45; }
.vgw-person strong { font-size: var(--wp--preset--font-size--medium); font-weight: 400; }
.vgw-kontaktbox p { margin-top: 0; }

/* Häufige Fragen (Details-Block mit Klasse vgw-faq) */
.vgw-faq { border-top: 1px solid var(--wp--preset--color--linie); padding: .9rem 0; }
.vgw-faq:last-of-type { border-bottom: 1px solid var(--wp--preset--color--linie); }
.vgw-faq + .vgw-faq { margin-top: 0; }
.vgw-faq summary { cursor: pointer; font-size: var(--wp--preset--font-size--large); list-style: none; position: relative; padding-right: 2rem; }
.vgw-faq summary::-webkit-details-marker { display: none; }
.vgw-faq summary::after { content: "+"; position: absolute; right: .25rem; top: -.1rem; color: var(--wp--preset--color--vgw-rot); font-size: 1.6rem; line-height: 1; }
.vgw-faq[open] summary::after { content: "–"; }
.vgw-faq[open] summary { margin-bottom: .6rem; }

/* Formulare (Contact Form 7, Feld-Gerüst .vgw-form im Formular) */
.vgw-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); gap: 1rem 1.5rem; margin-bottom: 1rem; }
.vgw-form__feld { display: flex; flex-direction: column; gap: .3rem; }
.vgw-form__feld--breit { grid-column: 1 / -1; }
.vgw-form__feld > span:first-child { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--anthrazit); }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 select, .wpcf7 textarea {
	width: 100%; box-sizing: border-box; font: inherit; font-size: 1rem;
	padding: .65rem .75rem; border: 1px solid #b9b9bd; border-radius: 0; background: #fff;
}
.wpcf7 textarea { min-height: 10rem; resize: vertical; }
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus { border-color: var(--wp--preset--color--vgw-rot); outline: 2px solid var(--wp--preset--color--vgw-rot); outline-offset: 0; }
.wpcf7 .wpcf7-submit {
	font: inherit; font-size: var(--wp--preset--font-size--medium); cursor: pointer;
	background: var(--wp--preset--color--vgw-rot); color: #fff; border: 0; padding: .75rem 1.6rem;
}
.wpcf7 .wpcf7-submit:hover { background: var(--wp--preset--color--vgw-rot-dunkel); }
.vgw-form__hinweis { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--grau); }
.wpcf7-not-valid-tip { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--vgw-rot-dunkel); }
.wpcf7 form .wpcf7-response-output { margin: 1rem 0 0; padding: .8rem 1rem; border-width: 2px; }

/* Fuß */
.vgw-footer a { color: inherit; }

/* Barrierefreiheit: sichtbarer Fokus */
:where(a, button, input, select, textarea):focus-visible { outline: 3px solid var(--wp--preset--color--vgw-rot); outline-offset: 2px; }
