/* =============================================
   Kindergarten Regenbogen Rietberg — Redesign
   Aesthetic: Storybook Warmth
   Fonts: Lokal gehostet (DSGVO-konform)
   ============================================= */

/* --- Lokal gehostete Schriftarten (kein Google-CDN) --- */
@font-face {
  font-family: 'Nunito';
  src: url('../fonts/nunito.woff2') format('woff2');
  font-weight: 200 1000;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Baloo 2';
  src: url('../fonts/baloo2.woff2') format('woff2');
  font-weight: 400 800;
  font-style: normal;
  font-display: swap;
}

/* --- Custom Properties --- */
:root {
  --cream: #FFF9F0;
  --cream-alt: #FFF3E4;
  --warm-white: #FFFDFB;
  --white: #FFFFFF;
  --text: #3D3B3B;
  --text-light: #6B6565;
  --heading: #2D2A2A;

  --r-red: #E8736A;
  --r-orange: #F0A055;
  --r-yellow: #F4D06F;
  --r-green: #6BBF8A;
  --r-teal: #5BB8B0;
  --r-blue: #5B9BD5;
  --r-indigo: #7C6DD8;
  --r-violet: #B47DC8;

  --primary: #3A8259;
  --primary-dark: #2E6E4B;
  --primary-light: #EAF5EE;

  --rainbow: linear-gradient(90deg, var(--r-red), var(--r-orange), var(--r-yellow), var(--r-green), var(--r-blue), var(--r-indigo), var(--r-violet));
  --rainbow-soft: linear-gradient(90deg, #f4b8b4, #f8d4a8, #fae6a8, #b8e0c6, #a8cde8, #bdb4e8, #d8b8e0);

  --section-py: clamp(4rem, 8vw, 7rem);
  --container: 1140px;
  --gap: clamp(1rem, 3vw, 2rem);

  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --radius-pill: 999px;

  --shadow-sm: 0 2px 12px rgba(60,50,40,0.06);
  --shadow-md: 0 6px 24px rgba(60,50,40,0.08);
  --shadow-lg: 0 12px 48px rgba(60,50,40,0.10);
  --shadow-glow: 0 8px 32px rgba(107,191,138,0.20);

  --header-h: 80px;
}

/* --- Reset --- */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
img,picture,svg{display:block;max-width:100%}
button,input,textarea,select{font:inherit}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}

/* --- Skip Link (Barrierefreiheit) --- */
.skip-link{
  position:absolute;
  top:-100%;
  left:1rem;
  z-index:9999;
  padding:.75rem 1.5rem;
  background:var(--primary);
  color:#fff;
  font-weight:700;
  border-radius:0 0 var(--radius-sm) var(--radius-sm);
  text-decoration:none;
  transition:top .2s;
}
.skip-link:focus{
  top:0;
}

