/* Gemeinsame Styles für Startseite und Unterseiten */
@font-face{font-family:"Ubuntu";font-weight:300;font-display:swap;src:url("/assets/fonts/ubuntu-latin-300-normal.woff2") format("woff2")}
@font-face{font-family:"Ubuntu";font-weight:400;font-display:swap;src:url("/assets/fonts/ubuntu-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Ubuntu";font-weight:500;font-display:swap;src:url("/assets/fonts/ubuntu-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Ubuntu";font-weight:700;font-display:swap;src:url("/assets/fonts/ubuntu-latin-700-normal.woff2") format("woff2")}

:root{
  --dark:#191d20; --green:#4ea844; --green-dark:#3f8d37; --green-text:#2f7d28; --white:#fff; --muted:#c9ccce; --line:#3a4045; --field:#23282c; --err:#ff8a80;
  --paper:#fff; --soft:#f3f6f3; --ink:#1f2428; --ink-muted:#4b545b; --paper-line:#dfe5e0;
  --font:"Ubuntu",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(env(safe-area-inset-top,0px) + 90px)}
body{margin:0;background:var(--dark);color:var(--white);font-family:var(--font);font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased;padding-top:env(safe-area-inset-top,0px)}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-weight:400}
a{color:inherit}
img{max-width:100%;height:auto;display:block}
:focus-visible{outline:2px solid #fff;outline-offset:3px}
.wrap{width:min(1180px,100% - 3rem);margin-inline:auto}

/* Header */
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--dark)}
header .wrap{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;min-height:88px}
.logo{background:var(--green);height:88px;padding:0 1.6rem;display:flex;align-items:center}
.logo img{height:50px;width:auto}
.nav{display:flex;flex:1;justify-content:space-around;align-items:flex-start;max-width:880px;margin-left:2rem}
.nav>a,.nav .has-sub>a{display:block;text-decoration:none;color:#fff;letter-spacing:.12em;font-size:1rem;line-height:88px;padding:0 .5rem;transition:color .2s}
.nav a:hover,.nav a[aria-current]{color:var(--green)}
.nav>a[aria-current="page"]{box-shadow:inset 0 4px 0 var(--green)}
.has-sub{position:relative}
.sub{display:none;position:absolute;top:100%;left:50%;transform:translateX(-50%);min-width:230px;background:var(--dark);border-top:4px solid var(--green);padding:.4rem 0;box-shadow:0 12px 24px rgba(0,0,0,.4)}
.has-sub:hover .sub,.has-sub:focus-within .sub{display:block}
.sub a{display:block;text-decoration:none;color:#fff;padding:.55rem 1.3rem;letter-spacing:.04em;white-space:nowrap}
.sub a:hover,.sub a[aria-current]{background:rgba(78,168,68,.18);color:var(--green)}
.menu-btn{display:none;align-self:center;font:inherit;color:#fff;background:none;border:1px solid var(--green);padding:.45rem 1rem;cursor:pointer}
@media (max-width:860px){
  .menu-btn{display:block}
  .nav{display:none;position:absolute;top:100%;left:0;right:0;margin:0;max-width:none;background:var(--dark);flex-direction:column;padding:.5rem 1.5rem 1.5rem;max-height:calc(100vh - 88px);overflow:auto}
  .nav.open{display:flex}
  .nav>a,.nav .has-sub>a{line-height:1.4;padding:.8rem 0}
  .nav>a[aria-current="page"]{box-shadow:none}
  .sub{display:block;position:static;transform:none;box-shadow:none;border-top:0;padding:0 0 .4rem 1rem}
  .sub a{padding:.45rem 0;white-space:normal}
}

/* Tafel-Hintergrund */
.chalk{background:linear-gradient(rgba(25,29,32,.3),rgba(25,29,32,.4)),var(--dark) url("/assets/img/back-kreide.webp") center top/cover no-repeat}

/* Buttons */
.btn{display:inline-block;text-decoration:none;font:inherit;font-size:1.05rem;background:var(--green);color:#fff;padding:.75rem 1.5rem;border:0;cursor:pointer;transition:background .2s}
.btn:hover{background:var(--green-dark)}
.btn[disabled]{opacity:.6;cursor:wait}
.btn--sm{font-size:.75rem;text-transform:uppercase;padding:.8rem 2.1rem;letter-spacing:.02em}
.btn--ghost{background:none;border:2px solid #fff}
.btn--ghost:hover{background:#fff;color:var(--green)}

/* Footer */
footer{background:var(--dark);border-top:4px solid var(--green);padding:1.6rem 0 2rem;text-align:center;font-size:.9rem}
footer nav{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 1.4rem}
footer a{color:var(--green);text-decoration:none}
footer a:hover{text-decoration:underline}
footer .copy{color:var(--muted);margin-top:.8rem;font-size:.8rem}

/* ---------- Unterseiten (Leistungen) ---------- */
.page-title{text-align:center;padding:clamp(2.8rem,6vw,4.5rem) 0 clamp(2.2rem,4vw,3rem)}
.page-title h1{font-size:clamp(2.2rem,5.5vw,3.8rem);font-weight:500;line-height:1.1}
.crumbs{display:flex;justify-content:center;gap:.7rem;margin:1.1rem 0 0;padding:0;list-style:none;font-size:.95rem}
.crumbs li+li::before{content:"/";margin-right:.7rem;opacity:.6}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:var(--green)}
.crumbs [aria-current]{color:var(--green)}

.page-body{background:var(--paper);color:var(--ink);padding:clamp(2.5rem,6vw,4.5rem) 0 clamp(3rem,7vw,5rem)}
.page-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(2rem,5vw,4.5rem);align-items:start}
@media (max-width:980px){.page-grid{grid-template-columns:1fr}}

.prose{font-size:1.0625rem;line-height:1.75;max-width:70ch}
.prose>*+*{margin-top:1.25rem}
.prose h2{font-size:clamp(1.4rem,2.4vw,1.8rem);font-weight:500;line-height:1.25;margin-top:2.6rem;color:var(--ink)}
.prose h2+*{margin-top:.8rem}
.prose .lead{font-size:clamp(1.25rem,2.2vw,1.55rem);line-height:1.4;font-weight:500;color:var(--ink)}
.prose a{color:var(--green-text);text-underline-offset:3px}
.prose a:hover{color:var(--green-dark)}
.prose a.btn{color:#fff;text-decoration:none}
.prose a.btn:hover{color:#fff}
.prose ul{list-style:none;padding:0;margin-bottom:0}
.prose ul>li{position:relative;padding-left:1.7rem}
.prose ul>li+li{margin-top:.45rem}
.prose ul>li::before{content:"";position:absolute;left:0;top:.62em;width:.62rem;height:.62rem;background:var(--green);border-radius:50%}
.prose ul.two-col{columns:2;column-gap:2.5rem}
.prose ul.two-col>li{break-inside:avoid}
@media (max-width:640px){.prose ul.two-col{columns:1}}
.prose figure{margin:2rem 0;padding:0}
.prose figure img{width:100%;border-radius:4px;border:1px solid var(--paper-line)}
.prose .float-img{float:left;width:min(250px,42%);margin:.3rem 1.6rem 1rem 0}
.prose .clearfix::after{content:"";display:block;clear:both}
.note{background:var(--soft);border-left:4px solid var(--green);padding:1rem 1.2rem}

.prose h3{font-size:1.1rem;font-weight:700;line-height:1.35;margin-top:2rem;color:var(--ink)}
.prose h3+*{margin-top:.5rem}

/* Rechtstexte (Impressum, AGB) */
.legal{max-width:820px}
.legal .prose{max-width:none}
.legal .prose h2{padding-top:1.4rem;border-top:1px solid var(--paper-line)}
.legal .prose h2:first-of-type{border-top:0;padding-top:0}
.legal .prose p{font-size:1rem;line-height:1.7}
.legal address{font-style:normal}
.table-wrap{overflow-x:auto;margin-top:1.2rem}
.legal table{width:100%;min-width:640px;border-collapse:collapse;font-size:.88rem;line-height:1.5}
.legal th,.legal td{border:1px solid var(--paper-line);padding:.6rem .7rem;text-align:left;vertical-align:top}
.legal th{background:var(--soft);font-weight:700}
.legal ul{margin-top:.8rem}
.toc{background:var(--soft);border-left:4px solid var(--green);padding:1.2rem 1.5rem}
.toc h2{font-size:1.1rem!important;margin:0!important;padding:0!important;border:0!important}
.toc ol{margin:.6rem 0 0;padding-left:1.3rem;line-height:1.9}
.toc a{text-decoration:none}
.toc a:hover{text-decoration:underline}

/* Sidebar */
.aside{display:grid;gap:1.5rem;position:sticky;top:110px}
@media (max-width:980px){.aside{position:static}}
.card-contact{background:var(--dark);color:#fff;padding:1.8rem 1.8rem 2rem;border-top:4px solid var(--green)}
.card-contact h2{font-size:1.6rem;font-weight:500}
.card-contact p{margin-top:.6rem;color:var(--muted);line-height:1.6}
.card-contact address{font-style:normal;margin-top:1.2rem;line-height:1.7}
.card-contact address strong{display:block}
.card-contact a:not(.btn){color:var(--green)}
.card-contact .btn{margin-top:1.4rem;display:block;text-align:center}
.card-links{background:var(--soft);padding:1.4rem 1.6rem}
.card-links h2{font-size:1.1rem;font-weight:700;margin-bottom:.6rem;color:var(--ink)}
.card-links ul{list-style:none;margin:0;padding:0}
.card-links a{display:block;padding:.5rem 0;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--paper-line)}
.card-links li:last-child a{border-bottom:0}
.card-links a:hover{color:var(--green-text)}
.card-links a[aria-current]{color:var(--green-text);font-weight:700}

/* Ablauf (Kampagnen) */
.steps{counter-reset:step;list-style:none;margin:1.8rem 0 0;padding:0;display:grid;gap:1.1rem}
.steps li{counter-increment:step;position:relative;padding:1.2rem 1.4rem 1.3rem 5rem;background:var(--soft);border-radius:4px}
.steps li::before{content:counter(step);position:absolute;left:1.3rem;top:1.15rem;width:2.5rem;height:2.5rem;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-weight:700;font-size:1.15rem}
.steps h3{font-size:1.15rem;font-weight:700;line-height:1.3;color:var(--ink)}
.steps p{margin-top:.3rem;line-height:1.65}
.prose .steps li+li{margin-top:0}

/* Karten: Produktblätter und Referenzen */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1.4rem;margin-top:1.4rem;list-style:none;padding:0}
.prose .cards{max-width:none}
.prose .cards>li{padding:0;margin:0}
.prose .cards>li::before{display:none}
.card{display:flex;flex-direction:column;height:100%;background:var(--soft);border:1px solid var(--paper-line);border-radius:4px;overflow:hidden}
.card img{width:100%;aspect-ratio:16/10;object-fit:contain;background:#fff;border-bottom:1px solid var(--paper-line);padding:.6rem}
.card__body{display:flex;flex-direction:column;flex:1;padding:1rem 1.1rem 1.2rem}
.card h3{font-size:1.05rem;font-weight:700;line-height:1.3;color:var(--ink)}
.card p{font-size:.95rem;line-height:1.55;margin-top:.4rem;color:var(--ink-muted)}
.card .btn{margin-top:auto;align-self:flex-start}
.card__body .btn{margin-top:1rem}
.cards--wide{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.cards--wide .card img{aspect-ratio:389/298;object-fit:cover;padding:0}
.btn--dl{font-size:.8rem;padding:.55rem 1.1rem}
.btn--dl::before{content:"↓";margin-right:.5rem}

/* Abschluss: Angebot anfordern */
.cta{background:var(--green);color:#fff;padding:clamp(2.2rem,5vw,3.2rem) 0;text-align:center}
.cta p{font-size:clamp(1.3rem,2.6vw,1.9rem);line-height:1.3;max-width:28ch;margin:0 auto}
.cta .btn{margin-top:1.4rem;background:#fff;color:var(--dark);font-weight:500}
.cta .btn:hover{background:var(--dark);color:#fff}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn{transition:none}}
