:root {
  --tes247-primary: #1565d8;
  --tes247-primary-dark: #0f3f8f;
  --tes247-accent: #2f80ed;
  --tes247-bg: #f6f8fc;
  --tes247-surface: #ffffff;
  --tes247-text: #101828;
  --tes247-muted: #667085;
  --tes247-border: #e4e7ec;
  --tes247-success: #12b76a;
  --tes247-warning: #f79009;
  --tes247-danger: #f04438;
  --tes247-radius: 8px;
  --tes247-shadow: 0 10px 28px rgba(16, 24, 40, .08);
}

.tes247-public,
.public-seo-shell {
  background: var(--tes247-bg);
  color: var(--tes247-text);
  text-rendering: optimizeLegibility;
}

.tes247-public *,
.tes247-public *::before,
.tes247-public *::after,
.public-seo-shell *,
.public-seo-shell *::before,
.public-seo-shell *::after {
  box-sizing: border-box;
}

.tes247-public img,
.public-seo-shell img {
  max-width: 100%;
}

.tes247-public .container,
.tes247-public .nav,
.tes247-public .footer-inner,
.tes247-public .wrap {
  width: min(1160px, calc(100% - 32px));
  max-width: 1160px;
}

.tes247-public .site-header,
.tes247-public .topbar {
  background: rgba(255, 255, 255, .96);
  border-bottom: 1px solid var(--tes247-border);
  box-shadow: none;
}

.tes247-public .site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  backdrop-filter: blur(14px);
}

.tes247-public .hero,
.tes247-public .hero-wrap,
.tes247-public .section,
.tes247-public section {
  scroll-margin-top: 88px;
}

.tes247-public .hero h1,
.tes247-public h1 {
  letter-spacing: 0;
}

.tes247-public h2,
.tes247-public h3 {
  letter-spacing: 0;
}

.tes247-public .card,
.tes247-public .panel,
.tes247-public .feature-card,
.tes247-public .program-card,
.tes247-public .service-card,
.tes247-public .info-card,
.tes247-public .faq-item,
.tes247-public .stat-card,
.tes247-public .tool-card,
.tes247-public .contact-card,
.tes247-public .certificate-card,
.tes247-public .certificate-lookup,
.tes247-public .lookup-panel,
.tes247-public .result-card,
.tes247-public .not-found-card,
.tes247-public .legal-card,
.tes247-public .step-card,
.public-seo-shell .verify-card,
.public-seo-shell .number-card,
.public-seo-shell .info-section,
.public-seo-shell .faq-section,
.public-seo-shell .btn-link-card {
  background: var(--tes247-surface);
  border: 1px solid var(--tes247-border);
  border-radius: var(--tes247-radius);
  box-shadow: 0 1px 2px rgba(16, 24, 40, .05);
}

.tes247-public .program-card,
.tes247-public .service-card,
.tes247-public .feature-card,
.tes247-public .tool-card {
  padding: clamp(20px, 3vw, 28px);
}

.tes247-public .program-grid,
.tes247-public .service-grid,
.tes247-public .features-grid,
.tes247-public .cards-grid {
  align-items: stretch;
  gap: clamp(16px, 2vw, 24px);
}

.tes247-public .btn,
.tes247-public button,
.tes247-public input,
.tes247-public textarea,
.tes247-public select,
.public-seo-shell .btn,
.public-seo-shell button,
.public-seo-shell input,
.public-seo-shell textarea,
.public-seo-shell select {
  font: inherit;
}

.tes247-public .btn,
.tes247-public .mobile-menu-trigger,
.tes247-public .mobile-menu-close,
.public-seo-shell .btn {
  min-height: 44px;
  border-radius: var(--tes247-radius);
  font-weight: 700;
}

.tes247-public .btn-primary,
.tes247-public .btn.primary,
.tes247-public .primary,
.public-seo-shell .btn-primary {
  background: var(--tes247-primary);
  border-color: var(--tes247-primary);
  color: #ffffff;
}

.tes247-public .btn-primary:hover,
.tes247-public .btn.primary:hover,
.tes247-public .primary:hover,
.public-seo-shell .btn-primary:hover {
  background: var(--tes247-primary-dark);
  border-color: var(--tes247-primary-dark);
}

