/**
 * Color Palette
 *
 * Structure:
 *  1. Raw color scales  – named by hue + numeric weight (100–900)
 *  2. Semantic tokens   – role-based aliases that reference the scales
 *  3. Surface tokens    – background / surface / overlay layers
 *  4. Social media      – brand colors kept in one place
 *
 * Usage: always consume semantic tokens in components, never raw scales directly.
 */

/* ============================================================
   1. RAW COLOR SCALES
   ============================================================ */

:root {

  /* BASE colors */
  --color-white: #ffffff;
  --color-black: #000000;
  --color-red: #ff0000;
  --color-green: #00ff00;
  --color-blue: #0000ff;
  --color-yellow: #ffff00;
  --color-cyan: #00ffff;
  --color-magenta: #ff00ff;
  --color-gray: #808080;
  --color-transparent: rgba(0, 0, 0, 0);

  /* --- Teal (primary brand hue) --- */
  --color-teal-50:  #fffffe;
  --color-teal-100: #d0f0f4;
  --color-teal-150: #b8e8ef;
  --color-teal-200: #a1e1ea;
  --color-teal-250: #87d6e2;
  --color-teal-300: #6dcbda;
  --color-teal-350: #56c0d0;
  --color-teal-400: #3eb5c7;
  --color-teal-450: #2daebf;
  --color-teal-500: #1ca7b7;
  --color-teal-550: #1c91a0;
  --color-teal-600: #1c7b8a;
  --color-teal-650: #186d7b;
  --color-teal-700: #155f6c;
  --color-teal-750: #12525e;
  --color-teal-800: #0e4450;
  --color-teal-850: #0a3742;
  --color-teal-900: #072a33;

  /* --- Orange / Red (accent, CTA) --- */
  --color-orange-50:  #fffeff;
  --color-orange-100: #ffe4d8;
  --color-orange-150: #ffd7c4;
  --color-orange-200: #ffcab1;
  --color-orange-250: #ffba9a;
  --color-orange-300: #ffaa83;
  --color-orange-350: #ff996e;
  --color-orange-400: #ff885a;
  --color-orange-450: #ff723b;
  --color-orange-500: #ff5d1c; 
  --color-orange-550: #f05112;
  --color-orange-600: #e04508;
  --color-orange-650: #ca3d07;
  --color-orange-700: #b33506;
  --color-orange-750: #9c2e05;
  --color-orange-800: #862604;
  --color-orange-850: #701f03;
  --color-orange-900: #591802;

  /* --- Red (danger / error) --- */
  --color-red-50:    #ffffff;
  --color-red-100:   #fde8e8;
  --color-red-150:   #fcd6d6;
  --color-red-200:   #fbc5c5;
  --color-red-250:   #f9aeae;
  --color-red-300:   #f79898;
  --color-red-350:   #f58080;
  --color-red-400:   #f36767;
  --color-red-450:   #f35050;
  --color-red-500:   #f33939; 
  --color-red-550:   #e42c2c;
  --color-red-600:   #d42020;
  --color-red-650:   #be1c1c;
  --color-red-700:   #a81818;
  --color-red-750:   #921414;
  --color-red-800:   #7d1111;
  --color-red-850:   #680e0e;
  --color-red-900:   #520b0b;

  /* --- Yellow (tags, highlights) --- */
  --color-yellow-50:  #ffffff;
  --color-yellow-100: #fef9d8;
  --color-yellow-150: #fef6c4;
  --color-yellow-200: #fdf2af;
  --color-yellow-250: #fcee98;
  --color-yellow-300: #fbe980;
  --color-yellow-350: #fae46f;
  --color-yellow-400: #fade5e;
  --color-yellow-450: #f9dc52;
  --color-yellow-500: #f8da46;
  --color-yellow-550: #e6c730;
  --color-yellow-600: #d4b41a;
  --color-yellow-650: #bda016;
  --color-yellow-700: #a68c12;
  --color-yellow-750: #90780f;
  --color-yellow-800: #79650c;
  --color-yellow-850: #62520a;
  --color-yellow-900: #4c3e07;

  /* --- Green (success, positive) --- */
  --color-green-50:  #fffff5;
  --color-green-100: #e8f5c8;
  --color-green-150: #dcefb2;
  --color-green-200: #cfe99b;
  --color-green-250: #c0e183;
  --color-green-300: #b1d96b;
  --color-green-350: #a0d054;
  --color-green-400: #90c63c;
  --color-green-450: #80b61e;
  --color-green-500: #6fa701;
  --color-green-550: #629401;
  --color-green-600: #568201;
  --color-green-650: #4b7101;
  --color-green-700: #406001;
  --color-green-750: #365000;
  --color-green-800: #2c4100;
  --color-green-850: #223200;
  --color-green-900: #182300;

  /* --- Pink (secondary accent) --- */
  --color-pink-50:   #fffeff;
  --color-pink-100:  #ffe4f1;
  --color-pink-150:  #ffd7ea;
  --color-pink-200:  #ffcae3;
  --color-pink-250:  #ffb9db;
  --color-pink-300:  #ffa8d3;
  --color-pink-350:  #ff99ca;
  --color-pink-400:  #ff8ac0;
  --color-pink-450:  #ff7cb4;
  --color-pink-500:  #ff6fa9;
  --color-pink-550:  #f05f9a;
  --color-pink-600:  #e04f8c;
  --color-pink-650:  #ca427e;
  --color-pink-700:  #b33470;
  --color-pink-750:  #9c2962;
  --color-pink-800:  #861e54;
  --color-pink-850:  #701646;
  --color-pink-900:  #590d38;

  /* --- Brown (links) --- */
  --color-brown-50:  #ffffff;
  --color-brown-100: #f5e4d2;
  --color-brown-150: #eed6bb;
  --color-brown-200: #e8c8a4;
  --color-brown-250: #deb68b;
  --color-brown-300: #d5a472;
  --color-brown-350: #cc9159;
  --color-brown-400: #c37e40;
  --color-brown-450: #bb6c26;
  --color-brown-500: #b35a0c;   
  --color-brown-550: #a0500a;
  --color-brown-600: #8e4609;
  --color-brown-650: #7c3d08;
  --color-brown-700: #6a3407;
  --color-brown-750: #582c06;
  --color-brown-800: #472304;
  --color-brown-850: #361a03;
  --color-brown-900: #241202;

  /* --- Neutral / Gray --- */
  --color-gray-0:    #ffffff;
  --color-gray-50:   #fafafa;
  --color-gray-100:  #f5f5f9;
  --color-gray-150:  #f0f0f0;
  --color-gray-200:  #e8e8e8;
  --color-gray-250:  #dcdcdc;
  --color-gray-300:  #d0d0d0;
  --color-gray-350:  #c0c0c0;
  --color-gray-400:  #b0b0b0;
  --color-gray-450:  #9d9d9d;
  --color-gray-500:  #8a8a8a;
  --color-gray-550:  #7a7a7a;
  --color-gray-600:  #6a6a6a;
  --color-gray-650:  #5e5e5e;
  --color-gray-700:  #525252;
  --color-gray-750:  #4e4e4e;
  --color-gray-800:  #4a4a4a;
  --color-gray-850:  #333333;
  --color-gray-900:  #1a1a1a;
  --color-gray-950:  #0d0d0d;
  --color-gray-1000: #000000;

  /* --- Light Blue (info background) --- */
  --color-blue-50:  #f0f6ff;
  --color-blue-100: #e7f0fe;
  --color-blue-150: #d6e4fd;
  --color-blue-200: #c5d9fc;
  --color-blue-250: #aecafb;
  --color-blue-300: #97bcfa;
  --color-blue-350: #7eaaf8;
  --color-blue-400: #6699f7;
  --color-blue-450: #5187f5;
  --color-blue-500: #3d76f4;
  --color-blue-550: #2d66e4;
  --color-blue-600: #1d57d4;
  --color-blue-650: #194cba;
  --color-blue-700: #1541a0;
  --color-blue-750: #113788;
  --color-blue-800: #0e2e70;
  --color-blue-850: #0a255a;
  --color-blue-900: #071c44;
}

/* ============================================================
   2. SEMANTIC TOKENS  (role → scale alias)
   ============================================================ */

:root {

  /* -- Primary -------------------------------------------- */
  --color-primary:          var(--color-teal-500);
  --color-primary-hover:    var(--color-teal-600);
  --color-primary-active:   var(--color-teal-700);
  --color-primary-subtle:   var(--color-teal-100);
  --color-primary-contrast: var(--color-gray-0);

  /* -- Secondary (pink) ----------------------------------- */
  --color-secondary:          var(--color-pink-500);
  --color-secondary-hover:    var(--color-pink-600);
  --color-secondary-active:   var(--color-pink-700);
  --color-secondary-subtle:   var(--color-pink-100);
  --color-secondary-contrast: var(--color-gray-0);

  /* -- Accent (orange) ------------------------------------ */
  --color-accent:          var(--color-orange-500);
  --color-accent-hover:    var(--color-orange-600);
  --color-accent-active:   var(--color-orange-700);
  --color-accent-subtle:   var(--color-orange-100);
  --color-accent-contrast: var(--color-gray-0);

  /* -- Success -------------------------------------------- */
  --color-success:          var(--color-green-500);
  --color-success-hover:    var(--color-green-600);
  --color-success-subtle:   var(--color-green-100);
  --color-success-contrast: var(--color-gray-0);

  /* -- Warning -------------------------------------------- */
  --color-warning:          var(--color-yellow-500);
  --color-warning-hover:    var(--color-yellow-600);
  --color-warning-subtle:   var(--color-yellow-100);
  --color-warning-contrast: var(--color-gray-900);

  /* -- Danger / Error ------------------------------------- */
  --color-danger:          var(--color-red-500);
  --color-danger-hover:    var(--color-red-600);
  --color-danger-subtle:   var(--color-red-100);
  --color-danger-contrast: var(--color-gray-0);

  /* -- Info ----------------------------------------------- */
  --color-info:          var(--color-blue-500);
  --color-info-hover:    var(--color-blue-600);
  --color-info-subtle:   var(--color-blue-100);
  --color-info-contrast: var(--color-gray-0);

  /* -- Text ----------------------------------------------- */
  --color-text-default:   var(--color-gray-800);
  --color-text-muted:     var(--color-gray-700);
  --color-text-subtle:    var(--color-gray-500);
  --color-text-disabled:  var(--color-gray-400);
  --color-text-inverse:   var(--color-gray-0);
  --color-text-heading:   var(--color-gray-900);
  --color-text-link:      var(--color-brown-500);
  --color-text-link-hover:var(--color-brown-700);

  /* -- Border --------------------------------------------- */
  --color-border:         var(--color-gray-300);
  --color-border-light:   var(--color-gray-150);
  --color-border-strong:  var(--color-gray-500);
  --color-border-focus:   var(--color-teal-500);

  /* -- Tag / Badge ---------------------------------------- */
  --color-tag-bg:         var(--color-yellow-500);
  --color-tag-text:       var(--color-gray-900);
  --color-tag-bg-hover:   var(--color-yellow-600);
}

/* ============================================================
   3. SURFACE TOKENS
   ============================================================ */

:root {
  --color-surface-page:     var(--color-gray-0);
  --color-surface-default:  var(--color-gray-50);
  --color-surface-subtle:   var(--color-gray-100);
  --color-surface-muted:    var(--color-gray-150);
  --color-surface-raised:   var(--color-gray-0);
  --color-surface-overlay:  rgba(0, 0, 0, 0.5);
  --color-surface-invert:   var(--color-gray-900);
}

/* ============================================================
   4. SOCIAL MEDIA BRAND COLORS
   ============================================================ */

