@font-face{font-family:'Figtree';font-style:normal;font-weight:400 800;font-display:optional;src:url(../fonts/figtree/figtree-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Figtree';font-style:normal;font-weight:400 800;font-display:optional;src:url(../fonts/figtree/figtree-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--bg:#fff;--card:#fff;--ink:#1f2225;--txt:#3a4248;--mut:#6a7178;--line:#e6e8ea;--accent:#436f9a;--cta:#b61c1c;--cta-d:#9a1717;--soft:#f5f7f9;--field-bd:#cfd6dd;--radius:14px;--disp:var(--font-heading);--font-body:'Figtree',system-ui,-apple-system,sans-serif;--font-heading:var(--font-body);--body-font:var(--font-body);--body-size:16px;--body-weight:400;--body-lh:1.55;--h1-font:var(--font-heading);--h1-size:30px;--h1-weight:800;--h1-lh:1.15;--h2-font:var(--font-heading);--h2-size:24px;--h2-weight:800;--h2-lh:1.2;--h3-font:var(--font-heading);--h3-size:19px;--h3-weight:800;--h3-lh:1.3;--h4-font:var(--font-heading);--h4-size:16px;--h4-weight:700;--h4-lh:1.35;--nav-font:var(--font-body);--nav-size:14px;--nav-weight:600;--nav-lh:1.2;--footer-font:var(--font-body);--footer-size:14px;--footer-weight:400;--footer-lh:1.6;--footer-bg:#1c2024;--footer-text:#c9ced4;--footer-link:#c9ced4;--footer-heading:#ffffff;--header-bg:var(--card);--header-fg:var(--ink);--header-link:var(--ink);--card-border:var(--line);--card-radius:var(--radius);--field-bg:var(--card);--field-focus:var(--accent);--btn-radius:10px;--error:#c62828;--success:#27ae60;--on-accent:#fff;--accent-2:color-mix(in srgb,var(--accent) 70%,#fff);--accent-d:color-mix(in srgb,var(--accent) 82%,#000);--btn-bg:var(--card);--btn-fg:var(--ink);--btn-hover:var(--soft);--btn-pad:12px 22px;--btn-size:14px;--mega-bg:var(--card);--mega-fg:var(--ink);--oc-bg:var(--card);--oc-fg:var(--ink);--header-h:78px;--hero-overlay-nav:#fff;--hero-overlay-dim:rgba(0,0,0,.45);--hero-text:#fff;--hero-img-dim:.62;--hero-title-size:40px;--hero-pad:46px;--prose-h-mt:1.5em;--prose-h-mb:.5em;--prose-p-mb:1em;--prose-li-mb:.5em;--field-radius:9px;--faq-q:var(--ink);--faq-a:var(--txt);--faq-icon:var(--accent);--faq-line:var(--line);--card-fg:var(--ink);--card-hover-bg:var(--soft);--card-hover-fg:var(--ink);--card-title-size:15.5px;--card-title-weight:700;--card-title-lh:1.25;--card-text-size:14px;--card-text-weight:400;--card-text-lh:1.55;--card-shadow:none;--card-shadow-hover:none;--btn-shadow:none;--btn-shadow-hover:none;--shadow-color:rgba(0,0,0,0.15);--lead-font:var(--font-body);--lead-size:18px;--lead-weight:400;--lead-lh:1.6;--small-font:var(--font-body);--small-size:13.5px;--small-weight:400;--small-lh:1.5;--sw-small:1.5rem;--sw:2.75rem;--sw-large:4.5rem;--h-mb:.5em;--h-mb-tight:.3em;--kicker-size:var(--small-size);--kicker-color:var(--accent-text,var(--accent));--kicker-weight:800;--kicker-ls:.08em;--kicker-transform:uppercase;--kicker-mb:.6em;--kicker-color-dark:#8fb0d6}
/* === Kern-Dark-Theme (§3.2 token-getrieben). Nur Neutrale; Portal-Akzent/-Branding bleibt.
      Default = systemabhaengig (prefers-color-scheme), Toggle setzt data-theme auf <html>.
      a11y-Feinschliff (Akzent-Kontrast, Hero-Overlays, Bilder) = Folgeschritt. === */
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){color-scheme:dark;--accent-text:var(--accent);--bg:#0f1216;--card:#1c2127;--ink:#eef0f2;--txt:#c8cdd2;--mut:#949aa1;--line:#333a42;--soft:#181d22;--field-bd:#3a424b;--footer-bg:#0b0e11;--shadow-color:rgba(0,0,0,.55);--body-color:var(--ink);--card-fg:var(--ink);--card-hover-fg:var(--ink);--card-hover-bg:var(--soft);--card-border:var(--line);--btn-bg:var(--card);--btn-fg:var(--ink);--btn-hover:var(--soft);--field-bg:var(--card);--mega-bg:var(--card);--mega-fg:var(--ink);--oc-bg:var(--card);--oc-fg:var(--ink);--header-bg:var(--card);--header-fg:var(--ink);--header-link:var(--ink);--faq-q:var(--ink);--faq-a:var(--txt)}}
:root[data-theme="dark"]{color-scheme:dark;--accent-text:var(--accent);--bg:#0f1216;--card:#1c2127;--ink:#eef0f2;--txt:#c8cdd2;--mut:#949aa1;--line:#333a42;--soft:#181d22;--field-bd:#3a424b;--footer-bg:#0b0e11;--shadow-color:rgba(0,0,0,.55);--body-color:var(--ink);--card-fg:var(--ink);--card-hover-fg:var(--ink);--card-hover-bg:var(--soft);--card-border:var(--line);--btn-bg:var(--card);--btn-fg:var(--ink);--btn-hover:var(--soft);--field-bg:var(--card);--mega-bg:var(--card);--mega-fg:var(--ink);--oc-bg:var(--card);--oc-fg:var(--ink);--header-bg:var(--card);--header-fg:var(--ink);--header-link:var(--ink);--faq-q:var(--ink);--faq-a:var(--txt)}
/* Dark: dekorative Anlass-SVG-Kacheln beruhigen (fest codierte Farbverlaeufe wirken auf Dunkel grell) */
:root[data-theme="dark"] .ads-card-img svg{filter:saturate(.8) brightness(.85)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .ads-card-img svg{filter:saturate(.8) brightness(.85)}}
/* Dark: Inhalts-Karten mit hartkodiertem #fff auf Theme-Surface umlenken (Badges/Toggles bleiben weiss) */
:root[data-theme="dark"] .faq-item,:root[data-theme="dark"] .rev-card,:root[data-theme="dark"] .fcard{background:var(--card)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .faq-item,:root:not([data-theme="light"]) .rev-card,:root:not([data-theme="light"]) .fcard{background:var(--card)}}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--body-color,var(--ink));font-family:var(--body-font);font-size:var(--body-size);font-weight:var(--body-weight);line-height:var(--body-lh);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}a{color:inherit;text-decoration:none}
.wrap{max-width:1140px;margin:0 auto;padding:0 40px}
.wrap-large{max-width:1280px;margin:0 auto;padding:0 40px}
.wrap-narrow{max-width:992px;margin:0 auto;padding:0 40px}
.wrap-small{max-width:768px;margin:0 auto;padding:0 40px}
.wrap-full{max-width:none;margin:0 auto;padding:0 40px}
@media(max-width:700px){.wrap,.wrap-large,.wrap-narrow,.wrap-small,.wrap-full{padding:0 18px}}
.demobar{background:var(--ink);color:#fff;font-size:13px}
.demobar .wrap{display:flex;align-items:center;gap:12px;height:40px}
.demobar b{opacity:.7;font-weight:600}
.demobar button{background:#33383d;color:#fff;border:0;border-radius:8px;padding:6px 14px;font:inherit;font-weight:600;cursor:pointer}
.demobar button.active{background:var(--accent)}
header{display:contents}
header>.section-wrapper:has(.hbar){position:sticky;top:0;z-index:80;background:var(--header-bg)}
/* section-wrapper spacing & divider utilities (kept on the wrapper, not inside the section) */
.section-wrapper.sw-pad-top-large{padding-top:var(--sw-large)}
.section-wrapper.sw-pad-top{padding-top:var(--sw)}
.section-wrapper.sw-pad-top-small{padding-top:var(--sw-small)}
.section-wrapper.sw-pad-bottom-large{padding-bottom:var(--sw-large)}
.section-wrapper.sw-pad-bottom{padding-bottom:var(--sw)}
.section-wrapper.sw-pad-bottom-small{padding-bottom:var(--sw-small)}
/* Block-Spacing (cms-block Wrapper um einzelne Bloecke) — gleiche Werte wie Section-Wrapper */
.cms-block.sw-pad-top-large{padding-top:var(--sw-large)}
.cms-block.sw-pad-top{padding-top:var(--sw)}
.cms-block.sw-pad-top-small{padding-top:var(--sw-small)}
.cms-block.sw-pad-bottom-large{padding-bottom:var(--sw-large)}
.cms-block.sw-pad-bottom{padding-bottom:var(--sw)}
.cms-block.sw-pad-bottom-small{padding-bottom:var(--sw-small)}
.section-wrapper.sw-marg-top-large{margin-top:var(--sw-large)}
.section-wrapper.sw-marg-top{margin-top:var(--sw)}
.section-wrapper.sw-marg-top-small{margin-top:var(--sw-small)}
.section-wrapper.sw-marg-bottom-large{margin-bottom:var(--sw-large)}
.section-wrapper.sw-marg-bottom{margin-bottom:var(--sw)}
.section-wrapper.sw-marg-bottom-small{margin-bottom:var(--sw-small)}
.section-wrapper.sw-divider{border-bottom:1px solid var(--line)}
.hbar{display:flex;align-items:center;justify-content:space-between;height:78px;gap:20px;color:var(--header-fg)}
.logo{font-family:var(--disp);font-weight:800;font-size:22px;letter-spacing:-.02em;color:var(--accent-text,var(--accent));cursor:pointer;white-space:nowrap}
.logo span{color:var(--cta)}
.logo-img{height:25px;width:auto;display:block;max-height:25px;object-fit:contain;vertical-align:middle}
.searchpill{display:flex;align-items:center;border:1px solid var(--line);border-radius:999px;box-shadow:0 1px 6px rgba(0,0,0,.06);height:54px;cursor:pointer;transition:.15s;background:var(--card)}
.searchpill:hover{box-shadow:0 2px 12px rgba(0,0,0,.14)}
.searchpill .seg{padding:0 18px;display:flex;flex-direction:column;justify-content:center;height:100%;border-right:1px solid var(--line)}
.searchpill .seg:last-of-type{border-right:0}
.searchpill .seg .k{font-size:12px;font-weight:700}.searchpill .seg .v{font-size:13px;color:var(--mut)}
.searchpill .go{width:40px;height:40px;border-radius:50%;background:var(--cta);color:var(--on-accent);display:grid;place-items:center;margin:0 7px 0 4px;font-size:16px}
.nav-search{display:flex;align-items:center;flex:1;max-width:360px;min-width:160px;border:1px solid var(--line);border-radius:999px;padding:0 14px;background:var(--soft);transition:border-color .15s}
.nav-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(67,111,154,.1)}
.nav-search-icon{color:var(--mut);font-size:16px;margin-right:8px}
.nav-search-input{border:0;outline:0;background:transparent;font:inherit;font-size:14px;padding:9px 0;width:100%;color:var(--ink)}
/* KI-Zauberstab im Navbar-Suchfeld (layout.cfm / blueprint-ui.js): einzeilig, an = Akzent */
.nav-ki{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:30px;height:30px;margin:0 -8px 0 6px;border:0;border-radius:50%;background:transparent;color:var(--mut);cursor:pointer;transition:background .15s,color .15s}
.nav-ki[hidden]{display:none}
.nav-ki:hover{color:var(--accent-text,var(--accent));background:color-mix(in srgb,var(--accent) 10%,transparent)}
.nav-ki:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.nav-ki[aria-pressed="true"]{color:var(--on-accent);background:var(--accent)}
.nav-search.is-ki{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--soft))}
@media(prefers-reduced-motion:reduce){.nav-ki{transition:none}}
/* Live-Trefferzahl unter der Navbar-Suche (blueprint-ui.js liveSearch) */
.nav-search{position:relative}
.nav-sc{position:absolute;left:0;right:0;top:calc(100% - -6px);z-index:60;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.14);padding:6px;display:flex;flex-direction:column}
.nav-sc[hidden]{display:none}
.herosearch .gobtn{white-space:nowrap}
.herosearch .gobtn.is-live{font-variant-numeric:tabular-nums}
.nav-sc-all{border:0;background:color-mix(in srgb,var(--accent) 10%,var(--card));color:var(--accent-text,var(--accent));font:inherit;font-size:13.5px;font-weight:700;text-align:left;padding:9px 10px;border-radius:8px;cursor:pointer}
.nav-sc-all:hover{background:color-mix(in srgb,var(--accent) 18%,var(--card))}
.nav-sc-it{display:block;padding:7px 10px;font-size:13px;color:var(--ink);text-decoration:none;border-radius:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-sc-it:hover{background:var(--soft)}
.nav-sc-it.is-active{background:var(--soft);outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:-2px}
.nav-sc-all{display:block;text-decoration:none}
.nav-search:has(.nav-sc:not([hidden])){overflow:visible}
/* Typeahead mobil: Offcanvas-Suchfeld, Tap-Ziele, Scrollen bei vielen Treffern */
.oc-offersearch{position:relative}
.herosearch:not(.is-float){position:relative}
.herosearch:not(.is-float):has(.hero-sc:not([hidden])){z-index:90}
.nav-sc-fl{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px 6px;border-bottom:1px solid var(--line)}
.nav-sc-fl-l{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--mut);margin-right:2px}
.nav-sc-chip{position:relative;border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);background:color-mix(in srgb,var(--accent) 8%,var(--card));color:var(--ink);font:inherit;font-size:12.5px;padding:4px 9px;border-radius:999px;cursor:pointer;line-height:1.3}
.nav-sc-chip:hover{background:color-mix(in srgb,var(--accent) 16%,var(--card))}
.nav-sc-chip .vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (pointer:coarse){.nav-sc-chip{min-height:36px;padding:6px 12px}}
.nav-sc.hero-sc{z-index:70;left:0;right:auto;width:min(100%,380px);top:calc(100% + 6px);background:var(--card,#fff);opacity:1;text-align:left}
.nav-sc.hero-sc .nav-sc-h{text-align:left}
@media (max-width:560px){.nav-sc.hero-sc{width:100%}}
.hero2:has(.hero-sc:not([hidden])){overflow:visible}
.oc-offersearch-input{font-size:16px}
.nav-sc.oc-sc{top:calc(100% + 6px);left:0;right:0;max-height:min(60vh,420px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;z-index:70}
.nav-sc-it{white-space:normal;line-height:1.3}
@media (pointer:coarse){.nav-sc-it,.nav-sc-h{min-height:44px;display:flex;align-items:center}.nav-sc-h{min-height:0;padding:12px 10px 4px}}
.nav-sc-h{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--mut);padding:8px 10px 3px}
.nav-search--hero{transition:opacity .25s;overflow:hidden;flex:1;max-width:360px;min-width:160px}
.nav-search--hero.is-hidden{opacity:0;max-width:0;min-width:0;padding:0;border:0;margin:0;flex:0;overflow:hidden}
@media(max-width:920px){.nav-search{display:none}}
.hnav{display:flex;align-items:center;gap:8px;white-space:nowrap}
.hnav a{padding:10px 14px;border-radius:999px;color:var(--nav-color,var(--header-link));font-family:var(--nav-font);font-weight:var(--nav-weight);font-size:var(--nav-size);line-height:var(--nav-lh)}.hnav a:hover{background:var(--soft)}
.hnav a i{font-size:15px}
.hnav a.hnav-icon{width:40px;height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-size:16px;color:var(--accent-text,var(--accent));background:color-mix(in srgb,var(--accent) 12%,transparent)}
.hnav a.hnav-icon:hover{background:color-mix(in srgb,var(--accent) 20%,transparent)}
/* Visuell versteckt, aber im DOM/Accessibility-Tree + crawlbar (Ankertext bei Icon-only-Links, SEO) */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hnav .menu{border:1px solid var(--line);border-radius:999px;display:flex;align-items:center;gap:10px;padding:6px 8px 6px 14px}
.hnav .menu .av{width:30px;height:30px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;font-size:13px;font-weight:700}
@media(max-width:920px){.searchpill .seg:nth-child(3){display:none}.hnav a:not(.menu){display:none}}
@media(max-width:560px){.searchpill{height:46px}.searchpill .seg{padding:0 12px}.logo{font-size:18px}}
.view{display:none}.view.active{display:block}
.cats{display:flex;gap:30px;padding:18px 0 14px;border-bottom:1px solid var(--line);scrollbar-width:none}
.cats::-webkit-scrollbar{display:none}
.cat{display:flex;flex-direction:column;align-items:center;gap:7px;color:var(--mut);font-size:12.5px;font-weight:600;white-space:nowrap;cursor:pointer;padding-bottom:10px;border-bottom:2px solid transparent;flex:0 0 auto}
.cat .ic{font-size:22px}.cat.active,.cat:hover{color:var(--ink);border-color:var(--ink)}
.pagehead{padding:26px 0 6px}
.pagehead--compact{padding:12px 0 2px}
/* AUSNAHME (bewusst, vom Auftraggeber freigegeben): einzige Stelle, an der eine
   Heading-Groesse NICHT aus dem Theme-Token kommt. Nur /angebote (pagehead--compact
   wird ausschliesslich dort verwendet, views/offer-list.cfm). */
.pagehead--compact h1{font-size:1.8rem}
h1{font-family:var(--h1-font);font-size:var(--h1-size);font-weight:var(--h1-weight);letter-spacing:-.02em;line-height:var(--h1-lh);color:var(--h1-color,inherit);margin:0 0 var(--h-mb)}
h2{font-family:var(--h2-font);font-size:var(--h2-size);font-weight:var(--h2-weight);line-height:var(--h2-lh);color:var(--h2-color,inherit);margin:0 0 var(--h-mb)}
h3{font-family:var(--h3-font);font-size:var(--h3-size);font-weight:var(--h3-weight);line-height:var(--h3-lh);color:var(--h3-color,inherit);margin:0 0 var(--h-mb)}
h4{font-family:var(--h4-font);font-size:var(--h4-size);font-weight:var(--h4-weight);line-height:var(--h4-lh);color:var(--h4-color,inherit);margin:0 0 var(--h-mb)}
p{margin-bottom:var(--body-mb,0)}
.lead{color:var(--lead-color,var(--mut));font-family:var(--lead-font);font-size:var(--lead-size);font-weight:var(--lead-weight);line-height:var(--lead-lh);margin-top:8px;max-width:70ch}.lead strong{color:var(--ink)}
/* Rolle "small" (Labels, Kicker, Meta, Counts) — zentral ueber Theme-Token, s. §3.2 */
.small{font-family:var(--small-font);font-size:var(--small-size);font-weight:var(--small-weight);line-height:var(--small-lh);color:var(--small-color,inherit)}
.kick,.mag-kicker,.eeat-kicker,.eeat-logos .ll,.insta-kicker,.mo-feat-kicker,.gs-kicker,.wb-teaser-kicker,.fb-kicker,.omag-kick{display:block;font-size:var(--kicker-size);font-weight:var(--kicker-weight);letter-spacing:var(--kicker-ls);text-transform:var(--kicker-transform);color:var(--kicker-color);margin-bottom:var(--kicker-mb)}
/* auf dunklem Grund: eigener Kicker-Ton (Kontrast) */
.mag-kicker,.mo-feat-kicker{color:var(--kicker-color-dark)}

.crumb{font-size:13px;color:var(--mut)}.crumb a:hover{text-decoration:underline}
.crumb-bar{padding-top:14px;padding-bottom:6px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:26px 22px;padding:24px 0 24px}
@media(max-width:1100px){.grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.grid{grid-template-columns:1fr}}
.card{cursor:pointer}
.card .imgwrap{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:298/213;background:var(--soft)}
.card .imgwrap img{width:100%;height:100%;object-fit:cover;transition:.3s}
.card:hover .imgwrap img{transform:scale(1.04)}
.card .heart{position:absolute;top:12px;right:12px;width:36px;height:36px;display:grid;place-items:center;color:#fff;font-size:22px;filter:drop-shadow(0 1px 4px rgba(0,0,0,.45))}
.card .tag{position:absolute;top:12px;left:12px;background:var(--card);color:var(--ink);border-radius:999px;padding:5px 11px;font-size:12px;font-weight:700;box-shadow:0 1px 4px rgba(0,0,0,.12)}
/* Kategorie-Chip ist bedienbar (filtert die Liste), muss also auch so aussehen */
.card .tag--cat{cursor:pointer;transition:background .12s,color .12s}
.card .tag--cat:hover{background:var(--accent);color:#fff}
.card .tag--cat:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.card .loc{font-size:12px;color:var(--accent-text,var(--accent));font-weight:700;margin:10px 0 2px;text-transform:uppercase;letter-spacing:.02em}
.card .ttl{font-family:var(--disp);font-weight:var(--card-title-weight);font-size:var(--card-title-size);line-height:var(--card-title-lh)}
.card .meta{color:var(--mut);font-size:var(--card-text-size);font-weight:var(--card-text-weight);line-height:var(--card-text-lh);margin-top:2px}
.card .price{margin-top:4px;font-size:14.5px}
/* ===== Angebotscards Redesign V1 (reversibel via body.cards-v1) — gilt fuer Angebote-Grid + Home-Slider
   (beliebte/empfohlen). NICHT fuer Listenansicht, topcard oder featured/sponsored (fcard). Bild-aspect-ratio
   bleibt unveraendert; nur Rahmen/Schatten/Hover/Innenabstand. ===== */
body.cards-v1 .hits:not(.listmode) .card,
body.cards-v1 .ts-track .card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;padding-bottom:14px;transition:transform .28s cubic-bezier(.2,.7,.3,1),box-shadow .28s,border-color .2s;display:flex;flex-direction:column}
body.cards-v1 .hits:not(.listmode) .card .imgwrap,body.cards-v1 .ts-track .card .imgwrap{flex:0 0 auto}
/* Slider: mehr Innenabstand, damit der Hover-Schatten nicht vom overflow-x-Container beschnitten wird */
body.cards-v1 .ts-track{padding-top:4px;padding-bottom:30px;align-items:stretch}
/* TOP-ANGEBOTE (.topcard): Preis auch unten auf gleicher Flucht (Flex-Spalte, tc-bd fuellt, price margin-top:auto) */
body.cards-v1 .ts-track .topcard{display:flex;flex-direction:column}
body.cards-v1 .ts-track .topcard .tc-img{flex:0 0 auto}
body.cards-v1 .ts-track .topcard .tc-bd{flex:1 1 auto;display:flex;flex-direction:column}
body.cards-v1 .ts-track .topcard .tc-bd .price{margin-top:auto;padding-top:8px}
/* Preis immer unten, alle Karten fluchten (margin-top:auto schiebt ihn ans Kartenende) */
body.cards-v1 .hits:not(.listmode) .card .price,body.cards-v1 .ts-track .card .price{margin-top:auto;padding-top:8px}
body.cards-v1 .hits:not(.listmode) .card:hover,
body.cards-v1 .ts-track .card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(20,30,45,.16);border-color:transparent}
body.cards-v1 .hits:not(.listmode) .card .imgwrap,
body.cards-v1 .ts-track .card .imgwrap{border-radius:0;box-shadow:none;margin-bottom:12px}
body.cards-v1 .hits:not(.listmode) .card .loc,body.cards-v1 .hits:not(.listmode) .card .ttl,body.cards-v1 .hits:not(.listmode) .card .meta,body.cards-v1 .hits:not(.listmode) .card .price,
body.cards-v1 .ts-track .card .loc,body.cards-v1 .ts-track .card .ttl,body.cards-v1 .ts-track .card .meta,body.cards-v1 .ts-track .card .price{padding-left:15px;padding-right:15px}
body.cards-v1 .hits:not(.listmode) .card .loc,body.cards-v1 .ts-track .card .loc{margin-top:0}.card .price b{font-weight:800}
.card .ref{color:var(--mut);font-size:12.5px;margin-top:2px}
.card-icon{font-size:var(--card-icon-size,2rem);color:var(--card-icon-color,var(--accent));line-height:1;margin-bottom:10px}
.card--filled .card-icon{color:inherit}
/* Farbige (gefuellte) Cards: Theme-Vordergrund + Hover (Bild-/Angebots-Cards unberuehrt) */
.card--filled{background:var(--card);color:var(--card-fg);padding:22px 20px;border-radius:var(--card-radius);box-shadow:var(--card-shadow);transition:background .2s ease,color .2s ease,box-shadow .2s ease}
.card--filled .ttl,.card--filled .loc,.card--filled .meta,.card--filled .price,.card--filled .ref,.card--filled .card-cta{color:inherit}
.card--filled:hover{background:var(--card-hover-bg);color:var(--card-hover-fg);box-shadow:var(--card-shadow-hover)}
.filters{display:flex;gap:10px;flex-wrap:wrap;padding:14px 0}
.chip{border:1px solid var(--line);border-radius:999px;padding:9px 16px;font-size:13.5px;font-weight:600;cursor:pointer;background:var(--card)}
.chip:hover{border-color:var(--ink)}
.lcount{font-size:14px;color:var(--mut);font-weight:600;padding:6px 0 2px}
.det-sub{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:10px;padding:8px 0 20px}
.det-sub .info{font-size:14px;font-weight:600}.det-sub .info .dot{color:var(--mut);margin:0 6px}
.det-actions{display:flex;gap:12px}
.det-actions a{font-weight:700;font-size:14px;padding:8px 14px;border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;gap:6px;transition:background .15s,border-color .15s}
.det-actions a:hover{background:var(--soft);border-color:var(--accent)}
.det-actions [data-fav].on{color:var(--cta);border-color:var(--cta)}
.det-actions a{font-weight:700;font-size:14px;padding:8px 12px;border-radius:8px}.det-actions a:hover{background:var(--soft);text-decoration:underline}
.det-actions a.det-act-inv{background:var(--ink);color:var(--card);border-color:var(--ink)}
.det-actions a.det-act-inv:hover{background:var(--accent);color:#fff;border-color:var(--accent);text-decoration:none}
.holiday-hero-title{margin:0 0 8px;font-size:40px;line-height:1.14;letter-spacing:-.01em;text-shadow:0 2px 14px rgba(0,0,0,.4)}
.holiday-hero-wish{margin:0;max-width:58ch;line-height:1.7;font-size:1.15rem!important;font-weight:500;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.55)}
@media(max-width:600px){.holiday-hero-title{font-size:24px!important}.holiday-hero-wish{font-size:.95rem!important;line-height:1.6}}
.oc-offersearch-sec{display:none}
.oc-offersearch{display:flex;align-items:center;gap:8px;margin:0 14px;background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:6px 10px}
.oc-offersearch .oc-search-icon{color:var(--mut);font-size:18px;flex:0 0 auto}
.oc-offersearch-input{flex:1 1 auto;min-width:0;border:0;background:transparent;font:inherit;color:var(--ink);outline:none;padding:6px 0}
.oc-offersearch-go{flex:0 0 auto;border:0;background:var(--accent);color:#fff;border-radius:8px;width:36px;height:36px;font-size:18px;line-height:1;cursor:pointer}
@media(max-width:600px){.oc-offersearch-sec{display:block}}
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:8px;border-radius:18px;overflow:hidden;height:46vh;min-height:340px;position:relative}
.gallery .g0{grid-row:1/3}.gallery img{width:100%;height:100%;object-fit:cover}
.gallery .allbtn{position:absolute;right:16px;bottom:16px;background:var(--card);color:var(--ink);border:1px solid var(--ink);border-radius:10px;padding:8px 14px;font-weight:700;font-size:13px;cursor:pointer}
@media(max-width:700px){.gallery{grid-template-columns:1fr 1fr;height:auto}.gallery .g0{grid-row:auto;grid-column:1/3}.gallery img{height:200px}}
.detbody{display:grid;grid-template-columns:1fr 380px;gap:60px;padding:30px 0 10px;align-items:start}
@media(max-width:980px){.detbody{grid-template-columns:1fr}}
.detbody h2{margin:0 0 var(--h-mb)}
.detsec{padding:26px 0;border-top:1px solid var(--line)}.detsec:first-child{border-top:0;padding-top:0}
/* Kategorie-/Region-Chips (internes Linking auf dem Angebotsdetail) */
.oc-chips{display:flex;flex-wrap:wrap;gap:8px}
.oc-chip{display:inline-flex;align-items:center;font-size:13px;font-weight:600;text-decoration:none;
  padding:7px 14px;border-radius:999px;border:1px solid var(--line);color:var(--ink);background:var(--card);transition:border-color .15s,background .15s}
.oc-chip:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--card))}
.oc-chip--cat{background:color-mix(in srgb,var(--accent) 10%,var(--card));border-color:color-mix(in srgb,var(--accent) 30%,var(--line));color:var(--accent-text,var(--accent));font-weight:700}
#offerte{scroll-margin-top:96px}
/* Overlay: kein Frontend-Sticky-Header -> Formular eine hbar-Hoehe (78px) weiter unter/enger nach oben holen (96->18) */
.detail-ovl #offerte{scroll-margin-top:18px}
.detsec--nodiv{border-top:0}
.qf{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:6px}
@media(max-width:560px){.qf{grid-template-columns:repeat(2,1fr)}}
.qf .qfi .k{font-size:12px;color:var(--mut);text-transform:uppercase;letter-spacing:.03em}.qf .qfi .v{font-weight:700;font-size:15px}
.detbody p{color:var(--txt);margin-bottom:13px}
.incl{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:10px 22px}
@media(max-width:560px){.incl{grid-template-columns:1fr}}
.incl li{display:flex;gap:10px;align-items:flex-start;font-size:14.5px}.incl li::before{content:"\2713";color:var(--accent-text,var(--accent));font-weight:800}
.disc{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.disc span{border:1px solid var(--line);border-radius:999px;padding:8px 15px;font-weight:600;font-size:14px}.disc .more{background:var(--soft)}
.host{display:flex;gap:16px;align-items:center}.host img{width:64px;height:64px;border-radius:50%;object-fit:cover}
.detmap{border-radius:16px;overflow:hidden;height:300px;border:1px solid var(--line);position:relative;background:var(--soft)}
.detmap img{width:100%;height:100%;object-fit:cover;filter:saturate(.9)}
.detmap .circle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:58%;aspect-ratio:1;border-radius:50%;background:color-mix(in srgb,var(--accent) 16%,transparent);border:2px solid color-mix(in srgb,var(--accent) 60%,transparent)}
.detmap .rlabel{position:absolute;left:14px;bottom:14px;background:var(--card);color:var(--ink);border-radius:999px;padding:7px 14px;font-size:12.5px;font-weight:700;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.offercard{position:sticky;top:96px;border:1px solid var(--line);border-radius:16px;box-shadow:0 6px 26px rgba(0,0,0,.10);padding:24px;background:var(--card)}
.offercard.no-sticky{position:static}   /* JS: sticky nur wenn Karte in den Viewport passt */
.offercard .pr{font-size:24px;font-weight:800}.offercard .pr small{font-size:14px;font-weight:600;color:var(--mut)}
.offercard .sub2{color:var(--mut);font-size:13.5px;margin-top:2px}
.offercard .mini{border:1px solid var(--line);border-radius:12px;margin:16px 0;overflow:hidden}
.offercard .mini div{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:11px 14px;font-size:14px;border-bottom:1px solid var(--line)}
.offercard .mini div:last-child{border-bottom:0}
.offercard .mini span{color:var(--mut);flex:none}
.offercard .mini b{font-weight:700;text-align:right;min-width:0;overflow-wrap:anywhere}
.bigbtn{display:block;width:100%;text-align:center;background:var(--cta);color:var(--on-accent);border:0;border-radius:12px;padding:15px;font:inherit;font-weight:800;font-size:16px;cursor:pointer}
.bigbtn:hover{background:var(--cta-d)}
.offercard .note{text-align:center;color:var(--mut);font-size:13px;margin-top:12px}
.trustband{display:flex;align-items:center;gap:28px;flex-wrap:wrap;padding:18px 22px;background:var(--soft);border-radius:14px;margin-bottom:22px}
.trustband .lead2{font-family:var(--disp);font-weight:800;font-size:17px}
.trustband .logos{display:flex;gap:22px;flex-wrap:wrap;color:var(--mut);font-weight:800;opacity:.85}
.revgrid{display:grid;grid-template-columns:1fr 1fr;gap:22px 40px}
@media(max-width:680px){.revgrid{grid-template-columns:1fr}}
.rev .who{display:flex;align-items:center;gap:12px}
.rev .ava{width:42px;height:42px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;font-weight:700;font-size:var(--small-size)}
.rev .nm{font-weight:700;font-size:var(--small-size)}.rev .co{color:var(--mut);font-size:var(--small-size)}.rev .dt{color:var(--mut);font-size:var(--small-size)}
.rev p{margin:8px 0 0;color:var(--txt);font-size:var(--body-size)}
.revmore{display:grid;grid-template-columns:1fr 1fr;gap:22px 40px;max-height:0;overflow:hidden;transition:max-height .5s ease}
@media(max-width:680px){.revmore{grid-template-columns:1fr}}
.revmore.open{max-height:8000px}
.showall{margin-top:22px;border:1px solid var(--ink);background:var(--card);color:var(--ink);border-radius:10px;padding:12px 22px;font:inherit;font-weight:700;cursor:pointer}.showall:hover{background:var(--soft)}
.faqitem{border-bottom:1px solid var(--line);padding:16px 0;margin-bottom:0.4rem}
.faqitem summary{font-weight:700;font-size:16px;cursor:pointer;list-style:none;display:flex;justify-content:space-between}
.faqitem summary::-webkit-details-marker{display:none}.faqitem summary::after{content:"+";color:var(--accent-text,var(--accent))}.faqitem[open] summary::after{content:"\2013"}
.faqans{color:var(--txt);padding-top:8px;font-size:14.5px}
.te-form{background:var(--soft);border-radius:16px;padding:32px 28px}
.te-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 20px}
.te-grid .te-f.full,.te-grid .te-check,.te-grid .te-f-heading,.te-grid .te-f-desc{grid-column:1/-1}
.te-grid .te-f select{display:block;width:100%;margin-top:5px;padding:11px 12px;border:1px solid var(--field-bd);border-radius:9px;background:var(--card);color:var(--ink);font:inherit;font-size:14px;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236a7178' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}
.te-grid .te-f select:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}
/* 2-Spalten-Formular (col-left Felder + col-right Kommentar volle Hoehe) */
.te-2col{display:grid;grid-template-columns:1fr 1fr;gap:0 28px;grid-column:1/-1}
.te-2col-left{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;align-content:start}
.te-2col-left .te-f.full,.te-2col-left .te-check{grid-column:1/-1}
.te-2col-right{display:flex;flex-direction:column}
.te-2col-right .te-f{flex:1;display:flex;flex-direction:column}
.te-2col-right textarea{flex:1;min-height:200px}
@media(max-width:820px){.te-2col{grid-template-columns:1fr}.te-2col-right textarea{min-height:150px}}
@media(max-width:600px){.te-grid{grid-template-columns:1fr}.te-grid .te-f.half{grid-column:1/-1}.te-2col-left{grid-template-columns:1fr}}
.te-form legend{font-family:var(--disp);font-weight:800;font-size:16px;margin-bottom:14px}
.te-f{display:block;font-size:13.5px;color:var(--mut);font-weight:600;margin-bottom:2px}.te-f i{color:var(--cta);font-style:normal}
.te-f input,.te-f textarea{display:block;width:100%;margin-top:5px;padding:11px 12px;border:1px solid var(--field-bd);border-radius:var(--field-radius);background:var(--field-bg);color:var(--ink);font:inherit;font-size:14px}
.te-f input:focus,.te-f textarea:focus{outline:0;border-color:var(--field-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--field-focus) 20%,transparent)}
.te-row{display:flex;gap:10px;align-items:flex-end}.te-grow{flex:1}.te-nr{width:80px}.te-plz{width:100px}
.te-check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--txt);padding:4px 0}.te-check input{width:auto;margin:0;accent-color:var(--accent);width:16px;height:16px}
.te-check label{cursor:pointer;font-weight:400}
.te-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:6px;grid-column:1/-1}
.te-anrede{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.te-anrede label{display:flex;gap:6px;align-items:center;font-weight:600;color:var(--ink);font-size:14px}.te-anrede input{width:auto}
.te-submit{background:var(--cta);color:var(--on-accent);border:0;border-radius:10px;padding:12px 28px;font:inherit;font-weight:800;font-size:14px;cursor:pointer;white-space:nowrap;transition:opacity .15s}.te-submit:hover{background:var(--cta-d)}.te-submit:disabled{opacity:.4;cursor:not-allowed}
.te-f.te-invalid input,.te-f.te-invalid textarea,.te-f.te-invalid select{border-color:var(--error);box-shadow:0 0 0 2px rgba(198,40,40,.15)}
.te-f .te-error{display:none;font-size:11px;color:var(--error);margin-top:3px;font-weight:400}
.te-f.te-invalid .te-error{display:block}
[data-termin] .te-termin-row{display:flex;align-items:center;gap:16px 18px;flex-wrap:wrap;margin-top:0}
[data-termin] .te-termin-date{width:auto;max-width:210px;margin-top:0}
[data-termin] .te-termin-date:disabled{opacity:.45;cursor:not-allowed}
[data-termin] .te-termin-open{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:400;color:var(--txt);cursor:pointer;user-select:none;margin:0}
[data-termin] .te-termin-open span{display:inline;margin:0;font-size:14px;font-weight:400;color:var(--txt)}
[data-termin] .te-termin-open input{width:16px;height:16px;margin:0;padding:0;accent-color:var(--accent)}
[data-termin] .te-termin-alt{margin-top:12px;width:100%}
[data-termin] .te-termin-alt[hidden]{display:none}
.te-check.te-invalid{color:var(--error)}
.te-check.te-invalid label{color:var(--error)}
.te-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:12px 24px;border-radius:10px;font-size:14px;font-weight:600;z-index:9999;animation:te-toast-in .3s ease}
.te-toast-err{background:var(--error);color:#fff}
@keyframes te-toast-in{from{opacity:0;transform:translateX(-50%) translateY(20px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
footer{border-top:1px solid var(--line);background:var(--soft);margin-top:40px}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:18px;padding:34px 40px;font-size:14px;color:var(--mut)}footer b{color:var(--ink)}


/* offcanvas */
.ovl{position:fixed;inset:0;background:rgba(0,0,0,.45);opacity:0;visibility:hidden;transition:.25s;z-index:199}
.ovl.open{opacity:1;visibility:visible}
.offcanvas{position:fixed;top:0;right:0;height:100%;width:340px;max-width:88vw;background:var(--oc-bg);color:var(--oc-fg);z-index:200;transform:translateX(100%);transition:transform .28s ease;box-shadow:-8px 0 30px rgba(0,0,0,.18);display:flex;flex-direction:column}
.offcanvas.open{transform:none}
.oc-head{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--line)}
.oc-head b{font-size:17px}
.oc-x{border:0;background:none;font-size:22px;cursor:pointer;color:var(--mut)}
.oc-body{padding:0 0 10px;overflow-y:auto;-webkit-overflow-scrolling:touch}
.oc-sec{padding:8px 0;border-bottom:1px solid var(--line)}
.oc-sec:last-child{border-bottom:0}
.oc-lang-sec{display:flex;gap:12px;padding:10px 20px;justify-content:space-between;align-items:center}
.oc-lang-pills{display:flex;gap:4px}
.oc-lang-pill{padding:6px 16px;border-radius:20px;font-weight:700;font-size:13px;text-decoration:none;color:var(--mut);background:var(--soft);border:1px solid var(--line)}
.oc-lang-pill.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.oc-theme{display:inline-flex;background:var(--soft);border:1px solid var(--line);border-radius:20px;padding:3px}
.oc-theme-btn{border:0;background:transparent;color:var(--mut);width:34px;height:28px;border-radius:16px;cursor:pointer;font-size:14px;display:grid;place-items:center;line-height:1;transition:background .15s,color .15s}
.oc-theme-btn.on{background:var(--card);color:var(--accent-text,var(--accent));box-shadow:0 1px 3px var(--shadow-color)}
.oc-hotline{display:flex;align-items:center;gap:14px;padding:14px 20px;text-decoration:none;color:var(--ink)}
.oc-advs{display:flex;flex-shrink:0}
.oc-advs img{width:38px;height:38px;border-radius:50%;object-fit:cover;border:2px solid var(--bg)}
.oc-advs img+img{margin-left:-10px}
.oc-hotline-txt{display:flex;flex-direction:column;gap:2px}
.oc-hotline-txt strong{font-size:15px}
.oc-hotline-txt small{font-size:12px;color:var(--mut)}
.oc-sec .t{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--mut);padding:8px 20px;font-weight:700}
.oc-link{display:flex;align-items:center;gap:12px;padding:12px 20px;font-weight:600;cursor:pointer;margin-bottom:var(--nav-mb,0)}
.oc-link:hover{background:var(--soft)}
.oc-link .i{width:22px;text-align:center;color:var(--accent-text,var(--accent))}
.oc-foot{margin-top:auto;padding:18px 20px;border-top:1px solid var(--line);color:var(--mut);font-size:13px}
.hbtn{border:1px solid var(--line);background:var(--card);border-radius:999px;display:flex;align-items:center;gap:10px;padding:6px 8px 6px 14px;cursor:pointer;font:inherit;font-weight:600}
.hbtn .bars{font-size:15px}.hbtn .av{width:30px;height:30px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;font-size:12px;font-weight:700}

/* HOME discovery */
.hero2{position:relative;border-radius:22px;overflow:hidden;min-height:50vh;display:flex;align-items:center}
.hero2 img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(var(--hero-img-dim))}
.hero2 .h2in{position:relative;color:var(--hero-text);padding:var(--hero-pad);max-width:66vw}
/* Hero-Headings folgen der Hero-Textfarbe (weiss ueber Bild/Video), NICHT der globalen --h1-color aus den Settings */
.hero2 h1,.hero2 h2,.hero2 h3{color:var(--hero-text)}
.hero2 p{font-size:calc(1.5 * var(--body-size));margin-top:10px;opacity:.95}
.herosearch{margin-top:22px;background:var(--card);border-radius:16px;padding:10px;display:flex;gap:8px;flex-wrap:wrap;box-shadow:0 12px 30px rgba(0,0,0,.25)}
/* Wettbewerb-Hinweis im Hero. Vorher eine blasse, halbtransparente Pille, die im
   Bild unterging — jetzt eine eigenstaendige Karte in der CTA-Farbe mit Kicker,
   Titel des laufenden Wettbewerbs und sichtbarem Handlungsaufruf. */
