/* ==========================================================================
   Adams Tapas – Widget-Styles (Design-Tokens liegen im Child-Theme)
   ========================================================================== */

/* --------------------------------------------------------------------------
   Globaler Schutz gegen Hello Elementors reset.css:
   Dort bekommen ALLE <button>/[type=button]/[type=submit] die rosa Default-
   Farbe #c36 (Rahmen/Text und im Hover/Focus/Active auch als Hintergrund).
   reset.css wird NACH unserem Stylesheet geladen, weshalb die rosa Regeln bei
   gleicher Spezifität gewinnen. Wir neutralisieren sie hier zentral mit etwas
   höherer Spezifität (body …). Jede Komponente definiert darüber weiterhin ihre
   eigenen Buttonfarben mit noch höherer Spezifität (.at-… Klassen).
   -------------------------------------------------------------------------- */
body button,
body [type="button"],
body [type="submit"] {
  border-color: currentColor;
}
body button:hover,
body button:focus,
body button:active,
body [type="button"]:hover,
body [type="button"]:focus,
body [type="button"]:active,
body [type="submit"]:hover,
body [type="submit"]:focus,
body [type="submit"]:active {
  background-color: transparent;
  color: inherit;
  border-color: currentColor;
}

/* --------------------------------------------------------------------------
   Header / Sticky-Navigation
   -------------------------------------------------------------------------- */
.at-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 18px 48px;
  background: rgba(23, 19, 16, 0.92);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(230, 154, 85, 0.25);
}

.at-nav__brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  color: var(--at-cream);
}

.at-nav__brand-title {
  font-family: var(--at-serif);
  font-size: 24px;
  letter-spacing: 0.08em;
  line-height: 1;
}

.at-nav__brand-sub {
  font-size: 9px;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: var(--at-gold);
  padding-left: 0.34em;
}

.at-nav__links {
  display: flex;
  gap: 28px;
  font-size: 14px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.at-nav__links a {
  color: var(--at-cream);
  white-space: nowrap;
}

.at-nav__links a:hover {
  color: var(--at-gold);
}

/* Dropdown (Unterpunkte) */
.at-nav__item {
  position: relative;
  display: flex;
  align-items: center;
}

.at-nav__caret {
  font-size: 10px;
  color: var(--at-gold);
  margin-left: 6px;
}

.at-nav__sub {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  padding-top: 14px;
  display: none;
  z-index: 60;
}

.at-nav__sub::before {
  content: '';
  position: absolute;
  inset: 14px 0 0;
  background: #100d0a;
  border: 1px solid rgba(230, 154, 85, 0.25);
  z-index: -1;
}

.at-nav__item:hover .at-nav__sub,
.at-nav__item:focus-within .at-nav__sub {
  display: flex;
  flex-direction: column;
}

.at-nav__sub a {
  padding: 11px 20px;
  font-size: 13px;
  letter-spacing: 0.1em;
  white-space: nowrap;
}

.at-nav__sub a:hover {
  background: rgba(230, 154, 85, 0.07);
}

.at-nav__cta {
  font-family: var(--at-sans);
  border: 1px solid var(--at-gold);
  background: var(--at-gold);
  color: var(--at-ink);
  padding: 10px 22px;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.at-nav__cta:hover {
  background: var(--at-gold-light);
  border-color: var(--at-gold-light);
  color: var(--at-ink);
}

.at-nav__burger {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 8px;
}

.at-nav__burger span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--at-gold);
  transition: transform 0.2s, opacity 0.2s;
}

/* Sticky-Verhalten bekommt der Elementor-Top-Level-Container per Klasse */
.elementor-element.at-sticky {
  position: sticky;
  top: 0;
  z-index: 50;
}

/* Die Wrapper der globalen Templates dürfen keine eigene Box erzeugen,
   sonst bricht position:sticky (der Container wäre nur so hoch wie der
   Header selbst – auch Elementors Template-Root .elementor erzeugt so eine
   Box). display:contents lässt die Kinder direkt am Body-Layout teilnehmen;
   im Druck greift display:none weiterhin. */
.at-global-header,
.at-global-footer,
.at-global-header > .elementor {
  display: contents;
}

/* Logo-Bild in der Navigation.
   Hohe Spezifität nötig: Elementors ».elementor img { height:auto }« lädt
   nach uns und würde sonst gewinnen. */
.at-nav .at-nav__brand img {
  display: block;
  height: 44px;
  width: auto;
}

/* Responsives Lockup (Adam's | Tapas & Weinlounge): flacher als das alte
   Wordmark, daher eigene Höhe – Desktop volles Lockup, mobil lädt das
   <picture>-Element nur den „Adam's“-Teil (adams-lockup-kompakt.svg). */
.at-nav .at-nav__brand img.at-nav__logo-lockup {
  height: 38px;
}

@media (max-width: 1024px) {
  .at-nav .at-nav__brand img {
    height: 36px;
  }
  .at-nav .at-nav__brand img.at-nav__logo-lockup {
    height: 32px;
  }
  /* Reservieren-Button bleibt mobil sichtbar – kompakt neben dem Burger */
  .at-nav .at-nav__cta--desktop {
    display: inline-block;
    padding: 8px 12px;
    font-size: 11px;
    letter-spacing: 0.08em;
  }
}


