/* =====================================================================
   Steinmetz Stockerer – Gestaltung 2026 (Variante A: Grün & Salbei)
   Grün     #1F3A3D  Schrift, Kopf, dunkle Flächen
   Tief     #172D30  Fußzeile
   Salbei   #5E7D5A  Akzent auf hellem Grund
   Salbei hell #A3BA9D  Akzent auf dunklem Grund
   Nebel    #E6EAE3  zweite Fläche
   Kalkweiß #F3F3EF  Grundfläche
   ===================================================================== */

@font-face{ font-family:'Playfair Display'; src:url('fonts/playfairdisplay-var.woff2') format('woff2'); font-weight:400 700; font-style:normal; font-display:swap; }
@font-face{ font-family:'Work Sans'; src:url('fonts/worksans-var.woff2') format('woff2'); font-weight:400 600; font-style:normal; font-display:swap; }

:root{
  --gruen:#1F3A3D; --tief:#172D30; --salbei:#5E7D5A; --salbei-hell:#A3BA9D;
  --nebel:#E6EAE3; --kalk:#F3F3EF; --weiss:#FBFBF9; --schiefer:#4C5958; --linie:#D3D9CF;
  --verlauf:linear-gradient(135deg,#8FAA89 0%,#C6D6C1 42%,#9DB797 70%,#7C9A77 100%);
  --verlauf-hover:linear-gradient(135deg,#83A07D 0%,#B9CCB3 42%,#90AC8A 70%,#6F8F6A 100%);
  --serif:'Playfair Display', Georgia, serif;
  --sans:'Work Sans', 'Segoe UI', Arial, sans-serif;
  --wrap:1180px; --kopf-h:112px;
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ -webkit-text-size-adjust:100%; scroll-padding-top:calc(var(--kopf-h) + 12px); overflow-x:hidden; }
body{ background:var(--kalk); color:var(--schiefer); font-family:var(--sans); font-size:18px; line-height:1.65; overflow-x:hidden; }
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; }
:focus-visible{ outline:3px solid var(--salbei); outline-offset:3px; }
h1,h2,h3,h4{ font-family:var(--serif); font-weight:400; color:var(--gruen); line-height:1.18; letter-spacing:-0.005em; }
strong{ font-weight:600; }
.wrap{ max-width:var(--wrap); margin:0 auto; padding:0 28px; }
.skip-link{ position:absolute; left:-9999px; top:0; z-index:100; background:var(--gruen); color:#fff; padding:12px 18px; }
.skip-link:focus{ left:0; }

/* ---------- Buttons ---------- */
.btn{ display:inline-flex; align-items:center; justify-content:center; text-align:center; min-height:52px; padding:0 22px; border-radius:3px; border:0; font-family:var(--sans); font-weight:600; font-size:1rem; line-height:1.2; text-decoration:none; cursor:pointer; transition:background .15s ease, color .15s ease; }
.btn-gold, .btn-salbei{ background:var(--verlauf); color:var(--gruen); box-shadow:0 3px 10px rgba(31,58,61,0.18); }
.btn-gold:hover, .btn-salbei:hover{ background:var(--verlauf-hover); }
.btn-ghost, .btn-linie{ background:transparent; border:1.5px solid var(--gruen); color:var(--gruen); }
.btn-ghost:hover, .btn-linie:hover{ background:var(--gruen); color:var(--kalk); }

/* ---------- Kopf ---------- */
header{ background:var(--gruen); position:sticky; top:0; z-index:50; }
.header-inner{ max-width:var(--wrap); margin:0 auto; padding:0 28px; display:flex; align-items:center; gap:28px; min-height:var(--kopf-h); }
.logo a{ display:block; }
.logo img{ height:92px; width:auto; }
.nav-toggle{ position:absolute; opacity:0; pointer-events:none; }
.nav-burger{ display:none; }
.main-nav{ display:flex; gap:24px; margin-left:auto; }
.main-nav a{ color:#E7E5DC; text-decoration:none; font-size:0.98rem; white-space:nowrap; }
.main-nav a:hover, .main-nav a[aria-current="page"]{ color:var(--salbei-hell); }
.main-nav .nav-tel{ display:none; }
.header-phones .btn{ min-height:46px; padding:0 18px; white-space:nowrap; }
.btn-call{ display:none !important; }

@media (max-width:1180px){
  :root{ --kopf-h:84px; }
  .logo img{ height:64px; }
  .header-phones{ display:none; }
  .nav-burger{ display:flex; align-items:center; gap:10px; margin-left:auto; min-height:48px; padding:0 4px; color:#E7E5DC; cursor:pointer; font-size:0.95rem; }
  .nav-burger-bars, .nav-burger-bars::before, .nav-burger-bars::after{ display:block; width:22px; height:2px; background:#E7E5DC; position:relative; content:""; transition:transform .2s ease; }
  .nav-burger-bars::before{ position:absolute; top:-7px; }
  .nav-burger-bars::after{ position:absolute; top:7px; }
  .nav-toggle:checked + .nav-burger .nav-burger-bars{ background:transparent; }
  .nav-toggle:checked + .nav-burger .nav-burger-bars::before{ transform:translateY(7px) rotate(45deg); }
  .nav-toggle:checked + .nav-burger .nav-burger-bars::after{ transform:translateY(-7px) rotate(-45deg); }
  .nav-toggle:focus-visible + .nav-burger{ outline:3px solid var(--salbei-hell); outline-offset:2px; }
  .main-nav{ display:none; position:absolute; top:var(--kopf-h); left:0; right:0; flex-direction:column; gap:0; background:var(--gruen); padding:4px 28px 18px; max-height:calc(100dvh - var(--kopf-h)); overflow-y:auto; border-top:1px solid rgba(163,186,157,0.25); }
  .nav-toggle:checked ~ .main-nav{ display:flex; }
  .main-nav a{ padding:14px 0; border-bottom:1px solid rgba(163,186,157,0.2); font-size:1.05rem; }
  .main-nav .nav-tel{ display:block; color:var(--salbei-hell); font-weight:600; }
  .main-nav a:last-child{ border-bottom:0; }
}

/* ---------- Seitenkopf der Unterseiten ---------- */
.page-hero{ background:var(--nebel); border-bottom:1px solid var(--linie); padding:56px 0 52px; }
.breadcrumb{ font-size:0.9rem; color:var(--schiefer); margin-bottom:18px; }
.breadcrumb a{ color:var(--schiefer); }
.breadcrumb a:hover{ color:var(--salbei); }
.page-hero h1{ font-size:clamp(2.1rem,4vw,3.3rem); max-width:22ch; overflow-wrap:break-word; hyphens:manual; }
.page-hero .lead, .lead{ margin-top:18px; max-width:40em; font-size:1.12rem; color:var(--schiefer); }
.subnav{ display:flex; flex-wrap:wrap; gap:8px; margin-top:28px; }
.subnav a{ display:inline-flex; align-items:center; min-height:44px; padding:0 16px; border:1px solid var(--linie); border-radius:30px; background:var(--weiss); color:var(--gruen); text-decoration:none; font-size:0.94rem; }
.subnav a:hover{ border-color:var(--salbei); }
.subnav a.active{ background:var(--gruen); border-color:var(--gruen); color:var(--kalk); }

/* ---------- Abschnitte & Text ---------- */
.section{ padding:84px 0; }
.section-head{ max-width:660px; margin-bottom:40px; }
.section-head h2{ font-size:clamp(1.8rem,3vw,2.5rem); }
.section-head p{ margin-top:14px; font-size:1.06rem; }
.eyebrow{ display:block; color:var(--salbei); font-weight:600; font-size:0.98rem; margin-bottom:10px; }
.prose{ max-width:46em; }
.prose > * + *{ margin-top:16px; }
.prose h2{ font-size:clamp(1.6rem,2.6vw,2.1rem); margin-top:40px; }
.prose h2:first-child{ margin-top:0; }
.prose h3{ font-size:1.3rem; margin-top:28px; }
.prose a, .faq-item a, .price-small a, .price-note a, .price-hint a, .rel-card a, .check-list a, .kontakt-side a{ color:var(--gruen); text-decoration:underline; text-decoration-color:var(--salbei); text-decoration-thickness:1.5px; text-underline-offset:3px; }
.prose a:hover, .faq-item a:hover{ text-decoration-thickness:2.5px; }
.prose ul:not(.check-list), .prose ol{ padding-left:1.3em; }
.check-list{ list-style:none; margin-top:20px; }
.check-list li{ position:relative; padding:11px 0 11px 32px; border-top:1px solid var(--linie); }
.check-list li:last-child{ border-bottom:1px solid var(--linie); }
.check-list li::before{ content:"✓"; position:absolute; left:4px; top:10px; color:var(--salbei); font-weight:700; }

.content-figure{ max-width:760px; margin:0; }
.content-figure img{ width:100%; height:auto; border-radius:4px; }
.content-figure.hochformat{ max-width:520px; }
.content-figure figcaption, .grave-figure figcaption, .letter-figure figcaption, .deal-img figcaption{ margin-top:10px; font-size:0.9rem; color:var(--schiefer); }

/* Häufige Fragen */
.faq-list{ max-width:52em; }
.faq-item{ padding:24px 0; border-top:1px solid var(--linie); }
.faq-item:last-child{ border-bottom:1px solid var(--linie); }
.faq-item h3{ font-size:1.25rem; margin-bottom:8px; }

/* Aufruf-Band */
.cta-band{ background:var(--gruen); padding:56px 0; }
.cta-band .wrap{ display:flex; align-items:center; justify-content:space-between; gap:20px 40px; flex-wrap:wrap; }
.cta-band h2{ color:var(--kalk); font-size:clamp(1.5rem,2.6vw,2.1rem); max-width:26ch; }

/* Schnellkontakt */
.contact-quick{ display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; }

/* Bild neben Text */
.grave-wrap, .letter-wrap{ display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,0.9fr); gap:48px; align-items:start; }
.grave-figure, .letter-figure{ margin:0; }
.grave-figure img{ border-radius:4px; width:100%; }
.letter-figure img{ border:1px solid var(--linie); border-radius:3px; background:#fff; box-shadow:0 8px 24px rgba(31,58,61,0.12); max-width:460px; width:100%; }

/* Ablauf in Schritten (Kippsicherheit) */
.steps{ list-style:none; max-width:820px; }
.step{ display:flex; gap:20px; align-items:flex-start; padding:20px 0; border-top:1px solid var(--linie); }
.step:last-child{ border-bottom:1px solid var(--linie); }
.step-num{ flex:0 0 44px; width:44px; height:44px; border:1.5px solid var(--salbei); border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:1.25rem; color:var(--gruen); background:var(--weiss); }
.step h3{ font-size:1.22rem; margin:6px 0 4px; }

/* Hinweis-Kästen */
.price-note{ max-width:46em; margin-top:22px; padding:16px 20px; background:var(--weiss); border-left:3px solid var(--salbei); border-radius:0 4px 4px 0; font-size:1rem; }

/* Vorher / Nachher, Bildreihen */
.vorher-nachher{ display:grid; grid-template-columns:1fr 1fr; gap:18px; max-width:900px; }
.vorher-nachher figure{ margin:0; }
.vorher-nachher img{ width:100%; border-radius:4px; }
.vorher-nachher figcaption{ margin-top:8px; font-size:0.92rem; color:var(--schiefer); }
.process-gallery{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.process-gallery figure{ margin:0; }
.process-gallery img{ width:100%; border-radius:4px; }
.process-gallery figcaption{ margin-top:8px; font-size:0.92rem; }

/* Referenzen */
.ref-project + .ref-project{ margin-top:64px; padding-top:56px; border-top:1px solid var(--linie); }
.ref-project h2{ font-size:clamp(1.5rem,2.4vw,1.9rem); }
.ref-meta{ color:var(--salbei); font-weight:600; margin:6px 0 20px; }
.ref-project > p{ max-width:46em; margin-top:18px; }

/* Kundenstimmen (Referenzen) */
.reviews{ background:var(--nebel); }
.rv-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:28px; flex-wrap:wrap; margin-bottom:36px; }
.rv-score{ display:flex; flex-direction:column; align-items:center; padding:18px 28px; background:var(--gruen); border-radius:4px; min-width:200px; }
.rv-num{ font-family:var(--serif); font-size:2.8rem; line-height:1; color:var(--kalk); }
.rv-src{ font-size:0.88rem; color:#DCDFD6; margin-top:6px; text-align:center; }
.rv-stars{ color:var(--salbei); letter-spacing:2px; }
.rv-score .rv-stars{ color:var(--salbei-hell); margin-top:6px; font-size:1.2rem; }
.rv-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; align-items:start; }
.rv-card{ margin:0; background:var(--weiss); border-radius:4px; padding:24px 26px; }
.rv-card blockquote{ margin:10px 0 14px; font-family:var(--serif); font-size:1.05rem; line-height:1.6; color:var(--gruen); }
.rv-card blockquote p + p{ margin-top:10px; }
.rv-card figcaption{ font-size:0.92rem; }
.rv-card figcaption strong{ color:var(--gruen); }
.rv-actions{ display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }

/* Friedhöfe-Übersicht */
.cem-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:34px 26px; }
.cem-card{ text-decoration:none; }
.cem-card picture{ display:block; aspect-ratio:4/3; overflow:hidden; border-radius:4px; }
.cem-card img{ width:100%; height:100%; object-fit:cover; object-position:center 10%; }
.cem-body{ display:block; margin-top:14px; }
.cem-body strong{ display:block; font-family:var(--serif); font-weight:400; font-size:1.3rem; color:var(--gruen); }
.cem-body span{ display:block; font-size:0.95rem; margin-top:2px; }
.cem-card:hover strong{ color:var(--salbei); }

/* Alle Religionen */
.rel-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.rel-card{ background:var(--weiss); border-radius:4px; border-top:3px solid var(--salbei); padding:22px 22px 20px; }
.rel-card h3{ font-size:1.3rem; margin-bottom:10px; }
.rel-card p{ font-size:0.98rem; }
.rel-where{ margin-top:12px; padding-top:12px; border-top:1px solid var(--linie); font-size:0.92rem; }

/* Preise */
.price-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
.price-card{ background:var(--weiss); border-radius:4px; overflow:hidden; display:flex; flex-direction:column; }
.price-card picture{ display:block; aspect-ratio:4/5; }
.price-card img{ width:100%; height:100%; object-fit:cover; }
.price-card-body{ padding:20px 22px 22px; display:flex; flex-direction:column; flex:1; }
.price-card h3{ font-size:1.3rem; }
.price-meta{ font-size:0.92rem; margin:4px 0 12px; }
.price-row{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:10px 0; border-top:1px solid var(--linie); font-size:0.96rem; }
.price-row strong{ white-space:nowrap; font-family:var(--serif); font-weight:500; font-size:1.25rem; color:var(--gruen); }
.price-main{ margin-top:auto; }
.price-small{ max-width:46em; margin-top:22px; font-size:0.96rem; }
.price-tables{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 48px; }
.price-tables h3{ font-size:1.25rem; margin-bottom:8px; }
.price-tables h3 a{ color:var(--gruen); text-decoration:underline; text-decoration-color:var(--salbei); text-underline-offset:4px; }
.price-hint{ font-size:0.92rem; margin:-2px 0 8px; }
.price-table{ width:100%; border-collapse:collapse; }
.price-table td{ padding:11px 0; border-top:1px solid var(--linie); vertical-align:top; font-size:0.98rem; }
.price-table tr:last-child td{ border-bottom:1px solid var(--linie); }
.price-table td:last-child{ text-align:right; white-space:nowrap; padding-left:16px; font-family:var(--serif); font-size:1.08rem; color:var(--gruen); }
.price-table tr.sum td{ font-weight:600; }
.price-sub{ display:block; font-size:0.86rem; margin-top:2px; }

/* Komplettangebot */
.deal-tabs{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:26px; }
.deal-tabs a{ display:inline-flex; align-items:center; min-height:44px; padding:0 18px; border:1.5px solid var(--gruen); border-radius:30px; color:var(--gruen); text-decoration:none; font-weight:600; font-size:0.95rem; }
.deal-tabs a.active{ background:var(--gruen); color:var(--kalk); }
.deal{ display:grid; grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr); gap:40px; align-items:start; margin-top:32px; background:var(--weiss); border-radius:4px; padding:28px; }
.deal-img{ margin:0; }
.deal-img img{ width:100%; border-radius:3px; }
.deal-badge{ display:inline-block; background:var(--gruen); color:var(--kalk); font-size:0.88rem; font-weight:600; padding:6px 14px; border-radius:30px; }
.deal-price{ display:flex; flex-wrap:wrap; gap:16px 36px; margin:18px 0 16px; }
.deal-price > div{ display:flex; flex-direction:column; }
.deal-label{ font-size:0.95rem; }
.deal-price strong{ font-family:var(--serif); font-weight:400; font-size:2.6rem; line-height:1.1; color:var(--gruen); }
.deal-note{ font-size:0.96rem; margin-top:14px; }
.deal-teaser{ display:flex; align-items:center; justify-content:space-between; gap:18px 30px; flex-wrap:wrap; margin-top:24px; padding:24px 26px; background:var(--gruen); border-radius:4px; }
.deal-teaser p{ color:#DCDFD6; margin-top:10px; max-width:40em; }
.deal-teaser p strong{ color:var(--kalk); }
.deal-teaser .deal-badge{ background:rgba(163,186,157,0.2); color:var(--salbei-hell); }
.deal-teaser-btns{ display:flex; flex-wrap:wrap; gap:10px; }

/* Kontaktformular */
.kontakt-grid{ display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:48px; align-items:start; }
.form-wrap{ background:var(--weiss); border-radius:4px; padding:30px 28px; }
.form-row{ margin-bottom:20px; }
.form-grid2{ display:grid; grid-template-columns:1fr 1fr; gap:0 20px; }
.form-row label{ display:block; margin-bottom:7px; font-weight:600; color:var(--gruen); font-size:0.98rem; }
.form-row .hint, .hint{ display:block; margin-top:6px; font-size:0.88rem; }
.form-row input[type=text], .form-row input[type=tel], .form-row input[type=email], .form-row textarea{ width:100%; min-height:50px; padding:12px 14px; font-family:inherit; font-size:1rem; color:var(--gruen); background:#fff; border:1px solid #BFC8BB; border-radius:3px; }
.form-row textarea{ min-height:160px; resize:vertical; line-height:1.55; }
.form-row input:focus, .form-row textarea:focus{ outline:2px solid var(--salbei); outline-offset:1px; border-color:var(--salbei); }
.form-row input::placeholder, .form-row textarea::placeholder{ color:#8E978D; }
.form-check{ display:flex; align-items:flex-start; gap:12px; margin-bottom:24px; }
.form-check input[type=checkbox]{ width:22px; height:22px; margin-top:3px; flex:0 0 22px; accent-color:var(--gruen); }
.form-check label{ font-size:0.95rem; }
.form-check a{ color:var(--gruen); font-weight:600; }
.form-submit{ min-width:220px; }
.form-submit:disabled{ opacity:.7; cursor:wait; }
.hp-field{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form-note{ padding:16px 18px; border-radius:4px; border:1px solid; margin-bottom:22px; }
.form-note.ok{ background:#E7EFE4; border-color:var(--salbei-hell); color:var(--gruen); }
.form-note.err{ background:#F6EEE7; border-color:#D9BFA6; color:var(--gruen); }
.form-note strong{ display:block; margin-bottom:4px; }
.file-pick{ position:relative; display:flex; align-items:center; flex-wrap:wrap; gap:12px 16px; padding:12px; background:#fff; border:1px dashed #AEB9AA; border-radius:3px; }
.file-pick input[type=file]{ position:absolute; width:1px; height:1px; opacity:0; overflow:hidden; }
.file-btn{ display:inline-flex !important; align-items:center; min-height:44px; padding:0 18px; margin:0 !important; border-radius:3px; background:var(--verlauf); color:var(--gruen) !important; font-weight:600; cursor:pointer; }
.file-pick input[type=file]:focus-visible + .file-btn{ outline:3px solid var(--salbei); outline-offset:2px; }
.file-count{ font-size:0.94rem; }
.file-list{ list-style:none; margin-top:8px; }
.file-list li{ position:relative; padding:4px 0 4px 22px; font-size:0.92rem; word-break:break-all; }
.file-list li::before{ content:"✓"; position:absolute; left:0; color:var(--salbei); font-weight:700; }
.file-list li.file-warn{ color:#8A4B1F; word-break:normal; }
.file-list li.file-warn::before{ content:"!"; color:#8A4B1F; }
.kontakt-side h2{ font-size:1.4rem; margin-bottom:12px; }
.kontakt-side p{ margin-bottom:20px; }

/* ---------- Startseite ---------- */
.titel{ display:grid; grid-template-columns:minmax(0,1fr) min(44vw,640px); background:var(--kalk); }
.titel-text{ display:flex; flex-direction:column; justify-content:center; padding:64px 52px 64px max(28px, calc((100vw - var(--wrap)) / 2 + 28px)); }
.titel-ort{ font-size:1rem; color:var(--salbei); font-weight:600; margin-bottom:20px; }
.titel h1{ font-size:clamp(2.4rem,3.9vw,3.6rem); max-width:16ch; }
.titel-lead{ margin-top:24px; max-width:34em; font-size:1.12rem; }
.titel-btns{ display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
.titel-bewertung{ margin-top:32px; padding-top:20px; border-top:1px solid var(--linie); font-size:0.98rem; display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.sterne{ color:var(--salbei); letter-spacing:2px; font-size:1.1rem; }
.titel-bild{ position:relative; overflow:hidden; aspect-ratio:3/4; align-self:start; width:100%; margin:0; }
.titel-bild picture, .titel-bild img{ position:absolute; inset:0; width:100%; height:100%; }
.titel-bild img{ object-fit:cover; }
.titel-bild figcaption{ position:absolute; left:0; bottom:0; padding:10px 16px; background:rgba(23,45,48,0.8); color:#E7E5DC; font-size:0.86rem; }

.zusagen{ background:var(--gruen); color:#E7E5DC; }
.zusagen ul{ list-style:none; display:grid; grid-template-columns:repeat(4,1fr); }
.zusagen li{ padding:22px 20px; border-left:1px solid rgba(163,186,157,0.28); font-size:0.98rem; }
.zusagen li:first-child{ border-left:none; padding-left:0; }
.zusagen strong{ display:block; color:var(--salbei-hell); }
.zusagen a{ color:inherit; text-decoration:none; }

.abschnitt{ padding:96px 0; }
.abschnitt-kopf{ max-width:640px; margin-bottom:44px; }
.abschnitt-kopf h2{ font-size:clamp(2rem,3.2vw,2.7rem); }
.abschnitt-kopf p{ margin-top:16px; font-size:1.08rem; }
.nebel{ background:var(--nebel); }

.leistungen{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:40px 28px; }
.leistung{ text-decoration:none; }
.leistung img{ aspect-ratio:4/3; width:100%; height:auto; object-fit:cover; border-radius:3px; }
.leistung h3{ font-size:1.32rem; margin-top:16px; }
.leistung p{ font-size:0.98rem; margin-top:6px; }
.leistung:hover h3{ color:var(--salbei); }

.angebot{ background:var(--gruen); color:#DCDFD6; }
.angebot h2{ color:var(--kalk); }
.angebot-raster{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.angebot-karte{ display:grid; grid-template-columns:0.9fr 1.1fr; background:var(--tief); border-radius:4px; overflow:hidden; text-decoration:none; color:inherit; }
.ak-bild{ position:relative; min-height:260px; }
.ak-bild img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.ak-text{ padding:28px 26px; display:flex; flex-direction:column; }
.angebot-karte h3{ color:var(--kalk); font-size:1.45rem; }
.angebot-karte .preis{ font-family:var(--serif); font-size:2.8rem; color:var(--salbei-hell); line-height:1.1; margin:14px 0 12px; }
.angebot-karte p{ font-size:0.96rem; }
.angebot-karte .mehr{ margin-top:auto; padding-top:18px; color:var(--salbei-hell); font-weight:600; text-decoration:underline; text-underline-offset:4px; }
.angebot-hinweis{ margin-top:28px; font-size:0.98rem; max-width:60em; }

.stimme{ max-width:860px; margin:0 auto; text-align:center; }
.stimme blockquote{ font-family:var(--serif); font-size:clamp(1.5rem,2.6vw,2.05rem); line-height:1.45; color:var(--gruen); }
.stimme figcaption{ margin-top:24px; }
.stimme .zahl{ margin-top:34px; display:inline-flex; align-items:center; gap:12px; flex-wrap:wrap; justify-content:center; padding-top:22px; border-top:1px solid var(--linie); }
.stimme .zahl a{ color:var(--gruen); font-weight:600; }

.ablauf{ display:grid; grid-template-columns:minmax(0,0.95fr) minmax(0,1.05fr); gap:64px; align-items:center; }
.ablauf > img{ border-radius:3px; width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center 60%; }
.schritte{ list-style:none; counter-reset:s; }
.schritte li{ counter-increment:s; position:relative; padding:0 0 26px 64px; }
.schritte li::before{ content:counter(s); position:absolute; left:0; top:-2px; width:42px; height:42px; border:1.5px solid var(--salbei); border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:1.25rem; color:var(--gruen); }
.schritte li:not(:last-child)::after{ content:""; position:absolute; left:21px; top:44px; bottom:4px; width:1.5px; background:var(--linie); }
.schritte h3{ font-size:1.3rem; }
.schritte p{ margin-top:4px; font-size:0.98rem; }

.facts dl{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 48px; max-width:1000px; }
.facts dl > div{ padding-top:14px; border-top:1px solid var(--linie); }
.facts dt{ color:var(--gruen); font-weight:600; margin-bottom:4px; }
.facts dd{ font-size:0.96rem; }
.facts dd a{ color:var(--gruen); }

.orte{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:56px; }
.ort h3{ font-size:1.6rem; padding-bottom:14px; border-bottom:1px solid var(--salbei); margin-bottom:18px; }
.ort dl{ display:grid; grid-template-columns:9.5em 1fr; gap:8px 16px; font-size:1rem; }
.ort dt{ color:var(--gruen); font-weight:600; }
.ort dd a{ color:var(--gruen); }
.ort .btn{ margin-top:24px; }

/* ---------- Fuß ---------- */
footer{ background:var(--tief); color:#C9CFC6; padding:60px 0 34px; font-size:0.96rem; }
.fuss-raster{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:32px 40px; }
.fuss-logo img{ height:80px; width:auto; margin-bottom:14px; }
footer h2{ font-family:var(--sans); font-size:0.98rem; font-weight:600; color:var(--salbei-hell); margin-bottom:12px; }
footer ul{ list-style:none; }
footer li{ margin-bottom:8px; }
footer a{ color:#E7E5DC; text-decoration:none; }
footer a:hover{ text-decoration:underline; text-underline-offset:3px; }
.fuss-unten{ display:flex; flex-wrap:wrap; gap:10px 24px; justify-content:space-between; margin-top:44px; padding-top:22px; border-top:1px solid rgba(163,186,157,0.22); font-size:0.9rem; }
.fuss-unten nav{ display:flex; gap:20px; }

/* ---------- Nach oben & Handy-Leiste ---------- */
.to-top{ position:fixed; right:20px; bottom:20px; z-index:40; width:46px; height:46px; border:0; border-radius:50%; background:var(--gruen); color:var(--kalk); font-size:1.2rem; cursor:pointer; opacity:0; visibility:hidden; transition:opacity .2s ease; box-shadow:0 4px 12px rgba(0,0,0,0.2); }
.to-top.show{ opacity:1; visibility:visible; }
.handyleiste{ display:none; }

/* ---------- Kleinere Bildschirme ---------- */
@media (max-width:1100px){
  .leistungen{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .angebot-raster{ grid-template-columns:1fr; }
  .cem-grid, .rel-grid, .price-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fuss-raster{ grid-template-columns:1fr 1fr; }
}
@media (max-width:860px){
  body{ font-size:17px; }
  .section{ padding:60px 0; }
  .abschnitt{ padding:64px 0; }
  .page-hero{ padding:40px 0 38px; }
  .titel{ grid-template-columns:1fr; }
  .titel-text{ display:contents; }
  .titel-bild{ grid-row:1; grid-column:1; aspect-ratio:auto; height:clamp(420px, calc(100vh - 160px), 160vw); height:clamp(420px, calc(100svh - 160px), 160vw); }
  .titel-bild img{ object-position:50% 0%; }
  .titel-bild figcaption{ display:none; }
  .titel-kopf{ grid-row:1; grid-column:1; align-self:end; position:relative; z-index:1; padding:110px 24px 26px; background:linear-gradient(to top, rgba(23,45,48,0.96) 0%, rgba(23,45,48,0.9) 52%, rgba(23,45,48,0.55) 78%, rgba(23,45,48,0) 100%); }
  .titel-kopf .titel-ort{ color:#C6D6C1; margin-bottom:12px; text-shadow:0 1px 8px rgba(0,0,0,0.45); }
  .titel-kopf h1{ color:#FBFBF9; font-size:clamp(2rem,8.6vw,2.7rem); text-shadow:0 1px 14px rgba(0,0,0,0.3); }
  .titel-lead, .titel-btns, .titel-bewertung{ margin-left:24px; margin-right:24px; }
  .titel-lead{ margin-top:30px; }
  .titel-bewertung{ margin-bottom:44px; }
  .zusagen ul{ grid-template-columns:1fr 1fr; }
  .zusagen li{ padding:16px 14px; }
  .zusagen li:nth-child(3){ border-left:none; padding-left:0; }
  .zusagen li:nth-child(n+3){ border-top:1px solid rgba(163,186,157,0.28); }
  .ablauf, .orte, .grave-wrap, .letter-wrap, .kontakt-grid, .deal, .price-tables{ grid-template-columns:1fr; gap:32px; }
  .angebot-karte{ grid-template-columns:1fr; }
  .ak-bild{ min-height:0; aspect-ratio:4/3; }
  .ort dl{ grid-template-columns:1fr; gap:2px; }
  .ort dd{ margin-bottom:10px; }
  .facts dl{ grid-template-columns:1fr; }
  .rv-grid{ grid-template-columns:1fr; }
  .process-gallery{ grid-template-columns:1fr; }
  .form-grid2{ grid-template-columns:1fr; }
  .form-wrap{ padding:22px 18px; }
  .deal{ padding:20px; }
  .handyleiste{ display:grid; grid-template-columns:1fr 1fr; gap:10px; position:fixed; left:0; right:0; bottom:0; z-index:45; padding:10px 14px calc(10px + env(safe-area-inset-bottom)); background:var(--kalk); border-top:1px solid var(--linie); }
  .handyleiste .btn{ min-height:50px; padding:0 10px; }
  .to-top{ bottom:86px; right:14px; width:42px; height:42px; }
  footer{ padding-bottom:calc(104px + env(safe-area-inset-bottom)); }
}
@media (max-width:560px){
  .wrap, .header-inner{ padding:0 20px; }
  .main-nav{ padding:4px 20px 18px; }
  .leistungen{ gap:28px 16px; }
  .leistung h3{ font-size:1.12rem; }
  .leistung p{ display:none; }
  .cem-grid, .rel-grid, .price-grid{ grid-template-columns:1fr; }
  .vorher-nachher{ grid-template-columns:1fr; }
  .fuss-raster{ grid-template-columns:1fr; }
  .angebot-karte .preis{ font-size:2.3rem; }
  .cta-band .btn, .contact-quick .btn{ width:100%; }
}
@media (prefers-reduced-motion:reduce){ *{ transition:none !important; scroll-behavior:auto !important; } }

/* ---------- Über uns ---------- */
.geschichte{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,0.95fr); gap:64px; align-items:center; }
.geschichte figure{ margin:0; }
.geschichte img{ width:100%; border-radius:3px; }
.geschichte figcaption{ margin-top:10px; font-size:0.92rem; }
.zeitleiste{ list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; margin-top:68px; }
.zeitleiste li{ position:relative; padding-top:26px; border-top:2px solid var(--salbei-hell); }
.zeitleiste li::before{ content:""; position:absolute; top:-8px; left:0; width:14px; height:14px; border-radius:50%; background:var(--salbei); box-shadow:0 0 0 4px var(--kalk); }
.zeitleiste .jahr{ display:block; font-family:var(--serif); font-size:1.9rem; color:var(--gruen); line-height:1.1; margin-bottom:8px; }
.zeitleiste p{ font-size:0.98rem; }
.teamfoto{ margin:0 0 36px; border-radius:4px; overflow:hidden; position:relative; }
.teamfoto img{ width:100%; height:auto; display:block; aspect-ratio:3/2; object-fit:cover; object-position:center 45%; }
.teamfoto figcaption{ position:absolute; left:0; bottom:0; padding:8px 14px; background:rgba(23,45,48,0.78); color:#E7E5DC; font-size:0.88rem; }
.teamfoto.platzhalter{ aspect-ratio:16/9; background:linear-gradient(160deg,#DDE4D9 0%,#C3D0BE 100%); display:flex; align-items:center; justify-content:center; }
.initiale{ font-family:var(--serif); font-size:clamp(2.4rem,6vw,5rem); color:var(--salbei); line-height:1; }
.foto-folgt{ position:absolute; left:14px; bottom:14px; font-size:0.82rem; background:rgba(251,251,249,0.88); color:var(--schiefer); padding:4px 12px; border-radius:20px; }
.team-karte{ background:var(--weiss); border:1px solid var(--linie); border-radius:4px; padding:28px 28px 30px; }
.team-zeichen{ width:54px; height:54px; border-radius:50%; background:var(--verlauf); color:var(--gruen); font-family:var(--serif); font-size:1.6rem; display:flex; align-items:center; justify-content:center; margin-bottom:18px; }
.team-karte h3{ font-size:1.5rem; }
.team-rolle{ color:var(--salbei); font-weight:600; font-size:0.95rem; margin:4px 0 12px; }
.team-karte p{ font-size:0.98rem; }
.team-karte p + p{ margin-top:10px; }
.team-friedhof{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:24px 48px; margin-top:44px; padding-top:36px; border-top:1px solid var(--linie); align-items:start; }
.team-friedhof h3{ font-size:1.6rem; margin-bottom:8px; }
.zahlen{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.team-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.zahlen div{ border-top:2px solid var(--salbei); padding-top:14px; }
.zahlen strong{ display:block; font-family:var(--serif); font-weight:400; font-size:2.6rem; line-height:1; color:var(--gruen); margin-bottom:6px; }
.zahlen span{ font-size:0.96rem; }
.eigen{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px 64px; align-items:start; }
.eigen .check-list{ margin-top:0; }
.galerie4{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:48px; }
.galerie4 figure{ margin:0; }
.galerie4 img{ width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:3px; }
.galerie4 figcaption{ margin-top:8px; font-size:0.92rem; }
.werte{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; }
.werte > div{ border-top:2px solid var(--salbei); padding-top:20px; }
.werte h3{ font-size:1.45rem; margin-bottom:8px; }
.werte + .stimme{ margin-top:72px; }
@media (max-width:860px){
  .geschichte, .eigen, .team-friedhof{ grid-template-columns:1fr; gap:32px; }
  .zeitleiste{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px 20px; margin-top:48px; }
  .team-grid{ grid-template-columns:1fr; gap:20px; }
  .teamfoto.platzhalter{ aspect-ratio:4/3; }
  .galerie4{ grid-template-columns:1fr; gap:20px; }
  .galerie4 img{ aspect-ratio:4/3; }
  .teamfoto img{ aspect-ratio:4/3; }
  .werte{ grid-template-columns:1fr; gap:28px; }
}
@media (max-width:560px){
  .zeitleiste{ grid-template-columns:1fr; gap:0; border-left:2px solid var(--salbei-hell); margin-left:6px; }
  .zeitleiste li{ border-top:none; padding:0 0 26px 26px; }
  .zeitleiste li::before{ top:6px; left:-8px; }
  .zahlen strong{ font-size:2.2rem; }
}
.prose > .eyebrow + h2{ margin-top:0; }
.eigen .section-head{ margin-bottom:0; }
