/*
Theme Name: Automatenwerk
Theme URI: https://automatenwerk.net/
Author: Automatenwerk
Description: Flexibles WordPress-Theme für Automatenwerk mit eigenständigen Designwelten für Flipper, Musikboxen und Arcade sowie frei editierbarem Themenbereich-Template.
Version: 0.1.67
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: automatenwerk
License: GNU General Public License v2 or later
*/

:root {
  --aw-bg: #f3efe7;
  --aw-surface: #fffdf8;
  --aw-text: #20242a;
  --aw-muted: #6a7179;
  --aw-brand-blue: #236589;
  --aw-brand-red: #b23a35;
  --aw-header-bg: rgba(20, 26, 31, .94);
  --aw-header-text: #ffffff;
  --aw-width: 1240px;
  --aw-reading-width: 1040px;
  --aw-calendar-width: 1240px;
  --aw-radius: 18px;
  --aw-footer-padding: 52px;
  --aw-footer-gap: 32px;
  --aw-shadow: 0 18px 50px rgba(14, 20, 26, .12);
  --aw-body-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --aw-heading-font: "Arial Narrow", Impact, Haettenschweiler, sans-serif;
  --aw-body-size: 18px;
  --aw-body-line-height: 1.65;
  --aw-body-letter-spacing: 0em;
  --aw-heading-scale: 1;
  --aw-heading-line-height: .96;
  --aw-heading-letter-spacing: -.03em;
  --aw-heading-transform: none;
  --aw-hero-title-desktop-size: 118px;
  --aw-hero-title-max-width: 11ch;
  --aw-hero-title-mobile-size: 48px;
  --aw-nav-letter-spacing: .02em;
  --aw-nav-transform: none;
  --aw-logo-width: 360px;
  --aw-page-logo-width: 430px;
  --aw-header-logo-offset-x: 0px;
  --aw-header-logo-offset-y: 0px;
  --aw-header-height-desktop: 86px;
  --aw-header-height-mobile: 72px;
  --aw-header-logo-max-height-desktop: 68px;
  --aw-header-logo-max-height-mobile: 54px;
  --aw-page-logo-align: flex-end;
  --aw-page-logo-mobile-align: flex-start;
  --aw-page-logo-offset-x: 0px;
  --aw-page-logo-offset-y: 0px;
  --aw-page-logo-mobile-offset-x: 0px;
  --aw-page-logo-mobile-offset-y: 0px;
  --aw-page-logo-mobile-width: 320px;
  --aw-hero-logo-gap: 64px;
  --aw-page-logo-panel-padding: 24px;
  --aw-motion: 1;
  --aw-cal-accent: #236589;
  --aw-cal-surface: #fffdf8;
  --aw-cal-text: #20242a;

  --aw-flipper-primary: #18394a;
  --aw-flipper-secondary: #e3b04b;
  --aw-flipper-accent: #d74f3f;
  --aw-flipper-bg: #0f2028;
  --aw-flipper-text: #f8f2e8;

  --aw-jukebox-primary: #0f7777;
  --aw-jukebox-secondary: #c7383a;
  --aw-jukebox-accent: #e0b35c;
  --aw-jukebox-bg: #f3e9d2;
  --aw-jukebox-text: #25292b;

  --aw-arcade-primary: #00d6ff;
  --aw-arcade-secondary: #ff3cb8;
  --aw-arcade-accent: #ffe64d;
  --aw-arcade-bg: #090b17;
  --aw-arcade-text: #f5f7ff;

  /* Zusätzliche editierbare Farben */
  --aw-button-text: #ffffff;
  --aw-focus-color: #236589;
  --aw-header-border: #ffffff;
  --aw-brand-fallback-text: #ffffff;
  --aw-brand-fallback-blue: #66b6e3;
  --aw-brand-fallback-red: #ef625d;
  --aw-nav-active-text: #ffffff;
  --aw-menu-border: #ffffff;
  --aw-mobile-menu-bg: #151d23;
  --aw-mobile-menu-text: #ffffff;
  --aw-mobile-menu-active-bg: #26343d;
  --aw-mobile-menu-active-text: #ffffff;
  --aw-mobile-submenu-text: #ffffff;
  --aw-mobile-submenu-accent: #b23a35;
  --aw-mobile-toggle-border: #ffffff;
  --aw-shadow-color: #0e141a;
  --aw-footer-bg: #11171c;
  --aw-footer-text: #b9bec2;
  --aw-footer-link: #ffffff;
  --aw-hero-text-color: #ffffff;
  --aw-hero-kicker-color: #9dc9e2;
  --aw-hero-lead-color: #d7dde1;
  --aw-hero-bg-start: #11191f;
  --aw-hero-bg-mid: #202a30;
  --aw-hero-bg-end: #171c20;
  --aw-hero-overlay-color: #060a0d;
  --aw-hero-logo-panel-color: #ffffff;
  --aw-world-card-text: #ffffff;
  --aw-world-card-muted: #d7dde1;
  --aw-world-card-overlay: #000000;
  --aw-world-card-button-bg: #000000;
  --aw-world-card-button-border: #ffffff;
  --aw-world-card-button-text: #ffffff;
  --aw-world-card-button-hover-bg: #ffffff;
  --aw-world-card-button-hover-border: #ffffff;
  --aw-contact-button-bg: #b23a35;
  --aw-contact-button-text: #ffffff;
  --aw-contact-dialog-bg: #fffdf8;
  --aw-contact-dialog-text: #20242a;
  --aw-contact-muted: #6a7179;
  --aw-contact-dialog-border: #141a1f;
  --aw-contact-dialog-overlay: #05090c;
  --aw-contact-close-bg: #141a1f;
  --aw-contact-input-bg: #fbf9f4;
  --aw-contact-input-text: #20242a;
  --aw-contact-input-border: #20242a;
  --aw-contact-focus: #236589;
  --aw-contact-success-bg: #2e8c4c;
  --aw-contact-success-border: #2e8c4c;
  --aw-contact-success-text: #205f34;
  --aw-contact-error-bg: #b23a35;
  --aw-contact-error-border: #b23a35;
  --aw-contact-error-text: #7d2925;
  --aw-contact-dialog-width: 760px;
  --aw-contact-inline-width: 820px;
  --aw-contact-page-bg: #101820;
  --aw-contact-page-overlay: #071017;
  --aw-contact-page-image: none;
  --aw-contact-page-image-opacity: .55;
  --aw-contact-page-overlay-opacity: .40;
  --aw-contact-page-position: center center;
  --aw-cal-muted: #6a7179;
  --aw-cal-active-text: #ffffff;
  --aw-cal-dialog-bg: #fffdf8;
  --aw-cal-dialog-text: #20242a;
  --aw-cal-dialog-overlay: #070a0d;
  --aw-arcade-scanline-color: #000000;
  --aw-shadow: 0 18px 50px color-mix(in srgb, var(--aw-shadow-color) 12%, transparent);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--aw-text);
  background: var(--aw-bg);
  font: 400 var(--aw-body-size)/var(--aw-body-line-height) var(--aw-body-font);
  letter-spacing: var(--aw-body-letter-spacing);
  text-rendering: optimizeLegibility;
  font-synthesis: weight style;
}
h1, h2, h3, h4, h5, h6 {
  font-family: var(--aw-heading-font);
  letter-spacing: var(--aw-heading-letter-spacing);
  line-height: var(--aw-heading-line-height);
  text-transform: var(--aw-heading-transform);
}
a { color: var(--aw-brand-blue); text-decoration-thickness: .08em; text-underline-offset: .16em; }
a:hover { color: var(--aw-brand-red); }
img { max-width: 100%; height: auto; }
button, input, textarea, select { font: inherit; }
button, .button, .wp-element-button, input[type="submit"] {
  border: 0;
  border-radius: calc(var(--aw-radius) * .55);
  padding: .78rem 1.1rem;
  background: var(--aw-brand-red);
  color: #fff;
  font-weight: 800;
  cursor: pointer;
  transition: transform calc(.18s * var(--aw-motion)) ease, filter calc(.18s * var(--aw-motion)) ease;
}
button:hover, .button:hover, .wp-element-button:hover, input[type="submit"]:hover { transform: translateY(-1px); filter: brightness(1.05); color: #fff; }
:focus-visible { outline: 3px solid var(--aw-brand-blue); outline-offset: 3px; }

.aw-shell { width: min(calc(100% - 32px), var(--aw-width)); margin-inline: auto; }
.aw-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.site-header {
  position: relative;
  z-index: 100;
  color: var(--aw-header-text);
  background: var(--aw-header-bg);
  border-bottom: 1px solid rgba(255,255,255,.09);
  backdrop-filter: blur(14px);
}
body.aw-sticky-header .site-header { position: sticky; top: 0; }
body.admin-bar.aw-sticky-header .site-header { top: 32px; }
.aw-header-inner { min-height: var(--aw-header-height-desktop, 86px); display: flex; align-items: center; gap: 28px; justify-content: space-between; }
.site-branding { display: flex; align-items: center; min-width: 0; transform: translate(var(--aw-header-logo-offset-x, 0px), var(--aw-header-logo-offset-y, 0px)); }
.custom-logo-link, .aw-logo-link { display: inline-flex; align-items: center; }
.custom-logo, .aw-header-logo { width: min(var(--aw-logo-width), 100%); max-height: var(--aw-header-logo-max-height-desktop, 68px); object-fit: contain; }
.aw-header-logo, .aw-page-logo { display: block; height: auto; }
.aw-brand-fallback { font-family: var(--aw-heading-font); font-size: clamp(1.5rem, 3vw, 2.35rem); font-weight: 900; letter-spacing: .02em; text-decoration: none; color: #fff; }
.aw-brand-fallback .aw-blue { color: #66b6e3; }
.aw-brand-fallback .aw-red { color: #ef625d; }
.primary-navigation > ul,
.primary-navigation > .menu { display: flex; gap: 22px; align-items: center; list-style: none; margin: 0; padding: 0; }
.primary-navigation li { position: relative; list-style: none; }
.primary-navigation > ul > li,
.primary-navigation > .menu > li { display: flex; align-items: center; }
.primary-navigation a { color: inherit; text-decoration: none; font-weight: 750; }
.primary-navigation a:hover,
.primary-navigation .current-menu-item > a,
.primary-navigation .current-menu-ancestor > a { color: var(--aw-nav-active-text); text-decoration: underline; text-decoration-color: var(--aw-nav-accent); text-decoration-thickness: 3px; text-underline-offset: 8px; }

/* Untermenüs: auf Desktop verborgen und erst nach unten aufklappend. */
.primary-navigation .sub-menu {
  display: none;
  position: absolute;
  left: 0;
  top: 100%;
  z-index: 220;
  min-width: 230px;
  margin: 0;
  padding: 10px;
  flex-direction: column;
  align-items: stretch;
  gap: 2px;
  list-style: none;
  background: var(--aw-header-bg);
  color: var(--aw-header-text);
  border: 1px solid var(--aw-submenu-border);
  border-radius: 12px;
  box-shadow: var(--aw-shadow);
}
.primary-navigation .sub-menu a { display: block; padding: 10px 12px; white-space: nowrap; border-radius: 8px; }
.primary-navigation .sub-menu a:hover,
.primary-navigation .sub-menu .current-menu-item > a { background: var(--aw-submenu-hover-bg); color: var(--aw-submenu-hover-text); text-decoration: none; }
.primary-navigation .menu-item-has-children:hover > .sub-menu,
.primary-navigation .menu-item-has-children:focus-within > .sub-menu,
.primary-navigation .menu-item-has-children.is-submenu-open > .sub-menu { display: flex; }

/* Weitere Ebenen klappen innerhalb des geöffneten Menüs ebenfalls nach unten auf. */
.primary-navigation .sub-menu .sub-menu { position: static; min-width: 0; margin: 2px 0 4px 10px; padding: 4px 0 4px 10px; border: 0; border-left: 2px solid var(--aw-submenu-accent); border-radius: 0; box-shadow: none; }

.aw-submenu-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin-left: 2px;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  line-height: 1;
}
.aw-submenu-toggle::before { content: "▾"; font-size: .9rem; transition: transform .18s ease; }
.menu-item-has-children.is-submenu-open > .aw-submenu-toggle::before { transform: rotate(180deg); }
.aw-submenu-toggle:hover { transform: none; filter: none; color: var(--aw-nav-active-text, #fff); }
.aw-menu-toggle { display: none; background: transparent; border: 1px solid var(--aw-menu-border); color: inherit; }

.aw-hero {
  position: relative;
  min-height: clamp(500px, 68vh, 760px);
  display: grid;
  place-items: start center;
  overflow: hidden;
  isolation: isolate;
  background: radial-gradient(circle at 25% 20%, rgba(35,101,137,.24), transparent 36%),
              radial-gradient(circle at 80% 25%, rgba(178,58,53,.20), transparent 32%),
              linear-gradient(145deg, #11191f 0%, #202a30 54%, #171c20 100%);
  color: #fff;
}
.aw-hero.has-image::before { content: ""; position: absolute; inset: 0; background-image: var(--aw-hero-image); background-size: cover; background-position: center; z-index: -3; }
.aw-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(6,10,13,.86), rgba(6,10,13,.48) 58%, rgba(6,10,13,.72)); z-index: -2; }
.aw-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, .7fr);
  gap: var(--aw-hero-logo-gap, 64px);
  align-items: center;
  padding-top: var(--aw-hero-padding-top, 90px);
  padding-bottom: var(--aw-hero-padding-bottom, 90px);
}
.aw-hero--no-logo .aw-hero-grid {
  grid-template-columns: minmax(0, 1fr);
}
.aw-hero--no-logo .aw-hero-grid > :first-child {
  max-width: 100%;
}
.aw-kicker { font-family: var(--aw-hero-kicker-font, inherit); text-transform: var(--aw-hero-kicker-transform, uppercase); letter-spacing: var(--aw-hero-kicker-letter-spacing, .2em); font-size: var(--aw-hero-kicker-size, 13px); font-weight: var(--aw-hero-kicker-weight, 900); line-height: var(--aw-hero-kicker-line-height, 1.65); color: var(--aw-hero-kicker-color); }
.aw-hero h1, .aw-world-hero h1, .entry-title, .aw-section-title { font-family: var(--aw-heading-font); font-weight: 900; letter-spacing: var(--aw-heading-letter-spacing); line-height: var(--aw-heading-line-height); text-transform: var(--aw-heading-transform); margin: .3em 0; }
.aw-hero h1 {
  font-size: clamp(3.2rem, 8vw, var(--aw-hero-title-desktop-size, 118px));
  width: fit-content;
  max-width: min(var(--aw-hero-title-max-width, 11ch), 100%);
}
.aw-hero-lead { max-width: 55ch; color: rgba(255,255,255,.82); font-size: clamp(1.05rem, 2vw, 1.35rem); }
.aw-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.aw-hero-mark {
  width: 100%;
  display: flex;
  justify-content: var(--aw-page-logo-align, flex-end);
  align-items: center;
  transform: translate(var(--aw-page-logo-offset-x, 0px), var(--aw-page-logo-offset-y, 0px));
}
.aw-hero-mark__inner {
  width: min(var(--aw-page-logo-width), 100%);
  padding: 0;
  border: 0 solid transparent;
  border-radius: var(--aw-radius);
  background: transparent;
  box-shadow: none;
}
.aw-hero-mark__inner--panel {
  padding: var(--aw-page-logo-panel-padding, 24px);
  border-width: 1px;
  border-style: solid;
}
.aw-hero-mark__inner > .aw-logo-link, .aw-hero-mark__inner > .custom-logo-link { display: flex; width: 100%; }
.aw-hero-mark .custom-logo, .aw-hero-mark .aw-page-logo { display: block; width: 100%; max-height: none; object-fit: contain; margin-inline: auto; }
.aw-hero-mark .aw-brand-fallback { font-size: clamp(2rem, 5vw, 4.6rem); line-height: .92; text-align: center; }

.aw-worlds { padding: clamp(70px, 9vw, 120px) 0; }
.aw-section-head { display: grid; grid-template-columns: minmax(0, .8fr) minmax(300px, 1.2fr); gap: 28px; align-items: end; margin-bottom: 38px; }
.aw-section-title { font-size: clamp(2.6rem, calc(5vw * var(--aw-heading-scale)), calc(5.2rem * var(--aw-heading-scale))); margin: 0; }
.aw-section-intro { color: var(--aw-muted); max-width: 66ch; margin: 0; }
.aw-world-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.aw-world-grid--count-1 { grid-template-columns: minmax(0, 1fr); max-width: 720px; margin-inline: auto; }
.aw-world-grid--count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.aw-world-grid--count-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.aw-world-card {
  position: relative;
  min-height: 470px;
  overflow: hidden;
  border-radius: var(--aw-radius);
  box-shadow: var(--aw-shadow);
  color: #fff;
  text-decoration: none;
  display: flex;
  align-items: end;
  isolation: isolate;
  transform: translateZ(0);
}
.aw-world-card::before, .aw-world-card::after { content: ""; position: absolute; inset: 0; z-index: -2; transition: transform calc(.35s * var(--aw-motion)) ease; }
.aw-world-card::after { z-index: -1; background: linear-gradient(to top, rgba(0,0,0,.87), rgba(0,0,0,.08) 68%); }
.aw-world-card:hover { color: #fff; transform: translateY(-4px); }
.aw-world-card:hover::before { transform: scale(1.035); }
.aw-world-card__content { padding: 28px; }
.aw-world-card__eyebrow { font-family: var(--aw-card-heading-font, var(--aw-heading-font)); font-size: .75rem; text-transform: uppercase; letter-spacing: .19em; font-weight: 900; opacity: .8; }
.aw-world-card h3 { margin: .2rem 0 .5rem; font: 900 clamp(2.2rem, 4vw, 4.2rem)/.94 var(--aw-card-heading-font, var(--aw-heading-font)); }
.aw-world-card p { margin: 0; color: rgba(255,255,255,.82); font-family: var(--aw-card-body-font, var(--aw-body-font)); }
.aw-world-card.has-image::before { background-image: var(--aw-card-image); background-size: cover; background-position: var(--aw-card-position, center); background-repeat: no-repeat; }
.aw-world-card__button { display: inline-flex; align-items: center; margin-top: 18px; padding: 9px 14px; border: 1px solid rgba(255,255,255,.38); border-radius: 999px; background: rgba(0,0,0,.18); color: #fff; font-size: .84rem; font-weight: 800; letter-spacing: .03em; backdrop-filter: blur(4px); }
.aw-world-card:hover .aw-world-card__button { background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.65); }
.aw-world-card--flipper::before { background: radial-gradient(circle at 75% 25%, rgba(227,176,75,.68) 0 3%, transparent 4%), radial-gradient(circle at 68% 34%, rgba(215,79,63,.62) 0 2.5%, transparent 3.2%), linear-gradient(145deg, #173b4b, #0d1f28 62%, #061015); }
.aw-world-card--flipper { --aw-card-heading-font: var(--aw-flipper-heading-font, var(--aw-heading-font)); --aw-card-body-font: var(--aw-flipper-body-font, var(--aw-body-font)); border: 1px solid rgba(227,176,75,.36); }
.aw-world-card--jukebox::before { background: radial-gradient(ellipse at 50% 22%, rgba(255,255,255,.65), transparent 20%), repeating-radial-gradient(ellipse at 50% 0%, rgba(15,119,119,.22) 0 8px, transparent 9px 20px), linear-gradient(155deg, #0f7777, #294f50 45%, #8e2d31); }
.aw-world-card--jukebox { --aw-card-heading-font: var(--aw-jukebox-heading-font, var(--aw-heading-font)); --aw-card-body-font: var(--aw-jukebox-body-font, var(--aw-body-font)); border: 1px solid rgba(255,255,255,.32); }
.aw-world-card--arcade::before { background: linear-gradient(rgba(0,214,255,.09) 1px, transparent 1px), linear-gradient(90deg, rgba(255,60,184,.08) 1px, transparent 1px), radial-gradient(circle at 70% 28%, rgba(255,60,184,.42), transparent 25%), linear-gradient(150deg, #090b17, #111936 56%, #090b17); background-size: 28px 28px, 28px 28px, auto, auto; }
.aw-world-card--arcade { --aw-card-heading-font: var(--aw-arcade-heading-font, var(--aw-heading-font)); --aw-card-body-font: var(--aw-arcade-body-font, var(--aw-body-font)); border: 1px solid rgba(0,214,255,.42); }

.aw-content { padding: clamp(58px, 8vw, 100px) 0; }
.aw-content-card { background: var(--aw-surface); border-radius: var(--aw-radius); box-shadow: var(--aw-shadow); padding: clamp(28px, 5vw, 64px); }
.entry-title { font-size: clamp(2.6rem, calc(6vw * var(--aw-heading-scale)), calc(5.8rem * var(--aw-heading-scale))); }
/* Normale Seiteninhalte erhalten eine eigene, im Customizer einstellbare Breite. */
.entry-content > * { max-width: min(var(--aw-reading-width, 1040px), 100%); margin-left: auto; margin-right: auto; }
.entry-content > .alignwide { max-width: min(var(--aw-width, 1240px), 100%); }
.entry-content > .alignfull { max-width: none; }
/* Kalenderbreite: funktioniert unabhängig davon, ob der Kalender auf der Startseite,
   einer normalen Seite, in einem Shortcode-Block oder im Kalender-Template steht. */
.aw-shell--calendar {
  width: min(calc(100% - 32px), max(var(--aw-width, 1240px), var(--aw-calendar-width, 1240px)));
}
/* Der Kalender darf bewusst aus einem schmaleren Text-/Block-Container ausbrechen. */
.entry-content .aw-calendar,
.aw-content-card .aw-calendar {
  width: min(var(--aw-calendar-width, 1240px), calc(100vw - 32px));
  max-width: none !important;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  margin-left: 0 !important;
  margin-right: 0 !important;
}
/* Gutenberg-Shortcode-/Gruppenblöcke dürfen den Kalender nicht wieder auf Lesebreite begrenzen. */
.aw-shell--calendar .entry-content > .wp-block-shortcode,
.aw-shell--calendar .entry-content > .wp-block-group:has(.aw-calendar),
.aw-shell--calendar .entry-content > .wp-block-columns:has(.aw-calendar) {
  max-width: none;
  width: 100%;
}
@media(max-width:680px){
  .aw-shell--calendar{width:min(calc(100% - 22px),max(var(--aw-width,1240px),var(--aw-calendar-width,1240px)))}
  .entry-content .aw-calendar,.aw-content-card .aw-calendar{width:calc(100vw - 22px)}
}

.aw-world-page { --world-primary: var(--aw-brand-blue); --world-secondary: var(--aw-brand-red); --world-accent: #f2c14e; --world-bg: #101820; --world-text: #fff; background: var(--world-bg); color: var(--world-text); position: relative; isolation: isolate; overflow: hidden; }
.aw-world-motif { position: absolute; inset: 0; z-index: 0; pointer-events: none; background-repeat: no-repeat; background-size: cover; background-position: center center; }
.aw-world-page > * { position: relative; z-index: 1; }
.aw-world-page > .aw-world-motif { position: absolute; z-index: 0; }
.aw-world-page .site-header { background: var(--aw-header-bg); }
.aw-world-page a { color: var(--world-accent); }
.aw-world-hero { min-height: clamp(430px, 56vh, 640px); display: grid; align-items: end; position: relative; overflow: hidden; isolation: isolate; border-bottom: 1px solid color-mix(in srgb, var(--world-primary) 45%, transparent); }
.aw-world-hero::before { content: ""; position: absolute; inset: 0; z-index: -2; background: var(--world-hero-image, none); background-size: cover; background-position: center; opacity: var(--world-hero-image-opacity, .46); }
.aw-world-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to top, var(--world-bg) 4%, color-mix(in srgb, var(--world-bg) 65%, transparent) 62%, color-mix(in srgb, var(--world-primary) 22%, transparent)); opacity: var(--world-hero-overlay-opacity, 1); }
.aw-world-hero__inner { padding-block: clamp(70px, 9vw, 110px); }
.aw-world-hero h1 { font-size: clamp(4rem, calc(10vw * var(--aw-heading-scale)), calc(9rem * var(--aw-heading-scale))); margin: .12em 0; }
.aw-world-hero p { max-width: 60ch; font-size: 1.2rem; color: color-mix(in srgb, var(--world-text) 78%, transparent); }
.aw-world-content { padding: clamp(55px, 8vw, 100px) 0; }
.aw-world-content .entry-content { color: var(--world-text); }
.aw-world-content .wp-block-group, .aw-world-content .wp-block-columns { border-radius: var(--aw-radius); }


/* v0.1.56: Durchgaengige Farbvererbung innerhalb einer Themenwelt.
   Explizit im Gutenberg-Editor gesetzte Text-/Hintergrundfarben bleiben unangetastet. */
.aw-world-page {
  --world-muted: color-mix(in srgb, var(--world-text) 74%, transparent);
  --world-surface: color-mix(in srgb, var(--world-bg) 92%, var(--world-text));
  --world-border: color-mix(in srgb, var(--world-primary) 42%, transparent);
  --world-button-text: var(--world-bg);
}
.aw-world-page .aw-kicker { color: var(--world-accent); }
.aw-world-page .aw-world-hero h1 { color: var(--world-text); }
.aw-world-page .aw-world-hero p { color: var(--world-muted); }
.aw-world-page .aw-world-content h2:not(.has-text-color),
.aw-world-page .aw-world-content h3:not(.has-text-color),
.aw-world-page .aw-world-content h4:not(.has-text-color),
.aw-world-page .aw-world-content h5:not(.has-text-color),
.aw-world-page .aw-world-content h6:not(.has-text-color) { color: var(--world-secondary); }
.aw-world-page .aw-world-content p:not(.has-text-color),
.aw-world-page .aw-world-content li:not(.has-text-color),
.aw-world-page .aw-world-content figcaption:not(.has-text-color) { color: inherit; }
.aw-world-page .aw-world-content a:not(.wp-element-button) { color: var(--world-accent); }
.aw-world-page .aw-world-content a:not(.wp-element-button):hover { color: var(--world-secondary); }
.aw-world-page .aw-world-content :focus-visible { outline-color: var(--world-primary); }
.aw-world-page .aw-world-content .wp-element-button:not(.has-background),
.aw-world-page .aw-world-content .button:not(.has-background),
.aw-world-page .aw-world-content button:not(.has-background),
.aw-world-page .aw-world-content input[type="submit"]:not(.has-background) {
  background: var(--world-secondary);
}
.aw-world-page .aw-world-content .wp-element-button:not(.has-text-color),
.aw-world-page .aw-world-content .button:not(.has-text-color),
.aw-world-page .aw-world-content button:not(.has-text-color),
.aw-world-page .aw-world-content input[type="submit"]:not(.has-text-color) {
  color: var(--world-button-text);
}
.aw-world-page .aw-world-content .wp-element-button:not(.has-text-color):hover,
.aw-world-page .aw-world-content .button:not(.has-text-color):hover,
.aw-world-page .aw-world-content button:not(.has-text-color):hover,
.aw-world-page .aw-world-content input[type="submit"]:not(.has-text-color):hover {
  color: var(--world-button-text);
}
.aw-world-page .aw-world-content .wp-block-separator:not(.has-background),
.aw-world-page .aw-world-content hr:not(.has-background) { border-color: var(--world-border); color: var(--world-border); }
.aw-world-page .aw-world-content blockquote:not(.has-background) {
  border-color: var(--world-primary);
  background: var(--world-surface);
  color: var(--world-text);
}
.aw-world-page .aw-world-content table:not(.has-background) { color: var(--world-text); border-color: var(--world-border); }
.aw-world-page .aw-world-content table:not(.has-background) th,
.aw-world-page .aw-world-content table:not(.has-background) td { border-color: var(--world-border); }

.aw-world-page--flipper { --world-primary: var(--aw-flipper-primary); --world-secondary: var(--aw-flipper-secondary); --world-accent: var(--aw-flipper-accent); --world-bg: var(--aw-flipper-bg); --world-text: var(--aw-flipper-text); --world-button-text: var(--aw-flipper-bg); background-image: radial-gradient(circle at 15% 12%, color-mix(in srgb, var(--world-secondary) 20%, transparent), transparent 22%), linear-gradient(120deg, transparent 0 48%, color-mix(in srgb, var(--world-primary) 28%, transparent) 49% 51%, transparent 52%); }
body.aw-flipper-glow .aw-world-page--flipper { box-shadow: inset 0 0 130px color-mix(in srgb, var(--world-secondary) 9%, transparent); }

.aw-world-page--musikboxen { --world-primary: var(--aw-jukebox-primary); --world-secondary: var(--aw-jukebox-secondary); --world-accent: var(--aw-jukebox-accent); --world-bg: var(--aw-jukebox-bg); --world-text: var(--aw-jukebox-text); --world-button-text: #ffffff; background-image: repeating-radial-gradient(ellipse at 50% -40%, color-mix(in srgb, var(--world-primary) 10%, transparent) 0 10px, transparent 11px 28px); }
.aw-world-page--musikboxen .aw-world-hero::after { background: linear-gradient(to top, var(--world-bg) 3%, color-mix(in srgb, var(--world-bg) 62%, transparent) 65%, color-mix(in srgb, var(--world-secondary) 25%, transparent)); }

.aw-world-page--arcade { --world-primary: var(--aw-arcade-primary); --world-secondary: var(--aw-arcade-secondary); --world-accent: var(--aw-arcade-accent); --world-bg: var(--aw-arcade-bg); --world-text: var(--aw-arcade-text); --world-button-text: var(--aw-arcade-bg); background-image: linear-gradient(color-mix(in srgb, var(--world-primary) 8%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--world-secondary) 7%, transparent) 1px, transparent 1px); background-size: 36px 36px; }
.site-footer { background: #11171c; color: rgba(255,255,255,.72); padding: var(--aw-footer-padding, 52px) 0; }
.aw-footer-grid { display: grid; grid-template-columns: 1fr auto; gap: var(--aw-footer-gap, 28px); align-items: center; }
.site-footer a { color: #fff; }
.aw-footer-site-info .aw-footer-tagline,
.aw-footer-site-info .aw-footer-location { display: block; }
.aw-footer-site-info .aw-footer-location { margin-top: .35em; font-size: .92em; opacity: .9; }
.footer-navigation ul { display: flex; gap: 18px; list-style: none; margin: 0; padding: 0; flex-wrap: wrap; }

/* v0.1.43: frei belegbare Footer-Positionen. */
.aw-footer-positions {
  display: grid;
  gap: var(--aw-footer-gap, 32px);
  align-items: start;
}
.aw-footer-positions--1 { grid-template-columns: minmax(0, 1fr); }
.aw-footer-positions--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.aw-footer-positions--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.aw-footer-positions--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.aw-footer-position { min-width: 0; }
.aw-footer-position--left { text-align: left; }
.aw-footer-position--center { text-align: center; }
.aw-footer-position--right { text-align: right; }
.aw-footer-position .widget { margin: 0 0 22px; }
.aw-footer-position .widget:last-child { margin-bottom: 0; }
.aw-footer-position .widget-title,
.aw-footer-position h2,
.aw-footer-position h3,
.aw-footer-position h4 { color: var(--aw-footer-link); margin-top: 0; }
.aw-footer-position ul { margin-top: 0; padding-left: 1.2em; }
.aw-footer-position--center ul,
.aw-footer-position--right ul { list-style-position: inside; padding-left: 0; }
.aw-footer-position img { max-width: 100%; height: auto; }

/* v0.1.44: freie Footer-Positionen ergänzen den bisherigen Footer statt ihn zu ersetzen. */
.aw-footer-positions + .aw-footer-grid {
  margin-top: 36px;
  padding-top: 28px;
  border-top: 1px solid rgba(255,255,255,.16);
}
.aw-footer-grid--info-only,
.aw-footer-grid--nav-only { grid-template-columns: minmax(0, 1fr); }
.aw-footer-grid--nav-only .footer-navigation { justify-self: end; }

.woocommerce .site-main, .woocommerce-page .site-main { width: min(calc(100% - 32px), var(--aw-width)); margin: 0 auto; padding: 60px 0; }
.woocommerce ul.products li.product, .woocommerce div.product { border-radius: var(--aw-radius); }


/* v0.1.22: Logo-Positionierung auch auf Tablets bis 1024 px eindeutig anwenden. */
@media (max-width: 1024px) {
  .aw-hero-mark {
    justify-content: var(--aw-page-logo-mobile-align, flex-start);
    transform: translate(var(--aw-page-logo-mobile-offset-x, 0px), var(--aw-page-logo-mobile-offset-y, 0px));
  }
  .aw-hero-mark__inner { width: min(var(--aw-page-logo-mobile-width, 320px), 100%); }
}

@media (max-width: 900px) {
  .aw-header-inner { min-height: var(--aw-header-height-mobile, 72px); gap: 14px; }
  .custom-logo, .aw-header-logo { max-height: var(--aw-header-logo-max-height-mobile, 54px); }
  .aw-hero-grid, .aw-section-head { grid-template-columns: 1fr; }
  .aw-hero-mark {
    justify-content: var(--aw-page-logo-mobile-align, flex-start);
    transform: translate(var(--aw-page-logo-mobile-offset-x, 0px), var(--aw-page-logo-mobile-offset-y, 0px));
  }
  .aw-hero-mark__inner { width: min(var(--aw-page-logo-mobile-width, 320px), 100%); }
  .aw-world-grid { grid-template-columns: 1fr; }
  .aw-world-card { min-height: 360px; }
  .aw-menu-toggle { display: inline-flex; }
  .primary-navigation { display: none; position: absolute; left: 16px; right: 16px; top: calc(100% + 8px); background: var(--aw-mobile-menu-bg); color: var(--aw-mobile-menu-text); border-radius: 12px; padding: 18px; box-shadow: var(--aw-shadow); max-height: min(76vh, 620px); overflow-y: auto; }
  .primary-navigation.is-open { display: block; }
  .primary-navigation > ul,
  .primary-navigation > .menu { align-items: stretch; flex-direction: column; gap: 6px; }
  .primary-navigation > ul > li,
  .primary-navigation > .menu > li,
  .primary-navigation .menu-item-has-children { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
  .primary-navigation a { display: block; padding: 9px 6px; color: var(--aw-mobile-menu-text); border-radius: 8px; }
  .primary-navigation > ul > li > a:hover,
  .primary-navigation > .menu > li > a:hover,
  .primary-navigation > ul > .current-menu-item > a,
  .primary-navigation > .menu > .current-menu-item > a,
  .primary-navigation > ul > .current-menu-ancestor > a,
  .primary-navigation > .menu > .current-menu-ancestor > a { background: var(--aw-mobile-menu-active-bg); color: var(--aw-mobile-menu-active-text); text-decoration: none; }
  .primary-navigation .aw-submenu-toggle { width: 38px; height: 38px; margin-left: 6px; color: var(--aw-mobile-menu-text); border: 1px solid var(--aw-mobile-toggle-border); border-radius: 8px; }
  .primary-navigation .aw-submenu-toggle:hover,
  .primary-navigation .menu-item-has-children.is-submenu-open > .aw-submenu-toggle { background: var(--aw-mobile-menu-active-bg); color: var(--aw-mobile-menu-active-text); }
  .primary-navigation .menu-item-has-children > .sub-menu { display: none; position: static; grid-column: 1 / -1; min-width: 0; margin: 2px 0 4px 12px; padding: 4px 0 4px 12px; gap: 2px; background: transparent; color: var(--aw-mobile-submenu-text); border: 0; border-left: 2px solid var(--aw-mobile-submenu-accent); border-radius: 0; box-shadow: none; }
  .primary-navigation .menu-item-has-children.is-submenu-open > .sub-menu { display: flex; }
  .primary-navigation .sub-menu a { padding: 9px 8px; white-space: normal; color: var(--aw-mobile-submenu-text); }
  .primary-navigation .sub-menu a:hover,
  .primary-navigation .sub-menu .current-menu-item > a,
  .primary-navigation .sub-menu .current-menu-ancestor > a { background: var(--aw-mobile-menu-active-bg); color: var(--aw-mobile-menu-active-text); text-decoration: none; }
  .primary-navigation .sub-menu .sub-menu { border-left-color: var(--aw-mobile-submenu-accent); }
}
@media (min-width: 621px) and (max-width: 900px) {
  .aw-hero h1 {
    font-size: min(var(--aw-hero-title-desktop-size, 118px), 12vw);
    max-width: min(var(--aw-hero-title-max-width, 11ch), 100%);
  }
}

@media (max-width: 620px) {
  .aw-contact-page .aw-shell { width: calc(100% - 22px); }
  :root { --aw-body-size: 16px; }
  .aw-shell { width: min(calc(100% - 22px), var(--aw-width)); }
  /* v0.1.37: Lange Hauptüberschriften dürfen auf Smartphones nicht mehr am
     rechten Rand abgeschnitten werden. Die Größe ist separat einstellbar und
     wird zusätzlich an die verfügbare Breite angepasst. */
  .aw-hero-grid > :first-child { min-width: 0; width: 100%; }
  .aw-hero h1 {
    width: 100%;
    max-width: 100%;
    font-size: min(var(--aw-hero-title-mobile-size, 48px), 12vw);
    line-height: max(var(--aw-heading-line-height), 1.02);
    overflow-wrap: anywhere;
    hyphens: auto;
  }
  .aw-world-hero h1 { font-size: clamp(3.4rem, 19vw, 5.8rem); }
  .aw-footer-grid { grid-template-columns: 1fr; }
  .aw-footer-positions { grid-template-columns: 1fr; }
  .aw-footer-position { text-align: left; }
}
/* Funktionsreparaturen v0.1.16: Animationseinstellung und WordPress-Adminleiste. */
body.aw-motion-reduced .aw-world-card:hover { transform: none; }
body.aw-motion-reduced .aw-world-card:hover::before { transform: none; }
body.aw-motion-reduced button:hover,
body.aw-motion-reduced .button:hover,
body.aw-motion-reduced .wp-element-button:hover,
body.aw-motion-reduced input[type="submit"]:hover { transform: none; }
body.aw-motion-expressive .aw-world-card:hover { transform: translateY(-7px); }
body.aw-motion-expressive .aw-world-card:hover::before { transform: scale(1.055); }
body.aw-motion-expressive button:hover,
body.aw-motion-expressive .button:hover,
body.aw-motion-expressive .wp-element-button:hover,
body.aw-motion-expressive input[type="submit"]:hover { transform: translateY(-2px); }
@media (max-width: 782px) { body.admin-bar.aw-sticky-header .site-header { top: 46px; } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

/* Kontaktformular */
.aw-contact-button--header {
  flex: 0 0 auto;
  min-height: 42px;
  padding: .62rem 1rem;
  border-radius: 999px;
  background: var(--aw-brand-red);
  color: #fff;
  white-space: nowrap;
}
.aw-contact-dialog {
  width: min(var(--aw-contact-dialog-width, 760px), calc(100% - 28px));
  max-height: min(88vh, 900px);
  margin: auto;
  padding: 0;
  overflow: auto;
  border: 1px solid rgba(20,26,31,.12);
  border-radius: min(24px, var(--aw-radius));
  background: var(--aw-surface);
  color: var(--aw-text);
  box-shadow: 0 30px 100px rgba(0,0,0,.34);
}
.aw-contact-dialog::backdrop { background: rgba(5,9,12,.72); backdrop-filter: blur(8px); }
.aw-contact-dialog__inner { position: relative; padding: clamp(26px, 5vw, 52px); }
.aw-contact-dialog__head { margin: 0 44px 26px 0; }
.aw-contact-dialog__head h2 { margin: .12em 0 .2em; font: 900 clamp(2.5rem, 7vw, 5.2rem)/.96 var(--aw-heading-font); letter-spacing: -.025em; }
.aw-contact-dialog__head p { margin: 0; max-width: 58ch; color: var(--aw-muted); }
.aw-contact-close {
  position: absolute;
  right: 16px;
  top: 14px;
  width: 42px;
  height: 42px;
  padding: 0;
  border-radius: 50%;
  background: rgba(20,26,31,.08);
  color: var(--aw-text);
  font-size: 2rem;
  line-height: 1;
}
.aw-contact-close:hover { color: var(--aw-text); background: rgba(20,26,31,.14); }
.aw-contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.aw-contact-field { margin-bottom: 17px; }
.aw-contact-field label { display: block; margin-bottom: 7px; font-weight: 800; }
.aw-contact-optional { margin-left: .25em; color: var(--aw-muted); font-size: .78em; font-weight: 500; }
.aw-contact-field input,
.aw-contact-field textarea,
.aw-contact-field select {
  display: block;
  width: 100%;
  border: 1px solid color-mix(in srgb, var(--aw-text) 20%, transparent);
  border-radius: calc(var(--aw-radius) * .55);
  padding: .76rem .84rem;
  background: color-mix(in srgb, var(--aw-surface) 96%, var(--aw-text));
  color: var(--aw-text);
  outline: none;
}
.aw-contact-field textarea { min-height: 150px; resize: vertical; }
.aw-contact-field input:focus,
.aw-contact-field textarea:focus,
.aw-contact-field select:focus { border-color: var(--aw-brand-blue); box-shadow: 0 0 0 3px color-mix(in srgb, var(--aw-brand-blue) 18%, transparent); }
.aw-contact-privacy { margin: 2px 0 18px; color: var(--aw-muted); font-size: .86rem; line-height: 1.55; }
.aw-contact-submit { min-width: 170px; }
.aw-contact-submit:disabled { opacity: .65; cursor: wait; }
.aw-contact-status[hidden] { display: none; }
.aw-contact-status { margin: 0 0 18px; padding: 12px 14px; border-radius: calc(var(--aw-radius) * .55); font-weight: 650; }
.aw-contact-status--success { background: rgba(46,140,76,.12); border: 1px solid rgba(46,140,76,.3); }
.aw-contact-status--error { background: rgba(178,58,53,.10); border: 1px solid rgba(178,58,53,.28); }
.aw-contact-hp { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.aw-contact-inline { max-width: var(--aw-contact-inline-width, 820px); margin-inline: auto; padding: clamp(24px,5vw,52px); border-radius: var(--aw-radius); background: var(--aw-contact-dialog-bg, var(--aw-surface)); color: var(--aw-contact-dialog-text, var(--aw-text)); box-shadow: var(--aw-shadow); }
/* Kontaktseite mit frei einstellbarem technischem Hintergrund. */
.aw-contact-page {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-color: var(--aw-contact-page-bg, #101820);
  background-image:
    radial-gradient(circle at 14% 18%, color-mix(in srgb, var(--aw-brand-blue) 30%, transparent), transparent 28%),
    radial-gradient(circle at 86% 74%, color-mix(in srgb, var(--aw-brand-red) 18%, transparent), transparent 30%),
    linear-gradient(color-mix(in srgb, #ffffff 5%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, #ffffff 5%, transparent) 1px, transparent 1px);
  background-size: auto, auto, 46px 46px, 46px 46px;
}
.aw-contact-page::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image: var(--aw-contact-page-image, none);
  background-size: cover;
  background-position: var(--aw-contact-page-position, center center);
  background-repeat: no-repeat;
  opacity: var(--aw-contact-page-image-opacity, .55);
}
.aw-contact-page::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--aw-contact-page-overlay, #071017);
  opacity: var(--aw-contact-page-overlay-opacity, .40);
}
.aw-contact-page .aw-shell {
  width: min(calc(100% - 32px), max(var(--aw-width, 1240px), var(--aw-contact-inline-width, 820px)));
  max-width: none;
}
.aw-contact-page .entry-content > .wp-block-shortcode:has(.aw-contact-inline),
.aw-contact-page .entry-content > .wp-block-group:has(.aw-contact-inline),
.aw-contact-page .entry-content > .wp-block-columns:has(.aw-contact-inline) {
  width: 100%;
  max-width: var(--aw-contact-inline-width, 820px);
}
.aw-contact-page .aw-content-card { background: transparent; box-shadow: none; padding-block: 0; }
.aw-contact-page .entry-title { color: #fff; text-shadow: 0 3px 18px rgba(0,0,0,.45); }
.aw-contact-page .entry-content > p:not(.aw-contact-privacy) { color: rgba(255,255,255,.88); }

body:has(.aw-contact-dialog[open]) { overflow: hidden; }

@media (max-width: 900px) {
  .site-branding { flex: 1 1 auto; }
  .aw-contact-button--header { padding-inline: .85rem; }
}
@media (max-width: 620px) {
  .aw-contact-grid { grid-template-columns: 1fr; gap: 0; }
  .aw-contact-dialog { width: calc(100% - 16px); max-height: 94vh; border-radius: 16px; }
  .aw-contact-dialog__inner { padding: 24px 18px; }
  .aw-contact-dialog__head { margin-right: 38px; }
  .aw-contact-button--header { min-height: 38px; padding: .52rem .72rem; font-size: .88rem; }
  .aw-menu-toggle { padding: .52rem .7rem; font-size: .88rem; }
}

/* === Kalender =========================================================== */
/* Die Kalenderseite hat eine eigene Breite und ist nicht mehr an die globale Inhaltsbreite gebunden. */
.aw-calendar-page .aw-shell{width:min(calc(100% - 32px),var(--aw-calendar-width,1240px));max-width:none}
@media(max-width:680px){.aw-calendar-page .aw-shell{width:min(calc(100% - 22px),var(--aw-calendar-width,1240px))}}

.aw-calendar-page .aw-section-heading{max-width:min(var(--aw-reading-width,1040px),100%);margin-bottom:34px}
.aw-calendar{color:var(--aw-cal-text);background:var(--aw-cal-surface);border:1px solid color-mix(in srgb,var(--aw-cal-text) 12%,transparent);border-radius:var(--aw-radius);box-shadow:var(--aw-shadow);padding:clamp(16px,3vw,28px);overflow:hidden}
.aw-calendar__toolbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;margin-bottom:20px}
.aw-calendar__nav,.aw-calendar__views{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.aw-calendar__period{margin:0;text-align:center;font-family:var(--aw-heading-font);font-size:clamp(1.35rem,2.5vw,2.15rem);line-height:1.05;text-transform:capitalize}
.aw-calendar__button{appearance:none;border:1px solid color-mix(in srgb,var(--aw-cal-text) 18%,transparent);border-radius:999px;background:transparent;color:inherit;min-height:40px;padding:8px 13px;font-weight:750;cursor:pointer;transition:calc(.18s * var(--aw-motion)) ease}
.aw-calendar__button:hover,.aw-calendar__button.is-active{background:var(--aw-cal-accent);border-color:var(--aw-cal-accent);color:#fff}
.aw-calendar__filters{display:flex;gap:8px;flex-wrap:wrap;padding:0 0 18px;margin:0 0 18px;border-bottom:1px solid color-mix(in srgb,var(--aw-cal-text) 10%,transparent)}
.aw-cal-filter{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border-radius:999px;background:color-mix(in srgb,var(--filter-color) 13%,transparent);font-size:.88rem;font-weight:700;cursor:pointer}
.aw-cal-filter input{accent-color:var(--filter-color)}
.aw-cal-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));font-weight:800;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--aw-muted);border-bottom:1px solid color-mix(in srgb,var(--aw-cal-text) 12%,transparent)}
.aw-cal-weekdays span{padding:8px;text-align:center}
.aw-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid color-mix(in srgb,var(--aw-cal-text) 10%,transparent)}
.aw-cal-day{min-height:142px;padding:7px;border-right:1px solid color-mix(in srgb,var(--aw-cal-text) 10%,transparent);border-bottom:1px solid color-mix(in srgb,var(--aw-cal-text) 10%,transparent);background:transparent}
.aw-cal-day.is-outside{opacity:.42}.aw-cal-day.is-today{background:color-mix(in srgb,var(--aw-cal-accent) 8%,transparent)}
.aw-cal-day__head{display:flex;justify-content:flex-end;margin-bottom:5px;font-weight:800}.aw-cal-day.is-today .aw-cal-day__head span{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:var(--aw-cal-accent);color:#fff}
.aw-cal-day__events{display:grid;gap:5px}
.aw-cal-event{position:relative;display:flex;align-items:flex-start;gap:7px;width:100%;border:0;border-left:4px solid var(--event-color);border-radius:7px;background:color-mix(in srgb,var(--event-color) 12%,transparent);color:inherit;padding:8px 9px;text-align:left;line-height:1.25;font-weight:700;cursor:pointer}
.aw-cal-event:hover{background:color-mix(in srgb,var(--event-color) 22%,transparent)}.aw-cal-event--compact{font-size:.74rem;padding:6px 7px}.aw-cal-event__time{font-size:.78em;opacity:.72;white-space:nowrap}
.aw-cal-week{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));gap:9px;overflow-x:auto;padding-bottom:4px}.aw-cal-week__day{border:1px solid color-mix(in srgb,var(--aw-cal-text) 10%,transparent);border-radius:13px;min-height:260px;padding:10px}.aw-cal-week__day.is-today{border-color:var(--aw-cal-accent);background:color-mix(in srgb,var(--aw-cal-accent) 6%,transparent)}.aw-cal-week__day h3{display:flex;justify-content:space-between;gap:8px;margin:0 0 10px;font-size:.92rem}.aw-cal-week__day h3 span{color:var(--aw-muted)}.aw-cal-week__day>div{display:grid;gap:7px}.aw-cal-empty-day{color:var(--aw-muted);text-align:center}
.aw-cal-list{display:grid;gap:8px}.aw-cal-list__date{margin:20px 0 4px;padding-bottom:7px;border-bottom:1px solid color-mix(in srgb,var(--aw-cal-text) 12%,transparent);font-size:1.15rem}.aw-cal-list__date:first-child{margin-top:0}.aw-cal-list__event{display:grid;grid-template-columns:95px 1fr;gap:14px;width:100%;padding:13px 15px;border:1px solid color-mix(in srgb,var(--aw-cal-text) 10%,transparent);border-radius:12px;background:transparent;color:inherit;text-align:left;cursor:pointer}.aw-cal-list__event:hover{background:color-mix(in srgb,var(--aw-cal-accent) 6%,transparent);border-color:color-mix(in srgb,var(--aw-cal-accent) 35%,transparent)}.aw-cal-list__time{font-weight:800}.aw-cal-list__main{display:grid;gap:3px}.aw-cal-list__main>span:not(.aw-cal-list__chips){color:var(--aw-muted)}.aw-cal-list__chips,.aw-calendar-dialog__chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:5px}.aw-cal-chip{display:inline-flex;padding:4px 8px;border-radius:999px;background:color-mix(in srgb,var(--chip-color) 15%,transparent);border:1px solid color-mix(in srgb,var(--chip-color) 35%,transparent);font-size:.75rem;font-weight:750}.aw-cal-no-events{padding:48px 20px;text-align:center;color:var(--aw-muted)}
.aw-calendar-dialog{width:min(720px,calc(100% - 28px));max-height:min(88vh,860px);padding:0;border:0;border-radius:20px;background:var(--aw-surface);color:var(--aw-text);box-shadow:0 28px 90px rgba(0,0,0,.3);overflow:auto}.aw-calendar-dialog::backdrop{background:rgba(7,10,13,.72);backdrop-filter:blur(5px)}.aw-calendar-dialog__inner{position:relative;padding:clamp(23px,5vw,44px)}.aw-calendar-dialog__close{position:absolute;right:15px;top:11px;z-index:2;border:0;background:transparent;color:inherit;font-size:2rem;cursor:pointer}.aw-calendar-dialog__image{display:block;width:calc(100% + clamp(46px,10vw,88px));max-width:none;margin:calc(-1 * clamp(23px,5vw,44px)) calc(-1 * clamp(23px,5vw,44px)) 26px;aspect-ratio:16/7;object-fit:cover}.aw-calendar-dialog h2{margin:14px 0 10px;font-size:clamp(1.8rem,4vw,3rem)}.aw-calendar-dialog__date{font-weight:800}.aw-calendar-dialog__location{color:var(--aw-muted)}.aw-calendar-dialog__description{line-height:1.65}.aw-calendar-dialog__link{display:inline-flex;padding:10px 16px;border-radius:999px;background:var(--aw-cal-accent,#236589);color:#fff;text-decoration:none;font-weight:800}
.aw-upcoming-events{display:grid;gap:10px}.aw-upcoming-event{display:grid;grid-template-columns:110px 1fr auto;align-items:center;gap:14px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--aw-text) 10%,transparent);border-radius:12px;background:var(--aw-surface)}.aw-upcoming-event__date{font-weight:800;color:var(--aw-brand-blue)}
@media(max-width:900px){.aw-calendar__toolbar{grid-template-columns:1fr}.aw-calendar__period{grid-row:1;text-align:left}.aw-calendar__views{justify-content:flex-start}.aw-cal-day{min-height:115px}.aw-cal-event--compact .aw-cal-event__time{display:none}}
@media(max-width:680px){.aw-calendar{padding:12px;border-radius:14px}.aw-cal-weekdays{display:none}.aw-cal-grid{display:block;border-left:0}.aw-cal-day{display:grid;grid-template-columns:52px 1fr;min-height:0;border-left:0;border-right:0;padding:9px 4px}.aw-cal-day.is-outside{display:none}.aw-cal-day__head{justify-content:flex-start;align-items:flex-start}.aw-cal-day__events{min-height:30px}.aw-cal-event--compact{font-size:.86rem}.aw-cal-event--compact .aw-cal-event__time{display:inline}.aw-cal-list__event{grid-template-columns:1fr}.aw-upcoming-event{grid-template-columns:1fr;gap:4px}}

/* Lokaler Schriftarten-Manager und fein steuerbare Typografie */
.aw-world-page--flipper .aw-kicker { font-family: var(--aw-flipper-heading-font, var(--aw-heading-font)); }
.aw-world-page--musikboxen .aw-kicker { font-family: var(--aw-jukebox-heading-font, var(--aw-heading-font)); }
.aw-world-page--arcade .aw-kicker { font-family: var(--aw-arcade-heading-font, var(--aw-heading-font)); }
.primary-navigation {
  font-family: var(--aw-nav-font, var(--aw-body-font));
  letter-spacing: var(--aw-nav-letter-spacing);
  text-transform: var(--aw-nav-transform);
}

.aw-world-page--flipper {
  font-family: var(--aw-flipper-body-font, var(--aw-body-font));
  font-size: var(--aw-flipper-body-size, var(--aw-body-size));
  line-height: var(--aw-flipper-body-line-height, var(--aw-body-line-height));
  letter-spacing: var(--aw-flipper-body-letter-spacing, var(--aw-body-letter-spacing));
}
.aw-world-page--flipper h1,
.aw-world-page--flipper h2,
.aw-world-page--flipper h3,
.aw-world-page--flipper h4 {
  font-family: var(--aw-flipper-heading-font, var(--aw-heading-font));
  line-height: var(--aw-flipper-heading-line-height, var(--aw-heading-line-height));
  letter-spacing: var(--aw-flipper-heading-letter-spacing, var(--aw-heading-letter-spacing));
  text-transform: var(--aw-flipper-heading-transform, var(--aw-heading-transform));
}
.aw-world-page--flipper .aw-world-hero h1 { font-size: clamp(3.5rem, calc(10vw * var(--aw-flipper-heading-scale, 1)), calc(9rem * var(--aw-flipper-heading-scale, 1))); }

.aw-world-page--musikboxen {
  font-family: var(--aw-jukebox-body-font, var(--aw-body-font));
  font-size: var(--aw-jukebox-body-size, var(--aw-body-size));
  line-height: var(--aw-jukebox-body-line-height, var(--aw-body-line-height));
  letter-spacing: var(--aw-jukebox-body-letter-spacing, var(--aw-body-letter-spacing));
}
.aw-world-page--musikboxen h1,
.aw-world-page--musikboxen h2,
.aw-world-page--musikboxen h3,
.aw-world-page--musikboxen h4 {
  font-family: var(--aw-jukebox-heading-font, var(--aw-heading-font));
  line-height: var(--aw-jukebox-heading-line-height, var(--aw-heading-line-height));
  letter-spacing: var(--aw-jukebox-heading-letter-spacing, var(--aw-heading-letter-spacing));
  text-transform: var(--aw-jukebox-heading-transform, var(--aw-heading-transform));
}
.aw-world-page--musikboxen .aw-world-hero h1 { font-size: clamp(3.5rem, calc(10vw * var(--aw-jukebox-heading-scale, 1)), calc(9rem * var(--aw-jukebox-heading-scale, 1))); }

.aw-world-page--arcade {
  font-family: var(--aw-arcade-body-font, var(--aw-body-font));
  font-size: var(--aw-arcade-body-size, var(--aw-body-size));
  line-height: var(--aw-arcade-body-line-height, var(--aw-body-line-height));
  letter-spacing: var(--aw-arcade-body-letter-spacing, var(--aw-body-letter-spacing));
}
.aw-world-page--arcade h1,
.aw-world-page--arcade h2,
.aw-world-page--arcade h3,
.aw-world-page--arcade h4 {
  font-family: var(--aw-arcade-heading-font, var(--aw-heading-font));
  line-height: var(--aw-arcade-heading-line-height, var(--aw-heading-line-height));
  letter-spacing: var(--aw-arcade-heading-letter-spacing, var(--aw-heading-letter-spacing));
  text-transform: var(--aw-arcade-heading-transform, var(--aw-heading-transform));
}
.aw-world-page--arcade .aw-world-hero h1 { font-size: clamp(3.5rem, calc(10vw * var(--aw-arcade-heading-scale, 1)), calc(9rem * var(--aw-arcade-heading-scale, 1))); }


/* Farbzuordnungen der editierbaren Theme-Einstellungen */
button, .button, .wp-element-button, input[type="submit"] { color: var(--aw-button-text); }
button:hover, .button:hover, .wp-element-button:hover, input[type="submit"]:hover { color: var(--aw-button-text); }
:focus-visible { outline-color: var(--aw-focus-color); }
.site-header { border-bottom-color: color-mix(in srgb, var(--aw-header-border) 9%, transparent); }
.aw-brand-fallback { color: var(--aw-brand-fallback-text); }
.aw-brand-fallback .aw-blue { color: var(--aw-brand-fallback-blue); }
.aw-brand-fallback .aw-red { color: var(--aw-brand-fallback-red); }
.primary-navigation a:hover, .primary-navigation .current-menu-item > a { color: var(--aw-nav-active-text); }
.aw-menu-toggle { border-color: color-mix(in srgb, var(--aw-menu-border) 25%, transparent); }
.aw-hero {
  color: var(--aw-hero-text-color);
  background:
    radial-gradient(circle at 25% 20%, color-mix(in srgb, var(--aw-brand-blue) 24%, transparent), transparent 36%),
    radial-gradient(circle at 80% 25%, color-mix(in srgb, var(--aw-brand-red) 20%, transparent), transparent 32%),
    linear-gradient(145deg, var(--aw-hero-bg-start) 0%, var(--aw-hero-bg-mid) 54%, var(--aw-hero-bg-end) 100%);
}
.aw-hero::after { background: linear-gradient(90deg, color-mix(in srgb, var(--aw-hero-overlay-color) 86%, transparent), color-mix(in srgb, var(--aw-hero-overlay-color) 48%, transparent) 58%, color-mix(in srgb, var(--aw-hero-overlay-color) 72%, transparent)); }
.aw-hero-lead { color: var(--aw-hero-lead-color); }
.aw-hero-mark__inner--panel { border-color: color-mix(in srgb, var(--aw-hero-logo-panel-color) 12%, transparent); background: color-mix(in srgb, var(--aw-hero-logo-panel-color) 5%, transparent); box-shadow: 0 20px 80px color-mix(in srgb, var(--aw-shadow-color) 22%, transparent); }
.aw-world-card { color: var(--aw-world-card-text); }
.aw-world-card::after { background: linear-gradient(to top, color-mix(in srgb, var(--aw-world-card-overlay) 87%, transparent), color-mix(in srgb, var(--aw-world-card-overlay) 8%, transparent) 68%); }
.aw-world-card:hover { color: var(--aw-world-card-text); }
.aw-world-card p { color: var(--aw-world-card-muted); }
.aw-world-card__button { border-color: color-mix(in srgb, var(--aw-world-card-button-border) 38%, transparent); background: color-mix(in srgb, var(--aw-world-card-button-bg) 18%, transparent); color: var(--aw-world-card-button-text); }
.aw-world-card:hover .aw-world-card__button { background: color-mix(in srgb, var(--aw-world-card-button-hover-bg) 14%, transparent); border-color: color-mix(in srgb, var(--aw-world-card-button-hover-border) 65%, transparent); }
.aw-world-card--flipper::before { background: radial-gradient(circle at 75% 25%, color-mix(in srgb,var(--aw-flipper-secondary) 68%,transparent) 0 3%, transparent 4%), radial-gradient(circle at 68% 34%, color-mix(in srgb,var(--aw-flipper-accent) 62%,transparent) 0 2.5%, transparent 3.2%), linear-gradient(145deg, var(--aw-flipper-primary), var(--aw-flipper-bg) 62%, color-mix(in srgb,var(--aw-flipper-bg) 78%,var(--aw-shadow-color))); }
.aw-world-card--flipper { border-color: color-mix(in srgb, var(--aw-flipper-secondary) 36%, transparent); }
.aw-world-card--jukebox::before { background: radial-gradient(ellipse at 50% 22%, color-mix(in srgb,var(--aw-world-card-text) 65%,transparent), transparent 20%), repeating-radial-gradient(ellipse at 50% 0%, color-mix(in srgb,var(--aw-jukebox-primary) 22%,transparent) 0 8px, transparent 9px 20px), linear-gradient(155deg, var(--aw-jukebox-primary), color-mix(in srgb,var(--aw-jukebox-primary) 62%,var(--aw-jukebox-bg)) 45%, var(--aw-jukebox-secondary)); }
.aw-world-card--jukebox { border-color: color-mix(in srgb, var(--aw-world-card-text) 32%, transparent); }
.aw-world-card--arcade::before { background: linear-gradient(color-mix(in srgb,var(--aw-arcade-primary) 9%,transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb,var(--aw-arcade-secondary) 8%,transparent) 1px, transparent 1px), radial-gradient(circle at 70% 28%, color-mix(in srgb,var(--aw-arcade-secondary) 42%,transparent), transparent 25%), linear-gradient(150deg, var(--aw-arcade-bg), color-mix(in srgb,var(--aw-arcade-bg) 72%,var(--aw-arcade-primary)) 56%, var(--aw-arcade-bg)); background-size: 28px 28px, 28px 28px, auto, auto; }
.aw-world-card--arcade { border-color: color-mix(in srgb, var(--aw-arcade-primary) 42%, transparent); }
/* v0.1.56: Keine spaete globale Ruecksetzung der Bereichsfarben.
   Flipper, Musikboxen, Arcade und freie Themenbereiche behalten ihre eigene Palette. */
body.aw-arcade-scanlines .aw-world-page--arcade::after { content: ""; position: fixed; pointer-events: none; inset: 0; z-index: 6; opacity: .07; background: repeating-linear-gradient(to bottom, var(--aw-arcade-scanline-color) 0 1px, transparent 1px 4px); }
.site-footer { background: var(--aw-footer-bg); color: var(--aw-footer-text); }
.site-footer a { color: var(--aw-footer-link); }
@media (max-width: 900px) { .primary-navigation { background: var(--aw-mobile-menu-bg); } }

/* Kontaktformular */
.aw-contact-button--header { background: var(--aw-contact-button-bg); color: var(--aw-contact-button-text); }
.aw-contact-dialog { border-color: color-mix(in srgb,var(--aw-contact-dialog-border) 12%,transparent); background: var(--aw-contact-dialog-bg); color: var(--aw-contact-dialog-text); box-shadow: 0 30px 100px color-mix(in srgb,var(--aw-shadow-color) 34%,transparent); }
.aw-contact-dialog::backdrop { background: color-mix(in srgb,var(--aw-contact-dialog-overlay) 72%,transparent); }
.aw-contact-dialog__head p, .aw-contact-optional, .aw-contact-privacy { color: var(--aw-contact-muted); }
.aw-contact-close { background: color-mix(in srgb,var(--aw-contact-close-bg) 8%,transparent); color: var(--aw-contact-dialog-text); }
.aw-contact-close:hover { color: var(--aw-contact-dialog-text); background: color-mix(in srgb,var(--aw-contact-close-bg) 14%,transparent); }
.aw-contact-field input,.aw-contact-field textarea,.aw-contact-field select { border-color: color-mix(in srgb,var(--aw-contact-input-border) 20%,transparent); background: var(--aw-contact-input-bg); color: var(--aw-contact-input-text); }
.aw-contact-field input:focus,.aw-contact-field textarea:focus,.aw-contact-field select:focus { border-color: var(--aw-contact-focus); box-shadow: 0 0 0 3px color-mix(in srgb,var(--aw-contact-focus) 18%,transparent); }
.aw-contact-status--success { background: color-mix(in srgb,var(--aw-contact-success-bg) 12%,transparent); border-color: color-mix(in srgb,var(--aw-contact-success-border) 30%,transparent); color: var(--aw-contact-success-text); }
.aw-contact-status--error { background: color-mix(in srgb,var(--aw-contact-error-bg) 10%,transparent); border-color: color-mix(in srgb,var(--aw-contact-error-border) 28%,transparent); color: var(--aw-contact-error-text); }
.aw-contact-inline { background: var(--aw-contact-dialog-bg); color: var(--aw-contact-dialog-text); }

/* Kalender */
.aw-calendar { color: var(--aw-cal-text); background: var(--aw-cal-surface); }
.aw-calendar__button:hover,.aw-calendar__button.is-active,.aw-cal-day.is-today .aw-cal-day__head span { color: var(--aw-cal-active-text); }
.aw-cal-weekdays,.aw-cal-week__day h3 span,.aw-cal-empty-day,.aw-cal-list__main>span:not(.aw-cal-list__chips),.aw-cal-no-events,.aw-calendar-dialog__location { color: var(--aw-cal-muted); }
.aw-calendar-dialog { background: var(--aw-cal-dialog-bg); color: var(--aw-cal-dialog-text); box-shadow: 0 28px 90px color-mix(in srgb,var(--aw-shadow-color) 30%,transparent); }
.aw-calendar-dialog::backdrop { background: color-mix(in srgb,var(--aw-cal-dialog-overlay) 72%,transparent); }
.aw-calendar-dialog__link { color: var(--aw-cal-active-text); }
.aw-upcoming-event__date { color: var(--aw-cal-accent); }


/* v0.1.48 – sichtbaren Seitentitel pro Seite ausblendbar, semantische H1 bleibt erhalten. */
.aw-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.aw-calendar-dialog__external { margin-top: 20px; }
.aw-calendar-dialog__external-note {
  margin: 0 0 10px;
  font-size: .84rem;
  line-height: 1.45;
  color: var(--aw-cal-muted, var(--aw-muted));
}

/* v0.1.55: Frei editierbarer Themenbereich – Arcade-Grundlayout ohne feste Inhalte. */
body.page-template-page-themenbereich .aw-free-world {
  background-color: var(--world-bg);
  overflow: hidden;
  color: var(--world-text);
  font-family: var(--aw-free-body-font, var(--aw-arcade-body-font, var(--aw-body-font)));
  font-size: var(--aw-free-body-size, 18px);
  line-height: var(--aw-free-body-line-height, 1.65);
  letter-spacing: var(--aw-free-body-letter-spacing, 0em);
  position: relative;
}
body.page-template-page-themenbereich .aw-free-world--grid {
  background-image:
    linear-gradient(color-mix(in srgb, var(--world-primary) 8%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, var(--world-secondary) 7%, transparent) 1px, transparent 1px);
  background-size: 36px 36px;
}
body.page-template-page-themenbereich .aw-free-world--no-grid { background-image: none; }
body.page-template-page-themenbereich .aw-free-world .aw-kicker,
body.page-template-page-themenbereich .aw-free-world h1,
body.page-template-page-themenbereich .aw-free-world h2,
body.page-template-page-themenbereich .aw-free-world h3,
body.page-template-page-themenbereich .aw-free-world h4 {
  font-family: var(--aw-free-heading-font, var(--aw-arcade-heading-font, var(--aw-heading-font))) !important;
  line-height: var(--aw-free-heading-line-height, .96);
  letter-spacing: var(--aw-free-heading-letter-spacing, .02em);
  text-transform: var(--aw-free-heading-transform, uppercase);
}
body.page-template-page-themenbereich .aw-free-world .aw-world-hero__inner {
  padding-block: var(--aw-free-hero-padding, 90px);
}
body.page-template-page-themenbereich .aw-free-world .aw-world-hero h1 {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  font-size: clamp(3rem, calc(8vw * var(--aw-free-heading-scale, 1)), calc(8rem * var(--aw-free-heading-scale, 1)));
  line-height: max(1.02, var(--aw-free-heading-line-height, .96));
  overflow-wrap: anywhere;
  word-break: normal;
  hyphens: auto;
  text-wrap: balance;
  padding-block: .08em;
}
@media (max-width: 900px) {
  body.page-template-page-themenbereich .aw-free-world .aw-world-hero h1 {
    font-size: clamp(2.7rem, calc(10vw * var(--aw-free-heading-scale, 1)), calc(6.25rem * var(--aw-free-heading-scale, 1)));
  }
}
@media (max-width: 620px) {
  body.page-template-page-themenbereich .aw-free-world .aw-world-hero h1 {
    font-size: clamp(2.2rem, calc(11vw * var(--aw-free-heading-scale, 1)), calc(4.6rem * var(--aw-free-heading-scale, 1)));
    line-height: max(1.06, var(--aw-free-heading-line-height, .96));
  }
}
body.page-template-page-themenbereich .aw-free-world .aw-world-hero::before {
  background-position: var(--world-hero-position, center center);
}
body.page-template-page-themenbereich .aw-free-world .aw-world-hero::after {
  background: linear-gradient(to top, var(--world-bg) 4%, color-mix(in srgb, var(--world-bg) 65%, transparent) 62%, color-mix(in srgb, var(--world-primary) 22%, transparent));
}
body.page-template-page-themenbereich .aw-free-world .aw-world-content {
  padding-block: var(--aw-free-content-padding, 80px);
}
body.page-template-page-themenbereich .aw-free-world--scanlines::after {
  content: "";
  position: fixed;
  pointer-events: none;
  inset: 0;
  z-index: 6;
  opacity: .07;
  background: repeating-linear-gradient(to bottom, var(--aw-arcade-scanline-color, #000) 0 1px, transparent 1px 4px);
}
body.page-template-page-themenbereich .aw-free-world--no-scanlines::after { content: none !important; }
