/* ═══════════════════════════════════════════════════════════════
   SOSTENGO DESIGN SYSTEM
   Design Tokens, CSS Custom Properties, Reset & Base Typography
   ═══════════════════════════════════════════════════════════════ */

/* ── Google Fonts Import ── */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap');

:root {
  /* ── Brand Colors (from Sostengo palette) ── */
  --color-1:   #1C1D8F;  --color-1a: #C6C7F4;  --color-1b: #8E8EE9;
  --color-1c:  #5556DE;  --color-1d: #15166B;  --color-1e: #0E0E47;

  --color-2:   #4F51FF;  --color-2a: #DCDCFF;  --color-2b: #B9B9FF;
  --color-2c:  #9597FF;  --color-2d: #0003FB;  --color-2e: #0002A7;

  --color-3:   #FF366C;  --color-3a: #FFD7E2;  --color-3b: #FFAFC4;
  --color-3c:  #FF86A7;  --color-3d: #E8003E;  --color-3e: #9A002A;

  --color-4:   #00C2FF;  --color-4a: #CCF3FF;  --color-4b: #99E7FF;
  --color-4c:  #66DAFF;  --color-4d: #0092BF;  --color-4e: #006180;

  --color-5:   #FF710D;  --color-5a: #FFE3CF;  --color-5b: #FFC69E;
  --color-5c:  #FFAA6E;  --color-5d: #C95300;  --color-5e: #863700;

  --color-6:   #F3BECB;  --color-6a: #FDF2F5;  --color-6b: #FAE5EA;
  --color-6c:  #F8D8E0;  --color-6d: #E26382;  --color-6e: #B72246;

  --color-7:   #A5ABF6;  --color-7a: #8088F2;  --color-7b: #4854ED;
  --color-7c:  #131FBB;  --color-7d: #09105D;  --color-7e: #040625;

  /* ── Semantic Tokens ── */
  --brand-primary:    var(--color-1);
  --brand-accent:     var(--color-2);
  --brand-highlight:  var(--color-3);
  --brand-info:       var(--color-4);
  --brand-energy:     var(--color-5);
  --brand-soft:       var(--color-6);

  --text-primary:     #13142B;
  --text-secondary:   #5C6078;
  --text-muted:       #9498AC;
  --text-inverse:     #FFFFFF;

  --bg-primary:       #FFFFFF;
  --bg-secondary:     #F6F6FF;
  --bg-tertiary:      #F0F0FB;
  --bg-dark:          var(--color-1e);
  --bg-dark-accent:   var(--color-1d);

  --surface:          #FFFFFF;
  --surface-elevated: #FFFFFF;
  --border-color:     #E8E8F0;
  --border-light:     #F0F0F8;

  /* ── Typography ── */
  --font-primary: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --text-xs:   clamp(0.75rem, 0.7vw, 0.8125rem);
  --text-sm:   clamp(0.875rem, 0.85vw, 0.9375rem);
  --text-base: clamp(1rem, 1vw, 1.0625rem);
  --text-lg:   clamp(1.0625rem, 1.15vw, 1.1875rem);
  --text-xl:   clamp(1.25rem, 1.5vw, 1.375rem);
  --text-2xl:  clamp(1.5rem, 2vw, 1.875rem);
  --text-3xl:  clamp(1.875rem, 2.5vw, 2.5rem);
  --text-4xl:  clamp(2.25rem, 3.5vw, 3.25rem);
  --text-5xl:  clamp(2.75rem, 4.5vw, 4rem);

  --leading-tight:  1.15;
  --leading-snug:   1.3;
  --leading-normal: 1.6;
  --leading-relaxed: 1.75;

  --weight-light:    300;
  --weight-regular:  400;
  --weight-medium:   500;
  --weight-semibold: 600;
  --weight-bold:     700;
  --weight-extrabold: 800;

  --tracking-tight:  -0.025em;
  --tracking-normal: 0;
  --tracking-wide:   0.05em;
  --tracking-wider:  0.08em;

  /* ── Spacing (8px base) ── */
  --space-1:  0.25rem;
  --space-2:  0.5rem;
  --space-3:  0.75rem;
  --space-4:  1rem;
  --space-5:  1.25rem;
  --space-6:  1.5rem;
  --space-8:  2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-14: 3.5rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;
  --space-32: 8rem;

  /* ── Borders & Radius ── */
  --radius-sm:   0.375rem;
  --radius-md:   0.625rem;
  --radius-lg:   0.875rem;
  --radius-xl:   1.25rem;
  --radius-2xl:  1.75rem;
  --radius-full: 9999px;

  /* ── Shadows ── */
  --shadow-xs:  0 1px 2px rgba(28, 29, 143, 0.04);
  --shadow-sm:  0 1px 4px rgba(28, 29, 143, 0.06), 0 1px 2px rgba(28, 29, 143, 0.04);
  --shadow-md:  0 4px 12px rgba(28, 29, 143, 0.07), 0 2px 4px rgba(28, 29, 143, 0.04);
  --shadow-lg:  0 8px 28px rgba(28, 29, 143, 0.10), 0 4px 8px rgba(28, 29, 143, 0.05);
  --shadow-xl:  0 16px 48px rgba(28, 29, 143, 0.14), 0 6px 16px rgba(28, 29, 143, 0.06);
  --shadow-2xl: 0 24px 64px rgba(28, 29, 143, 0.18);
  --shadow-glow-accent:  0 0 40px rgba(79, 81, 255, 0.12);
  --shadow-glow-pink:    0 0 40px rgba(79, 81, 255, 0.12);
  --shadow-glow-cyan:    0 0 40px rgba(0, 194, 255, 0.12);

  /* ── Transitions ── */
  --ease-out-expo:  cubic-bezier(0.16, 1, 0.3, 1);
  --ease-out-back:  cubic-bezier(0.34, 1.56, 0.64, 1);
  --ease-out-quart: cubic-bezier(0.25, 1, 0.5, 1);
  --ease-in-out:    cubic-bezier(0.4, 0, 0.2, 1);
  --duration-fast:   150ms;
  --duration-normal: 300ms;
  --duration-slow:   500ms;
  --duration-slower:  800ms;

  /* ── Layout ── */
  --container-max:    1200px;
  --container-wide:   1400px;
  --container-narrow: 720px;
  --nav-height:       72px;
  --topbar-height:    36px;
  --header-height:    calc(var(--topbar-height) + var(--nav-height));
  --section-padding:  clamp(2.5rem, 5vw, 4.5rem);
}

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

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-padding-top: var(--header-height);
}

