/* =========================================================================
   Teton.ai homepage — clean rebuild
   All values extracted from the original source (index.html + css).
   ========================================================================= */

/* ---- Fonts (reuse original local Wallop woffs) ---- */
@font-face{font-family:Wallop;src:url(fonts/65d5b306ba46f47d1ffb8480_Wallop-Regular.woff) format("woff");font-weight:400;font-style:normal;font-display:block}
@font-face{font-family:Wallop;src:url(fonts/65d5b3057e62b74cb73bc239_Wallop-Medium.woff) format("woff");font-weight:500;font-style:normal;font-display:block}
@font-face{font-family:Wallop;src:url(fonts/65d5b306f1d62490a285adc6_Wallop-SemiBold.woff) format("woff");font-weight:600;font-style:normal;font-display:block}

/* ---- Design tokens (from original :root) ---- */
:root{
  /* swatches */
  --swatch--light:#fff;
  --swatch--light-1:#8d959d;
  --swatch--light-2:#e7e8e9;
  --swatch--light-3:#f2f4f4;
  --swatch--light-fade:#ffffff26;
  --swatch--dark:#1e1e1e;
  --swatch--dark-1:#303035;
  --swatch--dark-2:#394147;
  --swatch--dark-fade:#1f1f1f26;
  --swatch--transparent:#fff0;
  --swatch--brand:#bbf0bd;     /* green */
  --swatch--brand-1:#ffffaf;   /* yellow */
  --swatch--brand-2:#e7e3fd;   /* purple */
  --swatch--brand-3:#3f8cea;   /* blue */
  --swatch--brand-4:#fc6845;

  /* sizing scale (overridden at breakpoints below) */
  --size--0-25rem:.25rem; --size--0-5rem:.5rem; --size--0-75rem:.75rem;
  --size--1rem:1rem; --size--1-25rem:1.25rem; --size--1-5rem:1.5rem;
  --size--2rem:2rem; --size--2-5rem:2.5rem; --size--3rem:3rem; --size--3-5rem:3.5rem;
  --size--4rem:4rem; --size--4-5rem:4.5rem; --size--5rem:5rem; --size--5-5rem:5.5rem;
  --size--6rem:6rem; --size--6-5rem:6.5rem; --size--7rem:7rem; --size--7-5rem:7.5rem;
  --size--8rem:8rem; --size--8-5rem:8.5rem; --size--9rem:9rem; --size--9-5rem:9.5rem;
  --size--10rem:10rem; --size--12rem:12rem; --size--14rem:14rem; --size--15rem:15rem; --size--16rem:16rem;

  --space--extra-small:var(--size--0-75rem);
  --space--small:var(--size--1-5rem);
  --space--medium:var(--size--2rem);
  --space--large:var(--size--4rem);
  --grid-gap--main:.5rem;

  --radius--small:.25rem;
  --radius--main:.5rem;
  --radius--round:100vw;

  --border-width--main:1.5px;

  --padding-vertical--none:0rem;
  --padding-vertical--small:var(--size--5rem);
  --padding-vertical--main:var(--size--7rem);
  --padding-vertical--large:var(--size--10rem);
  --padding-vertical--xlarge:var(--size--14rem);
  --padding-horizontal--main:2.5rem;
  --padding-horizontal--small:1.25rem;
  --padding-horizontal--large:6rem;
  --padding-horizontal--xsmall:.5rem;

  --max-width--main:103rem;
  --max-width--large:105.313rem;

  --card-padding--small:var(--size--1rem);
  --card-padding--medium:var(--size--1-5rem);
  --card-padding--large:var(--size--9rem);

  --text-max-width--small:24ch;
  --text-max-width--medium:40ch;
  --text-max-width--large:50ch;

  /* fonts */
  --font--primary-family:Wallop,sans-serif;
  --font-weight--400:400; --font-weight--500:500; --font-weight--600:600;
  --font--primary-regular:400; --font--primary-medium:500; --font--primary-bold:600;

  --letter-spacing--0em:0em;
  --letter-spacing--0-03em:-.03em;
  --line-height--1em:1em; --line-height--1-1em:1.1em; --line-height--1-3em:1.3em; --line-height--1-5em:1.5em;

  /* typography roles */
  --body--font-size:var(--size--1rem);
  --paragraph-small--font-size:.875rem;
  --paragraph-large--font-size:var(--size--1-25rem);
  --display--font-size:var(--size--4-5rem);
  --h1--font-size:var(--size--2-5rem);
  --h2--font-size:var(--size--2rem);
  --h3--font-size:var(--size--1-5rem);
  --h4--font-size:var(--size--1-25rem);

  /* light theme (default) */
  --theme--background:var(--swatch--light);
  --theme--text:var(--swatch--dark);
  --theme--border:var(--swatch--dark-fade);
  --theme--text-secondary:var(--swatch--light-1);
  --theme--card-background:var(--swatch--light-3);
  --theme--nav-background:var(--swatch--light-fade);
  --theme--tabmenu-selected:var(--swatch--light);
  --theme--input-background:var(--swatch--light);
  --theme--progress-line:var(--swatch--brand-3);
  --button--background:var(--swatch--dark);
  --button--text:var(--swatch--light);
  --button--border:var(--swatch--dark);
  --button--background-hover:var(--swatch--light);
  --button--text-hover:var(--swatch--dark);
  --button--border-hover:var(--swatch--dark-2);
}

