/* DealerBrainAI marketing site — shared styles for app detail pages */
:root{
  --bg:#D5DDD2; --bg2:#F4F8F3; --s1:#E9EFE8; --s2:#DFE7DE; --s3:#CCD6CB;
  --line:rgba(16,30,22,.13); --line2:rgba(16,30,22,.20);
  --ink:#0D1611; --ink2:#45544B; --ink3:#718076;
  --green:#16A34A; --blue:#2563EB; --gold:#B7791F; --orange:#EA580C; --purple:#9333EA; --red:#DC2626; --cyan:#0891B2;
  --glass:rgba(255,255,255,.5); --glass-brd:rgba(255,255,255,.75);
  --F:'Plus Jakarta Sans',system-ui,-apple-system,sans-serif;
  --M:'JetBrains Mono',ui-monospace,monospace;
  --ac:var(--green); /* per-page accent, overridden on <body> */
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth}
body{background:linear-gradient(180deg,#DEE5DB 0%,#CAD4C8 50%,#D2DACE 100%);background-attachment:fixed;
  color:var(--ink);font-family:var(--F);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
::selection{background:rgba(22,163,74,.18)}
:focus-visible{outline:2px solid var(--ac);outline-offset:3px;border-radius:6px}
/* light-theme: white text on solid-color buttons */
.btn-solid,.nav-cta,.modal .submit{color:#fff}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;gap:18px;
  padding:14px clamp(16px,4vw,40px);background:rgba(247,250,246,.6);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);
  border-bottom:1px solid var(--line)}
.brand{font-size:17px;font-weight:800;letter-spacing:-.02em;white-space:nowrap}
.brand .b{color:var(--green)}
.nav .crumb{font-size:12.5px;color:var(--ink2);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav .crumb b{color:var(--ac)}
/* Book a demo dead-center; hamburger hard-right */
.nav-cta{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  font-size:12.5px;font-weight:800;background:var(--green);color:#fff;padding:8px 16px;border-radius:20px;white-space:nowrap}
.nav .menu-btn{margin-left:auto}
@media(max-width:700px){.nav .crumb{display:none}}

/* app hero */
.hero-app{min-height:66vh;display:flex;flex-direction:column;justify-content:center;text-align:center;align-items:center;
  padding:130px 20px 70px;position:relative}
.hero-app .eyebrow{color:var(--ac)}
.hero-app h1{font-size:clamp(34px,6.4vw,68px);font-weight:800;letter-spacing:-.033em;line-height:1.04;margin:16px 0 18px;max-width:22ch;text-wrap:balance}
.hero-app p{max-width:58ch;color:var(--ink2);font-size:clamp(15px,1.9vw,18px)}
.eyebrow{font-family:var(--M);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;display:block;margin-bottom:12px}

/* segments */
section.seg{padding:clamp(56px,8vw,100px) clamp(16px,5vw,48px);border-top:1px solid var(--line);overflow:hidden}
.wrap{max-width:1080px;margin:0 auto}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(26px,5vw,64px);align-items:center}
@media(max-width:900px){.grid2{grid-template-columns:1fr}.grid2 .stage{order:2}.grid2 .txt{order:1}}
h2{font-size:clamp(26px,3.8vw,42px);font-weight:800;letter-spacing:-.028em;line-height:1.08;margin-bottom:14px;text-wrap:balance}
.lede{color:var(--ink2);font-size:clamp(14.5px,1.7vw,16.5px);max-width:52ch;margin-bottom:20px}
ul.feat{list-style:none;display:flex;flex-direction:column;gap:10px}
ul.feat li{display:flex;gap:10px;font-size:14px;color:var(--ink2);align-items:flex-start}
ul.feat li b{color:var(--ink);font-weight:700}
ul.feat .tick{flex-shrink:0;width:18px;height:18px;border-radius:5px;display:flex;align-items:center;justify-content:center;
  font-size:10.5px;font-weight:800;margin-top:3px;background:color-mix(in srgb,var(--ac) 16%,transparent);color:var(--ac)}

/* reveal (gated on html.js) */
.js .rv{opacity:0;transform:translateY(30px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.js .rv.in{opacity:1;transform:none}
.js .rv.d1{transition-delay:.08s}.js .rv.d2{transition-delay:.16s}
@media(prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none;transition:none}}

/* device frames + demo-UI atoms */
.stage{position:relative;display:flex;justify-content:center}
.glow{position:absolute;inset:12% 6%;border-radius:50%;filter:blur(70px);opacity:.28;z-index:0;background:var(--ac)}
.phone{position:relative;z-index:1;width:min(310px,86vw);background:rgba(250,252,249,.62);backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);border:1px solid var(--glass-brd);border-radius:32px;
  padding:14px 12px 18px;box-shadow:0 24px 58px rgba(20,40,28,.18)}
.phone::before{content:'';display:block;width:92px;height:5px;background:var(--s3);border-radius:3px;margin:2px auto 12px}
.panel{position:relative;z-index:1;width:min(520px,92vw);background:rgba(250,252,249,.62);backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);border:1px solid var(--glass-brd);border-radius:18px;
  padding:16px;box-shadow:0 24px 58px rgba(20,40,28,.18)}
.panel .dots{display:flex;gap:5px;margin-bottom:12px}
.panel .dots i{width:8px;height:8px;border-radius:50%;background:var(--s3)}
.ui-card{background:var(--s1);border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:9px}
.ui-eyebrow{font-family:var(--M);font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);margin-bottom:6px}
.ui-title{font-size:13.5px;font-weight:800;line-height:1.3}
.ui-sub{font-size:11px;color:var(--ink2);margin-top:2px}
.ui-mono{font-family:var(--M);font-size:10px;color:var(--ink3)}
.chip{display:inline-block;font-family:var(--M);font-size:8.5px;font-weight:700;letter-spacing:.05em;padding:2.5px 7px;border-radius:5px;text-transform:uppercase}
.ui-btn{display:block;text-align:center;font-size:12px;font-weight:800;padding:10px;border-radius:9px;margin-top:9px}
.bar{height:7px;border-radius:4px;background:var(--s3);overflow:hidden;margin-top:6px}
.bar i{display:block;height:100%;border-radius:4px;background:var(--ac)}
.krow{display:flex;justify-content:space-between;align-items:baseline;font-size:11.5px;color:var(--ink2);padding:5px 0;border-bottom:1px dashed var(--line)}
.krow:last-child{border-bottom:none}
.krow b{color:var(--ink);font-family:var(--M);font-size:12px}