/* --- Base --- */
html{scroll-behavior:smooth;scroll-padding-top:var(--header-h)}
body{
  font-family:'Nunito',sans-serif;
  color:var(--text);
  background:var(--cream);
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* --- Focus Styles (Barrierefreiheit WCAG 2.4.7) --- */
:focus-visible{
  outline:3px solid var(--primary);
  outline-offset:3px;
  border-radius:var(--radius-sm);
}
a:focus-visible,
button:focus-visible,
.btn:focus-visible{
  outline:3px solid var(--primary);
  outline-offset:3px;
}
.nav a:focus-visible{
  background:var(--primary-light);
  color:var(--primary-dark);
  outline:3px solid var(--primary);
  outline-offset:2px;
}
.nav a.nav-cta:focus-visible{
  outline-color:#fff;
  outline-offset:3px;
}

/* --- Typography --- */
h1,h2,h3,h4,h5,h6{
  font-family:'Baloo 2',cursive;
  color:var(--heading);
  line-height:1.25;
  letter-spacing:-0.01em;
}
h1{font-size:clamp(2.2rem,5vw,3.6rem);font-weight:800}
h2{font-size:clamp(1.7rem,3.5vw,2.6rem);font-weight:700}
h3{font-size:clamp(1.3rem,2.5vw,1.7rem);font-weight:600}
h4{font-size:clamp(1.1rem,2vw,1.3rem);font-weight:600}
p{margin-bottom:1em}
p:last-child{margin-bottom:0}
strong{font-weight:700}
em{font-style:italic}

.text-center{text-align:center}
.text-primary{color:var(--primary)}
.text-light{color:var(--text-light)}

/* --- Layout --- */
.container{
  width:min(var(--container), 100% - 2rem);
  margin-inline:auto;
}
.container--narrow{
  width:min(860px, 100% - 2rem);
  margin-inline:auto;
}

.section{
  padding:var(--section-py) 0;
  position:relative;
}
.section--cream{background:var(--cream)}
.section--white{background:var(--warm-white)}
.section--alt{background:var(--cream-alt)}
.section--green{background:var(--primary-light)}

.section-header{
  text-align:center;
  max-width:700px;
  margin:0 auto clamp(2rem,4vw,3.5rem);
}
.section-header p{
  color:var(--text-light);
  font-size:1.1rem;
  margin-top:.5rem;
}

/* --- Rainbow Line --- */
.rainbow-line{
  height:4px;
  background:var(--rainbow);
  border-radius:2px;
}
.rainbow-line--thin{height:2px}
.rainbow-line--thick{height:6px}

/* --- Header --- */
.header{
  position:fixed;
  top:0;left:0;right:0;
  z-index:1000;
  background:rgba(255,253,251,0.92);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  transition:box-shadow 0.3s;
}
.header.scrolled{box-shadow:var(--shadow-md)}
.header::after{
  content:'';
  position:absolute;
  bottom:0;left:0;right:0;
  height:3px;
  background:var(--rainbow);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:var(--header-h);
}
.header-logo{
  display:flex;
  align-items:center;
  gap:.75rem;
  text-decoration:none;
  flex-shrink:0;
}
.header-logo img{
  width:50px;
  height:50px;
  object-fit:contain;
  border-radius:var(--radius-sm);
}
.header-logo span{
  font-family:'Baloo 2',cursive;
  font-size:1.15rem;
  font-weight:700;
  color:var(--heading);
  line-height:1.2;
}
.header-logo small{
  display:block;
  font-family:'Nunito',sans-serif;
  font-size:.7rem;
  font-weight:400;
  color:var(--text-light);
  letter-spacing:.02em;
}

/* Nav */
.nav{display:flex;align-items:center;gap:.25rem}
.nav a{
  padding:.5rem 1rem;
  border-radius:var(--radius-pill);
  font-weight:600;
  font-size:.95rem;
  color:var(--text);
  transition:all .25s;
  white-space:nowrap;
}
.nav a:hover,.nav a.active{
  background:var(--primary-light);
  color:var(--primary-dark);
}
.nav a.nav-cta{
  background:var(--primary);
  color:#fff;
  margin-left:.5rem;
}
.nav a.nav-cta:hover{
  background:var(--primary-dark);
  transform:translateY(-1px);
  box-shadow:var(--shadow-glow);
}

/* Hamburger */
.hamburger{
  display:none;
  background:none;
  border:none;
  cursor:pointer;
  width:44px;height:44px;
  position:relative;
  z-index:1001;
}
.hamburger span{
  display:block;
  width:24px;height:2.5px;
  background:var(--heading);
  border-radius:2px;
  position:absolute;
  left:10px;
  transition:all .3s;
}
.hamburger span:nth-child(1){top:13px}
.hamburger span:nth-child(2){top:21px}
.hamburger span:nth-child(3){top:29px}
.hamburger.open span:nth-child(1){top:21px;transform:rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){top:21px;transform:rotate(-45deg)}

/* --- Hero --- */
.hero{
  position:relative;
  min-height:calc(100vh - var(--header-h));
  display:flex;
  align-items:center;
  justify-content:center;
  padding:calc(var(--header-h) + 3rem) 1rem 4rem;
  background:var(--cream);
  overflow:hidden;
}
.hero-bg{
  position:absolute;
  inset:0;
  pointer-events:none;
  overflow:hidden;
}
.hero-bg svg{
  position:absolute;
  width:140%;
  left:-20%;
  bottom:-10%;
  opacity:.18;
}
.hero-blob{
  position:absolute;
  border-radius:50%;
  filter:blur(80px);
  opacity:.25;
  animation:float 20s ease-in-out infinite;
}
.hero-blob--1{width:400px;height:400px;background:var(--r-yellow);top:-10%;right:-5%;animation-delay:-5s}
.hero-blob--2{width:350px;height:350px;background:var(--r-green);bottom:10%;left:-8%;animation-delay:-10s}
.hero-blob--3{width:300px;height:300px;background:var(--r-blue);top:20%;left:15%;animation-delay:-15s}
.hero-blob--4{width:250px;height:250px;background:var(--r-violet);bottom:-5%;right:15%;animation-delay:-3s}

@keyframes float{
  0%,100%{transform:translate(0,0) scale(1)}
  33%{transform:translate(30px,-20px) scale(1.05)}
  66%{transform:translate(-20px,15px) scale(0.95)}
}

.hero-content{
  position:relative;
  z-index:2;
  text-align:center;
  max-width:720px;
}
.hero-logo{
  width:clamp(160px,25vw,220px);
  height:auto;
  margin:0 auto 1.5rem;
  border-radius:var(--radius-lg);
  filter:drop-shadow(0 8px 24px rgba(0,0,0,0.08));
  animation:fadeInDown .8s ease-out both;
}
.hero h1{
  margin-bottom:.5rem;
  animation:fadeInUp .8s ease-out .2s both;
}
.hero h1 .rainbow-text{
  background:var(--rainbow);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.hero-subtitle{
  font-size:clamp(1.1rem,2.5vw,1.4rem);
  color:var(--text-light);
  margin-bottom:2rem;
  animation:fadeInUp .8s ease-out .4s both;
}
.hero-actions{
  display:flex;
  gap:1rem;
  justify-content:center;
  flex-wrap:wrap;
  animation:fadeInUp .8s ease-out .6s both;
}

/* --- Buttons --- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  padding:.85rem 2rem;
  border-radius:var(--radius-pill);
  font-weight:700;
  font-size:1rem;
  border:none;
  cursor:pointer;
  transition:all .3s;
  text-decoration:none;
}
.btn--primary{
  background:var(--primary);
  color:#fff;
}
.btn--primary:hover{
  background:var(--primary-dark);
  transform:translateY(-2px);
  box-shadow:var(--shadow-glow);
}
.btn--outline{
  background:transparent;
  color:var(--primary-dark);
  box-shadow:inset 0 0 0 2px var(--primary);
}
.btn--outline:hover{
  background:var(--primary-light);
  transform:translateY(-2px);
}
.btn--white{
  background:#fff;
  color:var(--primary-dark);
}
.btn--white:hover{
  background:var(--primary-light);
  transform:translateY(-2px);
  box-shadow:var(--shadow-md);
}

/* --- Wave Divider --- */
.wave-divider{
  position:absolute;
  bottom:-1px;left:0;right:0;
  line-height:0;
  overflow:hidden;
}
.wave-divider svg{
  display:block;
  width:100%;
  height:auto;
}
.wave-divider--top{
  top:-1px;bottom:auto;
  transform:rotate(180deg);
}

/* --- Cards --- */
.cards{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
  gap:var(--gap);
}
.card{
  background:var(--white);
  border-radius:var(--radius-lg);
  padding:2rem;
  box-shadow:var(--shadow-sm);
  transition:all .35s ease;
  position:relative;
  overflow:hidden;
}
.card::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:4px;
  border-radius:var(--radius-lg) var(--radius-lg) 0 0;
}
.card--red::before{background:var(--r-red)}
.card--orange::before{background:var(--r-orange)}
.card--yellow::before{background:var(--r-yellow)}
.card--green::before{background:var(--r-green)}
.card--blue::before{background:var(--r-blue)}
.card--indigo::before{background:var(--r-indigo)}
.card--violet::before{background:var(--r-violet)}
.card--teal::before{background:var(--r-teal)}
.card--rainbow::before{background:var(--rainbow)}

.card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-lg);
}
.card-icon{
  font-size:2.2rem;
  margin-bottom:.75rem;
  line-height:1;
}
.card h3{margin-bottom:.5rem}
.card p{color:var(--text-light);font-size:.95rem}