/* light theme (explicit, mirrors :root defaults — used when body reverts from dark) */
[data-theme="light"]{
  --theme--background:var(--swatch--light);
  --theme--text:var(--swatch--dark);
  --theme--border:var(--swatch--dark-fade);
  --theme--text-secondary:var(--swatch--light-1);
  --theme--card-background:var(--swatch--light-3);
  --theme--nav-background:var(--swatch--light-fade);
  --theme--tabmenu-selected:var(--swatch--light);
  --theme--input-background:var(--swatch--light);
  --button--background:var(--swatch--dark);
  --button--text:var(--swatch--light);
  --button--border:var(--swatch--dark);
  --button--background-hover:var(--swatch--light);
  --button--text-hover:var(--swatch--dark);
  --button--border-hover:var(--swatch--dark-2);
}

/* dark theme */
[data-theme="dark"]{
  --theme--background:var(--swatch--dark);
  --theme--text:var(--swatch--light);
  --theme--border:var(--swatch--light-fade);
  --theme--text-secondary:var(--swatch--light-1);
  --theme--card-background:var(--swatch--dark-1);
  --theme--nav-background:var(--swatch--dark-fade);
  --theme--tabmenu-selected:var(--swatch--dark-2);
  --theme--input-background:var(--swatch--dark);
  --button--background:var(--swatch--light);
  --button--text:var(--swatch--dark);
  --button--border:var(--swatch--light);
  --button--background-hover:var(--swatch--light-3);
  --button--text-hover:var(--swatch--dark);
  --button--border-hover:var(--swatch--light-3);
}

/* per-card brand background override (quotes) */
[data-bg="yellow"]{--theme--card-background:var(--swatch--brand-1)}
[data-bg="green"]{--theme--card-background:var(--swatch--brand)}
[data-bg="purple"]{--theme--card-background:var(--swatch--brand-2)}

[data-theme]:not([data-theme="inherit"]){background-color:var(--theme--background);color:var(--theme--text)}
/* sections that follow the scroll-driven body theme */
[data-theme="inherit"]{background-color:var(--theme--background);color:var(--theme--text)}

/* scroll-driven color transition (replaces variables-color-scroll.js / GSAP).
   Original: #color-themes speed="0.4" ease="power1.out". body tweens its theme
   vars over 0.4s as each [animate-body-to] crosses 60% from top. */
body,[data-theme="inherit"]{
  transition:background-color .4s ease,color .4s ease;
}

/* ---- Reset / base ---- */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background-color:var(--theme--background);
  color:var(--theme--text);
  font-family:var(--font--primary-family);
  font-size:var(--body--font-size);
  line-height:var(--line-height--1-5em);
  letter-spacing:var(--letter-spacing--0em);
  font-weight:var(--font--primary-regular);
  overscroll-behavior:none;
  -webkit-font-smoothing:antialiased;
  font-feature-settings:'ss10' on,'ss13' on;
}
img,video,svg{display:block;max-width:100%}
video{width:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;text-align:inherit}
.page_main{padding-top:var(--padding-vertical--small)}