/* --------------------------------------------------------------------------
   Speisekarte
   -------------------------------------------------------------------------- */
.at-menu__filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-bottom: 48px;
}

.at-menu__filter {
  background: transparent;
  color: var(--at-sand);
  border: 1px solid rgba(230, 154, 85, 0.4);
  padding: 10px 20px;
  font-family: var(--at-sans);
  font-size: 13px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s, color 0.2s;
}

.at-menu__filter:hover {
  border-color: var(--at-gold);
  color: var(--at-gold);
  background: rgba(230, 154, 85, 0.06);
}

.at-menu__filter.is-active,
.at-menu__filter.is-active:hover {
  background: var(--at-gold);
  color: var(--at-ink);
  border-color: var(--at-gold);
}

.at-menu__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 80px;
}

.at-menu__item {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 14px 10px;
  margin-inline: -10px;
  border-bottom: 1px solid rgba(230, 154, 85, 0.14);
  transition: background 0.2s;
}

.at-menu__item:hover {
  background: rgba(230, 154, 85, 0.05);
}

.at-menu__item.is-hidden {
  display: none;
}

.at-menu__row {
  display: flex;
  align-items: baseline;
  gap: 12px;
}

.at-menu__name {
  font-family: var(--at-serif);
  font-size: 19px;
}

.at-menu__allergens {
  font-size: 12px;
  color: var(--at-stone);
}

.at-menu__dots {
  flex: 1;
  border-bottom: 1px dotted rgba(230, 154, 85, 0.35);
}

.at-menu__price {
  font-family: var(--at-serif);
  font-size: 18px;
  color: var(--at-gold);
  white-space: nowrap;
}

.at-menu__desc {
  font-size: 15px;
  color: var(--at-stone);
  font-weight: 400;
  line-height: 1.55;
}

.at-menu__legend {
  margin-top: 56px;
  border: 1px solid rgba(230, 154, 85, 0.18);
  background: rgba(230, 154, 85, 0.04);
  padding: 24px 28px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.at-menu__legend-label {
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--at-gold);
}

.at-menu__legend-text {
  font-size: 14px;
  color: var(--at-stone);
  font-weight: 400;
  line-height: 1.7;
}

.at-menu__print-wrap {
  display: flex;
  justify-content: center;
  margin-top: 40px;
}

.at-menu__print {
  border: 1px solid var(--at-gold);
  color: var(--at-gold);
  background: transparent;
  padding: 13px 30px;
  font-family: var(--at-sans);
  font-size: 13px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
  /* Nie breiter als der Container – Text bricht bei schmalen Viewports um */
  max-width: 100%;
  white-space: normal;
  text-align: center;
  line-height: 1.4;
}

.at-menu .at-menu__print:hover,
.at-menu .at-menu__print:focus,
.at-menu .at-menu__print:active {
  background: var(--at-gold);
  color: var(--at-ink);
  border-color: var(--at-gold);
  outline: none;
}

/* --------------------------------------------------------------------------
   Specials-Showcase
   -------------------------------------------------------------------------- */
.at-specials {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: start;
}

.at-specials__item {
  cursor: pointer;
  padding: 18px 16px;
  border-bottom: 1px solid rgba(230, 154, 85, 0.14);
  transition: background 0.2s;
}

.at-specials__item:hover {
  background: rgba(230, 154, 85, 0.05);
}

.at-specials__item.is-active {
  background: rgba(230, 154, 85, 0.07);
}

.at-specials__row {
  display: flex;
  align-items: baseline;
  gap: 14px;
}

.at-specials__num {
  font-family: var(--at-serif);
  font-size: 14px;
  color: rgba(230, 154, 85, 0.45);
  min-width: 24px;
}

.at-specials__item.is-active .at-specials__num {
  color: var(--at-gold);
}

.at-specials__name {
  font-family: var(--at-serif);
  font-size: 21px;
  color: var(--at-sand-light);
}

.at-specials__item.is-active .at-specials__name {
  color: var(--at-cream);
}

.at-specials__dots {
  flex: 1;
  border-bottom: 1px dotted rgba(230, 154, 85, 0.35);
}

.at-specials__price {
  font-family: var(--at-serif);
  font-size: 18px;
  color: var(--at-gold);
  white-space: nowrap;
}

.at-specials__desc {
  display: none;
  color: var(--at-sand-light);
  line-height: 1.7;
  margin: 12px 0 0 38px;
  font-weight: 400;
  font-size: 15px;
}

.at-specials__item.is-active .at-specials__desc {
  display: block;
}

.at-specials__stage {
  min-height: 440px;
}

/* Doppelte Klasse für höhere Spezifität als Elementors ".elementor img".
   object-fit: contain, damit die (quadratischen) Teller-Fotos nie
   abgeschnitten werden – dunkles Passepartout dahinter. */