:root {
  --color-facebook:   #3b5998;
  --color-twitter:    #00aced;
  --color-whatsapp:   #25d366;
  --color-telegram:   #29b6f6;
  --color-pinterest:  #bd081c;
  --color-reddit:     #ff5700;
  --color-linkedin:   #0077b5;
  --color-get-pocket: #ef4056;
  --color-email:      #404040;
  --color-copy-link:  #c9c8c8;
}

/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */

/**
 * 1. Change the default font family in all browsers (opinionated).
 * 2. Prevent adjustments of font size after orientation changes in IE and iOS.
 */

html {
  font-family: sans-serif; /* 1 */
  -ms-text-size-adjust: 100%; /* 2 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/**
 * Remove the margin in all browsers (opinionated).
 */

body {
  margin: 0;
}

/* HTML5 display definitions
   ========================================================================== */

/**
 * Add the correct display in IE 9-.
 * 1. Add the correct display in Edge, IE, and Firefox.
 * 2. Add the correct display in IE.
 */

article,
aside,
details, /* 1 */
figcaption,
figure,
footer,
header,
main, /* 2 */
menu,
nav,
section,
summary { /* 1 */
  display: block;
}

/**
 * Add the correct display in IE 9-.
 */

audio,
canvas,
progress,
video {
  display: inline-block;
}

/**
 * Add the correct display in iOS 4-7.
 */

audio:not([controls]) {
  display: none;
  height: 0;
}

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

progress {
  vertical-align: baseline;
}

/**
 * Add the correct display in IE 10-.
 * 1. Add the correct display in IE.
 */

template, /* 1 */
[hidden] {
  display: none;
}

/* Links
   ========================================================================== */

/**
 * 1. Remove the gray background on active links in IE 10.
 * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
 */

a {
  background-color: transparent; /* 1 */
  -webkit-text-decoration-skip: objects; /* 2 */
}

/**
 * Remove the outline on focused links when they are also active or hovered
 * in all browsers (opinionated).
 */

a:active,
a:hover {
  outline-width: 0;
}

/* Text-level semantics
   ========================================================================== */

/**
 * 1. Remove the bottom border in Firefox 39-.
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */

abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  text-decoration: underline dotted; /* 2 */
}

/**
 * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
 */

b,
strong {
  font-weight: inherit;
}

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

b,
strong {
  font-weight: bolder;
}

/**
 * Add the correct font style in Android 4.3-.
 */

