*{box-sizing:border-box}html{scroll-behavior:smooth;font-size:15px}body{margin:0;background:#f8f4ee;color:#2e2218;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;font-weight:400;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:#8b6a2e}img{max-width:100%;height:auto}.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;z-index:999;background:#fff;padding:.7rem 1rem}.nav{position:sticky;top:0;z-index:50;background:#1c1410;border-bottom:1px solid rgba(212,175,114,.3);min-height:68px;display:flex;align-items:center;justify-content:space-between;padding:.55rem clamp(1rem,4vw,3rem);gap:1rem}.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:#d4af72;font-family:Georgia,serif;font-style:italic;font-size:1.15rem}.brand img{width:42px;height:42px;border-radius:50%;object-fit:cover;object-position:center 10%;border:2px solid #b8924a}.navlinks{display:flex;align-items:center;gap:1.25rem}.navlinks a{font-size:.76rem;letter-spacing:.11em;text-transform:uppercase;text-decoration:none;color:rgba(248,244,238,.74);padding:.45rem 0}.navlinks a:hover,.navlinks a[aria-current=page]{color:#d4af72}.navtoggle{display:none;background:none;border:1px solid rgba(212,175,114,.35);color:#f8f4ee;padding:.55rem .7rem;font-size:1rem}.hero{background:#1c1410;color:#f8f4ee;padding:clamp(3.4rem,6vw,5.4rem) clamp(1rem,5vw,4rem)}.hero-inner{max-width:1380px;margin:auto;display:grid;grid-template-columns:minmax(240px,360px) 1fr;gap:clamp(2rem,6vw,5rem);align-items:center}.portrait{border-radius:50%;padding:5px;background:linear-gradient(135deg,#b8924a,#d4af72,#b8924a);box-shadow:0 0 55px rgba(184,146,74,.18)}.portrait img{display:block;border-radius:50%;aspect-ratio:1;object-fit:cover;object-position:center 10%}.eyebrow,.tagline{font-size:.72rem;letter-spacing:.23em;text-transform:uppercase;color:#d4af72}.hero h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(2.35rem,4.3vw,4rem);line-height:1.02;margin:.6rem 0 1rem}.hero p{font-family:Georgia,serif;font-size:clamp(1.08rem,1.6vw,1.25rem);color:rgba(248,244,238,.74);max-width:680px}.actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.8rem}.btn{display:inline-block;text-decoration:none;background:#b8924a;color:#fff;padding:.82rem 1.15rem;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;border:1px solid #b8924a}.btn.alt{background:transparent;color:#f8f4ee;border-color:rgba(212,175,114,.5)}main{min-height:55vh}.section{padding:clamp(2.45rem,4vw,3.7rem) clamp(1rem,5vw,4rem)}.section.alt{background:#f1ece3}.wrap{max-width:1380px;margin:auto}.narrow{max-width:800px;margin:auto}.section h1,.section h2{font-family:Georgia,serif;font-weight:400;color:#1c1410;line-height:1.12}.section h1{font-size:clamp(1.9rem,2.7vw,2.6rem);margin:.35rem 0 1.1rem}.section h2{font-size:clamp(1.45rem,2vw,1.9rem);margin:2.1rem 0 .9rem}.section h3{font-size:1.1rem;line-height:1.35}.lead{font-size:1.02rem;line-height:1.65;color:#574839;max-width:850px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3.5rem)}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}.card{background:#fff;border:1px solid rgba(184,146,74,.25);padding:1.5rem}.card p{color:#675849}.card a.more{font-weight:600;text-decoration:none}.bullets{padding-left:1.2rem}.bullets li{margin:.55rem 0}.timeline{border-top:1px solid rgba(184,146,74,.3)}.tl{display:grid;grid-template-columns:95px 1fr;gap:1rem;border-bottom:1px solid rgba(184,146,74,.25);padding:1rem 0}.tl .year{color:#8b6a2e;font-family:Georgia,serif;font-style:italic}.faq details{border-bottom:1px solid rgba(184,146,74,.3);padding:.9rem 0}.faq summary{font-family:Georgia,serif;font-size:1.15rem;cursor:pointer;color:#1c1410}.faq p{color:#675849}.rep-fil{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.8rem;margin-bottom:1.7rem}.rfil,.ab{border:1px solid rgba(184,146,74,.35);background:#fff;color:#574839;padding:.55rem .75rem;cursor:pointer;font:inherit;white-space:nowrap}.rfil.active,.rfil:hover,.ab.has:hover{border-color:#b8924a;color:#8b6a2e}.rep-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.rep-card{background:#fff;border:1px solid rgba(184,146,74,.25);padding:1rem}.rc-g,.tag{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:#8b6a2e}.rc-w{font-family:Georgia,serif;font-size:1.12rem;margin:.3rem 0}.rc-c{color:#756657;font-style:italic}.rc-t{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.65rem}.tag{border:1px solid rgba(184,146,74,.25);padding:.18rem .35rem}.alpha{display:flex;gap:.3rem;flex-wrap:wrap;margin-bottom:1.4rem}.ab{width:2.25rem;height:2.25rem;padding:0}.ab.off{opacity:.28;cursor:default}.kg{margin:1.3rem 0}.k-ltr{display:inline-block;background:#efe5d5;color:#8b6a2e;padding:.2rem .55rem;font-size:.8rem}.k-name{font-family:Georgia,serif;font-size:1.25rem;margin:.4rem 0;border-bottom:1px solid rgba(184,146,74,.25);padding-bottom:.35rem}.kwr{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid rgba(184,146,74,.2);padding:.5rem 0}.kwg{display:flex;gap:.3rem;flex-wrap:wrap}.chor-wrap{overflow-x:auto}.chor-tbl{width:100%;min-width:620px;border-collapse:collapse}.chor-tbl th,.chor-tbl td{text-align:left;border-bottom:1px solid rgba(184,146,74,.25);padding:.7rem}.contact-grid{display:grid;grid-template-columns:.8fr 1.4fr;gap:clamp(2rem,5vw,4rem)}label{display:block;font-size:.82rem;letter-spacing:.07em;text-transform:uppercase;color:#675849;margin-bottom:.3rem}.fi{width:100%;font:inherit;font-size:1rem;padding:.75rem;border:1px solid rgba(184,146,74,.35);background:#fff}.fg{margin-bottom:1rem}.frow{display:grid;grid-template-columns:1fr 1fr;gap:1rem}textarea.fi{min-height:150px;resize:vertical}.lied-row{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:.7rem;margin-bottom:.7rem}.btn-form{width:100%;font:inherit;background:#1c1410;color:#fff;border:0;padding:.9rem;cursor:pointer}.btn-add{font:inherit;background:#fff;border:1px solid rgba(184,146,74,.4);padding:.55rem .8rem;cursor:pointer}.form-note,.form-status{font-size:.9rem;color:#675849}.hp{position:absolute;left:-9999px}.legal h2{font-size:1.3rem}.legal p,.legal li{color:#574839}.footer{background:#1c1410;color:rgba(248,244,238,.66);padding:2.5rem clamp(1rem,5vw,4rem)}.footer-inner{max-width:1380px;margin:auto;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:2rem}.footer h2{font:400 1rem Georgia,serif;color:#d4af72}.footer a{color:rgba(248,244,238,.72);text-decoration:none;display:block;margin:.3rem 0}.footbot{max-width:1380px;margin:1.8rem auto 0;border-top:1px solid rgba(212,175,114,.2);padding-top:1rem;font-size:.82rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.breadcrumbs{font-size:.85rem;color:#756657;margin-bottom:1rem}.breadcrumbs a{text-decoration:none}.notice{border-left:4px solid #b8924a;background:#fff;padding:1rem 1.2rem;margin:1.4rem 0}.songlist{columns:2;column-gap:2rem}.songlist li{break-inside:avoid;margin:.4rem 0}.external{font-size:.95rem}
@media(max-width:1180px){html{font-size:16px}.navtoggle{display:block}.navlinks{display:none;position:absolute;top:68px;left:0;right:0;background:#1c1410;padding:1.3rem;flex-direction:column;align-items:flex-start}.navlinks.open{display:flex}.hero-inner,.grid2,.contact-grid{grid-template-columns:1fr}.hero-inner{text-align:center}.portrait{max-width:240px;margin:auto}.hero p{margin-left:auto;margin-right:auto}.actions{justify-content:center}.grid3{grid-template-columns:1fr 1fr}.rep-grid{grid-template-columns:1fr 1fr}.footer-inner{grid-template-columns:1.3fr 1fr 1fr}.lied-row{grid-template-columns:1fr}.songlist{columns:1}}
@media(max-width:640px){html{font-size:16px}.nav{min-height:64px}.brand{font-size:1rem}.brand img{width:38px;height:38px}.hero{padding-top:3rem;padding-bottom:3.5rem}.portrait{max-width:190px}.hero h1{font-size:2.25rem}.hero p,.lead{font-size:1.02rem}.section{padding:2.35rem 1.1rem}.section h1{font-size:2rem}.section h2{font-size:1.55rem}.grid3,.rep-grid,.footer-inner,.frow{grid-template-columns:1fr}.tl{grid-template-columns:72px 1fr}.kwr{display:block}.kwg{margin-top:.4rem}.actions .btn{width:100%;text-align:center}.footer{padding:2.2rem 1.1rem}.footbot{display:block}.footbot div{margin-top:.7rem}}



/* Ruhiger Seitenauftakt auf der Hochzeits-Landingpage: der Hintergrundwechsel liegt auf Desktop nicht mitten im sichtbaren Fenster. */

/* v4: desktop rhythm and viewport section boundaries */
@media (min-width:1181px){
  .hero{min-height:calc(100svh - 68px);box-sizing:border-box;display:flex;align-items:center;padding-top:clamp(2.5rem,4vw,4rem);padding-bottom:clamp(2.5rem,4vw,4rem)}
  .hero-inner{width:100%;max-width:1380px}
  .subpage main>.section:first-child{min-height:calc(100svh - 68px);box-sizing:border-box;display:flex;align-items:center}
  .subpage main>.section:first-child>.wrap,.subpage main>.section:first-child>.narrow{width:100%}
  .wedding-intro{min-height:calc(100svh - 68px);display:flex;align-items:center}
  .wedding-intro>.wrap{width:100%}
}
@media (min-width:1181px) and (max-width:1500px){
  .nav{padding-left:2.5rem;padding-right:2.5rem}
  .hero,.section,.footer{padding-left:2.5rem;padding-right:2.5rem}
  .hero-inner,.wrap,.footer-inner,.footbot{max-width:1320px}
  .hero-inner{grid-template-columns:minmax(260px,340px) 1fr;gap:clamp(2.5rem,5vw,4.5rem)}
}
@media (max-width:1180px){
  .subpage main>.section:first-child,.wedding-intro{min-height:auto;display:block}
}

/* v5: Desktop-Abschnitte füllen die sichtbare Höhe unterhalb der Sticky-Navigation.
   100vh dient als robuster Fallback; 100dvh folgt der tatsächlich sichtbaren Viewport-Höhe. */
:root{--nav-h:68px}
@media (min-width:1181px){
  .hero,
  main>.section{
    min-height:calc(100vh - var(--nav-h));
    min-height:calc(100dvh - var(--nav-h));
    box-sizing:border-box;
    display:flex;
    align-items:center;
  }
  .hero>.hero-inner,
  main>.section>.wrap,
  main>.section>.narrow{
    width:100%;
  }
}
@media (max-width:1180px){
  :root{--nav-h:64px}
  .hero,
  main>.section{
    min-height:auto;
  }
}