/* ---- Headings / typography ---- */
h1,h2,h3,h4,p{margin:0}
h1,.fs1{font-size:var(--h1--font-size);font-weight:var(--font--primary-medium);line-height:var(--line-height--1em);letter-spacing:var(--letter-spacing--0-03em)}
h2{font-size:var(--h2--font-size);font-weight:var(--font--primary-medium);line-height:var(--line-height--1em);letter-spacing:var(--letter-spacing--0-03em)}
h3,.fs3{font-size:var(--h3--font-size);font-weight:var(--font--primary-medium);line-height:var(--line-height--1-1em);letter-spacing:var(--letter-spacing--0-03em)}
h4,.fs4{font-size:var(--h4--font-size);font-weight:var(--font--primary-medium);line-height:var(--line-height--1-3em);letter-spacing:var(--letter-spacing--0em)}
.fs0{font-size:var(--display--font-size);font-weight:var(--font--primary-medium);line-height:var(--line-height--1em);letter-spacing:var(--letter-spacing--0-03em)}
.fs2{font-size:var(--h2--font-size);font-weight:var(--font--primary-medium);line-height:var(--line-height--1em);letter-spacing:var(--letter-spacing--0-03em)}
.fs7{font-size:var(--body--font-size);font-weight:var(--font--primary-regular);line-height:var(--line-height--1-5em)}
.fs7-1{font-size:var(--paragraph-large--font-size);font-weight:var(--font--primary-medium);line-height:var(--line-height--1-3em)}
.fw2{font-weight:var(--font--primary-medium)}
.text-secondary{color:var(--theme--text-secondary);font-size:var(--paragraph-small--font-size)}
h1 .text-secondary,h2 .text-secondary{font-size:inherit}
.text-small{font-size:var(--paragraph-small--font-size)}
[text-max-width="small"]{max-width:var(--text-max-width--small);text-wrap:balance}
[text-max-width="medium"]{max-width:var(--text-max-width--medium);text-wrap:balance}
[text-max-width="large"]{max-width:var(--text-max-width--large);text-wrap:balance}

.eyebrow-blue{color:var(--swatch--brand-3);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:500;line-height:1.1;display:block}
.eyebrow-black{color:var(--theme--text);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:500;line-height:1.1;display:block}
.eyebrow{display:flex;align-items:center;gap:var(--size--0-75rem)}
.cta_dot{width:var(--size--0-5rem);height:var(--size--0-5rem);border-radius:var(--radius--round);background-color:var(--theme--text)}

/* ---- Layout primitives ---- */
.container{box-sizing:border-box;max-width:var(--max-width--main);width:100%;margin:0 auto;position:relative;
  padding:var(--padding-vertical--main) var(--padding-horizontal--main)}
.section{position:relative}
.full_contain{max-width:none;padding-left:var(--padding-horizontal--xsmall);padding-right:var(--padding-horizontal--xsmall)}
.vstack{display:flex;flex-direction:column;gap:var(--space--large)}

/* ---- Visual wrapper (image/video with subtle backing) ---- */
.visual_16x9{position:relative;aspect-ratio:16/9;border-radius:var(--radius--main);overflow:hidden}
.visual_2x25{position:relative;aspect-ratio:2/2.5;border-radius:var(--radius--main);overflow:hidden}
.visual_bg{position:absolute;inset:0;background-color:currentColor;opacity:.1}
.visual_media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

