html,
body {
  height: 100%;
  margin: 0;
}

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

main {
  flex: 1;
}

:root {
  --corp-blue-900: #062a63;
  --corp-blue-700: #11408c;
  --corp-blue-600: #1f5fbf;
  --corp-red-700: #b0172b;
  --corp-red-600: #cc2237;
  --corp-red-100: #ffe8ec;
  --corp-white: #ffffff;
  --corp-border: #d6e3ff;
  --corp-text-900: #16233d;
  --corp-text-700: #425a80;
  --corp-page-bg: #f6f9ff;
}

body.corp-theme {
  background: linear-gradient(180deg, #eef3ff 0%, #f8fbff 54%, #ffffff 100%);
  color: var(--corp-text-900);
}

.corp-hero {
  background: linear-gradient(
    125deg,
    rgba(6, 42, 99, 0.97) 0%,
    rgba(17, 64, 140, 0.95) 62%,
    rgba(204, 34, 55, 0.93) 100%
  );
  border-bottom: 4px solid var(--corp-red-600);
}

.corp-hero-divider {
  background: var(--corp-page-bg);
}

.corp-section-title {
  color: var(--corp-blue-900);
}

.corp-card {
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  border: 1px solid var(--corp-border);
  box-shadow: 0 10px 22px rgba(10, 42, 98, 0.08);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.corp-card:hover {
  transform: translateY(-6px);
  border-color: #bbcff7;
  box-shadow: 0 16px 30px rgba(10, 42, 98, 0.14);
}

.corp-check {
  color: var(--corp-red-600);
  font-weight: 700;
}

.corp-cta-band {
  background: linear-gradient(
    132deg,
    rgba(6, 42, 99, 0.98) 0%,
    rgba(17, 64, 140, 0.96) 65%,
    rgba(204, 34, 55, 0.93) 100%
  );
  border-top: 4px solid var(--corp-red-600);
}

.corp-btn-primary {
  background: var(--corp-red-600);
  color: var(--corp-white);
  border: 1px solid transparent;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.corp-btn-primary:hover {
  background: var(--corp-red-700);
  transform: translateY(-2px);
  box-shadow: 0 10px 20px rgba(176, 23, 43, 0.26);
}

.corp-btn-secondary {
  background: var(--corp-white);
  color: var(--corp-blue-900);
  transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.corp-btn-secondary:hover {
  background: #f3f7ff;
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(8, 37, 89, 0.18);
}

.corp-btn-outline {
  border: 1px solid rgba(255, 255, 255, 0.65);
  color: var(--corp-white);
  transition: transform 0.2s ease, background-color 0.2s ease;
}

.corp-btn-outline:hover {
  background: rgba(255, 255, 255, 0.14);
  transform: translateY(-2px);
}

.corp-target-box {
  background: rgba(245, 248, 255, 0.92);
  border-left: 4px solid var(--corp-red-600);
}

.corp-target-label {
  color: var(--corp-blue-700);
}

.corp-target-text {
  color: #213b68;
}

.corp-highlight-panel {
  background: linear-gradient(
    132deg,
    rgba(6, 42, 99, 0.97) 0%,
    rgba(17, 64, 140, 0.96) 64%,
    rgba(204, 34, 55, 0.94) 100%
  );
}

.corp-footer,
.footer-pattern {
  background: linear-gradient(
    150deg,
    rgba(7, 29, 68, 1) 0%,
    rgba(10, 47, 107, 1) 58%,
    rgba(159, 24, 47, 1) 100%
  );
  border-top: 4px solid var(--corp-red-600);
}

/* Visibility-safe defaults so text stays readable without utility classes */
.corp-hero h1,
.corp-hero h2,
.corp-hero h3,
.corp-hero h4,
.corp-hero p,
.corp-cta-band h1,
.corp-cta-band h2,
.corp-cta-band h3,
.corp-cta-band h4,
.corp-cta-band p,
.corp-highlight-panel h1,
.corp-highlight-panel h2,
.corp-highlight-panel h3,
.corp-highlight-panel h4,
.corp-highlight-panel p,
.corp-highlight-panel li {
  color: #ffffff;
}

.corp-footer,
.corp-footer p,
.corp-footer a,
.corp-footer span,
.corp-footer li {
  color: #e2e8f0;
}

.corp-footer h1,
.corp-footer h2,
.corp-footer h3,
.corp-footer h4 {
  color: #ffffff;
}

/* Keep button text readable regardless of surrounding section fallback rules */
.corp-btn-primary,
.corp-btn-primary:visited {
  color: #ffffff !important;
}

.corp-btn-secondary,
.corp-btn-secondary:visited {
  color: var(--corp-blue-900) !important;
}

.corp-btn-outline,
.corp-btn-outline:visited {
  color: #ffffff !important;
}
