
  :root{
    --ivory:#f5f2ea;
    --ivory-deep:#ece7db;
    --ink:#211c15;
    --tobacco:#54381f;
    --tobacco-deep:#422c18;
    --cream:#f3ecdd;
    --muted:#6f6353;
    --muted-cream:#cbbda6;
    --brass:#9b7f3c;
    --line:rgba(33,28,21,.14);
    --line-cream:rgba(243,236,221,.2);
    --r:4px;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{font-family:'Hanken Grotesk',sans-serif;background:var(--ivory);color:var(--ink);line-height:1.55;-webkit-font-smoothing:antialiased}
  ::selection{background:var(--tobacco);color:var(--cream)}
  a{color:inherit;text-decoration:none}
  :focus-visible{outline:2px solid var(--tobacco);outline-offset:3px}
  h1,h2,h3{font-family:'Bricolage Grotesque',sans-serif;letter-spacing:-.02em}

  .wrap{max-width:1280px;margin:0 auto;padding:0 2.2rem}

  /* Ö-Punkte motif */
  .oo{display:inline-block;width:.85em;height:.32em;position:relative;vertical-align:baseline}
  .oo::before,.oo::after{content:"";position:absolute;bottom:0;width:.3em;height:.3em;border-radius:50%;background:currentColor}
  .oo::before{left:0}
  .oo::after{right:0}
  .label{display:flex;align-items:center;gap:.65rem;font-size:.72rem;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:var(--tobacco)}
  .label .oo{color:var(--brass);width:1rem;height:.36rem}
  .label .oo::before,.label .oo::after{width:.36rem;height:.36rem}
  .on-dark .label{color:var(--muted-cream)}
  .on-dark .label .oo{color:var(--brass)}

  /* ---------- header ---------- */
  header{position:sticky;top:0;z-index:50;background:rgba(245,242,234,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
  .nav-inner{max-width:1280px;margin:0 auto;padding:1rem 2.2rem;display:flex;align-items:center;justify-content:space-between;gap:2rem}
  .logo{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:1.35rem;letter-spacing:-.01em}
  .logo b{color:var(--tobacco)}
  nav ul{display:flex;gap:2rem;list-style:none}
  nav a{font-size:.9rem;font-weight:600;padding:.35rem 0;border-bottom:2px solid transparent;transition:border-color .2s}
  nav a:hover{border-color:var(--tobacco)}
  .btn{display:inline-block;font-weight:700;font-size:.85rem;letter-spacing:.04em;padding:.8rem 1.5rem;border-radius:var(--r);transition:background .2s,color .2s,transform .2s}
  .btn-ink{background:var(--ink);color:var(--ivory)}
  .btn-ink:hover{background:var(--tobacco)}
  .btn-cream{background:var(--cream);color:var(--tobacco-deep)}
  .btn-cream:hover{background:#fff}
  .btn-sm{padding:.55rem 1.1rem;font-size:.78rem}
  .link-u{font-weight:700;font-size:.9rem;border-bottom:2px solid var(--brass);padding-bottom:.15rem;transition:border-color .2s,color .2s}
  .link-u:hover{color:var(--tobacco)}
  .nav-cta{display:flex;align-items:center;gap:1rem}

  /* ---------- hero ---------- */
  .hero{padding:5.5rem 0 4.5rem}
  .hero-grid{display:grid;grid-template-columns:1.35fr .9fr;gap:4rem;align-items:stretch}
  .hero h1{font-size:clamp(2.7rem,5.6vw,4.9rem);font-weight:600;line-height:1.02;margin:1.6rem 0 1.4rem;max-width:11em}
  .hero h1 .hl{color:var(--tobacco)}
  .hero p.lead{font-size:1.08rem;color:var(--muted);max-width:32em}
  .hero-cta{display:flex;gap:1.4rem;align-items:center;margin-top:2.4rem;flex-wrap:wrap}
  .hero-panel{background:var(--tobacco);border-radius:var(--r);color:var(--cream);padding:2.6rem 2.4rem;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;min-height:420px}
  .hero-panel .glyph{position:absolute;right:-.35em;bottom:-.52em;font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:19rem;line-height:1;color:var(--tobacco-deep);user-select:none;pointer-events:none}
  .hero-panel > *{position:relative}
  .hp-stat{padding:1.1rem 0;border-bottom:1px solid var(--line-cream)}
  .hp-stat:last-of-type{border-bottom:none}
  .hp-stat b{display:block;font-family:'Bricolage Grotesque',sans-serif;font-weight:600;font-size:2.3rem;line-height:1.1}
  .hp-stat span{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-cream);font-weight:600}

  /* ---------- marquee ---------- */
  .marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;padding:.95rem 0;background:var(--ivory)}
  .marquee-track{display:flex;gap:3rem;width:max-content;animation:slide 42s linear infinite;font-size:.82rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
  .marquee-track span{display:flex;align-items:center;gap:3rem}
  .marquee-track .oo{color:var(--brass)}
  @keyframes slide{to{transform:translateX(-50%)}}

  /* ---------- sections ---------- */
  section{padding:6.5rem 0}
  .sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:3.2rem;flex-wrap:wrap}
  .sec-head h2{font-size:clamp(1.9rem,3.6vw,2.9rem);font-weight:600;line-height:1.08;margin-top:1.2rem;max-width:15em}
  .sec-head p{color:var(--muted);max-width:26em;font-size:.98rem}

  /* wissen */
  .wissen-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
  .w-card{border:1px solid var(--line);border-radius:var(--r);padding:2.6rem 2.4rem;background:transparent;transition:background .3s,color .3s,border-color .3s}
  .w-card h3{font-size:1.9rem;font-weight:600;margin-bottom:.6rem}
  .w-card>p{color:var(--muted);font-size:.95rem;max-width:32em;transition:color .3s}
  .w-links{list-style:none;margin-top:1.9rem}
  .w-links a{display:flex;justify-content:space-between;gap:1rem;padding:.9rem .1rem;border-top:1px solid var(--line);font-weight:600;font-size:.93rem;transition:border-color .3s,padding-left .2s}
  .w-links a::after{content:"↗";font-weight:400;color:var(--brass)}
  .w-links a:hover{padding-left:.5rem}
  .w-card:hover{background:var(--tobacco);border-color:var(--tobacco);color:var(--cream)}
  .w-card:hover>p{color:var(--muted-cream)}
  .w-card:hover .w-links a{border-color:var(--line-cream)}
  .w-card .label{margin-bottom:1.4rem}
  .w-card:hover .label{color:var(--muted-cream)}

  /* dealers */
  .dealers{background:var(--tobacco);color:var(--cream)}
  .dealers .sec-head p{color:var(--muted-cream)}
  .dealer-grid{display:grid;grid-template-columns:.95fr 1.15fr;gap:3.5rem;align-items:center}
  .search-mock{background:var(--tobacco-deep);border-radius:var(--r);padding:2rem}
  .search-field{display:flex;align-items:center;gap:.8rem;background:var(--cream);color:var(--muted);border-radius:var(--r);padding:.9rem 1.2rem;font-size:.92rem;font-weight:500}
  .dealer-item{display:flex;text-decoration:none;color:inherit;justify-content:space-between;align-items:center;gap:1rem;padding:1.05rem .2rem;border-bottom:1px solid var(--line-cream)}
  .dealer-item:last-child{border-bottom:none}
  .dealer-item b{display:block;font-size:.95rem;font-weight:700}
  .dealer-item small{font-size:.8rem;color:var(--muted-cream)}
  .dealer-item .km{flex:none;font-size:.78rem;font-weight:700;color:var(--brass);font-variant-numeric:tabular-nums}
  .map-box{position:relative}
  .map-box svg{width:100%;height:auto;display:block}
  .bl{fill:rgba(243,236,221,.05);stroke:var(--cream);stroke-width:1;opacity:.75;stroke-linejoin:round;transition:fill .25s}
  .bl:hover{fill:rgba(243,236,221,.14)}
  .pin{fill:var(--cream)}
  .pin-hi{fill:#fff}
  .pin-ring{fill:none;stroke:var(--cream);stroke-width:1;opacity:.5;transform-box:fill-box;transform-origin:center;animation:ping 2.8s ease-out infinite}
  @keyframes ping{0%{transform:scale(.4);opacity:.7}80%{transform:scale(1.7);opacity:0}100%{opacity:0}}
  .map-note{position:absolute;right:2%;top:0;background:var(--cream);color:var(--ink);border-radius:var(--r);padding:1rem 1.2rem;font-size:.82rem;max-width:230px;box-shadow:0 20px 45px -18px rgba(0,0,0,.5)}
  .map-note b{display:block;font-size:.92rem}
  .map-note a{color:var(--tobacco);font-weight:700}

  /* news */
  .news{background:var(--ivory)}
  .news-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;align-items:stretch}
  .n-feature{background:var(--ink);color:var(--ivory);border-radius:var(--r);padding:2.8rem 2.6rem;display:flex;flex-direction:column;gap:1rem}
  .n-feature .n-date{color:var(--brass)}
  .n-feature h3{font-size:clamp(1.6rem,2.6vw,2.2rem);font-weight:600;line-height:1.12}
  .n-feature p{color:#b7ac99;font-size:.96rem;max-width:34em;flex:1}
  .n-date{font-size:.72rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--brass)}
  .n-list{display:flex;flex-direction:column;border-top:1px solid var(--line)}
  .n-row{display:grid;grid-template-columns:9.5rem 1fr auto;gap:1.5rem;align-items:baseline;padding:1.5rem .2rem;border-bottom:1px solid var(--line);transition:background .2s}
  .n-row:hover{background:var(--ivory-deep)}
  .n-row h3{font-size:1.15rem;font-weight:600}
  .n-row p{color:var(--muted);font-size:.88rem;margin-top:.25rem}
  .n-row .arrow{color:var(--brass);font-weight:400}

  /* join */
  .join{padding-top:0}
  .join-inner{border:1px solid var(--line);border-radius:var(--r);padding:3.6rem;display:flex;align-items:center;justify-content:space-between;gap:3rem;flex-wrap:wrap}
  .join-inner h2{font-size:clamp(1.6rem,2.8vw,2.3rem);font-weight:600;line-height:1.12;max-width:17em}
  .join-inner p{color:var(--muted);margin-top:.7rem;max-width:34em;font-size:.96rem}

  /* footer */
  footer{background:var(--ink);color:#b7ac99;padding:4.5rem 0 2.5rem;font-size:.9rem}
  footer .logo{color:var(--ivory)}
  footer .logo b{color:var(--brass)}
  .foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:3rem;padding-bottom:3rem;border-bottom:1px solid rgba(243,236,221,.14)}
  footer h4{color:var(--ivory);font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;margin-bottom:1.1rem;font-family:'Hanken Grotesk',sans-serif}
  footer ul{list-style:none}
  footer ul li{margin-bottom:.55rem}
  footer ul a:hover{color:var(--ivory)}
  .foot-bottom{display:flex;justify-content:space-between;gap:1rem;padding-top:2rem;font-size:.78rem;opacity:.75;flex-wrap:wrap}

  /* reveal */
  .js .reveal{opacity:0;transform:translateY(22px)}
  .reveal{transition:opacity .7s ease,transform .7s ease}
  .reveal.in{opacity:1;transform:none}

  /* ---------- intro sequence ---------- */
  #intro{display:none}
  .js #intro{display:flex}
  #intro{position:fixed;inset:0;z-index:100;background:var(--ivory);display:flex;align-items:center;justify-content:center;transition:opacity .6s ease,visibility .6s}
  #intro.done{opacity:0;visibility:hidden;pointer-events:none}
  .intro-mark{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:clamp(2.2rem,6vw,3.6rem);letter-spacing:-.01em;display:flex;align-items:baseline;gap:.08em}
  .intro-mark b{color:var(--tobacco)}
  .intro-dots{display:inline-flex;gap:.28em;margin-left:.18em}
  .intro-dots i{width:.32em;height:.32em;border-radius:50%;background:var(--brass);animation:dotpulse 1s ease-in-out infinite}
  .intro-dots i:nth-child(2){animation-delay:.18s}
  @keyframes dotpulse{0%,100%{transform:scale(.7);opacity:.4}50%{transform:scale(1.15);opacity:1}}
  .hero h1 .ln{display:block;overflow:hidden}
  .js .hero h1 .ln em{transform:translateY(110%);}
  .hero h1 .ln em{display:block;font-style:normal;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
  body.ready .hero h1 .ln em{transform:none}
  .hero h1 .ln:nth-child(2) em{transition-delay:.12s}
  .js .hero .lead,.js .hero .hero-cta,.js .hero .label{opacity:0;transform:translateY(14px);}
  .hero .lead,.hero .hero-cta,.hero .label{transition:opacity .8s ease .35s,transform .8s ease .35s}
  .js .hero-panel{opacity:0;transform:translateY(20px)}
  .hero-panel{transition:opacity .9s ease .5s,transform .9s ease .5s}
  body.ready .hero .lead,body.ready .hero .hero-cta,body.ready .hero .label,body.ready .hero-panel{opacity:1;transform:none}

  /* ---------- draft bar + feedback ---------- */
  .draft-bar{background:var(--ink);color:var(--ivory);font-size:.78rem;font-weight:600;letter-spacing:.06em;text-align:center;padding:.55rem 2rem;position:relative;z-index:60}
  .draft-bar b{color:var(--brass)}
  .fb-btn{position:fixed;right:1.4rem;bottom:1.4rem;z-index:70;background:var(--tobacco);color:var(--cream);font-weight:700;font-size:.85rem;padding:.9rem 1.4rem;border-radius:999px;box-shadow:0 14px 34px -12px rgba(33,28,21,.5);transition:transform .2s,background .2s}
  .fb-btn:hover{transform:translateY(-2px);background:var(--tobacco-deep)}

  /* map tooltips */
  .pin circle{cursor:pointer;transition:r .2s}
  .pin circle:hover{r:7}
  #maptip{position:absolute;background:var(--ink);color:var(--ivory);font-size:.74rem;font-weight:600;padding:.3rem .65rem;border-radius:3px;pointer-events:none;opacity:0;transition:opacity .15s;white-space:nowrap;transform:translate(-50%,-140%)}

  @media (prefers-reduced-motion:reduce){
    .marquee-track,.pin-ring,.intro-dots i{animation:none}
    .reveal{opacity:1;transform:none;transition:none}
    #intro{display:none}
    .hero h1 .ln em,.hero .lead,.hero .hero-cta,.hero .label,.hero-panel{transform:none;opacity:1;transition:none}
    html{scroll-behavior:auto}
  }

  @media (max-width:1000px){
    .hero-grid,.wissen-grid,.dealer-grid,.news-grid{grid-template-columns:1fr}
    .hero-panel{min-height:340px}
    nav ul{display:none}
    .n-row{grid-template-columns:1fr auto;gap:.6rem}
    .n-row .n-date{grid-column:1/-1}
    .foot-grid{grid-template-columns:1fr 1fr}
    .join-inner{padding:2.4rem}
  }

/* ---------- subpages ---------- */
.page-hero{padding:4.5rem 0 3rem;border-bottom:1px solid var(--line)}
.page-hero h1{font-size:clamp(2.2rem,4.6vw,3.6rem);font-weight:600;line-height:1.06;margin-top:1.4rem;max-width:14em}
.page-hero p.lead{color:var(--muted);max-width:36em;margin-top:1rem;font-size:1.05rem}
.prose{max-width:44em}
.prose h3{font-size:1.45rem;font-weight:600;margin:2.6rem 0 .8rem}
.prose p{margin-bottom:1rem;color:#453a2c}
.prose ul{margin:0 0 1rem 1.2rem;color:#453a2c}
.prose li{margin-bottom:.4rem}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
.info-card{border:1px solid var(--line);border-radius:var(--r);padding:1.8rem;background:#fffdf8}
.info-card h4{font-family:'Bricolage Grotesque',sans-serif;font-size:1.1rem;margin-bottom:.5rem}
.info-card p{font-size:.92rem;color:var(--muted)}
nav a.active{border-color:var(--tobacco)}

/* fachhaendler page */
.fh-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:start}
.fh-list{border-top:1px solid var(--line)}
.fh-row{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;padding:1rem .2rem;border-bottom:1px solid var(--line)}
.fh-row b{display:block;font-size:.97rem}
.fh-row small{color:var(--muted);font-size:.82rem}
.fh-row .tel{flex:none;font-size:.85rem;font-weight:700;color:#9c7b1c;white-space:nowrap}
.fh-count{font-size:.85rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--tobacco);margin:1.4rem 0 .8rem}
.fh-filter{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.6rem}
.chip{font-size:.78rem;font-weight:700;border:1px solid var(--line);border-radius:999px;padding:.45rem 1rem;cursor:pointer;background:transparent;transition:all .2s;font-family:'Hanken Grotesk',sans-serif}
.chip:hover{border-color:var(--tobacco)}
.chip.active{background:var(--tobacco);color:var(--cream);border-color:var(--tobacco)}

/* vorstand */
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem}
.team-card{border:1px solid var(--line);border-radius:var(--r);padding:2rem 1.6rem;background:#fffdf8;text-align:center}
.team-card .avatar{width:74px;height:74px;border-radius:50%;background:var(--tobacco);color:var(--cream);font-family:'Bricolage Grotesque',sans-serif;font-weight:600;font-size:1.5rem;display:flex;align-items:center;justify-content:center;margin:0 auto 1.1rem}
.team-card b{display:block;font-size:1.02rem}
.team-card span{font-size:.82rem;color:var(--muted)}

@media (max-width:1000px){
  .two-col,.fh-layout{grid-template-columns:1fr}
  .team-grid{grid-template-columns:1fr 1fr}
}

/* ---------- selbstauskunft quiz ---------- */
.quiz{background:var(--tobacco);border-radius:var(--r);color:var(--cream);padding:3rem;max-width:820px;margin:0 auto}
.quiz .label{color:var(--muted-cream)}
.quiz h3{font-size:clamp(1.4rem,2.4vw,1.9rem);font-weight:600;margin:.9rem 0 1.8rem;line-height:1.15}
.q-item{border-top:1px solid var(--line-cream);padding:1.15rem 0;display:flex;justify-content:space-between;gap:1.5rem;align-items:center;flex-wrap:wrap}
.q-item p{font-size:.98rem;max-width:30em;margin:0}
.q-btns{display:flex;gap:.5rem;flex:none}
.q-btn{font-family:'Hanken Grotesk',sans-serif;font-size:.82rem;font-weight:700;padding:.5rem 1.2rem;border-radius:999px;border:1px solid var(--line-cream);background:transparent;color:var(--cream);cursor:pointer;transition:all .2s}
.q-btn:hover{border-color:var(--cream)}
.q-btn.sel-ja{background:var(--cream);color:var(--tobacco-deep);border-color:var(--cream)}
.q-btn.sel-nein{background:var(--tobacco-deep);border-color:var(--tobacco-deep)}
.q-result{margin-top:1.8rem;border-radius:var(--r);padding:1.6rem;background:var(--tobacco-deep);display:none}
.q-result.show{display:block}
.q-result b{display:block;font-family:'Bricolage Grotesque',sans-serif;font-size:1.2rem;margin-bottom:.4rem}
.q-result p{font-size:.94rem;color:var(--muted-cream);margin-bottom:1.1rem}

/* leaflet map */

.map-hint{font-size:.78rem;color:var(--muted);margin-top:.8rem}
.fh-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.15rem;flex:none}
.fh-actions .gmap{font-size:.76rem;font-weight:700;color:var(--tobacco)}
.fh-actions .gmap:hover{color:#9c7b1c}
.leaflet-popup-content{font-family:'Hanken Grotesk',sans-serif;font-size:.85rem;line-height:1.5}
.leaflet-popup-content a{color:var(--tobacco);font-weight:700}
.marker-cluster-small, .marker-cluster-small div{background:rgba(84,56,31,.5)}
.marker-cluster-small div div, .marker-cluster-medium div div{color:#fff}
.marker-cluster-medium, .marker-cluster-medium div{background:rgba(84,56,31,.65)}
.marker-cluster span{color:#f3ecdd;font-weight:700;font-family:'Hanken Grotesk',sans-serif}
@media (max-width:1000px){#map{height:420px}}

/* gezeichnete zoombare Karte */
.fh-mapbox{position:relative;background:var(--tobacco);border-radius:var(--r);padding:1rem;overflow:hidden}
.fh-mapbox svg{width:100%;height:auto;display:block}
.fh-mapbox .bl{fill:rgba(243,236,221,.06);stroke:var(--cream);stroke-width:1;opacity:.85;cursor:pointer;transition:fill .25s}
.fh-mapbox .bl:hover{fill:rgba(243,236,221,.16)}
.fh-mapbox .bl.active{fill:rgba(243,236,221,.13);stroke-width:1.4}
.fh-mapbox .dpin{fill:#e8c56a;stroke:#2a1c10;cursor:pointer}
.fh-mapbox .dpin:hover{fill:#fff}
.fh-note{position:absolute;top:1rem;right:1rem;max-width:270px;background:var(--cream);color:var(--ink);border-radius:var(--r);padding:1rem 1.2rem;box-shadow:0 18px 42px -14px rgba(0,0,0,.55);font-size:.84rem;opacity:0;pointer-events:none;transform:translateY(-6px);transition:opacity .25s,transform .25s}
.fh-note.show{opacity:1;pointer-events:auto;transform:none}
.fh-note b{display:block;font-size:.95rem;margin-bottom:.15rem;padding-right:1.2rem}
.fh-note-links{margin-top:.4rem}
.fh-note-links a{color:var(--tobacco);font-weight:700}
.fh-note-close{position:absolute;top:.4rem;right:.6rem;background:none;border:none;font-size:1.1rem;cursor:pointer;color:var(--muted)}

/* skalierungsfeste Karten-Elemente */
.vmap .bl{vector-effect:non-scaling-stroke}
.vmap .dpin{vector-effect:non-scaling-stroke;fill:#e8c56a;stroke:#2a1c10;stroke-width:1.3;cursor:pointer}
.vmap .dpin:hover{fill:#ffffff}
.vmap .upin{vector-effect:non-scaling-stroke;fill:none;stroke:#fffdf8;stroke-width:2}
/* Spezialisierungs-Badges */
.badges{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.25rem}
.badge{font-size:.64rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border:1px solid rgba(156,123,28,.5);color:#9c7b1c;border-radius:999px;padding:.12rem .55rem}
.fh-note .badge{margin-top:.3rem;display:inline-block}
/* Nähe-Button + km */
.chip.near{border-style:dashed}
.km-tag{font-size:.72rem;font-weight:700;color:#9c7b1c;font-variant-numeric:tabular-nums}