.gradient-overlay{z-index:2;position:absolute;inset:auto 0 0;height:60%;background-image:linear-gradient(to top,var(--swatch--dark),#0000)}
.gradient-overlay.reversed{inset:0 0 auto;background-image:linear-gradient(to bottom,var(--swatch--dark),#0000)}

/* ---- Buttons ---- */
.btn{display:inline-block}
.btn_inner{display:inline-flex;justify-content:center;padding:.5rem 1.25rem;border:1.5px solid var(--button--border);border-radius:var(--radius--round);background-color:var(--button--background);color:var(--button--text);transition:background-color .2s,color .2s,border-color .2s}
.btn:hover .btn_inner{background-color:var(--button--background-hover);color:var(--button--text-hover);border-color:var(--button--border-hover)}
.button_group{display:flex;align-items:center;gap:var(--space--small)}
.button_group_top{margin-top:auto}

/* ---- Banner ---- */
.banner{position:sticky;top:0;z-index:999999;width:100%;background-color:#1e1e1e}
.banner_inner{display:flex;justify-content:center;align-items:center;gap:1rem;padding:.5rem 1rem;flex-wrap:wrap}
.banner_text{color:#fff;margin:0}
.banner_btn{background-color:#fefeff;color:#1e1e1e;border-radius:20px;padding:3px 10px;font-size:var(--body--font-size)}

/* ---- Navigation ---- */
.nav_fixed{position:fixed;top:0;left:0;z-index:9999;width:100%;padding-top:var(--padding-horizontal--small)}
.nav_wrap{display:flex;justify-content:space-between;align-items:flex-start;width:100%;margin:0 auto;
  max-width:var(--max-width--main);padding:0 var(--padding-horizontal--small)}
.nav_menu{display:flex;align-items:center;gap:var(--space--small);padding:var(--size--0-75rem) var(--size--1-5rem);
  border-radius:var(--radius--main);background-color:var(--theme--nav-background);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.nav_top{display:flex;align-items:center}
.logo_link{display:flex}
.teton-logo{color:var(--theme--text);width:2rem;height:auto}
.nav_burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:24px;height:24px}
.nav_burger span{display:block;height:2px;width:22px;background:var(--theme--text);transition:transform .3s,opacity .3s}
.menu_links{display:flex;align-items:center;gap:var(--space--small)}
.menu_link{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--size--0-5rem);
  color:var(--theme--text);font-size:var(--paragraph-small--font-size);font-weight:var(--font-weight--500)}
.menu_dot{position:absolute;top:1.5rem;width:.25rem;height:.25rem;border-radius:var(--radius--round);background-color:var(--theme--text);opacity:0}
.dropdown{position:relative}
.dropdown_toggle{display:flex;flex-direction:column;align-items:center;gap:var(--size--0-5rem)}
.dropdown_list{position:absolute;top:calc(100% + .75rem);left:50%;transform:translateX(-50%);
  display:none;flex-direction:column;min-width:11rem;padding:.5rem;
  border-radius:var(--radius--main);background-color:var(--swatch--light-3);box-shadow:0 8px 24px #00000026}
.dropdown.open .dropdown_list{display:flex}
.dropdown_link{padding:.5rem .75rem;border-radius:var(--radius--small);color:var(--swatch--dark);font-size:var(--paragraph-small--font-size)}
.dropdown_link:hover{background-color:var(--swatch--light-2)}
.nav_cta{display:flex;align-items:center;gap:var(--space--small);
  padding:var(--size--0-75rem) var(--size--1-5rem);border-radius:var(--radius--round);background-color:var(--swatch--brand)}
.nav_cta .menu_link{color:var(--swatch--dark)}
.nav_cta_mobile{display:none}

/* ---- Hero ---- */
.hero_contain{padding-top:var(--padding-vertical--xlarge);padding-bottom:var(--padding-vertical--small)}

/* ---- Clients & quotes marquee ---- */
.marquee{display:flex;overflow:hidden;width:100%}
.marquee_track{display:flex;flex:none;align-items:stretch;animation:loop-move-left linear infinite}
.clients_track{gap:.5rem;animation-duration:40s}
.quotes_track{gap:.5rem;animation-duration:70s}
.marquee[data-hover-pause]:hover .marquee_track{animation-play-state:paused}
@keyframes loop-move-left{to{transform:translateX(-100%)}}

.client_card{flex:none;display:flex;align-items:center;justify-content:center;height:7rem;padding:0 1rem;
  border-radius:var(--radius--main);background-color:var(--theme--card-background)}
.client_logo_box{display:flex;align-items:center;justify-content:center;max-width:7rem;max-height:5rem}
.client_logo{filter:grayscale(1);object-fit:contain;max-width:100%;max-height:100%}

/* ---- How it works grid ---- */
.how_grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space--large)}
.how_col{display:flex;flex-direction:column;gap:var(--space--medium)}
.text_content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space--small)}

/* ---- Technology tabs ---- */
.tech_tabs{position:relative;aspect-ratio:16/9;border-radius:var(--radius--main);overflow:hidden}
.tech_tabs_content{position:absolute;inset:0;width:100%;height:100%}
.tech_pane{position:absolute;inset:0;width:100%;height:100%;border:1px solid var(--theme--border);border-radius:var(--radius--main);overflow:hidden;opacity:0;visibility:hidden;transition:opacity .3s}
.tech_pane.is-active{opacity:1;visibility:visible}
.tech_tabs_menu{position:absolute;top:1.5rem;left:1.5rem;z-index:5;display:flex;flex-direction:column;
  width:22.7rem;max-width:calc(100% - 3rem);padding:.25rem;border-radius:var(--radius--main);
  background-color:var(--swatch--dark-1);color:var(--swatch--light)}
.tech_tab{display:flex;align-items:flex-start;gap:var(--space--small);padding:var(--card-padding--small);border-radius:.25rem;color:var(--swatch--light);position:relative;overflow:hidden}
.tech_tab.is-active{background-color:var(--swatch--dark-2)}
.tech_tab_num{flex:none;display:flex;align-items:center;justify-content:center;width:2.3rem;aspect-ratio:1;border-radius:var(--radius--round);background-color:var(--swatch--dark);font-size:var(--paragraph-small--font-size)}
.tech_tab_body{flex:1;text-align:left;padding-top:.45rem}
.tech_tab_head{display:block;font-weight:var(--font--primary-medium)}
.tech_tab_more{display:grid;grid-template-rows:0fr;overflow:hidden;transition:grid-template-rows .35s ease}
.tech_tab.is-active .tech_tab_more{grid-template-rows:1fr;padding-top:.35rem}
.tech_tab_more>span{min-height:0;font-size:var(--paragraph-small--font-size)}
/* auto-advance progress bar (original .loader): fills 0->100% while tab is active */
.tech_tab .loader{position:absolute;top:0;left:0;width:0%;height:.125rem;background-color:var(--theme--progress-line)}

/* ---- Features grid ---- */
.feature_grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--grid-gap--main)}
.feature_col{position:relative;display:flex;flex-direction:column;justify-content:flex-end;aspect-ratio:1}
.feature_small{aspect-ratio:1;max-width:66.5%}
.feature_small.align-right{align-self:flex-end}
.feature_card{aspect-ratio:1;border-radius:var(--radius--main);background-color:var(--theme--card-background);overflow:hidden}
.feature_card_inner{position:relative;display:flex;flex-direction:column;justify-content:space-between;
  width:100%;height:100%;padding:var(--space--medium);gap:var(--padding-horizontal--main)}
.heading_wrap{position:relative;z-index:4;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space--small)}
.feature_visual{position:absolute;inset:0;z-index:0}