.hero-wett{display:inline-flex;align-items:center;gap:14px;margin-top:20px;padding:12px 18px;border-radius:16px;background:var(--cta);color:var(--on-accent);text-decoration:none;box-shadow:0 10px 26px rgba(0,0,0,.28);transition:transform .16s ease,box-shadow .16s ease,background .16s ease;max-width:100%}
.hero-wett:hover{background:var(--cta-d);transform:translateY(-2px);box-shadow:0 14px 32px rgba(0,0,0,.34)}
.hero-wett:focus-visible{outline:3px solid #fff;outline-offset:3px}
.hero-wett .hw-ic{flex:0 0 auto;font-size:26px;line-height:1}
.hero-wett .hw-txt{display:flex;flex-direction:column;gap:2px;min-width:0;text-align:left}
.hero-wett .hw-kicker{font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;opacity:.85}
.hero-wett .hw-main{font-size:16px;font-weight:800;line-height:1.25;overflow:hidden;text-overflow:ellipsis}
.hero-wett .hw-cta{flex:0 0 auto;margin-left:4px;padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.2);font-size:13.5px;font-weight:800;white-space:nowrap}
.hero-wett:hover .hw-cta{background:rgba(255,255,255,.32)}
@media(max-width:600px){.hero-wett{gap:10px;padding:10px 14px}.hero-wett .hw-cta{display:none}.hero-wett .hw-main{font-size:14.5px}}
.herosearch input,.herosearch .hs-q{flex:1;min-width:180px;border:0;outline:0;padding:12px 14px;font:inherit;font-size:15px;border-radius:10px;background:var(--soft);color:var(--ink)}
/* Hero-Feld = Textarea: einzeilig wie ein Suchfeld (kein Umbruch, kein Griff), im KI-Modus 3 Zeilen */
.herosearch .hs-q{--hs-lh:22px;--hs-py:16px;padding-top:var(--hs-py);padding-bottom:var(--hs-py);line-height:var(--hs-lh);height:calc(var(--hs-lh) + 2 * var(--hs-py));resize:none;overflow:hidden;white-space:nowrap;align-self:stretch;transition:height .15s ease}
.herosearch .hs-q:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}
.herosearch .pick{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:0 14px;font:inherit;font-weight:600;cursor:pointer;color:var(--ink)}
.herosearch .gobtn{background:var(--cta);color:var(--on-accent);border:0;border-radius:10px;padding:0 22px;font:inherit;font-weight:800;cursor:pointer}
.sec-h{display:flex;justify-content:space-between;align-items:baseline;margin:0 0 14px}
.sec-h a{color:var(--accent-text,var(--accent));font-weight:700;font-size:14px;cursor:pointer}
.cattiles{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
@media(max-width:900px){.cattiles{grid-template-columns:repeat(3,1fr)}}@media(max-width:560px){.cattiles{grid-template-columns:repeat(2,1fr)}}
.cattile{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:1/.78;cursor:pointer;background:var(--soft)}
.cattile img{width:100%;height:100%;object-fit:cover;transition:.3s}.cattile:hover img{transform:scale(1.05)}
.cattile span{position:absolute;left:12px;bottom:10px;color:#fff;font-weight:800;font-size:var(--h4-size);text-shadow:0 1px 6px rgba(0,0,0,.5)}
.cattile::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 45%,rgba(0,0,0,.55))}
.cattile:not(:has(img)){aspect-ratio:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;display:flex;align-items:center;justify-content:space-between;transition:border-color .15s,box-shadow .15s}
.cattile:not(:has(img)):hover{border-color:var(--accent);box-shadow:0 4px 16px rgba(67,111,154,.12)}
.cattile:not(:has(img))::after{display:none}
.cattile:not(:has(img)) span{position:static;color:var(--ink);font-size:var(--h4-size);font-weight:700;text-shadow:none}
.cattile-count{color:var(--mut);font-size:var(--small-size);font-weight:600}
/* Kategorie-Kacheln (Gradient-Cards) */
.sec-h--center{text-align:center;justify-content:center;margin-bottom:22px}
.kat-slider{margin-top:0}
.kattiles{display:flex;gap:10px;overflow-x:auto;padding:0 6px 22px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.kattiles::-webkit-scrollbar{display:none}
.kattile{flex:0 0 200px;aspect-ratio:4/3;border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;justify-content:flex-end;color:#fff;text-decoration:none;position:relative;overflow:hidden;transition:transform .2s,box-shadow .2s}
.kattile::before{content:"";position:absolute;inset:0;border-radius:14px;opacity:.92;transition:opacity .2s;z-index:1}
.kattile:nth-child(14n+1)::before{background:linear-gradient(135deg,#8b1a1a,#c0392b)}
.kattile:nth-child(14n+2)::before{background:linear-gradient(135deg,#1a5276,#2980b9)}
.kattile:nth-child(14n+3)::before{background:linear-gradient(135deg,#145a32,#27ae60)}
.kattile:nth-child(14n+4)::before{background:linear-gradient(135deg,#6c3483,#8e44ad)}
.kattile:nth-child(14n+5)::before{background:linear-gradient(135deg,#7e5109,#d4ac0d)}
.kattile:nth-child(14n+6)::before{background:linear-gradient(135deg,#1b4f72,#3498db)}
.kattile:nth-child(14n+7)::before{background:linear-gradient(135deg,#7b241c,#e74c3c)}
.kattile:nth-child(14n+8)::before{background:linear-gradient(135deg,#0e6655,#1abc9c)}
.kattile:nth-child(14n+9)::before{background:linear-gradient(135deg,#4a235a,#9b59b6)}
.kattile:nth-child(14n+10)::before{background:linear-gradient(135deg,#784212,#e67e22)}
.kattile:nth-child(14n+11)::before{background:linear-gradient(135deg,#1a5276,#5dade2)}
.kattile:nth-child(14n+12)::before{background:linear-gradient(135deg,#186a3b,#2ecc71)}
.kattile:nth-child(14n+13)::before{background:linear-gradient(135deg,#641e16,#cb4335)}
.kattile:nth-child(14n+14)::before{background:linear-gradient(135deg,#0b5345,#148f77)}
.kattile-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.kattiles .kattile--img::before{background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.62));opacity:1}
.kattile:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,0,0,.15)}
.kattile:hover::before{opacity:1}
.kattile-name{position:relative;z-index:2;font-weight:800;font-size:var(--h4-size);line-height:1.25;margin-bottom:4px;text-shadow:0 1px 4px rgba(0,0,0,.3)}
.kattile-count{position:relative;z-index:2;font-size:var(--small-size);opacity:.8;font-weight:600}
/* tk-grid: Kategorie-Bildcards als responsives Grid (filterlose Angebotsview + 404), reuse .kattile */
.tk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.tk-grid .kattile{flex:none;width:auto}
.tk-grid .kattile--img::before{background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.62));opacity:1}
@media(max-width:700px){.kattiles{padding:0 18px 20px}.kattile{flex:0 0 150px;padding:14px 16px}}
.valueprops{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;background:var(--soft);border-radius:18px;padding:26px}
@media(max-width:760px){.valueprops{grid-template-columns:1fr 1fr}}
.vp .n{font-family:var(--disp);font-size:22px;font-weight:800;color:var(--accent-text,var(--accent))}
.vp .l{color:var(--mut);font-size:13.5px;margin-top:2px}

/* LIST: instantsearch toolbar + sidebar */
.toolbar{padding:14px 0}
.tbrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.tsearch{flex:1;min-width:220px;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;padding:9px 16px;background:var(--card)}
.tsearch input{flex:1;border:0;outline:0;font:inherit;font-size:14.5px;background:transparent;color:var(--ink)}
.tsearch .x{cursor:pointer;color:var(--mut);border:0;background:none;font-size:16px}
/* ✕ nur, wenn es etwas zu loeschen gibt (leeres Feld zeigt den Platzhalter) */
.tsearch input:placeholder-shown~.x{display:none}
/* KI-Zauberstab im Toolbar-Feld (/angebote): Optik wie .nav-ki, an = Feld mit Akzentrand */
.tsearch .is-ki-wand{margin:-4px -8px -4px 0}
.tsearch.is-ki{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset;background:color-mix(in srgb,var(--accent) 5%,var(--card))}
.dd{position:relative}
.dd>button{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:9px 16px;font:inherit;font-weight:600;font-size:13.5px;cursor:pointer;white-space:nowrap}
.dd>button.has{border-color:var(--accent);color:var(--accent-text,var(--accent));background:color-mix(in srgb,var(--accent) 8%,var(--card))}
.dd .panel{position:absolute;top:calc(100% - -8px);left:0;min-width:240px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 34px rgba(0,0,0,.16);padding:12px;display:none;z-index:40}
.dd.open .panel{display:block}
.dd .panel label{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 8px;border-radius:8px;cursor:pointer;font-size:14px}
.dd .panel label:hover{background:var(--soft)}
.dd .panel label .c{color:var(--mut);font-size:12.5px}
.sortsel{margin-left:auto;border:1px solid var(--line);border-radius:999px;padding:9px 14px;font:inherit;font-weight:600;font-size:13.5px;background:var(--card);cursor:pointer}
/* Sortierung mit Icon (offer-list.cfm .sortwrap): Rahmen am Wrapper, Icon links, natives select bleibt bedienbar */
.sortwrap{position:relative;display:inline-flex;align-items:center;flex:0 0 auto;margin-left:auto;border:1px solid var(--line);border-radius:999px;background:var(--card);cursor:pointer}
.sortwrap:hover{border-color:var(--line-strong,var(--mut))}
.sortwrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
.sortwrap-ic{position:absolute;left:13px;color:var(--mut);pointer-events:none}
.sortwrap .sortsel{margin:0;border:0;border-radius:999px;padding:9px 14px 9px 36px;background:transparent;outline:0}
.ls-layout{display:block;padding:20px 0 60px;min-height:100vh}
.ls-layout .ls-main{margin-left:310px}
@media(max-width:900px){.ls-layout .ls-main{margin-left:0}}
.ls-side{position:fixed;left:40px;bottom:12px;width:290px;padding-right:30px;overflow-y:auto;scrollbar-width:thin;z-index:10}
.ls-side .sh{font-family:var(--disp);font-size:18px;font-weight:800;padding-bottom:6px}
/* Mobiles Filter-Sheet (ls-sheet.js): Ausloeser in der "Deine Angaben"-Leiste, Spalte <=900px als Bottom-Sheet.
   Desktop: Ausloeser, Schliessen-Knopf, Fusszeile und Abdunklung ausgeblendet -> Sidebar unveraendert. */
.ls-x,.ls-foot,.ls-scrim,.dab-chip.ls-ftrig{display:none}
@media(max-width:900px){
  .dab-chip.ls-ftrig{display:inline-flex;flex:none;font:inherit;font-size:13px;font-weight:600}
  .ls-ftrig svg{color:var(--accent-text,var(--accent));flex:none}
  .ls-ftrig.is-set{background:color-mix(in srgb,var(--accent) 12%,var(--card));border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}
  .ls-fcount{display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:var(--accent);color:var(--on-accent);font-size:11px;font-weight:800;line-height:1}
  .ls-fcount[hidden]{display:none}
  .ls-layout>.ls-side{display:block;position:fixed;left:0;right:0;top:auto!important;bottom:0!important;width:auto;max-height:85vh;max-height:85dvh;
    padding:0 18px;overflow-y:auto;overscroll-behavior:contain;z-index:190;background:var(--card);border-radius:18px 18px 0 0;
    box-shadow:0 -12px 40px rgba(0,0,0,.25);transform:translateY(105%);visibility:hidden;transition:transform .25s ease,visibility 0s linear .25s}
  .ls-layout>.ls-side.is-open{transform:none;visibility:visible;transition:transform .25s ease}
  .ls-layout>.ls-side .sh{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;margin:0 -18px;padding:14px 12px 12px 18px;background:var(--card);border-bottom:1px solid var(--line)}
  .ls-layout>.ls-side .ls-x{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;background:transparent;font-size:26px;line-height:1;color:var(--mut);cursor:pointer;border-radius:10px}
  .ls-layout>.ls-side .ls-x:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
  .ls-layout>.ls-side .facet:first-of-type{border-top:0}
  .ls-layout>.ls-side .da-hint,.ls-layout>.ls-side .is-clear-wrap{display:none!important}
  .ls-layout>.ls-side .ls-foot{position:sticky;bottom:0;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 -18px;
    padding:12px 18px calc(12px + env(safe-area-inset-bottom,0px));background:var(--card);border-top:1px solid var(--line)}
  .ls-layout>.ls-side .ls-foot .da-reset:disabled{color:var(--mut);cursor:default;text-decoration:none}
  .ls-layout>.ls-side .ls-show{flex:1;max-width:260px;padding:12px 16px;font-size:14px}
  .ls-scrim{position:fixed;inset:0;z-index:185;background:rgba(0,0,0,.35)}
  .ls-scrim:not([hidden]){display:block}
  html.ls-sheet-open,html.ls-sheet-open body{overflow:hidden}
}
@media(max-width:900px) and (prefers-reduced-motion:reduce){.ls-layout>.ls-side,.ls-layout>.ls-side.is-open{transition:none}}
.facet{border-top:1px solid var(--line)}
.facet>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:14px 2px;font-weight:700;font-size:14.5px}
.facet>summary::-webkit-details-marker{display:none}.facet>summary::after{content:"\25BE";color:var(--mut);font-size:12px}
/* Also-Slider + Map */
.also-slider{display:flex;gap:18px;overflow-x:auto;padding:8px 0 16px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.also-slider .card{flex:0 0 220px;min-width:0}
.also-slider .imgwrap{aspect-ratio:1/.85}
/* Detail Referenzen */
.det-refs{display:grid;gap:16px}
.det-ref{background:var(--soft);border-radius:14px;padding:18px 22px}
/* .det-ref-stars entfernt: die Sterne behaupteten eine Bewertung, die es in den
   Daten nicht gibt (TEMO_Tree hat kein Rating-Feld). Siehe offer-references.cfm. */
.det-ref p{font-size:15px;line-height:1.55;color:var(--txt);margin-bottom:8px;font-style:italic}
.det-ref-author{font-size:13px;color:var(--mut);font-weight:600}
.det-refs-more{margin-top:4px}
.det-refs-more summary{cursor:pointer;font-weight:700;font-size:14px;color:var(--accent-text,var(--accent));padding:10px 0;list-style:none}
.det-refs-more summary::-webkit-details-marker{display:none}
.det-refs-more summary::after{content:" +";font-weight:800}
.det-refs-more[open] summary::after{content:" \2212"}
.det-refs-more .det-refs{margin-top:12px}
.gallery-fill{border-radius:4px}
.gallery-fill--1{background:linear-gradient(135deg,#8b1a1a,#c0392b)}
.gallery-fill--2{background:linear-gradient(135deg,#1a5276,#2980b9)}
.gallery-fill--3{background:linear-gradient(135deg,#145a32,#27ae60)}
.gallery-fill--4{background:linear-gradient(135deg,#6c3483,#8e44ad)}
.gallery-fill--5{background:linear-gradient(135deg,#7e5109,#d4ac0d)}
.gallery-fill--6{background:linear-gradient(135deg,#0e6655,#1abc9c)}
.gallery-fill--7{background:linear-gradient(135deg,#7b241c,#e74c3c)}
.gallery-fill--8{background:linear-gradient(135deg,#4a235a,#9b59b6)}
.det-map{position:relative;width:100%;height:320px;border-radius:var(--radius);overflow:hidden;background:var(--soft);border:1px solid var(--line)}
@media(max-width:640px){.det-map{height:240px}}
/* Städte/Gemeinden-Toggle auf Detail-Karte (MapLibre/OfferMap) */
.det-map .omap-labels{position:absolute;left:12px;top:12px;z-index:3;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:7px 14px;font:inherit;font-size:12.5px;font-weight:700;color:var(--ink);cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.14)}
.det-map .omap-labels:hover{background:var(--soft)}
.det-map .omap-labels.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.det-text{color:var(--txt);font-size:15px;line-height:1.65}
.det-text p{margin-bottom:12px}
.det-text ul,.det-text ol{margin:10px 0 14px 20px}
.det-text li{margin-bottom:6px}
.iv-regions{display:flex;gap:14px;overflow-x:auto;padding-bottom:8px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.iv-regions .regcard{flex:0 0 100px}
.iv-regions::-webkit-scrollbar{display:none}
/* Region-Slider Cards */
.ts-track>.regcard{flex:0 0 260px}
.regcard{cursor:pointer}
.regcard-img{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:4/3;background:var(--soft);padding:10px;box-sizing:border-box}
.regcard-img img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.regcard:hover .regcard-img img{transform:scale(1.05)}
.regcard-name{font-weight:700;font-size:var(--h4-size);margin-top:8px;text-align:center}
.regcard:hover .regcard-name{color:var(--accent-text,var(--accent))}
/* Region-Tiles */
.region-tiles{display:flex;flex-wrap:wrap;gap:10px;padding-bottom:10px}
.region-tile{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:12px;padding:14px 18px;background:var(--card);min-width:200px;flex:1 1 calc(20% - 10px);transition:border-color .15s,background .15s,transform .15s}
.region-tile:hover{border-color:var(--accent);background:var(--soft);transform:translateY(-2px)}
.region-name{font-weight:700;font-size:var(--h4-size);color:var(--ink)}
.region-tile:hover .region-name{color:var(--accent-text,var(--accent))}
.region-count{font-size:var(--small-size);color:var(--mut);white-space:nowrap}
@media(max-width:820px){.region-tile{flex:1 1 calc(33% - 10px)}}
@media(max-width:520px){.region-tile{flex:1 1 calc(50% - 10px)}}
.te-toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;padding:14px 28px;border-radius:12px;font-size:14.5px;font-weight:700;z-index:9999;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.te-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.facet-active{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--accent);color:var(--on-accent);font-size:11px;font-weight:800;margin-left:8px;line-height:1}
.facet-label.disabled{opacity:.35;pointer-events:none}
.facet-label.disabled-hidden{display:none}

/* Initial View (kein Filter aktiv) */
.iv-wrap{max-width:820px;margin:0 auto}
.iv-hero{position:relative;padding:44px 36px 40px;text-align:center;border-radius:22px;overflow:hidden;background:linear-gradient(135deg,var(--accent-d) 0%,var(--accent) 50%,var(--accent-2) 100%);color:var(--on-accent);margin-bottom:36px}
.iv-hero::before{content:"";position:absolute;inset:0;background:url('/media/stock/photo-1529156069898-49953e39b3ac-1200x500.jpg') center/cover;opacity:.15}
.iv-hero>*{position:relative;z-index:1}
.iv-icon{font-size:48px;margin-bottom:12px;filter:drop-shadow(0 2px 8px rgba(0,0,0,.3))}
.iv-hero h2{color:var(--on-accent);text-shadow:0 2px 12px rgba(0,0,0,.2)}
.iv-hero p{color:rgba(255,255,255,.85);font-size:15.5px;max-width:50ch;margin:0 auto;line-height:1.65}
.iv-section{padding:0 0 32px}
.iv-section-head{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.iv-badge{font-size:20px}
/* Featured Cards */
.iv-featured{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.iv-fcard{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--card);transition:transform .2s,box-shadow .2s,border-color .2s;color:inherit}
.iv-fcard:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,.1);border-color:transparent}
.iv-fcard-img{aspect-ratio:16/10;overflow:hidden;background:var(--soft)}
.iv-fcard-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.iv-fcard:hover .iv-fcard-img img{transform:scale(1.05)}
.iv-fcard-body{padding:14px 16px}
.iv-fcard-loc{font-size:11.5px;color:var(--accent-text,var(--accent));font-weight:700;text-transform:uppercase;letter-spacing:.02em;margin-bottom:4px}
.iv-fcard-title{font-size:15px;font-weight:800;line-height:1.3;margin-bottom:6px;transition:color .15s}
.iv-fcard:hover .iv-fcard-title{color:var(--accent-text,var(--accent))}
.iv-fcard-meta{font-size:13px;color:var(--mut)}
@media(max-width:700px){.iv-featured{grid-template-columns:1fr}}
/* Kategorien */
.iv-cats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.iv-cats--3{grid-template-columns:repeat(3,1fr)}
.iv-cat{border:1px solid var(--line);border-radius:12px;padding:12px 16px;font-size:13.5px;font-weight:600;color:var(--ink);transition:border-color .15s,background .15s,transform .15s;display:flex;align-items:center;gap:8px;background:var(--card)}
.iv-cat:hover{border-color:var(--accent);background:var(--soft);color:var(--accent-text,var(--accent));transform:translateY(-2px)}
.iv-emoji{font-size:18px}
.iv-tags{display:flex;flex-wrap:wrap;gap:8px}
.iv-tag{background:var(--soft);border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-size:13px;font-weight:600;color:var(--accent-text,var(--accent));transition:background .15s,border-color .15s}
.iv-tag:hover{background:color-mix(in srgb,var(--accent) 10%,var(--card));border-color:var(--accent)}
.iv-tip{display:flex;align-items:flex-start;gap:14px;background:linear-gradient(135deg,#f0f4f8,#e8eef4);border:1px solid color-mix(in srgb,var(--accent) 20%,var(--line));border-radius:14px;padding:18px 22px;margin-top:8px}
.iv-tip-icon{font-size:24px;flex-shrink:0}
.iv-tip p{color:var(--txt);font-size:14px;line-height:1.55}
.iv-tip strong{color:var(--ink)}
@media(max-width:600px){.iv-hero{padding:28px 20px 24px;border-radius:16px}.iv-cats{grid-template-columns:1fr}.iv-featured{grid-template-columns:1fr}}
/* 0-Treffer-Screen (§18): aktive Filter gross + Promo-Slider (sponsored/featured) */
.is-noresult{padding:16px 0 8px;max-width:920px;margin:0 auto}
.nr-head{text-align:center;margin-bottom:22px}
.nr-icon{font-size:40px;line-height:1;margin-bottom:8px}
.nr-head h2{margin:0 0 var(--h-mb-tight)}
.nr-head p{color:var(--mut);font-size:15px;max-width:560px;margin:0 auto;line-height:1.5}
.nr-active{background:var(--soft);border:1px solid var(--line);border-radius:16px;padding:22px 22px 24px;margin:0 0 26px;display:flex;flex-direction:column;gap:18px;align-items:center}
.nr-active .nr-lbl{display:block;text-align:center;font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-text,var(--accent));margin-bottom:12px}
/* Deine Angaben: prioritaer GROSS */
.nr-da-vals{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.nr-da-vals .da-chip{font-size:17px;font-weight:800;padding:12px 20px;border-radius:13px;background:var(--card);border:1px solid var(--field-bd);color:var(--ink);box-shadow:0 1px 3px var(--shadow-color)}
/* Facetten aus der Spalte: kleiner, sekundaer */
.nr-facets-vals{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.nr-facets-vals .chip2{font-size:13px;background:var(--card);border:1px solid var(--line);color:var(--txt)}
.nr-reset{margin-top:2px;background:var(--cta);color:var(--on-accent);border:0;border-radius:10px;padding:12px 24px;font-weight:700;font-size:14px;cursor:pointer;transition:background .15s}
.nr-reset:hover{background:var(--cta-d)}
.nr-promo{margin-top:6px}
.nr-promo-head{display:flex;align-items:center;gap:8px;justify-content:center;margin-bottom:16px}
.nr-promo-head h3{margin:0 0 0}
.nr-promo .trow-slider{position:relative}
.nr-promo-track{display:flex;gap:16px;overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none;padding:4px 2px}
.nr-promo-track::-webkit-scrollbar{display:none}
.nr-promo-track .iv-fcard{flex:0 0 262px;max-width:262px}
@media(max-width:600px){.nr-da-vals .da-chip{font-size:15px;padding:10px 16px}.nr-promo-track .iv-fcard{flex-basis:78vw;max-width:78vw}}
.facet-subs{padding-left:22px;border-left:2px solid var(--line);margin:2px 0 6px 8px}
.facet-sub{font-size:13px}
.facet[open]>summary::after{content:"\25B4"}
.facet .opts{padding:0 2px 14px}
.facet label,.facet-label{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:14px;cursor:pointer;min-width:0}
.facet-label-txt{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0;flex:1}
.facet label .c,.facet-label .c{margin-left:auto;color:var(--mut);font-size:12.5px;flex-shrink:0;white-space:nowrap}
.tk-side .tk-link{text-decoration:none;color:var(--ink)}
.tk-side .tk-link:hover{color:var(--accent-text,var(--accent))}
.tk-side .tk-link.active{color:var(--accent-text,var(--accent));font-weight:700}
.tk-toggle{display:flex;align-items:center;gap:8px;width:100%;border:0;background:none;padding:6px 0;font:inherit;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;text-align:left}
.tk-toggle.has-active{color:var(--accent-text,var(--accent))}
.tk-toggle .tk-arr{display:inline-block;transition:transform .15s;color:var(--mut);font-size:15px;line-height:1}
.tk-toggle[aria-expanded="true"] .tk-arr{transform:rotate(90deg)}
.tk-styles{padding-left:14px;border-left:2px solid var(--line);margin:0 0 2px}
.tk-styles[hidden]{display:none}
.facet input,.facet-cb{accent-color:var(--accent);width:16px;height:16px;min-width:16px;min-height:16px;flex-shrink:0}
.is-clear-wrap{position:sticky;bottom:0;padding:12px 0;z-index:10}
.clearbtn{width:100%;background:#c0392b;color:#fff;border:0;border-radius:10px;padding:13px;font:inherit;font-size:13px;font-weight:800;cursor:pointer;text-transform:uppercase;letter-spacing:.3px;box-shadow:0 2px 8px rgba(192,57,43,.3)}
.clearbtn:hover{background:#a93226}
.ls-main .topline{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;padding:4px 0 8px}
.ls-main .treffer{font-weight:800;font-size:18px}
.chips{display:flex;gap:8px;flex-wrap:wrap;padding:6px 0 4px}
.chip2{display:flex;align-items:center;gap:7px;background:color-mix(in srgb,var(--accent) 10%,var(--card));border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);color:var(--accent-text,var(--accent));border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600}
.chip2 b{cursor:pointer}
.chip-x{background:none;border:none;color:var(--accent-text,var(--accent));font-size:15px;cursor:pointer;padding:0 0 0 2px;line-height:1;font-weight:700;opacity:.7}.chip-x:hover{opacity:1}
.hits,.ais-InfiniteHits-list{display:grid;grid-template-columns:repeat(5,1fr);gap:26px 22px;padding:16px 0;list-style:none;margin:0}
.ais-InfiniteHits-item,.card-wrap{padding:0;margin:0}
.ais-InfiniteHits--empty{grid-column:1/-1}
@media(max-width:1400px){.hits{grid-template-columns:repeat(4,1fr)}}
@media(max-width:1100px){.hits{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.hits{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.hits{grid-template-columns:1fr}}
.loadmore,.ais-InfiniteHits-loadMore{display:block;margin:14px auto 0;border:1px solid var(--ink);background:var(--card);border-radius:10px;padding:13px 26px;font:inherit;font-weight:700;cursor:pointer}
.loadmore:hover,.ais-InfiniteHits-loadMore:hover{background:var(--soft)}
.ais-InfiniteHits-loadMore--disabled{display:none}
.is-hidden{display:none!important}
.nohits{padding:40px 0;color:var(--mut);text-align:center}
.mock-note{font-size:12px;color:var(--mut);background:var(--soft);border-radius:8px;padding:8px 12px;margin:8px 0}

/* Cross-Portal-Block: Angebote des Partnerportals (abgetrennt, eigene Zaehlung) */
#is-cross{margin-top:34px;padding-top:8px;border-top:2px solid var(--line)}
/* Partner-Block mitten in der Trefferliste (nach den ersten Reihen, instantsearch-app.js placeCross):
   als Band mit Linie oben/unten, Karten als Slider */
.cross-slot{margin:28px 0 30px}
.cross-slot #is-cross{margin-top:0;padding:4px 0 22px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.cross-slot .cross-slider{margin-top:10px}
.cross-slot .cross-all{margin-top:6px}
a.treffer--cross{text-decoration:none;color:var(--accent-text,var(--accent));font-weight:600;white-space:nowrap}
a.treffer--cross:hover{text-decoration:underline}
.cross-head{display:flex;align-items:center;gap:12px;padding:14px 0 2px}
.cross-head .cross-logo{height:26px;width:auto;flex:none}
.cross-head .cross-title{font-family:var(--disp);font-size:19px;font-weight:800;color:var(--ink)}
.cross-all{display:inline-flex;align-items:center;gap:6px;margin-top:14px;padding:9px 16px;border:1px solid var(--line);border-radius:999px;font-weight:650;font-size:14px;color:var(--ink);text-decoration:none;background:var(--card,#fff)}
.cross-all:hover{border-color:var(--accent);color:var(--accent-text,var(--accent))}
.treffer--cross{font-weight:700;font-size:14px;color:var(--mut);display:inline-flex;align-items:center;gap:6px}
.treffer--cross::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent);opacity:.55}
.is-relaxed-note{margin:0 0 16px;padding:10px 14px;border-left:3px solid var(--accent);font-size:var(--small-size);line-height:1.5}
/* Ortserkennung im Suchtext: "Ort erkannt: Bern · 25 km" + Rueckweg */
.is-wo-note{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0 0 10px;padding:10px 14px;border-left:3px solid var(--accent);font-size:var(--small-size);line-height:1.5}
.is-wo-note i{color:var(--accent-text,var(--accent))}
.is-wo-undo{border:0;background:transparent;color:var(--accent-text,var(--accent));font:inherit;font-weight:700;cursor:pointer;padding:0;text-decoration:underline}
.is-wo-note+.is-relaxed-note{margin-top:-6px}
/* KI-Suche auf /angebote (?ki=1): Hinweis mit OD-Zeichen, KI-Filtern und Rueckweg "Zur Stichwortsuche" */
.is-ki-note{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:6px 0 12px;padding:10px 14px;border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--card));font-size:var(--small-size);line-height:1.5}
.is-ki-note b{color:var(--ink)}
.is-ki-note--fail{border-left-color:var(--mut);background:var(--soft)}
.is-ki-od{display:inline-flex;align-items:center;gap:2px;flex:0 0 auto}
.is-ki-od i{display:block;width:12px;height:12px;border-radius:50%;background:var(--accent)}
.is-ki-od i+i{width:8px;height:11px;border-radius:0 100% 100% 0/0 50% 50% 0;background:var(--cta)}
.is-ki-note--load .is-ki-od i{animation:is-ki-breathe 1.4s ease-in-out infinite}
.is-ki-note--load .is-ki-od i+i{animation-direction:reverse}
@keyframes is-ki-breathe{0%,100%{transform:scale(.8);opacity:.6}50%{transform:scale(1.05);opacity:1}}
@media (prefers-reduced-motion:reduce){.is-ki-note--load .is-ki-od i{animation:none}}
.is-ki-f{display:inline-flex;flex-wrap:wrap;gap:6px}
.is-ki-tag{padding:2px 10px;border-radius:4px 999px 999px 4px;background:var(--card);border:1px solid var(--line);font-weight:600}
/* "Mit KI suchen?" (normaler Modus, Satz-Eingabe oder wenige Treffer): leiser als der KI-Hinweis */
.is-ki-offer{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:6px 0 12px;padding:8px 14px;border:1px dashed color-mix(in srgb,var(--accent) 45%,var(--line));border-radius:10px;font-size:var(--small-size);line-height:1.5;color:var(--ink)}
.is-noresult .is-ki-offer{justify-content:center;margin:0 auto 16px;max-width:560px}
.is-ki-cats{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px}
.is-ki-cat{min-height:28px;padding:2px 10px;border-radius:4px 999px 999px 4px;background:var(--card);border:1px dashed var(--accent);color:var(--ink);font:inherit;font-weight:600;cursor:pointer}
.is-ki-cat:hover{background:color-mix(in srgb,var(--accent) 10%,var(--card))}
.is-ki-cat[aria-pressed="true"]{border-style:solid;background:color-mix(in srgb,var(--accent) 14%,var(--card))}
.is-ki-cat:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.card--cross .cross-badge{position:absolute;top:10px;left:10px;display:inline-flex;align-items:center;background:rgba(255,255,255,.92);border-radius:8px;padding:3px 7px;font-size:11px;font-weight:700;color:var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.18);z-index:2}
.card--cross .cross-badge img{height:14px;width:auto;display:block}
/* Fremd-Portal-Markierung im Detail-Overlay: nur kleines Logo, oberhalb des Titels (kein Balken).
   Oberabstand des Titels wandert auf den Logo-Wrapper; Logo->Titel bleibt eng. */
.cross-mark{padding-top:28px;margin:0 0 6px}
.cross-mark img{height:22px;width:auto;display:block}
.detail-ovl .do-body .cross-mark + .det-pagehead{padding-top:0}

/* Teile der Detailseite, die nur auf der Landingpage Sinn ergeben, im Overlay ausblenden.
   Sie stehen bewusst IM MARKUP beider Seiten: nur wenn Landingpage und Overlay dasselbe
   HTML erzeugen, kann das Overlay seinen Inhalt aus der gebauten Seite schneiden
   (docs/KONZEPT-overlay-ohne-api.md). Frueher entschied das serverseitige Flag
   detailOverlay darueber - das machte das Markup kontextabhaengig und die beiden Wege
   konnten auseinanderlaufen.
     .det-act-inv  "Im Katalog oeffnen" - im Overlay ist man bereits im Katalog
     .crumb-bar    Breadcrumb - im Overlay ist man nirgendwohin navigiert */
.detail-ovl .do-body .det-act-inv,
.detail-ovl .do-body .crumb-bar{display:none}


/* full-bleed scrollers on home (cards edge-to-edge, headers stay in content width) */
.fullbleed{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding-left:max(40px,calc(50% - 600px));padding-right:max(40px,calc(50% - 600px))}
@media(max-width:700px){.fullbleed{padding-left:18px;padding-right:18px}}
.seo .answer-lead{font-size:17px;color:var(--ink);max-width:75ch}
.seo p{color:var(--txt);max-width:75ch;margin:10px 0}
.partners-title{font-family:var(--disp);font-size:19px;font-weight:800;margin-bottom:10px}
.partners{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:6px}
@media(max-width:700px){.partners{grid-template-columns:1fr}}
.partner{border:1px solid var(--line);border-radius:14px;padding:18px;display:block;transition:.15s}
.partner:hover{box-shadow:0 6px 20px rgba(0,0,0,.08);border-color:var(--accent)}
.partner b{font-size:15px;color:var(--accent-text,var(--accent))}
.partner span{display:block;color:var(--mut);font-size:13.5px;margin-top:4px}
/* wizard launcher in hero */
.wizcta{display:inline-flex;align-items:center;gap:9px;margin-top:14px;background:#fff;color:var(--ink);border:0;border-radius:12px;padding:13px 20px;font:inherit;font-weight:800;font-size:15px;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.22)}
.wizcta .wand{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:var(--on-accent);display:grid;place-items:center;font-size:16px}
/* list: view toggle + list rows */
.viewtoggle{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:var(--card)}
.viewtoggle button{border:0;background:none;padding:8px 14px;font:inherit;font-weight:700;font-size:13px;cursor:pointer;color:var(--mut);display:flex;align-items:center;gap:6px}
.viewtoggle button.on{background:var(--accent);color:var(--on-accent)}
/* Ansicht als 3-Knopf-Block (offer-list.cfm): Karten | Liste | Umgebung, nur Icons, aussen abgerundet */
.viewgroup{display:inline-flex;flex:0 0 auto;align-self:stretch;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--card)}
.vg-b{display:inline-flex;align-items:center;justify-content:center;width:44px;min-height:40px;border:0;background:transparent;color:var(--mut);cursor:pointer;transition:background .15s,color .15s}
.vg-b+.vg-b{border-left:1px solid var(--line)}
.vg-b:hover{background:var(--soft);color:var(--ink)}
.vg-b.on{background:var(--accent);color:var(--on-accent)}
.vg-b:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
.vg-map{color:var(--accent-text,var(--accent))}
@media(prefers-reduced-motion:reduce){.vg-b{transition:none}}
.hits.listmode,.ais-InfiniteHits-list.listmode{display:flex;flex-direction:column;gap:0}
.hits.listmode .card{display:grid;grid-template-columns:260px 1fr;gap:22px;border-top:1px solid var(--line);padding:22px 0;cursor:pointer}
.hits.listmode .card:first-child{border-top:0}
.hits.listmode .imgwrap{aspect-ratio:4/3}
.hits.listmode .rc .loc{font-size:12.5px;color:var(--accent-text,var(--accent));font-weight:700;text-transform:uppercase}
.hits.listmode .rc .ttl{font-size:19px;font-weight:700;margin:3px 0}
.hits.listmode .rc .meta{color:var(--mut);font-size:14px}
.hits.listmode .rc .rc-d{color:var(--txt);font-size:14.5px;margin:8px 0}
.hits.listmode .rc .feat{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0}
.hits.listmode .rc .feat span{background:var(--soft);border-radius:8px;padding:4px 10px;font-size:12.5px;color:#48515a}
.hits.listmode .rc .price{margin-top:8px;font-size:15px}
.hits.listmode .tag,.hits.listmode .ref{display:none}
@media(max-width:560px){.hits.listmode .card{grid-template-columns:1fr}}
/* detail: sticky offer card until reviews -> aside must stretch */
.detbody{align-items:stretch}
.detbody aside{height:100%}
.offercard{top:96px}
/* modern form */
.form2{background:linear-gradient(180deg,var(--soft),var(--card));border:1px solid var(--line);border-radius:20px;padding:28px;box-shadow:0 10px 30px rgba(0,0,0,.05)}
.f2-head{display:flex;gap:16px;align-items:center;margin-bottom:22px}
.f2-ic{width:50px;height:50px;border-radius:14px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:var(--on-accent);display:grid;place-items:center;font-size:22px;flex:0 0 auto}
.f2-t{font-family:var(--disp);font-size:21px;font-weight:800}.f2-s{color:var(--mut);font-size:13.5px;margin-top:2px}
.f2-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:780px){.f2-grid{grid-template-columns:1fr}}
.f2-card{border:1px solid var(--line);border-radius:16px;padding:20px;background:var(--card)}
.f2-card legend{display:flex;align-items:center;gap:10px;font-family:var(--disp);font-weight:800;font-size:16px;padding:0 6px;margin-bottom:6px}
.f2-card legend .n{width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;font-size:13px}
.f2-f{display:block;margin-top:14px;font-size:13px;color:var(--mut);font-weight:700}
.f2-f i{color:var(--cta);font-style:normal}
.f2-f .lab{display:block;margin-bottom:8px}
.f2-f input,.f2-f textarea{display:block;width:100%;margin-top:6px;padding:12px 13px;border:1.5px solid var(--field-bd);border-radius:11px;background:var(--bg);color:var(--ink);font:inherit;font-size:14.5px;transition:.15s}
.f2-f input:focus,.f2-f textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 16%,transparent);background:var(--card)}
.f2-row{display:flex;gap:12px;align-items:flex-end}.f2-grow{flex:1}.f2-nr{width:86px}.f2-plz{width:110px}
.f2-switch{display:flex;align-items:center;gap:9px;font-size:13.5px;font-weight:700;color:var(--ink);cursor:pointer;white-space:nowrap;padding-bottom:12px}
.f2-switch input{display:none}
.f2-switch .track{width:42px;height:24px;border-radius:999px;background:var(--field-bd);position:relative;transition:.2s;flex:0 0 auto}
.f2-switch .track::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.f2-switch input:checked + .track{background:var(--accent)}
.f2-switch input:checked + .track::after{transform:translateX(18px)}
.seg3{display:inline-flex;border:1.5px solid var(--field-bd);border-radius:11px;overflow:hidden;margin-top:6px}
.seg3 input{display:none}
.seg3 label{padding:11px 20px;font-weight:700;font-size:14px;cursor:pointer;border-right:1.5px solid var(--field-bd)}
.seg3 label:last-of-type{border-right:0}
.seg3 input:checked + label{background:var(--accent);color:var(--on-accent)}
.f2-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:22px;flex-wrap:wrap}
.f2-trust{color:var(--mut);font-size:13px}
.f2-submit{background:var(--cta);color:var(--on-accent);border:0;border-radius:12px;padding:15px 30px;font:inherit;font-weight:800;font-size:16px;cursor:pointer;transition:.15s}
.f2-submit:hover{background:var(--cta-d);transform:translateY(-1px)}
/* wizard modal */
.wiz-ovl{position:fixed;inset:0;background:rgba(20,22,25,.55);backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:.25s;z-index:90;display:grid;place-items:center;padding:20px}
.wiz-ovl.open{opacity:1;visibility:visible}
.wiz{background:var(--card);border-radius:22px;width:680px;max-width:100%;max-height:92vh;display:flex;flex-direction:column;overflow:hidden;transform:translateY(12px);transition:.25s}
.wiz-ovl.open .wiz{transform:none}
.wiz-head{padding:22px 26px 0;display:flex;justify-content:space-between;align-items:flex-start}
.wiz-head .wt{font-family:var(--disp);font-size:22px;font-weight:800}
.wiz-head .ws{color:var(--mut);font-size:13.5px;margin-top:2px}
.wiz-next.wiz-zero{background:var(--mut)}
.wiz-x{border:0;background:var(--soft);width:36px;height:36px;border-radius:50%;font-size:18px;cursor:pointer;color:var(--ink)}
.wiz-prog{display:flex;gap:6px;padding:18px 26px 6px}
.wiz-prog .p{flex:1;height:6px;border-radius:999px;background:var(--line)}
.wiz-prog .p.on{background:var(--accent)}
.wiz-step{font-size:12px;font-weight:700;color:var(--accent-text,var(--accent));padding:0 26px;text-transform:uppercase;letter-spacing:.04em}
.wiz-body{padding:8px 26px 10px;overflow:auto}
.wiz-body h4{margin:16px 0 var(--h-mb-tight)}
/* Leermeldung im Wizard. Stand vorher als style-Attribut im JS — CSP §16. */
.wiz-empty{color:var(--mut);padding:14px 0}
/* Hinweis im Zeitraum-Schritt: zeigt eine bestehende Angabe aus "Deine Angaben",
   die feiner ist als eine Jahreszeit (z.B. nur Dezember) und darum nicht als
   Knopf markiert werden kann. */
.wiz-note{color:var(--mut);font-size:var(--small-size);margin:10px 0 0;line-height:1.5}
.wopts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.wopts.three{grid-template-columns:1fr 1fr 1fr}
.wopts.chips{display:flex;flex-wrap:wrap;gap:8px}
.wopt{border:1.5px solid var(--line);background:var(--card);border-radius:13px;padding:14px 16px;font:inherit;font-weight:700;font-size:14.5px;cursor:pointer;text-align:left;display:flex;align-items:center;gap:10px;transition:.12s}
.wopt:hover{border-color:var(--accent)}
.wopt.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--card));color:var(--accent-text,var(--accent))}
.wopt .em{font-size:18px}
.wopts.chips .wopt{padding:9px 14px;border-radius:999px;font-size:13.5px}
.wiz-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 26px 24px;border-top:1px solid var(--line)}
.wiz-back{border:1px solid var(--line);background:var(--card);border-radius:11px;padding:12px 20px;font:inherit;font-weight:700;cursor:pointer}
.wiz-back[disabled]{opacity:.35;cursor:default}
.wiz-next{background:var(--accent);color:var(--on-accent);border:0;border-radius:11px;padding:13px 26px;font:inherit;font-weight:800;cursor:pointer}
.wiz-next:hover{filter:brightness(.95)}
.wiz-skip{color:var(--mut);font-size:13px;cursor:pointer;background:none;border:0}


/* demobar links */
.demobar a.db{background:#33383d;color:#fff;border-radius:8px;padding:6px 12px;font-weight:600;text-decoration:none}
.demobar a.db:hover{background:var(--accent)}
/* DETAIL OVERLAY (this was missing before -> fixes the leak + ajax) */
.detail-ovl{position:fixed;inset:0;z-index:80;background:var(--bg);transform:translateY(2%);opacity:0;visibility:hidden;transition:.28s ease;display:flex;flex-direction:column}
.detail-ovl.open{transform:none;opacity:1;visibility:visible}
.do-bar{display:flex;align-items:center;gap:14px;padding:22px;border-bottom:1px solid var(--line);background:var(--card);flex:0 0 auto}
.do-bar .x{border:0;background:var(--accent);color:#fff;width:40px;height:40px;border-radius:999px;font-size:24px;line-height:1;cursor:pointer;display:grid;place-items:center;transition:filter .15s}
.do-bar .x:hover{filter:brightness(.9)}
.do-bar .act{display:flex;gap:8px;align-items:center}
.do-bar .act a{font-weight:700;font-size:14px;padding:8px 10px;border-radius:8px;color:var(--ink)}
.do-bar .act a:hover{background:var(--soft)}
.do-back{font-weight:700;font-size:14px;padding:6px 12px;border:1px solid var(--accent);border-radius:10px;background:var(--card);color:var(--accent-text,var(--accent));cursor:pointer;transition:background .15s}
.do-back:hover{background:var(--soft)}
.do-bar .nav{margin-left:auto;display:flex;align-items:center;gap:8px}
.do-bar .nav .cnt{font-weight:700;font-size:14px;min-width:54px;text-align:center;color:var(--mut)}
.do-bar .nav button{border:1px solid var(--line);background:var(--card);border-radius:999px;width:38px;height:38px;font-size:18px;cursor:pointer;color:var(--ink)}
.do-bar .nav button:hover:not(:disabled){border-color:var(--ink)}
.do-bar .nav button:disabled{opacity:.3;cursor:default}
.do-bar .full{border:1px solid var(--ink);border-radius:8px;padding:9px 14px;font-weight:700;font-size:13px;text-decoration:none;color:var(--ink);white-space:nowrap}
.do-body{overflow:auto;flex:1 1 auto;padding-top:16px}
.do-body .crumb{display:none}
.detail-ovl .do-body .det-pagehead{padding:28px 0 10px}
.detail-ovl .do-body .det-pagehead h1{letter-spacing:-.02em}
.detail-ovl .do-body .answer-lead.det-lead{margin:18px 0 26px;font-size:clamp(17px,2vw,21px);line-height:1.65;color:var(--txt);border-left:4px solid var(--accent);padding-left:16px}
.detail-ovl .do-body .det-sub{padding:6px 0 28px}
.detail-ovl .do-body .det-sub .info{font-size:14.5px}
.detail-ovl .do-body .det-actions{display:flex;gap:12px}
.detail-ovl .do-body .det-actions a{font-size:14px;padding:8px 14px}
.do-bar .act{display:flex;gap:12px}
.do-bar .act a{font-weight:700;font-size:14px;padding:6px 12px;border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;gap:6px;transition:background .15s}
.do-bar .act a:hover{background:var(--soft)}
.do-bar .act [data-fav].on{color:var(--cta);border-color:var(--cta)}
@media(max-width:620px){.do-bar .full{display:none}.do-bar{gap:8px;padding:10px 14px}}
/* Airbnb-style small theme bar */
.section-wrapper[data-type="themebar"]{background:#f7f7f7}
.themebar{gap:26px;padding:0 40px;border-bottom:none;justify-content:safe center;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch}.themebar .cat{flex-shrink:0;white-space:nowrap}
.themebar .cat{color:var(--mut)}
.themebar .cat .ic{font-size:19px}
.themebar .cat:hover,.themebar .cat:focus{color:var(--ink);border-color:var(--ink)}
@media(max-width:760px){.themebar{gap:8px;padding:0 14px;justify-content:flex-start;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 12px,#000 calc(100% - 18px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 12px,#000 calc(100% - 18px),transparent 100%)}.themebar .cat{font-size:13px;padding:8px 6px}.themebar .cat .ic{display:none}}
/* hero search cleanup */
.herosearch{max-width:560px;margin-left:auto;margin-right:auto}
/* photo gallery modal */
.photo-modal{position:fixed;inset:0;z-index:95;background:rgba(20,22,25,.92);opacity:0;visibility:hidden;transition:.25s;overflow:auto}
.photo-modal.open{opacity:1;visibility:visible}
.pm-bar{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;padding:16px 24px;color:#fff}
.pm-bar b{font-weight:700}
.pm-x{background:rgba(255,255,255,.15);border:0;color:#fff;width:40px;height:40px;border-radius:50%;font-size:20px;cursor:pointer}
.pm-grid{max-width:900px;margin:0 auto;padding:10px 24px 60px;columns:2 320px;column-gap:12px}
.pm-grid img{width:100%;border-radius:12px;display:block;margin:0 0 12px;break-inside:avoid}
.pm-grid img.pm-hero{column-span:all}
@media(max-width:600px){.pm-grid{columns:1}}
/* cleaner testimonials */
.revhead{margin-bottom:14px}
.revhead .revh-t{font-family:var(--disp);font-weight:800;font-size:var(--h3-size)}
.revhead .revh-s{color:var(--mut);font-size:var(--small-size);margin-top:2px}
.trustband2{display:flex;gap:24px;flex-wrap:wrap;align-items:center;padding:14px 18px;background:var(--soft);border-radius:12px;margin-bottom:22px;color:var(--mut);font-weight:800;opacity:.9}
.revgrid2,.revmore2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:680px){.revgrid2,.revmore2{grid-template-columns:1fr}}
.revmore2{max-height:0;overflow:hidden;transition:max-height .5s ease;margin-top:0}
.revmore2.open{max-height:9000px;margin-top:16px}
.revx{border:1px solid var(--line);border-radius:14px;padding:18px;margin:0;background:var(--card)}
.revx-top{display:flex;align-items:center;gap:12px}
.revx-ava{width:40px;height:40px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;font-weight:700;font-size:var(--small-size);flex:0 0 auto}
.revx-id{line-height:1.25;min-width:0}
.revx-id b{font-size:var(--small-size);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.revx-id span{color:var(--mut);font-size:var(--small-size)}
.revx-dt{margin-left:auto;color:var(--mut);font-size:var(--small-size);white-space:nowrap}
.revx blockquote{margin:12px 0 10px;color:var(--txt);font-size:var(--body-size);line-height:1.5}
.revx-vf{color:#1f8a4c;font-size:var(--small-size);font-weight:700}
.showall2{margin-top:20px;border:1px solid var(--ink);background:var(--card);color:var(--ink);border-radius:10px;padding:12px 22px;font:inherit;font-weight:700;cursor:pointer}
.showall2:hover{background:var(--soft)}


html{overflow-x:clip}
.hotline{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--ink)}
.hotline .ph{font-weight:800;font-size:14px;white-space:nowrap}
.hotline .advs{display:flex;min-width:30px;min-height:30px}
.hotline .advs img{width:30px;height:30px;border-radius:50%;object-fit:cover;background:var(--soft);border:2px solid var(--card);margin-left:-9px}
.hotline .advs img:first-child{margin-left:0}
.hotline .nm{font-size:11.5px;color:var(--mut);font-weight:700;white-space:nowrap;line-height:1.1}
@media(max-width:1180px){.hotline .nm{display:none}}
@media(max-width:820px){.hotline .ph{display:none}}
.herosearch{align-items:center}
.wiz-ic{width:46px;height:46px;border-radius:12px;border:0;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:var(--on-accent);font-size:18px;cursor:pointer;flex:0 0 auto}
[data-tip]{position:relative}
[data-tip]:hover::after{content:attr(data-tip);position:absolute;bottom:calc(100% - -9px);left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;font-size:12px;font-weight:600;padding:7px 11px;border-radius:8px;white-space:nowrap;z-index:40;box-shadow:0 4px 14px rgba(0,0,0,.25);pointer-events:none}
[data-tip]:hover::before{content:"";position:absolute;bottom:calc(100% - -3px);left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--ink);z-index:40}
.heart{cursor:pointer}.heart.on,[data-fav].on{color:var(--cta)}
/* login modal */
.login-ovl{position:fixed;inset:0;background:rgba(20,22,25,.55);backdrop-filter:blur(3px);display:none;place-items:center;z-index:92;padding:20px}
.login-ovl.open{display:grid}
.login-card{background:var(--card);border-radius:20px;max-width:420px;width:100%;padding:30px;position:relative}
.login-card h3{text-align:center;margin:0 0 0}
.login-card .sub{color:var(--mut);font-size:14px;text-align:center;margin:4px 0 20px}
.lgn-x{position:absolute;top:16px;right:16px;border:0;background:var(--soft);width:34px;height:34px;border-radius:50%;font-size:18px;cursor:pointer;color:var(--ink)}
.lgn-social{display:flex;flex-direction:column;gap:10px}
.lgn-btn{display:flex;align-items:center;justify-content:center;gap:10px;border:1.5px solid var(--line);background:var(--card);border-radius:12px;padding:12px;font:inherit;font-weight:700;font-size:14.5px;cursor:pointer;color:var(--ink)}
.lgn-btn:hover{background:var(--soft)}
.lgn-btn .g{color:#4285f4;font-weight:800;font-size:16px}.lgn-btn .li{background:#0a66c2;color:#fff;font-weight:800;border-radius:4px;padding:0 5px;font-size:13px}
.lgn-div{display:flex;align-items:center;gap:12px;color:var(--mut);font-size:12.5px;margin:18px 0}
.lgn-div::before,.lgn-div::after{content:"";flex:1;height:1px;background:var(--line)}
.lgn-f{display:block;margin-bottom:12px;font-size:13px;font-weight:700;color:var(--mut)}
.lgn-f input{display:block;width:100%;margin-top:6px;padding:11px 12px;border:1.5px solid var(--field-bd);border-radius:10px;font:inherit;font-size:14px;background:var(--bg);color:var(--ink)}
.lgn-primary{width:100%;background:var(--cta);color:var(--on-accent);border:0;border-radius:11px;padding:13px;font:inherit;font-weight:800;cursor:pointer;margin-top:4px}
.lgn-primary:hover{background:var(--cta-d)}
.lgn-alt{text-align:center;margin-top:14px;font-size:13.5px}.lgn-alt a{color:var(--accent-text,var(--accent));font-weight:700;cursor:pointer}
.lgn-foot{text-align:center;color:var(--mut);font-size:13px;margin-top:16px}.lgn-foot a{color:var(--accent-text,var(--accent));font-weight:700;cursor:pointer}
/* referenzen */
.ref-hero{padding:0 0 6px}
.ref-hero p{color:var(--mut);font-size:var(--lead-size);margin-top:8px;max-width:72ch}
.ref-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:16px 0 6px}
.ref-bar label{font-weight:700;font-size:var(--small-size);color:var(--mut)}
.ref-bar select{padding:10px 14px;border:1px solid var(--line);border-radius:999px;font:inherit;font-weight:600;background:var(--card);color:var(--ink)}
.ref-search{flex:1;min-width:220px;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;padding:0 14px;background:var(--card)}
.ref-search input{border:0;outline:0;flex:1;padding:11px 0;font:inherit;font-size:var(--body-size);background:transparent;color:var(--ink)}
.ref-count{color:var(--mut);font-weight:700;font-size:var(--small-size);padding:4px 0 12px;text-align:center}
.ref-fallback{margin:36px auto;max-width:560px;text-align:center;background:var(--soft);border:1px solid var(--line);border-radius:16px;padding:40px 30px;color:var(--mut);font-size:var(--body-size)}
.ref-thumbs{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.ref-thumb{width:calc((100% - 18px)/4);max-width:78px;height:52px;object-fit:cover;border:1px solid var(--line);border-radius:6px;cursor:pointer;transition:opacity .15s}
.ref-thumb:hover{opacity:.82}
.ref-pager{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin:26px 0 8px}
.ref-pg{min-width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;padding:0 10px;border:1px solid var(--line);border-radius:9px;text-decoration:none;color:var(--ink);font-weight:600}
.ref-pg.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.ref-pg:hover:not(.on){border-color:var(--accent)}
.ref-lb{position:fixed;inset:0;background:rgba(0,0,0,.85);display:none;align-items:center;justify-content:center;z-index:1000}
.ref-lb.open{display:flex}
.ref-lb img{width:auto;height:auto;max-width:90vw;max-height:85vh;border-radius:6px;box-shadow:0 10px 40px rgba(0,0,0,.5)}
.ref-lb-x{position:absolute;top:14px;right:18px;background:none;border:0;color:#fff;font-size:34px;line-height:1;cursor:pointer}
.ref-lb-prev,.ref-lb-next{position:absolute;top:50%;transform:translateY(-50%);background:none;border:0;color:#fff;font-size:46px;line-height:1;cursor:pointer;padding:10px 18px;display:none}
.ref-lb-prev{left:6px}.ref-lb-next{right:6px}
.ref-lb-multi .ref-lb-prev,.ref-lb-multi .ref-lb-next{display:block}
.det-ref-thumbs{margin-top:10px}
.ref-grid{columns:4;column-gap:20px;padding-bottom:24px}
@media(max-width:1200px){.ref-grid{columns:3}}@media(max-width:1000px){.ref-grid{columns:2}}@media(max-width:640px){.ref-grid{columns:1}}
.refc{break-inside:avoid;border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-bottom:20px;background:var(--card)}
.refc .rphoto{display:block;aspect-ratio:16/9;overflow:hidden}
.refc .rphoto img{width:100%;height:100%;object-fit:cover;transition:.3s}
.refc:hover .rphoto img{transform:scale(1.04)}
.refc .bd{padding:15px 18px 18px}
.refc .meta{color:var(--mut);font-size:var(--small-size)}
.refc .prog{font-family:var(--disp);font-weight:800;font-size:var(--h4-size);margin:3px 0 8px}
.refc blockquote{margin:0;color:var(--txt);font-size:var(--small-size);line-height:1.5}
.refc .lnk{display:inline-block;margin-top:10px;color:var(--accent-text,var(--accent));font-weight:700;font-size:var(--small-size)}
.ref-more{display:block;margin:6px auto 50px;border:1px solid var(--ink);background:var(--card);border-radius:10px;padding:13px 28px;font:inherit;font-weight:700;cursor:pointer;color:var(--ink)}
.ref-more[disabled]{opacity:.55;cursor:default}
/* Referenzen: Titel, Kategorie-Chips, Nachlade-Bereich, Angebots-Link */
.ref-title{margin:0 0 16px;text-align:center}
/* Als h2 folgt der Titel direkt auf den Intro-Block DERSELBEN Section — dort gibt
   es kein sw-* dazwischen, der Abstand muss also hierher. Die Kategorieseite
   rendert ihn als h1 am Section-Anfang und braucht ihn nicht. */
h2.ref-title{margin-top:52px}
.ref-chips{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:0 0 26px}
/* Wiederholung der Kategorienleiste unter den Karten ("Neuste"-Modus): Abstand nach oben statt nach unten. */
.ref-chips-bottom{margin:26px 0 0}
.ref-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 15px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink);font-weight:600;font-size:var(--small-size);text-decoration:none;white-space:nowrap}
.ref-chip:hover{border-color:var(--accent);color:var(--accent-text,var(--accent))}
.ref-chip.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.ref-chip .n{opacity:.6;font-weight:400}
.ref-chip.on .n{opacity:.8}
.ref-loadmore{text-align:center}
.ref-more-status{color:var(--mut);font-size:var(--small-size);min-height:1.4em;margin:0 0 8px}
/* Uebernimmt das Skript das Nachladen, bleibt der Pager im DOM (und damit im
   gebauten HTML fuer Suchmaschinen), wird aber nicht mehr angezeigt. */
.ref-pager--js{display:none}
.refc a.prog{display:block;color:var(--accent-text,var(--accent));text-decoration:none}
.refc a.prog:hover{text-decoration:underline}


/* nicer cards */
.card{transition:transform .16s ease}
.card .imgwrap{box-shadow:0 1px 4px rgba(0,0,0,.06);transition:box-shadow .16s ease}
.card:hover{transform:translateY(-3px)}
.card:hover .imgwrap{box-shadow:0 8px 18px rgba(0,0,0,.10)}
.card .ttl{margin-top:2px}.card .price b{color:var(--ink)}
/* dependency-free slider */
.trow-slider{position:relative;margin:4px 0 8px}
/* padding-left 0 (frueher 10px): mit Innenabstand links lag die erste Snap-Position bei scrollLeft 10 -> der Browser
   scrollte jeden Slider beim Laden selbst dorthin. Chrome wertet diesen Snap-Scroll wie eine Nutzer-Scrollbewegung und
   beendet die LCP-Messung -> Startseite/Thema/Detail hatten gar kein LCP (Lighthouse rechnete ~5 s). Ruhebild unveraendert:
   die erste Karte stand nach dem Snap ohnehin buendig links. Nur Slider, die NICHT ueberlaufen, ruecken 10px nach links. */
.ts-track{display:flex;gap:20px;overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none;padding:6px 10px 0 0;scroll-snap-type:x proximity}
.ts-track::-webkit-scrollbar{display:none}
.ts-track>*{flex:0 0 264px;scroll-snap-align:start}
/* Drag-to-Scroll (blueprint-ui.js). Greif-Cursor nur bei echter Maus und nur,
   wenn ueberhaupt Scrollreserve da ist (.ts-can-drag setzt tsSync). */
@media (hover:hover) and (pointer:fine){.ts-can-drag{cursor:grab}}
/* Waehrend des Ziehens muessen smooth-Scrolling und Snap aus: sonst animiert
   der Browser jede scrollLeft-Zuweisung und arbeitet gegen die Maus an. */
.ts-dragging{cursor:grabbing;scroll-behavior:auto;scroll-snap-type:none;-webkit-user-select:none;user-select:none}
/* Nur waehrend des Zugs: verhindert Hover-Flackern und dass ein Bild die
   Geste abfaengt. Danach sofort wieder normal klickbar. */
.ts-dragging a,.ts-dragging img{pointer-events:none}
/* ===== Slider-Fussleiste (.trow-slider--foot): Pfeile unten rechts, dauerhaft sichtbar.
   Loest die frueheren, absolut positionierten Hover-Pfeile ab; die nutzen inzwischen
   ALLE Slider, die alten .ts-nav-Regeln sind entfernt. ===== */
.ts-foot{display:flex;align-items:center;gap:16px;padding:2px 10px 0;min-height:38px}
.ts-foot[hidden]{display:none}
.ts-foot-l{display:flex;align-items:center;gap:14px;flex:1;min-width:0}
.ts-foot-r{display:flex;align-items:center;gap:12px;margin-left:auto}
/* Variante "nur Pfeile, mittig" (Kategorien-Kacheln) */
.ts-foot--center{justify-content:center}
.ts-foot--center .ts-foot-r{margin-left:0}
/* Fortschritt: Fuellbreite = sichtbarer Anteil, Position = Scrollstand */
.ts-rail{position:relative;height:3px;border-radius:999px;background:var(--line);flex:0 1 220px;min-width:70px}
.ts-rail i{position:absolute;left:0;top:0;height:100%;border-radius:999px;background:var(--accent);transition:left .18s ease,width .18s ease}
/* Zaehler */
.ts-count{font-size:13px;font-weight:700;color:var(--mut);white-space:nowrap;font-variant-numeric:tabular-nums}
.ts-count b{color:var(--ink);font-weight:800}
/* Pfeile: UTF-8-Glyphe in randlosem Kreis (Variante C) */
.ts-arrows{display:flex;align-items:center;gap:10px}
.ts-arrow{-webkit-appearance:none;appearance:none;border:0;margin:0;padding:0;cursor:pointer;
  width:38px;height:38px;border-radius:50%;background:var(--soft);color:var(--ink);
  font-family:var(--font-body);font-size:22px;line-height:1;display:grid;place-items:center;
  transition:background .16s ease,color .16s ease,opacity .16s ease}
.ts-arrow>span{display:block;margin-top:-3px}
.ts-arrow:hover:not([disabled]){background:var(--accent);color:var(--on-accent)}
.ts-arrow:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.ts-arrow[disabled]{opacity:.28;cursor:default;background:var(--soft);color:var(--mut)}
/* Kanten-Fade: nur dort, wo wirklich noch Karten folgen. JS (tsApply) setzt am Track
   ts-fade-l / ts-fade-r; am jeweiligen Ende fehlt die Klasse -> harte Kante.
   Bewusst KEINE Custom Properties (--mask-l/-r) mehr: die erben und zwangen bei jeder
   Aenderung den ganzen Karten-Teilbaum zur Style-Neuberechnung. mask-image erbt nicht.
   Grundregel (ohne Klasse) = frueherer Startzustand (beide 0px). */
.trow-slider--foot .ts-track,.trow-slider--foot .kattiles{
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 var(--mask-l,0px),#000 calc(100% - var(--mask-r,0px)),transparent 100%);
  mask-image:linear-gradient(to right,transparent 0,#000 var(--mask-l,0px),#000 calc(100% - var(--mask-r,0px)),transparent 100%)}
.trow-slider--foot .ts-track.ts-fade-l,.trow-slider--foot .kattiles.ts-fade-l{
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 44px,#000 calc(100% - 0px),transparent 100%);
  mask-image:linear-gradient(to right,transparent 0,#000 44px,#000 calc(100% - 0px),transparent 100%)}
.trow-slider--foot .ts-track.ts-fade-r,.trow-slider--foot .kattiles.ts-fade-r{
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 0px,#000 calc(100% - 56px),transparent 100%);
  mask-image:linear-gradient(to right,transparent 0,#000 0px,#000 calc(100% - 56px),transparent 100%)}
.trow-slider--foot .ts-track.ts-fade-l.ts-fade-r,.trow-slider--foot .kattiles.ts-fade-l.ts-fade-r{
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 44px,#000 calc(100% - 56px),transparent 100%);
  mask-image:linear-gradient(to right,transparent 0,#000 44px,#000 calc(100% - 56px),transparent 100%)}
/* top offers cards (with intro) */
.ts-track .topcard{flex:0 0 340px;scroll-snap-align:start;cursor:pointer}
.topcard{display:block;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--card);transition:transform .16s,box-shadow .16s}
.topcard:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(0,0,0,.10)}
.tc-img{position:relative;aspect-ratio:16/9;overflow:hidden}
.tc-img img{width:100%;height:100%;object-fit:cover;transition:.3s}.topcard:hover .tc-img img{transform:scale(1.05)}
.tc-badge{position:absolute;top:12px;left:12px;background:var(--cta);color:var(--on-accent);border-radius:999px;padding:5px 12px;font-size:var(--small-size);font-weight:800}
.tc-img .heart{position:absolute;top:12px;right:12px;color:#fff;font-size:22px;filter:drop-shadow(0 1px 4px rgba(0,0,0,.5))}
.tc-img .heart.on{color:var(--cta)}
.tc-bd{padding:14px 16px 16px}
.tc-bd .loc{font-size:var(--small-size);color:var(--accent-text,var(--accent));font-weight:700;text-transform:uppercase}
.tc-bd .ttl{font-family:var(--disp);font-weight:800;font-size:var(--h3-size);margin:2px 0 6px}
.tc-intro{color:var(--txt);font-size:var(--body-size);line-height:1.5;margin:0 0 10px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.tc-bd .price{font-size:var(--small-size)}.tc-bd .price b{font-weight:800}
/* hero wizard fab */
.hero2 .wiz-fab{position:absolute;top:18px;right:18px;width:50px;height:50px;border-radius:14px;border:0;background:rgba(255,255,255,.92);color:var(--accent-text,var(--accent));font-size:22px;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.25);z-index:3}
.hero2 .wiz-fab:hover{background:#fff}
/* hotline always visible */
@media(max-width:920px){.hnav a.hotline{display:flex!important}}
/* photo modal above everything */
.photo-modal{z-index:100}
/* language switch in offcanvas */
.oc-lang{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;margin-left:auto}
.oc-lang button{border:0;background:var(--card);padding:5px 11px;font:inherit;font-weight:700;font-size:12px;cursor:pointer;color:var(--mut)}
.oc-lang button.on{background:var(--accent);color:var(--on-accent)}
/* merklist modal */
.merk-ovl{position:fixed;inset:0;background:rgba(20,22,25,.5);backdrop-filter:blur(3px);display:none;place-items:center;z-index:93;padding:20px}
.merk-ovl.open{display:grid}
.merk-card{background:var(--card);border-radius:18px;max-width:920px;width:100%;max-height:84vh;display:flex;flex-direction:column;overflow:hidden}
.merk-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line)}
.merk-head b{font-size:18px}
.merk-x{border:0;background:var(--soft);width:34px;height:34px;border-radius:50%;font-size:18px;cursor:pointer;color:var(--ink)}
.merk-body{padding:10px 20px;overflow:auto;flex:1}
.merk-row{display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.merk-row:last-child{border-bottom:none}
.merk-copy-ids{margin-left:14px;font-size:12px;font-weight:600;padding:4px 10px;border:1px solid #bbb;border-radius:6px;background:#fff;color:#333;cursor:pointer}
.thema-hero{margin:0 0 18px;border-radius:16px;overflow:hidden;max-height:340px}
.thema-hero img{width:100%;height:100%;max-height:340px;object-fit:cover;display:block}
.thema-intro{margin-top:10px;color:var(--txt);font-size:var(--lead-size);line-height:1.6;max-width:760px}
.thema-filter-btn{display:inline-block;margin-top:16px;background:var(--cta,#b61c1c);color:var(--on-accent,#fff);font-weight:700;font-size:var(--btn-size);padding:11px 22px;border-radius:10px;text-decoration:none}
.thema-filter-btn:hover{background:var(--cta-d,#9a1717)}
.thema-split{display:grid;grid-template-columns:minmax(0,460px) 1fr;gap:44px;align-items:center}
.thema-more{background:#f4f5f7}
/* --- Landingpage SEO/GEO/E-E-A-T Sektionen --- */
.sec-h--center{text-align:center;flex-direction:column;align-items:center;margin-bottom:34px}
.sec-h .kick,.berat-left 
.sec-h--center 
.sec-h--center p{color:var(--muted,#6b7280);font-size:15px;max-width:640px;margin:6px auto 0}
/* FAQ */
.thema-faq{background:#f4f5f7}
.faq-list{display:flex;flex-direction:column}
.faq-item{border:1px solid var(--line);border-radius:12px;background:#fff;padding:2px 20px;margin-bottom:0.4rem}
.faq-item[open]{border-color:var(--accent)}
.faq-item summary{list-style:none;cursor:pointer;font-weight:650;font-size:var(--h4-size);padding:16px 0;display:flex;justify-content:space-between;align-items:center;gap:16px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";font-size:22px;color:var(--accent-text,var(--accent));font-weight:400;flex:0 0 auto}
.faq-item[open] summary::after{content:"\2013"}
.faq-a{padding:0 0 18px;color:#374151;font-size:var(--body-size);line-height:1.65}
/* Beratung E-E-A-T Band */
.thema-beratung{border-top:1px solid var(--line)}
.berat-band{display:grid;grid-template-columns:minmax(0,1fr);gap:44px;align-items:center}
.berat-left h2{margin:0 0 var(--h-mb)}
.berat-lead{color:var(--muted,#6b7280);margin:0 0 22px;max-width:46ch}
.berat-advisors{display:flex;align-items:center;gap:16px;margin-bottom:22px}
.berat-avatars{display:flex;align-items:center}
.berat-av{width:56px;height:56px;border-radius:50%;border:3px solid #fff;box-shadow:0 2px 8px #0002;margin-left:-14px;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;background-color:var(--accent)}
.berat-av:first-child{margin-left:0}
.berat-av--txt{background:var(--accent)}
.berat-names{font-size:var(--small-size)}
.berat-names b{display:block}
.berat-names span{color:var(--muted,#6b7280);font-size:var(--small-size)}
.berat-cta{margin-top:0}
.berat-stats{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.berat-stat{background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:22px}
.berat-stat .n{display:block;font-family:var(--disp);font-size:var(--h2-size);font-weight:800;color:var(--accent-text,var(--accent));line-height:1}
.berat-stat .l{display:block;font-size:var(--small-size);color:var(--muted,#6b7280);margin-top:6px}
/* Reviews */
.thema-reviews{background:#f4f5f7}
.rev-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.rev-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px;margin:0}
.rev-stars{color:#ffb703;font-size:var(--small-size);letter-spacing:2px;margin-bottom:12px}
.rev-q{font-size:var(--body-size);color:#374151;line-height:1.6;margin:0 0 18px;font-style:normal}
.rev-who{display:flex;align-items:center;gap:12px;font-size:var(--small-size)}
.rev-av{width:40px;height:40px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--small-size);flex:0 0 auto}
.rev-meta b{display:block}
.rev-meta span{color:var(--muted,#6b7280)}
/* Magazin-Teaser */
.mag-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px}
.mag-card{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;text-decoration:none;color:inherit;transition:box-shadow .15s,transform .15s}
.mag-card:hover{box-shadow:0 10px 30px #0001;transform:translateY(-2px)}
.mag-im{aspect-ratio:16/9;background:linear-gradient(135deg,#e7e5ee,#f1f0f5);overflow:hidden}
.mag-im img{width:100%;height:100%;object-fit:cover;display:block}
.mag-bd{padding:16px 18px}
.mag-k{font-size:var(--small-size);font-weight:700;color:var(--accent-text,var(--accent));text-transform:uppercase;letter-spacing:.03em}
.mag-bd h3{margin:6px 0 0}
@media(max-width:820px){.berat-band{grid-template-columns:1fr;gap:28px}}
.thema-split--noimg{grid-template-columns:1fr;max-width:760px}
.thema-split-img{position:relative;border-radius:16px;overflow:hidden;background:var(--soft)}
.thema-badge--onimg{position:absolute;top:14px;left:14px;margin:0;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.18)}
.thema-split-img img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;display:block}
.thema-split-txt{min-width:0}
.thema-badge{display:inline-block;background:color-mix(in srgb,var(--accent) 12%,#fff);color:var(--accent-text,var(--accent));font-size:var(--small-size);font-weight:700;padding:6px 14px;border-radius:999px;margin-bottom:16px}
.thema-split-txt h1{margin:0 0 var(--h-mb)}
.thema-split-txt .thema-intro{margin-top:0;max-width:64ch}
/* Topkat-Landingpage: Bild und Text oben bündig, Bild haftet beim Scrollen, Button als klarer Aufruf */
.thema-split{align-items:start}
.thema-split-img{position:sticky;top:96px}
.thema-split-txt .thema-filter-btn{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:22px}
@media(max-width:820px){.thema-split-img{position:static}}
@media(max-width:820px){.thema-split{grid-template-columns:1fr;gap:22px}.thema-split-img img{aspect-ratio:16/9}}
.merk-row img{width:100px;height:68px;object-fit:cover;border-radius:10px;flex-shrink:0}
.mr-bd{flex:1;min-width:0}.mr-t{font-weight:700;font-size:14.5px}.mr-m{color:var(--mut);font-size:12.5px}
.merk-link{display:flex;align-items:center;gap:16px;flex:1;min-width:0;color:inherit;text-decoration:none}
.merk-link:hover .mr-t{color:var(--accent-text,var(--accent))}
.mr-x{border:0;background:none;color:var(--cta);font-size:20px;cursor:pointer;flex-shrink:0}
.merk-empty{color:var(--mut);text-align:center;padding:30px 10px}
.merk-foot{padding:16px 20px;border-top:1px solid var(--line);display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.merk-foot a,.merk-foot button{font-weight:700;font-size:14px;text-decoration:none;padding:10px 18px;border-radius:10px;cursor:pointer;border:0;font:inherit}
.merk-foot .merk-browse{color:var(--accent-text,var(--accent));background:none;border:1px solid var(--line)}
.merk-foot .merk-browse:hover{background:var(--soft)}
.merk-foot .merk-clear{color:var(--mut);background:none;border:1px solid var(--line)}
.merk-foot .merk-clear:hover{background:#fbe9e7;color:var(--error);border-color:var(--error)}
.merk-foot .merk-share{color:var(--ink);background:none;border:1px solid var(--line)}
.merk-foot .merk-share:hover{background:var(--soft)}
.merk-foot .merk-offerte{background:var(--cta);color:var(--on-accent);margin-left:auto}
.merk-foot .merk-offerte:hover{filter:brightness(.9)}
.merk-form{padding:20px;border-top:1px solid var(--line);display:none;overflow:auto;flex:1}
.merk-form.open{display:block}
.merk-form.open~.merk-foot .merk-offerte{display:none}
.mof-cols{display:grid;grid-template-columns:1fr 1fr;gap:28px}
@media(max-width:600px){.mof-cols{grid-template-columns:1fr}}
.mof-h{font-size:15px;font-weight:800;color:var(--accent-text,var(--accent));margin-bottom:14px;padding-bottom:8px;border-bottom:2px solid var(--accent)}
.mof-field{display:block;margin-bottom:12px}
.mof-field span{display:block;font-size:13px;font-weight:700;color:var(--mut);margin-bottom:4px}
.mof-field input,.mof-field select,.mof-field textarea{width:100%;padding:10px 12px;border:1.5px solid var(--line);border-radius:8px;font:inherit;font-size:14px;background:var(--bg);color:var(--ink)}
.mof-field input:focus,.mof-field select:focus,.mof-field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(67,111,154,.1)}
.mof-field.te-invalid>input,.mof-field.te-invalid>textarea,.mof-field.te-invalid select{border-color:var(--error);box-shadow:0 0 0 3px color-mix(in srgb,var(--error) 15%,transparent)}
.mof-field.te-invalid>span{color:var(--error)}
.mof-row{display:flex;gap:12px}
.mof-row .mof-field{flex:1;min-width:0}
.mof-row .mof-2{flex:2}
.mof-row .mof-1{flex:1}
.mof-radio{display:flex;gap:16px;padding:11.5px 0}
.mof-radio label{display:flex;align-items:center;gap:5px;font-size:14px;cursor:pointer}
.mof-radio input{accent-color:var(--accent)}
.mof-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:18px;flex-wrap:wrap}
.mof-foot .merk-offerte,.merk-form .merk-offerte,.merk-share-form .merk-offerte{margin-left:auto;background:var(--cta);color:var(--on-accent);border:0;border-radius:10px;padding:12px 24px;font:inherit;font-weight:800;font-size:14px;cursor:pointer}
.mof-foot .merk-offerte:hover,.merk-form .merk-offerte:hover,.merk-share-form .merk-offerte:hover{filter:brightness(.9)}
.mof-foot .merk-offerte:disabled,.merk-form .merk-offerte:disabled,.merk-share-form .merk-offerte:disabled{opacity:.4;cursor:not-allowed}
.mof-foot .merk-browse,.merk-share-form .merk-browse{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:12px 20px;font:inherit;font-weight:700;font-size:14px;cursor:pointer}
.mof-foot .merk-browse:hover,.merk-share-form .merk-browse:hover{background:var(--soft)}
.mof-sub{font-size:13px;font-weight:700;color:var(--mut);margin:14px 0 8px;text-transform:uppercase;letter-spacing:.03em}
.mof-sub:first-child{margin-top:0}
.merk-share-form{padding:20px;border-top:1px solid var(--line);display:none;overflow:auto;flex:1}
.merk-share-form.open{display:block}
.merk-card:has(.merk-share-form.open) .merk-body,.merk-card:has(.merk-share-form.open) .merk-form{display:none}
.merk-card:has(.merk-share-form.open) .merk-foot .merk-share{display:none}
.merk-card:has(.merk-form.open) .merk-share-form{display:none}
.mof-social{display:flex;gap:10px;margin-top:4px}
.mof-social-btn{padding:10px 18px;border-radius:8px;font-size:13px;font-weight:700;color:#fff;cursor:pointer}
.mof-fb{background:#1877f2}
.mof-li{background:#0a66c2}
.merk-card:has(.merk-form.open) .merk-body{display:none}



/* robust scroll lock for overlay/modals (html is the scroller) */
html.te-lock,body.te-lock{overflow:hidden!important}
/* Vimeo / video embed */
.video-embed{position:relative;width:100%;aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:#000;margin-top:2px}
.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
/* clean language segmented control */
.oc-lang{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:var(--card);line-height:1;flex:0 0 auto;align-self:center}
.oc-lang button{border:0;background:transparent;padding:7px 13px;font:inherit;font-weight:700;font-size:12px;line-height:1;cursor:pointer;color:var(--mut);display:flex;align-items:center;transition:background .15s,color .15s}
.oc-lang button+button{border-left:1px solid var(--line)}
.oc-lang button.on,.oc-lang-btn.on{background:var(--accent);color:var(--on-accent)}
.oc-lang-btn{border:0;background:transparent;padding:7px 13px;font:inherit;font-weight:700;font-size:12px;line-height:1;cursor:pointer;color:var(--mut);text-decoration:none;display:flex;align-items:center}
.oc-lang-btn+.oc-lang-btn{border-left:1px solid var(--line)}
.oc-lang-row{display:flex;align-items:center;gap:10px}
.oc-lang-row .oc-lang{margin-left:auto}
.oc-link.on{color:var(--accent-text,var(--accent));font-weight:800}
.oc-link.lang-row{justify-content:space-between}
.oc-link.lang-row>span:first-child{display:flex;align-items:center;gap:12px}



/* ===== prefooter CTA ===== */
.pf-in{background:linear-gradient(120deg,var(--accent),var(--accent-2));color:var(--on-accent);border-radius:24px;padding:42px 46px;display:flex;align-items:center;gap:30px;flex-wrap:wrap;box-shadow:0 22px 54px rgba(67,111,154,.32)}
.pf-txt{flex:1;min-width:280px}
.pf-txt h2{color:var(--on-accent);margin:0 0 var(--h-mb-tight)}
.pf-txt p{margin:0;font-size:15.5px;opacity:.93;max-width:62ch}
.pf-btn{background:#fff;color:var(--accent-text,var(--accent));border-radius:12px;padding:15px 26px;font-weight:800;text-decoration:none;white-space:nowrap;font-size:15px;transition:transform .15s,box-shadow .15s}
.pf-btn:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(0,0,0,.22)}
/* ===== footer ===== */
.site-footer{margin-top:0;background:var(--footer-bg);color:var(--footer-color,var(--footer-text));font-family:var(--footer-font);font-size:var(--footer-size);font-weight:var(--footer-weight);line-height:var(--footer-lh)}
.site-footer p{margin-bottom:var(--footer-mb,0)}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:36px;padding:54px 40px 40px;align-items:start}
@media(max-width:900px){.foot-grid{grid-template-columns:1fr 1fr;gap:30px}}
@media(max-width:560px){.foot-grid{grid-template-columns:1fr}}
.foot-col .foot-h{font-family:var(--h4-font);font-size:var(--h4-size);font-weight:var(--h4-weight);line-height:var(--h4-lh)}
.foot-col h4,.foot-col .foot-h{color:var(--footer-heading);text-transform:uppercase;letter-spacing:.06em;display:block;border-bottom:1px solid var(--footer-heading);padding-bottom:8px;margin:0 0 var(--h-mb)}
.foot-col li.f-subhead{color:var(--footer-heading);font-size:13px;text-transform:uppercase;letter-spacing:.06em;font-weight:800}
.foot-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.foot-col a{color:var(--footer-link);text-decoration:none;font-size:14px;transition:color .15s}
.foot-col a:hover{color:var(--footer-heading)}
.foot-music-row{display:flex;flex-direction:column;align-items:center;text-align:center;gap:11px;margin-top:0;padding-top:0}
.foot-music-h{display:inline-block;color:var(--footer-heading);font-size:12px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;padding-bottom:8px;border-bottom:1px solid var(--footer-heading)}
.foot-music-tags{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 18px}
.foot-music-tags a{color:var(--footer-link);text-decoration:none;font-size:13px;white-space:nowrap;opacity:.85;transition:color .15s,opacity .15s}
.foot-music-tags a:hover{color:var(--footer-heading);opacity:1}
.f-logo{font-family:var(--disp);font-weight:800;font-size:22px;color:#fff}.f-logo span{color:var(--cta)}
.f-logo-img{height:25px;width:auto;filter:brightness(0) invert(1)}
.foot-brand p{font-size:14px;line-height:1.6;margin:12px 0 16px;max-width:38ch}
.f-social{display:flex;gap:10px}
.f-social a{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.08);display:grid;place-items:center;color:#fff;font-size:14px;font-weight:700}
.f-social a:hover{background:var(--accent)}
.foot-col address{font-style:normal;font-size:14px;color:var(--footer-text)}
.foot-col address b,.foot-col address strong{color:var(--footer-heading);font-weight:700}
/* Kontakt-Spalte als ul -> identische Zeilenflucht wie die anderen Footer-Spalten */
.foot-adr{line-height:inherit}
.foot-adr .foot-contact{margin-top:0}
.foot-col address a{color:#c9ced4}.foot-col address a:hover{color:#fff}
.foot-contact{display:flex;flex-wrap:wrap;gap:4px 20px;margin-top:6px}
.foot-contact a{text-decoration:none;border:0;font-size:14px}
.foot-bottom{border-top:1px solid rgba(255,255,255,.1)}
.foot-bottom .wrap{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;padding:18px 40px;font-size:13px;color:#8b9098}
.fb-links{display:flex;gap:18px;flex-wrap:wrap}.fb-links a{color:#8b9098;text-decoration:none}.fb-links a:hover{color:#fff}
/* ===== scroll reveal ===== */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .6s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.foot-grid .reveal:nth-child(2){transition-delay:.07s}
.foot-grid .reveal:nth-child(3){transition-delay:.14s}
.foot-grid .reveal:nth-child(4){transition-delay:.21s}
/* Website-Footer (nicht-datengetrieben): 3 Spalten, Menue 2-spaltig */
.site-footer--web .foot-grid{grid-template-columns:1.6fr 1.6fr 1.2fr}
@media(max-width:900px){.site-footer--web .foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.site-footer--web .foot-grid{grid-template-columns:1fr}}
.foot-col ul.foot-menu{display:block;columns:2;column-gap:28px}
.foot-col ul.foot-menu li{break-inside:avoid;margin-bottom:11px}
@media(max-width:560px){.foot-col ul.foot-menu{columns:1}}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}
/* ===== livechat FAB ===== */
.chat-fab{position:fixed;right:22px;bottom:22px;width:60px;height:60px;border-radius:50%;border:0;background:var(--cta);color:var(--on-accent);font-size:26px;cursor:pointer;box-shadow:0 8px 24px rgba(182,28,28,.42);z-index:70;display:grid;place-items:center;transition:transform .15s}
.chat-fab:hover{transform:scale(1.07)}
.chat-fab .badge{position:absolute;top:0;right:1px;width:15px;height:15px;border-radius:50%;background:var(--success);border:2.5px solid var(--cta)}
.chat-panel{position:fixed;right:22px;bottom:94px;width:344px;max-width:calc(100vw - 44px);height:460px;max-height:calc(100vh - 130px);background:var(--card);border-radius:18px;box-shadow:0 24px 64px rgba(0,0,0,.32);display:none;flex-direction:column;overflow:hidden;z-index:71}
.chat-panel.open{display:flex;animation:cpUp .22s ease}
@keyframes cpUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.cp-head{display:flex;align-items:center;gap:10px;padding:14px 16px;background:var(--accent);color:var(--on-accent)}
.cp-av{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.25);display:grid;place-items:center;font-weight:800;font-size:13px;flex:0 0 auto}
.cp-head b{font-size:14.5px}.cp-head small{display:block;font-size:11.5px;opacity:.85}
.cp-head button{margin-left:auto;border:0;background:transparent;color:#fff;font-size:22px;cursor:pointer;line-height:1}
.cp-body{flex:1;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:10px;background:var(--soft)}
.cp-msg{max-width:82%;padding:9px 13px;border-radius:14px;font-size:14px;line-height:1.45}
.cp-msg.bot{background:var(--card);border:1px solid var(--line);align-self:flex-start;border-bottom-left-radius:4px}
.cp-msg.me{background:var(--accent);color:var(--on-accent);align-self:flex-end;border-bottom-right-radius:4px}
.cp-input{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);background:var(--card)}
.cp-input input{flex:1;border:1.5px solid var(--field-bd);border-radius:999px;padding:10px 14px;font:inherit;font-size:14px;background:var(--bg);color:var(--ink)}
.cp-input button{border:0;background:var(--cta);color:var(--on-accent);width:42px;height:42px;border-radius:50%;cursor:pointer;font-size:15px;flex:0 0 auto}
@media(max-width:520px){.chat-panel{right:12px;left:12px;width:auto}.chat-fab{right:16px;bottom:16px}}



/* ===== contact mega menu ===== */
.cmega-ovl{position:fixed;inset:0;top:78px;background:rgba(20,22,25,.38);backdrop-filter:blur(2px);opacity:0;visibility:hidden;transition:opacity .2s;z-index:78}
.cmega-ovl.open{opacity:1;visibility:visible}
.cmega{position:fixed;left:0;right:0;top:78px;background:var(--mega-bg);color:var(--mega-fg);border-top:1px solid var(--line);box-shadow:0 26px 54px rgba(0,0,0,.18);z-index:79;transform:translateY(-14px);opacity:0;visibility:hidden;transition:opacity .22s ease,transform .22s ease}
.cmega.open{transform:none;opacity:1;visibility:visible}
.cmega-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;padding:36px 40px 40px;position:relative}
@media(max-width:980px){.cmega-grid{grid-template-columns:1fr 1fr;gap:26px}}
.cm-close{position:absolute;top:10px;right:43px;z-index:82;border:0;background:var(--soft);width:36px;height:36px;border-radius:50%;font-size:18px;cursor:pointer;color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.12)}
.cm-ic{width:44px;height:44px;border-radius:12px;background:var(--soft);display:grid;place-items:center;font-size:20px;color:var(--accent-text,var(--accent));margin-bottom:8px}
.cm-col h4{text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--h-mb)}
.cm-big{font-family:var(--disp);font-weight:800;font-size:20px;color:var(--ink);text-decoration:none;display:block}
.cm-big:hover{color:var(--accent-text,var(--accent))}
.cm-hours{margin-top:12px;font-size:13px;color:var(--txt)}
.cm-hours table{border-collapse:collapse;width:100%}.cm-hours td{padding:2px 0}.cm-hours td+td{text-align:right;color:var(--mut)}
.cm-status{font-weight:800;font-size:13px;margin-bottom:8px}
.cm-status.on{color:#1f8a4c}.cm-status.off{color:var(--cta)}
.cm-advs{display:flex;align-items:center;gap:10px;margin-top:16px;font-size:12.5px;color:var(--mut)}
.cm-advs .pics{display:flex}
.cm-advs img{width:34px;height:34px;border-radius:50%;object-fit:cover;margin-left:-8px;border:2px solid var(--card)}.cm-advs img:first-child{margin-left:0}
.cm-col address{font-style:normal;font-size:15px;line-height:1.7;margin-bottom:10px}
.cm-link{color:var(--accent-text,var(--accent));font-weight:700;text-decoration:none;font-size:14px}.cm-link:hover{text-decoration:underline}
.cm-col p{font-size:13.5px;color:var(--mut);margin:8px 0}
.cm-chat{background:var(--soft);border-radius:14px;padding:18px;margin:-4px}
.cm-team{padding:0;overflow:hidden;border-radius:14px}
.cm-team-img{width:100%;height:100%;object-fit:cover;display:block;border-radius:14px}
.cm-advisors{display:flex;flex-direction:column;gap:16px;justify-content:center;padding:0}
.cm-adv{display:flex;align-items:center;gap:14px}
.cm-adv img{width:56px;height:56px;border-radius:50%;object-fit:cover;flex-shrink:0}
.cm-adv strong{display:block;font-size:15px}
.cm-adv small{font-size:12px;color:var(--mut)}
.cm-adv-note{margin:4px 0 0;font-size:13px;color:var(--mut)}
.cm-online{color:#1f8a4c;font-weight:700;font-size:13.5px;margin:6px 0 12px}
.cm-btn{background:var(--cta);color:var(--on-accent);border:0;border-radius:10px;padding:12px 18px;font:inherit;font-weight:800;cursor:pointer;width:100%}
.cm-btn:hover{background:var(--cta-d)}
.cm-chat input,.cm-chat textarea{width:100%;margin-bottom:8px;padding:9px 11px;border:1.5px solid var(--field-bd);border-radius:9px;font:inherit;font-size:13.5px;background:var(--bg);color:var(--ink)}
.cm-chat textarea{min-height:62px;resize:vertical}
@media(max-width:760px){.cmega,.cmega-ovl{display:none!important}}



/* video poster tile in gallery */
.gallery .gvideo{position:relative;height:100%;min-height:220px;padding:0;border:0;cursor:pointer;overflow:hidden;background:#000;grid-row:1/3}
.gallery .gvideo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}
.gallery .gvideo:hover img{transform:scale(1.04)}
.gallery .gvideo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.38))}
.vplay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:74px;height:74px;border-radius:50%;background:rgba(255,255,255,.94);color:var(--cta);display:grid;place-items:center;font-size:26px;padding-left:5px;z-index:2;transition:transform .15s;box-shadow:0 8px 26px rgba(0,0,0,.45)}
.gallery .gvideo:hover .vplay{transform:translate(-50%,-50%) scale(1.08)}
.vlabel{position:absolute;left:16px;bottom:14px;z-index:2;background:rgba(0,0,0,.62);color:#fff;font-size:13px;font-weight:700;padding:6px 13px;border-radius:999px;display:flex;align-items:center;gap:6px}
.vlabel::before{content:"\25B6";font-size:10px}
@media(max-width:760px){.gallery .gvideo{grid-row:auto;grid-column:1/3;min-height:200px}}
/* fullscreen video backdrop */
.video-ovl{position:fixed;inset:0;background:rgba(8,9,11,.93);backdrop-filter:blur(4px);display:none;place-items:center;z-index:101;padding:24px}
.video-ovl.open{display:grid}
.vid-wrap{width:100%;max-width:960px;aspect-ratio:16/9}
/* mp4-Player im selben Overlay wie Vimeo. Gleiche Masse, damit der Rahmen bei
   beiden Quellen identisch sitzt; object-fit:contain, weil eine mp4-Datei nicht
   zwingend 16:9 ist und sonst beschnitten wuerde.
   ".is-hidden" wird hier explizit ueberschrieben: das globale display:none muss
   auch gegen das display der Geschwisterregel gewinnen. */
.vid-wrap video{width:100%;height:100%;border:0;border-radius:12px;background:#000;object-fit:contain;display:block}
.vid-wrap iframe.is-hidden,.vid-wrap video.is-hidden{display:none}
.vid-wrap iframe{width:100%;height:100%;border:0;border-radius:12px}
.vid-frame{width:min(1100px,94vw)}
.vid-embed{position:relative;width:100%;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#000;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.vid-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vid-x{position:fixed;top:18px;right:22px;width:46px;height:46px;border-radius:50%;border:0;background:rgba(255,255,255,.15);color:#fff;font-size:24px;cursor:pointer;z-index:102}
.vid-x:hover{background:rgba(255,255,255,.28)}



/* fix: prevent grid tracks from expanding to intrinsic image size (CLS / play-button shift) */
.gallery>*{min-width:0;min-height:0}
.gallery .gvideo{min-height:0}
@media(min-width:701px){.gallery .gvideo{grid-row:1/3;grid-column:auto}}
@media(max-width:700px){.gallery .gvideo{grid-row:auto;grid-column:1/3;min-height:240px}}



/* detail breadcrumb + lead intro */
.crumbs{font-size:13px;color:var(--mut);padding:4px 0 10px;display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.crumbs a{color:var(--mut);text-decoration:none}
.crumbs a:hover{color:var(--accent-text,var(--accent));text-decoration:underline}
.crumbs .cur{color:var(--ink);font-weight:600}
.det-lead{font-size:18px;line-height:1.55;color:var(--txt);margin:2px 0 18px;max-width:82ch}
.det-lead strong{color:var(--ink);font-weight:700}
#doBody .crumbs{display:none}
/* list: spacing for sticky filter sidebar below the sticky toolbar */
@media(max-width:980px){.ls-side{max-height:none;overflow-y:visible}}



/* prefooter portrait */
.pf-in{position:relative}
.pf-portrait{flex:0 0 auto}
.pf-portrait img{width:88px;height:88px;border-radius:50%;object-fit:cover;border:3px solid rgba(255,255,255,.55);box-shadow:0 6px 18px rgba(0,0,0,.22)}
@media(max-width:640px){.pf-portrait{display:none}}
button.pf-btn{cursor:pointer;border:0;font:inherit}
/* partner modal */
.partner-ovl{position:fixed;inset:0;background:rgba(20,22,25,.55);backdrop-filter:blur(3px);display:none;place-items:center;z-index:94;padding:20px}
.partner-ovl.open{display:grid}
.pt-card{background:var(--card);border-radius:20px;max-width:520px;width:100%;padding:30px;position:relative;max-height:90vh;overflow:auto}
.pt-card h3{margin:0 0 0}
.pt-sub{color:var(--mut);font-size:14px;margin:4px 0 18px}
.pt-row{display:flex;gap:12px}.pt-row .lgn-f{flex:1}
@media(max-width:480px){.pt-row{flex-direction:column;gap:0}}
.pt-note{text-align:center;color:var(--mut);font-size:13px;margin-top:12px}
.pt-done{width:56px;height:56px;border-radius:50%;background:#1f8a4c;color:#fff;display:grid;place-items:center;font-size:30px}
.pt-card select{display:block;width:100%;margin-top:6px;padding:11px 12px;border:1.5px solid var(--field-bd);border-radius:10px;background:var(--bg);color:var(--ink);font:inherit;font-size:14px}



/* detail head: remove dup breadcrumb done in markup; more air */
.crumb{padding-bottom:16px}
.pagehead h1{margin:4px 0 var(--h-mb-tight)}
.thema-intro{margin:12px 0 4px;color:var(--mut);line-height:1.7}
.det-lead{margin:10px 0 24px}
.det-sub{margin:4px 0 22px}
.gallery{margin-top:4px}
#doBody .crumb{display:none}



/* remove the last FAQ divider line (section border-top below already separates) */
.faqitem:last-child{border-bottom:0;padding-bottom:0}



/* GEO/SEO content: answer-first lead + Ablauf list */
.detsec p.ans{font-size:16px;line-height:1.55;color:var(--ink);margin:0 0 12px}
.detsec p.ans strong{font-weight:700}
.pinfo{background:#fff3e0;border:2px dashed #e65100;border-radius:10px;padding:20px 24px;margin-top:20px}
.pinfo h4{color:#e65100;margin:14px 0 var(--h-mb-tight)}
.pinfo-sec{padding:10px 0;border-top:1px solid #f0c89a;font-size:var(--body-size);line-height:1.5}
.pinfo-sec:first-of-type{border-top:0;padding-top:0}
.pinfo-score{color:var(--mut)}
.pinfo h3{color:#e65100;margin:0 0 var(--h-mb)}
.pinfo-tbl{width:100%;border-collapse:collapse;font-size:var(--body-size)}
.pinfo-tbl th{text-align:left;padding:6px 12px 6px 0;font-weight:600;color:var(--mut);white-space:nowrap;width:180px;border-bottom:1px solid #f0c89a}
.pinfo-tbl td{padding:6px 0;border-bottom:1px solid #f0c89a;color:var(--ink)}
.ablauf{margin:10px 0 0;padding-left:20px;color:var(--txt);font-size:14.5px;line-height:1.7}
.ablauf li{margin-bottom:3px}

/* CMS Page Layouts: Steps, Portale, Team, Timeline, News, Service */
.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin:28px 0 0}
/* Cards-Block Silbentrennung (Option "Hyphens") */
.cards--hyphens,.cards--hyphens h2,.cards--hyphens h3,.cards--hyphens p{-webkit-hyphens:manual;hyphens:manual;overflow-wrap:break-word}
.step{background:var(--card);color:var(--card-fg);border:1px solid var(--card-border);border-radius:var(--card-radius);box-shadow:var(--card-shadow);padding:24px 20px;text-align:center;transition:box-shadow .2s ease}
.step:hover{box-shadow:var(--card-shadow-hover)}
.step-nr{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-weight:800;font-size:18px;margin-bottom:10px}
.step h3{color:inherit;margin:0 0 var(--h-mb-tight)}
.step p{font-size:var(--card-text-size);font-weight:var(--card-text-weight);line-height:var(--card-text-lh);color:inherit;margin:0}

.portal-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px;margin:24px 0}
.portal-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:28px 22px;text-align:center}
.portal-logo{height:36px;margin-bottom:14px;object-fit:contain}
.portal-card h3{margin:0 0 var(--h-mb-tight)}
.portal-card p{font-size:14px;color:var(--txt);margin:0;line-height:1.55}

.svc-highlights{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin:28px 0}
.svc-item{text-align:center;padding:24px 16px}
.svc-icon{font-size:32px;display:block;margin-bottom:10px;color:var(--accent-text,var(--accent))}
.svc-item h3{margin:0 0 var(--h-mb-tight)}
.svc-item p{font-size:14px;color:var(--txt);margin:0;line-height:1.55}
.ablauf-detail{padding-left:20px;margin:16px 0;font-size:15px;line-height:1.7}
.ablauf-detail li{margin-bottom:10px}
.cta-link{font-weight:700;color:var(--accent-text,var(--accent));text-decoration:none;font-size:15px}
.cta-link:hover{text-decoration:underline}

.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;margin:28px 0}
.team-card{display:flex;gap:18px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px}
.team-photo{width:80px;height:80px;border-radius:50%;object-fit:cover;flex-shrink:0}
.team-info h3{margin:0 0 var(--h-mb-tight)}
.team-role{display:inline-block;font-size:12px;font-weight:700;color:var(--accent-text,var(--accent));text-transform:uppercase;letter-spacing:.03em;margin-bottom:8px}
.team-info p{font-size:13.5px;color:var(--txt);margin:0;line-height:1.55}

.ubu-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin:28px 0}
.ubu-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:24px 16px;border:1px solid var(--line);border-radius:14px;text-decoration:none;color:var(--ink);transition:box-shadow .2s}
.ubu-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.08)}
.ubu-ic{font-size:28px;margin-bottom:8px;color:var(--accent-text,var(--accent))}
.ubu-card strong{font-size:16px;display:block;margin-bottom:4px}
.ubu-card span:last-child{font-size:13px;color:var(--mut)}
.ubu-hero{margin:28px 0}
.ubu-hero-img{width:100%;border-radius:14px;aspect-ratio:16/7;object-fit:cover}
.news-footer{margin-top:28px;text-align:center}

/* Video-Page */
.vid-hero{max-width:960px;margin:0 auto}
.vid-title{letter-spacing:-.01em}
.vt-pre{color:var(--accent-text,var(--accent))}
.vid-meta{display:flex;align-items:center;gap:10px;color:var(--mut);font-size:13.5px;margin-bottom:20px;flex-wrap:wrap}
.vid-meta .dot{opacity:.45}
.vid-player{position:relative;aspect-ratio:16/9;border-radius:18px;overflow:hidden;background:#0c0f13;box-shadow:0 26px 64px rgba(12,15,19,.30)}
.vid-facade{position:absolute;inset:0;width:100%;height:100%;border:0;padding:0;cursor:pointer;background:#0c0f13;display:block}
.vid-facade img{width:100%;height:100%;object-fit:cover;opacity:.92;transition:opacity .2s,transform .5s}
.vid-facade:hover img{opacity:1;transform:scale(1.03)}
.vid-player .vid-play,.vid-teaser-thumb .vid-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;background:var(--cta);display:grid;place-items:center;box-shadow:0 10px 30px rgba(182,28,28,.5);transition:transform .15s}
.vid-player .vid-play{width:84px;height:84px}
.vid-teaser-thumb .vid-play{width:52px;height:52px}
.vid-facade:hover .vid-play{transform:translate(-50%,-50%) scale(1.07)}
.vid-player .vid-play::after,.vid-teaser-thumb .vid-play::after{content:"";margin-left:6px;border-style:solid;border-color:transparent transparent transparent #fff}
.vid-player .vid-play::after{border-width:15px 0 15px 25px}
.vid-teaser-thumb .vid-play::after{border-width:10px 0 10px 17px}
.vid-player iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vid-intro{font-size:16px;line-height:1.65;color:var(--txt);max-width:720px}
.vid-intro p{margin-bottom:12px}
.vid-actions{display:flex;gap:12px;margin-top:20px;flex-wrap:wrap}
.vid-cta{display:inline-flex;align-items:center;gap:6px;background:var(--cta);color:var(--on-accent);font-weight:700;font-size:14px;padding:12px 24px;border-radius:10px;text-decoration:none}
.vid-cta:hover{filter:brightness(.9)}
.vid-cta2{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:14px;padding:12px 24px;border-radius:10px;border:1px solid var(--line);text-decoration:none;color:var(--ink)}
.vid-cta2:hover{background:var(--soft)}
.vid-teaser{display:flex;gap:20px;align-items:center;text-decoration:none;color:var(--ink);border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:box-shadow .2s}
.vid-teaser:hover{box-shadow:0 4px 16px rgba(0,0,0,.1)}
.vid-teaser-thumb{position:relative;width:240px;flex-shrink:0;aspect-ratio:16/9;overflow:hidden;background:#0c0f13}
.vid-teaser-thumb img{width:100%;height:100%;object-fit:cover}
.vid-teaser-thumb .vid-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:52px;height:52px;border-radius:50%;background:var(--cta);box-shadow:0 6px 18px rgba(182,28,28,.4)}
.vid-teaser-info{padding:16px 20px 16px 0}
.vid-teaser-label{font-weight:700;font-size:16px;color:var(--accent-text,var(--accent));display:block;margin-bottom:4px}
.vid-teaser-info p{font-size:14px;color:var(--txt);margin:0;line-height:1.5}
@media(max-width:600px){.vid-teaser{flex-direction:column}.vid-teaser-thumb{width:100%}.vid-teaser-info{padding:12px 16px 16px}}

.timeline{position:relative;padding-left:46px;margin:28px 0}
.timeline::before{content:"";position:absolute;left:14.5px;top:8px;bottom:8px;width:3px;background:var(--line);border-radius:2px}
.tl-item{position:relative;margin-bottom:44px}
.tl-item::before{content:"";position:absolute;left:-39px;top:6px;width:13px;height:13px;border-radius:50%;background:var(--accent);border:3px solid var(--bg);box-shadow:0 0 0 2px var(--accent)}
.tl-now::before{background:var(--cta);box-shadow:0 0 0 2px var(--cta)}
.tl-year{font-size:13px;font-weight:800;color:var(--accent-text,var(--accent));text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}
.tl-now .tl-year{color:var(--cta)}
.tl-body h3{margin:0 0 var(--h-mb-tight)}
.tl-body p{font-size:14.5px;color:var(--txt);margin:0;line-height:1.6}
.tl-cta{text-align:center;margin:36px 0 0;padding:28px;background:var(--soft);border-radius:14px}
.tl-cta p{font-size:17px;font-weight:700;color:var(--ink);margin:0 0 14px}

.news-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin:24px 0}
.news-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:24px}
.news-date{font-size:12px;font-weight:700;color:var(--accent-text,var(--accent));text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}
.news-card h3{margin:0 0 var(--h-mb-tight)}
.news-card p{font-size:14px;color:var(--txt);margin:0;line-height:1.55}

.partner-platforms{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px;margin:24px 0}
.pp-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:28px 24px;display:flex;flex-direction:column}
.pp-logo{height:40px;object-fit:contain;align-self:flex-start;margin-bottom:16px}
.pp-card h3{margin:0 0 var(--h-mb)}
.pp-card p{font-size:14px;color:var(--txt);margin:0 0 14px;line-height:1.6;flex:1}
.pp-link{font-weight:700;font-size:13px;color:var(--accent-text,var(--accent));text-decoration:none}
.pp-link:hover{text-decoration:underline}

.region-tags{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 28px}
.rtag{background:var(--soft);color:var(--ink);font-size:13px;font-weight:600;padding:6px 14px;border-radius:20px}
.partner-cta{background:var(--soft);border-radius:14px;padding:28px}
.partner-cta h3{margin:0 0 var(--h-mb-tight)}
.partner-cta p{font-size:14.5px;color:var(--txt);margin:0 0 16px;line-height:1.6}
.cta-btn{display:inline-block;background:var(--cta);color:var(--on-accent);font-weight:700;font-size:14px;padding:12px 24px;border-radius:var(--btn-radius);text-decoration:none;box-shadow:var(--btn-shadow);transition:box-shadow .2s ease,background .15s ease}
.cta-btn:hover{background:var(--cta-d);box-shadow:var(--btn-shadow-hover)}
.block-article .cta-btn{margin-top:20px}

.partner-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;margin:24px 0}
.pcat-card{display:flex;gap:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--card)}
.pcat-img{width:140px;height:auto;object-fit:cover;flex-shrink:0}
.pcat-body{padding:18px 20px;display:flex;flex-direction:column;justify-content:center}
.pcat-body h3{margin:0 0 var(--h-mb-tight)}
.pcat-body p{font-size:13.5px;color:var(--txt);margin:0;line-height:1.5}
@media(max-width:600px){.pcat-card{flex-direction:column}.pcat-img{width:100%;height:160px}}



/* inline styles moved into classes (detail) */
.det-pagehead{padding-bottom:0;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap}
.det-pagehead h1{flex:1 1 auto;min-width:min(100%,18ch)}
.det-pagehead .det-actions{flex:none;margin-top:8px}
.det-lead{border-left:5px solid var(--cta);padding-left:.8rem}
.incl-extra{margin-top:14px;color:var(--mut);font-size:14px}
.host p{margin:0}
.map-note{color:var(--mut);font-size:13px;margin-top:10px}
.ref-all{text-decoration:none;display:inline-block;margin-left:10px}



/* hamburger: avatar removed -> proper centered circle */
.hbtn{width:44px;height:44px;padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;gap:0}
.hbtn .bars{font-size:18px;line-height:1;display:block}
/* close icon: same centering so bars & × line up */
.oc-x{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;line-height:1;border-radius:50%;background:var(--soft);color:var(--ink);font-size:20px}
.oc-x:hover{background:var(--line)}



/* taller Suchen button + wizard icon beside it */
.herosearch .gobtn{padding:15px 30px;font-size:15.5px;align-self:stretch}
.herosearch .wiz-ic{align-self:stretch;min-height:48px;width:52px;height:auto;font-size:20px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center}

/* Geteilter Knopf: Suchen + Assistent als ein Block. Kein overflow:hidden —
   das wuerde den [data-tip]-Tooltip des Assistenten abschneiden; jede Haelfte
   rundet darum ihre eigene Aussenkante. */
.herosearch .hs-split{display:flex;align-self:stretch;flex:0 0 auto}
.herosearch .hs-split .gobtn{border-radius:10px 0 0 10px;padding:15px 26px}
.herosearch .hs-split .wiz-ic{border-radius:0 10px 10px 0;width:56px;min-height:0;
  background:var(--cta-d);border:0;border-left:1px solid rgba(255,255,255,.32);color:var(--on-accent)}
.herosearch .hs-split .wiz-ic:hover{background:color-mix(in srgb,var(--cta-d) 82%,#000)}
.herosearch .hs-split .wiz-ic:focus-visible{outline:2px solid var(--on-accent);outline-offset:-4px;z-index:1}
@media(max-width:480px){.herosearch .hs-split .gobtn{padding:15px 18px}.herosearch .hs-split .wiz-ic{width:50px}}

/* KI-Schalter im Hero (layout.cfm, blueprint-ui.js): zwischen Feld und Knopf; an = Rand + Toenung in Akzentfarbe */
.herosearch .hs-ki{display:inline-flex;align-items:center;gap:7px;align-self:stretch;flex:0 0 auto;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);font:inherit;font-size:14px;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s}
.herosearch .hs-ki[hidden]{display:none}
.herosearch .hs-ki:hover{border-color:var(--accent)}
.herosearch .hs-ki:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.herosearch .hs-ki[aria-pressed="true"]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--card));box-shadow:inset 0 0 0 1px var(--accent)}
.hs-ki-od{display:inline-flex;align-items:center;gap:2px}
/* Funkel-Symbol (wie Kopfzeile und /angebote): aus = grau, an = Akzent */
.hs-ki-ic{flex:0 0 auto;color:var(--mut)}
.hs-ki:hover .hs-ki-ic,.hs-ki[aria-pressed="true"] .hs-ki-ic{color:var(--accent-text,var(--accent))}
.hs-ki-beta{padding:1px 5px;border-radius:999px;background:var(--soft);color:var(--mut);font-size:10px;font-weight:700;letter-spacing:.02em;line-height:1.3;text-transform:uppercase}
.hs-ki[aria-pressed="true"] .hs-ki-beta{background:var(--card);color:var(--accent-text,var(--accent))}
.hs-ki-od i{display:block;width:10px;height:10px;border-radius:50%;background:color-mix(in srgb,var(--ink) 30%,transparent)}
.hs-ki-od i+i{width:6px;height:9px;border-radius:0 100% 100% 0/0 50% 50% 0}
.hs-ki[aria-pressed="true"] .hs-ki-od i{background:var(--accent)}
.hs-ki[aria-pressed="true"] .hs-ki-od i+i{background:var(--cta)}
/* KI-Modus schwebt (blueprint-ui.js heroFloatOn): Leiste absolut an ihrer gemessenen Stelle, Platzhalter
   .hs-ph haelt die Hoehe im Fluss -> Hero springt nicht. is-float-up = unten verankert, waechst nach oben. */
.herosearch.is-float{position:absolute;z-index:6;margin:0;max-width:none}
.herosearch.is-float.is-ki{box-shadow:0 18px 44px rgba(0,0,0,.32)}
.hs-ph{pointer-events:none}
.h2in>.hs-covered{opacity:0;visibility:hidden;transition:opacity .15s ease,visibility 0s linear .15s}
.h2in>*{transition:opacity .15s ease}
@media(prefers-reduced-motion:reduce){.h2in>.hs-covered,.h2in>*{transition:none}}
.herosearch.hs-noanim .hs-q{transition:none!important}
/* Fusszeile im Hero einzeilig: Hinweis kuerzt mit "…", Tastenhinweis nur fuer Screenreader
   (der Knopf zeigt "↵" = Enter genuegt) */
.herosearch .hs-ki-hint{flex-wrap:nowrap}
.herosearch .hs-ki-hint-t{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.herosearch .hs-ki-keys{position:absolute!important;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.herosearch.is-ki .gobtn::after{content:" \21B5";content:" \21B5" / "";font-weight:600;opacity:.85}
.herosearch.is-ki .gobtn{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.herosearch.is-ki .gobtn::after{content:"\21B5";content:"\21B5" / "";margin-left:-2px}
.herosearch .gobtn .hs-go-ic{display:block;width:18px;height:18px;margin:0;flex-shrink:0}
/* KI-Modus: Feld volle Breite + 3 Zeilen; darunter Schalter · Hinweis (waechst) · Knopf. Assistent tritt zurueck. */
.herosearch.is-ki .hs-q{flex:1 1 100%;height:calc(3 * var(--hs-lh) + 2 * var(--hs-py));white-space:pre-wrap;overflow-y:auto;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 40%,transparent)}
.herosearch.is-ki .hs-q:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}
.herosearch.is-ki .wiz-ic{display:none}
.herosearch.is-ki .hs-split .gobtn{border-radius:10px}
.herosearch .hs-ki-hint{flex:1 1 0;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:2px 12px;margin:0;font-size:13px;line-height:1.35;color:var(--mut);text-align:left}
.herosearch .hs-ki-hint[hidden]{display:none}
.hs-ki-keys{opacity:.8}
.hs-ki-count{margin-left:auto;font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink)}
.hs-ki-count:empty{display:none}
@media(hover:none),(max-width:820px){.hs-ki-keys{display:none}}
@media(max-width:560px){.herosearch.is-ki .hs-ki-hint-t{display:none}.herosearch .hs-ki-hint{flex:0 1 auto}.herosearch.is-ki .hs-split,.herosearch.is-ki>.gobtn{flex:1 1 auto}.herosearch.is-ki .hs-split .gobtn{flex:1}}
@media(prefers-reduced-motion:reduce){.herosearch .hs-ki,.herosearch .hs-q{transition:none}}



/* About section: text + team image */
/* lighter wizard KI icon background */
.wiz-ic{background:linear-gradient(135deg,#eef4fa,#dbe7f2);border:1px solid #cdddec;color:var(--accent-text,var(--accent))}



/* "Alles aus einer Hand" full-service section */
.onehand-grid,.art-split{display:grid;grid-template-columns:1fr 1.1fr;gap:46px;align-items:center}
.art-split--reverse{grid-template-columns:1.1fr 1fr}
.art-split--reverse .art-split-img{order:2}
.art-split--reverse .art-split-body{order:1}
.art-split-img img{width:100%;border-radius:14px;aspect-ratio:4/3;object-fit:cover}
.art-split-body{align-self:start}
.art-caption{font-size:12px;color:var(--mut);margin-top:6px}
.art-video{position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden;margin:16px 0}
.art-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.art-fig{margin:0 0 18px}
.art-fig img{width:100%;border-radius:14px}
@media(max-width:820px){.onehand-grid,.art-split,.art-split--reverse{grid-template-columns:1fr;gap:26px}.art-split--reverse .art-split-img,.art-split--reverse .art-split-body{order:unset}}
.oh-img img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:18px;box-shadow:0 12px 30px rgba(0,0,0,.12)}
.oh-title{margin:0 0 12px}
.oh-lead{font-size:var(--lead-size);line-height:var(--lead-lh);color:var(--txt);max-width:54ch;margin:0 0 34px}
.oh-btn{display:inline-block;background:var(--cta);color:var(--on-accent);border:0;border-radius:12px;padding:15px 26px;font:inherit;font-weight:800;font-size:var(--btn-size);cursor:pointer;box-shadow:var(--btn-shadow);transition:box-shadow .2s ease,background .15s ease}
.oh-btn:hover{background:var(--cta-d);box-shadow:var(--btn-shadow-hover)}



/* sticky offer card: kein margin-bottom (auf Wunsch) — Abstand via .detbody */
.detbody{padding-bottom:26px}



.det-sub{margin:2px 0 8px}
.gallery{margin-top:0}
.detbody{padding-top:44px}



/* offer form: ~20px more air between header and step 1 */
.f2-head{margin-bottom:42px}

/* offcanvas header mirrors the site header so ☰ and × share the same line */
.oc-head{height:78px;padding:0 40px}
.oc-x{width:44px;height:44px;font-size:22px}
@media(max-width:700px){.oc-head{padding:0 18px}}



/* mobile filter button + offcanvas */
.filt-btn{display:none;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:var(--card);border-radius:12px;height:44px;padding:0 16px;font:inherit;font-weight:700;font-size:14px;cursor:pointer;white-space:nowrap;flex:0 0 auto;color:var(--ink)}
.filt-btn svg{width:18px;height:18px}
.foc-body{flex:1;overflow:auto;padding:18px}
.foc-foot{padding:14px 18px;border-top:1px solid var(--line);background:var(--card)}
.foc-apply{width:100%;background:var(--cta);color:var(--on-accent);border:0;border-radius:12px;padding:14px;font:inherit;font-weight:800;font-size:15px;cursor:pointer}
.foc-apply:hover{background:var(--cta-d)}
/* dropdowns rendered inline/expanded inside the offcanvas */
.foc-body .dd{position:static;margin-bottom:22px}
.foc-body .dd>button{width:100%;text-align:left;border:0;background:none;padding:0 0 10px;font-weight:800;font-size:15px;color:var(--ink);pointer-events:none}
.foc-body .dd .panel{position:static;display:block;border:0;box-shadow:none;padding:0;min-width:0}
.foc-body .sortsel{width:100%;margin:0;border-radius:12px;border:1px solid var(--line);padding:12px 14px}

@media(max-width:760px){
  .tbrow{flex-wrap:nowrap;gap:10px}
  .tbrow .dd,.tbrow .sortsel,.tbrow .viewtoggle,.tbrow .sortwrap{display:none}
  /* Handy: wie bisher ohne Karten/Liste, nur der Umgebungs-Knopf bleibt im Block */
  .tbrow .viewgroup [data-action="set-view"]{display:none}
  .tbrow .viewgroup .vg-map{border-left:0}
  .tsearch{flex:1 1 auto;min-width:0}
  .filt-btn{display:inline-flex}
  /* chat: fullscreen overlay */
  .chat-panel{top:0;right:0;bottom:0;left:0;width:auto;height:auto;max-width:none;max-height:none;border-radius:0}
  .chat-panel.open{animation:none}
}



/* header Merkliste heart with badge */
.merk-btn{position:relative;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--cta);font-size:19px;line-height:1;cursor:pointer;padding:0;flex:0 0 auto}
.merk-btn:hover{background:var(--soft)}
.merk-badge{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--cta);color:var(--on-accent);font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;line-height:1;border:2px solid var(--card)}



/* 3-column partner-portal cross-sell */
.portals{border-top:1px solid var(--line);margin-top:50px;padding:50px 0 8px}
.portals-h{font-family:var(--disp);font-size:24px;font-weight:800;color:var(--ink);margin:0 0 6px;text-align:center}
.portals-sub{color:var(--txt);text-align:center;margin:0 auto 30px;max-width:62ch;line-height:1.55}
.portals-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
@media(max-width:980px){.portals-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.portals-grid{grid-template-columns:1fr;gap:16px}}
.portal-card{display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);border-radius:16px;padding:24px;background:var(--card);text-decoration:none;color:inherit;transition:.15s}
.portal-card:hover{border-color:var(--accent);box-shadow:0 10px 28px rgba(0,0,0,.10);transform:translateY(-2px)}
.portal-ic{font-size:30px;line-height:1}
.portal-card h3{margin:4px 0 0}
.portal-card p{color:var(--txt);font-size:14.5px;line-height:1.55;margin:0;flex:1}
.portal-link{color:var(--accent-text,var(--accent));font-weight:800;font-size:14px;margin-top:6px}



/* advisor hotline element (detail bottom) */
.admin-bar{position:fixed;bottom:0;left:0;right:0;z-index:9999;background:#1a1a2e;color:#fff;display:flex;align-items:center;gap:8px;padding:6px 16px;font-size:13px;font-family:system-ui,sans-serif}
.ab-link{color:#fff;background:#e65100;padding:4px 12px;border-radius:6px;text-decoration:none;font-weight:700;font-size:12px;white-space:nowrap}
.ab-link:hover{background:#ff6d00}
.ab-info{margin-left:auto;color:rgba(255,255,255,.5);font-size:11px}
.ab-dsn2{margin-left:6px;font-size:11px}
.ab-dsn2.up{color:#37c46b}
.ab-dsn2.down{color:#ff5a5a}
.ab-dsn2.unknown{color:rgba(255,255,255,.45)}
/* === EXPERIMENT: CMS-Bar als Slideout-FAB (statt fixe Bottom-Bar — ueberlagert den Overlay-Footer nicht mehr).
   Revert: diesen Block entfernen + #adminFab-Markup in views/layout.cfm zurueck auf .admin-bar + Toggle-Listener in blueprint-ui.js entfernen. === */
.admin-fab{position:fixed;left:16px;bottom:16px;z-index:9999;font-family:system-ui,sans-serif}
.admin-fab-toggle{display:inline-flex;align-items:center;gap:6px;background:#e65100;color:#fff;border:0;border-radius:999px;padding:10px 16px;font-weight:700;font-size:13px;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.3)}
.admin-fab-toggle:hover{background:#ff6d00}
.admin-fab-panel{position:absolute;left:0;bottom:calc(100% - -10px);min-width:230px;background:#1a1a2e;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px;box-shadow:0 12px 30px rgba(0,0,0,.45);opacity:0;visibility:hidden;transform:translateY(8px);transition:.18s ease}
.admin-fab.open .admin-fab-panel{opacity:1;visibility:visible;transform:none}
.admin-fab .ab-info{margin-left:0}
/* === /EXPERIMENT === */

/* Offcanvas Site-Suche (Phase D, Nicht-Portal) */
.oc-search-sec{padding:10px 20px;border-bottom:0}
.oc-search{display:flex;align-items:center;border:1px solid var(--field-bd);border-radius:10px;padding:0 12px;background:var(--field-bg);transition:border-color .15s,box-shadow .15s}
.oc-search:focus-within{border-color:var(--field-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--field-focus) 18%,transparent)}
.oc-search-icon{color:var(--mut);font-size:16px;margin-right:8px;flex:0 0 auto}
.oc-search-input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font:inherit;font-size:14px;padding:11px 0;-webkit-appearance:none;appearance:none}
.oc-search-input::-webkit-search-cancel-button{-webkit-appearance:none}
.oc-search-results{display:flex;flex-direction:column;margin-top:6px}
.oc-search-hit{padding:9px 10px;border-radius:8px;color:var(--ink);text-decoration:none;font-size:14px}
.oc-search-hit:hover{background:var(--soft)}
.oc-search-empty{padding:9px 10px;color:var(--mut);font-size:13px}
.hotbar{border-top:1px solid var(--line);margin-top:46px;padding:34px 0 8px}
.hot-open{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px}
.hot-h{font-family:var(--disp);font-size:21px;font-weight:800;color:var(--ink)}
.hot-sub{color:var(--txt);font-size:14.5px;line-height:1.55;margin:6px 0 0;max-width:62ch}
.hot-advs{display:flex;gap:24px;margin-top:16px;flex-wrap:wrap}
.hot-adv{display:flex;align-items:center;gap:11px}
.hot-adv img{width:52px;height:52px;border-radius:50%;object-fit:cover}
.hot-adv b{display:block;font-size:15px;color:var(--ink)}
.hot-adv span{font-size:12.5px;color:var(--mut)}
.hot-tel{display:inline-flex;align-items:center;gap:8px;background:var(--cta);color:var(--on-accent);text-decoration:none;font-weight:800;font-size:18px;padding:14px 26px;border-radius:14px;white-space:nowrap}
.hot-tel:hover{background:var(--cta-d)}
.hot-mail{max-width:560px;margin-top:16px}
.hot-mrow{display:flex;gap:10px;margin-bottom:10px}
.hot-mrow input{flex:1;min-width:0}
.hot-mail input,.hot-mail textarea{width:100%;border:1.5px solid var(--line);border-radius:10px;padding:11px 13px;font:inherit;font-size:14.5px;background:var(--card);color:var(--ink)}
.hot-mail textarea{margin-bottom:10px;resize:vertical}
.hot-mail button{background:var(--cta);color:var(--on-accent);border:0;border-radius:10px;padding:12px 22px;font:inherit;font-weight:800;cursor:pointer}
.hot-mail button:hover{background:var(--cta-d)}
.hot-thanks{background:#eaf7ef;border:1px solid var(--success);color:#1e7e44;border-radius:10px;padding:14px 16px;font-weight:700}
@media(max-width:640px){.hot-open{flex-direction:column;align-items:flex-start}.hot-tel{width:100%;justify-content:center}.hot-mrow{flex-direction:column}}



/* hotline element: container + larger portraits */
.hotbar .wrap{padding-top:0;padding-bottom:0}
.hot-advs{gap:28px;margin-top:18px}
.hot-adv img{width:78px;height:78px}
.hot-adv b{font-size:16px}
.hot-adv span{font-size:13px}



/* bigger portraits + centered closed-state form */
.hot-adv img{width:104px;height:104px}
.hot-adv b{font-size:16.5px}
.hot-closed{text-align:center}
.hot-closed .hot-h{font-size:22px}
.hot-closed .hot-sub{margin-left:auto;margin-right:auto}
.hot-closed .hot-mail{margin-left:auto;margin-right:auto;text-align:center}



/* AJAX overlay: more air below the last segment */
.do-body{padding-bottom:56px}


/* mobile gallery: kill leftover desktop row template that caused the big gap */
@media(max-width:700px){
  .gallery{grid-template-columns:1fr 1fr;grid-template-rows:none;grid-auto-rows:1fr;height:auto;gap:8px}
  .gallery .gvideo{grid-row:auto;grid-column:1/3;min-height:0;aspect-ratio:16/10}
  .gallery .g0{grid-row:auto;grid-column:1/3}
  .gallery>*{aspect-ratio:1/1}
  .gallery img{height:100%;width:100%;object-fit:cover}
}
@media(max-width:430px){
  .gallery .gvideo{aspect-ratio:4/3}
}



/* ---- mobile overflow hardening ---- */
html,body{overflow-x:clip;max-width:100%}
*{min-width:0}

/* wizard: fit within viewport on mobile */
@media(max-width:760px){
  .wiz{width:100%;max-width:100%}
  .wiz-head,.wiz-body,.wiz-foot{padding-left:18px;padding-right:18px}
  .wopts.three{grid-template-columns:1fr 1fr}
  .wopts.chips{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px;scrollbar-width:none}
  .wopts.chips::-webkit-scrollbar{display:none}
  .wopts.chips .chip,.wopts.chips .wopt{flex:0 0 auto;white-space:nowrap}
}
@media(max-width:430px){
  .wopts,.wopts.three{grid-template-columns:1fr}
}

/* detail: guard against any wide child causing horizontal scroll */
@media(max-width:760px){
  main,.detbody,.detmain,.gallery,.hotbar,.portals,.det-pagehead{max-width:100%}
  .detbody{padding-left:0;padding-right:0}
}

.wiz-wrap,.modal,.modalback,.wizoverlay{padding:16px}



/* keep 'Alle Fotos anzeigen' compact (never stretch to tile height) */
.allbtn{width:auto;height:auto;align-self:auto;white-space:nowrap;line-height:1.2}
@media(max-width:760px){.allbtn{right:10px;bottom:10px;padding:8px 12px;font-size:12.5px}}



/* (1) uniform mega columns */
.cmega .cm-col{display:flex;flex-direction:column}
.cm-lbl{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--mut);margin:2px 0 8px}
.cmega .cm-big{font-family:var(--disp);font-size:21px;font-weight:800;color:var(--ink);text-decoration:none;line-height:1.15;display:block;min-height:1.15em}
.cmega a.cm-big:hover{color:var(--accent-text,var(--accent))}
.cm-txt{color:var(--txt);font-size:14px;line-height:1.5;margin:8px 0 0;min-height:3em}

/* (3) quick-facts box tighter */
.qf{padding-top:6px;padding-bottom:6px}

/* (4) FAQ two columns */
.faqgrid{display:grid;grid-template-columns:1fr;gap:0}
@media(max-width:760px){.faqgrid{grid-template-columns:1fr;gap:0}}
.faqgrid .faqitem{break-inside:avoid}

/* (2) merk batch-request form */
.merk-req{border-top:1px solid var(--line);padding:16px 20px;background:var(--soft)}
.mrq-h{font-weight:800;font-size:14px;color:var(--ink);margin-bottom:10px}
.mrq-row{display:flex;gap:10px;margin-bottom:10px}
.mrq-row input{flex:1;min-width:0}
.merk-req input,.merk-req textarea{width:100%;border:1.5px solid var(--line);border-radius:9px;padding:10px 12px;font:inherit;font-size:14px;background:var(--card);color:var(--ink)}
.merk-req textarea{margin-bottom:10px;resize:vertical}
.mrq-send{width:100%;background:var(--cta);color:var(--on-accent);border:0;border-radius:10px;padding:12px;font:inherit;font-weight:800;cursor:pointer}
.mrq-send:hover{background:var(--cta-d)}
.mrq-thanks{background:#eaf7ef;border:1px solid var(--success);color:#1e7e44;border-radius:10px;padding:13px 15px;font-weight:700;font-size:14px}
@media(max-width:560px){.mrq-row{flex-direction:column;gap:10px}}



/* FAQ einspaltig: nur das letzte Item ohne Trennlinie */
.faqgrid .faqitem:last-child{border-bottom:0;padding-bottom:0}



/* (full-bleed slider breakout variants removed — sliders now use .wrap-full) */

/* ===== Featured: Premium Spotlight ===== */
section.feat{background:linear-gradient(160deg,#1c2530,#243140 60%,#2b3a4d);border-radius:24px;padding:30px 30px 22px;position:relative;overflow:hidden}
section.feat::before{content:"";position:absolute;inset:0;background:radial-gradient(900px 300px at 80% -10%,rgba(67,111,154,.35),transparent 70%);pointer-events:none}
section.feat .feat-h{display:flex;align-items:center;gap:12px;margin-bottom:20px;position:relative;flex-wrap:wrap}
section.feat .feat-tag{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.25);font-size:var(--small-size);font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:5px 11px;border-radius:999px}
section.feat .feat-tag .dot{width:6px;height:6px;border-radius:50%;background:#ffd34d}
section.feat .feat-h h2{color:#fff;margin:0 0 0}
section.feat .feat-sub{color:#b9c4d2;font-size:var(--lead-size);margin:0 0 0 auto;position:relative;text-align:right}
@media(max-width:640px){.feat .feat-sub{margin-left:0;text-align:left;flex-basis:100%}}
section.feat .feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;position:relative}
section.feat .feat-grid--4{grid-template-columns:repeat(4,1fr)}
@media(max-width:1100px){section.feat .feat-grid--4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:880px){section.feat .feat-grid{grid-template-columns:1fr}}
/* Sponsored Card (IS5) — Fullscreen BG + Textoverlay */
.card--sponsored{position:relative;border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;cursor:pointer;height:100%;min-height:280px}
.card--sponsored .sp-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .4s}
.card--sponsored:hover .sp-bg{transform:scale(1.05)}
.sp-dimmer{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.7) 0%,rgba(0,0,0,.15) 50%,rgba(0,0,0,.05) 100%)}
.card--sponsored .tag--premium{position:absolute;top:12px;left:12px;z-index:2;background:var(--accent);color:var(--on-accent);border-radius:999px;padding:5px 12px;font-size:12px;font-weight:800;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.card--sponsored .heart{position:absolute;top:12px;right:12px;z-index:2;color:#fff;font-size:22px;filter:drop-shadow(0 1px 4px rgba(0,0,0,.5))}
.sp-body{position:relative;z-index:2;padding:18px 16px;color:#fff}
.sp-loc{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:rgba(255,255,255,.8);margin-bottom:4px}
.sp-ttl{font-weight:800;font-size:16px;line-height:1.25;margin-bottom:6px;text-shadow:0 1px 6px rgba(0,0,0,.4)}
.sp-intro{font-size:12.5px;line-height:1.4;color:rgba(255,255,255,.85);margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-shadow:0 1px 4px rgba(0,0,0,.55)}
.sp-meta{font-size:13px;color:rgba(255,255,255,.75)}
/* Sponsored: Listenmodus */
.sp-list-img,.sp-list-body{display:none}
.hits.listmode .card--sponsored{display:grid;grid-template-columns:260px 1fr;background:linear-gradient(135deg,#2c5474 0%,#3a6d94 40%,#4a80a8 100%);border-radius:var(--radius);overflow:hidden;min-height:auto;height:auto;border-top:0;padding:0;position:relative;gap:0;margin-bottom:0}
.hits.listmode .card--sponsored .sp-bg,.hits.listmode .card--sponsored .sp-dimmer,.hits.listmode .card--sponsored .sp-body,.hits.listmode .card--sponsored .tag--premium{display:none}
.hits.listmode .card--sponsored .sp-list-img{display:block;overflow:hidden;position:relative;min-height:180px}
.hits.listmode .card--sponsored .sp-list-img>img{width:100%;height:100%;object-fit:cover}
.hits.listmode .card--sponsored .sp-list-img .card-slide{position:absolute;inset:0}
.hits.listmode .card--sponsored .sp-list-img .card-slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s ease}
.hits.listmode .card--sponsored .sp-list-img .card-slide img.card-slide-active{opacity:1}
.hits.listmode .card--sponsored .sp-list-body{display:block;padding:22px 22px;color:#fff}
.hits.listmode .card--sponsored .sp-list-body .loc{color:rgba(255,255,255,.7)}
.hits.listmode .card--sponsored .sp-list-body .ttl{color:#fff;font-size:19px}
.hits.listmode .card--sponsored .sp-list-body .meta{color:rgba(255,255,255,.6)}
.hits.listmode .card--sponsored .sp-list-body .rc-d{color:rgba(255,255,255,.8)}
.hits.listmode .card--sponsored .sp-list-body .price{color:#fff}
.hits.listmode .card--sponsored .sp-list-body .price b{color:#fff}
.hits.listmode .card--sponsored::after{content:"\2605 Sponsored";position:absolute;bottom:10px;right:14px;font-size:11px;color:rgba(255,255,255,.45);font-weight:600;letter-spacing:.03em}
.hits.listmode .card--sponsored .heart{color:#fff}
.hits.listmode .card--sponsored{border-top:0!important;margin:8px 0}
@media(max-width:560px){.hits.listmode .card--sponsored{grid-template-columns:1fr}}
/* Featured Slideshow */
.fc-slide{position:absolute;inset:0}
.fc-slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s ease}
.fc-slide img.fc-slide-active{opacity:1}
.fcard--video .fc-media{position:relative;overflow:hidden}
.fcard--video .fc-media iframe{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none}
.fcard--video .fc-badge{background:var(--cta)}
section.feat .feat-anz{position:relative;margin-top:14px;color:#8b97a6;font-size:var(--small-size);letter-spacing:.04em}
.fcard{background:#fff;border-radius:18px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 16px 40px rgba(0,0,0,.28);transition:transform .18s}
.fcard:hover{transform:translateY(-4px)}
.fc-media{position:relative;aspect-ratio:16/11;overflow:hidden;background:#0c0f12}
.fc-media img{width:100%;height:100%;object-fit:cover;display:block}
/* cover-fill autoplay video: scale iframe to cover the 16/11 frame */
.fc-vid{position:absolute;top:50%;left:50%;width:177.78vh;height:56.25vw;min-width:100%;min-height:100%;transform:translate(-50%,-50%);border:0;pointer-events:none}
.fc-badge{position:absolute;top:12px;left:12px;background:var(--cta);color:var(--on-accent);font-size:var(--small-size);font-weight:800;padding:5px 10px;border-radius:8px;letter-spacing:.03em;z-index:2}
.fc-vlabel{position:absolute;left:12px;bottom:12px;background:rgba(0,0,0,.6);color:#fff;font-size:var(--small-size);font-weight:700;padding:5px 10px;border-radius:8px;z-index:2}
.fc-b{padding:16px 18px 18px;display:flex;flex-direction:column;flex:1}
.fc-region{color:var(--accent-text,var(--accent));font-weight:800;font-size:var(--small-size);letter-spacing:.05em;text-transform:uppercase}
.fc-t{font-family:var(--disp);font-size:var(--h3-size);font-weight:800;margin:5px 0 6px;line-height:1.15;color:var(--ink)}
.fc-d{color:var(--mut);font-size:var(--body-size);line-height:1.5;flex:1}
.fc-foot{display:flex;align-items:center;justify-content:space-between;margin-top:14px}
.fc-price{font-weight:800;font-size:var(--body-size);color:var(--ink)}
.fc-price span{color:var(--mut);font-weight:600;font-size:var(--small-size)}
/* Preis immer einzeilig ("ab CHF 800 pauschal" brach in der 4er-Reihe um). Reicht die Kartenbreite
   nicht, werden Knopf-Innenabstand und Preisschrift etwas kleiner statt umzubrechen. */
.fc-price{white-space:nowrap;min-width:0}
.fc-foot{gap:10px}
.fc-foot .fc-cta{flex-shrink:0}
.fc-b{container-type:inline-size}
@container (max-width:290px){.fc-foot .fc-cta{padding-left:12px;padding-right:12px}.fc-price{font-size:calc(var(--body-size) * .88)}.fc-price span{font-size:calc(var(--small-size) * .92)}}
.fc-cta{background:var(--cta);color:var(--on-accent);border:0;border-radius:10px;padding:9px 16px;font:inherit;font-weight:800;font-size:var(--btn-size);cursor:pointer;text-decoration:none}
.fc-cta:hover{background:var(--cta-d)}



/* (Beliebte Teamevents slider now uses .wrap-full) */



/* (remaining sliders now use .wrap-full; category row keeps its own full-bleed below) */

/* category tiles: break out to the right edge, keep the title (in .wrap) aligned */
.fb-cats{max-width:none;margin-right:calc(50% - 50vw);padding-right:max(24px, calc(50vw - 50%))}
@media(max-width:760px){.fb-cats{padding-right:16px}}



/* offcanvas pages section uses existing .oc-sec styling (no change) */

/* featured blog / magazine element */
.mag-card{display:grid;grid-template-columns:1.05fr 1fr;gap:0;border-radius:22px;overflow:hidden;background:#11161c;color:#fff;text-decoration:none;box-shadow:0 22px 50px rgba(17,22,28,.22);transition:transform .18s,box-shadow .18s}
.mag-card:hover{transform:translateY(-4px);box-shadow:0 30px 64px rgba(17,22,28,.30)}
@media(max-width:820px){.mag-card{grid-template-columns:1fr}}
.blog-more-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:6px}
.blog-more-card{grid-template-columns:1fr;box-shadow:0 10px 26px rgba(17,22,28,.14)}
.blog-more-card .mag-media{min-height:0;aspect-ratio:16/10}
.blog-more-card .mag-body{padding:18px 20px}
.blog-more-card .mag-title{margin:6px 0 var(--h-mb-tight)}
.blog-more-card .mag-lead{font-size:var(--small-size);margin-bottom:12px}
@media(max-width:820px){.blog-more-grid{grid-template-columns:1fr}}
.mag-media{position:relative;min-height:300px}
.mag-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mag-tag{position:absolute;top:16px;left:16px;background:var(--cta);color:var(--on-accent);font-size:var(--small-size);font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:6px 12px;border-radius:999px}
.mag-body{padding:38px 40px;display:flex;flex-direction:column;justify-content:center}
@media(max-width:820px){.mag-body{padding:26px}}

.mag-title{margin:0 0 var(--h-mb)}
@media(max-width:820px){}
.mag-lead{color:#c7d0da;font-size:var(--lead-size);line-height:1.6;margin:0 0 22px;max-width:54ch}
.mag-more{color:#fff;font-weight:800;font-size:var(--small-size);margin-top:14px}
.mag-card:hover .mag-more{color:#9cc1ea}
.magfeat-top{display:flex;justify-content:flex-end;margin-bottom:12px}
.magfeat-top .mag-more-ghost{display:none}
.mag-all{font-weight:800;font-size:var(--small-size);color:var(--accent-text,var(--accent));text-decoration:none;display:inline-flex;align-items:center;min-height:24px}
.mag-all:hover{text-decoration:underline}



/* category tiles full-bleed to right edge (title stays in .wrap) */
.fb-cats{max-width:none;margin-right:calc(50% - 50vw);padding-right:max(24px, calc(50vw - 50%))}
@media(max-width:760px){.fb-cats{padding-right:16px}}



/* gen50 tweaks preserved: hero2 taller + wizard 2-col on small phones */
/* min-height jetzt 50vh in Hauptregel */
@media(max-width:430px){.wopts,.wopts.three{grid-template-columns:1fr 1fr}}

/* ===== E-E-A-T block (process + advisors + logos) ===== */
.eeat-head{text-align:center;max-width:62ch;margin:0 auto 36px}

.eeat-head h2{margin:8px 0 var(--h-mb)}
.eeat-head p{color:var(--txt);font-size:16px;line-height:1.6}
.eeat-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
@media(max-width:820px){.eeat-steps{grid-template-columns:1fr 1fr;gap:28px 18px}}
.estep{position:relative;padding:0 22px;text-align:center}
.estep:not(:last-child)::after{content:"";position:absolute;top:26px;right:-1px;width:2px;height:calc(100% - 26px);background:var(--line)}
@media(max-width:820px){.estep::after{display:none}}
.estep-n{width:54px;height:54px;border-radius:50%;background:var(--soft);border:2px solid var(--accent);color:var(--accent-text,var(--accent));font-family:var(--disp);font-weight:800;font-size:22px;display:grid;place-items:center;margin:0 auto 14px}
.estep h3{margin-bottom:var(--h-mb-tight)}
.estep p{color:var(--mut);font-size:14px;line-height:1.55}
/* kein eigener Hintergrund — der kommt aus der Section (CMS) */
.eeat-adv{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
/* Blog-Detail: Abstand zwischen Ablauf-Schritten und Hotline-Box (auf Startseite sind es 2 Sektionen mit sw-pad) */
.eeat-steps + .eeat-adv{margin-top:44px}
.eeat-adv .pics{display:flex}
.eeat-adv .pics img{width:84px;height:84px;border-radius:50%;object-fit:cover;border:3px solid #fff;margin-left:-16px}
.eeat-adv .pics img:first-child{margin-left:0}
.eeat-adv-txt{flex:1;min-width:240px}
.eeat-adv-txt b{font-family:var(--disp);font-size:19px;font-weight:800;color:var(--ink)}
.eeat-adv-txt p{color:var(--txt);font-size:14.5px;line-height:1.55;margin-top:5px;max-width:62ch}
.eeat-cta{background:var(--cta);color:var(--on-accent);border:0;border-radius:14px;padding:15px 30px;font:inherit;font-weight:800;font-size:15.5px;cursor:pointer;text-decoration:none;white-space:nowrap;box-shadow:0 8px 22px rgba(182,28,28,.28);transition:transform .15s ease,box-shadow .15s ease,background .15s ease}
.eeat-cta:hover{background:var(--cta-d);transform:translateY(-2px);box-shadow:0 12px 28px rgba(182,28,28,.36)}
.eeat-logos{text-align:center}
.eeat-logos 
.logo-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:19px 38px}
.logo{font-family:var(--disp);font-weight:800;font-size:21px;color:#9aa3ab;letter-spacing:.02em}



/* Merkliste step wizard */
.mwiz{border-top:1px solid var(--line);padding:16px 20px;background:var(--soft)}
.mwiz-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.mwiz-head b{font-size:14px;color:var(--ink)}
.mwiz-steps{display:flex;gap:6px}
.mwiz-steps .ms{width:26px;height:5px;border-radius:3px;background:var(--line)}
.mwiz-steps .ms.on{background:var(--accent)}
.mw-f{display:block;font-size:12.5px;font-weight:700;color:var(--mut);margin-bottom:10px}
.mw-f input,.mw-f textarea{display:block;width:100%;margin-top:5px;border:1.5px solid var(--line);border-radius:9px;padding:10px 12px;font:inherit;font-size:14px;background:var(--card);color:var(--ink)}
.mw-f textarea{resize:vertical}
.mw-grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mw-grid-addr{display:grid;grid-template-columns:3fr 1fr;gap:10px}
.mw-grid-plz{display:grid;grid-template-columns:1fr 2fr;gap:10px}
@media(max-width:560px){.mw-grid2,.mw-grid-addr,.mw-grid-plz{grid-template-columns:1fr}}
.mw-anrede{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:12px;font-size:13.5px}
.mw-anrede>span{font-weight:700;color:var(--mut)}
.mw-anrede label{display:flex;align-items:center;gap:6px}
.mw-priv{color:var(--mut);font-size:12.5px;margin-top:4px}
.mwiz-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}
.mwiz-nav button{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:11px 18px;font:inherit;font-weight:800;font-size:14px;cursor:pointer}
.mwiz-nav .mw-next,.mwiz-nav .mw-send{background:var(--cta);color:var(--on-accent);border-color:var(--cta);margin-left:auto}
.mwiz-nav .mw-next:hover,.mwiz-nav .mw-send:hover{background:var(--cta-d)}
.mw-thanks{background:#eaf7ef;border:1px solid var(--success);color:#1e7e44;border-radius:10px;padding:14px 16px;font-weight:700;font-size:14px}


/* ===== Featured: mobile responsiveness ===== */
@media(max-width:880px){
  section.feat{padding:22px 18px 16px;border-radius:18px}
  section.feat .feat-grid{grid-template-columns:1fr;gap:16px}
  .fcard{box-shadow:0 10px 26px rgba(0,0,0,.22)}
  .fc-media{aspect-ratio:16/9}
  /* video cover: on narrow screens use object-fit instead of the vh/vw trick */
  .fc-vid{width:100%;height:100%;min-width:0;min-height:0;top:0;left:0;transform:none}
  .fc-foot{flex-wrap:wrap;gap:10px}
  .fc-foot .fc-cta{margin-left:auto}
}
@media(max-width:520px){
  .fc-foot{flex-direction:column;align-items:stretch}
  .fc-foot .fc-cta{margin-left:0;text-align:center;padding:11px 16px}
}


/* ── CMS Block-Ergaenzungen (nicht in Blueprint, fuer Render-Engine) ── */

/* Gallery Block */
/* Galerie: kompaktes, modernes Grid (kleine quadratische Tiles) + Lightbox */
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.gallery__item{margin:0}
.gallery__item img{width:100%;aspect-ratio:1;height:auto;object-fit:cover;border-radius:10px;cursor:zoom-in;display:block;transition:transform .25s ease,filter .25s ease}
.gallery__item img:hover{transform:scale(1.03);filter:brightness(1.06)}
.gallery__item figcaption{display:none}
@media(max-width:560px){.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:6px}}
/* Lightbox */
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(10,12,14,.92);display:none;align-items:center;justify-content:center}
.lightbox.open{display:flex}
.lightbox .lb-img{max-width:92vw;max-height:88vh;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lightbox button{position:absolute;background:rgba(255,255,255,.12);color:#fff;border:0;cursor:pointer;border-radius:50%;width:48px;height:48px;font-size:28px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .15s}
.lightbox button:hover{background:rgba(255,255,255,.25)}
.lb-close{top:18px;right:18px}
.lb-prev{left:18px;top:50%;transform:translateY(-50%)}
.lb-next{right:18px;top:50%;transform:translateY(-50%)}
@media(max-width:560px){.lightbox button{width:40px;height:40px;font-size:22px}.lb-prev{left:8px}.lb-next{right:8px}}

/* Video Block */
.block-video .video__wrapper { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; border-radius: var(--radius); }
.block-video .video__wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; }

/* custom-html Block */
.block-custom-html { /* Leitplanke fuer TinyMCE-Rohblocks */ }

/* Section-Wrapper BG-Varianten */
.sw-has-bg-image, .sw-has-slideshow { background-repeat: no-repeat; position: relative; }
.sw-has-bg-image > .wrap, .sw-has-bg-image > .wrap-full,
.sw-has-slideshow > .wrap, .sw-has-slideshow > .wrap-full { position: relative; z-index: 1; }
.sw-dimmer { position: absolute; inset: 0; z-index: 0; }
.sw-bg-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.hidden{display:none}

/* Brands: logo-row scoped logos (nicht Header .logo) */
.logo-row .logo{font-weight:800;font-size:21px;color:#9aa3ab;letter-spacing:.02em;cursor:default}


/* Hero container variants */
.hero2--full{border-radius:0;min-height:50vh}
/* Hero-Höhenmodi (pro Seite, page-edit) */
.hero2--minus-header{min-height:calc(100dvh - var(--header-h))}
.hero2--overlay{min-height:100dvh;border-radius:0}
/* Headerbar-Overlay als separates Flag (hero2--ovl): randlos; bei Vollbild volle 100dvh, Header liegt darüber; top-Text unter die fixe Nav rücken */
/* Hero deckt Navbar (oben) + Themabar (unten) mit ab: Padding = deren Hoehen (via JS-Vars, Fallback --header-h/0).
   Bild/Dimmer liegen ueber die Paddings (inset:0), Navbar+Themabar liegen auf dem Bild; Unterkante fluchtet wie ohne Overlay. */
.hero2--ovl{border-radius:0;padding-top:var(--ov-navh,var(--header-h));padding-bottom:var(--ov-tbh,0px)}
.hero2--ovl:not(.hero2--minus-header){min-height:calc(50vh + var(--ov-navh,var(--header-h)) + var(--ov-tbh,0px))}
.hero2--ovl.hero2--minus-header{min-height:calc(100dvh + var(--ov-tbh,0px))}
/* Overlay-Header (body.hero-overlay): transparent über dem Hero, helle Nav, Top-Dimmer; solid beim Scrollen */
body.hero-overlay header>.section-wrapper:has(.hbar){position:fixed;left:0;right:0;top:0;background:linear-gradient(180deg,var(--hero-overlay-dim),transparent);border-bottom:0;transition:background .25s ease,color .25s ease}
body.hero-overlay .hbar,body.hero-overlay .logo,body.hero-overlay .hnav a{color:var(--hero-overlay-nav)}
body.hero-overlay.is-scrolled header>.section-wrapper:has(.hbar){background:var(--header-bg)}
body.hero-overlay.is-scrolled .hbar,body.hero-overlay.is-scrolled .logo{color:var(--header-fg)}
body.hero-overlay.is-scrolled .hnav a{color:var(--header-link)}
/* Overlay + Themebar: Themabar ganz nach UNTEN an den Hero-Rand (bei Vollbild = 100dvh), als helle
   Overlay-Leiste OHNE Hintergrund direkt auf dem Bild; scrollt mit dem Hero weg. Behebt weiss-auf-weiss. */
/* Chrome-Hoehen serverseitig FIX (statt JS-Messung -> KEIN CLS): Navbar=--header-h, Themabar~76px. */
body.hero-overlay{--ov-navh:var(--header-h)}
body.hero-ovl-tb{--ov-tbh:76px}
/* Themabar sitzt unten am Hero. Sie steht im Overlay-Modus als FOLGE-Element hinter dem Hero
   (layout.cfm gibt sie dort aus) und wird per negativem margin-top genau um ihre eigene Hoehe
   zurueckgezogen -> liegt immer auf den letzten --ov-tbh Pixeln des Heros, egal wie hoch der
   tatsaechlich wird. Vorher: position:absolute auf einem festen Viewport-Offset (50vh+Navbar);
   das stimmte nur, solange der Hero exakt seine min-height hatte - bei laengerem Hero-Text wuchs
   der Hero und die Bar blieb mitten im Bild stehen.
   Der Hero haelt sich mit padding-bottom:var(--ov-tbh) den Platz dafuer frei (.hero2--ovl). */
body.hero-overlay header>.section-wrapper[data-type="themebar"]{position:relative;top:auto;left:auto;right:auto;z-index:79;margin-top:calc(-1 * var(--ov-tbh,76px));background:transparent;border-bottom:0}
body.hero-overlay .themebar .cat{color:var(--hero-overlay-nav);text-shadow:0 1px 3px rgba(0,0,0,.55)}
body.hero-overlay .themebar .cat:hover,body.hero-overlay .themebar .cat:focus{color:var(--hero-overlay-nav);border-color:var(--hero-overlay-nav)}
/* Themabar unten liegt auf dem Bild -> beim Scrollen NICHT solid werden (kein bg-Wechsel) */
body.hero-overlay.is-scrolled header>.section-wrapper[data-type="themebar"]{background:transparent}
/* Overlay-Header: solid sobald der Mega offen ist (auch ohne Scroll); faellt beim Schliessen automatisch zurueck */
body.hero-overlay:has(.cmega.open) header>.section-wrapper:has(.hbar){background:var(--header-bg)}
body.hero-overlay:has(.cmega.open) .hbar,body.hero-overlay:has(.cmega.open) .logo{color:var(--header-fg)}
body.hero-overlay:has(.cmega.open) .hnav a{color:var(--header-link)}
/* Overlay-Top: Logo weiss, Beratungsblock-Namen weiss, Hover gedimmt (grau) */
/* Invers-Logo (separater Upload) standardmaessig versteckt */
.logo-img--inverse{display:none}
/* Variante A: separates Invers-Logo vorhanden -> im Overlay-Top normales aus, Invers an (kein Filter) */
body.hero-overlay .logo:has(.logo-img--inverse) .logo-img:not(.logo-img--inverse){display:none}
body.hero-overlay .logo:has(.logo-img--inverse) .logo-img--inverse{display:block;filter:none}
/* Variante B: kein Invers-Logo -> normales Logo per Filter weiss faerben (Setting logo_overlay_invert) */
body.hero-overlay .logo:not(:has(.logo-img--inverse)) .logo-img{filter:var(--logo-overlay-filter,brightness(0) invert(1));transition:filter .25s ease}
body.hero-overlay .hotline .nm{color:var(--hero-overlay-nav)}
/* Overlay-Top: dezenter Glas-Hover statt hellem Pill; Schrift bleibt weiss (nur am Top, nicht solid) */
body.hero-overlay:not(.is-scrolled):not(:has(.cmega.open)) .hnav a:hover{background:color-mix(in srgb,var(--hero-overlay-nav) 16%,transparent)}
/* Solid-Zustand (gescrollt oder Mega offen): zurueck zum normalen Logo + Namen */
body.hero-overlay.is-scrolled .logo:not(:has(.logo-img--inverse)) .logo-img,
body.hero-overlay:has(.cmega.open) .logo:not(:has(.logo-img--inverse)) .logo-img{filter:none}
body.hero-overlay.is-scrolled .logo .logo-img--inverse,
body.hero-overlay:has(.cmega.open) .logo .logo-img--inverse{display:none}
body.hero-overlay.is-scrolled .logo:has(.logo-img--inverse) .logo-img:not(.logo-img--inverse),
body.hero-overlay:has(.cmega.open) .logo:has(.logo-img--inverse) .logo-img:not(.logo-img--inverse){display:block}
body.hero-overlay.is-scrolled .hotline .nm,
body.hero-overlay:has(.cmega.open) .hotline .nm{color:var(--mut)}
/* h2in container: Text bleibt immer im wrap-Bereich (1280px), auch bei full-width hero */
.h2in--narrow{max-width:720px}
.h2in--wide{max-width:1280px;padding-left:40px;padding-right:40px}
.h2in--full{max-width:1280px;padding-left:40px;padding-right:40px}
@media(max-width:700px){.h2in--wide,.h2in--full{padding-left:18px;padding-right:18px}.hero2 .h2in{max-width:none}}
/* Text-Position */
/* Textposition 3x3: vertikal (align-items) x horizontal (margin/text-align der .h2in) */
.hero2--vtop{align-items:flex-start}
.hero2--vcenter{align-items:center}
.hero2--vbottom{align-items:flex-end}
.hero2--hleft .h2in{margin-right:auto;text-align:left}
.hero2--hcenter .h2in{margin-left:auto;margin-right:auto;text-align:center}
.hero2--hcenter .herosearch{justify-content:center}
.hero2--hright .h2in{margin-left:auto;margin-right:0;text-align:right}
.hero2--hright .herosearch{justify-content:flex-end}

/* Hero Slideshow */
.hero2-slideshow{position:absolute;inset:0}
.hero2-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s ease}
.hero2-slide.active{opacity:1}

/* ===== Hero-Parallax (Core-Web-Vitals-safe) =====
   Scroll-Driven Animation -> laeuft auf dem Compositor (GPU), kein JS, kein Scroll-Listener,
   kein Layout/Paint pro Frame -> INP/CLS unberuehrt. Nur die Bild-Ebene bewegt sich.
   Faellt per @supports auf statisch zurueck (Safari/FF) und respektiert prefers-reduced-motion. */
.hero2--parallax{overflow:hidden}
/* Bild groesser als der Hero (Spielraum fuer die Verschiebung); Bewegung setzt blueprint-ui.js
   via transform (GPU-composited, kein Layout/Paint). prefers-reduced-motion -> JS ueberspringt. */
.hero2--parallax>img,
.hero2--parallax>.hero2-bg,
.hero2--parallax>.hero2-slideshow{top:-15%;bottom:auto;height:130%;will-change:transform}
.faq-item{border-bottom:1px solid var(--faq-line)}
.faq-item .faq-q{cursor:pointer;list-style:none;padding:16px 0;font-weight:700;color:var(--faq-q);display:flex;justify-content:space-between;align-items:center;gap:12px}
.faq-item .faq-q::-webkit-details-marker{display:none}
.faq-item .faq-q::after{content:"+";font-size:22px;color:var(--faq-icon);line-height:1;flex:0 0 auto}
.faq-item[open] .faq-q::after{content:"\2013"}
.faq-item .faq-a{padding:0 0 18px;color:var(--faq-a);line-height:1.6}
.faq-item .faq-a p{margin:0 0 8px}

/* ===== Article-Block: Prosa-Rhythmus (Heading-/Absatz-Margins themebar via --prose-* Tokens) ===== */
.block-article>h1{margin-top:var(--prose-h-mt);margin-bottom:var(--h-mb)}
.block-article>h2{margin-top:var(--prose-h-mt);margin-bottom:var(--h-mb)}
.block-article>h3{margin-top:var(--prose-h-mt);margin-bottom:var(--h-mb)}
.block-article>h4{margin-top:var(--prose-h-mt);margin-bottom:var(--h-mb)}
.block-article>:first-child{margin-top:0}
.block-article>:last-child{margin-bottom:0}
.block-article p:last-child{margin-bottom:0}
.block-article p{margin-bottom:var(--prose-p-mb);line-height:1.65}
.block-article--center{text-align:center}
.block-article--center .oh-lead,.block-article--center .answer-lead,.block-article--center>p{margin-left:auto;margin-right:auto}
.cards-header{margin:0 0 22px}
.cards-header.eeat-head{margin:0 auto 36px}/* beide Klassen -> eeat-head-Zentrierung gewinnt wieder */
.cards-header--center{text-align:center}
.cards-header--center .answer-lead{margin-left:auto;margin-right:auto}
/* Honeypot: barrierefrei versteckt (nicht display:none), von Bots ausgefuellt -> Server verwirft still */
.hp-field{position:absolute!important;left:-9999px!important;top:auto;width:1px;height:1px;overflow:hidden}
.block-article ul,.block-article ol{margin:0 0 var(--prose-p-mb);padding-left:0;list-style:none}
.block-article ul>li{position:relative;padding-left:1.6em;margin-bottom:var(--prose-li-mb);line-height:1.55}
.block-article ul>li::before{content:"";position:absolute;left:.15em;top:.62em;width:7px;height:7px;border-radius:50%;background:var(--accent)}
.block-article ol{counter-reset:prose-li}
.block-article ol>li{position:relative;padding-left:2.1em;margin-bottom:var(--prose-li-mb);line-height:1.55;counter-increment:prose-li}
.block-article ol>li::before{content:counter(prose-li);position:absolute;left:0;top:.1em;width:1.5em;height:1.5em;font-size:.78em;font-weight:700;color:var(--accent-text,var(--accent));background:var(--soft);border-radius:50%;display:flex;align-items:center;justify-content:center}
.block-article li>strong:first-child{color:var(--ink)}
.block-article a:not(.btn):not(.cta-btn):not(.oh-btn):not(.pf-btn):not(.eeat-cta){color:var(--accent-text,var(--accent));text-decoration:underline;text-underline-offset:2px}
.block-article a:not(.btn):not(.cta-btn):not(.oh-btn):not(.pf-btn):not(.eeat-cta):hover{color:var(--cta)}

/* Blog */
.mag-hero{border-radius:18px;overflow:hidden;max-height:46vh;min-height:260px}
.mag-hero img{width:100%;height:100%;object-fit:cover}
.blog-body h2{margin:30px 0 var(--h-mb)}
.blog-body p{color:var(--txt);margin-bottom:14px;font-size:16px;line-height:1.7}
.blog-body ul,.blog-body ol{margin:10px 0 14px 20px;color:var(--txt)}
.blog-body li{margin-bottom:6px}
.wrap-narrow{max-width:820px;margin:0 auto;padding:0 40px}
@media(max-width:700px){.wrap-narrow{padding:0 18px}}

/* Blog article (Blueprint blog.html) */
article.mag{max-width:1180px;margin:0 auto}
.mag-hero{padding:0 0 4px}
.mag-hero .crumb{color:var(--mut);font-size:var(--small-size);margin-bottom:18px}
.mag-hero .crumb a{color:var(--accent-text,var(--accent))}
.mag-hero h1{margin:8px 0 var(--h-mb)}
.mag-stand{font-size:var(--lead-size);line-height:1.5;color:var(--txt);max-width:60ch;font-style:italic}
.mag-byline{display:flex;align-items:center;gap:12px;margin-top:22px}
.mag-byline img{width:46px;height:46px;border-radius:50%;object-fit:cover}
.mag-byline b{font-size:var(--small-size)}.mag-byline span{display:block;color:var(--mut);font-size:var(--small-size)}
.mag-lead-img{margin:26px 0 0;width:100vw;margin-left:calc(50% - 50vw)}
.mag-lead-img img{width:100%;height:auto;max-height:560px;object-fit:cover;display:block}
.mag-lead-img figcaption,.mag figcaption{color:var(--mut);font-size:var(--small-size);padding:8px 22px 0;max-width:1180px;margin:0 auto}
.mag .mag-body{max-width:740px;padding-top:34px}
.mag-intro{font-size:var(--lead-size);line-height:1.7;color:var(--ink)}
.dropcap{float:left;font-size:64px;line-height:.82;font-weight:800;color:var(--cta);padding:4px 10px 0 0}
.mag .mag-body h2{margin:34px 0 var(--h-mb)}
.mag .mag-body p{font-size:var(--body-size);line-height:1.75;color:var(--txt);margin:0 0 16px}
.mag-duo{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:22px 0}
@media(max-width:600px){.mag-duo{grid-template-columns:1fr}}
.mag-duo img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:14px;display:block}
.mag-pull{font-size:var(--lead-size);font-style:italic;line-height:1.35;color:var(--ink);border-left:4px solid var(--cta);padding:6px 0 6px 22px;margin:28px 0;font-weight:600}
.mag-wide{width:100vw;margin-left:calc(50% - 50vw);margin-top:8px;margin-bottom:8px}
.mag-wide img{width:100%;max-height:520px;object-fit:cover;display:block}
.mag-key{background:var(--soft);border-radius:16px;padding:22px 24px;margin:30px 0}
.mag-key b{display:block;font-size:var(--h3-size);font-weight:800;margin-bottom:10px}
.mag-key ul{margin:0;padding-left:20px}.mag-key li{font-size:var(--body-size);line-height:1.6;color:var(--txt);margin-bottom:7px}
.mag-tags-wrap{padding-top:0}
.mag-tags{justify-content:flex-start;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}

/* Instagram Section (Blueprint blog.html) */
.insta-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:22px}

.insta-head h2{margin:6px 0 var(--h-mb-tight)}
.insta-head p{color:var(--txt);font-size:var(--lead-size);max-width:60ch}
.insta-btn{white-space:nowrap;margin-top:0}
.insta-btn:hover{filter:brightness(1.2);text-decoration:none}
.insta-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
@media(max-width:880px){.insta-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:480px){.insta-grid{grid-template-columns:repeat(2,1fr)}}
.insta-tile{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:1/1;display:block}
.insta-tile img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.insta-tile:hover img{transform:scale(1.06)}

/* Blog inline offers (shortcode) */
/* Blog inline offers: kompakt, nur Bild + Titel */
.mag-offers{display:grid;gap:18px;margin:30px 0}
/* Sicherheitsnetz fuer bereits gebaute Seiten: ein leerer Container darf keinen Platz
   nehmen. Ohne dies riss margin:30px 0 trotz Hoehe 0 eine Luecke in den Fliesstext.
   Neu erzeugt wird er gar nicht mehr (OfferLookupService). */
.mag-offers--0,.mag-offers:empty{display:none;margin:0}
.mag-figure{margin:30px 0}
.mag-figure img{width:100%;height:auto;display:block;border-radius:16px}
.mag-figure figcaption{margin-top:10px;font-size:var(--small-size);color:var(--mut);text-align:center;font-style:italic}
.mag .mag-body .blog-faq{margin:30px 0 0}
/* Immer max. 2 Spalten; eine einzelne Karte belegt die linke Spalte = 50 % (nie 100 %).
   Mobile (<=480px) hebt die Regel unten auf 1 Spalte auf. */
.mag-offers--1,.mag-offers--2,.mag-offers--3,.mag-offers--4{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:480px){.mag-offers{grid-template-columns:1fr!important}}
.mag-offer-card{display:flex;flex-direction:column;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--card);transition:transform .2s,box-shadow .2s,border-color .2s}
.mag-offer-card:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(0,0,0,.12);border-color:transparent;text-decoration:none}
.mag-offer-img{position:relative;overflow:hidden}
.mag-offer-img .heart{position:absolute;top:10px;right:10px;color:#fff;font-size:22px;filter:drop-shadow(0 1px 4px rgba(0,0,0,.5));cursor:pointer}
.mag-offer-img .heart.on{color:var(--cta)}
.mag-offer-card img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;transition:transform .4s}
.mag-offer-card:hover img{transform:scale(1.04)}
.mag-offer-info{padding:14px 16px}
.mag-offer-title{display:block;font-weight:800;font-size:var(--h4-size);line-height:1.3;margin-bottom:6px;transition:color .15s}
.mag-offer-card:hover .mag-offer-title{color:var(--accent-text,var(--accent))}
.mag-offer-meta{display:block;font-size:var(--small-size);color:var(--mut);line-height:1.4}

/* Detail Overlay — Blueprint fullscreen (§11) */
.do-bar{display:flex;align-items:center;gap:14px;padding:22px;border-bottom:1px solid var(--line);background:var(--card);flex:0 0 auto}
.do-bar .x{border:0;background:var(--accent);color:#fff;width:40px;height:40px;border-radius:999px;font-size:24px;line-height:1;cursor:pointer;display:grid;place-items:center;transition:filter .15s}
.do-bar .x:hover{filter:brightness(.9)}
.do-bar .act{display:flex;gap:4px}
.do-bar .act a{font-weight:700;font-size:14px;padding:8px 10px;border-radius:8px;color:var(--ink)}
.do-bar .act a:hover{background:var(--soft);text-decoration:none}
.do-bar .nav{margin-left:auto;display:flex;align-items:center;gap:8px}
.do-bar .nav .cnt{font-weight:700;font-size:14px;min-width:54px;text-align:center;color:var(--mut)}
.do-bar .nav button{border:1px solid var(--line);background:var(--card);border-radius:999px;width:38px;height:38px;font-size:18px;cursor:pointer;color:var(--ink)}
.do-bar .nav button:hover:not(:disabled){border-color:var(--ink)}
.do-bar .nav button:disabled{opacity:.3;cursor:default}
.do-bar .full{border:1px solid var(--ink);border-radius:8px;padding:9px 14px;font-weight:700;font-size:13px;text-decoration:none;color:var(--ink);white-space:nowrap}
.do-body{overflow:auto;flex:1 1 auto;padding-top:16px;padding-bottom:56px}
.do-body .crumb{display:none}
.do-loading{padding:60px;text-align:center;color:var(--mut)}
@media(max-width:620px){.do-bar .full{display:none}.do-bar{gap:8px;padding:10px 14px}}

/* === EXPERIMENT: Detail-Overlay — Logo-Header zentriert + Browser im Footer (revertierbar:
   diesen Block entfernen UND #detovl-Markup in views/layout.cfm + offer-detail.js-Selektor zuruecksetzen) === */
.detail-ovl .do-bar{position:relative;justify-content:center;gap:0}
.detail-ovl .do-bar .do-logo{display:inline-flex;align-items:center;font-family:var(--disp);font-weight:800;font-size:20px;color:var(--ink);text-decoration:none}
.detail-ovl .do-bar .do-logo .logo-img{height:34px;width:auto;display:block}
.detail-ovl .do-bar .do-bar-right{position:absolute;right:14px;top:50%;transform:translateY(-50%);display:flex;align-items:center}
.detail-ovl .do-foot{flex:0 0 auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:12px 22px;border-top:1px solid var(--line);background:var(--card)}
.detail-ovl .do-foot .act{justify-self:start;display:flex;gap:8px;align-items:center;min-height:38px}
.detail-ovl .do-foot .nav{grid-column:2;display:flex;align-items:center;gap:10px;justify-content:center}
.detail-ovl .do-foot .nav .cnt{font-weight:700;font-size:14px;min-width:54px;text-align:center;color:var(--mut)}
.detail-ovl .do-foot .nav button{border:0;background:var(--accent);border-radius:999px;width:38px;height:38px;font-size:18px;cursor:pointer;color:#fff;display:grid;place-items:center;transition:filter .15s}
.detail-ovl .do-foot .nav button:hover:not(:disabled){filter:brightness(.9)}
.detail-ovl .do-foot .nav button:disabled{opacity:.3;cursor:default}
.detail-ovl .do-foot .full{display:none;justify-self:end;border:1px solid var(--ink);border-radius:8px;padding:9px 14px;font-weight:700;font-size:13px;text-decoration:none;color:var(--ink);white-space:nowrap}
@media(max-width:620px){.detail-ovl .do-foot{padding:10px 14px;gap:8px}.detail-ovl .do-foot .full{display:none}}
/* === /EXPERIMENT === */

/* Detail page specifics */
.det-pagehead{padding:6px 0 4px}
.det-pagehead h1{letter-spacing:-.02em}
.det-lead{font-size:clamp(17px,2vw,21px);color:var(--txt);max-width:75ch;margin:18px 0 26px;line-height:1.65;border-left:4px solid var(--accent);padding-left:16px}
.faqgrid{display:grid;gap:0}
.ablauf{margin:10px 0 16px;padding-left:20px}.ablauf li{margin-bottom:8px;color:var(--txt)}

/* List-View: initial hidden cards, "Mehr laden" zeigt sie */
.card-hidden{display:none}
/* Grid-Modus: .rc verstecken */
.hits:not(.listmode) .card .rc{display:none}
/* Slider kennen keine Listenansicht (z. B. Partner-Block in der Trefferliste) */
.ts-track .card .rc{display:none}
/* List-Modus: Grid-Felder verstecken, .rc zeigen */
.hits.listmode .card>.loc,.hits.listmode .card>.ttl,.hits.listmode .card>.meta,.hits.listmode .card>.price,.hits.listmode .card>.ref{display:none}
.hits.listmode .card .rc{display:block}
.rc-d{color:var(--txt);font-size:14px;margin:6px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* List page toolbar sticky */
[data-type="toolbar"]{position:sticky;top:78px;z-index:30;background:var(--bg)}
[data-type="pagehead"] h1{margin-top:4px}
[data-type="pagehead"] .crumb{padding-top:0}

/* CSP-konform: Inline-Style-Ersatz */
.text-right{text-align:right}
.form-success{display:none}
.form-success.visible{display:block}
.empty-state--padded{padding:60px 0}
.grid--pt{padding-top:24px}
.imgwrap--blog{aspect-ratio:16/10}
.form-unconfigured{color:var(--mut)}
.empty-state--actions{display:flex;gap:12px;justify-content:center;margin-top:20px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:6px;padding:var(--btn-pad);border-radius:var(--btn-radius);font-weight:700;font-size:var(--btn-size);cursor:pointer;border:1px solid var(--card-border);background:var(--btn-bg);color:var(--btn-fg);text-decoration:none;box-shadow:var(--btn-shadow);transition:box-shadow .2s ease,background .15s ease}
.btn:hover{background:var(--btn-hover);text-decoration:none;box-shadow:var(--btn-shadow-hover)}
.btn-primary{background:var(--cta);color:var(--on-accent);border-color:var(--cta)}
.btn-primary:hover{background:var(--cta-d);border-color:var(--cta-d);color:var(--on-accent)}
.altcha-status{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:var(--mut);background:var(--soft);padding:7px 12px;border-radius:999px}
.altcha-ok{color:var(--success);background:color-mix(in srgb,var(--success) 14%,transparent)}
.altcha-err{color:var(--error);background:color-mix(in srgb,var(--error) 12%,transparent)}

/* === Magazin-Uebersicht (mo-*) === */
.mo-hero{max-width:840px}
.mo-hero .crumb{color:var(--mut);font-size:13.5px;margin-bottom:16px}
.mo-hero .crumb a:hover{color:var(--accent-text,var(--accent))}
.mo-title{letter-spacing:-.01em;margin:6px 0 var(--h-mb)}
.mo-lead{font-size:clamp(16px,1.7vw,19px);color:var(--txt);max-width:680px;line-height:1.6}
.mo-feat{display:grid;grid-template-columns:1.15fr 1fr;background:var(--ink);color:#fff;border-radius:22px;overflow:hidden;box-shadow:0 24px 55px rgba(31,34,37,.20);transition:transform .2s,box-shadow .2s}
.mo-feat:hover{transform:translateY(-3px);box-shadow:0 30px 65px rgba(31,34,37,.28)}
.mo-feat-img{position:relative;min-height:360px;overflow:hidden}
.mo-feat-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s}
.mo-feat:hover .mo-feat-img img{transform:scale(1.04)}
.mo-feat-body{padding:clamp(28px,3.6vw,48px);display:flex;flex-direction:column;justify-content:center}

.mo-feat h2{color:#fff}
.mo-feat p{color:#c4ccd4;font-size:16px;line-height:1.6;margin-bottom:22px;max-width:48ch}
.mo-feat-meta{display:flex;align-items:center;gap:10px;color:#aab2ba;font-size:13.5px;margin-bottom:20px}
.mo-feat-meta img{width:34px;height:34px;border-radius:50%;object-fit:cover}
.mo-feat-meta b{color:#fff;font-weight:700}
.mo-feat-cta{font-weight:800;color:#fff;font-size:15px;transition:color .15s}
.mo-feat:hover .mo-feat-cta{color:#8fb0d6}
@media(max-width:820px){.mo-feat{grid-template-columns:1fr}.mo-feat-img{min-height:230px}}
.mo-head{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:18px}
.mo-search{position:relative;display:flex;align-items:center}
.mo-search svg{position:absolute;left:14px;width:17px;height:17px;color:var(--mut);pointer-events:none}
.mo-search input{border:1px solid var(--field-bd,#cfd6dd);border-radius:999px;padding:10px 18px 10px 40px;font:inherit;font-size:14px;width:250px;background:var(--card);color:var(--ink)}
.mo-search input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(67,111,154,.15)}
@media(max-width:560px){.mo-head{align-items:stretch}.mo-search,.mo-search input{width:100%}}
.mo-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:30px}
.mo-chip{border:1px solid var(--line);background:var(--card);color:var(--txt);font:inherit;font-size:13.5px;font-weight:600;padding:9px 16px;border-radius:999px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.mo-chip:hover{border-color:var(--accent);color:var(--accent-text,var(--accent))}
.mo-chip.is-active{background:var(--ink);color:#fff;border-color:var(--ink)}
.mo-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
@media(max-width:980px){.mo-grid{grid-template-columns:repeat(2,1fr);gap:22px}}
@media(max-width:600px){.mo-grid{grid-template-columns:1fr}}
/* Full-width Kartengrid ab 6 Beitraegen (blog-index) */
.mo-grid--wide{grid-template-columns:repeat(4,1fr)}
@media(max-width:1300px){.mo-grid--wide{grid-template-columns:repeat(3,1fr)}}
@media(max-width:980px){.mo-grid--wide{grid-template-columns:repeat(2,1fr);gap:22px}}
@media(max-width:600px){.mo-grid--wide{grid-template-columns:1fr}}
.mo-card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;color:inherit;transition:transform .2s,box-shadow .2s,border-color .2s}
.mo-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(31,34,37,.13);border-color:transparent}
.mo-card.mo-hidden{display:none}
.mo-thumb{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--soft)}
.mo-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .45s}
.mo-card:hover .mo-thumb img{transform:scale(1.06)}
.mo-cat{position:absolute;top:12px;left:12px;background:rgba(255,255,255,.94);color:var(--ink);font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:6px 11px;border-radius:999px}
.mo-card-body{padding:18px 20px;display:flex;flex-direction:column;flex:1}
.mo-card h3{transition:color .15s;margin-bottom:var(--h-mb-tight)}
.mo-card:hover h3{color:var(--accent-text,var(--accent))}
.mo-excerpt{color:var(--mut);font-size:14.5px;line-height:1.55;margin-bottom:16px;flex:1}
.mo-meta{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:14px;border-top:1px solid var(--line);font-size:13px}
.mo-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover}
.mo-meta b{font-weight:700}.mo-meta span{color:var(--mut)}
.mo-empty{text-align:center;color:var(--mut);padding:44px 0;font-size:15px}
.mo-news{display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap}
.mo-news-txt{max-width:520px}
.mo-news-txt h2{margin:6px 0 var(--h-mb)}
.mo-news-txt p{color:var(--mut);font-size:var(--lead-size);line-height:1.6}
.mo-news-form{display:flex;gap:10px;flex:1;min-width:280px;max-width:440px}
.mo-news-form input{flex:1;border:1px solid var(--field-bd,#cfd6dd);border-radius:11px;padding:13px 16px;font:inherit;font-size:var(--body-size);background:var(--card)}
.mo-news-form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(67,111,154,.15)}
.mo-news-form button{background:var(--cta);color:var(--on-accent);border:0;border-radius:11px;padding:13px 24px;font:inherit;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .15s}
.mo-news-form button:hover{background:var(--cta-d,#9a1717)}
@media(max-width:760px){.mo-news{flex-direction:column;align-items:stretch}.mo-news-form{max-width:none}}
@media(prefers-reduced-motion:reduce){.mo-card,.mo-feat,.mo-thumb img,.mo-feat-img img,.mo-card h3,.mo-feat-cta{transition:none}.mo-card:hover,.mo-feat:hover{transform:none}.mo-card:hover .mo-thumb img,.mo-feat:hover .mo-feat-img img{transform:none}}

/* === Newsletter Modal (nl-*) === */
.nl-ovl{position:fixed;inset:0;background:rgba(20,22,25,.55);backdrop-filter:blur(3px);display:none;place-items:center;z-index:92;padding:20px}
.nl-ovl.open{display:grid}
.nl-modal{background:var(--card);border-radius:20px;max-width:480px;width:100%;padding:36px;position:relative}
.nl-modal h3{text-align:center;margin:0 0 0}
.nl-sub{color:var(--mut);font-size:var(--small-size);text-align:center;margin:4px 0 22px}
.nl-x{position:absolute;top:16px;right:16px;border:0;background:var(--soft);width:34px;height:34px;border-radius:50%;font-size:18px;cursor:pointer;color:var(--ink)}
.nl-x:hover{background:var(--line)}
.nl-field{display:block;margin-bottom:14px}
.nl-field span{display:block;font-size:var(--small-size);font-weight:700;color:var(--mut);margin-bottom:5px}
.nl-field input,.nl-field select{display:block;width:100%;padding:11px 14px;border:1.5px solid var(--field-bd,#cfd6dd);border-radius:10px;font:inherit;font-size:var(--body-size);background:var(--bg);color:var(--ink)}
.nl-field input:focus,.nl-field select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(67,111,154,.15)}
.nl-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:480px){.nl-row{grid-template-columns:1fr}}
.nl-submit{width:100%;background:var(--cta);color:var(--on-accent);border:0;border-radius:11px;padding:14px;font:inherit;font-weight:800;font-size:var(--btn-size);cursor:pointer;margin-top:6px;transition:background .15s}
.nl-submit:hover:not(:disabled){background:var(--cta-d,#9a1717)}
.nl-submit:disabled{opacity:.4;cursor:not-allowed}
.nl-success{text-align:center;padding:24px 0}
.nl-check{font-size:48px;color:var(--accent-text,var(--accent));margin-bottom:12px}
.nl-success p{font-size:var(--body-size);font-weight:600}
.nl-foot{text-align:center;color:var(--mut);font-size:var(--small-size);margin-top:16px}
.nl-foot a{color:var(--accent-text,var(--accent));font-weight:700}
.nfb-hero{max-width:1140px}
.nfb-badge{display:inline-block;background:var(--cta);color:#fff;font-weight:800;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;padding:6px 12px;border-radius:999px;margin-bottom:16px}
.nfb-title{letter-spacing:-.015em}
.nfb-lead{font-size:17px;color:var(--mut);line-height:1.6;max-width:560px;margin-bottom:24px}
.nfb-search{display:flex;align-items:center;max-width:520px;border:1px solid var(--field-bd);border-radius:14px;padding:5px 5px 5px 16px;background:var(--card)}
.nfb-search svg{width:18px;height:18px;color:var(--mut);flex:none}
.nfb-search input{flex:1;border:0;background:none;font:inherit;font-size:15px;padding:12px;outline:none;min-width:0}
.nfb-search button{background:var(--cta);color:#fff;border:0;border-radius:10px;padding:12px 22px;font:inherit;font-weight:700;cursor:pointer}
.nfb-search button:hover{background:var(--cta-d)}
.nfb-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(67,111,154,.15)}
.nfb-tiles{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
@media(max-width:900px){.nfb-tiles{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.nfb-tiles{grid-template-columns:repeat(2,1fr)}}
.nfb-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px 14px;min-height:128px;font-weight:700;font-size:14.5px;transition:transform .18s,box-shadow .18s,border-color .18s}
.nfb-tile:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(31,34,37,.12);border-color:transparent}
.nfb-tile .ic{font-size:30px;line-height:1}
.nfb-tile .lb{color:var(--ink)}
.nfb-tile:hover .lb{color:var(--accent-text,var(--accent))}
.nfb-pages{display:flex;flex-wrap:wrap;gap:10px}
.nfb-page{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--soft);border-radius:11px;padding:11px 18px;font-weight:700;font-size:14.5px;transition:border-color .15s,color .15s,background .15s}
.nfb-page:hover{border-color:var(--accent);color:var(--accent-text,var(--accent));background:var(--card)}

/* Gutschein bestellen (Blaupause gutschein) */

.gs-stand{font-size:var(--lead-size);line-height:1.55;color:var(--txt);max-width:70ch;font-style:italic}
.gs-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:38px;align-items:start}
@media(max-width:980px){.gs-grid{grid-template-columns:1fr;gap:28px}}
.gs-l h2{margin:0 0 var(--h-mb)}
.gs-form{display:flex;flex-direction:column;gap:18px}
.gs-step{border:1px solid var(--line);border-radius:16px;padding:18px 18px 16px;background:var(--card);min-width:0}
.gs-step legend{font-weight:800;font-size:var(--h4-size);padding:0 8px;display:flex;align-items:center;gap:10px}
.gs-num{width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:var(--small-size);font-weight:800}
.gs-opt{color:var(--mut);font-weight:500;font-size:var(--small-size)}
.gs-tiers{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin-top:8px}
@media(max-width:760px){.gs-tiers{grid-template-columns:repeat(3,1fr)}}
@media(max-width:430px){.gs-tiers{grid-template-columns:repeat(2,1fr)}}
.gs-tier{border:1.5px solid var(--line);background:var(--card);border-radius:12px;padding:13px 6px;font:inherit;font-weight:800;font-size:var(--btn-size);cursor:pointer;color:var(--ink)}
.gs-tier.on{border-color:var(--accent);background:var(--soft);color:var(--accent-text,var(--accent))}
.gs-custom{display:flex;align-items:center;gap:10px;margin-top:12px;font-weight:700;color:var(--mut);font-size:var(--small-size);flex-wrap:wrap}
.gs-custom input{flex:1;min-width:140px;border:1.5px solid var(--line);border-radius:10px;padding:11px 12px;font:inherit;font-size:var(--body-size);background:var(--card)}
.gs-hint{color:var(--mut);font-size:var(--small-size);margin:8px 0 0}
.gs-deliv{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}
@media(max-width:560px){.gs-deliv{grid-template-columns:1fr}}
.gs-d{display:flex;align-items:flex-start;gap:10px;border:1.5px solid var(--line);border-radius:12px;padding:13px 14px;background:var(--card);cursor:pointer}
.gs-d.on{border-color:var(--accent);background:var(--soft)}
.gs-d input{margin-top:4px;accent-color:var(--accent)}
.gs-d b{display:block;font-size:var(--small-size)}
.gs-d span{display:block;color:var(--mut);font-size:var(--small-size);line-height:1.45;margin-top:3px}
.gs-d i{color:var(--ink);font-style:normal;font-weight:700}
.gs-addr{margin-top:14px;border-top:1px dashed var(--line);padding-top:14px;display:flex;flex-direction:column;gap:10px}
.gs-row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:560px){.gs-row2{grid-template-columns:1fr}}
.gs-row-plz{grid-template-columns:1fr 2fr}
.gs-f{display:block;font-size:var(--small-size);font-weight:700;color:var(--mut)}
.gs-f input,.gs-f textarea,.gs-f select{display:block;width:100%;margin-top:5px;border:1.5px solid var(--line);border-radius:9px;padding:11px 12px;font:inherit;font-size:var(--body-size);background:var(--card);color:var(--ink)}
.gs-f textarea{resize:vertical}
.gs-check{display:flex;align-items:flex-start;gap:9px;color:var(--txt);font-size:var(--small-size);line-height:1.45;margin-top:8px}
.gs-check input{margin-top:3px;accent-color:var(--accent)}
.gs-check a{color:var(--accent-text,var(--accent));text-decoration:underline}
.gs-totals{background:var(--soft);border-radius:12px;padding:14px 16px}
.gs-totals>div{display:flex;justify-content:space-between;font-size:var(--small-size);color:var(--txt);padding:4px 0}
.gs-totals .gs-sum{border-top:1px solid var(--line);margin-top:4px;padding-top:8px;font-size:var(--body-size);color:var(--ink)}
.gs-totals .gs-sum b{font-size:var(--h4-size)}
.gs-btn{background:var(--cta);color:#fff;border:0;border-radius:12px;padding:15px 22px;font:inherit;font-weight:800;font-size:var(--btn-size);cursor:pointer}
.gs-btn:hover{background:var(--cta-d)}
.gs-btn:disabled{opacity:.5;cursor:not-allowed}
.gs-info{color:var(--mut);font-size:var(--small-size);margin:6px 0 0;text-align:center}
.gs-thanks{background:#eaf7ef;border:1px solid #27ae60;color:#1e7e44;border-radius:10px;padding:14px 16px;font-weight:700;font-size:var(--small-size);margin-top:12px}
.gs-r{position:sticky;top:96px}
@media(max-width:980px){.gs-r{position:static}}
.gs-prev-card{position:relative;border:1px solid silver;background:#fff;border-radius:6px;overflow:hidden}
.gs-prev-img{width:100%;display:block}
.gs-prev-amt{position:absolute;right:10px;top:10px;text-align:right;color:#fff;text-shadow:2px 2px #000;max-width:60%}
.gs-prev-val{font-weight:800;font-size:clamp(14px,3vw,22px);line-height:1}
.gs-prev-words{font-weight:700;font-style:italic;font-size:clamp(8px,1.4vw,11px);margin-top:2px;line-height:1.1}
.gs-prev-msg{position:absolute;left:10px;top:58%;max-width:31%;padding-right:5px;color:#000;font-style:italic;font-weight:700;line-height:1.05;font-size:clamp(8px,1.5vw,11px);display:flex;flex-direction:column;gap:1px}
.gs-prev-msg em{font-style:italic}
.gs-prev-note{color:var(--mut);font-size:var(--small-size);text-align:center;margin:10px 0 0}
.foot-brand .f-mt{margin-top:16px}
.gs-words{display:flex;flex-direction:column;gap:1px;margin-top:4px;color:var(--mut);font-size:var(--small-size);font-style:italic}

/* Navbar-Dropdown aus Menü-Modell (Menü-Builder Phase 3) */
.hnav-dd{position:relative;display:inline-block}
.hnav-dd-menu{position:absolute;top:100%;left:0;min-width:210px;background:var(--card,#fff);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.12);padding:8px;display:none;z-index:60}
.hnav-dd:hover .hnav-dd-menu,.hnav-dd:focus-within .hnav-dd-menu{display:block}
.hnav-dd-menu a{display:block;padding:8px 12px;border-radius:8px;text-decoration:none;color:var(--header-link,var(--ink))}
.hnav-dd-menu a:hover{background:var(--soft)}
.hnav-dd .dd-caret{font-size:10px;opacity:.7}
.dd-heading{padding:9px 12px 4px;font-weight:800;font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--mut)}
.dd-divider{display:block;height:1px;background:var(--line);margin:6px 0}
.hnav-label{color:var(--mut)}
.oc-sub{padding-left:30px;opacity:.85}
.oc-heading{padding:10px 0 4px;font-weight:800;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--mut)}

/* Wettbewerb-Ausgabe (customincludes/wettbewerb) */
.wb-hero-img{width:100%;max-height:460px;object-fit:cover;border-radius:14px;display:block}
.wb-text{font-size:var(--lead-size);line-height:1.6;color:var(--txt);max-width:70ch;margin:0 0 18px}
.wb-form{display:flex;flex-direction:column;gap:18px;max-width:680px}
.wb-step{border:1px solid var(--line);border-radius:14px;padding:16px 18px;background:var(--card)}
.wb-step legend{font-weight:800;font-size:var(--h4-size);padding:0 6px}
.wb-opts{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.wb-opt{display:flex;align-items:center;gap:9px;font-size:var(--body-size);cursor:pointer}
.wb-opt input{accent-color:var(--accent)}
.wb-f{display:block;font-size:var(--small-size);font-weight:700;color:var(--mut);margin-top:10px}
.wb-f input,.wb-f select{display:block;width:100%;margin-top:5px;border:1.5px solid var(--line);border-radius:9px;padding:11px 12px;font:inherit;font-size:var(--body-size);background:var(--card);color:var(--ink)}
.wb-row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.wb-plz{grid-template-columns:1fr 2fr}
@media(max-width:560px){.wb-row2{grid-template-columns:1fr}}
.wb-hint{color:var(--mut);font-size:var(--small-size)}
.wb-deadline{color:var(--mut);font-size:var(--small-size);margin:4px 0 0}
.wb-btn{align-self:flex-start;background:var(--cta);color:#fff;border:0;border-radius:12px;padding:14px 26px;font:inherit;font-weight:800;font-size:var(--btn-size);cursor:pointer}
.wb-btn:hover{background:var(--cta-d)}
.wb-offers-h{margin:24px 0 var(--h-mb-tight)}
.wb-offers-link{color:var(--accent-text,var(--accent));font-weight:700;text-decoration:none}
.wb-winner{background:var(--soft);border-radius:14px;padding:18px 20px}

/* Navbar-Mega-Panel (Menü-Builder 3c-iii: layout=mega) */
.hnav-mega{position:static}
.hnav-mega-panel{position:absolute;left:0;right:0;top:100%;background:var(--mega-bg,var(--card,#fff));color:var(--mega-fg,var(--ink));border-top:1px solid var(--line);box-shadow:0 18px 40px rgba(0,0,0,.14);padding:28px 0;display:none;z-index:55}
.hnav-mega:hover .hnav-mega-panel,.hnav-mega:focus-within .hnav-mega-panel{display:block}
.mega-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:28px;align-items:start}
.mega-col{min-width:0}
.mega-h{font-weight:800;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--mut);margin-bottom:8px}
.mega-link{display:block;padding:5px 0;text-decoration:none;color:var(--header-link,var(--ink))}
.mega-link:hover{color:var(--accent-text,var(--accent))}
.mega-text{font-size:14px;line-height:1.6}
.mega-img{width:100%;border-radius:10px;display:block}
.gs-words span:first-letter{text-transform:uppercase}

/* Wettbewerbs-Teaser (customincludes/wettbewerb-teaser) */
.wb-teaser{display:grid;grid-template-columns:minmax(0,300px) 1fr;gap:24px;align-items:center;background:var(--card,#fff);border:1px solid var(--line);border-radius:16px;overflow:hidden;text-decoration:none;color:var(--ink);box-shadow:0 8px 26px rgba(0,0,0,.07);transition:box-shadow .15s}
.wb-teaser:hover{box-shadow:0 14px 36px rgba(0,0,0,.13)}
@media(max-width:680px){.wb-teaser{grid-template-columns:1fr}}
.wb-teaser-img{width:100%;height:100%;min-height:180px;max-height:240px;object-fit:cover;display:block}
.wb-teaser-body{padding:22px 26px 22px 0}
@media(max-width:680px){.wb-teaser-body{padding:0 22px 22px}}

.wb-teaser-h{margin:0 0 var(--h-mb-tight)}
.wb-teaser-sub{color:var(--mut);font-size:var(--lead-size);margin:0 0 14px}
.wb-teaser-cta{display:inline-block;background:var(--cta);color:#fff;border-radius:11px;padding:11px 20px;font-weight:800;font-size:var(--btn-size)}
.wb-teaser:hover .wb-teaser-cta{background:var(--cta-d,var(--cta))}

/* Wettbewerbsseite — 2-Spalten + Gewinn-Card + Teilnahmebedingungen + Angebots-Grid + FAQ */
.wb-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:40px;align-items:start}
@media(max-width:900px){.wb-grid{grid-template-columns:1fr;gap:28px}}
.wb-side{display:flex;flex-direction:column;gap:18px;position:sticky;top:96px}
@media(max-width:900px){.wb-side{position:static}}
.wb-prize{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--card)}
.wb-prize-head{background:var(--ink,#1f2225);color:#fff;font-weight:800;font-size:var(--small-size);letter-spacing:.08em;text-transform:uppercase;padding:14px 18px}
.wb-prize-img{width:100%;height:200px;object-fit:cover;display:block}
.wb-prize-body{padding:18px 20px 20px}
.wb-prize-h{margin:0 0 var(--h-mb)}
.wb-prize-list{margin:0 0 16px;padding-left:18px;display:flex;flex-direction:column;gap:6px}
.wb-prize-list li{font-size:var(--body-size);color:var(--txt);line-height:1.45}
.wb-prize-link{display:inline-block;border-top:1px solid var(--line);padding-top:14px;width:100%;color:var(--accent-text,var(--accent));font-weight:700;font-size:var(--small-size);text-decoration:none}
.wb-prize-link:hover{color:var(--cta)}
.wb-terms{background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.wb-terms h4{margin:0 0 var(--h-mb-tight)}
.wb-terms p{margin:0;color:var(--mut);font-size:var(--small-size);line-height:1.55}
.wb-offers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:22px;margin-top:6px}
.wb-offers-more{margin:18px 0 0}
.wb-faq-h{margin:0 0 var(--h-mb)}
.wb-faq{display:grid;grid-template-columns:1fr 1fr;gap:8px 48px}
@media(max-width:760px){.wb-faq{grid-template-columns:1fr}}
.wb-faq-item{padding:14px 0;border-top:1px solid var(--line);margin-bottom:0.4rem}
.wb-faq-item h3{margin:0 0 var(--h-mb-tight)}
.wb-faq-item p{margin:0;color:var(--mut);font-size:var(--body-size);line-height:1.55}

/* Event-Feedback Sondermaske (feedback.js) */
.fb-ov{position:fixed;inset:0;z-index:9000;background:rgba(20,26,33,.55);display:flex;align-items:flex-start;justify-content:center;padding:5vh 16px;overflow:auto}
.fb-box{position:relative;background:var(--card,#fff);color:var(--ink,#1f2225);border-radius:16px;max-width:620px;width:100%;padding:30px 30px 28px;box-shadow:0 24px 60px rgba(0,0,0,.3)}
.fb-x{position:absolute;top:12px;right:14px;background:transparent;border:0;font-size:26px;line-height:1;color:var(--mut);cursor:pointer}

.fb-title{font-size:24px;line-height:1.2;margin:0 0 18px}
.fb-text{color:var(--mut);font-size:15px;line-height:1.55}
.fb-err{color:var(--cta,#b61c1c);font-size:14px;font-weight:700;margin:10px 0 0}
.fb-form{display:flex;flex-direction:column;gap:14px}
.fb-f{display:block;font-size:12.5px;font-weight:700;color:var(--mut)}
.fb-f>span{display:block;margin-bottom:5px}
.fb-f input,.fb-f textarea{display:block;width:100%;border:1.5px solid var(--line);border-radius:9px;padding:11px 12px;font:inherit;font-size:14.5px;background:var(--card);color:var(--ink)}
.fb-f textarea{resize:vertical}
.fb-row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:520px){.fb-row2{grid-template-columns:1fr}}
.fb-check{display:flex;align-items:flex-start;gap:9px;font-size:13.5px;line-height:1.45;color:var(--txt)}
.fb-check input{margin-top:3px;accent-color:var(--accent)}
.fb-dz{position:relative;border:2px dashed var(--line);border-radius:12px;padding:16px;min-height:90px;cursor:pointer;background:var(--soft,#f5f7f9);transition:border-color .15s,background .15s}
.fb-dz.over{border-color:var(--accent);background:var(--card)}
.fb-dz-hint{color:var(--mut);font-size:13.5px;text-align:center;pointer-events:none}
.fb-dz-input{display:none}
.fb-dz-prev{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.fb-dz-th{position:relative;width:72px;height:72px;border-radius:8px;overflow:hidden}
.fb-dz-th img{width:100%;height:100%;object-fit:cover;display:block}
.fb-dz-rm{position:absolute;top:2px;right:2px;width:20px;height:20px;border:0;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;font-size:13px;line-height:1;cursor:pointer}
.fb-btn{align-self:flex-start;background:var(--cta,#b61c1c);color:#fff;border:0;border-radius:11px;padding:13px 24px;font:inherit;font-weight:800;font-size:15px;cursor:pointer}
.fb-btn:disabled{opacity:.6;cursor:not-allowed}

/* Hotline/Beratung (hotline.js) */
.hl-block{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.hl-people{display:flex;gap:20px;flex-wrap:wrap;justify-content:center}
.hl-person{display:flex;flex-direction:column;align-items:center;gap:6px}
.hl-foto{width:120px;height:120px;border-radius:50%;object-fit:cover;display:block}
.hl-foto.hl-group{width:150px;height:150px}
.hl-name{font-weight:700;font-size:14.5px;color:var(--ink)}
/* Platzhalter statt Foto (Datei fehlt oder laedt nicht): Anfangsbuchstabe,
   gleiche Masse wie .hl-foto, damit die Namen buendig bleiben. */
.hl-foto--ph{display:grid;place-items:center;background:var(--soft);color:var(--mut);font-weight:800;font-size:40px;line-height:1;user-select:none}
.hl-compact .hl-foto--ph{font-size:20px}
.hl-phone{margin-top:4px}
.hl-tel-label{font-size:12px;color:var(--mut);text-transform:uppercase;letter-spacing:.05em;font-weight:700;margin-bottom:2px}
.hl-tel-link{font-size:22px;font-weight:800;color:var(--ink);text-decoration:none}
.hl-wa{display:inline-flex;align-items:center;gap:6px;color:#fff;background:#25d366;padding:8px 16px;border-radius:9px;font-weight:700;text-decoration:none;margin-top:4px}
.hl-mail{color:var(--cta,#b61c1c);font-weight:600;text-decoration:none}
.hl-closed{color:var(--ink);font-family:var(--disp);font-size:29px;font-weight:800;line-height:1.15;max-width:480px}
.hl-headline{font-size:27px;font-weight:800;color:var(--ink);margin:0;line-height:1.2}
.hl-lead{font-size:16px;color:var(--mut);margin:0 0 6px;max-width:480px;line-height:1.5}
.hl-nextopen{font-size:16px;color:var(--mut);margin:8px 0 0;max-width:480px;line-height:1.5}
.hl-hours{font-size:14px;color:var(--mut);margin:10px 0 0}
.hl-block .hl-mail{display:inline-block;margin-top:8px}
.eeat-adv-txt .hl-headline{font-size:21px;margin:0 0 6px}
.eeat-adv-txt .hl-closed{font-size:var(--h2-size,24px);font-weight:800;line-height:1.2;margin:0 0 8px;max-width:none;color:var(--ink);font-family:var(--disp)}
.eeat-adv-txt .hl-contact{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);display:flex;flex-direction:row;flex-wrap:wrap;align-items:flex-end;gap:6px 24px}
.eeat-adv-txt .hl-contact a{text-decoration:none;border:0}
.eeat-adv-txt .hl-contact .hl-phone{margin-top:0}
.eeat-adv-txt .hl-contact .hl-tel-label{color:var(--accent-text,var(--accent))}
.eeat-adv-txt .hl-contact .hl-tel-link{font-size:16px;color:var(--accent-text,var(--accent));text-decoration:none;border:0}
.eeat-adv-txt .hl-contact .hl-mail{color:var(--mut);font-weight:600;font-size:16px;text-decoration:none;border:0}
.eeat-adv-txt .hl-contact .hl-mail:hover{color:var(--cta)}
.hl-compact{gap:14px;align-items:stretch;text-align:left}
.hl-compact .hl-people{flex-direction:column;gap:14px}
.hl-compact .hl-person{flex-direction:row;align-items:center;gap:12px}
.hl-compact .hl-foto{width:56px;height:56px}
.hl-compact .hl-foto.hl-group{width:100%;height:auto;aspect-ratio:4/3;border-radius:14px}
.hl-compact .hl-name{font-size:14px}
.hl-compact .hl-closed{font-size:13px;font-weight:400;color:var(--mut);font-family:inherit;max-width:none}
.hotline .hl-trigger{display:contents}
/* Offcanvas-Hotline kompakt. Zwei Zustaende, zwei Layouts:
   Gruppenfoto-Zustand = Bild links, Telefon rechts (passt, weil das Bild schmal ist).
   Beraterinnen-Zustand = alles untereinander. Nebeneinander brach in der ~300px
   breiten Schublade sowohl die Namen als auch die Telefonnummer um. */
.oc-sec[data-hotline]{padding:14px 16px}
.oc-sec[data-hotline] .hl-block:not(.hl-advisors){flex-direction:row;align-items:center;gap:14px;text-align:left}
.oc-sec[data-hotline] .hl-foto.hl-group{width:104px;height:78px;flex-shrink:0;aspect-ratio:auto}
.oc-sec[data-hotline] .hl-block.hl-advisors{flex-direction:column;align-items:stretch;gap:12px;text-align:left}
.oc-sec[data-hotline] .hl-block.hl-advisors .hl-people{flex-direction:column;gap:10px}
.oc-sec[data-hotline] .hl-block.hl-advisors .hl-person{gap:10px}
.oc-sec[data-hotline] .hl-block.hl-advisors .hl-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.oc-sec[data-hotline] .hl-block.hl-advisors .hl-phone{padding-top:10px;border-top:1px solid var(--line)}
.oc-sec[data-hotline] .hl-tel-link{white-space:nowrap}
.oc-sec[data-hotline] .hl-phone{margin-top:0}

/* Cookie-Consent (consent.js) */
.cc-root{position:fixed;inset:auto 0 0 0;z-index:10000;display:flex;justify-content:center;padding:16px;pointer-events:none}
.cc-root--modal{inset:0;align-items:center;background:rgba(20,26,33,.5);pointer-events:auto}
.cc-banner,.cc-modal{pointer-events:auto;background:var(--card,#fff);color:var(--ink,#1f2225);border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 50px rgba(0,0,0,.28);padding:20px 22px;width:100%}
.cc-banner{max-width:560px}
.cc-modal{max-width:520px;max-height:88vh;overflow:auto}
.cc-title{font-weight:800;font-size:17px;margin-bottom:6px}
.cc-text{font-size:14px;line-height:1.55;color:var(--mut);margin:0 0 14px}
.cc-acts{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cc-btn{border:1.5px solid var(--line);background:var(--card);color:var(--ink);border-radius:10px;padding:10px 16px;font:inherit;font-weight:700;font-size:14px;cursor:pointer}
.cc-btn-primary{background:var(--cta,#b61c1c);border-color:var(--cta,#b61c1c);color:#fff}
.cc-btn-link{border-color:transparent;background:transparent;color:var(--mut);text-decoration:underline;margin-left:auto}
.cc-row{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-top:1px solid var(--line)}
.cc-row input{margin-top:3px;width:18px;height:18px;accent-color:var(--accent)}
.cc-row-tx b{display:block;font-size:14.5px}
.cc-row-tx span{display:block;font-size:13px;color:var(--mut);line-height:1.45}
.cc-modal .cc-acts{margin-top:16px}

/* Consent-Gated Embed (Vimeo) */
.vg{position:absolute;inset:0;display:block;overflow:hidden}
.vg-poster{width:100%;height:100%;object-fit:cover;display:block}
.vg-frame{position:absolute;inset:0;width:100%;height:100%;border:0}
.vg-load{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;background:rgba(20,26,33,.45);color:#fff;font:inherit}
.vg-play{display:flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,.92);color:var(--cta,#b61c1c);font-size:20px}
.vg-load-txt{font-weight:700;font-size:var(--small-size);text-align:center;line-height:1.3}
.vg-load-txt small{display:block;font-weight:400;font-size:var(--small-size);opacity:.85}
/* gatete Embeds in Content-Wrappern korrekt anchorn */
.block-video .video__wrapper,.art-video{position:relative}
.art-video .vg,.block-video .vg{background:#0d1117}
/* Cookie-Hinweis IM Video-Badge (offer-detail .vlabel — rechteckig, kein Play-Dreieck) */
.gvideo .vlabel{display:inline-flex;flex-direction:column;align-items:flex-start;line-height:1.25;border-radius:0;gap:0}
.gvideo .vlabel::before{display:none}
.gvideo .vlabel .vg-cookie-hint{display:block;font-size:var(--small-size);font-weight:400;opacity:.82;margin-top:2px}
/* Videopage: Hinweis als rechteckiges Badge unten links */
.vid-facade .vg-cookie-hint{position:absolute;left:12px;bottom:12px;background:rgba(0,0,0,.62);color:#fff;font-size:var(--small-size);font-weight:600;padding:6px 12px;border-radius:0;pointer-events:none}
/* DSGVO/DSG-Hinweis am Formular-Submit */
.te-privacy{grid-column:1/-1;margin:0 0 6px;font-size:12px;line-height:1.5;color:var(--mut)}
.te-privacy a{color:inherit;text-decoration:underline}
.gs-trust{margin-top:18px;border:1px solid var(--line);border-radius:14px;background:var(--soft);padding:14px 16px}
.gs-trust b{display:block;margin-bottom:6px;font-size:var(--small-size)}
.gs-trust ul{margin:0;padding-left:18px}
.gs-trust li{font-size:var(--small-size);color:var(--txt);line-height:1.55;margin-bottom:4px}

/* ===== Angebots-Detail: Kosten / Leistungen / Optionen / Audio (offer-specs.cfm) ===== */
.kost{width:100%;border-collapse:collapse;font-size:15px}
.kost td{padding:12px 0;border-bottom:1px solid var(--line);vertical-align:top}
.kost tr:last-child td{border-bottom:0}
.kost .kost-price{text-align:right;font-weight:800;white-space:nowrap}
.kost .kost-price small{font-weight:600;color:var(--mut);font-size:13px}
.kost .kost-sub td{padding:14px 0 4px;border-bottom:0;font-weight:700;color:var(--mut);font-size:13px;text-transform:uppercase;letter-spacing:.03em}
.kost-note{color:var(--mut);font-size:13px;margin-top:10px}
.leist{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.leist--3{grid-template-columns:1fr 1fr 1fr}
@media(max-width:640px){.leist,.leist--3{grid-template-columns:1fr;gap:20px}}
@media(min-width:641px) and (max-width:860px){.leist--3{grid-template-columns:1fr 1fr}}
.leist ul{list-style:none;margin:0;padding:0}
.leist li{position:relative;padding:7px 0 7px 26px;font-size:14.5px;color:var(--txt);border-bottom:1px dashed var(--line);line-height:1.5}
.leist li:last-child{border-bottom:0}
.leist li::before{position:absolute;left:0;top:7px;font-weight:800}
.leist .inkl li::before{content:"\2713";color:var(--success)}
.leist .exkl li::before{content:"\2715";color:var(--cta)}
.spec-opt{list-style:none;margin:0;padding:0}
.spec-opt li{position:relative;padding:8px 0 8px 22px;font-size:14.5px;color:var(--txt);border-bottom:1px dashed var(--line);line-height:1.5}
.spec-opt li:last-child{border-bottom:0}
.spec-opt li::before{content:"+";position:absolute;left:0;top:8px;color:var(--accent-text,var(--accent));font-weight:800}
.audio-list{display:flex;flex-direction:column;gap:10px}
.audio-list.audio-2col{display:grid;grid-template-columns:1fr 1fr;column-gap:36px;row-gap:10px}
@media(max-width:640px){.audio-list.audio-2col{display:flex;flex-direction:column}}
.audio-item{position:relative;display:flex;align-items:center;gap:14px}
.audio-btn{flex:0 0 auto;width:44px;height:44px;border:0;border-radius:10px;background:var(--accent);color:#fff;font-size:15px;cursor:pointer;display:grid;place-items:center;transition:background .15s}
.audio-btn:hover{background:var(--accent-d)}
.audio-btn[aria-pressed="true"]{background:var(--cta)}
.audio-title{font-size:14.5px;font-weight:600;color:var(--ink)}
.audio-frame{position:absolute;width:1px;height:1px;overflow:hidden;opacity:.01;pointer-events:none}
.audio-frame[hidden]{display:none}
.praez-note{display:block;margin-top:3px;font-weight:400;font-size:12.5px;color:var(--mut);font-style:italic;line-height:1.4}
/* FAQ-Sektion abgehoben: weiche Panel-Box (konsistent mit .gs-trust) */
.detsec.faqsec{border-top:0;background:var(--soft);border:1px solid var(--line);border-radius:16px;padding:26px 30px;margin-top:30px}
.detsec.faqsec>h2{margin-top:0}
@media(max-width:640px){.detsec.faqsec{padding:22px 20px}}
/* ===== Magazine-Layout fuer sponsored-Angebote (detail-body-magazine.cfm) — Prefix omag- (Kollision mit Blog-.mag-*) ===== */
.omag-mast{padding:22px 0 28px;text-align:center;max-width:820px;margin:0 auto}

.omag-kick--chips{margin-bottom:2px}
.omag-kick--chips .detsec{padding:0;margin:0}
.omag-kick--chips .oc-chips{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}
.omag-h1{letter-spacing:-.03em;margin:12px 0 0}
.omag-stand{font-size:clamp(18px,2.2vw,22px);color:var(--txt);max-width:60ch;margin:16px auto 0;font-style:normal}
.omag-byline{margin-top:14px;font-size:13.5px;color:var(--mut);display:block}
.omag-feat{height:58vh;min-height:380px;border-radius:22px;background:var(--soft);margin-top:6px;overflow:hidden}
.omag-feat-img{width:100%;height:100%;object-fit:cover;display:block}
.omag-stats{display:flex;flex-wrap:wrap;justify-content:center;gap:26px 48px;padding:44px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:42px 0;text-align:center}
.omag-stat{flex:0 0 auto}
.omag-stat b{display:block;font-size:clamp(22px,3vw,36px);font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--ink);white-space:nowrap;max-width:min(88vw,26ch);overflow:hidden;text-overflow:ellipsis}
.omag-stat span{color:var(--mut);font-size:13px;margin-top:8px;display:block}
.omag-body{max-width:760px;margin:0 auto}
.omag-h2{letter-spacing:-.02em;margin:28px 0 var(--h-mb)}
.omag-prose{font-size:17px;line-height:1.7}
.omag-prose ul{margin:10px 0 16px 22px}.omag-prose li{margin-bottom:7px}
/* ── Medien-Block (Bilder + Videos gemischt) ───────────────────────────── */
.block-media{margin:26px 0}
.block-media .media-item{margin:0 0 18px}
.block-media .media-item:last-child{margin-bottom:0}
.block-media img{width:100%;height:auto;display:block;border-radius:12px}
.media-cap{font-size:13.5px;color:var(--mut);margin-top:7px;line-height:1.5}
/* Raster: die Bildunterschrift bleibt beim jeweiligen Bild, darum figure als Zelle */
.media--grid-2,.media--grid-3{display:grid;gap:14px}
.media--grid-2{grid-template-columns:repeat(2,1fr)}
.media--grid-3{grid-template-columns:repeat(3,1fr)}
.media--grid-2 .media-item,.media--grid-3 .media-item{margin:0}
@media (max-width:700px){.media--grid-2,.media--grid-3{grid-template-columns:1fr}}
/* Volle Breite: bricht aus der Textspalte aus, ohne den Fluss zu stoeren */
.media--full{width:100vw;max-width:100vw;margin-left:50%;transform:translateX(-50%)}
/* Bilder sind anklickbar (Lightbox) - das muss man sehen */
.block-media .ref-thumb{cursor:zoom-in}
/* Video-Kachel: Poster + Play-Knopf, kein Player bis zum Klick */
.media-play{position:relative;display:block;width:100%;padding:0;border:0;background:none;cursor:pointer;border-radius:12px;overflow:hidden}
.media-play .media-poster{width:100%;height:auto;display:block;border-radius:12px}
.media-play .media-poster--empty{aspect-ratio:16/9;background:var(--soft)}
.media-play-ic{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:64px;height:64px;border-radius:50%;
  background:rgba(0,0,0,.55);color:##fff;font-size:24px;line-height:64px;text-align:center;pointer-events:none;transition:background .15s}
.media-play:hover .media-play-ic,.media-play:focus-visible .media-play-ic{background:rgba(0,0,0,.75)}
@media (prefers-reduced-motion:reduce){.media-play-ic{transition:none}}

/* ── Angebote-Block ────────────────────────────────────────────────────── */
/* Das Kartenraster selbst kommt aus .mag-offers (geteilt mit dem
   [angebote]-Shortcode) - hier nur der Rahmen um den Block. */
.block-offers{margin:26px 0}
.block-offers-title{margin:0 0 14px}

.omag-specs{max-width:900px;margin:0 auto}
/* Vertikaler Rhythmus wie im Standard-Detail.
   Grund fuer die Sonderregel: dort sind alle .detsec Geschwister in EINEM
   Container, ".detsec:first-child{border-top:0;padding-top:0}" trifft also nur
   die erste. Im Magazin steht jede Sektion allein in ihrem .wrap.omag-specs -
   damit war jede "first-child" und verlor Oberkante UND Trennlinie (gemessen:
   padding-top 0, border-top 0 auf allen acht Abschnitten). Hier zurueckgeholt. */
.omag-specs>.detsec{padding-top:26px;border-top:1px solid var(--line)}
/* Die FAQ-Kachel bringt eigenen Rahmen, Radius und Abstand mit (.detsec.faqsec) -
   eine zusaetzliche Linie waere dort doppelt gemoppelt. */
.omag-specs>.detsec.faqsec{border-top:0}
/* Beraterblock bewusst luftiger als der Rest: er steht zwischen Inhalt und den
   Empfehlungs-Slidern und braucht die Trennung (Wunsch Auftraggeber). */
.omag-berat{margin-top:30px}
.omag-berat>.detsec{padding-top:44px;padding-bottom:44px}
.omag-gal{margin:26px 0}
.omag-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.omag-gallery img{aspect-ratio:4/3;width:100%;height:100%;object-fit:cover;border-radius:12px;background:var(--soft)}
.omag-cta-band{background:linear-gradient(135deg,#20303f,#3f5266);color:#fff;padding:56px 0;margin-top:40px}
.omag-cta-band .omag-h2{color:#fff;text-align:center;margin:0 0 var(--h-mb)}
@media(max-width:760px){.omag-stats{gap:22px 32px}.omag-gallery{grid-template-columns:repeat(2,1fr)}}
/* Keyword-Badges (offer-keywords.cfm) — kleine zentrierte Pills unter "Weitere Angebote" */
.okw-sec{text-align:center}
.okw-lbl{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--mut);margin-bottom:14px}
.okw{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.okw-badge{display:inline-block;background:var(--soft);border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-size:14px;font-weight:600;color:var(--ink)}
/* Magazine-Modus: Header onLoad ausgeblendet + Slide-in bei Scroll; Breadcrumb dezent; Footer collapsed (Postfooter bleibt) */
body.mag-mode header>.section-wrapper:has(.hbar){position:fixed;left:0;right:0;top:0;z-index:80;background:var(--header-bg);transform:translateY(-100%);transition:transform .3s ease;will-change:transform}
body.mag-mode.hdr-in header>.section-wrapper:has(.hbar){transform:translateY(0);box-shadow:0 2px 14px rgba(0,0,0,.08)}
body.mag-mode .omag .crumb-bar{opacity:0;transition:opacity .3s ease}
body.mag-mode.hdr-in .omag .crumb-bar{opacity:1}
/* Footer SEO/GEO-safe collapsed: Inhalt bleibt im DOM (crawlbar) via <details>, nur visuell zu */
body.mag-mode .site-footer .foot-collapse>summary{list-style:none;cursor:pointer;font-weight:700;font-size:var(--footer-size);color:var(--footer-text,#c9ced4);opacity:.9}
body.mag-mode .site-footer .foot-collapse>summary>.wrap{padding-top:18px;padding-bottom:18px}
body.mag-mode .site-footer .foot-collapse>summary::-webkit-details-marker{display:none}
body.mag-mode .site-footer .foot-collapse>summary>.wrap::after{content:" +";opacity:.7}
body.mag-mode .site-footer .foot-collapse[open]>summary>.wrap::after{content:" \2013"}
body.mag-mode .site-footer .foot-collapse>summary:hover{opacity:1}
/* ===== Adaptives Hero-Mosaik (offer-hero.cfm) — global (auch im Angebots-Overlay) ===== */
.det-hero{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:1fr 1fr;gap:8px;border-radius:18px;overflow:hidden;height:46vh;min-height:340px;max-height:520px;position:relative}
.det-hero .dh-cell{position:relative;overflow:hidden;margin:0}
.det-hero img{width:100%;height:100%;object-fit:cover;display:block}
.det-hero button.dh-cell{border:0;padding:0;cursor:pointer;background:none}
.dh-map{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-decoration:none;background-color:#0f766e;background-image:linear-gradient(#ffffff22 1px,transparent 1px),linear-gradient(90deg,#ffffff22 1px,transparent 1px);background-size:22px 22px;color:#fff;transition:filter .15s}
.dh-map:hover{filter:brightness(1.08)}
.dh-map-ico{font-size:28px;line-height:1}
.dh-map-lbl{font-size:13px;font-weight:600;padding:0 10px;text-align:center;text-shadow:0 1px 2px #0004}
.det-hero .vplay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:58px;height:58px;border-radius:50%;background:#000000a6;color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:0 0 0 3px #ffffffcc;pointer-events:none}
.det-hero .allbtn{position:absolute;right:14px;bottom:14px;background:var(--card);color:var(--ink);border:1px solid var(--ink);border-radius:10px;padding:8px 12px;font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap}
.dh-2x2l{grid-area:1/1/3/3}.dh-2x1tl{grid-area:1/1/2/3}.dh-2x1tr{grid-area:1/3/2/5}.dh-2x2r{grid-area:1/3/3/5}.dh-2x1bl{grid-area:2/1/3/3}.dh-2x1br{grid-area:2/3/3/5}
.dh-p11{grid-area:1/1/2/2}.dh-p12{grid-area:1/2/2/3}.dh-p13{grid-area:1/3/2/4}.dh-p14{grid-area:1/4/2/5}
.dh-p21{grid-area:2/1/3/2}.dh-p22{grid-area:2/2/3/3}.dh-p23{grid-area:2/3/3/4}.dh-p24{grid-area:2/4/3/5}
.dh-phc1{background:#8b1a1a}.dh-phc2{background:#1a5276}.dh-phc3{background:#145a32}.dh-phc4{background:#6c3483}.dh-phc5{background:#7e5109}.dh-phc6{background:#0e6655}.dh-phc7{background:#7b241c}.dh-phc8{background:#4a235a}
@media(max-width:640px){.det-hero{height:auto;min-height:0;grid-template-rows:120px 120px}.dh-map-ico{font-size:22px}}
/* Magazine-Feature Fallback (Option C: Bild/Pano zentriert + Blur-BG, kein Upscale) */
.omag-feat{position:relative}
.omag-feat--fb{height:300px;min-height:0;display:flex;align-items:center;justify-content:center;background:#1c1917;overflow:hidden}
.omag-feat-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(28px) brightness(.6);transform:scale(1.25)}
.omag-feat-fgw{position:relative;z-index:1;max-width:92%;max-height:86%;border-radius:12px;overflow:hidden;box-shadow:0 14px 46px #0008;line-height:0}
.omag-feat-fg{max-width:100%;max-height:100%;width:auto;height:auto;display:block}
.omag-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:none;border:0;cursor:pointer;z-index:2;padding:0}
.omag-play .vplay{width:64px;height:64px;border-radius:50%;background:#000000a6;color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px;box-shadow:0 0 0 3px #ffffffcc}
/* kachel-kategorien: Leer-Meldung wenn keine kacheln im JSON */
.kat-empty{text-align:center;color:var(--muted,#6b7280);padding:8px 0 26px;font-size:var(--body-size)}
/* AT Themebar Musik-Drill-down (Container "Musik" -> Musikstile) */
.cat-set{display:contents}
.cat-set[hidden]{display:none}
.cat-drill,.cat-back{background:none;border:0;border-bottom:2px solid transparent;font-family:inherit;line-height:inherit;padding:0 0 10px}
.cat-set-styles:not([hidden]) .cat{animation:catSlideIn .28s ease both}
@keyframes catSlideIn{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}

/* ============================================================
   "Deine Angaben" — kompakte Chip-Leiste ueber der Angebots-Toolbar (§18 UX)
   Chips = <details class="dab"> mit Popover. Feste Leistenhoehe (56px) -> kein CLS,
   kein Ein-/Ausklappen. Theme-Tokens (--accent/--ink/--line/--soft/--card), auto-themed pro Portal.
   Alter Vollblock: git-Tag da-block-alt-2026-10-12.
   ============================================================ */
/* Feldinhalte in den Popovers */
.da-label{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--mut)}
.da-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.da-stepper{display:inline-flex;align-items:center;border:1.5px solid var(--line);border-radius:10px;overflow:hidden}
.dab.is-set .da-stepper{border-color:var(--accent)}
.da-stepper button{border:0;background:transparent;color:var(--ink);width:38px;height:40px;font-size:18px;cursor:pointer}
.da-stepper button:hover{background:color-mix(in srgb,var(--accent) 10%,var(--card))}
.da-v{min-width:54px;text-align:center;font-size:16px;font-weight:700;border-inline:1.5px solid var(--line);font-variant-numeric:tabular-nums}
.da-v.da-empty{color:var(--mut);font-weight:500;font-size:13px}
/* Personen als Eingabefeld: sieht aus wie die bisherige Anzeige, "egal" = Platzhalter */
input.da-v{width:64px;height:40px;padding:0 4px;border-top:0;border-bottom:0;border-radius:0;background:transparent;color:var(--ink);font:inherit;font-size:16px;font-weight:700;text-align:center;outline:0;-moz-appearance:textfield}
input.da-v::placeholder{color:var(--mut);font-weight:500;font-size:13px;opacity:1}
input.da-v:focus{background:color-mix(in srgb,var(--accent) 8%,var(--card))}
.da-stepper:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
.da-unit{font-size:12.5px;color:var(--mut)}
.da-money{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:10px;padding:0 11px;height:40px;max-width:200px}
.dab.is-set .da-money,.da-money:focus-within{border-color:var(--accent)}
.da-cur{font-size:12.5px;font-weight:700;color:var(--mut);margin-right:6px}
.da-money input{border:0;background:transparent;color:var(--ink);font:inherit;font-size:15px;font-weight:700;width:100%;outline:none;font-variant-numeric:tabular-nums}
.da-money input::placeholder{font-weight:500;color:var(--mut)}
.da-seg{display:inline-flex;background:var(--soft);border:1px solid var(--line);border-radius:9px;padding:3px;gap:3px;width:fit-content}
.da-seg button{border:0;background:transparent;color:var(--mut);font:inherit;font-size:12px;font-weight:600;padding:6px 11px;border-radius:6px;cursor:pointer}
.da-seg button[aria-checked="true"]{background:var(--card);color:var(--accent-text,var(--accent));box-shadow:0 1px 3px rgba(0,0,0,.12)}
.da-months{display:flex;flex-wrap:wrap;gap:5px}
.da-months button{border:1.5px solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-size:12px;font-weight:600;padding:5px 9px;border-radius:7px;cursor:pointer}
.da-months button:hover{border-color:var(--accent)}
.da-months button[aria-pressed="true"]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.da-bar input[type="date"]{border:1.5px solid var(--line);border-radius:10px;padding:9px 11px;font:inherit;font-size:14px;color:var(--ink);background:var(--card);max-width:190px}
.da-reset{border:0;background:transparent;color:var(--accent-text,var(--accent));font:inherit;font-size:13px;font-weight:700;cursor:pointer;padding:6px 2px}
.da-reset:hover{text-decoration:underline}
/* Sticky-Kopf: Leiste + Suchbar-Toolbar als EIN sticky-Block unter dem Header.
   Kinder stapeln normal (Leiste oben, Toolbar darunter) -> kein Zwei-Sticky-Konflikt. */
.da-stickytop{position:sticky;top:var(--header-h,78px);z-index:30;background:var(--bg)}
.da-stickytop [data-type="toolbar"]{position:static;top:auto}
/* Die Leiste */
.da-mini{background:var(--card);border-bottom:1px solid var(--line);box-shadow:0 5px 16px rgba(0,0,0,.06)}
.da-mini .wrap{display:flex;align-items:center;gap:10px;height:56px}
.da-mini-lbl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-text,var(--accent));white-space:nowrap}
.da-chips{display:flex;gap:7px;flex:none;flex-wrap:nowrap}
/* Text-Chips (0-Treffer-Screen .nr-da-vals) */
.da-chip{display:inline-flex;align-items:center;gap:6px;background:color-mix(in srgb,var(--accent) 12%,var(--card));color:var(--accent-text,var(--accent));font-size:12.5px;font-weight:600;padding:6px 11px;border-radius:999px;white-space:nowrap}
.da-chip.da-empty{background:var(--soft);color:var(--mut);font-weight:500}
/* Chip + Popover */
.dab{position:relative;flex:none}
.dab>summary{list-style:none}
.dab>summary::-webkit-details-marker{display:none}
.dab-chip{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 12px;border:1.5px solid var(--line);border-radius:999px;
  background:var(--card);font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;white-space:nowrap;user-select:none}
.dab-chip:hover,.dab[open]>.dab-chip{border-color:var(--accent)}
.dab-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.dab-chip i{color:var(--accent-text,var(--accent));font-size:12px;width:14px;text-align:center;display:inline-block}
.dab-l{color:var(--mut);font-weight:600}
.dab-v{font-weight:700}
.dab-car{font-size:10px;color:var(--mut)}
.dab.is-set>.dab-chip{background:color-mix(in srgb,var(--accent) 12%,var(--card));border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}
.dab.is-set>.dab-chip .dab-v{color:var(--accent-text,var(--accent))}
.dab-hint{font-size:12px;color:var(--mut);white-space:nowrap}
.dab-clear{flex:none;border:0;background:transparent;color:var(--accent-text,var(--accent));font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap;padding:6px 2px}
.dab-clear:hover{text-decoration:underline}
body[data-daset="1"] .dab-hint,body:not([data-daset="1"]) .dab-clear{display:none}
.dab-pop{position:absolute;top:calc(100% - -8px);left:0;z-index:60;width:340px;background:var(--card);border:1px solid var(--line);
  border-radius:14px;box-shadow:0 16px 40px rgba(0,0,0,.16);padding:14px 16px 12px;display:flex;flex-direction:column;gap:12px}
.dab--right .dab-pop{left:auto;right:0}
.dab-pop-h{display:flex;justify-content:space-between;align-items:center;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--mut)}
.dab-x{display:none;border:0;background:transparent;font-size:22px;line-height:1;color:var(--mut);cursor:pointer;padding:0 4px}
.dab-pop-f{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:10px}
.dab-pop-f--end{justify-content:flex-end}
.dab-ok{border:0;background:var(--accent);color:var(--on-accent);font:inherit;font-size:13px;font-weight:700;padding:8px 16px;border-radius:9px;cursor:pointer}
.dab-soon{margin:0;font-size:13px;line-height:1.45;color:var(--txt)}
/* "Wo": Typeahead (Orte / Regionen / Kantone) + Umkreis */
.dab--wo .dab-pop{width:400px}
.wo-in{display:flex;align-items:center;gap:9px;border:1.5px solid var(--line);border-radius:10px;padding:0 11px;height:42px}
.wo-in:focus-within,.dab.is-set .wo-in{border-color:var(--accent)}
.wo-in i{color:var(--mut);font-size:13px}
.wo-in input{border:0;outline:none;background:transparent;font:inherit;font-size:15px;font-weight:700;color:var(--ink);flex:1;min-width:0}
.wo-in input::placeholder{font-weight:500;color:var(--mut)}
.wo-clr{border:0;background:transparent;color:var(--mut);font-size:20px;line-height:1;cursor:pointer;padding:0 2px}
.wo-sug{border:1px solid var(--line);border-radius:10px;overflow:auto;max-height:300px;margin-top:-4px}
.wo-g{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--mut);background:var(--soft);padding:5px 12px}
.wo-o{display:flex;align-items:center;gap:10px;padding:8px 12px;font-size:13.5px;cursor:pointer;color:var(--ink)}
.wo-o:hover,.wo-o.is-act{background:color-mix(in srgb,var(--accent) 10%,var(--card))}
.wo-o i{color:var(--accent-text,var(--accent));width:14px;text-align:center;font-size:12px;flex:none}
.wo-o b{font-weight:800}
.wo-o small{color:var(--mut);font-size:11.5px;margin-left:4px}
.wo-t{flex:1;min-width:0}
.wo-c{font-size:11.5px;font-weight:700;color:var(--mut);background:var(--soft);border-radius:999px;padding:1px 8px;flex:none}
.wo-none{padding:10px 12px;font-size:13px;color:var(--mut)}
.wo-rad{display:flex;flex-direction:column;gap:7px}
.wo-rad[hidden]{display:none}
.wo-lbl{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--mut)}
.wo-rad .da-seg{width:100%}
.wo-rad .da-seg button{flex:1;white-space:nowrap;padding:6px 4px}
.wo-n{font-weight:500;color:var(--mut);font-size:11px}
.wo-cb{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;line-height:1.35;color:var(--txt);cursor:pointer}
.wo-cb input{margin-top:2px;accent-color:var(--accent)}
/* Regions-Facette: von "Wo" ersetzt; sichtbar nur bei abgeschaltetem DA-Feature */
body:not([data-dabrief="off"]) .facet--wohidden{display:none}
/* Trefferliste mit "Wo": Abschnitts-Titel "In der Naehe" / "Schweizweit buchbar & mobil" */
.wo-sec{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:6px 0 2px;font-size:17px;font-weight:800;color:var(--ink)}
.wo-sec i{color:var(--accent-text,var(--accent));font-size:15px}
.wo-sec-n{font-size:12px;font-weight:700;color:var(--mut);background:var(--soft);border-radius:999px;padding:2px 9px}
.wo-sec-s{flex-basis:100%;font-size:13px;font-weight:500;color:var(--mut)}
.wo-sec--ch{margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}
.wo-sec--near+.wo-sec--ch{margin-top:6px}
@media(max-width:900px){
  .da-mini-lbl,.dab-hint{display:none}
  .da-mini .wrap{overflow-x:auto;scrollbar-width:none}
  .da-mini .wrap::-webkit-scrollbar{display:none}
  .dab-l{color:var(--ink)}
  .dab:not(.is-set) .dab-v{display:none}
  .dab.is-set .dab-l{display:none}
  /* Popover als Panel von unten */
  .dab-pop{position:fixed;left:0;right:0;bottom:0;top:auto;width:auto;max-height:85vh;overflow:auto;
    border-radius:18px 18px 0 0;padding:16px 18px 22px;box-shadow:0 -12px 40px rgba(0,0,0,.25)}
  .dab--right .dab-pop{left:0;right:0}
  .dab--wo .dab-pop{width:auto}
  .dab-x{display:inline}
  .dab[open]::before{content:"";position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:55}
}
/* Info-Hinweis in der Filterspalte (unter dem Titel): solange keine Angabe gesetzt ist (data-daset=0).
   Nie bei Feature-off. Liegt in der position:fixed-Sidebar -> beeinflusst deren Position/Hoehe nicht. */
.da-hint{display:none;margin:2px 0 14px;padding:10px 12px;font-size:12.5px;line-height:1.4;color:var(--txt);cursor:pointer;
  background:color-mix(in srgb,var(--accent) 5%,var(--card));border:1px dashed color-mix(in srgb,var(--accent) 45%,var(--line));border-radius:12px;transition:background .15s,border-color .15s}
.da-hint:hover{background:color-mix(in srgb,var(--accent) 12%,var(--card));border-color:var(--accent)}
.da-hint b{color:var(--accent-text,var(--accent));font-weight:700}
.da-hint>.fa-filter{color:var(--accent-text,var(--accent));font-size:16px;flex:none;line-height:1}
body[data-daset="0"] .da-hint{display:flex;align-items:center;gap:10px}
body[data-dabrief="off"] .da-hint{display:none!important}
/* "Deine Angaben"-Feature-Toggle (window.daToggle / sessionStorage).
   Default (kein Attr oder "on"): Leiste aktiv, alte Sidebar-Facetten aus.
   "off": Leiste aus, Personen/Budget an Alt-Position der Filterspalte sichtbar. */
.da-sidefacets{display:none}
body[data-dabrief="off"] .da-sidefacets{display:block}
body[data-dabrief="off"] #daMini{display:none!important}

/* ============================================================
   Tabs/Reiter-Block (CSS-only, CSP-konform) — views/blocks/tabs.cfm
   ============================================================ */
.cms-tabs{--cms-tab-accent:var(--accent,#2f6d5f);--cms-tab-line:var(--line,#e2e6dd)}
.cms-tabs-heading{margin:0 0 var(--h-mb)}
.cms-tab-radio{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.cms-tab-nav{display:flex;flex-wrap:wrap;gap:.25rem;border-bottom:2px solid var(--cms-tab-line);margin:0}
.cms-tab-label{padding:.7rem 1.15rem;cursor:pointer;font-weight:600;color:var(--mut,#6d7a6a);border:1px solid transparent;border-bottom:none;border-radius:8px 8px 0 0;margin-bottom:-2px;transition:color .15s,background .15s,border-color .15s;-webkit-tap-highlight-color:transparent;user-select:none}
.cms-tab-label:hover{color:var(--cms-tab-accent)}
.cms-tab-panels{padding:1.5rem 0 0}
.cms-tab-panel{display:none}
.cms-tab-panel>:first-child{margin-top:0}
.cms-tab-panel>:last-child{margin-bottom:0}
.cms-tabs .cms-tab-radio:focus-visible~.cms-tab-nav{outline:2px solid var(--cms-tab-accent);outline-offset:3px;border-radius:4px}
@keyframes cms-tab-fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.cms-tab-radio:nth-of-type(1):checked~.cms-tab-nav .cms-tab-label:nth-of-type(1),
.cms-tab-radio:nth-of-type(2):checked~.cms-tab-nav .cms-tab-label:nth-of-type(2),
.cms-tab-radio:nth-of-type(3):checked~.cms-tab-nav .cms-tab-label:nth-of-type(3),
.cms-tab-radio:nth-of-type(4):checked~.cms-tab-nav .cms-tab-label:nth-of-type(4),
.cms-tab-radio:nth-of-type(5):checked~.cms-tab-nav .cms-tab-label:nth-of-type(5),
.cms-tab-radio:nth-of-type(6):checked~.cms-tab-nav .cms-tab-label:nth-of-type(6),
.cms-tab-radio:nth-of-type(7):checked~.cms-tab-nav .cms-tab-label:nth-of-type(7),
.cms-tab-radio:nth-of-type(8):checked~.cms-tab-nav .cms-tab-label:nth-of-type(8),
.cms-tab-radio:nth-of-type(9):checked~.cms-tab-nav .cms-tab-label:nth-of-type(9),
.cms-tab-radio:nth-of-type(10):checked~.cms-tab-nav .cms-tab-label:nth-of-type(10){color:var(--cms-tab-accent);background:#fff;border-color:var(--cms-tab-line);border-bottom-color:#fff}
.cms-tab-radio:nth-of-type(1):checked~.cms-tab-panels .cms-tab-panel:nth-of-type(1),
.cms-tab-radio:nth-of-type(2):checked~.cms-tab-panels .cms-tab-panel:nth-of-type(2),
.cms-tab-radio:nth-of-type(3):checked~.cms-tab-panels .cms-tab-panel:nth-of-type(3),
.cms-tab-radio:nth-of-type(4):checked~.cms-tab-panels .cms-tab-panel:nth-of-type(4),
.cms-tab-radio:nth-of-type(5):checked~.cms-tab-panels .cms-tab-panel:nth-of-type(5),
.cms-tab-radio:nth-of-type(6):checked~.cms-tab-panels .cms-tab-panel:nth-of-type(6),
.cms-tab-radio:nth-of-type(7):checked~.cms-tab-panels .cms-tab-panel:nth-of-type(7),
.cms-tab-radio:nth-of-type(8):checked~.cms-tab-panels .cms-tab-panel:nth-of-type(8),
.cms-tab-radio:nth-of-type(9):checked~.cms-tab-panels .cms-tab-panel:nth-of-type(9),
.cms-tab-radio:nth-of-type(10):checked~.cms-tab-panels .cms-tab-panel:nth-of-type(10){display:block;animation:cms-tab-fade .2s ease}
@media(prefers-reduced-motion:reduce){.cms-tab-panel{animation:none!important}}
@media(max-width:560px){.cms-tab-label{padding:.6rem .8rem;font-size:.95rem}.cms-tab-panels{padding-top:1.1rem}}

/* ============================================================
   Trenner-Block (horizontal) — views/blocks/divider.cfm
   ============================================================ */
.cms-divider{border:0;height:0;width:100%;margin:0}
.cms-divider--narrow{max-width:160px;margin-left:auto;margin-right:auto}
.cms-divider--line{border-top:1px solid var(--line,#e2e6dd)}
.cms-divider--thick{border-top:3px solid var(--line,#e2e6dd)}
.cms-divider--dashed{border-top:1px dashed var(--line-strong,#c2cdb2)}
.cms-divider--dots{height:6px;background:radial-gradient(circle,var(--line-strong,#c2cdb2) 1.5px,transparent 2px);background-size:14px 6px;background-position:center}
.cms-divider--gradient{height:2px;background:linear-gradient(90deg,transparent,var(--accent,#2f6d5f),transparent)}

/* Tabs mit Bild (links/rechts, eckig/abgerundet/rund) */
.cms-tab-inner{display:flex;gap:1.75rem;align-items:center;flex-wrap:wrap}
.cms-tab-inner--img-right{flex-direction:row-reverse}
.cms-tab-media{flex:0 0 300px;max-width:300px}
.cms-tab-text{flex:1 1 320px;min-width:0}
.cms-tab-text>:first-child{margin-top:0}
.cms-tab-text>:last-child{margin-bottom:0}
.cms-tab-img{width:100%;height:auto;display:block}
.cms-tab-img.is-square{border-radius:0}
.cms-tab-img.is-rounded{border-radius:16px}
.cms-tab-img.is-circle{border-radius:50%;aspect-ratio:1/1;object-fit:cover}
@media(max-width:640px){.cms-tab-inner{gap:1.1rem}.cms-tab-media{flex-basis:100%;max-width:240px;margin:0 auto}}

/* ============================================================
   Cards: optionale vertikale Trennlinie zwischen Karten
   (responsive via Clip-Trick: linke Spalte je Zeile ohne Linie)
   ============================================================ */
.cards--vsep{overflow:hidden}
.cards--vsep>*{box-shadow:-1px 0 0 0 var(--line,#e2e6dd)}

/* Gallery-Slider (Layout "slider" im Gallery-Block) */
.gallery-slider{width:100%}
.gallery-slider .swiper-slide{height:auto}
.gallery-slider .gallery__item{margin:0;height:100%}
.gallery-slider .gallery__item img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:14px;display:block}
.gallery-slider figcaption{margin-top:.5rem;font-size:.9rem;color:var(--mut,#6d7a6a);text-align:center}

/* ── SEO-Intro: Themen-Linkkarten (data_type="seo") ───────────────────────── */
.seo-topics{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin:26px 0 0;padding:0;list-style:none}
.seo-topic{display:flex;align-items:center;gap:15px;padding:16px 18px;background:var(--card,#f7f9f2);border:1px solid var(--line,#d3dbc9);border-radius:var(--radius,14px);color:var(--ink,#23342a);text-decoration:none;transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}
.seo-topic:hover,.seo-topic:focus-visible{border-color:var(--accent,#2f6d5f);transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.07)}
.seo-topic-ic{flex:0 0 auto;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:var(--soft,#eef3e7);color:var(--accent-text,var(--accent,#2f6d5f));font-size:18px}
.seo-topic-tx{flex:1 1 auto;font-weight:600;line-height:1.32}
.seo-topic-arr{flex:0 0 auto;color:var(--mut,#6d7a6a);font-size:15px;transition:transform .16s ease,color .16s ease}
.seo-topic:hover .seo-topic-arr,.seo-topic:focus-visible .seo-topic-arr{color:var(--accent-text,var(--accent,#2f6d5f));transform:translateX(4px)}
@media (prefers-reduced-motion:reduce){.seo-topic,.seo-topic-arr{transition:none}}
/* Split-Variante (Custom-HTML, Startseite 2026-10-15): Text links, Themenlinks als ruhige Liste rechts.
   Markup: .seo-split > .seo-split-tx (h2 + p.answer-lead) + .seo-topics (unveraenderte a.seo-topic) */
.seo-split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,5vw,80px);align-items:center}
.seo-split-tx h2{margin-top:0}
.seo-split-tx p:last-child{margin-bottom:0}
.seo-split .seo-topics{display:block;margin:0;border-top:1px solid var(--line,#e6e8ea)}
.seo-split .seo-topic{gap:14px;padding:14px 4px;background:none;border:0;border-bottom:1px solid var(--line,#e6e8ea);border-radius:0;box-shadow:none;transform:none;text-decoration:none}
.seo-split .seo-topic:hover,.seo-split .seo-topic:focus-visible{box-shadow:none;transform:none;border-color:var(--line,#e6e8ea)}
.seo-split .seo-topic *{text-decoration:none}
.seo-split .seo-topic:hover .seo-topic-tx,.seo-split .seo-topic:focus-visible .seo-topic-tx{color:var(--accent-text,var(--accent,#2f6d5f))}
.seo-split .seo-topic-ic{width:40px;height:40px;font-size:16px}
@media (max-width:900px){.seo-split{grid-template-columns:minmax(0,1fr);gap:28px}}

/* ── Ads-Slider: horizontales Auto-Marquee (Anlass-/Themen-Landingpages) ──── */
.ads-slider{position:relative;overflow:hidden;margin-top:8px}
.ads-slider::before,.ads-slider::after{content:"";position:absolute;top:0;bottom:0;width:56px;z-index:2;pointer-events:none}
.ads-slider::before{left:0;background:linear-gradient(90deg,var(--bg,#eef1ea),rgba(238,241,234,0))}
.ads-slider::after{right:0;background:linear-gradient(270deg,var(--bg,#eef1ea),rgba(238,241,234,0))}
.ads-track{display:flex;width:max-content;animation:ads-scroll 60s linear infinite;will-change:transform}
.ads-slider:hover .ads-track,.ads-slider:focus-within .ads-track{animation-play-state:paused}
@keyframes ads-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.ads-card{flex:0 0 auto;width:212px;margin-right:16px;display:flex;flex-direction:column;background:var(--card,#fff);border:1px solid var(--line,#d3dbc9);border-radius:var(--radius,14px);overflow:hidden;text-decoration:none;transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}
.ads-card:hover,.ads-card:focus-visible{border-color:var(--accent,#2f6d5f);transform:translateY(-3px);box-shadow:0 8px 22px rgba(28,45,37,.09)}
.ads-card-img{display:block;aspect-ratio:16/10;background:var(--soft,#eef3e7)}
.ads-card-img svg{display:block;width:100%;height:100%}
.ads-card-bd{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px}
.ads-card-tx{font-weight:650;font-size:var(--small-size);line-height:1.25;color:var(--ink,#23342a)}
.ads-card-arr{flex:0 0 auto;color:var(--mut,#6d7a6a);transition:transform .16s ease,color .16s ease}
.ads-card:hover .ads-card-arr{color:var(--accent-text,var(--accent,#2f6d5f));transform:translateX(3px)}
@media (prefers-reduced-motion:reduce){.ads-track{animation:none;overflow-x:auto;max-width:100%;padding-bottom:8px}.ads-slider{overflow:visible}}

/* ── Tag-Cloud beliebte Suchbegriffe (style=drift|marquee|pop|wave|aurora) ──── */
.tagcloud{margin-top:8px}
.tagcloud .t{display:inline-block;color:var(--ink,#23342a);text-decoration:none;white-space:nowrap;font-weight:600;line-height:1.2;transition:color .18s ease,transform .18s ease}
.tagcloud .t:hover{color:var(--accent-text,var(--accent,#2f6d5f))}
.tc-w1{font-size:.92rem;font-weight:500}
.tc-w2{font-size:1.05rem}
.tc-w3{font-size:1.3rem;font-weight:600}
.tc-w4{font-size:1.6rem;font-weight:700}
.tc-w5{font-size:2rem;font-weight:800}
/* drift */
.tc-drift{position:relative;height:300px;overflow:hidden}
.tc-drift .t{position:absolute;left:var(--x,50%);top:var(--y,50%);will-change:transform;animation:tc-drift var(--d,16s) ease-in-out var(--dl,0s) infinite alternate}
@keyframes tc-drift{from{transform:translate(0,0) rotate(-2deg)}to{transform:translate(var(--dx,12px),var(--dy,-14px)) rotate(2deg)}}
/* marquee */
.tc-marquee{display:flex;flex-direction:column;gap:16px;padding:8px 0}
.tc-marquee .tc-row{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.tc-marquee .tc-track{display:flex;width:max-content;gap:12px;animation:tc-mscroll 46s linear infinite}
.tc-marquee .tc-r2 .tc-track{animation-duration:56s;animation-direction:reverse}
.tc-marquee:hover .tc-track,.tc-marquee:focus-within .tc-track{animation-play-state:paused}
.tc-marquee .t{padding:8px 16px;border:1px solid var(--line,#d3dbc9);border-radius:999px;background:var(--soft,#eef3e7)}
@keyframes tc-mscroll{to{transform:translateX(-50%)}}
/* pop */
.tc-pop{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;padding:26px 20px}
.tc-pop .t{padding:5px 11px;border-radius:12px;opacity:0;transform:scale(.5);animation:tc-pop .5s cubic-bezier(.34,1.56,.64,1) var(--dl,0s) forwards,tc-bob 5s ease-in-out calc(var(--dl,0s) + .6s) infinite}
.tc-pop .t:hover{transform:translateY(-4px) scale(1.08)}
@keyframes tc-pop{to{opacity:1;transform:scale(1)}}
@keyframes tc-bob{0%,100%{translate:0 0}50%{translate:0 -6px}}
/* wave */
.tc-wave{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 12px;padding:26px 20px}
.tc-wave .t{transform-origin:center;animation:tc-breathe 3.6s ease-in-out var(--dl,0s) infinite}
.tc-wave .t:hover{scale:1.14}
@keyframes tc-breathe{0%,100%{opacity:.55;scale:.94}50%{opacity:1;scale:1.04}}
/* aurora */
.tc-aurora{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:9px 10px;padding:30px 20px;overflow:hidden;isolation:isolate;border-radius:16px}
.tc-aurora::before,.tc-aurora::after{content:"";position:absolute;width:55%;height:130%;border-radius:50%;filter:blur(60px);opacity:.4;z-index:-1;animation:tc-aurora 22s ease-in-out infinite}
.tc-aurora::before{background:radial-gradient(circle,var(--accent,#2f6d5f),transparent 60%);top:-30%;left:-8%}
.tc-aurora::after{background:radial-gradient(circle,#7d3d5c,transparent 60%);bottom:-30%;right:-8%;animation-delay:-11s}
.tc-aurora .t{padding:8px 15px;border-radius:999px;background:color-mix(in srgb,var(--card,#fff) 60%,transparent);border:1px solid var(--line,#d3dbc9);animation:tc-floaty var(--d,7s) ease-in-out var(--dl,0s) infinite alternate}
@keyframes tc-aurora{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(8%,6%) scale(1.15)}}
@keyframes tc-floaty{from{transform:translateY(0)}to{transform:translateY(-9px)}}
@media (prefers-reduced-motion:reduce){.tagcloud .t,.tc-marquee .tc-track{animation:none!important}.tc-pop .t{opacity:1;transform:none}.tc-wave .t{opacity:1;scale:1}.tc-drift{height:auto;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;padding:18px}.tc-drift .t{position:static}}

/* ===== kachel-kategorien-modern (kkm) =====
   Bento-Raster statt Slider: alle Kategorien auf einen Blick, mit Hierarchie
   (1 grosse Leitkachel, breite Akzente, Rest gleichmaessig). Container kommt
   aus der Section (CMS). Interaktion rein per CSS -> CSP-safe, kein JS. */
.kkm-grid{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:150px;grid-auto-flow:dense;gap:14px}
.kkm-tile{position:relative;display:block;height:100%;overflow:hidden;border-radius:18px;color:#fff;text-decoration:none;background:var(--soft);isolation:isolate;transition:transform .3s cubic-bezier(.2,.7,.3,1),box-shadow .3s}
.kkm-tile--hero{grid-column:span 2;grid-row:span 2}
.kkm-tile--wide{grid-column:span 2}
.kkm-tile:hover,.kkm-tile:focus-visible{transform:translateY(-4px);box-shadow:0 18px 38px var(--shadow-color)}
.kkm-tile:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

.kkm-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.3,1)}
.kkm-tile:hover .kkm-bg{transform:scale(1.08)}
.kkm-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(12,18,26,.9),rgba(12,18,26,.25) 52%,rgba(12,18,26,.05));transition:opacity .3s}
.kkm-tile:hover::after{opacity:.88}
.kkm-tile--plain{background:linear-gradient(135deg,var(--accent),var(--accent-d))}
.kkm-tile--plain::after{background:linear-gradient(to top,rgba(12,18,26,.55),transparent 72%)}

/* Titelzeile: Name + Pfeil, der beim Hover hereinfaehrt */
.kkm-tx{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;align-items:flex-end;gap:10px;padding:16px 18px;transition:transform .3s cubic-bezier(.2,.7,.3,1)}
.kkm-tile:hover .kkm-tx{transform:translateY(-2px)}
.kkm-name{flex:1 1 auto;min-width:0;font-family:var(--disp);font-weight:800;font-size:var(--h4-size);line-height:1.15;text-shadow:0 2px 10px rgba(0,0,0,.55);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.kkm-tile--hero .kkm-name{font-size:var(--h3-size)}
.kkm-go{flex:0 0 auto;font-size:var(--h4-size);line-height:1;opacity:0;transform:translateX(-6px);transition:opacity .25s,transform .25s}
.kkm-tile:hover .kkm-go,.kkm-tile:focus-visible .kkm-go{opacity:1;transform:translateX(0)}

/* Anzahl als Glas-Pille oben rechts */
.kkm-count{position:absolute;top:12px;right:12px;z-index:3;font-size:var(--small-size);font-weight:800;line-height:1;padding:6px 11px;border-radius:999px;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(6px);text-shadow:0 1px 4px rgba(0,0,0,.35)}

/* Lichtreflex, der beim Hover diagonal ueberstreicht */
.kkm-shine{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(115deg,transparent 38%,rgba(255,255,255,.26) 50%,transparent 62%);transform:translateX(-120%);transition:transform .75s cubic-bezier(.2,.7,.3,1)}
.kkm-tile:hover .kkm-shine{transform:translateX(120%)}

/* Beliebtheit: feiner Balken am unteren Rand (5 statische Stufen, CSP-safe) */
.kkm-meter{position:absolute;left:0;bottom:0;z-index:3;height:3px;background:var(--accent);opacity:.9;transition:height .25s,opacity .25s}
.kkm-m1{width:12%}.kkm-m2{width:30%}.kkm-m3{width:50%}.kkm-m4{width:74%}.kkm-m5{width:100%}
.kkm-tile:hover .kkm-meter{height:5px;opacity:1}

/* Aufklapper: ueberzaehlige Kacheln sind zugeklappt (CSS-only, kein JS) */
.kkm-more-cb{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.kkm-tile--extra{display:none}
.kkm-more-cb:checked ~ .kkm-grid .kkm-tile--extra{display:block}
.kkm-more{display:flex;align-items:center;justify-content:center;gap:8px;margin:16px auto 0;width:max-content;padding:11px 22px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink);font-size:var(--small-size);font-weight:700;cursor:pointer;transition:.18s}
.kkm-more:hover{border-color:var(--accent);color:var(--accent-text,var(--accent))}
.kkm-more-b{display:none}
.kkm-more-cb:checked ~ .kkm-more .kkm-more-a{display:none}
.kkm-more-cb:checked ~ .kkm-more .kkm-more-b{display:inline}

@media(max-width:1180px){.kkm-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:900px){
  .kkm-grid{grid-template-columns:repeat(3,1fr);grid-auto-rows:132px;gap:11px}
  .kkm-tx{padding:13px 14px}
}
@media(max-width:560px){
  .kkm-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:120px;gap:9px}
  .kkm-tile--hero{grid-column:span 2;grid-row:span 1}
}
@media(prefers-reduced-motion:reduce){.kkm-tile,.kkm-bg,.kkm-tx,.kkm-go,.kkm-shine,.kkm-meter{transition:none}.kkm-shine{display:none}}
/* ============================================================
   Entdecken (customincludes/entdecken): Kopf + CSS-only-Reiter
   (Anlass/Kategorie/Region) + Karten-Slider (.trow-slider--foot)
   + Link-Karten. Reiter ueber Radio-Buttons (kein JS, CSP §16);
   inaktive Panels bleiben im Layout (visibility), damit
   blueprint-ui.js die Slider korrekt vermisst.
   calc() nur mit Subtraktion (YUI-Minify-Falle).
   ============================================================ */
.ent{position:relative}
/* Radios fix im Viewport: der Klick aufs Label fokussiert das Radio - laege es oben im Block
   ausserhalb des Sichtbereichs, wuerde der Browser dorthin scrollen (Block "springt"). */
.ent-r{position:fixed;top:50%;left:0;width:1px;height:1px;margin:0;opacity:0;pointer-events:none}
.ent-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:28px}
.ent-intro{display:flex;flex-direction:column;max-width:640px}
.ent-intro h2{margin:0;text-wrap:balance}
.ent-intro .lead{margin-top:10px;text-wrap:pretty}
.ent-tabs{display:flex;gap:4px;padding:4px;background:var(--soft);border:1px solid var(--line);border-radius:10px}
.ent-tab{font-size:var(--btn-size);font-weight:700;line-height:1;padding:11px 18px;border-radius:7px;cursor:pointer;white-space:nowrap;color:var(--mut);user-select:none;transition:background .15s,color .15s,box-shadow .15s}
.ent-tab:hover{color:var(--accent-text,var(--accent))}
.ent-r--anlass:checked~.ent-head .ent-tab--anlass,
.ent-r--kategorie:checked~.ent-head .ent-tab--kategorie,
.ent-r--region:checked~.ent-head .ent-tab--region,
.ent-r--filter:checked~.ent-head .ent-tab--filter{background:var(--card);color:var(--accent-text,var(--accent));box-shadow:0 0 0 1px var(--line)}
.ent-r--anlass:focus-visible~.ent-head .ent-tab--anlass,
.ent-r--kategorie:focus-visible~.ent-head .ent-tab--kategorie,
.ent-r--region:focus-visible~.ent-head .ent-tab--region,
.ent-r--filter:focus-visible~.ent-head .ent-tab--filter{outline:2px solid var(--accent);outline-offset:2px}
/* Alle Panels im selben Grid-Feld: Hoehe = groesstes Panel, beim Reiterwechsel bleibt alles
   darunter (Fussleiste, Themenkarten) an derselben Stelle. Inaktive bleiben im Layout
   (visibility), damit blueprint-ui.js die Slider korrekt vermisst. */
.ent-panels{display:grid}
.ent-panel{grid-area:1/1;min-width:0;visibility:hidden;pointer-events:none}
.ent-r--anlass:checked~.ent-panels .ent-panel--anlass,
.ent-r--kategorie:checked~.ent-panels .ent-panel--kategorie,
.ent-r--region:checked~.ent-panels .ent-panel--region,
.ent-r--filter:checked~.ent-panels .ent-panel--filter{visibility:visible;pointer-events:auto}
.ent .trow-slider{margin:0}
/* spezifischer als body.cards-v1 .ts-track (padding-bottom 30px) - sonst grosse Luecke ueber der Fusszeile */
.ent .trow-slider .ts-track{gap:16px;padding:4px 0 6px;align-items:flex-start}
.ent .ts-track>.ent-card{flex:0 0 calc((100% - 64px) / 5)}
.ent .ts-foot{padding:14px 0 0}
.ent-card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;color:var(--ink);text-decoration:none;transition:box-shadow .2s,transform .2s}
.ent-card:hover{box-shadow:0 10px 26px rgba(0,0,0,.08);transform:translateY(-2px)}
.ent-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ent-card-img{display:block;aspect-ratio:16/10;background:var(--soft);overflow:hidden}
.ent-card-img img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s}
.ent-card:hover .ent-card-img img{transform:scale(1.04)}
.ent-card-bd{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px}
.ent-card-tx{font-size:var(--card-title-size);font-weight:600;line-height:1.3;min-width:0}
.ent-card-arr{flex:none;transition:transform .2s,color .2s}
.ent-card-n{color:var(--mut);font-weight:500;font-size:var(--small-size);white-space:nowrap}
.ent-card:hover .ent-card-arr{transform:translateX(3px);color:var(--accent-text,var(--accent))}
.ent-topics{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:40px}
.ent-topic{display:flex;align-items:center;gap:14px;padding:18px 20px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);color:var(--accent-text,var(--accent));text-decoration:none;transition:border-color .15s,box-shadow .15s}
.ent-topic:hover{border-color:var(--accent);box-shadow:0 6px 18px rgba(0,0,0,.06)}
.ent-topic:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ent-topic-ic{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:color-mix(in srgb,var(--accent) 12%,var(--card))}
.ent-topic-tx{flex:1;min-width:0;font-size:var(--card-title-size);font-weight:500;line-height:1.4}
.ent-topic-arr{flex:none;transition:transform .2s}
.ent-topic:hover .ent-topic-arr{transform:translateX(3px)}
@media(max-width:1100px){.ent .ts-track>.ent-card{flex-basis:calc((100% - 48px) / 4)}}
@media(max-width:860px){.ent .ts-track>.ent-card{flex-basis:calc((100% - 32px) / 3)}}
@media(max-width:700px){
  .ent-head{align-items:flex-start}
  .ent-tabs{width:100%;overflow-x:auto;scrollbar-width:none}
  .ent-tab{flex:1;text-align:center;padding:11px 12px}
}
@media(max-width:600px){.ent .ts-track>.ent-card{flex-basis:72%}}
@media(prefers-reduced-motion:reduce){.ent-card,.ent-card-img img,.ent-card-arr,.ent-topic,.ent-topic-arr,.ent-tab{transition:none}}

/* Beratungsband (customincludes/beratung), Variante A: h2-Titel, Standard-Schriftgrößen, Fotos links, Button rechts */
.beratung .cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:32px;align-items:center}
.beratung .btnr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center}
.beratung .avs{display:flex;align-items:center}
.beratung .avs .av-lg{display:block;width:104px;height:104px;border-radius:50%;object-fit:cover;border:2px solid var(--card);margin-right:-16px}
.beratung .vk{display:flex;align-items:center;gap:48px}
.beratung .vk .avs{flex:none}
.beratung .av-solo{display:block;width:200px;height:200px;border-radius:50%;object-fit:cover}
.beratung .grp{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:10px}
.beratung .map{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:200px;border-radius:10px;background:var(--soft);color:var(--accent);text-align:center;line-height:1.4}
.beratung h2{margin:0 0 6px}
.beratung .tel{display:block;font-weight:700;color:var(--accent);text-decoration:underline}
.beratung .mail{color:var(--accent);text-decoration:underline;word-break:break-all}
.beratung .cta{display:inline-block;background:var(--cta,#b61c1c);color:var(--on-accent,#fff);font-weight:700;padding:10px 16px;border-radius:8px;text-decoration:none;white-space:nowrap}
@media (max-width:820px){.beratung .cols,.beratung .btnr{grid-template-columns:minmax(0,1fr)}}
@media (max-width:560px){.beratung .vk{flex-direction:column;align-items:flex-start;gap:20px}}
/* Abstand zwischen den Blöcken (Beratung auf Topkat-Seiten) statt eigener Section */
.beratung-gap{padding-block:clamp(40px,6vw,72px)}
/* Beratung: SEO-Standard bleibt im HTML (Crawler), ist aber visuell versteckt und rendert keine Karte;
   der Live-Zustand ersetzt ihn beim Scrollen. Mindesthöhe verhindert den Layout-Sprung. */
.beratung{position:relative;min-height:300px}
.beratung-seo{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
