:root{
  --cream:#EDE9E2; --ink:#3B2A22; --taupe:#8C7A6E; --line:#DDD1C4; --blush:#F5D9E3;
  --font-display:'Baloo 2', 'Arial Black', Arial, sans-serif;
  --font-body:'Inter', 'Helvetica Neue', Arial, sans-serif;
}
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
html,body{ margin:0; overflow-x:hidden; max-width:100%; }
body{ background:var(--cream); color:var(--ink); font-family:var(--font-body); line-height:1.6; }
a{ text-decoration:none; color:inherit; }
img{ max-width:100%; display:block; }
.display{ font-family:var(--font-display); }
h1,h2,h3,h4{ text-wrap:balance; }
p{ text-wrap:pretty; }
a:focus-visible, button:focus-visible, input:focus-visible{ outline:2px solid var(--ink); outline-offset:3px; }
.skip-link{ position:absolute; left:-999px; top:auto; background:var(--ink); color:var(--cream); padding:12px 20px; border-radius:0 0 8px 0; z-index:100; font-weight:700; font-size:14px; }
.skip-link:focus{ left:0; top:0; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } *{ transition-duration:0.01ms !important; animation-duration:0.01ms !important; } }

header{ display:flex; align-items:center; justify-content:space-between; padding:20px 60px; position:sticky; top:0; background:rgba(237,233,226,.92); backdrop-filter:blur(6px); z-index:20; border-bottom:1px solid var(--line); }
.logo{ display:flex; align-items:center; gap:12px; }
.logo img.avatar{ height:34px; width:34px; border-radius:50%; }
.logo img.word{ height:20px; }
nav{ display:flex; gap:32px; font-size:14.5px; font-weight:600; }
nav a{ position:relative; padding-bottom:2px; transition:color .2s ease; }
nav a:hover{ color:var(--taupe); }
nav a.active{ color:var(--ink); }
nav a.active::after{ content:''; position:absolute; left:0; right:0; bottom:-4px; height:2px; background:var(--blush); border-radius:2px; }
.cta-btn{ background:var(--ink); color:var(--cream); padding:11px 22px; border-radius:9px; font-size:14px; font-weight:700; white-space:nowrap; transition:transform .2s ease, opacity .2s ease; }
.cta-btn:hover{ opacity:.88; transform:translateY(-1px); }
.cta-btn:active{ transform:translateY(0) scale(0.97); }

.badge-status{ display:inline-flex; align-items:center; gap:6px; background:var(--blush); color:var(--ink); font-size:12px; font-weight:700; padding:6px 14px; border-radius:20px; margin-bottom:18px; }

.eyebrow{ font-size:12.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--taupe); margin-bottom:14px; }
.hero-ctas{ display:flex; gap:16px; align-items:center; flex-wrap:wrap; }
.btn-primary{ background:var(--blush); color:var(--ink); padding:15px 26px; border-radius:10px; font-weight:700; font-size:15px; transition:transform .2s ease, box-shadow .2s ease, filter .2s ease; }
.btn-primary:hover{ filter:brightness(0.97); transform:translateY(-2px); box-shadow:0 10px 24px -12px rgba(59,42,34,.35); }
.btn-primary:active{ transform:translateY(0) scale(0.98); }
.btn-secondary{ font-weight:700; font-size:15px; border-bottom:2px solid var(--ink); padding-bottom:3px; transition:opacity .2s ease; }
.btn-secondary:hover{ opacity:.7; }
.btn-secondary.on-dark{ border-bottom-color:var(--blush); color:var(--cream); }

