/* Werbung 24/7 – suche.css (2026-10-04b): Leistungssuche, Schnellberatung, Angebote-Seite. Mobile first, keine Tailwind-Klassen nötig. */
.w247-lock, .w247-lock body { overflow: hidden !important; }

/* ---------- Suchfeld ---------- */
.w247-search { width: 100%; max-width: 44rem; margin: 0 0 1.25rem; text-align: left; }
.w247-slabel { display: block; font-weight: 800; font-size: 1.125rem; line-height: 1.3; margin: 0 0 .5rem; color: inherit; }
.w247-sfield { position: relative; display: flex; gap: .5rem; align-items: stretch; }
.w247-sfield .w247-sic { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); width: 1.25rem; height: 1.25rem; color: #64748b; pointer-events: none; }
.w247-search input[type="search"] { flex: 1 1 auto; min-width: 0; width: 100%; height: 3.5rem; padding: 0 1rem 0 2.9rem; border: 2px solid #fbbf24; border-radius: 1rem; background: #fff; color: #0f172a; font-size: 1.0625rem !important; font-family: inherit; line-height: 1.2; -webkit-appearance: none; appearance: none; text-overflow: ellipsis; box-shadow: 0 2px 10px rgba(15,23,42,.12); }
.w247-search input[type="search"]::placeholder { color: #64748b; opacity: 1; }
.w247-search input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; display: none; }
.w247-search input[type="search"]:focus { outline: 3px solid #f59e0b; outline-offset: 2px; }
.w247-sbtn { flex: none; min-width: 5.5rem; height: 3.5rem; padding: 0 1.1rem; border: 0; border-radius: 1rem; background: #fbbf24; color: #0f172a; font-weight: 800; font-size: 1rem; cursor: pointer; font-family: inherit; }
.w247-sbtn:hover { background: #f59e0b; }
.w247-sbtn:focus-visible { outline: 3px solid #fff; outline-offset: 2px; box-shadow: 0 0 0 5px #0f172a; }
.w247-chips { display: flex; flex-wrap: wrap; gap: .4rem .5rem; margin: .75rem 0 0; padding: 0; list-style: none; }
.w247-chips li { margin: 0; }
.w247-chips a { display: inline-flex; align-items: center; min-height: 2.5rem; padding: 0 .85rem; border-radius: 9999px; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.3); color: #fff; font-size: .9375rem; font-weight: 600; text-decoration: none; }
.w247-chips a:hover { background: rgba(255,255,255,.2); }
.w247-chips-lbl { font-size: .875rem; color: #cbd5e1; margin: .75rem 0 0; }
.w247-adv-open { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 3rem; margin: .875rem 0 0; padding: 0 1.25rem; border-radius: 1rem; border: 2px solid rgba(255,255,255,.6); background: transparent; color: #fff; font-weight: 800; font-size: 1rem; cursor: pointer; font-family: inherit; }
.w247-adv-open:hover { background: rgba(255,255,255,.12); }
.w247-adv-open[hidden] { display: none; }
.w247-search .w247-adv-open { width: 100%; }

/* ---------- Treffer ---------- */
.w247-out { margin-top: .875rem; }
.w247-out[hidden] { display: none; }
.w247-res { background: #fff; color: #0f172a; border-radius: 1.25rem; padding: 1rem; box-shadow: 0 10px 30px rgba(15,23,42,.25); }
.w247-rhead { margin: 0 0 .625rem; font-size: .9375rem; color: #475569; }
.w247-rlist { list-style: none; margin: 0; padding: 0; display: grid; gap: .625rem; grid-template-columns: 1fr; }
.w247-rcard { margin: 0; padding: .75rem .875rem; border: 2px solid #e2e8f0; border-radius: 1rem; display: grid; gap: .15rem; background: #fff; }
.w247-rcard[data-sel="1"] { border-color: #f59e0b; background: #fffbeb; }
.w247-rname { font-weight: 800; font-size: 1.0625rem; line-height: 1.3; color: #0f172a; text-decoration: none; }
.w247-rname:hover { text-decoration: underline; }
.w247-rprice { font-weight: 800; color: #b45309; font-size: 1rem; }
.w247-rprice small { font-weight: 600; color: #475569; font-size: .875rem; }
.w247-rtext { color: #475569; font-size: .9375rem; line-height: 1.45; }
.w247-rrow { display: flex; flex-wrap: wrap; gap: .5rem .875rem; align-items: center; margin-top: .35rem; }
.w247-rgo { color: #92400e; font-weight: 700; font-size: .9375rem; text-decoration: none; min-height: 2.75rem; display: inline-flex; align-items: center; }
.w247-rgo:hover { text-decoration: underline; }
.w247-pick { min-height: 2.75rem; padding: 0 .9rem; border: 2px solid #cbd5e1; border-radius: .75rem; background: #fff; color: #0f172a; font-weight: 700; font-size: .9375rem; cursor: pointer; font-family: inherit; }
.w247-pick[aria-pressed="true"] { border-color: #f59e0b; background: #fef3c7; }
.w247-rnone { margin: 0 0 .5rem; font-size: 1rem; line-height: 1.5; color: #0f172a; }
.w247-ract { margin-top: .875rem; padding-top: .875rem; border-top: 1px solid #e2e8f0; }
.w247-rfor { margin: 0 0 .5rem; font-size: .9375rem; color: #334155; }
.w247-rbtn4 { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.w247-b { display: flex; align-items: center; justify-content: center; min-height: 3rem; padding: .25rem .5rem; border-radius: 1rem; font-weight: 800; font-size: 1rem; line-height: 1.2; text-decoration: none; text-align: center; color: #fff; border: 0; cursor: pointer; font-family: inherit; }
.w247-b:focus-visible { outline: 3px solid #f59e0b; outline-offset: 2px; }
.w247-b-req { background: #fbbf24; color: #0f172a; }
.w247-b-req:hover { background: #f59e0b; }
.w247-b-mail { background: #1e293b; }
.w247-b-mail:hover { background: #0f172a; }
.w247-b-wa { background: #0f7a55; }
.w247-b-wa:hover { background: #0b6847; }
.w247-b-call { background: #0f172a; }
.w247-b-call:hover { background: #1e293b; }
@media (min-width: 640px) {
  .w247-rlist { grid-template-columns: 1fr 1fr; }
  .w247-rbtn4 { grid-template-columns: repeat(4, 1fr); }
  .w247-res { padding: 1.25rem; }
}

/* ---------- Schnellberatung (Overlay) ---------- */
.w247-ov { position: fixed; inset: 0; z-index: 200; display: flex; align-items: stretch; justify-content: center; background: rgba(15,23,42,.65); }
.w247-ov[hidden] { display: none; }
.w247-dlg { position: relative; display: flex; flex-direction: column; width: 100%; height: 100%; max-height: 100%; background: #fff; color: #0f172a; overflow: hidden; }
@supports (height: 100dvh) { .w247-dlg { height: 100dvh; max-height: 100dvh; } }
.w247-dh { flex: none; display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .75rem 1rem; border-bottom: 1px solid #e2e8f0; background: #0f172a; color: #fff; }
.w247-dh-t { font-weight: 800; font-size: 1rem; line-height: 1.3; margin: 0; }
.w247-dh-s { font-size: .875rem; color: #cbd5e1; display: block; font-weight: 500; }
.w247-x { flex: none; width: 2.75rem; height: 2.75rem; border: 0; border-radius: .75rem; background: rgba(255,255,255,.12); color: #fff; font-size: 1.5rem; line-height: 1; cursor: pointer; font-family: inherit; }
.w247-x:hover { background: rgba(255,255,255,.25); }
.w247-x:focus-visible { outline: 3px solid #fbbf24; outline-offset: 2px; }
.w247-bar { flex: none; height: .25rem; background: #e2e8f0; }
.w247-bar > span { display: block; height: 100%; background: #f59e0b; transition: width .2s ease; }
.w247-db { flex: 1 1 auto; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; padding: 1.25rem 1rem 1rem; }
.w247-q { margin: 0 0 1rem; font-weight: 900; font-size: 1.375rem; line-height: 1.25; outline: none; }
.w247-sub { margin: 1.25rem 0 .5rem; font-weight: 800; font-size: 1.0625rem; }
.w247-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: .625rem; margin: 0; padding: 0; list-style: none; }
.w247-tile { display: flex; flex-direction: column; justify-content: center; gap: .15rem; width: 100%; min-height: 5.5rem; padding: .75rem; border: 2px solid #e2e8f0; border-radius: 1rem; background: #fff; text-align: left; cursor: pointer; font-family: inherit; color: #0f172a; }
.w247-tile:hover { border-color: #fbbf24; }
.w247-tile[aria-checked="true"] { border-color: #f59e0b; background: #fffbeb; }
.w247-tile:focus-visible, .w247-opt:focus-visible { outline: 3px solid #f59e0b; outline-offset: 2px; }
.w247-tile b { font-size: 1rem; line-height: 1.25; }
.w247-tile small { font-size: .875rem; color: #475569; line-height: 1.3; }
.w247-opts { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.w247-opt { min-height: 3rem; padding: 0 1rem; border: 2px solid #cbd5e1; border-radius: 9999px; background: #fff; color: #0f172a; font-weight: 700; font-size: 1rem; cursor: pointer; font-family: inherit; }
.w247-opt:hover { border-color: #fbbf24; }
.w247-opt[aria-checked="true"] { border-color: #f59e0b; background: #fef3c7; }
.w247-dlg input[type="text"] { width: 100%; height: 3.25rem; padding: 0 1rem; border: 2px solid #cbd5e1; border-radius: 1rem; font-size: 1.0625rem !important; font-family: inherit; color: #0f172a; background: #fff; }
.w247-dlg input[type="text"]:focus { border-color: #f59e0b; outline: 3px solid #fde68a; }
.w247-sum { margin: 0 0 1rem; padding: .875rem 1rem; border-radius: 1rem; background: #f8fafc; border: 1px solid #e2e8f0; display: grid; gap: .35rem; }
.w247-sum div { display: grid; grid-template-columns: 6.5rem 1fr; gap: .5rem; font-size: 1rem; line-height: 1.4; }
.w247-sum dt { font-weight: 800; color: #92400e; }
.w247-sum dd { margin: 0; overflow-wrap: anywhere; }
.w247-note { margin: .875rem 0 0; font-size: .9375rem; line-height: 1.5; color: #334155; }
.w247-note a { color: #92400e; font-weight: 700; }
.w247-df { flex: none; display: flex; gap: .625rem; padding: .75rem 1rem calc(.75rem + env(safe-area-inset-bottom, 0px)); border-top: 1px solid #e2e8f0; background: #fff; }
.w247-df .w247-b { flex: 1 1 0; }
.w247-b-ghost { background: #fff; color: #0f172a; border: 2px solid #cbd5e1; }
.w247-b-ghost:hover { background: #f1f5f9; }
.w247-b-ghost[hidden], .w247-df .w247-b[hidden] { display: none; }
.w247-act4 { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin-top: 1rem; }
@media (min-width: 640px) {
  .w247-ov { align-items: center; padding: 1.5rem; }
  .w247-dlg { width: 100%; max-width: 40rem; height: auto; max-height: calc(100vh - 3rem); border-radius: 1.5rem; box-shadow: 0 25px 60px rgba(0,0,0,.4); }
  @supports (height: 100dvh) { .w247-dlg { height: auto; max-height: calc(100dvh - 3rem); } }
  .w247-tiles { grid-template-columns: repeat(3, 1fr); }
  .w247-db { padding: 1.5rem; }
}

/* ---------- Angebote-Seite ---------- */
.w247-hero-c .idx-hero-in { display: block; max-width: 56rem; text-align: center; }
.w247-hero-c .idx-lead { margin-left: auto; margin-right: auto; }
.w247-hero-c .w247-search { margin-left: auto; margin-right: auto; }
.w247-hero-c .cta-block.cta-hero .cta-inner { align-items: center; justify-content: center; }
.w247-hero-c .cta-block.cta-hero .cta-actions { margin-left: auto; margin-right: auto; }
.w247-hero-c .idx-note { text-align: center; }
.w247-hero-c .w247-chips { justify-content: center; }
.w247-hero-c .w247-search { margin-bottom: 1.25rem; }
.w247-hero-c .w247-slabel { text-align: left; }
.w247-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; margin: 0; padding: 0; list-style: none; }
.w247-card { display: flex; flex-direction: column; margin: 0; background: #fff; border: 1px solid #e2e8f0; border-radius: 1.25rem; overflow: hidden; box-shadow: 0 1px 3px rgba(15,23,42,.06); }
.w247-card-img { display: block; width: 100%; aspect-ratio: 16 / 10; height: auto; object-fit: cover; object-position: center; background: #e2e8f0; }
.w247-card-body { display: flex; flex-direction: column; flex: 1 1 auto; padding: 1.125rem 1.25rem 1.25rem; }
.w247-card h3 { margin: 0 0 .25rem; font-weight: 900; font-size: 1.25rem; line-height: 1.25; color: #0f172a; }
.w247-card-price { margin: 0 0 .5rem; font-weight: 900; font-size: 1.375rem; line-height: 1.2; color: #b45309; }
.w247-card-price small { font-weight: 600; font-size: .9375rem; color: #475569; }
.w247-card-text { margin: 0 0 .5rem; color: #334155; font-size: 1rem; line-height: 1.5; }
.w247-card-sub { margin: 0 0 1rem; color: #475569; font-size: .9375rem; line-height: 1.5; }
.w247-card-act { margin-top: auto; display: grid; gap: .5rem; }
.w247-card-act .w247-b { min-height: 3rem; }
.w247-card-more { display: flex; flex-wrap: wrap; justify-content: center; gap: .15rem 1rem; }
.w247-card-more a { display: inline-flex; align-items: center; min-height: 2.75rem; color: #92400e; font-weight: 700; font-size: .9375rem; text-decoration: none; }
.w247-card-more a:hover { text-decoration: underline; }
.w247-more-row { text-align: center; margin: 1.25rem 0 0; font-size: .9375rem; line-height: 1.9; color: #475569; }
.w247-more-row a { color: #92400e; font-weight: 700; text-decoration: none; display: inline-block; padding: .2rem .15rem; }
.w247-more-row a:hover { text-decoration: underline; }
.w247-branch { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.w247-branch a { display: inline-flex; align-items: center; min-height: 2.75rem; padding: 0 1rem; border-radius: 9999px; background: #fff; border: 1px solid #cbd5e1; color: #0f172a; font-weight: 700; font-size: 1rem; text-decoration: none; }
.w247-branch a:hover { border-color: #f59e0b; background: #fffbeb; }
.w247-branch small { font-weight: 600; color: #475569; margin-left: .35rem; font-size: .8125rem; }
.w247-season { text-align: center; margin: 1rem 0 0; font-size: 1rem; }
.w247-season a { color: #92400e; font-weight: 800; text-decoration: none; }
.w247-season a:hover { text-decoration: underline; }
.w247-ask { max-width: 44rem; margin: 0 auto; text-align: center; }
.w247-ask .cta-block { border-radius: 1.25rem; border: 1px solid #fde68a; margin-top: 1rem; }
.w247-ask .cta-inner { flex-direction: column; text-align: center; }
.w247-ask .cta-actions { margin: 0 auto; }
.w247-ask > p { color: #475569; margin: 0 auto; max-width: 36rem; }

/* ---------- Stadt-Finder ---------- */
.w247-city { max-width: 60rem; margin: 0 auto; background: #fff; border: 1px solid #e2e8f0; border-radius: 1.25rem; }
.w247-city > summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; min-height: 3.5rem; cursor: pointer; font-weight: 800; font-size: 1.125rem; }
.w247-city > summary::-webkit-details-marker { display: none; }
.w247-city > summary::marker { content: ""; }
.w247-city > summary::after { content: "+"; flex: none; width: 2rem; height: 2rem; border-radius: .6rem; background: #fef3c7; color: #92400e; display: flex; align-items: center; justify-content: center; font-size: 1.4rem; line-height: 1; }
.w247-city[open] > summary::after { content: "–"; }
.w247-city > summary:focus-visible { outline: 3px solid #f59e0b; outline-offset: 2px; }
.w247-city-in { padding: 0 1.25rem 1.25rem; }
.w247-city-in > p { margin: 0 0 .75rem; color: #475569; font-size: .9375rem; }
.w247-cf { margin: 0 0 1rem; }
.w247-cf[hidden] { display: none; }
.w247-cf label { display: block; font-weight: 700; margin-bottom: .35rem; }
.w247-cf input { width: 100%; height: 3.25rem; padding: 0 1rem; border: 2px solid #cbd5e1; border-radius: 1rem; font-size: 1.0625rem !important; font-family: inherit; background: #fff; color: #0f172a; }
.w247-cf input:focus { border-color: #f59e0b; outline: 3px solid #fde68a; }
.w247-cnone { color: #b45309 !important; font-weight: 700; }
.w247-crow { padding: .75rem 0; border-top: 1px solid #f1f5f9; }
.w247-crow[hidden], .w247-crow li[hidden] { display: none; }
.w247-crow h3 { margin: 0 0 .4rem; font-size: 1rem; font-weight: 800; }
.w247-crow ul { display: flex; flex-wrap: wrap; gap: .4rem .5rem; margin: 0; padding: 0; list-style: none; }
.w247-crow li { margin: 0; }
.w247-crow a { display: inline-flex; align-items: center; min-height: 2.5rem; padding: 0 .75rem; border-radius: 9999px; border: 1px solid #e2e8f0; background: #f8fafc; color: #0f172a; font-size: .9375rem; text-decoration: none; }
.w247-crow a:hover { border-color: #f59e0b; color: #92400e; }

@media (min-width: 640px) { .w247-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) {
  .w247-grid { grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
  .w247-slabel { font-size: 1.25rem; }
}
/* Branchen-/Hinweisabschnitte */
.w247-sec { max-width: 1280px; margin: 0 auto; padding: 2.25rem 1.5rem; }
.w247-sec.w247-alt { max-width: none; background: #fff; border-top: 1px solid #e2e8f0; border-bottom: 1px solid #e2e8f0; }
.w247-sec.w247-alt > .w247-wrap { max-width: 1280px; margin: 0 auto; }
@media (min-width: 1024px) { .w247-sec { padding: 3.25rem 1.5rem; } }
@media (prefers-reduced-motion: reduce) { .w247-bar > span { transition: none; } }

.w247-dlg select { width: 100%; height: 3.25rem; padding: 0 1rem; border: 2px solid #cbd5e1; border-radius: 1rem; font-size: 1.0625rem; font-family: inherit; color: #0f172a; background: #fff; }
.w247-dlg select:focus { border-color: #f59e0b; outline: 3px solid #fde68a; }

.w247-trust { margin: .25rem 0 1.25rem; }
.w247-trust li { white-space: normal; max-width: 100%; }

/* Datei-Anhang im Formular (upload-anfrage.php) */
.w247-up { margin: .25rem 0 .5rem; }
.w247-up[hidden], .w247-up-msg[hidden] { display: none; }
.w247-up-l { display: block; font-weight: 700; font-size: .9375rem; margin-bottom: .4rem; }
.w247-up-in { display: block; width: 100%; box-sizing: border-box; padding: .65rem .75rem; border: 2px dashed #cbd5e1; border-radius: 1rem; background: #fff; font-size: 1rem; font-family: inherit; color: #334155; }
.w247-up-in:focus { outline: 3px solid #fde68a; border-color: #f59e0b; }
.w247-up-h { margin: .4rem 0 0; font-size: .8125rem; line-height: 1.45; color: #64748b; }
.w247-up-list { list-style: none; margin: .5rem 0 0; padding: 0; }
.w247-up-list li { display: flex; align-items: center; gap: .5rem; padding: .35rem .5rem .35rem .75rem; margin-bottom: .3rem; border: 1px solid #e2e8f0; border-radius: .75rem; background: #f8fafc; font-size: .875rem; }
.w247-up-n { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.w247-up-s { color: #64748b; white-space: nowrap; }
.w247-up-x { min-width: 2.25rem; height: 2.25rem; border: 0; border-radius: 9999px; background: transparent; font-size: 1.4rem; line-height: 1; color: #475569; cursor: pointer; }
.w247-up-x:hover, .w247-up-x:focus-visible { background: #fee2e2; color: #b91c1c; }
.w247-up-msg { margin: .5rem 0 0; padding: .6rem .8rem; border-radius: .75rem; font-size: .875rem; line-height: 1.45; }
.w247-up-info { background: #eff6ff; color: #1e3a8a; }
.w247-up-err { background: #fef2f2; color: #991b1b; }
.w247-up-err a { color: inherit; font-weight: 700; text-decoration: underline; }
.w247-up-ok { padding: 1.25rem; border-radius: 1rem; background: #ecfdf5; color: #065f46; font-size: 1rem; line-height: 1.5; }
.w247-up-ok p { margin: .35rem 0 0; }

/* ==========================================================================
   Kopfzeilen-Suche (2026-10-06d) – Such-Button in der Hauptnavigation aller Seiten,
   Panel unter der Kopfzeile (liegt in der Sticky-Navigation z-50, damit über der Schnee-Ebene z-40).
   Farben: Eisblau/Silber, Nachtblau/Gold (Weihnachts-Theme, Fallbacks ohne design-xmas.css).
   ========================================================================== */
.hs-sr { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.hs-toggle { display: none; }
html.js .hs-toggle { display: inline-flex; }
.hs-toggle { position: relative; align-items: center; justify-content: center; flex: none; width: 3rem; height: 3rem; padding: 0; margin: 0;
  border-radius: 9999px; border: 1px solid var(--silver-300, #cbd5e1); background: linear-gradient(180deg, #fff 0%, var(--ice-50, #eef6fc) 100%);
  color: var(--navy-800, #13285c); cursor: pointer; font: inherit; -webkit-tap-highlight-color: transparent;
  box-shadow: inset 0 0 0 1px rgba(226,194,109,.35), 0 4px 12px -8px rgba(19,40,92,.45); transition: box-shadow .15s ease, background .15s ease; }
.hs-toggle[hidden] { display: none !important; }
.hs-toggle:hover { background: var(--ice-100, #e1eef9); box-shadow: inset 0 0 0 2px var(--gold-400, #e2c26d), 0 6px 14px -8px rgba(19,40,92,.5); }
.hs-toggle:focus-visible { outline: 3px solid var(--gold-500, #f59e0b); outline-offset: 2px; }
.hs-toggle svg { width: 1.35rem; height: 1.35rem; flex: none; pointer-events: none; }
.hs-toggle .hs-ic-x { display: none; }
.hs-toggle[aria-expanded="true"] { background: linear-gradient(135deg, var(--navy-800, #13285c), var(--navy-950, #071331)); color: #fff; border-color: var(--navy-900, #0b1a3f); box-shadow: inset 0 0 0 1px rgba(226,194,109,.7); }
.hs-toggle[aria-expanded="true"] .hs-ic-s { display: none; }
.hs-toggle[aria-expanded="true"] .hs-ic-x { display: block; }

.hs-panel { position: absolute; left: 0; right: 0; top: 100%; z-index: 5;
  background: linear-gradient(180deg, #fff 0%, var(--ice-50, #f1f5f9) 100%); border-top: 1px solid var(--silver-300, #e2e8f0);
  border-bottom: 1px solid var(--silver-300, #e2e8f0); box-shadow: 0 2px 0 rgba(201,162,74,.45), 0 22px 36px -22px rgba(19,40,92,.55); }
.hs-panel[hidden] { display: none !important; }
.hs-inner { max-width: 50rem; margin: 0 auto; padding: .75rem 1rem .875rem; }
.hs-form { margin: 0; }
.hs-field { position: relative; display: flex; gap: .5rem; align-items: stretch; }
.hs-fic { position: absolute; left: .95rem; top: 50%; transform: translateY(-50%); width: 1.2rem; height: 1.2rem; color: var(--ice-500, #64748b); pointer-events: none; }
.hs-field input[type="search"] { flex: 1 1 auto; min-width: 0; width: 100%; height: 3rem; margin: 0; padding: 0 .9rem 0 2.7rem;
  border: 2px solid var(--gold-400, #fbbf24); border-radius: 9999px; background: #fff; color: var(--navy-950, #0f172a);
  font-size: 1rem !important; font-family: inherit; line-height: 1.2; -webkit-appearance: none; appearance: none; box-shadow: 0 6px 16px -12px rgba(19,40,92,.6); }
.hs-field input[type="search"]::placeholder { color: #64748b; opacity: 1; }
.hs-field input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; display: none; }
.hs-field input[type="search"]:focus { outline: 3px solid var(--ice-300, #fde68a); outline-offset: 1px; border-color: var(--gold-500, #f59e0b); }
.hs-panel .hs-go { flex: none; min-width: 0; height: 3rem; padding: 0 1.15rem; border-radius: 9999px; font-size: .9375rem; font-weight: 800; }
.hs-drop { margin-top: .6rem; max-height: min(26rem, calc(100vh - 14rem)); max-height: min(26rem, calc(100dvh - 14rem)); overflow-y: auto; overscroll-behavior: contain; }
.hs-drop[hidden], .hs-list[hidden] { display: none; }
.hs-list { display: grid; gap: .35rem; }
.hs-opt { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "n a" "m a"; align-items: center; column-gap: .75rem; min-height: 3rem;
  padding: .5rem .9rem; border-radius: .9rem; border: 1px solid var(--silver-300, #e2e8f0); background: #fff; color: var(--navy-950, #0f172a); text-decoration: none; }
.hs-opt[aria-selected="true"] { border-color: var(--gold-500, #f59e0b); background: linear-gradient(90deg, #fffaf0, var(--ice-50, #fffbeb)); box-shadow: inset 3px 0 0 var(--gold-500, #f59e0b); }
.hs-opt:focus-visible { outline: 3px solid var(--gold-500, #f59e0b); outline-offset: 1px; }
.hs-on { grid-area: n; font-weight: 800; font-size: 1rem; line-height: 1.25; }
.hs-om { grid-area: m; font-size: .875rem; font-weight: 700; color: var(--gold-700, #92400e); line-height: 1.3; }
.hs-oa { grid-area: a; font-weight: 800; color: var(--navy-800, #13285c); font-size: 1.1rem; }
.hs-foot { margin-top: .5rem; }
.hs-all { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--navy-800, #92400e); font-weight: 800; font-size: .9375rem; text-decoration: underline; text-decoration-color: var(--gold-500, #f59e0b); text-underline-offset: 3px; }
.hs-ph { margin: 0 0 .35rem; font-size: .875rem; font-weight: 700; color: #475569; }
.hs-pop { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.hs-pop a { display: inline-flex; align-items: center; min-height: 2.5rem; padding: 0 .9rem; border-radius: 9999px; border: 1px solid var(--silver-300, #cbd5e1); background: #fff; color: var(--navy-900, #0f172a); font-weight: 700; font-size: .9375rem; text-decoration: none; }
.hs-pop a:hover, .hs-pop a:focus-visible { border-color: var(--gold-500, #f59e0b); background: var(--ice-50, #fffbeb); }
.hs-none { margin: 0 0 .6rem; font-size: .9375rem; line-height: 1.5; color: var(--navy-950, #0f172a); }
.hs-btn4 .w247-b { min-height: 2.75rem; font-size: .9375rem; }

/* Platz in der Desktop-Navigation (Container max. 1280 px): Abstände leicht reduzieren, WhatsApp nur als Icon */
@media (min-width: 1024px) {
  .hs-toggle { width: 2.75rem; height: 2.75rem; }
  nav[aria-label="Hauptnavigation"] .lg\:flex.gap-x-5 { column-gap: .8rem; }
  nav[aria-label="Hauptnavigation"] .h-20 > .shrink-0:last-child > .sm\:flex a[href="kontakt.html"] { padding-left: 1.1rem; padding-right: 1.1rem; }
  nav[aria-label="Hauptnavigation"] a[href*="wa.me"] span { display: none !important; }
  .hs-inner { padding: .9rem 1.5rem 1rem; }
}
@media (min-width: 1024px) and (max-width: 1279px) {
  nav[aria-label="Hauptnavigation"] .lg\:flex.gap-x-5 { column-gap: .7rem; }
  nav[aria-label="Hauptnavigation"] .h-20 > a.shrink-0 img { height: 3.25rem; }
  nav[aria-label="Hauptnavigation"] .h-20 > .shrink-0:last-child { column-gap: .5rem; }
  nav[aria-label="Hauptnavigation"] .h-20 > .shrink-0:last-child > .sm\:flex { column-gap: .5rem; }
  nav[aria-label="Hauptnavigation"] .h-20 > .shrink-0:last-child > .sm\:flex a[href="kontakt.html"] { padding-left: 1rem; padding-right: 1rem; }
}
/* sehr schmale Handys: Logo etwas kleiner, damit Such-Button und Menü-Button nebeneinander passen */
@media (max-width: 379px) {
  nav[aria-label="Hauptnavigation"] .h-20 { column-gap: .5rem; }
  nav[aria-label="Hauptnavigation"] .h-20 > a.shrink-0 img { height: 2.5rem; }
  nav[aria-label="Hauptnavigation"] .mnav-toggle { padding: 0 .7rem; }
  .hs-toggle { width: 2.75rem; height: 2.75rem; }
  .hs-panel .hs-go { padding: 0 .85rem; }
}
@media (max-width: 479px) {
  .hs-field input[type="search"] { font-size: 16px !important; }
  .hs-panel .hs-go { padding: 0 .95rem; }
  .hs-inner { padding: .625rem .75rem .75rem; }
}
@media (prefers-reduced-motion: reduce) { .hs-toggle { transition: none; } }
@media print { .hs-toggle, .hs-panel { display: none !important; } }

/* Startseite: Suchfeld direkt unter der Hero-Überschrift */
.xs-hsearch { max-width: 36rem; margin: 1.1rem 0 1.25rem; }
.xs-hsearch .w247-slabel { color: var(--navy-900, #0f172a); font-size: 1.0625rem; margin-bottom: .4rem; }
.xs-hsearch input[type="search"] { border-color: var(--gold-400, #fbbf24); box-shadow: 0 10px 26px -16px rgba(19,40,92,.65); }
.xs-hsearch .w247-out { position: relative; z-index: 6; }
.w247-search-rest { margin-bottom: 1.25rem; }
@media (max-width: 640px) {
  .xs-hsearch { margin: .85rem 0 1rem; }
  .xs-hsearch input[type="search"], .xs-hsearch .w247-sbtn { height: 3.25rem; }
}
