/* SOZIAL|WERKEN Anbietersuche – nutzt die Farbvariablen des Themes */

/* Kopf mit Suchzeile */
.sws-kopf .sw-wrap{padding-top:40px;padding-bottom:36px}
.sws-kopf h1{font-size:clamp(28px,3.4vw,40px);margin:0 0 20px}
.sws-kopf>.sw-wrap>p{font-size:19px}
.sws-suchzeile{display:flex;flex-wrap:wrap;background:#fff;border:2px solid var(--sw-main);border-radius:4px;overflow:hidden;max-width:980px}
.sws-feld{display:flex;flex-direction:column;padding:10px 16px;min-width:0}
.sws-feld-was{flex:3 1 260px}
.sws-feld-wo{flex:2 1 180px;border-left:1px solid #D5DEE0}
.sws-feld-umkreis{flex:0 1 120px;border-left:1px solid #D5DEE0}
.sws-feld span{font-size:13px;font-weight:700;color:var(--sw-main)}
.sws-feld input,.sws-feld select{border:0;background:transparent;font:inherit;font-size:18px;padding:2px 0;color:var(--sw-deep);width:100%;outline:none}
.sws-feld input::placeholder{color:#5b6f74}
.sws-feld:focus-within{box-shadow:inset 0 -3px 0 var(--sw-sonne)}
.sws-los{border-radius:0}
.sws-standort{margin-top:12px;display:inline-flex;align-items:center;gap:8px;background:none;border:0;padding:6px 0;font:inherit;font-weight:700;color:var(--sw-main);cursor:pointer}
.sws-standort:hover{color:var(--sw-deep);text-decoration:underline}
.sws-standort[aria-busy="true"]{opacity:.6;cursor:progress}

/* Raster: Filter links, Liste rechts */
.sws-raster{display:grid;grid-template-columns:280px minmax(0,1fr);gap:40px;padding-top:36px;padding-bottom:80px;align-items:start}

/* Filter */
.sws-filter-box{border:1px solid var(--sw-line);border-radius:4px;padding:6px 20px 20px;background:#fff;position:sticky;top:16px}
.sws-filter-box>summary{font-weight:800;font-size:18px;padding:12px 0;cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px}
.sws-filter-box>summary::-webkit-details-marker{display:none}
.sws-filter-box>summary:after{content:"";width:8px;height:8px;margin-left:auto;border-right:2.5px solid currentColor;border-bottom:2.5px solid currentColor;transform:rotate(45deg) translateY(-3px)}
.sws-filter-box[open]>summary:after{transform:rotate(-135deg) translateY(-2px)}
.sws-punkt{width:9px;height:9px;border-radius:50%;background:var(--sw-sonne);display:inline-block}
.sws-filter fieldset{border:0;border-top:1px solid var(--sw-line);margin:0;padding:14px 0 10px;min-width:0}
.sws-filter legend{font-weight:800;padding:0;margin-bottom:6px;float:left;width:100%}
.sws-filter legend+*{clear:both}
.sws-gruppe{margin:10px 0 2px;font-size:14px;font-weight:700;color:var(--sw-muted)}
.sws-option{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:16px;line-height:1.3;cursor:pointer}
.sws-option input{width:20px;height:20px;margin:0;flex:none;accent-color:var(--sw-main)}
.sws-option span{flex:1}
.sws-option small{color:var(--sw-muted);font-size:14px}
.sws-filter-aktionen{display:flex;flex-wrap:wrap;gap:12px;align-items:center;border-top:1px solid var(--sw-line);padding-top:16px}
.sws-anwenden{border:0;background:var(--sw-main);color:#fff;font:inherit;font-weight:800;min-height:46px;padding:0 18px;border-radius:4px;cursor:pointer}
.sws-anwenden:hover{background:var(--sw-deep)}
.sw-js .sws-anwenden{display:none}
.sw-js .sws-filter-aktionen:not(:has(a)){display:none}
.sws-filter-aktionen a{font-weight:700;font-size:15px}

/* Liste */
.sws-anzahl{margin:0 0 18px;font-size:18px}
.sws-hinweis{background:#FDF1DC;border-left:5px solid var(--sw-sonne);padding:12px 16px;border-radius:4px;margin:0 0 18px}
.sws-notruf{background:var(--sw-sand);border-radius:4px;padding:10px 16px;font-size:15px;margin:0 0 22px}
.sws-notruf strong{color:var(--sw-glut-text)}
.sws-notruf a{font-weight:700;white-space:nowrap}

.sws-karte{border:1px solid var(--sw-line);border-radius:4px;padding:20px 22px;margin-bottom:16px;background:#fff;display:flex;flex-direction:column;gap:6px;position:relative}
.sws-karte:hover{border-color:var(--sw-main);box-shadow:0 6px 20px rgba(3,51,64,.08)}
.sws-karte-kopf{display:flex;gap:14px;align-items:baseline;justify-content:space-between}
.sws-karte-titel{margin:0;font-size:21px;line-height:1.25}
.sws-karte-titel a{color:var(--sw-deep);text-decoration:none}
.sws-karte-titel a:hover{color:var(--sw-main);text-decoration:underline}
.sws-dist{flex:none;font-weight:700;color:var(--sw-main);font-size:15px;white-space:nowrap}
.sws-traeger{margin:0;font-weight:500;color:var(--sw-main)}
.sws-adresse{margin:0;color:var(--sw-muted)}
.sws-chips{list-style:none;margin:6px 0 2px;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.sws-chips li{background:var(--sw-soft);border-radius:999px;padding:4px 12px;font-size:14px;font-weight:500}
.sws-chips .sws-chip-mehr{background:none;color:var(--sw-muted);padding-left:4px}
.sws-karte-fuss{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:8px;padding-top:12px;border-top:1px solid var(--sw-line)}
.sws-zeit{font-size:15px;font-weight:700;color:var(--sw-muted);display:inline-flex;align-items:center;gap:7px;margin:0}
.sws-zeit:before{content:"";width:9px;height:9px;border-radius:50%;background:#B9C7CA;flex:none}
.sws-zeit.is-offen{color:#2F6B4F}.sws-zeit.is-offen:before{background:#3E9A6C}
.sws-geprueft{font-size:13px;font-weight:700;color:var(--sw-salbei);border:1.5px solid var(--sw-salbei);border-radius:999px;padding:1px 10px}
.sws-aktionen{margin-left:auto;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.sws-btn-tel{display:inline-flex;align-items:center;gap:7px;font-weight:700;text-decoration:none;border:2px solid var(--sw-main);border-radius:4px;padding:6px 12px;white-space:nowrap}
.sws-btn-tel:hover{background:var(--sw-main);color:#fff}
.sws-btn-details{font-weight:800;text-decoration:none;background:var(--sw-main);color:#fff;border-radius:4px;padding:8px 14px;white-space:nowrap}
.sws-btn-details:hover{background:var(--sw-deep);color:#fff}

.sws-leer{padding:8px 0 12px}
.sws-leer h2{font-size:24px;margin:0 0 10px}
.sws-leer h3{font-size:20px;margin:28px 0 14px}
.sws-leer .sw-btn-outline{margin-top:4px}

.sws-seiten{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0 0}
.sws-seiten a,.sws-seiten span{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0 14px;border:1.5px solid var(--sw-line);border-radius:4px;font-weight:700;text-decoration:none}
.sws-seiten a:hover{border-color:var(--sw-main)}
.sws-seiten [aria-current]{background:var(--sw-main);border-color:var(--sw-main);color:#fff}

.sws-ratgeber{margin-top:56px}
.sws-ratgeber h2{font-size:26px;margin:0 0 18px}

/* Detailseite */
.sws-detail{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:48px;padding-top:40px;padding-bottom:80px;align-items:start}
.sws-detail-haupt>h2{font-size:26px;margin:0 0 16px}
.sws-angebot{border-top:1px solid var(--sw-line);padding:18px 0}
.sws-hinweise{border-top:1px solid var(--sw-line);padding:18px 0}.sws-hinweise h3{margin:0 0 6px;font-size:20px}.sws-hinweise p{margin:0}
.sws-angebot h3{margin:0 0 6px;font-size:20px}
.sws-angebot p,.sws-angebot ul{margin:0 0 8px}
.sws-angebot ul{padding-left:22px}
.sws-leicht{background:var(--sw-soft);padding:10px 14px;border-radius:4px}
.sws-eigenschaften{display:flex;flex-wrap:wrap;gap:6px 22px;margin:8px 0 0;font-size:15px}
.sws-eigenschaften div{display:flex;gap:6px}
.sws-eigenschaften dt{font-weight:700;color:var(--sw-muted)}
.sws-eigenschaften dt:after{content:":"}
.sws-eigenschaften dd{margin:0}
.sws-stand{margin-top:32px;background:var(--sw-sand);border-radius:4px;padding:18px 20px;font-size:16px}
.sws-stand p{margin:0 0 6px}.sws-stand p:last-child{margin:0}
.sws-detail-info{display:flex;flex-direction:column;gap:20px;position:sticky;top:16px}
.sws-info-box{border:1px solid var(--sw-line);border-top:5px solid var(--sw-main);border-radius:4px;padding:20px 22px}
.sws-info-box:nth-child(2){border-top-color:var(--sw-sonne)}
.sws-info-box h2{margin:0 0 14px;font-size:21px}
.sws-info-zeile{margin:0 0 14px;overflow-wrap:anywhere}
.sws-info-label{display:block;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--sw-muted)}
.sws-tel-gross{font-size:22px;font-weight:800;text-decoration:none}
.sws-woche{border-collapse:collapse;width:100%;font-size:16px;margin:4px 0 10px}
.sws-woche th{text-align:left;font-weight:700;padding:5px 12px 5px 0;white-space:nowrap;vertical-align:top}
.sws-woche td{padding:5px 0}
.sws-woche tr+tr{border-top:1px solid var(--sw-line)}
.sws-klein{font-size:15px;color:var(--sw-muted);margin:8px 0 0}
.sws-detail-info .sws-zeit{margin-bottom:8px}

@media (max-width:960px){
	.sws-raster,.sws-detail{grid-template-columns:minmax(0,1fr);gap:24px}
	.sws-filter-box,.sws-detail-info{position:static}
	.sws-detail-info{order:-1}
}
@media (max-width:640px){
	.sws-feld-wo,.sws-feld-umkreis{border-left:0;border-top:1px solid #D5DEE0}
	.sws-feld-umkreis{flex:1 1 100%}
	.sws-los{flex:1 1 100%;justify-content:center}
	.sws-karte{padding:16px}
	.sws-aktionen{margin-left:0;width:100%}
	.sws-btn-tel,.sws-btn-details{flex:1 1 auto;justify-content:center;text-align:center}
}
@media print{.sws-filter,.sws-suchzeile,.sws-standort,.sws-seiten{display:none}.sws-raster,.sws-detail{display:block}}

/* ---------- Formular: Angebot eintragen / Änderung melden ---------- */
.sws-f{padding-top:40px;padding-bottom:80px}.sws-f>*{max-width:880px}
.sws-f-intro{margin-bottom:28px}.sws-f-intro>p{margin:0 0 12px;font-size:18px}
.sws-f-intro h2{margin:0 0 12px;font-size:28px}
.sws-f-bezug{background:var(--sw-sand);border-radius:4px;padding:12px 16px}
.sws-f-punkte{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 20px;font-size:15px;font-weight:700;color:var(--sw-main)}
.sws-f-punkte li:before{content:"✓ ";color:var(--sw-salbei)}
.sws-f-form{display:flex;flex-direction:column;gap:24px}
.sws-f-block{margin:0;border:1px solid var(--sw-line);border-top:5px solid var(--sw-main);border-radius:4px;padding:24px;min-width:0;display:flex;flex-direction:column;gap:18px;background:#fff}
.sws-f-block:nth-of-type(2){border-top-color:var(--sw-sonne)}.sws-f-block:nth-of-type(3){border-top-color:var(--sw-glut)}.sws-f-block:nth-of-type(4){border-top-color:var(--sw-salbei)}
.sws-f-block>legend{float:left;width:100%;padding:0;margin:0 0 2px;font-size:22px;font-weight:800;display:flex;align-items:center;gap:12px}
.sws-f-block>legend+*{clear:both}
.sws-f-schritt{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--sw-deep);color:#fff;font-size:17px;flex:none}
.sws-f-erklaerung{margin:-6px 0 0;color:var(--sw-muted);font-size:16px}
.sws-f-raster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px}
.sws-f-adresse{grid-template-columns:minmax(0,2fr) 110px minmax(0,1.2fr) minmax(0,1.3fr)}
.sws-f-drei{grid-template-columns:repeat(3,minmax(0,1fr))}
.sws-f-feld{display:flex;flex-direction:column;gap:6px;min-width:0}
.sws-f-feld label,.sws-f-label{font-size:15px;font-weight:700;color:var(--sw-deep)}
.sws-f-pflicht{color:var(--sw-glut-text)}
.sws-f-optional{font-weight:500;color:var(--sw-muted);font-size:14px}
.sws-f-hilfe{font-size:14px;color:var(--sw-muted);margin-top:-2px}
.sws-f input[type=text],.sws-f input[type=email],.sws-f input[type=tel],.sws-f input[type=url],.sws-f input[type=time],.sws-f select,.sws-f textarea{width:100%;font:inherit;font-size:17px;min-height:50px;padding:10px 14px;border:1.5px solid #B9C7CA;border-radius:4px;color:var(--sw-deep);background:#fff}
.sws-f textarea{min-height:0;line-height:1.45;resize:vertical}
.sws-f select{padding-right:36px}
.sws-f input:focus,.sws-f select:focus,.sws-f textarea:focus{border-color:var(--sw-main);outline:3px solid var(--sw-soft);outline-offset:0}
.sws-f [aria-invalid=true]{border-color:var(--sw-glut)!important;background:#FFF7F4}
.sws-f-fehler{margin:0;color:var(--sw-glut-text);font-size:15px;font-weight:700}
.sws-f-check{display:block;position:relative;padding-left:32px;font-size:16px;line-height:1.4;cursor:pointer;min-height:22px}
.sws-f-check input{position:absolute;left:0;top:0;width:22px;height:22px;margin:0;accent-color:var(--sw-main)}
.sws-f-check.is-pflicht{background:var(--sw-sand);border-radius:4px;padding:12px 14px 12px 46px}
.sws-f-check.is-pflicht input{left:14px;top:12px}
.sws-f-checks{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:4px}
.sws-f-zeile{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:end}
.sws-f-zeile .sws-f-check{padding-bottom:13px}
.sws-f-zeiten{display:flex;flex-direction:column;border:1px solid var(--sw-line);border-radius:4px}
.sws-f-tag{display:grid;grid-template-columns:110px minmax(0,1fr) minmax(0,1fr);gap:8px 16px;align-items:center;padding:8px 12px;border-top:1px solid var(--sw-line)}
.sws-f-tag:first-child{border-top:0}
.sws-f-tagname{font-weight:700}
.sws-f-spanne{display:flex;align-items:center;gap:6px}
.sws-f-spanne input[type=time]{min-height:44px;padding:6px 8px;font-size:16px}
.sws-f-kopieren,.sws-f-hinzu,.sws-f-entfernen{align-self:flex-start;background:none;border:2px solid var(--sw-main);border-radius:4px;color:var(--sw-main);font:inherit;font-weight:700;font-size:15px;padding:8px 14px;cursor:pointer}
.sws-f-kopieren:hover,.sws-f-hinzu:hover{background:var(--sw-main);color:#fff}
.sws-f-entfernen{border:0;padding:4px 0;color:var(--sw-glut-text);text-decoration:underline}
.sws-f-angebote{display:flex;flex-direction:column;gap:16px}
.sws-f-angebot{margin:0;border:1px solid var(--sw-line);border-radius:4px;padding:18px;background:var(--sw-sand);display:flex;flex-direction:column;gap:14px;min-width:0}
.sws-f-angebot>legend{padding:0 6px;font-weight:800;font-size:17px}
.sws-f-gruppe{margin-top:6px}
.sws-f-absenden{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center}
.sws-f-absenden .sw-submit{border-radius:4px}
.sws-f-absenden .sw-submit:disabled{opacity:.6;cursor:progress}
.sws-f-absenden p{margin:0;color:var(--sw-muted);font-size:15px;flex:1 1 260px}
.sws-f-meldung{border-radius:4px;padding:20px 22px;margin-bottom:24px}
.sws-f-meldung.is-fehler{background:#FFF1EC;border-left:5px solid var(--sw-glut)}
.sws-f-meldung.is-fehler ul{margin:8px 0 0;padding-left:20px}
.sws-f-meldung.is-fehler a{color:var(--sw-glut-text);font-weight:700}
.sws-f-meldung.is-ok{background:var(--sw-soft);border-left:5px solid var(--sw-main)}
.sws-f-meldung h2{margin:0 0 8px;font-size:26px}.sws-f-meldung p{margin:0 0 12px}
.sws-f-meldung:focus{outline:none}
.sws-f-falle{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
@media (max-width:760px){
	.sws-f{padding-top:28px}
	.sws-f-punkte{flex-direction:column;gap:4px}
	.sws-f-block{padding:18px 16px}
	.sws-f-raster,.sws-f-adresse,.sws-f-drei{grid-template-columns:minmax(0,1fr)}
	.sws-f-adresse .is-kurz{max-width:160px}
	.sws-f-tag{grid-template-columns:minmax(0,1fr);gap:6px;padding:10px 12px}
}

/* ---------- MUSTER Detailseite (?muster=1) ---------- */
.sws-m-kopf h1{margin-bottom:10px}
.sws-m-ort{color:var(--sw-main)}
.sws-m-chips{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.sws-m-chips a{display:inline-block;background:#fff;border:1px solid var(--sw-line);border-radius:999px;padding:6px 14px;font-size:15px;font-weight:700;color:var(--sw-deep);text-decoration:none}
.sws-m-chips a:hover{border-color:var(--sw-main);color:var(--sw-main)}
.sws-m-aktionen{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.sws-m-knopf{display:inline-flex;align-items:center;gap:8px;min-height:50px;padding:0 20px;border-radius:4px;background:var(--sw-main);color:#fff;font-weight:800;text-decoration:none}
.sws-m-knopf:hover{background:var(--sw-deep);color:#fff}
.sws-m-knopf.is-hell{background:#fff;color:var(--sw-main);border:2px solid var(--sw-main)}
.sws-m-knopf.is-hell:hover{background:var(--sw-soft);color:var(--sw-deep)}
.sws-m section{margin-bottom:40px}
.sws-m section>h2{font-size:26px;margin:0 0 14px}
.sws-m-blick{border-left:5px solid var(--sw-sonne);padding:4px 0 4px 22px}
.sws-m-lead{font-size:19px;line-height:1.55;margin:0 0 16px}
.sws-m-fakten{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px 24px;margin:0}
.sws-m-fakten div{background:var(--sw-sand);border-radius:4px;padding:10px 14px}
.sws-m-fakten dt{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--sw-muted)}
.sws-m-fakten dd{margin:2px 0 0;font-weight:700}
.sws-m-angebot h3{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.sws-m-fuer{font-size:14px;font-weight:700;background:#FDF1DC;color:#8A4B06;border-radius:999px;padding:2px 10px}
.sws-m-konkret{font-weight:700}
.sws-m-erkl{color:var(--sw-muted)}
.sws-m-ergaenzung{background:var(--sw-soft);border-radius:4px;padding:26px 26px 18px}
.sws-m-ergaenzung>p{margin:0 0 18px}
.sws-m-ergaenzung h3{font-size:20px;margin:22px 0 10px}
.sws-m-schritte{margin:0;padding:0;list-style:none;counter-reset:s;display:flex;flex-direction:column;gap:10px}
.sws-m-schritte li{counter-increment:s;position:relative;padding-left:44px;min-height:32px}
.sws-m-schritte li:before{content:counter(s);position:absolute;left:0;top:-2px;width:32px;height:32px;border-radius:50%;background:var(--sw-main);color:#fff;font-weight:800;display:grid;place-items:center}
.sws-m-klein{display:block;font-size:15px;color:var(--sw-muted)}
.sws-m-fragen details{background:#fff;border-radius:4px;margin-bottom:8px;border:1px solid rgba(14,101,120,.15)}
.sws-m-fragen summary{cursor:pointer;font-weight:700;padding:14px 44px 14px 16px;position:relative;list-style:none}
.sws-m-fragen summary::-webkit-details-marker{display:none}
.sws-m-fragen summary:after{content:"+";position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:24px;font-weight:500;color:var(--sw-main)}
.sws-m-fragen details[open] summary:after{content:"–"}
.sws-m-fragen details p{margin:0;padding:0 16px 16px}
.sws-m-naehe ul{list-style:none;margin:0 0 14px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px}
.sws-m-naehe li{border:1px solid var(--sw-line);border-radius:4px;padding:14px 16px;display:flex;flex-direction:column;gap:3px}
.sws-m-naehe li a{color:var(--sw-deep);text-decoration:none}.sws-m-naehe li a:hover{color:var(--sw-main);text-decoration:underline}
.sws-m-naehe li span{font-size:15px;color:var(--sw-muted)}
.sws-m-naehe li small{font-size:14px}
@media (max-width:960px){.sws-m .sws-detail-info{order:0}}
@media (max-width:640px){.sws-m-knopf{flex:1 1 100%;justify-content:center}.sws-m-ergaenzung{padding:20px 16px 12px}.sws-m-blick{padding-left:16px}}
