/*
 * Augustiner Kloster Theme — Widget Styles
 * Komponentenspezifisches CSS für alle 25 Custom Elementor Widgets
 *
 * @package    AugustinerKloster
 * @author     Webamax Digitalagentur <https://www.webamax.de>
 */

/* ══════════════════════════════════════════════════════
   1. HERO SECTION (ak-hero)
══════════════════════════════════════════════════════ */
.ak-hero {
  position: relative;
  height: 100vh;
  min-height: 600px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.ak-hero__bg {
  position: absolute;
  inset: -15% 0 0;
  overflow: hidden;
}
.ak-hero__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 35%;
  will-change: transform;
}
.ak-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(6,2,14,.84)  0%,
    rgba(6,2,14,.60) 22%,
    rgba(6,2,14,.44) 42%,
    rgba(6,2,14,.72) 65%,
    rgba(6,2,14,.95) 87%,
    rgba(6,2,14,.99) 100%
  );
}
.ak-hero__inner {
  position: relative;
  z-index: 2;
  padding: 0 3.75em 3.25em;
  width: 100%;
}
/* Hero-Inhalt sitzt unten (flex-end) – der große obere Innenabstand
   aus den generischen Layout-Controls ist hier unnötig. */
.ak-hero .ak-hero__inner { padding-top: 1.5em !important; }
.ak-hero__title {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-display);
  font-weight: 600;
  line-height: 1.01;
  color: var(--ak-white);
  margin-bottom: 1.125rem;
  letter-spacing: -.02em;
}
.ak-hero__title em { font-style: italic; color: var(--ak-g200); }
.ak-hero__sub {
  font-size: var(--ak-fs-md);
  color: rgba(255,255,255,.62);
  font-weight: 300;
  max-width: 640px;
  line-height: 1.55;
  margin-bottom: 2.125rem;
}

/* Buchungs-Strip */
.ak-booking-strip {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr auto;
  border: 1px solid rgba(255,255,255,.15);
  background: rgba(6,2,14,.55);
  backdrop-filter: blur(16px);
}
.ak-booking-strip__col {
  padding: .875em 1.375em;
  border-right: 1px solid rgba(255,255,255,.1);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.ak-booking-strip__label {
  font-size: var(--ak-fs-xs);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255,255,255,.45);
  margin-bottom: .25em;
}
.ak-booking-strip__input {
  background: transparent;
  border: none;
  outline: none;
  font-family: var(--ak-font-sans);
  font-size: var(--ak-fs-base);
  color: var(--ak-white);
  font-weight: 300;
  width: 100%;
  cursor: pointer;
}
.ak-booking-strip__input::placeholder { color: rgba(255,255,255,.4); }
.ak-booking-strip__input option { background: var(--ak-p900); color: var(--ak-white); }
select.ak-booking-strip__input { appearance: none; }
input[type="date"].ak-booking-strip__input::-webkit-calendar-picker-indicator {
  filter: invert(1);
  opacity: .5;
  cursor: pointer;
}
.ak-booking-strip__btn {
  background: var(--ak-g400);
  color: var(--ak-white);
  border: none;
  cursor: pointer;
  padding: 0 1.75em;
  font-family: var(--ak-font-sans);
  font-size: var(--ak-fs-base);
  font-weight: 500;
  letter-spacing: .05em;
  display: flex;
  align-items: center;
  gap: .5em;
  transition: background var(--ak-transition);
  white-space: nowrap;
}
.ak-booking-strip__btn:hover { background: var(--ak-g600); }

/* ══════════════════════════════════════════════════════
   2. STATS BAR (ak-stats-bar)
══════════════════════════════════════════════════════ */
.ak-stats-bar {
  background: var(--ak-p900);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.ak-stat {
  padding: 1.625em 2.25em;
  border-right: 1px solid rgba(255,255,255,.07);
}
.ak-stat:last-child { border-right: none; }
.ak-stat__number {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-2xl);
  font-weight: 600;
  color: var(--ak-g200);
  line-height: 1;
}
.ak-stat__label {
  font-size: var(--ak-fs-xs);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
  margin-top: .3em;
}

/* ══════════════════════════════════════════════════════
   3. EYEBROW HEADING (ak-eyebrow-heading)
══════════════════════════════════════════════════════ */
.ak-ewh { /* eyebrow+heading combo wrapper */ }
.ak-ewh__heading { margin-bottom: 1rem; }
.ak-ewh__lead { margin-top: 1rem; }
.ak-ewh__cta { margin-top: 1.5rem; }

/* Alignment variants — apply text-align AND handle flex/block centering for all children */
.ak-ewh--center { text-align: center; }
.ak-ewh--center .ak-eyebrow { justify-content: center; }
.ak-ewh--center .ak-ewh__lead { margin-left: auto; margin-right: auto; }
.ak-ewh--center .ak-ewh__cta { display: flex; justify-content: center; }

.ak-ewh--right { text-align: right; }
.ak-ewh--right .ak-eyebrow { justify-content: flex-end; }
.ak-ewh--right .ak-ewh__cta { display: flex; justify-content: flex-end; }

/* ══════════════════════════════════════════════════════
   4. TARGET CARDS (ak-target-cards) — Zielgruppen
══════════════════════════════════════════════════════ */
.ak-target-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--ak-stone);
  border: 1px solid var(--ak-stone);
  margin-top: 3em;
}
.ak-target-card {
  padding: 2.5em 2em;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: .75em;
  position: relative;
  overflow: hidden;
  min-height: 280px;
  cursor: default;
}
.ak-target-card__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: .5;
  transition: opacity .5s, transform .5s;
  transform: scale(1);
  z-index: 0;
}
.ak-target-card:hover .ak-target-card__bg {
  opacity: .75;
  transform: scale(1.04);
}
.ak-target-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(6,1,14,.99) 0%, rgba(6,1,14,.92) 45%, rgba(6,1,14,.68) 75%, rgba(6,1,14,.38) 100%);
  z-index: 1;
}
.ak-target-card__content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: .625em;
}
.ak-target-card__icon {
  width: 40px;
  height: 40px;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: var(--ak-radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ak-g200);
  transition: all .3s;
  flex-shrink: 0;
}
.ak-target-card__icon i { font-size: var(--ak-fs-md); }
.ak-target-card:hover .ak-target-card__icon {
  background: var(--ak-g400);
  border-color: var(--ak-g400);
  color: var(--ak-white);
}
.ak-target-card__title {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-lg);
  font-weight: 600;
  color: var(--ak-white);
  transition: color .3s;
}
.ak-target-card:hover .ak-target-card__title { color: var(--ak-g200); }
.ak-target-card__text {
  font-size: var(--ak-fs-base);
  color: rgba(255,255,255,.65);
  line-height: 1.6;
  transition: color .3s;
}
.ak-target-card:hover .ak-target-card__text { color: rgba(255,255,255,.85); }

/* ══════════════════════════════════════════════════════
   5. SPLIT SECTION (ak-split-section)
══════════════════════════════════════════════════════ */

/* Elementor-Widget-Wrapper darf kein Padding/Overflow kappen */
.elementor-widget-ak-split-section {
  line-height: 0;
}
.elementor-widget-ak-split-section > .elementor-widget-container {
  line-height: normal;
  padding: 0 !important;
  overflow: visible;
}

.ak-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 580px;
  width: 100%;
}
/* ak-split--reverse: ordering is handled by PHP HTML order, no CSS needed */

/* Bild-Panel streckt sich auf volle Grid-Zellen-Höhe */
.ak-split__img {
  position: relative;
  overflow: hidden;
  min-height: 400px; /* Sicherheits-Fallback */
}
.ak-split__img img {
  position: absolute;
  inset: 0;
  width: 100% !important;   /* WordPress-Attribut überschreiben */
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover;
  object-position: center;
  transition: transform var(--ak-transition-slow);
}
.ak-split__img:hover img { transform: scale(1.03); }
.ak-split__img-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(22,5,38,.14) 0%, transparent 55%);
  pointer-events: none;
}
.ak-split__year-badge {
  position: absolute;
  bottom: 1.75em;
  right: 1.75em;
  background: var(--ak-g400);
  padding: .9375em 1.25em;
}
.ak-split__year-num {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-2xl);
  font-weight: 700;
  color: var(--ak-white);
  line-height: 1;
}
.ak-split__year-label {
  font-size: var(--ak-fs-xs);
  letter-spacing: .13em;
  text-transform: uppercase;
  color: rgba(255,255,255,.72);
  margin-top: .2em;
}
.ak-split__body {
  padding: 5em 4em;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.ak-split__body--cream { background: var(--ak-cream); }
.ak-split__body--dark  { background: var(--ak-p900); }
.ak-split__body--ink   { background: var(--ak-ink); }
.ak-split__body--white { background: var(--ak-white); }

/* em inside heading takes gold on dark/ink backgrounds */
.ak-split__body--dark .ak-split__heading em,
.ak-split__body--ink  .ak-split__heading em { color: var(--ak-g200); }

/* ══════════════════════════════════════════════════════
   6. PRICING ROWS (ak-pricing-rows)
══════════════════════════════════════════════════════ */
.ak-pricing { margin: 1.875em 0; }
.ak-pricing__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .875em;
  padding: .875em 0;
  border-bottom: 1px solid var(--ak-stone);
}
.ak-pricing__row:first-child { border-top: 1px solid var(--ak-stone); }
.ak-pricing__row--dark { border-color: rgba(255,255,255,.08); }
.ak-pricing__row--dark:first-child { border-color: rgba(255,255,255,.08); }
.ak-pricing__name { font-size: var(--ak-fs-base); color: var(--ak-ink); font-weight: 400; }
.ak-pricing__name--dark { color: var(--ak-white); }
.ak-pricing__sub  { font-size: var(--ak-fs-sm); color: var(--ak-ts); margin-top: .1em; }
.ak-pricing__sub--dark { color: rgba(255,255,255,.5); }
.ak-pricing__value {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-xl);
  font-weight: 600;
  color: var(--ak-ink);
  white-space: nowrap;
}
.ak-pricing__value--dark { color: var(--ak-g200); }
.ak-pricing__unit { font-family: var(--ak-font-sans); font-size: var(--ak-fs-sm); color: var(--ak-ts); font-weight: 300; }

/* Mehrstufige Preise (z. B. Doppelzimmer-Vollbelegung + Einzelnutzung) */
.ak-pricing__price-col { display: flex; flex-direction: column; align-items: flex-end; gap: .25em; }
.ak-pricing__tier { display: flex; align-items: baseline; gap: .5em; line-height: 1.2; }
.ak-pricing__tier-lbl {
  font-family: var(--ak-font-sans);
  font-size: var(--ak-fs-2xs);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ak-ts);
  font-weight: 600;
  min-width: 3.5em;
  text-align: right;
}
.ak-pricing__tier-lbl--dark { color: rgba(255,255,255,.6); }
.ak-pricing__tier .ak-pricing__value { font-size: var(--ak-fs-lg); }

/* ══════════════════════════════════════════════════════
   7. FEATURE LIST (ak-feature-list)
══════════════════════════════════════════════════════ */
.ak-feat-wrap { padding: 4em 0; }
.ak-feat-wrap--cream { background: var(--ak-cream); }
.ak-feat-wrap--white { background: var(--ak-white); }
.ak-feat-wrap--dark  { background: var(--ak-p900); }
.ak-feat-wrap--ink   { background: var(--ak-ink); }

.ak-feat-head { margin-bottom: 2em; }
.ak-feat-heading {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-2xl);
  font-weight: 600;
  color: var(--ak-ink);
  margin-top: .35em;
  line-height: 1.15;
}
.ak-feat-heading em { font-style: italic; color: var(--ak-p500); }
.ak-feat-heading.ak-dark { color: var(--ak-white); }

.ak-feat-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  margin-top: 2.25em;
}
.ak-feat-item {
  background: var(--ak-white);
  padding: 1.75em 1.875em;
  display: flex;
  align-items: flex-start;
  gap: .875em;
  border: 1px solid var(--ak-stone);
  margin-top: -1px;
  margin-left: -1px;
}
.ak-feat-item--dark { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.1); }
.ak-feat-item--ink  { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.08); }
.ak-feat-item--cream { background: var(--ak-cream); }
.ak-feat-item__icon { color: var(--ak-g400); font-size: var(--ak-fs-md); margin-top: 3px; flex-shrink: 0; }
.ak-feat-item h4 { font-size: var(--ak-fs-base); font-weight: 500; color: var(--ak-ink); margin-bottom: .2em; }
.ak-feat-item h4.ak-dark { color: var(--ak-white); }
.ak-feat-item p  { font-size: var(--ak-fs-md); color: var(--ak-tm); }

/* ══════════════════════════════════════════════════════
   8. REVIEW SLIDER (ak-review-slider)
══════════════════════════════════════════════════════ */
.ak-reviews { position: relative; overflow: hidden; }
.ak-reviews::before,
.ak-reviews::after {
  content: '';
  position: absolute;
  border-radius: var(--ak-radius-full);
  border: 1px solid rgba(255,255,255,.04);
  pointer-events: none;
}
.ak-reviews::before { top: -120px; right: -120px; width: 480px; height: 480px; }
.ak-reviews::after  { bottom: -80px; left: -80px;   width: 360px; height: 360px; border-color: rgba(255,255,255,.03); }
.ak-rev-head { text-align: center; margin-bottom: 3.5em; position: relative; z-index: 2; }
.ak-rev-rating {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .625em;
  margin-top: 1em;
}
.ak-rev-score {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-3xl);
  font-weight: 700;
  color: var(--ak-g200);
  line-height: 1;
}
.ak-rev-stars { display: flex; gap: .2em; }
.ak-rev-stars i { color: var(--ak-g400); font-size: var(--ak-fs-base); }
.ak-rev-label { font-size: var(--ak-fs-sm); color: rgba(255,255,255,.42); margin-top: .25em; }
.ak-rev-track {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  gap: 1.25em;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  position: relative;
  z-index: 2;
}
.ak-rev-track::-webkit-scrollbar { display: none; }
.ak-rev-card {
  flex: 0 0 calc(33.333% - .833em);
  min-width: 280px;
  scroll-snap-align: start;
  background: rgba(255,255,255,.04);
  padding: 2.5em 2.25em;
  display: flex;
  flex-direction: column;
  gap: 1em;
  transition: background .3s;
}
.ak-rev-card:hover { background: rgba(255,255,255,.07); }
.ak-rev-quote {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-lg);
  font-style: italic;
  color: rgba(255,255,255,.88);
  line-height: 1.6;
  flex: 1;
}
.ak-rev-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5em;
  padding-top: 1em;
  border-top: 1px solid rgba(255,255,255,.08);
}
.ak-rev-author { font-size: var(--ak-fs-sm); color: rgba(255,255,255,.55); }
.ak-rev-source { font-size: var(--ak-fs-xs); color: rgba(255,255,255,.3); }
.ak-rev-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .75em;
  margin-top: 2em;
  position: relative;
  z-index: 2;
}
.ak-rev-btn {
  width: 44px;
  height: 44px;
  border: 1px solid rgba(255,255,255,.18);
  background: transparent;
  color: rgba(255,255,255,.6);
  border-radius: var(--ak-radius-full);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all .25s;
  flex-shrink: 0;
}
.ak-rev-btn:hover {
  border-color: var(--ak-g400);
  color: var(--ak-g200);
  background: rgba(201,148,58,.1);
}
.ak-rev-dots { display: flex; gap: .4em; align-items: center; }
.ak-rev-dot {
  width: 6px;
  height: 6px;
  border-radius: var(--ak-radius-full);
  background: rgba(255,255,255,.2);
  cursor: pointer;
  transition: all .25s;
  border: none;
}
.ak-rev-dot.is-active { background: var(--ak-g400); transform: scale(1.3); }

/* ══════════════════════════════════════════════════════
   9. BOOKING METHODS (ak-booking-methods)
══════════════════════════════════════════════════════ */
.ak-buch-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5px;
  background: rgba(255,255,255,.06);
}
.ak-buch-method {
  background: rgba(255,255,255,.03);
  padding: 2.75em 2.25em;
  display: flex;
  flex-direction: column;
  gap: .75em;
  transition: background .3s;
}
.ak-buch-method:hover { background: rgba(255,255,255,.07); }
.ak-buch-method--featured { background: rgba(255,255,255,.08); }
.ak-buch-method--featured:hover { background: rgba(255,255,255,.12); }
.ak-buch-icon {
  width: 52px;
  height: 52px;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: var(--ak-radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ak-g200);
  margin-bottom: .25em;
  transition: background .3s, border-color .3s;
}
.ak-buch-method:hover .ak-buch-icon {
  background: var(--ak-g400);
  border-color: var(--ak-g400);
  color: var(--ak-white);
}
.ak-buch-icon i { font-size: var(--ak-fs-lg); }
.ak-buch-title {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-lg);
  font-weight: 600;
  color: var(--ak-white);
}
.ak-buch-value {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-2xl);
  font-weight: 600;
  color: var(--ak-g200);
  text-decoration: none;
  line-height: 1;
  transition: color .2s;
  word-break: break-word;
}
.ak-buch-value:hover { text-decoration: underline; text-underline-offset: 3px; }
.ak-buch-sub { font-size: var(--ak-fs-md); color: rgba(255,255,255,.5); line-height: 1.55; flex: 1; }
.ak-buch-note { font-size: var(--ak-fs-md); color: rgba(255,255,255,.35); margin-top: .25em; }

/* ══════════════════════════════════════════════════════
   10. TIMELINE (ak-timeline)
══════════════════════════════════════════════════════ */

/* Background presets */
.ak-timeline-wrap--dark  { background: var(--ak-p900); }
.ak-timeline-wrap--ink   { background: var(--ak-ink); }
.ak-timeline-wrap--cream { background: var(--ak-cream); }
.ak-timeline-wrap--white { background: var(--ak-white); }

/* Header */
.ak-tl-head { margin-bottom: 3em; }
.ak-tl-heading { font-family: var(--ak-font-serif); font-size: var(--ak-fs-2xl); font-weight: 600; line-height: 1.11; color: var(--ak-ink); }
.ak-tl-heading em { font-style: italic; color: var(--ak-p500); }
.ak-tl-heading.ak-dark { color: var(--ak-white); }
.ak-tl-heading.ak-dark em { color: var(--ak-g200); }
.ak-tl-subtext { margin-top: .75em; max-width: 560px; }

