/* ============================================================================
   LOADSHUB — shared stylesheet for every page (marketing + legal)
   Tokens derived from the app's src/index.css so site and product match.
   ========================================================================== */

:root{
  --ink:#080C16; --ink-raised:#0B111E; --ink-deep:#05080F; --ink-line:#1D283A;
  --cyan:#0DA2E7; --white:#F8FAFC; --muted:#7588A3;
  --green:#21C45D; --amber:#F59F0A; --violet:#AF57DB; --red:#EF4444;
  --paper:#FFFFFF; --fog:#F1F5F9;
  --ink-on-light:#0B1220; --body-on-light:#475569; --hairline-light:#E2E8F0;
  --grad-ai:linear-gradient(120deg,#0DA2E7 0%,#6D8BF0 45%,#AF57DB 100%);
  --glow-cyan:0 0 60px -12px rgba(13,162,231,.45);
  --shadow-card:0 1px 2px rgba(8,12,22,.06),0 12px 32px -12px rgba(8,12,22,.14);
  --shadow-app:0 40px 90px -30px rgba(0,0,0,.85),0 0 0 1px rgba(255,255,255,.05) inset;
  --display:'Satoshi','Inter',system-ui,sans-serif;
  --body:'Inter',system-ui,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,monospace;
  --container:1200px; --pad-x:64px; --sect-y:150px;
}
@media (max-width:1199px){:root{--pad-x:32px;--sect-y:110px}}
@media (max-width:767px){:root{--pad-x:20px;--sect-y:76px}}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--ink);color:var(--white);font-family:var(--body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{margin:0;font-family:var(--display);font-weight:700}
p{margin:0}
::selection{background:var(--cyan);color:var(--ink)}
/* Below-the-fold reveals are hidden until GSAP runs. The HERO IS NOT.
   Hiding the hero heading until GSAP + document.fonts.ready resolved was
   costing ~3s of LCP render delay: the largest contentful element could not
   paint until three CDN scripts had arrived. The hero now paints immediately
   and animates with a CSS keyframe that needs no JavaScript at all. */
html.js-anim [data-reveal]{opacity:0}

/* Hero entrance — pure CSS, runs at first paint, no JS dependency.
   The H1 animates TRANSFORM ONLY (never opacity) so it counts as painted
   the instant it renders, which is what LCP measures. */
@keyframes ls-rise{from{transform:translateY(18px)}to{transform:translateY(0)}}
@keyframes ls-fade-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes ls-fade{from{opacity:0}to{opacity:1}}

.hero_heading{animation:ls-rise .7s cubic-bezier(.16,1,.3,1) both}
.hero_eyebrow{animation:ls-fade-rise .5s cubic-bezier(.16,1,.3,1) both .05s}
.hero_sub{animation:ls-fade-rise .6s cubic-bezier(.16,1,.3,1) both .16s}
.hero_actions{animation:ls-fade-rise .6s cubic-bezier(.16,1,.3,1) both .24s}
.hero_trust{animation:ls-fade .5s ease both .34s}
.hero_frame-wrap{animation:ls-fade-rise .9s cubic-bezier(.16,1,.3,1) both .2s}
.hero_veil{animation:ls-fade 1.2s ease both}

.container-large{width:100%;max-width:var(--container);margin:0 auto;padding:0 var(--pad-x)}
.container-narrow{width:100%;max-width:820px;margin:0 auto;padding:0 var(--pad-x)}
.padding-section{padding-top:var(--sect-y);padding-bottom:var(--sect-y)}
.text-align-center{text-align:center}
.mx-auto{margin-left:auto;margin-right:auto}

.heading-display-xl{font-family:var(--display);font-weight:900;font-size:clamp(38px,6.4vw,84px);line-height:1;letter-spacing:-.035em}
.heading-display-l{font-family:var(--display);font-weight:700;font-size:clamp(32px,4.6vw,58px);line-height:1.06;letter-spacing:-.03em}
.heading-display-m{font-family:var(--display);font-weight:700;font-size:clamp(26px,3.2vw,42px);line-height:1.1;letter-spacing:-.02em}
.text-size-large{font-size:clamp(17px,1.5vw,20px);line-height:1.55}
.text-size-small{font-size:15px;line-height:1.55}
.text-style-eyebrow{font-weight:600;font-size:13px;letter-spacing:.14em;text-transform:uppercase;line-height:1.2}
.text-color-muted{color:var(--muted)}
.text-color-cyan{color:var(--cyan)}

/* ---------------- buttons ---------------- */
.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:0 28px;height:52px;border-radius:999px;border:1px solid transparent;background:var(--cyan);color:var(--ink);font-family:var(--body);font-weight:600;font-size:16px;cursor:pointer;white-space:nowrap;transition:background .25s,border-color .25s,color .25s}
.button:hover{background:#3BB8EE}
.button.is-secondary{background:transparent;color:var(--white);border-color:var(--ink-line)}
.button.is-secondary:hover{background:rgba(255,255,255,.05);border-color:var(--muted)}
.button.is-outline-light{background:transparent;color:var(--ink-on-light);border-color:#CBD5E1}
.button.is-outline-light:hover{background:#fff;border-color:#94A3B8}
.button.is-small{height:44px;padding:0 22px;font-size:15px}
.button.is-full{width:100%}
.button:disabled{opacity:.55;cursor:not-allowed}

/* ---------------- nav ---------------- */
.navbar_wrap{position:fixed;inset:0 0 auto 0;z-index:100;height:76px;display:flex;align-items:center;background:transparent;border-bottom:1px solid transparent}
.navbar_wrap.is-solid,.navbar_wrap.is-scrolled{background:rgba(8,12,22,.86);backdrop-filter:blur(16px);border-bottom-color:rgba(29,40,58,.7)}
/* legal pages sit on a dark body from the first pixel — nav is solid always */
body.is-legal .navbar_wrap{background:rgba(8,12,22,.86);backdrop-filter:blur(16px);border-bottom-color:rgba(29,40,58,.7)}
.navbar_inner{width:100%;max-width:var(--container);margin:0 auto;padding:0 var(--pad-x);display:flex;align-items:center;gap:40px}
.navbar_logo-lockup{display:flex;flex-direction:column;line-height:1}
.brand_identity{display:flex;align-items:center;gap:10px}
.brand_icon{display:block;width:36px;height:36px;flex-shrink:0;border-radius:8px}
.brand_wordmark{display:flex;flex-direction:column;line-height:1}
.navbar_logo{font-family:var(--display);font-weight:900;font-size:22px;letter-spacing:-.02em}
.navbar_byline{font-size:11px;letter-spacing:.08em;color:var(--muted);margin-top:3px;font-weight:500}
.navbar_menu{display:flex;align-items:center;gap:30px;margin-left:auto}
.navbar_link{font-size:15px;color:#C7D2E0;transition:color .2s}
.navbar_link:hover{color:var(--white)}
.navbar_actions{display:flex;align-items:center;gap:18px}
.navbar_toggle{display:none;background:none;border:0;color:var(--white);padding:8px;cursor:pointer;margin-left:auto}
@media (max-width:1100px){.navbar_menu{gap:22px}.navbar_link{font-size:14.5px}}
@media (max-width:991px){.navbar_wrap{height:60px}.navbar_menu,.navbar_actions{display:none}.navbar_toggle{display:block}.navbar_byline{display:none}}

/* ---------------- hero ---------------- */
.section_hero{position:relative;padding:160px 0 0;overflow:hidden}
@media (max-width:991px){.section_hero{padding-top:104px}}
.hero_veil{position:absolute;top:-12%;left:50%;transform:translateX(-50%);width:1300px;height:760px;pointer-events:none;background:radial-gradient(58% 50% at 50% 32%,rgba(13,162,231,.22),transparent 70%)}
.hero_inner{position:relative;z-index:2;text-align:center}
.hero_eyebrow{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;border-radius:999px;border:1px solid rgba(13,162,231,.4);background:rgba(13,162,231,.07);color:var(--cyan);margin-bottom:26px}
.hero_eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 8px var(--cyan)}
.hero_heading{max-width:17ch;margin:0 auto}
.hero_sub{max-width:60ch;margin:26px auto 0;color:#B4C2D4}
.hero_actions{display:flex;gap:14px;justify-content:center;margin-top:38px;flex-wrap:wrap}
.hero_trust{margin-top:22px;color:var(--muted);font-size:14px}

/* ---------------- shared app-frame chrome ---------------- */
.app_frame{position:relative;background:linear-gradient(180deg,#0C1420,#090F1A);border:1px solid var(--ink-line);border-radius:18px;box-shadow:var(--shadow-app);overflow:hidden}
.app_bar{display:flex;align-items:center;gap:8px;padding:13px 16px;border-bottom:1px solid var(--ink-line);background:rgba(255,255,255,.025)}
.app_dot{width:10px;height:10px;border-radius:50%;background:#22304a}
.app_title{margin-left:10px;font-size:12.5px;color:var(--muted);font-weight:500}
.app_pillbtn{margin-left:auto;font-size:11px;font-weight:600;color:var(--cyan);background:rgba(13,162,231,.12);border:1px solid rgba(13,162,231,.32);padding:4px 11px;border-radius:999px;white-space:nowrap}

.hero_frame-wrap{position:relative;margin-top:66px;perspective:1800px}
.hero_frame{max-width:1120px;margin:0 auto;border-radius:18px 18px 0 0;transform:rotateX(7deg);transform-origin:top center;box-shadow:var(--glow-cyan),var(--shadow-app)}
.hero_frame::after{content:"";position:absolute;inset:auto 0 0 0;height:170px;background:linear-gradient(180deg,transparent,var(--ink));pointer-events:none;z-index:3}

/* ---------------- dispatch board ---------------- */
.board_head,.board_row{display:grid;grid-template-columns:172px repeat(5,minmax(0,1fr))}
.board_head{border-bottom:1px solid var(--ink-line);background:rgba(255,255,255,.015)}
.board_head span{padding:11px 10px;font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);font-weight:600}
.board_row{border-bottom:1px solid rgba(29,40,58,.5);min-height:64px}
.board_truck{display:flex;align-items:center;gap:10px;padding:0 14px;border-right:1px solid var(--ink-line);position:relative}
.board_avatar{flex:none;width:28px;height:28px;border-radius:8px;display:grid;place-items:center;font-size:10.5px;font-weight:700;font-family:var(--mono);background:rgba(13,162,231,.14);color:#8FD8F7;border:1px solid rgba(13,162,231,.24)}
.board_truck b{display:block;font-family:var(--body);font-size:12.5px;font-weight:600}
.board_truck i{display:block;font-family:var(--mono);font-size:10.5px;color:#8195AE;font-style:normal;margin-top:1px}
.board_watch{position:absolute;left:32px;top:14px;width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px rgba(33,196,93,.18)}
.board_cell{padding:10px 5px}
.board_pill{display:flex;flex-direction:column;justify-content:center;gap:2px;height:100%;min-height:42px;padding:7px 11px;border-radius:9px}
.board_pill b{font-family:var(--mono);font-weight:700;font-size:10.5px;letter-spacing:-.01em}
.board_pill span{font-size:10px;opacity:.8}
.pill-cyan{background:linear-gradient(135deg,rgba(13,162,231,.20),rgba(13,162,231,.10));border:1px solid rgba(13,162,231,.42);color:#9EDDF8}
.pill-green{background:linear-gradient(135deg,rgba(33,196,93,.18),rgba(33,196,93,.08));border:1px solid rgba(33,196,93,.4);color:#93E8B6}
.pill-amber{background:linear-gradient(135deg,rgba(245,159,10,.17),rgba(245,159,10,.07));border:1px solid rgba(245,159,10,.38);color:#F5CE87}
.pill-violet{background:linear-gradient(135deg,rgba(175,87,219,.18),rgba(175,87,219,.08));border:1px solid rgba(175,87,219,.4);color:#DFB4F1}
.board_span2{grid-column:span 2}
@media (max-width:991px){
  .hero_frame-wrap{perspective:none;margin-top:44px}
  .hero_frame{transform:none}
  .scroller{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .board_head,.board_row{min-width:760px}
}

/* ---------------- value bar ---------------- */
.section_value{border-top:1px solid var(--ink-line);position:relative;z-index:2}
.value_grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:80px 0}
.value_item{padding:0 34px;border-left:1px solid var(--ink-line)}
.value_item:first-child{border-left:0;padding-left:0}
.value_icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:18px;background:rgba(13,162,231,.12);color:var(--cyan);border:1px solid rgba(13,162,231,.24);margin-bottom:18px}
.value_item h4{font-family:var(--body);font-weight:600;font-size:18px;margin-bottom:8px}
.value_item p{font-size:15px;color:var(--muted)}
@media (max-width:767px){.value_grid{grid-template-columns:minmax(0,1fr);gap:38px;padding:56px 0}.value_item{padding:0;border-left:0}}

/* ---------------- section header ---------------- */
.sect_head{max-width:720px;margin:0 auto 64px;text-align:center}
.sect_head .text-style-eyebrow{margin-bottom:16px;display:block}
.sect_head p{margin-top:18px;color:#B4C2D4}
.sect_head.on-light p{color:var(--body-on-light)}
.sect_head.on-light h2{color:var(--ink-on-light)}

/* ---------------- AI parsing ---------------- */
.section_ai{position:relative;overflow:hidden}
.section_ai::before{content:"";position:absolute;inset:0;background:radial-gradient(46% 38% at 74% 42%,rgba(175,87,219,.11),transparent 70%);pointer-events:none}
.ai_grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:74px;align-items:center;position:relative;z-index:2}
.ai_badge{display:inline-block;padding:6px 14px;border-radius:999px;background:var(--grad-ai);color:#fff;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;margin-bottom:22px}
.ai_intro p{color:#B4C2D4;margin-top:22px;max-width:46ch}
.ai_points{display:grid;gap:24px;margin-top:40px}
.ai_point{display:flex;gap:16px}
.ai_point-num{flex:none;width:30px;height:30px;border-radius:50%;border:1px solid rgba(13,162,231,.45);color:var(--cyan);display:grid;place-items:center;font-family:var(--mono);font-size:12px;font-weight:700}
.ai_point h4{font-family:var(--body);font-weight:600;font-size:17px;margin-bottom:5px}
.ai_point p{margin:0;font-size:15px;color:var(--muted);max-width:42ch}
.ai_stage{display:grid;grid-template-columns:minmax(0,1fr) 46px minmax(0,1fr);align-items:center}

/* --- realistic rate confirmation document --- */
.ratecon{position:relative;background:#fff;border-radius:10px;padding:0;box-shadow:0 34px 74px -24px rgba(0,0,0,.8);overflow:hidden;font-size:9px;color:#1E293B;line-height:1.45}
.rc_head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:14px 16px 12px;border-bottom:2px solid #0B1220}
.rc_broker{font-family:var(--display);font-weight:900;font-size:14px;letter-spacing:-.02em;color:#0B1220;line-height:1.1}
.rc_broker span{display:block;font-family:var(--body);font-weight:500;font-size:7.5px;letter-spacing:.05em;color:#64748B;margin-top:3px;text-transform:uppercase}
.rc_meta{text-align:right;font-family:var(--mono);font-size:8px;color:#475569;white-space:nowrap}
.rc_meta b{display:block;font-size:10px;color:#0B1220}
.rc_title{background:#0B1220;color:#fff;text-align:center;font-weight:700;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;padding:5px}
.rc_body{padding:12px 16px 14px}
.rc_cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:12px}
.rc_lbl{font-size:6.8px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:#94A3B8;margin-bottom:2px}
.rc_val{font-size:9px;font-weight:600;color:#0B1220}
.rc_val.mono{font-family:var(--mono);font-weight:500}
.rc_tbl{width:100%;border-collapse:collapse;margin-bottom:11px}
.rc_tbl th{background:#F1F5F9;font-size:6.8px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#475569;text-align:left;padding:5px 7px;border:1px solid #E2E8F0}
.rc_tbl td{font-size:8.4px;padding:6px 7px;border:1px solid #E2E8F0;vertical-align:top}
.rc_tbl td b{display:block;color:#0B1220;font-size:8.6px}
.rc_tbl td i{font-style:normal;color:#64748B;font-family:var(--mono);font-size:7.6px}
.rc_pay{margin-left:auto;width:60%;border-collapse:collapse}
.rc_pay td{font-size:8.4px;padding:4px 7px}
.rc_pay td:last-child{text-align:right;font-family:var(--mono)}
.rc_pay tr.total td{border-top:1.5px solid #0B1220;font-weight:700;font-size:10px;color:#0B1220;padding-top:6px}
.rc_terms{margin-top:12px;padding-top:9px;border-top:1px solid #E2E8F0;font-size:6.8px;line-height:1.55;color:#94A3B8}
.rc_sign{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:12px}
.rc_sign div{border-top:1px solid #CBD5E1;padding-top:3px;font-size:6.8px;color:#94A3B8;letter-spacing:.06em;text-transform:uppercase}
/* highlight sweep over the fields the parser lifts */
.rc_hl{position:relative;background:rgba(13,162,231,0);border-radius:2px;transition:background .3s}
.rc_scan{position:absolute;left:0;right:0;top:0;height:34%;pointer-events:none;opacity:0;background:linear-gradient(180deg,rgba(13,162,231,0),rgba(13,162,231,.14),rgba(13,162,231,0));border-top:1px solid rgba(13,162,231,.5);border-bottom:1px solid rgba(13,162,231,.5)}

.ai_arrow{display:grid;place-items:center;color:var(--cyan);font-size:20px}
.ai_fields{display:grid;gap:9px}
.ai_chip{display:flex;align-items:center;gap:12px;background:var(--ink-raised);border:1px solid var(--ink-line);border-radius:10px;padding:11px 14px}
.ai_chip-key{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);width:66px;flex:none}
.ai_chip-line{flex:none;width:18px;height:1px;background:var(--cyan);transform-origin:left center}
.ai_chip-value{font-family:var(--mono);font-size:13.5px;font-weight:500;color:var(--white)}
.ai_chip.is-flag{border-color:rgba(245,159,10,.42);background:rgba(245,159,10,.06)}
.ai_chip.is-flag .ai_chip-value{color:#F5CE87}
@media (max-width:991px){
  .ai_grid{grid-template-columns:minmax(0,1fr);gap:48px}
  .ai_stage{grid-template-columns:minmax(0,1fr);gap:20px}
  .ai_arrow{transform:rotate(90deg);height:34px}
}

/* ---------------- product tour ---------------- */
.tour_item{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:80px;align-items:center;margin-bottom:130px}
.tour_item:last-child{margin-bottom:0}
.tour_item.is-reverse .tour_copy{order:2}
.tour_copy .text-style-eyebrow{display:block;margin-bottom:14px}
.tour_copy h3{margin-bottom:18px}
.tour_copy p{color:#B4C2D4;max-width:47ch}
.tour_list{display:grid;gap:14px;margin-top:28px}
.tour_list div{display:flex;gap:11px;align-items:flex-start;font-size:15.5px;color:#C7D2E0}
.tour_list span{color:var(--cyan);flex:none;margin-top:1px}
@media (max-width:991px){.tour_item{grid-template-columns:minmax(0,1fr);gap:38px;margin-bottom:82px}.tour_item.is-reverse .tour_copy{order:0}.tour_visual{order:-1}}

/* load detail */
.ld_grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}
.ld_main{padding:20px;border-right:1px solid var(--ink-line)}
.ld_side{padding:20px;background:rgba(255,255,255,.015)}
.ld_num{font-family:var(--mono);font-size:19px;font-weight:700;color:var(--white);letter-spacing:-.02em}
.ld_rate{font-family:var(--mono);font-size:22px;font-weight:700;color:var(--green);margin-top:2px}
.ld_stops{margin-top:20px;position:relative;padding-left:22px}
.ld_stops::before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:2px;background:linear-gradient(180deg,var(--cyan),var(--green))}
.ld_stop{position:relative;padding-bottom:18px}
.ld_stop:last-child{padding-bottom:0}
.ld_stop::before{content:"";position:absolute;left:-21px;top:4px;width:10px;height:10px;border-radius:50%;background:var(--ink);border:2px solid var(--cyan)}
.ld_stop:last-child::before{border-color:var(--green)}
.ld_stop b{display:block;font-family:var(--body);font-size:13.5px;font-weight:600}
.ld_stop i{display:block;font-family:var(--mono);font-size:11px;color:var(--muted);font-style:normal;margin-top:2px}
.ld_docs h5{font-family:var(--body);font-size:10.5px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);margin:0 0 12px}
.ld_doc{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--ink-line);border-radius:9px;margin-bottom:8px;font-size:12.5px;color:#C7D2E0}
.ld_doc em{margin-left:auto;font-style:normal;font-size:10px;color:var(--green)}
.ld_doc-ic{width:24px;height:24px;border-radius:6px;background:rgba(13,162,231,.13);color:#8FD8F7;display:grid;place-items:center;font-size:11px;flex:none}
@media (max-width:600px){.ld_grid{grid-template-columns:minmax(0,1fr)}.ld_main{border-right:0;border-bottom:1px solid var(--ink-line)}}

/* generic data rows */
.row3{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) 100px;gap:12px;align-items:center;padding:13px 18px;border-bottom:1px solid rgba(29,40,58,.5);font-size:13px}
.row3:last-child{border-bottom:0}
.row3.is-head{background:rgba(255,255,255,.015);font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);font-weight:600}
.row3 .mono{font-family:var(--mono);font-size:12.5px;color:var(--white)}
.inv_total{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-top:1px solid var(--ink-line);background:rgba(33,196,93,.05)}
.inv_total b{font-family:var(--mono);font-size:18px;color:var(--green)}
.tag{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:4px 9px;border-radius:6px;display:inline-block}
.tag-green{background:rgba(33,196,93,.15);color:#93E8B6}
.tag-cyan{background:rgba(13,162,231,.15);color:#9EDDF8}
.tag-amber{background:rgba(245,159,10,.15);color:#F5CE87}
.tag-violet{background:rgba(175,87,219,.16);color:#DFB4F1}
.tag-red{background:rgba(239,68,68,.15);color:#FCA5A5}
.tag-muted{background:rgba(117,136,163,.14);color:#A6B5C9}

/* carrier lookup mockup */
.cl_search{display:flex;gap:8px;padding:16px 18px;border-bottom:1px solid var(--ink-line)}
.cl_input{flex:1;height:38px;border-radius:9px;border:1px solid var(--ink-line);background:#080D16;display:flex;align-items:center;padding:0 12px;font-family:var(--mono);font-size:12.5px;color:var(--white)}
.cl_btn{height:38px;padding:0 16px;border-radius:9px;background:var(--cyan);color:var(--ink);display:grid;place-items:center;font-size:12.5px;font-weight:600}
.cl_result{padding:18px}
.cl_name{font-family:var(--display);font-size:17px;font-weight:700;margin-bottom:3px}
.cl_dba{font-size:11.5px;color:var(--muted);margin-bottom:12px}
.cl_badges{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:16px}
.cl_grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 18px}
.cl_f label{display:block;font-size:9.5px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}
.cl_f div{font-size:12.5px;color:#E2E8F0}
.cl_f div.mono{font-family:var(--mono);font-size:12px}
.cl_f a{color:var(--cyan)}

/* analytics */
.an_kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:1px solid var(--ink-line)}
.an_kpi{padding:18px;border-left:1px solid var(--ink-line)}
.an_kpi:first-child{border-left:0}
.an_kpi label{display:block;font-size:9.5px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.an_kpi b{font-family:var(--mono);font-size:22px;font-weight:700;color:var(--white);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.an_kpi i{font-style:normal;font-size:11px;margin-left:7px}
.an_up{color:var(--green)}.an_down{color:#FCA5A5}
.an_chart{display:flex;align-items:flex-end;gap:9px;height:132px;padding:20px 18px 0}
.an_bar{flex:1;border-radius:5px 5px 0 0;background:linear-gradient(180deg,rgba(13,162,231,.85),rgba(13,162,231,.28));transform-origin:bottom center}
.an_bar.is-peak{background:linear-gradient(180deg,rgba(33,196,93,.9),rgba(33,196,93,.3))}
.an_axis{display:flex;gap:9px;padding:8px 18px 18px}
.an_axis span{flex:1;text-align:center;font-family:var(--mono);font-size:9px;color:#5B6C85}

/* goals + progress */
.goal_item{padding:15px 18px;border-bottom:1px solid rgba(29,40,58,.5)}
.goal_item:last-child{border-bottom:0}
.goal_top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:9px}
.goal_top b{font-family:var(--body);font-size:13.5px;font-weight:600}
.goal_top span{font-family:var(--mono);font-size:12px;color:var(--muted)}
.goal_track{height:7px;border-radius:99px;background:rgba(29,40,58,.8);overflow:hidden}
.goal_fill{height:100%;border-radius:99px;transform-origin:left center;background:linear-gradient(90deg,var(--cyan),#6D8BF0)}
.goal_fill.is-done{background:linear-gradient(90deg,var(--green),#4ADE80)}
.goal_fill.is-warn{background:linear-gradient(90deg,var(--amber),#FBBF24)}

/* dispatcher rate tiers */
.tier_row{display:grid;grid-template-columns:34px minmax(0,1fr) 92px 84px;gap:12px;align-items:center;padding:12px 18px;border-bottom:1px solid rgba(29,40,58,.5);font-size:13px}
.tier_row:last-child{border-bottom:0}
.tier_row.is-head{background:rgba(255,255,255,.015);font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);font-weight:600}
.tier_badge{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-family:var(--mono);font-size:11px;font-weight:700;background:rgba(175,87,219,.16);color:#DFB4F1;border:1px solid rgba(175,87,219,.3)}
.tier_row .mono{font-family:var(--mono);font-size:12.5px;color:var(--white)}
.tier_row.is-active{background:rgba(13,162,231,.06)}

/* phone */
.phone_wrap{display:grid;place-items:center}
.phone{width:274px;background:linear-gradient(180deg,#0C1420,#090F1A);border:8px solid #141C2A;border-radius:38px;padding:0 0 18px;box-shadow:var(--shadow-app);overflow:hidden}
.phone_notch{height:26px;display:grid;place-items:center}
.phone_notch::after{content:"";width:86px;height:5px;border-radius:99px;background:#1E2937}
.phone_hd{padding:8px 18px 16px;border-bottom:1px solid var(--ink-line)}
.phone_hd b{display:block;font-family:var(--display);font-size:17px}
.phone_hd i{font-style:normal;font-size:11.5px;color:var(--muted)}
.phone_card{margin:14px 14px 0;padding:14px;border:1px solid var(--ink-line);border-radius:13px;background:rgba(255,255,255,.02)}
.phone_card .n{font-family:var(--mono);font-size:13px;font-weight:700;color:#9EDDF8}
.phone_card .r{font-family:var(--mono);font-size:17px;font-weight:700;color:var(--green);margin:3px 0 10px}
.phone_leg{display:flex;align-items:center;gap:8px;font-size:11.5px;color:#C7D2E0;margin-top:7px}
.phone_leg span{width:7px;height:7px;border-radius:50%;flex:none}
.phone_btn{margin:14px 14px 0;height:42px;border-radius:11px;background:var(--cyan);color:var(--ink);display:grid;place-items:center;font-size:13.5px;font-weight:600}

/* ---------------- teams ---------------- */
.section_persona{background:var(--paper);color:var(--ink-on-light)}
.persona_grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:60px}
.persona_card{background:var(--fog);border:1px solid var(--hairline-light);border-radius:18px;padding:38px 34px}
.persona_card .text-style-eyebrow{display:block;margin-bottom:14px}
.persona_card h3{font-size:26px;letter-spacing:-.02em;margin-bottom:14px;color:var(--ink-on-light)}
.persona_card>p{color:var(--body-on-light);font-size:15.5px}
.persona_list{display:grid;gap:13px;margin-top:24px}
.persona_list div{display:flex;gap:11px;font-size:15px;color:var(--body-on-light);align-items:flex-start}
.persona_list span{flex:none;color:#0284C7;margin-top:1px}
@media (max-width:767px){.persona_grid{grid-template-columns:minmax(0,1fr);gap:18px}.persona_card{padding:30px 24px}}

/* ---------------- pricing ---------------- */
.section_pricing{background:var(--fog);color:var(--ink-on-light)}
.pricing_grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:stretch}
.price_card{background:var(--paper);border:1px solid var(--hairline-light);border-radius:20px;padding:36px 32px;display:flex;flex-direction:column;box-shadow:var(--shadow-card);position:relative}
.price_card.is-featured{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(13,162,231,.12),var(--shadow-card)}
.price_flag{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--cyan);color:var(--ink);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:5px 14px;border-radius:999px;white-space:nowrap}
.price_name{font-family:var(--display);font-weight:700;font-size:22px;color:var(--ink-on-light)}
.price_seats{font-size:14px;color:#64748B;margin-top:5px}
.price_amount{display:flex;align-items:baseline;gap:5px;margin:22px 0 6px}
.price_amount b{font-family:var(--mono);font-weight:700;font-size:52px;letter-spacing:-.03em;color:var(--ink-on-light);font-variant-numeric:tabular-nums}
.price_amount span{font-size:15px;color:#64748B}
.price_note{font-size:13.5px;color:#64748B;min-height:20px}
.price_card .button{margin-top:26px}
.price_feats{display:grid;gap:12px;margin-top:28px;padding-top:26px;border-top:1px solid var(--hairline-light)}
.price_feats div{display:flex;gap:10px;font-size:14.5px;color:var(--body-on-light);align-items:flex-start}
.price_feats span{flex:none;color:#16A34A;margin-top:1px}
.pricing_foot{margin-top:36px;text-align:center;color:#64748B;font-size:14.5px}
@media (max-width:991px){.pricing_grid{grid-template-columns:minmax(0,1fr);gap:18px}}

/* ---------------- signup ---------------- */
.section_signup{position:relative;overflow:hidden}
.signup_grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:80px;align-items:center;position:relative;z-index:2}
.signup_copy p{color:#B4C2D4;margin-top:20px;max-width:44ch}
.signup_perks{display:grid;gap:14px;margin-top:32px}
.signup_perks div{display:flex;gap:11px;font-size:15.5px;color:#C7D2E0;align-items:flex-start}
.signup_perks span{color:var(--green);flex:none}
.signup_card{background:var(--ink-raised);border:1px solid var(--ink-line);border-radius:20px;padding:36px 34px;box-shadow:var(--shadow-app)}
.signup_card h3{font-size:24px;margin-bottom:6px}
.signup_card>p{font-size:14.5px;color:var(--muted);margin-bottom:26px}
.field{margin-bottom:16px}
.field label{display:block;font-size:12.5px;font-weight:600;color:#C7D2E0;margin-bottom:7px}
.field input,.field select{width:100%;height:48px;border-radius:12px;border:1px solid var(--ink-line);background:#080D16;color:var(--white);padding:0 14px;font-family:var(--body);font-size:15px;outline:none;transition:border-color .2s,box-shadow .2s}
.field input:focus,.field select:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(13,162,231,.16)}
.field input::placeholder{color:#4C5D75}
.plan_pick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.plan_opt{position:relative}
.plan_opt input{position:absolute;opacity:0;pointer-events:none}
.plan_opt label{display:block;text-align:center;border:1px solid var(--ink-line);border-radius:12px;padding:11px 6px;cursor:pointer;margin:0;transition:border-color .2s,background .2s}
.plan_opt label b{display:block;font-family:var(--mono);font-size:15px;color:var(--white);font-weight:700}
.plan_opt label i{display:block;font-style:normal;font-size:10.5px;color:var(--muted);margin-top:3px}
.plan_opt input:checked+label{border-color:var(--cyan);background:rgba(13,162,231,.1)}
.plan_opt input:focus-visible+label{outline:2px solid var(--cyan);outline-offset:2px}
.signup_fine{margin-top:16px;font-size:12.5px;color:#5B6C85;line-height:1.5}
.signup_fine a{color:var(--muted);text-decoration:underline;text-underline-offset:2px}
.form_msg{margin-top:14px;font-size:13.5px;border-radius:10px;padding:11px 13px;display:none}
.form_msg.is-err{display:block;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.35);color:#FCA5A5}
.form_msg.is-ok{display:block;background:rgba(33,196,93,.1);border:1px solid rgba(33,196,93,.35);color:#93E8B6}
@media (max-width:991px){.signup_grid{grid-template-columns:minmax(0,1fr);gap:44px}.signup_card{padding:28px 22px}}

/* ---------------- FAQ ---------------- */
.section_faq{background:var(--paper);color:var(--ink-on-light)}
.faq_list{max-width:800px;margin:0 auto;border-top:1px solid var(--hairline-light)}
.faq_item{border-bottom:1px solid var(--hairline-light)}
.faq_q{width:100%;background:none;border:0;text-align:left;padding:24px 40px 24px 0;font-family:var(--body);font-size:17px;font-weight:600;color:var(--ink-on-light);cursor:pointer;position:relative}
.faq_q::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:22px;color:#94A3B8;font-weight:400}
.faq_item.is-open .faq_q::after{content:"–"}
.faq_a{max-height:0;overflow:hidden;transition:max-height .3s ease}
.faq_item.is-open .faq_a{max-height:400px}
.faq_a p{padding:0 40px 24px 0;color:var(--body-on-light);font-size:15.5px}

/* ---------------- final CTA ---------------- */
.cta_band{position:relative;overflow:hidden;text-align:center;padding:170px 0}
@media (max-width:767px){.cta_band{padding:92px 0}}
.cta_band .hero_veil{top:0;height:100%}
.cta_wordmark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:var(--display);font-weight:900;font-size:clamp(120px,19vw,280px);color:rgba(255,255,255,.032);letter-spacing:-.05em;white-space:nowrap;pointer-events:none;user-select:none}
@media (max-width:767px){.cta_wordmark{display:none}}
.cta_inner{position:relative;z-index:2}
.cta_inner .text-size-large{color:#B4C2D4;margin:22px auto 0;max-width:48ch}
.cta_actions{display:flex;gap:14px;justify-content:center;margin-top:36px;flex-wrap:wrap}
.cta_reassurance{margin-top:24px;color:var(--muted);font-size:15px}
.cta_reassurance a{color:var(--cyan)}

/* ---------------- footer ---------------- */
.footer_wrap{background:var(--ink-deep);padding:78px 0 38px;border-top:1px solid var(--ink-line)}
.footer_top{display:grid;grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr));gap:48px;padding-bottom:46px}
.footer_brand .navbar_logo{font-size:24px}
.footer_brand .navbar_byline{display:block;margin-top:5px}
.footer_socials{display:flex;gap:10px;margin-top:22px}
.footer_socials a{width:36px;height:36px;border-radius:10px;border:1px solid var(--ink-line);display:grid;place-items:center;color:var(--muted);font-size:13px;transition:color .2s,border-color .2s}
.footer_socials a:hover{color:var(--white);border-color:var(--muted)}
.footer_col h5{font-family:var(--body);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 17px}
.footer_col ul{list-style:none;margin:0;padding:0;display:grid;gap:11px}
.footer_col a{font-size:15px;color:#C7D2E0}
.footer_col a:hover{color:var(--cyan)}
.footer_legal{border-top:1px solid var(--ink-line);padding-top:30px;display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}
.footer_entity{font-size:12px;line-height:1.6;color:#5B6C85}
.footer_entity a{color:#5B6C85;text-decoration:underline;text-underline-offset:2px}
.footer_copy{font-size:12px;color:#5B6C85}
@media (max-width:991px){.footer_top{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px}}
@media (max-width:600px){.footer_top{grid-template-columns:minmax(0,1fr)}}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .hero_frame{transform:none}
}

/* ============================================================================
   MOBILE OPTIMISATION + ACCESSIBILITY
   Added after a Lighthouse mobile audit (LCP 3.5s, a11y 94).
   ========================================================================== */

/* ---- contrast fixes (10 Lighthouse colour-contrast failures) -------------
   #0284C7 on white measured ~3.9:1 and #16A34A ~3.0:1 — both under the 4.5:1
   needed for 13px semibold. #5B6C85 on the near-black footer was ~3.4:1.     */
/* Darken the eyebrow ONLY where it sits on a light background. The first
   version of this rule was unscoped and pushed the eyebrows on the DARK
   sections to #0369A1 too, taking them from ~6.4:1 down to 3.29:1. */
.section_persona .text-style-eyebrow[style*="0284C7"],
.section_pricing .text-style-eyebrow[style*="0284C7"],
.section_faq .text-style-eyebrow[style*="0284C7"],
.section_integrations .text-style-eyebrow[style*="0284C7"],
.section_persona .sect_head .text-style-eyebrow,
.section_pricing .sect_head .text-style-eyebrow,
.section_faq .sect_head .text-style-eyebrow{color:#0369A1 !important}
/* on dark, the bright brand cyan is the accessible choice (~6.4:1) */
.section_tour .text-color-cyan,
.section_ai .text-color-cyan,
.section_signup .text-color-cyan,
.legal_hero .text-color-cyan{color:#38BDF8 !important}
.persona_card .text-style-eyebrow[style*="16A34A"]{color:#15803D !important}
.persona_card .text-style-eyebrow[style*="B45309"]{color:#9A4A05 !important}
.persona_card .text-style-eyebrow[style*="7E22CE"]{color:#6B21A8 !important}
.signup_fine,.footer_entity,.footer_copy{color:#8FA1B8}
.signup_fine a,.footer_entity a{color:#A9B8CB}
.stat_note,.integrations_note,.ai_caption{color:#8FA1B8}

/* ---- touch targets: 44px minimum ---------------------------------------- */
.navbar_toggle{min-width:44px;min-height:44px;display:none;place-items:center}
@media (max-width:991px){.navbar_toggle{display:grid}}
.navbar_logo-lockup{padding:6px 0;min-height:44px;justify-content:center}
.footer_col a,.footer_entity a{display:inline-block;padding:3px 0;min-height:24px}
@media (max-width:991px){
  .footer_col ul{gap:4px}
  .footer_col a{padding:9px 0;min-height:44px;line-height:26px}
}

/* decorative links inside product mockups must not be focusable or announced
   as interactive — they are illustrations, not navigation */
.cl_f a,.ld_doc a{pointer-events:none}

/* ---- MOBILE NAVIGATION --------------------------------------------------
   The hamburger previously had no handler and no panel: on mobile the site
   had no navigation at all.                                                 */
.nav_panel{
  position:fixed;inset:0;z-index:99;background:rgba(8,12,22,.98);
  backdrop-filter:blur(20px);
  display:flex;flex-direction:column;
  padding:calc(60px + env(safe-area-inset-top)) 24px calc(24px + env(safe-area-inset-bottom));
  transform:translateY(-100%);visibility:hidden;
  transition:transform .32s cubic-bezier(.16,1,.3,1),visibility .32s;
  overflow-y:auto;overscroll-behavior:contain;
}
.nav_panel.is-open{transform:translateY(0);visibility:visible}
.nav_panel_links{display:flex;flex-direction:column;gap:2px;margin-top:16px}
.nav_panel_links a{
  font-family:var(--display);font-weight:700;font-size:26px;letter-spacing:-.02em;
  padding:14px 0;min-height:56px;display:flex;align-items:center;
  border-bottom:1px solid rgba(29,40,58,.6);color:var(--white);
}
.nav_panel_links a:active{color:var(--cyan)}
.nav_panel_foot{margin-top:auto;padding-top:28px;display:grid;gap:12px}
.nav_panel_foot .button{height:56px;font-size:17px}
.nav_panel_login{
  display:flex;align-items:center;justify-content:center;min-height:52px;
  color:#C7D2E0;font-size:16px;border:1px solid var(--ink-line);border-radius:999px;
}
body.nav-open{overflow:hidden}
@media (min-width:992px){.nav_panel{display:none}}

/* ---- 320-414px layout repairs ------------------------------------------- */
@media (max-width:600px){

  /* dispatcher tier table: the label column collapsed to 0px at 320,
     making "First $10,000 gross" invisible. Stack instead. */
  .tier_row{grid-template-columns:30px minmax(0,1fr) auto;gap:8px;padding:12px 14px}
  .tier_row.is-head{display:none}
  .tier_row>div:nth-child(3){font-family:var(--mono);font-size:12.5px;color:var(--white);text-align:right}
  .tier_row>div:nth-child(4){grid-column:2 / -1;margin-top:-4px}

  /* invoice rows: customer column was 68px — unreadable */
  .row3{grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:12px 14px}
  .row3.is-head{display:none}
  .row3>div:nth-child(2){text-align:right}
  .row3>div:nth-child(3){grid-column:1 / -1}

  /* analytics KPIs were 92px wide holding 22px mono figures */
  .an_kpis{grid-template-columns:minmax(0,1fr)}
  .an_kpi{border-left:0;border-bottom:1px solid var(--ink-line);padding:14px 16px}
  .an_kpi:last-child{border-bottom:0}
  .an_kpi b{font-size:26px}

  /* carrier lookup: the email address overflowed the 112px column */
  .cl_grid{grid-template-columns:minmax(0,1fr)}
  .cl_f div{overflow-wrap:anywhere}
  .cl_f[style*="span 2"]{grid-column:auto !important}

  /* rate confirmation was rendering at 9px — illegible */
  .ratecon{font-size:11px}
  .rc_broker{font-size:16px}
  .rc_val{font-size:11px}
  .rc_lbl{font-size:8px}
  .rc_tbl th{font-size:8px}
  .rc_tbl td{font-size:10px;padding:7px 6px}
  .rc_tbl td b{font-size:10.5px}
  .rc_tbl td i{font-size:9px}
  .rc_pay td{font-size:10.5px}
  .rc_pay tr.total td{font-size:12px}
  .rc_terms{font-size:8.5px;
    display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
  .rc_meta{font-size:9px}
  .rc_meta b{font-size:11px}
  .rc_sign{display:none}

  /* plan picker: 72px per option holding "$110 / 11+ users" */
  .plan_pick{grid-template-columns:minmax(0,1fr);gap:10px}
  .plan_opt label{display:flex;align-items:center;justify-content:space-between;
    padding:14px 16px;min-height:56px;text-align:left}
  .plan_opt label b{font-size:17px}
  .plan_opt label i{margin-top:0;font-size:13px}

  /* phone mockup was 274px fixed inside a 280px container */
  .phone{width:min(274px,100%)}

  /* hero headline had line-height 1.0 at 38px — too tight over 4 lines */
  .hero_heading{line-height:1.06;font-size:clamp(31px,8.4vw,38px)}
  .hero_sub{font-size:16.5px}
  .hero_actions{flex-direction:column;gap:10px}
  .hero_actions .button{width:100%}
  .cta_actions{flex-direction:column;gap:10px}
  .cta_actions .button{width:100%}

  /* form controls: 16px minimum stops iOS auto-zoom on focus */
  .field input,.field select{font-size:16px;height:52px}

  .price_amount b{font-size:44px}
  .signup_card{padding:24px 18px}
  .persona_card{padding:26px 20px}
  .legal_content h2{margin-top:38px}
}

@media (max-width:380px){
  .value_item h4{font-size:17px}
  .heading-display-m{font-size:24px}
  .app_title{display:none}
  .app_pillbtn{margin-left:0}
}

/* ---- respect reduced motion for the new CSS hero animation -------------- */
@media (prefers-reduced-motion:reduce){
  .hero_heading,.hero_eyebrow,.hero_sub,.hero_actions,.hero_trust,
  .hero_frame-wrap,.hero_veil{animation:none !important}
  .nav_panel{transition:none}
}

/* ---- selectors re-pointed after heading-order fixes ---------------------
   The tags changed (h4->h3, h5->h2/div) to keep headings sequential, so the
   original tag-based rules no longer matched. Same visual result.          */
.value_item .value_h{font-family:var(--body);font-weight:600;font-size:18px;margin:0 0 8px}
.ai_point .ai_point_h{font-family:var(--body);font-weight:600;font-size:17px;margin:0 0 5px}
.ld_docs .ld_label{font-family:var(--body);font-size:10.5px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);margin:0 0 12px}
.footer_col .footer_h{font-family:var(--body);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 17px}

/* extracted-field chips: key(66) + connector(18) + gaps + padding exceeded a
   320px viewport by ~6px, clipping the right edge of each value */
@media (max-width:400px){
  .ai_chip{flex-wrap:wrap;gap:6px 10px;padding:10px 12px}
  .ai_chip-key{width:auto;font-size:9.5px}
  .ai_chip-line{width:12px}
  .ai_chip-value{font-size:12.5px;flex:1 1 100%;overflow-wrap:anywhere}
}

/* ============================================================================
   HORIZONTAL CAROUSELS (mobile only)
   The page ran 24 screens deep at 390px. Sections that are naturally a set of
   peers — value points, product tour, money tour, teams, pricing — become
   swipeable tracks below 768px, collapsing N stacked blocks into 1.

   Touch is handled by native CSS scroll-snap, NOT by a GSAP pinned scrub.
   Hijacking vertical scroll into horizontal breaks iOS momentum scrolling,
   re-triggers on every address-bar resize, and strands keyboard users.
   GSAP drives the progress rail and the card entrance instead.
   ========================================================================== */

.tour_track{display:block}
.hs_rail,.hs_hint{display:none}

@media (max-width:767px){
  .h-scroll{
    display:flex;flex-wrap:nowrap;align-items:stretch;
    overflow-x:auto;overflow-y:hidden;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;      /* don't chain to the page/browser back gesture */
    gap:14px;
    padding:0 var(--pad-x) 4px;
    margin:0 calc(var(--pad-x) * -1);   /* bleed to the screen edges */
    scroll-padding-inline:var(--pad-x);
    scrollbar-width:none;
  }
  .h-scroll::-webkit-scrollbar{display:none}
  .h-scroll > *{flex:0 0 86%;min-width:0;scroll-snap-align:start}

  /* the two product tours: each item becomes a self-contained card */
  .tour_track.h-scroll > .tour_item{
    flex:0 0 88%;
    display:flex;flex-direction:column;gap:22px;
    margin-bottom:0;padding:24px 20px;
    background:rgba(255,255,255,.022);
    border:1px solid var(--ink-line);border-radius:18px;
  }
  .tour_track.h-scroll > .tour_item .tour_visual{order:-1}
  .tour_track.h-scroll > .tour_item.is-reverse .tour_copy{order:0}
  .tour_track.h-scroll > .tour_item .tour_copy p{max-width:none}
  .tour_track.h-scroll > .tour_item .tour_list{margin-top:20px}

  .value_grid.h-scroll > .value_item{flex:0 0 78%;padding:0;border-left:0}
  .persona_grid.h-scroll{margin-top:44px}
  .persona_grid.h-scroll > .persona_card{flex:0 0 86%}
  .pricing_grid.h-scroll > .price_card{flex:0 0 84%}

  /* progress rail */
  .hs_rail{
    display:block;height:3px;border-radius:99px;
    background:rgba(29,40,58,.9);overflow:hidden;
    margin:22px var(--pad-x) 0;
  }
  .hs_thumb{
    display:block;height:100%;width:100%;border-radius:99px;
    background:linear-gradient(90deg,var(--cyan),#6D8BF0);
    transform-origin:left center;transform:scaleX(.33);
  }
  .hs_hint{
    display:block;text-align:center;margin-top:11px;
    font-size:12.5px;color:#8FA1B8;transition:opacity .3s;
  }
  .hs_hint.is-gone{opacity:0}

  /* rails on the light sections */
  .section_persona .hs_rail,.section_pricing .hs_rail{background:#E2E8F0}
  .section_persona .hs_hint,.section_pricing .hs_hint{color:#475569}

  /* pricing sits inside a carousel now — the "most popular" flag needs room */
  .pricing_grid.h-scroll{padding-top:14px}
}

@media (prefers-reduced-motion:reduce){
  .h-scroll{scroll-behavior:auto}
  .hs_hint{transition:none}
}

/* ============================================================================
   CUSTOM — "we'll build it, free"
   Sits between the dark Money section and the light Teams section.
   ========================================================================== */
.section_custom{position:relative;overflow:hidden;background:var(--ink)}
.custom_veil{position:absolute;top:-18%;right:-12%;width:920px;height:720px;pointer-events:none;
  background:radial-gradient(50% 50% at 62% 40%,rgba(13,162,231,.13),transparent 70%)}
.custom_grid{position:relative;z-index:2;display:grid;
  grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:74px;align-items:center}
.custom_copy .text-style-eyebrow{display:block;margin-bottom:16px}
.custom_copy h2{max-width:16ch}
.custom_copy>p{color:#B4C2D4;margin-top:22px;max-width:46ch}
.custom_points{display:grid;gap:22px;margin:38px 0}
.custom_point{display:flex;gap:15px}
.custom_point-ic{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;
  font-size:15px;background:rgba(13,162,231,.12);color:var(--cyan);border:1px solid rgba(13,162,231,.24)}
.custom_point h3{font-family:var(--body);font-weight:600;font-size:16.5px;margin:2px 0 4px}
.custom_point p{margin:0;font-size:14.5px;color:var(--muted);max-width:42ch}

.tailor_card{position:relative}
.tl_list{position:relative;overflow:hidden}
.tl_row{position:relative;display:grid;grid-template-columns:24px minmax(0,1fr);gap:14px;
  align-items:start;padding:15px 18px;border-bottom:1px solid rgba(29,40,58,.5)}
.tl_check{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;
  color:var(--cyan);background:rgba(13,162,231,.12);border:1px solid rgba(13,162,231,.34);
  margin-top:1px}
.tl_check svg{width:13px;height:13px}
.tl_cat{display:block;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:#C7D2E0;margin-bottom:4px}
.tl_desc{margin:0;font-size:13.5px;line-height:1.5;color:var(--muted)}

.tl_scan{position:absolute;left:0;right:0;top:0;height:54px;pointer-events:none;opacity:0;
  background:linear-gradient(180deg,rgba(13,162,231,0),rgba(13,162,231,.15),rgba(13,162,231,0));
  border-top:1px solid rgba(13,162,231,.45);border-bottom:1px solid rgba(13,162,231,.45)}
.tl_foot{padding:15px 18px;border-top:1px solid var(--ink-line);background:rgba(13,162,231,.05);
  font-size:13px;color:#B4C2D4}

@media (max-width:991px){
  .custom_grid{grid-template-columns:minmax(0,1fr);gap:44px}
  .custom_copy h2,.custom_copy>p{max-width:none}
}
@media (max-width:600px){
  .tl_row{padding:14px 14px;gap:12px}
  .tl_desc{font-size:13px}
}