.card-stat{
  font-family:'Baloo 2',cursive;
  font-size:2rem;
  font-weight:800;
  color:var(--primary);
  line-height:1;
  margin-bottom:.25rem;
}

/* --- Image Grid --- */
.image-grid{
  display:grid;
  gap:1rem;
}
.image-grid--2{grid-template-columns:repeat(2,1fr)}
.image-grid--3{grid-template-columns:repeat(3,1fr)}
.image-grid--4{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.image-grid img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:var(--radius-md);
  transition:transform .4s;
}
.image-grid a{
  overflow:hidden;
  border-radius:var(--radius-md);
  display:block;
  box-shadow:var(--shadow-sm);
}
.image-grid a:hover img{transform:scale(1.05)}
.image-grid figure{
  overflow:hidden;
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-sm);
  position:relative;
  aspect-ratio:4/3;
}
.image-grid figure img{transition:transform .4s}
.image-grid figure:hover img{transform:scale(1.05)}
.image-grid figcaption{
  position:absolute;
  bottom:0;left:0;right:0;
  padding:.75rem 1rem;
  background:linear-gradient(transparent,rgba(0,0,0,0.6));
  color:#fff;
  font-size:.85rem;
  font-weight:600;
  border-radius:0 0 var(--radius-md) var(--radius-md);
}

