/* ──────────────────────────────────────────────────────────────────────────
   Abelssoft — Color tokens
   Base palette (raw values) + semantic aliases. Light theme on :root,
   dark theme under [data-theme="dark"].
   ────────────────────────────────────────────────────────────────────────── */
:root {
  /* ---- Brand ---- */
  --abel-red: #CC1F1F;          /* primary brand red — CTAs, accents */
  --abel-red-hover: #B51B1B;    /* hover/press darkening */
  --abel-red-tint: #FCEDEC;     /* soft red wash — banners, badges */
  --abel-red-tint-border: #F3C9C6;

  --abel-blue: #036FA3;         /* secondary brand blue (links, focus ring) */
  --abel-blue-deep: #005E86;    /* darker blue — link rest state */
  --abel-blue-tint: #EDF4F8;    /* soft blue wash — chips, account pill */
  --abel-blue-tint-2: #F4F8FB;

  /* ---- Neutrals (warm-grey scale) ---- */
  --ink-900: #1A1A1A;           /* primary foreground */
  --ink-700: #1F2A33;           /* strong slate heading */
  --ink-600: #3F4A52;           /* body slate */
  --ink-500: #5A6470;           /* secondary text / icons */
  --ink-400: #6B6B6B;           /* muted foreground */
  --ink-300: #9AA3AB;           /* faint text, placeholders */
  --line: #E8E6E2;              /* default hairline border */
  --line-cool: #E8ECF1;         /* cool hairline (headers, cards) */
  --surface: #FFFFFF;           /* card / panel surface */
  --canvas: #F6F7F9;            /* page background */
  --canvas-2: #F9FBFF;          /* lighter page background */
  --input-bg: #F6F7F9;          /* input fill */

  /* ---- Semantic — status ---- */
  --success: #1FA86A;           /* check marks, secure */
  --success-600: #16834f;
  --success-tint: #E7F6EE;
  --star: #FFB400;              /* review stars (amber) */
  --trustpilot: #00B67A;        /* Trustpilot green */

  /* ---- Semantic aliases ---- */
  --color-primary: var(--abel-red);
  --color-primary-hover: var(--abel-red-hover);
  --color-secondary: var(--abel-blue);
  --text-strong: var(--ink-700);
  --text-body: var(--ink-600);
  --text-heading: var(--ink-900);
  --text-muted: var(--ink-400);
  --text-link: var(--abel-blue-deep);
  --text-link-hover: var(--abel-blue);
  --surface-card: var(--surface);
  --surface-page: var(--canvas-2);
  --border-default: var(--line);
  --border-card: var(--line-cool);
  --focus-ring: var(--abel-blue);
}

/* ──────────────── Dark theme ──────────────── */
[data-theme="dark"] {
  --ink-900: #E7EAEF;
  --ink-700: #E7EAEF;
  --ink-600: #AEB8C2;
  --ink-500: #9AA4B0;
  --ink-400: #9AA4B0;
  --ink-300: #8A93A0;
  --line: #1C222A;
  --line-cool: #1C222A;
  --surface: #161B22;
  --canvas: #0E1116;
  --canvas-2: #0E1116;
  --input-bg: #10151B;

  --abel-red: #FF7A7A;          /* lifted red for dark surfaces */
  --abel-red-hover: #FF9494;
  --abel-red-tint: rgba(255,122,122,.13);
  --abel-blue: #7FC4E6;
  --abel-blue-deep: #5FB0D8;
  --abel-blue-tint: rgba(95,176,216,.14);
  --success: #5FD39A;
  --success-tint: rgba(95,211,154,.14);

  --color-primary: #CC1F1F;     /* CTAs stay true red even on dark */
  --color-primary-hover: #B51B1B;
}