.at-specials .at-specials__stage img {
  width: 100%;
  height: 440px;
  object-fit: contain;
  background: #100d0a;
  border: 1px solid rgba(230, 154, 85, 0.3);
  box-shadow: 24px 24px 0 rgba(230, 154, 85, 0.08);
}

/* --------------------------------------------------------------------------
   Bewertungs-Slider
   -------------------------------------------------------------------------- */
.at-reviews {
  text-align: center;
}

.at-reviews__stage {
  display: flex;
  align-items: center;
  gap: 32px;
}

.at-reviews__slides {
  flex: 1;
  min-height: 180px;
  display: flex;
  align-items: center;
}

.at-reviews__slide {
  display: none;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  width: 100%;
}

.at-reviews__slide.is-active {
  display: flex;
}

.at-reviews__stars {
  color: var(--at-gold);
  font-size: 18px;
  letter-spacing: 6px;
}

.at-reviews__text {
  font-family: var(--at-serif);
  font-size: 22px;
  line-height: 1.55;
  margin: 0;
  color: #e8e0d1;
}

.at-reviews__name {
  font-size: 14px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--at-stone);
}

/* Alle Zustände explizit, damit keine Theme-Button-Styles (focus/active)
   durchschlagen */
.at-reviews .at-reviews__arrow,
.at-reviews .at-reviews__arrow:focus,
.at-reviews .at-reviews__arrow:active,
.at-reviews .at-reviews__arrow:visited {
  border: 1px solid rgba(230, 154, 85, 0.4);
  color: var(--at-gold);
  background: transparent;
  width: 44px;
  height: 44px;
  font-size: 18px;
  cursor: pointer;
  flex-shrink: 0;
  outline: none;
  box-shadow: none;
  transition: border-color 0.2s, background 0.2s;
}

.at-reviews .at-reviews__arrow:hover,
.at-reviews .at-reviews__arrow:focus-visible {
  border-color: var(--at-gold);
  background: rgba(230, 154, 85, 0.08);
  color: var(--at-gold);
}

.at-reviews__dots {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 32px;
}

.at-reviews .at-reviews__dot,
.at-reviews .at-reviews__dot:focus,
.at-reviews .at-reviews__dot:active {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: none;
  padding: 0;
  cursor: pointer;
  background: rgba(230, 154, 85, 0.3);
  outline: none;
  box-shadow: none;
}

.at-reviews .at-reviews__dot.is-active {
  background: var(--at-gold);
}

/* --------------------------------------------------------------------------
   DSGVO-Karte
   -------------------------------------------------------------------------- */
.at-map {
  display: flex;
  flex-direction: column;
  flex: 1;
}

.at-map__consent {
  flex: 1;
  min-height: 340px;
  border: 1px solid rgba(230, 154, 85, 0.25);
  background: rgba(230, 154, 85, 0.04);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  text-align: center;
  padding: 32px;
}

.at-map__text {
  font-size: 15px;
  color: var(--at-stone);
  font-weight: 400;
  max-width: 400px;
  line-height: 1.6;
}

.at-map__load {
  border-radius: 0;
  border: 1px solid var(--at-gold);
  color: var(--at-gold);
  background: transparent;
  padding: 13px 30px;
  font-family: var(--at-sans);
  font-size: 13px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}

.at-map__load:hover {
  background: var(--at-gold);
  color: var(--at-ink);
}

.at-map iframe {
  width: 100%;
  flex: 1;
  min-height: 340px;
  border: 1px solid rgba(230, 154, 85, 0.25);
  filter: grayscale(0.6) contrast(0.95);
}

/* Sprachumschalter (DE | EN) */
.at-nav__lang {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  letter-spacing: 0.1em;
}

.at-nav__lang a {
  color: var(--at-stone);
  padding: 4px 2px;
  border-bottom: 1px solid transparent;
}

.at-nav__lang a:hover {
  color: var(--at-gold);
}

.at-nav__lang a.is-active {
  color: var(--at-gold);
  border-bottom-color: var(--at-gold);
}

.at-nav__lang--mobile {
  display: none;
}

/* --------------------------------------------------------------------------
   Offcanvas-Elemente: am Desktop unsichtbar.
   Doppelte Spezifität nötig: Hello lädt reset.css nach uns und setzt
   [type="button"] { display: inline-block } mit gleicher Spezifität.
   -------------------------------------------------------------------------- */
.at-nav .at-nav__close,
.at-nav .at-nav__cta--mobile,
.at-nav .at-nav__backdrop {
  display: none;
}

/* Scroll-Lock, solange das Offcanvas-Menü offen ist */
html.at-noscroll,
html.at-noscroll body {
  overflow: hidden;
}