/* flow diagram (scanner "one photo, every department") */
.flow{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center;max-width:880px;margin:34px auto 0}
.flow .src{grid-row:span 3}
.flow .arrow{font-size:20px;color:var(--ac);text-align:center}
@media(max-width:760px){.flow{grid-template-columns:1fr}.flow .arrow{transform:rotate(90deg)}}

/* cross-app band + cta */
.band{border-top:1px solid var(--line);padding:clamp(50px,7vw,84px) clamp(16px,5vw,48px);text-align:center}
.band h3{font-size:clamp(22px,3.4vw,36px);font-weight:800;letter-spacing:-.025em;margin-bottom:10px;text-wrap:balance}
.band p{color:var(--ink2);max-width:60ch;margin:0 auto}
.xgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-top:28px;text-align:left}
.xcard{background:var(--s1);border:1px solid var(--line);border-radius:13px;padding:15px;transition:border-color .15s}
.xcard:hover{border-color:var(--line2)}
.xcard .ic{font-size:19px;margin-bottom:6px}
.xcard h4{font-size:13.5px;font-weight:800;margin-bottom:3px}
.xcard p{font-size:11.5px;color:var(--ink2);line-height:1.5;margin:0}
.btn{display:inline-block;font-weight:800;font-size:15px;padding:14px 30px;border-radius:30px;transition:transform .15s}
.btn:hover{transform:translateY(-1px)}
.btn-solid{background:var(--green);color:#fff}
.btn-ghost{border:1.5px solid var(--line2);color:var(--ink)}
.cta-row{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:26px}

footer{border-top:1px solid var(--line);padding:40px clamp(16px,5vw,48px);display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;color:var(--ink3);font-size:12.5px}
footer .brand{font-size:15px}

/* product switcher — Apple-style full-width dropdown that cascades down */
.menu-btn{display:flex;flex-direction:column;justify-content:center;gap:4px;width:38px;height:34px;padding:0 8px;
  background:transparent;border:1px solid var(--line2);border-radius:9px;cursor:pointer;flex-shrink:0;position:relative;z-index:101}
.menu-btn span{display:block;height:2px;width:100%;background:var(--ink);border-radius:2px;transition:transform .36s cubic-bezier(.2,.7,.2,1),opacity .2s}
.menu-btn:hover,.menu-btn.open{border-color:var(--ink2)}
.menu-btn.open span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.menu-btn.open span:nth-child(2){opacity:0}
.menu-btn.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

.drawer-ov{position:fixed;inset:0;z-index:80;background:rgba(20,32,24,.28);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);
  opacity:0;pointer-events:none;transition:opacity .4s}