/* Timeline list — dark bg defaults */
.ak-timeline {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 3em;
}
.ak-tl-item {
  display: grid;
  grid-template-columns: 120px 1fr;
  align-items: center;
  gap: 0;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.ak-tl-item:first-child { border-top: 1px solid rgba(255,255,255,.07); }
.ak-tl-year {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-xl);
  font-weight: 700;
  color: var(--ak-g200);
  padding: 1.5em 0;
  display: flex;
  align-items: center;
}
.ak-tl-text {
  padding: 1.5em 0 1.5em 1.75em;
  border-left: 1px solid rgba(255,255,255,.1);
  display: flex;
  flex-direction: column;
  gap: .25em;
}
.ak-tl-text h4 { font-size: var(--ak-fs-base); font-weight: 500; color: var(--ak-white); }
.ak-tl-text p  { font-size: var(--ak-fs-md); color: rgba(255,255,255,.62); line-height: 1.55; }

/* Light bg overrides (cream / white) */
.ak-timeline-wrap--cream .ak-tl-item,
.ak-timeline-wrap--white .ak-tl-item { border-bottom-color: var(--ak-stone); }
.ak-timeline-wrap--cream .ak-tl-item:first-child,
.ak-timeline-wrap--white .ak-tl-item:first-child { border-top-color: var(--ak-stone); }
.ak-timeline-wrap--cream .ak-tl-text,
.ak-timeline-wrap--white .ak-tl-text { border-left-color: var(--ak-stone); }
.ak-timeline-wrap--cream .ak-tl-text h4,
.ak-timeline-wrap--white .ak-tl-text h4 { color: var(--ak-ink); }
.ak-timeline-wrap--cream .ak-tl-text p,
.ak-timeline-wrap--white .ak-tl-text p { color: var(--ak-tm); }

/* ══════════════════════════════════════════════════════
   11. MENU CARDS (ak-menu-cards)
══════════════════════════════════════════════════════ */
.ak-menu-wrap { padding: 0; }
.ak-menu-wrap--dark  { background: var(--ak-p900); }
.ak-menu-wrap--ink   { background: var(--ak-ink); }
.ak-menu-wrap--cream { background: var(--ak-cream); }
.ak-menu-wrap--white { background: var(--ak-white); }

.ak-menu-head { margin-bottom: 2.5em; }
.ak-menu-heading {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-2xl);
  font-weight: 600;
  line-height: 1.15;
  margin-top: .3em;
  color: var(--ak-ink);
}
.ak-menu-heading em { font-style: italic; color: var(--ak-p500); }
.ak-menu-heading.ak-dark { color: var(--ak-white); }
.ak-menu-heading.ak-dark em { color: var(--ak-g200); }

.ak-menu-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: rgba(255,255,255,.07);
  margin-top: 2.5em;
}
/* Light bg grid separator */
.ak-menu-wrap--cream .ak-menu-grid,
.ak-menu-wrap--white .ak-menu-grid { background: var(--ak-stone); }

.ak-menu-card {
  padding: 2.5em 2em;
  display: flex;
  flex-direction: column;
  gap: .75em;
  transition: background .25s;
}
/* Dark card */
.ak-menu-card--dark,
.ak-menu-card--ink {
  background: rgba(255,255,255,.03);
}
.ak-menu-card--dark:hover,
.ak-menu-card--ink:hover { background: rgba(255,255,255,.07); }
/* Light card */
.ak-menu-card--cream { background: var(--ak-cream); }
.ak-menu-card--cream:hover { background: var(--ak-cream-200); }
.ak-menu-card--white { background: var(--ak-white); }
.ak-menu-card--white:hover { background: var(--ak-cream); }

.ak-menu-card__icon { font-size: var(--ak-fs-2xl); color: var(--ak-g200); line-height: 1; }
.ak-menu-wrap--cream .ak-menu-card__icon,
.ak-menu-wrap--white .ak-menu-card__icon { color: var(--ak-p500); }

.ak-menu-card__title {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-lg);
  font-weight: 600;
  line-height: 1.25;
  margin: 0;
}
.ak-menu-card__title.ak-dark { color: var(--ak-white); }
.ak-menu-card__title a { text-decoration: none; color: inherit; }
.ak-menu-card__title a:hover { color: var(--ak-g200); }

.ak-menu-card__desc { font-size: var(--ak-fs-sm); line-height: 1.6; margin: 0; color: var(--ak-tm); }
.ak-menu-card__desc--dark { color: rgba(255,255,255,.58); }

/* ══════════════════════════════════════════════════════
   12. PHOTO GALLERY (ak-photo-gallery)
══════════════════════════════════════════════════════ */

/* Base grid — used by both the old .ak-photo-gallery class and the widget's .ak-gallery-grid */
.ak-photo-gallery,
.ak-gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* default; overridden by Elementor inline style */
  gap: 6px;
  margin-top: 2.25em;
}
.ak-photo-gallery--col4 { grid-template-columns: repeat(4, 1fr); }

.ak-gallery-item {
  position: relative;
  overflow: hidden;
  height: 200px; /* default; overridden by Elementor inline style */
  cursor: default;
}
.ak-gallery-item img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s, filter .5s;
}
.ak-gallery-item__link { display: block; width: 100%; height: 100%; }
.ak-gallery-item:hover img { transform: scale(1.06); filter: brightness(.8); }

/* Wide/span items */
.ak-gallery-item--span2,
.ak-gallery-item--wide { grid-column: span 2; height: 280px; }

/* Overlay */
.ak-gallery-item__overlay {
  position: absolute;
  inset: 0;
  background: rgba(30,8,48,.55);
  opacity: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .5em;
  transition: opacity .3s;
  color: var(--ak-white);
}
.ak-gallery-item:hover .ak-gallery-item__overlay { opacity: 1; }
.ak-gallery-item__caption { font-size: var(--ak-fs-sm); letter-spacing: .06em; text-align: center; padding: 0 1em; }
.ak-gallery-item__overlay i { font-size: var(--ak-fs-xl); }

/* ══════════════════════════════════════════════════════
   13. DESTINATION CARDS (ak-destination-cards)
══════════════════════════════════════════════════════ */
.ak-dest-wrap { }
.ak-dest-wrap--cream { background: var(--ak-cream); }
.ak-dest-wrap--white { background: var(--ak-white); }
.ak-dest-wrap--dark  { background: var(--ak-p900); }
.ak-dest-wrap--ink   { background: var(--ak-ink); }
.ak-dest-head { margin-bottom: 2.5em; }
.ak-dest-heading { font-family: var(--ak-font-serif); font-size: var(--ak-fs-2xl); font-weight: 600; line-height: 1.15; color: var(--ak-ink); margin: 0; }
.ak-dest-heading em { font-style: italic; color: var(--ak-p500); }
.ak-dest-heading.ak-dark { color: var(--ak-white); }
.ak-dest-heading.ak-dark em { color: var(--ak-g200); }
.ak-dest-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1em;
}
.ak-dest-card {
  position: relative;
  overflow: hidden;
  height: 340px;
  display: block;
  text-decoration: none;
}
.ak-dest-card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s;
}
.ak-dest-card:hover img { transform: scale(1.06); }
.ak-dest-card__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(6,2,14,.98) 0%, rgba(6,2,14,.55) 50%, rgba(6,2,14,.12) 100%);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 1.375em 1.5em 1.75em;
  transition: background .3s;
}
.ak-dest-card:hover .ak-dest-card__overlay {
  background: linear-gradient(to top, rgba(6,2,14,.99) 0%, rgba(6,2,14,.72) 55%, rgba(6,2,14,.25) 100%);
}
.ak-dest-badge {
  display: inline-block;
  background: rgba(6,2,14,.72);
  border: 1px solid rgba(255,255,255,.18);
  color: rgba(255,255,255,.9);
  font-size: var(--ak-fs-xs);
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: .3em .75em;
  align-self: flex-start;
}
.ak-dest-card__bottom { display: flex; flex-direction: column; gap: .375em; }
.ak-dest-card__dist {
  font-size: var(--ak-fs-xs);
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--ak-g200);
  display: flex;
  align-items: center;
  gap: .3em;
}
.ak-dest-card h3 {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-lg);
  font-weight: 600;
  color: var(--ak-white);
  line-height: 1.2;
  margin: 0;
}
.ak-dest-card p { font-size: var(--ak-fs-md); color: rgba(255,255,255,.65); line-height: 1.45; margin: 0; }

/* ══════════════════════════════════════════════════════
   14. CYCLIST SECTION (ak-cyclist-section)
══════════════════════════════════════════════════════ */
.ak-cyclist-section {
  position: relative;
  overflow: hidden;
  background: var(--ak-ink-deep);
}
.ak-cyclist-section__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
}
.ak-cyclist-section__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(6,2,14,.97) 0%, rgba(6,2,14,.82) 30%, rgba(6,2,14,.62) 60%, rgba(6,2,14,.48) 100%);
  pointer-events: none;
  z-index: 1;
}
.ak-cyclist-hero {
  position: relative;
  z-index: 2;
  height: 460px;
  display: flex;
  align-items: center;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.ak-cyclist-hero__text {
  padding: 3.5em 4.25em;
  max-width: 620px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.ak-cyclist-features {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  position: relative;
  z-index: 2;
  backdrop-filter: blur(8px);
}
.ak-cyclist-features::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(6,2,14,.68);
  z-index: 0;
  pointer-events: none;
}
.ak-cyclist-feat {
  background: transparent;
  padding: 2.75em 3.75em;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: .875em;
  position: relative;
  z-index: 1;
  transition: background .3s;
  border-right: 1px solid rgba(255,255,255,.12);
}
.ak-cyclist-feat:last-child { border-right: none; }
.ak-cyclist-feat:hover { background: rgba(255,255,255,.06); }
.ak-cyclist-feat::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--ak-g400);
  transform: scaleX(0);
  transition: transform .35s;
}
.ak-cyclist-feat:hover::after { transform: scaleX(1); }
.ak-cyclist-feat i { font-size: var(--ak-fs-xl); color: var(--ak-g200); }
.ak-cyclist-feat h4 {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-lg);
  font-weight: 600;
  color: var(--ak-white);
  line-height: 1.2;
}
.ak-cyclist-feat p { font-size: var(--ak-fs-md); color: rgba(255,255,255,.7); line-height: 1.5; }
.ak-cyclist__heading {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-2xl);
  font-weight: 600;
  color: var(--ak-white);
  line-height: 1.15;
  margin: .5em 0 .75em;
}
.ak-cyclist__heading em { font-style: italic; color: var(--ak-g200); }
.ak-cyclist__logo {
  height: 80px;
  width: auto;
  margin-top: 1.75em;
  display: block;
}

/* ══════════════════════════════════════════════════════
   15. ZIMMER CARDS (ak-zimmer-cards)
══════════════════════════════════════════════════════ */
.ak-zimmer-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--ak-stone);
  border: 1px solid var(--ak-stone);
  margin-top: 3em;
}
.ak-zimmer-card {
  background: var(--ak-white);
  padding: 2.5em 2.25em;
  display: flex;
  flex-direction: column;
  gap: 1em;
}
.ak-zimmer-card__icon {
  width: 52px;
  height: 52px;
  background: var(--ak-p100);
  border-radius: var(--ak-radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ak-p500);
}
.ak-zimmer-card__icon i { font-size: var(--ak-fs-lg); }
.ak-zimmer-card h3 {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-xl);
  font-weight: 600;
  color: var(--ak-ink);
}
.ak-zimmer-card p { font-size: var(--ak-fs-md); color: var(--ak-tm); line-height: 1.55; }
.ak-zimmer-card__price {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-2xl);
  font-weight: 700;
  color: var(--ak-p500);
}
.ak-zimmer-card__price span {
  font-family: var(--ak-font-sans);
  font-size: var(--ak-fs-sm);
  color: var(--ak-ts);
  font-weight: 300;
}
/* Doppelpreis-Anzeige (z. B. Doppelzimmer mit Voll- und Einzelnutzung) */
.ak-zimmer-card__prices {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: var(--ak-stone);
  border: 1px solid var(--ak-stone);
  margin-top: .25em;
}
.ak-zimmer-card__price-tier {
  background: var(--ak-white);
  padding: .75em 1em;
  display: flex;
  flex-direction: column;
  gap: .15em;
}
.ak-zimmer-card__price-label {
  font-size: var(--ak-fs-xs);
  font-weight: 500;
  letter-spacing: var(--ak-ls-caps);
  text-transform: uppercase;
  color: var(--ak-tm);
}
.ak-zimmer-card__price-tier .ak-zimmer-card__price {
  font-size: var(--ak-fs-xl);
}
.ak-zimmer-card__price-tier .ak-zimmer-card__price span {
  font-size: var(--ak-fs-xs);
}
@media (max-width: 480px) {
  .ak-zimmer-card__prices { grid-template-columns: 1fr; }
}
.ak-zimmer-card__cta { margin-top: auto; }

/* ══════════════════════════════════════════════════════
   16. OPENING HOURS (ak-opening-hours)
══════════════════════════════════════════════════════ */
.ak-oh-wrap { padding: 4em 0; }
.ak-oh-wrap--cream { background: var(--ak-cream); }
.ak-oh-wrap--white { background: var(--ak-white); }
.ak-oh-wrap--dark  { background: var(--ak-p900); }
.ak-oh-wrap--ink   { background: var(--ak-ink); }

.ak-oh-head { margin-bottom: 2.25em; text-align: center; }
.ak-oh-heading {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-2xl);
  font-weight: 600;
  color: var(--ak-ink);
  margin-top: .35em;
  line-height: 1.15;
}
.ak-oh-heading em { font-style: italic; color: var(--ak-p500); }
.ak-oh-heading.ak-dark { color: var(--ak-white); }
.ak-oh-heading.ak-dark em { color: var(--ak-g200); }
.ak-oh-lead { margin-top: .75em; max-width: 560px; margin-left: auto; margin-right: auto; }

.ak-oh-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--ak-stone);
  border: 1px solid var(--ak-stone);
  margin-top: 2.25em;
}
.ak-oh-card {
  background: var(--ak-white);
  padding: 1.75em 1.625em;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: .4em;
}
.ak-oh-card--dark,
.ak-oh-card--ink { background: rgba(255,255,255,.06); }
.ak-oh-card--cream { background: var(--ak-cream); }

.ak-oh-card h4 {
  font-size: var(--ak-fs-sm);
  font-weight: 600;
  color: var(--ak-ink);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .45em;
  font-family: var(--ak-font-sans);
  margin-bottom: .25em;
}
.ak-oh-card--dark h4,
.ak-oh-card--ink h4 { color: var(--ak-white); }
.ak-oh-card h4 i { color: var(--ak-p500); font-size: var(--ak-fs-md); flex-shrink: 0; }
.ak-oh-card--dark h4 i,
.ak-oh-card--ink h4 i { color: var(--ak-g200); }
.ak-oh-card p { font-size: var(--ak-fs-md); color: var(--ak-tm); line-height: 1.5; }
.ak-oh-card--dark p,
.ak-oh-card--ink p { color: rgba(255,255,255,.65); }

/* Opening Hours Table (Café) */
.ak-htbl-wrap { margin-top: 1.5em; }
.ak-htbl-label {
  font-size: var(--ak-fs-xs);
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--ak-g200);
  margin-bottom: .5em;
  margin-top: 1.375em;
}
.ak-htbl-label:first-of-type { margin-top: 0; }
.ak-htbl {
  width: 100%;
  border-collapse: collapse;
}
.ak-htbl tr { border-bottom: 1px solid rgba(255,255,255,.08); }
.ak-htbl td { padding: .625em 0; font-size: var(--ak-fs-sm); }
.ak-htbl td:first-child { color: rgba(255,255,255,.72); }
.ak-htbl td:last-child  { text-align: right; color: var(--ak-white); }

/* Opening hours inside split widget (ak-split-cafe) */
.ak-oh-table--split {
  margin-top: 1.5em;
  display: flex;
  flex-direction: column;
}
.ak-oh-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0 1.5em;
  padding: .65em 0;
  border-bottom: 1px solid var(--ak-stone);
  align-items: center;
}
.ak-oh-row:last-child { border-bottom: none; }
.ak-oh-row--dark { border-bottom-color: rgba(255,255,255,.08); }
.ak-oh-row--highlight .ak-oh-day,
.ak-oh-row--highlight .ak-oh-time { color: var(--ak-g200); font-weight: 600; }

.ak-oh-day { font-size: var(--ak-fs-sm); color: var(--ak-tm); }
.ak-oh-day--dark { color: rgba(255,255,255,.65); }
.ak-oh-time { font-size: var(--ak-fs-sm); font-weight: 500; color: var(--ak-ink); text-align: right; }
.ak-oh-time--dark { color: var(--ak-white); }
.ak-oh-time em { font-style: normal; font-size: var(--ak-fs-sm); color: var(--ak-ts); margin-left: .35em; }
.ak-oh-row--dark .ak-oh-time em { color: rgba(255,255,255,.4); }

.ak-oh-note { font-size: var(--ak-fs-md); color: var(--ak-ts); margin-top: .875em; font-style: italic; }
.ak-oh-note--dark { color: rgba(255,255,255,.4); }

/* ══════════════════════════════════════════════════════
   17. EVENTS LIST (ak-events-list)
══════════════════════════════════════════════════════ */
.ak-event-list {
  display: flex;
  flex-direction: column;
  gap: 1px;
  background: var(--ak-stone);
  border: 1px solid var(--ak-stone);
  margin-top: 3em;
}
.ak-event-row {
  background: var(--ak-white);
  display: grid;
  grid-template-columns: 120px 1fr auto;
  gap: 0;
  align-items: stretch;
  transition: background .2s;
}
.ak-event-row:hover { background: var(--ak-cream); }
.ak-event-date {
  background: var(--ak-p900);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1.25em 1em;
  color: var(--ak-white);
  min-width: 100px;
}
.ak-event-date__day {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-2xl);
  font-weight: 700;
  line-height: 1;
  color: var(--ak-g200);
}
.ak-event-date__month {
  font-size: var(--ak-fs-xs);
  letter-spacing: .13em;
  text-transform: uppercase;
  color: rgba(255,255,255,.6);
  margin-top: .25em;
}
.ak-event-date__time { font-size: var(--ak-fs-xs); color: rgba(255,255,255,.5); margin-top: .375em; }
.ak-event-info {
  padding: 1.375em 1.75em;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: .25em;
}
.ak-event-type {
  display: inline-flex;
  align-items: center;
  gap: .3em;
  font-size: var(--ak-fs-xs);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ak-p500);
  font-weight: 500;
  margin-bottom: .125em;
}
.ak-event-info h4 { font-size: var(--ak-fs-base); font-weight: 500; color: var(--ak-ink); font-family: var(--ak-font-sans); }
.ak-event-info p  { font-size: var(--ak-fs-md); color: var(--ak-tm); line-height: 1.45; }
.ak-event-action {
  display: flex;
  align-items: center;
  padding: 0 1.75em;
  gap: .625em;
  flex-direction: column;
  justify-content: center;
}
.ak-event-price { font-size: var(--ak-fs-sm); color: var(--ak-ts); }

