/* ==========================================================================
   Hagmann Consulting — landing page styles
   ========================================================================== */

/* --- Reset --- */
*, *::before, *::after { box-sizing: border-box; }
html, body, h1, h2, h3, p, ul, ol, figure, blockquote { margin: 0; padding: 0; }
body { min-height: 100vh; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }

/* --- Color palette (from logo) --- */
:root {
  --c-deep-navy:  #111c45;
  --c-navy:       #1b2d6e;
  --c-blue:       #3a6bc4;
  --c-cyan:       #4ec5e0;
  --c-midblue:    #5a8ad4;
  --c-text:       #ffffff;
  --c-text-muted: #8fa8d8;
  --c-text-faded: #5a7aa8;

  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

  --max-width: 1080px;
  --pad-x: clamp(20px, 4vw, 40px);
}

/* --- Body / typography --- */
body {
  background: var(--c-deep-navy);
  color: var(--c-text);
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.5;
}

.accent { color: var(--c-cyan); }

/* --- Site nav --- */
.site-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px var(--pad-x);
  border-bottom: 1px solid rgba(78, 197, 224, 0.18);
  max-width: var(--max-width);
  margin: 0 auto;
}

.nav-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  font-size: 15px;
}

.nav-logo {
  width: 56px;
  height: 56px;
  background: white;
  border-radius: 10px;
  padding: 5px;
}

.nav-wordmark {
  height: 52px;
  width: auto;
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 22px;
  font-size: 14px;
}

.nav-links a { color: var(--c-text-muted); transition: color 120ms ease; }
.nav-links a:hover { color: var(--c-text); }

.nav-contact { color: var(--c-cyan) !important; font-weight: 600; }
.nav-contact:hover { color: #7fdef0 !important; }

/* --- Hero --- */
.hero {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: clamp(48px, 10vw, 96px) var(--pad-x) clamp(40px, 8vw, 72px);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.hero-logo-card {
  background: white;
  border-radius: 18px;
  padding: 8px;
  width: 168px;
  height: 168px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 30px rgba(78, 197, 224, 0.32);
  margin-bottom: 28px;
}

.hero-logo-card img { width: 100%; height: 100%; }

.hero-headline {
  font-size: clamp(28px, 4.6vw, 44px);
  font-weight: 800;
  line-height: 1.2;
  max-width: clamp(18ch, 70vw, 44ch);
  margin-bottom: 16px;
  letter-spacing: -0.01em;
}

.hero-subhead {
  font-size: clamp(14px, 1.6vw, 17px);
  color: var(--c-text-muted);
  max-width: 44ch;
}

/* --- Services --- */
.services {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--pad-x) clamp(40px, 6vw, 72px);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.service-card {
  background: rgba(78, 197, 224, 0.07);
  border-top: 3px solid var(--c-cyan);
  border-radius: 6px;
  padding: 22px 22px 26px;
}

.service-card h2 {
  font-size: 17px;
  font-weight: 800;
  margin-bottom: 10px;
}

.service-card p {
  color: var(--c-text-muted);
  font-size: 14px;
  line-height: 1.6;
}

.service-card--cyan    { border-top-color: var(--c-cyan); }
.service-card--cyan h2 { color: var(--c-cyan); }

.service-card--blue    { border-top-color: var(--c-blue); }
.service-card--blue h2 { color: #7ab3e8; }

.service-card--midblue    { border-top-color: var(--c-midblue); }
.service-card--midblue h2 { color: #a0c0f0; }

/* --- CTA --- */
.cta {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: clamp(40px, 6vw, 64px) var(--pad-x);
  text-align: center;
  border-top: 1px solid rgba(78, 197, 224, 0.18);
}

.cta-heading {
  font-size: clamp(20px, 2.6vw, 26px);
  font-weight: 700;
  margin-bottom: 18px;
}

.cta-button {
  display: inline-block;
  background: var(--c-cyan);
  color: var(--c-deep-navy);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.3px;
  padding: 12px 26px;
  border-radius: 4px;
  transition: background 120ms ease, transform 120ms ease;
}

.cta-button:hover { background: #7fdef0; transform: translateY(-1px); }
.cta-button:focus-visible {
  outline: 2px solid var(--c-cyan);
  outline-offset: 3px;
}

/* --- Footer --- */
.site-footer {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 22px var(--pad-x);
  text-align: center;
  color: var(--c-text-faded);
  font-size: 12px;
  border-top: 1px solid rgba(78, 197, 224, 0.10);
}

/* --- Responsive --- */
@media (max-width: 720px) {
  .services { grid-template-columns: 1fr; }

  .nav-links { gap: 14px; font-size: 13px; }
  .nav-logo { width: 34px; height: 34px; padding: 3px; border-radius: 6px; }
  .nav-wordmark { height: 28px; }

  .hero-logo-card { width: 132px; height: 132px; padding: 6px; border-radius: 14px; }
  .hero-headline { max-width: 22ch; }
}

@media (max-width: 420px) {
  .nav-wordmark { height: 22px; }
}