.drawer-ov.open{opacity:1;pointer-events:auto}
.drawer{position:fixed;left:0;right:0;top:0;z-index:90;background:rgba(255,255,255,.9);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--line2);box-shadow:0 30px 70px rgba(20,40,28,.2);
  padding:76px clamp(16px,5vw,48px) 34px;max-height:100vh;overflow-y:auto;
  transform:translateY(-100%);transition:transform .6s cubic-bezier(.4,0,.1,1);
  display:flex;flex-direction:column;gap:0}
.drawer.open{transform:translateY(0)}
/* each row: constrained column + cascade-in when open */
.drawer > *{max-width:560px;width:100%;margin:0 auto;
  opacity:0;transform:translateY(-10px);transition:opacity .48s ease,transform .54s cubic-bezier(.2,.7,.2,1)}
.drawer.open > *{opacity:1;transform:none}
.drawer.open > *:nth-child(1){transition-delay:.07s}
.drawer.open > *:nth-child(2){transition-delay:.12s}
.drawer.open > *:nth-child(3){transition-delay:.17s}
.drawer.open > *:nth-child(4){transition-delay:.22s}
.drawer.open > *:nth-child(5){transition-delay:.26s}
.drawer.open > *:nth-child(6){transition-delay:.31s}
.drawer.open > *:nth-child(7){transition-delay:.36s}
.drawer.open > *:nth-child(8){transition-delay:.41s}
.drawer.open > *:nth-child(9){transition-delay:.46s}
.drawer.open > *:nth-child(10){transition-delay:.50s}
.drawer.open > *:nth-child(11){transition-delay:.55s}
.drawer .lbl{font-family:var(--M);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink3);font-weight:700;padding:0 4px 10px}
.drawer a.prod{display:flex;align-items:center;gap:14px;padding:15px 4px;border-bottom:1px solid var(--line)}
.drawer a.prod .dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;box-shadow:0 0 12px currentColor}
.drawer a.prod .nm{font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--ink);transition:color .15s}
.drawer a.prod:hover .nm,.drawer a.prod.here .nm{color:var(--ac,var(--green))}
.drawer .demo{margin-top:18px;text-align:center;font-weight:800;font-size:15px;padding:14px;border-radius:26px;background:var(--green);color:#fff}
@media(prefers-reduced-motion:reduce){.drawer,.drawer > *{transition:none}}

/* demo request modal (light, detail pages) */
.modal-ov{position:fixed;inset:0;z-index:300;background:rgba(18,30,22,.5);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  display:flex;align-items:flex-start;justify-content:center;padding:20px;overflow-y:auto;opacity:0;pointer-events:none;transition:opacity .3s}
.modal-ov.open{opacity:1;pointer-events:auto}
.modal{position:relative;width:min(560px,100%);margin:auto;background:#FCFDFC;border:1px solid var(--line2);border-radius:20px;
  box-shadow:0 40px 90px rgba(18,36,24,.3);padding:24px clamp(18px,4vw,30px) 26px;transform:translateY(16px) scale(.985);transition:transform .32s cubic-bezier(.2,.7,.2,1)}
.modal-ov.open .modal{transform:none}
.modal h3{font-size:23px;font-weight:800;letter-spacing:-.025em}
.modal .sub{font-size:13px;color:var(--ink2);margin-bottom:18px}
.modal .x{position:absolute;top:16px;right:16px;width:34px;height:34px;border:none;background:var(--s2);border-radius:9px;color:var(--ink2);font-size:20px;line-height:1;cursor:pointer}
.modal .x:hover{background:var(--s3);color:var(--ink)}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:460px){.f-row{grid-template-columns:1fr}}
.f{margin-bottom:13px}
.f > label{display:block;font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--ink2);margin-bottom:6px}
.f input{width:100%;padding:11px 12px;border:1px solid var(--line2);border-radius:10px;background:#fff;font:inherit;font-size:14.5px;color:var(--ink)}
.f input:focus{outline:none;border-color:var(--ac);box-shadow:0 0 0 3px color-mix(in srgb,var(--ac) 22%,transparent)}
.seg{display:flex;gap:8px}
.seg label{flex:1;text-align:center;padding:10px;border:1px solid var(--line2);border-radius:10px;font-size:13.5px;font-weight:700;color:var(--ink2);cursor:pointer;transition:.15s}
.seg label.on{border-color:var(--ac);background:color-mix(in srgb,var(--ac) 14%,transparent);color:var(--ac)}
.seg input{position:absolute;opacity:0;width:0;height:0}
.tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.tile{display:flex;align-items:center;gap:9px;padding:11px 12px;border:1px solid var(--line2);border-radius:11px;font-size:12.5px;font-weight:700;color:var(--ink2);cursor:pointer;transition:.15s}
.tile input{position:absolute;opacity:0;width:0;height:0}
.tile .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;box-shadow:0 0 10px currentColor}
.tile.on{border-color:var(--ac);background:color-mix(in srgb,var(--ac) 12%,transparent);color:var(--ink)}
.modal .submit{width:100%;margin-top:18px;padding:14px;border:none;border-radius:26px;background:var(--green);color:#fff;font-weight:800;font-size:15px;cursor:pointer;transition:transform .15s}
.modal .submit:hover{transform:translateY(-1px)}
.modal .done{text-align:center;padding:26px 6px}
.modal .done .big{font-size:20px;font-weight:800;margin:10px 0 6px}
.modal .done p{font-size:13.5px;color:var(--ink2)}

/* ── Demo loop: staggered replay of mock UI (site.js re-arms every 7s) ── */
@media (prefers-reduced-motion: no-preference){
  .demo-cycle .ui-card{animation:demoCard .55s cubic-bezier(.2,.8,.3,1) both}
  .demo-cycle .ui-card:nth-of-type(1){animation-delay:.15s}
  .demo-cycle .ui-card:nth-of-type(2){animation-delay:.55s}
  .demo-cycle .ui-card:nth-of-type(3){animation-delay:.95s}
  .demo-cycle .ui-card:nth-of-type(4){animation-delay:1.35s}
  .demo-cycle .ui-btn{animation:demoCard .5s ease both;animation-delay:1.6s}
  .demo-cycle .bar i{animation:demoFill 1.1s cubic-bezier(.2,.8,.3,1) both;animation-delay:1s;transform-origin:left}
  .demo-cycle .chip{animation:demoChip .45s ease both;animation-delay:1.15s}
  .demo-cycle .krow{animation:demoCard .45s ease both}
  .demo-cycle .krow:nth-of-type(1){animation-delay:.7s}
  .demo-cycle .krow:nth-of-type(2){animation-delay:.95s}
  .demo-cycle .krow:nth-of-type(3){animation-delay:1.2s}
}
@keyframes demoCard{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes demoFill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes demoChip{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}

/* small trademark superscript on brand lockups */
.tm{font-size:.45em;font-weight:600;vertical-align:super;letter-spacing:0;opacity:.7}
