/* Self-hosted fonts (SIL OFL, see assets/fonts/) – no requests to Google */
@font-face{font-family:'Nunito';font-style:normal;font-weight:400 700;font-display:swap;src:url(assets/fonts/nunito-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Nunito';font-style:normal;font-weight:400 700;font-display:swap;src:url(assets/fonts/nunito-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Nunito';font-style:normal;font-weight:400 700;font-display:swap;src:url(assets/fonts/nunito-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Nunito';font-style:normal;font-weight:400 700;font-display:swap;src:url(assets/fonts/nunito-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Quicksand';font-style:normal;font-weight:500 700;font-display:swap;src:url(assets/fonts/quicksand-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Quicksand';font-style:normal;font-weight:500 700;font-display:swap;src:url(assets/fonts/quicksand-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
:root{
  /* Babyblau-Palette (hell & verspielt) */
  --blue-50:#d6ecfa;
  --blue-100:#a8d5f2;
  --blue-300:#6fb8e6;
  --blue-500:#3d93c8;
  --blue-700:#2f74a0;
  --blue-900:#1e5276;
  --heading:#1e5276;
  --ink:#2c4a60;
  --ink-soft:#3f5c71;
  --coral:#f2897e;
  --coral-dark:#d9645a;
  --sun:#ffd666;
  --leaf:#9cd1a4;
  --paper:#cfe8f8;
  --card:#ffffff;
  --card-2:#b6dcf4;
  --line:rgba(90,174,219,.25);
  --radius-lg:36px;
  --radius-md:24px;
  --radius-sm:10px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Nunito',sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
}
h1,h2,h3,.brand{
  font-family:'Quicksand','Nunito',sans-serif;
  font-weight:700;
  color:var(--heading);
  margin:0;
}
p{margin:0 0 1em;}
a{color:inherit;}
img,svg{max-width:100%;display:block;}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px;}
.btn{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--coral);
  color:#fff;
  font-family:'Quicksand','Nunito',sans-serif;
  font-weight:700;
  font-size:1.05rem;
  padding:14px 30px;
  border-radius:100px;
  border:none;
  cursor:pointer;
  text-decoration:none;
  white-space:nowrap;
  box-shadow:0 8px 20px rgba(242,137,126,.35);
  transition:transform .15s ease, box-shadow .15s ease;
}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(242,137,126,.45);}
.btn.secondary{
  background:#fff;
  color:var(--blue-700);
  box-shadow:0 6px 16px rgba(90,174,219,.18);
  border:2px solid var(--blue-300);
}
.btn.secondary:hover{background:var(--blue-50);box-shadow:0 10px 20px rgba(90,174,219,.25);}

@keyframes float{
  0%,100%{transform:translateY(0) rotate(0deg);}
  50%{transform:translateY(-18px) rotate(4deg);}
}
@keyframes floatSlow{
  0%,100%{transform:translateY(0) rotate(0deg);}
  50%{transform:translateY(14px) rotate(-3deg);}
}
@keyframes bob{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-8px);}
}
@keyframes spinSlow{
  from{transform:rotate(0deg);}
  to{transform:rotate(360deg);}
}
@keyframes wiggle{
  0%,100%{transform:rotate(0deg);}
  25%{transform:rotate(-6deg);}
  75%{transform:rotate(6deg);}
}

