/*
Theme Name: Mission Subvention Child
Theme URI: https://mission-subvention.de
Description: Child Theme für Mission Subvention – DSGVO-konform, keine externen Fonts
Author: VALUEversitas UG (haftungsbeschränkt)
Author URI: https://valueversitas.de
Template: twentytwentyfive
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: mission-subvention-child
*/

/* =========================================================
   CORPORATE DESIGN: Weiß #FFFFFF | Schwarz #1A1A1A | Gelb #F5C800 | Rot #CC0000
   Schrift: System-Stack (kein externer Font-Abruf)
   ========================================================= */

:root {
  --ms-rot:    #CC0000;
  --ms-gelb:   #F5C800;
  --ms-schwarz:#1A1A1A;
  --ms-weiss:  #FFFFFF;
  --ms-grau:   #F4F4F4;
  --ms-grau2:  #E0E0E0;
  --ms-text:   #2C2C2C;
  --ms-font:   -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --ms-font-heading: Georgia, "Times New Roman", serif;
  --ms-radius: 4px;
  --ms-shadow: 0 2px 8px rgba(0,0,0,0.12);
  --ms-transition: all 0.25s ease;
}

/* ---- Reset & Base ---- */
*, *::before, *::after { box-sizing: border-box; }

body {
  font-family: var(--ms-font);
  font-size: 16px;
  line-height: 1.7;
  color: var(--ms-text);
  background: var(--ms-weiss);
  margin: 0;
  padding: 0;
}

/* ---- Typografie ---- */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--ms-font);
  font-weight: 700;
  line-height: 1.25;
  color: var(--ms-schwarz);
  margin-top: 1.5em;
  margin-bottom: 0.5em;
}
h1 { font-size: clamp(1.8rem, 4vw, 2.8rem); }
h2 { font-size: clamp(1.4rem, 3vw, 2.0rem); }
h3 { font-size: clamp(1.2rem, 2.5vw, 1.5rem); }
h4 { font-size: 1.15rem; }

p { margin: 0 0 1.2em; }
a { color: var(--ms-rot); text-decoration: none; transition: var(--ms-transition); }
a:hover { color: #990000; text-decoration: underline; }

strong { font-weight: 700; }
blockquote {
  border-left: 4px solid var(--ms-gelb);
  margin: 1.5em 0;
  padding: 1em 1.5em;
  background: var(--ms-grau);
  font-style: italic;
}

/* ---- Header ---- */
.site-header,
header.wp-block-template-part {
  background: var(--ms-schwarz);
  color: var(--ms-weiss);
  padding: 0;
  position: sticky;
  top: 0;
  z-index: 1000;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}

.ms-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0.6rem 1.5rem;
  gap: 1rem;
}

.site-branding img,
.ms-logo {
  height: 48px;
  width: auto;
  display: block;
}

/* ---- Navigation ---- */
.main-navigation,
nav.wp-block-navigation {
  background: var(--ms-schwarz);
}

.main-navigation ul,
nav.wp-block-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 0;
}

.main-navigation ul li a,
nav.wp-block-navigation a {
  display: block;
  padding: 1rem 1.1rem;
  color: var(--ms-weiss) !important;
  font-weight: 600;
  font-size: 0.92rem;
  letter-spacing: 0.02em;
  transition: var(--ms-transition);
  text-decoration: none !important;
}

.main-navigation ul li a:hover,
nav.wp-block-navigation a:hover,
.main-navigation ul li.current-menu-item > a {
  color: var(--ms-gelb) !important;
  background: rgba(255,255,255,0.07);
}

/* Dropdown */
.main-navigation ul li ul {
  display: none;
  position: absolute;
  background: var(--ms-schwarz);
  min-width: 220px;
  box-shadow: var(--ms-shadow);
  z-index: 200;
  flex-direction: column;
}
.main-navigation ul li:hover > ul { display: flex; }
.main-navigation ul li ul li a { padding: 0.7rem 1.2rem; font-size: 0.88rem; }

