/* Ratgeber nutzen Farben und Systemschriften der Hauptseite. */
.guide-page { --guide-width: 1160px; }
.guide-page a { text-underline-offset: .18em; }
.guide-shell { width: min(var(--guide-width), calc(100% - 2 * var(--gutter))); margin-inline: auto; }
.guide-header { background: var(--paper); border-bottom: 1px solid var(--line); }
.guide-header-inner { min-height: 78px; display: flex; align-items: center; gap: 24px; flex-wrap: wrap; padding-block: 14px; }
.guide-header .brand { color: var(--forest-ink); }
.guide-nav { display: flex; align-items: center; gap: 8px 22px; margin-left: auto; flex-wrap: wrap; font-size: .9rem; }
.guide-nav a { text-decoration: none; }
.guide-nav a:hover { text-decoration: underline; }
.guide-store { display: inline-flex; padding: 10px 17px; background: var(--forest); color: var(--cream); border-radius: 999px; font-weight: 650; text-decoration: none; white-space: nowrap; }
.guide-breadcrumb { padding-top: 25px; color: var(--ink-2); font-size: .83rem; }
.guide-breadcrumb ol { display: flex; gap: 8px; flex-wrap: wrap; }
.guide-breadcrumb li + li::before { content: '/'; margin-right: 8px; color: var(--ink-3); }
.guide-hero { max-width: 880px; padding-block: clamp(36px, 6vw, 72px) 42px; }
.guide-hero h1 { font-family: var(--font-display); font-size: clamp(2.45rem, 6vw, 4.7rem); line-height: 1.06; letter-spacing: -.025em; font-weight: 600; margin-top: 16px; }
.guide-intro { font-size: clamp(1.06rem, 2vw, 1.26rem); line-height: 1.65; color: var(--ink-2); margin-top: 24px; max-width: 730px; }
.guide-byline { font-size: .8rem; color: var(--ink-2); margin-top: 22px; }
.guide-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: 18px; overflow: hidden; background: var(--paper); margin-bottom: 46px; }
.guide-fact { padding: 23px 25px; }
.guide-fact + .guide-fact { border-left: 1px solid var(--line); }
.guide-fact dt { font-size: .78rem; font-weight: 600; letter-spacing: .04em; color: var(--ink-2); }
.guide-fact dd { margin: 7px 0 0; font-weight: 650; font-size: 1.08rem; }
.guide-layout { display: grid; grid-template-columns: minmax(0, 750px) minmax(0, 260px); gap: clamp(28px, 6vw, 90px); align-items: start; padding-bottom: 70px; }
.guide-content { min-width: 0; }
.guide-content section + section { margin-top: 47px; }
.guide-content h2, .guide-related h2 { font-size: clamp(1.65rem, 3.4vw, 2.35rem); line-height: 1.15; margin-bottom: 19px; }
.guide-content p + p, .guide-content p + ul, .guide-content p + ol, .guide-content ul + p, .guide-content ol + p, .guide-content dl + p { margin-top: 17px; }
.guide-content ul, .guide-content ol { padding-left: 1.35em; }
.guide-content ul { list-style: disc; }
.guide-content ol { list-style: decimal; }
.guide-content li + li { margin-top: 12px; }
.guide-content dt { font-weight: 700; margin-top: 17px; }
.guide-content dd { margin: 5px 0 0; color: var(--ink-2); }
.guide-content sup { font-size: .7em; margin-left: 2px; }
.guide-content sup a { text-decoration: none; }
.guide-aside { position: sticky; top: 25px; }
.guide-toc { border-left: 2px solid var(--moss); padding-left: 20px; font-size: .88rem; }
.guide-toc p { font-weight: 650; margin-bottom: 12px; }
.guide-toc li + li { margin-top: 12px; }
.guide-toc a { text-decoration: none; color: var(--ink-2); }
.guide-toc a:hover { color: var(--forest-ink); text-decoration: underline; }
.guide-tool { border-radius: 18px; background: var(--forest); color: var(--cream); padding: 23px; margin-top: 30px; }
.guide-tool strong { font-family: var(--font-display); font-size: 1.4rem; line-height: 1.2; display: block; }
.guide-tool p { font-size: .87rem; margin-top: 12px; opacity: .88; }
.guide-tool a { display: inline-block; color: var(--cream); margin-top: 18px; font-weight: 650; font-size: .9rem; }
.guide-note { padding: 22px 24px; border-left: 4px solid var(--moss-2); background: var(--paper); border-radius: 0 14px 14px 0; margin-block: 25px; }
.guide-note strong { display: block; margin-bottom: 8px; }
.guide-note p { color: var(--ink-2); font-size: .94rem; }
.guide-faq details { border-top: 1px solid var(--line); padding-block: 18px; }
.guide-faq details:last-child { border-bottom: 1px solid var(--line); }
.guide-faq summary { font-weight: 650; cursor: pointer; }
.guide-faq details p { margin-top: 13px; color: var(--ink-2); }
.guide-sources { border-top: 1px solid var(--line); padding-top: 30px; font-size: .88rem; color: var(--ink-2); overflow-wrap: anywhere; }
.guide-sources h2 { color: var(--ink); }
.guide-sources ol { padding-left: 1.4em; }
.guide-sources p { margin-top: 16px; }
.guide-app { background: var(--deep); color: var(--cream); border-radius: 24px; padding: clamp(26px, 5vw, 48px); display: flex; align-items: center; gap: 30px; margin-bottom: 65px; }
.guide-app h2 { font-size: clamp(1.7rem, 3vw, 2.3rem); }
.guide-app p { margin-top: 13px; color: rgba(247,245,230,.8); max-width: 630px; }
.guide-app .guide-store { background: var(--moss); color: var(--deep); margin-left: auto; flex-shrink: 0; }
.guide-related { padding-bottom: 65px; }
.guide-related-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.guide-card { padding: 24px; border: 1px solid var(--line); border-radius: 16px; background: var(--paper); text-decoration: none; display: flex; flex-direction: column; align-items: start; }
.guide-card:hover { border-color: var(--forest-ink); }
.guide-card strong { font-size: 1.1rem; }
.guide-card span { font-size: .87rem; color: var(--ink-2); margin-top: 8px; }
.guide-card b { color: var(--forest-ink); margin-top: auto; padding-top: 20px; font-size: .9rem; }
.guide-footer { border-top: 1px solid var(--line); padding-block: 27px; color: var(--ink-2); font-size: .8rem; }
.guide-footer-inner { display: flex; gap: 15px 25px; justify-content: space-between; flex-wrap: wrap; }
.guide-footer nav { display: flex; flex-wrap: wrap; gap: 18px; }
.guide-calendar .guide-layout { grid-template-columns: minmax(0, 1fr); }
.guide-calendar .guide-hero { max-width: 900px; }
.calendar-controls { display: flex; flex-wrap: wrap; gap: 18px; align-items: end; margin: 24px 0 16px; padding: 23px; background: var(--paper); border: 1px solid var(--line); border-radius: 16px; }
.calendar-controls[hidden] { display: none; }
.calendar-controls label { font-size: .82rem; font-weight: 650; display: flex; flex-direction: column; gap: 6px; }
.calendar-controls select { appearance: auto; background: var(--canvas); color: var(--ink); border: 1px solid var(--line); border-radius: 9px; padding: 11px 14px; font: inherit; min-width: 175px; }
.calendar-status { font-size: .9rem; color: var(--ink-2); margin-bottom: 16px; }
.calendar-scroll { position: relative; width: 100%; overflow-x: auto; border: 1px solid var(--line); border-radius: 16px; background: var(--paper); }
.calendar-table { border-collapse: collapse; width: 100%; min-width: 860px; font-size: .84rem; }
.calendar-table caption { text-align: left; padding: 19px 20px; font-weight: 650; color: var(--ink); }
.calendar-table th, .calendar-table td { padding: 13px 8px; text-align: center; border-top: 1px solid var(--line); }
.calendar-table thead th { background: color-mix(in srgb, var(--moss) 20%, var(--paper)); font-weight: 650; }
.calendar-table th:first-child { width: 32%; text-align: left; padding-left: 20px; }
.calendar-table th[scope='row'] { font-weight: 650; }
.calendar-table th small { display: block; font-weight: 400; color: var(--ink-2); font-size: .75rem; line-height: 1.45; margin-top: 6px; }
.calendar-method { font-size: .7rem; font-weight: 650; display: inline-block; margin-top: 6px; padding: 3px 7px; border-radius: 5px; background: color-mix(in srgb, var(--moss) 30%, var(--paper)); color: var(--forest-ink); }
.calendar-table td.month-on { background: color-mix(in srgb, var(--moss) 13%, var(--paper)); }
.calendar-dot { display: inline-block; width: 12px; height: 12px; border-radius: 50%; background: var(--forest-ink); }
.calendar-table .is-selected-month { box-shadow: inset 2px 0 0 var(--moss-2), inset -2px 0 0 var(--moss-2); }
.calendar-legend { display: flex; align-items: baseline; gap: 9px; font-size: .85rem; color: var(--ink-2); margin-block: 14px 24px; }
.calendar-legend .calendar-dot { flex-shrink: 0; }
.calendar-seasons { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 20px; }
.calendar-season { background: var(--paper); border-radius: 16px; padding: 25px; border: 1px solid var(--line); }
.calendar-season h3 { font-size: 1.15rem; margin-bottom: 10px; }
.calendar-season p { font-size: .93rem; color: var(--ink-2); }
@media (max-width: 900px) {
  .guide-header-inner { gap: 16px; }
  .guide-nav { order: 3; width: 100%; margin-left: 0; font-size: .86rem; }
  .guide-header-inner > .guide-store { margin-left: auto; }
  .guide-layout { grid-template-columns: minmax(0, 1fr); }
  .guide-aside { position: static; order: -1; }
  .guide-toc ul { display: flex; flex-wrap: wrap; gap: 10px 20px; }
  .guide-toc li + li { margin-top: 0; }
  .guide-tool { display: none; }
  .guide-app { flex-direction: column; align-items: start; }
  .guide-app .guide-store { margin-left: 0; }
  .calendar-seasons { grid-template-columns: 1fr; gap: 15px; }
}
@media (max-width: 600px) {
  .guide-facts { grid-template-columns: 1fr; }
  .guide-fact { padding: 16px 20px; display: flex; justify-content: space-between; gap: 15px; align-items: baseline; }
  .guide-fact + .guide-fact { border-left: 0; border-top: 1px solid var(--line); }
  .guide-fact dd { margin: 0; text-align: right; font-size: .98rem; }
  .guide-related-grid { grid-template-columns: 1fr; }
  .guide-hero { padding-top: 30px; }
  .guide-hero h1 { font-size: clamp(2.2rem, 10vw, 3rem); }
  .guide-nav { gap: 10px 16px; }
  .guide-nav a { padding-block: 3px; }
  .calendar-controls { padding: 18px; }
  .calendar-controls label { width: 100%; }
  .calendar-controls select { width: 100%; }
}
@media (max-width: 380px) {
  /* Logo und Store-Knopf bleiben auch auf kleinen iPhones in einer Zeile. */
  .guide-header-inner { gap: 10px 12px; }
  .guide-header .brand { font-size: 1.02rem; }
  .guide-header-inner > .guide-store { padding: 8px 12px; font-size: .85rem; }
  .guide-nav { gap: 8px 14px; font-size: .82rem; }
}
@media print {
  :root { --canvas: #fff; --paper: #fff; --ink: #111; --ink-2: #333; --ink-3: #555; --line: #ccc; --forest-ink: #183f2c; }
  body.guide-page { font-size: 10pt; background: white; }
  .guide-header, .guide-breadcrumb, .guide-aside, .guide-app, .guide-related, .guide-footer, .calendar-controls, .skip { display: none !important; }
  .guide-shell { width: 100%; }
  .guide-hero { padding-block: 0 15px; max-width: none; }
  .guide-hero h1 { font-size: 28pt; }
  .guide-intro { font-size: 11pt; max-width: none; }
  .guide-byline { font-size: 8pt; margin-top: 10px; }
  .guide-facts { margin-bottom: 20px; }
  .guide-fact { padding: 10px 15px; }
  .guide-layout { display: block; padding-bottom: 0; }
  .guide-content section + section { margin-top: 20px; }
  .guide-content h2 { font-size: 17pt; break-after: avoid; }
  .guide-content h3 { break-after: avoid; }
  .guide-faq details p { display: block; }
  .guide-faq details { break-inside: avoid; }
  .guide-sources { font-size: 8pt; }
  .calendar-scroll { overflow: visible; border: 0; }
  .calendar-table { min-width: 0; font-size: 7pt; }
  .calendar-table th, .calendar-table td { padding: 7px 4px; }
  .calendar-table th small { font-size: 6.5pt; }
  .calendar-table th:first-child { width: 32%; padding-left: 5px; }
  .calendar-table tr[hidden] { display: table-row !important; }
  .calendar-table tr { break-inside: avoid; }
  .calendar-table .is-selected-month { box-shadow: none; }
  .calendar-dot { width: 7px; height: 7px; background: #183f2c; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .calendar-method { padding: 0; background: none; font-size: 6.5pt; }
  .calendar-seasons { display: block; }
  .calendar-season { padding: 10px; margin-bottom: 8px; break-inside: avoid; }
  .calendar-status { display: none; }
}