/* ---------- Header ---------- */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(226,242,252,.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 24px;
  gap:14px;
}
.brand{font-size:1.3rem;display:flex;align-items:center;gap:10px;text-decoration:none;}
.brand .logo-icon{width:38px;height:38px;flex:none;}
.brand .logo-icon:hover{animation:wiggle .5s ease;}
.brand .dot{width:12px;height:12px;border-radius:50%;background:var(--coral);}
.nav-links{display:flex;gap:24px;list-style:none;margin:0;padding:0;}
.nav-links a{
  font-family:'Quicksand','Nunito',sans-serif;font-weight:600;
  text-decoration:none;color:var(--ink-soft);
  padding:6px 2px;border-bottom:2px solid transparent;
  white-space:nowrap;
}
.nav-links a:hover{color:var(--heading);border-color:var(--coral);}
.nav-right{display:flex;align-items:center;gap:14px;}
.nav-cta{display:none;}
.burger{
  display:none;flex:none;width:44px;height:44px;
  background:none;border:none;border-radius:var(--radius-sm);
  font-size:1.6rem;line-height:1;cursor:pointer;color:var(--blue-700);
}
.lang{
  position:relative;flex:none;
  display:inline-flex;align-items:center;gap:6px;
  min-height:40px;padding:0 12px;
  font-family:'Quicksand','Nunito',sans-serif;font-weight:700;font-size:.9rem;
  color:var(--blue-700);
  background:var(--blue-50);
  border:1px solid var(--blue-300);
  border-radius:100px;
}
.lang:hover{background:var(--blue-100);}
.lang:focus-within{outline:2px solid var(--sun);outline-offset:2px;}
.lang svg{width:16px;height:16px;flex:none;}
.lang .lang-chev{width:10px;height:10px;}
/* Real <select> stretched invisibly over the pill: native picker, full language names */
.lang select{
  position:absolute;inset:0;width:100%;height:100%;
  opacity:0;cursor:pointer;border:0;
  font-size:16px;color:var(--ink);background:var(--paper);
}