/* --- Split Section (text + image) --- */
.split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(2rem,5vw,4rem);
  align-items:center;
}
.split--reverse{direction:rtl}
.split--reverse > *{direction:ltr}
.split-image{
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-lg);
}
.split-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  min-height:300px;
}
.split-text h2{margin-bottom:1rem}
.split-text p{margin-bottom:1rem}
.split-text .btn{margin-top:.5rem}

/* --- Timeline --- */
.timeline{
  position:relative;
  padding-left:2.5rem;
}
.timeline::before{
  content:'';
  position:absolute;
  left:0;top:0;bottom:0;
  width:4px;
  background:var(--rainbow-soft);
  border-radius:2px;
}
.timeline-item{
  position:relative;
  padding-bottom:2rem;
}
.timeline-item::before{
  content:'';
  position:absolute;
  left:-2.5rem;
  top:.35rem;
  width:16px;height:16px;
  border-radius:50%;
  background:var(--primary);
  border:3px solid var(--cream);
  box-shadow:0 0 0 2px var(--primary);
}
.timeline-item h3{margin-bottom:.25rem;font-size:clamp(1.1rem,2vw,1.3rem)}
.timeline-item p{color:var(--text-light)}

/* --- Info Table --- */
.info-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  border-radius:var(--radius-md);
  overflow:hidden;
  box-shadow:var(--shadow-sm);
}
.info-table th,.info-table td{
  padding:.85rem 1.25rem;
  text-align:left;
}
.info-table thead th{
  background:var(--primary);
  color:#fff;
  font-family:'Baloo 2',cursive;
  font-weight:600;
  font-size:1.05rem;
}
.info-table tbody tr{
  background:var(--white);
  transition:background .2s;
}
.info-table tbody tr:nth-child(even){background:var(--cream)}
.info-table tbody tr:hover{background:var(--primary-light)}

