/* ---------------------------------------------------------------------------
   Wohnpark Friedberg – Kopfzeile, Fußzeile, Grundgerüst.
   Farben und Typografie kommen aus theme.json.
   --------------------------------------------------------------------------- */

:root{
	--wpf-primaer: #00305D;
	--wpf-akzent:  #15779B;
	--wpf-linie:   #E1E7EC;
	--wpf-flaeche: #F6F8FA;
	--wpf-kopf-hoehe: 84px;
}

.wpf-skip{
	position:absolute; left:-9999px; top:0; z-index:1000;
	background:#fff; color:var(--wpf-primaer); padding:12px 20px;
}
.wpf-skip:focus{ left:12px; top:12px; }

/* --- Kopfzeile --------------------------------------------------------- */
.wpf-header{
	position:sticky; top:0; z-index:100;
	background:var(--wpf-primaer);
	box-shadow:0 1px 0 rgba(0,0,0,.08);
}

.wpf-header__inner{
	display:flex; align-items:center; justify-content:space-between; gap:24px;
	max-width:1500px; margin-inline:auto;
	padding:0 clamp(16px,5vw,60px);
	min-height:var(--wpf-kopf-hoehe);
}

.wpf-header__brand img,
.wpf-header .custom-logo{ display:block; max-height:56px; width:auto; }

/* Das vorhandene Logo ist einfarbig dunkelblau auf transparentem Grund und
   waere auf der dunklen Kopfzeile unsichtbar. Bis eine weisse Fassung als
   Datei vorliegt, wird es hier eingefaerbt. */
.wpf-header__brand img{ filter:brightness(0) invert(1); }