/* --------------------------------------------------------------------------
   Responsive: Offcanvas-Navigation von links
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
  .at-nav {
    padding: 14px 24px;
    /* backdrop-filter ruckelt auf Mobilgeräten beim Scrollen – solide Fläche */
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    background: #171310;
  }

  .at-nav__burger {
    display: flex;
  }

  /* Panel: fixiert links, standardmäßig herausgeschoben */
  .at-nav__links {
    display: flex;
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: min(320px, 85vw);
    background: #100d0a;
    border-right: 1px solid rgba(230, 154, 85, 0.25);
    flex-direction: column;
    align-items: flex-start;
    gap: 22px;
    padding: 76px 28px 36px;
    transform: translateX(-100%);
    transition: transform 0.3s ease;
    overflow-y: auto;
    z-index: 120;
  }

  .at-nav.is-open .at-nav__links {
    transform: translateX(0);
    box-shadow: 12px 0 48px rgba(0, 0, 0, 0.55);
  }

  /* Schließen-Button oben im Panel */
  .at-nav .at-nav__close {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 18px;
    right: 18px;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(230, 154, 85, 0.4);
    border-radius: 50%;
    background: transparent;
    color: var(--at-gold);
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
  }

  /* Hover/Focus/Active: Gold-Optik statt Hellos rosa Button-Reset
     (höhere Spezifität als [type=button]:hover). */
  .at-nav .at-nav__close:hover,
  .at-nav .at-nav__close:focus,
  .at-nav .at-nav__close:active {
    background: rgba(230, 154, 85, 0.12);
    border-color: var(--at-gold);
    color: var(--at-gold);
    outline: none;
  }

  /* Reservieren-Button im Panel */
  .at-nav .at-nav__cta--mobile {
    display: inline-block;
    margin-top: 10px;
  }

  /* Sprachumschalter: am Desktop rechts, mobil im Panel */
  .at-nav__lang--desktop {
    display: none;
  }

  .at-nav__lang--mobile {
    display: flex;
    margin-top: 6px;
  }

  /* Abdunkelung hinter dem Panel */
  .at-nav .at-nav__backdrop {
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(10, 8, 6, 0.6);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
    z-index: 110;
  }

  .at-nav.is-open .at-nav__backdrop {
    opacity: 1;
    pointer-events: auto;
  }

  /* Unterpunkte im Panel: Akkordeon – standardmäßig eingeklappt */
  .at-nav__item {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    width: 100%;
  }

  /* Hauptzeile mit Unterpunkten: klickbar zum Auf-/Zuklappen */
  .at-nav__item > a[aria-haspopup] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
  }

  .at-nav__item > a[aria-haspopup] .at-nav__caret {
    transition: transform 0.25s ease;
  }

  .at-nav__item.is-open > a[aria-haspopup] .at-nav__caret {
    transform: rotate(180deg);
  }

  .at-nav__links .at-nav__sub {
    display: flex;
    flex-direction: column;
    position: static;
    transform: none;
    padding: 0 0 0 16px;
    gap: 12px;
    border-left: 1px solid rgba(230, 154, 85, 0.3);
    /* eingeklappt */
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    margin-top: 0;
    transition: max-height 0.3s ease, opacity 0.25s ease, margin-top 0.3s ease;
  }

  .at-nav__item.is-open > .at-nav__sub {
    max-height: 640px;
    opacity: 1;
    margin-top: 14px;
  }

  .at-nav__links .at-nav__sub::before {
    display: none;
  }

  .at-nav__links .at-nav__sub a {
    padding: 0;
  }

  /* Burger → X */
  .at-nav.is-open .at-nav__burger span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

  .at-nav.is-open .at-nav__burger span:nth-child(2) {
    opacity: 0;
  }

  .at-nav.is-open .at-nav__burger span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .at-nav__links,
  .at-nav__backdrop {
    transition: none;
  }
}

/* Specials stapeln schon unterhalb 880px – zwei Spalten wären dort zu eng */
@media (max-width: 880px) {
  .at-specials {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .at-specials__stage {
    min-height: 0;
  }

  .at-specials .at-specials__stage img {
    height: 320px;
    box-shadow: none;
  }
}

@media (max-width: 767px) {
  .at-menu__grid {
    grid-template-columns: 1fr;
  }

  .at-reviews__stage {
    gap: 12px;
  }

  .at-reviews__text {
    font-size: 18px;
  }
}

/* --------------------------------------------------------------------------
   Veranstaltungen (Event-Karten)
   -------------------------------------------------------------------------- */
.at-events {
  display: grid;
  gap: 28px;
}

.at-events--cols-1 { grid-template-columns: 1fr; }
.at-events--cols-2 { grid-template-columns: repeat(2, 1fr); }
.at-events--cols-3 { grid-template-columns: repeat(3, 1fr); }

.at-event-card {
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(230, 154, 85, 0.18);
  background: var(--at-band);
  overflow: hidden;
  transition: border-color 0.2s, transform 0.2s;
}

.at-event-card:hover {
  border-color: var(--at-gold);
  transform: translateY(-3px);
}

.at-event-card__media {
  position: relative;
  display: block;
  aspect-ratio: 3 / 2;
  overflow: hidden;
}

.at-event-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Datums-Badge oben links */
.at-event-card__badge {
  position: absolute;
  top: 14px;
  left: 14px;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 54px;
  padding: 8px 6px;
  background: rgba(16, 13, 10, 0.9);
  border: 1px solid var(--at-gold);
  color: var(--at-cream);
  line-height: 1;
}

.at-event-card__day {
  font-family: var(--at-body-font);
  font-weight: 700;
  font-size: 22px;
  color: var(--at-gold);
}

.at-event-card__mon {
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-top: 4px;
}

.at-event-card__body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 22px 24px 26px;
}

