/* ============================================================
   ASWE Design System — Tokens
   Source: ASWE Brand Guide Document (Drafted by GG. DesignHub)
   ============================================================ */

/* ----- POPPINS (local TTF) ---------------------------------- */
@font-face { font-family: 'Poppins'; font-weight: 100; font-style: normal;  font-display: swap; src: url('fonts/Poppins-Thin.ttf') format('truetype'); }
@font-face { font-family: 'Poppins'; font-weight: 100; font-style: italic;  font-display: swap; src: url('fonts/Poppins-ThinItalic.ttf') format('truetype'); }
@font-face { font-family: 'Poppins'; font-weight: 200; font-style: normal;  font-display: swap; src: url('fonts/Poppins-ExtraLight.ttf') format('truetype'); }
@font-face { font-family: 'Poppins'; font-weight: 200; font-style: italic;  font-display: swap; src: url('fonts/Poppins-ExtraLightItalic.ttf') format('truetype'); }
@font-face { font-family: 'Poppins'; font-weight: 300; font-style: normal;  font-display: swap; src: url('fonts/Poppins-Light.ttf') format('truetype'); }
@font-face { font-family: 'Poppins'; font-weight: 300; font-style: italic;  font-display: swap; src: url('fonts/Poppins-LightItalic.ttf') format('truetype'); }
@font-face { font-family: 'Poppins'; font-weight: 400; font-style: normal;  font-display: swap; src: url('fonts/Poppins-Regular.ttf') format('truetype'); }
@font-face { font-family: 'Poppins'; font-weight: 400; font-style: italic;  font-display: swap; src: url('fonts/Poppins-Italic.ttf') format('truetype'); }
@font-face { font-family: 'Poppins'; font-weight: 500; font-style: normal;  font-display: swap; src: url('fonts/Poppins-Medium.ttf') format('truetype'); }
@font-face { font-family: 'Poppins'; font-weight: 500; font-style: italic;  font-display: swap; src: url('fonts/Poppins-MediumItalic.ttf') format('truetype'); }
@font-face { font-family: 'Poppins'; font-weight: 600; font-style: normal;  font-display: swap; src: url('fonts/Poppins-SemiBold.ttf') format('truetype'); }
@font-face { font-family: 'Poppins'; font-weight: 600; font-style: italic;  font-display: swap; src: url('fonts/Poppins-SemiBoldItalic.ttf') format('truetype'); }
@font-face { font-family: 'Poppins'; font-weight: 700; font-style: normal;  font-display: swap; src: url('fonts/Poppins-Bold.ttf') format('truetype'); }
@font-face { font-family: 'Poppins'; font-weight: 700; font-style: italic;  font-display: swap; src: url('fonts/Poppins-BoldItalic.ttf') format('truetype'); }
@font-face { font-family: 'Poppins'; font-weight: 800; font-style: normal;  font-display: swap; src: url('fonts/Poppins-ExtraBold.ttf') format('truetype'); }
@font-face { font-family: 'Poppins'; font-weight: 800; font-style: italic;  font-display: swap; src: url('fonts/Poppins-ExtraBoldItalic.ttf') format('truetype'); }
@font-face { font-family: 'Poppins'; font-weight: 900; font-style: normal;  font-display: swap; src: url('fonts/Poppins-Black.ttf') format('truetype'); }
@font-face { font-family: 'Poppins'; font-weight: 900; font-style: italic;  font-display: swap; src: url('fonts/Poppins-BlackItalic.ttf') format('truetype'); }

