/*******************************************************************
 * Taurerwirt – Header, Overlay-Menü, Suche & Startseiten-Sektionen
 * Design: Alois Lafer (10/2026) · Umsetzung: mronet.at
 * Lädt NACH style.css (zzz_taurerwirt.typoscript) → Klassen-Selektoren reichen.
 * Entscheidung 06.10.2026: ALLES ECKIG (keine abgerundeten Ecken).
 *******************************************************************/

:root {
  --tw-navy: #293349;
  --tw-gold: #d2be6f;
  --tw-light: #ececec;
  --tw-text: #333333;
  --tw-shadow: 2px 2px 4px rgba(0, 0, 0, 0.4);
  --tw-side: clamp(16px, 4.2vw, 84px);         /* Außenrand lt. Mockup (60px @ 1440) */
  --tw-header-h: 72px;                          /* kompakte Leiste (gescrollt) */
  --tw-ease: cubic-bezier(.2, .7, .2, 1);
}
@media (max-width: 768px) {
  :root { --tw-header-h: 60px; }
}

.vhidden-tw {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* ================================================================
   1. HEADER (fixiert, transparent über Hero → Navy beim Scrollen)
   ================================================================ */
.content-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1000;
  background: transparent;
  height: 0;              /* nimmt keinen Platz ein; Leiste liegt darüber */
}
/* Alter jwsitepackage-Abstand für den fixierten Header entfällt (Leiste liegt über dem Hero) */
.wrapper-content main { padding-top: 0; }
/* Seiten OHNE Hero: Platz für die Leiste freihalten */
.wrapper-content:not(:has(.tw-hero)) main { padding-top: var(--tw-header-h); }
.tw-hero, .tw-fullbleed { scroll-margin-top: var(--tw-header-h); }
.header-fixed .anker { margin-top: calc(-1 * var(--tw-header-h)); }

/* Header liegt über dem Menü-Overlay (gleicher Stapelkontext) */
.tw-header { position: relative; z-index: 1001; }

.tw-header__bar {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  height: clamp(var(--tw-header-h), 7vw, 100px);
  padding: 0 clamp(16px, 2vw, 40px) 0 var(--tw-side);
  background: transparent;
  transition: background-color .35s var(--tw-ease), height .35s var(--tw-ease), box-shadow .35s;
}
.tw-header.is-solid .tw-header__bar,
.wrapper-content:not(:has(.tw-hero)) .tw-header__bar {
  height: var(--tw-header-h);
  background: var(--tw-navy);
  box-shadow: 0 2px 12px rgba(0, 0, 0, .18);
}
html.tw-menu-open .tw-header__bar { background: transparent; box-shadow: none; }

/* Logo: großes Emblem über dem Hero, kompakter Schriftzug in der Leiste */
.tw-header__logo {
  position: absolute;
  left: var(--tw-side);
  top: clamp(10px, 1.1vw, 22px);
  display: block;
  line-height: 0;
  text-decoration: none;
}
.tw-header__logo img { display: block; height: auto; }
.tw-header__logo-full {
  width: clamp(96px, 12vw, 240px);
  filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, .4));
  transition: opacity .3s, transform .35s var(--tw-ease);
  transform-origin: top left;
}
.tw-header__logo-small {
  position: absolute; left: 0; top: 0;
  width: clamp(120px, 11vw, 158px);
  opacity: 0;
  transition: opacity .3s;
}
.tw-header.is-solid .tw-header__logo,
.wrapper-content:not(:has(.tw-hero)) .tw-header__logo {
  top: 50%;
  transform: translateY(-50%);
}
.tw-header.is-solid .tw-header__logo-full,
.wrapper-content:not(:has(.tw-hero)) .tw-header__logo-full { position: absolute; left: 0; top: 0; opacity: 0; pointer-events: none; }
.tw-header.is-solid .tw-header__logo-small,
.wrapper-content:not(:has(.tw-hero)) .tw-header__logo-small { position: static; opacity: 1; }
html.tw-menu-open .tw-header .tw-header__logo-full { position: static; opacity: 1; }
html.tw-menu-open .tw-header .tw-header__logo-small { position: absolute; }
html.tw-menu-open .tw-header .tw-header__logo-small { opacity: 0; }
html.tw-menu-open .tw-header.is-solid .tw-header__logo,
html.tw-menu-open .wrapper-content:not(:has(.tw-hero)) .tw-header__logo { top: clamp(10px, 1.1vw, 22px); transform: none; }