dfn {
  font-style: italic;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/**
 * Add the correct background and color in IE 9-.
 */

mark {
  background-color: #ff0;
  color: #000;
}

/**
 * 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;
}

/* Embedded content
   ========================================================================== */

/**
 * Remove the border on images inside links in IE 10-.
 */

img {
  border-style: none;
}

/**
 * Hide the overflow in IE.
 */

svg:not(:root) {
  overflow: hidden;
}

/* Grouping content
   ========================================================================== */

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
pre,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct margin in IE 8.
 */

figure {
  margin: 1em 40px;
}

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

/* Forms
   ========================================================================== */

/**
 * 1. Change font properties to `inherit` in all browsers (opinionated).
 * 2. Remove the margin in Firefox and Safari.
 */

button,
input,
select,
textarea {
  font: inherit; /* 1 */
  margin: 0; /* 2 */
}

/**
 * Restore the font weight unset by the previous rule.
 */

optgroup {
  font-weight: bold;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */

button,
input { /* 1 */
  overflow: visible;
}

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

button,
select { /* 1 */
  text-transform: none;
}

/**
 * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
 *    controls in Android 4.
 * 2. Correct the inability to style clickable types in iOS and Safari.
 */

button,
html [type="button"], /* 1 */
[type="reset"],
[type="submit"] {
  -webkit-appearance: button; /* 2 */
}

/**
 * Remove the inner border and padding in Firefox.
 */

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Change the border, margin, and padding in all browsers (opinionated).
 */

fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */

legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
 * Remove the default vertical scrollbar in IE.
 */

textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10-.
 * 2. Remove the padding in IE 10-.
 */

[type="checkbox"],
[type="radio"] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

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

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-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 and cancel buttons in Chrome and Safari on OS X.
 */

[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * Correct the text style of placeholders in Chrome, Edge, and Safari.
 */

::-webkit-input-placeholder {
  color: inherit;
  opacity: 0.54;
}

/**
 * 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 */
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

* {
  margin: 0;
}

html {
  font-size: 100%;
}

body {
  min-height: 100vh;
  line-height: 1.5;
}

img,
picture {
  max-width: 100%;
  display: block;
}

button,
input,
textarea,
select {
  font: inherit;
}

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

p {
  margin: 0;
  padding: 0;
}

button {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  outline: none;
}

fieldset {
  margin: 0;
  padding: 0;
  border: 0;
}

svg {
  display: block;
}

input:-webkit-autofill {
  background-color: transparent;
}

::placeholder {
  color: #4a4a4a;
  font-size: 15px;
  font-style: italic;
}

body {
  font-family: var(--font-family-base);
  color: var(--text-color);
  background: var(--background-color);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  line-height: 1.2;
}

p {
  margin-bottom: 1rem;
}

html {
  height: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: 60px;
}

@font-face {
  font-family: 'Rubik';
  src: url('/assets/ttf/Rubik-VariableFont_wght.ttf') format('truetype');
  font-style: normal;
  font-weight: 300 900;
  font-display: swap;
}

nav {
  font-family: 'Rubik', sans-serif;
}

body {
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  margin: 0 auto;
  padding: 0;
  line-height: 1.6;
  color: #4a4a4a;
  background-color: #f8f5f1;
}

a,
a:visited {
  color: var(--color-gray-800);
  text-decoration: none;
}

a:hover {
  text-decoration: none;
}

figure {
  margin: 0;
  padding: 0;
}

img {
  width: 100%;
  height: auto;
}

h1, h2, h3, h4, h5, h6 {
  margin: 0.5rem 0 1rem 0
}

.sentences-list {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
}

.sentences-list li {
  width: 100%;
  text-align: center;
  font-size: var(--font-size-m);
}

.text-center {
  margin: 0 auto;
  text-align: center;
}

.text-small {
  font-size: 12px;
  max-width: 800px;
  margin: 0 auto;
}

.text-extra-small {
  font-size: 10px;
  max-width: 800px;
  margin: 0 auto;
}

.link-arrow-right {
  display: inline-flex;
  font-weight: 600;
}

.link-arrow-right::after {
  /* content: "\2192";
  margin-left: 5px;*/
}

.link-box {
  height: 100%;
  display: block;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 8px;
  padding: 12px 18px;
  margin-bottom: 12px;
  transition: all 200ms ease-in-out;
  overflow: hidden;
  background-size: cover;
  background-position: center;
}

.link-box:hover {
  border-color: #aaa;
}

.link-box-heading {
  font-size: 100%;
  font-weight: 600;
}

.link-box-body {
  line-height: 120%;
  margin: 4px 0 8px 0;
}

.post-link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 2px 6px;
  border-radius: 6px;
}

.post-link:hover {
  background-color: #f0f0f0;
}

.post-link-title {
  font-weight: normal;
}

.post-link-views {
  display: flex;
  align-items: center;
}

.post-link-views svg {
  display: inline-flex;
}

:root {

  /* Typography */
  --font-family-base: Arial, system-ui, sans-serif;
  --font-serif: Georgia, serif;

  /* Text */
  --text-color: var(--color-gray-800);
  --text-color-muted: var(--color-gray-500);

  /* Links */
  --link-color: var(--color-blue-500);
  --link-color-hover: var(--color-orange-500);
  --link-underline-color: var(--color-pink-700);

  /* Background */
  --background-color: var(--color-gray-0);
  --surface-color: var(--color-gray-50);

  /* Border */
  --border-color: var(--color-gray-150);

  /* Brand */
  --primary-color: var(--color-green-500);
  --primary-color-hover: var(--color-teal-700);

  /* Layout */
  --container-width: 1200px;
  --content-spacing: 1rem;

  /* Radius */
  --border-radius: 0.5rem;

  /* Shadows */
  --shadow-sm: 0 1px 3px rgb(0 0 0 / 0.1);

  /* Breakpoints */
  --bp-sm: 576px;
  --bp-md: 768px;
  --bp-lg: 992px;
  --bp-xl: 1200px;
}

.header {
  display: block;
}

.main {
  width: min(var(--container-width), calc(100% - 32px));
  margin: 2rem auto;
  display: block;
  position: relative;
}

.main-large {
  padding: 50px;
  max-width: none;
  border: 0;
  background-color: transparent;
}

.section-spaced {
  margin-top: 40px;
}

.content-divider {
  margin: 40px 0;
  border: 0;
  border-top: 1px solid #eee;
}

.content-divider--heavy {
  margin: 50px 0;
  border-top: 1px solid #ddd;
}

.category-block {
  margin-bottom: 40px;
  padding: 20px;
  border: 1px solid #eee;
  border-radius: 6px;
  background: #fbfbfb;
}

.category-block__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  margin-bottom: 15px;
}

.category-block__heading {
  margin: 0;
  color: #333;
  font-size: 1.4rem;
}

.category-block__link {
  color: inherit;
  font-size: 0.9rem;
  font-weight: 700;
}

.category-block__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 15px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.category-block__item {
  padding: 15px;
  border: 1px solid #e2e2e2;
  border-radius: 4px;
  background: #fff;
}

.category-block__item-link {
  display: block;
  margin-bottom: 5px;
  color: inherit;
  font-size: 1.1rem;
  font-weight: 700;
  text-decoration: none;
}

.category-block__date {
  color: #888;
}

.footer {
  background: linear-gradient(0deg, #fff3dc, #fffdf7);
  border-top: 1px solid #fbf1de;
  padding-bottom: 70px;
}

.footer-inner {
  display: grid;
  width: min(var(--container-width), calc(100% - 32px));
  grid-template-columns: 1.7fr 1fr 1fr 1fr 1.5fr;
  gap: 42px;
  margin: 0 auto;
  padding: 34px 0 24px;
  border-bottom: 1px solid #fbf1de;
}

.footer-brand p,
.footer-newsletter p {
  margin: 16px 0 0;
  color: var(--ink);
  font-size: 15px;
  line-height: 1.6;
}

.footer-group,
.footer-newsletter {
  display: grid;
  align-content: start;
}

.footer-group h2,
.footer-newsletter h2 {
  margin: 0 0 4px;
  color: var(--ink);
  font-size: 15px;
  font-weight: 600;
}

.footer-group a {
  color: var(--ink);
  font-size: 14px;
}

.footer-socials {
  display: flex;
  gap: 10px;
}

.footer-social {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 50%;
  color: #ffffff;
  font-weight: 900;
}

.footer-social--facebook {
  background: #1877f2;
}

.footer-social--instagram {
  background: #e4405f;
}

.footer-social--pinterest {
  background: #bd081c;
}

.footer-newsletter-label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.footer-newsletter-row {
  display: grid;
  min-height: 44px;
  grid-template-columns: 1fr 44px;
  margin-top: 6px;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: #ffffff;
}

.footer-newsletter-row input {
  min-width: 0;
  border: 0;
  padding: 0 14px;
  font: inherit;
  outline: 0;
}

.footer-newsletter-row button {
  border: 0;
  background: var(--pink);
  color: #ffffff;
  cursor: pointer;
  font-size: 22px;
}

.footer-copyright {
  width: min(1120px, calc(100% - 32px));
  margin: 0 auto;
  padding: 1em;
  color: var(--ink);
  font-size: 13px;
  text-align: center;
}

@media (max-width: 980px) {
  .footer-inner {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 560px) {
  .footer-inner {
    grid-template-columns: 1fr;
    gap: 26px;
  }
}

.category-list {
  width: 100%;
  max-width: 480px;
  margin: 20px auto;
  display: block;
}

.category-list-item {
  width: 100%;
  margin-bottom: 8px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
}

.category-list-item a {
  width: 100%;
  display: flex;
}

.category-list-item a:hover .category-name {
  text-decoration: underline;
}

.category-list-item .category-name {
  flex: 4;
  text-align: left;
  font-weight: 600;
}

.category-list-item:first-child .category-post-count {
  flex: 1;
  color: red;
}

.category-list-item .category-post-count {
  flex: 1;
  color: black;
  text-align: right;
}

.homepage-layout {
  /*
  --ink: #071329;
  --muted: #62677a;
  --pink: #ec2f86;
  --yellow: #ffd43b;
  --green: #72b33a;
  --blue: #2488d8;
  --purple: #8f58ce;
  --surface: #ffffff;
  --border: #e6e7ef;
  --shadow: 0 18px 48px rgba(22, 28, 45, 0.12);
  --radius: 8px;

  min-height: 100%;
  margin: 0;
  color: var(--ink);
  background: #fbfcff;
  font-family: Arial, Helvetica, sans-serif;
  */
}

.homepage-main {
  width: min(var(--container-width), calc(100% - 32px));
  margin: 0 auto;
  padding: 0;
}

@media (max-width: 720px) {
  .homepage-main {
    width: min(100% - 24px, 1120px);
    padding-top: 18px;
  }
}

.bottom-bar {
    width: 640px;
    max-width: 100%;
    position: fixed;
    bottom: 0;
    left: calc(50% - 320px);
    right: 0;
    display: none;
    background: #fff;
    border-top: 1px solid #ddd;
    box-shadow: 0 -2px 10px rgba(0,0,0,.1);
    z-index: 999;
}

.bottom-bar button {
    flex: 1;
    padding: 14px 10px;
    border: 0;
    background: none;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

.bottom-bar button:hover {
    background: #f5f5f5;
}

.modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.6);

    display: none;
    align-items: center;
    justify-content: center;

    z-index: 1000;
}

.modal-overlay.open {
    display: flex;
}

.modal {
    position: relative;

    width: min(600px, 90vw);
    max-height: 80vh;

    overflow-y: auto;

    background: white;
    border-radius: 12px;

    padding: 24px;
}

.modal-close {
    position: absolute;
    top: 10px;
    right: 15px;

    border: 0;
    background: none;

    font-size: 30px;
    cursor: pointer;
}

burger-menu {
  display: block;

  --background-color: #f9f9f9;
}

burger-menu .menu-toggle {
  display: flex;
  background: none;
  border: none;
  cursor: pointer;
  font-size: 2rem;
  line-height: 1;
}

burger-menu .burger-menu-wrapper {
  display: none;
}

burger-menu .burger-menu-wrapper.open {
  display: flex;
  width: 100%;
  padding: 1em;
  position: fixed;
  left: 0;
  top: 72px;
  z-index: 100;
  background: #f9f9f9;
  text-align: center;
  justify-content: center;
  flex-direction: column;
  gap: 1em;
}

.menu-list {
  list-style: none;
  padding: 0;
  display: none;
  gap: 1.5rem;
  transition: max-height 0.3s ease;
  overflow: hidden;
  width: 100%;
  max-width: 100vw;
}

.menu-list a {
  text-decoration: none;
  font-weight: 500;
}

.menu-list a:hover,
.menu-list a.active {
  text-decoration: underline;
}

.expanded .menu-list {
  width: 100%;
  display: block;
  z-index: 10;
  position: fixed;
  left: 0;
  top: 50px;
  text-align: center;
  background-color: var(--background-color);
}

.menu-icon-wrapper {
  width: 50px;
  height: 50px;
  min-width: 50px;
  display: flex;
  justify-content: center;
  align-content: center;
  cursor: pointer;
  float: right;

  padding: 0;
  appearance: none;
  border: 0;
  background-color: #fff;
}

.menu-toggle.active,
.menu-toggle:hover {
  background-color: #f9f9f9;
}

.menu-icon {
  width: 20px;
  height: 1px;
  display: block;
  margin-top: 24px;
  cursor: pointer;
  position: absolute;
  background-color: black;
  transition: 150ms ease-in-out;
}

.menu-icon:hover {
  background-color: black;
}

.menu-icon:hover::before,
.menu-icon:hover::after {
  background-color: black;
}

.menu-icon::before,
.menu-icon::after {
  content: '';
  width: 20px;
  height: 1px;
  position: absolute;
  left: 0;
  top: -7px;
  background-color: black;
  transition: 150ms ease-in-out;
}

.menu-icon::after {
  top: 7px;
}

.active .menu-icon {
  background-color: transparent;
}

.active .menu-icon::before {
  transform: translate(0, 7px) rotate(45deg);
}

.active .menu-icon::after {
  transform: translate(0, -7px) rotate(-45deg);
}

/* Responsive */

@media (min-width: 640px) {
  .menu-list {
    display: flex;
    flex-direction: row;
  }

  .menu-list.active {
    display: flex;
  }

  .menu-icon-wrapper {
    display: none;
  }
}

.category-overview {
  display: grid;
  gap: 28px;
}

.category-overview-section {
  display: grid;
  gap: 18px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: transparent;
}

.category-overview-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.category-overview-title {
  margin: 0;
  font-size: clamp(1.4rem, 2vw, 2rem);
  font-weight: 900;
  line-height: 1.2;
}

.category-overview-title a {
  color: var(--ink);
  text-decoration: none;
}

.category-overview-link {
  color: var(--pink);
  font-weight: 800;
  text-decoration: none;
}

.category-overview-empty {
  margin: 0;
  color: #4c5266;
}

@media (max-width: 620px) {
  .category-overview-header {
    align-items: flex-start;
    flex-direction: column;
  }
}

.category-layout {
  font-family: sans-serif;
  margin: 0 auto;
  padding: 0;
  line-height: 1.6;
}

.category-posts,
.tag-posts {
  padding: 0;
  margin: 0;
  list-style: none;
}

.category-post-item,
.tag-post-item {
  margin-bottom: 20px;
  list-style: none;
}

.category-post-link,
.tag-post-link {
  font-size: 1.25rem;
  font-weight: 700;
  text-decoration: none;
}

.category-post-meta,
.tag-post-meta {
  font-size: 0.85rem;
}

.danger-zone {
    width: auto;
    max-width: 1200px;
    background-color: #fef2f2;
    border: 2px dashed #fca5a5;
    border-radius: 12px;
    padding: 36px;
    text-align: center;
    margin: 1rem auto;
}

.danger-title {
    font-family: 'Poppins', sans-serif;
    font-size: 22px;
    font-weight: 800;
    color: #991b1b;
    margin-bottom: 8px;
}

.danger-desc {
    max-width: 500px;
    margin: 0 auto 1rem auto;
}

.btn-danger {
    background-color: #dc2626;
    color: white;
    font-family: 'Poppins', sans-serif;
    font-weight: 800;
    font-size: 16px;
    padding: 14px 32px;
    border-radius: 50px;
    border: none;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(220, 38, 38, 0.35);
    transition: all 0.2s ease;
}

.btn-danger:hover {
    background-color: #b91c1c;
    transform: scale(1.03);
    box-shadow: 0 6px 20px rgba(220, 38, 38, 0.45);
}

#whiteoutScreen {
    display: none;
    position: fixed;
    inset: 0;
    background-color: #ffffff;
    z-index: 99999;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 20px;
}

.whiteout-content {
    max-width: 450px;
}

.whiteout-emoji {
    font-size: 70px;
    margin-bottom: 16px;
}

.whiteout-title {
    font-family: 'Poppins', sans-serif;
    font-size: 26px;
    font-weight: 800;
    margin-bottom: 12px;
}

.btn-reset {
    background-color: #0f172a;
    color: white;
    font-weight: 700;
    font-size: 14px;
    padding: 12px 28px;
    border-radius: 50px;
    border: none;
    cursor: pointer;
    margin-top: 20px;
}

/* ========================================
   1. Grundeinstellungen
   Mobile First: zunächst eine Spalte
======================================== */

.featured-sections {
    --color-blue: #1769ff;
    --color-green: #159447;
    --color-orange: #ed7900;

    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;

    width: 100%;
    margin-block: 1.5rem;
}

.featured-column {
    --accent: var(--color-blue);
    --surface: #edf5ff;
    --border: #dceaff;

    display: flex;
    flex-direction: column;
    min-width: 0;

    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: 0.75rem;
    background: var(--surface);
}

.featured-column--blue {
    --accent: var(--color-blue);
    --surface: #edf5ff;
    --border: #dceaff;
}

.featured-column--green {
    --accent: var(--color-green);
    --surface: #effaf1;
    --border: #d9f0df;
}

.featured-column--purple {
    --accent: var(--color-purple);
    --surface: #effaf1;
    --border: #d9f0df;
}

.featured-column--orange {
    --accent: var(--color-orange);
    --surface: #fff6e9;
    --border: #f8e5cc;
}

/* ========================================
   2. Kategorie-Header
======================================== */

.featured-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.featured-icon {
    display: grid;
    place-items: center;
    flex: 0 0 2rem;
    width: 2rem;
    aspect-ratio: 1;
    border-radius: 0.6rem;
    background: var(--accent);
    color: #fff;
    font-size: 1rem;
    font-weight: 500;
}

.featured-header h2 {
    margin: 0;
    color: #101828;
    font-size: 1rem;
    line-height: 1.25;
}

/* ========================================
   3. Beschreibung und Kategorie-Link
======================================== */

.featured-description {
    margin: 0 0 0.85rem;
    color: #344054;
    font-size: 0.95rem;
    line-height: 1.6;
}

.featured-all {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 0.4rem;

    margin-bottom: 1rem;

    color: var(--accent);
    font-weight: 700;
    text-decoration: none;
}

.featured-all:hover {
    text-decoration: underline;
}

.featured-all span {
    transition: transform 180ms ease;
}

.featured-all:hover span {
    transform: translateX(3px);
}

/* ========================================
   4. Featured Posts
======================================== */

.featured-posts {
    display: grid;
    gap: 0.75rem;
}

.featured-post {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    align-items: start;
    gap: 0.75rem;

    min-width: 0;
    padding: 0.625rem;

    border: 1px solid rgb(16 24 40 / 5%);
    border-radius: 0.625rem;
    background: #fff;

    transition: box-shadow 180ms ease;
}

.featured-post:hover {
    box-shadow: 0 4px 14px rgb(16 24 40 / 8%);
}

.featured-post-kantine {
    background: var(--color-brown-100);
}

/* Bilder */

.featured-post__image {
    display: block;
    overflow: hidden;
    aspect-ratio: 1;
    border-radius: 0.375rem;
    background: #e9edf2;
}

.featured-post__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 200ms ease;
}

.featured-post:hover .featured-post__image img {
    transform: scale(1.04);
}

/* Teaser-Inhalt */

.featured-post__content {
    min-width: 0;
}

