/* old scripts — "Kurrent" Design System */

@font-face { font-family:'Fraunces Italic'; src:url('../fonts/fraunces-italic.woff2') format('woff2'); font-weight:500; font-style:italic; font-display:swap; }
@font-face { font-family:'Fraunces'; src:url('../fonts/fraunces-600.woff2') format('woff2'); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:'Public Sans'; src:url('../fonts/public-sans.woff2') format('woff2'); font-weight:400 700; font-style:normal; font-display:swap; }

*{box-sizing:border-box;}
html{ font-size:112.5%; } /* ~18px Basis: bessere Lesbarkeit fuer die Zielgruppe */
html,body{margin:0;padding:0;}
body{
  --ink:#241713; --ink-soft:#3c2b24; --parchment:#E4D2A8; --parchment-deep:#D8C293;
  --wax:#8B2E22; --gold:#D9A93B; --cream-text:#F3E9D2;
  background:var(--parchment); color:var(--ink); font-family:'Public Sans',system-ui,sans-serif;
  line-height:1.55;
}
img{max-width:100%; height:auto; display:block;}
button{font-family:inherit; cursor:pointer;}
a{color:inherit;}
h1,h2,h3{ font-family:'Fraunces'; font-weight:600; text-wrap:balance; margin:0; }
em{ font-family:'Fraunces Italic'; font-style:italic; font-weight:500; }

:focus-visible{ outline:3px solid var(--gold); outline-offset:2px; border-radius:2px; }

.skip-link{
  position:absolute; left:-999px; top:0; background:var(--gold); color:var(--ink);
  padding:.7rem 1.2rem; font-weight:700; z-index:100;
}
.skip-link:focus{ left:1rem; top:1rem; }

/* ---- Navigation ---- */
.nav{ display:flex; align-items:center; justify-content:space-between; padding:1.15rem 5%; background:var(--ink); flex-wrap:wrap; gap:1rem; }
.nav__logo{ height:38px; display:block; }
.nav__links{ display:flex; align-items:center; gap:1.9rem; list-style:none; margin:0; padding:0; font-size:1rem; }
.nav__links li{ display:flex; align-items:center; }
.nav__links a{ color:var(--cream-text); text-decoration:none; padding:.3rem 0; border-bottom:2px solid transparent; }
.nav__links a:hover, .nav__links a:focus-visible, .nav__links a[aria-current="page"]{ border-bottom-color:var(--gold); }
.nav__lang{ display:flex; gap:.5rem; font-size:.85rem; font-weight:700; color:var(--cream-text); }
.nav__lang a{ opacity:.55; padding:.2rem; text-decoration:none; color:inherit; }
.nav__lang a.on{ opacity:1; text-decoration:underline; text-decoration-color:var(--gold); text-decoration-thickness:2px; }
.nav__toggle{ display:none; background:none; border:1px solid var(--cream-text); color:var(--cream-text); border-radius:4px; padding:.5rem .7rem; font-size:1.1rem; }
.nav__has-children{ position:relative; }
.nav__has-children details{ display:flex; align-items:center; }
.nav__has-children summary{ display:flex; align-items:center; cursor:pointer; color:var(--cream-text); padding:.3rem 0; border-bottom:2px solid transparent; list-style:none; }
.nav__has-children summary::-webkit-details-marker{ display:none; }
.nav__has-children summary::after{ content:'▾'; margin-left:.35rem; font-size:.75em; }
.nav__has-children details[open] summary, .nav__has-children summary:hover, .nav__has-children summary:focus-visible{ border-bottom-color:var(--gold); }
.nav__subnav{ list-style:none; margin:0; padding:.5rem 0; position:absolute; top:100%; left:0; background:var(--ink); border:1px solid rgba(217,169,59,.25); min-width:260px; z-index:60; }
.nav__subnav li{ padding:0; border:none; }
.nav__subnav a{ display:block; padding:.6rem 1rem; color:var(--cream-text); text-decoration:none; white-space:nowrap; border-bottom:none; }
.nav__subnav a:hover, .nav__subnav a:focus-visible{ background:rgba(217,169,59,.12); color:var(--gold); }