/* ---- Hero / Banner ---- */
.ms-hero {
  background: var(--ms-rot);
  color: var(--ms-weiss);
  padding: 4rem 1.5rem;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.ms-hero::before {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 6px;
  background: var(--ms-gelb);
}
.ms-hero h1, .ms-hero h2 {
  color: var(--ms-weiss);
  font-size: clamp(2rem, 5vw, 3.2rem);
  margin: 0 0 0.5em;
  text-shadow: 0 2px 6px rgba(0,0,0,0.25);
}
.ms-hero p {
  font-size: clamp(1rem, 2vw, 1.25rem);
  max-width: 700px;
  margin: 0 auto 1.5em;
  opacity: 0.95;
}

/* ---- Buttons ---- */
.wp-block-button__link,
.ms-btn,
button[type="submit"],
input[type="submit"] {
  display: inline-block;
  background: var(--ms-rot);
  color: var(--ms-weiss) !important;
  padding: 0.8em 2em;
  border-radius: var(--ms-radius);
  font-weight: 700;
  font-size: 1rem;
  border: none;
  cursor: pointer;
  transition: var(--ms-transition);
  text-decoration: none !important;
  line-height: 1.4;
}
.wp-block-button__link:hover,
.ms-btn:hover,
button[type="submit"]:hover,
input[type="submit"]:hover {
  background: #990000;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(204,0,0,0.35);
}

.ms-btn-gelb,
.wp-block-button.is-style-outline .wp-block-button__link {
  background: var(--ms-gelb);
  color: var(--ms-schwarz) !important;
  border: 2px solid var(--ms-gelb);
}
.ms-btn-gelb:hover,
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: #d4ac00;
  border-color: #d4ac00;
}

/* ---- Layout / Container ---- */
.entry-content,
.wp-block-group.alignwide,
.ms-container {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

/* ---- Cards / Förder-Kacheln ---- */
.ms-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
  margin: 2rem 0;
}
.ms-card {
  background: var(--ms-weiss);
  border: 1px solid var(--ms-grau2);
  border-radius: var(--ms-radius);
  padding: 1.5rem;
  box-shadow: var(--ms-shadow);
  transition: var(--ms-transition);
  position: relative;
  overflow: hidden;
}
.ms-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: var(--ms-rot);
}
.ms-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.15);
}
.ms-card h3 { margin-top: 0; color: var(--ms-rot); }
.ms-card p { margin-bottom: 0.5rem; font-size: 0.95rem; }

.ms-card.accent-gelb::before { background: var(--ms-gelb); }
.ms-card.accent-schwarz::before { background: var(--ms-schwarz); }

