
:root{
  --ink:#2b2620; --ink-soft:#5c554a; --paper:#faf6ef; --card:#fffdf8;
  --brand:#46531c; --brand-dark:#37411a; --brand-soft:#eef0e2;
  --red:#c22a1c; --gold:#fcd68b; --wood:#5c2e22; --line:#e4dccd;
  --max:1120px; --radius:14px;
  --shadow:0 10px 30px rgba(43,38,32,.10);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 system-ui,-apple-system,"Segoe UI",Verdana,Geneva,sans-serif;overflow-wrap:break-word}
img{max-width:100%;height:auto;display:block}
a{color:var(--red)}
h1,h2,h3,.brand__txt strong{font-family:Georgia,"Times New Roman",serif;line-height:1.2;color:var(--ink)}
h1{font-size:clamp(1.9rem,4.5vw,2.9rem);margin:.4em 0 .3em}
h2{font-size:clamp(1.4rem,3vw,1.9rem);margin:1.6em 0 .5em}
h3{font-size:1.15rem;margin:1.2em 0 .4em}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
.skip{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip:focus{position:fixed;left:12px;top:12px;z-index:99;width:auto;height:auto;clip-path:none;background:#fff;padding:10px 16px;border-radius:8px;box-shadow:var(--shadow)}

/* header */
.site-head{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid var(--line)}
.head__bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:10px;padding-bottom:10px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);min-width:0}
.brand__mark{flex:none;width:42px;height:42px;display:grid;place-items:center;background:var(--brand);color:var(--paper);font-family:Georgia,serif;font-size:1.5rem;border-radius:10px}
.brand__txt{display:flex;flex-direction:column;line-height:1.15;min-width:0}
.brand__txt strong{font-size:1.12rem}
.brand__txt small{color:var(--ink-soft);font-size:.72rem;font-family:system-ui,sans-serif}
.nav-toggle{display:flex;align-items:center;gap:8px;background:none;border:1px solid var(--line);border-radius:10px;padding:8px 12px;cursor:pointer;color:var(--ink);font:inherit}
.nav-toggle__box{display:inline-flex;flex-direction:column;gap:3px}
.nav-toggle__box span{width:18px;height:2px;background:var(--ink);border-radius:2px;transition:transform .2s}
.nav-toggle[aria-expanded="true"] .nav-toggle__box span:nth-child(1){transform:translateY(5px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] .nav-toggle__box span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] .nav-toggle__box span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
.mainnav{display:none;border-top:1px solid var(--line)}
.mainnav.is-open{display:block;max-height:calc(100vh - 64px);overflow:auto;padding:8px 0 16px}
.nav__list{list-style:none;margin:0;padding:0}
.nav__list>li{border-bottom:1px solid var(--line)}
.nav__link{display:flex;align-items:center;gap:6px;padding:12px 4px;color:var(--ink);text-decoration:none;font-weight:600}
.nav__link:hover{color:var(--red)}
.nav__link[aria-current="page"]{color:var(--red)}
.nav__caret{width:10px;height:7px;flex:none}
.nav__sub{list-style:none;margin:0;padding:0 0 8px 14px}
.nav__sub a{display:block;padding:8px 4px;color:var(--ink-soft);text-decoration:none}
.nav__sub a[aria-current="page"],.nav__sub a:hover{color:var(--red)}
.nav__side{display:flex;align-items:center;gap:14px;padding:12px 4px 0}
.nav__tel{font-weight:700;color:var(--ink);text-decoration:none;white-space:nowrap}
.nav__book{flex:none}
@media (max-width:600px){.nav__book{display:none}}
.btn{display:inline-block;padding:11px 20px;border-radius:999px;text-decoration:none;font-weight:700;font-size:.95rem;border:2px solid transparent;cursor:pointer;font-family:inherit;line-height:1.2}
.btn--primary{background:var(--red);color:#fff}
.btn--primary:hover{background:#a32014}
.btn--ghost{border-color:var(--brand);color:var(--brand)}
.btn--ghost:hover{background:var(--brand-soft)}

/* desktop nav */
@media (min-width:941px){
  .nav-toggle{display:none}
  .mainnav{display:block;border-top:0}
  .head__bar{border-bottom:1px solid var(--line)}
  .mainnav{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 20px;max-width:var(--max);margin:0 auto;background:var(--paper)}
  .nav__list{display:flex;flex-wrap:wrap}
  .nav__list>li{border-bottom:0;position:relative}
  .nav__link{padding:12px 10px;font-size:.92rem}
  .nav__item--sub details>summary{list-style:none;cursor:pointer}
  .nav__item--sub details[open]>summary .nav__caret{transform:rotate(180deg)}
  .nav__sub{position:absolute;left:0;top:100%;background:var(--paper);border:1px solid var(--line);border-radius:0 0 10px 10px;box-shadow:var(--shadow);padding:6px 0;min-width:230px;z-index:40}
  .nav__sub a{padding:8px 16px;white-space:nowrap}
  .nav__side{padding:0}
}

/* breadcrumb + page hero */
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 0;padding:0;font-size:.85rem;color:var(--ink-soft)}
.crumbs li+li::before{content:"›";margin-right:6px;color:var(--gold)}
.crumbs a{color:var(--ink-soft)}
.phero{position:relative;min-height:220px;display:flex;align-items:flex-end;margin-top:14px}
.phero--tall{min-height:340px}
.phero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.phero__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,18,12,.05) 30%,rgba(20,18,12,.62) 100%)}
.phero__txt{position:relative;color:#fff;width:100%;padding-top:70px;padding-bottom:22px}
.phero__txt h1{color:#fff;margin:.15em 0 0;text-shadow:0 2px 14px rgba(0,0,0,.45)}
.phero__kicker{margin:0;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--gold)}
.phero__kicker--sub{margin-bottom:2px}

/* home hero */
.hero{position:relative;display:flex;align-items:flex-end;min-height:min(62vh,560px);margin-top:0}
.hero__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero__media{position:absolute;inset:0}
.hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,18,12,.18),rgba(20,18,12,.10) 40%,rgba(20,18,12,.72))}
.hero__txt{position:relative;color:#fff;padding-top:90px;padding-bottom:44px}
.hero h1{color:#fff;text-shadow:0 2px 16px rgba(0,0,0,.5);max-width:19em}
.hero__sub{max-width:36em;font-size:1.05rem;text-shadow:0 1px 8px rgba(0,0,0,.5)}
.hero__btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
@media (min-width:941px){.hero__txt{padding-bottom:56px}}

/* sections */
.intro{padding-top:34px;padding-bottom:6px}
.intro__lead,.lead{font-size:1.18rem;line-height:1.55;font-family:Georgia,serif}
.prose{padding-top:26px;padding-bottom:10px}
.prose h2{scroll-margin-top:80px}
.sec-title{margin-top:34px}
.band--paper{background:var(--brand-soft);margin-top:44px;padding:34px 0}
.factrow{display:grid;gap:18px;grid-template-columns:1fr}
@media (min-width:700px){.factrow{grid-template-columns:repeat(3,1fr)}}
.fact h3{margin:0 0 .3em;color:var(--brand-dark)}
.fact p{margin:.2em 0;font-size:.95rem}

/* cards */
.cards{padding-bottom:8px}
.cards__grid{display:grid;gap:20px;grid-template-columns:1fr;margin-top:18px}
@media (min-width:640px){.cards__grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.cards__grid{grid-template-columns:repeat(4,1fr)}}
.card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;text-decoration:none;color:var(--ink);box-shadow:0 4px 14px rgba(43,38,32,.06);transition:transform .18s,box-shadow .18s;min-width:0}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.card img{aspect-ratio:4/3;object-fit:cover;width:100%}
.card__body{display:flex;flex-direction:column;gap:4px;padding:14px 16px 16px}
.card__kicker{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--red);font-weight:700}
.card__title{font-family:Georgia,serif;font-size:1.06rem;line-height:1.35}
.card__more{margin-top:8px;font-size:.86rem;color:var(--brand);font-weight:600}