:root {
  /* ----- BRAND PALETTE (from PDF) ----------------------------- */
  --aswe-azure-blue:        #0089DD;  /* trust, primary action */
  --aswe-bright-orange:     #FF6700;  /* energy, accent / CTA */
  --aswe-forest-moss-green: #51731C;  /* growth, success */
  --aswe-cool-gray:         #878787;  /* neutral, body marks */
  --aswe-pure-white:        #FFFFFF;  /* canvas */
  --aswe-ink:               #1A1A1A;  /* derived: high-contrast text */

  /* ----- AZURE TINTS & SHADES (derived) ----------------------- */
  --azure-50:  #E6F3FB;
  --azure-100: #BFE0F4;
  --azure-200: #80C1E9;
  --azure-300: #40A2DE;
  --azure-400: #1A95DB;
  --azure-500: #0089DD;   /* brand */
  --azure-600: #006FB4;
  --azure-700: #00568A;
  --azure-800: #003C60;
  --azure-900: #002338;

  /* ----- ORANGE TINTS & SHADES (derived) ---------------------- */
  --orange-50:  #FFF0E5;
  --orange-100: #FFD6B8;
  --orange-200: #FFAD70;
  --orange-300: #FF8533;
  --orange-400: #FF7519;
  --orange-500: #FF6700;   /* brand */
  --orange-600: #CC5200;
  --orange-700: #993E00;
  --orange-800: #662900;
  --orange-900: #331500;

  /* ----- MOSS TINTS & SHADES (derived) ------------------------ */
  --moss-50:  #EFF4E5;
  --moss-100: #D2E0B8;
  --moss-200: #A5C170;
  --moss-300: #7CA13C;
  --moss-400: #648A25;
  --moss-500: #51731C;   /* brand */
  --moss-600: #415C16;
  --moss-700: #314511;
  --moss-800: #212E0B;
  --moss-900: #101706;

  /* ----- NEUTRALS --------------------------------------------- */
  --gray-50:  #F7F7F7;
  --gray-100: #EDEDED;
  --gray-200: #DCDCDC;
  --gray-300: #C4C4C4;
  --gray-400: #A5A5A5;
  --gray-500: #878787;   /* brand "cool gray" */
  --gray-600: #6B6B6B;
  --gray-700: #4F4F4F;
  --gray-800: #333333;
  --gray-900: #1A1A1A;

  /* ----- SEMANTIC SURFACES ------------------------------------ */
  --bg:          var(--aswe-pure-white);
  --bg-subtle:   var(--gray-50);
  --bg-muted:    var(--gray-100);
  --bg-inverse:  var(--gray-900);
  --surface:     var(--aswe-pure-white);
  --surface-alt: var(--gray-50);

  /* ----- SEMANTIC TEXT ---------------------------------------- */
  --fg1: var(--gray-900);   /* primary text */
  --fg2: var(--gray-700);   /* secondary text */
  --fg3: var(--gray-500);   /* tertiary / captions */
  --fg-inverse: var(--aswe-pure-white);
  --fg-link:    var(--aswe-azure-blue);
  --fg-link-hover: var(--azure-700);

  /* ----- SEMANTIC INTENTS ------------------------------------- */
  --primary:    var(--aswe-azure-blue);
  --primary-hover: var(--azure-600);
  --primary-press: var(--azure-700);
  --accent:     var(--aswe-bright-orange);
  --accent-hover: var(--orange-600);
  --accent-press: var(--orange-700);
  --success:    var(--aswe-forest-moss-green);
  --success-hover: var(--moss-600);
  --warning:    var(--orange-400);
  --danger:     #C0322B;
  --info:       var(--azure-400);

  /* ----- BORDERS ---------------------------------------------- */
  --border:        var(--gray-200);
  --border-strong: var(--gray-300);
  --border-inverse: rgba(255,255,255,0.16);

  /* ----- ELEVATION / SHADOW ----------------------------------- */
  --shadow-xs: 0 1px 2px rgba(15, 23, 42, 0.06);
  --shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.06), 0 1px 3px rgba(15, 23, 42, 0.08);
  --shadow-md: 0 4px 6px -1px rgba(15, 23, 42, 0.08), 0 2px 4px -2px rgba(15, 23, 42, 0.06);
  --shadow-lg: 0 10px 15px -3px rgba(15, 23, 42, 0.10), 0 4px 6px -4px rgba(15, 23, 42, 0.08);
  --shadow-xl: 0 20px 25px -5px rgba(15, 23, 42, 0.12), 0 8px 10px -6px rgba(15, 23, 42, 0.08);
  --shadow-focus: 0 0 0 3px rgba(0, 137, 221, 0.28);     /* azure focus ring */
  --shadow-accent-focus: 0 0 0 3px rgba(255, 103, 0, 0.28); /* orange focus ring */

  /* ----- RADII ------------------------------------------------ */
  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 14px;
  --radius-xl: 20px;
  --radius-2xl: 28px;
  --radius-pill: 999px;

  /* ----- SPACING (4px base) ----------------------------------- */
  --space-0:  0;
  --space-1:  4px;
  --space-2:  8px;
  --space-3:  12px;
  --space-4:  16px;
  --space-5:  20px;
  --space-6:  24px;
  --space-8:  32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --space-24: 96px;

  /* ----- TYPOGRAPHY ------------------------------------------- */
  --font-display: 'Poppins', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --font-body:    'Poppins', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --font-mono:    ui-monospace, 'SF Mono', 'JetBrains Mono', Consolas, Menlo, monospace;

  /* Weights — Poppins Bold is the brand voice for headings */
  --fw-light:    300;
  --fw-regular:  400;
  --fw-medium:   500;
  --fw-semibold: 600;
  --fw-bold:     700;
  --fw-black:    800;

  /* Type scale — generous, geometric */
  --fs-xs:   12px;
  --fs-sm:   14px;
  --fs-base: 16px;
  --fs-md:   18px;
  --fs-lg:   20px;
  --fs-xl:   24px;
  --fs-2xl:  30px;
  --fs-3xl:  36px;
  --fs-4xl:  48px;
  --fs-5xl:  60px;
  --fs-6xl:  76px;

  --lh-tight:   1.1;
  --lh-snug:    1.25;
  --lh-normal:  1.5;
  --lh-relaxed: 1.7;

  --tracking-tight:  -0.02em;
  --tracking-normal: 0;
  --tracking-wide:   0.04em;
  --tracking-cap:    0.12em;  /* eyebrow / overline caps */

  /* ----- MOTION ----------------------------------------------- */
  --ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-fast:    140ms;
  --dur-base:    220ms;
  --dur-slow:    400ms;
}

