/* Zum Köpenick – Hauptstyles */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --ink:#14100e;
  --ink-soft:#2a221c;
  --stone:#d9d4cc;
  --paper:#ece8e1;
  --muted:#6f675e;
  --brass:#a68b5b;
  --brass-lt:#c4a97a;
  --olive:#3d4a38;
  --white:#faf8f5;
  --line:rgba(20,16,14,.12);
  --font-display:"Fraunces",Georgia,serif;
  --font-body:"Outfit",system-ui,sans-serif;
  --header-h:4.25rem;
  --ease:cubic-bezier(.22,1,.36,1);
  --safe-top:env(safe-area-inset-top,0px);
  --safe-right:env(safe-area-inset-right,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --safe-left:env(safe-area-inset-left,0px);
  --pad-x:clamp(1rem,5vw,3rem);
}

html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body{
  font-family:var(--font-body);
  background:var(--paper);
  color:var(--ink);
  font-size:1.05rem;
  line-height:1.65;
  font-weight:400;
  overflow-x:hidden;
  min-height:100vh;
  min-height:100dvh;
  padding-left:var(--safe-left);
  padding-right:var(--safe-right);
}
body.nav-open{overflow:hidden;touch-action:none}
img{max-width:100%;display:block;height:auto}
a{color:inherit;-webkit-tap-highlight-color:transparent}
button,input,textarea,select{font:inherit;-webkit-tap-highlight-color:transparent}
/* iOS Zoom vermeiden */
input,textarea,select{font-size:16px}

.skip-link{
  position:absolute;left:-9999px;top:0;z-index:1000;
  background:var(--ink);color:var(--white);padding:.75rem 1rem;
}
.skip-link:focus{left:1rem;top:1rem}

