/* ==========================================================================
   Design system tokens — copied from the design system's tokens/*.css
   ========================================================================== */

/* Rubik (display/headings/buttons) + Roboto (body/nav/UI). Variable latin subsets, self-hosted. */
@font-face{font-family:"Roboto";font-style:italic;font-weight:100 900;font-display:swap;src:url("../fonts/Roboto-italic-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Roboto";font-style:normal;font-weight:100 900;font-display:swap;src:url("../fonts/Roboto-normal-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Rubik";font-style:italic;font-weight:300 900;font-display:swap;src:url("../fonts/Rubik-italic-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Rubik";font-style:normal;font-weight:300 900;font-display:swap;src:url("../fonts/Rubik-normal-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

:root{
  /* Colors */
  --navy-900:#262B59;
  --navy-800:#313662;
  --navy-700:#4C5077;
  --orange-500:#FF5F14;
  --orange-600:#E8520D;
  --orange-400:#FF895B;
  --link-500:#027BFF;
  --link-600:#0063CC;
  --white:#FFFFFF;
  --lavender-50:#F1F3FF;
  --gray-100:#F5F5F7;
  --gray-200:#E3E4EC;
  --gray-300:#BFC0CE;
  --gray-400:#999BB1;
  --gray-600:#555555;
  --gray-800:#333333;
  --black:#000000;
  --success-500:#2E9E5B;
  --error-500:#D93025;

  --surface-page:var(--white);
  --surface-topbar:var(--navy-900);
  --surface-header:var(--white);
  --surface-footer:var(--navy-900);
  --surface-quiet:var(--gray-100);
  --surface-hero-overlay:rgba(20,22,40,.55);
  --text-heading:var(--navy-900);
  --text-body:var(--gray-600);
  --text-strong:var(--gray-600);
  --text-on-dark:var(--white);
  --text-on-dark-muted:var(--gray-300);
  --text-link:var(--link-500);
  --text-link-hover:var(--link-600);
  --text-nav:var(--navy-900);
  --action-primary:var(--orange-500);
  --action-primary-hover:var(--orange-600);
  --action-primary-text:var(--white);
  --action-secondary:var(--navy-900);
  --action-secondary-hover:var(--navy-800);
  --border-hairline:var(--lavender-50);
  --border-input:var(--gray-400);
  --border-focus:var(--navy-900);
  --rule-accent:var(--navy-900);

  /* Typography */
  --font-display:"Rubik",system-ui,sans-serif;
  --font-body:"Roboto",system-ui,sans-serif;
  --fw-regular:400;
  --fw-medium:500;
  --fw-bold:700;
  --fw-black:900;
  --fs-h1:48px;
  --fs-h2:36px;
  --fs-h3:30px;
  --fs-h4:26px;
  --fs-h5:22px;
  --fs-h6:20px;
  --fs-body:20px;
  --fs-body-sm:16px;
  --fs-nav:16px;
  --fs-button:16px;
  --fs-button-ui:15px;
  --fs-micro:13px;
  --lh-heading:1.3;
  --lh-body:1.7;
  --lh-tight:1.15;
  --lh-button:1;
  --ls-button:0;
  --ls-caps:.01em;
  --type-h2:var(--fw-bold) var(--fs-h2)/var(--lh-heading) var(--font-display);
  --type-body:var(--fw-regular) var(--fs-body)/var(--lh-body) var(--font-body);
  --type-nav:var(--fw-medium) var(--fs-nav)/1 var(--font-body);

  /* Spacing, layout, radius, elevation, motion */
  --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;
  --container-max:1140px;
  --container-gutter:10px;
  --content-max:1120px;
  --rule-accent-w:42%;
  --rule-accent-h:5px;
  --nav-underline-h:2px;
  --hairline:1px;
  --radius-none:0;
  --radius-sm:3px;
  --radius-md:6px;
  --shadow-none:none;
  --shadow-popup:0 20px 60px rgba(20,22,40,.35);
  --shadow-dropdown:0 8px 24px rgba(38,43,89,.12);
  --ease-standard:ease;
  --dur-fast:.2s;
  --dur-base:.3s;
}

/* Element defaults (tokens/base.css) */
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--surface-page);color:var(--text-body);font:var(--type-body);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--fw-bold);color:var(--text-heading);line-height:var(--lh-heading);margin:0;text-wrap:pretty}
p{margin:0 0 var(--space-4)}
a{color:var(--text-link);text-decoration:none;transition:color var(--dur-base) var(--ease-standard)}
a:hover{color:var(--text-link-hover)}
img{max-width:100%;display:block}
*,*::before,*::after{box-sizing:border-box}

/* ==========================================================================
   Page-level styles from the homepage <helmet>
   ========================================================================== */
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{background:#fff}
a{color:var(--link-500)}
a:hover{color:var(--link-600)}
:focus-visible{outline:3px solid #FF895B;outline-offset:2px}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--navy-900);outline-offset:0;box-shadow:0 0 0 4px rgba(38,43,89,.15)}
input::placeholder,textarea::placeholder{color:#8A8CA3}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
html:has(.efc-legal){scroll-padding-top:88px}

/* Inline styles set display on most elements, so [hidden] needs to win. */
[hidden]{display:none!important}

/* ==========================================================================
   Button (core/Button.jsx)
   ========================================================================== */
.efc-btn{display:inline-flex;align-items:center;justify-content:center;flex-direction:row;text-transform:uppercase;letter-spacing:var(--ls-button);border:2px solid;border-radius:var(--radius-sm);cursor:pointer;opacity:1;text-decoration:none;white-space:nowrap;transition:background-color var(--dur-base) var(--ease-standard),color var(--dur-base) var(--ease-standard),border-color var(--dur-base) var(--ease-standard)}
.efc-btn--full{display:flex;width:100%}
.efc-btn:active:not(:disabled){transform:translateY(1px)}
.efc-btn:disabled{cursor:not-allowed;opacity:.5}

.efc-btn--md{font:var(--fw-medium) var(--fs-button)/var(--lh-button) var(--font-display);padding:18px 22px;gap:18px}
.efc-btn--sm{font:var(--fw-bold) var(--fs-button-ui)/var(--lh-button) var(--font-body);padding:10px 22px;gap:16px}
.efc-btn--lg{font:var(--fw-medium) 18px/var(--lh-button) var(--font-display);padding:20px 34px;gap:18px}

.efc-btn--primary,.efc-btn--primary:hover{color:var(--action-primary-text)}
.efc-btn--primary{background:var(--action-primary);border-color:var(--action-primary)}
.efc-btn--primary:hover:not(:disabled){background:var(--action-primary-hover);border-color:var(--action-primary-hover)}

.efc-btn--secondary,.efc-btn--secondary:hover{color:var(--white)}
.efc-btn--secondary{background:var(--action-secondary);border-color:var(--action-secondary)}
.efc-btn--secondary:hover:not(:disabled){background:var(--action-secondary-hover);border-color:var(--action-secondary-hover)}

.efc-btn--outline{color:var(--navy-900);background:transparent;border-color:var(--navy-900)}
.efc-btn--outline:hover{color:var(--white);background:var(--navy-900);border-color:var(--navy-900)}

.efc-btn--outline-light{color:var(--white);background:transparent;border-color:var(--white)}
.efc-btn--outline-light:hover{color:var(--navy-900);background:var(--white);border-color:var(--white)}

/* ==========================================================================
   Hover states (the design's style-hover attributes)
   ========================================================================== */
.efc-skip:focus{left:8px!important}
.h-orange:hover{color:#FF895B!important}
.h-nav:hover{border-bottom-color:var(--navy-900)!important;color:var(--navy-900)!important}
.h-o600:hover{color:var(--orange-600)!important}
.h-white:hover{color:#fff!important}
.h-zoom:hover{transform:scale(1.05)!important}

/* ==========================================================================
   Responsive switches (the design's showNav / isMobile / vw >= 1200 logic)
   ========================================================================== */
@media (max-width:1199.98px){.efc-xl{display:none!important}}
@media (max-width:1023.98px){.efc-desk{display:none!important}}
@media (min-width:1024px){.efc-compact,#mobile-menu{display:none!important}}
@media (min-width:768px){.efc-mob{display:none!important}}
@media (max-width:767.98px){.efc-tab{display:none!important}}
body.efc-form-focus .efc-sticky{display:none!important}

/* Fallback template content */
.efc-prose p{margin:0;font:400 17px/1.7 var(--font-body)}
.efc-prose h2{margin:12px 0 0;font:700 22px/1.3 var(--font-display);color:var(--navy-900)}