/* ---- Customers head ---- */
.customers_head{padding-bottom:var(--padding-vertical--small);padding-top:0}

/* quote card */
.quote_item{position:relative;width:100%;height:100%;overflow:hidden;border-radius:var(--radius--main);background-color:var(--theme--card-background)}
.quote_card{flex:none;aspect-ratio:2/2.5;width:33svw;max-width:25rem}
.quote_tag_wrap{position:absolute;inset:auto 0 0 auto;z-index:3;display:flex;justify-content:flex-end;align-items:center;width:100%;padding:var(--card-padding--medium)}
.quote_tag{padding:var(--size--0-25rem) var(--size--0-5rem);border-radius:var(--radius--round);background-color:var(--theme--nav-background);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-transform:uppercase;font-size:.7rem}
.quote_logo{position:absolute;top:var(--card-padding--medium);left:var(--card-padding--medium);z-index:3;max-width:8rem;max-height:2.5rem}
.quote_logo img{max-width:100%;max-height:2.5rem;object-fit:contain}
.quote_content{position:absolute;inset:auto 0 0;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space--extra-small);padding:var(--card-padding--medium)}
.quote_author{margin-top:.25rem}
.author_name{font-weight:var(--font--primary-medium)}
.author_title{font-size:var(--paragraph-small--font-size);color:var(--theme--text-secondary)}
.quote_image{position:absolute;inset:0;z-index:0}

/* ---- Sectors ---- */
.sectors_grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--grid-gap--main)}
.sector_card{position:relative;aspect-ratio:2/2.5;border-radius:var(--radius--main);overflow:hidden;background-color:var(--theme--card-background)}
.sector_inner{position:relative;z-index:4;display:flex;flex-direction:column;justify-content:flex-end;width:100%;height:100%;padding:var(--space--medium)}
.sector_titles{display:flex;flex-direction:column;gap:.3rem}
.fs2_subheading{color:#c2d0d3}
.sector_inner .text_content{gap:var(--space--small)}

/* ---- Stats ---- */
.stats_grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space--large)}
.stat{display:flex;flex-direction:column;gap:.5rem}
.stat .fs0{display:block}