/* Header */
.site-header{
  position:fixed;inset:0 0 auto;z-index:100;
  height:calc(var(--header-h) + var(--safe-top));
  padding-top:var(--safe-top);
  background:rgba(20,16,14,.72);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(255,255,255,.06);
  transition:background .35s var(--ease);
}
.site-header.is-scrolled{background:rgba(20,16,14,.94)}
.header-inner{
  max-width:1120px;margin:0 auto;padding:0 var(--pad-x);
  height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
}
.brand{
  text-decoration:none;color:var(--white);
  display:flex;align-items:center;
  flex-shrink:0;min-width:0;
}
.brand-logo{
  display:block;
  height:3.35rem;width:auto;
  max-width:min(62vw,15rem);
  object-fit:contain;
  filter:drop-shadow(0 1px 3px rgba(0,0,0,.45));
  transition:opacity .2s,transform .25s var(--ease);
}
.brand:hover .brand-logo{opacity:.92;transform:translateY(-1px)}
.visually-hidden{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.nav-desktop{display:flex;gap:1.75rem}
.nav-desktop a{
  text-decoration:none;color:rgba(250,248,245,.72);
  font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;
  transition:color .2s;
}
.nav-desktop a:hover,.nav-desktop a.is-active{color:var(--brass-lt)}
.header-actions{display:flex;align-items:center;gap:1rem}
.header-phone{
  text-decoration:none;color:var(--brass-lt);
  font-size:.82rem;letter-spacing:.04em;
  border:1px solid rgba(166,139,91,.55);padding:.4rem .9rem;
  transition:background .2s,border-color .2s;
}
.header-phone:hover{background:rgba(166,139,91,.15);border-color:var(--brass-lt)}
.nav-toggle{
  display:none;background:none;border:0;cursor:pointer;
  width:2.75rem;height:2.75rem;position:relative;
  margin-right:-.5rem;
}
.nav-toggle span{
  display:block;width:1.35rem;height:1.5px;background:var(--brass-lt);
  position:absolute;left:50%;margin-left:-.675rem;
  transition:transform .25s var(--ease),opacity .2s;
}
.nav-toggle span:first-child{top:1.05rem}
.nav-toggle span:last-child{bottom:1.05rem}
.nav-toggle[aria-expanded="true"] span:first-child{transform:translateY(6px) rotate(45deg);top:1.35rem}
.nav-toggle[aria-expanded="true"] span:last-child{transform:translateY(-6px) rotate(-45deg);bottom:1.35rem}

.nav-mobile{
  position:fixed;
  top:calc(var(--header-h) + var(--safe-top));
  left:0;right:0;bottom:0;z-index:99;
  background:rgba(20,16,14,.98);
  padding:1.25rem var(--pad-x) calc(2rem + var(--safe-bottom));
  display:flex;flex-direction:column;gap:.15rem;
  overflow-y:auto;-webkit-overflow-scrolling:touch;
  animation:slideDown .35s var(--ease);
}
.nav-mobile[hidden]{display:none}
.nav-mobile a{
  text-decoration:none;color:var(--white);
  padding:1rem 0;min-height:3rem;display:flex;align-items:center;
  border-bottom:1px solid rgba(255,255,255,.08);
  font-size:1.15rem;letter-spacing:.06em;
}
.nav-mobile-phone{color:var(--brass-lt)!important;border-bottom:0!important;margin-top:.5rem}

.site-banners{
  position:fixed;
  top:calc(var(--header-h) + var(--safe-top));
  left:0;right:0;z-index:90;
}
.site-banner{
  background:var(--olive);color:var(--paper);
  text-align:center;padding:.7rem var(--pad-x);font-size:.88rem;
  line-height:1.4;
}
.site-banner--hours{
  background:var(--ink-soft);color:var(--brass-lt);
  border-top:1px solid rgba(255,255,255,.08);
}
body.has-banners-1{--banner-stack:2.55rem}
body.has-banners-2{--banner-stack:5.1rem}
body.has-banners .hero{
  padding-top:calc(var(--header-h) + var(--safe-top) + var(--banner-stack, 0px) + 1.5rem);
}
body.has-banners .page-hero{
  margin-top:calc(var(--header-h) + var(--safe-top) + var(--banner-stack, 0px));
}

/* Hero */
.hero{
  min-height:100vh;min-height:100dvh;min-height:100svh;
  display:grid;align-items:center;justify-items:center;
  position:relative;color:var(--white);
  background:
    linear-gradient(180deg,rgba(20,16,14,.28) 0%,rgba(20,16,14,.12) 45%,rgba(20,16,14,.72) 100%),
    url("/assets/images/hero-restaurant.jpg?v=3") center 30%/cover no-repeat;
  padding:calc(var(--header-h) + var(--safe-top) + 1.25rem) var(--pad-x) calc(2.75rem + var(--safe-bottom));
}
.hero-content{max-width:720px;margin:0 auto;text-align:center;width:100%}
.hero-logo{
  width:min(100%,24rem);height:auto;margin:0 auto 1.5rem;
  filter:drop-shadow(0 12px 36px rgba(0,0,0,.6));
  opacity:0;transform:translateY(24px) scale(.98);
  animation:riseLogo 1s var(--ease) .1s forwards;
}
.hero-lead{
  font-weight:300;font-size:clamp(.98rem,2.1vw,1.15rem);
  color:rgba(250,248,245,.9);max-width:28rem;margin:0 auto 1.75rem;
  opacity:0;transform:translateY(20px);
  animation:rise .9s var(--ease) .35s forwards;
}
.hero-actions{
  display:flex;gap:.85rem;justify-content:center;flex-wrap:wrap;
  opacity:0;transform:translateY(16px);
  animation:rise .9s var(--ease) .55s forwards;
}

@keyframes rise{
  to{opacity:1;transform:none}
}
@keyframes riseLogo{
  to{opacity:1;transform:none}
}
@keyframes slideDown{
  from{opacity:0;transform:translateY(-8px)}
  to{opacity:1;transform:none}
}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:.95rem 1.6rem;text-decoration:none;
  font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;
  border:1px solid transparent;cursor:pointer;
  transition:background .22s,color .22s,border-color .22s,transform .22s;
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--brass);color:var(--ink);border-color:var(--brass)}
.btn-primary:hover{background:var(--brass-lt);border-color:var(--brass-lt)}
.btn-ghost{background:transparent;color:var(--white);border-color:rgba(255,255,255,.45)}
.btn-ghost:hover{border-color:var(--white);background:rgba(255,255,255,.08)}
.btn-dark{background:var(--ink);color:var(--white);border-color:var(--ink)}
.btn-dark:hover{background:var(--ink-soft)}

