/*
 * Consult One design tokens and base typography.
 * Formerly the Elementor "Site Settings" (kit) — global colours, typography
 * and custom CSS — now part of the theme so they no longer depend on a
 * page builder. Values are unchanged.
 */
body { --e-global-color-primary:#C81620;--e-global-color-secondary:#1B2B4A;--e-global-color-text:#3A3D42;--e-global-color-accent:#A11318;--e-global-color-brand-red:#ED1C24;--e-global-color-action:#C81620;--e-global-color-action-hover:#A11318;--e-global-color-navy:#1B2B4A;--e-global-color-navy-deep:#13203A;--e-global-color-red-tint:#FDECED;--e-global-color-ink:#15161A;--e-global-color-body-color:#3A3D42;--e-global-color-muted:#6C7075;--e-global-color-surface:#F6F7F8;--e-global-color-hairline:#E4E6E9;--e-global-color-aa57753:#FFFFFF80;--e-global-typography-primary-font-family:"Bricolage Grotesque";--e-global-typography-primary-font-weight:700;--e-global-typography-primary-letter-spacing:-0.02em;--e-global-typography-secondary-font-family:"Bricolage Grotesque";--e-global-typography-secondary-font-weight:800;--e-global-typography-secondary-letter-spacing:-0.02em;--e-global-typography-text-font-family:"DM Sans";--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.65em;--e-global-typography-accent-font-family:"DM Sans";--e-global-typography-accent-font-weight:500;--e-global-typography-heading-h1-font-family:"Bricolage Grotesque";--e-global-typography-heading-h1-font-size:60px;--e-global-typography-heading-h1-font-weight:800;--e-global-typography-heading-h1-letter-spacing:-0.02em;--e-global-typography-heading-h2-font-family:"Bricolage Grotesque";--e-global-typography-heading-h2-font-size:52px;--e-global-typography-heading-h2-font-weight:700;--e-global-typography-heading-h2-letter-spacing:-0.02em;--e-global-typography-heading-h3-font-family:"Bricolage Grotesque";--e-global-typography-heading-h3-font-size:22px;--e-global-typography-heading-h3-font-weight:700;--e-global-typography-body-dm-sans-font-family:"DM Sans";--e-global-typography-body-dm-sans-font-size:16px;--e-global-typography-body-dm-sans-font-weight:400;--e-global-typography-body-dm-sans-line-height:1.65em;--e-global-typography-lead-text-font-family:"DM Sans";--e-global-typography-lead-text-font-size:20px;--e-global-typography-lead-text-font-weight:400;--e-global-typography-eyebrow-font-family:"DM Sans";--e-global-typography-eyebrow-font-size:13px;--e-global-typography-eyebrow-font-weight:600;--e-global-typography-eyebrow-text-transform:uppercase;--e-global-typography-eyebrow-letter-spacing:0.14em; }
@media (max-width: 1024px) { body { --e-global-typography-heading-h1-font-size: 48px; --e-global-typography-heading-h2-font-size: 40px; } }
@media (max-width: 767px) { body { --e-global-typography-heading-h1-font-size: 34px; --e-global-typography-heading-h2-font-size: 30px; --e-global-typography-lead-text-font-size: 17px; } }

:root{
  --brand-red:#ED1C24; --action:#C81620; --action-hover:#A11318;
  --red-tint:#FDECED; --navy:#1B2B4A; --navy-deep:#13203A;
  --maxw:1240px; --gutter:clamp(20px,5vw,64px);
  --radius-sm:10px; --radius:14px; --radius-lg:22px;
  --ease:cubic-bezier(.22,.61,.36,1); --header-h:78px;
  --shadow-card:0 1px 2px rgba(21,22,26,.04), 0 8px 28px -12px rgba(21,22,26,.14);
  --shadow-pop:0 24px 60px -20px rgba(21,22,26,.30);
}
/* THEME VARIABLES */
:root, [data-theme="light"]{
  --bg:#fff; --surface:#F6F7F8; --surface-2:#EEF0F2;
  --ink:#15161A; --body:#3A3D42; --muted:#6C7075;
  --hairline:#E4E6E9; --hairline-strong:#D3D6DA;
  --link:#C81620; --accent:#C81620; --card-bg:#fff; --card-border:#E8EAED;
}
[data-theme="dark"]{
  --bg:#0F1014; --surface:#15161A; --surface-2:#1B1D23;
  --ink:#fff; --body:#C4C8CF; --muted:#9A9EA6;
  --hairline:#262932; --hairline-strong:#333744;
  --link:#FF5159; --accent:#FF4148; --card-bg:#16181D; --card-border:#262932;
}
body{background:var(--bg); color:var(--body);
  transition:background .4s var(--ease), color .4s var(--ease);}
/* dark logo swap */
[data-theme="dark"] .logo-light{display:none}
.logo-dark{display:none}
[data-theme="dark"] .logo-dark{display:block}
/* RTL Arabic fonts */
html[dir="rtl"], html[lang="ar"]{
  --font-display:'Cairo', system-ui, sans-serif;
  --font-body:'IBM Plex Sans Arabic', system-ui, sans-serif;
}
/* Typography scale */
h1, .h1 { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: clamp(34px,5vw,60px); letter-spacing: -0.02em; color: var(--ink); }
h2, .h2 { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 700; font-size: clamp(30px,4.4vw,52px); letter-spacing: -0.02em; color: var(--ink); }
h3, .h3 { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 700; font-size: clamp(19px,1.5vw,22px); color: var(--ink); }
h4, .h4 { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 700; color: var(--ink); }
body, p, .body-text { font-family: 'DM Sans', sans-serif; font-size: 16px; line-height: 1.65; color: var(--body); }
.eyebrow { font-family: 'DM Sans', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; }
.lead { font-size: clamp(17px,1.5vw,20px); }
/* Card component */
.c1-card { background: var(--card-bg); border: 1px solid var(--card-border); border-radius: var(--radius); box-shadow: var(--shadow-card); }
/* Pill button */
.btn-pill { background: var(--action); color: #fff; border-radius: 50px; padding: 10px 24px; font-family: 'DM Sans', sans-serif; font-weight: 600; font-size: 15px; transition: background .3s var(--ease); display: inline-block; }
.btn-pill:hover { background: var(--action-hover); color: #fff; text-decoration: none; }
/* Icon chips */
.icon-chip { background: var(--red-tint); border-radius: var(--radius-sm); width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; }
.icon-chip svg, .icon-chip i { color: var(--brand-red); }
/* Navy-deep section/band */
.section-navy-deep { background: var(--navy-deep); }
.section-navy-deep * { color: #fff; }
/* Hairline dividers */
.divider { border-color: var(--hairline); }
/* Dotted grid pattern for hero */
.hero-grid-bg { background-image: radial-gradient(circle, var(--hairline) 1px, transparent 1px); background-size: 28px 28px; }
/* Reduced motion */
@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } }

/* Accessibility helpers that Elementor used to provide */
.screen-reader-text, .screen-reader-text span { height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; top: -10000em; width: 1px; clip: rect(0, 0, 0, 0); border: 0; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
@media (prefers-reduced-motion: reduce) { html * { transition-delay: 0s !important; transition-duration: 0s !important; } }
