:root{
  /* LLL Corporate (anpassbar) */
  --lll-green: #007A33;        /* Primärgrün (LLL) */
  --lll-green-dark: #005826;   /* Dunklere Variante */
  --lll-cream: #FAF7F2;        /* Heller Creme-Hintergrund */
  --lll-gray-900: #1A1A1A;
  --lll-gray-700: #444444;
  --lll-gray-500: #777777;
  --lll-gray-300: #D5D5D5;
  --lll-white: #FFFFFF;

  /* Typografie */
  --font-sans: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, "Noto Sans", "Liberation Sans", sans-serif;
  --font-size-base: 1rem;      /* 16px */
  --line-height-base: 1.6;

  /* Spacing Scale */
  --space-0: 0;
  --space-1: 0.25rem;  /* 4px */
  --space-2: 0.5rem;   /* 8px */
  --space-3: 0.75rem;  /* 12px */
  --space-4: 1rem;     /* 16px */
  --space-6: 1.5rem;   /* 24px */
  --space-8: 2rem;     /* 32px */
  --space-12: 3rem;    /* 48px */
  --space-16: 4rem;    /* 64px */

  /* Layout */
  --container: 1200px;         /* Kadence Content Max-Width */
  --grid-gap: var(--space-8);  /* Standard Spaltenabstand */
}

/* Base/Reset */
*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--font-size-base);
  line-height: var(--line-height-base);
  color: var(--lll-gray-900);
  background: var(--lll-cream);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Container & Typo Rhythmus */
.container{ max-width: var(--container); padding: 0 var(--space-4); margin: 0 auto; }
p, ul, ol, blockquote, pre, table, figure{ margin: 0 0 var(--space-6) 0; }
h1,h2,h3,h4,h5,h6{ line-height: 1.25; margin: var(--space-12) 0 var(--space-4); font-weight: 700; }
h1{ font-size: clamp(2rem, 5vw, 2.75rem); }
h2{ font-size: clamp(1.5rem, 3.5vw, 2rem); }
h3{ font-size: clamp(1.25rem, 3vw, 1.5rem); }

/* Links (CI) */
a{ color: var(--lll-green-dark); text-decoration: none; }
a:hover{ color: var(--lll-green); text-decoration: underline; }
a:focus{ outline: 2px solid var(--lll-green); outline-offset: 2px; }

/* Listen */
ul,ol{ padding-left: 1.25rem; }

/* Karten/Flächen */
.card{ background: var(--lll-white); border: 1px solid var(--lll-gray-300); border-radius: 12px; padding: var(--space-8); }

/* Bilder */
img{ max-width:100%; height:auto; border-radius: 0; }
