:root {
  color-scheme: light;
  font-family: Inter, system-ui, sans-serif;
  background: #fff1f2;
  color: #1f2937;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  line-height: 1.6;
  min-height: 100vh;
}

.container {
  width: min(1120px, calc(100% - 2rem));
  margin: 0 auto;
}

.site-header {
  background: #b91c1c;
  color: #ffffff;
  padding: 1.5rem 0;
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.brand {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 1rem calc(0.5rem + 0.1mm) 0.5rem;
  border-radius: 0.9rem;
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff;
  text-decoration: none;
}

.logo {
  width: 18rem;
  height: auto;
  display: block;
  transform: translate(0.5mm, 0mm);
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.site-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.nav-separator {
  color: rgba(255, 255, 255, 0.6);
  display: inline-flex;
  align-items: center;
}

.menu-toggle {
  display: none;
  border: none;
  background: transparent;
  color: #ffffff;
  cursor: pointer;
  padding: 0.5rem;
}

.menu-toggle svg {
  width: 1.8rem;
  height: 1.8rem;
}

.site-nav a,
.footer-nav a {
  color: rgba(255, 255, 255, 0.85);
  text-decoration: none;
  font-weight: 500;
}

.site-header.menu-open .site-nav {
  display: flex;
}

.site-nav a:hover {
  color: #ffffff;
}

.footer-nav a:hover {
  color: #fecaca;
}

.hero {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, #b91c1c 0%, #7f1d1d 100%);
  color: #ffffff;
  padding: 4rem 0;
}

.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 400'%3E%3Cg stroke='rgba(255,255,255,0.3)' stroke-width='2' fill='none'%3E%3Cline x1='100' y1='70' x2='240' y2='135'/%3E%3Cline x1='100' y1='70' x2='210' y2='200'/%3E%3Cline x1='240' y1='135' x2='460' y2='95'/%3E%3Cline x1='240' y1='135' x2='500' y2='250'/%3E%3Cline x1='210' y1='200' x2='430' y2='250'/%3E%3Cline x1='430' y1='250' x2='620' y2='175'/%3E%3Cline x1='500' y1='250' x2='690' y2='295'/%3E%3Cline x1='330' y1='50' x2='480' y2='110'/%3E%3Cline x1='550' y1='80' x2='680' y2='130'/%3E%3C/g%3E%3Cg fill='rgba(255,255,255,0.9)'%3E%3Ccircle cx='100' cy='70' r='9'/%3E%3Ccircle cx='240' cy='135' r='9'/%3E%3Ccircle cx='210' cy='200' r='9'/%3E%3Ccircle cx='460' cy='95' r='9'/%3E%3Ccircle cx='500' cy='250' r='9'/%3E%3Ccircle cx='430' cy='250' r='9'/%3E%3Ccircle cx='620' cy='175' r='9'/%3E%3Ccircle cx='690' cy='295' r='9'/%3E%3Ccircle cx='330' cy='50' r='9'/%3E%3Ccircle cx='480' cy='110' r='9'/%3E%3Ccircle cx='550' cy='80' r='9'/%3E%3Ccircle cx='680' cy='130' r='9'/%3E%3C/g%3E%3C/svg%3E");
  background-size: cover;
  background-position: center;
  opacity: 0.32;
  pointer-events: none;
  animation: glow-net 12s ease-in-out infinite alternate;
}

.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 25% 25%, rgba(255, 255, 255, 0.16), transparent 20%),
              radial-gradient(circle at 75% 40%, rgba(255, 255, 255, 0.12), transparent 18%),
              radial-gradient(circle at 55% 75%, rgba(255, 255, 255, 0.1), transparent 22%);
  opacity: 0.7;
  pointer-events: none;
  mix-blend-mode: screen;
  animation: pulse-bg 8s ease-in-out infinite;
}

@keyframes glow-net {
  0% { transform: translate3d(0, 0, 0) scale(1); opacity: 0.30; }
  50% { transform: translate3d(-10px, 5px, 0) scale(1.02); opacity: 0.36; }
  100% { transform: translate3d(10px, -6px, 0) scale(1); opacity: 0.32; }
}

