/* Global Nunito Font Integration */
html, body {
  font-family: "Nunito-Variable", "Nunito-Regular", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
  font-weight: 400;
}

/* Headings use Nunito with strong weights */
h1, h2, h3, h4, h5, h6 {
  font-family: "Nunito-Variable", "Nunito-Regular", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
  font-weight: 700;
  line-height: 1.2;
}

/* Common text elements */
p, .lead, li, a, small, label {
  font-family: "Nunito-Variable", "Nunito-Regular", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
}

/* Form controls and buttons */
input, textarea, select, button, .btn {
  font-family: "Nunito-Variable", "Nunito-Regular", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
}

/* Preserve icon fonts and monospaced contexts */
code, pre, kbd, samp {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important;
}

/* Typography Hierarchy: Main Header, Sub Header, Text */
:root {
  --gi-main-header-size: 2.5rem; /* ~40px */
  --gi-sub-header-size: 1.5rem; /* ~24px */
  --gi-text-size: 1rem;        /* ~16px */
  --gi-main-header-weight: 800;
  --gi-sub-header-weight: 600;
  --gi-text-weight: 400;
}

/* Main Header */
h1,
.page-header h1,
.display-1,
.hero-title,
.section-title-big {
  font-size: var(--gi-main-header-size) !important;
  font-weight: var(--gi-main-header-weight) !important;
  letter-spacing: 0.01em;
}

/* Sub Header */
h2, h3, h4, h5, h6,
.sub-title,
.section-title,
.page-header .sub-title,
.page-header span.d-block {
  font-size: var(--gi-sub-header-size) !important;
  font-weight: var(--gi-sub-header-weight) !important;
  letter-spacing: 0.01em;
}

/* Text */
p, .lead, li, a, small, label,
.breadcrumb, .btn,
input, textarea, select {
  font-size: var(--gi-text-size) !important;
  font-weight: var(--gi-text-weight) !important;
}

/* Normalize theme text utility classes to Text size */
[class^="text-"], [class*=" text-"] {
  font-size: var(--gi-text-size);
  font-weight: var(--gi-text-weight);
}

/* Ensure icon fonts keep their own font-family */
.fa, .fas, .far, .fal, .fab, .fa-solid, .fa-regular {
  font-family: "Font Awesome 6 Free" !important;
}
.simple-line-icons, [class^="icon-"] {
  font-family: simple-line-icons !important;
}

/* Unified Page Header: use About page background and medium height everywhere (homepage excluded by structure) */
.page-header.page-header-modern {
  background-image: url('../img/page-header/page-header-about-us.png') !important;
  background-position: center !important;
  background-size: cover !important;
  padding: 150px 0 !important; /* Match page-header-background-md height */
}

/* Terms Page Enhancements */
.gi-terms-toc {
  position: sticky;
  top: 120px;
  border-radius: 8px;
}
.gi-terms-toc ul li + li { margin-top: 0.5rem; }
.gi-terms-toc a { color: var(--bs-body-color); }
.gi-terms-toc a:hover { color: var(--bs-primary); }

.gi-terms-card {
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.08);
  padding: 1.5rem 1.75rem;
  margin-bottom: 1.25rem;
}

/* Fine-tune page header overlay aesthetics */
.page-header.page-header-modern.overlay.overlay-show.overlay-op-7 .sub-title {
  color: rgba(255,255,255,0.85) !important;
}

/* Fine-tune page header subtitle color over dark overlay */
.page-header .text-4 { color: rgba(255,255,255,0.85); }

/* Sticky table of contents and card styles (shared with Terms, Privacy, Refund) */
.gi-terms-toc { position: sticky; top: 100px; }
.gi-terms-toc .card { border-radius: 8px; }
.gi-terms-toc .card-body { padding: 1.25rem; }
.gi-terms-toc a:hover { text-decoration: underline; }

/* Ensure in-page anchor jumps account for sticky header height on policy pages */
.gi-terms-card {
  scroll-margin-top: 120px;
}

.gi-terms-card { background: #fff; border-radius: 10px; padding: 1.5rem; box-shadow: 0 10px 30px rgba(0,0,0,0.06); margin-bottom: 1.5rem; }
.gi-terms-card i { width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; }

/* Optional: improve anchor offset for sticky header */
.gi-terms-card { scroll-margin-top: 110px; }