.at-event-card__meta {
  font-size: 13px;
  letter-spacing: 0.04em;
  color: var(--at-gold);
}

.at-event-card__title {
  font-family: var(--at-serif);
  font-size: 22px;
  font-weight: 400;
  margin: 0;
}

.at-event-card__title a {
  color: var(--at-cream);
}

.at-event-card__title a:hover {
  color: var(--at-gold);
}

.at-event-card__excerpt {
  color: var(--at-sand-light);
  font-weight: 400;
  line-height: 1.6;
  margin: 0;
}

.at-event-card__link {
  margin-top: 4px;
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--at-gold);
}

.at-events__empty {
  color: var(--at-sand-light);
  font-weight: 400;
}

@media (max-width: 1024px) {
  .at-events--cols-3 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 680px) {
  .at-events--cols-2,
  .at-events--cols-3 { grid-template-columns: 1fr; }
}

/* Gruppen-Überschrift im Navigations-Dropdown */
.at-nav__sub-heading {
  display: block;
  padding: 12px 20px 6px;
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--at-gold);
  opacity: 0.8;
  pointer-events: none;
}
.at-nav__sub-heading:not(:first-child) {
  border-top: 1px solid rgba(230, 154, 85, 0.18);
  margin-top: 6px;
}
@media (max-width: 1024px) {
  .at-nav__sub-heading { padding-left: 0; }
}

/* --------------------------------------------------------------------------
   Veranstaltungen – Featured „Nächster Termin“ (groß, zentriert, oben)
   -------------------------------------------------------------------------- */
.at-event-card--featured {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
  width: 100%;
  margin: 0 0 28px;
  position: relative;
}

.at-event-card--featured .at-event-card__media {
  aspect-ratio: auto;
  min-height: 0;
  height: 100%;
}

.at-event-card--featured .at-event-card__body {
  justify-content: center;
  padding: 40px 44px;
  gap: 14px;
}

.at-event-card--featured .at-event-card__title {
  font-size: 34px;
}

.at-event-card--featured .at-event-card__excerpt {
  font-size: 17px;
}

.at-event-card--featured .at-event-card__meta {
  font-size: 14px;
}

/* „Nächster Termin“-Fähnchen */
.at-event-card__flag {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  background: var(--at-terra);
  color: var(--at-cream);
  font-family: var(--at-sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 7px 16px;
}

.at-event-card--featured .at-event-card__badge {
  min-width: 64px;
  padding: 10px 8px;
  /* Unter dem „Nächster Termin"-Fähnchen positionieren (keine Überlappung) */
  top: 44px;
}

.at-event-card--featured .at-event-card__day {
  font-size: 30px;
}

@media (max-width: 780px) {
  .at-event-card--featured {
    grid-template-columns: 1fr;
  }
  .at-event-card--featured .at-event-card__media {
    min-height: 0;
    aspect-ratio: 3 / 2;
  }
  .at-event-card--featured .at-event-card__body {
    padding: 26px 22px;
  }
  .at-event-card--featured .at-event-card__title {
    font-size: 26px;
  }
}

/* --------------------------------------------------------------------------
   Einzel-Veranstaltung: prominenter Datums-Header
   -------------------------------------------------------------------------- */
.at-event-hero {
  display: flex;
  align-items: center;
  gap: 24px;
  border: 1px solid rgba(230, 154, 85, 0.25);
  background: rgba(230, 154, 85, 0.05);
  padding: 24px 28px;
  margin: 0 0 32px;
}

.at-event-hero__badge {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 84px;
  padding: 14px 10px;
  background: #100d0a;
  border: 1px solid var(--at-gold);
  line-height: 1.1;
}

.at-event-hero__day {
  font-family: var(--at-body-font);
  font-weight: 700;
  font-size: 34px;
  color: var(--at-gold);
}

.at-event-hero__mon {
  font-size: 13px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--at-cream);
  margin-top: 2px;
}

.at-event-hero__year {
  font-size: 12px;
  color: var(--at-stone);
  margin-top: 2px;
}

.at-event-hero__date {
  font-family: var(--at-serif);
  font-size: 22px;
  color: var(--at-cream);
}

.at-event-hero__loc {
  color: var(--at-sand-light);
  margin-top: 6px;
}

.at-event-hero__past {
  display: inline-block;
  margin-top: 10px;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--at-stone);
  border: 1px solid rgba(170, 160, 139, 0.4);
  padding: 3px 10px;
}

@media (max-width: 560px) {
  .at-event-hero { flex-direction: column; align-items: flex-start; text-align: left; }
}

/* Featured-Event: echter Button + Layout-Feinschliff */
.at-event-card__btn {
  border: 1px solid var(--at-gold);
  display: inline-block;
  line-height: 1.4;
  align-self: flex-start;
  margin-top: 6px;
  background: var(--at-gold);
  color: var(--at-ink);
  padding: 13px 32px;
  font-family: var(--at-sans);
  font-size: 13px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  transition: background 0.2s;
}
.at-event-card__btn:hover {
  background: var(--at-gold-light);
  color: var(--at-ink);
}
.at-event-card--featured .at-event-card__body {
  justify-content: center;
  padding: 44px 48px;
}

