/*!*****************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[3]!./src/app/globals.css ***!
  \*****************************************************************************************************************************************************************************************************************************************************************/
:root {
  /* Colors — primary palette adopted from ES-DS-001 §3.1.2 (violet scale).
     Everything else in that spec is NOT applied (typography, spacing, radii,
     tap targets, modal orchestration, etc.) — colors only. */
  --color-primary: #8E54F6;      /* violet.500 — primary CTA bg */
  --color-primary-dark: #7A3EEB; /* violet.600 — primary CTA hover */
  --color-primary-gradient: linear-gradient(135deg, #8E54F6 0%, #7A3EEB 100%);
  /* RGB triplets for rgba(var(...), alpha) usage — stay in sync with hex vars above */
  --color-primary-rgb: 142, 84, 246;
  --color-primary-dark-rgb: 122, 62, 235;
  --color-error-rgb: 198, 40, 57;
  --color-cta-red: #E53935; /* itsme brand red — NOT for error states, use --color-error */
  --color-error: #C62839;   /* form validation, destructive actions */
  --color-header-bg: #1A1A1A;
  --color-header-text: #FFFFFF;
  --color-text-primary: #111111;
  --color-text-secondary: #666666;
  --color-text-muted: #767676;
  --color-border: #E0E0E0;
  --color-border-light: #F0F0F0;
  --color-bg-white: #FFFFFF;
  --color-bg-light: #FAFAFA;
  --color-bg-gradient-bottom: linear-gradient(180deg, rgba(var(--color-primary-rgb), 0.05) 0%, rgba(var(--color-primary-rgb), 0.15) 100%);
  --color-link: #6530C9; /* violet.700 — brand text links */

  /* Spacing — 4px base grid */
  --space-xs: 4px;
  --space-sm: 8px;
  --space-md: 16px;
  --space-lg: 24px;
  --space-xl: 32px;
  --space-2xl: 48px;
  --space-3xl: 64px;

  /* Border radius */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 24px;
  --radius-full: 9999px;

  /* Font sizes — mobile first */
  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.25rem;
  --text-2xl: 1.5rem;
  --text-3xl: 2rem;

  /* Shadows */
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.1);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.15);
  --shadow-modal: 0 -4px 24px rgba(0, 0, 0, 0.12);

  /* ── Color-only palette tokens from ES-DS-001 §3.1 ───────────── */
  /* Violet scale */
  --es-violet-50: #F5F0FF;
  --es-violet-100: #EBDDFF;
  --es-violet-200: #D8C0FF;
  --es-violet-300: #C19CFF;
  --es-violet-400: #A976FA;
  --es-violet-500: #8E54F6;
  --es-violet-600: #7A3EEB;
  --es-violet-700: #6530C9;
  --es-violet-800: #50279E;
  --es-violet-900: #3B1E73;

  /* Charcoal */
  --es-charcoal-900: #232325;
  --es-charcoal-950: #17181C;

  /* Neutral scale */
  --es-neutral-0: #FFFFFF;
  --es-neutral-25: #FCFCFD;
  --es-neutral-50: #F7F7F8;
  --es-neutral-100: #EEEFF1;
  --es-neutral-200: #DCDDE2;
  --es-neutral-300: #C2C4CC;
  --es-neutral-400: #9A9DA8;
  --es-neutral-500: #767A86;
  --es-neutral-600: #5B5F6B;
  --es-neutral-700: #444853;
  --es-neutral-800: #31343D;
  --es-neutral-900: #232325;
  --es-neutral-950: #17181C;

  /* Semantic */
  --es-success-50: #EEF9F1;
  --es-success-500: #1F8F4E;
  --es-success-600: #18733E;
  --es-error-50: #FFF1F3;
  --es-error-500: #C62839;
  --es-error-600: #A61E2E;
  --es-warning-50: #FFF8E8;
  --es-warning-500: #B7791F;
  --es-warning-600: #975A16;
  --es-info-50: #EEF5FF;
  --es-info-500: #2563EB;
  --es-info-600: #1D4ED8;
}

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

html {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

body {
  color: var(--color-text-primary);
  background-color: var(--color-bg-white);
  min-height: 100vh;
  /* Keep scroll momentum / pull-to-refresh contained to the scrolled element
     instead of chaining to the page — stops the rubber-band "bounce" when the
     FMG iframe reaches the end of its content. */
  overscroll-behavior: contain;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font-family: inherit;
  cursor: pointer;
}

input, select, textarea {
  font-family: inherit;
  font-size: 16px; /* Prevent iOS auto-zoom on focus */
}

/* Screen reader only — for aria-live announcements */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

/*!********************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./src/shared/components/ui/scrollHelper.module.css ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************/
.scrollHelper_btn__EVVTE {
  position: fixed;
  right: 16px;
  bottom: calc(env(safe-area-inset-bottom, 0px) + 88px);
  z-index: 1200;
  width: 48px;
  height: 48px;
  border-radius: var(--radius-full);
  border: none;
  background: var(--color-primary);
  color: #fff;
  box-shadow: var(--shadow-lg);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
}

.scrollHelper_visible__ABDXi {
  opacity: 0.92;
  visibility: visible;
  transform: none;
}

.scrollHelper_btn__EVVTE:active {
  background: var(--color-primary-dark);
}

.scrollHelper_icon__Kr4jE {
  transition: transform 0.25s ease;
}

@media (min-width: 768px) {
  .scrollHelper_btn__EVVTE {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .scrollHelper_btn__EVVTE,
  .scrollHelper_icon__Kr4jE {
    transition: none;
  }
}

