/* Lokale Schriften (siehe /font, Lizenzen liegen daneben) */

/* Inter – SIL Open Font License 1.1, variable Schrift (400–900) */
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 400 900;
    font-display: swap;
    src: url('../font/inter-latin-ext.woff2') format('woff2');
    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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 400 900;
    font-display: swap;
    src: url('../font/inter-latin.woff2') format('woff2');
    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;
}

/* Noto Sans JP – SIL Open Font License 1.1, nur die Glyphen für „ニッポン“ */
@font-face {
    font-family: 'Noto Sans JP';
    font-style: normal;
    font-weight: 800 900;
    font-display: swap;
    src: url('../font/noto-sans-jp-nippon.woff2') format('woff2');
    unicode-range: U+309A, U+30C3, U+30CB, U+30DB, U+30DD, U+30F3;
}

/* Covered By Your Grace – SIL Open Font License 1.1 */
@font-face {
    font-family: 'Covered By Your Grace';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../font/covered-by-your-grace-latin.woff2') format('woff2');
    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;
}

body {
    font-family: 'Inter', sans-serif;
}

/* Handschriftlicher Schriftzug unter dem Logo */
.brand-wordmark {
    margin: 0;
    font-family: 'Covered By Your Grace', cursive;
    font-weight: 400;
    font-size: clamp(2.25rem, 5vw, 4.5rem);
    line-height: 1.1;
    letter-spacing: 0.02em;
    transform: rotate(-2deg);
}

.brand-wordmark .brand-tld {
    font-size: 0.45em;
    margin-left: 0.05em;
}

/* Vertikaler Katakana-Text */
.katakana-vertical {
    writing-mode: vertical-rl;
    text-orientation: upright;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 900;
}

/* „Japan“ und Katakana als ein Block, eng und mittig im Stern */
.jp-promo-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0;
}

.jp-promo-label .katakana-vertical {
    margin-left: 0.1em;
}

/* Haupt-Oval in Gelb (TV-Werbe-Stil) */
.jp-promo-badge {
    background-color: #ffe600;
    border: 3px solid #ffffff;
    outline: 2px solid #000000;
    border-radius: 50% / 50%;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4);
    transform: rotate(-6deg);
    transition: all 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 3px 5px;
    /* Proportionale Größe: ca. halb so breit wie das Logo (15vw) */
    width: 15vw;
    min-width: 140px;
    max-width: 250px;
    animation: subtle-bounce 3s infinite ease-in-out;
}

.jp-promo-badge:hover {
    transform: rotate(-2deg) scale(1.08);
    box-shadow: 0 12px 28px rgba(255, 230, 0, 0.6), 0 8px 20px rgba(0, 0, 0, 0.5);
}

.jp-promo-badge:active {
    transform: scale(0.95) rotate(-6deg);
}

/* Sichtbarer Tastaturfokus, zusätzlich zum schwarzen Design-Rand */
.jp-promo-badge:focus {
    outline: 2px solid #000000;
}

.jp-promo-badge:focus-visible {
    outline: 3px solid #0f172a;
    outline-offset: 5px;
}

/* Roter Gezackter Stern / Burst im Oval – als eigene Ebene hinter dem Text,
   damit der clip-path die Schrift nicht abschneidet */
.jp-starburst-inner {
    position: relative;
    isolation: isolate;
    width: 100%;
    padding: 12px 14px;
}

.jp-starburst-inner::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background-color: #e60012;
    clip-path: polygon(
        50% 0%, 63% 12%, 80% 4%, 85% 21%, 100% 20%,
        93% 37%, 100% 53%, 89% 68%, 95% 85%, 77% 88%,
        70% 100%, 53% 91%, 38% 99%, 30% 84%, 12% 87%,
        16% 69%, 0% 58%, 10% 42%, 1% 26%, 19% 19%,
        18% 2%, 35% 10%, 45% 0%
    );
    border-radius: 6px;
}

