  @font-face{font-family:'Lora'; font-style:normal; font-weight:400 700; font-display:swap; src:url(fonts/lora.ttf) format('truetype');}
  @font-face{font-family:'Lora'; font-style:italic; font-weight:400 600; font-display:swap; src:url(fonts/lora-italic.ttf) format('truetype');}
  :root{
    --cream:#F6EEE1; --cream-2:#EFE4D2; --espresso:#2E2B26; --gray:#7A7161;
    --gold:#BA7F0E; --gold-soft:#DDC79A; --red:#C5392C; --red-dark:#A82C21;
    color-scheme: light;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth; scroll-padding-top:72px;}
  body{margin:0; background:var(--cream); color:var(--espresso);
    font-family:"Lora","Iowan Old Style","Palatino Linotype",Georgia,serif;
    font-size:16.5px; line-height:1.6; -webkit-font-smoothing:antialiased;
    padding-top:env(safe-area-inset-top,0px);}
  h1,h2,h3{font-weight:500; line-height:1.2; margin:0 0 .5em; letter-spacing:-.005em;}
  h1{font-size:clamp(1.85rem,3.6vw,2.6rem);}
  .brandtitle{font-size:clamp(2.2rem,4.8vw,3.3rem); font-weight:500; line-height:1.08; margin:0 0 .12em; color:var(--espresso);}
  .subhead{font-size:clamp(1.2rem,2.4vw,1.6rem); font-weight:500; line-height:1.25; color:var(--espresso); margin:0 0 .6rem;}
  h2{font-size:clamp(1.35rem,2.4vw,1.75rem);}
  p{margin:0 0 .9rem; max-width:58ch;}
  a{color:var(--gold); text-decoration:none;}
  .wrap{max-width:1060px; margin:0 auto; padding:0 clamp(20px,5vw,48px);}
  header.nav{position:sticky; top:env(safe-area-inset-top,0px); z-index:50; background:rgba(246,238,225,.9);
    backdrop-filter:blur(8px); border-bottom:1px solid var(--cream-2);}
  .nav-inner{display:flex; align-items:center; justify-content:space-between; gap:20px;
    padding:11px clamp(20px,5vw,48px); max-width:1060px; margin:0 auto;}
  .brand{display:flex; align-items:center; gap:11px; font-weight:500; font-size:1rem; color:var(--espresso);}
  .brand img{width:36px; height:36px;}
  .nav-links{display:flex; gap:18px; align-items:center;}
  .nav-links a{color:var(--espresso); font-size:.9rem; white-space:nowrap;}
  .nav-links a:hover{color:var(--gold);}
  .nav-cta{border:1px solid var(--gold); color:var(--espresso) !important; padding:7px 15px; border-radius:7px; font-size:.9rem;}
  .nav-cta:hover{background:var(--cream-2);}
  @media(max-width:1240px){ .nav-links a:not(.nav-cta){display:none;} }
  .hero{display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(26px,4vw,52px);
    align-items:center; padding:clamp(40px,6vw,80px) 0 clamp(30px,4vw,48px);}
  .kicker{color:var(--gray); font-size:.98rem; margin:0 0 .9rem;}
  .tagline{font-style:italic; font-size:clamp(1.05rem,2vw,1.28rem); color:var(--gold); margin:.5rem 0 1rem;}
  .lead{font-size:1.02rem; color:var(--espresso);}
  .btn-row{display:flex; flex-wrap:wrap; gap:12px; margin-top:1.4rem;}
  .btn{display:inline-block; padding:9px 19px; border-radius:6px; font-size:.88rem; font-weight:500; letter-spacing:.012em;}
  .btn-red{background:transparent; color:var(--red); border:1px solid var(--red);}
  .btn-red:hover{background:var(--red); color:#fff;}
  .btn-ghost{border:1px solid var(--gold); color:var(--espresso);} .btn-ghost:hover{background:var(--cream-2);}
  .photo{border:1px solid var(--gold-soft); border-radius:12px; background:var(--cream-2);
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    text-align:center; color:var(--gray); padding:22px; gap:8px;}
  .photo small{font-size:.82rem; max-width:26ch; line-height:1.45;}
  .hero-photo{aspect-ratio:4/5; border-radius:12px; overflow:hidden;}
  .hero-photo img{width:100%; height:100%; object-fit:cover; display:block;}
  .portrait{aspect-ratio:4/5; max-width:300px; border-radius:12px; overflow:hidden;}
  .portrait img{width:100%; height:100%; object-fit:cover; display:block;}
  section{padding:clamp(36px,5vw,64px) 0;}
  .motif-row{display:flex; justify-content:center; padding:6px 0;}
  .band{background:var(--cream-2);}
  ul.plain{list-style:none; padding:0; margin:.9rem 0; max-width:58ch;}
  ul.plain li{position:relative; padding:9px 0 9px 26px;}
  ul.plain li::before{content:""; position:absolute; left:2px; top:15px; width:7px; height:7px;
    border-radius:50%; background:var(--gold);}
  .soft{color:var(--gray); font-style:italic;}
  .two-col{display:grid; grid-template-columns:300px 1fr; gap:clamp(26px,4vw,52px); align-items:start;}
  .two-col h3{font-size:1.05rem; margin:1.5rem 0 .4rem; color:var(--espresso);}
  .bz-intro{max-width:58ch;}
  .bz-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:1.6rem 0 1.4rem;}
  .bz-card{background:var(--cream); border:1px solid var(--gold-soft); border-radius:12px; padding:20px 22px 10px; min-width:0;}
  .bz-card h3{font-size:1.08rem; margin:0 0 .2rem; color:var(--espresso);}
  .bz-card .who{color:var(--gray); font-size:.86rem; font-style:italic; margin:0 0 .3rem;}
  .bz-card ul.plain{margin:.3rem 0 .6rem;}
  .bz-card ul.plain li{padding:6px 0 6px 22px;}
  .bz-card ul.plain li::before{top:12px;}
  .bz-card p{margin:.4rem 0 .9rem;}
  .bz-note{font-style:italic; color:var(--espresso); max-width:58ch;}
  @media(max-width:820px){ .bz-grid{grid-template-columns:1fr;} }
  .news-list{display:flex; flex-direction:column; gap:28px; margin-top:1.4rem;}
  .event{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:clamp(22px,4vw,44px); align-items:start;
    background:var(--cream); border:1px solid var(--gold-soft); border-radius:14px; padding:clamp(18px,3vw,30px);}
  .event-meta{display:flex; flex-wrap:wrap; align-items:center; gap:10px; color:var(--gray); font-size:.88rem; margin:0 0 .5rem;}
  .event-meta .tag{border:1px solid var(--gold); color:var(--gold); border-radius:5px; padding:1px 8px; font-size:.78rem; letter-spacing:.04em;}
  .event-meta .todo{border:1px solid var(--red); color:var(--red); border-radius:5px; padding:1px 8px; font-size:.78rem;}
  .event h3{font-size:clamp(1.2rem,2.2vw,1.45rem); margin:0 0 .6rem;}
  .event-text{min-width:0;}
  .gal-wrap{display:flex; flex-direction:column; gap:10px; min-width:0;}
  .gallery{display:flex; gap:10px; overflow-x:auto; scroll-snap-type:x mandatory; border-radius:10px; min-width:0; scrollbar-width:none;}
  .gallery::-webkit-scrollbar{display:none;}
  .gal-ctrl{display:flex; align-items:center; justify-content:center; gap:14px;}
  .gal-ctrl button{font:inherit; background:transparent; border:1px solid var(--gold); color:var(--espresso); width:34px; height:34px; border-radius:50%; cursor:pointer; line-height:1;}
  .gal-ctrl button:hover{background:var(--cream-2);}
  .gal-ctrl button:focus-visible{outline:2px solid var(--gold); outline-offset:2px;}
  .gal-count{color:var(--gray); font-size:.86rem; font-variant-numeric:tabular-nums; min-width:3.2em; text-align:center;}
  .gallery button{flex:0 0 100%; scroll-snap-align:start; padding:0; border:0; background:none; cursor:zoom-in; border-radius:10px; overflow:hidden;}
  .gallery img{display:block; width:100%; aspect-ratio:4/5; object-fit:cover; max-width:100%;}
  .gallery button:focus-visible{outline:2px solid var(--gold); outline-offset:2px;}
  dialog.lightbox{border:0; padding:0; background:transparent; max-width:min(92vw,900px); max-height:92vh;}
  dialog.lightbox::backdrop{background:rgba(46,43,38,.82);}
  dialog.lightbox img{display:block; max-width:100%; max-height:88vh; border-radius:8px;}
  dialog.lightbox form{position:absolute; top:8px; right:8px; margin:0;}
  dialog.lightbox button{font:inherit; width:38px; height:38px; border-radius:50%; border:0; background:var(--cream); color:var(--espresso); cursor:pointer; font-size:1.2rem;}
  @media(max-width:820px){ .event{grid-template-columns:1fr;} .gal-wrap{order:-1;} }
  .jl{background:var(--cream-2); border:1px solid var(--gold-soft); border-radius:14px; padding:clamp(26px,3.5vw,42px);}
  .jl .badge{display:inline-block; background:var(--red); color:#fff; border-radius:7px; padding:6px 14px; font-size:.9rem; font-weight:500; margin-bottom:16px;}
  .jl .badge em{font-style:italic; font-weight:400; opacity:.9;}
  .jl ul.plain li::before{background:var(--red);}
  .contact-card{background:var(--cream-2); border-radius:14px; padding:clamp(26px,3.5vw,42px);
    display:grid; grid-template-columns:1fr 1fr; gap:30px; align-items:start;}
  .contact-card dl{margin:0;} .contact-card dt{color:var(--gray); font-size:.86rem; margin-top:12px;}
  .contact-card dd{margin:0; font-size:1.02rem;}
  .preise-card{background:var(--cream-2); border-radius:14px; padding:clamp(22px,3vw,34px); max-width:560px;}
  .preis-row{display:flex; justify-content:space-between; align-items:baseline; gap:18px; padding:11px 0;}
  .preis-row em{font-style:italic; color:var(--gray); font-size:.92em;}
  .preis{color:var(--gold); font-weight:500; white-space:nowrap;}
  .faq-list{max-width:640px;}
  .faq-list details{background:var(--cream-2); border-radius:10px; padding:2px 18px; margin-bottom:10px;}
  .faq-list summary{cursor:pointer; font-weight:500; padding:13px 0; color:var(--espresso); list-style:none;}
  .faq-list summary::-webkit-details-marker{display:none;}
  .faq-list summary::after{content:"+"; float:right; color:var(--gold); font-size:1.25em; line-height:1;}
  .faq-list details[open] summary::after{content:"\2013";}
  .faq-list summary:hover{color:var(--gold);}
  .faq-list details p{margin:0 0 14px; color:var(--espresso);}
  .quote{font-style:italic; font-size:clamp(1.15rem,2.4vw,1.5rem); color:var(--gold); text-align:center; max-width:24ch; margin:1.2rem auto 0;}
  .zugang{text-align:center;}
  .zugang h2{font-size:1.02rem; font-weight:500; color:var(--gold); letter-spacing:.03em; margin:0 0 .1rem;}
  .motto-wrap{max-width:32ch; margin:.5rem auto 0;}
  .motto{font-style:italic; font-size:clamp(1.05rem,2vw,1.4rem); color:var(--espresso); line-height:1.55; margin:.4rem 0 .35rem; text-align:center;}
  .motto-by{color:var(--gray); font-size:.9rem; text-align:right; margin:0;}
  footer{background:var(--espresso); color:var(--cream); padding:38px 0 calc(26px + env(safe-area-inset-bottom,0px)); margin-top:8px;}
  footer a{color:var(--gold-soft); font-size:.92rem;}
  .foot-inner{display:flex; flex-wrap:wrap; justify-content:space-between; gap:22px; align-items:center;}
  .foot-brand{display:flex; align-items:center; gap:10px; color:var(--cream); font-size:.98rem;}
  .foot-brand img{width:32px; height:32px;}
  .foot-links{display:flex; flex-wrap:wrap; gap:16px;}
  .foot-note{color:var(--gray); font-size:.8rem; margin-top:16px;}
  @media(max-width:820px){
    .hero{grid-template-columns:1fr;} .hero-photo{order:-1; max-width:400px;}
    .two-col{grid-template-columns:1fr;} .portrait{max-width:240px; margin-left:auto; margin-right:auto;}
    .contact-card{grid-template-columns:1fr;}
  }

  /* Mobiles Menue */
  .nav-right{display:flex; align-items:center; gap:10px;}
  .menu-btn{display:none; align-items:center; justify-content:center; width:40px; height:40px; border:1px solid var(--gold-soft);
    border-radius:8px; background:transparent; color:var(--espresso); cursor:pointer; font:inherit;}
  .menu-btn svg{width:20px; height:20px;}
  .menu-btn:focus-visible{outline:2px solid var(--gold); outline-offset:2px;}
  .nav-drawer{display:none; border-top:1px solid var(--cream-2); padding:8px clamp(20px,5vw,48px) 16px;}
  .nav-drawer a{display:block; padding:11px 0; color:var(--espresso); border-bottom:1px solid var(--cream-2); font-size:1rem;}
  .nav-drawer a:last-child{border-bottom:0;}
  .nav-drawer a[aria-current="page"]{color:var(--gold);}
  @media(max-width:1240px){ .menu-btn{display:inline-flex;} }
  header.nav.open .nav-drawer{display:block;}
  @media(min-width:1241px){ header.nav.open .nav-drawer{display:none;} }
  .nav-links a[aria-current="page"]{color:var(--gold);}
  /* Teaser Aktuelles auf der Startseite */
  .teaser{display:grid; grid-template-columns:220px minmax(0,1fr); gap:clamp(18px,3vw,32px); align-items:center;
    background:var(--cream); border:1px solid var(--gold-soft); border-radius:14px; padding:clamp(16px,2.5vw,24px); margin-top:1.2rem;}
  .teaser img{width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:10px; display:block; max-width:100%;}
  .teaser h3{font-size:1.2rem; margin:0 0 .4rem;}
  .teaser p{margin:0 0 .8rem;}
  @media(max-width:620px){ .teaser{grid-template-columns:1fr;} .teaser img{max-width:260px;} }
  /* Unterseite Aktuelles */
  .page-head{padding-block:clamp(36px,5vw,64px) clamp(10px,2vw,20px);}
  .page-head p{color:var(--gray); max-width:58ch;}
  .back{display:inline-block; font-size:.9rem; margin-bottom:1rem;}
  .sub-h{font-size:1.05rem; color:var(--gold); letter-spacing:.03em; font-weight:500; margin:0 0 .2rem;}
  .empty{background:var(--cream-2); border:1px dashed var(--gold-soft); border-radius:14px; padding:clamp(20px,3vw,30px); max-width:640px;}
  .empty p{margin:0 0 .4rem;}
  @media(max-width:480px){
    .nav-inner{gap:10px;}
    .brand{font-size:.86rem; gap:8px; min-width:0;}
    .brand img{width:30px; height:30px;}
    .nav-right{gap:8px;}
    .nav-cta{padding:6px 10px;}
  }
  /* Abstaende fuer Abschnitte, die zugleich .wrap sind */
  section.wrap{padding-block:clamp(36px,5vw,64px);}
  @media(max-width:820px){
    .hero-photo{aspect-ratio:4/3; max-width:100%;}
    .foot-links{gap:2px 18px;}
    .foot-links a{padding:9px 0;}
    .back{padding:8px 0;}
  }
  .brand-text{white-space:nowrap;}
  /* Sprachumschalter */
  .lang-switch{display:inline-flex; align-items:center; justify-content:center; min-width:40px; height:40px; padding:0 8px;
    border:1px solid var(--gold-soft); border-radius:8px; color:var(--espresso); font-size:.86rem; letter-spacing:.06em;}
  .lang-switch:hover{background:var(--cream-2); color:var(--espresso);}
  .lang-switch:focus-visible{outline:2px solid var(--gold); outline-offset:2px;}
  @media(min-width:1241px){ .lang-switch{height:34px; min-width:38px;} }
  @media(max-width:480px){
    .brand-text{font-size:.8rem; line-height:1.15; max-width:9.5em; white-space:normal;}
  }
  .lang-switch{gap:6px; letter-spacing:0; font-size:.86rem;}
  .lang-switch svg{width:16px; height:16px; flex:0 0 auto; color:var(--gold);}
  @media(max-width:430px){ .brand-text{display:none;} }
  .nav-inner{max-width:1200px;}
  .lang-switch{letter-spacing:.05em;}
  @media(max-width:430px){ .brand-text{display:inline;} }
  /* Rechtstexte */
  .legal{max-width:760px;}
  .legal h2{font-size:1.1rem; margin:1.8rem 0 .5rem;}
  .legal h2:first-child{margin-top:0;}
  .legal p, .legal li{font-size:.98rem;}
  .legal ul.plain li{padding:5px 0 5px 22px;}
  .legal ul.plain li::before{top:12px;}
  .todo{background:rgba(197,57,44,.1); color:var(--red); border-radius:4px; padding:0 4px;}
  /* Mein persoenlicher Zugang: Zitat im Doppelrahmen (wie auf Flyer und Kundenstopper) */
  .zugang{text-align:left;}
  .zugang-card{position:relative; display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr); gap:clamp(20px,4vw,56px);
    align-items:center; border:2.5px solid var(--gold); border-radius:16px; padding:clamp(28px,4.5vw,56px) clamp(22px,4.5vw,60px);}
  .zugang-card::before{content:""; position:absolute; inset:6px; border:1px solid var(--gold); border-radius:11px; pointer-events:none; opacity:.7;}
  .zugang-head h2{font-size:clamp(1.35rem,2.4vw,1.75rem); color:var(--espresso); font-weight:500; letter-spacing:0; margin:0 0 .4rem;}
  .zugang-head svg{display:block; max-width:100%;}
  .zugang-quote{margin:0; position:relative; padding-left:clamp(0px,1vw,8px);}
  .zugang-quote blockquote{margin:0; position:relative;}
  .zugang-quote blockquote::before{content:"\201E"; position:absolute; left:-.15em; top:-1.15em; font-size:3.2rem; line-height:1; color:var(--gold); font-style:normal;}
  .zugang-quote p{font-style:italic; font-size:clamp(1.1rem,1.9vw,1.32rem); line-height:1.6; color:var(--espresso); margin:0; max-width:46ch;}
  .zugang-quote p::after{content:"\201C";}
  html[lang="en"] .zugang-quote blockquote::before{content:"\201C"; top:-.55em;}
  html[lang="en"] .zugang-quote p::after{content:"\201D";}
  .zugang-quote figcaption{color:var(--gray); font-size:.92rem; margin-top:.9rem;}
  .zugang-quote figcaption::before{content:"\2014\00a0";}
  @media(max-width:820px){
    .zugang-card{grid-template-columns:1fr; gap:26px;}
    .zugang-quote{padding-left:0; padding-top:10px;}
  }
  .zugang-quote blockquote::before, html[lang="en"] .zugang-quote blockquote::before{content:none;}
  .zugang-quote p::before{content:"\201E";}
  html[lang="en"] .zugang-quote p::before{content:"\201C";}
  .zugang-quote p{border-left:2px solid var(--gold-soft); padding-left:clamp(14px,2vw,22px);}
  .zugang-quote figcaption{padding-left:clamp(16px,2vw,24px);}
  /* Zugang: nur feiner Rahmen, keine Linie am Zitat */
  .zugang-card{border:1px solid var(--gold);}
  .zugang-card::before{content:none;}
  .zugang-quote p{border-left:0; padding-left:0;}
  .zugang-quote figcaption{padding-left:0;}

/* Online-Terminbuchung (zeeg) */
.btn-solid{background:var(--red); color:#fff; border:1px solid var(--red);}
.btn-solid:hover,.btn-solid:focus-visible{background:var(--red-dark); border-color:var(--red-dark); color:#fff;}
.btn:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}
.booking-hint{margin:.55rem 0 0; font-size:.82rem; color:var(--gray);}
.booking-box{margin:1.2rem 0 1.4rem; padding:16px 18px; border:1px solid var(--gold-soft); border-radius:12px; background:var(--cream-2);}
.booking-box p{margin:0 0 .7rem;}
.booking-box .btn-row{margin-top:0;}
