:root { --ease-expo: cubic-bezier(0.16,1,0.3,1); --ease-spring: cubic-bezier(0.34,1.56,0.64,1); }
html { -webkit-font-smoothing: antialiased; }
body { font-family: 'Schibsted Grotesk', sans-serif; background: #FFFFFF; color: #0A0E0B; }
h1,h2,h3,h4 { font-family: 'Geist', sans-serif; font-weight: 600; letter-spacing: -0.025em; }
::selection { background: #1F8A2B; color: #fff; }

[data-reveal] { opacity: 0; transform: translateY(26px); }
[data-reveal].in { opacity: 1; transform: translateY(0); transition: opacity .8s var(--ease-expo), transform .8s var(--ease-expo); }
[data-reveal][data-d="1"].in { transition-delay: .07s; }
[data-reveal][data-d="2"].in { transition-delay: .14s; }
[data-reveal][data-d="3"].in { transition-delay: .21s; }
@media (prefers-reduced-motion: reduce) { [data-reveal] { opacity:1!important; transform:none!important; } }

.text-balance { text-wrap: balance; }
/* Lift the smallest type — !important so it wins over Tailwind CDN's runtime-injected utilities */
.text-xs { font-size: 0.875rem !important; line-height: 1.25rem !important; }        /* 14px */
.text-\[11px\] { font-size: 0.875rem !important; }                                   /* 14px */
.text-\[13px\] { font-size: 1rem !important; line-height: 1.55rem !important; }       /* 16px */
.text-sm { font-size: 0.9375rem !important; line-height: 1.5rem !important; }         /* 15px */
.text-\[15px\] { font-size: 1.0625rem !important; line-height: 1.65rem !important; }  /* 17px */
.grid-pattern {
  background-image: linear-gradient(rgba(255,255,255,.10) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.10) 1px, transparent 1px);
  background-size: 46px 46px;
}
/* Lenis smooth scroll */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }
/* Sticky header: transparent over hero, glass on scroll */
.site-header .nav-a { color: rgba(255,255,255,.82); }
.site-header .nav-a:hover { color: #fff; }
.site-header .brand { filter: brightness(0) invert(1); transition: height .4s var(--ease-expo), filter .4s ease; }
.site-header .burger { background: rgba(255,255,255,.12); }
.site-header .burger span { background: #fff; }
.site-header.scrolled {
  background: rgba(246,247,243,.82);
  -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px);
  box-shadow: 0 14px 44px -22px rgba(10,14,11,.4);
}
.site-header.scrolled .nav-a { color: rgba(10,14,11,.68); }
.site-header.scrolled .nav-a:hover { color: #0A0E0B; }
.site-header.scrolled .brand { filter: none; height: 2.5rem; }
.site-header.scrolled .burger { background: rgba(10,14,11,.05); --tw-ring-color: rgba(10,14,11,.12); }
.site-header.scrolled .burger span { background: #0A0E0B; }
/* Header beim offenen Mobile-Menü: solides Weiß, dunkles Logo/Burger */
.site-header.menu-open { background: #fff; box-shadow: 0 1px 0 rgba(10,14,11,.06); -webkit-backdrop-filter: none; backdrop-filter: none; }
.site-header.menu-open .brand { filter: none; }
.site-header.menu-open .burger { background: transparent; --tw-ring-color: rgba(10,14,11,.18); }
.site-header.menu-open .burger span { background: #0A0E0B; }
.site-header nav { transition: padding .4s var(--ease-expo); }
.site-header.scrolled nav { padding-top: .7rem; padding-bottom: .7rem; }
/* Service-Detailseiten: Header immer solide (kein Hero dahinter) */
.site-header.solid { background: rgba(246,247,243,.9); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); box-shadow: 0 1px 0 rgba(10,14,11,.06); }
.site-header.solid .nav-a { color: rgba(10,14,11,.68); }
.site-header.solid .nav-a:hover { color: #0A0E0B; }
.site-header.solid .brand { filter: none; }
.site-header.solid .burger { background: rgba(10,14,11,.05); --tw-ring-color: rgba(10,14,11,.12); }
.site-header.solid .burger span { background: #0A0E0B; }

.burger span { transition: transform .45s var(--ease-spring), opacity .3s ease, background-color .4s ease; }

/* CookieConsent — Usercentrics-Premium-Look (Moss-Grün) */
#cc-main {
  --cc-font-family: 'Schibsted Grotesk', sans-serif;
  --cc-btn-primary-bg: #1F8A2B;
  --cc-btn-primary-border-color: #1F8A2B;
  --cc-btn-primary-hover-bg: #136B22;
  --cc-btn-primary-hover-border-color: #136B22;
  --cc-btn-secondary-bg: #1F8A2B;
  --cc-btn-secondary-color: #fff;
  --cc-btn-secondary-border-color: #1F8A2B;
  --cc-btn-secondary-hover-bg: #136B22;
  --cc-btn-secondary-hover-border-color: #136B22;
  --cc-toggle-on-bg: #1F8A2B;
  --cc-toggle-on-knob-bg: #fff;
  --cc-link-color: #136B22;
  --cc-modal-border-radius: 16px;
  --cc-btn-border-radius: 8px;
  --cc-cookie-category-block-bg: #F6F7F3;
  --cc-separator-border-color: #f3f4f6;
}
#cc-main .cm__title, #cc-main .pm__title { font-family: 'Geist', sans-serif; letter-spacing: -0.025em; font-weight: 700; }
#cc-main .cm { max-width: 620px !important; width: 100%; border: 1px solid #f3f4f6; box-shadow: 0 20px 25px -5px rgba(0,0,0,0.10), 0 10px 10px -5px rgba(0,0,0,0.04); }
#cc-main .cm__btns { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: .5rem; align-items: stretch; width: 100%; }
#cc-main .cm__btn-group { display: contents !important; }
#cc-main .cm__btn { width: 100%; margin: 0 !important; font-weight: 600; }
#cc-main .cm__btn[data-role="show"] { background: #f3f4f6; border-color: #f3f4f6; color: #4b5563; }
#cc-main .cm__btn[data-role="show"]:hover { background: #e5e7eb; border-color: #e5e7eb; color: #374151; }
#cc-main .cm__footer { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-top: 1rem; padding-top: .875rem; border-top: 1px solid #f3f4f6; }
#cc-main .cm__footer a { position: relative; font-size: .8125rem; font-weight: 500; color: #6b7280; text-decoration: none; }
#cc-main .cm__footer a:hover { color: #136B22; text-decoration: underline; text-underline-offset: 2px; }
#cc-main .cm__footer a + a::before { content: ""; position: absolute; left: -.4rem; top: 50%; transform: translateY(-50%); width: 1px; height: .9em; background: #d1d5db; }
@media (max-width: 640px) {
  #cc-main .cm { max-width: calc(100vw - 1.5rem) !important; }
  #cc-main .cm__btns { grid-template-columns: 1fr; }
  #cc-main .cm__btn { min-height: 48px; }
}
.burger.open span:nth-child(1){ transform: translateY(8px) rotate(45deg); }
.burger.open span:nth-child(2){ opacity:0; }
.burger.open span:nth-child(3){ transform: translateY(-8px) rotate(-45deg); }