.featured-post__content h3 {
    margin: 0.1rem 0 0.4rem;
    font-size: 0.95rem;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.featured-post__content h3 a {
    color: #101828;
    text-decoration: none;
}

.featured-post__content h3 a:hover {
    color: var(--accent);
}

.featured-post__content p {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;

    margin: 0 0 0.6rem;
    color: #475467;
    font-size: 0.825rem;
    line-height: 1.5;
}

/* Kategorie-Badge */

.featured-tag {
    display: inline-block;
    max-width: 100%;
    padding: 0.2rem 0.4rem;

    border-radius: 0.25rem;
    background: var(--surface);
    color: var(--accent);

    font-size: 0.75rem;
    overflow-wrap: anywhere;
}

/* ========================================
   5. Tablet: zwei Spalten
======================================== */

@media (min-width: 600px) {
    .featured-sections {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.25rem;
    }

    .featured-column {
        padding: 1.25rem;
    }

    .featured-post {
        grid-template-columns: 100px minmax(0, 1fr);
    }
}

/* ========================================
   6. Desktop: drei Spalten
======================================== */

@media (min-width: 1000px) {
    .featured-sections {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 1.5rem;
    }

    .featured-column {
        padding: 1.25rem;
    }

    .featured-header h2 {
        font-size: 1.25rem;
    }

    .featured-post {
        grid-template-columns: minmax(80px, 34%) minmax(0, 1fr);
        gap: 0.75rem;
        padding: 0.625rem;
    }
}

/* ========================================
   7. Große Desktop-Bildschirme
======================================== */

@media (min-width: 1400px) {
    .featured-sections {
        gap: 1.75rem;
    }

    .featured-column {
        padding: 1.5rem;
    }

    .featured-post {
        grid-template-columns: minmax(100px, 36%) minmax(0, 1fr);
        gap: 1rem;
        padding: 0.75rem;
    }
}

/* Barrierefreiheit: Animationen reduzieren */

@media (prefers-reduced-motion: reduce) {
    .featured-post,
    .featured-post__image img,
    .featured-all span {
        transition: none;
    }
}

.home-masonry-teasers {
    margin-block: 2rem;
}

.home-masonry-teasers__title {
    margin: 0 0 1rem;
}

.home-masonry-teasers__grid {
    columns: 1;
}

.home-masonry-teasers__random {
    display: block;
}

.home-masonry-teasers .home-masonry-teaser {
    display: grid;
    grid-template-columns: 100px minmax(0, 1fr);
    align-items: start;
    gap: 0.875rem;
    overflow: hidden;
    padding: 0.75rem;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #fff;
    color: inherit;
    text-decoration: none;
    box-shadow: 0 2px 8px rgb(16 24 40 / 5%);
    transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.home-masonry-teasers .home-masonry-teaser:hover,
.home-masonry-teasers .home-masonry-teaser:focus-visible {
    border-color: var(--color-red-300);
    box-shadow: 0 6px 18px rgb(16 24 40 / 12%);
    transform: translateY(-2px);
}

.home-masonry-teasers .home-masonry-teaser:focus-visible {
    outline: 3px solid var(--color-red-300);
    outline-offset: 2px;
}

.home-masonry-teaser__image {
    display: block;
    width: 100px;
    height: 100px;
    border-radius: 0.5rem;
    background: #f3f4f6;
    object-fit: cover;
}

.home-masonry-teaser__content {
    display: grid;
    gap: 0.4rem;
    min-width: 0;
}

.home-masonry-teaser__heading {
    display: -webkit-box;
    overflow: hidden;
    margin: 0;
    color: #202124;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.35;
    overflow-wrap: anywhere;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.home-masonry-teaser__description {
    margin: 0;
    color: #5f6368;
    font-size: 0.875rem;
    line-height: 1.45;
}

@media (min-width: 600px) {
    .home-masonry-teasers__grid {
        columns: 2;
    }
}

@media (min-width: 1000px) {
    .home-masonry-teasers__grid {
        columns: 3;
    }
}

@media (prefers-reduced-motion: reduce) {
    .home-masonry-teasers .home-masonry-teaser {
        transition: none;
    }
}

.fortune-box {
    height: 100%;
    background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
    border: 2px solid #fde68a;
    border-radius: 12px;
    padding: 28px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05), 0 2px 4px -2px rgba(0,0,0,0.05);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    overflow: hidden;
}

.fortune-badge {
    position: absolute;
    top: 16px;
    left: 20px;
    background-color: var(--color-yellow-500);
    color: white;
    font-size: 11px;
    font-weight: 800;
    padding: 4px 12px;
    border-radius: 20px;
    text-transform: uppercase;
}

.fortune-title {
    font-family: 'Poppins', sans-serif;
    font-size: 22px;
    font-weight: 800;
    margin-top: 10px;
    margin-bottom: 6px;
}

.fortune-cookie-btn {
    background: none;
    border: none;
    cursor: pointer;
    margin: 16px 0;
    transition: transform 0.2s ease;
    outline: none;
}

.fortune-cookie-btn:hover {
    transform: scale(1.08) rotate(-3deg);
}

.cookie-icon {
    font-size: 70px;
    display: inline-block;
    filter: drop-shadow(0 8px 12px rgba(217, 119, 6, 0.25));
    transition: transform 0.4s ease;
}

.cookie-icon.cracked {
    animation: cookieCrack 0.6s ease forwards;
}

@keyframes cookieCrack {
    0% { transform: scale(1) rotate(0deg); }
    30% { transform: scale(1.2) rotate(10deg); }
    60% { transform: scale(0.9) rotate(-10deg); }
    100% { transform: scale(1) rotate(0deg); }
}

.fortune-paper {
    background-color: #ffffff;
    border: 2px dashed #fcd34d;
    border-radius: var(--radius-sm);
    padding: 16px 20px;
    width: 100%;
    max-width: 480px;
    box-shadow: var(--shadow-sm);
    margin-top: 8px;
    min-height: 90px;
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    transition: all 0.3s ease;
}

.fortune-text {
    font-family: 'Caveat', cursive;
    font-size: 22px;
    font-weight: 700;
    color: #1e293b;
    line-height: 1.3;
}

.lucky-numbers {
    margin-top: 10px;
    display: flex;
    gap: 8px;
    justify-content: center;
    align-items: center;
}

.num-ball {
    width: 26px;
    height: 26px;
    background-color: var(--primary-pink-light);
    color: var(--primary-pink-dark);
    font-weight: 800;
    font-size: 11px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #fbcfe8;
}

.btn-cookie {
    background-color: #d97706;
    color: white;
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    font-size: 16px;
    padding: 14px 32px;
    border-radius: 20px;
    border: none;
    cursor: pointer;
    margin-top: 14px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: background 0.2s;
}

.btn-cookie:hover {
    background-color: #b45309;
}

.grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
}

.grid.gap-20 {
  gap: 20px;
}

.margin {
  margin: 1rem 0;
}

@media (min-width: 768px) {
  .grid {
    grid-template-columns: repeat(12, 1fr);
  }

  .col-12 { grid-column: span 12; }
  .col-10 { grid-column: span 10; }
  .col-9  { grid-column: span 9; }
  .col-8  { grid-column: span 8; }
  .col-7  { grid-column: span 7; }
  .col-6  { grid-column: span 6; }
  .col-5  { grid-column: span 5; }
  .col-4  { grid-column: span 4; }
  .col-3  { grid-column: span 3; }
  .col-2  { grid-column: span 2; }
}

.joke-hero-image {
  display: block;
  width: 100%;
  max-width: 500px;
  height: auto;
  object-fit: cover;
}

.joke-hero-image-caption {
  display: none;
}

.joke-masonry-page {
  max-width: 1280px;
  margin: 0 auto;
  padding: 2rem 1rem 4rem;
}

.joke-masonry-header {
  margin-bottom: 1.5rem;
}

.joke-masonry-header h1 {
  margin: 0 0 0.5rem;
  font-size: clamp(2rem, 4vw, 3rem);
}

.joke-masonry-header p {
  margin: 0;
  color: #5b5b5b;
}

.joke-masonry {
  column-gap: 1rem;
  column-count: 1;
}

.joke-masonry-card {
  display: inline-block;
  width: 100%;
  margin: 0 0 1rem;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 10px 26px rgba(15, 23, 42, 0.08);
  break-inside: avoid;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.joke-masonry-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 32px rgba(15, 23, 42, 0.12);
}

.joke-masonry-image {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  background: linear-gradient(135deg, #f8d4a8, #f2a5ad);
}

.joke-masonry-info {
  padding: 0.9rem 1rem 1rem;
}

.joke-masonry-title {
  display: block;
  font-size: 1rem;
  line-height: 1.4;
  font-weight: 700;
  color: #111827;
  text-decoration: none;
}

.joke-masonry-date {
  display: block;
  margin-top: 0.3rem;
  font-size: 0.78rem;
  color: #6b7280;
}

.joke-masonry-status {
  text-align: center;
  margin-top: 1rem;
  color: #4b5563;
  font-size: 0.92rem;
}

@media (min-width: 640px) {
  .joke-masonry {
    column-count: 2;
  }
}

@media (min-width: 960px) {
  .joke-masonry {
    column-count: 3;
  }
}

@media (min-width: 1200px) {
  .joke-masonry {
    column-count: 4;
  }
}

.joke-overview {
  display: grid;
  gap: 2rem;
  padding: 1rem 0 4rem;
}

.joke-overview__content {
  min-width: 0;
  padding: 1.25rem !important;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}

.joke-overview__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.joke-overview__list li {
  padding: 0.65rem 0;
  border-bottom: 1px solid #f0f1f3;
}

.joke-overview__list a {
  color: #374151;
}

.joke-overview__list a:hover,
.joke-overview__list a:focus-visible {
  color: var(--color-primary);
}

.joke-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

@media (min-width: 960px) {
  .joke-overview {
    grid-template-columns: minmax(220px, 270px) minmax(0, 1fr);
    align-items: start;
  }
}

.joke-category-menu {
  align-self: start;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}

.joke-category-menu__dropdown {
  padding: 1.25rem;
}

.joke-category-menu__dropdown summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  color: #111827;
  font-size: 1.35rem;
  font-weight: 700;
  list-style: none;
}

.joke-category-menu__dropdown summary::-webkit-details-marker {
  display: none;
}

.joke-category-menu__dropdown summary::after {
  content: '+';
  color: var(--color-primary);
  font-size: 1.5rem;
  line-height: 1;
}

.joke-category-menu__dropdown[open] summary::after {
  content: '−';
}

.joke-category-menu__dropdown[open] summary {
  margin-bottom: 1rem;
}

.joke-category-menu__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.joke-category-menu__item {
  border-bottom: 1px solid #f0f1f3;
}

.joke-category-menu__item:last-child {
  border-bottom: 0;
}

.joke-category-menu__item a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.55rem 0;
  color: #374151;
  font-size: 0.95rem;
  transition: color 0.2s ease, padding-left 0.2s ease;
}

.joke-category-menu__item a:hover,
.joke-category-menu__item a:focus-visible {
  padding-left: 0.25rem;
  color: var(--color-orange-400);
}

.joke-category-menu__item.is-active a {
  padding-left: 0.25rem;
  color: var(--color-orange-400);
  font-weight: 700;
}

.joke-category-menu__count {
  flex: 0 0 auto;
  min-width: 1.75rem;
  padding: 0.1rem 0.4rem;
  border-radius: 999px;
  background: #f3f4f6;
  color: #6b7280;
  font-size: 0.75rem;
  text-align: center;
}

.joke-category-menu__empty {
  margin: 0;
  color: #6b7280;
}

@media (min-width: 960px) {
  .joke-category-menu__dropdown > .joke-category-menu__list,
  .joke-category-menu__dropdown > .joke-category-menu__empty {
    display: block;
  }

  .joke-category-menu__dropdown summary {
    cursor: default;
  }

  .joke-category-menu__dropdown summary::after {
    display: none;
  }
}

.joke-item {
  padding: 1rem 0;
  border-bottom: 1px solid #e5e7eb;
}

.joke-item__title {
  margin: 0 0 0.5rem;
  font-size: 100%;
}

.joke-item__title a {
  color: #111827;
}

.joke-item__title a:hover,
.joke-item__title a:focus-visible {
  color: var(--color-primary);
}

.joke-item__content {
  color: #374151;
  font-size: 1rem;
  line-height: 1.65;
}

like-button {
  cursor: pointer;
  color: white;
  background-color: #ce1010 !important;
}

like-button.like-button-large {
  padding: 8px 16px;
  border-radius: 4px;
}

.logo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  text-decoration: none;
  flex: 1;
}

.logo-mark {
  display: block;
  width: 58px;
  height: 46px;
  flex: 0 0 auto;
  object-fit: contain;
}

.logo-text {
  display: grid;
  gap: 0;
}

.logo-name {
  margin-bottom: 6px;
  font-size: 18px;
  font-weight: 700;
  line-height: 0.95;
  transform: scaleY(1.32);
}