/* Sections */
.section{padding:5.5rem var(--pad-x)}
.section-narrow{max-width:1120px;margin:0 auto}
.section-label{
  font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--brass);margin-bottom:.65rem;
}
.section-title{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(2rem,4.5vw,3.1rem);line-height:1.15;
  margin-bottom:1.25rem;
}
.section-title em{font-style:italic;color:var(--olive)}
.section-text{color:var(--muted);max-width:38rem}
.section-text + .section-text{margin-top:1rem}
.reveal{
  opacity:0;transform:translateY(24px);
  transition:opacity .7s var(--ease),transform .7s var(--ease);
}
.reveal.is-in{opacity:1;transform:none}

/* Season strip */
.season-strip{
  background:var(--ink);color:var(--brass-lt);
  text-align:center;padding:1.35rem 5vw;
}
.season-strip h2{
  font-family:var(--font-display);font-weight:400;
  font-size:1.45rem;color:var(--white);margin-bottom:.25rem;
}
.season-strip p{font-size:.95rem;color:rgba(196,169,122,.85)}

/* Split intro */
.split{
  display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;
}
.split-media{
  display:grid;grid-template-columns:1fr 1fr;gap:.55rem;
  min-height:420px;
}
.split-media img{width:100%;height:100%;object-fit:cover}
.split-media img:first-child{grid-column:1/-1;min-height:240px}

/* Feature list (no cards) */
.feature-list{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:2.5rem 3rem;margin-top:2.5rem;
  border-top:1px solid var(--line);padding-top:2.5rem;
}
.feature-list h3{
  font-family:var(--font-display);font-weight:400;
  font-size:1.35rem;margin-bottom:.45rem;
}
.feature-list p{color:var(--muted);font-size:.95rem}

