:root {
  --bg: #f7faf5;
  --bg-subtle: #ebf7f0;
  --bg-secondary: #ebf7f0;
  --bg-card: #ffffff;
  --bg-card-hover: #f3faef;
  --border: #d0e7d9;
  --border-hover: #c9e1bd;
  --text: #153326;
  --text-muted: #4c5b53;
  --text-dim: #6b776f;
  --text-secondary: #5c6a62;
  --accent: #244c3b;
  --accent-dark: #153326;
  --accent-mid: #a5c7b1;
  --accent-soft: rgba(208, 231, 217, 0.45);
  --glow: rgba(208, 231, 217, 0.6);
  --glow-soft: rgba(208, 231, 217, 0.35);
  --surface-light: #ebf7f0;
  --surface-warm: #d0e7d9;
  --surface-border: #c9e1bd;
  --nav-bg: rgba(247, 250, 245, 0.9);
  --card-shadow: 0 10px 32px rgba(21, 51, 38, 0.08);
  --footer-bg: #ebf7f0;
  --footer-border: #c9e1bd;
  --footer-pill: #ffffff;
  --cta-bg: #f3ffaf;
  --cta-bg-hover: #d9e699;
  --cta-text: #153326;
}

[data-theme="dark"] {
  --bg: #153326;
  --bg-subtle: #1d3b2f;
  --bg-secondary: #1d3b2f;
  --bg-card: #244c3b;
  --bg-card-hover: #2b5744;
  --border: #3b624d;
  --border-hover: #4d755f;
  --text: #f7fbf5;
  --text-muted: #d0e7d9;
  --text-dim: #a5c7b1;
  --text-secondary: #c9e1bd;
  --accent: #f3ffaf;
  --accent-dark: #d9e699;
  --accent-mid: #a5c7b1;
  --accent-soft: rgba(243, 255, 175, 0.14);
  --glow: rgba(243, 255, 175, 0.18);
  --glow-soft: rgba(208, 231, 217, 0.14);
  --surface-light: #1d3b2f;
  --surface-warm: #244c3b;
  --surface-border: #3b624d;
  --nav-bg: rgba(21, 51, 38, 0.92);
  --card-shadow: 0 14px 36px rgba(0, 0, 0, 0.22);
  --footer-bg: #1d3b2f;
  --footer-border: #3b624d;
  --footer-pill: #244c3b;
  --cta-bg: #f3ffaf;
  --cta-bg-hover: #d9e699;
  --cta-text: #153326;
}

body {
  color: var(--text);
  background: var(--bg);
}

a {
  color: var(--accent);
}

.btn-primary,
.nav-cta,
.nav-cta a,
.contact-form button,
.cta-section .btn-primary,
.eu-cookie-compliance-buttons .btn-primary,
.eu-cookie-compliance-save-preferences-button.btn-primary,
.agree-button.btn-primary,
#afp-toggle-cookie-settings-btn.btn-primary {
  background: var(--cta-bg) !important;
  color: var(--cta-text) !important;
  box-shadow: 0 8px 24px rgba(21, 51, 38, 0.08);
}

.btn-primary:hover,
.nav-cta:hover,
.nav-cta a:hover,
.contact-form button:hover,
.cta-section .btn-primary:hover,
.eu-cookie-compliance-buttons .btn-primary:hover,
.eu-cookie-compliance-save-preferences-button.btn-primary:hover,
.agree-button.btn-primary:hover,
#afp-toggle-cookie-settings-btn.btn-primary:hover {
  background: var(--cta-bg-hover) !important;
  color: var(--cta-text) !important;
}

[data-theme="dark"] .btn-primary,
[data-theme="dark"] .nav-cta,
[data-theme="dark"] .nav-cta a,
[data-theme="dark"] .contact-form button,
[data-theme="dark"] .cta-section .btn-primary {
  color: var(--cta-text) !important;
}

.nav-cta svg,
.btn-primary svg,
.contact-form button svg {
  stroke: currentColor;
}

.hero-illustration,
.arch-box,
.feature-card,
.app-card,
.pub-card,
.education-card,
.problem-card,
.engagement-card,
.contact-form,
.resource-card,
.paper-card,
.book-sidebar,
.book-card {
  box-shadow: var(--card-shadow);
}

.contact-info {
  box-shadow: none !important;
  background: transparent !important;
}

.cta-section {
  background: linear-gradient(135deg, #d0e7d9 0%, #e6f1e8 58%, #eef7c9 100%) !important;
  color: var(--cta-text) !important;
}

.cta-section::before {
  background: radial-gradient(circle at 78% 32%, rgba(243, 255, 175, 0.38) 0%, rgba(243, 255, 175, 0.12) 26%, transparent 56%) !important;
  opacity: 0.9;
}

.cta-section h2 {
  color: var(--cta-text) !important;
  text-shadow: none !important;
}

.cta-section p {
  color: rgba(21, 51, 38, 0.72) !important;
}

.cta-section .btn-ghost {
  color: var(--cta-text) !important;
  border-color: rgba(21, 51, 38, 0.18) !important;
  background: rgba(255, 255, 255, 0.22) !important;
}

.cta-section .btn-ghost:hover {
  color: var(--cta-text) !important;
  border-color: rgba(21, 51, 38, 0.32) !important;
  background: rgba(255, 255, 255, 0.42) !important;
}

[data-theme="dark"] .cta-section {
  background: linear-gradient(135deg, #1d3b2f 0%, #244c3b 56%, #5f7441 100%) !important;
  color: var(--text) !important;
}

[data-theme="dark"] .cta-section::before {
  background: radial-gradient(circle at 78% 32%, rgba(243, 255, 175, 0.18) 0%, rgba(243, 255, 175, 0.06) 28%, transparent 56%) !important;
}

[data-theme="dark"] .cta-section h2 {
  color: var(--text) !important;
}

[data-theme="dark"] .cta-section p {
  color: rgba(247, 251, 245, 0.78) !important;
}

[data-theme="dark"] .cta-section .btn-ghost {
  color: var(--text) !important;
  border-color: rgba(247, 251, 245, 0.22) !important;
  background: rgba(255, 255, 255, 0.06) !important;
}

[data-theme="dark"] .cta-section .btn-ghost:hover {
  color: var(--text) !important;
  border-color: rgba(247, 251, 245, 0.36) !important;
  background: rgba(255, 255, 255, 0.12) !important;
}

.modern-footer {
  background: var(--footer-bg) !important;
  border-top-color: var(--footer-border) !important;
}

.modern-footer .footer-mark {
  background: linear-gradient(135deg, #d0e7d9, #f3ffaf) !important;
  color: var(--cta-text) !important;
}

.modern-footer .footer-contact-icon,
.footer-contact-icon {
  border-color: var(--footer-border) !important;
  background: rgba(208, 231, 217, 0.45) !important;
  color: var(--text) !important;
}

.nav-links.open {
  background: rgba(247, 250, 245, 0.97) !important;
  border-bottom-color: var(--border) !important;
}

[data-theme="dark"] .nav-links.open {
  background: rgba(21, 51, 38, 0.97) !important;
}
