/* ============================================================
   GLOBAL — Reset + Base Utilities
   No color or font values here. Theme-specific tokens are in theme.css.
   ============================================================ */

/* Font sizes and spacing used by older cs- components */
:root {
  --topperFontSize:  clamp(0.8125rem, 1.6vw, 1rem);
  --headerFontSize:  clamp(1.9375rem, 3.9vw, 3.0625rem);
  --bodyFontSize:    1rem;
  --sectionPadding:  clamp(3.75rem, 7.82vw, 6.25rem) 1rem;
}

/* Reset */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* cs- typography classes (retained for backward compat with older page sections) */
.cs-topper {
  font-size: var(--topperFontSize);
  line-height: 1.2em;
  text-transform: uppercase;
  text-align: inherit;
  letter-spacing: 0.1em;
  font-weight: 700;
  color: var(--gs-red);
  margin-bottom: 0.25rem;
  display: block;
}

.cs-title {
  font-size: var(--headerFontSize);
  font-weight: 900;
  line-height: 1.2em;
  text-align: inherit;
  max-width: 43.75rem;
  margin: 0 0 1rem 0;
  color: var(--gs-dark);
  position: relative;
}

.cs-text {
  font-size: var(--bodyFontSize);
  line-height: 1.5em;
  text-align: inherit;
  width: 100%;
  max-width: 40.625rem;
  margin: 0;
  color: var(--gs-text-light);
}

/* Utility: visually hide but keep accessible */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* JS-controlled visibility utilities */
.is-visible { display: flex !important; }
.is-hidden  { display: none !important; }
