/* ============================= */
/* ========== GLOBAL =========== */
/* ============================= */

*,
*::before,
*::after {
  box-sizing: border-box;
}

:root {
  --color-bg: #030b12;
  --color-surface: #ffffff;
  --color-surface-alt: #f5f7fb;
  --color-primary: #0f75bc;
  --color-primary-dark: #0a609c;
  --color-text: #000;
  --color-text-light: #f9fafb;
  --color-muted: #111827;
  --shadow-soft: 0 18px 45px rgba(15, 23, 42, 0.18);
  --radius-lg: 24px;
  --radius-md: 16px;
  --radius-pill: 8px;
  --transition-fast: 0.2s ease;
}

img {
  max-width: 100%;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}

.container {
  width: 100%;
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 24px;
}

/* ============================= */
/* ========= BUTTONS =========== */
/* ============================= */

.nav-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 22px;
  border-radius: var(--radius-pill);
  font-size: 0.95rem;
  border: none;
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color var(--transition-fast),
    color var(--transition-fast), box-shadow var(--transition-fast),
    transform var(--transition-fast), border-color var(--transition-fast);
}

.nav-btn-outline {
  background: #ffffff;
  color: #111827;
  border-radius: 8px;
  border: 1px solid rgba(15, 23, 42, 0.12);
  box-shadow: 0 10px 25px rgba(15, 23, 42, 0.15);
}

.nav-btn-outline:hover {
  background: #f3f4f6;
  border-color: rgba(15, 23, 42, 0.24);
}

/* ============================= */
/* ========== HEADER =========== */
/* ============================= */

.site-header {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 20;
  padding: 12px 0;
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.logo img {
  height: 42px;
  width: auto;
}

.nav {
  display: flex;
  align-items: center;
  gap: 32px;
}

.nav ul {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 24px;
}

.nav a:not(.nav-cta) {
  font-size: 0.9rem;
  font-weight: 500;
  color: #ffffff;
}

.nav a:hover {
  opacity: 1;
}

.header-cta {
  display: inline-flex;
}

.nav-cta {
  display: none;
}

.nav-toggle {
  display: none;
}

.nav-toggle-label {
  display: none;
  cursor: pointer;
  position: relative;
  z-index: 200;
}

.nav-toggle-label span,
.nav-toggle-label span::before,
.nav-toggle-label span::after {
  display: block;
  width: 22px;
  height: 2px;
  border-radius: 999px;
  background: #ffffff;
  position: relative;
  transition: all var(--transition-fast);
}

.nav-toggle-label span::before,
.nav-toggle-label span::after {
  content: '';
  position: absolute;
  left: 0;
}

.nav-toggle-label span::before {
  top: -6px;
}

.nav-toggle-label span::after {
  bottom: -6px;
}

.nav-toggle:checked + .nav-toggle-label span {
  transform: rotate(45deg);
}

.nav-toggle:checked + .nav-toggle-label span::before {
  top: 0;
  transform: rotate(0deg);
}

.nav-toggle:checked + .nav-toggle-label span::after {
  bottom: 0;
  transform: rotate(90deg);
}

.nav-toggle:checked + .nav-toggle-label {
  position: fixed;
  top: 12px;
  right: 24px;
  z-index: 300;
}

/* Drawer open */
.nav-toggle:checked ~ .nav {
  right: 0;
}


@media (max-width: 900px) and (min-width: 768px) {
  .nav ul {
    gap: 14px;
  }

  .nav a:not(.nav-cta) {
    font-size: 0.78rem;
  }

  .header-inner {
    gap: 12px;
  }

  .logo img {
    height: 32px;
  }

  .btn-outline.header-cta {
    padding: 6px 14px;
    font-size: 0.78rem;
    border-radius: 6px;
  }
}


@media (max-width: 768px) {
  .header-inner {
    padding-top: 4px;
  }

  .nav {
    position: fixed;
    top: 0;
    right: -260px;
    bottom: 0;
    width: 260px;
    background: rgba(15, 23, 42, 0.98);
    flex-direction: column;
    align-items: flex-start;
    padding: 80px 24px 24px;
    gap: 24px;
    transition: right var(--transition-fast);
  }

  .nav ul {
    flex-direction: column;
    gap: 16px;
  }

  .nav-cta {
    display: inline-flex;
  }

  .nav-toggle-label {
    position: absolute;
    top: 12px;
    right: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    z-index: 300;
  }

  .header-cta {
    display: none;
  }

  .nav-toggle:checked ~ .nav {
    right: 0;
  }
}