/* static/site_frame.css — Rahmen aller öffentlichen Seiten (body.public-page)
 *
 * Zeichenpapier statt blauem Band, eigene Schrift, Kopf mit ruhiger
 * Navigation, Untermenü genau unter dem Menüpunkt, neues Handy-Menü,
 * schlichter Fuß. Eingebunden in base.html NACH styles.css.
 * Die Inhaltsblöcke der CMS-Seiten stehen in static/site.css.
 *
 * Die App (/app/...) ist nicht betroffen: dort fehlt body.public-page.
 */

@font-face {
  font-family: 'WP Bricolage';
  font-style: normal;
  font-display: swap;
  font-weight: 200 800;
  font-stretch: 75% 100%;
  src: url('./FONTS/Bricolage/bricolage-grotesque-latin-standard-normal.woff2') format('woff2-variations');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'WP Bricolage';
  font-style: normal;
  font-display: swap;
  font-weight: 200 800;
  font-stretch: 75% 100%;
  src: url('./FONTS/Bricolage/bricolage-grotesque-latin-ext-standard-normal.woff2') format('woff2-variations');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

html:has(body.public-page) { background: #F4F5F7; }

body.public-page {
  --hp-paper: #F4F5F7;
  --hp-white: #FFFFFF;
  --hp-ink: #000000;
  --hp-blue: #0007FF;
  --hp-yellow: #E1FF00;
  --hp-graphite: #5E626B;
  --hp-rule: rgba(0, 7, 255, .22);
  --hp-font: 'WP Bricolage', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --hp-gutter: clamp(20px, 4vw, 56px);
  background: var(--hp-paper);
  color: var(--hp-ink);
  font-family: var(--hp-font);
  font-optical-sizing: auto;
  -webkit-font-smoothing: antialiased;
}
/* das blaue Band hinter dem Kopf */
body.public-page::before { display: none; }

body.public-page ::selection { background: var(--hp-yellow); color: var(--hp-ink); }
body.public-page :focus-visible { outline: 2px solid var(--hp-blue); outline-offset: 3px; border-radius: 4px; }

/* ── Kopf ──────────────────────────────────────────────────────────────── */
body.public-page span.logo-wordmark {
  font-family: var(--hp-font);
  font-weight: 700;
  font-stretch: 85%;
  letter-spacing: -.01em;
  font-size: 26px;
  color: var(--hp-ink);
}
body.public-page #logo { font-family: var(--hp-font); }
body.public-page #logo:hover { background: none; animation: none; }
body.public-page #logo h2#current-time {
  font-family: var(--hp-font);
  font-weight: 500;
  font-size: 12px;
  background: transparent;
  color: var(--hp-graphite);
  padding: 2px 0 0;
  margin: 0;
  text-align: left;
}
body.public-page #user-icon-btn,
body.public-page .menu-btn {
  background: var(--hp-white);
  border: 0;
  border-radius: 999px;
  box-shadow: none;
}
body.public-page #user-icon-btn:hover,
body.public-page .menu-btn:hover { background: var(--hp-yellow); }

/* Eintrag „Kostenlos starten“ gibt es nur im Handy-Menü */
body.public-page .nav-links li.nav-cta { display: none; }

/* ── Navigation am Desktop ─────────────────────────────────────────────── */
@media (min-width: 1401px) {
  body.public-page nav#main-navigation > ul.nav-links { gap: 6px; padding-top: 24px; }
  body.public-page .nav-links li {
    border: 0;
    min-width: 0;
    padding: 6px 12px;
    border-radius: 999px;
    text-transform: none;
    font-size: 15px;
    font-weight: 500;
    text-align: left;
  }
  body.public-page .nav-links li a {
    color: var(--hp-ink);
    text-transform: none;
    font-weight: 500;
    font-family: var(--hp-font);
  }
  body.public-page .nav-links li:hover,
  body.public-page .nav-links li.nav-item:hover,
  body.public-page .nav-links li.has-dropdown:hover { background: var(--hp-white); }
  body.public-page .nav-links li:hover > a,
  body.public-page .nav-links li.nav-item:hover > a,
  body.public-page .nav-links li.has-dropdown:hover > .dropdown-parent { color: var(--hp-blue); }

  /* Untermenü genau unter dem Menüpunkt: kein Versatz, kein Einzug der Liste */
  body.public-page .nav-dropdown {
    left: 0;
    top: calc(100% + 8px);
    transform: none;
    margin: 0;
    padding: 8px 0;
    min-width: 100%;
    width: max-content;
    text-align: left;
    background: var(--hp-white);
    border-radius: 14px;
    box-shadow: 0 18px 40px -18px rgba(0, 0, 0, .25);
  }
  /* Brücke über die Lücke, damit das Menü beim Hinüberfahren offen bleibt */
  body.public-page .nav-dropdown::before {
    content: "";
    position: absolute;
    left: 0; right: 0; top: -10px;
    height: 10px;
  }
  body.public-page .nav-dropdown li,
  body.public-page .nav-dropdown li:hover {
    background: transparent;
    padding: 7px 12px;
    border-radius: 0;
    white-space: nowrap;
    font-size: 15px;
  }
  body.public-page .nav-dropdown li a { color: var(--hp-ink); }
  body.public-page .nav-dropdown li:hover a { color: var(--hp-blue); }
}

/* ── Handy-Menü (bis 1400px) ───────────────────────────────────────────── */
@media (max-width: 1400px) {
  /* Kopfzeile: Wortmarke links, Knöpfe rechts — eine Zeile */
  body.public-page #menu-top-right {
    position: absolute;
    top: 16px;
    right: var(--hp-gutter);
    z-index: 10002;
  }
  body.public-page #logo {
    position: absolute;
    left: var(--hp-gutter);
    top: 18px;
    margin: 0;
    padding: 0;
    text-align: left;
    width: auto;
  }
  body.public-page main#app { padding-top: 64px; }
  body.public-page .nav-links li.has-dropdown > a.dropdown-parent:focus,
  body.public-page .nav-links li.has-dropdown > a.dropdown-parent:focus-visible { outline: none; }
  body.public-page .menu-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    position: relative;
  }
  body.public-page .menu-btn .icon { width: 16px; height: 16px; }
  /* geöffnet: aus den drei Strichen wird ein Kreuz */
  html.menu-open body.public-page .menu-btn { background: var(--hp-ink); }
  html.menu-open body.public-page .menu-btn .icon { display: none; }
  html.menu-open body.public-page .menu-btn::before,
  html.menu-open body.public-page .menu-btn::after {
    content: "";
    position: absolute;
    width: 16px;
    height: 2px;
    background: var(--hp-white);
    border-radius: 2px;
  }
  html.menu-open body.public-page .menu-btn::before { transform: rotate(45deg); }
  html.menu-open body.public-page .menu-btn::after { transform: rotate(-45deg); }
  html.menu-open body.public-page #user-login { visibility: hidden; }
  html.menu-open body.public-page #logo { z-index: 10002; }

  body.public-page #main-navigation.wp-mobile-sheet {
    position: fixed;
    inset: 0;
    max-height: none;
    margin: 0;
    background: var(--hp-paper);
    border: 0;
    box-shadow: none;
    padding: 104px var(--hp-gutter) 40px;
    box-sizing: border-box;
    overflow-y: auto;
    opacity: 0;
    transform: translateY(-12px);
    transition: opacity .22s ease, transform .22s ease;
  }
  html.menu-open body.public-page #main-navigation.wp-mobile-sheet { opacity: 1; transform: none; }
  html.menu-open body.public-page .menu-backdrop { opacity: 0; pointer-events: none; }

  body.public-page nav#main-navigation > ul.nav-links {
    display: block;
    padding: 0;
    margin: 0 auto;
    max-width: 640px;
  }
  body.public-page .nav-links li,
  body.public-page .nav-links li:hover {
    display: block;
    padding: 0;
    margin: 0;
    min-width: 0;
    border: 0;
    border-radius: 0;
    outline: 0;
    background: transparent;
    text-align: left;
    text-transform: none;
    list-style: none;
  }
  body.public-page .nav-links li a {
    display: block;
    width: auto;
    padding: 8px 0;
    font-family: var(--hp-font);
    font-size: clamp(1.6rem, 6vw, 2.1rem);
    font-weight: 600;
    font-stretch: 90%;
    letter-spacing: -.02em;
    line-height: 1.15;
    text-transform: none;
    color: var(--hp-ink);
  }
  body.public-page .nav-links li a:hover,
  body.public-page .nav-links li a:focus-visible { color: var(--hp-blue); }

  /* Gruppen: Überschrift klein, darunter die Seiten — immer aufgeklappt */
  body.public-page .nav-links > li.has-dropdown {
    padding-top: 18px;
    margin-top: 14px;
    border-top: 1px solid var(--hp-rule);
  }
  body.public-page .nav-links > li.has-dropdown:first-child { border-top: 0; margin-top: 0; padding-top: 0; }
  body.public-page .nav-links li.has-dropdown > a.dropdown-parent {
    font-size: .95rem;
    font-weight: 500;
    font-stretch: 100%;
    letter-spacing: 0;
    color: var(--hp-graphite);
    padding: 0 0 4px;
    pointer-events: none;
  }
  body.public-page .has-dropdown > ul.nav-dropdown {
    display: block !important;
    position: static !important;
    transform: none !important;
    background: transparent;
    padding: 0 !important;
    margin: 0 !important;
  }
  /* einzelne Punkte nach den Gruppen: mit eigener Linie abgesetzt */
  body.public-page .nav-links > li.has-dropdown + li.nav-item {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--hp-rule);
  }
  body.public-page .nav-links li.nav-cta { display: block; margin-top: 28px; }
  body.public-page .nav-links li.nav-cta a {
    display: inline-block;
    font-size: 1.1rem;
    font-weight: 600;
    font-stretch: 100%;
    letter-spacing: 0;
    background: var(--hp-yellow);
    color: var(--hp-ink);
    padding: .8em 1.5em;
    border-radius: 999px;
  }
}
@media (max-width: 1400px) and (prefers-reduced-motion: reduce) {
  body.public-page #main-navigation.wp-mobile-sheet { transition: none; transform: none; }
}

/* ── Fuß ───────────────────────────────────────────────────────────────── */
body.public-page #footer {
  font-family: var(--hp-font);
  background: transparent;
  border-top: 1px solid var(--hp-rule);
  box-sizing: border-box;
  width: calc(100% - 2 * var(--hp-gutter));
  max-width: calc(1360px - 2 * var(--hp-gutter));
  margin: 40px auto 0;
  padding: 28px 0 48px;
  text-align: left;
  float: none;
  clear: both;
  position: static;
  transform: none;
}
body.public-page #footer p,
body.public-page #footer h4,
body.public-page #footer a {
  font-family: var(--hp-font);
  color: var(--hp-graphite);
  font-weight: 400;
  font-size: .85rem;
  text-align: left;
  border: 0;
  width: auto;
  max-width: 60em;
  margin: 0 0 8px;
  padding: 0;
}
body.public-page #footer a:hover { color: var(--hp-blue); }
