:root{
  --accent:#C6E45A;
  --accent-mid:#97B921;
  --accent-soft:#DFF48C;
  --dark:#25541A;
  --dark-deep:#1F4A12;
  --deep:#215315;
  --olive:#7FA01C;
  --terra:#E2662F;
  --paper:#FBFAF5;
  --text:#3a3a36;
  --max:900px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  color:var(--text);
  background:var(--paper);
  font-family:'Inter', Arial, Helvetica, sans-serif;
  font-size:16px;
  line-height:1.8;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

.rk-topline{ height:2px; width:100%; background:linear-gradient(90deg, var(--accent-mid) 0%, var(--terra) 100%); }

/* ---------- HEADER ---------- */
.rk-header{
  background:var(--paper);
  border-bottom:1px solid rgba(46,90,28,.14);
  position:sticky; top:0; z-index:60;
}
.rk-header-inner{
  max-width:var(--max); margin:0 auto; padding:14px 22px;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.rk-logo{
  font-size:15px; font-weight:700; letter-spacing:-.2px; color:var(--dark-deep);
  text-decoration:none; display:flex; align-items:center; gap:9px;
}
.rk-logo i{ width:9px; height:9px; background:var(--accent-mid); border-radius:50%; display:inline-block; }
.rk-header-tag{
  font-size:11px; letter-spacing:2px; text-transform:uppercase;
  color:var(--olive); font-weight:600;
}

/* ---------- HERO ---------- */
.rk-hero{ position:relative; overflow:hidden; }
.rk-hero-inner{ position:relative; max-width:var(--max); margin:0 auto; padding:52px 22px 46px; }
.rk-hero-wave{
  position:absolute; right:-30px; top:6px; width:330px; height:170px;
  pointer-events:none; opacity:.6;
}
.rk-hero-wave path, .rk-wave path, .rk-underline path, .rk-footer-strip path, .rk-spark path{
  fill:none;
}
.rk-underline{ vector-effect:non-scaling-stroke; }

.rk-kicker{
  font-size:11px; letter-spacing:2.6px; text-transform:uppercase; color:var(--olive);
  font-weight:600; margin-bottom:14px;
}

h1{
  margin:0; font-size:clamp(38px, 6.6vw, 66px); line-height:1.02; font-weight:700;
  letter-spacing:-2px; color:var(--dark-deep); position:relative; display:inline-block;
}
h1 .rk-band{ position:relative; display:inline-block; z-index:1; }
h1 .rk-band::before{
  content:""; position:absolute; left:-5px; right:-5px; top:60%; height:.24em;
  background:var(--accent); opacity:.85; z-index:-1;
  transform:scaleX(0); transform-origin:left;
  transition:transform .9s cubic-bezier(.2,.75,.25,1) .3s;
}
.rk-lit h1 .rk-band::before{ transform:scaleX(1); }
h1 .rk-ital{
  font-family:'Fraunces', Georgia, serif; font-style:italic; font-weight:400;
  color:var(--terra); letter-spacing:-.8px;
}

.rk-hero-lead{
  margin:22px 0 0; font-size:18px; line-height:1.75; max-width:60ch; color:var(--text);
  border-left:2px solid var(--accent); padding-left:20px;
}
.rk-hero-notes{ margin-top:22px; display:flex; flex-wrap:wrap; gap:9px; }
.rk-note{
  font-size:12.5px; letter-spacing:.3px; padding:6px 14px;
  border:1px solid rgba(127,160,28,.45); color:var(--dark); background:rgba(255,255,255,.6);
}

/* ---------- MARQUEE ---------- */
.rk-marquee{ background:var(--accent); overflow:hidden; padding:9px 0; }
.rk-marquee-inner{ display:flex; width:max-content; animation:rk-mq 34s linear infinite; }
.rk-marquee:hover .rk-marquee-inner{ animation-play-state:paused; }
.rk-marquee-track{
  white-space:nowrap; font-size:12.5px; font-weight:600; letter-spacing:2.6px;
  color:#2A5514; text-transform:uppercase;
}
@keyframes rk-mq{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }

/* ---------- WAVE DIVIDER ---------- */
.rk-wave{ display:block; width:100%; height:54px; margin:26px 0 0; }
.rk-wave path{
  fill:none; stroke-linecap:round; vector-effect:non-scaling-stroke;
  stroke-dasharray:1200; stroke-dashoffset:1200;
  transition:stroke-dashoffset 2s cubic-bezier(.3,.7,.3,1);
}
.rk-wave.in path{ stroke-dashoffset:0; }
.rk-wave path.a{ stroke:var(--accent-mid); stroke-width:1.2; }
.rk-wave path.b{ stroke:var(--terra); stroke-width:1.2; opacity:.75; transition-delay:.25s; }

/* ---------- LAYOUT ---------- */
.rk-wrap{ max-width:var(--max); margin:0 auto; padding:30px 22px 0; }

h2{
  margin:60px 0 0; font-size:11.5px; font-weight:700; letter-spacing:2.6px;
  text-transform:uppercase; color:var(--olive);
  display:flex; align-items:center; gap:16px;
}
h2 .rk-rule{ flex:1; height:1px; background:linear-gradient(90deg, var(--accent), rgba(198,228,90,0)); }

h3{
  margin:36px 0 14px; font-size:27px; font-weight:700; letter-spacing:-.8px;
  color:var(--dark-deep); line-height:1.22; position:relative; display:inline-block;
}
h3 .rk-ital{
  font-family:'Fraunces', Georgia, serif; font-style:italic; font-weight:400;
  color:var(--terra); letter-spacing:-.5px;
}
h3 .rk-underline{
  position:absolute; left:0; bottom:-9px; width:100%; height:14px; overflow:visible;
}
h3 .rk-underline path{
  fill:none; stroke:var(--terra); stroke-width:1.6; stroke-linecap:round;
  vector-effect:non-scaling-stroke;
  stroke-dasharray:340; stroke-dashoffset:340;
  transition:stroke-dashoffset 1.3s cubic-bezier(.3,.7,.3,1) .2s;
}
h3.rk-uline.in .rk-underline path{ stroke-dashoffset:0; }

h4{
  margin:32px 0 8px; font-size:12px; font-weight:700; letter-spacing:1.8px;
  text-transform:uppercase; color:var(--olive);
}
p{ margin:0 0 16px; max-width:66ch; }

ul{ margin:0 0 20px; padding:0; list-style:none; max-width:66ch; }
ul li{ position:relative; padding-left:24px; margin-bottom:9px; }
ul li::before{
  content:""; position:absolute; left:0; top:.85em; width:11px; height:1.5px; background:var(--accent-mid);
}
ul.rk-no li::before{ background:var(--terra); }

/* ---------- SUBSECTION ---------- */
.rk-sub{ margin-top:34px; }
.rk-sub > *:last-child{ margin-bottom:0; }

/* ---------- LIST ROWS ---------- */
.rk-checks{ margin:18px 0 0; border-top:1px solid rgba(46,90,28,.18); max-width:66ch; }
.rk-check{
  padding:13px 0; border-bottom:1px solid rgba(46,90,28,.12);
  transition:padding-left .35s cubic-bezier(.2,.7,.3,1), color .35s ease;
}
.rk-check:hover{ padding-left:12px; color:var(--dark-deep); }

/* ---------- SPARK BANNER ---------- */
.rk-spark{
  position:relative; margin-top:56px; background:var(--dark);
  padding:46px 24px; text-align:center; overflow:hidden;
}
.rk-spark svg{ position:absolute; inset:0; width:100%; height:100%; }
.rk-spark-in{ position:relative; }
.rk-spark-v{
  font-size:clamp(24px, 4.4vw, 38px); font-weight:700; line-height:1.32;
  color:var(--accent-soft); letter-spacing:-1.1px; max-width:26ch; margin:0 auto;
}
.rk-spark-v em{
  font-family:'Fraunces', Georgia, serif; font-style:italic; font-weight:400; color:#fff;
  letter-spacing:-.4px;
}

/* ---------- TICKETS ---------- */
.rk-tickets{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:22px; }
.rk-ticket{
  position:relative; padding:20px 20px; overflow:hidden;
  transition:transform .35s cubic-bezier(.2,.7,.3,1);
}
.rk-ticket:hover{ transform:translateY(-3px); }
.rk-ticket.d{ background:var(--dark); color:#EAF3DE; }
.rk-ticket.l{ background:var(--accent); color:#2A5514; }
.rk-ticket.o{ background:var(--terra); color:#fff; }
.rk-ticket::after{
  content:""; position:absolute; right:-11px; top:50%; width:22px; height:22px;
  border-radius:50%; background:var(--paper); transform:translateY(-50%);
}
.rk-tickets .rk-ticket:last-child::after{ display:none; }
.rk-ticket-v{ font-size:26px; font-weight:700; line-height:1.15; letter-spacing:-.9px; }
.rk-ticket-n{ margin-top:10px; padding-top:9px; font-size:11.5px; line-height:1.6; border-top:1px dashed currentColor; }

/* ---------- FOOTER STRIP ---------- */
.rk-footer-strip{ position:relative; height:96px; margin-top:66px; background:var(--accent); overflow:hidden; }
.rk-footer-strip svg{ position:absolute; inset:0; width:100%; height:100%; }
.rk-footer-strip path{ vector-effect:non-scaling-stroke; }
.rk-spark path{ vector-effect:non-scaling-stroke; }

/* ---------- REVEAL ---------- */
.rk-rv{ opacity:0; transform:translateY(18px); transition:opacity .75s ease, transform .75s cubic-bezier(.2,.7,.3,1); }
.rk-rv.in{ opacity:1; transform:none; }

@media (max-width:760px){
  .rk-hero-inner{ padding:40px 20px 34px; }
  .rk-hero-wave{ display:none; }
  .rk-header-tag{ display:none; }
  .rk-tickets{ grid-template-columns:1fr; }
  .rk-ticket::after{ display:none; }
  h3{ font-size:23px; }
}
@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; }
  .rk-rv{ opacity:1; transform:none; }
  .rk-wave path, h3 .rk-underline path{ stroke-dashoffset:0; }
}

/* ---------- COMPARE TABLE ---------- */
.rk-compare{ margin-top:30px; }
.rk-compare-head{
  display:grid; grid-template-columns:150px 1fr 1fr; gap:0;
  border-bottom:2px solid var(--accent);
}
.rk-compare-head div{
  padding:12px 16px; font-size:20px; font-weight:700; color:var(--dark-deep); letter-spacing:-.5px;
}
.rk-compare-head div:first-child{ font-size:0; }
.rk-compare-row{
  display:grid; grid-template-columns:150px 1fr 1fr; gap:0;
  border-bottom:1px solid rgba(46,90,28,.14);
  transition:background .3s ease;
}
.rk-compare-row:hover{ background:rgba(198,228,90,.14); }
.rk-compare-row > div{ padding:18px 16px; font-size:15px; line-height:1.7; }
.rk-compare-key{
  font-size:12px !important; font-weight:700; letter-spacing:1.6px; text-transform:uppercase;
  color:var(--olive); line-height:1.5 !important;
}
.rk-compare-row b{ color:var(--dark-deep); font-weight:700; }
.rk-compare-row em{
  font-family:'Fraunces', Georgia, serif; font-style:italic; font-weight:400;
  color:var(--terra); font-size:1.02em;
}

@media (max-width:760px){
  .rk-compare-head{ display:none; }
  .rk-compare-row{ grid-template-columns:1fr; padding:6px 0 14px; }
  .rk-compare-row > div{ padding:6px 0; }
  .rk-compare-row > div:nth-child(2)::before{ content:"Projektbeiträge"; display:block; font-size:11px; letter-spacing:1.6px; text-transform:uppercase; color:var(--terra); font-weight:700; margin-bottom:4px; }
  .rk-compare-row > div:nth-child(3)::before{ content:"Strukturbeiträge"; display:block; font-size:11px; letter-spacing:1.6px; text-transform:uppercase; color:var(--terra); font-weight:700; margin-bottom:4px; }
}