/* ══════════════════════════════════════════════════════
   18. NEWS GRID (ak-news-grid)
══════════════════════════════════════════════════════ */
.ak-news-wrap--cream { background: var(--ak-cream); }
.ak-news-wrap--white { background: var(--ak-white); }
.ak-news-wrap--dark  { background: var(--ak-p900); }
.ak-news-wrap--ink   { background: var(--ak-ink); }
.ak-news-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5em;
  margin-bottom: 2.5em;
  flex-wrap: wrap;
  text-align: left;
}
.ak-news-head__text { display: flex; flex-direction: column; align-items: flex-start; gap: .5em; flex: 1 1 auto; min-width: 0; }
.ak-news-head__text .ak-eyebrow { justify-content: flex-start; }
.ak-news-heading { font-family: var(--ak-font-serif); font-size: var(--ak-fs-2xl); font-weight: 600; line-height: 1.15; color: var(--ak-ink); margin: 0; text-align: left; }
.ak-news-heading em { font-style: italic; color: var(--ak-p500); }
.ak-news-heading.ak-dark { color: var(--ak-white); }
.ak-news-heading.ak-dark em { color: var(--ak-g200); }
.ak-news-head__all {
  font-size: var(--ak-fs-sm);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ak-p500);
  display: inline-flex;
  align-items: center;
  gap: .375em;
  white-space: nowrap;
  flex-shrink: 0;
}
.ak-news-head__all:hover { color: var(--ak-p700); }
.ak-news-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5em;
}
.ak-news-card {
  background: var(--ak-white);
  border: 1px solid var(--ak-stone);
  overflow: hidden;
  transition: transform .2s, box-shadow .2s;
  display: flex;
  flex-direction: column;
}
.ak-news-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--ak-shadow-md);
}
.ak-news-card__img-link { display: block; }
.ak-news-card__img {
  height: 220px;
  overflow: hidden;
  position: relative;
  background: var(--ak-stone);
}
.ak-news-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s;
  display: block;
}
.ak-news-card:hover .ak-news-card__img img { transform: scale(1.05); }
.ak-news-card__cat {
  position: absolute;
  top: .875em;
  left: .875em;
  background: var(--ak-p900);
  color: var(--ak-g200);
  font-size: var(--ak-fs-xs);
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: .3em .75em;
}
.ak-news-card__body {
  padding: 1.625em 1.5em 1.75em;
  display: flex;
  flex-direction: column;
  gap: .5em;
  flex: 1;
}
.ak-news-card__date {
  font-size: var(--ak-fs-xs);
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--ak-p500);
  display: block;
}
.ak-news-card__title {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-lg);
  font-weight: 600;
  color: var(--ak-ink);
  line-height: 1.25;
}
.ak-news-card__title a { color: inherit; }
.ak-news-card__title a:hover { color: var(--ak-p500); }
.ak-news-card__excerpt { font-size: var(--ak-fs-sm); color: var(--ak-tm); line-height: 1.55; flex: 1; }
.ak-news-card__read-more {
  font-size: var(--ak-fs-sm);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ak-p500);
  display: inline-flex;
  align-items: center;
  gap: .375em;
  margin-top: auto;
}
.ak-news-card__read-more:hover { color: var(--ak-p700); }

/* ══════════════════════════════════════════════════════
   19. CONTACT INFO (ak-contact-info)
══════════════════════════════════════════════════════ */
.ak-cinfo-box { display: flex; flex-direction: column; gap: 1.25em; }
/* Kontakt-Widget: Icon-Boxen quadratisch (gemäß scharfkantigem Design-System) */
.ak-contact-info .ak-ki-icon { border-radius: var(--ak-radius-none); }
.ak-cinfo-title { font-size: var(--ak-fs-2xl); font-weight: 600; font-family: var(--ak-font-serif); color: var(--ak-ink); line-height: 1.2; }
.ak-cinfo-title em { font-style: italic; color: var(--ak-p500); }
.ak-cinfo-intro { font-size: var(--ak-fs-md); color: var(--ak-tm); line-height: 1.65; margin-bottom: .5em; }
.ak-contact-info { display: flex; flex-direction: column; gap: 1.75em; margin-top: .5em; }
.ak-ki-block { display: flex; align-items: flex-start; gap: 1em; }
.ak-ki-icon {
  width: 48px;
  height: 48px;
  background: var(--ak-p100);
  border-radius: var(--ak-radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ak-p500);
  flex-shrink: 0;
}
.ak-ki-icon i { font-size: var(--ak-fs-md); }
.ak-ki-text { display: flex; flex-direction: column; gap: .15em; justify-content: center; }
.ak-ki-block h4 { font-size: var(--ak-fs-sm); letter-spacing: .1em; text-transform: uppercase; font-weight: 600; color: var(--ak-ts); margin-bottom: .1em; font-family: var(--ak-font-sans); }
.ak-ki-block p  { font-size: var(--ak-fs-md); color: var(--ak-ink); line-height: 1.55; margin: 0; }
.ak-ki-block a  { color: var(--ak-p500); font-weight: 400; }
.ak-ki-block a:hover { text-decoration: underline; }

/* ══════════════════════════════════════════════════════
   20. CONTACT FORM (ak-contact-form)
══════════════════════════════════════════════════════ */
.ak-cform-wrap { display: flex; flex-direction: column; gap: 1em; }
.ak-cform-title { font-size: var(--ak-fs-2xl); font-weight: 600; font-family: var(--ak-font-serif); color: var(--ak-ink); line-height: 1.2; }
.ak-cform-title em { font-style: italic; color: var(--ak-p500); }
.ak-cform-intro { font-size: var(--ak-fs-sm); color: var(--ak-tm); line-height: 1.65; margin-bottom: .25em; }
.ak-cform-notice { display: flex; align-items: center; gap: .5em; padding: .875em 1.125em; border-radius: var(--ak-radius-none); font-size: var(--ak-fs-sm); margin: 0 0 1.75em; }
.ak-cform-notice--success { background: var(--ak-success-bg); color: var(--ak-success); }
.ak-cform-notice--error   { background: var(--ak-error-bg); color: var(--ak-error); }
.ak-cform__footer { display: flex; flex-direction: column; align-items: flex-start; gap: .75em; }
.ak-cform__footer .ak-btn { width: auto; align-self: flex-start; }
.ak-contact-form { display: flex; flex-direction: column; gap: 1.125em; }
.ak-form-group { display: flex; flex-direction: column; gap: .3em; }
.ak-form-group label {
  font-size: var(--ak-fs-xs);
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--ak-ts);
  font-weight: 500;
}
.ak-form-group input,
.ak-form-group textarea,
.ak-form-group select {
  font-family: var(--ak-font-sans);
  font-size: var(--ak-fs-sm);
  padding: .875em 1.125em;
  border: 1px solid var(--ak-stone);
  background: var(--ak-white);
  color: var(--ak-ink);
  border-radius: var(--ak-radius-none);
  outline: none;
  transition: border-color .2s;
  font-weight: 300;
  width: 100%;
}
.ak-form-group input:focus,
.ak-form-group textarea:focus,
.ak-form-group select:focus { border-color: var(--ak-p500); }
.ak-form-group textarea { resize: vertical; min-height: 120px; }

/* Validierungsfehler-Markierung (serverseitig gesetzt) */
.ak-form-group--error label { color: var(--ak-error); }
.ak-form-group--error input,
.ak-form-group--error textarea,
.ak-form-group--error select,
.ak-booking-form .ak-form-group--error input,
.ak-booking-form .ak-form-group--error textarea {
  border-color: var(--ak-error);
  background: var(--ak-error-bg);
  box-shadow: 0 0 0 3px rgba(220,38,38,.12);
}
.ak-booking-payment.ak-form-group--error .ak-booking-payment__label { color: var(--ak-error); }
.ak-booking-payment.ak-form-group--error .ak-booking-payment__box { border-color: var(--ak-error); }
.ak-consent--error { outline: 2px solid var(--ak-error); outline-offset: 4px; border-radius: var(--ak-radius-sm); }

.ak-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.125em; }
.ak-form-note { font-size: var(--ak-fs-md); color: var(--ak-ts); line-height: 1.5; }

/* ══════════════════════════════════════════════════════
   21. PARTNER GRID (ak-partner-grid)
══════════════════════════════════════════════════════ */
.ak-partner-wrap { padding: 4em 0; }
.ak-partner-wrap--cream { background: var(--ak-cream); }
.ak-partner-wrap--white { background: var(--ak-white); }
.ak-partner-wrap--dark  { background: var(--ak-p900); }
.ak-partner-wrap--ink   { background: var(--ak-ink); }

/* ── New Partner Card Grid (.ak-pg-*) ─────────────────────────────────────── */
.ak-pg-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--ak-stone);
  border: 1px solid var(--ak-stone);
  margin-top: 2.5em;
}
.ak-pg-card {
  background: var(--ak-white);
  padding: 2em 1.75em;
  display: flex;
  flex-direction: column;
  gap: .5em;
}
.ak-pg-card--cream { background: var(--ak-cream); }
.ak-pg-card--dark  { background: rgba(255,255,255,.04); }
.ak-pg-card--ink   { background: rgba(255,255,255,.04); }
.ak-pg-card--cta   { justify-content: center; align-items: flex-start; }
.ak-pg-card__icon {
  font-size: var(--ak-fs-xl);
  color: var(--ak-p500);
  margin-bottom: .25em;
}
.ak-pg-card--dark .ak-pg-card__icon,
.ak-pg-card--ink  .ak-pg-card__icon { color: var(--ak-g200); }
.ak-pg-card__name {
  font-size: var(--ak-fs-sm);
  font-weight: 700;
  color: var(--ak-ink);
  line-height: 1.3;
}
.ak-pg-card__name--dark { color: var(--ak-white); }
.ak-pg-card__address {
  font-size: var(--ak-fs-sm);
  color: var(--ak-ts);
  line-height: 1.4;
}
.ak-pg-card__link {
  font-size: var(--ak-fs-sm);
  color: var(--ak-p500);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: .3em;
  margin-top: .25em;
  font-weight: 500;
  transition: color .2s;
}
.ak-pg-card__link:hover { color: var(--ak-p700); }
.ak-pg-cta-btn { margin-top: .5em; align-self: flex-start; }

.ak-partner-head { margin-bottom: 2.5em; }
.ak-partner-title {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-2xl);
  font-weight: 600;
  line-height: 1.15;
  margin-top: .3em;
  color: var(--ak-ink);
}
.ak-partner-title em { font-style: italic; color: var(--ak-p500); }
.ak-partner-title.ak-dark { color: var(--ak-white); }
.ak-partner-title.ak-dark em { color: var(--ak-g200); }
.ak-partner-desc {
  margin-top: .85em;
  max-width: 640px;
  font-size: var(--ak-fs-base);
  line-height: 1.65;
}

.ak-partner-logos {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--ak-stone);
  border: 1px solid var(--ak-stone);
}
.ak-partner-wrap--dark .ak-partner-logos,
.ak-partner-wrap--ink  .ak-partner-logos {
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.08);
}
.ak-partner-logos--grayscale img { filter: grayscale(100%); opacity: .65; transition: filter .25s, opacity .25s; }
.ak-partner-logos--grayscale .ak-partner-item:hover img { filter: none; opacity: 1; }

.ak-partner-item {
  background: var(--ak-white);
  padding: 2em 1.75em;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s;
}
.ak-partner-item:hover { background: var(--ak-cream); }
.ak-partner-item img { max-width: 100%; object-fit: contain; }
.ak-partner-item--dark,
.ak-partner-item--ink {
  background: rgba(255,255,255,.06);
}
.ak-partner-item--dark:hover,
.ak-partner-item--ink:hover { background: rgba(255,255,255,.12); }
.ak-partner-name {
  font-size: var(--ak-fs-sm);
  font-weight: 500;
  color: var(--ak-tm);
  text-align: center;
}
.ak-partner-name--dark { color: rgba(255,255,255,.6); }

/* ══════════════════════════════════════════════════════
   22. SAAL TABLE (ak-saal-table)
══════════════════════════════════════════════════════ */
.ak-saal-wrap { padding: 4em 0; }
.ak-saal-wrap--cream { background: var(--ak-cream); }
.ak-saal-wrap--white { background: var(--ak-white); }
.ak-saal-wrap--dark  { background: var(--ak-p900); }
.ak-saal-wrap--ink   { background: var(--ak-ink); }

.ak-saal-head { margin-bottom: 2em; }
.ak-saal-title {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-2xl);
  font-weight: 600;
  color: var(--ak-ink);
  margin-top: .35em;
  line-height: 1.15;
}
.ak-saal-title em { font-style: italic; color: var(--ak-p500); }
.ak-saal-title.ak-dark { color: var(--ak-white); }
.ak-saal-title.ak-dark em { color: var(--ak-g200); }
.ak-saal-lead {
  font-size: var(--ak-fs-md);
  color: var(--ak-tm);
  margin-top: .75em;
  max-width: 600px;
  line-height: var(--ak-lh-relaxed);
}

.ak-saal-table-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.ak-saal-note {
  font-size: var(--ak-fs-sm);
  color: var(--ak-ts);
  margin-top: 1em;
  line-height: 1.55;
  font-style: italic;
}
.ak-saal-note--dark { color: rgba(255,255,255,.4); }

/* Clean table — no outer border, thin row dividers, small-caps headers */
.ak-saal-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 1em;
  font-size: var(--ak-fs-sm);
}
.ak-saal-table th {
  text-align: left;
  font-size: var(--ak-fs-xs);
  letter-spacing: .13em;
  text-transform: uppercase;
  font-variant: small-caps;
  color: var(--ak-ts);
  font-weight: 500;
  font-family: var(--ak-font-sans);
  padding: .75em 1em .75em 0;
  border-bottom: 1px solid var(--ak-stone);
  white-space: nowrap;
}
.ak-saal-table th:first-child { padding-left: 0; }
.ak-saal-table td {
  padding: .875em 1em .875em 0;
  border-bottom: 1px solid var(--ak-stone);
  color: var(--ak-tm);
  vertical-align: middle;
}
.ak-saal-table td:first-child { padding-left: 0; }
.ak-saal-room { font-weight: 600; color: var(--ak-ink); }
.ak-saal-table tr:last-child td { border-bottom: none; }

/* Dark variant */
.ak-saal-table--dark th {
  color: rgba(255,255,255,.45);
  border-bottom-color: rgba(255,255,255,.1);
}
.ak-saal-table--dark td {
  color: rgba(255,255,255,.7);
  border-bottom-color: rgba(255,255,255,.08);
}
.ak-saal-table--dark .ak-saal-room { color: var(--ak-white); }

/* ══════════════════════════════════════════════════════
   23. INFO BANNER (ak-info-banner)
══════════════════════════════════════════════════════ */
.ak-info-banner {
  background: var(--ak-p100);
  border-left: 3px solid var(--ak-p500);
  display: flex;
  align-items: flex-start;
  gap: .875em;
  width: 100%;
  box-sizing: border-box;
}
.ak-info-banner i { color: var(--ak-p500); font-size: var(--ak-fs-md); margin-top: 2px; flex-shrink: 0; }
.ak-info-banner p { font-size: var(--ak-fs-md); color: var(--ak-ink); line-height: 1.55; }
.ak-info-banner strong { font-weight: 500; }

/* ══════════════════════════════════════════════════════
   24. CONTACT COMBINED (ak-contact-combined)
══════════════════════════════════════════════════════ */
.ak-cc-wrap {
  display: grid;
  grid-template-columns: 1fr 1.25fr;
  width: 100%;
  max-width: none;
}
.ak-cc-wrap--cream { background: var(--ak-cream); }
.ak-cc-wrap--white { background: var(--ak-white); }
.ak-cc-wrap--dark  { background: var(--ak-p900); }
.ak-cc-left {
  padding: 4em 3.5em;
  display: flex;
  flex-direction: column;
  gap: 1.25em;
}
.ak-cc-left--cream { background: var(--ak-cream); }
.ak-cc-left--white { background: var(--ak-white); }
.ak-cc-left--dark  { background: var(--ak-p900); }
.ak-cc-right {
  padding: 4em 3.5em;
  background: var(--ak-white);
  display: flex;
  flex-direction: column;
  gap: 1em;
  scroll-margin-top: 120px;
}
.ak-cc-heading {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-2xl);
  font-weight: 600;
  color: var(--ak-ink);
  line-height: 1.15;
  margin: 0;
}
.ak-cc-heading.ak-dark em { color: var(--ak-g200); }
.ak-cc-heading em { font-style: italic; color: var(--ak-p500); }
.ak-cc-heading.ak-dark { color: var(--ak-white); }
.ak-cc-intro { font-size: var(--ak-fs-sm); color: var(--ak-tm); line-height: 1.65; }

/* ══════════════════════════════════════════════════════
   25. MAP EMBED (ak-map-embed)
══════════════════════════════════════════════════════ */
.ak-map-wrap {
  width: 100%;
  border: 1px solid var(--ak-stone);
  margin-top: 3em;
  overflow: hidden;
  position: relative;
}
.ak-map-wrap iframe {
  width: 100%;
  height: 100%;
  min-height: 450px;
  border: 0;
  display: block;
}

/* ══════════════════════════════════════════════════════
   25. PRICE BADGE
══════════════════════════════════════════════════════ */
.ak-price-badge {
  display: inline-flex;
  align-items: center;
  gap: .375em;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.12);
  padding: .375em .875em;
  font-size: var(--ak-fs-sm);
  color: var(--ak-g200);
  border-radius: var(--ak-radius-none);
  margin-top: .75em;
}