/* ---- Abschnitte ---- */
.ms-section {
  padding: 4rem 1.5rem;
  max-width: 1200px;
  margin: 0 auto;
}
.ms-section-dark {
  background: var(--ms-schwarz);
  color: var(--ms-weiss);
  padding: 4rem 1.5rem;
}
.ms-section-dark h2, .ms-section-dark h3 { color: var(--ms-gelb); }
.ms-section-dark p { color: #d0d0d0; }

.ms-section-gelb {
  background: var(--ms-gelb);
  padding: 3rem 1.5rem;
}
.ms-section-gelb h2, .ms-section-gelb h3 { color: var(--ms-schwarz); }

.ms-section-rot {
  background: var(--ms-rot);
  color: var(--ms-weiss);
  padding: 3rem 1.5rem;
}
.ms-section-rot h2, .ms-section-rot h3 { color: var(--ms-weiss); }

/* ---- Trennlinie mit Gelb ---- */
.ms-divider {
  height: 4px;
  background: linear-gradient(to right, var(--ms-rot), var(--ms-gelb));
  border: none;
  margin: 2rem 0;
}

/* ---- Tabellen ---- */
table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.5rem 0;
  font-size: 0.95rem;
}
th {
  background: var(--ms-schwarz);
  color: var(--ms-weiss);
  padding: 0.8rem 1rem;
  text-align: left;
  font-weight: 700;
}
td {
  padding: 0.7rem 1rem;
  border-bottom: 1px solid var(--ms-grau2);
}
tr:nth-child(even) td { background: var(--ms-grau); }
tr:hover td { background: #fff3cc; }

/* ---- Formulare ---- */
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea,
.wpcf7-form select {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 2px solid var(--ms-grau2);
  border-radius: var(--ms-radius);
  font-family: var(--ms-font);
  font-size: 1rem;
  transition: var(--ms-transition);
  background: var(--ms-weiss);
}
.wpcf7-form input:focus,
.wpcf7-form textarea:focus {
  outline: none;
  border-color: var(--ms-rot);
  box-shadow: 0 0 0 3px rgba(204,0,0,0.15);
}
.wpcf7-form input[type="submit"] {
  width: auto;
  min-width: 200px;
}

/* ---- Lead Magnet Box ---- */
.ms-lead-box {
  background: linear-gradient(135deg, var(--ms-rot) 0%, #990000 100%);
  color: var(--ms-weiss);
  border-radius: 8px;
  padding: 2.5rem;
  margin: 2.5rem 0;
  text-align: center;
  box-shadow: 0 4px 20px rgba(204,0,0,0.3);
}
.ms-lead-box h3 { color: var(--ms-weiss); margin-top: 0; font-size: 1.5rem; }
.ms-lead-box p { color: rgba(255,255,255,0.9); }
.ms-lead-box .ms-btn { background: var(--ms-gelb); color: var(--ms-schwarz) !important; margin-top: 1rem; }
.ms-lead-box .ms-btn:hover { background: #d4ac00; }

/* ---- Newsletter Box ---- */
.ms-newsletter-box {
  background: var(--ms-schwarz);
  color: var(--ms-weiss);
  border-radius: 8px;
  padding: 2rem;
  margin: 2rem 0;
  border-left: 6px solid var(--ms-gelb);
}
.ms-newsletter-box h3 { color: var(--ms-gelb); margin-top: 0; }
.ms-newsletter-box p { color: #d0d0d0; }

/* ---- Blog / News ---- */
.blog .entry-title a,
.archive .entry-title a { color: var(--ms-rot); }
.blog .entry-title a:hover,
.archive .entry-title a:hover { color: #990000; }

.post-thumbnail img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  border-radius: var(--ms-radius);
}

.ms-news-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2rem;
  margin: 2rem 0;
}
.ms-news-item {
  background: var(--ms-weiss);
  border: 1px solid var(--ms-grau2);
  border-radius: var(--ms-radius);
  overflow: hidden;
  box-shadow: var(--ms-shadow);
  transition: var(--ms-transition);
}
.ms-news-item:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,0.15); }
.ms-news-item-body { padding: 1.2rem; }
.ms-news-item .ms-cat-badge { font-size: 0.78rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ms-rot); }
.ms-news-item h3 { margin: 0.3rem 0 0.5rem; font-size: 1.1rem; }
.ms-news-item h3 a { color: var(--ms-schwarz); }
.ms-news-item h3 a:hover { color: var(--ms-rot); }
.ms-news-item .ms-meta { font-size: 0.82rem; color: #777; }

/* ---- Breadcrumb ---- */
.breadcrumb {
  background: var(--ms-grau);
  padding: 0.6rem 1.5rem;
  font-size: 0.85rem;
  color: #666;
}
.breadcrumb a { color: var(--ms-rot); }

/* ---- Sidebar / Widget ---- */
.widget {
  background: var(--ms-weiss);
  border: 1px solid var(--ms-grau2);
  border-radius: var(--ms-radius);
  padding: 1.2rem;
  margin-bottom: 1.5rem;
}
.widget-title {
  font-size: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--ms-rot);
  margin: 0 0 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--ms-gelb);
}

