/* =========================================================
   Meine Trauerrede — shared styles
   Ruhig, würdevoll, barrierearm. Keine externen Fonts/CDNs.
   ========================================================= */

:root{
  /* Warme, ruhige Palette */
  --bg:        #F6F2EA;  /* Knochenweiß / warmes Off-White */
  --bg-warm:   #FBF8F1;  /* etwas heller, für Bänder */
  --surface:   #FFFFFF;
  --ink:       #2A2622;  /* tiefes Tintengrau, kein reines Schwarz */
  --ink-soft:  #5E574D;  /* gedämpfter Fließtext */
  --ink-faint: #8A8275;  /* Bildunterschriften, Meta */
  --line:      #E7E0D3;  /* feine Linien */
  --line-soft: #EFEADF;

  /* Ein einziger gedämpfter Naturton: weiches Salbeigrün */
  --sage:      #8B9A78;  /* dekorativer Akzent */
  --sage-soft: #DCE2D1;  /* sehr helle Salbeifläche */
  --sage-tint: #EEF1E7;  /* Band-Hintergrund */
  --sage-ink:  #4F5C3D;  /* textsicherer Akzent (AA auf bg) */

  /* WhatsApp-Grün nur auf dem CTA, dezent & dunkel genug für AA */
  --wa:        #0E7A51;
  --wa-hover:  #0B6041;

  --r:    14px;
  --r-lg: 22px;
  --r-xl: 30px;

  --shadow-sm: 0 1px 2px rgba(42,38,34,.05);
  --shadow:    0 2px 6px rgba(42,38,34,.05), 0 14px 40px rgba(42,38,34,.06);
  --shadow-lg: 0 4px 12px rgba(42,38,34,.06), 0 30px 70px rgba(42,38,34,.09);

  --maxw: 820px;       /* ruhige Textspalte */
  --maxw-wide: 1080px;

  --serif: "Iowan Old Style","Palatino Linotype","Palatino","Book Antiqua",Georgia,"Times New Roman",serif;
  --sans: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,system-ui,sans-serif;
  --mono: ui-monospace,"SF Mono","Cascadia Mono",Menlo,Consolas,monospace;
}

*,*::before,*::after{box-sizing:border-box;}

html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-size:19px;
  line-height:1.75;
  letter-spacing:.003em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  /* sehr feine, ruhige Papiertextur */
  background-image:
    radial-gradient(transparent, transparent),
    url("assets/grain.svg");
  background-attachment:fixed;
}

/* ---------- Typo ---------- */
h1,h2,h3{ font-family:var(--serif); font-weight:600; color:var(--ink); letter-spacing:-.01em; line-height:1.18; text-wrap:balance; }
h1{ font-size:clamp(2.1rem,1.4rem + 3vw,3.4rem); font-weight:600; line-height:1.12; }
h2{ font-size:clamp(1.65rem,1.2rem + 1.8vw,2.4rem); margin:0 0 .5em; }
h3{ font-size:clamp(1.2rem,1.05rem + .5vw,1.45rem); }
p{ margin:0 0 1.1em; text-wrap:pretty; }
p:last-child{ margin-bottom:0; }
strong{ font-weight:650; color:var(--ink); }

.lead{ font-size:clamp(1.12rem,1rem + .5vw,1.35rem); color:var(--ink-soft); line-height:1.6; }

a{ color:var(--sage-ink); font-weight:600; text-decoration:none; }
a:hover{ text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1.5px; }

/* sichtbarer Fokus überall */
a:focus-visible, button:focus-visible, .btn:focus-visible, summary:focus-visible{
  outline:3px solid var(--sage-ink);
  outline-offset:3px;
  border-radius:6px;
}

/* ---------- Layout ---------- */
.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:clamp(20px,5vw,32px); }
.wrap-wide{ max-width:var(--maxw-wide); }
section{ padding-block:clamp(56px,8vw,104px); }
.band{ background:var(--bg-warm); }
.band-sage{ background:var(--sage-tint); }

.eyebrow{
  font-family:var(--sans); font-size:.82rem; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--sage-ink);
  margin:0 0 1rem;
}
.section-intro{ max-width:42ch; }
.section-intro.center{ margin-inline:auto; text-align:center; max-width:46ch; }