/* --------------------------------------------------------------------------
   Einzel-Veranstaltung: großes Bild, Inhalt, Reservierungs-CTA
   -------------------------------------------------------------------------- */
.at-event-single {
  display: flex;
  flex-direction: column;
}

/* Nur der Fließtext bleibt in Lesebreite – Bild und Termin-Box nutzen das Grid */
.at-event-single__content {
  max-width: 860px;
  width: 100%;
  margin-inline: auto;
}

.at-event-single__media {
  margin: 0 0 28px;
  border: 1px solid rgba(230, 154, 85, 0.3);
  overflow: hidden;
  /* dezenter Grund, falls das Bild schmaler als der Rahmen ist (Plakate) */
  background: rgba(16, 13, 10, 0.6);
}

/* Einspaltig (mobil/tablet): erst Termin und Text, dann das Bild */
@media (max-width: 1024px) {
  .at-event-single .at-event-hero { order: 1; }
  .at-event-single .at-event-single__content { order: 2; }
  .at-event-single .at-event-single__media { order: 3; margin: 28px 0 0; }
  .at-event-single .at-event-single__cta { order: 4; }
  .at-event-single .at-event-single__back { order: 5; }
}

/* Querformat-Fotos füllen die Grid-Breite (sanfter Beschnitt auf 560px),
   Hochformat-Plakate (.is-portrait, via JS erkannt) bleiben komplett
   sichtbar und werden zentriert. */
.at-event-single__media img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 560px;
  object-fit: cover;
}

.at-event-single__media.is-portrait img {
  width: auto;
  max-width: 100%;
  max-height: 680px;
  margin-inline: auto;
  object-fit: contain;
}

.at-event-single__content {
  font-size: 17px;
  line-height: 1.8;
  color: var(--at-sand-light);
}

.at-event-single__content p {
  margin: 0 0 18px;
}

.at-event-single__content h2,
.at-event-single__content h3 {
  font-family: var(--at-serif);
  color: var(--at-cream);
  margin: 28px 0 12px;
}

/* Reservierungs-CTA unten */
.at-event-single__cta {
  margin: 36px 0 8px;
  padding: 28px 32px;
  border: 1px solid rgba(230, 154, 85, 0.3);
  background: rgba(230, 154, 85, 0.05);
  text-align: center;
}

.at-event-single__cta-text {
  font-family: var(--at-serif);
  font-size: 20px;
  color: var(--at-cream);
  margin: 0 0 16px;
}

.at-event-single__cta-btn {
  border: 1px solid var(--at-gold);
  display: inline-block;
  background: var(--at-gold);
  color: var(--at-ink);
  padding: 15px 34px;
  font-family: var(--at-sans);
  font-size: 14px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  transition: background 0.2s;
}

.at-event-single__cta-btn:hover {
  background: var(--at-gold-light);
  color: var(--at-ink);
}

.at-event-single__back {
  margin: 26px 0 0;
}

.at-event-single__back a {
  font-size: 13px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--at-stone);
}

.at-event-single__back a:hover {
  color: var(--at-gold);
}

/* Rückblick-Sektion auf der Veranstaltungsseite */
.at-events-past-heading {
  text-align: center;
  margin: 24px 0 32px;
}

/* Druck-Button oben (Speisekarte-Seite) */
.at-menu__print-wrap--top {
  margin-top: 0;
  margin-bottom: 40px;
}

/* Druck-Kontaktkopf & Kategorie-Titel: am Bildschirm ausgeblendet, nur im Ausdruck sichtbar */
.at-menu__print-header,
.at-menu__print-cat {
  display: none;
}

/* --------------------------------------------------------------------------
   Weinkarte (at_wine) – gleiche Formensprache wie die Speisekarte, aber
   eigenständig: Serif-Namen, Winzer-Zeile in Gold, Glas-/Flaschen-Spalten.
   -------------------------------------------------------------------------- */
.at-wine__filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-bottom: 44px;
}

.at-wine__filter.at-wine__filter {
  background: transparent;
  color: var(--at-sand);
  border: 1px solid rgba(230, 154, 85, 0.4);
  padding: 10px 20px;
  font-family: var(--at-sans);
  font-size: 13px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s, color 0.2s;
}

.at-wine__filter.at-wine__filter:hover {
  border-color: var(--at-gold);
  color: var(--at-gold);
  background: rgba(230, 154, 85, 0.06);
}

.at-wine__filter.at-wine__filter.is-active,
.at-wine__filter.at-wine__filter.is-active:hover {
  background: var(--at-gold);
  color: var(--at-ink);
  border-color: var(--at-gold);
}

.at-wine__group-title {
  font-family: var(--at-serif);
  font-size: 26px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--at-gold);
  border-bottom: 1px solid rgba(230, 154, 85, 0.35);
  padding-bottom: 10px;
  margin: 46px 0 8px;
}

.at-wine__group-title:first-of-type {
  margin-top: 0;
}