/* Hours */
.hours-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:3.5rem;align-items:start}
.hours-row{
  display:flex;justify-content:space-between;gap:1rem;
  padding:.85rem 0;border-bottom:1px solid var(--line);font-size:.95rem;
}
.hours-row:first-of-type{border-top:1px solid var(--line)}
.hours-day{font-weight:500}
.hours-time{color:var(--muted);text-align:right}
.hours-time small{display:block;font-size:.78rem;margin-top:.15rem}
.hours-closed{color:#9a8f84;font-style:italic}
.contact-panel{
  background:linear-gradient(160deg,var(--ink) 0%,var(--ink-soft) 100%);
  color:var(--paper);padding:2rem 1.75rem;
}
.contact-panel h3{
  font-family:var(--font-display);font-weight:400;
  font-size:1.5rem;margin-bottom:1.1rem;color:var(--white);
}
.contact-panel a{color:var(--brass-lt);text-decoration:none}
.contact-panel p{margin-bottom:.7rem;font-size:.95rem;color:rgba(250,248,245,.78)}

/* Gallery band */
.gallery-band{background:var(--ink);color:var(--white)}
.gallery-band .section-label{color:var(--brass-lt)}
.gallery-band .section-title em{color:var(--brass-lt)}
.gallery{
  display:grid;grid-template-columns:1.4fr 1fr 1fr;
  grid-template-rows:minmax(180px,22vw) minmax(180px,22vw);
  gap:.55rem;margin-top:2rem;
}
.gallery img{width:100%;height:100%;object-fit:cover;opacity:.92;transition:opacity .3s,transform .6s var(--ease)}
.gallery img:hover{opacity:1;transform:scale(1.02)}
.gallery img:first-child{grid-row:1/-1}

/* Page hero (inner pages) */
.page-hero{
  margin-top:calc(var(--header-h) + var(--safe-top));
  min-height:42vh;min-height:38dvh;display:grid;place-items:center;text-align:center;
  color:var(--white);padding:4rem var(--pad-x) 3.5rem;
  background-size:cover;background-position:center;
}
.page-hero-essen{
  background-image:linear-gradient(rgba(20,16,14,.55),rgba(20,16,14,.55)),
    url("/assets/images/roastbeef.jpg");
}
.page-hero-feiern{
  background-image:linear-gradient(rgba(20,16,14,.55),rgba(20,16,14,.55)),
    url("/assets/images/festsaal.jpg");
}
.page-hero-kontakt{
  background-image:linear-gradient(rgba(20,16,14,.55),rgba(20,16,14,.55)),
    url("/assets/images/kontakt-hero.jpg");
}
.page-hero h1{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(2.4rem,6vw,4rem);line-height:1.05;
}
.page-hero h1 em{font-style:italic;color:var(--brass-lt)}
.page-hero p{margin-top:.75rem;color:rgba(250,248,245,.8);font-weight:300}

/* Menu */
.menu-section{background:var(--ink);color:var(--paper)}
.menu-section .section-label{color:var(--brass-lt)}
.menu-section .section-title{color:var(--white)}
.menu-section .section-title em{color:var(--brass-lt)}

.special-block{
  border:1px solid rgba(166,139,91,.45);
  padding:1.75rem 1.5rem;margin-bottom:1.25rem;
}
.special-block h3{
  font-family:var(--font-display);font-weight:400;
  font-size:1.55rem;color:var(--white);margin:.35rem 0 .5rem;
}
.special-block .special-desc{color:rgba(217,212,204,.75);margin-bottom:1.1rem;font-size:.95rem}
.special-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.65rem}
.special-item{
  background:rgba(255,255,255,.04);padding:.9rem 1rem;
  display:grid;grid-template-columns:1fr auto;gap:.15rem .75rem;
}
.special-item-name{color:var(--paper);font-size:.92rem}
.special-item-price{color:var(--brass-lt);font-size:.92rem}
.special-item-desc{grid-column:1/-1;color:rgba(217,212,204,.5);font-size:.8rem}

.menu-tabs{
  display:flex;flex-wrap:nowrap;gap:0;margin:2rem 0 0;
  border-bottom:1px solid rgba(255,255,255,.12);
  overflow-x:auto;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;overscroll-behavior-x:contain;
}
.menu-tabs::-webkit-scrollbar{display:none}
.menu-tab{
  background:none;border:0;border-bottom:2px solid transparent;
  color:rgba(217,212,204,.55);cursor:pointer;
  padding:.95rem 1.1rem;margin-bottom:-1px;flex:0 0 auto;
  font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;
  transition:color .2s,border-color .2s;
  min-height:2.75rem;
}
.menu-tab:hover,.menu-tab.is-active{color:var(--brass-lt);border-bottom-color:var(--brass-lt)}
.menu-panel{display:none;padding-top:2rem}
.menu-panel.is-active{display:block}
.menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1px;background:rgba(255,255,255,.06)}
.menu-cat{background:#1a1512;padding:1.6rem 1.35rem}
.menu-cat h3{
  font-family:var(--font-display);font-weight:400;
  color:var(--brass-lt);font-size:1.05rem;
  border-bottom:1px solid rgba(255,255,255,.1);
  padding-bottom:.7rem;margin-bottom:.85rem;
}
.menu-note{color:rgba(217,212,204,.45);font-size:.8rem;margin-bottom:.85rem}
.menu-item{
  display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;
  padding:.55rem 0;border-bottom:1px dotted rgba(255,255,255,.08);
}
.menu-item:last-child{border-bottom:0}
.menu-item-name{color:rgba(250,248,245,.9);font-size:.92rem}
.menu-item-desc{display:block;color:rgba(217,212,204,.45);font-size:.78rem;margin-top:.15rem;line-height:1.4}
.menu-item-price{color:var(--brass-lt);white-space:nowrap;font-size:.92rem}
.menu-photo{width:100%;height:100%;min-height:220px;object-fit:cover}

/* Feiern */
.feiern-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start;margin-top:1.5rem}
.feiern-stats{display:flex;gap:1rem;flex-wrap:wrap;margin:1.5rem 0}
.feiern-stat{
  flex:1;min-width:140px;padding:1.1rem 1.2rem;
  border-top:2px solid var(--brass);
}
.feiern-stat strong{
  display:block;font-family:var(--font-display);
  font-size:1.8rem;font-weight:400;color:var(--olive);line-height:1;
}
.feiern-stat span{font-size:.82rem;color:var(--muted)}
.feiern-imgs{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}
.feiern-imgs img{width:100%;height:160px;object-fit:cover}
.feiern-imgs img:first-child{grid-column:1/-1;height:240px}
.occasion-row{
  display:flex;flex-wrap:wrap;gap:.75rem 1.75rem;
  margin-top:2rem;padding-top:2rem;border-top:1px solid var(--line);
}
.occasion-row span{
  font-size:.95rem;letter-spacing:.04em;color:var(--ink-soft);
}