/* ---- Onboarding auto-tabs ---- */
.auto_tabs_wrap{position:relative}
.auto_tabs_col{max-width:41.3%;margin-right:auto}
.auto_tabs_menu{display:flex;flex-direction:column;margin-top:5rem}
.auto_tab{position:relative;display:flex;flex-direction:column;gap:var(--grid-gap--main);padding:24px 0;border-bottom:1px solid var(--theme--border);text-align:left}
.auto_tab_head{display:flex;justify-content:space-between;color:var(--theme--text)}
.auto_tab_desc{display:none;color:var(--theme--text-secondary);max-width:80%}
.auto_tab.is-active .auto_tab_desc{display:block}
.auto_tab_mobile{display:none}
.auto_tab_bar{display:none;position:absolute;left:0;bottom:-1px;height:1px;background-color:var(--swatch--brand-3)}
.auto_tab.is-active .auto_tab_bar{display:block}
.auto_tabs_panes{position:absolute;inset:0 0 auto auto;width:49.7%;aspect-ratio:2/2.6}
.auto_pane{position:absolute;inset:0;width:100%;height:100%;border-radius:var(--radius--main);overflow:hidden;opacity:0;visibility:hidden;transition:opacity .4s}
.auto_pane.is-active{opacity:1;visibility:visible}

