/* Basiselemente – bewusst schlank, als Startpunkt für ein eigenes Design */
p, li {max-width: 60rem;}
ul {list-style: square outside; margin-left: 1.2rem;}
img { max-width: 100%; height: auto; }
a { color: var(--ewe); text-decoration: none; }
a:link {color: var(--link);}
a:visited {color: var(--visited);}
a:hover {text-decoration: underline; }

.site-header {
    display: flex;
    flex-flow: row wrap;
    place-content: flex-start;
    place-items: flex-start;
    gap: 0 2rem;
    padding: 1rem 0.5rem;
}
.site-header ul, .site-footer ul {max-width: calc(100vw - 2 * var(--lr-min)); display: flex; flex-flow: row wrap; gap: 1rem;}


.site-nav {display: flex; flex-flow: column wrap; gap: 1rem;}
.site-nav ul {max-width: 100vw; list-style: none; display: flex; flex-flow: row wrap; justify-contnet: flex-start; gap: 1.25rem; margin: 0; padding: 0; position: relative;}
.site-nav .subnav {display: none; position: absolute; background: var(--canvas-1); border: 1px solid var(--border-0); padding: .5rem 1rem; flex-direction: column; gap: .25rem; min-width: 15rem; justify-content: flex-start;}
.site-nav li {text-align: left;}
.subnav a:link, .subnav a:visited {color: var(--text-0);}
.site-nav li:hover > .subnav { display: flex;}

nav.siblings {
	display: flex; 
	flex-flow: column wrap; 
	justify-content: flex-start; 
	align-items: flex-start; 
	gap: 0.5rem; 
	margin: 3rem var(--lr-min); 
	padding: 0.75rem; 
	background-color: var(--canvas-0); 
	border: thin solid var(--border-1); 
	border-radius: var(--bevel);
	ul {
		list-style-position: inside;
	}
}
nav.siblings h2 {margin: 0; padding: 0;}
nav.siblings ul {display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 0 3rem; margin: 0; padding: 0;}
nav.siblings a:link, nav.siblings a:visited {color: var(--link)}
@supports (flex-wrap: balance) {
    nav.siblings ul { flex-wrap: balance; }
}
.site-main {margin: 0; padding: 0; xmin-height: calc(100vh - 10rem);}
.page h1 { color: var(--night); margin: 2rem var(--lr-min); }
.page img { border-radius: 4px; margin: 1rem 0; }
.page table { border-collapse: collapse; width: 100%; }
.page td, .page th { border: 1px solid var(--border-0); padding: .5rem; }

.hero img { width: 100%; border-radius: 6px; }

.teaser-list ul { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; }
.teaser-list li { border: 1px solid var(--border-0); border-radius: 6px; padding: 1rem; }

.site-footer {
    padding: 1rem var(--lr-min);
    border-top: 1px solid var(--border-0);
    color: var(--text-1);
    font-size: .875rem;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
}
.site-footer ul { list-style: none; display: flex; gap: 1rem; margin: 0; padding: 0; }

/* --- Layout-Feld (flexible-Seiten) --- */
.layout-row {padding: 3rem var(--lr-min);}
.layout-grid {
    display: grid;
    gap: 4rem ;
    grid-template-columns: repeat(12, 1fr);
}
section.layout-row:nth-child(even) {
	background-color: var(--canvas-0);
	border-top: thin solid var(--border-1);
	border-bottom: thin solid var(--border-1);
}
.layout-col { max-width: calc(100vw - 2rem); }
@media (max-width: 48rem) {
    /* Mobil: alle Spalten untereinander (überschreibt die Inline-Span-Styles) */
    .layout-grid > .layout-col { grid-column: 1 / -1 !important; }
}
.blocks > :first-child { margin-top: 0; }
.blocks h2 { color: var(--night); }
.blocks hr { border: none; border-top: 1px solid var(--border-0); }

.block-image img { border-radius: 6px; }
.block-image figcaption { color: var(--text-1); font-size: .875rem; margin-top: .35rem; }

/* Download-Block */
.download-list { list-style: none; padding: 0; display: grid; gap: .5rem; }
.download-link {
    display: flex; justify-content: space-between; gap: 1rem;
    border: 1px solid var(--border-0); border-radius: 6px; padding: .6rem .9rem;
}
.download-link:hover { border-color: var(--night); text-decoration: none; }
.download-meta { color: var(--text-1); font-size: .875rem; white-space: nowrap; }

/* Ausschreibungstexte --- */
div.wg {
	padding-bottom: 3rem;
	display: flex;
	flex-flow: row wrap;
	gap: 3rem;
	border-bottom: medium solid var(--border-1);
	h2 {
		width: 100%;
		line-height: 2rem;
		img {height: 2rem; margin: 0; vertical-align: baseline;}
	}
	div.ag {
		
	}
}
/* --- Verkauf Deutschland: PLZ-Suche & Gebietskarte --- */
.verkauf-intro { max-width: 46rem; }
.plz-form {
    display: flex; flex-wrap: wrap; gap: .5rem; align-items: center;
    margin: 1.5rem 0 2rem;
}
.plz-form input {
    padding: .5rem .75rem; border: 1px solid var(--line);
    border-radius: 4px; font-size: 1rem; width: 9rem;
}
.plz-button {
    padding: .55rem 1rem; border: none; border-radius: 4px;
    background: var(--blue); color: #fff; font-size: 1rem; cursor: pointer;
}
.plz-button:hover { filter: brightness(1.1); }
.plz-error, .plz-notfound { color: #b00020; width: 100%; margin: .25rem 0 0; }

.verkauf-grid {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: 2rem;
    align-items: start;
}
.verkauf-map svg { width: 100%; height: auto; }
.verkauf-map .gebiet { cursor: pointer; transition: opacity .15s; }
.verkauf-map .gebiet:hover path, .verkauf-map .gebiet:hover polygon {
    filter: brightness(1.2);
}
.verkauf-map .gebiet.is-active path, .verkauf-map .gebiet.is-active polygon {
    filter: brightness(1.35) saturate(1.4);
}
.verkauf-map .gebiet:not(.is-active) { opacity: .85; }
.verkauf-map .gebiet:focus { outline: none; }

.region-card {
    border: 1px solid var(--line); border-radius: 6px; padding: 1rem;
}
.region-card h2 { color: var(--blue); margin: 0 0 1rem; }
.contact {
    display: flex; gap: 1rem; padding: .75rem 0;
    border-top: 1px solid var(--line);
}
.contact:first-child { border-top: none; }
.contact-portrait {
    width: 72px; height: auto; border-radius: 4px; flex-shrink: 0;
}
.contact-role { color: var(--muted); font-size: .875rem; margin: 0; }
.contact-name { font-weight: 600; margin: 0 0 .25rem; }
.contact-data p { margin: .15rem 0; font-size: .9375rem; }

@media (max-width: 48rem) {
    .verkauf-grid { grid-template-columns: 1fr; }
}