.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 18% 18%, rgba(255,255,255,0.26), transparent 12%),
              radial-gradient(circle at 82% 25%, rgba(255,255,255,0.22), transparent 10%),
              radial-gradient(circle at 52% 72%, rgba(255,255,255,0.14), transparent 14%),
              radial-gradient(circle at 38% 35%, rgba(255,255,255,0.32), transparent 4%),
              radial-gradient(circle at 65% 55%, rgba(255,255,255,0.28), transparent 5%),
              radial-gradient(circle at 45% 15%, rgba(255,255,255,0.20), transparent 4%),
              radial-gradient(circle at 72% 68%, rgba(255,255,255,0.18), transparent 5%);
  opacity: 0.7;
  pointer-events: none;
  mix-blend-mode: screen;
  animation: pulse-bg 8s ease-in-out infinite, float-nodes 14s ease-in-out infinite alternate;
}

@keyframes pulse-bg {
  0%, 100% { opacity: 0.65; }
  50% { opacity: 0.8; }
}

@keyframes float-nodes {
  0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
  50% { transform: translate3d(4px, -4px, 0) scale(1.01); }
}

.hero-content {
  display: grid;
  gap: 1.5rem;
}

.eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: #93c5fd;
  font-size: 0.95rem;
  margin: 0;
}

.hero h1 {
  font-size: clamp(2.5rem, 4vw, 4rem);
  margin: 0;
  line-height: 1.05;
}

.hero p {
  max-width: 50rem;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.95rem 1.5rem;
  border-radius: 0.75rem;
  text-decoration: none;
  font-weight: 600;
}

.btn-primary {
  background: #dc2626;
  color: #ffffff;
}

.btn-secondary {
  background: rgba(255, 255, 255, 0.14);
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.18);
}

.overview {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
  padding: 3rem 0;
}

.overview-item {
  background: #ffffff;
  padding: 1.5rem;
  border-radius: 1rem;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.08);
}

.focus {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 1rem;
  padding-bottom: 4rem;
}

.focus-card {
  background: #ffffff;
  border-radius: 1rem;
  padding: 2rem;
  box-shadow: 0 24px 50px rgba(15, 23, 42, 0.08);
}

.page-content {
  padding: 4rem 0;
}

.partner-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.5rem;
  margin-top: 1rem;
}

.partner-card {
  background: #ffffff;
  border-radius: 1rem;
  padding: 2rem;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.partner-card .partner-logo {
  max-width: 160px;
  max-height: 60px;
  width: auto;
  height: auto;
  object-fit: contain;
}

.partner-card a.partner-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: #b91c1c;
  font-weight: 600;
  text-decoration: none;
  font-size: 0.95rem;
  margin-top: auto;
}

.partner-card a.partner-link:hover {
  text-decoration: underline;
}

.page-header {
  display: grid;
  gap: 1rem;
  margin-bottom: 2rem;
}

.page-header.about-header {
  position: relative;
  overflow: hidden;
  padding: 3rem 2rem;
  border-radius: 1.5rem;
  background: linear-gradient(180deg, rgba(185, 28, 28, 0.95), rgba(127, 29, 29, 0.9));
}

.page-header.about-header::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 400'%3E%3Cg stroke='rgba(255,255,255,0.24)' stroke-width='2' fill='none'%3E%3Cline x1='60' y1='70' x2='210' y2='140'/%3E%3Cline x1='60' y1='70' x2='180' y2='200'/%3E%3Cline x1='210' y1='140' x2='410' y2='90'/%3E%3Cline x1='210' y1='140' x2='470' y2='245'/%3E%3Cline x1='180' y1='200' x2='390' y2='250'/%3E%3Cline x1='390' y1='250' x2='560' y2='170'/%3E%3Cline x1='470' y1='245' x2='660' y2='290'/%3E%3C/g%3E%3Cg fill='rgba(255,255,255,0.8)'%3E%3Ccircle cx='60' cy='70' r='8'/%3E%3Ccircle cx='210' cy='140' r='8'/%3E%3Ccircle cx='180' cy='200' r='8'/%3E%3Ccircle cx='410' cy='90' r='8'/%3E%3Ccircle cx='470' cy='245' r='8'/%3E%3Ccircle cx='390' cy='250' r='8'/%3E%3Ccircle cx='560' cy='170' r='8'/%3E%3Ccircle cx='660' cy='290' r='8'/%3E%3C/g%3E%3C/svg%3E");
  background-size: 130%;
  background-position: center;
  opacity: 0.22;
  pointer-events: none;
}