/* ---- Hero (Startseite) ---- */
.hero{ position:relative; background:var(--ink); color:var(--cream-text); overflow:hidden; }
.hero__photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.6; mix-blend-mode:luminosity; filter:sepia(.25) contrast(1.05) brightness(1.15); }
.hero__scrim{ position:absolute; inset:0; background:linear-gradient(100deg, var(--ink) 30%, rgba(36,23,19,.5) 65%, rgba(36,23,19,.18) 100%); }
.hero__inner{ position:relative; z-index:2; max-width:900px; margin:0 auto; padding:5.5rem clamp(0px, (1000px - 100vw) / 2, 24px) 4.5rem; }
.hero__eyebrow{ font-size:.85rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); font-weight:700; margin-bottom:1rem; }
.hero__title{ font-size:clamp(2.1rem,4.6vw,3.2rem); line-height:1.14; }
.hero__title em{ color:var(--gold); }
.hero__sub{ margin:1.3rem 0 2rem; font-size:1.15rem; line-height:1.6; max-width:44ch; color:#efe4c8; }
.hero__ctas{ display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:1.6rem; }
.hero__trust{ display:flex; gap:1.6rem; flex-wrap:wrap; font-size:.92rem; color:#cbb98e; margin:0; padding:0; }
.hero__trust li{ list-style:none; display:flex; align-items:center; gap:.5rem; }
.hero__trust li::before{ content:"✓"; color:var(--gold); font-weight:700; }

/* ---- Page header (Unterseiten) ---- */
.page-hero{ background:var(--ink); color:var(--cream-text); padding:3.6rem 5% 3rem; }
.page-hero__inner{ max-width:900px; margin:0 auto; }
.page-hero__eyebrow{ font-size:.85rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); font-weight:700; margin-bottom:.8rem; }
.page-hero__title{ font-size:clamp(1.9rem,4vw,2.7rem); line-height:1.15; }
.page-hero__sub{ margin:1rem 0 0; font-size:1.08rem; line-height:1.6; max-width:56ch; color:#efe4c8; }

/* ---- Buttons ---- */
.btn{ display:inline-flex; align-items:center; gap:.5rem; padding:1rem 1.7rem; border-radius:3px; font-weight:700; font-size:1.02rem; border:1.5px solid transparent; min-height:48px; text-decoration:none; }
.btn--primary{ background:var(--wax); color:#fff4ea; }
.btn--primary:hover{ background:#7a2519; }
.btn--cream{ background:#f3e9d2; color:var(--wax); }
.btn--cream:hover, .btn--cream:focus-visible{ background:#fff8e6; }
.btn--ghost{ border-color:var(--cream-text); color:var(--cream-text); background:transparent; }
.btn--ghost:hover{ background:rgba(255,255,255,.1); }
.btn--ghost-dark{ border-color:var(--ink); color:var(--ink); background:transparent; }
.btn--ghost-dark:hover{ background:rgba(36,23,19,.08); }

/* ---- Stats (Startseite) ---- */
.stats{ background:var(--ink-soft); border-top:1px solid rgba(217,169,59,.25); border-bottom:1px solid rgba(217,169,59,.25); }
.stats__row{ max-width:1180px; margin:0 auto; padding:2.4rem 5%; display:flex; justify-content:space-around; gap:1.8rem; flex-wrap:wrap; }
.stat{ text-align:center; color:var(--cream-text); }
.stat b{ display:block; font-family:'Fraunces'; font-size:2.3rem; color:var(--gold); font-variant-numeric:tabular-nums; }
.stat span{ font-size:.85rem; letter-spacing:.04em; text-transform:uppercase; opacity:.8; }

/* ---- Services (Startseite Teaser + Leistungen Seite) ---- */
.services{ max-width:1180px; margin:0 auto; padding:5rem 5%; }
.services__head{ max-width:none; margin-bottom:2.6rem; }
.services__kicker{ font-size:.85rem; letter-spacing:.08em; text-transform:uppercase; color:var(--wax); font-weight:700; margin-bottom:.6rem; }
.services__title{ font-size:clamp(1.65rem,3vw,2.2rem); }

.service-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.8rem; }
.service-card{ background:#efe3c2; border:1px solid var(--parchment-deep); padding:2rem; position:relative; }
.service-card::before{ content:""; position:absolute; top:0; left:0; width:4px; height:100%; background:var(--wax); }
.service-card__img{ width:100%; height:170px; object-fit:cover; margin:-2rem -2rem 1.3rem; width:calc(100% + 4rem); border-bottom:1px solid var(--parchment-deep); }
.service-card h3{ font-size:1.35rem; margin-bottom:.7rem; }
.service-card p{ margin:0; line-height:1.6; color:#3a2c1f; font-size:1rem; }

/* ---- Price ---- */
.price{ background:var(--ink); color:var(--cream-text); padding:4rem 5%; }
.price__inner{ max-width:1180px; margin:0 auto; display:grid; grid-template-columns:1fr auto; gap:2rem; align-items:center; }
.price__inner h2{ font-size:clamp(1.5rem,2.8vw,1.9rem); }
.price__inner p{ color:#d8c8a4; max-width:46ch; margin:.7rem 0 0; font-size:1rem; }
.price__figure{ font-family:'Fraunces'; font-size:2.9rem; color:var(--gold); text-align:right; white-space:nowrap; }
.price__figure span{ display:block; font-family:'Public Sans'; font-size:.85rem; color:#d8c8a4; font-weight:400; }

/* ---- Guestbook teaser (Startseite) ---- */
.guest{ max-width:1180px; margin:0 auto; padding:5rem 5%; display:grid; grid-template-columns:.9fr 1.1fr; gap:2.5rem; align-items:center; }
.guest__quote{ font-family:'Fraunces Italic'; font-style:italic; font-weight:500; font-size:1.45rem; line-height:1.5; color:var(--ink-soft); }
.guest__cite{ margin-top:1rem; font-size:.88rem; color:#6b5a41; }
.guest__side{ background:#efe3c2; border:1px solid var(--parchment-deep); padding:2rem; }
.guest__side h3{ font-size:1.2rem; margin-bottom:.6rem; }
.guest__side p{ font-size:.96rem; color:#3a2c1f; line-height:1.55; margin:0 0 1.3rem; }

/* ---- Contact CTA (Startseite) ---- */
.contact{ background:var(--wax); color:#fff4ea; padding:4.5rem 5%; text-align:center; }
.contact h2{ font-size:clamp(1.6rem,3vw,2.1rem); max-width:36ch; margin:0 auto .8rem; }
.contact p{ max-width:52ch; margin:0 auto 2rem; color:#f6ddce; font-size:1.02rem; }
.contact .btn--ghost{ border-color:#fff4ea; color:#fff4ea; }

/* ---- Footer ---- */
.foot__icon{ width:18px; height:18px; flex-shrink:0; color:var(--gold); }

/* ---- Prose (Leistungen / Über mich lange Texte) ---- */
.prose-section{ max-width:900px; margin:0 auto; padding:3.5rem clamp(0px, (1000px - 100vw) / 2, 24px); }
.prose-section + .prose-section{ padding-top:0; }
.prose h2{ font-size:1.5rem; margin:2.2rem 0 .8rem; clear:both; }
.prose h2:first-child{ margin-top:0; }
.prose h3{ font-size:1.25rem; margin:2.2rem 0 1rem; clear:both; }
.prose p{ margin:0 0 1.1rem; font-size:1.03rem; line-height:1.7; }
.prose ul{ margin:0 0 1.1rem; padding-left:1.4rem; line-height:1.7; }
.prose figure{ margin:2rem 0; }
.prose figure.figure--right{ float:right; width:320px; max-width:45%; margin:0 0 1.2rem 1.6rem; clear:right; }
.prose figure.figure--right img{ width:100%; }

.prose figure img{ border:1px solid var(--parchment-deep); }
.prose figcaption{ font-size:.88rem; color:#6b5a41; margin-top:.5rem; }

.step-list{ list-style:none; margin:0 0 1.5rem; padding:0; display:grid; gap:1rem; counter-reset:step; }
.step-list li{ counter-increment:step; display:flex; gap:1rem; align-items:baseline; background:#efe3c2; border:1px solid var(--parchment-deep); padding:1.1rem 1.3rem; }
.step-list li::before{ content:counter(step); font-family:'Fraunces'; font-size:1.3rem; color:var(--wax); flex-shrink:0; }

.doc-tags{ display:flex; flex-wrap:wrap; gap:.6rem; list-style:none; margin:0 0 1.5rem; padding:0; }
.doc-tags li{ background:#efe3c2; border:1px solid var(--parchment-deep); padding:.5rem 1rem; font-size:.92rem; border-radius:3px; }


/* ---- Preise: Beispiele ---- */
.price-examples{ max-width:900px; margin:0 auto; padding:0 clamp(0px, (1000px - 100vw) / 2, 24px) 4rem; display:grid; gap:1.5rem; }
.price-example{ background:#efe3c2; border:1px solid var(--parchment-deep); padding:1.6rem 1.8rem; }
.price-example__head{ display:flex; justify-content:space-between; align-items:baseline; gap:1rem; margin-bottom:.8rem; }
.price-example__head h3{ font-size:1.15rem; }
.price-example__price{ font-family:'Fraunces'; color:var(--wax); font-size:1.3rem; white-space:nowrap; }
.price-example blockquote{ font-family:'Fraunces Italic'; font-style:italic; font-size:1.02rem; line-height:1.6; color:var(--ink-soft); margin:0 0 .8rem; border-left:3px solid var(--gold); padding-left:1rem; white-space:pre-line; }
.price-example p{ margin:0; font-size:.94rem; color:#463726; line-height:1.6; }
.price-example__body{ display:grid; grid-template-columns:220px 1fr; gap:1.5rem; align-items:start; }
.price-example__body--pair{ grid-template-columns:440px 1fr; }
.price-example__body--letter{ grid-template-columns:380px 1fr; }
.price-example__body--letter .price-example__imgs{ position:sticky; top:1rem; }
.price-example__body--full{ grid-template-columns:1fr; }
.price-example__body--full .price-example__imgs--pair{ max-width:640px; margin:0 auto; }
.price-example__body--full .price-example__imgs--wide{ max-width:none; }
.price-example__imgs--wide > div:last-child{ flex:1.5; }
.price-example__imgs{ display:flex; flex-direction:column; gap:.5rem; }
.price-example__imgs img{ border:1px solid var(--parchment-deep); width:100%; }
.price-example__imgs span{ display:block; font-size:.7rem; color:#6b5a41; text-align:center; margin-top:.15rem; }
.price-example__imgs--pair{ flex-direction:row; gap:1.2rem; }
.price-example__imgs--pair > div{ flex:1; display:flex; flex-direction:column; gap:.5rem; }
.price-example__imgs-label{ font-family:'Fraunces'; font-size:.78rem; font-weight:600; color:var(--ink-soft); text-align:center; text-transform:uppercase; letter-spacing:.02em; margin:.5rem 0 -.1rem; }
.price-example__imgs-label:first-child{ margin-top:0; }

/* ---- Über mich: Portrait & Belege ---- */
.figure-row{ display:flex; gap:1rem; flex-wrap:wrap; margin:1.5rem 0; }
.figure-row figure{ margin:0; flex:1 1 220px; max-width:280px; }
.figure-row img{ border:1px solid var(--parchment-deep); width:100%; }

/* ---- Lightbox (click-to-enlarge images) ---- */
.lightbox-trigger{ display:block; cursor:zoom-in; position:relative; }
.lightbox-trigger::after{ content:"🔍 Vergrößern"; position:absolute; right:.4rem; bottom:.4rem; background:rgba(36,23,19,.75); color:#f3e9d2; font-size:.7rem; padding:.25rem .5rem; border-radius:3px; opacity:0; transition:opacity .15s; }
.lightbox-trigger:hover::after, .lightbox-trigger:focus-visible::after{ opacity:1; }
.lightbox-overlay{ position:fixed; inset:0; background:rgba(15,10,8,.9); display:flex; align-items:center; justify-content:center; padding:4vh 4vw; z-index:1000; }
.lightbox-overlay[hidden]{ display:none; }
.lightbox-overlay img{ max-width:100%; max-height:92vh; border:2px solid var(--parchment-deep); }
.lightbox-overlay__close{ position:absolute; top:1.2rem; right:1.5rem; background:none; border:none; color:#f3e9d2; font-size:2rem; line-height:1; cursor:pointer; padding:.3rem .6rem; }
.lightbox-overlay__close:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }

/* ---- Forms (Kontakt / Kostenvoranschlag / Gästebuch) ---- */
.form-section{ max-width:900px; margin:0 auto; padding:3.5rem clamp(0px, (1000px - 100vw) / 2, 24px); }
.form-layout{ display:grid; grid-template-columns:1fr 280px; gap:2.5rem; align-items:start; }
.form-grid{ display:grid; gap:1.3rem; max-width:500px; }
.form-layout .form-grid{ max-width:none; }
.form-aside{ background:#efe3c2; border:1px solid var(--parchment-deep); padding:1.5rem; }
.form-aside img{ width:100%; border:1px solid var(--parchment-deep); margin-bottom:1.2rem; }
.form-aside h3{ font-family:'Fraunces'; font-size:1.05rem; margin:0 0 .8rem; }
.form-aside p{ font-size:.9rem; color:#463726; line-height:1.6; margin:0 0 .9rem; }
.form-aside p:last-child{ margin-bottom:0; }
.form-aside a{ color:var(--wax); font-weight:600; }
.field label{ display:block; font-weight:700; font-size:.95rem; margin-bottom:.4rem; }
.field .hint{ font-weight:400; color:#6b5a41; font-size:.85rem; }
.field input[type="text"], .field input[type="email"], .field input[type="tel"], .field textarea, .field input[type="file"]{
  width:100%; font:inherit; font-size:1rem; padding:.8rem .9rem; border:1.5px solid var(--parchment-deep);
  background:#fbf6e9; color:var(--ink); border-radius:3px;
}
.field textarea{ min-height:9rem; resize:vertical; }
.field input:focus, .field textarea:focus{ border-color:var(--wax); }
.hp-field{ position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden; }
.form-msg{ padding:1rem 1.2rem; border-radius:3px; margin-bottom:1.5rem; font-weight:600; }
.form-msg--success{ background:#dff0d8; color:#2c5a2a; border:1px solid #b6d8ae; }
.form-msg--error{ background:#f3d9d4; color:#7a2519; border:1px solid #e0b3ab; }
.form-note{ font-size:.9rem; color:#6b5a41; margin-top:1.5rem; }

/* ---- Gästebuch ---- */
.guest-cta{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem; margin:0 0 .6rem; }
.guest-entry{ background:#efe3c2; border:1px solid var(--parchment-deep); padding:1.5rem 1.8rem; margin-bottom:1.2rem; }
.guest-entry__meta{ font-size:.85rem; color:#6b5a41; margin-bottom:.5rem; }
.guest-entry__meta strong{ color:var(--ink); }
.guest-entry p{ margin:0; line-height:1.6; }
.pagination{ display:flex; gap:.6rem; justify-content:center; margin:2rem 0; list-style:none; padding:0; }
.pagination a, .pagination span{ padding:.5rem .9rem; border:1px solid var(--parchment-deep); text-decoration:none; color:var(--ink); }
.pagination a[aria-current="page"]{ background:var(--ink); color:var(--cream-text); }

/* ---- Legal (Impressum / Datenschutz) ---- */
.legal{ max-width:750px; margin:0 auto; padding:3.5rem 5% 5rem; }
.legal h2{ font-size:1.3rem; margin:2rem 0 .7rem; }
.legal h2:first-child{ margin-top:0; }
.legal p, .legal li{ font-size:.98rem; line-height:1.7; }
.legal ul{ padding-left:1.4rem; }

/* ---- Cookie banner ---- */
.cookie-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:200; background:var(--ink); color:var(--cream-text);
  padding:1.4rem 5%; display:flex; gap:1.5rem; align-items:center; justify-content:space-between; flex-wrap:wrap;
  border-top:2px solid var(--gold);
}
.cookie-banner__text{ max-width:60ch; font-size:.95rem; line-height:1.5; }
.cookie-banner__text a{ text-decoration:underline; text-decoration-color:var(--gold); }
.cookie-banner__actions{ display:flex; gap:.8rem; flex-wrap:wrap; }
.cookie-banner[hidden]{ display:none; }

@media (max-width:820px){
  .nav__links{ display:none; }
  .nav__links--open{ display:flex !important; position:absolute; top:100%; left:0; right:0; background:var(--ink); flex-direction:column; gap:0; padding:.5rem 5% 1rem; z-index:50; }
  .nav__links--open li{ padding:.6rem 0; border-bottom:1px solid rgba(217,169,59,.15); }
  .nav__subnav{ position:static; background:none; border:none; padding:.4rem 0 0 1rem; min-width:0; }
  .nav__subnav a{ padding:.4rem 0; }
  .nav{ position:relative; }
  .nav__toggle{ display:inline-flex; }
  .service-grid{ grid-template-columns:1fr; }
  .price__inner{ grid-template-columns:1fr; text-align:left; }
  .price__figure{ text-align:left; }
  .guest{ grid-template-columns:1fr; }
  .price-example__head{ flex-direction:column; align-items:flex-start; }
  .form-layout{ grid-template-columns:1fr; }
  .price-example__body{ grid-template-columns:1fr; }
  .price-example__imgs{ flex-direction:row; }
  .prose figure.figure--right{ float:none; width:100%; max-width:320px; margin:0 auto 1.2rem; }
  .cookie-banner{ flex-direction:column; align-items:stretch; }
}

/* ---- Über mich: Bänder, Karten, Zeitleiste ---- */
.about-band{ padding:3.8rem 5%; }
.about-band--tint{ background:#efe3c2; border-top:1px solid var(--parchment-deep); border-bottom:1px solid var(--parchment-deep); }
.about-inner{ max-width:900px; margin:0 auto; }
.about-kicker{ font-size:.85rem; letter-spacing:.1em; text-transform:uppercase; color:var(--wax); font-weight:700; margin-bottom:.5rem; }
.about-title{ font-size:clamp(1.6rem,3vw,2.1rem); line-height:1.2; margin:0 0 1.4rem; }
.about-title::after{ content:""; display:block; width:56px; height:3px; background:var(--gold); margin-top:.8rem; }
.about-inner{ display:flow-root; }
.about-photo.about-photo--float{ float:right; width:300px; margin:.3rem 0 1.8rem 4rem; }
.about-title--long{ font-size:clamp(1.3rem,2.4vw,1.7rem); }
.about-inner p{ margin:0 0 1.1rem; font-size:1.03rem; line-height:1.75; }
.about-inner p.about-lead{ font-size:1.2rem; line-height:1.65; }
.about-photo{ margin:0; }
.about-photo img{ width:100%; display:block; border:1px solid var(--parchment-deep); box-shadow:10px 10px 0 rgba(217,169,59,.35); }
.about-facts{ clear:both; list-style:none; margin:1.4rem 0 0; padding:0; display:grid; gap:.7rem; }
.about-facts li{ padding:.75rem 1rem; background:rgba(255,255,255,.45); border-left:3px solid var(--gold); line-height:1.5; }
.about-facts b{ font-family:'Fraunces'; color:var(--wax); margin-right:.4rem; }
.about-band .figure-row{ gap:1.5rem; margin:.5rem 0 0; }
.about-band .figure-row figure{ flex:1 1 300px; max-width:420px; }
.about-band .figure-row img{ box-shadow:6px 6px 0 rgba(217,169,59,.3); }
.pub-group{ font-size:1.12rem; line-height:1.4; margin:2.4rem 0 1rem; padding-bottom:.6rem; border-bottom:1px solid rgba(139,46,34,.25); color:var(--ink-soft); }
.pub-group--first{ margin-top:1.8rem; }
.pub-card{ display:grid; grid-template-columns:100px 1fr 190px; gap:1.6rem; align-items:start; background:#f8f0da; border:1px solid var(--parchment-deep); border-left:4px solid var(--gold); padding:1.4rem 1.6rem; margin-bottom:1.2rem; }
.pub-card__year{ font-family:'Fraunces'; font-weight:600; font-size:1.8rem; line-height:1.1; color:var(--wax); }
.pub-card__year--small{ font-size:1.15rem; line-height:1.3; }
.pub-card h4{ font-family:'Fraunces'; font-weight:600; font-size:1.1rem; line-height:1.4; margin:0 0 .5rem; }
.pub-card p{ margin:0; font-size:.98rem; line-height:1.65; }
.pub-card__img{ width:100%; display:block; border:1px solid var(--parchment-deep); }
@media (max-width:820px){
  .about-photo.about-photo--float{ float:none; width:100%; max-width:340px; margin:0 0 1.4rem; }
  .pub-card{ grid-template-columns:1fr; gap:.8rem; }
  .pub-card__img{ max-width:240px; }
}
@media (min-width:900px){ .about-title--long{ white-space:nowrap; } }

/* ---- Preise: Badge, Info-Karten ---- */
.price-badge{ float:right; width:270px; margin:0 0 1.4rem 2.5rem; background:var(--ink); color:var(--cream-text); text-align:center; padding:1.6rem 1.4rem; border-bottom:4px solid var(--gold); box-shadow:10px 10px 0 rgba(217,169,59,.35); }
.price-badge__label{ font-size:.85rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); font-weight:700; }
.price-badge__figure{ font-family:'Fraunces'; font-weight:600; font-size:3.4rem; line-height:1.1; color:var(--gold); margin:.5rem 0; }
.price-badge__figure span{ display:block; font-family:'Public Sans',sans-serif; font-size:1rem; font-weight:400; color:var(--cream-text); }
.price-badge__note{ font-size:.95rem; padding-top:.9rem; border-top:1px solid rgba(217,169,59,.3); }
.info-cards{ display:grid; grid-template-columns:1fr 1fr; gap:1.6rem; align-items:stretch; }
.info-card{ background:#f8f0da; border:1px solid var(--parchment-deep); border-top:4px solid var(--gold); padding:1.6rem; }
.info-card h3{ font-size:1.25rem; margin:0 0 .8rem; }
.info-card p{ margin:0 0 1rem; line-height:1.7; }
.info-card p:last-child{ margin-bottom:0; }
.price-examples--flush{ padding:0; max-width:none; margin-top:1.8rem; }
@media (max-width:820px){
  .price-badge{ float:none; width:100%; max-width:300px; margin:0 0 1.4rem; }
  .info-cards{ grid-template-columns:1fr; }
}

/* ---- Lightbox: Karussell-Navigation, Abstand Foto/Text ---- */
.lightbox-overlay__nav{ position:absolute; top:50%; transform:translateY(-50%); width:56px; height:56px; border-radius:50%; border:1px solid rgba(243,233,210,.5); background:rgba(36,23,19,.7); color:#f3e9d2; font-size:2rem; line-height:1; cursor:pointer; }
.lightbox-overlay__nav--prev{ left:1.2rem; }
.lightbox-overlay__nav--next{ right:1.2rem; }
.lightbox-overlay__nav:hover, .lightbox-overlay__nav:focus-visible{ background:var(--gold); border-color:var(--gold); color:var(--ink); outline:none; }
.lightbox-overlay__nav[hidden], .lightbox-overlay__count[hidden]{ display:none; }
.lightbox-overlay__count{ position:absolute; bottom:1rem; left:50%; transform:translateX(-50%); color:#f3e9d2; font-size:.95rem; background:rgba(36,23,19,.7); padding:.25rem .8rem; border-radius:3px; }
.about-band--tint .about-photo--float{ margin-left:4rem; }
@media (max-width:820px){
  .about-band--tint .about-photo--float{ margin-left:0; }
  .lightbox-overlay__nav{ width:44px; height:44px; font-size:1.6rem; }
}

/* ---- Startseite: Versprechen-Karten ---- */
.trust-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
@media (max-width:820px){ .trust-cards{ grid-template-columns:1fr; } }
.about-band--divided{ border-bottom:1px solid var(--parchment-deep); padding-bottom:3rem; box-shadow:0 1px 0 rgba(217,169,59,.45); }

/* ---- Header weiß (Testansicht – zum Zurücksetzen diesen Block entfernen) ---- */
.nav{ background:#fff; border-bottom:1px solid var(--parchment-deep); }
.nav__links a, .nav__has-children summary{ color:var(--ink); }
.nav__links a:hover, .nav__links a:focus-visible, .nav__links a[aria-current="page"],
.nav__has-children details[open] summary, .nav__has-children summary:hover, .nav__has-children summary:focus-visible{ border-bottom-color:var(--wax); }
.nav__lang{ color:var(--ink); }
.nav__lang a.on{ text-decoration-color:var(--wax); }
.nav__toggle{ border-color:var(--ink); color:var(--ink); }
.nav__subnav{ background:#fff; border:1px solid var(--parchment-deep); box-shadow:0 8px 20px rgba(36,23,19,.12); }
.nav__subnav a{ color:var(--ink); }
.nav__subnav a:hover, .nav__subnav a:focus-visible{ background:#f6ecd0; color:var(--wax); }
@media (max-width:820px){
  .nav__links--open{ background:#fff; border-bottom:1px solid var(--parchment-deep); }
  .nav__links--open li{ border-bottom-color:var(--parchment-deep); }
  .nav__subnav{ background:none; border:none; box-shadow:none; }
}

/* ---- Footer ---- */
.site-footer{ background:var(--ink); color:#c2ae86; border-top:3px solid var(--gold); font-size:.85rem; }
.site-footer a{ color:#e4d6b4; text-decoration:none; }
.site-footer a:hover, .site-footer a:focus-visible{ color:var(--gold); text-decoration:underline; }
.site-footer__grid{ max-width:1180px; margin:0 auto; padding:2rem 5% 1.4rem; display:grid; grid-template-columns:1.5fr 1.3fr 1.2fr 1fr; gap:2rem; }
.site-footer__logo{ font-family:'Fraunces'; font-weight:600; font-size:1.4rem; color:var(--cream-text); margin-bottom:.5rem; }
.site-footer__logo em{ color:var(--gold); }
.site-footer__brand p{ margin:0; line-height:1.55; max-width:34ch; }
.site-footer h3, .site-footer__title{ font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); font-family:'Public Sans',sans-serif; font-weight:700; margin:0 0 .6rem; }
.site-footer ul{ list-style:none; margin:0; padding:0; display:grid; gap:.4rem; }
.site-footer li a{ display:inline-flex; align-items:center; gap:.55rem; }
.site-footer__address{ display:flex; gap:.55rem; align-items:flex-start; line-height:1.45; }
.site-footer .foot__icon{ width:15px; height:15px; flex-shrink:0; color:var(--gold); margin-top:.15rem; }
.site-footer li a .foot__icon{ margin-top:0; }
.site-footer__bar{ border-top:1px solid rgba(217,169,59,.2); text-align:center; padding:.8rem 5%; font-size:.78rem; color:#a8956c; }
@media (max-width:980px){ .site-footer__grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .site-footer__grid{ grid-template-columns:1fr; gap:1.4rem; padding-top:1.8rem; } }
.price-example .price-example__note{ font-size:.82rem; line-height:1.5; color:#5f4e3b; margin-top:.2rem; }
.price-example blockquote.price-example__letter{ font-size:.86rem; line-height:1.55; margin:0; }
.price-example__notes{ margin-top:1.5rem; }
.price-example__notes ul{ margin:.3rem 0 0; padding-left:1.1rem; }
.price-example__notes li{ font-size:.82rem; line-height:1.5; color:#5f4e3b; margin-bottom:.35rem; }
.price-example__notes li:last-child{ margin-bottom:0; }
.letter-more{ display:block; margin-top:.3rem; }
.letter-more summary{ display:inline-block; cursor:pointer; list-style:none; font-family:'Public Sans',sans-serif; font-style:normal; font-weight:700; font-size:.9rem; color:var(--wax); padding:.2rem 0; border-bottom:2px solid transparent; }
.letter-more summary::-webkit-details-marker{ display:none; }
.letter-more summary::after{ content:' ▾'; }
.letter-more[open] summary::after{ content:' ▴'; }
.letter-more summary:hover, .letter-more summary:focus-visible{ border-bottom-color:var(--wax); }
.letter-more[open] summary{ margin-bottom:.5rem; }
.form-section .about-title{ margin-bottom:2.6rem; }
.about-photo figcaption{ font-size:.8rem; line-height:1.45; color:#6b5a41; margin-top:.6rem; }

/* ---- Beispiele: vier gleich große Bilder nebeneinander ---- */
.example-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; margin-top:.5rem; }
.example-grid figure{ margin:0; }
.example-grid img{ width:100%; aspect-ratio:3/4; object-fit:cover; object-position:top; display:block; border:1px solid var(--parchment-deep); box-shadow:6px 6px 0 rgba(217,169,59,.3); }
.example-grid figcaption{ font-size:.85rem; color:#6b5a41; margin-top:.7rem; text-align:center; }
@media (max-width:820px){ .example-grid{ grid-template-columns:repeat(2,1fr); } }
.about-subtitle{ font-size:1.2rem; line-height:1.35; margin:2rem 0 .8rem; clear:both; }
.about-subtitle:first-of-type{ margin-top:0; }
.about-band--wide{ padding-left:0; padding-right:0; }
.about-band--wide .about-inner{ max-width:1180px; padding:0 5%; }
.service-card__btn{ margin-top:1.3rem; }
.service-card{ display:flex; flex-direction:column; }
.service-card__btn{ margin-top:auto; align-self:flex-start; }
.service-card p{ margin-bottom:1.3rem; }

/* ---- Startseite: Leistungen + „Mein Versprechen" auf gleicher Linie wie die Bänder darüber ---- */
.services{ max-width:none; padding:3.8rem 5%; }
.services__head, .service-grid{ max-width:900px; margin-left:auto; margin-right:auto; }
.about-band--wide{ padding-left:5%; padding-right:5%; }
.about-band--wide .about-inner{ max-width:900px; padding:0; }

/* Untertitel direkt unter dem Titel nicht unter das Foto schieben */
.about-title + .about-subtitle{ clear:none; margin-top:0; }
.about-subtitle--oneline{ font-size:clamp(.95rem,2.3vw,1.05rem); }
@media (min-width:821px){ .about-subtitle--oneline{ white-space:nowrap; } }

/* Lange Titel neben Foto: nicht mitten in Wortgruppen umbrechen */
.about-title--fit{ font-size:clamp(1.25rem,2.2vw,1.5rem); }
.nowrap{ white-space:nowrap; }
@media (max-width:520px){ .nowrap{ white-space:normal; } }
.about-title--long{ font-size:clamp(1.25rem,2.1vw,1.6rem); text-wrap:balance; }

/* Footer: ohne Markenblock, drei Spalten mittig */
.site-footer__grid{ grid-template-columns:repeat(3,auto); justify-content:center; gap:2rem clamp(2rem,7vw,6rem); }
@media (max-width:820px){ .site-footer__grid{ grid-template-columns:repeat(2,auto); } }
@media (max-width:560px){ .site-footer__grid{ grid-template-columns:1fr; justify-content:stretch; } }

/* ---- Kopfbereich: helle Kopfleiste, helles Foto mit warmem Braunverlauf ---- */
.nav{ background:#fffaf0; border-bottom:2px solid var(--gold); }
.stats{ background:#fbf6e9; border-color:var(--parchment-deep); }
.stat{ color:var(--ink-soft); }
.stat b{ color:var(--wax); }
.hero{ background:#3C2424; display:flex; align-items:center; min-height:470px; }
.hero__photo{ opacity:1; mix-blend-mode:normal; filter:none; object-position:68% 50%; }
.hero__scrim{ background:linear-gradient(90deg, rgba(60,36,36,.93) 0%, rgba(60,36,36,.88) 38%, rgba(60,36,36,.5) 58%, rgba(60,36,36,.08) 80%, rgba(60,36,36,0) 100%); }
.hero__inner{ margin:0 auto 0 max(5%, calc((100% - 900px) / 2)); width:min(520px,90%); max-width:none; padding:2.6rem 0; }
.hero__title{ font-size:clamp(1.9rem,3.4vw,2.6rem); }
.hero__sub{ margin:1rem 0 1.5rem; }
.hero__trust{ gap:.5rem 1.2rem; color:#e3d4ae; }
@media (max-width:820px){
  .hero{ min-height:0; }
  .hero__scrim{ background:rgba(60,36,36,.82); }
  .hero__inner{ margin:0 5%; width:auto; padding:2rem 0; }
}

/* ---- Startseite: ruhigerer Kontakt-Balken ---- */
.contact--soft{ background:#efe3c2; color:var(--ink); border-top:1px solid var(--parchment-deep); }
.contact--soft h2{ color:var(--ink); }

/* ---- Kopfbereich final: ohne Buttons/Vertrauenspunkte, „Kontakt" als Button in der Kopfleiste ---- */
.hero{ min-height:400px; }
@media (min-width:821px){
  .nav__links .nav__cta a{ background:var(--wax); color:#fff4ea; padding:.6rem 1.2rem; border-radius:3px; border-bottom-color:transparent; font-weight:600; }
  .nav__links .nav__cta a:hover, .nav__links .nav__cta a:focus-visible{ background:#6f2419; border-bottom-color:transparent; }
  .nav__links .nav__cta a[aria-current="page"]{ box-shadow:inset 0 -3px 0 var(--gold); }
}

/* ---- Mobiles Menü: „Leistungen" mit Unterpunkten untereinander statt nebeneinander ---- */
@media (max-width:820px){
  .nav__links--open li{ display:block; }
  .nav__has-children details{ display:block; }
  .nav__has-children summary{ display:flex; align-items:center; justify-content:space-between; padding:.2rem 0; }
  .nav__links--open .nav__subnav{ position:static; display:block; min-width:0; padding:.4rem 0 .2rem 1rem; }
  .nav__links--open .nav__subnav li{ padding:0; border:none; }
  .nav__links--open .nav__subnav a{ display:block; padding:.6rem 0; white-space:normal; }
}
@media (max-width:820px){
  .nav__links--open{ align-items:stretch; text-align:left; }
  .nav__links--open li > a, .nav__has-children summary{ display:flex; width:100%; padding:.2rem 0; border-bottom:none; }
  .nav__links--open li > a[aria-current="page"], .nav__has-children summary[aria-current="page"], .nav__has-children details[open] summary{ color:var(--wax); font-weight:600; border-bottom:none; }
  .nav__links--open .nav__subnav a:hover, .nav__links--open .nav__subnav a:focus-visible{ background:none; }
}


.nav__logo{ width:auto; }
