/* Selbst gehostete Schriften — bewusst NICHT von Google geladen.
   Beim Laden von fonts.googleapis.com wird die IP-Adresse jeder Besucherin
   an Google in die USA übertragen; das ist ohne Einwilligung unzulässig
   (LG München I, 3 O 17493/20). Erzeugt aus der damaligen Einbindung,
   Zeichensätze auf latin/latin-ext beschränkt.
   Schriften stehen unter der SIL Open Font License bzw. Apache 2.0. */

@font-face {
  font-family: 'Bodoni Moda';
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url('/schriften/bodoni-moda-italic-400_700-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Bodoni Moda';
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url('/schriften/bodoni-moda-italic-400_700-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;
}

@font-face {
  font-family: 'Bodoni Moda';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/schriften/bodoni-moda-normal-400_700-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Bodoni Moda';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/schriften/bodoni-moda-normal-400_700-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;
}

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/cormorant-garamond-italic-400-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/cormorant-garamond-italic-400-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;
}

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url('/schriften/cormorant-garamond-italic-500-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url('/schriften/cormorant-garamond-italic-500-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;
}

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url('/schriften/cormorant-garamond-italic-600-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url('/schriften/cormorant-garamond-italic-600-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;
}

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/cormorant-garamond-normal-400-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/cormorant-garamond-normal-400-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;
}

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/schriften/cormorant-garamond-normal-500-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/schriften/cormorant-garamond-normal-500-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;
}

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/schriften/cormorant-garamond-normal-600-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/schriften/cormorant-garamond-normal-600-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;
}

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/schriften/cormorant-garamond-normal-700-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/schriften/cormorant-garamond-normal-700-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;
}

@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/fraunces-italic-400-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/fraunces-italic-400-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;
}

@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/fraunces-normal-400-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/fraunces-normal-400-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;
}

@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/schriften/fraunces-normal-600-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/schriften/fraunces-normal-600-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;
}

@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/hanken-grotesk-normal-400-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/hanken-grotesk-normal-400-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;
}

@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/schriften/hanken-grotesk-normal-500-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/schriften/hanken-grotesk-normal-500-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;
}

@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/schriften/hanken-grotesk-normal-600-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/schriften/hanken-grotesk-normal-600-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;
}

@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/schriften/hanken-grotesk-normal-700-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/schriften/hanken-grotesk-normal-700-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;
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/jetbrains-mono-normal-400-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/jetbrains-mono-normal-400-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;
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/schriften/jetbrains-mono-normal-500-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/schriften/jetbrains-mono-normal-500-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;
}

@font-face {
  font-family: 'Lora';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/lora-italic-400-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Lora';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/lora-italic-400-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;
}

@font-face {
  font-family: 'Lora';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/lora-normal-400-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Lora';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/lora-normal-400-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;
}

@font-face {
  font-family: 'Lora';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/schriften/lora-normal-500-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Lora';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/schriften/lora-normal-500-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;
}

@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/manrope-normal-400-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/manrope-normal-400-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;
}

@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/schriften/manrope-normal-500-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/schriften/manrope-normal-500-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;
}

@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/schriften/manrope-normal-600-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/schriften/manrope-normal-600-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;
}

@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/playfair-display-italic-400-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/playfair-display-italic-400-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;
}

@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/playfair-display-normal-400-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/playfair-display-normal-400-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;
}

@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/schriften/playfair-display-normal-700-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/schriften/playfair-display-normal-700-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;
}


/* ── Nachtrag 06.08.2026: Schriften für die neuen Schrift-Paarungen ──
   Cinzel (römische Versalien), Jost (geometrische Grotesk) und Parisienne
   (Schreibschrift, ausschließlich für Namen und Monogramm). Alle drei stehen
   unter der SIL Open Font License. Heruntergeladen wird pro Besucherin nur,
   was das jeweils gewählte Schrift-Thema tatsächlich benutzt. */

@font-face {
  font-family: 'Cinzel';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/cinzel-normal-400-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Cinzel';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/cinzel-normal-400-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;
}

@font-face {
  font-family: 'Cinzel';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/schriften/cinzel-normal-600-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Cinzel';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/schriften/cinzel-normal-600-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;
}

@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/jost-normal-400-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/jost-normal-400-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;
}

@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/schriften/jost-normal-500-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/schriften/jost-normal-500-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;
}

@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/schriften/jost-normal-600-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/schriften/jost-normal-600-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;
}

@font-face {
  font-family: 'Parisienne';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/parisienne-normal-400-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Parisienne';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/schriften/parisienne-normal-400-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;
}

/* Schriften kommen vom eigenen Server, nicht von Google — sonst würde die
   IP-Adresse jeder Besucherin an Google in die USA übertragen, ohne dass
   dafür eine Einwilligung vorliegt (abgemahnt, LG München I 3 O 17493/20).
   Die Dateien liegen in public/schriften/, siehe styles/schriften.css. */