/* ============================================================
   SEMANTIC ELEMENT STYLES
   ============================================================ */
html { color-scheme: light; }
body {
  font-family: var(--font-body);
  font-size: var(--fs-base);
  line-height: var(--lh-normal);
  color: var(--fg1);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, .h1 {
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  font-size: clamp(var(--fs-4xl), 5vw, var(--fs-6xl));
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-tight);
  margin: 0;
}
h2, .h2 {
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  font-size: clamp(var(--fs-3xl), 4vw, var(--fs-5xl));
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-tight);
  margin: 0;
}
h3, .h3 {
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  font-size: var(--fs-2xl);
  line-height: var(--lh-snug);
  margin: 0;
}
h4, .h4 {
  font-family: var(--font-display);
  font-weight: var(--fw-semibold);
  font-size: var(--fs-xl);
  line-height: var(--lh-snug);
  margin: 0;
}
h5, .h5 {
  font-family: var(--font-display);
  font-weight: var(--fw-semibold);
  font-size: var(--fs-lg);
  line-height: var(--lh-snug);
  margin: 0;
}
h6, .h6 {
  font-family: var(--font-display);
  font-weight: var(--fw-semibold);
  font-size: var(--fs-md);
  line-height: var(--lh-snug);
  margin: 0;
}

p, .body {
  font-family: var(--font-body);
  font-weight: var(--fw-regular);
  font-size: var(--fs-base);
  line-height: var(--lh-normal);
  color: var(--fg2);
  text-wrap: pretty;
}

.lede {
  font-size: var(--fs-lg);
  line-height: var(--lh-relaxed);
  color: var(--fg2);
  font-weight: var(--fw-regular);
}

small, .caption {
  font-size: var(--fs-sm);
  color: var(--fg3);
  line-height: var(--lh-snug);
}

.eyebrow, .overline {
  font-family: var(--font-display);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  letter-spacing: var(--tracking-cap);
  text-transform: uppercase;
  color: var(--accent);
}

code, kbd, samp, .mono {
  font-family: var(--font-mono);
  font-size: 0.92em;
  background: var(--bg-muted);
  padding: 2px 6px;
  border-radius: var(--radius-xs);
}

a {
  color: var(--fg-link);
  text-decoration: none;
  transition: color var(--dur-fast) var(--ease-out);
}
a:hover { color: var(--fg-link-hover); text-decoration: underline; }

hr {
  border: 0;
  height: 1px;
  background: var(--border);
  margin: var(--space-8) 0;
}

::selection { background: var(--azure-100); color: var(--azure-900); }

/* Focus ring — always Azure */
:focus-visible {
  outline: none;
  box-shadow: var(--shadow-focus);
  border-radius: var(--radius-sm);
}