/* --- Accordion --- */
.accordion{max-width:800px}
.accordion-item h3{margin:0;font-size:inherit}
.accordion-item{
  background:var(--white);
  border-radius:var(--radius-md);
  margin-bottom:.75rem;
  box-shadow:var(--shadow-sm);
  overflow:hidden;
}
.accordion-trigger{
  width:100%;
  padding:1.25rem 1.5rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  background:none;
  border:none;
  cursor:pointer;
  font-family:'Baloo 2',cursive;
  font-size:1.1rem;
  font-weight:600;
  color:var(--heading);
  text-align:left;
  transition:background .2s;
}
.accordion-trigger:hover{background:var(--primary-light)}
.accordion-trigger .icon{
  flex-shrink:0;
  width:24px;height:24px;
  border-radius:50%;
  background:var(--primary-light);
  display:flex;align-items:center;justify-content:center;
  transition:transform .3s;
  font-size:.8rem;
  color:var(--primary-dark);
}
.accordion-item.open .accordion-trigger .icon{transform:rotate(180deg)}
.accordion-body{
  max-height:0;
  overflow:hidden;
  transition:max-height .4s ease;
}
.accordion-body-inner{
  padding:0 1.5rem 1.5rem;
  color:var(--text-light);
  line-height:1.8;
}
.accordion-body-inner ul{
  padding-left:1.25rem;
  list-style:disc;
}
.accordion-body-inner ul li{margin-bottom:.35rem}

/* --- CTA Banner --- */
.cta-banner{
  background:var(--primary);
  padding:clamp(3rem,6vw,5rem) 0;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.cta-banner::before{
  content:'';
  position:absolute;
  inset:0;
  background:var(--rainbow);
  opacity:.15;
}
.cta-banner > *{position:relative;z-index:1}
.cta-banner h2{color:#fff;margin-bottom:.75rem}
.cta-banner p{color:rgba(255,255,255,.85);font-size:1.15rem;margin-bottom:1.5rem}

/* --- Page Hero (subpages) --- */
.page-hero{
  padding:calc(var(--header-h) + 3rem) 0 3rem;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.page-hero::before{
  content:'';
  position:absolute;
  inset:0;
  background:var(--rainbow-soft);
  opacity:.35;
}
.page-hero > *{position:relative;z-index:1}
.page-hero h1{margin-bottom:.5rem}
.page-hero p{
  color:var(--text-light);
  font-size:1.15rem;
  max-width:600px;
  margin:0 auto;
}
.page-hero .breadcrumb{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  font-size:.9rem;
  color:var(--text-light);
  margin-bottom:1rem;
}
.page-hero .breadcrumb a{color:var(--primary-dark);font-weight:600}
.page-hero .breadcrumb a:hover{text-decoration:underline}

/* --- Group Cards (Gruppenstruktur) --- */
.group-cards{
  grid-template-columns:repeat(3,1fr);
}
@media(max-width:900px){
  .group-cards{grid-template-columns:1fr}
}
.group-card{
  background:var(--white);
  border-radius:var(--radius-lg);
  padding:2rem;
  box-shadow:var(--shadow-md);
  border-left:5px solid;
  transition:transform .3s,box-shadow .3s;
  display:flex;
  flex-direction:column;
}
.group-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow-lg);
}
.group-card h3{
  margin-bottom:.5rem;
  min-height:3.2em;
  display:flex;
  align-items:center;
}
.group-card .badge{
  display:inline-block;
  padding:.25rem .75rem;
  border-radius:var(--radius-pill);
  font-size:.8rem;
  font-weight:700;
  margin-bottom:.75rem;
}
.group-card .card-stat{margin-bottom:.5rem}
.group-card > p,
.group-card > ul{flex:1}

/* --- Footer --- */
.footer{
  background:var(--heading);
  color:rgba(255,255,255,.88);
  padding:4rem 0 0;
  position:relative;
}
.footer::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:4px;
  background:var(--rainbow);
}
.footer a{
  color:rgba(255,255,255,.85);
  transition:color .2s;
}
.footer a:hover{color:var(--r-green)}
.footer h3{
  color:#fff;
  font-family:'Baloo 2',cursive;
  margin-bottom:1rem;
  font-size:1.15rem;
  font-weight:600;
}
.footer-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:2.5rem;
  padding-bottom:3rem;
}
.footer-col ul li{
  margin-bottom:.5rem;
  display:flex;
  align-items:baseline;
  gap:.5rem;
}
.footer-col ul li::before{
  content:'';
  width:6px;height:6px;
  background:var(--primary);
  border-radius:50%;
  flex-shrink:0;
  margin-top:.5rem;
}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.1);
  padding:1.5rem 0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:1rem;
  font-size:.85rem;
}
.footer-bottom a{
  text-decoration:underline;
  text-underline-offset:2px;
}