.tes247-public .certificate-lookup-form,
.tes247-public .search-form,
.tes247-public .contact-form,
.tes247-public .chat-form {
  gap: 12px;
}

.tes247-public .certificate-lookup-form input,
.tes247-public .certificate-lookup-form select,
.tes247-public .certificate-lookup-form textarea,
.tes247-public .lookup-captcha input,
.tes247-public .contact-form input,
.tes247-public .contact-form textarea,
.tes247-public .chat-form input,
.tes247-public .chat-form textarea,
.public-seo-shell input,
.public-seo-shell textarea,
.public-seo-shell select {
  min-height: 48px;
  border: 1px solid var(--tes247-border);
  border-radius: var(--tes247-radius);
  background: #ffffff;
}

.tes247-public .certificate-lookup-form input:focus,
.tes247-public .lookup-captcha input:focus,
.tes247-public .contact-form input:focus,
.tes247-public .contact-form textarea:focus,
.tes247-public .chat-form input:focus,
.tes247-public .chat-form textarea:focus,
.public-seo-shell input:focus,
.public-seo-shell textarea:focus,
.public-seo-shell select:focus {
  border-color: var(--tes247-primary);
  box-shadow: 0 0 0 3px rgba(21, 101, 216, .14);
  outline: 0;
}

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

.public-seo-shell .verify-page {
  background: var(--tes247-bg);
  min-height: 100vh;
  padding: clamp(24px, 4vw, 48px) 16px;
}

.public-seo-shell .verify-shell,
.public-seo-shell .verify-card {
  max-width: 1060px;
}

.public-seo-shell .verify-card {
  overflow: hidden;
}

.public-seo-shell .verify-hero,
.public-seo-shell .number-card,
.public-seo-shell .info-section,
.public-seo-shell .faq-section {
  border-radius: var(--tes247-radius);
}

@media (max-width: 767px) {
  .tes247-public {
    background: #f7f9fd;
    padding-bottom: env(safe-area-inset-bottom);
  }

  .tes247-public .container,
  .tes247-public .nav,
  .tes247-public .footer-inner,
  .tes247-public .wrap {
    width: min(100% - 24px, 100%);
  }

  .tes247-public .site-header,
  .tes247-public .topbar {
    position: sticky;
    top: 0;
    z-index: 60;
  }

  .tes247-public .hero,
  .tes247-public .section,
  .tes247-public section {
    padding-left: 0;
    padding-right: 0;
  }

  .tes247-public .hero h1,
  .tes247-public h1 {
    font-size: clamp(30px, 9vw, 40px);
    line-height: 1.12;
  }

  .tes247-public h2 {
    font-size: clamp(24px, 7vw, 32px);
    line-height: 1.18;
  }

  .tes247-public .program-grid,
  .tes247-public .service-grid,
  .tes247-public .features-grid,
  .tes247-public .cards-grid {
    grid-template-columns: 1fr !important;
  }

  .tes247-public .program-card,
  .tes247-public .service-card,
  .tes247-public .feature-card,
  .tes247-public .tool-card,
  .tes247-public .panel,
  .tes247-public .card {
    padding: 20px;
  }

  .tes247-public .btn,
  .tes247-public .actions .btn,
  .tes247-public .certificate-lookup-form button,
  .tes247-public .certificate-lookup-form .btn,
  .public-seo-shell .btn {
    width: 100%;
    justify-content: center;
    text-align: center;
  }

  .tes247-public .certificate-lookup-form,
  .tes247-public .lookup-captcha,
  .tes247-public .actions,
  .tes247-public .form-actions {
    display: grid;
    grid-template-columns: 1fr !important;
  }

  .tes247-public .mobile-menu-sheet {
    border-radius: 0 0 var(--tes247-radius) var(--tes247-radius);
    max-height: calc(100vh - 72px);
    overflow: auto;
  }

  .public-seo-shell .verify-page {
    padding: 16px 12px 28px;
  }

  .public-seo-shell .verify-card,
  .public-seo-shell .number-card,
  .public-seo-shell .info-section,
  .public-seo-shell .faq-section {
    border-radius: var(--tes247-radius);
  }
}