/* Full-bleed photo hero */
.hero-img{ position:relative; min-height:600px; display:flex; align-items:center; background-size:cover; background-position:center; overflow:hidden; }
.hero-overlay{ position:absolute; inset:0; background:linear-gradient(100deg, rgba(59,42,34,.94) 0%, rgba(59,42,34,.8) 38%, rgba(59,42,34,.4) 72%, rgba(59,42,34,.12) 100%); }
.hero-content{ position:relative; z-index:1; max-width:1280px; margin:0 auto; padding:70px 60px 130px; width:100%; color:var(--cream); }
.hero-content h1{ font-size:56px; line-height:1.04; font-weight:800; margin:0 0 22px; letter-spacing:-1px; color:var(--cream); }
.hero-content h1 u{ text-decoration:underline; text-decoration-color:var(--blush); text-decoration-thickness:9px; text-underline-offset:6px; }
.hero-content .eyebrow{ color:#e7ddd3; }
.hero-content p{ font-size:17px; color:#e7ddd3; max-width:48ch; margin:0 0 32px; }

/* Feature strip overlapping the hero bottom edge */
.feature-strip{ max-width:1100px; margin:-64px auto 0; position:relative; z-index:2; display:grid; grid-template-columns:repeat(3,1fr); gap:20px; padding:0 60px; }
.feature-item{ display:block; background:#fff; border-radius:16px; padding:28px 26px; box-shadow:0 20px 40px -22px rgba(59,42,34,.35); transition:transform .25s ease, box-shadow .25s ease; min-width:0; }
.feature-item:hover{ transform:translateY(-4px); box-shadow:0 24px 44px -20px rgba(59,42,34,.32); }
.feature-item:hover .feature-link{ opacity:1; transform:translateX(2px); }
.feature-item .ico{ width:48px; height:48px; border-radius:12px; background:var(--blush); display:flex; align-items:center; justify-content:center; font-size:22px; margin-bottom:16px; }
.feature-item h4{ margin:0 0 8px; font-size:16.5px; }
.feature-item p{ margin:0 0 10px; font-size:13.5px; color:var(--taupe); line-height:1.55; }
.feature-item .feature-link{ display:inline-block; font-size:12.5px; font-weight:700; color:var(--ink); opacity:.7; transition:opacity .2s ease, transform .2s ease; }

/* Clickable offer-teaser cards on the homepage */
a.offer-card{ cursor:pointer; }
a.offer-card .offer-link{ display:inline-block; margin-top:10px; font-size:12px; font-weight:700; opacity:.75; transition:opacity .2s ease; }
a.offer-card:hover .offer-link{ opacity:1; }

/* Anchor targets: keep cards clear of the sticky header when jumped to, and briefly highlight */
.offer-card{ scroll-margin-top:100px; }
.offer-card:target{ outline:3px solid var(--ink); outline-offset:3px; animation:tl-flash 1.8s ease-out; }
@keyframes tl-flash{ 0%{ box-shadow:0 0 0 10px rgba(59,42,34,.18); } 100%{ box-shadow:none; } }

/* Sub-page photo hero (Angebot) */
.page-hero-img{ position:relative; min-height:340px; display:flex; align-items:center; justify-content:center; background-size:cover; background-position:center; text-align:center; }
.page-hero-img .hero-overlay{ background:linear-gradient(180deg, rgba(59,42,34,.55) 0%, rgba(59,42,34,.85) 100%); }
.page-hero-img .page-hero-content{ position:relative; z-index:1; max-width:680px; margin:0 auto; padding:40px 24px; color:var(--cream); }
.page-hero-img h1{ color:var(--cream); font-size:42px; margin:0 0 14px; letter-spacing:-.5px; }
.page-hero-img p{ color:#e7ddd3; font-size:16px; max-width:56ch; margin:0 auto; }

.trust{ display:flex; justify-content:center; gap:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:20px 60px; }
.trust div{ flex:1; text-align:center; font-size:13px; font-weight:600; color:var(--taupe); }

section{ padding:76px 60px; max-width:1280px; margin:0 auto; }
.section-head{ text-align:center; max-width:620px; margin:0 auto 48px; }
.section-head .eyebrow{ text-align:center; }
.section-head h2{ font-size:36px; font-weight:800; margin:0 0 12px; letter-spacing:-.5px; }
.section-head p{ color:var(--taupe); font-size:15.5px; margin:0; }

/* Sub-page intro banner (Angebot, Aufbau) */
.page-hero{ text-align:center; max-width:760px; margin:0 auto; padding:64px 60px 20px; }
.page-hero h1{ font-size:44px; margin:0 0 14px; letter-spacing:-.5px; }
.page-hero p{ color:var(--taupe); font-size:16px; max-width:56ch; margin:0 auto; }

.about{ display:flex; gap:56px; align-items:center; background:#fff; border-radius:22px; padding:48px; }
.about-photo{ flex:0 0 260px; aspect-ratio:1; border-radius:50%; background:var(--blush); display:flex; align-items:center; justify-content:center; }
.about-photo img{ width:44%; }
.about-text{ flex:1; min-width:0; }
.about-text h2{ font-size:30px; margin:0 0 16px; }
.about-text p{ font-size:15.5px; color:#4a3d34; margin:0 0 14px; }
.about-text .quote{ font-family:var(--font-display); font-size:19px; color:var(--ink); border-left:4px solid var(--blush); padding-left:18px; margin:22px 0; }
.tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.tags span{ background:var(--cream); border:1px solid var(--line); border-radius:20px; padding:6px 14px; font-size:12.5px; font-weight:600; }

.cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.card{ background:#fff; border:1px solid var(--line); border-radius:16px; padding:32px 26px; min-width:0; position:relative; transition:transform .25s ease, box-shadow .25s ease; }
.card:hover{ transform:translateY(-4px); box-shadow:0 16px 32px -18px rgba(59,42,34,.28); }
.card .icon{ width:48px; height:48px; border-radius:12px; background:var(--blush); display:flex; align-items:center; justify-content:center; font-size:21px; margin-bottom:20px; }
.card h3{ font-size:19px; margin:0 0 10px; }
.card p{ font-size:14.5px; color:var(--taupe); line-height:1.6; margin:0; }
.card .status{ display:inline-block; font-size:11px; font-weight:700; padding:3px 10px; border-radius:12px; margin-bottom:14px; }
.card .status.done{ background:#DCEAD9; color:#3B6B3E; }
.card .status.next{ background:var(--blush); color:var(--ink); }
.card .status.later{ background:var(--cream); color:var(--taupe); border:1px solid var(--line); }

.offer-note{ text-align:center; max-width:640px; margin:0 auto 40px; }
.offer-note .badge-status{ margin-bottom:0; }
.offer-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-bottom:28px; }
.offer-card{ border-radius:16px; padding:26px 24px; min-width:0; position:relative; transition:transform .25s ease, box-shadow .25s ease; }
.offer-card:hover{ transform:translateY(-4px); }
.offer-card.espresso{ background:var(--ink); color:var(--cream); }
.offer-card.espresso:hover{ box-shadow:0 18px 32px -16px rgba(59,42,34,.5); }
.offer-card.blush{ background:var(--blush); color:var(--ink); }
.offer-card.blush:hover{ box-shadow:0 18px 32px -18px rgba(59,42,34,.22); }
.offer-card .offer-name{ font-size:19px; margin:0 0 4px; }
.offer-card .offer-price{ font-size:13px; font-weight:700; opacity:.8; margin:0 0 10px; }
.offer-card .offer-desc{ font-size:13.5px; line-height:1.55; margin:0; }
.offer-card.espresso .offer-desc{ color:#d9cfc6; }
.offer-card.blush .offer-desc{ color:#4a362b; }
.offer-card.featured{ outline:2px solid var(--blush); outline-offset:-2px; }
.offer-card .offer-flag{ position:absolute; top:-11px; left:24px; background:var(--blush); color:var(--ink); font-size:10.5px; font-weight:700; padding:4px 12px; border-radius:6px; letter-spacing:.02em; }
.offer-beta{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:20px 26px; text-align:center; font-size:14px; color:#4a3d34; }
.offer-beta a{ font-weight:700; border-bottom:2px solid var(--ink); padding-bottom:2px; }

/* Angebot page: decision guide */
.guide-list{ max-width:640px; margin:0 auto; background:#fff; border-radius:16px; overflow:hidden; border:1px solid var(--line); }
.guide-row{ display:flex; justify-content:space-between; align-items:center; gap:16px; padding:18px 26px; border-bottom:1px solid var(--line); font-size:14.5px; transition:background .2s ease; }
.guide-row:last-child{ border-bottom:none; }
.guide-row:hover{ background:var(--cream); }
.guide-row .q{ color:#4a3d34; }
.guide-row .a{ font-weight:700; white-space:nowrap; color:var(--ink); }

.pillars{ background:var(--ink); color:var(--cream); border-radius:22px; padding:56px; }
.pillars .section-head p{ color:#c9bdb0; }
.pillars .section-head h2{ color:var(--cream); }
.pillar-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.pillar{ background:rgba(255,255,255,.06); border-radius:14px; padding:26px 22px; min-width:0; transition:background .25s ease, transform .25s ease; }
.pillar:hover{ background:rgba(255,255,255,.1); transform:translateY(-3px); }
.pillar .pct{ font-family:var(--font-display); font-size:30px; font-weight:800; color:var(--blush); margin-bottom:8px; }
.pillar h4{ margin:0 0 8px; font-size:16.5px; }
.pillar p{ margin:0; font-size:13.5px; color:#c9bdb0; }

.steps{ display:flex; gap:0; }
.step{ flex:1; text-align:center; padding:0 20px; min-width:0; }
.step .num{ width:46px; height:46px; border-radius:50%; background:var(--ink); color:var(--cream); display:flex; align-items:center; justify-content:center; font-weight:800; margin:0 auto 18px; font-family:var(--font-display); }
.step h4{ font-size:16.5px; margin:0 0 8px; }
.step p{ font-size:13.5px; color:var(--taupe); margin:0; }

.instagram{ background:#fff; border-radius:22px; padding:48px; text-align:center; }
.instagram h2{ font-size:26px; margin:0 0 10px; }
.instagram p{ color:var(--taupe); margin:0 0 24px; font-size:15px; }
.ig-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; max-width:760px; margin:0 auto 26px; }
.ig-tile{ aspect-ratio:1; border-radius:12px; background:linear-gradient(135deg,var(--blush),var(--cream)); display:flex; align-items:center; justify-content:center; font-size:20px; }

/* Timeline (Aufbau page) */
.timeline{ max-width:760px; margin:0 auto; position:relative; }
.timeline::before{ content:''; position:absolute; left:23px; top:8px; bottom:8px; width:2px; background:var(--line); }
.tl-item{ position:relative; padding:0 0 44px 64px; }
.tl-item:last-child{ padding-bottom:0; }
.tl-dot{ position:absolute; left:0; top:0; width:48px; height:48px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:19px; background:#fff; border:2px solid var(--line); z-index:1; }
.tl-item.done .tl-dot{ background:#3B6B3E; border-color:#3B6B3E; color:#fff; }
.tl-item.active .tl-dot{ background:var(--blush); border-color:var(--blush); }
.tl-item.planned .tl-dot{ background:var(--cream); color:var(--taupe); }
.tl-body{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:22px 26px; transition:transform .2s ease, box-shadow .2s ease; }
.tl-item.active .tl-body{ border-color:var(--blush); box-shadow:0 12px 28px -18px rgba(59,42,34,.3); }
.tl-body:hover{ transform:translateX(4px); }
.tl-status{ display:inline-block; font-size:10.5px; font-weight:700; padding:3px 10px; border-radius:10px; margin-bottom:10px; text-transform:uppercase; letter-spacing:.03em; }
.tl-item.done .tl-status{ background:#DCEAD9; color:#3B6B3E; }
.tl-item.active .tl-status{ background:var(--blush); color:var(--ink); }
.tl-item.planned .tl-status{ background:var(--cream); color:var(--taupe); border:1px solid var(--line); }
.tl-body h3{ font-size:18px; margin:0 0 8px; }
.tl-body p{ font-size:14px; color:#4a3d34; margin:0; line-height:1.6; }
.tl-date{ font-size:12px; color:var(--taupe); font-weight:600; margin-left:8px; }

.cta-band{ background:var(--blush); color:var(--ink); text-align:center; padding:64px 60px; border-radius:24px; margin:0 60px 76px; }
.cta-band h2{ font-size:32px; font-weight:800; margin:0 0 14px; }
.cta-band p{ font-size:15.5px; margin:0 0 26px; color:#5b4a40; }
.newsletter-form{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; max-width:440px; margin:0 auto; }
.newsletter-form input{ flex:1; min-width:220px; padding:14px 16px; border-radius:10px; border:1px solid var(--line); font-family:var(--font-body); font-size:14.5px; background:#fff; color:var(--ink); }
.newsletter-form button{ background:var(--ink); color:var(--cream); border:none; padding:14px 22px; border-radius:10px; font-weight:700; font-size:14.5px; cursor:pointer; font-family:var(--font-body); }
.newsletter-form button:hover{ opacity:.88; }
.form-note{ font-size:12px; color:#7a6a5e; margin-top:12px; }
.cta-secondary-link{ display:inline-block; margin-top:18px; font-weight:700; font-size:14.5px; border-bottom:2px solid var(--ink); padding-bottom:2px; }

footer{ padding:44px 60px; display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--line); font-size:13px; color:var(--taupe); flex-wrap:wrap; gap:16px; }
.footer-links{ display:flex; gap:22px; flex-wrap:wrap; }

@media (max-width: 860px){
  header{ padding:16px 20px; }
  nav{ display:none; }
  .hero-img{ min-height:480px; }
  .hero-content{ padding:44px 20px 84px; }
  .hero-content h1{ font-size:36px; }
  .hero-content p{ font-size:15.5px; }
  .feature-strip{ grid-template-columns:1fr; margin-top:-48px; padding:0 20px; gap:14px; }
  .page-hero{ padding:44px 20px 8px; }
  .page-hero h1{ font-size:32px; }
  .page-hero-img{ min-height:280px; }
  .page-hero-img h1{ font-size:30px; }
  section{ padding:52px 20px; }
  .trust{ display:grid; grid-template-columns:1fr 1fr; gap:10px 14px; padding:18px 20px; }
  .trust div{ font-size:12.5px; }
  .about{ flex-direction:column; padding:30px 24px; text-align:center; }
  .about-photo{ flex:0 0 auto; width:180px; }
  .cards, .pillar-grid, .offer-grid{ grid-template-columns:1fr; }
  .steps{ flex-direction:column; gap:28px; }
  .pillars{ padding:34px 24px; }
  .ig-grid{ grid-template-columns:repeat(2,1fr); }
  .cta-band{ margin:0 16px 56px; padding:42px 22px; }
  .newsletter-form{ flex-direction:column; }
  footer{ flex-direction:column; text-align:center; }
  .guide-row{ flex-direction:column; align-items:flex-start; gap:4px; }
  .timeline::before{ left:19px; }
  .tl-item{ padding-left:52px; }
  .tl-dot{ width:40px; height:40px; font-size:16px; }
}