.logo-name-lach {
  color: #4a4a4a;
  text-transform: uppercase;
}

.logo-name-vegas {
  color: var(--color-orange-500);
  text-transform: uppercase;
}

.logo-name-domain {
  color: #4a4a4a;
  font-size: 0.65em;
  font-weight: 500;
}

.logo-tagline {
  color: var(--black-600);
  font-size: 12px;
  transition: opacity 300ms ease;
}

.logo-tagline.is-changing {
  opacity: 0;
}

@media (min-width: 720px) {
  .logo-mark {
    width: 58px;
    height: 46px;
  }

  .logo-name {
    font-size: 24px;
  }
}

.glatter-text {
  display: inline-block;
  
  /* Der Haupteffekt: Verzerrung auf der X-Achse */
  transform: skewX(-15deg);
  
  /* Die Geheimwaffen gegen Artefakte (aktiviert die GPU-Beschleunigung) */
  will-change: transform;
  backface-visibility: hidden;
  -webkit-font-smoothing: antialiased;
}

.kantine-card {
    background-color: #f4e8c1;
    background-image: radial-gradient(#e0cf9b 1px, transparent 0);
    background-size: 16px 16px;
    border: 8px double #4a2e12;
    border-radius: 4px;
    padding: 35px 25px;
    box-shadow: 0 10px 25px rgba(0,0,0,0.25), inset 0 0 50px rgba(139, 90, 43, 0.2);
    position: relative;
    text-align: center;
    color: #2b1a08;
}

.kantine-card::before {
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
    opacity: 0.06;
    background-image: url(/assets/png/teller.png);
    background-size: cover;
}

.kantine-badge {
    z-index: 2;
    position: absolute;
    top: 16px;
    right: 20px;
    background-color: var(--color-brown-500);
    color: white;
    font-size: 11px;
    font-weight: 800;
    padding: 4px 12px;
    border-radius: 20px;
    text-transform: uppercase;
}

/* Corner Ornaments (Baroque Style SVG) */

.ornament {
    position: absolute;
    width: 45px;
    height: 45px;
    fill: #4a2e12;
    pointer-events: none;
}

.ornament-tl { top: 6px; left: 6px; }

.ornament-tr { top: 6px; right: 6px; transform: scaleX(-1); }

.ornament-bl { bottom: 6px; left: 6px; transform: scaleY(-1); }

.ornament-br { bottom: 6px; right: 6px; transform: scale(-1); }

.kantine-header h2 {
    font-size: 1.1rem;
    text-transform: uppercase;
    letter-spacing: 3px;
    color: #5c3a17;
    margin-bottom: 2px;
    font-weight: 600;
}

.kantine-title {
    font-size: 1.75rem;
    font-weight: 700;
    color: #381f08;
    margin-bottom: 15px;
    text-decoration-color: #8c5b2b;
    text-underline-offset: 6px;
}

.kantine-slogan {
  font-size: 16px;
  font-family: Georgia;
  color: var(--color-brown-700);
}

.kantine-divider {
    height: 2px;
    background: linear-gradient(to right, transparent, #4a2e12, transparent);
    margin: 15px auto 25px auto;
    width: 80%;
}

.kantine-menu {
    width: 800px;
    max-width: 100%;
    margin: auto;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.menu-item {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
}

.menu-item-text {
    font-size: 1.05rem;
    line-height: 130%;
    color: #2b1a08;
    max-width: 90%;
}

.menu-item-dots {
    flex: 1;
    border-bottom: 1.5px dotted #2b1a08;
    min-width: 10px;
    margin: 0 1rem;
}

.menu-item-price {
    color: #2b1a08;
    font-size: 1.05rem;
}

.diary-card {
    background: #fff9d6;
    border-left: 4px solid #ff4757;
    padding: 25px 25px 20px 35px;
    border-radius: 4px;
    box-shadow: 4px 6px 15px rgba(0,0,0,0.08);
    position: relative;
    background-image: repeating-linear-gradient(transparent, transparent 27px, #e8d08d 28px);
    line-height: 28px;
}

.paper-clip {
    position: absolute;
    top: -15px;
    left: 20px;
    width: 20px;
    height: 45px;
    border: 3px solid #718093;
    border-radius: 10px;
    background: transparent;
    z-index: 5;
    box-shadow: 2px 2px 4px rgba(0,0,0,0.2);
}

.diary-card h3 {
    font-family: var(--font-handwriting);
    font-size: 2rem;
    color: #c0392b;
    margin-bottom: 5px;
}

.diary-text {
    font-family: var(--font-handwriting);
    font-size: 1.45rem;
    color: #2c3e50;
    font-weight: 600;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  background: #fff;
  /*border-bottom: 1px solid #e0e0e0;
  box-shadow: 0 10px 30px rgba(16, 24, 40, 0.07);*/
  backdrop-filter: blur(10px);
}

.site-header-inner {
  display: flex;
  width: min(var(--container-width), calc(100% - 32px));
  min-height: 92px;
  margin: 0 auto;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}

.site-header-nav {
  display: none;
  flex: 1;
  align-items: center;
  justify-content: center;
  gap: 1.5em;
}

.site-header-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: 36px 0 33px;
  color: var(--navigation-link-color);
  font-size: 15px;
  font-weight: normal;
  white-space: nowrap;
  flex-shrink: 0;
  text-decoration: none;
  text-transform: uppercase;
  transition: all 150ms ease-in-out;
  letter-spacing: -0.2px;
}

.site-header-link:hover,
.site-header-link.is-active {
  color: var(--link-color-hover);
  text-decoration: none;
  letter-spacing: 0.6px;
  /*text-decoration: underline;
  text-decoration-color: var(--link-underline-color);
  text-decoration-skip-ink: auto;
  text-underline-offset: 4px;
  text-decoration-thickness: 1px;*/
}

/*
.site-header-link.is-active::after {
  position: absolute;
  right: 0;
  bottom: 8px;
  left: 0;
  height: 2px;
  border-radius: 999px;
  background: var(--link-color-hover);
  content: "";
}
*/

.site-header-actions {
  display: flex;
  align-items: center;
}

.site-header-icon-link {
  display: grid;
  width: 50px;
  height: 50px;
  place-items: center;
  color: var(--ink);
  font-size: 25px;
  font-weight: 800;
}

.site-header-search-icon {
  display: block;
  width: 24px;
  height: 24px;
  filter: brightness(0);
}

.breadcrumb-nav {
  margin-bottom: 20px;
  font-size: 0.9rem;
}

.breadcrumb-list {
  display: flex;
  gap: 10px;
  padding: 0;
  margin: 0;
  list-style: none;
  color: #666;
}

.breadcrumb-item {
  display: flex;
  gap: 10px;
  align-items: center;
}

.breadcrumb-link {
  color: #0066cc;
  text-decoration: none;
}

.breadcrumb-separator {
  color: #ccc;
  pointer-events: none;
}

.breadcrumb-current {
  color: #333;
  font-weight: 500;
}

.search-page {
  margin: 30px 0;
}

.search-page__input {
  width: 100%;
  max-width: 500px;
  padding: 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 1.1rem;
}

.search-page__hint,
.search-results__empty {
  color: #666;
}

.search-results__list {
  margin-top: 20px;
}

.search-results__excerpt {
  margin: 10px 0;
  color: #555;
  font-size: 0.9rem;
}

.tag-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  padding: 0;
  list-style: none;
}

.tag-cloud__link {
  display: inline-block;
  padding: 8px 15px;
  border-radius: 20px;
  background: #f0f0f0;
  color: inherit;
  font-weight: 700;
  text-decoration: none;
}

.tag-cloud__count {
  color: #666;
  font-weight: 400;
}

.page-404 {
  padding: 40px 20px;
  text-align: center;
}

.page-404__title {
  color: #d9534f;
  font-size: 3rem;
}

@media (max-width: 940px) {
  .site-header-inner {
    flex-wrap: wrap;
    gap: 12px 20px;
    padding: 12px 0;
  }

  .site-header-nav {
    order: 3;
    width: 100%;
    flex: 0 0 100%;
    justify-content: flex-start;
    gap: 20px;
    overflow-x: auto;
  }

  .site-header-link {
    padding: 8px 0 12px;
    white-space: nowrap;
  }

  .site-header-link.is-active::after {
    bottom: 4px;
  }
}

@media (min-width: 1000px) {
  .site-header-nav {
    display: flex;
  }
}

.main-navigation {
  position: relative;
  margin-bottom: 20px;
}

.main-navigation__toggle {
  display: flex;
  width: 100%;
  gap: 10px;
  align-items: center;
  justify-content: center;
  padding: 12px 16px;
  border: 1px solid #ccc;
  border-radius: 4px;
  background: #fff;
  color: inherit;
  cursor: pointer;
  font: inherit;
  font-weight: 600;
}

.main-navigation__toggle-icon {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.main-navigation__toggle-icon span {
  display: block;
  width: 20px;
  height: 2px;
  background: currentColor;
}

.main-navigation__menu {
  display: none;
  padding: 16px 0;
}

.main-navigation.is-open .main-navigation__menu {
  display: block;
}

.main-navigation__links {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.main-navigation__links a {
  color: inherit;
  text-decoration: none;
}

.main-navigation__links a:hover,
.main-navigation__links a:focus-visible {
  text-decoration: underline;
}

.main-navigation__search {
  display: flex;
  gap: 5px;
  margin-top: 16px;
}

.main-navigation__search-input {
  padding: 5px 10px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 0.9rem;
}

.main-navigation__search-button {
  padding: 5px 10px;
  border: none;
  border-radius: 4px;
  background: #0066cc;
  color: #fff;
  cursor: pointer;
}

@media (min-width: 960px) {
  .main-navigation__toggle {
    display: none;
  }

  .main-navigation__menu {
    display: flex;
    gap: 20px;
    align-items: center;
    margin-bottom: 20px;
  }

  .main-navigation__links {
    flex-direction: row;
    gap: 20px;
    align-items: center;
  }

  .main-navigation__search {
    margin-top: 0;
    margin-left: auto;
  }
}

.masonry {
    columns: 1;
    column-gap: 1rem;
}

.masonry > * {
    break-inside: avoid;
    margin-bottom: 1rem;
}

@media (min-width: 600px) {
    .masonry {
        columns: 2;
    }
}

@media (min-width: 900px) {
    .masonry {
        columns: 3;
    }
}

.home-hero {
  display: grid;
  aspect-ratio: 16 / 8;
  grid-template-columns: 1fr;
  align-items: center;
  gap: 18px;
  padding: 30px 24px;
  overflow: hidden;
  border-radius: var(--radius);
  background: url('/assets/png/aufmacher.png') center / cover no-repeat;
  box-shadow: var(--shadow);
}

.home-hero-visual {
  position: relative;
  display: grid;
  min-height: 245px;
  place-items: center;
}

.home-hero-face {
  display: grid;
  width: 205px;
  height: 205px;
  place-items: center;
  border-radius: 50%;
  background: #ffd121;
  box-shadow: inset -16px -20px 0 rgba(231, 143, 0, 0.18), 0 18px 0 rgba(211, 143, 26, 0.18);
  font-size: 118px;
  line-height: 1;
}

.home-hero-bubble {
  position: absolute;
  top: 6px;
  right: 6px;
  display: grid;
  width: 116px;
  height: 116px;
  place-items: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  color: #111111;
  font-size: 32px;
  font-weight: 900;
  line-height: 0.95;
  text-align: center;
}

.home-hero-eyebrow {
  display: flex;
  margin: 0 0 24px;
  align-items: center;
  gap: 14px;
  color: var(--pink);
  font-size: 35px;
  font-weight: 900;
  line-height: 1.1;
  text-transform: uppercase;
}

.home-hero-joke {
  max-width: 540px;
  margin: 0 0 28px;
  color: var(--ink);
  font-size: 30px;
  font-weight: 900;
  line-height: 1.45;
}

.home-hero-button {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 28px;
  border-radius: 7px;
  background: var(--pink);
  color: #ffffff;
  font-size: 17px;
  font-weight: 800;
  box-shadow: 0 10px 24px rgba(236, 47, 134, 0.28);
}

@media (min-width: 801px) {
  .home-hero {
    grid-template-columns: minmax(220px, 37%) 1fr;
    gap: 42px;
    padding: 34px 64px;
  }

  .home-hero-visual {
    min-height: 245px;
  }

  .home-hero-face {
    width: 205px;
    height: 205px;
    font-size: 118px;
  }

  .home-hero-bubble {
    top: 6px;
    right: 6px;
    width: 116px;
    height: 116px;
    font-size: 32px;
  }

  .home-hero-eyebrow {
    font-size: 35px;
  }

  .home-hero-joke {
    font-size: 30px;
  }
}

.home-search {
  display: grid;
  width: min(730px, 100%);
  min-height: 54px;
  grid-template-columns: 1fr 58px;
  margin: 26px auto 24px;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 28px rgba(16, 24, 40, 0.1);
}

.home-search-label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.home-search-input {
  min-width: 0;
  border: 0;
  padding: 0 22px;
  color: var(--ink);
  font: inherit;
  font-size: 16px;
  outline: 0;
}

.home-search-input::placeholder {
  color: #70758a;
}

.home-search-button {
  display: grid;
  border: 0;
  place-items: center;
  background: var(--color-pink-600);
  color: #ffffff;
  cursor: pointer;
  font-size: 31px;
  line-height: 1;
}

.home-search-button-icon {
  display: block;
  width: 22px;
  height: 22px;
  filter: brightness(0) invert(1);
}

.category-shortcuts {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  margin-bottom: 34px;
  padding: 24px 22px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 12px 34px rgba(16, 24, 40, 0.1);

  margin-left: 5%;
  margin-top: -2em;
  width: 90%;
}

.category-shortcuts-item {
  display: grid;
  min-height: 116px;
  place-items: center;
  align-content: center;
  gap: 5px;
  padding: 0 18px;
  text-align: center;
}

.category-shortcuts-item + .category-shortcuts-item {
  border-left: 1px solid #d9dce6;
}

.category-shortcuts-icon {
  display: grid;
  width: 72px;
  height: 72px;
  place-items: center;
  border-radius: 50%;
  color: #ffffff;
  font-size: 37px;
  transition: all 1250ms ease-in-out;
}

.category-shortcuts-icon span {
  position: relative;
  z-index: 2;
}

.category-shortcuts-icon::before {
  content: "";
  z-index: 1;
  position: absolute;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: transparent;
  opacity: 0.9;
  transition: all 150ms ease-in-out;
}

.category-shortcuts-item--orange .category-shortcuts-icon::before {
  background: var(--color-orange-250);
  color: var(--ink);
}

.category-shortcuts-item--green .category-shortcuts-icon::before {
  background: var(--color-green-500);
}

.category-shortcuts-item--blue .category-shortcuts-icon::before {
  background: var(--color-blue-250);
}

.category-shortcuts-item--red .category-shortcuts-icon::before {
  background: var(--color-red-700);
}

.category-shortcuts-item--pink .category-shortcuts-icon::before {
  background: #ff8fb2;
}

.category-shortcuts-item:hover .category-shortcuts-icon::before {
  transform: scaleX(1.18);
  opacity: 0.8;
}

.category-shortcuts-title {
  margin-top: 7px;
  color: var(--ink);
  font-size: 18px;
  font-weight: 600;
  font-family: 'Rubik', sans-serif;
}

.category-shortcuts-description {
  color: var(--ink);
  font-size: 14px;
}

@media (max-width: 900px) {
  .category-shortcuts {
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
  }

  .category-shortcuts-item + .category-shortcuts-item {
    border-left: 0;
  }
}

@media (max-width: 520px) {
  .category-shortcuts {
    grid-template-columns: 1fr;
  }
}

.latest-posts {
  display: grid;
  gap: 22px;
}

.latest-posts-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.latest-posts-title {
  display: flex;
  margin: 0;
  align-items: center;
  gap: 12px;
  color: var(--ink);
  font-size: 27px;
  font-weight: 900;
  line-height: 1.2;
}

.latest-posts-title span {
  color: var(--pink);
}

.latest-posts-all-link {
  color: var(--pink);
  font-size: 16px;
  font-weight: 500;
  white-space: nowrap;
}

.latest-posts-all-link:hover {
  text-decoration: underline;
}

.latest-posts-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}

@media (max-width: 900px) {
  .latest-posts-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 620px) {
  .latest-posts-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .latest-posts-grid {
    grid-template-columns: 1fr;
  }
}

.post-container {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  max-width: 1200px;
  margin: 1rem auto;
}

.post-body {
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 8px;
  padding: 1rem;
  margin-bottom: 20px;
}

@media (min-width: 768px) {
  .post-container {
    grid-template-columns: 1fr 340px; 
  }

  .post-sidebar {
    /* Sorgt dafür, dass die Sidebar oben "kleben" bleibt, wenn man scrollt */
    /* position: sticky;
    top: 2rem; */
    align-self: start; 
  }
}

.post-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--card-background, var(--color-gray-0));
  box-shadow: 0 6px 12px rgba(16, 24, 40, 0.12);
}

.post-card-media {
  --post-card-gradient: radial-gradient(circle, var(--color-yellow-300), var(--color-orange-450));
  display: grid;
  min-height: 168px;
  aspect-ratio: 16 / 9;
  place-items: center;
  overflow: hidden;
  position: relative;
  background-position: center;
  background-size: cover;
  background-image: var(--post-card-image, none), var(--post-card-gradient);
}

.post-card-media--green {
  --post-card-gradient: linear-gradient(135deg, var(--color-green-700), var(--color-green-200));
}

.post-card-media--blue {
  --post-card-gradient: linear-gradient(135deg, var(--color-teal-800), var(--color-orange-300));
}

.post-card-media--purple {
  --post-card-gradient: linear-gradient(135deg, var(--color-blue-700), var(--color-yellow-300));
}

.post-card-logo {
  display: block;
  width: min(55%, 80px);
  height: auto;
  filter: drop-shadow(0 8px 14px rgba(0, 0, 0, 0.18));
}

.post-card-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 1;
  display: inline-flex;
  min-height: 25px;
  align-items: center;
  padding: 0 12px;
  border-radius: 4px;
  color: #ffffff;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  background-color: var(--color-blue-700);
}