/* feine Trennlinie als ruhiges Ornament */
.rule{ width:46px; height:2px; background:var(--sage); border:0; margin:0 0 1.4rem; border-radius:2px; }
.center .rule{ margin-inline:auto; }

/* ---------- Skip link ---------- */
.skip{
  position:absolute; left:16px; top:-100px; z-index:100;
  background:var(--surface); color:var(--ink); padding:12px 18px;
  border-radius:10px; box-shadow:var(--shadow); font-weight:600;
  transition:top .15s ease;
}
.skip:focus{ top:16px; text-decoration:none; }

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:40;
  background:color-mix(in srgb, var(--bg) 86%, transparent);
  backdrop-filter:saturate(1.1) blur(8px);
  -webkit-backdrop-filter:saturate(1.1) blur(8px);
  border-bottom:1px solid var(--line-soft);
}
.site-header .wrap-wide{ display:flex; align-items:center; justify-content:space-between; min-height:64px; padding-block:10px; }
.brandmark{ display:inline-flex; align-items:center; gap:11px; color:var(--ink); font-weight:600; }
.brandmark:hover{ text-decoration:none; }
.brandmark .seal{
  width:34px; height:34px; border-radius:50%;
  background:var(--sage-soft); color:var(--sage-ink);
  display:grid; place-items:center; font-family:var(--serif); font-size:1.05rem; font-weight:700;
}
.brandmark .name{ font-family:var(--serif); font-size:1.16rem; letter-spacing:.01em; }
.header-link{ font-size:.98rem; }
@media (max-width:560px){ .header-link.desk{ display:none; } }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:12px;
  min-height:56px; padding:15px 28px;
  font-family:var(--sans); font-size:1.06rem; font-weight:650; line-height:1.2;
  border-radius:999px; border:1px solid transparent; cursor:pointer;
  text-decoration:none; transition:background .18s ease, transform .18s ease, box-shadow .18s ease;
}
.btn:hover{ text-decoration:none; }
.btn-wa{ background:var(--wa); color:#fff; box-shadow:var(--shadow); }
.btn-wa:hover{ background:var(--wa-hover); transform:translateY(-1px); }
.btn-wa:active{ transform:translateY(0); }
.btn-wa .ic{ width:24px; height:24px; flex:0 0 auto; }
.btn-ghost{
  background:var(--surface); color:var(--ink);
  border-color:var(--line); box-shadow:var(--shadow-sm); min-height:52px;
}
.btn-ghost:hover{ border-color:var(--sage); }
@media (prefers-reduced-motion: reduce){ .btn{ transition:none; } .btn:hover{ transform:none; } }

/* ---------- Hero ---------- */
.hero{ padding-top:clamp(40px,6vw,72px); padding-bottom:clamp(48px,8vw,96px); }
.hero-grid{ display:grid; gap:clamp(32px,5vw,64px); grid-template-columns:1fr; align-items:center; }
@media (min-width:900px){ .hero-grid{ grid-template-columns:1.15fr .85fr; } }
.hero h1{ margin:.2em 0 .35em; }
.hero .lead{ max-width:36ch; }
.hero-cta{ margin-top:2rem; display:flex; flex-direction:column; gap:14px; align-items:flex-start; }
.reassure{ margin-top:1.4rem; font-size:.98rem; color:var(--ink-faint); display:flex; align-items:center; gap:10px; }
.reassure .dot{ width:6px; height:6px; border-radius:50%; background:var(--sage); flex:0 0 auto; }

/* QR-Karte (Desktop) */
.qr-card{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-xl);
  padding:30px 30px 26px; box-shadow:var(--shadow); text-align:center; max-width:340px; justify-self:center;
}
.qr-card .qr-frame{
  background:#fff; border-radius:16px; padding:14px; display:inline-block; line-height:0;
  border:1px solid var(--line-soft);
}
.qr-card .qr-frame img{ width:210px; height:210px; display:block; }
.qr-card .qr-head{ font-family:var(--serif); font-size:1.18rem; margin:18px 0 6px; }
.qr-card .qr-sub{ font-size:.98rem; color:var(--ink-soft); margin:0 0 14px; line-height:1.5; }
.qr-card .qr-num{ font-size:.95rem; color:var(--ink-faint); margin:0; }
.qr-card .qr-num b{ color:var(--ink); font-weight:650; white-space:nowrap; }
/* QR nur auf Desktop, Button-Logik unten regelt Mobil */
.only-desktop{ display:none; }
@media (min-width:900px){ .only-desktop{ display:block; } }