.wpf-header__name{ color:#fff; font-weight:700; font-size:1.25rem; text-decoration:none; }

.wpf-nav__list{
	display:flex; flex-wrap:wrap; align-items:center; gap:clamp(14px,2vw,30px);
	list-style:none; margin:0; padding:0;
}

.wpf-nav__list a{
	display:block; padding:6px 0;
	color:#fff; text-decoration:none; font-weight:600; font-size:.95rem;
	border-bottom:2px solid transparent;
}

.wpf-nav__list a:hover,
.wpf-nav__list a:focus-visible,
.wpf-nav__list .current-menu-item > a{ border-bottom-color:#fff; }

/* Untermenüs */
.wpf-nav__list li{ position:relative; }
.wpf-nav__list .sub-menu{
	position:absolute; left:0; top:100%; min-width:220px;
	display:none; flex-direction:column; gap:0;
	list-style:none; margin:0; padding:8px 0;
	background:#fff; box-shadow:0 12px 28px rgba(0,0,0,.16); border-radius:8px;
}
.wpf-nav__list li:hover > .sub-menu,
.wpf-nav__list li:focus-within > .sub-menu{ display:flex; }
.wpf-nav__list .sub-menu a{ color:var(--wpf-primaer); padding:8px 16px; border:0; }
.wpf-nav__list .sub-menu a:hover{ background:var(--wpf-flaeche); }

/* Burger */
.wpf-burger{
	display:none; background:none; border:0; cursor:pointer; padding:10px;
}
.wpf-burger__box{ display:block; width:26px; height:2px; background:#fff; position:relative; }
.wpf-burger__box::before,
.wpf-burger__box::after{ content:""; position:absolute; left:0; width:26px; height:2px; background:#fff; }
.wpf-burger__box::before{ top:-8px; }
.wpf-burger__box::after{ top:8px; }

@media (max-width: 1000px){
	.wpf-burger{ display:block; }
	.wpf-nav{
		display:none; position:absolute; left:0; right:0; top:100%;
		background:var(--wpf-primaer); padding:8px clamp(16px,5vw,60px) 24px;
	}
	.wpf-header__inner{ position:relative; }
	.wpf-nav.is-open{ display:block; }
	.wpf-nav__list{ flex-direction:column; align-items:stretch; gap:0; }
	.wpf-nav__list a{ padding:12px 0; border-bottom:1px solid rgba(255,255,255,.15); }
	.wpf-nav__list .sub-menu{ position:static; display:flex; background:transparent; box-shadow:none; padding:0 0 0 16px; }
	.wpf-nav__list .sub-menu a{ color:#fff; }
}

/* --- Inhalt ------------------------------------------------------------ */
.wpf-main{ display:block; }

.wpf-shell{
	max-width:1300px; margin-inline:auto;
	padding:clamp(28px,5vw,64px) clamp(16px,5vw,60px);
}
.wpf-shell--narrow{ max-width:820px; }

.wpf-page-title{ margin:0 0 .6em; }

.wpf-btn{
	display:inline-block; background:var(--wpf-primaer); color:#fff;
	padding:.8em 1.6em; border-radius:6px; text-decoration:none; font-weight:600;
}
.wpf-btn:hover{ background:var(--wpf-akzent); }

.wpf-result{ padding:18px 0; border-bottom:1px solid var(--wpf-linie); }
.wpf-result h2{ margin:0 0 .3em; font-size:1.25rem; }

/* --- Altlasten aus dem Page-Builder-Layout ------------------------------
   Bausteine des wpf-Designsystems sind im alten Theme mit negativen
   Aussenabstaenden aus dem Raster ausgebrochen. In der Block-Struktur sitzen
   sie bereits in einem Container voller Breite, der Ausbruch wuerde nur
   Ueberlauf erzeugen. */
.wpf-entry .wpf-hero,
.alignfull > .wpf-hero{
	width:100%; max-width:none; margin-left:0; margin-right:0;
}


/* --- Formulare ---------------------------------------------------------
   Contact Form 7 bringt keine eigene Gestaltung mit; im alten Theme kam sie
   vom Theme. Hier die Grundgestaltung, bewusst zurueckhaltend. */

.wpcf7 form{ margin:0; }

.wpcf7 p{ margin:0 0 18px; }

.wpcf7-form-control-wrap{ display:block; }

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 input[type="date"],
.wpcf7 select,
.wpcf7 textarea,
.wpf-entry input[type="search"],
.search-form input[type="search"]{
	display:block;
	width:100%;
	box-sizing:border-box;
	padding:12px 14px;
	font:inherit;
	font-size:1rem;
	line-height:1.4;
	color:var(--wpf-primaer);
	background:#fff;
	border:1px solid var(--wpf-linie);
	border-radius:6px;
	transition:border-color .15s ease, box-shadow .15s ease;
}

.wpcf7 textarea{ min-height:170px; resize:vertical; }

.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder{ color:#93a1ac; opacity:1; }

.wpcf7 input:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus,
.search-form input[type="search"]:focus{
	outline:none;
	border-color:var(--wpf-akzent);
	box-shadow:0 0 0 3px rgba(21,119,155,.18);
}

.wpcf7 input[type="submit"],
.wpcf7 button[type="submit"],
.search-form input[type="submit"],
.search-form button[type="submit"]{
	display:inline-block;
	width:auto;
	padding:.85em 1.9em;
	font:inherit;
	font-weight:600;
	color:#fff;
	background:var(--wpf-primaer);
	border:0;
	border-radius:6px;
	cursor:pointer;
	transition:background .15s ease;
}

.wpcf7 input[type="submit"]:hover,
.wpcf7 button[type="submit"]:hover,
.search-form input[type="submit"]:hover{ background:var(--wpf-akzent); }

.wpcf7 input[type="submit"]:focus-visible,
.wpcf7 button[type="submit"]:focus-visible{ outline:3px solid var(--wpf-akzent); outline-offset:2px; }

/* Zustimmung und Auswahlfelder */
.wpcf7-acceptance .wpcf7-list-item,
.wpcf7-checkbox .wpcf7-list-item,
.wpcf7-radio .wpcf7-list-item{ display:block; margin:0 0 8px; }

.wpcf7-acceptance .wpcf7-list-item label,
.wpcf7-checkbox .wpcf7-list-item label,
.wpcf7-radio .wpcf7-list-item label{
	display:flex; gap:10px; align-items:flex-start;
	font-size:.9375rem; line-height:1.5; cursor:pointer;
}

.wpcf7-acceptance input[type="checkbox"],
.wpcf7-checkbox input[type="checkbox"],
.wpcf7-radio input[type="radio"]{ margin-top:.25em; flex:0 0 auto; width:18px; height:18px; accent-color:var(--wpf-primaer); }

/* Meldungen */
.wpcf7 .wpcf7-not-valid-tip{
	display:block; margin-top:6px;
	font-size:.875rem; color:#B3283C;
}

.wpcf7 input.wpcf7-not-valid,
.wpcf7 textarea.wpcf7-not-valid{ border-color:#B3283C; }

.wpcf7 .wpcf7-response-output{
	margin:18px 0 0; padding:12px 16px;
	border:1px solid var(--wpf-linie); border-radius:6px;
	font-size:.9375rem; background:var(--wpf-flaeche);
}

.wpcf7 form.sent .wpcf7-response-output{ border-color:#2A7A3B; color:#1f5c2c; background:#f1f8f2; }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output{ border-color:#B3283C; color:#8c1f2f; background:#fdf3f4; }

.wpcf7-spinner{ margin-left:10px; }

/* Hinweistext unter dem Formular */
.wpf-form-note{ font-size:.875rem; color:var(--wpf-gedaempft, #6B7A85); }

/* Zwei Felder nebeneinander ab Tablet */
@media (min-width: 720px){
	.wpf-form-row{ display:grid; grid-template-columns:1fr 1fr; gap:0 20px; }
}

/* --- Fußzeile ---------------------------------------------------------- */
.wpf-footer{ background:var(--wpf-primaer); color:#fff; margin-top:clamp(40px,8vw,90px); }

.wpf-footer a{ color:#fff; }

.wpf-footer__widgets{
	display:grid; gap:clamp(20px,4vw,50px);
	grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
	max-width:1300px; margin-inline:auto;
	padding:clamp(32px,5vw,60px) clamp(16px,5vw,60px);
}

.wpf-foot-title{ color:#fff; font-size:1rem; text-transform:uppercase; letter-spacing:.08em; margin:0 0 .8em; }

.wpf-footer__bar{
	display:flex; flex-wrap:wrap; gap:12px 28px; align-items:center; justify-content:space-between;
	max-width:1300px; margin-inline:auto;
	padding:18px clamp(16px,5vw,60px);
	border-top:1px solid rgba(255,255,255,.18);
	font-size:.875rem;
}

.wpf-footer__copy{ margin:0; }

.wpf-footer__legal-list{
	display:flex; flex-wrap:wrap; gap:18px; list-style:none; margin:0; padding:0;
}

/* --- Editor ------------------------------------------------------------ */
.editor-styles-wrapper .wpf-header,
.editor-styles-wrapper .wpf-footer{ display:none; }