.page-header.about-header::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 24% 24%, rgba(255, 255, 255, 0.22), transparent 16%),
              radial-gradient(circle at 74% 38%, rgba(255, 255, 255, 0.18), transparent 12%),
              radial-gradient(circle at 52% 70%, rgba(255, 255, 255, 0.14), transparent 16%);
  opacity: 0.76;
  pointer-events: none;
  mix-blend-mode: screen;
  animation: pulse-bg 9s ease-in-out infinite;
}

.page-header.about-header .eyebrow {
  color: #93c5fd;
}

.page-header.about-header p {
  color: rgba(255, 255, 255, 0.95);
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
}

.page-header h1 {
  font-size: clamp(2rem, 3vw, 3rem);
  margin: 0;
  color: #ffffff;
}

.content-block {
  margin-bottom: 2rem;
  background: #ffffff;
  padding: 2rem;
  border-radius: 1rem;
  box-shadow: 0 20px 45px rgba(15, 23, 42, 0.06);
}

.content-block ul {
  margin: 1rem 0 0;
  padding-left: 1.2rem;
}

.values-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  margin-top: 2.5rem;
}

.value-card {
  background: #eef2ff;
  padding: 1.5rem;
  border-radius: 1rem;
}

.service-grid,
.reference-grid,
.career-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(3, 1fr);
}

.service-card,
.reference-card,
.career-card {
  background: #ffffff;
  padding: 1.75rem;
  border-radius: 1rem;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.06);
}

.internal-cta {
  margin-top: 0.4rem;
}

.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  align-items: start;
}

.contact-form {
  display: grid;
  gap: 1rem;
}

.contact-form label {
  font-weight: 600;
}

.contact-form input,
.contact-form textarea {
  width: 100%;
  padding: 1rem;
  border-radius: 0.75rem;
  border: 1px solid #d1d5db;
  background: #f8fafc;
  font: inherit;
}

.contact-form textarea {
  resize: vertical;
}

.contact-form button {
  width: fit-content;
}

.site-footer {
  background: #7f1d1d;
  color: #f8fafc;
  padding: 1.5rem 0;
}

.footer-inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1rem;
}

.footer-nav {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

@media (max-width: 1024px) {
  .service-grid,
  .career-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .contact-grid {
    grid-template-columns: 1fr;
  }

  .partner-grid {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  }
}

@media (max-width: 720px) {
  .site-header {
    padding: 1rem 0;
  }

  .header-inner,
  .footer-inner,
  .focus {
    flex-direction: column;
    align-items: stretch;
  }

  .site-footer {
    padding: 2rem 0;
  }

  .footer-inner {
    gap: 1.25rem;
  }

  .footer-nav {
    gap: 0.85rem 1.2rem;
    align-items: center;
  }

  .focus {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .header-inner {
    gap: 1rem;
  }

  .brand {
    justify-content: flex-start;
    padding: 0.5rem 1rem;
  }

  .logo {
    width: min(11rem, 68vw);
  }

  .menu-toggle {
    display: inline-flex;
    align-self: flex-end;
  }

  .site-nav {
    display: none;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
    width: 100%;
    margin-top: 1rem;
    padding: 1rem;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 1rem;
  }

  .nav-separator {
    display: none;
  }

  .site-header.menu-open .site-nav {
    display: flex;
  }

  .hero {
    padding: 2.25rem 0;
  }

  .hero-content {
    gap: 1rem;
  }

  .hero h1 {
    font-size: clamp(2rem, 8vw, 2.4rem);
  }

  .hero p {
    max-width: 100%;
  }

  .hero-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .btn {
    width: 100%;
  }

  .internal-cta {
    justify-content: center;
  }

  .overview,
  .values-grid,
  .service-grid,
  .reference-grid,
  .career-grid,
  .contact-grid {
    grid-template-columns: 1fr;
  }

  .content-block,
  .focus-card,
  .overview-item,
  .service-card,
  .reference-card,
  .career-card {
    padding: 1.5rem;
  }

  .page-content,
  .overview,
  .page-header,
  .contact-grid {
    padding: 2rem 0;
  }

  .contact-form button {
    width: 100%;
  }
}