/* Linkfarben: .content-header a (style.css) überstimmen */
.tw-header a.tw-tool, .tw-header a.tw-tool:visited { color: #fff; text-decoration: none; }
.tw-header a.tw-tool:hover, .tw-header a.tw-tool:focus-visible { color: var(--tw-gold); }
.tw-menu a.tw-nav__link, .tw-menu button.tw-nav__link { color: #ececec; text-decoration: none; }
.tw-menu .tw-nav__item.is-open > .tw-nav__link, .tw-menu .tw-nav__link:hover,
.tw-menu .tw-nav__item.is-active > .tw-nav__link { color: var(--tw-gold); }
.tw-menu a.tw-nav__sublink { color: #fff; text-decoration: none; }
.tw-menu a.tw-nav__sublink:hover, .tw-menu a.tw-nav__sublink.is-active { color: var(--tw-gold); }
.tw-menu .tw-menu__extra a { color: #fff; text-decoration: none; }
.tw-menu a.tw-offer, .tw-menu a.tw-offer:hover { text-decoration: none; color: var(--tw-navy); }

/* Werkzeug-Icons rechts */
.tw-tools {
  display: flex;
  align-items: center;
  gap: clamp(14px, 2.6vw, 52px);
  margin: 0; padding: 0;
  list-style: none;
}
.tw-tools li { margin: 0; padding: 0; position: relative; }
.tw-tool,
.tw-lang__current {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px; min-height: 44px;   /* Touch-Ziel */
  padding: 0;
  border: 0; border-radius: 0;
  background: none;
  color: #fff;
  cursor: pointer;
  text-decoration: none;
  filter: drop-shadow(2px 2px 3px rgba(0, 0, 0, .35));
  transition: color .2s;
}
.tw-tool svg { width: clamp(24px, 1.9vw, 34px); height: auto; display: block; }
.tw-tool:hover, .tw-tool:focus-visible,
.tw-lang__current:hover { color: var(--tw-gold); }
.tw-tool:focus-visible, .tw-burger:focus-visible, .tw-lang__current:focus-visible,
.tw-nav__link:focus-visible, .tw-nav__sublink:focus-visible {
  outline: 2px solid var(--tw-gold); outline-offset: 3px;
}
.tw-lang__current {
  position: relative;
  font-family: var(--font-family-normal);
  font-weight: 400;
  font-size: clamp(1.05rem, 1.3vw, 1.4rem);
  letter-spacing: .02em;
  transition: color .8s ease-in-out;
}
/* Sprachwahl wie central-soelden.com: aktive Sprache bekommt eine Linie, die aus der Mitte wächst,
   die Sprachen fallen von oben herein und blenden ein (0,8 s) – hier als eckige Buttons mit Hintergrund. */
.tw-lang__current::after {
  content: "";
  position: absolute; left: 50%; bottom: 5px;
  width: 0; height: 2px;
  background: var(--tw-gold);
  transition: width .8s ease-in-out, left .8s ease-in-out;
}
.tw-lang.is-open .tw-lang__current { color: var(--tw-gold); }
.tw-lang.is-open .tw-lang__current::after { left: 0; width: 100%; }

.tw-lang__list {
  position: absolute;
  top: calc(100% + 10px);
  left: 50%;
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0; padding: 0;
  list-style: none;
  transform: translateX(-50%);
  visibility: hidden;
  pointer-events: none;
  transition: visibility 0s linear .9s;
}
.tw-lang.is-open .tw-lang__list { visibility: visible; pointer-events: auto; transition-delay: 0s; }
.tw-lang__list li {
  margin: 0;
  opacity: 0;
  transform: translateY(-36px);
  transition: opacity .8s ease-in-out, transform .8s ease-in-out;
  transition-delay: calc(var(--i, 0) * 90ms);
}
.tw-lang.is-open .tw-lang__list li { opacity: 1; transform: none; }

/* Sprach-Buttons (Dropdown + Handy-Menü) – eckig, Farbwischer wie die Seitenbuttons */
.content-header .tw-lang__btn {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: block;
  min-width: 132px;
  padding: .62em 1.3em;
  border-radius: 0;
  background: var(--tw-navy);
  color: #fff;
  font-family: var(--font-family-bold);
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.2;
  letter-spacing: .2em;
  text-transform: uppercase;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .3);
  transition: color .35s var(--tw-ease);
}
.content-header .tw-lang__btn::before {
  content: "";
  position: absolute; inset: 0; z-index: -1;
  background: var(--tw-gold);
  transform: translateX(-101%);
  transition: transform .4s var(--tw-ease);
}
.content-header a.tw-lang__btn:hover,
.content-header a.tw-lang__btn:focus-visible { color: var(--tw-navy); text-decoration: none; }
.content-header a.tw-lang__btn:hover::before,
.content-header a.tw-lang__btn:focus-visible::before { transform: translateX(0); }
.content-header a.tw-lang__btn:focus-visible { outline: 2px solid #fff; outline-offset: -4px; }
.content-header .tw-lang__btn.is-active { background: var(--tw-gold); color: var(--tw-navy); cursor: default; }
.content-header .tw-lang__btn.is-disabled { opacity: .45; cursor: default; }
.tw-menu__langs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px !important; }
.tw-menu__langs .tw-lang__btn { min-width: 0; }

/* Tooltip am Mail-Icon */
.tw-tooltip {
  position: absolute;
  top: calc(100% + 4px);
  right: 50%;
  transform: translateX(50%);
  white-space: nowrap;
  font-family: var(--font-family-normal);
  font-size: 1rem;
  color: #fff;
  text-shadow: var(--tw-shadow);
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s;
}
.tw-tool:hover .tw-tooltip, .tw-tool:focus-visible .tw-tooltip { opacity: 1; }

/* Hamburger ☰ → ✕  – Effekt wie central-soelden.com:
   Linien wandern zur Mitte und drehen sich dabei (135° / 225°), mittlere Linie blendet aus (0,8 s ease-in-out).
   Hover (geschlossen): mittlere Linie länger, äußere kürzer. */
.tw-burger {
  --tw-burger-w: clamp(30px, 2.3vw, 42px);
  --tw-burger-h: clamp(2px, .2vw, 3px);
  --tw-burger-gap: clamp(9px, .75vw, 12px);
  position: relative;
  width: 48px; height: 44px;
  padding: 0; border: 0; border-radius: 0;
  background: none;
  color: #fff;
  cursor: pointer;
  filter: drop-shadow(2px 2px 3px rgba(0, 0, 0, .35));
}
.tw-burger__lines,
.tw-burger__lines::before,
.tw-burger__lines::after {
  position: absolute;
  width: var(--tw-burger-w);
  height: var(--tw-burger-h);
  background-color: currentColor;
  transition: all .8s ease-in-out;
}
.tw-burger__lines {
  top: 50%;
  left: calc(50% - var(--tw-burger-w) / 2);
  margin-top: calc(var(--tw-burger-h) / -2);
}
.tw-burger__lines::before,
.tw-burger__lines::after { content: ""; left: 0; }
.tw-burger__lines::before { top: calc(-1 * var(--tw-burger-gap)); }
.tw-burger__lines::after  { top: var(--tw-burger-gap); }

.tw-burger:hover:not([aria-expanded="true"]) .tw-burger__lines { width: calc(var(--tw-burger-w) + 5px); }
.tw-burger:hover:not([aria-expanded="true"]) .tw-burger__lines::before,
.tw-burger:hover:not([aria-expanded="true"]) .tw-burger__lines::after { width: calc(var(--tw-burger-w) - 5px); }

.tw-burger[aria-expanded="true"] .tw-burger__lines { background-color: transparent; }
.tw-burger[aria-expanded="true"] .tw-burger__lines::before { top: 0; transform: rotate(135deg); background-color: #fff; }
.tw-burger[aria-expanded="true"] .tw-burger__lines::after  { top: 0; transform: rotate(225deg); background-color: #fff; }
.tw-burger[aria-expanded="true"]:hover .tw-burger__lines::before,
.tw-burger[aria-expanded="true"]:hover .tw-burger__lines::after { background-color: var(--tw-gold); }

/* Mobil: Sprache + Bilder der Woche wandern ins Menü */
@media (max-width: 600px) {
  .tw-tools__lang, .tw-tools__gallery { display: none; }
  .tw-tooltip { display: none; }
}

/* ================================================================
   2. OVERLAY-MENÜ
   ================================================================ */
.tw-menu {
  position: fixed;
  inset: 0;
  z-index: 999;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: rgba(14, 18, 28, .82);
  opacity: 0;
  visibility: hidden;
  transition: opacity .35s var(--tw-ease), visibility 0s linear .35s;
}
.tw-menu.is-open {
  opacity: 1;
  visibility: visible;
  transition: opacity .35s var(--tw-ease), visibility 0s;
}
html.tw-menu-open { overflow: hidden; }

.tw-menu__inner {
  min-height: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: start;
  gap: clamp(24px, 4vw, 80px);
  padding: clamp(130px, 24vh, 345px) var(--tw-side) 48px clamp(24px, 5.75vw, 115px);
}
.tw-nav,
.tw-nav__subwrap { list-style: none; margin: 0; padding: 0; }
.tw-nav__item { margin: 0; }
.tw-nav__link {
  display: inline-block;
  padding: .12em 0;
  border: 0; border-radius: 0;
  background: none;
  text-align: left;
  cursor: pointer;
  font-family: var(--font-family-headings);
  font-weight: 500;
  font-size: clamp(1.7rem, 2.25vw, 2.75rem);
  line-height: 1.3;
  color: #ececec;
  text-decoration: none;
  transition: color .2s;
}
.tw-nav__item.is-open > .tw-nav__link,
.tw-nav__link:hover,
.tw-nav__item.is-active > .tw-nav__link { color: var(--tw-gold); }
.tw-nav__sub {                       /* Wrapper: 0fr → 1fr = weiches Aufklappen */
  display: grid;
  grid-template-rows: 0fr;
  padding-left: clamp(20px, 2vw, 42px);
  visibility: hidden;
  transition: grid-template-rows .35s var(--tw-ease), padding .35s var(--tw-ease), visibility 0s linear .35s;
}
.tw-nav__subwrap { min-height: 0; overflow: hidden; }
.tw-nav__item.is-open > .tw-nav__sub {
  grid-template-rows: 1fr;
  padding-top: .35em;
  padding-bottom: .9em;
  visibility: visible;
  transition: grid-template-rows .35s var(--tw-ease), padding .35s var(--tw-ease), visibility 0s;
}
.tw-nav__sublink {
  display: inline-block;
  padding: .2em 0;
  font-family: var(--font-family-normal);
  font-weight: 400;
  font-size: clamp(1rem, 1.1vw, 1.3rem);
  line-height: 1.35;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #fff;
  text-decoration: none;
  transition: color .2s;
}
.tw-nav__sublink:hover, .tw-nav__sublink.is-active { color: var(--tw-gold); }
.tw-menu__extra {
  display: none;
  margin-top: 28px; padding-top: 20px;
  border-top: 1px solid rgba(255, 255, 255, .25);
  list-style: none; padding-left: 0;
}
.tw-menu__extra a {
  font-family: var(--font-family-normal); font-size: 1.15rem; letter-spacing: .12em;
  text-transform: uppercase; color: #fff; text-decoration: none;
}
@media (max-width: 600px) { .tw-menu__extra { display: block; } }

/* Angebots-Karte: Gestaltung jetzt in EXT:tw_elements (taurerwirt/angebot) – hier nur die Position im Menü */
.tw-menu__teaser { justify-self: end; width: min(100%, clamp(320px, 25.5vw, 520px)); margin-right: clamp(0px, 9vw, 230px); }

@media (max-width: 900px) {
  .tw-menu__inner { grid-template-columns: 1fr; padding-top: clamp(130px, 30vw, 200px); }
  .tw-menu__teaser { justify-self: start; }
}
@media (max-width: 600px) {
  .tw-menu__teaser { display: none; }
}

/* ================================================================
   3. SUCH-MODAL
   ================================================================ */
.tw-search {
  position: fixed; inset: 0; z-index: 1002;
  display: grid; place-items: center;
  padding: 16px;
  background: rgba(14, 18, 28, .72);
  opacity: 0; visibility: hidden;
  transition: opacity .25s, visibility 0s linear .25s;
}
.tw-search.is-open { opacity: 1; visibility: visible; transition: opacity .25s, visibility 0s; }
.tw-search__box {
  width: min(100%, 972px);
  min-height: min(60vh, 510px);
  background: #fff;
  padding: clamp(28px, 4vw, 84px) clamp(20px, 2.8vw, 56px);
}
.tw-search__label {
  display: block;
  margin: 0 0 .8em clamp(0px, 1.6vw, 32px);
  font-family: var(--font-family-bold); font-weight: 700;
  font-size: 1.15rem; letter-spacing: .04em; text-transform: uppercase;
  color: var(--tw-gold);
}
.tw-search__field { position: relative; }
.tw-search__field input {
  width: 100%;
  height: 82px;
  padding: 0 72px 0 30px;
  border: 2px solid var(--tw-navy);
  border-radius: 0;
  background: #fff;
  font-family: var(--font-family-normal); font-size: 1.6rem; color: var(--tw-navy);
  -webkit-appearance: none; appearance: none;
}
.tw-search__field input:focus { outline: none; border-color: var(--tw-gold); }
.tw-search__close {
  position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
  width: 48px; height: 48px; border: 0; border-radius: 0; background: none;
  font-family: var(--font-family-normal); font-size: 2rem; color: var(--tw-navy); cursor: pointer;
}
.tw-search__close:hover { color: var(--tw-gold); }

/* ================================================================
   4. SEKTIONEN STARTSEITE (Content Blocks taurerwirt/*)
   ================================================================ */
/* Sektionen (Hero, Willkommen, Statement, Bild-Teaser, Badges) liegen jetzt als eigene Elemente
   inkl. CSS in EXT:tw_elements/ContentBlocks/ContentElements/*/assets/frontend.css */

@media (prefers-reduced-motion: reduce) {
  .tw-menu, .tw-search, .tw-nav__sub, .tw-header__bar, .tw-hero__badge, .tw-arrow, .tw-lang__list li, .tw-lang__current::after,
  .tw-burger__lines, .tw-burger__lines::before, .tw-burger__lines::after { transition: none !important; }
}

/* 5. Seitliche Schnellzugriffe → jetzt Element "Taurerwirt: Schnellmenü" (EXT:tw_elements, eigenes CSS) */

/* ================================================================
   6. FOOTER (Badges + Navy-Bereich) – auf allen Seiten gleich
   ================================================================ */
.wrapper-footer .content-footer, .wrapper-footer .content-footer2 { display: none; }   /* alte jweiland-Footer */
.tw-footer-badges .tw-badges { width: auto; margin-left: 0; }                       /* im Footer kein Full-Bleed nötig */
.tw-footer {
  background: var(--tw-navy);
  color: #fff;
  padding: clamp(40px, 4.2vw, 72px) var(--tw-side) clamp(48px, 5vw, 90px);
}
.tw-footer__inner {
  display: grid;
  grid-template-columns: minmax(0, 45fr) minmax(0, 30fr) minmax(0, 25fr);
  gap: clamp(28px, 4vw, 80px);
  max-width: 1880px;
  margin: 0 auto;
}
.tw-footer .tw-footer__title {
  margin: 0 0 .5em;
  font-family: var(--font-family-headings);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(1.9rem, 2.6vw, 2.75rem);
  line-height: 1.1;
  color: #fff;
}
.tw-footer__lead {
  margin: 0 0 1.4em;
  max-width: 30em;
  font-size: clamp(1.05rem, 1.25vw, 1.3rem);
  line-height: 1.45;
  color: #c9cdd6;
}
.tw-nl { max-width: 560px; }
.tw-nl__field { margin: 0 0 .7em; }
.tw-nl__field input {
  display: block; width: 100%; height: 42px;
  padding: 0 12px;
  border: 1px solid #c9cdd6;
  border-radius: 0;
  background: #4a5266;
  color: #fff;
  font-family: var(--font-family-normal); font-size: 1.1rem;
}
.tw-nl__field input:focus { outline: none; border-color: var(--tw-gold); background: #555e74; }
.tw-nl__field label {
  display: block; margin-top: .15em;
  font-size: .95rem; line-height: 1.2; color: #fff;
}
.tw-nl__row { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 1.2em; }
.tw-nl__check { display: flex; align-items: center; gap: 10px; font-size: .95rem; line-height: 1.3; color: #c9cdd6; cursor: pointer; }
.tw-nl__check input { width: 18px; height: 18px; margin: 0; accent-color: var(--tw-gold); border-radius: 0; }
.tw-footer .tw-nl__check a { color: #fff; text-decoration: underline; }
.tw-nl__submit {
  position: relative; overflow: hidden;
  padding: .55em 1.4em;
  border: 2px solid #fff;
  border-radius: 0;
  background: transparent;
  color: #fff;
  font-family: var(--font-family-bold); font-weight: 700; font-size: 1.05rem; letter-spacing: .12em;
  cursor: pointer;
  transition: color .3s, border-color .3s;
}
.tw-nl__submit::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: var(--tw-gold);
  transform: translateX(-101%);
  transition: transform .35s var(--tw-ease);
}
.tw-nl__submit { isolation: isolate; }
.tw-nl__submit:hover, .tw-nl__submit:focus-visible { color: var(--tw-navy); border-color: var(--tw-gold); }
.tw-nl__submit:hover::before, .tw-nl__submit:focus-visible::before { transform: translateX(0); }

.tw-footer__links { list-style: none; margin: 0; padding: 0; }
.tw-footer__links li { margin: 0; }
.tw-footer .tw-footer__links a {
  display: inline-block;
  padding: .08em 0;
  font-family: var(--font-family-bold);
  font-weight: 700;
  font-size: clamp(1.35rem, 1.75vw, 1.9rem);
  line-height: 1.3;
  color: #fff;
  text-decoration: none;
  transition: color .2s, transform .2s;
}
.tw-footer .tw-footer__links a:hover, .tw-footer .tw-footer__links a[aria-current="page"] { color: var(--tw-gold); }
.tw-footer .tw-footer__links a:hover { transform: translateX(4px); }

.tw-footer__address {
  font-style: normal;
  font-size: clamp(.95rem, 1vw, 1.1rem);
  line-height: 1.45;
  color: #fff;
}
.tw-footer__brand { display: block; margin-bottom: .9em; font-size: 1.15em; line-height: 1.15; }
.tw-footer__brand strong { font-weight: 700; letter-spacing: .06em; text-transform: uppercase; font-size: 1.15em; }
.tw-stars { letter-spacing: 0; font-size: .8em; vertical-align: super; }
.tw-footer .tw-footer__address a { color: #fff; text-decoration: none; }
.tw-footer .tw-footer__address a:hover { color: var(--tw-gold); }

@media (max-width: 1023px) {
  .tw-footer__inner { grid-template-columns: 1fr 1fr; }
  .tw-footer__newsletter { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .tw-footer__inner { grid-template-columns: 1fr; }
  .tw-nl__row { flex-direction: column; align-items: flex-start; }
}

/* ================================================================
   7. NACH-OBEN-BUTTON – Gold statt Navy (war auf dem Navy-Footer unsichtbar), eckig
   ================================================================ */
.wrapper-footer .scrollToTop {
  border-radius: 0;
  background: var(--tw-gold);
  box-shadow: 0 4px 14px rgba(0, 0, 0, .25);
}
.wrapper-footer .scrollToTop > a { color: var(--tw-navy); transition: background-color .3s, color .3s; }
.wrapper-footer .scrollToTop > a:hover,
.wrapper-footer .scrollToTop > a:focus { background: var(--tw-navy); color: var(--tw-gold); }

/* ================================================================
   Seitentitel (H1) auf Seiten ohne Hero – SEO: genau eine H1 je Seite
   ================================================================ */
.tw-page-head {
  width: min(100% - 2 * var(--tw-side, 24px), 1200px);
  margin: clamp(24px, 4vw, 56px) auto clamp(8px, 2vw, 24px);
  text-align: center;
}
.tw-page-head .tw-page-title {
  margin: 0;
  font-family: var(--font-family-headings);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(2.3rem, 4.4vw, 4rem);
  line-height: 1.1;
  color: var(--tw-navy, #293349);
  hyphens: auto;
  overflow-wrap: break-word;
}

/* ================================================================
   Brotkrümel (Breadcrumb): Trenner nur zwischen den Einträgen, CI-Optik
   ================================================================ */
.content-rootline .rootline {
  padding-top: 14px;
  font-family: var(--font-family-normal);
  font-size: 1rem;
  letter-spacing: .02em;
  color: #888;
}
.content-rootline nav ul.horizontal li:first-child::before,
.content-rootline nav ul.horizontal li:last-child::after { content: none; }
.content-rootline nav ul.horizontal li::after { content: "/"; color: var(--tw-gold, #d2be6f); }
.content-rootline ul.horizontal li a,
.content-rootline ul.horizontal li > span { padding: 4px 8px; }
.content-rootline ul.horizontal li:first-child a { padding-left: 0; }
.content-rootline ul.horizontal li a { color: var(--tw-navy, #293349); text-decoration: none; }
.content-rootline ul.horizontal li a:hover,
.content-rootline ul.horizontal li a:focus-visible { color: var(--tw-gold, #d2be6f); text-decoration: underline; text-underline-offset: 3px; }
.content-rootline ul.horizontal li > span { color: #888; }

/* ================================================================
   Suche (indexed_search) – Suchseite „Suche“ (uid 139) / „Search“
   ================================================================ */
.frame-type-indexedsearch_pi2 { max-width: 900px; margin: 0 auto clamp(40px, 6vw, 90px); }
#tx_indexedsearch .input-group { display: flex; width: 100%; }
#tx_indexedsearch .tx-indexedsearch-searchbox-sword {
  flex: 1; min-width: 0; height: 58px; padding: 0 18px;
  border: 2px solid var(--tw-navy, #293349); border-right: 0; border-radius: 0;
  font-family: var(--font-family-normal); font-size: 1.25rem; color: var(--tw-text, #333);
}
#tx_indexedsearch .tx-indexedsearch-searchbox-sword:focus { outline: 2px solid var(--tw-gold, #d2be6f); outline-offset: 0; }
#tx_indexedsearch .tx-indexedsearch-searchbox-button {
  width: 58px; height: 58px; padding: 0; border: 0; border-radius: 0;
  background: var(--tw-navy, #293349); color: #fff; cursor: pointer; transition: background-color .25s, color .25s;
}
#tx_indexedsearch .tx-indexedsearch-searchbox-button:hover,
#tx_indexedsearch .tx-indexedsearch-searchbox-button:focus-visible { background: var(--tw-gold, #d2be6f); color: var(--tw-navy, #293349); }
.tx-indexedsearch-info-sword, div.tx-indexedsearch-browsebox { margin-top: 1.1em; color: #888; font-size: 1.05rem; }
.tx-indexedsearch-info-sword-word { color: var(--tw-navy, #293349); font-weight: 700; }
ul.tx-indexedsearch-browsebox { display: inline-flex; gap: .6em; margin: 0 0 0 .6em; padding: 0; list-style: none; }
ul.tx-indexedsearch-browsebox a { color: var(--tw-navy, #293349); }
.tx-indexedsearch-res { padding: 1.3em 0; border-bottom: 1px solid #e3e3e3; }
.tx-indexedsearch-res:first-of-type { margin-top: .8em; border-top: 1px solid #e3e3e3; }
.tx-indexedsearch-res h3 { margin: 0 0 .25em; font-family: var(--font-family-headings); font-weight: 500; font-size: clamp(1.4rem, 2vw, 1.75rem); line-height: 1.2; }
.tx-indexedsearch-res h3 a { color: var(--tw-navy, #293349); text-decoration: none; }
.tx-indexedsearch-res h3 a:hover, .tx-indexedsearch-res h3 a:focus-visible { color: var(--tw-gold, #d2be6f); text-decoration: underline; text-underline-offset: 4px; }
.tx-indexedsearch-description { margin: 0; color: var(--tw-text, #333); }
.tx-indexedsearch-redMarkup { padding: 0 .15em; background: rgba(210, 190, 111, .35); color: var(--tw-navy, #293349); font-weight: 700; }

/* Buchen-Seite (seekda Dynamic Shop) */
.tw-booking { max-width: 1100px; margin: 0 auto clamp(40px, 6vw, 90px); }
/* alles eckig – auch seekda (Farben bitte im seekda-Backend auf Navy #293349 / Gold #d2be6f stellen) */
.tw-booking *, .tw-booking *::before, .tw-booking *::after { border-radius: 0 !important; }