body {
  font-family: var(--font-primary);
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  color: var(--text-primary);
  background-color: var(--bg-primary);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
}

input, button, textarea, select {
  font: inherit;
  color: inherit;
}

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

ul, ol { list-style: none; }

h1, h2, h3, h4, h5, h6 {
  font-weight: var(--weight-bold);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
  color: var(--text-primary);
  text-wrap: balance;
}

p {
  text-wrap: pretty;
  max-width: 68ch;
}

/* ── Base Typography Scale ── */
.text-xs   { font-size: var(--text-xs); }
.text-sm   { font-size: var(--text-sm); }
.text-base { font-size: var(--text-base); }
.text-lg   { font-size: var(--text-lg); }
.text-xl   { font-size: var(--text-xl); }
.text-2xl  { font-size: var(--text-2xl); }
.text-3xl  { font-size: var(--text-3xl); }
.text-4xl  { font-size: var(--text-4xl); }
.text-5xl  { font-size: var(--text-5xl); }

/* ── Utility Classes ── */
.text-gradient {
  background: linear-gradient(135deg, var(--brand-accent), var(--brand-highlight));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.text-gradient-blue {
  background: linear-gradient(135deg, var(--brand-accent), var(--brand-info));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ── Global Icon Styles ── */
/* Ensure all decorative icons use the brand blue color */
svg:not(.navbar__logo svg):not(.partner-logo img):not(.whatsapp-float svg) {
  color: var(--brand-accent) !important;
}

svg[stroke]:not(.navbar__logo svg):not(.partner-logo img):not(.whatsapp-float svg) {
  stroke: var(--brand-accent) !important;
}

svg[fill]:not([fill="none"]):not(.navbar__logo svg):not(.partner-logo img):not(.whatsapp-float svg) {
  fill: var(--brand-accent) !important;
}

/* Rating Stars */
.stars, .card-testimonial__stars {
  color: var(--brand-accent) !important;
}

.stars svg, .card-testimonial__stars svg {
  fill: var(--brand-accent) !important;
}

/* Icon Containers */
.card-product__icon, 
.card-feature__icon, 
.dropdown-icon, 
.mobile-menu__link svg,
.hero__float-card-icon,
.product-hero__icon {
  color: var(--brand-accent) !important;
}