/* ---- Badge / Label ---- */
.ms-badge {
  display: inline-block;
  background: var(--ms-rot);
  color: var(--ms-weiss);
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.2em 0.7em;
  border-radius: 20px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.ms-badge-gelb { background: var(--ms-gelb); color: var(--ms-schwarz); }
.ms-badge-neu { background: #007700; }

/* ---- Accordion / FAQ ---- */
.ms-faq details {
  border: 1px solid var(--ms-grau2);
  border-radius: var(--ms-radius);
  margin-bottom: 0.5rem;
  overflow: hidden;
}
.ms-faq summary {
  background: var(--ms-grau);
  padding: 1rem 1.2rem;
  font-weight: 600;
  cursor: pointer;
  list-style: none;
  position: relative;
  padding-right: 2.5rem;
}
.ms-faq summary::after {
  content: '+';
  position: absolute;
  right: 1.2rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.4rem;
  color: var(--ms-rot);
}
.ms-faq details[open] summary::after { content: '−'; }
.ms-faq details[open] summary { background: var(--ms-rot); color: var(--ms-weiss); }
.ms-faq .ms-faq-body { padding: 1rem 1.2rem; }

/* ---- Prozess-Schritte ---- */
.ms-steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem;
  margin: 2rem 0;
}
.ms-step {
  text-align: center;
  padding: 1.5rem 1rem;
}
.ms-step-number {
  width: 48px; height: 48px;
  background: var(--ms-rot);
  color: var(--ms-weiss);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.3rem; font-weight: 700;
  margin: 0 auto 1rem;
}
.ms-step h4 { margin: 0 0 0.5rem; font-size: 1rem; }
.ms-step p { font-size: 0.9rem; color: #555; }

/* ---- Statistik-Balken ---- */
.ms-stat {
  text-align: center;
  padding: 1.5rem;
}
.ms-stat-zahl {
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--ms-rot);
  display: block;
  line-height: 1;
}
.ms-stat-label { font-size: 0.9rem; color: #555; }

/* ---- Footer ---- */
.site-footer,
footer.wp-block-template-part {
  background: var(--ms-schwarz);
  color: #ccc;
  padding: 3rem 1.5rem 0;
  margin-top: 4rem;
}

.ms-footer-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 2rem;
  max-width: 1200px;
  margin: 0 auto 2rem;
}

.ms-footer-col h4 {
  color: var(--ms-gelb);
  font-size: 0.95rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0 0 1rem;
  padding-bottom: 0.4rem;
  border-bottom: 1px solid #444;
}

.ms-footer-col ul { list-style: none; margin: 0; padding: 0; }
.ms-footer-col ul li { margin-bottom: 0.4rem; }
.ms-footer-col ul li a { color: #aaa; font-size: 0.9rem; }
.ms-footer-col ul li a:hover { color: var(--ms-gelb); text-decoration: none; }
.ms-footer-col p { font-size: 0.9rem; color: #aaa; line-height: 1.6; }

.ms-footer-logo { height: 40px; width: auto; margin-bottom: 0.8rem; filter: brightness(0) invert(1); }

.ms-footer-bar {
  background: #0d0d0d;
  text-align: center;
  padding: 1rem;
  font-size: 0.82rem;
  color: #666;
  margin: 0 -1.5rem;
}
.ms-footer-bar a { color: #888; }
.ms-footer-bar a:hover { color: var(--ms-gelb); }

/* ---- Cookie Banner (Complianz) ---- */
.cc-nb-main-container { font-family: var(--ms-font) !important; }

/* ---- Responsive ---- */
@media (max-width: 768px) {
  .ms-header-inner { flex-wrap: wrap; }
  .main-navigation ul { flex-wrap: wrap; }
  .main-navigation ul li a { padding: 0.7rem 0.8rem; font-size: 0.88rem; }
  .ms-hero { padding: 2.5rem 1rem; }
  .ms-section { padding: 2.5rem 1rem; }
  .ms-lead-box { padding: 1.5rem; }
  .ms-footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
  .ms-footer-grid { grid-template-columns: 1fr; }
  .ms-steps { grid-template-columns: 1fr; }
}

/* ---- Utility ---- */
.text-center { text-align: center; }
.text-rot { color: var(--ms-rot); }
.text-gelb { color: var(--ms-gelb); }
.bg-rot { background: var(--ms-rot); }
.bg-gelb { background: var(--ms-gelb); }
.bg-dark { background: var(--ms-schwarz); }
.mt-0 { margin-top: 0; }
.mb-0 { margin-bottom: 0; }
.py-3 { padding-top: 3rem; padding-bottom: 3rem; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