/* ══════════════════════════════════════════════════════
   26. GUTSCHEIN / CTA CENTERED
══════════════════════════════════════════════════════ */
.ak-cta-center {
  text-align: center;
  max-width: 600px;
  margin: 0 auto;
}
.ak-cta-center .ak-lead { text-align: center; }

/* ══════════════════════════════════════════════════════
   RESPONSIVE — Widgets
══════════════════════════════════════════════════════ */
@media (max-width: 1100px) {

  /* Hero */
  .ak-hero__inner { padding: 0 1.375em 2.75em; }
  .ak-booking-strip { grid-template-columns: 1fr 1fr; }
  .ak-booking-strip__col:nth-child(3) { grid-column: 1 / 3; }
  .ak-booking-strip__btn { grid-column: 1 / 3; justify-content: center; padding: .875em !important; }

  /* Stats */
  .ak-stats-bar { grid-template-columns: 1fr 1fr; }

  /* Grids → 1 column */
  .ak-target-grid    { grid-template-columns: 1fr 1fr; }
  .ak-split          { grid-template-columns: 1fr; }
  .ak-split__img     { height: 280px; }
  .ak-split__body    { padding: 3.25em 1.75em; }
  .ak-buch-grid      { grid-template-columns: 1fr; }
  .ak-menu-grid      { grid-template-columns: 1fr; }
  .ak-dest-grid      { grid-template-columns: 1fr 1fr; }
  .ak-zimmer-grid    { grid-template-columns: 1fr; }
  .ak-oh-grid        { grid-template-columns: 1fr; }
  .ak-news-grid      { grid-template-columns: 1fr 1fr; }
  .ak-cc-wrap        { grid-template-columns: 1fr; }
  .ak-cc-left, .ak-cc-right { padding: 3em 2em; }
  .ak-partner-logos  { grid-template-columns: 1fr 1fr; }
  .ak-pg-grid        { grid-template-columns: 1fr 1fr; }
  .ak-feat-grid      { grid-template-columns: 1fr; }
  .ak-photo-gallery,
  .ak-gallery-grid,
  .ak-photo-gallery--col4 { grid-template-columns: 1fr 1fr; }
  .ak-gallery-item--span2,
  .ak-gallery-item--wide { grid-column: auto; height: 200px; }

  /* Events */
  .ak-event-row   { grid-template-columns: 90px 1fr; }
  .ak-event-action { display: none; }

  /* Cyclist */
  .ak-cyclist-hero    { height: auto; padding: 3em 0; }
  .ak-cyclist-hero__text { padding: 2.75em 1.375em; }
  .ak-cyclist-features { grid-template-columns: 1fr; }
  .ak-cyclist-feat    { padding: 2em 1.5em; border-right: none; border-bottom: 1px solid rgba(255,255,255,.12); }

  /* Form */
  .ak-form-row { grid-template-columns: 1fr; }

  /* Saal table */
  .ak-saal-table { display: block; overflow-x: auto; font-size: var(--ak-fs-xs); }

  /* Kontakt */
  .ak-contact-grid { grid-template-columns: 1fr !important; }
}

@media (max-width: 640px) {
  .ak-target-grid    { grid-template-columns: 1fr; }
  .ak-stats-bar      { grid-template-columns: 1fr 1fr; }
  .ak-tl-item        { grid-template-columns: 80px 1fr; }
  .ak-tl-year        { font-size: var(--ak-fs-lg); }
  .ak-pg-grid        { grid-template-columns: 1fr; }
  .ak-dest-grid      { grid-template-columns: 1fr; }
  .ak-news-grid      { grid-template-columns: 1fr; }
  .ak-partner-logos  { grid-template-columns: 1fr; }
  .ak-photo-gallery,
  .ak-gallery-grid,
  .ak-photo-gallery--col4 { grid-template-columns: 1fr; }

  .ak-cc-left, .ak-cc-right { padding: 2.5em 1.375em; }

  /* News/Dest Card header stack */
  .ak-news-head,
  .ak-dest-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 1em;
  }

  /* Cyclist */
  .ak-cyclist-hero__text { padding: 2em 1.25em; }
  .ak-cyclist__logo { margin-top: 1em; }

  /* Touch-friendly tap targets */
  .ak-btn { min-height: 44px; }

  /* Info banner stack icon + text */
  .ak-info-banner { flex-direction: column; align-items: flex-start; text-align: left; }

  /* Page hero smaller min-height */
  .ak-page-hero { min-height: 320px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   ak-split-features / ak-split-library / ak-split-contact / ak-split-zimmer
   Shared Feature-List component (.ak-ki-*)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Split body text: small top margin ────────────────────────────────────── */
.ak-split__text { margin-top: .65em; }

/* ── Feature-Liste (.ak-ki-*) ─────────────────────────────────────────────── */
.ak-ki-list {
  list-style: none;
  margin: 1.5em 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1.25em;
}
.ak-ki-item {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 0 1rem;
  align-items: flex-start;
}
/* With circle (default – for zimmer-cards etc.) */
.ak-ki-icon {
  width: 48px;
  height: 48px;
  border-radius: var(--ak-radius-full);
  background: var(--ak-g100);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--ak-p900);
  font-size: var(--ak-fs-lg);
}
.ak-ki-icon--dark {
  background: rgba(255,255,255,.10);
  color: var(--ak-g200);
}
/* Flat / no circle – used in split-features and split-contact */
.ak-ki-list--flat .ak-ki-item { grid-template-columns: 32px 1fr; }
.ak-ki-list--flat .ak-ki-icon {
  width: 32px;
  height: auto;
  background: none;
  border-radius: var(--ak-radius-none);
  color: var(--ak-p500);
  font-size: var(--ak-fs-xl);
  justify-content: flex-start;
  padding-top: .1em;
}
.ak-ki-list--flat .ak-ki-icon--dark { background: none; color: var(--ak-g200); }
.ak-ki-body { display: flex; flex-direction: column; gap: .2em; padding-top: .15em; }
.ak-ki-title {
  font-family: var(--ak-font-sans);
  font-size: var(--ak-fs-base);
  font-weight: 600;
  color: var(--ak-p900);
  line-height: 1.3;
}
.ak-ki-title--dark { color: var(--ak-white); }
.ak-ki-desc { font-size: var(--ak-fs-md); color: var(--ak-tm); line-height: 1.55; margin-top: .1em; }
.ak-ki-desc--dark { color: rgba(255,255,255,.6); }

/* ── Info-Badges (.ak-info-badges / .ak-info-badge) ──────────────────────── */
.ak-info-badges {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 1.5em;
}
.ak-info-badge {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: var(--ak-radius-none);
  padding: .6em 1em;
  text-align: center;
  min-width: 72px;
}
.ak-info-badge:not(.ak-info-badge--dark) {
  background: var(--ak-cream);
  border-color: var(--ak-stone);
}
.ak-info-badge__value {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-lg);
  font-weight: 700;
  color: var(--ak-g200);
  line-height: 1.2;
}
.ak-info-badge__label {
  font-size: var(--ak-fs-xs);
  text-transform: uppercase;
  letter-spacing: .07em;
  color: rgba(255,255,255,.5);
  margin-top: .15em;
}
.ak-info-badge:not(.ak-info-badge--dark) .ak-info-badge__value { color: var(--ak-p900); }
.ak-info-badge:not(.ak-info-badge--dark) .ak-info-badge__label { color: var(--ak-tm); }

/* Library note */
.ak-lib-note {
  font-size: var(--ak-fs-md);
  color: var(--ak-tm);
  margin-top: 1.25em;
  font-style: italic;
  max-width: 400px;
}
.ak-lib-note--dark { color: rgba(255,255,255,.5); }

/* ── Split Contact Layout (.ak-sc-*) ─────────────────────────────────────── */
/* Outer wrapper — no extra padding; Elementor container provides width */
.ak-sc-wrap { padding: 0; }

/* Two-column grid — same pattern as .ak-split */
.ak-sc-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
  min-height: 560px;
}

/* Left column — background + padding match .ak-split__body */
.ak-sc-left {
  padding: 5em 4em;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.ak-sc-left--cream { background: var(--ak-cream); }
.ak-sc-left--white { background: var(--ak-white); }
.ak-sc-left--dark  { background: var(--ak-p900); }
.ak-sc-left--ink   { background: var(--ak-ink); }

/* Right column */
.ak-sc-right {
  padding: 5em 4em;
  display: flex;
  align-items: center;
  background: var(--ak-cream);
}
.ak-sc-right--dark { background: var(--ak-p900); }
.ak-sc-right--ink  { background: var(--ak-ink); }
.ak-sc-right--white { background: var(--ak-white); }

/* em in heading gold on dark */
.ak-sc-left--dark .ak-sc-heading em,
.ak-sc-left--ink  .ak-sc-heading em { color: var(--ak-g200); }

.ak-sc-heading { margin-top: .35em; font-family: var(--ak-font-serif); font-size: var(--ak-fs-2xl); font-weight: 600; line-height: 1.15; }
.ak-sc-heading em { font-style: italic; color: var(--ak-p500); }
.ak-sc-body    { margin-top: .65em; max-width: none; }
.ak-sc-features { margin-top: 1.75em; }

/* Form container */
.ak-sc-form-wrap {
  background: var(--ak-white);
  border-radius: var(--ak-radius-none);
  padding: 2.25em;
  box-shadow: 0 4px 24px rgba(0,0,0,.08);
  width: 100%;
  scroll-margin-top: 120px;
}
/* On dark backgrounds: form stays white (as per design) */
.ak-sc-right--dark .ak-sc-form-wrap,
.ak-sc-right--ink  .ak-sc-form-wrap {
  background: var(--ak-white);
  box-shadow: 0 4px 32px rgba(0,0,0,.25);
}
.ak-sc-form-title {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-lg);
  margin: 0 0 1.25em;
  color: var(--ak-p900);
}

/* Form field rows */
.ak-cf-row--2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 1rem;
}
.ak-cf-field { margin-bottom: 1rem; }
.ak-cf-field label {
  display: block;
  font-size: var(--ak-fs-sm);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: .4em;
  color: var(--ak-p900);
}
.ak-cf-field input,
.ak-cf-field select,
.ak-cf-field textarea {
  width: 100%;
  padding: .65em .9em;
  border: 1px solid var(--ak-stone);
  border-radius: var(--ak-radius-none);
  font-size: var(--ak-fs-sm);
  font-family: inherit;
  color: var(--ak-ink);
  background: var(--ak-white);
  transition: border-color .2s;
  box-sizing: border-box;
}
.ak-cf-field input:focus,
.ak-cf-field select:focus,
.ak-cf-field textarea:focus {
  outline: none;
  border-color: var(--ak-p500);
}
.ak-cf-field textarea { resize: vertical; }

.ak-cf-status {
  font-size: var(--ak-fs-sm);
  min-height: 1.4em;
  margin-top: .5em;
}
.ak-cf-status.is-success { color: var(--ak-success); }
.ak-cf-status.is-error   { color: var(--ak-error); }

@media (max-width: 768px) {
  .ak-sc-grid   { grid-template-columns: 1fr; }
  .ak-sc-left,
  .ak-sc-right  { padding: 3.25em 1.75em; }
  .ak-cf-row--2 { grid-template-columns: 1fr; }
}

/* ── Buchungs-Formular (ak-booking-form) ──────────────────────────────────── */
.ak-booking-wrap {
  padding: clamp(1rem, 2.5vw, 2rem) clamp(0.5rem, 2vw, 1.5rem);
  border-radius: var(--ak-radius-none);
  max-width: 1200px;
  margin: 0 auto;
}
.ak-booking-wrap--white { background: var(--ak-white); }
.ak-booking-wrap--cream { background: var(--ak-cream); }
.ak-booking-wrap--dark  { background: var(--ak-p900); color: var(--ak-white); }
.ak-booking-wrap--ink   { background: var(--ak-ink);  color: var(--ak-white); }

.ak-booking-head { text-align: center; margin-bottom: 2.25em; }
.ak-booking-head .ak-eyebrow { justify-content: center; }

.ak-booking-heading {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-2xl);
  font-weight: 600;
  line-height: 1.15;
  color: var(--ak-ink);
  margin: .25em 0 .5em;
}
.ak-booking-heading em { font-style: italic; color: var(--ak-p500); }
.ak-booking-heading.ak-dark { color: var(--ak-white); }
.ak-booking-heading.ak-dark em { color: var(--ak-g200); }

.ak-booking-wrap .ak-lead { max-width: 560px; margin: 0 auto; }

/* Notice / Hinweise */
.ak-booking-notice {
  display: flex;
  align-items: flex-start;
  gap: .625em;
  padding: 1em 1.125em;
  border-radius: var(--ak-radius-none);
  font-size: var(--ak-fs-sm);
  line-height: 1.45;
  margin-bottom: 1.25em;
}
.ak-booking-notice i { font-size: 1.25em; flex-shrink: 0; margin-top: .1em; }
.ak-booking-notice--error {
  background: rgba(196, 48, 48, 0.08);
  color: var(--ak-error);
  border: 1px solid rgba(196, 48, 48, 0.18);
}
.ak-booking-notice--empty {
  background: rgba(190, 153, 79, 0.12);
  color: var(--ak-ink);
  border: 1px solid rgba(190, 153, 79, 0.25);
}
.ak-booking-results-retry { margin-top: 1em; }
.ak-booking-wrap--dark .ak-booking-notice--empty,
.ak-booking-wrap--ink  .ak-booking-notice--empty { color: var(--ak-white); }

/* Search — Step 1 */
.ak-booking-search {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: 1.25em 1.5em;
  align-items: end;
  background: var(--ak-white);
  padding: 2.5em 2.25em;
  border-radius: var(--ak-radius-none);
  box-shadow: 0 8px 32px rgba(30, 8, 48, 0.08), 0 1px 0 rgba(30, 8, 48, 0.04);
}
.ak-booking-wrap--white .ak-booking-search { box-shadow: 0 1px 0 rgba(30, 8, 48, 0.08) inset, 0 0 0 1px rgba(30, 8, 48, 0.06); }
.ak-booking-search__hint {
  display: flex;
  align-items: center;
  gap: .65em;
  margin: 1.5em 0 0;
  padding: .9em 1.1em;
  background: rgba(201, 148, 58, .08);
  border-left: 3px solid var(--ak-g400);
  font-size: var(--ak-fs-base);
  line-height: 1.45;
  color: var(--ak-tm);
  font-style: italic;
  font-weight: 500;
}
.ak-booking-search__hint i { color: var(--ak-g400); font-size: var(--ak-fs-lg); font-style: normal; flex-shrink: 0; }
.ak-booking-wrap--dark .ak-booking-search__hint,
.ak-booking-wrap--ink  .ak-booking-search__hint {
  color: rgba(255,255,255,.88);
  background: rgba(201, 148, 58, .14);
}

.ak-booking-search .ak-form-group { display: flex; flex-direction: column; gap: .4em; min-width: 0; }
.ak-booking-search label {
  font-size: var(--ak-fs-xs);
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ak-tm);
}
.ak-booking-search input[type="text"],
.ak-booking-search input[type="date"],
.ak-booking-search select {
  width: 100%;
  padding: 1em 1em;
  border: 1px solid rgba(30, 8, 48, 0.16);
  border-radius: var(--ak-radius-none);
  background: var(--ak-white);
  font-family: inherit;
  font-size: var(--ak-fs-base);
  color: var(--ak-ink);
  transition: border-color .2s ease, box-shadow .2s ease;
  line-height: 1.3;
}
.ak-booking-search select { appearance: none; cursor: pointer; padding-right: 2em;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='rgba(30,8,48,.55)'><path d='M7 10l5 5 5-5z'/></svg>");
  background-repeat: no-repeat;
  background-position: right .55em center;
  background-size: 1.1em;
}
.ak-booking-search input:focus,
.ak-booking-search select:focus {
  outline: none;
  border-color: var(--ak-g500);
  box-shadow: 0 0 0 3px rgba(180, 134, 65, 0.15);
}
.ak-booking-search__submit { align-self: end; }
.ak-booking-search__submit .ak-btn {
  width: 100%;
  padding: 1em 1.75em;
  white-space: nowrap;
}

/* Results — Step 2 */
.ak-booking-results-summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1em;
  padding: 1em 1.25em;
  background: var(--ak-white);
  border-radius: var(--ak-radius-none);
  margin-bottom: 1.5em;
  box-shadow: 0 1px 0 rgba(30, 8, 48, 0.06) inset, 0 0 0 1px rgba(30, 8, 48, 0.06);
}
.ak-booking-range {
  display: flex;
  align-items: center;
  gap: .625em;
  flex-wrap: wrap;
}
.ak-booking-range__date {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-md);
  font-weight: 600;
  color: var(--ak-ink);
}
.ak-booking-range i { color: var(--ak-p500); }
.ak-booking-range__meta {
  color: var(--ak-tm);
  font-size: var(--ak-fs-sm);
  margin-left: .25em;
}
.ak-booking-range__change {
  color: var(--ak-p500);
  font-size: var(--ak-fs-sm);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  white-space: nowrap;
}
.ak-booking-range__change:hover { color: var(--ak-p700); }

.ak-booking-results-heading {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-2xl);
  font-weight: 600;
  color: var(--ak-ink);
  margin: 2.25em 0 1.25em;
}
.ak-booking-results-heading.ak-dark { color: var(--ak-white); }

