:root {
  --primary: oklch(0.49 0.19 270);
  --primary-hover: oklch(0.42 0.17 270);
  --secondary: oklch(0.96 0.035 270);
  --accent: oklch(0.62 0.16 270);
  --bg-mesh-1: oklch(0.97 0.025 270 / 0.55);
  --bg-mesh-2: oklch(0.98 0.02 210 / 0.35);
  --text-main: oklch(0.22 0.02 250);
  --text-muted: oklch(0.43 0.02 250);
  --divider: oklch(0.92 0.01 250);
  --shadow-card:
    0 0 0 1px oklch(0 0 0 / 0.055),
    0 2px 4px -2px oklch(0 0 0 / 0.08),
    0 16px 32px -16px oklch(0 0 0 / 0.12);
  --shadow-card-hover:
    0 0 0 1px oklch(0 0 0 / 0.075),
    0 4px 8px -4px oklch(0 0 0 / 0.08),
    0 24px 42px -18px oklch(0 0 0 / 0.16);
}

.theme-hms {
  --primary: oklch(0.46 0.2 295);
  --primary-hover: oklch(0.4 0.18 295);
  --secondary: oklch(0.96 0.035 295);
  --accent: oklch(0.61 0.17 295);
  --bg-mesh-1: oklch(0.97 0.025 295 / 0.55);
}

.theme-consultation {
  --primary: oklch(0.43 0.08 195);
  --primary-hover: oklch(0.37 0.07 195);
  --secondary: oklch(0.96 0.025 195);
  --accent: oklch(0.6 0.08 195);
  --bg-mesh-1: oklch(0.97 0.02 195 / 0.55);
}

.theme-training {
  --primary: oklch(0.43 0.13 145);
  --primary-hover: oklch(0.37 0.115 145);
  --secondary: oklch(0.96 0.035 145);
  --accent: oklch(0.6 0.13 145);
  --bg-mesh-1: oklch(0.97 0.025 145 / 0.55);
}

.theme-robotic {
  --primary: oklch(0.49 0.18 255);
  --primary-hover: oklch(0.42 0.16 255);
  --secondary: oklch(0.96 0.03 255);
  --accent: oklch(0.62 0.15 255);
  --bg-mesh-1: oklch(0.97 0.025 255 / 0.55);
}

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body.modern-page {
  color: var(--text-main);
  background-color: oklch(1 0 0);
  background-image:
    radial-gradient(circle at 8% 14%, var(--bg-mesh-1) 0%, transparent 34%),
    radial-gradient(circle at 92% 76%, var(--bg-mesh-2) 0%, transparent 42%);
  background-attachment: fixed;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 1rem;
  line-height: 1.6;
}

.modern-page h1,
.modern-page h2,
.modern-page h3,
.modern-page h4,
.modern-page h5,
.modern-page h6 {
  color: var(--text-main);
  font-family: "Sora", sans-serif;
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.15;
  text-wrap: balance;
}

.modern-page p {
  text-wrap: pretty;
}

.modern-page a {
  text-underline-position: from-font;
  text-decoration-thickness: from-font;
}

.site-header {
  min-height: 76px;
  border-bottom: 1px solid var(--divider);
}

.brand-link,
.social-link {
  min-width: 44px;
  min-height: 44px;
}

.nav-link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: var(--text-main);
  font-weight: 600;
}

.nav-link:hover,
.nav-link:focus {
  color: var(--primary);
}

.modern-page .btn {
  min-height: 44px;
  border-radius: 12px;
  padding: 0.75rem 1.65rem;
  font-weight: 700;
  font-size: 0.95rem;
  user-select: none;
  transition-property: transform, background-color, border-color, box-shadow, color;
  transition-duration: 180ms;
  transition-timing-function: cubic-bezier(0.2, 0.8, 0.2, 1);
}

.modern-page .btn:active {
  transform: scale(0.96);
}

.modern-page .btn-primary,
.nav-link.btn-cta {
  color: white;
  background-color: var(--primary);
  border-color: var(--primary);
}

.modern-page .btn-primary:hover,
.modern-page .btn-primary:focus,
.nav-link.btn-cta:hover,
.nav-link.btn-cta:focus {
  color: white;
  background-color: var(--primary-hover);
  border-color: var(--primary-hover);
  box-shadow: 0 6px 18px oklch(0 0 0 / 0.12);
}

.modern-page .btn-outline-primary {
  color: var(--primary);
  background: transparent;
  border-color: var(--primary);
}

.modern-page .btn-outline-primary:hover,
.modern-page .btn-outline-primary:focus {
  color: white;
  background: var(--primary);
  border-color: var(--primary);
}

.page-section {
  padding-block: 5.625rem;
}

.hero-section {
  padding-block: 5.25rem 6rem;
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  margin-bottom: 1.25rem;
  padding: 0.35rem 0.85rem;
  border-radius: 999px;
  color: var(--primary);
  background: var(--secondary);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.075em;
  line-height: 1.2;
  text-transform: uppercase;
  white-space: nowrap;
}

.hero-title {
  max-width: 15ch;
  margin-bottom: 1.5rem;
  font-size: clamp(2.65rem, 5.2vw, 4.65rem);
  font-weight: 800;
  line-height: 1.06 !important;
}