/* --- Scroll Animations --- */
.reveal{
  opacity:0;
  transform:translateY(30px);
  transition:opacity .7s ease, transform .7s ease;
}
.reveal.visible{
  opacity:1;
  transform:translateY(0);
}
.reveal-delay-1{transition-delay:.1s}
.reveal-delay-2{transition-delay:.2s}
.reveal-delay-3{transition-delay:.3s}
.reveal-delay-4{transition-delay:.4s}

@keyframes fadeInUp{
  from{opacity:0;transform:translateY(25px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes fadeInDown{
  from{opacity:0;transform:translateY(-20px)}
  to{opacity:1;transform:translateY(0)}
}

/* --- Content Styles --- */
.content-block{margin-bottom:3rem}
.content-block:last-child{margin-bottom:0}
.content-block h2{margin-bottom:1rem}
.content-block h3{margin-bottom:.75rem;color:var(--primary-dark)}
.content-block ul{
  padding-left:1.25rem;
  list-style:none;
  margin-bottom:1rem;
}
.content-block ul li{
  position:relative;
  padding-left:1.5rem;
  margin-bottom:.5rem;
}
.content-block ul li::before{
  content:'';
  position:absolute;
  left:0;top:.65rem;
  width:8px;height:8px;
  border-radius:50%;
  background:var(--primary);
}

/* Colored list bullets */
.content-block ul.rainbow-bullets li:nth-child(7n+1)::before{background:var(--r-red)}
.content-block ul.rainbow-bullets li:nth-child(7n+2)::before{background:var(--r-orange)}
.content-block ul.rainbow-bullets li:nth-child(7n+3)::before{background:var(--r-yellow)}
.content-block ul.rainbow-bullets li:nth-child(7n+4)::before{background:var(--r-green)}
.content-block ul.rainbow-bullets li:nth-child(7n+5)::before{background:var(--r-blue)}
.content-block ul.rainbow-bullets li:nth-child(7n+6)::before{background:var(--r-indigo)}
.content-block ul.rainbow-bullets li:nth-child(7n+7)::before{background:var(--r-violet)}

/* --- Tag / Badge --- */
.tag{
  display:inline-block;
  padding:.2rem .7rem;
  border-radius:var(--radius-pill);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.02em;
}
.tag--green{background:var(--primary-light);color:var(--primary-dark)}
.tag--red{background:#fde8e7;color:#c0392b}
.tag--blue{background:#e8f0fd;color:#2c72c6}
.tag--orange{background:#fef0e0;color:#c67e22}

/* --- Contact Card --- */
.contact-card{
  background:var(--white);
  border-radius:var(--radius-lg);
  padding:clamp(2rem,4vw,3rem);
  box-shadow:var(--shadow-md);
  display:flex;
  flex-direction:column;
  gap:1rem;
}
.contact-item{
  display:flex;
  align-items:flex-start;
  gap:1rem;
}
.contact-item .icon-circle{
  width:48px;height:48px;
  border-radius:50%;
  background:var(--primary-light);
  display:flex;align-items:center;justify-content:center;
  font-size:1.2rem;
  flex-shrink:0;
}

/* --- Responsive --- */
@media(max-width:900px){
  .nav{
    position:fixed;
    top:0;left:0;right:0;bottom:0;
    background:rgba(255,249,240,0.98);
    backdrop-filter:blur(20px);
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:.5rem;
    opacity:0;
    pointer-events:none;
    transition:opacity .3s;
    z-index:999;
  }
  .nav.open{opacity:1;pointer-events:all}
  .nav a{font-size:1.3rem;padding:.75rem 1.5rem}
  .hamburger{display:flex;align-items:center;justify-content:center}

  .split{grid-template-columns:1fr}
  .split--reverse{direction:ltr}
  .split-image{order:-1}
  .split-image img{min-height:220px}

  .image-grid--2,
  .image-grid--3{grid-template-columns:1fr}
  .image-grid--4{grid-template-columns:repeat(2,1fr)}

  .footer-bottom{justify-content:center;text-align:center}
}
@media(max-width:600px){
  :root{--header-h:68px}
  .header-logo span{font-size:1rem}
  .header-logo small{display:none}
  .header-logo img{width:40px;height:40px}
  .hero{padding-top:calc(var(--header-h) + 2rem);min-height:auto}
  .hero-logo{width:140px}
  .hero-actions{flex-direction:column;align-items:center}
  .btn{width:100%;justify-content:center}
  .image-grid--4{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr}
  .info-table{font-size:.88rem}
  .info-table th,.info-table td{padding:.65rem .85rem}
}

/* --- Barrierefreiheit: Bewegungsreduzierung (WCAG 2.3.3) --- */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }
  .reveal{
    opacity:1;
    transform:none;
  }
  .hero-blob{
    animation:none;
  }
}

/* --- Barrierefreiheit: Hoher Kontrast (WCAG 1.4.3) --- */
@media(prefers-contrast:more){
  :root{
    --text-light:#555;
    --text:#1a1a1a;
    --heading:#000;
  }
  .footer{color:#fff}
  .footer a{color:#fff}
  .cta-banner p{color:#fff}
}

/* --- Back-to-Top Button --- */
.back-to-top{
  position:fixed;
  bottom:2rem;
  right:2rem;
  z-index:900;
  width:48px;height:48px;
  border:none;
  border-radius:50%;
  background:var(--primary);
  color:#fff;
  font-size:1.4rem;
  cursor:pointer;
  box-shadow:var(--shadow-md);
  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:all .3s;
  display:flex;
  align-items:center;
  justify-content:center;
}
.back-to-top.visible{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.back-to-top:hover{
  background:var(--primary-dark);
  transform:translateY(-2px);
  box-shadow:var(--shadow-lg);
}
.back-to-top:focus-visible{
  outline:3px solid var(--primary);
  outline-offset:3px;
}

/* --- Print Stylesheet --- */
@media print{
  *{
    background:transparent !important;
    color:#000 !important;
    box-shadow:none !important;
    text-shadow:none !important;
  }
  body{
    font-size:12pt;
    line-height:1.5;
  }
  .header,
  .hamburger,
  .nav,
  .hero-bg,
  .hero-blob,
  .cta-banner,
  .back-to-top,
  .skip-link,
  .btn,
  .wave-divider{
    display:none !important;
  }
  .hero{
    min-height:auto;
    padding:1rem 0;
  }
  .hero-content{
    text-align:left;
  }
  .hero-logo{
    width:80px;
    filter:none;
    animation:none;
  }
  main{
    padding-top:0 !important;
  }
  .page-hero{
    padding-top:1rem;
    padding-bottom:1rem;
  }
  .section{
    padding:1.5rem 0;
    page-break-inside:avoid;
  }
  .split{
    grid-template-columns:1fr;
  }
  .split-image{
    max-width:300px;
    box-shadow:none;
  }
  .cards{
    grid-template-columns:1fr 1fr;
    gap:.75rem;
  }
  .card{
    box-shadow:none;
    border:1px solid #ddd;
    page-break-inside:avoid;
  }
  .card:hover{transform:none}
  .image-grid{
    grid-template-columns:1fr 1fr;
  }
  .footer{
    padding:1rem 0;
    border-top:2px solid #000;
  }
  .footer-grid{
    grid-template-columns:1fr 1fr;
    gap:1rem;
  }
  .footer::before{display:none}
  .rainbow-line{
    background:#ccc;
    height:2px;
  }
  .accordion-body{
    max-height:none !important;
    overflow:visible !important;
  }
  .accordion-trigger .icon{display:none}
  a[href^="http"]::after{
    content:" (" attr(href) ")";
    font-size:.8em;
    font-weight:normal;
  }
  a[href^="tel:"]::after,
  a[href^="mailto:"]::after{
    content:" (" attr(href) ")";
    font-size:.8em;
    font-weight:normal;
  }
}