.ak-booking-results {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.5em;
}
.ak-booking-type-card {
  display: flex;
  flex-direction: column;
  background: var(--ak-white);
  border-radius: var(--ak-radius-none);
  overflow: hidden;
  box-shadow: 0 1px 0 rgba(30, 8, 48, 0.06) inset, 0 0 0 1px rgba(30, 8, 48, 0.06);
  transition: transform .2s ease, box-shadow .2s ease;
}
.ak-booking-type-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(30, 8, 48, 0.1);
}
.ak-booking-type-card.is-highlighted {
  box-shadow: 0 0 0 2px var(--ak-g500), 0 12px 32px rgba(190, 153, 79, 0.18);
}
.ak-booking-type-card__image {
  aspect-ratio: 4 / 3;
  background-size: cover;
  background-position: center;
  background-color: var(--ak-cream);
}
.ak-booking-type-card__body {
  padding: 1.5em 1.5em 1.5em;
  display: flex;
  flex-direction: column;
  gap: .5em;
  flex: 1;
}
.ak-booking-type-card__title {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-lg);
  font-weight: 600;
  color: var(--ak-ink);
  margin: 0;
}
.ak-booking-type-card__excerpt {
  color: var(--ak-tm);
  font-size: var(--ak-fs-sm);
  line-height: 1.5;
  margin: 0 0 .375em;
}
.ak-booking-type-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: .5em 1em;
  align-items: baseline;
  margin-top: auto;
  padding-top: .625em;
  border-top: 1px solid rgba(30, 8, 48, 0.08);
}
.ak-booking-type-card__price {
  font-size: var(--ak-fs-sm);
  color: var(--ak-tm);
}
.ak-booking-type-card__price strong {
  font-size: var(--ak-fs-md);
  color: var(--ak-ink);
  font-weight: 600;
}
.ak-booking-type-card__total {
  font-size: var(--ak-fs-sm);
  color: var(--ak-ink);
}
.ak-booking-type-card__total strong {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-lg);
  color: var(--ak-p500);
  font-weight: 600;
}
.ak-booking-type-card__remaining {
  font-size: var(--ak-fs-sm);
  color: var(--ak-g600);
  width: 100%;
}
.ak-booking-type-card__cta { margin-top: .875em; }
.ak-booking-type-card__cta .ak-btn { width: 100%; justify-content: center; }

/* Max-Gäste-Badge */
.ak-booking-type-card__max {
  display: inline-flex;
  align-items: center;
  gap: .4em;
  font-size: var(--ak-fs-sm);
  color: var(--ak-tm);
  margin: 0;
}
.ak-booking-type-card__max i { font-size: 1em; color: var(--ak-g500); }

/* Alternativ-Vorschläge bei Nicht-Verfügbarkeit */
.ak-booking-type-card.is-alternative .ak-booking-type-card__meta {
  border-top: none;
  padding-top: 0;
  margin-top: .25em;
}
.ak-booking-type-card__alternatives {
  margin-top: auto;
  padding-top: .75em;
  border-top: 1px solid rgba(30, 8, 48, 0.08);
}
.ak-booking-type-card__alt-note {
  display: flex;
  align-items: flex-start;
  gap: .45em;
  font-size: var(--ak-fs-sm);
  line-height: 1.4;
  color: var(--ak-tm);
  margin-bottom: .625em;
}
.ak-booking-type-card__alt-note i { color: var(--ak-g500); margin-top: .15em; flex: 0 0 auto; }
.ak-booking-type-card__alt-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .35em;
}
.ak-booking-type-card__alt-item a {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: .5em .75em;
  padding: .55em .75em;
  background: var(--ak-cream);
  color: var(--ak-p900);
  text-decoration: none;
  border: 1px solid transparent;
  font-size: var(--ak-fs-sm);
  transition: border-color var(--ak-transition), background var(--ak-transition);
}
.ak-booking-type-card__alt-item a:hover {
  border-color: var(--ak-g400);
  background: var(--ak-cream-200);
}
.ak-booking-type-card__alt-range { font-weight: 500; white-space: nowrap; }
.ak-booking-type-card__alt-meta {
  font-size: var(--ak-fs-sm);
  color: var(--ak-tm);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ak-booking-type-card__alt-item i { color: var(--ak-g500); font-size: 1em; }

/* Formular-Hinweis unter Gäste-Select */
.ak-form-hint {
  display: block;
  margin-top: .35em;
  font-size: var(--ak-fs-xs);
  color: var(--ak-p500);
  line-height: 1.4;
}

/* Flatpickr-Anpassungen — Alt-Input erbt Design-System-Look */
.ak-datepicker-alt { cursor: pointer; }
.ak-booking-strip__input.ak-datepicker-alt {
  /* Alt-Input wird sichtbar gerendert — Kalender-Icon als Affordance */
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='rgba(255,255,255,.5)'><path d='M19 4h-1V2h-2v2H8V2H6v2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zM5 8V6h14v2H5z'/></svg>");
  background-repeat: no-repeat;
  background-position: right .5em center;
  background-size: 1em;
  padding-right: 1.75em;
}
.flatpickr-calendar.arrowTop { margin-top: .25em; }
.flatpickr-day.selected,
.flatpickr-day.selected:hover,
.flatpickr-day.startRange,
.flatpickr-day.endRange {
  background: var(--ak-g500) !important;
  border-color: var(--ak-g500) !important;
  color: var(--ak-white) !important;
}
.flatpickr-day.today { border-color: var(--ak-g400); }

/* Summary — Step 3 (above form) */
.ak-booking-summary {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1.5em;
  align-items: center;
  padding: 1.5em 1.75em;
  background: var(--ak-white);
  border-radius: var(--ak-radius-none);
  margin-bottom: 2em;
  box-shadow: 0 1px 0 rgba(30, 8, 48, 0.06) inset, 0 0 0 1px rgba(30, 8, 48, 0.06);
}
.ak-booking-summary__eyebrow {
  font-size: var(--ak-fs-xs);
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ak-p500);
  margin-bottom: .3em;
}
.ak-booking-summary__title {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-lg);
  font-weight: 600;
  color: var(--ak-ink);
  margin-bottom: .25em;
}
.ak-booking-summary__range {
  color: var(--ak-tm);
  font-size: var(--ak-fs-sm);
  margin-bottom: .5em;
}
.ak-booking-summary__change {
  color: var(--ak-p500);
  font-size: var(--ak-fs-sm);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
}
.ak-booking-summary__change:hover { color: var(--ak-p700); }
.ak-booking-summary__right { text-align: right; }
.ak-booking-summary__total-label {
  font-size: var(--ak-fs-xs);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ak-tm);
  margin-bottom: .25em;
}
.ak-booking-summary__total {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-2xl);
  font-weight: 600;
  color: var(--ak-p500);
  line-height: 1;
}
.ak-booking-summary__total-sub {
  font-size: var(--ak-fs-sm);
  color: var(--ak-tm);
  margin-top: .25em;
}

/* Form */
.ak-booking-form { display: flex; flex-direction: column; gap: 1.125em; }
.ak-booking-form .ak-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.125em; }
.ak-booking-form .ak-form-row--3 { grid-template-columns: 1fr 1fr 1fr; }
.ak-booking-form .ak-form-row--zipcity { grid-template-columns: minmax(0, .4fr) 1fr; }

.ak-booking-form .ak-form-group { display: flex; flex-direction: column; gap: .3em; }
.ak-booking-form .ak-form-group label {
  font-size: var(--ak-fs-sm);
  font-weight: 500;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--ak-tm);
}
.ak-booking-wrap--dark .ak-booking-form .ak-form-group label,
.ak-booking-wrap--ink  .ak-booking-form .ak-form-group label { color: rgba(255,255,255,.72); }

.ak-booking-form .ak-form-group input,
.ak-booking-form .ak-form-group textarea,
.ak-booking-form .ak-form-group select {
  width: 100%;
  padding: .875em 1em;
  border: 1px solid rgba(30, 8, 48, 0.18);
  border-radius: var(--ak-radius-none);
  background: var(--ak-white);
  font-family: inherit;
  font-size: var(--ak-fs-base);
  color: var(--ak-ink);
  transition: border-color .2s ease;
}
.ak-booking-form .ak-form-group input:focus,
.ak-booking-form .ak-form-group textarea:focus,
.ak-booking-form .ak-form-group select:focus {
  outline: none;
  border-color: var(--ak-p500);
}
.ak-booking-form .ak-form-group textarea { resize: vertical; min-height: 120px; }

/* Frühstücks-Sektion — weißer Kasten mit Checkbox „Ohne Frühstück" + Diäten pro Person */
.ak-booking-breakfast {
  background: var(--ak-white);
  border: 1px solid var(--ak-stone);
  border-radius: var(--ak-radius-none);
  padding: 1.5em;
  display: flex;
  flex-direction: column;
  gap: 1.125em;
}
.ak-booking-breakfast__head {
  display: flex;
  flex-direction: column;
  gap: .25em;
}
.ak-booking-breakfast__title {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-xl);
  font-weight: 600;
  color: var(--ak-ink);
  line-height: var(--ak-lh-tight);
  margin: 0;
}
.ak-booking-breakfast__intro {
  font-size: var(--ak-fs-sm);
  color: var(--ak-tm);
  line-height: var(--ak-lh-relaxed);
  margin: 0;
}
/* Checkbox „Ohne Frühstück" — dezenter Toggle, sichtbar als bewusste Option */
.ak-booking-breakfast__optout {
  display: flex;
  align-items: center;
  gap: .75em;
  padding: .875em 1em;
  background: var(--ak-cream);
  border: 1px solid var(--ak-stone);
  border-radius: var(--ak-radius-none);
  font-size: var(--ak-fs-sm);
  color: var(--ak-ink);
  cursor: pointer;
  transition: background var(--ak-transition), border-color var(--ak-transition);
}
.ak-booking-breakfast__optout:hover {
  border-color: var(--ak-p500);
}
.ak-booking-breakfast__optout input { width: 18px; height: 18px; margin: 0; flex-shrink: 0; accent-color: var(--ak-p500); }
.ak-booking-breakfast.is-without .ak-booking-breakfast__optout {
  background: var(--ak-p100);
  border-color: var(--ak-p500);
  color: var(--ak-p900);
  font-weight: 500;
}
/* Diäten — nur sichtbar wenn Frühstück AKTIV; per JS toggle */
.ak-booking-breakfast__diets {
  display: flex;
  flex-direction: column;
  gap: .625em;
  padding-top: .5em;
  border-top: 1px solid var(--ak-stone);
}
.ak-booking-breakfast__diets-label {
  font-size: var(--ak-fs-xs);
  font-weight: 500;
  color: var(--ak-tm);
  letter-spacing: var(--ak-ls-caps);
  text-transform: uppercase;
  margin: 0;
}
.ak-form-row--diets {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1em;
}

/* Payment methods */
.ak-booking-payment { display: flex; flex-direction: column; gap: .625em; }
.ak-booking-payment__label {
  font-size: var(--ak-fs-sm);
  font-weight: 500;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--ak-tm);
}
.ak-booking-wrap--dark .ak-booking-payment__label,
.ak-booking-wrap--ink  .ak-booking-payment__label { color: rgba(255,255,255,.72); }
.ak-booking-payment__options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .875em;
}
.ak-booking-payment__option {
  position: relative;
  cursor: pointer;
  display: block;
}
.ak-booking-payment__option input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.ak-booking-payment__box {
  display: flex;
  flex-direction: column;
  gap: .375em;
  padding: 1em 1.125em;
  background: var(--ak-white);
  border: 1.5px solid rgba(30, 8, 48, 0.14);
  border-radius: var(--ak-radius-none);
  transition: border-color .2s ease, box-shadow .2s ease;
}
.ak-booking-payment__box i {
  font-size: var(--ak-fs-xl);
  color: var(--ak-p500);
  margin-bottom: .125em;
}
.ak-booking-payment__title {
  font-weight: 600;
  font-size: var(--ak-fs-base);
  color: var(--ak-ink);
}
.ak-booking-payment__desc {
  font-size: var(--ak-fs-sm);
  color: var(--ak-tm);
  line-height: 1.4;
}
.ak-booking-payment__option input[type="radio"]:checked + .ak-booking-payment__box {
  border-color: var(--ak-p500);
  box-shadow: 0 0 0 3px rgba(109, 46, 155, 0.12);
}
.ak-booking-payment__option:hover .ak-booking-payment__box {
  border-color: rgba(109, 46, 155, 0.45);
}

/* GDPR consent — unified component used by booking + contact forms */
.ak-consent {
  display: flex;
  align-items: flex-start;
  gap: .85em;
  padding: 1em 1.25em;
  margin: .5em 0 1em;
  background: rgba(30, 8, 48, 0.035);
  border: 1px solid rgba(30, 8, 48, 0.12);
  border-radius: var(--ak-radius-none);
  font-size: var(--ak-fs-sm);
  line-height: 1.5;
  color: var(--ak-tm);
  cursor: pointer;
  transition: border-color .2s ease, background .2s ease;
}
.ak-consent:hover {
  border-color: rgba(30, 8, 48, 0.28);
  background: rgba(30, 8, 48, 0.05);
}
.ak-consent:focus-within {
  border-color: var(--ak-p500);
  background: rgba(109, 46, 155, 0.06);
}
.ak-consent input[type="checkbox"] {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.ak-consent__box {
  flex-shrink: 0;
  width: 1.25em;
  height: 1.25em;
  margin-top: .12em;
  border: 1.5px solid rgba(30, 8, 48, 0.4);
  border-radius: var(--ak-radius-none);
  background: var(--ak-white);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: border-color .15s ease, background .15s ease;
  position: relative;
}
.ak-consent__box::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: .42em;
  height: .72em;
  border: solid var(--ak-white);
  border-width: 0 2px 2px 0;
  transform: translate(-50%, -60%) rotate(45deg);
  opacity: 0;
  transition: opacity .15s ease;
}
.ak-consent:hover .ak-consent__box { border-color: var(--ak-p500); }
.ak-consent input[type="checkbox"]:focus-visible + .ak-consent__box {
  outline: 2px solid var(--ak-p500);
  outline-offset: 2px;
}
.ak-consent input[type="checkbox"]:checked + .ak-consent__box {
  background: var(--ak-p500);
  border-color: var(--ak-p500);
}
.ak-consent input[type="checkbox"]:checked + .ak-consent__box::after { opacity: 1; }
.ak-consent__text { flex: 1; min-width: 0; }
.ak-consent a {
  color: var(--ak-p500);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.ak-consent a:hover { color: var(--ak-p700); }

/* Dark-Varianten — Buchungs-Wrap Hintergründe */
.ak-booking-wrap--dark .ak-consent,
.ak-booking-wrap--ink  .ak-consent {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.85);
}
.ak-booking-wrap--dark .ak-consent:hover,
.ak-booking-wrap--ink  .ak-consent:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.28);
}
.ak-booking-wrap--dark .ak-consent__box,
.ak-booking-wrap--ink  .ak-consent__box {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.5);
}
.ak-booking-wrap--dark .ak-consent a,
.ak-booking-wrap--ink  .ak-consent a { color: var(--ak-g200); }

/* Honeypot */
.ak-booking-hp {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

/* Form footer */
.ak-booking-form__footer {
  display: flex;
  flex-direction: column;
  gap: .75em;
  align-items: flex-start;
  margin-top: .5em;
}
.ak-booking-form__footer .ak-btn { align-self: stretch; justify-content: center; }

/* Confirmation */
.ak-booking-confirmation {
  text-align: center;
  max-width: 620px;
  margin: 0 auto;
  padding: 1em 0;
}
.ak-booking-confirmation__icon {
  font-size: var(--ak-fs-3xl);
  color: var(--ak-g500);
  margin-bottom: .5em;
  line-height: 1;
}
.ak-booking-confirmation__heading {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-2xl);
  font-weight: 600;
  color: var(--ak-ink);
  margin: 0 0 .5em;
}
.ak-booking-wrap--dark .ak-booking-confirmation__heading,
.ak-booking-wrap--ink  .ak-booking-confirmation__heading { color: var(--ak-white); }
.ak-booking-confirmation__text {
  color: var(--ak-tm);
  font-size: var(--ak-fs-base);
  line-height: 1.55;
  margin: 0 0 2em;
}
.ak-booking-wrap--dark .ak-booking-confirmation__text,
.ak-booking-wrap--ink  .ak-booking-confirmation__text { color: rgba(255,255,255,.78); }
.ak-booking-confirmation__details {
  background: var(--ak-white);
  padding: 1.75em 2em;
  border-radius: var(--ak-radius-none);
  text-align: left;
  box-shadow: 0 1px 0 rgba(30, 8, 48, 0.06) inset, 0 0 0 1px rgba(30, 8, 48, 0.06);
}
.ak-booking-confirmation__details dl {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .75em 1.5em;
  margin: 0;
}
.ak-booking-confirmation__details dt {
  font-size: var(--ak-fs-xs);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ak-tm);
  font-weight: 500;
  padding-top: .1em;
}
.ak-booking-confirmation__details dd {
  margin: 0;
  color: var(--ak-ink);
  font-size: var(--ak-fs-base);
}
.ak-booking-confirmation__details dd span {
  color: var(--ak-tm);
  font-size: var(--ak-fs-sm);
}

@media (max-width: 1100px) {
  .ak-booking-search { grid-template-columns: 1fr 1fr; }
  .ak-booking-search__submit { grid-column: 1 / -1; }
  .ak-booking-search__submit .ak-btn { padding: .875em 1.5em; }
}

@media (max-width: 768px) {
  .ak-booking-form .ak-form-row,
  .ak-booking-form .ak-form-row--3,
  .ak-booking-form .ak-form-row--zipcity { grid-template-columns: 1fr; }
  .ak-booking-summary { grid-template-columns: 1fr; }
  .ak-booking-summary__right { text-align: left; }
  .ak-booking-results-summary { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 640px) {
  .ak-booking-search { grid-template-columns: 1fr; padding: 1.125em; }
  .ak-booking-payment__options { grid-template-columns: 1fr; }
  .ak-booking-confirmation__details { padding: 1.25em 1.25em; }
  .ak-booking-confirmation__details dl { grid-template-columns: 1fr; gap: .25em 0; }
  .ak-booking-confirmation__details dt { margin-top: .5em; }
}

/* ── Veranstaltungs-Liste (ak-events-list) ────────────────────────────────── */
.ak-events-wrap--white { background: var(--ak-white); }
.ak-events-wrap--cream { background: var(--ak-cream); }
.ak-events-wrap--dark  { background: var(--ak-p900); color: var(--ak-white); }
.ak-events-wrap--ink   { background: var(--ak-ink);  color: var(--ak-white); }

.ak-events-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5em;
  margin-bottom: 2.5em;
  flex-wrap: wrap;
  text-align: left;
}
.ak-events-head__text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .5em;
  flex: 1 1 auto;
  min-width: 0;
}
.ak-events-head__text .ak-eyebrow { justify-content: flex-start; }
.ak-events-heading {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-2xl);
  font-weight: 600;
  line-height: 1.15;
  color: var(--ak-ink);
  margin: 0;
  text-align: left;
}
.ak-events-heading em { font-style: italic; color: var(--ak-p500); }
.ak-events-heading.ak-dark { color: var(--ak-white); }
.ak-events-heading.ak-dark em { color: var(--ak-g200); }
.ak-events-head__all { flex-shrink: 0; white-space: nowrap; }

