/* Ergänzungen zur bestehenden Website; die Originalgestaltung bleibt erhalten. */
.skip-link { position: absolute; left: 1rem; top: -6rem; z-index: 20; background: var(--ink); color: white; padding: 12px; }
.skip-link:focus { top: 1rem; }
.menu-toggle { display: none; border: 1px solid var(--ink); background: transparent; color: var(--ink); padding: 8px 12px; min-height: 44px; cursor: pointer; }
nav a { padding: 8px 0; }
.tile, .hero > div, .journal > div, .practice > div { min-width: 0; }
.tile h3, .eyebrow, .legal-content { overflow-wrap: anywhere; }
.filters button { min-height: 44px; }
.save-book { display: block; margin-top: 8px; }
.textlink { min-height: 44px; text-underline-offset: 4px; }
.btn { min-height: 44px; }
.strip span { text-align: center; }
.modal-open { overflow: hidden; }
dialog { max-height: calc(100dvh - 32px); overflow-y: auto; overscroll-behavior: contain; border-radius: 3px; }
.close { position: sticky; top: -12px; z-index: 1; width: 44px; height: 44px; background: var(--bg); color: var(--ink); }
.book-tools { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 20px; }
.book-tools p { margin: 0; }
.newsletter { display: grid; grid-template-columns: 1fr 1fr; gap: 8%; border-top: 1px solid var(--line); }
.newsletter fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.newsletter legend { font-family: Georgia, serif; font-size: 24px; margin-bottom: 12px; }
.newsletter .field-label { display: block; font-size: 14px; margin: 14px 0 5px; }
.newsletter input:not([type=checkbox]) { width: 100%; min-width: 0; padding: 12px; border: 1px solid #94a396; background: #fffdf7; color: var(--ink); }
.consent-label { display: flex; align-items: flex-start; gap: 12px; margin: 18px 0; font-size: 14px; }
.consent-label input { flex: 0 0 auto; width: 22px; height: 22px; margin-top: 4px; accent-color: var(--ink); }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.newsletter button:disabled { cursor: not-allowed; opacity: .65; }
.form-error { color: #8f3020; }
.foot-links { display: flex; gap: 22px; flex-wrap: wrap; }
.foot-links a { display: inline-block; padding: 10px 0; }
.legal-content { max-width: 900px; padding-top: 48px; padding-bottom: 60px; }
.legal-content h1 { font-size: clamp(34px, 5vw, 55px); letter-spacing: -1px; }
.legal-content h2 { font-size: 28px; margin-top: 36px; }
.draft-banner { border: 2px solid #956b28; padding: 20px; background: #fff5da; }
.legal-content mark { background: #fff0c8; color: #583a13; padding: 2px 4px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; animation: none !important; } }
@media (max-width: 750px) {
  .nav { flex-wrap: wrap; gap: 8px 12px; }
  .logo { letter-spacing: 1px; }
  .menu-toggle { display: block; }
  #main-nav { display: none; width: 100%; flex-direction: column; gap: 0; padding-top: 8px; }
  #main-nav.is-open { display: flex; }
  #main-nav a { font-size: 15px; padding: 10px 0; }
  .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .newsletter { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .tile .eyebrow { font-size: 10px; letter-spacing: 1px; }
  .strip { gap: 10px; letter-spacing: .5px; }
  .still:before { width: 90%; height: auto; aspect-ratio: 1; }
  .btn { max-width: 100%; }
}
@media (max-width: 420px) {
  .grid { grid-template-columns: minmax(0, 1fr); }
  .coverwrap { height: 280px; }
  .strip { flex-wrap: wrap; justify-content: center; }
  .book { width: 210px; height: 300px; }
  .still, .journal .still { height: 340px; }
  .practice { padding: 18px; }
  .book-detail { grid-template-columns: 64px minmax(0, 1fr); gap: 12px; }
  .book-detail h2 { font-size: 24px; }
}