/* Typografie mit plakativem Rand */
.jp-text-stroke {
    color: #ffffff;
    text-shadow:
        -2px -2px 0 #000,
         2px -2px 0 #000,
        -2px  2px 0 #000,
         2px  2px 0 #000,
         0px  3px 6px rgba(0,0,0,0.6);
}

.jp-katakana-stroke {
    color: #ffffff;
    text-shadow:
        -1.5px -1.5px 0 #000,
         1.5px -1.5px 0 #000,
        -1.5px  1.5px 0 #000,
         1.5px  1.5px 0 #000;
}

/* Sanfte Animation */
@keyframes subtle-bounce {
    0%, 100% { transform: rotate(-6deg) translateY(0); }
    50% { transform: rotate(-6deg) translateY(-4px); }
}

@media (prefers-reduced-motion: reduce) {
    .jp-promo-badge {
        animation: none;
        transition: none;
    }
}

/* Fußzeile: Rechtliches mittig, Japan-Button rechts darüber bzw. am Rand */
.site-footer {
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    gap: 1.5rem;
}

.site-footer .jp-promo-badge {
    align-self: flex-end;
}

@media (min-width: 640px) {
    .site-footer {
        display: grid;
        grid-template-columns: 1fr auto 1fr;
        align-items: end;
    }

    .site-footer .legal-nav {
        grid-column: 2;
    }

    .site-footer .jp-promo-badge {
        grid-column: 3;
        justify-self: end;
    }
}

.legal-nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.35rem 1.25rem;
    width: 100%;
    font-size: 0.875rem;
    line-height: 1.4;
    text-align: center;
}

.legal-nav a {
    color: #57534e;
    text-decoration: none;
}

.legal-nav a[aria-current="page"] {
    font-weight: 700;
}

.legal-nav a:focus-visible,
.legal-prose a:focus-visible,
.legal-logo:focus-visible {
    outline: 3px solid #0f172a;
    outline-offset: 3px;
}

.legal-logo {
    display: inline-block;
    margin: 0 0 1.5rem;
}

.legal-logo img {
    width: min(220px, 62vw);
    height: auto;
}

.legal-prose {
    max-width: 42rem;
}

.legal-prose h1 {
    margin: 0 0 1.25rem;
    font-family: 'Covered By Your Grace', cursive;
    font-weight: 400;
    font-size: clamp(2.5rem, 5vw, 3.25rem);
    letter-spacing: 0.01em;
    line-height: 1.15;
}

.legal-prose h2 {
    margin: 1.75rem 0 0.45rem;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.35;
}

.legal-prose p,
.legal-prose li {
    margin: 0.55rem 0;
    line-height: 1.65;
}

.legal-prose ul {
    margin: 0.4rem 0 0.8rem;
    padding-left: 1.2rem;
    list-style: disc;
}

.legal-prose a {
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.legal-address {
    font-style: normal;
    line-height: 1.55;
}

.no-select {
  -webkit-user-select: none; /* Safari */
  -moz-user-select: none;    /* Firefox */
  -ms-user-select: none;     /* Internet Explorer/Edge */
  user-select: none;         Standard
}

.sidebar {
  width: 250px;
  height: 100vh;
  background-color: #ffffff;
  border-right: 2px solid #000000;
  position: relative;
  
  /* Maßband-Striche an der rechten Kante erzeugen */
  background-image: 
    /* Kleine Striche (alle 8px) */
    repeating-linear-gradient(
      to bottom,
      #000000 0px,
      #000000 1px,
      transparent 1px,
      transparent 8px
    ),
    /* Mittlere Striche (alle 24px) */
    repeating-linear-gradient(
      to bottom,
      #000000 0px,
      #000000 2px,
      transparent 2px,
      transparent 24px
    ),
    /* Große Striche für die Zahlen (alle 40px) */
    repeating-linear-gradient(
      to bottom,
      #000000 0px,
      #000000 2px,
      transparent 2px,
      transparent 40px
    );

  /* Positionierung der Strich-Ebenen ganz rechts am Rand (10px bis 20px breit) */
  background-position: right 0 top 0;
  background-size: 6px 100%, 12px 100%, 20px 100%;
  background-repeat: repeat-y;
}