.post-card-badge.lustige-maerchen {
  background-color: var(--color-green-600);
}

.post-card-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 18px 22px 20px;
}

.post-card-title {
  margin: 0 0 9px;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.25;
}

.post-card-excerpt {
  display: -webkit-box;
  min-height: 78px;
  margin: 0 0 18px;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  color: var(--ink);
  font-size: 16px;
  line-height: 1.20;
}

.post-card-excerpt--compact {
  margin: 10px 0;
  color: var(--ink-muted, var(--color-gray-700));
  font-size: 0.9rem;
  line-height: 1.5;
}

.post-card-meta {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-top: auto;
  color: var(--card-meta-color, var(--color-gray-600));
  font-size: 13px;
}

.post-card-meta-item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.post-card-meta-item .post-meta-icon {
  width: 16px;
  height: 16px;
}

.post-card-read-more {
  margin-left: auto;
  color: var(--card-link-color);
  font-weight: 900;
  white-space: nowrap;
}

@media (max-width: 420px) {
  .post-card-meta {
    flex-wrap: wrap;
  }

  .post-card-read-more {
    width: 100%;
    margin-left: 0;
  }
}

.post-hero {
  position: relative;
  color: #fff;
  background: var(--color-gray-900, #0f172a);
}

.post-hero-media {
  position: relative;
  height: clamp(240px, 58vw, 420px);
  overflow: hidden;
}

.post-hero-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(1.05);
}

.post-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(15, 23, 42, 0.05) 15%, rgba(15, 23, 42, 0.82) 100%);
}

.post-hero-torn-paper {
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 2;
  width: 100%;
  height: clamp(32px, 7vw, 72px);
  background: url("/assets/png/torn-paper-beige.png") center top / 100% 100% no-repeat;
  pointer-events: none;
}

.torn-edge-top {
  position: absolute;
  top: 90px;
  left: 0;
  z-index: 2;
  width: 100%;
  height: 28px;
  transform: scale(-1.0);
  background: url("/assets/png/torn-paper.png") center top / 100% 100% no-repeat;
  /*mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 30' preserveAspectRatio='none'%3E%3Cpath d='M0 0h1200v12c-50 10-100-7-150 6-50 10-100-8-150 4-50 6-100-14-150-2-50 4-100-16-150-4-50 7-100-9-150 5-50 4-100-16-150-4-50 6-100-8-150 0V0z'/%3E%3C/svg%3E");
  mask-size: 100% 100%;*/
}