.hero-title .accent-text,
.accent-text {
  color: var(--primary);
}

.hero-copy,
.section-copy {
  max-width: 65ch;
  color: var(--text-muted);
  font-size: 1.1rem;
  line-height: 1.65;
}

.platform-list,
.trust-list {
  color: var(--text-muted);
  font-weight: 600;
}

.platform-list span,
.trust-list span {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
}

.hero-media,
.detail-media {
  padding: 12px;
  border-radius: 32px;
  background: var(--secondary);
  box-shadow: var(--shadow-card);
}

.hero-media img,
.detail-media img {
  width: 100%;
  border-radius: 20px;
  outline: 1px solid oklch(0 0 0 / 0.1);
  outline-offset: -1px;
}

.hero-media img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.hero-media.contain img,
.detail-media.contain img {
  object-fit: contain;
  background: white;
}

.section-heading {
  margin-bottom: 1rem;
  font-size: clamp(2rem, 3.4vw, 3rem);
  font-weight: 800;
}

.section-intro {
  max-width: 650px;
  margin: 0 auto 3.25rem;
  color: var(--text-muted);
  font-size: 1.1rem;
  line-height: 1.65;
}

.feature-card,
.process-card {
  height: 100%;
  padding: 2rem;
  border-radius: 24px;
  background: oklch(1 0 0 / 0.82);
  box-shadow: var(--shadow-card);
  transition-property: transform, box-shadow;
  transition-duration: 240ms;
  transition-timing-function: cubic-bezier(0.2, 0.8, 0.2, 1);
}

.feature-card:hover,
.process-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-card-hover);
}

.feature-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  margin-bottom: 1.5rem;
  border-radius: 16px;
  color: var(--primary);
  background: var(--secondary);
  font-size: 1.35rem;
}

.feature-card h3,
.process-card h3 {
  margin-bottom: 0.75rem;
  font-size: 1.25rem;
}

.feature-card p,
.process-card p {
  margin-bottom: 0;
  color: var(--text-muted);
}

.check-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.check-list li {
  display: flex;
  gap: 0.85rem;
  margin-bottom: 1rem;
  color: var(--text-muted);
}

.check-list i {
  flex: 0 0 auto;
  margin-top: 0.3rem;
  color: var(--primary);
}

.process-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin-bottom: 1.25rem;
  border-radius: 12px;
  color: white;
  background: var(--primary);
  font-family: "Sora", sans-serif;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

.trust-strip {
  padding-block: 1.75rem;
  border-top: 1px solid var(--divider);
  border-bottom: 1px solid var(--divider);
}

.trust-strip p {
  margin: 0;
  color: var(--text-muted);
  font-weight: 700;
}

.cta-panel {
  padding: clamp(2.25rem, 6vw, 4.5rem);
  border-radius: 32px;
  text-align: center;
  background: linear-gradient(135deg, var(--secondary), oklch(0.99 0.008 250));
  box-shadow: var(--shadow-card);
}

.cta-panel p {
  max-width: 650px;
  margin-inline: auto;
  color: var(--text-muted);
  font-size: 1.1rem;
}

.site-footer {
  border-top: 1px solid var(--divider);
}

.social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--text-muted);
  font-size: 1.25rem;
  transition-property: color, transform;
  transition-duration: 180ms;
  transition-timing-function: ease-out;
}

.social-link:hover,
.social-link:focus {
  color: var(--primary);
  transform: translateY(-2px);
}

.modern-page .modal-content {
  overflow: hidden;
  border: 0;
  border-radius: 24px;
  box-shadow: 0 24px 60px -18px oklch(0 0 0 / 0.3);
}

.modern-page .modal-header,
.modern-page .modal-footer {
  padding: 1.5rem 2rem;
  border-color: var(--divider);
}

.modern-page .modal-body {
  padding: 2rem;
}

.modern-page .form-control,
.modern-page .form-select {
  min-height: 54px;
  border: 1px solid var(--divider);
  border-radius: 12px;
  font-size: 0.95rem;
}

.modern-page .form-control:focus,
.modern-page .form-select:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 4px color-mix(in oklch, var(--primary) 12%, transparent);
}

@media (max-width: 767.98px) {
  .hero-section > .order-lg-2 {
    order: 2 !important;
  }

  .hero-section > .order-lg-1 {
    order: 1 !important;
  }

  .site-header {
    min-height: 68px;
  }

  .site-header .nav-secondary {
    display: none;
  }

  .hero-section,
  .page-section {
    padding-block: 4rem;
  }

  .hero-title {
    max-width: 18ch;
    font-size: clamp(2.35rem, 12vw, 3.45rem);
  }

  .hero-media,
  .detail-media {
    border-radius: 24px;
  }

  .hero-media img,
  .detail-media img {
    border-radius: 12px;
  }

  .feature-card,
  .process-card {
    padding: 1.5rem;
  }

  .modern-page .form-control,
  .modern-page .form-select {
    font-size: 1rem;
  }

  .site-footer {
    text-align: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .modern-page .btn,
  .feature-card,
  .process-card,
  .social-link {
    transition-duration: 0.01ms;
  }
}
