/* ===== SteuerNest — Themenseiten: Fachbereichs-Ticker, Ratgeber-Body, Kontakt ===== */

/* ============================================================
   FACHBEREICHS-TICKER (Variante des Steuer-Newstickers)
   ============================================================ */
.ticker-band{ position:relative; background:linear-gradient(180deg,var(--paper) 0%,var(--paper-2) 100%); border-block:1px solid var(--line); padding-block:20px; }
.ticker-band::before{ content:""; position:absolute; top:-1px; left:0; right:0; height:2px; background:linear-gradient(90deg,transparent 0,var(--red) 22%,var(--red) 78%,transparent 100%); opacity:.45; }
.ticker-band .wrap{ padding-inline:var(--gut); }
.ticker{ display:flex; align-items:stretch; background:var(--white); border:1px solid var(--line); border-radius:18px; box-shadow:var(--shadow-md); overflow:hidden; height:210px; position:relative; }
.ticker::before{ content:""; position:absolute; inset:0; border-radius:18px; box-shadow:inset 0 0 0 1px rgba(255,255,255,.65); pointer-events:none; z-index:3; }
.ticker-label{ display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:14px; flex-shrink:0; background:linear-gradient(135deg,var(--red) 0%,var(--red-ink) 100%); color:#fff; padding:0 44px 0 30px; font-family:var(--mono); font-size:.86rem; letter-spacing:.18em; text-transform:uppercase; font-weight:700; white-space:nowrap; clip-path:polygon(0 0, 100% 0, calc(100% - 16px) 100%, 0 100%); box-shadow:8px 0 24px -8px rgba(228,50,43,.5); position:relative; z-index:2; }
.ticker-label .tk-dot{ width:11px; height:11px; border-radius:50%; background:#fff; flex-shrink:0; animation:tkpulse 1.8s ease-out infinite; }
@keyframes tkpulse{ 0%{ box-shadow:0 0 0 0 rgba(255,255,255,.7);} 70%{ box-shadow:0 0 0 8px rgba(255,255,255,0);} 100%{ box-shadow:0 0 0 0 rgba(255,255,255,0);} }
.ticker-view{ flex:1; min-width:0; overflow:hidden; position:relative; display:flex; align-items:center; padding-left:34px; -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 200px, #000 calc(100% - 150px), transparent 100%); mask-image:linear-gradient(90deg, transparent 0, #000 200px, #000 calc(100% - 150px), transparent 100%); }
.ticker-track{ display:flex; align-items:center; white-space:nowrap; will-change:transform; animation:tickerscroll 200s linear infinite; }
.ticker:hover .ticker-track, .ticker:focus-within .ticker-track{ animation-play-state:paused; }
@keyframes tickerscroll{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }
.tk-item{ display:inline-flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:14px; margin:0 6px; padding:0 30px; height:132px; width:min(30ch,380px); white-space:normal; font-size:1.05rem; font-weight:500; color:var(--ink-2); position:relative; border-radius:11px; transition:color .18s, background .18s; }
.tk-item::before{ content:""; position:absolute; left:30px; top:34px; width:6px; height:6px; border-radius:2px; background:var(--red); transform:rotate(45deg); box-shadow:0 0 0 3px var(--red-soft); transition:box-shadow .18s; opacity:0; }
.tk-item::after{ content:""; position:absolute; right:-7px; top:50%; transform:translateY(-50%); width:1px; height:104px; background:var(--line); }
.tk-item:hover{ color:var(--ink); background:var(--red-soft); }
.ticker-label .tk-lbl-t{ line-height:1.24; }
.ticker-label .tk-sub{ font-family:var(--sans,inherit); font-size:.74rem; letter-spacing:.01em; text-transform:none; font-weight:500; line-height:1.4; color:rgba(255,255,255,.78); }
.tk-item .tk-meta{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.tk-item .tk-head{ display:block; font-size:1.34rem; line-height:1.28; font-weight:600; color:var(--ink); letter-spacing:-.01em; text-wrap:pretty; }
.tk-item:hover .tk-head{ color:var(--red-ink); }
.tk-item:hover::before{ box-shadow:0 0 0 3px rgba(228,50,43,.14); }
.tk-item .tk-date{ font-family:var(--mono); font-size:.72rem; letter-spacing:.04em; color:var(--red); font-weight:700; flex-shrink:0; background:var(--red-soft); border-radius:7px; padding:.34em .62em; transition:background .18s, color .18s; }
.tk-item:hover .tk-date{ background:var(--red); color:#fff; }
.tk-item .tk-cat{ font-family:var(--mono); font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; font-weight:700; color:var(--muted); border:1px solid var(--line-2); border-radius:999px; padding:.36em .72em; flex-shrink:0; transition:border-color .18s, color .18s; }
.tk-item:hover .tk-cat{ color:var(--red-ink); border-color:var(--red-soft-2); }
@media (prefers-reduced-motion: reduce){ .ticker-track{ animation:none; } .ticker-view{ overflow-x:auto; } }
@media (max-width:640px){
  .ticker-band{ padding-block:15px; }
  .ticker{ height:200px; border-radius:16px; }
  .ticker-label{ padding:0 30px 0 20px; font-size:.72rem; letter-spacing:.12em; }
  .ticker-label .tk-sub{ display:none; }
  .tk-item{ font-size:.94rem; padding:0 20px; margin:0 4px; gap:10px; height:126px; width:min(26ch,300px); }
  .tk-item .tk-head{ font-size:1.08rem; }
  .tk-item .tk-cat{ display:none; }
}

/* ============================================================
   RATGEBER-BODY auf Themenseiten
   ============================================================ */
.tg-body{ display:grid; grid-template-columns:minmax(0,260px) minmax(0,1fr); gap:clamp(28px,4vw,58px); align-items:start; }
.tg-toc{ position:sticky; top:96px; background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg); padding:22px 22px 24px; box-shadow:var(--shadow-sm); }
.tg-toc .lbl{ font-family:var(--mono); font-size:.64rem; letter-spacing:.13em; text-transform:uppercase; color:var(--red); font-weight:700; }
.tg-toc ol{ list-style:none; counter-reset:toc; margin:14px 0 0; display:flex; flex-direction:column; gap:2px; }
.tg-toc li{ counter-increment:toc; }
.tg-toc a{ display:flex; gap:10px; align-items:baseline; padding:7px 0; font-size:.9rem; line-height:1.4; color:var(--ink-3); border-top:1px solid var(--line); transition:color .16s; }
.tg-toc li:first-child a{ border-top:none; }
.tg-toc a::before{ content:counter(toc) "."; font-family:var(--mono); font-size:.72rem; font-weight:700; color:var(--red); flex-shrink:0; min-width:1.6em; }
.tg-toc a:hover, .tg-toc a.active{ color:var(--red); }
.tg-toc .tg-toc-foot{ margin-top:18px; padding-top:16px; border-top:1px solid var(--line); font-size:.8rem; color:var(--muted); line-height:1.55; }

.tg-main{ min-width:0; }
.tg-chapter{ scroll-margin-top:110px; padding-bottom:clamp(30px,4vw,46px); margin-bottom:clamp(30px,4vw,46px); border-bottom:1px solid var(--line); }
.tg-chapter:last-child{ border-bottom:none; margin-bottom:0; padding-bottom:0; }
.tg-chapter > .kicker{ font-family:var(--mono); font-size:.66rem; letter-spacing:.13em; text-transform:uppercase; color:var(--red); font-weight:700; display:block; margin-bottom:10px; }
.tg-chapter h2{ font-size:clamp(1.5rem,2.4vw,2rem); letter-spacing:-.025em; line-height:1.18; margin:0 0 14px; text-wrap:pretty; }
.tg-chapter h3{ font-size:1.14rem; letter-spacing:-.015em; margin:1.7em 0 .6em; }
.tg-chapter p{ font-size:1.03rem; line-height:1.72; color:var(--ink-3); margin:0 0 1em; max-width:76ch; text-wrap:pretty; }
.tg-chapter p:last-child{ margin-bottom:0; }
.tg-chapter p strong, .tg-chapter li strong{ color:var(--ink); font-weight:600; }
.tg-chapter a.inl{ color:var(--red); font-weight:600; text-decoration:underline; text-decoration-color:var(--red-soft-2); text-underline-offset:3px; }
.tg-chapter a.inl:hover{ text-decoration-color:var(--red); }

ol.tg-num{ list-style:none; counter-reset:tgn; display:flex; flex-direction:column; gap:13px; margin:1.2em 0 1.4em; padding:0; }
ol.tg-num > li{ counter-increment:tgn; position:relative; padding-left:46px; font-size:1.02rem; line-height:1.65; color:var(--ink-3); max-width:76ch; }
ol.tg-num > li::before{ content:counter(tgn) "."; position:absolute; left:0; top:0; font-family:var(--mono); font-size:.86rem; font-weight:700; color:var(--red); min-width:32px; text-align:right; line-height:1.9; }
ul.tg-bul{ list-style:none; display:flex; flex-direction:column; gap:11px; margin:1.1em 0 1.3em; padding:0; }
ul.tg-bul > li{ position:relative; padding-left:26px; font-size:1.02rem; line-height:1.65; color:var(--ink-3); max-width:76ch; }
ul.tg-bul > li::before{ content:""; position:absolute; left:3px; top:.62em; width:7px; height:7px; border-radius:2px; background:var(--red); transform:rotate(45deg); }

.tg-law{ display:flex; flex-wrap:wrap; gap:8px; margin:1.1em 0 1.3em; }
.tg-law a, .tg-law span{ font-family:var(--mono); font-size:.7rem; letter-spacing:.06em; font-weight:700; color:var(--red-ink); background:var(--red-soft); border:1px solid var(--red-soft-2); border-radius:999px; padding:.42em .8em; transition:background .16s, color .16s; }
.tg-law a:hover{ background:var(--red); color:#fff; }

.tg-note{ background:var(--white); border:1px solid var(--red-soft-2); border-left:3px solid var(--red); border-radius:var(--r-lg); padding:20px 24px; margin:1.5em 0; box-shadow:var(--shadow-sm); }
.tg-note .nl{ font-family:var(--mono); font-size:.64rem; letter-spacing:.12em; text-transform:uppercase; color:var(--red); font-weight:700; display:block; margin-bottom:8px; }
.tg-note p{ font-size:.97rem; line-height:1.68; margin:0; color:var(--ink-3); }
.tg-note p + p{ margin-top:.7em; }

.tg-table-wrap{ margin:1.5em 0; border:1px solid var(--line); border-radius:var(--r-lg); overflow:auto; box-shadow:var(--shadow-sm); background:var(--white); }
table.tg-table{ width:100%; border-collapse:collapse; font-size:.95rem; }
table.tg-table caption{ text-align:left; font-family:var(--mono); font-size:.64rem; letter-spacing:.12em; text-transform:uppercase; color:var(--red); font-weight:700; padding:16px 20px 0; }
table.tg-table th, table.tg-table td{ text-align:left; padding:12px 18px; border-top:1px solid var(--line); vertical-align:top; }
table.tg-table thead th{ border-top:none; font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); font-weight:600; background:var(--paper-2); white-space:nowrap; }
table.tg-table tbody th{ font-weight:600; color:var(--ink); }
table.tg-table tbody td{ color:var(--ink-3); }
table.tg-table tbody td b{ color:var(--ink); }
table.tg-table tr:hover td, table.tg-table tr:hover th{ background:var(--paper); }

.tg-steps{ display:grid; gap:12px; margin:1.4em 0; }
.tg-step{ display:flex; gap:16px; align-items:flex-start; background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg); padding:18px 20px; box-shadow:var(--shadow-sm); }
.tg-step .sn{ font-family:var(--mono); font-size:.8rem; font-weight:700; color:#fff; background:var(--red); width:28px; height:28px; border-radius:9px; display:grid; place-items:center; flex-shrink:0; }
.tg-step h4{ font-size1:1rem; font-size:1rem; margin:0 0 4px; letter-spacing:-.01em; }
.tg-step p{ font-size:.93rem; margin:0; line-height:1.6; }

.tg-links{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:10px; margin:1.3em 0 .4em; }
.tg-link{ display:flex; align-items:center; gap:12px; padding:13px 15px; background:var(--white); border:1px solid var(--line); border-radius:12px; font-size:.92rem; font-weight:600; color:var(--ink); box-shadow:var(--shadow-sm); transition:border-color .18s, transform .18s, color .18s; }
.tg-link:hover{ border-color:var(--red); transform:translateY(-2px); color:var(--red-ink); }
.tg-link .k{ font-family:var(--mono); font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; color:var(--red); display:block; font-weight:700; margin-bottom:2px; }
.tg-link svg{ width:16px; height:16px; stroke:var(--red); flex-shrink:0; margin-left:auto; }

@media (max-width:980px){
  .tg-body{ grid-template-columns:1fr; }
  .tg-toc{ position:static; }
  .tg-toc ol{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:0 22px; }
  .tg-toc li:nth-child(n) a{ border-top:1px solid var(--line); }
}

/* ============================================================
   KONTAKTFORMULAR
   ============================================================ */
.contact-grid{ display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(32px,5vw,64px); align-items:start; }
.contact-intro .sec-title{ margin:14px 0 16px; }
.contact-intro .sec-title .serif-accent{ color:var(--red); }
.contact-points{ display:flex; flex-direction:column; gap:12px; margin:22px 0 26px; list-style:none; padding:0; }
.contact-points li{ display:flex; align-items:center; gap:12px; font-size:1rem; color:var(--ink-3); }
.contact-points .cp-ic{ width:26px; height:26px; border-radius:50%; background:var(--red); display:grid; place-items:center; flex-shrink:0; }
.contact-points .cp-ic svg{ width:15px; height:15px; stroke:#fff; }
.contact-lines{ display:flex; flex-direction:column; gap:12px; }
.contact-line{ display:flex; align-items:center; gap:14px; padding:14px 16px; background:#fff; border:1px solid var(--red-soft-2); border-radius:var(--r-lg); transition:border-color .18s, transform .18s; }
.contact-line:hover{ border-color:var(--red); transform:translateY(-2px); }
.contact-line .cl-ic{ width:42px; height:42px; border-radius:11px; background:var(--red); display:grid; place-items:center; flex-shrink:0; }
.contact-line .cl-ic svg{ width:20px; height:20px; stroke:#fff; }
.contact-line b{ display:block; font-size:.98rem; color:var(--ink); }
.contact-line small{ font-size:.82rem; color:var(--muted); }
.contact-form{ background:#fff; border:1px solid var(--red); border-radius:var(--r-xl); padding:clamp(24px,3vw,36px); box-shadow:var(--shadow-md); }
.cf-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
.cf-field{ display:flex; flex-direction:column; gap:7px; margin-bottom:16px; }
.cf-row .cf-field{ margin-bottom:0; }
.cf-field label{ font-size:.82rem; font-weight:600; color:var(--ink); }
.cf-field .req, .cf-note .req, .cf-txt .req{ color:var(--red); }
.cf-field input, .cf-field select, .cf-field textarea{ font:inherit; font-size:.96rem; color:var(--ink); background:#fff; border:1.5px solid var(--line); border-radius:11px; padding:12px 14px; width:100%; transition:border-color .18s, box-shadow .18s; }
.cf-field textarea{ resize:vertical; min-height:120px; }
.cf-field input:focus, .cf-field select:focus, .cf-field textarea:focus{ outline:none; border-color:var(--red); box-shadow:0 0 0 3px var(--red-soft); }
.cf-field input::placeholder, .cf-field textarea::placeholder{ color:var(--muted); }
.cf-field.invalid input, .cf-field.invalid select, .cf-field.invalid textarea{ border-color:var(--red); background:var(--red-soft); }
.cf-check{ display:flex; align-items:flex-start; gap:12px; margin:4px 0 20px; cursor:pointer; font-size:.88rem; color:var(--ink-3); line-height:1.5; position:relative; }
.cf-check input{ position:absolute; opacity:0; width:0; height:0; }
.cf-check .cf-box{ flex-shrink:0; width:22px; height:22px; border-radius:6px; border:1.5px solid var(--line-2); display:grid; place-items:center; margin-top:1px; transition:background .18s, border-color .18s; }
.cf-check .cf-box svg{ width:13px; height:13px; stroke:#fff; opacity:0; transition:opacity .15s; }
.cf-check input:checked + .cf-box{ background:var(--red); border-color:var(--red); }
.cf-check input:checked + .cf-box svg{ opacity:1; }
.cf-check.invalid .cf-box{ border-color:var(--red); background:var(--red-soft); }
.contact-form .btn{ width:100%; justify-content:center; }
.cf-note{ font-size:.8rem; color:var(--muted); margin-top:14px; text-align:center; }
.cf-done{ display:none; text-align:center; padding:8px 0 4px; }
.contact-form.done .cf-done{ display:block; }
.contact-form.done .cf-row, .contact-form.done .cf-field, .contact-form.done .cf-check, .contact-form.done > .btn, .contact-form.done .cf-note{ display:none; }
.cf-done .ic{ width:52px; height:52px; border-radius:50%; background:var(--red); display:grid; place-items:center; margin:0 auto 16px; }
.cf-done .ic svg{ width:26px; height:26px; stroke:#fff; }
.cf-done h3{ font-size:1.2rem; margin:0 0 8px; letter-spacing:-.02em; }
.cf-done p{ font-size:.95rem; color:var(--ink-3); line-height:1.6; margin:0; }
@media (max-width:820px){ .contact-grid{ grid-template-columns:1fr; } }
@media (max-width:560px){ .cf-row{ grid-template-columns:1fr; gap:0; } .cf-row .cf-field{ margin-bottom:16px; } }