.post-hero-content {
  padding: 24px 16px 28px;
  color: var(--text-color, #1f2937);
  background: var(--background-color, #fff);
}

.post-hero-content .breadcrumb-nav {
  margin-bottom: 18px;
}

.post-hero-category {
  display: inline-flex;
  display: none;
  align-items: center;
  min-height: 38px;
  padding: 0 20px;
  border-radius: 10px;
  background: var(--color-orange-500, #ff4d4d);
  color: #fff;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.post-hero .article-title {
  margin: 18px 0 16px;
  color: inherit;
  font-size: clamp(2rem, 8vw, 3.5rem);
  line-height: 1.08;
}

.post-hero .post-meta {
  margin: 0;
  color: inherit;
}

.post-hero .post-meta-item {
  margin-bottom: 8px;
}

.post-hero .post-meta-item::after {
  color: currentColor;
}

.post-hero .post-meta-icon {
  filter: brightness(0) saturate(100%) invert(66%) sepia(90%) saturate(1000%) hue-rotate(355deg);
}

.post-hero .post-meta-item-label {
  color: var(--color-orange-500, #ffad00);
}

@media (min-width: 960px) {
  .post-hero-media {
    height: min(56vw, 560px);
  }

  .post-hero-overlay {
    background: linear-gradient(90deg, rgba(15, 23, 42, 0.9) 0%, rgba(15, 23, 42, 0.58) 58%, rgba(15, 23, 42, 0.18) 100%);
  }

  .post-hero-content {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    width: min(var(--container-width), calc(100% - 48px));
    flex-direction: column;
    justify-content: center;
    padding: 48px 24px;
    margin: 0 auto;
    color: #fff;
    background: transparent;
  }

  .post-hero-content .breadcrumb-nav {
    margin-bottom: 22px;
  }

  .post-hero-content .breadcrumb-link,
  .post-hero-content .breadcrumb-current,
  .post-hero-content .breadcrumb-separator {
    color: #dbeafe;
  }

  .post-hero .article-title {
    max-width: 900px;
    margin: 24px 0;
  }

  .post-hero .post-meta {
    max-width: 100%;
  }
}

.post-meta {
  display: flex;
  gap: 10px 16px;
  flex-wrap: wrap;
  margin: 12px 0;
  padding: 0;
  align-items: center;
  color: #e5e7eb;
  font-size: var(--font-size-sm);
}

.post-meta-item {
  display: inline-flex;
  min-height: 38px;
  box-sizing: border-box;
  gap: 8px;
  align-items: center;
  padding: 0 14px;
  border: 1px solid rgba(148, 163, 184, 0.24);
  border-radius: 10px;
  background: rgba(15, 23, 42, 0.48);
  white-space: nowrap;
}

.post-meta-item-label {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  margin: 0;
  color: #ffb800;
  font-size: 16px;
  line-height: 1;
}

.post-meta-item-val {
  color: inherit;
  font-weight: 600;
  line-height: 1;
}

.post-meta-icon {
  display: block;
  width: 16px;
  height: 16px;
}

.post-meta-item::after {
  display: none;
}

.post-large .post-meta {
  justify-content: center;
}

.post-metas {
  margin: 1em 0;
  padding: 0;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: wrap;
}

.post-metas-item {
  margin-right: 2em;
  /*font-size: var(--font-size-m);*/
  display: flex;
  justify-content: flex-start;
  align-items: center;
}

.post-metas-item-key {
  margin-right: 0.25em;
  color: silver;
}

.post-metas-item-val {
  color: var(--color-gray-800);
}

@media (max-width: 959px) {
  .post-meta {
    gap: 8px;
  }

  .post-meta-item {
    padding: 0 12px;
  }
}

.post-categories {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border, #e5e7eb);
}

.post-categories h2 {
  margin: 0 0 0.75rem;
  color: var(--ink, #111827);
  font-size: 1.1rem;
}

.post-categories__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.post-categories__item a {
  display: inline-block;
  padding: 0.35rem 0.7rem;
  border-radius: 4px;
  background: var(--color-gray-800);
  color: white;
  font-size: 0.9rem;
  text-decoration: none;
}

.post-categories__item a:hover,
.post-categories__item a:focus-visible {
  background: var(--color-gray-600);
}

.random-post {
  display: block;
}

.random-post-link {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 10px 16px;
  border: 1px solid rgba(255, 110, 255, .7);
  border-radius: 14px;
  background:
      radial-gradient(circle at left center,
      rgba(255,0,255,.15) 0%,
      transparent 45%),
      linear-gradient(
          135deg,
          #12011d,
          #220035
      );

  box-shadow:
      0 0 8px rgba(255,0,255,.4),
      inset 0 0 12px rgba(255,255,255,.05);

  cursor: pointer;
  transition: .25s ease;
}

.random-post-link:hover {
  transform: translateY(-2px);
  box-shadow:
      0 0 15px rgba(255,0,255,.6),
      0 0 35px rgba(255,0,255,.25);
}

.random-post-link-icon {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  color: white;
  filter:
      drop-shadow(0 0 5px #d95cff)
      drop-shadow(0 0 10px #d95cff);
}

.random-post-link-heading {
  margin: 0;
  color: white;
  text-transform: uppercase;
  font-size: 16px;
  letter-spacing: 1px;
  text-shadow: 0 0 10px rgba(255,100,255,.6);
}

.random-post-link-p {
  margin: 2px 0 0;
  color: #fff;
  opacity: .85;
  font-size: 16px;
}

.tag-overview {
  padding: 1rem 0 4rem;
}

.tag-overview h1 {
  margin: 0 0 0.5rem;
}

.tag-overview__intro {
  margin: 0 0 1.5rem;
  color: var(--ink-muted, #6b7280);
}

.tag-overview__list,
.post-tags__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.tag-overview__item a,
.post-tags__item a {
  display: inline-block;
  padding: 0.35rem 0.7rem;
  border-radius: 4px;
  background: var(--color-gray-800);
  color: white;
  font-size: 0.9rem;
  text-decoration: none;
}

.tag-overview__item a:hover,
.tag-overview__item a:focus-visible,
.post-tags__item a:hover,
.post-tags__item a:focus-visible {
  background: var(--color-gray-600);
}

.tag-overview__count {
  font-size: 0.85em;
}

.post-tags {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border, #e5e7eb);
}

.post-tags h2 {
  margin: 0 0 0.75rem;
  color: var(--ink, #111827);
  font-size: 1.1rem;
}

/* ====================================
   Pagination Component
   ==================================== */

.pagination {
    margin: 3rem auto 0;
    padding: 2rem 0;
}

.pagination-list {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
    list-style: none;
    padding: 0;
    margin: 0;
    flex-wrap: wrap;
}

.pagination-item {
    display: flex;
}

.pagination-link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-width: 2.5rem;
    padding: 0.625rem 0.75rem;
    border: 1px solid var(--color-border, #e0e0e0);
    border-radius: 4px;
    background-color: var(--color-bg-secondary, #f9f9f9);
    color: var(--color-text, #333);
    text-decoration: none;
    font-weight: 500;
    font-size: 0.95rem;
    transition: all 0.2s ease;
    cursor: pointer;
}

.pagination-link:hover:not(.pagination-link--disabled):not(.pagination-link--active) {
    border-color: var(--color-primary, #007bff);
    background-color: var(--color-bg-hover, #f0f0f0);
    color: var(--color-primary, #007bff);
}

.pagination-link:focus {
    outline: 2px solid var(--color-primary, #007bff);
    outline-offset: 2px;
}

.pagination-link--active {
    background-color: var(--color-primary, #007bff);
    border-color: var(--color-primary, #007bff);
    color: white;
    cursor: default;
    font-weight: 600;
}

.pagination-link--active:hover {
    background-color: var(--color-primary, #007bff);
    border-color: var(--color-primary, #007bff);
    color: white;
}

.pagination-link--disabled {
    opacity: 0.5;
    cursor: not-allowed;
    background-color: var(--color-bg-disabled, #f0f0f0);
    border-color: var(--color-border-disabled, #ddd);
    color: var(--color-text-disabled, #999);
}

.pagination-link--disabled:hover {
    background-color: var(--color-bg-disabled, #f0f0f0);
    border-color: var(--color-border-disabled, #ddd);
    color: var(--color-text-disabled, #999);
}

.pagination-item--dots .pagination-link {
    border: none;
    background-color: transparent;
    color: var(--color-text-muted, #666);
    cursor: default;
    padding: 0.625rem 0.25rem;
}

.pagination-item--dots .pagination-link:hover {
    background-color: transparent;
    border: none;
}

.pagination-nav {
    display: flex;
    gap: 15px;
    align-items: center;
    margin-top: 30px;
}

.pagination-button {
    padding: 8px 16px;
    border-radius: 4px;
    background: #0066cc;
    color: #fff;
    font-weight: 700;
    text-decoration: none;
}

.pagination-button--disabled {
    padding: 8px 16px;
    border-radius: 4px;
    background: #eaeaea;
    color: #aaa;
    cursor: not-allowed;
}

.pagination-status {
    color: #555;
    font-weight: 500;
}

/* Navigation buttons (previous/next) styling */

.pagination-item--prev .pagination-link,
.pagination-item--next .pagination-link {
    padding: 0.625rem 1rem;
    white-space: nowrap;
}

/* Responsive adjustments */

@media (max-width: 640px) {
    .pagination-list {
        gap: 0.25rem;
    }

    .pagination-link {
        min-width: 2.25rem;
        padding: 0.5rem 0.5rem;
        font-size: 0.9rem;
    }

    .pagination-item--prev .pagination-link span:last-child,
    .pagination-item--next .pagination-link span:first-child {
        display: none;
    }

    .pagination-item--prev .pagination-link,
    .pagination-item--next .pagination-link {
        padding: 0.5rem 0.5rem;
        min-width: auto;
    }
}

.sort-nav {
  margin-bottom: 1.5rem;
}

.glossary-nav {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  margin: 1rem 0;
}

.glossary-nav-item {
  min-width: 2rem;
  padding: .3rem .5rem;
  border-radius: .25rem;
  background: #f2f7ff;
  text-align: center;
  text-decoration: none;
}

.glossary-nav-item.inactive {
  opacity: .45;
}

.glossary-list {
  margin: 1rem 0;
}

.glossary-headline {
  display: block;
  margin: 1.25rem 0 .5rem;
  padding-bottom: .25rem;
  border-bottom: 1px solid #d9e3f0;
  font-size: 1.25rem;
  font-weight: 700;
  scroll-margin-top: 1rem;
}

.glossary-headline.no-entries {
  opacity: .4;
}

.glossary-entries {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  padding: 0;
  list-style: none;
}

.glossary-button,
.bar-chart-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
}

.glossary-button {
  padding: .5rem .75rem;
  border: 1px solid #e3e8ef;
  border-radius: .4rem;
  background: #fff;
  color: inherit;
  cursor: pointer;
}

.glossary-button-voting {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  white-space: nowrap;
}

.glossary-button-voting-heart svg {
  width: 1rem;
  height: 1rem;
}

.bar-chart-item {
  position: relative;
  min-height: 2.25rem;
  margin: .35rem 0;
  padding: .25rem .5rem;
  overflow: hidden;
}

.bar-chart-bar {
  position: absolute;
  inset: 0 auto 0 0;
  width: var(--width, 0%);
  background: #eaf2ff;
}

.bar-chart-text,
.bar-chart-item .vote-btn {
  position: relative;
}

.bar-chart-text {
  overflow-wrap: anywhere;
}

.bar-chart-item .vote-btn {
  flex: 0 0 auto;
}

.word-grid {
  overflow-x: auto;
  margin: 1.5rem 0;
  padding: 1rem 0;
}

.word-grid-stage {
  display: grid;
  grid-template-rows: repeat(2, 2.5rem);
  width: max-content;
  margin: 0 auto;
}

.word-grid-word {
  display: grid;
  grid-auto-columns: 1.8rem;
  grid-auto-flow: column;
  align-items: center;
}

.word-grid-word--first {
  grid-row: 1;
}

.word-grid-word--second {
  grid-row: 2;
}

.word-grid-word span {
  display: grid;
  width: 1.7rem;
  height: 1.7rem;
  place-items: center;
  border: 1px solid #d7dce5;
  background: #fff;
  font-weight: 700;
}

.word-grid-word .word-intersect {
  border-color: #2f80ed;
  background: #eaf2ff;
  color: #17468a;
}

.top-words {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 20px;
  margin-bottom: 50px;
}

.word-card {
  padding: 20px;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .1);
  text-align: center;
  transition: transform .2s;
}

.word-card:hover {
  transform: translateY(-3px);
}

.word-card.gold {
  background: linear-gradient(135deg, #fff9c4, #ffd700);
}

.word-card.silver {
  background: linear-gradient(135deg, #f5f5f5, #c0c0c0);
}

.word-card.bronze {
  background: linear-gradient(135deg, #f6d6b8, #cd7f32);
}

.word-card .rank {
  font-size: 2rem;
}

.word-card .word {
  margin: 10px 0;
  font-size: 1.4rem;
  font-weight: 700;
}

.word-card .likes {
  color: #d32f2f;
}

.words-section {
  margin-top: 50px;
}

.word-combination-section-header h2 {
  margin: 0;
  color: #123b77;
  font-size: 2rem;
}

.word-combination-section-header p {
  margin-top: 8px;
  color: #60738c;
}

.word-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 15px;
  margin: 30px 0;
}

.sort-btn {
  padding: 14px 24px;
  border: 0;
  border-radius: 12px;
  background: #f2f7ff;
  color: #17468a;
  cursor: pointer;
  font-size: 15px;
  font-weight: 600;
  transition: transform .2s;
}

.sort-btn:hover {
  transform: translateY(-2px);
}

.sort-btn.active {
  background: #2f80ed;
  color: #fff;
}

.search-box {
  margin-left: auto;
}

.search-box input {
  width: 320px;
  max-width: 100%;
  padding: 14px 18px;
  border: 1px solid #d9e3f0;
  border-radius: 14px;
  font-size: 15px;
}

.word-table {
  overflow: hidden;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
}

.word-table-head,
.word-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 150px 150px;
}

.word-table-head {
  padding: 20px 25px;
  background: #eef4fb;
  color: #1d4170;
  font-weight: 700;
}

.word-row {
  align-items: center;
  padding: 6px 25px;
  border-top: 1px solid #edf2f7;
  transition: background .15s;
}

.word-row:hover {
  background: #fafcff;
}

.word-row[hidden] {
  display: none;
}

.word-name {
  color: #173e77;
  font-size: 1.1rem;
  font-weight: 600;
}

.word-likes {
  color: #d94b59;
  font-weight: 700;
}

.word-row .like-button {
  padding: 6px 18px;
  border: 0;
  border-radius: 10px;
  background: linear-gradient(135deg, #ff6b6b, #ff4d5a);
  color: #fff;
  cursor: pointer;
  font-weight: 700;
  transition: transform .2s, box-shadow .2s;
}

.word-row .like-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 15px rgba(255, 77, 90, .3);
}

@media (max-width: 768px) {
  .word-table-head {
    display: none;
  }

  .word-row {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 18px;
  }

  .search-box {
    width: 100%;
    margin-left: 0;
  }

  .search-box input,
  .word-row .like-button {
    width: 100%;
  }

  .word-likes {
    font-size: 14px;
  }
}

.sidebar-box {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;

    padding: 15px;
    margin-bottom: 20px;
}

.sidebar-box h3 {
    margin-top: 0;
}

.sidebar-box ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.sidebar-box li {
    margin-bottom: 10px;
}

.sidebar-box a {
    text-decoration: none;
}

.sidebar-box svg {
    width: 16px;
    height: 16px;
    margin-right: 8px;
    vertical-align: middle;
}

.similar-posts {
  margin-top: 2.5rem;
  padding-top: 2rem;
  border-top: 1px solid var(--border, #e5e7eb);
}

.similar-posts__title {
  margin: 0 0 1.25rem;
  color: var(--ink, #111827);
  font-size: 1.5rem;
}

.similar-posts__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
}

.similar-posts__grid .post-card {
  min-width: 0;
}

@media (max-width: 900px) {
  .similar-posts__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .similar-posts__grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

.related-posts {
  margin-top: 2rem;
  padding: 1.25rem 1.5rem;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 0.75rem;
  background: var(--surface, #f9fafb);
}

.related-posts__title {
  margin: 0 0 0.75rem;
  color: var(--ink, #111827);
  font-size: 1.25rem;
}

.related-posts__list {
  display: grid;
  gap: 0.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.related-posts__list li::before {
  content: "\00BB";
  margin-right: 0.5rem;
}

.related-posts__list a {
  color: inherit;
}

.testimonial-card {
  height: 100%;
  overflow: hidden;
  border: 1px solid #f9f9f9;
  border-radius: 10px;
  background: var(--card-background, var(--color-gray-0));
  box-shadow: 0 4px 8px rgba(16, 24, 40, 0.12);
}

.testimonial-card-header {
  display: flex;
  align-items: center;
  gap: 0;
  padding: 0;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.testimonial-card-body {
  padding: 1rem;
}

.testimonial-card-quote {
  display: block;
  margin-bottom: 0;
  color: var(--color-blue-850);
  font-size: 1rem;
  font-style: italic;
  font-family: var(--font-serif);
  position: relative;
  padding-left: 44px;
}

.testimonial-card-quote::before {
  content: "\201C"; /* Unicode for left double quotation mark */
  height: 22px;
  margin-right: 1rem;
  margin-top: -22px;
  font-size: 4rem;
  font-weight: bold;
  color: var(--color-yellow-500);
  position: absolute;
  left: 0;
}

.testimonial-card-rating {
  display: flex;
  gap: 0.5em;
  color: var(--color-yellow-500);
  font-size: 1.5rem;
}

.testimonial-card-name {
  display: block;
  color: var(--color-blue-750);
  font-size: 0.9rem;
}

.entry-content p a {
  color: #4a4a4a;
  transition: all 0.2s;
  background-repeat: no-repeat;
  background-position: 100%;
  background-size: 100% 100%;
  background-image: linear-gradient(transparent, calc(100% - 1px), #ff5d1c 1px);
}

.entry-content p a:hover {
  background-size: 0 100%;
  text-decoration: none;
}

.entry-content {
  max-width: 800px;
  padding: 0;
}

@media screen and (min-width: 640px) {
  .entry-content {
    padding: 0;
  }
}

.entry-content p {
  margin: 0 0 10px 0;
}

.entry-content p:not([class]) a {
  color: var(--color-gray-800);
}

.entry-content > img {
  width: auto;
}

.entry-content h1 {
  margin: 20px 0;
  font-size: 24px;
  font-weight: 700;
}

.entry-content h2 {
  margin: 2em 0 1em 0;
  font-size: 22px;
  font-weight: 700;
  border-bottom: 1px solid #e5e7eb;
}

.entry-content h3 {
  margin: 2em 0 1em 0;
  clear: both;
}

.entry-content p {
  margin: 0 0 15px 0;
  color: #4a4a4a;
  font-size: 16px;
  line-height: 150%;
}

@media screen and (min-width: 640px) {
  .entry-content p {
    font-size: 16px;
    line-height: 165%;
  }
}

.entry-content .dialog {
  margin-left: 15px;
  margin-bottom: 10px;
  font-style: italic;
}

.entry-content > ol {
  margin-bottom: 20px;
  padding-left: 36px;
  list-style: none;
}

.entry-content > ol li {
  position: relative;
  line-height: 165%;
  /*
        &:nth-child(2n)
          background-color: #f9f9f9
        &:nth-child(1n):before
          transform: rotate(-3deg)
        &:nth-child(3n):before
          transform: rotate(3deg)
        &:nth-child(4n):before
          transform: rotate(-6deg)
        &:nth-child(5n):before
          transform: rotate(-5deg)
        &:nth-child(6n):before
          transform: rotate(2deg)
        &:nth-child(7n):before
          transform: rotate(3deg)
        &:nth-child(8n):before
          transform: rotate(-4deg)
        &:nth-child(9n):before
          transform: rotate(3deg)

         */
}

.entry-content > ol li:before {
  width: 20px;
  height: 20px;
  color: #6a6a6a;
  font-size: 14px;
  line-height: 20px;
  text-align: center;
  position: absolute;
  top: 0px;
  left: -36px;
}

.entry-content > ol li > strong {
  font-size: 20px;
  line-height: 32px;
}

@media screen and (min-width: 640px) {
  .entry-content > ol {
    padding-left: 40px;
  }
  .entry-content > ol li:before {
    width: 24px;
    height: 24px;
    font-size: 15px;
    line-height: 24px;
    top: 0px;
    left: -40px;
  }
}

.entry-content > ul {
  padding-left: 20px;
  list-style: disc;
}

.entry-content > ol,
.entry-content > ul {
  margin-bottom: 20px;
}

.entry-content > ol li,
.entry-content > ul li {
  margin: 0 0 0 0;
  line-height: 150%;
}

.entry-content {
  counter-reset: section;
}

.entry-content > ol li:before {
  counter-increment: section;
  content: "" counter(section) ") " !important;
}

.entry-content > p em {
  font-family: var(--font-serif);
}

.drop-cap::first-letter {
  float: left;
  font-size: 4.25rem;
  line-height: 0.8;
  margin-right: 0.1em;
  margin-top: 0.15em;
  font-weight: normal;
}

.post-layout.story p {
  font-family: var(--font-serif);
}

.contact-form {
  display: grid;
  gap: 1.25rem;
  max-width: 42rem;
  margin: 2rem 0;
}

.contact-form__field {
  display: grid;
  gap: 0.5rem;
}

.contact-form__honeypot {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.contact-form__field label {
  font-weight: 700;
}

.contact-form__field input,
.contact-form__field textarea {
  width: 100%;
  padding: 0.75rem;
  border: 1px solid #bbb;
  border-radius: 4px;
  font: inherit;
}

.contact-form__field textarea {
  resize: vertical;
}

.contact-form button {
  justify-self: start;
  padding: 0.75rem 1.25rem;
  border: 0;
  border-radius: 4px;
  background: #333;
  color: #fff;
  font: inherit;
  cursor: pointer;
}

.contact-form button:disabled {
  cursor: wait;
  opacity: 0.65;
}

.contact-form__status {
  min-height: 1.5em;
  margin: 0;
}

rating-widget {
  display: block;
  margin: 2rem 0;
  padding: 1.25rem;
  border: 1px solid #e3e3e3;
  border-radius: 0.75rem;
  background: #fff;
  color: #222;
}

.rating-widget__inner {
  text-align: center;
}

.rating-widget__title {
  margin: 0 0 0.75rem;
  font-size: 1.2rem;
}

.rating-widget__choices {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.25rem;
}

.rating-widget__choice {
  min-width: 44px;
  min-height: 44px;
  padding: 0.25rem;
  border: 0;
  border-radius: 0.4rem;
  background: transparent;
  color: #777;
  cursor: pointer;
  font-size: 2rem;
  line-height: 1;
  touch-action: manipulation;
}

.rating-widget__choice:hover,
.rating-widget__choice:focus-visible,
.rating-widget__choice.is-preview,
.rating-widget__choice.is-selected {
  color: #e7a500;
}

.rating-widget__choice:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

.rating-widget__choice:disabled {
  cursor: default;
}

.rating-widget__summary,
.rating-widget__status {
  margin: 0.5rem 0 0;
}

.rating-widget__status {
  min-height: 1.4em;
  color: #555;
}

@media (max-width: 480px) {
  rating-widget {
    padding: 1rem 0.5rem;
  }

  .rating-widget__choice {
    min-width: 42px;
    font-size: 1.8rem;
  }
}

.home-news-ticker {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    min-height: 52px;
    margin: 1.25rem 0 1.75rem;
    padding: 7px 12px;
    border: 1px solid #ffd0e5;
    border-radius: 15px;
    background: linear-gradient(100deg, #fff1f7, #fff9fc);
    box-shadow: 0 4px 14px rgb(236 47 134 / 10%);
}

.home-news-ticker__icon {
    color: #ec2f86;
    font-size: 24px;
    line-height: 1;
}

.home-news-ticker__label {
    padding: 4px 12px;
    border-radius: 999px;
    background: #ec2f86;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.3;
    text-transform: uppercase;
    white-space: nowrap;
}

.home-news-ticker__content {
    display: flex;
    min-width: 0;
    align-items: baseline;
    gap: 12px;
}

.home-news-ticker__title {
    overflow: hidden;
    color: #102a56;
    font-size: 15px;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-news-ticker__title:hover,
.home-news-ticker__title:focus-visible {
    color: #ec2f86;
    text-decoration: underline;
}

.home-news-ticker__excerpt,
.home-news-ticker__status {
    overflow: hidden;
    margin: 0;
    color: #53647e;
    font-size: 13px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-news-ticker__controls {
    display: flex;
    align-items: center;
    gap: 4px;
}

.home-news-ticker__controls button {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #ec2f86;
    cursor: pointer;
    font-size: 24px;
    line-height: 1;
}

.home-news-ticker__controls button:hover:not(:disabled),
.home-news-ticker__controls button:focus-visible {
    background: #ffe0ee;
}

.home-news-ticker__controls button:focus-visible {
    outline: 2px solid #ec2f86;
    outline-offset: 2px;
}

.home-news-ticker__controls button:disabled {
    cursor: default;
    opacity: 0.45;
}

.home-news-ticker__counter {
    color: #53647e;
    font-size: 11px;
    font-variant-numeric: tabular-nums;
}

.home-news-ticker[aria-busy="true"] .home-news-ticker__status {
    color: #53647e;
}

@media (max-width: 700px) {
    .home-news-ticker {
        grid-template-columns: auto auto minmax(0, 1fr) auto;
        gap: 8px;
        margin-block: 1rem;
        padding: 8px;
    }

    .home-news-ticker__content {
        display: block;
    }

    .home-news-ticker__excerpt {
        display: none;
    }

    .home-news-ticker__label {
        padding-inline: 9px;
        font-size: 10px;
    }
}

@media (max-width: 420px) {
    .home-news-ticker {
        grid-template-columns: auto auto minmax(0, 1fr) auto;
    }

    .home-news-ticker__icon {
        font-size: 20px;
    }

    .home-news-ticker__label {
        max-width: 86px;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .home-news-ticker__controls {
        gap: 0;
    }

    .home-news-ticker__controls button {
        width: 25px;
        height: 28px;
    }

    .home-news-ticker__counter {
        display: none;
    }
}