.pdf{list-style:none;margin:16px 0;padding:0;display:grid;gap:10px}
.pdf a{display:inline-flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 16px;text-decoration:none;color:var(--ink);font-weight:600}
.pdf a:hover{border-color:var(--gold)}
.pdf small{color:var(--ink-soft);font-weight:400}
.pdf__badge{flex:none;background:var(--red);color:#fff;font-size:.68rem;font-weight:700;border-radius:6px;padding:4px 7px;letter-spacing:.06em}

/* contactbox */
.contactbox{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 4px 14px rgba(43,38,32,.06);padding:22px 24px;margin:46px 20px 0}
@media (min-width:700px){.contactbox{margin:52px auto 0;max-width:calc(var(--max) - 40px)}}
.contactbox h2{margin:0 0 .3em;font-size:1.3rem}
.contactbox__addr{color:var(--ink-soft);font-size:.95rem}
.contactbox__tel{font-size:1.25rem;font-weight:700;color:var(--red);text-decoration:none}
.contactbox__btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}

/* footer */
.site-foot{margin-top:56px;background:var(--ink);color:#efe9de;padding:40px 0 0}
.foot__grid{display:grid;gap:28px;grid-template-columns:1fr}
@media (min-width:800px){.foot__grid{grid-template-columns:1.1fr 1.2fr .9fr}}
.site-foot a{color:var(--gold);text-decoration:none}
.site-foot a:hover{text-decoration:underline}
.foot__brand{font-family:Georgia,serif;font-size:1.15rem;margin:0 0 .5em;color:#fff}
.foot__addr{margin:.2em 0;font-size:.95rem}
.foot__links{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:2px 16px;font-size:.93rem}
.foot__links .foot__sub{opacity:.75}
.foot__legal{border-top:1px solid rgba(255,255,255,.16);margin-top:30px;padding-top:14px;padding-bottom:16px;font-size:.85rem;color:#cfc7b8}

/* galleries */
.gal{display:grid;gap:12px;grid-template-columns:repeat(2,1fr);margin-top:18px;padding-bottom:10px}
@media (min-width:700px){.gal{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1000px){.gal{grid-template-columns:repeat(4,1fr)}}
.gal__item{margin:0;border-radius:10px;overflow:hidden;background:#ddd}
.gal__item img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;transition:transform .25s}
.gal__item:hover img{transform:scale(1.03)}

/* splits / misc */
.split{display:grid;gap:26px;grid-template-columns:1fr;padding-top:26px;align-items:start}
.split>*{min-width:0}
@media (min-width:860px){.split{grid-template-columns:1fr 1fr;align-items:center}.split--rev .split__txt{order:2}.split--rev .split__img{order:1}}
.split__img{margin:0;border-radius:var(--radius);overflow:hidden}
.split__img--portrait{max-width:420px;justify-self:center}
.feat-label{font-weight:700;margin-bottom:.3em}
.feats{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.feats li{background:var(--brand-soft);color:var(--brand-dark);border-radius:999px;padding:5px 14px;font-size:.88rem;font-weight:600}
.biglist{padding-left:22px;display:grid;gap:10px}
.buffet{background:var(--brand-soft);border-left:4px solid var(--brand);border-radius:0 10px 10px 0;padding:14px 18px;color:var(--brand-dark)}
.linkgrid{display:grid;gap:12px;grid-template-columns:repeat(2,1fr);margin:16px 0;padding-bottom:8px}
.linkgrid>*{min-width:0}
@media (min-width:800px){.linkgrid{grid-template-columns:repeat(4,1fr)}}
.linkcard{display:flex;align-items:center;justify-content:center;min-height:64px;padding:12px;background:var(--card);border:1px solid var(--line);border-radius:10px;color:var(--ink);text-decoration:none;font-weight:600;text-align:center;overflow-wrap:anywhere}
.linkcard:hover{border-color:var(--brand);color:var(--brand)}
.quotes{padding-top:26px;padding-bottom:8px}
.quote{margin:14px 0;padding:18px 22px;background:var(--card);border:1px solid var(--line);border-left:5px solid var(--gold);border-radius:0 12px 12px 0;max-width:44em}
.quote p{margin:0;font-family:Georgia,serif;font-size:1.08rem}
.addrgrid{display:grid;gap:20px;grid-template-columns:1fr;padding-top:26px;padding-bottom:8px}
@media (min-width:760px){.addrgrid{grid-template-columns:repeat(2,1fr)}}
.addrcard{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px}
.addrcard h2{margin:0 0 .4em;font-size:1.2rem}
.addrcard ul{margin:.4em 0;padding-left:20px;display:grid;gap:6px}
.route li::marker{color:var(--red)}
.kgrid{display:grid;gap:20px;grid-template-columns:1fr;padding-top:26px;padding-bottom:8px}
@media (min-width:860px){.kgrid{grid-template-columns:1fr 1.4fr}}
.kcard{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px}
.kcard h2{margin:0 0 .5em;font-size:1.25rem}
.form{display:grid;gap:14px;margin-top:6px}
.form label{display:grid;gap:6px;font-weight:600;font-size:.94rem}
.form input,.form textarea{font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);width:100%}
.form input:focus,.form textarea:focus{outline:2px solid var(--brand);outline-offset:1px}
.form .req{color:var(--red)}
.form__hint{font-size:.83rem;color:var(--ink-soft);margin:0}
.prices{display:grid;gap:20px;padding-top:26px;padding-bottom:8px}
.prices>*{min-width:0}
.pricecard{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;min-width:0}
.pricecard>h2{margin:0 0 .6em;font-size:1.3rem}
.pricecard__row{border-top:1px dashed var(--line);padding:14px 0}
.pricecard__row h3{margin:0 0 .3em}
.pricecard__desc{margin:.2em 0 .6em;color:var(--ink-soft);font-size:.95rem}
.pricecard__price{margin:.2em 0 0;display:flex;flex-wrap:wrap;align-items:baseline;gap:10px}
.pricecard__price strong{font-size:1.5rem;color:var(--red);font-family:Georgia,serif}
.pricecard__price span{color:var(--ink-soft);font-size:.9rem}
.pricecard__note{color:var(--ink-soft);font-size:.92rem;border-top:1px dashed var(--line);padding-top:12px;margin:12px 0 0}
.tablewrap{overflow-x:auto}
.table{border-collapse:collapse;width:100%;font-size:.95rem;min-width:340px}
.table th,.table td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line)}
.table th{color:var(--brand-dark);background:var(--brand-soft)}
.know h2{margin-top:1.4em}
.legal h2{font-size:1.2rem;margin-top:1.5em}
.legal h3{font-size:1.02rem}
.pagetitle{margin-top:26px}

/* reveal motion (nur wenn JS aktiv, dezent) */
html.js .reveal{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s ease}
html.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html.js .reveal{opacity:1;transform:none;transition:none}}

@media print{.site-head,.site-foot,.contactbox,.hero__btns,.btn{display:none!important}body{background:#fff}}