@media(min-width:1100px){
  .nav-cta{display:inline-flex;}
}
@media(max-width:420px){
  .nav{padding:12px 16px;gap:8px;}
  .brand{font-size:1.12rem;gap:8px;}
  .brand .logo-icon{width:32px;height:32px;}
  .nav-right{gap:6px;}
  .lang{padding:0 10px;gap:4px;}
}
@media(max-width:359px){
  .lang .lang-globe{display:none;}
}
@media(max-width:899px){
  .nav-links{
    position:absolute;top:100%;left:0;right:0;
    background:var(--paper);
    flex-direction:column;gap:0;
    border-bottom:1px solid var(--blue-100);
    max-height:0;overflow:hidden;
    transition:max-height .25s ease;
  }
  .nav-links.open{max-height:360px;}
  .nav-links li{border-top:1px solid var(--blue-100);}
  .nav-links a{display:block;padding:16px 24px;}
  .burger{display:block;}
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  overflow:hidden;
  padding:64px 0 150px;
  background:linear-gradient(180deg,#8ac8ef 0%,#acd8f3 60%,var(--paper) 100%);
}
.hero-blob{
  position:absolute;
  top:-140px;right:-160px;
  width:560px;height:560px;
  background:rgba(255,255,255,.28);
  border-radius:44% 56% 62% 38% / 45% 40% 60% 55%;
  z-index:0;
  animation:float 9s ease-in-out infinite;
}
.hero-blob.two{
  top:auto;bottom:-220px;left:-180px;right:auto;
  width:420px;height:420px;
  background:rgba(255,255,255,.22);
  border-radius:60% 40% 30% 70% / 50% 60% 40% 50%;
  animation:floatSlow 11s ease-in-out infinite;
}
.hero-rainbow{
  position:absolute;top:-70px;left:50%;transform:translateX(-50%);
  width:520px;max-width:80vw;opacity:.35;z-index:0;
}
.hero-cloud{position:absolute;z-index:0;width:130px;opacity:.95;}
.hero-cloud.c1{top:14%;left:3%;animation:floatSlow 12s ease-in-out infinite;}
.hero-cloud.c2{top:6%;right:38%;width:90px;animation:float 14s ease-in-out infinite;}
.hero-star{position:absolute;font-size:1.6rem;z-index:1;opacity:.9;}
.hero-star.s1{top:18%;left:6%;color:var(--coral);animation:bob 4s ease-in-out infinite;}
.hero-star.s2{top:8%;left:42%;color:#f5bf2a;animation:bob 5s ease-in-out infinite .5s;}
.hero-star.s3{top:70%;left:2%;color:var(--blue-500);animation:bob 4.5s ease-in-out infinite 1s;}
.hero-wave{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:90px;z-index:1;display:block;}
.hero-inner{
  position:relative;z-index:2;
  display:grid;grid-template-columns:1fr;gap:48px;
  align-items:center;
}
@media(min-width:900px){
  .hero-inner{grid-template-columns:1fr 1fr;}
}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-family:'Quicksand','Nunito',sans-serif;font-weight:700;
  color:var(--blue-700);
  background:#fff;
  box-shadow:0 6px 14px rgba(90,174,219,.2);
  padding:7px 18px;border-radius:100px;
  font-size:.95rem;margin-bottom:20px;
}
.hero h1{font-size:clamp(2.1rem,4.4vw,3.5rem);line-height:1.15;margin-bottom:18px;}
.hero h1 .accent{color:var(--coral);position:relative;white-space:nowrap;}
.hero h1 .accent::after{
  content:"";position:absolute;left:0;right:0;bottom:-.12em;height:.32em;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 12' preserveAspectRatio='none'%3E%3Cpath d='M2 8 Q 17 1 32 7 T 62 7 T 92 7 T 118 6' fill='none' stroke='%23FFD666' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center/100% 100%;
}
.hero .lead{font-size:1.15rem;color:var(--ink-soft);max-width:46ch;margin-bottom:30px;}
.hero-actions{display:flex;flex-wrap:wrap;gap:16px;}

/* Großes Foto vom Spielzimmer – verspielte, weiche Form */
.hero-art{
  position:relative;
  width:100%;max-width:520px;
  justify-self:center;
}
.hero-art::before{
  content:"";position:absolute;inset:6% -5% -4% 7%;
  background:var(--blue-300);
  border-radius:58% 42% 48% 52% / 46% 54% 46% 54%;
  transform:rotate(6deg);
  z-index:0;
}
.hero-photo{
  position:relative;z-index:1;
  width:100%;
  aspect-ratio:4/5;
  border-radius:46% 54% 42% 58% / 38% 40% 60% 62%;
  overflow:hidden;
  border:8px solid #fff;
  box-shadow:0 26px 50px rgba(47,116,160,.28);
}
.hero-photo img{
  width:100%;height:100%;object-fit:cover;object-position:50% 60%;display:block;
}
.hero-art .logo-badge{
  position:absolute;z-index:2;
  left:-14px;bottom:8%;
  width:118px;height:118px;
  background:#fff;border-radius:50%;padding:10px;
  box-shadow:0 14px 28px rgba(47,116,160,.25);
  animation:bob 5s ease-in-out infinite;
}
.hero-art .dot{position:absolute;z-index:2;border-radius:50%;}
.hero-art .dot.d1{width:46px;height:46px;background:var(--sun);top:2%;right:4%;animation:bob 4s ease-in-out infinite .3s;}
.hero-art .dot.d2{width:24px;height:24px;background:var(--coral);top:14%;left:-4px;animation:bob 5s ease-in-out infinite .8s;}
.hero-art .dot.d3{width:30px;height:30px;background:var(--leaf);bottom:-2%;right:18%;animation:bob 4.5s ease-in-out infinite .1s;}
@media(max-width:520px){
  .hero{padding-bottom:120px;}
  .hero-art{max-width:340px;}
  .hero-art .logo-badge{width:86px;height:86px;left:-6px;}
}

/* ---------- Sections ---------- */
section{padding:88px 0;}
.section-head{max-width:640px;margin-bottom:48px;}
.section-head .kicker{
  font-family:'Quicksand','Nunito',sans-serif;font-weight:600;
  color:var(--coral-dark);font-size:.95rem;margin-bottom:10px;display:block;
}
.section-head h2{font-size:clamp(1.7rem,3vw,2.3rem);}
.section-head h2::after{
  content:"";display:block;width:90px;height:12px;margin-top:12px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 90 12'%3E%3Cpath d='M3 7 Q 13 1 23 7 T 43 7 T 63 7 T 87 6' fill='none' stroke='%23F2897E' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat left center/contain;
}
.section-head p{color:var(--ink-soft);margin-top:14px;}

#werte{background:var(--paper);}

.value-grid{
  display:grid;grid-template-columns:1fr;gap:24px;
}
@media(min-width:700px){.value-grid{grid-template-columns:1fr 1fr;}}
.value-card{
  background:var(--card);
  border-radius:var(--radius-md);
  padding:30px;
  display:flex;gap:18px;align-items:flex-start;
  border:2px solid var(--blue-100);
  box-shadow:0 10px 26px rgba(90,174,219,.12);
  transition:transform .2s ease, box-shadow .2s ease;
}
.value-card:hover{transform:translateY(-4px) rotate(-.6deg);box-shadow:0 16px 32px rgba(90,174,219,.2);}
.value-icon{
  flex:none;width:58px;height:58px;
  border-radius:46% 54% 50% 50% / 55% 45% 55% 45%;
  display:flex;align-items:center;justify-content:center;
  font-size:1.5rem;
}
.value-card:hover .value-icon{animation:wiggle .5s ease;}
.value-card:nth-child(1) .value-icon{background:#fde2de;}
.value-card:nth-child(2) .value-icon{background:#dcf1e0;}
.value-card:nth-child(3) .value-icon{background:#d4ecfa;}
.value-card:nth-child(4) .value-icon{background:#fff1c4;}
.value-card h3{font-size:1.15rem;margin-bottom:6px;}
.value-card p{color:var(--ink-soft);margin:0;font-size:.98rem;}

.usp-row{
  display:grid;grid-template-columns:1fr;gap:20px;
}
@media(min-width:700px){.usp-row{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1100px){.usp-row{grid-template-columns:repeat(4,1fr);}}
.usp-card{
  padding:28px 24px;
  border-radius:var(--radius-md);
  background:var(--card);
  border:2px dashed var(--blue-300);
  text-align:left;
  transition:transform .2s ease;
}
.usp-card:hover{transform:translateY(-4px);}
.usp-card .num{
  display:inline-flex;align-items:center;justify-content:center;
  width:54px;height:54px;border-radius:50%;
  font-family:'Quicksand','Nunito',sans-serif;font-weight:700;
  color:#fff;background:var(--blue-500);font-size:1.25rem;line-height:1;margin-bottom:14px;
}
.usp-card:nth-child(2) .num{background:var(--coral);}
.usp-card:nth-child(3) .num{background:#7cc08a;}
.usp-card:nth-child(4) .num{background:#f2b833;}
.usp-card h3{font-size:1.1rem;margin-bottom:8px;}
.usp-card p{color:var(--ink-soft);margin:0;font-size:.95rem;}

/* ---------- Tagesablauf ---------- */
#tagesablauf{
  position:relative;
  background:var(--blue-100);
  background-image:radial-gradient(rgba(255,255,255,.7) 2px, transparent 2.5px);
  background-size:28px 28px;
}
.timeline{
  position:relative;
  max-width:640px;
  margin-top:10px;
}
.timeline::before{
  content:"";position:absolute;left:29px;top:8px;bottom:8px;width:2px;
  background:repeating-linear-gradient(180deg,var(--blue-500) 0 8px,transparent 8px 16px);
  opacity:.5;
}
.t-item{
  position:relative;
  display:flex;gap:22px;
  align-items:center;
  padding:0 0 40px;
}
.t-item:last-child{padding-bottom:0;}
.t-time{
  flex:none;width:60px;height:60px;border-radius:50%;
  background:#fff;
  color:var(--blue-700);
  border:3px solid var(--blue-300);
  box-shadow:0 6px 14px rgba(47,116,160,.15);
  display:flex;align-items:center;justify-content:center;
  font-family:'Quicksand','Nunito',sans-serif;font-weight:700;font-size:.8rem;
  text-align:center;line-height:1.1;
  flex-direction:column;
  z-index:1;
}
.t-unit:empty{display:none;}
.t-item:nth-child(2) .t-time{border-color:var(--coral);}
.t-item:nth-child(3) .t-time{border-color:var(--leaf);}
.t-item:nth-child(4) .t-time{border-color:var(--sun);}
.t-content{background:rgba(255,255,255,.75);border-radius:var(--radius-md);padding:12px 18px;flex:1;}
.t-content h3{font-size:1.15rem;margin-bottom:4px;}
.t-content p{color:var(--ink-soft);margin:0;font-size:.95rem;}

/* ---------- Anmeldung / Kontakt ---------- */
.form-wrap{
  display:grid;grid-template-columns:1fr;gap:48px;
}
@media(min-width:900px){.form-wrap{grid-template-columns:.9fr 1.1fr;}}
.info-card{
  background:var(--card);
  border-radius:var(--radius-lg);
  padding:36px;
  border:2px solid var(--blue-100);
  box-shadow:0 10px 26px rgba(90,174,219,.12);
}
.info-card h3{font-size:1.2rem;margin-bottom:16px;}
.info-line{display:flex;gap:12px;margin-bottom:14px;color:var(--ink-soft);font-size:.98rem;}
.info-line .ic{flex:none;width:22px;text-align:center;}

form{
  display:grid;grid-template-columns:1fr 1fr;gap:18px;
}
form .full{grid-column:1/-1;}
label{
  display:block;font-family:'Quicksand','Nunito',sans-serif;font-weight:600;
  font-size:.92rem;color:var(--ink);margin-bottom:6px;
}
input,textarea{
  width:100%;
  border:2px solid var(--line);
  border-radius:var(--radius-sm);
  padding:12px 14px;
  font-family:'Nunito',sans-serif;
  font-size:1rem;
  background:var(--card-2);
  color:var(--ink);
}
input:focus,textarea:focus{outline:none;border-color:var(--coral);}
textarea{resize:vertical;min-height:110px;}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:.88rem;color:var(--ink-soft);}
.consent input{width:auto;margin-top:3px;}
.form-note{font-size:.85rem;color:var(--ink-soft);margin-top:10px;}
.form-note a{text-decoration:underline;}

/* ---------- Footer ---------- */
footer{background:var(--blue-700);color:#e3f2fc;padding:56px 0 28px;}
.footer-grid{display:grid;grid-template-columns:1fr;gap:32px;}
@media(min-width:700px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media(min-width:960px){.footer-grid{grid-template-columns:1.3fr 1fr 1fr 1fr;}}
footer ul .legal-link{
  display:inline-flex;align-items:center;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35);
  padding:6px 16px;border-radius:100px;font-weight:600;
}
footer ul .legal-link:hover{background:rgba(255,255,255,.26);}
footer h4{font-family:'Quicksand','Nunito',sans-serif;color:#fff;font-size:1rem;margin-bottom:14px;}
footer .brand{color:#fff;margin-bottom:10px;}
footer a{color:#e3f2fc;text-decoration:none;}
footer a:hover{color:#fff;}
footer ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;font-size:.95rem;}
.footer-bottom{
  margin-top:44px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;
  font-size:.85rem;color:#cfe6f5;
}

/* Rechtliche Seiten (impressum.html / datenschutz.html) */
.legal-page{padding:56px 0 80px;background:var(--card-2);min-height:60vh;}
.legal-box{background:var(--card);border-radius:var(--radius-md);padding:32px;font-size:.95rem;color:var(--ink-soft);border:2px solid var(--blue-100);overflow-wrap:anywhere;}
.legal-box h2{margin-bottom:16px;}
.legal-box h3{font-size:1.3rem;margin:34px 0 12px;}
.legal-box h4{font-family:'Quicksand','Nunito',sans-serif;color:var(--heading);font-size:1.05rem;margin:24px 0 8px;}
.legal-box h5{font-family:'Quicksand','Nunito',sans-serif;color:var(--ink);font-size:.95rem;margin:16px 0 6px;}
.legal-box ul{padding-left:1.3em;}
.legal-box li{margin-bottom:8px;}
.legal-box a{color:var(--blue-700);}
.legal-box p:empty{display:none;}
.legal-box .legal-note{background:var(--blue-50);border-radius:var(--radius-sm);padding:10px 14px;}
.legal-box .legal-line{margin:0 0 8px;}
.legal-box .legal-line b{color:var(--heading);font-family:'Quicksand','Nunito',sans-serif;}

#usps{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--paper) 0%,var(--card-2) 100%);}
#usps::before{
  content:"";position:absolute;top:-120px;right:-100px;width:380px;height:380px;
  background:rgba(159,211,242,.35);opacity:.7;border-radius:55% 45% 60% 40%/50% 60% 40% 50%;z-index:0;
}
#usps::after{
  content:"";position:absolute;bottom:-160px;left:-120px;width:300px;height:300px;
  background:rgba(242,137,126,.14);opacity:.8;border-radius:50%;z-index:0;
}
#usps .wrap{position:relative;z-index:1;}

#anmeldung{position:relative;overflow:hidden;background:var(--card-2);}
#anmeldung::before{
  content:"";position:absolute;top:-100px;left:-140px;width:340px;height:340px;
  background:rgba(255,255,255,.6);opacity:.7;border-radius:40% 60% 55% 45%/55% 40% 60% 45%;z-index:0;
}
#anmeldung::after{
  content:"";position:absolute;bottom:-140px;right:-100px;width:280px;height:280px;
  background:rgba(255,214,102,.25);opacity:.8;border-radius:55% 45% 60% 40%/45% 55% 40% 60%;z-index:0;
}
#anmeldung .wrap{position:relative;z-index:1;}

/* ---------- Über mich ---------- */
#ueber-mich{background:var(--paper);}
.about-wrap{display:grid;grid-template-columns:1fr;gap:40px;align-items:center;}
@media(min-width:860px){.about-wrap{grid-template-columns:.8fr 1.2fr;}}
.about-portrait{
  background:var(--blue-100);
  border-radius:var(--radius-lg);
  border:8px solid #fff;
  box-shadow:0 0 0 3px var(--blue-300), 0 20px 40px rgba(47,116,160,.2);
  transform:rotate(-2deg);
  aspect-ratio:1/1;
  display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;
}
.about-portrait .initial{
  font-family:'Quicksand','Nunito',sans-serif;font-weight:700;font-size:5rem;color:var(--blue-100);opacity:.5;
}
.about-portrait img{
  width:100%;height:100%;object-fit:cover;display:block;
}
.about-facts{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:10px;}
.about-facts li{display:flex;gap:10px;font-size:.97rem;color:var(--ink-soft);}
.about-facts li b{color:var(--ink);font-family:'Quicksand','Nunito',sans-serif;font-weight:600;}
.quote-box{
  margin-top:26px;
  border-left:4px solid var(--coral);
  padding:14px 20px;
  background:var(--card-2);
  border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  font-style:italic;color:var(--blue-900);
}
.quote-box span{display:block;margin-top:6px;font-style:normal;font-weight:600;font-family:'Quicksand','Nunito',sans-serif;font-size:.85rem;color:var(--ink-soft);}

/* ---------- Entrance animations ---------- */
@keyframes fadeUp{
  from{opacity:0;transform:translateY(14px);}
  to{opacity:1;transform:none;}
}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
header{animation:fadeIn .5s ease both;}
.hero-inner > div:first-child > *{animation:fadeUp .7s cubic-bezier(.2,.7,.2,1) both;}
.hero-inner > div:first-child > :nth-child(1){animation-delay:.05s;}
.hero-inner > div:first-child > :nth-child(2){animation-delay:.15s;}
.hero-inner > div:first-child > :nth-child(3){animation-delay:.25s;}
.hero-inner > div:first-child > :nth-child(4){animation-delay:.35s;}
.hero-art{animation:fadeUp .8s cubic-bezier(.2,.7,.2,1) .3s both;}

/* Sections fade in on scroll; .js-reveal is only set when JS + IntersectionObserver run */
.js-reveal .section-head, .js-reveal .value-card, .js-reveal .usp-card, .js-reveal .about-wrap > *, .js-reveal .t-item, .js-reveal .info-card, .js-reveal .contact-actions{
  opacity:0;transform:translateY(20px);
  transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1);
}
.js-reveal .is-visible{opacity:1;transform:none;}

@media (prefers-reduced-motion: reduce){
  header, .hero-inner > div:first-child > *, .hero-art{animation:none;}
}

/* ---------- Ehemals Inline-Styles (für strikte Content-Security-Policy ausgelagert) ---------- */
.plain-link{color:inherit;text-decoration:none;}
.contact-actions{display:flex;flex-direction:column;gap:1rem;align-items:flex-start;margin-top:1.5rem;}
.contact-actions .form-note{margin-top:.5rem;}
.footer-tagline{max-width:32ch;color:#d4ecfa;}

/* ---------- Unterseiten ---------- */
.back-link{
  display:inline-flex;align-items:center;gap:6px;margin-bottom:22px;
  font-family:'Quicksand','Nunito',sans-serif;font-weight:700;color:var(--blue-700);text-decoration:none;
}
.back-link:hover{text-decoration:underline;}
.legal-box .legal-meta{font-size:.85rem;color:var(--ink-soft);margin-top:34px;}
.legal-box address{font-style:normal;}
.notfound{text-align:center;padding:96px 0;}
.notfound h1{font-size:clamp(2rem,5vw,3rem);margin-bottom:14px;}
.notfound p{color:var(--ink-soft);margin-bottom:28px;}
:focus-visible{outline:3px solid var(--sun);outline-offset:3px;}

.legal-box h1{font-size:clamp(1.7rem,3vw,2.3rem);margin-bottom:16px;}
