/* =======================
   Base / Tokens
   ======================= */
:root{
  --bg:#f7f6f3;
  --paper:#ffffff;
  --ink:#1e1c1a;
  --muted:#6e6a66;

  --accent:#d4a373;      /* warmer Akzent */
  --accent-ink:#2b2116;

  --radius:16px;
  --shadow:0 10px 30px rgba(0,0,0,.06);
  --maxw:1180px;
}

*{ box-sizing:border-box }
html{ scroll-behavior:smooth }
body{
  margin:0;
  font-family:Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

img{ display:block; max-width:100%; height:auto; }
.container{ width:min(100% - 32px, var(--maxw)); margin-inline:auto; }

h1,h2,h3{ line-height:1.2; margin:0 0 .5em; }
h1{ font-family:"Playfair Display", Georgia, serif; font-weight:600; font-size:clamp(2.2rem, 4vw, 3.6rem); }
h2{ font-size:clamp(1.6rem, 2.5vw, 2.2rem); }
h3{ font-size:1.2rem; }
p{ margin:0 0 1em; color:var(--ink); }
a{ color:inherit; text-decoration:none; }
a:hover{ text-decoration:underline; }

/* =======================
   Header / Nav
   ======================= */
.site-header{
  position:sticky; top:0; inset-inline:0; z-index:50;
  background:rgba(255,255,255,.7);
  backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid rgba(0,0,0,.05);
  transition: box-shadow .2s ease;
}
.site-header.is-scrolled{ box-shadow:0 6px 20px rgba(0,0,0,.06); }

.nav-wrap{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 0;
}
.brand{ display:flex; align-items:center; gap:10px; text-decoration:none; }
.brand__logo{ width:36px; height:36px; object-fit:contain; }
.brand__text{ font-weight:800; letter-spacing:.2px; }
.text-logo .brand__text{ display:inline; }
.text-logo .brand__logo{ display:none; }

.nav{ display:flex; gap:24px; align-items:center; }
.nav a{ opacity:.9; }
.nav .btn{ text-decoration:none; }

.nav-toggle{
  display:none; width:40px; height:40px;
  border:1px solid rgba(0,0,0,.1);
  background:var(--paper); border-radius:10px;
  align-items:center; justify-content:center; gap:5px;
}
.nav-toggle span{ display:block; width:18px; height:2px; background:#333; border-radius:2px; }

/* =======================
   Hero
   ======================= */
.hero{
  position:relative; min-height:78vh;
  display:grid; place-items:center; isolation:isolate; overflow:hidden;
}
.hero__bg{
  position:absolute; inset:0; z-index:-1; transform:scale(1.03);
  background:
    linear-gradient(180deg, rgba(0,0,0,.20) 0%, rgba(0,0,0,.45) 55%, rgba(0,0,0,.55) 100%),
    url("../img/back_g_1.jpg") center/cover no-repeat; /* <-- dein Bild */
}
.hero__inner{ padding:96px 0 72px; text-align:center; color:#fff; }
.hero__title{ margin-bottom:.4em; }
.hero .accent{
  background:linear-gradient(90deg, var(--accent), #c08e5f);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.hero__text{ color:#3a3636; max-width:720px; margin-inline:auto; }
.hero__actions{ margin-top:24px; display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

/* Buttons & links */
.btn{
  display:inline-block; padding:12px 18px; border-radius:999px;
  background:var(--ink); color:#fff; border:1px solid transparent;
  box-shadow:var(--shadow); font-weight:600;
}

.btn:hover{ filter:brightness(1.05); text-decoration:none; }
.btn--small{ padding:10px 14px; }
.link{ padding:12px 0; font-weight:600; color:var(--accent-ink); background:#fff2; border-radius:8px; }

/* =======================
   Sections
   ======================= */
.section{ padding:64px 0; }
.section--alt{ background:var(--paper); }
.section__head{ margin-bottom:28px; }
.section__head p{ color:var(--muted); }

/* =======================
   Menu (Speisekarte)
   ======================= */
.menu{ display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:20px; }
.menu__col{ background:var(--bg); border:1px solid rgba(0,0,0,.06); border-radius:var(--radius); padding:18px; }
.menu__col h3{ margin-bottom:8px; }
.menu__list{ list-style:none; padding:0; margin:0; display:grid; gap:10px; }
.menu__list li{ display:flex; justify-content:space-between; gap:12px; }
.menu__list span{ color:var(--ink); }
.menu__list strong{ white-space:nowrap; }
.note{ color:var(--muted); margin-top:14px; }

/* =======================
   Galerie
   ======================= */
.grid{ display:grid; gap:20px; }
.works{ grid-template-columns: repeat(4, minmax(0,1fr)); }
.work{
  background:var(--paper); border-radius:var(--radius); overflow:hidden;
  box-shadow:var(--shadow); transition: transform .15s ease, box-shadow .15s ease;
}
.work:hover{ transform:translateY(-3px); box-shadow:0 16px 40px rgba(0,0,0,.08); }
.work img{ width:100%; aspect-ratio: 4 / 3; object-fit:cover; }
.work figcaption{ padding:10px 12px; color:var(--muted); font-size:.95rem; }

/* =======================
   Über uns
   ======================= */
.about{ display:grid; grid-template-columns: 1fr 1.1fr; gap:28px; align-items:center; }
.about__media img{ border-radius:var(--radius); box-shadow:var(--shadow); }
.about__text p{ color:var(--muted); }
.facts{ list-style:none; padding:0; margin:12px 0 0; }
.facts li{ margin:6px 0; color:var(--ink); }

/* =======================
   Kontakt
   ======================= */
.contact{ display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:start; }
.contact__list{ list-style:none; padding:0; margin:10px 0 0; }
.contact__list li{ margin:6px 0; color:var(--muted); }
.contact__form label{ display:block; margin-bottom:12px; }
.contact__form span{ display:block; font-weight:600; margin-bottom:6px; }
.contact__form input,
.contact__form textarea{
  width:100%; padding:12px 14px; border-radius:12px;
  border:1px solid rgba(0,0,0,.12); background:#fff; outline:none;
}
.contact__form input:focus,
.contact__form textarea:focus{ border-color:var(--accent); box-shadow:0 0 0 3px rgba(212,163,115,.15); }
.form-note{ color:var(--muted); font-size:.95rem; margin-top:8px; }

/* =======================
   Footer
   ======================= */
.site-footer{ background:#111; color:#d7d7d7; padding:26px 0; }
.footer__inner{ display:flex; align-items:center; justify-content:space-between; gap:16px; }
.footer__nav{ display:flex; gap:16px; flex-wrap:wrap; }
.footer__nav a{ color:#d7d7d7; opacity:.85; }
.footer__nav a:hover{ opacity:1; text-decoration:none; }

/* =======================
   Responsive
   ======================= */
@media (max-width: 1100px){
  .works{ grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width: 980px){
  .menu{ grid-template-columns:1fr 1fr; }
  .about{ grid-template-columns:1fr; }
  .contact{ grid-template-columns:1fr; }
}
@media (max-width: 760px){
  .nav{
    position:fixed; inset:64px 16px auto 16px; top:68px;
    background:#fff; border:1px solid rgba(0,0,0,.07); border-radius:16px;
    padding:14px; display:none; flex-direction:column; gap:8px;
    box-shadow:var(--shadow);
  }
  .nav.is-open{ display:flex; }
  .nav-toggle{ display:inline-flex; }
  body.no-scroll{ overflow:hidden; }
  .works{ grid-template-columns:1fr 1fr; }
  .menu{ grid-template-columns:1fr; }
}

/* =======================
   Fade-In Animation (weich)
   ======================= */
.fade-in{
  opacity:0;
  transform: translateY(24px);
  will-change: opacity, transform;
  transition: opacity .75s ease-out, transform .75s ease-out;
}
.fade-in.show{
  opacity:1;
  transform: none;
}
@media (prefers-reduced-motion: reduce){
  .fade-in,
  .fade-in.show{
    transition: none;
    transform: none;
    opacity: 1;
  }
}

/* =======================================================
   OneTap Accessibility – deine Overrides (1:1)
   ======================================================= */
.onetap-container-toggle .onetap-toggle svg,
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .onetap-accessibility-settings header.onetap-header-top .onetap-site-container .onetap-site-info .onetap-image svg,
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .onetap-accessibility-settings .onetap-features-container .onetap-features .onetap-box-feature.onetap-active .onetap-icon .onetap-icon-animation svg,
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .onetap-accessibility-settings .onetap-features-container .onetap-features .onetap-box-feature.onetap-lv1 .onetap-icon .onetap-icon-animation svg,
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .onetap-accessibility-settings .onetap-features-container .onetap-features .onetap-box-feature.onetap-lv2 .onetap-icon .onetap-icon-animation svg,
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .onetap-accessibility-settings .onetap-features-container .onetap-features .onetap-box-feature.onetap-lv3 .onetap-icon .onetap-icon-animation svg {
  fill: #000000 !important;
}
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .onetap-accessibility-settings header.onetap-header-top::before,
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .onetap-accessibility-settings .onetap-reset-settings button,
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .onetap-accessibility-settings .onetap-features-container .onetap-features .onetap-box-feature.onetap-lv1 .onetap-title p.onetap-option-levels span.onetap-level.onetap-level1,
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .onetap-accessibility-settings header.onetap-header-top::before,
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .onetap-accessibility-settings .onetap-reset-settings button,
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .onetap-accessibility-settings .onetap-features-container .onetap-features .onetap-box-feature.onetap-lv2 .onetap-title p.onetap-option-levels span.onetap-level.onetap-level1,
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .onetap-accessibility-settings .onetap-features-container .onetap-features .onetap-box-feature.onetap-lv2 .onetap-title p.onetap-option-levels span.onetap-level.onetap-level2,
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .onetap-accessibility-settings .onetap-features-container .onetap-features .onetap-box-feature.onetap-lv3 .onetap-title p.onetap-option-levels span.onetap-level.onetap-level1,
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .onetap-accessibility-settings .onetap-features-container .onetap-features .onetap-box-feature.onetap-lv3 .onetap-title p.onetap-option-levels span.onetap-level.onetap-level2,
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .onetap-accessibility-settings .onetap-features-container .onetap-features .onetap-box-feature.onetap-lv3 .onetap-title p.onetap-option-levels span.onetap-level.onetap-level3,
.onetap-container-toggle .onetap-toggle img,
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .onetap-accessibility-settings header.onetap-header-top .onetap-site-container .onetap-site-info .onetap-title span,
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .onetap-accessibility-settings header.onetap-header-top .onetap-site-container .onetap-site-info .onetap-information,
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .toolbar-hide-duration .box-hide-duration .box-btn-action button.hide-toolbar {
  background: #000000 !important;
}
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .toolbar-hide-duration .box-hide-duration form label input {
  accent-color: #000000 !important;
}
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .onetap-accessibility-settings .onetap-reset-settings button {
  border-color: #000000 !important;
}
.onetap-container-toggle .onetap-toggle img.design-border1 {
  box-shadow: 0 0 0 4px #000000;
}
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .onetap-accessibility-settings .onetap-features-container .onetap-features .onetap-box-feature:hover {
  border-color: #000000 !important;
  box-shadow: 0 0 0 1px #000000 !important;
}
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .onetap-accessibility-settings .onetap-features-container .onetap-features .onetap-box-feature:focus {
  border-width: 2px !important;
  outline: none !important;
}
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .onetap-accessibility-settings .onetap-features-container .onetap-features .onetap-box-feature:hover .onetap-title span,
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .onetap-accessibility-settings .onetap-features-container .onetap-features .onetap-box-feature.onetap-active .onetap-title span,
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .onetap-accessibility-settings .onetap-features-container .onetap-features .onetap-box-feature.onetap-lv1 .onetap-title span,
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .onetap-accessibility-settings .onetap-features-container .onetap-features .onetap-box-feature.onetap-lv2 .onetap-title span,
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .onetap-accessibility-settings .onetap-features-container .onetap-features .onetap-box-feature.onetap-lv3 .onetap-title span {
  color: #000000 !important;
}
nav.onetap-accessibility.onetap-plugin-onetap .onetap-container .onetap-accessibility-settings .onetap-features-container .onetap-features .onetap-box-feature:focus {
  border-color: #000000 !important;
}
/* --- Galerie Layout --- */
.gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 20px;
  margin: 50px 0;
}

.gallery img {
  width: 100%;
  border-radius: 12px;
  cursor: pointer;
  transition: transform 0.3s;
}

/* --- Hover Animation (Wackeln) --- */
.gallery img:hover {
  animation: shake 0.6s infinite;
}

@keyframes shake {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(1deg); }
  50% { transform: rotate(-1deg); }
  75% { transform: rotate(1deg); }
  100% { transform: rotate(0deg); }
}

/* --- Lightbox Overlay --- */
.lightbox {
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  background: rgba(0,0,0,0.7);
  backdrop-filter: blur(6px); /* Hintergrund verschwommen */
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease;
  z-index: 9999;
}

.lightbox.active {
  opacity: 1;
  visibility: visible;
}

.lightbox img {
  max-width: 90%;
  max-height: 80%;
  border-radius: 12px;
  box-shadow: 0 0 30px rgba(0,0,0,0.5);
}
/* Galerie: Wackel-Animation beim Hover */
    .works img{ cursor:pointer; }
    .works img:hover{ animation: wiggle .6s infinite ease-in-out; }
    @keyframes wiggle{
      0%{ transform: rotate(0deg) translateZ(0); }
      25%{ transform: rotate(1.2deg); }
      50%{ transform: rotate(-1.2deg); }
      75%{ transform: rotate(1.0deg); }
      100%{ transform: rotate(0deg); }
    }

/* Lightbox Overlay */
.lightbox {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,.65);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  opacity: 0;
  visibility: hidden;
  transition: opacity .25s ease;
  z-index: 9999;
}
.lightbox.active {
  opacity: 1;
  visibility: visible;
}
.lightbox__inner {
  position: relative;
  width: auto;
  height: auto;
  max-width: 800px;
  max-height: 600px;
  margin: auto;             /* sorgt für zentriertes Platzieren */
  display: flex;
  align-items: center;
  justify-content: center;  /* Bild genau in die Mitte */
}
.lightbox__img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(0,0,0,.45);
  object-fit: contain;
}
.lightbox__close {
  position: absolute;
  top: -12px;
  right: -12px;
  width: 40px;
  height: 40px;
  border-radius: 999px;
  border: none;
  cursor: pointer;
  background: #ffffff;
  box-shadow: 0 6px 22px rgba(0,0,0,.25);
  display: grid;
  place-items: center;
  font-size: 20px;
  line-height: 1;
}
.lightbox__close:hover {
  filter: brightness(1.05);
}