/* "Premium dark" chrome surface (header/footer on dark layouts) */
:root { --surface-premium-dark: #0B0D12; }


/* ──────────────────────────────────────────────────────────────────────────
   Abelssoft — Spacing, radii, shadows, motion
   ────────────────────────────────────────────────────────────────────────── */
:root {
  /* Spacing scale (4px base) */
  --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;

  /* Radii — buttons/inputs 10px, cards 14px, modals 18px, pills full */
  --radius-sm: 7px;     /* tooltips, small chips */
  --radius-md: 10px;    /* buttons, inputs, payment rows */
  --radius-lg: 14px;    /* cards, panels */
  --radius-xl: 18px;    /* modals */
  --radius-pill: 999px; /* pills, avatars, icon buttons */

  /* Shadows — soft, low-spread, cool-tinted */
  --shadow-xs: 0 1px 6px rgba(11, 13, 18, 0.06);          /* sticky header */
  --shadow-sm: 0 1px 3px rgba(20, 30, 40, 0.08);
  --shadow-md: 0 8px 24px rgba(11, 13, 18, 0.12);         /* dropdowns, popovers */
  --shadow-lg: 0 12px 32px rgba(11, 13, 18, 0.16);        /* modals */
  --shadow-lift: 0 10px 26px -12px rgba(20, 30, 40, 0.22);/* hover-lift cards */
  --shadow-cta: 0 8px 30px -8px rgba(204, 31, 31, 0.7);   /* glowing red CTA (dark) */

  /* Borders */
  --border-width: 1px;
  --border-width-strong: 2px;       /* selected payment rows, dotted dividers */

  /* Motion — calm, confident easing */
  --ease-out: cubic-bezier(0.22, 0.61, 0.36, 1);   /* @kind other */
  --ease-pop: cubic-bezier(0.34, 1.56, 0.64, 1);   /* @kind other */
  --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);   /* @kind other */
  --dur-fast: 0.12s;     /* @kind other */
  --dur-base: 0.2s;      /* @kind other */
  --dur-slow: 0.34s;     /* @kind other */
  --dur-slower: 0.42s;   /* @kind other */

  /* Layout */
  --container-max: 1200px;
  --container-narrow: 1100px;
}


/* ──────────────────────────────────────────────────────────────────────────
   Abelssoft — Typography tokens
   Single family: Poppins. Weights 400–800. UI-scale type ramp.
   ────────────────────────────────────────────────────────────────────────── */
:root {
  --font-sans: "Poppins", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;

  /* Weights */
  --fw-regular: 400;    /* @kind font */
  --fw-medium: 500;     /* @kind font */
  --fw-semibold: 600;   /* @kind font */
  --fw-bold: 700;       /* @kind font */
  --fw-extrabold: 800;  /* @kind font */

  /* Type scale (UI / web product) */
  --text-xs: 11px;     /* fine print, badges, eyebrows */
  --text-sm: 13px;     /* secondary copy, labels */
  --text-base: 15px;   /* body */
  --text-md: 17px;     /* lead / emphasized price */
  --text-lg: 20px;     /* card titles */
  --text-xl: 24px;     /* section headings */
  --text-2xl: 30px;    /* page headings */
  --text-3xl: 38px;    /* hero */
  --text-4xl: 48px;    /* large hero */

  /* Line heights */
  --leading-tight: 1.15;
  --leading-snug: 1.35;
  --leading-normal: 1.55;
  --leading-relaxed: 1.7;

  /* Tracking */
  --tracking-tight: -0.02em;
  --tracking-normal: 0;
  --tracking-eyebrow: 0.14em;   /* uppercase column headings */

  /* Semantic roles */
  --type-eyebrow: var(--fw-bold) var(--text-xs)/1 var(--font-sans);
  --type-body: var(--fw-regular) var(--text-base)/var(--leading-normal) var(--font-sans);
  --type-heading: var(--fw-bold) var(--text-xl)/var(--leading-tight) var(--font-sans);
}


/* ──────────────────────────────────────────────────────────────────────────
   Abelssoft — base element styles + reusable interaction utilities.
   Kept minimal: sets the brand font + canvas, and the micro-interaction
   helpers (.press / .lift / spinners / fades) used across components.
   ────────────────────────────────────────────────────────────────────────── */
:root {
  font-family: var(--font-sans);
  color: var(--text-heading);
}

body {
  font-family: var(--font-sans);
  background: var(--surface-page);
  color: var(--text-heading);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

::selection { background: var(--abel-blue); color: #fff; }
.num-tabular { font-variant-numeric: tabular-nums; }

/* ---- Press / lift micro-interactions ---- */
.press { transition: transform var(--dur-fast) ease; }
.press:active { transform: scale(0.97); }
.lift { transition: transform var(--dur-base) ease, box-shadow var(--dur-base) ease; }
.lift:hover { transform: translateY(-2px); box-shadow: var(--shadow-lift); }

/* ---- Keyframes ---- */
@media (prefers-reduced-motion: no-preference) {
  @keyframes abel-fadeUp { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
  @keyframes abel-pop { 0% { transform: scale(.96); } 60% { transform: scale(1.02); } 100% { transform: scale(1); } }
  @keyframes abel-spin { to { transform: rotate(360deg); } }
  @keyframes abel-pulseRing { 0% { box-shadow: 0 0 0 0 rgba(204,31,31,.32); } 70% { box-shadow: 0 0 0 10px rgba(204,31,31,0); } 100% { box-shadow: 0 0 0 0 rgba(204,31,31,0); } }
  .anim-fadeUp { animation: abel-fadeUp var(--dur-slower) var(--ease-out) both; }
  .anim-pop { animation: abel-pop var(--dur-slow) var(--ease-pop) both; }
  .anim-spin { animation: abel-spin .7s linear infinite; }
  .cta-pulse:not(:disabled):hover { animation: abel-pulseRing 1.1s; }
}