/* Kontakt */
.kontakt-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;margin-top:1.5rem}
.form-stack{display:flex;flex-direction:column;gap:.85rem}
.form-stack label{font-size:.82rem;color:var(--muted)}
.form-stack input,
.form-stack textarea,
.form-stack select{
  width:100%;padding:.8rem .95rem;
  border:1px solid rgba(20,16,14,.18);background:var(--white);color:var(--ink);
}
.form-stack textarea{min-height:130px;resize:vertical}
.form-stack input:focus,
.form-stack textarea:focus,
.form-stack select:focus{
  outline:2px solid rgba(166,139,91,.45);outline-offset:1px;
}
.form-hint{font-size:.82rem;color:var(--muted);text-align:center}
.form-hint a{color:var(--olive)}
.form-msg{
  padding:.9rem 1rem;margin-bottom:1rem;font-size:.92rem;
}
.form-msg--ok{background:#e4eee3;color:#2a4528}
.form-msg--err{background:#f0e4e1;color:#6b3228}
.map-frame{width:100%;height:320px;border:0;margin-top:1rem;display:block}
.map-consent{
  margin-top:1rem;min-height:320px;
  background:linear-gradient(160deg,var(--ink) 0%,var(--ink-soft) 100%),
    url("/assets/images/kontakt-hero.jpg") center/cover;
  background-blend-mode:multiply;
  display:grid;place-items:center;padding:2rem 1.25rem;text-align:center;
}
.map-consent-inner{max-width:28rem;color:var(--paper)}
.map-consent-inner p{margin-bottom:.75rem;color:rgba(250,248,245,.9)}
.map-consent-note{font-size:.82rem;color:rgba(217,212,204,.7)!important}
.map-consent-note a{color:var(--brass-lt)}
.map-nav-links{
  display:flex;flex-wrap:wrap;gap:.65rem;margin-top:.85rem;
}
.map-nav-btn{
  flex:1 1 12rem;text-align:center;justify-content:center;
  border-color:rgba(20,16,14,.28)!important;color:var(--ink)!important;
  background:transparent!important;
}
.map-nav-btn:hover{
  border-color:var(--ink)!important;background:rgba(20,16,14,.04)!important;
}
.kontakt-side .contact-panel{margin-top:1rem}

/* Legal pages */
.legal h2{
  font-family:var(--font-display);font-weight:400;
  font-size:1.55rem;margin:2.25rem 0 .85rem;
}
.legal h2:first-child{margin-top:0}
.legal h3{font-size:1.05rem;font-weight:500;margin:1.4rem 0 .55rem}
.legal p,.legal li{color:var(--muted);margin-bottom:.85rem;max-width:42rem}
.legal ul{padding-left:1.2rem;margin-bottom:1rem}
.legal a{color:var(--olive)}
.legal-note{margin-top:2.5rem;font-size:.88rem;border-top:1px solid var(--line);padding-top:1.25rem}

/* Footer */
.site-footer{
  background:var(--ink);color:rgba(217,212,204,.72);
  padding:4rem var(--pad-x) calc(2rem + var(--safe-bottom));font-size:.9rem;
}
.footer-inner{
  max-width:1120px;margin:0 auto;
  display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2.5rem;
  padding-bottom:2.5rem;border-bottom:1px solid rgba(255,255,255,.08);
}
.footer-logo{
  width:min(100%,12rem);height:auto;margin-bottom:1.1rem;
  filter:drop-shadow(0 2px 8px rgba(0,0,0,.25));
}
.footer-name{
  font-family:var(--font-display);font-size:1.5rem;
  color:var(--brass-lt);margin-bottom:.75rem;
}
.footer-address{margin-top:.85rem}
.footer-heading{
  font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--white);font-weight:500;margin-bottom:.85rem;
}
.footer-heading--spaced{margin-top:1.5rem}
.footer-links{list-style:none}
.footer-links li{margin-bottom:.4rem}
.footer-links a{text-decoration:none;color:rgba(217,212,204,.72);transition:color .2s}
.footer-links a:hover{color:var(--brass-lt)}
.footer-bottom{
  max-width:1120px;margin:1.25rem auto 0;
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem;
}
.social{display:flex;gap:1rem}
.social a{text-decoration:none;color:var(--brass-lt);font-size:.85rem}

/* Admin */
.admin-body{background:#e8ecef;min-height:100vh}
.admin-shell{max-width:760px;margin:0 auto;padding:1.5rem 1.25rem 3rem}
.admin-card{
  background:var(--white);padding:1.35rem 1.25rem;margin-bottom:1rem;
  box-shadow:0 1px 3px rgba(0,0,0,.06);
}
.admin-card h2{font-size:1.05rem;font-weight:500;margin-bottom:.35rem}
.admin-card p.help{font-size:.85rem;color:var(--muted);margin-bottom:1rem}
.admin-login-box{
  max-width:380px;margin:6rem auto;background:var(--white);
  padding:2.5rem 1.75rem;text-align:center;
  box-shadow:0 8px 30px rgba(0,0,0,.08);
}
.admin-login-box h1{
  font-family:var(--font-display);font-weight:400;
  font-size:1.7rem;margin-bottom:.35rem;
}
.admin-login-box .field-label{text-align:left;font-size:.8rem;color:var(--muted);display:block;margin:0 0 .3rem}
.admin-page-title{font-family:var(--font-display);font-weight:400;font-size:1.9rem;margin:1.25rem 0 .25rem}
.admin-page-lead{color:var(--muted);margin-bottom:1.5rem;font-size:.9rem}
.admin-topbar{
  display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;
  padding-bottom:1rem;border-bottom:1px solid #ddd;margin-bottom:.5rem;
}
.admin-topbar a{color:var(--muted);text-decoration:none;font-size:.88rem}
.admin-topbar a:hover{color:var(--ink)}
.admin-nav{display:flex;flex-wrap:wrap;gap:.35rem .85rem}
.admin-nav a{font-size:.82rem;letter-spacing:.04em;text-transform:uppercase}
.admin-nav a.is-active{color:var(--ink);font-weight:500;border-bottom:2px solid var(--brass);padding-bottom:.1rem}
.admin-topbar-right{display:flex;align-items:center;gap:.85rem}
.admin-user-pill{font-size:.78rem;background:#f0ebe3;color:var(--ink-soft);padding:.25rem .55rem}
.admin-logout{color:#6b3535!important}
.admin-hub-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1.5rem}
@media(min-width:700px){
  .admin-hub-grid{grid-template-columns:repeat(4,1fr)}
}
.admin-hub-card{
  display:block;background:#fff;border:1px solid #e0e0e0;padding:1.1rem 1rem;
  text-decoration:none;color:inherit;transition:border-color .2s;
}
.admin-hub-card:hover{border-color:var(--brass)}
.admin-hub-card strong{display:block;margin-bottom:.35rem}
.admin-hub-card span{font-size:.82rem;color:var(--muted)}
.archive-row{
  display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;
  padding:.85rem 0;border-top:1px solid #eee;
}
.archive-row:first-of-type{border-top:0}
.archive-actions{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:flex-end}
.archive-purge{
  background:transparent!important;border:1px solid #c9a0a0!important;color:#6b3535!important;
  padding:.45rem .8rem!important;font-size:.82rem!important;
}
.archive-purge:hover{border-color:#6b3535!important}
.meta-line{font-size:.75rem;color:#999;margin-top:.35rem}
@media(max-width:700px){
  .admin-hub-grid{grid-template-columns:1fr}
  .archive-row{flex-direction:column}
}
.toggle-row{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}
.toggle{
  width:46px;height:26px;border-radius:13px;border:0;cursor:pointer;
  background:#c5c5c5;position:relative;flex-shrink:0;
}
.toggle.on{background:var(--brass)}
.toggle::after{
  content:"";position:absolute;width:20px;height:20px;border-radius:50%;
  background:#fff;top:3px;left:3px;transition:transform .2s;
}
.toggle.on::after{transform:translateX(20px)}
.admin-input,.admin-select,.admin-textarea{
  width:100%;padding:.7rem .85rem;border:1px solid #d0d0d0;
  margin-bottom:.55rem;background:#fff;
}
.admin-textarea{min-height:90px;resize:vertical}
.woche-row{display:flex;gap:.5rem;margin-bottom:.5rem}
.woche-row input:first-child{flex:2}
.woche-row input:last-of-type{flex:.9}
.badge{font-size:.68rem;padding:.15rem .5rem;border-radius:999px;background:#e5efe5;color:#2f5c2f}
.badge.off{background:#f0e6e6;color:#6b3535}
.admin-success{display:none;background:#e5efe5;color:#2f5c2f;padding:.85rem;text-align:center;margin-top:.75rem}
.admin-success.show{display:block}
.admin-error{background:#f0e6e6;color:#6b3535;padding:.75rem;margin-bottom:1rem;font-size:.9rem}

@media (max-width:860px){
  .nav-desktop,.header-phone{display:none}
  .nav-toggle{display:block}
  .brand-logo{height:2.85rem;max-width:min(58vw,12.5rem)}
  .hero-logo{width:min(100%,19rem);margin-bottom:1.2rem}
  .split,.hours-grid,.feiern-grid,.kontakt-grid,.footer-inner{grid-template-columns:1fr;gap:2rem}
  .feature-list{grid-template-columns:1fr;gap:1.75rem}
  .gallery{grid-template-columns:1fr 1fr;grid-template-rows:auto}
  .gallery img:first-child{grid-row:auto;min-height:220px}
  .split-media{min-height:0}
  .special-items{grid-template-columns:1fr}
  .btn{min-height:2.85rem;padding:.95rem 1.35rem}
  .map-consent,.map-frame{min-height:260px;height:260px}
  .page-hero{min-height:32vh;padding:3.25rem var(--pad-x) 2.75rem}
  .page-hero h1{font-size:clamp(2rem,9vw,3rem)}
  .hero-lead{font-size:1rem}
  .occasion-row{gap:.65rem 1.25rem}
  .footer-bottom{flex-direction:column;align-items:flex-start}
  .social a{min-height:2.75rem;display:inline-flex;align-items:center}
}
@media (max-width:540px){
  :root{--header-h:3.85rem}
  .section{padding:3.5rem var(--pad-x)}
  .gallery{grid-template-columns:1fr}
  .hero-actions{flex-direction:column;width:100%}
  .hero-actions .btn{width:100%}
  .feiern-stats{flex-direction:column}
  .hours-row{flex-direction:column;align-items:flex-start;gap:.25rem}
  .hours-time{text-align:left}
  .menu-cat{padding:1.25rem 1rem}
  .special-block{padding:1.35rem 1.1rem}
  .kontakt-form .btn,.form-stack .btn{width:100%}
  .legal{font-size:.95rem}
}
@media (hover:none) and (pointer:coarse){
  .nav-desktop a,.btn,.menu-tab,.footer-links a{touch-action:manipulation}
  .gallery img:hover{transform:none}
}
