:root {
  --gj-type-font: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body,
body.gj-public-theme,
body.gj-admin-theme,
body.gj-auth-theme,
body.gj-team-theme {
  font-family: var(--gj-type-font);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

body.gj-admin-theme,
body.gj-team-theme {
  font-size: 14px;
  line-height: 1.6;
}

body.gj-admin-theme p,
body.gj-admin-theme li,
body.gj-admin-theme td,
body.gj-admin-theme .text-muted,
body.gj-admin-theme small,
body.gj-team-theme p,
body.gj-team-theme li,
body.gj-team-theme td,
body.gj-team-theme small,
body.gj-public-theme p,
body.gj-public-theme li,
body .section-head p,
body .topbar p,
body .package-card__meta,
body .card__meta,
body .info-card p,
body .info-card li,
body .site-footer__brand p,
body .site-footer__meta,
body .hero p {
  font-weight: 400 !important;
  line-height: 1.62 !important;
}

body.gj-admin-theme h1,
body.gj-admin-theme h2,
body.gj-admin-theme h3,
body.gj-admin-theme h4,
body.gj-admin-theme h5,
body.gj-admin-theme h6,
body.gj-admin-theme .pc-head-title strong,
body.gj-admin-theme .gj-v2-title,
body.gj-admin-theme .page-title,
body.gj-admin-theme .card-header h5,
body.gj-admin-theme .card-header h4,
body.gj-admin-theme .card-header h3,
body.gj-admin-theme .pc-page-title,
body.gj-team-theme h1,
body.gj-team-theme h2,
body.gj-team-theme h3,
body.gj-team-theme h4,
body.gj-team-theme h5,
body.gj-team-theme h6,
body.gj-team-theme .pc-head-title strong,
body.gj-team-theme .ts-card-title,
body.gj-team-theme .ts-section-title,
body.gj-team-theme .ts-title-sm,
body .hero h1,
body .section-head h2,
body .topbar h2,
body .package-card__title,
body .card__title,
body .info-card h3 {
  font-family: var(--gj-type-font);
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.18 !important;
}

body.gj-admin-theme h1,
body.gj-admin-theme .gj-v2-title,
body.gj-admin-theme .page-title,
body.gj-admin-theme .pc-page-title,
body.gj-team-theme h1,
body .hero h1 {
  letter-spacing: -0.03em !important;
  line-height: 1.08 !important;
}

body.gj-admin-theme h1 {
  font-size: clamp(22px, 2vw, 26px) !important;
}

body.gj-admin-theme h2,
body.gj-team-theme h2 {
  font-size: clamp(26px, 2.3vw, 30px) !important;
}

body.gj-admin-theme h3,
body.gj-admin-theme h4,
body.gj-admin-theme .card-header h5,
body.gj-team-theme .ts-card-title,
body.gj-team-theme .ts-section-title {
  font-size: clamp(15px, 1.2vw, 18px) !important;
}

body.gj-admin-theme .pc-navbar .pc-link,
body.gj-admin-theme .pc-navbar .pc-mtext,
body.gj-admin-theme .pc-caption label,
body.gj-admin-theme .header-user-profile .user-name,
body.gj-team-theme .pc-navbar .pc-link,
body.gj-team-theme .pc-navbar .pc-mtext,
body.gj-team-theme .pc-caption label,
body.gj-team-theme .header-user-profile .user-name,
body .site-header .nav a,
body .site-header .brand,
body .btn,
body button,
body [role="button"],
body .card-link,
body .filter-btn,
body .pill-link,
body .site-footer__nav a {
  font-weight: 500 !important;
  letter-spacing: 0 !important;
}

body.gj-admin-theme .pc-caption label,
body.gj-team-theme .pc-caption label {
  letter-spacing: 0.1em !important;
  text-transform: uppercase;
}

body.gj-admin-theme .btn,
body.gj-admin-theme button,
body.gj-admin-theme [role="button"],
body.gj-team-theme .btn,
body.gj-team-theme button,
body.gj-team-theme [role="button"],
body.gj-team-theme .ts-btn {
  font-family: var(--gj-type-font);
  font-weight: 500 !important;
  letter-spacing: 0 !important;
}

body.gj-admin-theme .badge,
body.gj-admin-theme [class*="badge"],
body.gj-team-theme .badge,
body.gj-team-theme [class*="badge"],
body.gj-team-theme .ts-badge {
  font-weight: 500 !important;
  letter-spacing: 0 !important;
}

body.gj-admin-theme .form-label,
body.gj-admin-theme label,
body.gj-admin-theme .table > thead > tr > th,
body.gj-admin-theme thead th,
body.gj-admin-theme .gj-v2-label,
body.gj-admin-theme .gj-v2-kpi-label,
body.gj-admin-theme .gj-booking-payment-kpi span,
body.gj-admin-theme .gj-booking-payment-overview-card span,
body.gj-admin-theme .gj-promo-form-card h6,
body.gj-admin-theme .gj-itinerary-form .form-label,
body.gj-team-theme .form-label,
body.gj-team-theme label,
body.gj-team-theme thead th,
body.gj-team-theme .ts-kpi .ts-kpi-label,
body thead th,
body .form-label,
body label {
  font-weight: 500 !important;
}

body.gj-admin-theme .table > thead > tr > th,
body.gj-admin-theme thead th {
  font-size: 12px !important;
  letter-spacing: 0.09em !important;
}

body.gj-admin-theme .table > tbody > tr > td,
body.gj-team-theme .table > tbody > tr > td,
body.gj-team-theme .ts-card-body,
body.gj-team-theme .ts-meta-tight,
body tbody td {
  font-size: 14px !important;
  font-weight: 400 !important;
}

body.gj-admin-theme [class*="kpi-value"],
body.gj-admin-theme [class*="metric-value"],
body.gj-admin-theme .gj-v2-metric-value,
body.gj-admin-theme .gj-booking-payment-overview-card strong,
body.gj-admin-theme .gj-booking-payment-kpi strong,
body.gj-admin-theme .gj-promo-price,
body.gj-team-theme .ts-kpi .ts-kpi-value,
body .package-card__price strong,
body .price strong,
body .price del {
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.1 !important;
}

body.gj-admin-theme .gj-booking-payment-kpi span,
body.gj-admin-theme .gj-booking-payment-overview-card span,
body.gj-team-theme .ts-kpi .ts-kpi-label,
body .package-card__category,
body .card__category,
body .hero__badge,
body .hero__brand span,
body .package-card__price small,
body .price small {
  letter-spacing: 0.1em !important;
}

body .package-card__category,
body .card__category,
body .hero__badge,
body .hero__brand span,
body .package-card__price small,
body .price small {
  font-weight: 500 !important;
}

body.gj-public-theme {
  font-size: 16px;
  line-height: 1.62;
}

body.gj-public-theme .brand,
body.gj-public-theme .nav a,
body.gj-public-theme .btn,
body.gj-public-theme .card-link,
body.gj-public-theme .filter-btn,
body.gj-public-theme .pill-link,
body.gj-public-theme .site-footer__nav a {
  font-family: var(--gj-type-font);
}

body.gj-public-theme .brand,
body.gj-public-theme .nav a,
body.gj-public-theme .btn,
body.gj-public-theme .card-link,
body.gj-public-theme .filter-btn,
body.gj-public-theme .pill-link,
body.gj-public-theme .site-footer__nav a {
  font-weight: 500 !important;
  letter-spacing: 0 !important;
}

body.gj-public-theme .hero h1,
body .hero h1 {
  font-weight: 600 !important;
  letter-spacing: -0.03em !important;
  line-height: 1.08 !important;
  font-size: clamp(60px, 5vw, 64px) !important;
}

body.gj-public-theme .section-head h2,
body.gj-public-theme .topbar h2,
body .section-head h2,
body .topbar h2 {
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.18 !important;
  font-size: clamp(32px, 3vw, 36px) !important;
}

body.gj-public-theme .package-card__title,
body.gj-public-theme .card__title,
body.gj-public-theme .info-card h3,
body .package-card__title,
body .card__title,
body .info-card h3 {
  font-weight: 600 !important;
  line-height: 1.3 !important;
}

body.gj-public-theme .package-card__title,
body.gj-public-theme .card__title,
body .package-card__title,
body .card__title {
  font-size: clamp(18px, 1.8vw, 20px) !important;
}

body.gj-public-theme .section-head p,
body.gj-public-theme .topbar p,
body.gj-public-theme .package-card__meta,
body.gj-public-theme .card__meta,
body.gj-public-theme .info-card p,
body.gj-public-theme .info-card li,
body.gj-public-theme .site-footer__brand p,
body.gj-public-theme .site-footer__meta,
body.gj-public-theme .hero p {
  font-weight: 400 !important;
  line-height: 1.62 !important;
}

body.gj-public-theme .nav-toggle,
body .nav-toggle {
  font-weight: 500;
}

@media (max-width: 767.98px) {
  body.gj-public-theme .hero h1,
  body .hero h1 {
    font-size: clamp(38px, 10vw, 42px) !important;
  }

  body.gj-admin-theme h1,
  body.gj-team-theme h1 {
    font-size: 22px !important;
  }

  body.gj-admin-theme h2,
  body.gj-team-theme h2 {
    font-size: 26px !important;
  }
}