*, ::before, ::after{
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

::backdrop{
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

/* ! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com */

/*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: #e5e7eb; /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -moz-tab-size: 4; /* 3 */
  -o-tab-size: 4;
     tab-size: 4; /* 3 */
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */
  font-feature-settings: normal; /* 5 */
  font-variation-settings: normal; /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0; /* 1 */
  line-height: inherit; /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: "JetBrains Mono", monospace; /* 1 */
  font-feature-settings: normal; /* 2 */
  font-variation-settings: normal; /* 3 */
  font-size: 1em; /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  font-size: 100%; /* 1 */
  font-weight: inherit; /* 1 */
  line-height: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button; /* 1 */
  background-color: transparent; /* 2 */
  background-image: none; /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/

dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/

:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */

[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}
/* Formularfarben folgen der Farbwelt der Gästeseite. Vorher waren sie fest
     verdrahtet (dunkelgraue Beschriftung, weißes Feld) — auf den dunklen
     Farbwelten war die Beschriftung dadurch dunkel auf dunkel und praktisch
     unlesbar, das Eingabefeld stach als weißer Block heraus.
     Dashboard und Anmeldung setzen keine Theme-Variablen, dort greifen die
     bisherigen Werte weiterhin als Rückfallebene. */
.field-label {
    font-family: "JetBrains Mono", monospace;
    font-size: 0.68rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-ink-soft, #6B5F52);
    display: block;
    margin-bottom: 0.4rem;
  }
.field-input {
    width: 100%;
    background: var(--color-paper, #FFFFFF);
    border: 1px solid var(--color-line, #E3DACD);
    border-radius: 10px;
    padding: 0.72rem 1rem;
    font-family: "Hanken Grotesk", sans-serif;
    font-size: 0.94rem;
    color: var(--color-ink, #2B2420);
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
  }
.field-input:focus {
    outline: none;
    border-color: var(--color-gold, #B8433E);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-gold, #B8433E) 18%, transparent);
  }
/* Platzhalter gegen die FELDFARBE mischen statt gegen transparent:
     Halbtransparenter Text war auf dunklem Grund kaum noch zu erkennen.
     So bleibt der Kontrast in hellen wie dunklen Farbwelten gleich gut. */
.field-input::-moz-placeholder {
    color: color-mix(in srgb, var(--color-ink, #2B2420) 62%, var(--color-paper, #FFFFFF));
    opacity: 1; /* Firefox dimmt Platzhalter sonst zusätzlich ab */
  }
.field-input::placeholder {
    color: color-mix(in srgb, var(--color-ink, #2B2420) 62%, var(--color-paper, #FFFFFF));
    opacity: 1; /* Firefox dimmt Platzhalter sonst zusätzlich ab */
  }
.btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    background: #B8433E;
    color: #FBF7F2;
    font-family: "Hanken Grotesk", sans-serif;
    font-weight: 600;
    font-size: 0.9rem;
    padding: 0.85rem 1.9rem;
    border-radius: 100px;
    box-shadow: 0 10px 24px -8px rgba(184, 67, 62, 0.5);
    transition: transform 0.3s var(--ease), box-shadow 0.3s ease, background 0.3s ease;
  }
.btn-primary:hover { transform: translateY(-2px); background: #8A322D; box-shadow: 0 14px 30px -8px rgba(184, 67, 62, 0.6); }
.btn-primary:disabled { opacity: 0.5; transform: none; cursor: not-allowed; }
.pointer-events-none{
  pointer-events: none;
}
.fixed{
  position: fixed;
}
.absolute{
  position: absolute;
}
.relative{
  position: relative;
}
.sticky{
  position: sticky;
}
.-inset-2{
  inset: -0.5rem;
}
.inset-0{
  inset: 0px;
}
.inset-1{
  inset: 0.25rem;
}
.inset-\[6px\]{
  inset: 6px;
}
.inset-x-0{
  left: 0px;
  right: 0px;
}
.-left-10{
  left: -2.5rem;
}
.-left-4{
  left: -1rem;
}
.-top-6{
  top: -1.5rem;
}
.bottom-1{
  bottom: 0.25rem;
}
.bottom-2{
  bottom: 0.5rem;
}
.bottom-3{
  bottom: 0.75rem;
}
.bottom-4{
  bottom: 1rem;
}
.bottom-5{
  bottom: 1.25rem;
}
.left-0{
  left: 0px;
}
.left-1\/2{
  left: 50%;
}
.left-2{
  left: 0.5rem;
}
.left-3{
  left: 0.75rem;
}
.left-4{
  left: 1rem;
}
.right-0{
  right: 0px;
}
.right-1{
  right: 0.25rem;
}
.right-1\.5{
  right: 0.375rem;
}
.right-2{
  right: 0.5rem;
}
.right-3{
  right: 0.75rem;
}
.right-4{
  right: 1rem;
}
.right-5{
  right: 1.25rem;
}
.right-\[285px\]{
  right: 285px;
}
.top-0{
  top: 0px;
}
.top-0\.5{
  top: 0.125rem;
}
.top-1{
  top: 0.25rem;
}
.top-1\.5{
  top: 0.375rem;
}
.top-1\/2{
  top: 50%;
}
.top-10{
  top: 2.5rem;
}
.top-2{
  top: 0.5rem;
}
.top-3{
  top: 0.75rem;
}
.top-4{
  top: 1rem;
}
.top-\[150px\]{
  top: 150px;
}
.top-full{
  top: 100%;
}
.-z-10{
  z-index: -10;
}
.z-10{
  z-index: 10;
}
.z-30{
  z-index: 30;
}
.z-40{
  z-index: 40;
}
.z-50{
  z-index: 50;
}
.order-1{
  order: 1;
}
.order-2{
  order: 2;
}
.-mx-6{
  margin-left: -1.5rem;
  margin-right: -1.5rem;
}
.mx-0\.5{
  margin-left: 0.125rem;
  margin-right: 0.125rem;
}
.mx-1{
  margin-left: 0.25rem;
  margin-right: 0.25rem;
}
.mx-8{
  margin-left: 2rem;
  margin-right: 2rem;
}
.mx-auto{
  margin-left: auto;
  margin-right: auto;
}
.\!mb-1{
  margin-bottom: 0.25rem !important;
}
.\!mb-3{
  margin-bottom: 0.75rem !important;
}
.-mr-10{
  margin-right: -2.5rem;
}
.-mt-1{
  margin-top: -0.25rem;
}
.-mt-14{
  margin-top: -3.5rem;
}
.-mt-3{
  margin-top: -0.75rem;
}
.-mt-6{
  margin-top: -1.5rem;
}
.mb-0\.5{
  margin-bottom: 0.125rem;
}
.mb-1{
  margin-bottom: 0.25rem;
}
.mb-1\.5{
  margin-bottom: 0.375rem;
}
.mb-10{
  margin-bottom: 2.5rem;
}
.mb-12{
  margin-bottom: 3rem;
}
.mb-14{
  margin-bottom: 3.5rem;
}
.mb-16{
  margin-bottom: 4rem;
}
.mb-2{
  margin-bottom: 0.5rem;
}
.mb-2\.5{
  margin-bottom: 0.625rem;
}
.mb-3{
  margin-bottom: 0.75rem;
}
.mb-4{
  margin-bottom: 1rem;
}
.mb-5{
  margin-bottom: 1.25rem;
}
.mb-6{
  margin-bottom: 1.5rem;
}
.mb-7{
  margin-bottom: 1.75rem;
}
.mb-8{
  margin-bottom: 2rem;
}
.mb-9{
  margin-bottom: 2.25rem;
}
.ml-1\.5{
  margin-left: 0.375rem;
}
.ml-2{
  margin-left: 0.5rem;
}
.ml-3{
  margin-left: 0.75rem;
}
.ml-auto{
  margin-left: auto;
}
.mt-0\.5{
  margin-top: 0.125rem;
}
.mt-1{
  margin-top: 0.25rem;
}
.mt-1\.5{
  margin-top: 0.375rem;
}
.mt-12{
  margin-top: 3rem;
}
.mt-14{
  margin-top: 3.5rem;
}
.mt-16{
  margin-top: 4rem;
}
.mt-2{
  margin-top: 0.5rem;
}
.mt-2\.5{
  margin-top: 0.625rem;
}
.mt-28{
  margin-top: 7rem;
}
.mt-3{
  margin-top: 0.75rem;
}
.mt-4{
  margin-top: 1rem;
}
.mt-5{
  margin-top: 1.25rem;
}
.mt-6{
  margin-top: 1.5rem;
}
.mt-7{
  margin-top: 1.75rem;
}
.mt-8{
  margin-top: 2rem;
}
.block{
  display: block;
}
.inline-block{
  display: inline-block;
}
.inline{
  display: inline;
}
.flex{
  display: flex;
}
.inline-flex{
  display: inline-flex;
}
.\!table{
  display: table !important;
}
.table{
  display: table;
}
.grid{
  display: grid;
}
.contents{
  display: contents;
}
.hidden{
  display: none;
}
.aspect-square{
  aspect-ratio: 1 / 1;
}
.h-1{
  height: 0.25rem;
}
.h-1\.5{
  height: 0.375rem;
}
.h-10{
  height: 2.5rem;
}
.h-11{
  height: 2.75rem;
}
.h-12{
  height: 3rem;
}
.h-14{
  height: 3.5rem;
}
.h-16{
  height: 4rem;
}
.h-2{
  height: 0.5rem;
}
.h-20{
  height: 5rem;
}
.h-24{
  height: 6rem;
}
.h-28{
  height: 7rem;
}
.h-3\.5{
  height: 0.875rem;
}
.h-4{
  height: 1rem;
}
.h-44{
  height: 11rem;
}
.h-5{
  height: 1.25rem;
}
.h-64{
  height: 16rem;
}
.h-72{
  height: 18rem;
}
.h-8{
  height: 2rem;
}
.h-9{
  height: 2.25rem;
}
.h-\[108px\]{
  height: 108px;
}
.h-\[2\.625rem\]{
  height: 2.625rem;
}
.h-\[240px\]{
  height: 240px;
}
.h-\[26rem\]{
  height: 26rem;
}
.h-\[275px\]{
  height: 275px;
}
.h-\[280px\]{
  height: 280px;
}
.h-\[346px\]{
  height: 346px;
}
.h-\[420px\]{
  height: 420px;
}
.h-\[720px\]{
  height: 720px;
}
.h-full{
  height: 100%;
}
.h-px{
  height: 1px;
}
.min-h-\[1\.25rem\]{
  min-height: 1.25rem;
}
.min-h-\[23rem\]{
  min-height: 23rem;
}
.min-h-screen{
  min-height: 100vh;
}
.\!w-20{
  width: 5rem !important;
}
.\!w-24{
  width: 6rem !important;
}
.\!w-40{
  width: 10rem !important;
}
.\!w-44{
  width: 11rem !important;
}
.w-1\/2{
  width: 50%;
}
.w-11{
  width: 2.75rem;
}
.w-12{
  width: 3rem;
}
.w-16{
  width: 4rem;
}
.w-2\/3{
  width: 66.666667%;
}
.w-20{
  width: 5rem;
}
.w-24{
  width: 6rem;
}
.w-28{
  width: 7rem;
}
.w-3\.5{
  width: 0.875rem;
}
.w-3\/4{
  width: 75%;
}
.w-32{
  width: 8rem;
}
.w-4{
  width: 1rem;
}
.w-40{
  width: 10rem;
}
.w-44{
  width: 11rem;
}
.w-5{
  width: 1.25rem;
}
.w-6{
  width: 1.5rem;
}
.w-8{
  width: 2rem;
}
.w-9{
  width: 2.25rem;
}
.w-\[108px\]{
  width: 108px;
}
.w-\[136px\]{
  width: 136px;
}
.w-\[168px\]{
  width: 168px;
}
.w-\[200px\]{
  width: 200px;
}
.w-\[250px\]{
  width: 250px;
}
.w-\[395px\]{
  width: 395px;
}
.w-\[clamp\(110px\2c 26vw\2c 290px\)\]{
  width: clamp(110px, 26vw, 290px);
}
.w-\[min\(20rem\2c calc\(100vw-2\.5rem\)\)\]{
  width: min(20rem, calc(100vw - 2.5rem));
}
.w-auto{
  width: auto;
}
.w-fit{
  width: -moz-fit-content;
  width: fit-content;
}
.w-full{
  width: 100%;
}
.w-px{
  width: 1px;
}
.min-w-0{
  min-width: 0px;
}
.min-w-\[140px\]{
  min-width: 140px;
}
.min-w-\[2\.6rem\]{
  min-width: 2.6rem;
}
.max-w-2xl{
  max-width: 42rem;
}
.max-w-3xl{
  max-width: 48rem;
}
.max-w-6xl{
  max-width: 72rem;
}
.max-w-\[1400px\]{
  max-width: 1400px;
}
.max-w-full{
  max-width: 100%;
}
.max-w-md{
  max-width: 28rem;
}
.max-w-sm{
  max-width: 24rem;
}
.max-w-xl{
  max-width: 36rem;
}
.max-w-xs{
  max-width: 20rem;
}
.flex-1{
  flex: 1 1 0%;
}
.flex-\[2\]{
  flex: 2;
}
.shrink-0{
  flex-shrink: 0;
}
.-translate-x-1\/2{
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-translate-y-1\/2{
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-180{
  --tw-rotate: 180deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-45{
  --tw-rotate: 45deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-\[-0\.6deg\]{
  --tw-rotate: -0.6deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-\[-1\.4deg\]{
  --tw-rotate: -1.4deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-\[1\.4deg\]{
  --tw-rotate: 1.4deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.scale-105{
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-scale-x-100{
  --tw-scale-x: -1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.transform{
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.cursor-default{
  cursor: default;
}
.cursor-grab{
  cursor: grab;
}
.cursor-pointer{
  cursor: pointer;
}
.select-none{
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.resize-none{
  resize: none;
}
.scroll-mt-20{
  scroll-margin-top: 5rem;
}
.grid-cols-1{
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
.grid-cols-2{
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid-cols-3{
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.flex-col{
  flex-direction: column;
}
.flex-wrap{
  flex-wrap: wrap;
}
.items-start{
  align-items: flex-start;
}
.items-center{
  align-items: center;
}
.items-baseline{
  align-items: baseline;
}
.justify-end{
  justify-content: flex-end;
}
.justify-center{
  justify-content: center;
}
.justify-between{
  justify-content: space-between;
}
.gap-0\.5{
  gap: 0.125rem;
}
.gap-1{
  gap: 0.25rem;
}
.gap-1\.5{
  gap: 0.375rem;
}
.gap-12{
  gap: 3rem;
}
.gap-16{
  gap: 4rem;
}
.gap-2{
  gap: 0.5rem;
}
.gap-2\.5{
  gap: 0.625rem;
}
.gap-3{
  gap: 0.75rem;
}
.gap-3\.5{
  gap: 0.875rem;
}
.gap-4{
  gap: 1rem;
}
.gap-5{
  gap: 1.25rem;
}
.gap-6{
  gap: 1.5rem;
}
.gap-8{
  gap: 2rem;
}
.gap-x-4{
  -moz-column-gap: 1rem;
       column-gap: 1rem;
}
.gap-x-5{
  -moz-column-gap: 1.25rem;
       column-gap: 1.25rem;
}
.gap-x-6{
  -moz-column-gap: 1.5rem;
       column-gap: 1.5rem;
}
.gap-x-8{
  -moz-column-gap: 2rem;
       column-gap: 2rem;
}
.gap-y-12{
  row-gap: 3rem;
}
.gap-y-2{
  row-gap: 0.5rem;
}
.gap-y-2\.5{
  row-gap: 0.625rem;
}
.gap-y-3{
  row-gap: 0.75rem;
}
.space-y-0\.5 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.125rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.125rem * var(--tw-space-y-reverse));
}
.space-y-1 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
}
.space-y-12 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(3rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(3rem * var(--tw-space-y-reverse));
}
.space-y-2 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}
.space-y-3 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
}
.space-y-3\.5 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.875rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.875rem * var(--tw-space-y-reverse));
}
.space-y-4 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}
.space-y-5 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.25rem * var(--tw-space-y-reverse));
}
.space-y-6 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
}
.overflow-auto{
  overflow: auto;
}
.overflow-hidden{
  overflow: hidden;
}
.overflow-x-auto{
  overflow-x: auto;
}
.overflow-y-auto{
  overflow-y: auto;
}
.overflow-x-hidden{
  overflow-x: hidden;
}
.truncate{
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.whitespace-nowrap{
  white-space: nowrap;
}
.whitespace-pre-line{
  white-space: pre-line;
}
.break-words{
  overflow-wrap: break-word;
}
.break-all{
  word-break: break-all;
}
.rounded{
  border-radius: 0.25rem;
}
.rounded-2xl{
  border-radius: 1rem;
}
.rounded-\[1\.4rem\]{
  border-radius: 1.4rem;
}
.rounded-\[1\.7rem\]{
  border-radius: 1.7rem;
}
.rounded-\[2\.4rem\]{
  border-radius: 2.4rem;
}
.rounded-full{
  border-radius: 9999px;
}
.rounded-lg{
  border-radius: 0.5rem;
}
.rounded-xl{
  border-radius: 0.75rem;
}
.rounded-t-\[9rem\]{
  border-top-left-radius: 9rem;
  border-top-right-radius: 9rem;
}
.border{
  border-width: 1px;
}
.border-0{
  border-width: 0px;
}
.border-2{
  border-width: 2px;
}
.border-\[10px\]{
  border-width: 10px;
}
.border-\[6px\]{
  border-width: 6px;
}
.border-\[7px\]{
  border-width: 7px;
}
.border-b{
  border-bottom-width: 1px;
}
.border-l{
  border-left-width: 1px;
}
.border-l-2{
  border-left-width: 2px;
}
.border-r{
  border-right-width: 1px;
}
.border-t{
  border-top-width: 1px;
}
.border-dashed{
  border-style: dashed;
}
.border-gold{
  border-color: var(--color-gold, #C9A25E);
}
.border-ink{
  border-color: var(--color-ink, #2B2420);
}
.border-line{
  border-color: var(--color-line, #E3DACD);
}
.\!bg-white{
  --tw-bg-opacity: 1 !important;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)) !important;
}
.bg-background{
  background-color: var(--color-background, #FBF7F2);
}
.bg-canvas{
  background-color: var(--color-canvas, #EFE8DC);
}
.bg-ink{
  background-color: var(--color-ink, #2B2420);
}
.bg-line{
  background-color: var(--color-line, #E3DACD);
}
.bg-paper{
  background-color: var(--color-paper, #FFFFFF);
}
.bg-surface{
  background-color: var(--color-surface, #F1EBE0);
}
.bg-transparent{
  background-color: transparent;
}
.bg-white{
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.object-cover{
  -o-object-fit: cover;
     object-fit: cover;
}
.object-\[42\%_25\%\]{
  -o-object-position: 42% 25%;
     object-position: 42% 25%;
}
.object-\[62\%_35\%\]{
  -o-object-position: 62% 35%;
     object-position: 62% 35%;
}
.object-left-top{
  -o-object-position: left top;
     object-position: left top;
}
.object-top{
  -o-object-position: top;
     object-position: top;
}
.p-1{
  padding: 0.25rem;
}
.p-1\.5{
  padding: 0.375rem;
}
.p-2{
  padding: 0.5rem;
}
.p-2\.5{
  padding: 0.625rem;
}
.p-3{
  padding: 0.75rem;
}
.p-4{
  padding: 1rem;
}
.p-5{
  padding: 1.25rem;
}
.p-6{
  padding: 1.5rem;
}
.p-7{
  padding: 1.75rem;
}
.p-8{
  padding: 2rem;
}
.\!py-1{
  padding-top: 0.25rem !important;
  padding-bottom: 0.25rem !important;
}
.\!py-1\.5{
  padding-top: 0.375rem !important;
  padding-bottom: 0.375rem !important;
}
.\!py-2{
  padding-top: 0.5rem !important;
  padding-bottom: 0.5rem !important;
}
.\!py-2\.5{
  padding-top: 0.625rem !important;
  padding-bottom: 0.625rem !important;
}
.px-1{
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}
.px-16{
  padding-left: 4rem;
  padding-right: 4rem;
}
.px-2{
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.px-2\.5{
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}
.px-3{
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
.px-3\.5{
  padding-left: 0.875rem;
  padding-right: 0.875rem;
}
.px-4{
  padding-left: 1rem;
  padding-right: 1rem;
}
.px-5{
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}
.px-6{
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.px-7{
  padding-left: 1.75rem;
  padding-right: 1.75rem;
}
.px-8{
  padding-left: 2rem;
  padding-right: 2rem;
}
.py-0\.5{
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}
.py-1{
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}
.py-1\.5{
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}
.py-10{
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
}
.py-12{
  padding-top: 3rem;
  padding-bottom: 3rem;
}
.py-14{
  padding-top: 3.5rem;
  padding-bottom: 3.5rem;
}
.py-16{
  padding-top: 4rem;
  padding-bottom: 4rem;
}
.py-2{
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.py-2\.5{
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}
.py-28{
  padding-top: 7rem;
  padding-bottom: 7rem;
}
.py-3{
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.py-3\.5{
  padding-top: 0.875rem;
  padding-bottom: 0.875rem;
}
.py-4{
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.py-6{
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
.py-7{
  padding-top: 1.75rem;
  padding-bottom: 1.75rem;
}
.py-8{
  padding-top: 2rem;
  padding-bottom: 2rem;
}
.pb-10{
  padding-bottom: 2.5rem;
}
.pb-16{
  padding-bottom: 4rem;
}
.pb-2\.5{
  padding-bottom: 0.625rem;
}
.pb-24{
  padding-bottom: 6rem;
}
.pb-28{
  padding-bottom: 7rem;
}
.pb-3{
  padding-bottom: 0.75rem;
}
.pb-4{
  padding-bottom: 1rem;
}
.pl-2{
  padding-left: 0.5rem;
}
.pl-3{
  padding-left: 0.75rem;
}
.pl-6{
  padding-left: 1.5rem;
}
.pl-8{
  padding-left: 2rem;
}
.pr-1\.5{
  padding-right: 0.375rem;
}
.pr-2{
  padding-right: 0.5rem;
}
.pr-8{
  padding-right: 2rem;
}
.pt-1{
  padding-top: 0.25rem;
}
.pt-2{
  padding-top: 0.5rem;
}
.pt-3{
  padding-top: 0.75rem;
}
.pt-4{
  padding-top: 1rem;
}
.pt-5{
  padding-top: 1.25rem;
}
.pt-6{
  padding-top: 1.5rem;
}
.pt-8{
  padding-top: 2rem;
}
.text-left{
  text-align: left;
}
.text-center{
  text-align: center;
}
.text-right{
  text-align: right;
}
.font-body{
  font-family: var(--font-body), "Hanken Grotesk", "Segoe UI", sans-serif;
}
.font-display{
  font-family: var(--font-display), "Bodoni Moda", Georgia, serif;
}
.font-mono{
  font-family: "JetBrains Mono", monospace;
}
.text-2xl{
  font-size: 1.5rem;
  line-height: 2rem;
}
.text-3xl{
  font-size: 1.875rem;
  line-height: 2.25rem;
}
.text-4xl{
  font-size: 2.25rem;
  line-height: 2.5rem;
}
.text-6xl{
  font-size: 3.75rem;
  line-height: 1;
}
.text-\[1\.5rem\]{
  font-size: 1.5rem;
}
.text-\[10px\]{
  font-size: 10px;
}
.text-\[11px\]{
  font-size: 11px;
}
.text-\[13px\]{
  font-size: 13px;
}
.text-\[15px\]{
  font-size: 15px;
}
.text-\[2\.4rem\]{
  font-size: 2.4rem;
}
.text-\[2\.6rem\]{
  font-size: 2.6rem;
}
.text-\[3\.4rem\]{
  font-size: 3.4rem;
}
.text-\[8px\]{
  font-size: 8px;
}
.text-\[9px\]{
  font-size: 9px;
}
.text-base{
  font-size: 1rem;
  line-height: 1.5rem;
}
.text-lg{
  font-size: 1.125rem;
  line-height: 1.75rem;
}
.text-sm{
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.text-xl{
  font-size: 1.25rem;
  line-height: 1.75rem;
}
.text-xs{
  font-size: 0.75rem;
  line-height: 1rem;
}
.font-bold{
  font-weight: 700;
}
.font-medium{
  font-weight: 500;
}
.font-normal{
  font-weight: 400;
}
.font-semibold{
  font-weight: 600;
}
.uppercase{
  text-transform: uppercase;
}
.italic{
  font-style: italic;
}
.tabular-nums{
  --tw-numeric-spacing: tabular-nums;
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.leading-\[0\.98\]{
  line-height: 0.98;
}
.leading-\[1\.35\]{
  line-height: 1.35;
}
.leading-none{
  line-height: 1;
}
.leading-relaxed{
  line-height: 1.625;
}
.leading-snug{
  line-height: 1.375;
}
.leading-tight{
  line-height: 1.25;
}
.tracking-\[0\.15em\]{
  letter-spacing: 0.15em;
}
.tracking-\[0\.16em\]{
  letter-spacing: 0.16em;
}
.tracking-\[0\.18em\]{
  letter-spacing: 0.18em;
}
.tracking-\[0\.1em\]{
  letter-spacing: 0.1em;
}
.tracking-\[0\.22em\]{
  letter-spacing: 0.22em;
}
.tracking-\[0\.25em\]{
  letter-spacing: 0.25em;
}
.tracking-\[0\.28em\]{
  letter-spacing: 0.28em;
}
.tracking-\[0\.2em\]{
  letter-spacing: 0.2em;
}
.tracking-\[0\.32em\]{
  letter-spacing: 0.32em;
}
.tracking-\[0\.3em\]{
  letter-spacing: 0.3em;
}
.tracking-\[0\.4em\]{
  letter-spacing: 0.4em;
}
.tracking-tight{
  letter-spacing: -0.025em;
}
.tracking-wide{
  letter-spacing: 0.025em;
}
.tracking-wider{
  letter-spacing: 0.05em;
}
.tracking-widest{
  letter-spacing: 0.1em;
}
.text-accent{
  color: var(--color-accent, #B8433E);
}
.text-background{
  color: var(--color-background, #FBF7F2);
}
.text-gold{
  color: var(--color-gold, #C9A25E);
}
.text-ink{
  color: var(--color-ink, #2B2420);
}
.text-ink-soft{
  color: var(--color-ink-soft, #6B5F52);
}
.underline{
  text-decoration-line: underline;
}
.decoration-gold{
  text-decoration-color: var(--color-gold, #C9A25E);
}
.underline-offset-2{
  text-underline-offset: 2px;
}
.underline-offset-4{
  text-underline-offset: 4px;
}
.opacity-0{
  opacity: 0;
}
.opacity-25{
  opacity: 0.25;
}
.opacity-30{
  opacity: 0.3;
}
.opacity-35{
  opacity: 0.35;
}
.opacity-40{
  opacity: 0.4;
}
.opacity-45{
  opacity: 0.45;
}
.opacity-50{
  opacity: 0.5;
}
.opacity-55{
  opacity: 0.55;
}
.opacity-60{
  opacity: 0.6;
}
.opacity-65{
  opacity: 0.65;
}
.opacity-70{
  opacity: 0.7;
}
.opacity-75{
  opacity: 0.75;
}
.opacity-80{
  opacity: 0.8;
}
.opacity-85{
  opacity: 0.85;
}
.opacity-90{
  opacity: 0.9;
}
.opacity-\[0\.14\]{
  opacity: 0.14;
}
.mix-blend-multiply{
  mix-blend-mode: multiply;
}
.shadow-2xl{
  --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
  --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-card{
  --tw-shadow: 0 20px 50px -12px rgba(43, 36, 32, 0.18);
  --tw-shadow-colored: 0 20px 50px -12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-sm{
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-soft{
  --tw-shadow: 0 8px 24px -6px rgba(43, 36, 32, 0.12);
  --tw-shadow-colored: 0 8px 24px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-xl{
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.filter{
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.transition-all{
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-colors{
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-opacity{
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-transform{
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.duration-200{
  transition-duration: 200ms;
}
.duration-300{
  transition-duration: 300ms;
}
.duration-500{
  transition-duration: 500ms;
}
.duration-700{
  transition-duration: 700ms;
}
.ease-out{
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
.\[overflow-wrap\:anywhere\]{
  overflow-wrap: anywhere;
}

:root {
  --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
  /* Schrift-Theme "klassisch" (Standard).
     Achtung Quoting: NICHT '"Bodoni Moda"' schreiben — dann sucht der
     Browser eine Schrift, deren Name wörtlich Anführungszeichen enthält,
     findet nichts und fällt still auf den nächsten Kandidaten zurück
     (deshalb hatten die Schrift-Themes nie einen sichtbaren Effekt). */
  --font-display: "Cormorant Garamond", Georgia, serif;
  --font-body: "Hanken Grotesk", "Segoe UI", sans-serif;
  /* Dritte Schriftrolle, absichtlich nur für Namen und Monogramm. Sie ist
     standardmäßig mit der Titelschrift identisch, weicht also nur dort ab, wo
     ein Thema sie ausdrücklich setzt (bisher: "kalligrafie"). */
  --font-script: var(--font-display);
}

/* Schrift-Themes: werden per data-font-theme auf der Gästeseite gesetzt,
   damit Paare zwischen mehreren Schrift-Paarungen wählen können, ohne
   dass sich an Layout/Klassen irgendwas ändern muss. */

/* WICHTIG: --font-script muss auf derselben Ebene neu abgeleitet werden wie
   --font-display. Die Themes hängen am Seiten-Wrapper, nicht an :root — eine
   Ableitung nur in :root würde dort noch die Standard-Titelschrift einsetzen
   und die Schreibschrift-Rolle bei allen anderen Themes falsch belegen.
   Diese Regel steht bewusst VOR den einzelnen Themes: gleiche Spezifität,
   also entscheidet die Reihenfolge. */
[data-font-theme] {
  --font-script: var(--font-display);
}

[data-font-theme="romantisch"] {
  --font-display: "Playfair Display", Georgia, serif;
  --font-body: "Lora", Georgia, serif;
}
[data-font-theme="modern"] {
  --font-display: "Fraunces", Georgia, serif;
  --font-body: "Manrope", "Segoe UI", sans-serif;
}
/* Schreibschrift-Paarung: Parisienne ausschließlich für Namen und Monogramm,
   Überschriften und Fließtext bleiben ruhig und gut lesbar. */
[data-font-theme="kalligrafie"] {
  --font-display: "Cormorant Garamond", Georgia, serif;
  --font-body: "Hanken Grotesk", "Segoe UI", sans-serif;
  --font-script: "Parisienne", "Cormorant Garamond", cursive;
}
/* Römische Versalien, wie in Stein gehauen — passt zu Kirche und Schloss. */
[data-font-theme="versalien"] {
  --font-display: "Cinzel", Georgia, serif;
  --font-body: "Lora", Georgia, serif;
}
/* Hoher Strichstärken-Kontrast, Modemagazin-Anmutung. */
[data-font-theme="hochkontrast"] {
  --font-display: "Bodoni Moda", Georgia, serif;
  --font-body: "Manrope", "Segoe UI", sans-serif;
}
/* Geometrische Grotesk in einer Schrift für alles, sehr reduziert. */
[data-font-theme="geometrisch"] {
  --font-display: "Jost", "Segoe UI", sans-serif;
  --font-body: "Jost", "Segoe UI", sans-serif;
}

/* Namen und Monogramm. Eine Schreibschrift hat eine deutlich kleinere
   x-Höhe als eine Antiqua und wirkt bei gleicher Punktgröße zu klein;
   gleichzeitig brauchen ihre Ober- und Unterlängen mehr Zeilenhöhe, sonst
   schneidet der Zeilenkasten sie ab (Cormorant hat das Problem nicht). */
.namen-schrift,
.monogramm-schrift {
  font-family: var(--font-script);
}
[data-font-theme="kalligrafie"] .namen-schrift {
  font-size: 3rem;
  line-height: 1.3;
  padding-bottom: 0.12em;
}
[data-font-theme="kalligrafie"] .monogramm-schrift {
  font-size: 2.6rem;
  line-height: 1.3;
}
@media (min-width: 768px) {
  [data-font-theme="kalligrafie"] .namen-schrift { font-size: 4.2rem; }
}

/* ── Titelbild-Stimmung ───────────────────────────────────────────────────
   Lässt jedes Hochzeitsfoto zu jeder Farbwelt passen, ohne dass das Paar ein
   Bildbearbeitungsprogramm braucht. "duotone" färbt die Helligkeitswerte des
   Fotos in die Akzentfarbe um: mix-blend-mode "color" übernimmt Farbton und
   Sättigung von der Auflage und die Helligkeit vom Foto darunter. Die
   Auflage braucht ein eigenes isolate, sonst mischt sie sich auch mit dem
   Seitenhintergrund. */
.stimmung--schwarzweiss img { filter: grayscale(1) contrast(1.06); }
.stimmung--warm img { filter: sepia(0.32) saturate(1.15) contrast(1.02); }
.stimmung--duotone { position: relative; isolation: isolate; }
.stimmung--duotone img { filter: grayscale(1) contrast(1.12); }
.stimmung--duotone::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: var(--stimmung-farbe, #B8433E);
  mix-blend-mode: color;
  opacity: 0.9;
}

/* Stil-Themes: färben die Gästeseite komplett um (nur dort, via
   data-style-theme auf dem Seiten-Wrapper — Landingpage/Dashboard bleiben
   unberührt, da sie das Attribut nie setzen). "papeterie" ist der
   Standard und braucht keinen Eintrag, weil er den :root-Werten entspricht. */
[data-style-theme="modern"] {
  --color-background: #F4F2EE;
  --color-ink: #1F1B16;
  --color-ink-soft: #6E655C;
  --color-gold: #8C8375;
  --color-gold-soft: #C9C2B4;
  --color-surface: #EAE6DF;
  --color-line: #DAD5CB;
}
[data-style-theme="modern"] .corner { display: none; }
[data-style-theme="modern"] .card-frame { border: none; border-top: 2px solid var(--color-ink); border-bottom: 2px solid var(--color-ink); border-radius: 0; }
[data-style-theme="modern"] .card-frame::after { display: none; }
[data-style-theme="modern"] .insert-card { background: transparent; border: none; border-top: 1px solid var(--color-line); border-radius: 0; }
[data-style-theme="modern"] .insert-card::after { display: none; }
[data-style-theme="modern"] .ornament::before,
[data-style-theme="modern"] .ornament::after { background: var(--color-ink); opacity: 0.25; }

[data-style-theme="boho"] {
  --color-background: #F7EFDD;
  --color-ink: #3E3226;
  --color-ink-soft: #8A7860;
  --color-gold: #B26A45;
  --color-gold-soft: #E3C9A0;
  --color-surface: #EFE1C4;
  --color-line: #E4D2A8;
}
[data-style-theme="boho"] .corner { display: none; }
[data-style-theme="boho"] .card-frame { border-radius: 2.5rem; border-color: rgba(178, 106, 69, 0.35); }
[data-style-theme="boho"] .card-frame::after { border-radius: 2.2rem; border-color: rgba(178, 106, 69, 0.18); }
[data-style-theme="boho"] .insert-card { border-radius: 1.75rem; background: var(--color-surface); border-color: rgba(178, 106, 69, 0.3); }
[data-style-theme="boho"] .insert-card::after { border-radius: 1.5rem; border-color: rgba(178, 106, 69, 0.15); }

/* ── Design-Presets: weitere Farbwelten ──
   Paletten OHNE Struktur-Override erben automatisch die Papeterie-Struktur
   (Kartenrahmen + Ecken), weil Struktur-Regeln nur für die modern-*/boho-*
   Themes existieren. Die Preset-Auswahl im Dashboard setzt style_theme und
   eine passende Akzentfarbe in einem Klick. */

/* Papeterie-Struktur: Salbei */
[data-style-theme="sage"] {
  --color-background: #F4F6EF;
  --color-ink: #2A2F26;
  --color-ink-soft: #6C7263;
  --color-gold: #97A97C;
  --color-gold-soft: #C9D4B4;
  --color-surface: #EAEEE1;
  --color-line: #DCE3D0;
}

/* Papeterie-Struktur: Puderrosa */
[data-style-theme="blush"] {
  --color-background: #FBF3F1;
  --color-ink: #382A28;
  --color-ink-soft: #8A6F6B;
  --color-gold: #C99287;
  --color-gold-soft: #E8C7C0;
  --color-surface: #F4E7E4;
  --color-line: #EBD8D4;
}

/* Papeterie-Struktur: Marine */
[data-style-theme="navy"] {
  --color-background: #F3F5F8;
  --color-ink: #1E2A3A;
  --color-ink-soft: #5E6B7E;
  --color-gold: #B99B5E;
  --color-gold-soft: #DECCA4;
  --color-surface: #E9EDF3;
  --color-line: #D9E0EA;
}

/* Papeterie-Struktur: Bordeaux */
[data-style-theme="bordeaux"] {
  --color-background: #FAF4F0;
  --color-ink: #3A2226;
  --color-ink-soft: #7D5E63;
  --color-gold: #B08954;
  --color-gold-soft: #DCC49C;
  --color-surface: #F2E8E2;
  --color-line: #E7D8CE;
}

/* Modern-Struktur: Nachtblau */
[data-style-theme="modern-nacht"] {
  --color-background: #EEF0F2;
  --color-ink: #171C24;
  --color-ink-soft: #5F6772;
  --color-gold: #7A8494;
  --color-gold-soft: #C2C9D2;
  --color-surface: #E3E6EA;
  --color-line: #D3D8DE;
}

/* Modern-Struktur: Olive */
[data-style-theme="modern-olive"] {
  --color-background: #F2F1EA;
  --color-ink: #23241B;
  --color-ink-soft: #6B6C5B;
  --color-gold: #8B8C6C;
  --color-gold-soft: #C9CAB0;
  --color-surface: #E8E7DC;
  --color-line: #D8D8C8;
}

/* Boho-Struktur: Terracotta */
[data-style-theme="boho-terra"] {
  --color-background: #F8EFE6;
  --color-ink: #40302A;
  --color-ink-soft: #8D7263;
  --color-gold: #C07A52;
  --color-gold-soft: #E6C3A8;
  --color-surface: #F0E2D2;
  --color-line: #E5D2BC;
}

/* Boho-Struktur: Lavendel */
[data-style-theme="boho-lavendel"] {
  --color-background: #F5F1F7;
  --color-ink: #322B3A;
  --color-ink-soft: #776E85;
  --color-gold: #9C86B4;
  --color-gold-soft: #D4C8E2;
  --color-surface: #ECE5F0;
  --color-line: #DFD5E7;
}

/* Papeterie-Struktur: Eisblau */
[data-style-theme="eisblau"] {
  --color-background: #F1F5F8;
  --color-ink: #223240;
  --color-ink-soft: #62727E;
  --color-gold: #7FA0B0;
  --color-gold-soft: #C3D6DE;
  --color-surface: #E6EDF1;
  --color-line: #D6E1E7;
}

/* Papeterie-Struktur: Champagner */
[data-style-theme="champagner"] {
  --color-background: #FAF6ED;
  --color-ink: #3A331F;
  --color-ink-soft: #857A5E;
  --color-gold: #C6A76B;
  --color-gold-soft: #E8D9B8;
  --color-surface: #F2EBD9;
  --color-line: #E8DCC0;
}

/* Papeterie-Struktur: Waldgrün */
[data-style-theme="waldgruen"] {
  --color-background: #F1F4EE;
  --color-ink: #1E2A1C;
  --color-ink-soft: #5A6B54;
  --color-gold: #6E8A5C;
  --color-gold-soft: #BBCBAE;
  --color-surface: #E5EBDF;
  --color-line: #D6E0CC;
}

/* Papeterie-Struktur: Altrosa */
[data-style-theme="altrosa"] {
  --color-background: #FAF1EE;
  --color-ink: #3D2B27;
  --color-ink-soft: #8A6E67;
  --color-gold: #C79C8F;
  --color-gold-soft: #E6CFC6;
  --color-surface: #F2E4DF;
  --color-line: #E8D3CB;
}

/* Papeterie-Struktur: Anthrazit */
[data-style-theme="anthrazit"] {
  --color-background: #F2F1EF;
  --color-ink: #1C1C1C;
  --color-ink-soft: #656260;
  --color-gold: #8D897F;
  --color-gold-soft: #C9C5BB;
  --color-surface: #E7E5E1;
  --color-line: #D8D5CF;
}

/* Modern-Struktur: Terrakotta */
[data-style-theme="modern-terrakotta"] {
  --color-background: #F5EFE9;
  --color-ink: #2E2118;
  --color-ink-soft: #7A6455;
  --color-gold: #B3714B;
  --color-gold-soft: #DDB99E;
  --color-surface: #EBE1D6;
  --color-line: #DDCEBD;
}

/* Modern-Struktur: Beere */
[data-style-theme="modern-beere"] {
  --color-background: #F4EEF0;
  --color-ink: #2C1620;
  --color-ink-soft: #7A5A63;
  --color-gold: #8F4A5E;
  --color-gold-soft: #D3AEB8;
  --color-surface: #EAE0E2;
  --color-line: #DCCBCF;
}

/* Modern-Struktur: Salbei */
[data-style-theme="modern-salbei"] {
  --color-background: #F1F3ED;
  --color-ink: #232A1E;
  --color-ink-soft: #667059;
  --color-gold: #85916D;
  --color-gold-soft: #C7D0B7;
  --color-surface: #E6E9DE;
  --color-line: #D6DCC7;
}

/* Modern-Struktur: Schiefer */
[data-style-theme="modern-schiefer"] {
  --color-background: #EFF1F3;
  --color-ink: #1D2429;
  --color-ink-soft: #5C6870;
  --color-gold: #7C8E99;
  --color-gold-soft: #C0CDD3;
  --color-surface: #E2E6E9;
  --color-line: #D1D8DC;
}

/* Boho-Struktur: Rost */
[data-style-theme="boho-rost"] {
  --color-background: #F8EEE3;
  --color-ink: #3E271A;
  --color-ink-soft: #8F6C52;
  --color-gold: #C1602E;
  --color-gold-soft: #E9BC9C;
  --color-surface: #F0DFCB;
  --color-line: #E6CDAF;
}

/* Boho-Struktur: Oliv */
[data-style-theme="boho-oliv"] {
  --color-background: #F5F2E2;
  --color-ink: #33321A;
  --color-ink-soft: #82805A;
  --color-gold: #9C9A50;
  --color-gold-soft: #DBDAAA;
  --color-surface: #EDE9CE;
  --color-line: #E0DCAF;
}

/* Boho-Struktur: Beere */
[data-style-theme="boho-beere"] {
  --color-background: #F8EEEE;
  --color-ink: #3D2229;
  --color-ink-soft: #8C6B71;
  --color-gold: #B96A7A;
  --color-gold-soft: #E5C1C8;
  --color-surface: #F0DFE1;
  --color-line: #E6C9CD;
}

/* Boho-Struktur: Himmelblau */
[data-style-theme="boho-himmelblau"] {
  --color-background: #EFF4F5;
  --color-ink: #1F343A;
  --color-ink-soft: #5F7C82;
  --color-gold: #6FA3AC;
  --color-gold-soft: #BFDBDF;
  --color-surface: #E1EBED;
  --color-line: #CFE0E2;
}

/* Struktur-Regeln der Modern-Familie auch für die neuen Modern-Paletten */
[data-style-theme="modern-nacht"] .corner,
[data-style-theme="modern-olive"] .corner,
[data-style-theme="modern-terrakotta"] .corner,
[data-style-theme="modern-beere"] .corner,
[data-style-theme="modern-salbei"] .corner,
[data-style-theme="modern-schiefer"] .corner { display: none; }
[data-style-theme="modern-nacht"] .card-frame,
[data-style-theme="modern-olive"] .card-frame,
[data-style-theme="modern-terrakotta"] .card-frame,
[data-style-theme="modern-beere"] .card-frame,
[data-style-theme="modern-salbei"] .card-frame,
[data-style-theme="modern-schiefer"] .card-frame { border: none; border-top: 2px solid var(--color-ink); border-bottom: 2px solid var(--color-ink); border-radius: 0; }
[data-style-theme="modern-nacht"] .card-frame::after,
[data-style-theme="modern-olive"] .card-frame::after,
[data-style-theme="modern-terrakotta"] .card-frame::after,
[data-style-theme="modern-beere"] .card-frame::after,
[data-style-theme="modern-salbei"] .card-frame::after,
[data-style-theme="modern-schiefer"] .card-frame::after { display: none; }
[data-style-theme="modern-nacht"] .insert-card,
[data-style-theme="modern-olive"] .insert-card,
[data-style-theme="modern-terrakotta"] .insert-card,
[data-style-theme="modern-beere"] .insert-card,
[data-style-theme="modern-salbei"] .insert-card,
[data-style-theme="modern-schiefer"] .insert-card { background: transparent; border: none; border-top: 1px solid var(--color-line); border-radius: 0; }
[data-style-theme="modern-nacht"] .insert-card::after,
[data-style-theme="modern-olive"] .insert-card::after,
[data-style-theme="modern-terrakotta"] .insert-card::after,
[data-style-theme="modern-beere"] .insert-card::after,
[data-style-theme="modern-salbei"] .insert-card::after,
[data-style-theme="modern-schiefer"] .insert-card::after { display: none; }
[data-style-theme="modern-nacht"] .ornament::before,
[data-style-theme="modern-nacht"] .ornament::after,
[data-style-theme="modern-olive"] .ornament::before,
[data-style-theme="modern-olive"] .ornament::after,
[data-style-theme="modern-terrakotta"] .ornament::before,
[data-style-theme="modern-terrakotta"] .ornament::after,
[data-style-theme="modern-beere"] .ornament::before,
[data-style-theme="modern-beere"] .ornament::after,
[data-style-theme="modern-salbei"] .ornament::before,
[data-style-theme="modern-salbei"] .ornament::after,
[data-style-theme="modern-schiefer"] .ornament::before,
[data-style-theme="modern-schiefer"] .ornament::after { background: var(--color-ink); opacity: 0.25; }

/* Struktur-Regeln der Boho-Familie auch für die neuen Boho-Paletten */
[data-style-theme="boho-terra"] .corner,
[data-style-theme="boho-lavendel"] .corner,
[data-style-theme="boho-rost"] .corner,
[data-style-theme="boho-oliv"] .corner,
[data-style-theme="boho-beere"] .corner,
[data-style-theme="boho-himmelblau"] .corner { display: none; }
[data-style-theme="boho-terra"] .card-frame,
[data-style-theme="boho-lavendel"] .card-frame,
[data-style-theme="boho-rost"] .card-frame,
[data-style-theme="boho-oliv"] .card-frame,
[data-style-theme="boho-beere"] .card-frame,
[data-style-theme="boho-himmelblau"] .card-frame { border-radius: 2.5rem; border-color: color-mix(in srgb, var(--color-gold) 45%, transparent); }
[data-style-theme="boho-terra"] .card-frame::after,
[data-style-theme="boho-lavendel"] .card-frame::after,
[data-style-theme="boho-rost"] .card-frame::after,
[data-style-theme="boho-oliv"] .card-frame::after,
[data-style-theme="boho-beere"] .card-frame::after,
[data-style-theme="boho-himmelblau"] .card-frame::after { border-radius: 2.2rem; border-color: color-mix(in srgb, var(--color-gold) 22%, transparent); }
[data-style-theme="boho-terra"] .insert-card,
[data-style-theme="boho-lavendel"] .insert-card,
[data-style-theme="boho-rost"] .insert-card,
[data-style-theme="boho-oliv"] .insert-card,
[data-style-theme="boho-beere"] .insert-card,
[data-style-theme="boho-himmelblau"] .insert-card { border-radius: 1.75rem; background: var(--color-surface); border-color: color-mix(in srgb, var(--color-gold) 38%, transparent); }
[data-style-theme="boho-terra"] .insert-card::after,
[data-style-theme="boho-lavendel"] .insert-card::after,
[data-style-theme="boho-rost"] .insert-card::after,
[data-style-theme="boho-oliv"] .insert-card::after,
[data-style-theme="boho-beere"] .insert-card::after,
[data-style-theme="boho-himmelblau"] .insert-card::after { border-radius: 1.5rem; border-color: color-mix(in srgb, var(--color-gold) 18%, transparent); }

/* ───────────────────────────────────────────────────────────────
   Editorial-Familie — vierte Struktur neben Papeterie/Modern/Boho.
   Komplett rahmenlos: kein Kartenrahmen, keine Ecken, Einlege-Karten
   nur durch Fläche statt Linie abgesetzt. Wirkt wie eine Magazinseite
   und ist damit klar von den drei bestehenden Familien unterscheidbar.
   ─────────────────────────────────────────────────────────────── */
[data-style-theme="editorial-creme"] {
  --color-background: #FAF8F4;
  --color-ink: #14110D;
  --color-ink-soft: #6C645A;
  --color-gold: #A8987E;
  --color-gold-soft: #DDD4C3;
  --color-surface: #F0ECE4;
  --color-line: #E0D9CD;
  --color-paper: #FFFFFF;
}
[data-style-theme="editorial-sand"] {
  --color-background: #F6F1E9;
  --color-ink: #241E16;
  --color-ink-soft: #756A5B;
  --color-gold: #B09468;
  --color-gold-soft: #DFCEAF;
  --color-surface: #EDE5D8;
  --color-line: #DFD3BF;
  --color-paper: #FFFDF8;
}
[data-style-theme="editorial-graphit"] {
  --color-background: #F0F0EF;
  --color-ink: #16181A;
  --color-ink-soft: #61666B;
  --color-gold: #8A9196;
  --color-gold-soft: #C6CBCF;
  --color-surface: #E4E5E5;
  --color-line: #D3D5D6;
  --color-paper: #FFFFFF;
}

/* ── Dunkle Farbwelten. Bisher waren alle Paletten hell; ein dunkler
      Grund ist der deutlichste sichtbare Unterschied, den wir anbieten
      können. --color-paper wird mitgedreht, sonst leuchtet das
      Passepartout hinterm Titelbild weiß aus der Seite heraus. ── */
[data-style-theme="editorial-nacht"] {
  --color-background: #16151A;
  --color-ink: #F2EFE9;
  --color-ink-soft: #A29C93;
  --color-gold: #C9A25E;
  --color-gold-soft: #7A6740;
  --color-surface: #211F26;
  --color-line: #322F38;
  --color-paper: #211F26;
}
[data-style-theme="editorial-wald"] {
  --color-background: #131A16;
  --color-ink: #EDF1EC;
  --color-ink-soft: #9AA79B;
  --color-gold: #8FA97E;
  --color-gold-soft: #4E6045;
  --color-surface: #1C251F;
  --color-line: #2B372E;
  --color-paper: #1C251F;
}
[data-style-theme="editorial-bordeaux"] {
  --color-background: #1B1214;
  --color-ink: #F4EBEC;
  --color-ink-soft: #AC9A9D;
  --color-gold: #C08B93;
  --color-gold-soft: #6A464C;
  --color-surface: #261A1D;
  --color-line: #38272B;
  --color-paper: #261A1D;
}

/* Struktur-Regeln der Editorial-Familie (inkl. der dunklen Paletten) */
[data-style-theme^="editorial-"] .corner { display: none; }
[data-style-theme^="editorial-"] .card-frame { border: none; border-radius: 0; background: transparent; }
[data-style-theme^="editorial-"] .card-frame::after { display: none; }
[data-style-theme^="editorial-"] .insert-card { background: var(--color-surface); border: none; border-radius: 0; }
[data-style-theme^="editorial-"] .insert-card::after { display: none; }
[data-style-theme^="editorial-"] .ornament::before,
[data-style-theme^="editorial-"] .ornament::after { background: var(--color-ink); opacity: 0.18; }

body {
  background-color: #FBF7F2;
  color: #2B2420;
}

/* Desktop-Atmosphäre hinter der breiteren Gästeseiten-Karte (ab lg) —
   ohne das würde der zusätzliche Raum links/rechts wie leere Fläche
   wirken statt wie bewusster Frei-Raum. Nur Hintergrund, kein Layout. */
.atmo-wedding {
  background-image:
    radial-gradient(circle at 18% 20%, rgba(201, 162, 94, 0.16), transparent 42%),
    radial-gradient(circle at 82% 78%, rgba(184, 67, 62, 0.11), transparent 42%);
}

/* Schmale Lesespalte für Text/Formular-Abschnitte innerhalb der ab lg
   breiteren Gästeseiten-Karte (Location/Galerie/Hotels dürfen dagegen
   die volle Kartenbreite als Mehrspalten-Grid nutzen). */
.prose-col {
  max-width: 36rem; /* entspricht max-w-xl, bisherige Kartenbreite */
  margin-left: auto;
  margin-right: auto;
}

/* ── Feinkörnige Papiertextur (dezent, überall verfügbar) ── */
.grain {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 40;
  opacity: 0.045;
  /* Kein mix-blend-mode: fixed Overlay + Blending zwingt den Browser beim
     Scrollen zum ständigen Neu-Compositing der ganzen Seite — sichtbares
     Flackern auf Windows-GPUs. Bei 4,5 % Deckkraft auf hellem Grund ist
     multiply ohnehin nicht von normaler Transparenz unterscheidbar.
     translateZ(0) hebt das Overlay auf eine eigene Compositing-Ebene. */
  transform: translateZ(0);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ── Ornament-Trenner: — · — ── */
/* Die Zierlinien liefen früher als harte 28px-Balken in fest verdrahtetem
   Champagner-Gold aus. Fest verdrahtet hieß: auf Marine, Waldgrün oder den
   dunklen Farbwelten blieben sie goldgelb und passten nicht zur Palette.
   Jetzt folgen sie var(--color-gold) und laufen nach außen weich aus —
   das ist der Unterschied zwischen "Strich" und "gestochene Linie". */
.ornament::before,
.ornament::after {
  content: '';
  display: inline-block;
  width: 44px;
  height: 1px;
  vertical-align: middle;
}
.ornament::before {
  margin-right: 14px;
  background: linear-gradient(90deg, transparent, var(--color-gold, #C9A25E));
}
.ornament::after {
  margin-left: 14px;
  background: linear-gradient(90deg, var(--color-gold, #C9A25E), transparent);
}

/* ── Ecken-Rahmen (Einladungskarten-Motiv) ── */
.corner { position: absolute; width: 18px; height: 18px; border-color: var(--color-gold, #C9A25E); pointer-events: none; }

/* ── Folienprägung: metallischer Verlauf statt flacher Fläche. Nur für
      kleine Akzente (das kaufmännische Und im Monogramm) gedacht — auf
      Fließtext wäre der Verlauf unruhig und schlecht lesbar. ── */
.foil-text {
  background-image: linear-gradient(
    105deg,
    color-mix(in srgb, var(--color-gold, #C9A25E) 45%, #ffffff) 0%,
    var(--color-gold, #C9A25E) 30%,
    color-mix(in srgb, var(--color-gold, #C9A25E) 68%, #000000) 50%,
    var(--color-gold, #C9A25E) 70%,
    color-mix(in srgb, var(--color-gold, #C9A25E) 45%, #ffffff) 100%
  );
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* ── Wachssiegel ── */
.wax-seal {
  background: radial-gradient(circle at 32% 28%, #C24A44, #7A2A25);
  box-shadow: 0 10px 24px -6px rgba(122, 42, 37, 0.55), inset 0 2px 4px rgba(255, 255, 255, 0.18);
}

/* ── Scroll-Reveal ── */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.9s var(--ease), transform 0.9s var(--ease);
}
.reveal.is-visible { opacity: 1; transform: translateY(0); }

/* ── Atmosphärische Verläufe: sanfte Tiefe statt flacher Flächen.
   Als background-image (nicht background-Shorthand!), damit die
   background-color der Section darunter erhalten bleibt.
   Farbwelt „Salbei & Eukalyptus": Salbeigrün + Gold + ein Hauch Terrakotta. ── */
.atmo-hero {
  background-image:
    radial-gradient(55% 45% at 88% 8%, rgba(201, 162, 94, 0.16), transparent 70%),
    radial-gradient(50% 55% at 4% 30%, rgba(138, 155, 126, 0.16), transparent 70%),
    radial-gradient(45% 50% at 60% 100%, rgba(184, 67, 62, 0.06), transparent 70%);
}
.atmo-steps {
  background-image:
    radial-gradient(60% 60% at 50% 0%, rgba(255, 255, 255, 0.5), transparent 70%),
    radial-gradient(40% 50% at 92% 90%, rgba(138, 155, 126, 0.14), transparent 70%);
}
.atmo-showcase {
  background-image:
    radial-gradient(50% 55% at 100% 0%, rgba(201, 162, 94, 0.14), transparent 70%),
    radial-gradient(45% 50% at 0% 100%, rgba(138, 155, 126, 0.18), transparent 70%);
}
.atmo-preis {
  background-image:
    radial-gradient(45% 60% at 50% 40%, rgba(201, 162, 94, 0.16), transparent 70%),
    radial-gradient(35% 45% at 8% 8%, rgba(138, 155, 126, 0.12), transparent 70%),
    radial-gradient(35% 45% at 94% 90%, rgba(138, 155, 126, 0.12), transparent 70%);
}

/* ── Sprig: feines botanisches Linien-Ornament — Eukalyptus-grün ── */
.sprig { color: #8A9B7E; pointer-events: none; }

/* ── Heller Scrollbalken passend zur Salbei/Creme-Palette ── */
html {
  scrollbar-color: #C2CEB7 #F5F0E8; /* Firefox: Daumen / Schiene */
  scrollbar-width: thin;
}
::-webkit-scrollbar { width: 13px; }
::-webkit-scrollbar-track { background: #F5F0E8; }
::-webkit-scrollbar-thumb {
  background: #C2CEB7;
  border-radius: 10px;
  border: 3px solid #F5F0E8;
}
::-webkit-scrollbar-thumb:hover { background: #8A9B7E; }

/* ── Sprungleiste der Gästeseite ──────────────────────────────────────────
   Die Linkliste wird auf schmalen Geräten waagerecht scrollbar. Eine
   sichtbare Bildlaufleiste unter den Punkten wäre dort ein Fremdkörper,
   gewischt wird trotzdem. */
.sprung-scroll {
  scrollbar-width: none;
  -ms-overflow-style: none;
  /* Weiches Auslaufen am rechten Rand statt harter Kante: Ohne das wurde
     ein Punkt mitten im Wort gekappt ("FA" von "FAQ") und die Leiste sah
     abgeschnitten statt wischbar aus. Auf dem Desktop endet der Inhalt vor
     der Kante, dort ist vom Verlauf nichts zu sehen. */
  -webkit-mask-image: linear-gradient(to right, black 0, black calc(100% - 28px), transparent 100%);
  mask-image: linear-gradient(to right, black 0, black calc(100% - 28px), transparent 100%);
}
.sprung-scroll::-webkit-scrollbar { display: none; }

/* Sanftes Scrollen zu den Sprungzielen. Wer Bewegung reduziert haben möchte,
   bekommt den harten Sprung — sonst wandert die Seite minutenlang. */
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

/* Ankreuzfelder in der Farbwelt statt im Browser-Blau. Auf der Gästeseite
   folgt die Farbe automatisch dem gewählten Stil, weil --color-accent dort
   je Farbwelt gesetzt wird; Dashboard und Anmeldung nutzen den Rückfallwert. */
input[type="checkbox"],
input[type="radio"] {
  accent-color: var(--color-accent, #B8433E);
}

/* ── Formulare: einheitlicher, gehobener Look statt nackter border ──
   @layer components sorgt dafür, dass diese Klassen VOR den Tailwind-
   Utilities in der Cascade landen – sonst gewinnt z.B. .field-input
   gegen w-20/flex-1 bei gleicher Spezifität und Breiten brechen. ── */

/* ── Untergrund hinter der Karte ──────────────────────────────────────────
   Die Gästeseite ist als Karte gedacht, die auf einer Fläche liegt. Bisher
   hatten Karte UND Untergrund exakt dieselbe Farbe (beide bg-background) —
   die Karte war dadurch praktisch unsichtbar und alles wirkte flach. Bei den
   dunklen Farbwelten fiel das nicht auf, weil dort schon der Textkontrast
   Tiefe erzeugt; bei den hellen fehlte jede Staffelung.
   --color-canvas ist ein spürbar tieferer Ton derselben Palette. Er wird aus
   Hintergrund + Textfarbe gemischt, damit er automatisch zu jeder der
   Farbwelten passt, ohne 30 Werte von Hand zu pflegen. */
[data-style-theme] {
  --color-canvas: color-mix(in srgb, var(--color-background, #FBF7F2) 86%, var(--color-ink, #2B2420) 14%);
}
/* Dunkle Paletten brauchen die umgekehrte Richtung: dort muss der Untergrund
   dunkler als die Karte werden, nicht heller. */
[data-style-theme="editorial-nacht"] { --color-canvas: #0D0C10; }
[data-style-theme="editorial-wald"] { --color-canvas: #0B110D; }
[data-style-theme="editorial-bordeaux"] { --color-canvas: #120B0D; }

/* ── Papeterie (Gästeseite): feiner Doppelrahmen wie bei gedruckten Karten ──
   Rahmenfarben folgen jetzt der gewählten Farbwelt (vorher fest
   rgba(201,162,94) = Champagner-Gold, unabhängig vom Theme — auf Marine,
   Waldgrün oder den dunklen Paletten wirkte das zusammengewürfelt).
   Der weit gestreute Schatten lässt die Karte auf dem Untergrund liegen,
   statt flach aufgedruckt zu wirken. */
.card-frame {
  position: relative;
  border: 1px solid color-mix(in srgb, var(--color-gold, #C9A25E) 50%, transparent);
  box-shadow:
    0 40px 90px -50px rgba(0, 0, 0, 0.5),
    0 8px 24px -18px rgba(0, 0, 0, 0.25);
}
.card-frame::after {
  content: '';
  position: absolute;
  inset: 6px;
  border: 1px solid color-mix(in srgb, var(--color-gold, #C9A25E) 22%, transparent);
  pointer-events: none;
}

/* Karten-Einschub (RSVP, Locations): Karte mit Haarlinie. Hintergrund über
   --color-paper, damit die dunklen Farbwelten hier keine weißen Blöcke
   bekommen. */
.insert-card {
  background: var(--color-paper, #FFFFFF);
  border: 1px solid color-mix(in srgb, var(--color-gold, #C9A25E) 40%, transparent);
  position: relative;
  box-shadow: 0 12px 30px -22px rgba(0, 0, 0, 0.35);
}
.insert-card::after {
  content: '';
  position: absolute;
  inset: 5px;
  border: 1px solid color-mix(in srgb, var(--color-gold, #C9A25E) 18%, transparent);
  pointer-events: none;
}

/* Eingebettete Karten leicht entsättigt, damit sie zur Papierpalette passen */
.map-tone { filter: sepia(0.14) saturate(0.85) contrast(0.98); }

/* ── Keyframes (Einladungskarten-Animationen, überall wiederverwendbar) ── */
@keyframes riseIn { 0% { transform: translateY(28px); opacity: 0; } 100% { transform: translateY(0); opacity: 1; } }
.rise-1 { animation: riseIn 0.8s var(--ease) 0.05s both; }
.rise-2 { animation: riseIn 0.8s var(--ease) 0.2s both; }
.rise-3 { animation: riseIn 0.8s var(--ease) 0.35s both; }

@keyframes cardIn { 0% { transform: translateY(-16px) rotate(3deg) scale(0.94); opacity: 0; } 100% { transform: translateY(0) rotate(3deg) scale(1); opacity: 1; } }
.card-in { animation: cardIn 1s var(--ease) 0.25s both; }

@keyframes envIn { 0% { transform: translateY(-10px) rotate(-7deg) scale(0.94); opacity: 0; } 100% { transform: translateY(0) rotate(-7deg) scale(1); opacity: 1; } }
.env-in { animation: envIn 1s var(--ease) 0.1s both; }

@keyframes sealIn { 0% { transform: rotate(-18deg) scale(0.5); opacity: 0; } 100% { transform: rotate(-9deg) scale(1); opacity: 1; } }
.seal-in { animation: sealIn 0.7s cubic-bezier(.3,1.4,.4,1) 0.7s both; }

@keyframes drift { 0%, 100% { transform: translateY(0) rotate(3deg); } 50% { transform: translateY(-8px) rotate(3deg); } }
.drift { animation: drift 6s ease-in-out infinite; }

@keyframes marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
.marquee-track { animation: marquee 28s linear infinite; }

@keyframes cursorBlink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }
.typing-cursor {
  display: inline-block;
  width: 2px;
  height: 1em;
  margin-left: 2px;
  background: currentColor;
  vertical-align: -0.15em;
  animation: cursorBlink 0.85s step-end infinite;
}

@media (prefers-reduced-motion: reduce) {
  .rise-1, .rise-2, .rise-3, .card-in, .env-in, .seal-in, .drift, .marquee-track {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
  /* .reveal fehlte hier: die Elemente kamen zwar an (IntersectionObserver
     setzt is-visible), aber mit 0,9 s Bewegung. Bei reduzierter Bewegung
     sollen sie einfach da sein. */
  .reveal {
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

.last\:border-b-0:last-child{
  border-bottom-width: 0px;
}

.hover\:-translate-y-0\.5:hover{
  --tw-translate-y: -0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:rotate-0:hover{
  --tw-rotate: 0deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:scale-105:hover{
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:scale-110:hover{
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:scale-\[1\.03\]:hover{
  --tw-scale-x: 1.03;
  --tw-scale-y: 1.03;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:border-accent:hover{
  border-color: var(--color-accent, #B8433E);
}

.hover\:border-gold:hover{
  border-color: var(--color-gold, #C9A25E);
}

.hover\:bg-line:hover{
  background-color: var(--color-line, #E3DACD);
}

.hover\:bg-surface:hover{
  background-color: var(--color-surface, #F1EBE0);
}

.hover\:bg-white:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.hover\:text-accent:hover{
  color: var(--color-accent, #B8433E);
}

.hover\:text-ink:hover{
  color: var(--color-ink, #2B2420);
}

.hover\:text-ink-soft:hover{
  color: var(--color-ink-soft, #6B5F52);
}

.hover\:decoration-gold:hover{
  text-decoration-color: var(--color-gold, #C9A25E);
}

.hover\:decoration-2:hover{
  text-decoration-thickness: 2px;
}

.hover\:opacity-100:hover{
  opacity: 1;
}

.hover\:opacity-70:hover{
  opacity: 0.7;
}

.hover\:opacity-80:hover{
  opacity: 0.8;
}

.hover\:opacity-85:hover{
  opacity: 0.85;
}

.hover\:opacity-90:hover{
  opacity: 0.9;
}

.focus\:outline-none:focus{
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.active\:scale-95:active{
  --tw-scale-x: .95;
  --tw-scale-y: .95;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.active\:cursor-grabbing:active{
  cursor: grabbing;
}

.disabled\:cursor-not-allowed:disabled{
  cursor: not-allowed;
}

.disabled\:opacity-40:disabled{
  opacity: 0.4;
}

.disabled\:opacity-50:disabled{
  opacity: 0.5;
}

.disabled\:opacity-60:disabled{
  opacity: 0.6;
}

.disabled\:hover\:bg-transparent:hover:disabled{
  background-color: transparent;
}

.disabled\:hover\:opacity-40:hover:disabled{
  opacity: 0.4;
}

.disabled\:hover\:opacity-90:hover:disabled{
  opacity: 0.9;
}

.group:hover .group-hover\:-translate-y-1\.5{
  --tw-translate-y: -0.375rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.group:hover .group-hover\:underline{
  text-decoration-line: underline;
}

.group:hover .group-hover\:opacity-100{
  opacity: 1;
}

@media (min-width: 640px){

  .sm\:-mr-14{
    margin-right: -3.5rem;
  }

  .sm\:inline{
    display: inline;
  }

  .sm\:h-\[371px\]{
    height: 371px;
  }

  .sm\:h-\[461px\]{
    height: 461px;
  }

  .sm\:w-\[180px\]{
    width: 180px;
  }

  .sm\:w-\[224px\]{
    width: 224px;
  }

  .sm\:grid-cols-2{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sm\:grid-cols-3{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .sm\:grid-cols-4{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .sm\:rounded-\[1\.7rem\]{
    border-radius: 1.7rem;
  }

  .sm\:rounded-\[2rem\]{
    border-radius: 2rem;
  }

  .sm\:border-8{
    border-width: 8px;
  }

  .sm\:border-\[7px\]{
    border-width: 7px;
  }
}

@media (min-width: 768px){

  .md\:inset-x-auto{
    left: auto;
    right: auto;
  }

  .md\:bottom-2{
    bottom: 0.5rem;
  }

  .md\:bottom-8{
    bottom: 2rem;
  }

  .md\:left-auto{
    left: auto;
  }

  .md\:right-0{
    right: 0px;
  }

  .md\:right-2{
    right: 0.5rem;
  }

  .md\:right-\[245px\]{
    right: 245px;
  }

  .md\:top-auto{
    top: auto;
  }

  .md\:order-1{
    order: 1;
  }

  .md\:order-2{
    order: 2;
  }

  .md\:-mx-12{
    margin-left: -3rem;
    margin-right: -3rem;
  }

  .md\:mx-4{
    margin-left: 1rem;
    margin-right: 1rem;
  }

  .md\:-mt-16{
    margin-top: -4rem;
  }

  .md\:block{
    display: block;
  }

  .md\:inline{
    display: inline;
  }

  .md\:flex{
    display: flex;
  }

  .md\:grid{
    display: grid;
  }

  .md\:hidden{
    display: none;
  }

  .md\:h-12{
    height: 3rem;
  }

  .md\:h-16{
    height: 4rem;
  }

  .md\:h-20{
    height: 5rem;
  }

  .md\:h-80{
    height: 20rem;
  }

  .md\:h-\[140px\]{
    height: 140px;
  }

  .md\:h-\[34rem\]{
    height: 34rem;
  }

  .md\:h-\[370px\]{
    height: 370px;
  }

  .md\:h-\[540px\]{
    height: 540px;
  }

  .md\:w-1\/2{
    width: 50%;
  }

  .md\:w-20{
    width: 5rem;
  }

  .md\:w-\[140px\]{
    width: 140px;
  }

  .md\:w-\[300px\]{
    width: 300px;
  }

  .md\:grid-cols-2{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .md\:grid-cols-3{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .md\:grid-cols-4{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .md\:grid-cols-\[0\.9fr_1\.1fr\]{
    grid-template-columns: 0.9fr 1.1fr;
  }

  .md\:grid-cols-\[1\.1fr_0\.9fr\]{
    grid-template-columns: 1.1fr 0.9fr;
  }

  .md\:grid-cols-\[1fr_2\.5rem_1fr\]{
    grid-template-columns: 1fr 2.5rem 1fr;
  }

  .md\:flex-row{
    flex-direction: row;
  }

  .md\:justify-end{
    justify-content: flex-end;
  }

  .md\:gap-12{
    gap: 3rem;
  }

  .md\:gap-4{
    gap: 1rem;
  }

  .md\:gap-7{
    gap: 1.75rem;
  }

  .md\:gap-8{
    gap: 2rem;
  }

  .md\:gap-x-6{
    -moz-column-gap: 1.5rem;
         column-gap: 1.5rem;
  }

  .md\:gap-x-8{
    -moz-column-gap: 2rem;
         column-gap: 2rem;
  }

  .md\:gap-y-10{
    row-gap: 2.5rem;
  }

  .md\:p-10{
    padding: 2.5rem;
  }

  .md\:p-6{
    padding: 1.5rem;
  }

  .md\:p-8{
    padding: 2rem;
  }

  .md\:p-9{
    padding: 2.25rem;
  }

  .md\:px-10{
    padding-left: 2.5rem;
    padding-right: 2.5rem;
  }

  .md\:px-12{
    padding-left: 3rem;
    padding-right: 3rem;
  }

  .md\:px-16{
    padding-left: 4rem;
    padding-right: 4rem;
  }

  .md\:px-5{
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }

  .md\:px-8{
    padding-left: 2rem;
    padding-right: 2rem;
  }

  .md\:py-16{
    padding-top: 4rem;
    padding-bottom: 4rem;
  }

  .md\:py-2\.5{
    padding-top: 0.625rem;
    padding-bottom: 0.625rem;
  }

  .md\:py-5{
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
  }

  .md\:pb-14{
    padding-bottom: 3.5rem;
  }

  .md\:pt-14{
    padding-top: 3.5rem;
  }

  .md\:pt-8{
    padding-top: 2rem;
  }

  .md\:text-2xl{
    font-size: 1.5rem;
    line-height: 2rem;
  }

  .md\:text-4xl{
    font-size: 2.25rem;
    line-height: 2.5rem;
  }

  .md\:text-5xl{
    font-size: 3rem;
    line-height: 1;
  }

  .md\:text-6xl{
    font-size: 3.75rem;
    line-height: 1;
  }

  .md\:text-\[2\.1rem\]{
    font-size: 2.1rem;
  }

  .md\:text-\[2rem\]{
    font-size: 2rem;
  }

  .md\:text-\[5\.2rem\]{
    font-size: 5.2rem;
  }

  .md\:text-lg{
    font-size: 1.125rem;
    line-height: 1.75rem;
  }

  .md\:text-sm{
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
}

@media (min-width: 1024px){

  .lg\:order-1{
    order: 1;
  }

  .lg\:order-2{
    order: 2;
  }

  .lg\:-mx-14{
    margin-left: -3.5rem;
    margin-right: -3.5rem;
  }

  .lg\:block{
    display: block;
  }

  .lg\:h-\[28rem\]{
    height: 28rem;
  }

  .lg\:h-\[412px\]{
    height: 412px;
  }

  .lg\:h-\[515px\]{
    height: 515px;
  }

  .lg\:w-\[200px\]{
    width: 200px;
  }

  .lg\:w-\[250px\]{
    width: 250px;
  }

  .lg\:max-w-4xl{
    max-width: 56rem;
  }

  .lg\:grid-cols-2{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .lg\:grid-cols-3{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .lg\:grid-cols-5{
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .lg\:grid-cols-\[1\.05fr_0\.95fr\]{
    grid-template-columns: 1.05fr 0.95fr;
  }

  .lg\:gap-12{
    gap: 3rem;
  }

  .lg\:gap-16{
    gap: 4rem;
  }

  .lg\:p-10{
    padding: 2.5rem;
  }

  .lg\:px-10{
    padding-left: 2.5rem;
    padding-right: 2.5rem;
  }

  .lg\:px-14{
    padding-left: 3.5rem;
    padding-right: 3.5rem;
  }
}

@media (min-width: 1280px){

  .xl\:-mx-16{
    margin-left: -4rem;
    margin-right: -4rem;
  }

  .xl\:max-w-6xl{
    max-width: 72rem;
  }

  .xl\:grid-cols-3{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .xl\:px-16{
    padding-left: 4rem;
    padding-right: 4rem;
  }
}

@media (min-width: 1536px){

  .\32xl\:max-w-\[1400px\]{
    max-width: 1400px;
  }
}

@media print{

  .print\:hidden{
    display: none;
  }
}

.\[\&_a\]\:text-ink a{
  color: var(--color-ink, #2B2420);
}

.\[\&_a\]\:underline a{
  text-decoration-line: underline;
}

.\[\&_a\]\:decoration-gold a{
  text-decoration-color: var(--color-gold, #C9A25E);
}

.\[\&_a\]\:underline-offset-4 a{
  text-underline-offset: 4px;
}

.\[\&_h2\]\:mb-3 h2{
  margin-bottom: 0.75rem;
}

.\[\&_h2\]\:mb-4 h2{
  margin-bottom: 1rem;
}

.\[\&_h2\]\:mt-10 h2{
  margin-top: 2.5rem;
}

.\[\&_h2\]\:mt-12 h2{
  margin-top: 3rem;
}

.\[\&_h2\]\:font-display h2{
  font-family: var(--font-display), "Bodoni Moda", Georgia, serif;
}

.\[\&_h2\]\:text-2xl h2{
  font-size: 1.5rem;
  line-height: 2rem;
}

.\[\&_h2\]\:text-xl h2{
  font-size: 1.25rem;
  line-height: 1.75rem;
}

.\[\&_h2\]\:text-ink h2{
  color: var(--color-ink, #2B2420);
}

.\[\&_h3\]\:mb-1\.5 h3{
  margin-bottom: 0.375rem;
}

.\[\&_h3\]\:mb-2 h3{
  margin-bottom: 0.5rem;
}

.\[\&_h3\]\:mt-6 h3{
  margin-top: 1.5rem;
}

.\[\&_h3\]\:mt-8 h3{
  margin-top: 2rem;
}

.\[\&_h3\]\:font-medium h3{
  font-weight: 500;
}

.\[\&_h3\]\:font-semibold h3{
  font-weight: 600;
}

.\[\&_h3\]\:text-ink h3{
  color: var(--color-ink, #2B2420);
}

.\[\&_strong\]\:font-semibold strong{
  font-weight: 600;
}

.\[\&_strong\]\:text-ink strong{
  color: var(--color-ink, #2B2420);
}

.\[\&_ul\]\:list-disc ul{
  list-style-type: disc;
}

.\[\&_ul\]\:space-y-1\.5 ul > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.375rem * var(--tw-space-y-reverse));
}

.\[\&_ul\]\:pl-5 ul{
  padding-left: 1.25rem;
}