.at-wine__block {
  margin-top: 22px;
}

.at-wine__block.is-hidden {
  display: none;
}

.at-wine__subhead {
  display: flex;
  align-items: baseline;
  gap: 16px;
  padding: 6px 0;
  border-bottom: 1px solid rgba(230, 154, 85, 0.14);
}

.at-wine__subhead-label {
  flex: 1;
  font-family: var(--at-sans);
  font-size: 13px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--at-cream);
}

.at-wine__col {
  width: 74px;
  text-align: right;
  font-family: var(--at-sans);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--at-stone);
}

.at-wine__item {
  padding: 13px 0;
  border-bottom: 1px solid rgba(230, 154, 85, 0.1);
}

.at-wine__row {
  display: flex;
  align-items: baseline;
  gap: 16px;
}

.at-wine__head {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.at-wine__name {
  font-family: var(--at-serif);
  font-size: 19px;
  color: var(--at-cream);
}

.at-wine__origin {
  font-family: var(--at-sans);
  font-size: 12.5px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--at-gold);
}

.at-wine__price {
  width: 74px;
  text-align: right;
  color: var(--at-gold);
  font-size: 15px;
  white-space: nowrap;
}

.at-wine__grapes {
  margin-top: 4px;
  font-size: 13px;
  font-style: italic;
  color: var(--at-stone);
}

.at-wine__desc {
  margin-top: 4px;
  max-width: 640px;
  font-size: 14px;
  line-height: 1.6;
  color: var(--at-sand-light);
}

.at-wine__note {
  margin-top: 30px;
  padding-top: 14px;
  border-top: 1px solid rgba(230, 154, 85, 0.14);
  font-size: 12.5px;
  color: var(--at-stone);
}

@media (max-width: 700px) {
  .at-wine__row,
  .at-wine__subhead {
    gap: 10px;
  }
  .at-wine__col,
  .at-wine__price {
    width: 58px;
  }
  .at-wine__name {
    font-size: 17px;
  }
}

/* --------------------------------------------------------------------------
   Schwebender Karten-Umschalter (Speisen <-> Weine)
   -------------------------------------------------------------------------- */
.at-switch {
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  bottom: calc(18px + env(safe-area-inset-bottom, 0px));
  z-index: 9000;
  display: flex;
  gap: 4px;
  padding: 5px;
  background: rgba(16, 13, 10, 0.92);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(230, 154, 85, 0.35);
  border-radius: 999px;
  box-shadow: 0 10px 34px rgba(0, 0, 0, 0.45);
}

.at-switch__btn {
  display: inline-block;
  padding: 12px 22px;
  border-radius: 999px;
  font-family: var(--at-sans);
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--at-sand-light);
  transition: background 0.2s, color 0.2s;
}

.at-switch__btn:hover {
  color: var(--at-gold);
}

.at-switch__btn.is-active {
  background: var(--at-gold);
  color: var(--at-ink);
}

@media (max-width: 480px) {
  .at-switch__btn {
    padding: 12px 18px;
    font-size: 12px;
  }
}

/* =======================================================================
   Druck / PDF – nur die Speisekarte + Kontaktdaten
   Hebt die schwarz-weiß-Reset-Regeln von Hello Elementor gezielt auf.
   ======================================================================= */