/* ---------- Steps / How it works ---------- */
.steps{ display:grid; gap:clamp(40px,6vw,72px); margin-top:clamp(36px,5vw,56px); }
.step{ display:grid; gap:clamp(24px,4vw,52px); align-items:center; grid-template-columns:1fr; }
@media (min-width:820px){
  .step{ grid-template-columns:1fr minmax(260px,300px); }
  .step.flip{ grid-template-columns:minmax(260px,300px) 1fr; }
  .step.flip .step-body{ order:2; }
}
.step-num{
  display:inline-grid; place-items:center; width:44px; height:44px; border-radius:50%;
  background:var(--sage-soft); color:var(--sage-ink); font-family:var(--serif); font-weight:700; font-size:1.25rem;
  margin-bottom:1rem;
}
.step-body h3{ margin:0 0 .5rem; }
.step-body p{ color:var(--ink-soft); max-width:40ch; }
.step-media{ justify-self:center; }

/* ---------- Phone mockup + Screenshot-Platzhalter ---------- */
.phone{
  width:268px; border-radius:38px; background:#13110F; padding:11px;
  box-shadow:var(--shadow-lg); position:relative;
}
.phone::before{ /* Lautsprecher */
  content:""; position:absolute; top:20px; left:50%; transform:translateX(-50%);
  width:52px; height:5px; border-radius:3px; background:#2c2925; z-index:3;
}
.phone-screen{
  border-radius:28px; overflow:hidden; background:var(--bg-warm); aspect-ratio:9/19;
  display:flex; flex-direction:column;
}
.phone-screen img{ width:100%; height:100%; object-fit:cover; display:block; }

/* WhatsApp-Chat-Skelett als Platzhalter (bis echte Screenshots da sind) */
.wa-mock{ display:flex; flex-direction:column; height:100%; background:#E7E1D8;
  background-image:linear-gradient(transparent,transparent); }