.ak-events-list {
  display: flex;
  flex-direction: column;
  border-top: 1px solid rgba(30, 8, 48, .10);
}
.ak-events-wrap--dark .ak-events-list,
.ak-events-wrap--ink  .ak-events-list { border-top-color: rgba(255,255,255,.12); }

.ak-ev-row {
  display: grid;
  grid-template-columns: 110px 1fr auto;
  align-items: stretch;
  gap: 1.75em;
  border-bottom: 1px solid rgba(30, 8, 48, .10);
}
.ak-events-wrap--dark .ak-ev-row,
.ak-events-wrap--ink  .ak-ev-row { border-bottom-color: rgba(255,255,255,.12); }

/* Datum-Block */
.ak-ev-date {
  background: var(--ak-p900);
  color: var(--ak-g200);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1.25em .75em;
  text-align: center;
  border-radius: var(--ak-radius-none);
  min-height: 135px;
}
.ak-ev-date__day {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-3xl);
  font-style: italic;
  font-weight: 500;
  line-height: 1;
  margin-bottom: .15em;
}
.ak-ev-date__month {
  font-size: var(--ak-fs-xs);
  letter-spacing: .22em;
  text-transform: uppercase;
  font-weight: 600;
}
.ak-ev-date__sep {
  display: block;
  width: 32px;
  height: 1px;
  background: currentColor;
  opacity: .45;
  margin: .75em 0;
}
.ak-ev-date__time {
  font-size: var(--ak-fs-sm);
  letter-spacing: .1em;
  font-weight: 500;
  opacity: .85;
}

/* Content-Block */
.ak-ev-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: .45em;
  min-width: 0;
}
.ak-ev-cat {
  display: inline-flex;
  align-items: center;
  gap: .4em;
  font-size: var(--ak-fs-xs);
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--ak-g600);
}
.ak-ev-cat i { font-size: var(--ak-fs-base); }
.ak-ev-title {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-lg);
  font-weight: 600;
  line-height: 1.3;
  margin: 0;
  color: var(--ak-ink);
}
.ak-events-wrap--dark .ak-ev-title,
.ak-events-wrap--ink  .ak-ev-title { color: var(--ak-white); }
.ak-ev-title a {
  color: inherit;
  text-decoration: none;
  background-image: linear-gradient(currentColor, currentColor);
  background-size: 0% 1px;
  background-repeat: no-repeat;
  background-position: 0 100%;
  transition: background-size .35s ease;
}
.ak-ev-title a:hover { background-size: 100% 1px; }
.ak-ev-desc {
  font-size: var(--ak-fs-sm);
  line-height: 1.6;
  color: var(--ak-tm);
  margin: 0;
}
.ak-events-wrap--dark .ak-ev-desc,
.ak-events-wrap--ink  .ak-ev-desc { color: rgba(255,255,255,.65); }

/* CTA */
.ak-ev-cta { display: flex; align-items: center; }
.ak-ev-cta .ak-btn { padding: .75em 1.5em; font-size: var(--ak-fs-sm); }

@media (max-width: 900px) {
  .ak-ev-row {
    grid-template-columns: 90px 1fr;
    gap: 1.25em;
  }
  .ak-ev-cta {
    grid-column: 1 / -1;
    justify-content: flex-start;
    padding-left: calc(90px + 1.25em);
  }
  .ak-ev-date { min-height: 115px; padding: 1em .5em; }
  .ak-ev-date__day { font-size: var(--ak-fs-2xl); }
}
@media (max-width: 560px) {
  .ak-events-head { flex-direction: column; align-items: flex-start; }
  .ak-ev-row {
    grid-template-columns: 1fr;
    gap: 1em;
  }
  .ak-ev-date {
    flex-direction: row;
    gap: .75em;
    min-height: 0;
    padding: .75em 1em;
    justify-content: flex-start;
  }
  .ak-ev-date__day { font-size: var(--ak-fs-xl); }
  .ak-ev-date__sep { width: 1px; height: 22px; margin: 0 .25em; }
  .ak-ev-cta { padding-left: 0; }
}

/* ═══════════════════════════════════════════════════════════════════════
   SINGLE TEMPLATES — Hero-Meta + Artikel-Layout (News & Events)
   ═══════════════════════════════════════════════════════════════════════ */

/* Hero-Variante für Einzelansichten */
.ak-single-hero { min-height: 52vh; }
.ak-single-hero .ak-page-hero__content { max-width: 860px; }
.ak-single-hero h1 {
  font-family: var(--ak-font-serif, Georgia, serif);
  font-weight: 500;
  font-size: var(--ak-fs-2xl);
  line-height: 1.15;
  color: var(--ak-white);
  margin: .3em 0 .6em;
}

.ak-single-hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5em 2em;
  margin-top: 1.25em;
  color: rgba(255, 255, 255, .85);
  font-size: var(--ak-fs-sm);
}
.ak-single-hero__meta-item {
  display: inline-flex;
  align-items: center;
  gap: .55em;
  letter-spacing: .02em;
}
.ak-single-hero__meta-item i {
  color: var(--ak-p500);
  font-size: 1.15em;
}
.ak-single-hero__meta-item time { color: inherit; }

/* Artikel-Container */
.ak-container--narrow {
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 1.5em;
}

.ak-article {
  padding: 1em 0 2em;
}

.ak-article__lead {
  font-family: var(--ak-font-serif, Georgia, serif);
  font-style: italic;
  font-size: var(--ak-fs-lg);
  line-height: 1.55;
  color: var(--ak-p900);
  margin: 0 0 2em;
  padding: 0 0 1.5em;
  border-bottom: 1px solid rgba(30, 8, 48, .12);
}

.ak-article__body {
  font-size: var(--ak-fs-base);
  line-height: 1.75;
  color: var(--ak-ink);
}
.ak-article__body > * + * { margin-top: 1.1em; }
.ak-article__body h2,
.ak-article__body h3,
.ak-article__body h4 {
  font-family: var(--ak-font-serif, Georgia, serif);
  font-weight: 600;
  color: var(--ak-p900);
  line-height: 1.25;
  margin-top: 1.8em;
  margin-bottom: .5em;
}
.ak-article__body h2 { font-size: var(--ak-fs-xl); }
.ak-article__body h3 { font-size: var(--ak-fs-lg); }
.ak-article__body h4 { font-size: var(--ak-fs-md); }
.ak-article__body p { font-size: var(--ak-fs-md); line-height: var(--ak-lh-relaxed); margin: 0 0 1.1em; }
.ak-article__body a {
  color: var(--ak-p500);
  text-decoration: underline;
  text-underline-offset: .2em;
  text-decoration-thickness: 1px;
}
.ak-article__body a:hover { color: var(--ak-p900); }
.ak-article__body ul,
.ak-article__body ol {
  padding-left: 1.4em;
  margin: 0 0 1.2em;
}
.ak-article__body li { margin-bottom: .4em; }
.ak-article__body ul li::marker { color: var(--ak-p500); }
.ak-article__body blockquote {
  margin: 1.8em 0;
  padding: 1em 0 1em 1.5em;
  border-left: 3px solid var(--ak-p500);
  font-family: var(--ak-font-serif, Georgia, serif);
  font-style: italic;
  font-size: var(--ak-fs-md);
  color: var(--ak-p900);
}
.ak-article__body img {
  max-width: 100%;
  height: auto;
  border-radius: var(--ak-radius-none);
  margin: 1.5em 0;
}
.ak-article__body figure { margin: 1.8em 0; }
.ak-article__body figcaption {
  font-size: var(--ak-fs-sm);
  color: var(--ak-tm);
  text-align: center;
  margin-top: .6em;
  font-style: italic;
}

.ak-article__footer {
  margin-top: 3em;
  padding-top: 2em;
  border-top: 1px solid rgba(30, 8, 48, .12);
  display: flex;
  justify-content: flex-start;
}
.ak-article__footer .ak-btn i { margin-right: .5em; }

/* Event-Details-Karte (Aside) */
.ak-event-card {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1.25em 1.5em;
  padding: 1.75em 2em;
  margin: 0 0 2.25em;
  background: var(--ak-white);
  border: 1px solid rgba(30, 8, 48, .1);
  border-left: 4px solid var(--ak-p500);
  border-radius: var(--ak-radius-none);
  box-shadow: 0 6px 24px -18px rgba(30, 8, 48, .35);
}
.ak-event-card__item {
  display: flex;
  align-items: flex-start;
  gap: .9em;
}
.ak-event-card__item i {
  font-size: var(--ak-fs-xl);
  color: var(--ak-p500);
  line-height: 1;
  margin-top: .1em;
  flex-shrink: 0;
}
.ak-event-card__item > div {
  display: flex;
  flex-direction: column;
  gap: .15em;
}
.ak-event-card__label {
  font-size: var(--ak-fs-xs);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .18em;
  color: var(--ak-tm);
}
.ak-event-card__item strong {
  font-family: var(--ak-font-serif, Georgia, serif);
  font-size: var(--ak-fs-md);
  font-weight: 600;
  color: var(--ak-p900);
  line-height: 1.3;
}

@media (max-width: 700px) {
  .ak-single-hero { min-height: 50vh; }
  .ak-single-hero__meta { gap: .8em 1.5em; font-size: var(--ak-fs-sm); }
  .ak-event-card {
    grid-template-columns: 1fr;
    padding: 1.4em 1.5em;
  }
  .ak-article__body { font-size: var(--ak-fs-base); }
}

/* ════════════════════════════════════════════════════════════════════════════
   FULL MOBILE PASS — Widget-by-Widget Polish
   Tablets ≤768px und Smartphones ≤480px
   ════════════════════════════════════════════════════════════════════════════ */

@media (max-width: 768px) {

  /* ── 1. HERO ──────────────────────────────────────────────────────────── */
  .ak-hero {
    height: auto;
    min-height: 80vh;
    padding-top: 72px;
    /* Inhalte vertikal zentrieren statt unten andocken. */
    justify-content: center;
  }
  /* Parallax-Offset (-15%) auf Mobile zurücksetzen, sonst weißer Streifen. */
  .ak-hero__bg { inset: 0; }
  .ak-hero__inner { padding: 0 1em 1em; }
  /* Buchungs-Strip: nimmt die volle Breite des Hero-Inner-Containers
     (gleicht das __inner-Padding aus, bleibt aber im Layout-Fluss). */
  .ak-hero__inner .ak-booking-strip {
    width: auto;
    max-width: none;
    margin-inline: -1em;
  }
  .ak-hero__title {
    font-size: var(--ak-fs-3xl);
    margin-bottom: .875rem;
  }
  .ak-hero__sub {
    font-size: var(--ak-fs-base);
    margin-bottom: 1.625em;
    line-height: 1.5;
  }

  /* Booking-Strip → Single-Column, kompaktes Padding, alles linksbündig */
  .ak-booking-strip { grid-template-columns: 1fr; }
  .ak-booking-strip__col {
    grid-column: auto !important;
    border-right: none;
    border-bottom: 1px solid rgba(255,255,255,.1);
    padding: .625em .875em;
    text-align: left;
  }
  .ak-booking-strip__label,
  .ak-booking-strip__input { text-align: left; }
  .ak-booking-strip__input { padding-left: 0; padding-right: 0; }
  .ak-booking-strip__btn {
    grid-column: auto !important;
    padding: 1em .875em !important;
    justify-content: flex-start;
  }

  /* ── 2. STATS BAR ─────────────────────────────────────────────────────── */
  .ak-stat {
    padding: 1.25em 1em;
    text-align: center;
  }
  .ak-stat__number { font-size: var(--ak-fs-xl); }
  .ak-stat__label  { font-size: var(--ak-fs-xs); }

  /* ── 4. TARGET CARDS ──────────────────────────────────────────────────── */
  .ak-target-grid    { margin-top: 2em; }
  .ak-target-card    { padding: 2em 1.5em; min-height: 240px; }
  .ak-target-card__title { font-size: var(--ak-fs-md); }
  .ak-target-card__text  { font-size: var(--ak-fs-sm); }

  /* ── 5. SPLIT SECTION ─────────────────────────────────────────────────── */
  .ak-split { min-height: 0; }
  .ak-split__img  { min-height: 0; height: 260px; }
  .ak-split__body { padding: 2.75em 1.375em; }
  .ak-split__year-badge {
    bottom: 1em;
    right: 1em;
    padding: .75em 1em;
  }
  .ak-split__year-num   { font-size: var(--ak-fs-xl); }
  .ak-split__year-label { font-size: var(--ak-fs-xs); }

  /* ── 6. PRICING ROWS ──────────────────────────────────────────────────── */
  .ak-pricing__row   { gap: .75em; padding: .75em 0; }
  .ak-pricing__name  { font-size: var(--ak-fs-sm); }
  .ak-pricing__value { font-size: var(--ak-fs-lg); }
  .ak-pricing__sub   { font-size: var(--ak-fs-xs); }

  /* ── 7. FEATURE LIST ──────────────────────────────────────────────────── */
  .ak-feat-wrap { padding: 3em 0; }
  .ak-feat-head { margin-bottom: 1.5em; }
  .ak-feat-grid { margin-top: 1.5em; }
  .ak-feat-item { padding: 1.5em 1.375em; gap: .75em; }
  .ak-feat-item h4 { font-size: var(--ak-fs-sm); }
  .ak-feat-item p  { font-size: var(--ak-fs-md); }

  /* ── 8. REVIEW SLIDER ─────────────────────────────────────────────────── */
  .ak-reviews::before,
  .ak-reviews::after { display: none; }
  .ak-rev-head  { margin-bottom: 2.25em; }
  .ak-rev-score { font-size: var(--ak-fs-2xl); }
  .ak-rev-card {
    flex: 0 0 86%;
    min-width: 260px;
    padding: 2em 1.625em;
  }
  .ak-rev-quote { font-size: var(--ak-fs-md); line-height: 1.55; }
  .ak-rev-nav   { margin-top: 1.5em; }

  /* ── 9. BOOKING METHODS ───────────────────────────────────────────────── */
  .ak-buch-method { padding: 2.25em 1.625em; }
  .ak-buch-icon   { width: 46px; height: 46px; }
  .ak-buch-icon i { font-size: var(--ak-fs-md); }
  .ak-buch-title  { font-size: var(--ak-fs-md); }
  .ak-buch-value  { font-size: var(--ak-fs-xl); }
  .ak-buch-sub    { font-size: var(--ak-fs-md); }

  /* ── 10. TIMELINE ─────────────────────────────────────────────────────── */
  .ak-tl-head    { margin-bottom: 2em; }
  .ak-timeline   { margin-top: 2em; }
  .ak-tl-item    { grid-template-columns: 76px 1fr; }
  .ak-tl-year    { font-size: var(--ak-fs-lg); padding: 1.25em 0; }
  .ak-tl-text    { padding: 1.25em 0 1.25em 1.125em; }
  .ak-tl-text h4 { font-size: var(--ak-fs-base); }
  .ak-tl-text p  { font-size: var(--ak-fs-md); }

  /* ── 11. MENU CARDS ───────────────────────────────────────────────────── */
  .ak-menu-head { margin-bottom: 1.75em; }
  .ak-menu-grid { margin-top: 1.75em; }
  .ak-menu-card { padding: 2.25em 1.625em; }
  .ak-menu-card__icon  { font-size: var(--ak-fs-xl); }
  .ak-menu-card__title { font-size: var(--ak-fs-md); }

  /* ── 12. PHOTO GALLERY ────────────────────────────────────────────────── */
  .ak-photo-gallery,
  .ak-gallery-grid,
  .ak-photo-gallery--col4 { gap: 4px; margin-top: 1.5em; }

  /* ── 13. DESTINATION CARDS ────────────────────────────────────────────── */
  .ak-dest-head { margin-bottom: 1.75em; }
  .ak-dest-grid { gap: .75em; }
  .ak-dest-card { height: 280px; }
  .ak-dest-card__overlay { padding: 1.125em 1.25em 1.5em; }
  .ak-dest-card h3 { font-size: var(--ak-fs-md); }
  .ak-dest-card p  { font-size: var(--ak-fs-md); }

  /* ── 14. CYCLIST SECTION ──────────────────────────────────────────────── */
  .ak-cyclist-hero    { padding: 2.25em 0; }
  .ak-cyclist-feat    { padding: 2em 1.375em; }
  .ak-cyclist-feat i  { font-size: var(--ak-fs-lg); }
  .ak-cyclist-feat h4 { font-size: var(--ak-fs-md); }
  .ak-cyclist-feat p  { font-size: var(--ak-fs-md); }
  .ak-cyclist__logo   { height: 64px; margin-top: 1.25em; }

  /* ── 15. ZIMMER CARDS ─────────────────────────────────────────────────── */
  .ak-zimmer-grid          { margin-top: 2em; }
  .ak-zimmer-card          { padding: 2.25em 1.625em; }
  .ak-zimmer-card h3       { font-size: var(--ak-fs-lg); }
  .ak-zimmer-card__price   { font-size: var(--ak-fs-xl); }
  .ak-zimmer-card__icon    { width: 46px; height: 46px; }

  /* ── 16. OPENING HOURS ────────────────────────────────────────────────── */
  .ak-oh-wrap   { padding: 3em 0; }
  .ak-oh-head   { margin-bottom: 1.75em; }
  .ak-oh-grid   { margin-top: 1.75em; }
  .ak-oh-card   { padding: 1.5em 1.25em; }
  .ak-htbl td   { font-size: var(--ak-fs-sm); padding: .55em 0; }
  .ak-oh-day,
  .ak-oh-time   { font-size: var(--ak-fs-sm); }

  /* ── 17. EVENTS LIST (legacy ak-event-*) ──────────────────────────────── */
  .ak-event-list { margin-top: 2em; }
  .ak-event-row  { grid-template-columns: 78px 1fr; }
  .ak-event-date { padding: 1em .5em; min-width: 0; }
  .ak-event-date__day   { font-size: var(--ak-fs-xl); }
  .ak-event-date__month { font-size: var(--ak-fs-xs); }
  .ak-event-info        { padding: 1em 1.125em; }
  .ak-event-info h4     { font-size: var(--ak-fs-sm); }
  .ak-event-info p      { font-size: var(--ak-fs-md); }

  /* ── 18. NEWS GRID ────────────────────────────────────────────────────── */
  .ak-news-head        { margin-bottom: 1.75em; }
  .ak-news-grid        { gap: 1.125em; }
  .ak-news-card__img   { height: 200px; }
  .ak-news-card__body  { padding: 1.375em 1.25em 1.5em; }
  .ak-news-card__title { font-size: var(--ak-fs-md); }
  .ak-news-card__excerpt { font-size: var(--ak-fs-sm); }

  /* ── 19. CONTACT INFO ─────────────────────────────────────────────────── */
  .ak-cinfo-title  { font-size: var(--ak-fs-xl); }
  .ak-contact-info { gap: 1.375em; margin-top: .25em; }
  .ak-ki-block     { gap: .75em; }
  .ak-ki-icon      { width: 42px; height: 42px; }
  .ak-ki-icon i    { font-size: var(--ak-fs-base); }
  .ak-ki-block h4  { font-size: var(--ak-fs-xs); }
  .ak-ki-block p   { font-size: var(--ak-fs-md); }

  /* ── 20. CONTACT FORM ─────────────────────────────────────────────────── */
  .ak-cform-title { font-size: var(--ak-fs-xl); }
  .ak-form-group input,
  .ak-form-group textarea,
  .ak-form-group select { padding: .8em 1em; font-size: var(--ak-fs-sm); }
  .ak-form-group textarea { min-height: 110px; }

  /* ── 21. PARTNER GRID ─────────────────────────────────────────────────── */
  .ak-partner-wrap { padding: 3em 0; }
  .ak-partner-head { margin-bottom: 1.75em; }
  .ak-pg-grid      { margin-top: 1.75em; }
  .ak-pg-card      { padding: 1.75em 1.375em; }
  .ak-pg-card__icon { font-size: var(--ak-fs-lg); }
  .ak-pg-card__name { font-size: var(--ak-fs-sm); }
  .ak-pg-card__address { font-size: var(--ak-fs-sm); }
  .ak-partner-item { padding: 1.5em 1.25em; }
  .ak-partner-logos { margin-top: 1.5em; }

  /* ── 22. SAAL TABLE ───────────────────────────────────────────────────── */
  .ak-saal-wrap  { padding: 3em 0; }
  .ak-saal-head  { margin-bottom: 1.5em; }
  .ak-saal-table { font-size: var(--ak-fs-sm); }
  .ak-saal-table th,
  .ak-saal-table td { padding-right: .75em; }

  /* ── 23. INFO BANNER ──────────────────────────────────────────────────── */
  .ak-info-banner { padding: 1em 1.125em; }
  .ak-info-banner p { font-size: var(--ak-fs-md); }

  /* ── 24. CONTACT COMBINED ─────────────────────────────────────────────── */
  .ak-cc-left,
  .ak-cc-right    { padding: 2.75em 1.5em; }
  .ak-cc-heading  { font-size: var(--ak-fs-2xl); }
  .ak-cc-intro    { font-size: var(--ak-fs-sm); }

  /* ── 25. MAP EMBED ────────────────────────────────────────────────────── */
  .ak-map-wrap   { margin-top: 2em; }
  .ak-map-wrap iframe { min-height: 360px; }

  /* ── Booking Form ─────────────────────────────────────────────────────── */
  .ak-booking-wrap   { padding: 2.5em 1.25em; }
  .ak-booking-head   { margin-bottom: 1.75em; }
  .ak-booking-form .ak-form-group input,
  .ak-booking-form .ak-form-group textarea,
  .ak-booking-form .ak-form-group select { padding: .8em .9em; font-size: var(--ak-fs-sm); }
  .ak-booking-search input[type="date"] { padding: .8em .9em; font-size: var(--ak-fs-sm); }
  .ak-booking-summary { padding: 1.25em 1.25em; }
  .ak-booking-summary__total { font-size: var(--ak-fs-xl); }

  /* ── Split-Contact (sc) Form ──────────────────────────────────────────── */
  .ak-sc-form-wrap { padding: 1.75em 1.5em; border-radius: var(--ak-radius-none); }
  .ak-sc-heading   { font-size: var(--ak-fs-2xl); }
  .ak-sc-features  { margin-top: 1.25em; }

  /* ── Shared Feature-List (.ak-ki-*) inside split widgets ──────────────── */
  .ak-ki-list      { gap: 1em; margin-top: 1.25em; }
  .ak-ki-item      { grid-template-columns: 42px 1fr; gap: 0 .75rem; }
  .ak-ki-list--flat .ak-ki-item { grid-template-columns: 28px 1fr; }
  .ak-ki-list--flat .ak-ki-icon { font-size: var(--ak-fs-lg); }
  .ak-ki-title     { font-size: var(--ak-fs-sm); }
  .ak-ki-desc      { font-size: var(--ak-fs-md); }

  /* ── Info Badges ──────────────────────────────────────────────────────── */
  .ak-info-badges  { gap: .5rem; margin-top: 1.25em; }
  .ak-info-badge   { padding: .5em .85em; min-width: 64px; }
  .ak-info-badge__value { font-size: var(--ak-fs-md); }
  .ak-info-badge__label { font-size: var(--ak-fs-xs); }

  /* ── Footer Polish ────────────────────────────────────────────────────── */
  .ak-footer       { padding: 2.75em 1.375em; }
  .ak-footer__grid { gap: 2em; }
  .ak-footer__brand p { max-width: 100%; }
  .ak-fbot         { padding: 1em 1.375em; flex-direction: column; align-items: flex-start; gap: .5em; }
}