@media print {
  /* 1) Reset-Artefakte entfernen: keine (URL)-Anhänge hinter Links */
  a[href]:after,
  a[href]:before,
  abbr[title]:after {
    content: "" !important;
  }

  /* 2) Gesamte Website-Chrome ausblenden – nur die Karte bleibt */
  .at-global-header,
  .at-global-footer,
  header.at-nav,
  .at-topbar,
  .at-offcanvas,
  .at-offcanvas-backdrop,
  .at-menu__filters,
  .at-menu__print-wrap,
  .at-eyebrow,
  .at-events-past-heading,
  .at-events,
  #wpadminbar {
    display: none !important;
  }

  /* 2b) Im Druck/PDF IMMER die komplette Karte: Der Kategorie-Filter
     versteckt Gerichte per .is-hidden – das darf den Ausdruck nie
     beschneiden, egal welcher Filter auf dem Bildschirm aktiv ist. */
  .at-menu__item.is-hidden {
    display: block !important;
  }

  /* 3) Karte volle Breite, ohne Rahmen/Schatten, druckfreundlich */
  html, body {
    background: #fff !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .page .site-main,
  .page main,
  .elementor .e-con,
  .elementor .e-con-inner {
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
  }
  .at-menu {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    /* kleiner horizontaler Puffer als Schutz, falls im Druckdialog
       „Ränder: Keine" gewählt wird (Drucker-Rand) */
    padding: 0 4mm !important;
  }

  /* 4) Druck-Kontaktkopf einblenden */
  .at-menu__print-header {
    display: block !important;
    text-align: center;
    margin: 0 0 22px;
    padding: 0 0 16px;
    border-bottom: 1.5px solid #171310 !important;
  }
  .at-menu__print-brand {
    font-family: var(--at-serif), Georgia, serif;
    font-size: 24pt;
    letter-spacing: 0.02em;
    color: #171310 !important;
    margin-bottom: 4px;
  }
  .at-menu__print-tagline {
    font-size: 10.5pt;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #171310 !important;
    margin-bottom: 10px;
  }
  .at-menu__print-contact {
    font-size: 9.5pt;
    line-height: 1.55;
    color: #171310 !important;
  }

  /* 5) Menü-Zeilen sauber umbrechen, Kategorien nicht am Seitenende trennen */
  .at-menu__grid {
    display: block !important;
    margin: 0 !important;
  }
  /* Negative Gutter-Margins des Screen-Layouts aufheben (sonst links/rechts
     abgeschnitten). */
  .at-menu__item,
  .at-menu__row {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .at-menu__item {
    break-inside: avoid;
    page-break-inside: avoid;
    padding: 4px 0 !important;
  }
  /* Kategorie-Titel nur im Druck sichtbar */
  .at-menu__print-cat {
    display: block !important;
    break-after: avoid;
    page-break-after: avoid;
    break-before: auto;
    margin: 16px 0 6px;
    padding-bottom: 3px;
    border-bottom: 0.75pt solid #171310 !important;
    font-family: var(--at-serif), Georgia, serif;
    font-size: 13pt;
    letter-spacing: 0.04em;
    color: #171310 !important;
  }
  .at-menu__print-cat:first-child {
    margin-top: 0;
  }
  .at-menu__legend {
    break-inside: avoid;
    page-break-inside: avoid;
  }
  /* gepunktete Führungslinie zwischen Name und Preis auch im Druck */
  .at-menu__dots {
    border-bottom: 1px dotted #171310 !important;
  }

  /* 6) Weinkarte druckt IMMER vollständig mit – Farb-Filter beschneiden
     den Ausdruck nie, Farben druckfreundlich dunkel. */
  .at-switch,
  .at-wine__filters {
    display: none !important;
  }
  .at-wine__block.is-hidden {
    display: block !important;
  }
  .at-wine {
    width: 100% !important;
    padding: 0 4mm !important;
  }
  .at-wine__group-title {
    color: #171310 !important;
    border-color: #171310 !important;
    break-after: avoid;
    page-break-after: avoid;
    margin: 18px 0 4px;
    font-size: 14pt;
  }
  .at-wine__subhead {
    break-after: avoid;
    page-break-after: avoid;
    border-color: #999 !important;
  }
  .at-wine__subhead-label,
  .at-wine__name {
    color: #171310 !important;
  }
  .at-wine__origin,
  .at-wine__price,
  .at-wine__col {
    color: #333 !important;
  }
  .at-wine__grapes,
  .at-wine__desc,
  .at-wine__note {
    color: #444 !important;
  }
  .at-wine__item {
    break-inside: avoid;
    page-break-inside: avoid;
    padding: 5px 0 !important;
    border-color: #ddd !important;
  }
  .at-wine__note {
    border-color: #999 !important;
  }

  @page {
    margin: 14mm 14mm 16mm;
  }
}

/* ==========================================================================
   Schutz vor Elementor-Kit-Button-Defaults
   Die Kit-Einstellung „Buttons" (Site Settings) stylt neben .elementor-button
   auch ALLE nativen <button> (.elementor-kit-N button – Spezifität 0,1,1).
   Unsere Komponenten-Buttons stellen hier ihre Optik mit 0,2,0 wieder her.
   ========================================================================== */
.at-nav__burger.at-nav__burger {
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 8px;
}

.at-nav__close.at-nav__close {
  padding: 0;
}

.at-menu__filter.at-menu__filter {
  background: transparent;
  color: var(--at-sand);
  border: 1px solid rgba(230, 154, 85, 0.4);
  padding: 10px 20px;
  font-size: 13px;
  letter-spacing: 0.1em;
}

.at-menu__filter.is-active {
  background: var(--at-gold);
  color: var(--at-ink);
}

.at-menu__print.at-menu__print {
  background: transparent;
  color: var(--at-gold);
  border: 1px solid var(--at-gold);
  padding: 13px 30px;
  font-size: 13px;
  letter-spacing: 0.14em;
}

.at-reviews__arrow.at-reviews__arrow {
  background: transparent;
  border: 1px solid rgba(230, 154, 85, 0.4);
  color: var(--at-gold);
  padding: 0;
  border-radius: 0;
}

.at-reviews__dot.at-reviews__dot {
  background: rgba(230, 154, 85, 0.3);
  border: none;
  padding: 0;
  border-radius: 50%;
}

.at-reviews__dot.is-active {
  background: var(--at-gold);
}

.at-map__load.at-map__load {
  background: transparent;
  color: var(--at-gold);
  border: 1px solid var(--at-gold);
  padding: 13px 30px;
  border-radius: 0;
}

/* Button-Icons folgen der Textfarbe (Elementor rendert FA-SVGs sonst
   mit eigener Füllung – auf Apricot-Buttons wäre das Weiß unlesbar). */
.elementor-button .elementor-button-icon svg,
.elementor-button .elementor-button-icon i {
  fill: currentColor;
  color: currentColor;
}
