:root{
  --bg:#faf6f1;
  --surface:#ffffff;
  --surface-soft:#f4ece5;
  --ink:#4b312b;
  --muted:#7b6259;
  --line:#ead9cf;
  --brand:#cf2b29;
  --brand-dark:#b0231f;
  --brand-soft:#f8e2e0;
  --accent:#df7645;
  --footer:#6b221e;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.65}
a{color:inherit}
img{max-width:100%;display:block}
button{font:inherit;cursor:pointer}
header{position:sticky;top:0;z-index:30;background:rgba(250,246,241,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}
.nav{max-width:1160px;margin:auto;min-height:76px;display:flex;justify-content:space-between;align-items:center;padding:0 26px;gap:24px}
.brand{display:flex;align-items:center;text-decoration:none;flex:0 0 auto}
.brand img{height:42px;width:auto;display:block}
.navlinks{display:flex;align-items:center;gap:25px}
.navlinks a,.backlink{text-decoration:none;font-size:.95rem}
.navlinks a:hover,.footer a:hover,.backlink:hover{color:var(--brand)}
.navlinks .navcta{background:var(--brand);color:white;padding:11px 18px;border-radius:999px;font-weight:700;box-shadow:0 6px 18px rgba(207,43,41,.18)}
.hero{position:relative;min-height:350px;height:42vw;max-height:510px;background:linear-gradient(135deg,var(--brand-dark),#cf5337 45%,#e7aa7d);overflow:hidden;display:grid;align-items:end}
.hero.has-photo{background:#9a3e2d}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:none}.hero-inner h1,.hero-inner p,.hero-inner .eyebrow{text-shadow:0 2px 8px rgba(0,0,0,.65)}
.hero-inner{position:relative;z-index:1;max-width:1160px;width:100%;margin:0 auto;padding:68px 26px;color:white}
.eyebrow{font-size:.76rem;text-transform:uppercase;letter-spacing:.19em;font-weight:700;color:var(--brand)}
.hero .eyebrow{color:#ffe9e8}
.hero h1{font-size:clamp(2.7rem,6vw,5rem);line-height:1.05;font-weight:700;letter-spacing:-.035em;margin:15px 0}
.hero p{font-size:1.13rem;margin:0;max-width:600px}
.section{padding:86px 26px}
.wrap{max-width:1100px;margin:auto}
.intro{display:grid;grid-template-columns:.82fr 1.18fr;gap:70px;align-items:start}
.section h2{font-size:clamp(2rem,3.6vw,3rem);line-height:1.16;font-weight:700;letter-spacing:-.025em;margin:12px 0 23px}
.section h3{margin:0 0 14px;color:var(--brand-dark);font-size:1.28rem}
.lead{font-size:1.1rem;line-height:1.9;color:#5b433c}
.facts{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.facts span{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:8px 14px;font-size:.88rem;color:#5b433c}
.tinted{background:linear-gradient(180deg,var(--surface-soft),#fff)}
.section-top{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:26px}
.section-top p{max-width:520px;color:var(--muted)}
.spacer{height:40px}
.gallery{position:relative}
.stage{position:relative;height:min(60vw,610px);min-height:290px;background:linear-gradient(135deg,#f1e3d8,#dbc0b2);border-radius:14px;overflow:hidden;box-shadow:0 14px 34px rgba(91,47,40,.10)}
.stage img{width:100%;height:100%;object-fit:cover}
/* Hochformatbilder: mehr Höhe, ohne Zuschnitt. Der Bildbereich bleibt bewusst ruhig. */
.stage.is-portrait{height:clamp(440px,72vw,820px);background:radial-gradient(ellipse at center,#fffaf7 0%,#f3e7df 72%,#ebd9ce 100%)}
.stage.is-portrait img{object-fit:contain;padding:8px}
.stage.is-landscape{background:#f1e9e2}
.stage .empty{height:100%;display:grid;place-content:center;text-align:center;padding:26px;color:#6b4a42}
.stage .arrow{position:absolute;top:50%;transform:translateY(-50%);border:0;border-radius:50%;background:rgba(255,255,255,.92);color:var(--brand-dark);width:46px;height:46px;font-size:28px;line-height:1;box-shadow:0 6px 16px rgba(0,0,0,.12)}
.arrow.prev{left:17px}.arrow.next{right:17px}
.count{position:absolute;bottom:16px;right:18px;background:rgba(69,34,29,.78);color:white;font-size:.8rem;padding:4px 12px;border-radius:40px}
.thumbs{display:flex;gap:10px;overflow-x:auto;padding:12px 1px 8px;scrollbar-width:thin}
.thumbs button{flex:0 0 100px;width:100px;height:69px;border:3px solid transparent;padding:0;border-radius:8px;overflow:hidden;background:#eee}
.thumbs button[aria-current=true]{border-color:var(--brand);box-shadow:0 0 0 2px rgba(207,43,41,.12)}
.thumbs img{width:100%;height:100%;object-fit:cover}
.gallery-caption{min-height:1.7em;margin:10px 2px 0;font-size:.98rem;font-weight:700;color:var(--brand-dark);text-align:center}
.booking{background:linear-gradient(135deg,var(--brand-dark),var(--brand));color:white}
.booking-wrap{display:flex;justify-content:space-between;align-items:center;gap:28px}
.booking h2{margin-bottom:12px}.booking p{max-width:610px;color:#ffe7e4}
.button{display:inline-block;text-decoration:none;background:#fff;color:var(--brand-dark);padding:15px 24px;border-radius:999px;font-weight:700;white-space:nowrap;box-shadow:0 8px 22px rgba(0,0,0,.12)}
.button:hover{background:#fff4f3}
.footer{padding:36px 26px;background:var(--footer);color:#fde9e6}
.footer-wrap{display:flex;justify-content:space-between;gap:22px;flex-wrap:wrap;align-items:center}
.footer-brand{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.footer-brand img{height:36px;width:auto;border-radius:2px}
.footer-links{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.footer a{text-decoration:none;font-size:.9rem}
.legal{max-width:820px;margin:0 auto;padding:72px 26px 100px}
.legal h1{font-size:2.8rem;font-weight:700}.legal h2{margin-top:35px;font-size:1.4rem}.legal p,.legal li{color:#5b433c}
.warning{background:#fff1ef;border-left:4px solid var(--brand);padding:16px 18px;margin:25px 0;border-radius:8px}
.mobile-menu{display:none}
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(15,8,7,.94);display:none;place-items:center;padding:58px}
.lightbox.open{display:grid}.lightbox img{max-height:86vh;max-width:94vw;object-fit:contain}.lightbox button{position:absolute;right:20px;top:15px;background:none;border:0;color:white;font-size:34px}
.thumbs button:focus-visible,.stage button:focus-visible,.button:focus-visible,.nav a:focus-visible{outline:3px solid #ffb0a7;outline-offset:3px}
@media(max-width:760px){
  .nav{min-height:68px;padding:0 18px}
  .brand img{height:34px}
  .mobile-menu{display:block;background:none;border:1px solid #d8b9af;padding:5px 12px;border-radius:999px;color:var(--ink)}
  .navlinks{display:none;position:absolute;left:0;right:0;top:68px;background:var(--bg);padding:20px;flex-direction:column;align-items:stretch;box-shadow:0 10px 20px rgba(29,18,16,.10)}
  .navlinks.open{display:flex}
  .hero{height:380px;min-height:0}
  .section{padding:62px 20px}
  .intro{grid-template-columns:1fr;gap:20px}
  .section-top{display:block}
  .booking-wrap{display:block}
  .booking .button{margin-top:16px}
  .stage{height:340px}
  .stage.is-portrait{height:clamp(420px,120vw,660px)}
  .footer-wrap,.footer-brand,.footer-links{display:block}
  .footer-brand img{margin-bottom:10px}
}