/* ── ≤480px : kleine Smartphones (iPhone SE etc.) ─────────────────────── */
@media (max-width: 480px) {

  /* Hero */
  .ak-hero { min-height: 72vh; padding-top: 64px; }
  .ak-hero__inner { padding: 0 .875em 1em; }
  .ak-hero__inner .ak-booking-strip { margin-inline: -.875em; }
  .ak-hero__title { font-size: var(--ak-fs-2xl); line-height: 1.05; }
  .ak-hero__sub   { font-size: var(--ak-fs-sm); margin-bottom: 1.25em; }

  /* Stats — bleibt 2x2 aber kompakter */
  .ak-stat              { padding: 1em .75em; }
  .ak-stat__number      { font-size: var(--ak-fs-xl); }
  .ak-stat__label       { font-size: var(--ak-fs-xs); letter-spacing: .08em; }

  /* Target cards */
  .ak-target-card       { min-height: 220px; padding: 1.75em 1.375em; }
  .ak-target-card__icon { width: 36px; height: 36px; }

  /* Split */
  .ak-split__img  { height: 220px; }
  .ak-split__body { padding: 2.25em 1.125em; }

  /* Pricing */
  .ak-pricing__value { font-size: var(--ak-fs-md); }

  /* Feature list */
  .ak-feat-item   { padding: 1.375em 1.125em; }

  /* Reviews */
  .ak-rev-card    { padding: 1.75em 1.375em; min-width: 240px; flex-basis: 90%; }
  .ak-rev-quote   { font-size: var(--ak-fs-base); }
  .ak-rev-score   { font-size: var(--ak-fs-xl); }
  .ak-rev-btn     { width: 40px; height: 40px; }

  /* Booking methods */
  .ak-buch-method { padding: 2em 1.375em; }
  .ak-buch-value  { font-size: var(--ak-fs-lg); }
  .ak-buch-title  { font-size: var(--ak-fs-md); }

  /* Timeline */
  .ak-tl-item     { grid-template-columns: 64px 1fr; }
  .ak-tl-year     { font-size: var(--ak-fs-md); padding: 1em 0; }
  .ak-tl-text     { padding: 1em 0 1em .875em; }

  /* Menu cards */
  .ak-menu-card   { padding: 2em 1.375em; }
  .ak-menu-card__title { font-size: var(--ak-fs-md); }

  /* Destination cards */
  .ak-dest-card   { height: 240px; }
  .ak-dest-card h3 { font-size: var(--ak-fs-md); }

  /* Cyclist */
  .ak-cyclist-feat { padding: 1.75em 1.125em; }
  .ak-cyclist__logo { height: 56px; margin-top: 1em; }

  /* Zimmer */
  .ak-zimmer-card { padding: 2em 1.375em; }
  .ak-zimmer-card h3 { font-size: var(--ak-fs-lg); }
  .ak-zimmer-card__price { font-size: var(--ak-fs-xl); }

  /* Opening hours */
  .ak-oh-card     { padding: 1.375em 1em; }
  .ak-oh-card h4  { font-size: var(--ak-fs-sm); }

  /* Events list (legacy) — ganz gestapelt */
  .ak-event-row {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .ak-event-date {
    flex-direction: row;
    gap: .75em;
    padding: .75em 1.125em;
    justify-content: flex-start;
    align-items: center;
  }
  .ak-event-date__day   { font-size: var(--ak-fs-xl); }
  .ak-event-date__month { margin-top: 0; }
  .ak-event-date__time  { margin-top: 0; margin-left: auto; }
  .ak-event-info        { padding: 1em 1.125em; }

  /* News grid */
  .ak-news-card__img    { height: 180px; }
  .ak-news-card__body   { padding: 1.25em 1.125em 1.375em; }
  .ak-news-card__title  { font-size: var(--ak-fs-md); }

  /* Partner */
  .ak-pg-card           { padding: 1.5em 1.125em; }
  .ak-partner-item      { padding: 1.25em 1em; }
  .ak-partner-item img  { max-height: 48px; }

  /* Saal table */
  .ak-saal-table        { font-size: var(--ak-fs-xs); }

  /* Contact combined */
  .ak-cc-left,
  .ak-cc-right          { padding: 2.25em 1.125em; }

  /* Map */
  .ak-map-wrap iframe   { min-height: 300px; }

  /* Booking form */
  .ak-booking-wrap      { padding: 2em 1em; }
  .ak-booking-heading   { font-size: var(--ak-fs-xl); }
  .ak-booking-type-card__body { padding: 1em 1.125em 1.25em; }

  /* Split-Contact form */
  .ak-sc-form-wrap      { padding: 1.5em 1.125em; }
  .ak-sc-form-title     { font-size: var(--ak-fs-md); margin-bottom: 1em; }

  /* Single hero meta */
  .ak-single-hero__meta { gap: .55em 1.125em; font-size: var(--ak-fs-sm); }

  /* Footer */
  .ak-footer            { padding: 2.5em 1.125em; }
  .ak-footer__grid      { gap: 1.75em; }
  .ak-fbot              { padding: 1em 1.125em; }
  .ak-fbot__copy,
  .ak-fbot__menu li a   { font-size: var(--ak-fs-xs); }
}

/* ════════════════════════════════════════════════════════════════════════════
   MOBILE-HARD-OVERRIDES (≤ 900px)
   Überschreibt Elementor {{WRAPPER}}-Styles via !important, erzwingt:
   - Alle Grid-Widgets in 1 Spalte gestapelt
   - Hero/Page-Hero Bilder als cover
   - Content zentriert in Cards, Info-Bannern, Forms und Footer
   - Reviews: genau 1 Karte sichtbar
   ════════════════════════════════════════════════════════════════════════════ */

@media (max-width: 900px) {

  /* ── 1. HERO IMAGE FIX — inset + cover erzwingen ─────────────────────── */
  .ak-hero {
    height: auto !important;
    min-height: 72vh;
  }
  .ak-hero__bg {
    inset: 0 !important;
  }
  .ak-hero__bg img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center center !important;
    transform: none !important;
  }

  /* ── PAGE HERO (Unterseiten) — Bild-Cover ────────────────────────────── */
  .ak-page-hero {
    height: auto !important;
    min-height: 320px;
  }
  .ak-page-hero__bg {
    position: absolute !important;
    inset: 0 !important;
  }
  .ak-page-hero__bg img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover !important;
  }

  /* ── ALLE GRID-WIDGETS → 1 SPALTE ─────────────────────────────────────
     Overrides für Elementor {{WRAPPER}}-generierte grid-template-columns. */
  .ak-target-grid,
  .ak-zimmer-grid,
  .ak-feat-grid,
  .ak-menu-grid,
  .ak-dest-grid,
  .ak-news-grid,
  .ak-photo-gallery,
  .ak-gallery-grid,
  .ak-photo-gallery--col4,
  .ak-pg-grid,
  .ak-partner-logos,
  .ak-oh-grid,
  .ak-buch-grid,
  .ak-cyclist-features {
    grid-template-columns: 1fr !important;
  }
  /* Stats bar: 1 Spalte (vertikal) — Umkehrung der Desktop-4er-Reihe */
  .ak-stats-bar {
    grid-template-columns: 1fr !important;
  }
  .ak-stat {
    border-right: none;
    border-bottom: 1px solid rgba(255,255,255,.07);
  }
  .ak-stat:last-child { border-bottom: none; }

  /* Gallery-Items: Span-Breiten aufheben, Höhe normalisieren */
  .ak-gallery-item--span2,
  .ak-gallery-item--wide {
    grid-column: auto !important;
    height: 220px !important;
  }
  .ak-gallery-item { height: 220px !important; }

  /* ── KARTEN-INHALT ZENTRIEREN ─────────────────────────────────────────── */
  .ak-target-card,
  .ak-buch-method,
  .ak-menu-card,
  .ak-zimmer-card,
  .ak-oh-card,
  .ak-pg-card,
  .ak-partner-item,
  .ak-cyclist-feat,
  .ak-news-card__body,
  .ak-dest-card__overlay {
    text-align: center !important;
    align-items: center !important;
  }

  /* Icon-Circles in Cards zentrieren (Margin auto) */
  .ak-target-card__icon,
  .ak-buch-icon,
  .ak-zimmer-card__icon {
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* Feature-List-Items (Icon + Text) → vertikal gestapelt & zentriert */
  .ak-feat-item {
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    gap: .5em !important;
  }
  .ak-feat-item__icon { margin-top: 0 !important; }

  /* Target-Card justify-content auf center statt flex-end, damit Icon mittig */
  .ak-target-card {
    justify-content: center !important;
  }
  .ak-target-card__content {
    align-items: center !important;
  }

  /* Booking-Method CTA/Button mittig */
  .ak-buch-method .ak-btn,
  .ak-pg-card .ak-btn,
  .ak-zimmer-card__cta {
    align-self: center !important;
  }
  .ak-pg-card--cta { align-items: center !important; }
  .ak-pg-cta-btn   { align-self: center !important; }

  /* Destination-Card Badge & Bottom zentrieren */
  .ak-dest-badge       { align-self: center !important; }
  .ak-dest-card__bottom { align-items: center !important; }
  .ak-dest-card__dist   { justify-content: center !important; }

  /* News-Card Body zentrieren (+ read-more mittig) */
  .ak-news-card__read-more { align-self: center !important; }

  /* ── INFO BANNER ──────────────────────────────────────────────────────── */
  .ak-info-banner {
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    border-left: none !important;
    border-top: 3px solid var(--ak-p500);
  }

  /* ── REVIEWS: genau 1 Karte pro Viewport ─────────────────────────────── */
  .ak-rev-card {
    flex: 0 0 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
  .ak-rev-track { gap: 1em !important; }

  /* ── CONTACT FORM / INFO / RESERVATION zentriert ─────────────────────── */
  .ak-cform-wrap,
  .ak-cinfo-box,
  .ak-cform__footer {
    text-align: center !important;
    align-items: center !important;
  }
  .ak-cinfo-intro,
  .ak-cform-intro { margin-left: auto !important; margin-right: auto !important; }

  /* KI-Blocks (Icon + Text-Paare) zentriert stacken */
  .ak-ki-block {
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    gap: .5em !important;
  }

  /* Opening-Hours Karten zentriert (h4 hat bereits flex center) */
  .ak-oh-card p { text-align: center !important; }

  /* Booking / Split-Contact Heading zentriert */
  .ak-booking-head { text-align: center !important; }
  .ak-sc-left      { text-align: center !important; align-items: center !important; }
  .ak-sc-left .ak-eyebrow { justify-content: center !important; }

  /* Partner logos: Bild zentrieren */
  .ak-partner-item img { margin-left: auto !important; margin-right: auto !important; }

  /* ── FOOTER: Inhalt zentrieren ───────────────────────────────────────── */
  .ak-footer__grid {
    text-align: center !important;
  }
  .ak-footer__brand,
  .ak-footer__nav,
  .ak-footer__contact {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
  }
  .ak-footer__brand p {
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .ak-footer__social    { justify-content: center !important; }
  .ak-footer__menu li   { text-align: center !important; }
  .ak-footer__contact a,
  .ak-footer__contact p,
  .ak-footer__hours     { text-align: center !important; }

  .ak-fbot {
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
  }
  .ak-fbot__menu { justify-content: center !important; }

  /* Hero-Booking-Strip auch hier als 1 Spalte forcieren (Elementor-safe) */
  .ak-booking-strip { grid-template-columns: 1fr !important; }
  .ak-booking-strip__col {
    grid-column: auto !important;
    border-right: none;
    border-bottom: 1px solid rgba(255,255,255,.1);
  }
  .ak-booking-strip__btn { grid-column: auto !important; }

  /* Events-List (legacy) — Row im 90px 1fr Layout stays, aber Action versteckt */
  .ak-event-action { display: none !important; }
}

/* ── Parallax auf Mobile deaktivieren (JS setzt transform auf img) ─────── */
@media (max-width: 900px) {
  [data-ak-parallax] {
    transform: none !important;
  }
}

/* ════════════════════════════════════════════════════════════════════════════
   MOBILE-CENTERING — Headings, Eyebrows, Split-Bodies, Widget-Heads
   Generelle Zentrierung aller Widget-Inhalte auf Mobile
   ════════════════════════════════════════════════════════════════════════════ */

@media (max-width: 900px) {

  /* ── Eyebrow + Heading Combo (ak-ewh) ───────────────────────────────── */
  .ak-ewh { text-align: center !important; }
  .ak-ewh .ak-eyebrow { justify-content: center !important; }
  .ak-ewh__cta {
    display: flex !important;
    justify-content: center !important;
  }
  .ak-ewh__lead {
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* ── Alle Widget-Heads zentrieren ───────────────────────────────────── */
  .ak-feat-head,
  .ak-tl-head,
  .ak-menu-head,
  .ak-partner-head,
  .ak-saal-head,
  .ak-oh-head,
  .ak-news-head,
  .ak-events-head,
  .ak-dest-head,
  .ak-rev-head {
    text-align: center !important;
    align-items: center !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  .ak-news-head__text,
  .ak-events-head__text {
    align-items: center !important;
    text-align: center !important;
  }

  /* Eyebrows in allen Heads zentriert */
  .ak-feat-head .ak-eyebrow,
  .ak-tl-head .ak-eyebrow,
  .ak-menu-head .ak-eyebrow,
  .ak-partner-head .ak-eyebrow,
  .ak-saal-head .ak-eyebrow,
  .ak-oh-head .ak-eyebrow,
  .ak-news-head .ak-eyebrow,
  .ak-events-head .ak-eyebrow,
  .ak-dest-head .ak-eyebrow,
  .ak-rev-head .ak-eyebrow,
  .ak-cinfo-box .ak-eyebrow,
  .ak-cform-wrap .ak-eyebrow,
  .ak-split__body .ak-eyebrow,
  .ak-sc-left .ak-eyebrow {
    justify-content: center !important;
  }

  /* Heading text-align center in allen Widget-Heads */
  .ak-feat-heading,
  .ak-tl-heading,
  .ak-menu-heading,
  .ak-partner-title,
  .ak-saal-title,
  .ak-oh-heading,
  .ak-news-heading,
  .ak-events-heading,
  .ak-dest-heading,
  .ak-rev-heading,
  .ak-cinfo-title,
  .ak-cform-title,
  .ak-booking-heading,
  .ak-sc-heading,
  .ak-cc-heading,
  .ak-split__heading {
    text-align: center !important;
  }

  /* ── Lead-Texte zentriert ───────────────────────────────────────────── */
  .ak-lead,
  .ak-tl-subtext,
  .ak-feat-wrap .ak-lead,
  .ak-partner-desc,
  .ak-saal-lead,
  .ak-oh-lead,
  .ak-dest-lead,
  .ak-split__text,
  .ak-cc-intro,
  .ak-cinfo-intro,
  .ak-cform-intro,
  .ak-sc-body {
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* ── Split-Body (Kloster/Geschichte etc.) zentrieren ────────────────── */
  .ak-split__body {
    text-align: center !important;
    align-items: center !important;
  }
  .ak-split__body .ak-ewh__cta { justify-content: center !important; }

  /* ── Split-Contact Left-Column zentrieren ───────────────────────────── */
  .ak-sc-left {
    text-align: center !important;
    align-items: center !important;
  }
  .ak-sc-features .ak-ki-list {
    align-items: center !important;
  }

  /* ── News / Events / Dest "Alle anzeigen"-Link mittig ──────────────── */
  .ak-news-head__all,
  .ak-events-head__all,
  .ak-dest-head__all {
    align-self: center !important;
  }

  /* ── Shared KI-Feature-List: bei split-widgets zentriert stacken ───── */
  .ak-ki-list {
    align-items: center !important;
  }
  .ak-ki-item {
    grid-template-columns: 1fr !important;
    justify-items: center !important;
    text-align: center !important;
    gap: .35em 0 !important;
  }
  .ak-ki-list--flat .ak-ki-item { grid-template-columns: 1fr !important; }
  .ak-ki-body { align-items: center !important; }
  .ak-ki-title,
  .ak-ki-desc { text-align: center !important; }

  /* Info-Badges mittig ausrichten */
  .ak-info-badges {
    justify-content: center !important;
  }
}

/* ════════════════════════════════════════════════════════════════════════════
   ROUND 3 — Feinschliff Mobile
   Hero-Centering, Eyebrow-Unification, Info-Banner, Cyclist, Events, Contact,
   Kloster-Heading, News-Cream-Bar, Photo-Gallery, Page-Hero, Zimmer
   ════════════════════════════════════════════════════════════════════════════ */

@media (max-width: 900px) {

  /* ── Hero (Startseite): Überschrift + Beschreibung zentriert ──────── */
  .ak-hero__inner {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    padding-left: 1.25em !important;
    padding-right: 1.25em !important;
  }
  .ak-hero__title {
    text-align: center !important;
    max-width: 100% !important;
  }
  .ak-hero__sub {
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: 520px !important;
  }
  .ak-hero .ak-eyebrow,
  .ak-hero .ak-ewh__lead {
    justify-content: center !important;
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* ── Eyebrow-Strich: überall LINKS vereinheitlichen ───────────────── */
  /* Zentrierte Eyebrows: Strich wieder links (via ::before statt ::after) */
  .ak-eyebrow--center::before {
    content: '' !important;
    width: 24px !important;
    height: 1px !important;
    background: var(--ak-g400) !important;
    flex-shrink: 0 !important;
  }
  .ak-eyebrow--center.ak-eyebrow--light::before { background: var(--ak-g200) !important; }
  .ak-eyebrow--center::after { content: none !important; }
  /* Right-Variant: Strich ebenfalls links erzwingen */
  .ak-ewh--right .ak-eyebrow { justify-content: center !important; }
  .ak-ewh--right { text-align: center !important; }
  .ak-ewh--right .ak-ewh__cta { justify-content: center !important; }

  /* ── Info Banner: wirklich zentriert, auch der Text ───────────────── */
  .ak-info-banner,
  .ak-info-banner--left,
  .ak-info-banner--top {
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    border-left: none !important;
    border-top: 3px solid var(--ak-p500) !important;
    padding: 1.25em 1.125em !important;
    gap: .625em !important;
  }
  .ak-info-banner > *,
  .ak-info-banner p,
  .ak-info-banner span,
  .ak-info-banner strong {
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .ak-info-banner i { margin-top: 0 !important; }

  /* ── Page-Hero (Unterseiten): Eyebrow + H1 zentriert ──────────────── */
  .ak-page-hero__content {
    text-align: center !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
  }
  .ak-page-hero__content .ak-eyebrow {
    justify-content: center !important;
  }
  .ak-page-hero__content h1 {
    text-align: center !important;
    max-width: 100% !important;
    word-break: break-word !important;
    hyphens: auto !important;
  }
  /* Kloster-Seite: lange Überschriften schrumpfen, damit sie nicht in den
     Header rutschen. Greift auch für Page-Hero H1 generell auf Mobile. */
  .ak-page-hero {
    padding-top: 88px !important;
  }
  .ak-page-hero__content h1,
  .ak-single-hero h1 {
    font-size: var(--ak-fs-2xl) !important;
    line-height: 1.15 !important;
  }

  /* ── Zimmer Widget: Head zentriert ────────────────────────────────── */
  .ak-zimmer-head,
  .ak-zimmer-wrap .ak-ewh,
  .ak-zimmer__head {
    text-align: center !important;
    align-items: center !important;
  }
  .ak-zimmer-head .ak-eyebrow,
  .ak-zimmer-wrap .ak-eyebrow {
    justify-content: center !important;
  }

  /* ── Photo Gallery: Head zentriert ────────────────────────────────── */
  .ak-pg-head,
  .ak-photo-gallery__head,
  .ak-gallery-head {
    text-align: center !important;
    align-items: center !important;
    display: flex !important;
    flex-direction: column !important;
  }
  .ak-pg-head .ak-eyebrow,
  .ak-photo-gallery__head .ak-eyebrow,
  .ak-gallery-head .ak-eyebrow {
    justify-content: center !important;
  }
  .ak-pg-heading,
  .ak-photo-gallery__heading,
  .ak-gallery-heading {
    text-align: center !important;
  }

  /* ── Contact Form: "Ihre Anfrage" Titel + Button zentriert ────────── */
  .ak-cform-wrap {
    text-align: center !important;
    align-items: center !important;
  }
  .ak-cform-title,
  .ak-cform-intro {
    text-align: center !important;
  }
  .ak-cform__footer {
    align-items: center !important;
    text-align: center !important;
  }
  .ak-cform__footer .ak-btn,
  .ak-cform__footer button,
  .ak-cform__footer [type="submit"] {
    margin-left: auto !important;
    margin-right: auto !important;
    align-self: center !important;
  }

  /* ── Contact Info "So erreichen Sie": Eyebrow + Head zentriert ───── */
  .ak-cinfo-box,
  .ak-cinfo {
    text-align: center !important;
    align-items: center !important;
  }
  .ak-cinfo-box .ak-eyebrow,
  .ak-cinfo .ak-eyebrow {
    justify-content: center !important;
  }
  .ak-cinfo-title,
  .ak-cinfo-intro {
    text-align: center !important;
  }

  /* ── Contact Combined (Kontakt Info + Formular Widget) ──────────── */
  .ak-cc-wrap {
    grid-template-columns: 1fr !important;
  }
  .ak-cc-left,
  .ak-cc-right {
    text-align: center !important;
    align-items: center !important;
    padding: 2.5em 1.375em !important;
  }
  .ak-cc-left .ak-eyebrow,
  .ak-cc-right .ak-eyebrow,
  .ak-cc-left > .ak-eyebrow,
  .ak-cc-right > .ak-eyebrow {
    justify-content: center !important;
  }
  .ak-cc-heading,
  .ak-cc-intro {
    text-align: center !important;
  }
  .ak-cc-left > *,
  .ak-cc-right > * {
    max-width: 100% !important;
  }

  /* ── Destination Cards (Ausflugsziele): Bild cover erzwingen ─────── */
  .ak-dest-card {
    height: 260px !important;
    min-height: 260px !important;
    overflow: hidden !important;
    position: relative !important;
  }
  .ak-dest-card img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center center !important;
    display: block !important;
  }

  /* ── Cyclist / Rennsteig Section ──────────────────────────────────── */
  .ak-cyclist-section__bg {
    background-position: center center !important;
  }
  .ak-cyclist-section__bg img {
    object-position: center center !important;
  }
  .ak-cyclist-hero__text {
    align-items: center !important;
    text-align: center !important;
    padding: 2.5em 1.375em !important;
  }
  .ak-cyclist-hero__text .ak-eyebrow {
    justify-content: center !important;
  }
  .ak-cyclist__heading {
    text-align: center !important;
    font-size: var(--ak-fs-2xl) !important;
  }
  .ak-cyclist__logo {
    margin: 1em auto 0 !important;
    display: block !important;
    max-width: 140px !important;
    max-height: 56px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
  }
  .ak-cyclist-feat {
    text-align: center !important;
    align-items: center !important;
  }

  /* ── News Grid (Aktuelles): Cream Bar entfernen wenn kein Bild ──── */
  .ak-news-card__img {
    background: transparent !important;
    height: 180px !important;
  }
  .ak-news-card__img:not(:has(img)) {
    display: none !important;
  }
  .ak-news-card__img-link {
    display: block !important;
    line-height: 0 !important;
    font-size: 0 !important;
  }
  /* Falls das Widget eine horizontale Liste statt Grid rendert */
  .ak-news-list .ak-news-card,
  .ak-news-card {
    text-align: center !important;
    align-items: center !important;
  }
  .ak-news-card__body {
    align-items: center !important;
    text-align: center !important;
    padding: 1.125em 1.25em 1.375em !important;
    gap: .375em !important;
  }
  .ak-news-card__date {
    margin-top: 0 !important;
  }

  /* ── Events List: schöneres Kacheldesign auf Mobile ──────────────── */
  .ak-events-list {
    gap: 1em !important;
    border-top: none !important;
  }
  .ak-ev-row {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    border: 1px solid rgba(30, 8, 48, .10) !important;
    border-radius: var(--ak-radius-none) !important;
    overflow: hidden !important;
    background: var(--ak-white) !important;
    box-shadow: 0 2px 8px rgba(30, 8, 48, .05) !important;
  }
  .ak-events-wrap--dark .ak-ev-row,
  .ak-events-wrap--ink .ak-ev-row {
    background: rgba(255,255,255,.04) !important;
    border-color: rgba(255,255,255,.12) !important;
  }
  .ak-ev-date {
    flex-direction: row !important;
    justify-content: center !important;
    gap: .75em !important;
    padding: .875em 1em !important;
    min-height: 0 !important;
    border-radius: var(--ak-radius-none) !important;
    background: var(--ak-p900) !important;
  }
  .ak-ev-date__day {
    font-size: var(--ak-fs-xl) !important;
    margin-bottom: 0 !important;
  }
  .ak-ev-date__month {
    font-size: var(--ak-fs-xs) !important;
  }
  .ak-ev-date__sep {
    width: 1px !important;
    height: 22px !important;
    margin: 0 .25em !important;
  }
  .ak-ev-date__time {
    font-size: var(--ak-fs-xs) !important;
  }
  .ak-ev-content {
    padding: 1.125em 1.25em .5em !important;
    text-align: center !important;
    align-items: center !important;
  }
  .ak-ev-title {
    text-align: center !important;
    font-size: var(--ak-fs-md) !important;
  }
  .ak-ev-desc {
    text-align: center !important;
  }
  .ak-ev-cta {
    padding: 0 1.25em 1.125em !important;
    justify-content: center !important;
  }
  .ak-ev-cta .ak-btn {
    width: 100% !important;
    text-align: center !important;
    justify-content: center !important;
  }
}

/* ── 480px: zusätzliche Feinjustierungen ──────────────────────────────── */
@media (max-width: 480px) {
  .ak-page-hero__content h1,
  .ak-single-hero h1 {
    font-size: var(--ak-fs-xl) !important;
  }
  .ak-cyclist__logo {
    max-width: 120px !important;
    max-height: 48px !important;
  }
}

/* ══════════════════════════════════════════════════════
   CONTACT PERSONS (ak-contact-persons)
══════════════════════════════════════════════════════ */
.ak-cp-wrap { display: flex; flex-direction: column; gap: 1.25em; }
.ak-cp-head { display: flex; flex-direction: column; gap: .5em; }
.ak-cp-title { font-size: var(--ak-fs-xl); font-weight: 600; font-family: var(--ak-font-serif); color: var(--ak-ink); line-height: 1.25; }
.ak-cp-title em { font-style: italic; color: var(--ak-p500); }
.ak-cp-intro { font-size: var(--ak-fs-md); color: var(--ak-tm); line-height: var(--ak-lh-relaxed); margin: 0; }

.ak-cp-grid { display: grid; gap: 1em; }
.ak-cp-grid--1 { grid-template-columns: 1fr; }
.ak-cp-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ak-cp-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.ak-cp-card {
  display: flex;
  flex-direction: column;
  gap: .35em;
  padding: 1.125em 1.25em;
  background: var(--ak-p900);
  border: 1px solid rgba(255, 255, 255, .06);
  border-radius: var(--ak-radius-none);
  color: rgba(255, 255, 255, .78);
}
.ak-cp-name {
  font-family: var(--ak-font-serif);
  font-size: var(--ak-fs-base);
  font-weight: 600;
  color: var(--ak-white);
  line-height: 1.3;
}
.ak-cp-position {
  font-family: var(--ak-font-sans);
  font-size: var(--ak-fs-xs);
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ak-g200);
  margin-bottom: .1em;
}
.ak-cp-task {
  font-family: var(--ak-font-serif);
  font-style: italic;
  font-size: var(--ak-fs-sm);
  color: rgba(255, 255, 255, .66);
  line-height: 1.45;
  margin-bottom: .25em;
}
.ak-cp-line {
  display: inline-flex;
  align-items: center;
  gap: .5em;
  font-size: var(--ak-fs-sm);
  color: rgba(255, 255, 255, .82);
  line-height: 1.4;
  text-decoration: none;
}
.ak-cp-line i { font-size: var(--ak-fs-sm); color: var(--ak-g200); }
.ak-cp-line:hover { color: var(--ak-g200); text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 768px) {
  .ak-cp-grid--2,
  .ak-cp-grid--3 { grid-template-columns: 1fr; }
  .ak-cp-card    { padding: .875em 1em; }
}

/* ── Widget: Textblock (ak-text-block) ──────────────────────────────────── */
.ak-text-block {
  width: 100%;
  margin-inline: auto;
  color: var(--ak-ink);
}
.ak-text-block--left   { text-align: left; }
.ak-text-block--center { text-align: center; margin-inline: auto; }
.ak-text-block--right  { text-align: right; }

.ak-text-block__title {
  font-family: var(--ak-font-serif);
  font-weight: 500;
  font-size: var(--ak-fs-2xl);
  line-height: 1.15;
  color: var(--ak-ink);
  margin-bottom: .9em;
}

.ak-text-block__content {
  font-family: var(--ak-font-sans);
  font-size: var(--ak-fs-base);
  line-height: 1.7;
  color: var(--ak-tm);
}
.ak-text-block__content > * + * { margin-top: 1em; }
.ak-text-block__content h1,
.ak-text-block__content h2,
.ak-text-block__content h3,
.ak-text-block__content h4,
.ak-text-block__content h5,
.ak-text-block__content h6 {
  font-family: var(--ak-font-serif);
  font-weight: 500;
  color: var(--ak-ink);
  line-height: 1.2;
  margin-top: 1.8em;
}
.ak-text-block__content h2 { font-size: var(--ak-fs-xl); }
.ak-text-block__content h3 { font-size: var(--ak-fs-lg); }
.ak-text-block__content h4 { font-size: var(--ak-fs-md); }

.ak-text-block__content ul,
.ak-text-block__content ol {
  padding-left: 1.25em;
}
.ak-text-block__content li + li { margin-top: .35em; }

.ak-text-block__content strong { color: var(--ak-ink); font-weight: 600; }

.ak-text-block__content a {
  color: var(--ak-p500);
  text-decoration: none;
  transition: color var(--ak-transition), text-decoration-color var(--ak-transition);
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
.ak-text-block__content a:hover,
.ak-text-block__content a:focus-visible {
  text-decoration: underline;
  color: var(--ak-p700);
}

.ak-text-block__content blockquote {
  border-left: 3px solid var(--ak-g400);
  padding: .25em 0 .25em 1em;
  font-family: var(--ak-font-serif);
  font-style: italic;
  color: var(--ak-ink);
}

/* Dark variant */
.ak-text-block--dark { color: rgba(255, 255, 255, .88); }
.ak-text-block--dark .ak-text-block__title,
.ak-text-block--dark .ak-text-block__content h1,
.ak-text-block--dark .ak-text-block__content h2,
.ak-text-block--dark .ak-text-block__content h3,
.ak-text-block--dark .ak-text-block__content h4,
.ak-text-block--dark .ak-text-block__content h5,
.ak-text-block--dark .ak-text-block__content h6,
.ak-text-block--dark .ak-text-block__content strong {
  color: var(--ak-white);
}
.ak-text-block--dark .ak-text-block__content { color: rgba(255, 255, 255, .78); }
.ak-text-block--dark .ak-text-block__content a {
  color: var(--ak-g200);
}
.ak-text-block--dark .ak-text-block__content a:hover,
.ak-text-block--dark .ak-text-block__content a:focus-visible {
  color: var(--ak-white);
}