.wa-top{ background:#0E7A51; color:#fff; padding:30px 14px 12px; display:flex; align-items:center; gap:10px; }
.wa-top .ava{ width:34px; height:34px; border-radius:50%; background:#fff; overflow:hidden; display:grid; place-items:center; }
.wa-top .ava img{ width:100%; height:100%; object-fit:contain; padding:3px; box-sizing:border-box; }
.wa-top .who{ line-height:1.2; }
.wa-top .who .n{ font-weight:650; font-size:.92rem; }
.wa-top .who .s{ font-size:.72rem; opacity:.85; }
.wa-body{ flex:1; padding:14px 12px; display:flex; flex-direction:column; gap:10px; overflow:hidden; }
.bubble{ max-width:80%; padding:9px 12px; border-radius:14px; font-size:.8rem; line-height:1.4; color:var(--ink); box-shadow:0 1px 1px rgba(0,0,0,.05); }
.bubble.in{ background:#fff; align-self:flex-start; border-top-left-radius:4px; }
.bubble.out{ background:#DCF7E3; align-self:flex-end; border-top-right-radius:4px; }
.bubble .ph-line{ display:block; height:7px; border-radius:4px; background:currentColor; opacity:.16; margin:5px 0; }
.bubble.doc{ display:flex; align-items:center; gap:9px; }
.bubble.doc .fi{ width:26px; height:30px; border-radius:4px; background:var(--sage-soft); flex:0 0 auto; }
.voice{ display:flex; align-items:center; gap:8px; }
.voice .play{ width:22px; height:22px; border-radius:50%; background:var(--wa); flex:0 0 auto; }
.voice .wave{ flex:1; height:18px; background:
  repeating-linear-gradient(90deg, currentColor 0 2px, transparent 2px 5px); opacity:.4; border-radius:2px; }
.ph-label{ font-family:var(--mono); font-size:.62rem; letter-spacing:.04em; color:var(--ink-faint); text-transform:uppercase;
  text-align:center; padding:7px 8px; background:rgba(0,0,0,.03); }

.media-caption{ font-size:.86rem; color:var(--ink-faint); text-align:center; margin:14px 0 0; }

/* ---------- "Was Sie bekommen" ---------- */
.benefits-layout{ display:grid; gap:clamp(32px,5vw,60px); grid-template-columns:1fr; align-items:center; }
@media (min-width:860px){ .benefits-layout{ grid-template-columns:1fr minmax(280px,340px); } }
.benefits{ list-style:none; margin:1.6rem 0 0; padding:0; display:grid; gap:1.15rem; }
.benefits li{ display:grid; grid-template-columns:auto 1fr; gap:14px; align-items:start; }
.benefits .mk{ width:28px; height:28px; border-radius:50%; background:var(--sage-soft); color:var(--sage-ink);
  display:grid; place-items:center; flex:0 0 auto; margin-top:2px; }
.benefits .mk svg{ width:15px; height:15px; }
.benefits b{ display:block; font-weight:650; }
.benefits span.t{ color:var(--ink-soft); font-size:.98rem; }

/* Dokument-Platzhalter (gesetzte Rede) */
.doc-mock{
  width:300px; aspect-ratio:1/1.41; background:#fff; border-radius:10px; box-shadow:var(--shadow);
  border:1px solid var(--line-soft); padding:34px 30px; justify-self:center; position:relative; overflow:hidden;
}
.doc-mock .d-eyebrow{ font-family:var(--mono); font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; color:var(--sage-ink); }
.doc-mock .d-title{ font-family:var(--serif); font-size:1.25rem; line-height:1.2; margin:.5rem 0 1.3rem; color:var(--ink); }
.doc-mock .d-line{ height:7px; border-radius:4px; background:var(--line); margin:9px 0; }
.doc-mock .d-line.s{ width:62%; }
.doc-mock .d-line.m{ width:88%; }
.doc-mock .d-gap{ height:14px; }
.doc-mock .ph-label{ position:absolute; left:0; right:0; bottom:0; }

/* ---------- Vertraulichkeit ---------- */
.trust-card{ display:flex; gap:18px; align-items:flex-start; max-width:62ch; }
.trust-card .ic-wrap{ width:46px; height:46px; border-radius:12px; background:var(--surface); border:1px solid var(--line);
  display:grid; place-items:center; flex:0 0 auto; color:var(--sage-ink); box-shadow:var(--shadow-sm); }
.trust-card .ic-wrap svg{ width:24px; height:24px; }

/* ---------- Preis ---------- */
.price-grid{ display:grid; gap:22px; grid-template-columns:1fr; margin-top:clamp(30px,4vw,44px); max-width:720px; }
@media (min-width:680px){ .price-grid{ grid-template-columns:1fr 1fr; } }
.price-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:30px 28px;
  box-shadow:var(--shadow-sm); }
.price-card.feature{ border-color:var(--sage); box-shadow:var(--shadow); }
.price-card .tier{ font-family:var(--sans); font-size:.8rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--sage-ink); margin:0 0 .6rem; }
.price-card .amount{ font-family:var(--serif); font-size:2.5rem; font-weight:600; color:var(--ink); line-height:1; }
.price-card .amount .eur{ font-size:1.4rem; }
.price-card .desc{ margin:.9rem 0 0; color:var(--ink-soft); font-size:.98rem; }
.price-note{ margin-top:1.6rem; font-size:.96rem; color:var(--ink-faint); max-width:60ch; font-style:italic; }
.price-reassure{ margin-top:1.4rem; display:flex; flex-wrap:wrap; gap:10px 22px; }
.price-reassure span{ display:inline-flex; align-items:center; gap:8px; font-size:.95rem; color:var(--ink-soft); }
.price-reassure .dot{ width:6px; height:6px; border-radius:50%; background:var(--sage); }

/* ---------- FAQ ---------- */
.faq{ max-width:760px; margin-top:clamp(28px,4vw,40px); border-top:1px solid var(--line); }
.faq details{ border-bottom:1px solid var(--line); }
.faq summary{
  list-style:none; cursor:pointer; padding:22px 44px 22px 4px; position:relative;
  font-family:var(--serif); font-size:1.18rem; color:var(--ink); font-weight:600;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:""; position:absolute; right:8px; top:50%; width:13px; height:13px;
  border-right:2px solid var(--sage-ink); border-bottom:2px solid var(--sage-ink);
  transform:translateY(-65%) rotate(45deg); transition:transform .2s ease;
}
.faq details[open] summary::after{ transform:translateY(-35%) rotate(-135deg); }
.faq .answer{ padding:0 4px 24px; color:var(--ink-soft); max-width:64ch; }
@media (prefers-reduced-motion: reduce){ .faq summary::after{ transition:none; } }

/* ---------- Kontakt ---------- */
.contact-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:clamp(30px,5vw,48px); box-shadow:var(--shadow); text-align:center; max-width:640px; margin-inline:auto; }
.contact-card .mail{ font-family:var(--serif); font-size:clamp(1.3rem,1.1rem + 1vw,1.7rem); display:inline-block; margin:.4rem 0 1rem; }
.contact-card .hint{ font-size:.94rem; color:var(--ink-faint); max-width:48ch; margin-inline:auto; }

/* ---------- Footer ---------- */
.site-footer{ border-top:1px solid var(--line); padding-block:40px 120px; background:var(--bg-warm); }
@media (min-width:900px){ .site-footer{ padding-bottom:48px; } }
.footer-row{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px 28px; }
.footer-nav{ display:flex; flex-wrap:wrap; gap:8px 26px; align-items:center; }
.footer-nav a{ color:var(--ink-soft); font-weight:600; font-size:.98rem; }
.footer-brand{ display:inline-flex; align-items:center; gap:10px; color:var(--ink); font-family:var(--serif); font-size:1.05rem; }
.footer-brand .seal{ width:30px; height:30px; border-radius:50%; background:var(--sage-soft); color:var(--sage-ink);
  display:grid; place-items:center; font-weight:700; font-size:.95rem; }
.copyright{ color:var(--ink-faint); font-size:.9rem; margin-top:18px; }

/* ---------- Mobile Sticky-CTA (gleiches Ziel: WhatsApp) ---------- */
.sticky-cta{
  position:fixed; left:0; right:0; bottom:0; z-index:50;
  padding:12px 16px calc(12px + env(safe-area-inset-bottom));
  background:color-mix(in srgb, var(--bg) 90%, transparent);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-top:1px solid var(--line);
  display:flex;
}
.sticky-cta .btn{ flex:1; }
@media (min-width:900px){ .sticky-cta{ display:none; } }

/* ---------- Rechtstext-Seiten ---------- */
.legal{ padding-block:clamp(40px,6vw,72px) clamp(60px,8vw,104px); }
.legal .back{ display:inline-flex; align-items:center; gap:8px; font-size:.96rem; margin-bottom:1.6rem; }
.legal h1{ margin:.2em 0 .1em; }
.legal .updated{ color:var(--ink-faint); font-size:.92rem; margin:0 0 2.4rem; }
.legal h2{ font-size:clamp(1.3rem,1.1rem + 1vw,1.7rem); margin:2.4rem 0 .6rem; }
.legal h3{ font-size:1.15rem; margin:1.8rem 0 .4rem; }
.legal p,.legal li{ color:var(--ink-soft); }
.legal ul{ padding-left:1.2em; }
.legal li{ margin:.4rem 0; }
.legal .note{
  background:var(--bg-warm); border:1px solid var(--line); border-left:3px solid var(--sage);
  border-radius:10px; padding:16px 18px; font-size:.94rem; color:var(--ink-soft); margin:1.4rem 0;
}
.legal address{ font-style:normal; }
.legal table{ width:100%; border-collapse:collapse; margin:1.2rem 0; font-size:.95rem; }
.legal th,.legal td{ text-align:left; padding:11px 12px; border-bottom:1px solid var(--line); vertical-align:top; }
.legal th{ color:var(--ink); font-weight:650; background:var(--bg-warm); }
.legal a{ word-break:break-word; }
.legal hr{ border:0; border-top:1px solid var(--line); margin:2.4rem 0; }

/* ---------- Brand-Logo (Bild im Header/Footer) ---------- */
.brand-logo{ height:46px; width:auto; object-fit:contain; display:block; flex:0 0 auto; }
.brand-logo.sm{ height:34px; }