/* ---- Company / careers grid (12-col) ---- */
.company_grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--grid-gap--main)}
.company_large{grid-column:span 7;position:relative;border-radius:var(--radius--main)}
.company_small{grid-column:span 5;position:relative;aspect-ratio:1;border-radius:var(--radius--main);overflow:hidden}
.company_large.is-purple{background-color:var(--swatch--brand-2)}
.company_large.is-yellow{background-color:var(--swatch--brand-1)}
.company_card_inner{padding:var(--space--medium);height:100%;display:flex;flex-direction:column;justify-content:space-between;color:var(--swatch--dark)}
.company_card_top{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space--medium)}
.company_card_top .cta_dot,.eyebrow .cta_dot{background-color:var(--swatch--dark)}
.company_facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--grid-gap--main);margin-top:var(--space--medium)}
.company_fact{padding:var(--grid-gap--main) 0;border-top:1px solid #1f1f1f26;font-weight:var(--font--primary-medium)}
.company_small .quote_item h4,.company_small .quote_content,.company_small .author_title{color:var(--swatch--light)}

.careers{display:flex;flex-direction:column;gap:.5rem;width:100%}
.career_grid{display:grid;grid-template-columns:2fr 1fr 1fr;width:100%;padding:var(--grid-gap--main) var(--card-padding--small);align-items:center;color:var(--swatch--dark)}
.career_head{border-bottom:1px solid #1f1f1f26}
.career_link{display:block;border-radius:var(--radius--small)}
.career_link:hover{background-color:#1f1f1f12}
.career_grid p{font-size:var(--paragraph-small--font-size)}

/* ---- FAQ ---- */
.faq_layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--padding-vertical--small)}
.faq_wrap{display:flex;flex-direction:column}
.faq_item{width:100%;border-bottom:1px solid var(--theme--border)}
.faq_toggle{display:flex;justify-content:space-between;align-items:center;gap:2.25rem;width:100%;padding:var(--space--small) 0}
.faq_toggle p{font-weight:var(--font--primary-medium)}
.faq_icon{position:relative;flex:none;width:1.3em;height:1.3em}
.faq_icon::before,.faq_icon::after{content:"";position:absolute;top:50%;left:50%;width:1em;height:2px;background:var(--theme--text);transform:translate(-50%,-50%);transition:transform .3s}
.faq_icon::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq_item.open .faq_icon::after{transform:translate(-50%,-50%) rotate(0)}
.faq_content_wrap{display:grid;grid-template-rows:0fr;overflow:hidden;transition:grid-template-rows .35s ease}
.faq_item.open .faq_content_wrap{grid-template-rows:1fr}
.faq_content{min-height:0;padding-bottom:0}
.faq_item.open .faq_content{padding-bottom:var(--space--small)}
.faq_content p{color:var(--theme--text)}
.faq_content p+p{margin-top:1rem}

/* ---- Footer ---- */
.footer{border-top-left-radius:var(--radius--main);border-top-right-radius:var(--radius--main)}
.footer .container{padding-bottom:var(--padding-vertical--small)}
.footer_top{display:flex;flex-direction:column;gap:var(--space--large);padding-bottom:var(--space--small);border-bottom:1px solid var(--theme--border)}
.footer_logo{width:8.2rem;height:auto;color:var(--theme--text)}
.footer_content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space--large);padding:var(--space--small) 0;border-bottom:1px solid var(--theme--border)}
.footer_col{display:flex;flex-direction:column;gap:var(--space--small)}
.footer_stay{display:flex;align-items:center;gap:1rem}
.footer_li img{width:24px;height:24px}
.footer_sitemap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space--medium)}
.footer_links{display:flex;flex-direction:column;color:var(--theme--text-secondary)}
.footer_links a{padding:.15rem 0}
.newsletter{max-width:32rem;display:flex;flex-direction:column;gap:var(--space--extra-small)}
.newsletter_field{position:relative;display:flex;align-items:center;width:100%}
.newsletter_input{flex:1;height:2.7em;padding:var(--space--extra-small);padding-right:7rem;border:1px solid var(--theme--border);border-radius:var(--radius--round);background-color:var(--theme--input-background);color:var(--theme--text);font-size:1.2rem;font-family:inherit}
.newsletter_input::placeholder{color:var(--theme--border)}
.newsletter_submit{position:absolute;right:.25rem;border:0}
.footer_bottom{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;padding-top:var(--space--extra-small)}
.footer_copy{text-align:center}
.footer_legal{text-align:right;display:flex;gap:1rem;justify-content:flex-end}
.locale_dropdown{position:relative;display:inline-block}
.locale_toggle{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:var(--radius--round);background-color:#f4f4f4;color:#000}
.locale_flag{width:1.5rem;height:1.5rem}
.locale_list{position:absolute;bottom:calc(100% + .5rem);left:0;display:none;flex-direction:column;min-width:10rem;padding:.5rem;border-radius:var(--radius--main);background-color:#fff;box-shadow:0 8px 24px #00000026}
.locale_dropdown.open .locale_list{display:flex}
.locale{display:flex;align-items:center;gap:.5rem;padding:.5rem;border-radius:var(--radius--small);color:#000}
.locale:hover{background-color:#e6e6e6}

/* =========================================================================
   Responsive — token overrides match original media queries
   ========================================================================= */

/* tablet: <=991px */
@media screen and (max-width:991px){
  :root{
    --display--font-size:5rem;
    --padding-horizontal--main:2rem;
    --padding-horizontal--small:1rem;
    --padding-horizontal--large:2rem;
    --size--2rem:1.75rem; --size--2-5rem:2.25rem; --size--3rem:2.5rem; --size--3-5rem:2.75rem;
    --size--4rem:3rem; --size--4-5rem:3.5rem; --size--5rem:4rem; --size--5-5rem:4.5rem;
    --size--6rem:5rem; --size--6-5rem:5.25rem; --size--7rem:5.5rem; --size--7-5rem:6rem;
    --size--8rem:6.5rem; --size--8-5rem:6.75rem; --size--9rem:7rem; --size--9-5rem:7.5rem;
    --size--10rem:8rem; --size--12rem:10rem; --size--14rem:12rem; --size--15rem:13rem; --size--16rem:14rem;
  }
  /* nav collapses to mobile menu */
  .nav_menu{flex-direction:column;align-items:flex-start;gap:0;width:100%;padding:0;box-shadow:0 2px 12px #0003}
  .nav_top{justify-content:space-between;align-items:center;width:100%;padding:var(--space--extra-small) var(--card-padding--small)}
  .nav_burger{display:flex}
  .menu_links{flex-direction:column;align-items:flex-start;width:100%;padding:0 var(--card-padding--small);gap:var(--space--extra-small);overflow:hidden;max-height:0;transition:max-height .35s ease,padding .35s ease}
  .nav_menu.open .menu_links{max-height:80vh;padding-bottom:var(--card-padding--small)}
  .menu_link{flex-direction:row;justify-content:flex-start;width:100%;padding:var(--space--extra-small) 0;gap:var(--space--extra-small);font-size:var(--size--1rem)}
  .menu_dot{position:relative;top:0}
  .dropdown{width:100%}
  .dropdown_toggle{flex-direction:row;justify-content:flex-start;width:100%}
  .dropdown_list{position:static;transform:none;box-shadow:none;background:transparent;padding-left:1rem}
  .nav_cta{display:none}
  .nav_cta_mobile{display:block;padding-top:.5rem}

  .how_grid{grid-template-columns:1fr;gap:var(--space--large)}
  .feature_grid{grid-template-columns:1fr}
  .feature_small,.feature_small.align-right{max-width:100%}
  .quote_card{width:50svw;max-width:none}
  .sectors_grid{grid-template-columns:1fr}
  .stats_grid{grid-template-columns:1fr}
  .faq_layout{grid-template-columns:1fr;gap:var(--space--large)}

  /* tech tabs: menu below, taller */
  .tech_tabs{aspect-ratio:auto;height:77svh}
  .tech_tabs_menu{top:auto;bottom:0;left:0;width:100%;max-width:none}
  .tech_tab{width:100%}

  /* auto-tabs become a stacked accordion with inline image */
  .auto_tabs_col{max-width:none}
  .auto_tabs_menu{margin-top:1rem}
  .auto_tabs_panes{display:none}
  .auto_tab_mobile{position:relative;display:none;width:100%;margin-top:2rem;border-radius:12px;overflow:hidden;aspect-ratio:2/2.5}
  .auto_tab.is-active .auto_tab_mobile{display:block}

  /* company grid stacks */
  .company_large,.company_small{grid-column:auto}
  .company_grid{grid-template-columns:1fr}
  .career_grid{grid-template-columns:2fr;gap:var(--grid-gap--main);background:transparent}
  .career_head{display:none}

  .footer_content{grid-template-columns:1fr}
  .footer_bottom{grid-template-columns:1fr;gap:1rem;text-align:center}
  .footer_legal{justify-content:center}
}

/* landscape phone: <=767px */
@media screen and (max-width:767px){
  :root{
    --display--font-size:4rem;
    --padding-horizontal--main:1rem;
    --padding-horizontal--small:.5rem;
    --padding-horizontal--large:1rem;
    --size--1-5rem:1.2rem;
    --size--2rem:1.5rem; --size--2-5rem:2rem; --size--3rem:2.25rem; --size--3-5rem:2.375rem;
    --size--4rem:2.5rem; --size--4-5rem:2.75rem; --size--5rem:3rem; --size--5-5rem:3.25rem;
    --size--6rem:3.5rem; --size--6-5rem:3.75rem; --size--7rem:4rem; --size--7-5rem:4.25rem;
    --size--8rem:4.5rem; --size--8-5rem:4.75rem; --size--9rem:5rem; --size--9-5rem:5.25rem;
    --size--10rem:5.5rem; --size--12rem:6rem; --size--14rem:7rem; --size--15rem:7.5rem; --size--16rem:8rem;
  }
  .quote_card{width:75svw}
  .footer_sitemap{grid-template-columns:1fr 1fr}
}

/* portrait phone: <=479px */
@media screen and (max-width:479px){
  :root{--display--font-size:3.5rem}
  .footer_sitemap{grid-template-columns:1fr}
}

/* ---- Hero on-load reveal (original IX2 a-22: PAGE_FINISH,
   opacity 0->1 + TRANSFORM_MOVE y 5rem->0, duration 500ms) ---- */
.hero_reveal{opacity:0;transform:translateY(5rem);transition:opacity .5s ease,transform .5s ease}
.hero_reveal.is-visible{opacity:1;transform:none}

/* ---- Scroll reveal: fade + rise, staggered (original features/cards) ---- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.reveal.is-visible{opacity:1;transform:none}

/* staggered children inside a revealed section */
.reveal [data-reveal-item]{opacity:0;transform:translateY(28px);
  transition:opacity .6s ease,transform .6s ease;transition-delay:0ms}
.reveal.is-visible [data-reveal-item]{opacity:1;transform:none}
.reveal.is-visible [data-reveal-item]:nth-child(2){transition-delay:80ms}
.reveal.is-visible [data-reveal-item]:nth-child(3){transition-delay:160ms}
.reveal.is-visible [data-reveal-item]:nth-child(4){transition-delay:240ms}
.reveal.is-visible [data-reveal-item]:nth-child(5){transition-delay:320ms}
.reveal.is-visible [data-reveal-item]:nth-child(6){transition-delay:400ms}

@media (prefers-reduced-motion:reduce){
  .reveal,.hero_reveal,.reveal [data-reveal-item]{opacity:1;transform:none;transition:none}
  .marquee_track{animation:none}
  .tech_tab .loader{display:none}
  *{scroll-behavior:auto}
}
