/* Griffin AI — shared site chrome (header, nav, footer, product cards, dashboard mocks) */
/* Layers on top of styles.css — same design tokens, no overrides. */

.-mt-0\.5{margin-top:-0.125rem}
.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}

/* ---------- Header brand lockup ---------- */
.brand-lockup{display:flex;align-items:center;gap:.65rem}
.brand-lockup__image{display:block;height:2.75rem;width:auto;max-width:12rem;object-fit:contain}

/* ---------- Products mega-dropdown ---------- */
.nav-products{position:relative}
.nav-products__trigger{display:flex;align-items:center;gap:.35rem;cursor:pointer;background:none;border:none;font:inherit;color:inherit;padding:0}
.nav-products__trigger:focus-visible,
.nav-products__item:focus-visible,
.mobile-menu-btn:focus-visible,
.mobile-menu-panel a:focus-visible{
  outline:2px solid var(--primary);
  outline-offset:4px;
}
.nav-products__chevron{width:.7rem;height:.7rem;transition:transform .25s ease}
.nav-products:hover .nav-products__chevron,
.nav-products.is-open .nav-products__chevron{transform:rotate(180deg)}
.nav-products__panel{position:absolute;top:calc(100% + 18px);left:50%;transform:translate(-50%,8px);width:22rem;background:var(--card);border:1px solid var(--border);border-radius:1.35rem;box-shadow:var(--shadow-card);padding:.6rem;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s cubic-bezier(.16,1,.3,1),transform .2s cubic-bezier(.16,1,.3,1),visibility .2s;z-index:60}
.nav-products:hover .nav-products__panel,
.nav-products.is-open .nav-products__panel{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.nav-products__item{display:flex;gap:.9rem;align-items:flex-start;padding:.85rem;border-radius:1rem;transition:background-color .15s ease}
.nav-products__item:hover{background-color:var(--muted)}
.nav-products__item[aria-current="page"]{background-color:var(--muted)}
.nav-products__item[aria-current="page"] .nav-products__item-name{color:var(--primary)}
.nav-products__icon{flex-shrink:0;width:2.35rem;height:2.35rem;border-radius:.75rem;display:grid;place-items:center;background:color-mix(in srgb,var(--primary) 8%,transparent);border:1px solid color-mix(in srgb,var(--primary) 30%,transparent);color:var(--primary)}
.nav-products__icon svg{width:1.1rem;height:1.1rem}
.nav-products__item-name{font-size:.9rem;font-weight:600;color:var(--foreground)}
.nav-products__item-desc{margin-top:.15rem;font-size:.76rem;line-height:1.4;color:var(--muted-foreground)}

/* ---------- Mobile menu ---------- */
.mobile-menu-btn{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:9999px;border:1px solid var(--border);color:var(--foreground);background:none}
.mobile-menu-btn:hover{border-color:var(--primary);color:var(--primary)}
.mobile-menu-btn svg{width:1.15rem;height:1.15rem}
.mobile-menu-panel{position:absolute;top:100%;left:0;right:0;height:calc(100vh - 80px);height:calc(100dvh - 80px);max-height:calc(100vh - 80px);max-height:calc(100dvh - 80px);background:var(--background);z-index:49;padding:1.25rem 1.5rem calc(2rem + env(safe-area-inset-bottom,0px));overflow-y:auto;overscroll-behavior:contain;transform:translateY(-14px);opacity:0;visibility:hidden;transition:opacity .2s cubic-bezier(.16,1,.3,1),transform .2s cubic-bezier(.16,1,.3,1),visibility .2s}
.mobile-menu-panel.is-open{opacity:1;visibility:visible;transform:translateY(0)}
.mobile-menu-panel a{display:block;padding:1rem 0;border-bottom:1px solid var(--border);font-size:1.05rem;font-weight:500}
.mobile-menu-panel a[aria-current="page"]{color:var(--primary)}
.mobile-menu-panel .mm-sub{padding-left:1rem;font-size:.92rem;font-weight:400;color:var(--muted-foreground)}
.mobile-menu-panel .mm-cta{margin-top:1.5rem;border-bottom:none}
@media(min-width:768px){.mobile-menu-btn,.mobile-menu-panel{display:none}}
html.has-mobile-menu-open,
body.has-mobile-menu-open{overflow:hidden}

/* ---------- Product sub-nav (sits under the header on each product page) ---------- */
.subnav{position:sticky;top:80px;z-index:40;background:color-mix(in oklab,var(--background) 90%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}
.subnav__inner{max-width:80rem;margin:0 auto;padding:.8rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.subnav__brand{display:flex;align-items:center;gap:.55rem;font-weight:700;white-space:nowrap;font-family:Sora,sans-serif}
.subnav__brand img{height:1.5rem;width:auto}
.subnav__links{display:flex;gap:1.6rem;overflow-x:auto;scrollbar-width:none;font-size:.82rem;color:var(--muted-foreground);white-space:nowrap}
.subnav__links::-webkit-scrollbar{display:none}
.subnav__links a:hover{color:var(--foreground)}
@media(max-width:767px){.subnav__links{display:none}}

/* ---------- Homepage product showcase cards ---------- */
.product-card{position:relative;display:flex;flex-direction:column;border-radius:1.75rem;border:1px solid var(--border);background:var(--card);box-shadow:var(--shadow-card);overflow:hidden;transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s ease,border-color .35s ease}
.product-card:hover{transform:translateY(-6px);border-color:var(--primary);box-shadow:0 0 32px oklch(0.62 0.18 277/0.25)}
.product-card__visual{position:relative;height:180px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(ellipse at 50% 30%,oklch(0.62 0.18 277/0.14),transparent 65%),linear-gradient(180deg,oklch(0.97 0.01 272),oklch(0.94 0.02 272))}
.product-card__visual svg{width:3.5rem;height:3.5rem;color:var(--primary);filter:drop-shadow(0 10px 18px oklch(0.62 0.18 277/0.3))}
.product-card__body{padding:2rem;display:flex;flex-direction:column;flex:1}
.product-card__eyebrow{font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:var(--primary);font-weight:600}
.product-card__name{margin-top:.65rem;font-family:Sora,sans-serif;font-size:1.5rem;font-weight:700}
.product-card__desc{margin-top:.75rem;color:var(--muted-foreground);flex:1;font-size:.95rem;line-height:1.55}
.product-card__list{margin-top:1.25rem;display:flex;flex-direction:column;gap:.55rem;font-size:.83rem}
.product-card__list li{display:flex;align-items:flex-start;gap:.55rem}
.product-card__list svg{width:.95rem;height:.95rem;color:var(--primary);margin-top:.15rem;flex-shrink:0}
.product-card__cta{margin-top:1.5rem;display:inline-flex;align-items:center;gap:.4rem;font-weight:600;color:var(--primary);font-size:.9rem}
.product-card__cta svg{width:1rem;height:1rem;transition:transform .2s ease}
.product-card:hover .product-card__cta svg{transform:translateX(4px)}

/* ---------- Platform pillar cards (Why Griffin AI) ---------- */
.pillar-card{border-radius:1.25rem;border:1px solid var(--border);background:var(--card);padding:1.75rem;box-shadow:var(--shadow-card);transition:border-color .3s,box-shadow .3s,transform .3s}
.pillar-card:hover{border-color:var(--primary);box-shadow:0 0 20px color-mix(in srgb,var(--primary) 30%,transparent);transform:translateY(-3px)}
.pillar-card__icon{width:2.75rem;height:2.75rem;border-radius:.85rem;display:grid;place-items:center;background:color-mix(in srgb,var(--primary) 8%,transparent);border:1px solid color-mix(in srgb,var(--primary) 30%,transparent);color:var(--primary)}
.pillar-card__icon svg{width:1.35rem;height:1.35rem}
.pillar-card h3{margin-top:1.1rem;font-family:Sora,sans-serif;font-size:1.05rem;font-weight:600}
.pillar-card p{margin-top:.5rem;font-size:.87rem;line-height:1.6;color:var(--muted-foreground)}

/* ---------- Orbiting hero mark (company homepage) ---------- */
.orbit-hero{position:relative;width:100%;height:100%;display:grid;place-items:center}
.orbit-hero__core{position:relative;z-index:2;width:6.5rem;height:6.5rem;display:grid;place-items:center;filter:drop-shadow(0 18px 30px oklch(0.62 0.18 277/0.35))}
.orbit-hero__core img{width:100%;height:auto}
.orbit-hero__ring{position:absolute;border-radius:9999px;border:1px dashed color-mix(in oklab,var(--primary) 35%,transparent);animation:ai-orbit 40s linear infinite}
.orbit-hero__ring--1{width:15rem;height:15rem}
.orbit-hero__ring--2{width:22rem;height:22rem;animation-duration:60s;animation-direction:reverse}
.orbit-hero__chip{position:absolute;display:flex;align-items:center;gap:.5rem;padding:.55rem .9rem;border-radius:9999px;background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-card);font-size:.78rem;font-weight:600;white-space:nowrap;animation:float-y 6s ease-in-out infinite}
.orbit-hero__chip svg{width:.95rem;height:.95rem;color:var(--primary)}
.orbit-hero__chip--pulse{top:6%;left:2%}
.orbit-hero__chip--traq{bottom:14%;right:0%;animation-delay:1.2s}
.orbit-hero__chip--dine{bottom:2%;left:14%;animation-delay:2.4s}
@media(max-width:1023px){.orbit-hero{transform:scale(.82)}}

/* ---------- Generic dashboard mock (InfiniTraq / InfiniDine hero + product visuals) ---------- */
.dash-mock{position:relative;min-width:0;max-width:100%;border-radius:1.5rem;border:1px solid var(--border);background:var(--card);box-shadow:var(--shadow-card);overflow:hidden}
.dash-mock__bar{display:flex;align-items:center;gap:.4rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--muted)}
.dash-mock__dot{width:.55rem;height:.55rem;border-radius:9999px;background:var(--border)}
.dash-mock__title{margin-left:.5rem;font-size:.68rem;color:var(--muted-foreground);letter-spacing:.08em;text-transform:uppercase}
.dash-mock__live{margin-left:auto;display:flex;align-items:center;gap:.4rem;font-size:.65rem;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.08em}
.dash-mock__live-dot{width:.4rem;height:.4rem;border-radius:9999px;background:#ef4444;animation:ai-blink 1.4s ease-in-out infinite}
.dash-mock__body{padding:1.5rem}
.dash-mock__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}
.dash-mock__stat{border:1px solid var(--border);border-radius:1rem;padding:.85rem}
.dash-mock__stat-value{font-family:Sora,sans-serif;font-weight:700;font-size:1.3rem;color:var(--foreground)}
.dash-mock__stat-label{font-size:.62rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted-foreground);margin-top:.25rem}
.dash-mock__chart{margin-top:1rem;border:1px solid var(--border);border-radius:1rem;padding:1rem 1rem .75rem;display:flex;align-items:flex-end;gap:.5rem;height:110px}
.dash-mock__bar-el{flex:1;border-radius:.35rem .35rem 0 0;background:linear-gradient(180deg,var(--primary),color-mix(in oklab,var(--primary) 35%,transparent));animation:dash-grow .9s cubic-bezier(.16,1,.3,1) both}
@keyframes dash-grow{from{transform:scaleY(.15);opacity:.4}to{transform:scaleY(1);opacity:1}}
.dash-mock__chart{transform-origin:bottom}
.dash-mock__row{display:flex;align-items:center;gap:.75rem;padding:.6rem 0;border-top:1px solid var(--border)}
.dash-mock__row:first-child{border-top:none}
.dash-mock__row-dot{width:.5rem;height:.5rem;border-radius:9999px;flex-shrink:0}
.dash-mock__row-label{flex:1;font-size:.78rem;color:var(--foreground)}
.dash-mock__row-value{font-size:.78rem;font-weight:600;color:var(--muted-foreground)}
.dash-mock__floor{margin-top:1rem;display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}
.dash-mock__table{aspect-ratio:1;border-radius:.6rem;border:1px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground)}
.dash-mock__table-status{font-size:.5rem;font-weight:500;line-height:1;letter-spacing:.04em;opacity:.78;text-align:center;white-space:nowrap}
.dash-mock__floor--wide .dash-mock__table-status{font-size:.38rem}
.dash-mock__table--occupied{background:color-mix(in srgb,var(--primary) 12%,transparent);border-color:color-mix(in srgb,var(--primary) 40%,transparent);color:var(--primary)}
.dash-mock__table--attention{background:color-mix(in oklab, var(--accent2, var(--primary)) 14%, transparent);border-color:color-mix(in oklab, var(--accent2, var(--primary)) 45%, transparent);color:var(--accent2,var(--primary))}

/* ---------- Accent-2 helpers (used sparingly per-product) ---------- */
.text-accent2{color:var(--accent2,var(--primary))}
.bg-accent2-soft{background:color-mix(in oklab, var(--accent2, var(--primary)) 12%, transparent)}
.border-accent2{border-color:color-mix(in oklab, var(--accent2, var(--primary)) 40%, transparent)!important}

/* ---------- Footer ---------- */
.site-footer{border-top:1px solid var(--border);padding:4rem 0 2rem}
.site-footer__grid{display:grid;gap:2.5rem;grid-template-columns:1fr}
@media(min-width:768px){.site-footer__grid{grid-template-columns:1.4fr repeat(3,1fr)}}
.site-footer__blurb{margin-top:1rem;font-size:.88rem;line-height:1.6;color:var(--muted-foreground);max-width:22rem}
.site-footer__heading{font-size:11px;text-transform:uppercase;letter-spacing:.2em;color:var(--muted-foreground);font-weight:600}
.site-footer__links{margin-top:1.1rem;display:flex;flex-direction:column;gap:.75rem;font-size:.9rem}
.site-footer__links a:hover{color:var(--primary)}
.site-footer__links a:focus-visible,
.site-footer__social a:focus-visible{
  outline:2px solid var(--primary);
  outline-offset:4px;
}
.site-footer__social{margin-top:1.5rem;display:flex;gap:.6rem}
.site-footer__social a{width:2.75rem;height:2.75rem;border-radius:9999px;border:1px solid var(--border);display:grid;place-items:center;color:var(--muted-foreground);transition:color .2s,border-color .2s}
.site-footer__social a:hover{color:var(--primary);border-color:var(--primary)}
.site-footer__social svg{width:1rem;height:1rem}
.site-footer__bottom{margin-top:3rem;padding-top:1.75rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.75rem;font-size:.8rem;color:var(--muted-foreground)}
@media(min-width:640px){.site-footer__bottom{flex-direction:row;align-items:center;justify-content:space-between}}

/* ---------- Shared contact styles ---------- */
#demoForm input:focus-visible,
#demoForm select:focus-visible,
#demoForm textarea:focus-visible{
  outline:2px solid var(--primary);
  outline-offset:2px;
}

/* ============================================================
   Product-page building blocks — InfiniTraq / InfiniDine flows
   ============================================================ */

/* Metric rail — a horizontal set of "what we measure" chips */
.metric-rail{display:grid;gap:1rem;margin-top:3.5rem;grid-template-columns:repeat(2,1fr)}
@media(min-width:640px){.metric-rail{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1024px){.metric-rail{grid-template-columns:repeat(5,1fr)}}
.metric-chip{border:1px solid var(--border);border-radius:1.25rem;background:var(--card);padding:1.4rem 1.25rem;box-shadow:var(--shadow-card);transition:border-color .3s,transform .3s,box-shadow .3s}
.metric-chip:hover{border-color:var(--primary);transform:translateY(-3px);box-shadow:0 0 20px color-mix(in srgb,var(--primary) 28%,transparent)}
.metric-chip__icon{width:2.25rem;height:2.25rem;border-radius:.7rem;display:grid;place-items:center;background:color-mix(in srgb,var(--primary) 8%,transparent);border:1px solid color-mix(in srgb,var(--primary) 30%,transparent);color:var(--primary)}
.metric-chip__icon svg{width:1.1rem;height:1.1rem}
.metric-chip__label{margin-top:.9rem;font-family:Sora,sans-serif;font-weight:600;font-size:.92rem;line-height:1.25}
.metric-chip__sub{margin-top:.35rem;font-size:.75rem;color:var(--muted-foreground);line-height:1.45}

/* Horizontal flow rail — pipeline (InfiniTraq) / guest journey (InfiniDine) */
.flow-rail{--flow-cols:4;position:relative;margin-top:3.5rem;display:grid;gap:1.75rem;grid-template-columns:1fr}
@media(min-width:768px){.flow-rail{grid-template-columns:repeat(var(--flow-cols),1fr);gap:0}}
.flow-step{position:relative;padding-left:3.25rem}
.flow-step__dot{position:absolute;left:0;top:0;width:2.75rem;height:2.75rem;border-radius:9999px;display:grid;place-items:center;background:var(--card);border:1px solid var(--border);color:var(--primary);box-shadow:var(--shadow-card);z-index:2}
.flow-step__dot svg{width:1.2rem;height:1.2rem}
.flow-step__num{font-family:Sora,sans-serif;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-foreground)}
.flow-step h3{margin-top:.3rem;font-family:Sora,sans-serif;font-size:1rem;font-weight:600;line-height:1.3}
.flow-step p{margin-top:.45rem;font-size:.83rem;line-height:1.55;color:var(--muted-foreground)}
.flow-step:not(:last-child)::after{content:"";position:absolute;left:1.375rem;top:2.75rem;bottom:-1.75rem;width:2px;background:var(--border);z-index:1}
@media(min-width:768px){
  .flow-step{padding-left:0;padding-top:3.75rem;text-align:center;padding-inline:.6rem}
  .flow-step__dot{left:50%;transform:translateX(-50%)}
  .flow-step:not(:last-child)::after{left:50%;right:-50%;top:1.375rem;bottom:auto;width:auto;height:2px}
}
.flow-rail--warm .flow-step__dot{color:var(--accent2,var(--primary))}
.flow-rail--warm .flow-step:not(:last-child)::after{background:linear-gradient(90deg,color-mix(in oklab,var(--accent2,var(--primary)) 45%,transparent),var(--border))}

/* Narrative insight spotlight card (InfiniTraq differentiator) */
.insight-card{max-width:46rem;margin:3.5rem auto 0;border:1px solid var(--border);border-radius:1.5rem;background:var(--card);box-shadow:var(--shadow-card);overflow:hidden}
.insight-card__head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem 1.5rem;border-bottom:1px solid var(--border);background:var(--muted)}
.insight-card__badge{display:inline-flex;align-items:center;gap:.45rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--primary)}
.insight-card__badge svg{width:.95rem;height:.95rem;animation:ai-blink 1.8s ease-in-out infinite}
.insight-card__store{font-size:.7rem;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.08em}
.insight-card__body{padding:1.85rem 1.75rem}
.insight-card__body p{font-size:1.02rem;line-height:1.7;color:var(--foreground)}
.insight-card__body strong{color:var(--primary);font-weight:600}
.insight-card__meta{margin-top:1.35rem;display:flex;flex-wrap:wrap;gap:.5rem}
.insight-tag{font-size:.72rem;padding:.3rem .75rem;border-radius:9999px;background:color-mix(in srgb,var(--primary) 8%,transparent);border:1px solid color-mix(in srgb,var(--primary) 28%,transparent);color:var(--primary)}

/* Scale split — two capability panels (single vs network) */
.scale-split{margin-top:3.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr}
@media(min-width:900px){.scale-split{grid-template-columns:1fr auto 1fr;align-items:stretch}}
.scale-panel{border:1px solid var(--border);border-radius:1.5rem;background:var(--card);box-shadow:var(--shadow-card);padding:2rem;transition:border-color .3s,box-shadow .3s}
.scale-panel:hover{border-color:var(--primary);box-shadow:0 0 24px oklch(0.62 0.18 277/0.25)}
.scale-panel__eyebrow{font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:var(--primary);font-weight:600}
.scale-panel h3{margin-top:.6rem;font-family:Sora,sans-serif;font-size:1.35rem;font-weight:700}
.scale-panel p{margin-top:.6rem;font-size:.9rem;line-height:1.6;color:var(--muted-foreground)}
.scale-panel ul{margin-top:1.1rem;display:flex;flex-direction:column;gap:.6rem;font-size:.85rem}
.scale-panel li{display:flex;gap:.6rem;align-items:flex-start}
.scale-panel li svg{width:.95rem;height:.95rem;color:var(--primary);margin-top:.2rem;flex-shrink:0}
.scale-divider{display:none}
@media(min-width:900px){.scale-divider{display:grid;place-items:center;width:3rem}}
.scale-divider span{font-family:Sora,sans-serif;font-weight:700;font-size:.8rem;color:var(--muted-foreground);width:2.6rem;height:2.6rem;border-radius:9999px;border:1px solid var(--border);display:grid;place-items:center;background:var(--card)}

/* Service-timing meter (InfiniDine signature) */
.timing-meter{margin-top:1.75rem}
.timing-meter__scale{position:relative;height:.85rem;border-radius:9999px;background:linear-gradient(90deg,rgba(34,197,94,.55),rgba(255,122,69,.6) 66%,rgba(239,68,68,.72))}
.timing-meter__threshold{position:absolute;top:-.55rem;bottom:-.55rem;width:2px;background:var(--foreground);left:66%}
.timing-meter__threshold span{position:absolute;top:-1.35rem;left:50%;transform:translateX(-50%);font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-foreground);white-space:nowrap}
.timing-meter__pin{position:absolute;top:50%;width:1.1rem;height:1.1rem;border-radius:9999px;background:var(--card);border:3px solid var(--accent2,var(--primary));transform:translate(-50%,-50%);box-shadow:0 3px 8px rgba(0,0,0,.22);z-index:2}
.timing-meter__labels{margin-top:1rem;display:flex;justify-content:space-between;font-size:.72rem;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.06em}

/* Horizontal detail list (InfiniDine signals) */
.detail-list{margin-top:3.5rem;display:grid;gap:1rem;grid-template-columns:1fr}
@media(min-width:768px){.detail-list{grid-template-columns:repeat(2,1fr)}}
.detail-item{display:flex;gap:1.1rem;align-items:flex-start;padding:1.5rem;border:1px solid var(--border);border-radius:1.15rem;background:var(--card);box-shadow:var(--shadow-card);transition:border-color .3s,transform .3s,box-shadow .3s}
.detail-item:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 0 18px color-mix(in srgb,var(--primary) 22%,transparent)}
.detail-item__icon{flex-shrink:0;width:2.6rem;height:2.6rem;border-radius:.8rem;display:grid;place-items:center;background:color-mix(in srgb,var(--primary) 8%,transparent);border:1px solid color-mix(in srgb,var(--primary) 30%,transparent);color:var(--primary)}
.detail-item__icon svg{width:1.25rem;height:1.25rem}
.detail-item h3{font-family:Sora,sans-serif;font-size:1rem;font-weight:600}
.detail-item p{margin-top:.4rem;font-size:.84rem;line-height:1.55;color:var(--muted-foreground)}

/* wide floor grid for the InfiniDine floor spotlight */
.dash-mock__floor--wide{grid-template-columns:repeat(6,1fr)}
.dash-mock__alert{margin-top:1rem;display:flex;align-items:center;gap:.7rem;padding:.75rem .9rem;border-radius:.85rem;border:1px solid color-mix(in oklab,var(--accent2,#ff7a45) 45%,transparent);background:color-mix(in oklab,var(--accent2,#ff7a45) 12%,transparent);font-size:.8rem}
.dash-mock__alert svg{width:1rem;height:1rem;color:var(--accent2,#ff7a45);flex-shrink:0}

/* dashboard KPI delta + grouped (two-series) chart + demographics strip */
.dash-mock__stat-delta{margin-top:.2rem;font-size:.58rem;font-weight:600;letter-spacing:.02em}
.dash-mock__charthead{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:1rem;font-size:.62rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted-foreground)}
.dash-mock__legend{display:flex;gap:.7rem}
.dash-mock__legend span{display:inline-flex;align-items:center;gap:.3rem}
.dash-mock__key{width:.5rem;height:.5rem;border-radius:2px;background:var(--primary);display:inline-block}
.dash-mock__key--muted{background:color-mix(in oklab,var(--primary) 28%,transparent)}
.dash-mock__chart--grouped{margin-top:.55rem}
.dash-mock__grp{flex:1;display:flex;align-items:flex-end;justify-content:center;gap:3px;height:100%}
.dash-mock__grp .dash-mock__bar-el{flex:1;max-width:9px}
.dash-mock__bar-el--muted{background:linear-gradient(180deg,color-mix(in oklab,var(--primary) 30%,transparent),color-mix(in oklab,var(--primary) 8%,transparent))}
.dash-mock__axis{margin-top:.5rem;display:flex;justify-content:space-between;font-size:.58rem;color:var(--muted-foreground);letter-spacing:.04em}

/* Group rollup — InfiniDine multi-location benchmark (distinct from scale-split) */
.loc-rollup{margin-top:3.5rem;border:1px solid var(--border);border-radius:1.5rem;background:var(--card);box-shadow:var(--shadow-card);overflow:hidden}
.loc-rollup__summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding:1.5rem 1.75rem;border-bottom:1px solid var(--border);background:var(--muted)}
.loc-rollup__summary .n{font-family:Sora,sans-serif;font-weight:700;font-size:1.6rem;display:block;line-height:1}
.loc-rollup__summary .l{font-size:.64rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted-foreground);margin-top:.4rem;display:block}
.loc-rollup__grid{display:grid;grid-template-columns:1fr;gap:.75rem;padding:1.5rem}
@media(min-width:480px){.loc-rollup__grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:768px){.loc-rollup__grid{grid-template-columns:repeat(3,1fr)}}
.loc-chip{display:flex;align-items:center;gap:.7rem;padding:.85rem 1rem;border:1px solid var(--border);border-radius:1rem;transition:border-color .3s,transform .3s}
.loc-chip:hover{border-color:var(--primary);transform:translateY(-2px)}
.loc-chip__dot{width:.55rem;height:.55rem;border-radius:9999px;background:#22c55e;flex-shrink:0}
.loc-chip__dot--warn{background:var(--accent2,#ff7a45)}
.loc-chip__name{flex:1;min-width:0;font-size:.85rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.loc-chip__val{font-size:.8rem;font-weight:600;color:var(--muted-foreground);font-variant-numeric:tabular-nums}
.loc-chip__val--warn{color:var(--accent2,#ff7a45)}

/* Global impact band — big animated counters (Nodeflux-style) + global presence */
.impact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2.25rem 1.5rem;margin-top:3.5rem}
@media(min-width:900px){.impact-grid{grid-template-columns:repeat(4,1fr)}}
.impact-stat__num{font-family:Sora,sans-serif;font-weight:800;font-size:clamp(2.4rem,5vw,3.6rem);line-height:1;letter-spacing:-.02em;color:#fff;display:flex;align-items:baseline}
.impact-stat__suffix{color:var(--primary);margin-left:.04em}
.impact-stat__label{margin-top:.8rem;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.6);font-weight:500}
.impact-stat__sub{margin-top:.3rem;font-size:.74rem;color:rgba(255,255,255,.4);line-height:1.4}
.geo-strip{margin-top:3.5rem;padding-top:2.25rem;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.75rem}
.geo-strip__label{font-size:.7rem;text-transform:uppercase;letter-spacing:.2em;color:rgba(255,255,255,.5)}
.geo-strip__cities{display:flex;flex-wrap:wrap;gap:.6rem}
.geo-chip{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .95rem;border-radius:9999px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.03);font-size:.85rem;font-weight:500;color:#eef1ff;transition:border-color .3s,background-color .3s}
.geo-chip:hover{border-color:color-mix(in oklab,var(--primary) 45%,transparent);background:rgba(255,255,255,.06)}
.geo-chip svg{width:.9rem;height:.9rem;color:var(--primary)}

/* Canvas dotted-world globe */
.globe-canvas{display:block;width:100%;height:auto;aspect-ratio:1/1;margin-inline:auto;max-width:520px}

/* Animated global-presence globe (pulsing city nodes + traveling signal arcs) */
.globe-wrap{position:relative;width:100%;max-width:520px;margin-inline:auto}
.globe-wrap svg{width:100%;height:auto;display:block;overflow:visible}
.globe-grid{fill:none;stroke:var(--primary);stroke-width:1;opacity:.2}
.globe-outline{fill:none;stroke:var(--primary);stroke-width:1.2;opacity:.45}
.globe-ring{fill:none;stroke:var(--primary);stroke-width:1;opacity:.22;stroke-dasharray:2 9;transform-box:fill-box;transform-origin:center;animation:globe-spin 70s linear infinite}
.globe-arc{fill:none;stroke:var(--primary);stroke-width:1.3;opacity:.25}
.globe-arc__pulse{fill:none;stroke:#8fe4ff;stroke-width:2.2;stroke-linecap:round;stroke-dasharray:6 600;filter:drop-shadow(0 0 5px var(--primary));animation:globe-arc-travel 3.6s linear infinite}
.globe-node__dot{fill:#bfefff;filter:drop-shadow(0 0 5px var(--primary))}
.globe-node__ring{fill:none;stroke:var(--primary);stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:globe-node-pulse 3s ease-out infinite}
.globe-node__label{fill:#eef1ff;font-size:12px;font-family:Inter,ui-sans-serif,sans-serif;font-weight:500;paint-order:stroke;stroke:#03101d;stroke-width:3px;stroke-linejoin:round}
@keyframes globe-spin{to{transform:rotate(360deg)}}
@keyframes globe-node-pulse{0%{transform:scale(.4);opacity:.9}80%,100%{transform:scale(3.2);opacity:0}}
@keyframes globe-arc-travel{0%{stroke-dashoffset:200}100%{stroke-dashoffset:-40}}
@media(prefers-reduced-motion:reduce){
  .globe-ring,.globe-arc__pulse,.globe-node__ring{animation:none}
  .orbit-hero__ring,.orbit-hero__chip,.dash-mock__live-dot,.dash-mock__bar-el,.insight-card__badge svg,.supported-by-track,.hub-cam__wifi svg,.hub-cam-net__sink{animation:none}
  .nav-products__panel,.mobile-menu-panel,.nav-products__chevron{transition:none}
  .early-bird-modal{transition:none}
}

/* ---------- InfiniPulse page glows ---------- */
.pulse-hero-glow{
  position:absolute;left:0;right:0;top:0;height:600px;pointer-events:none;
  background:radial-gradient(ellipse at top,oklch(0.62 0.18 277 / 0.14),transparent 60%);
}
.pulse-band-glow{
  position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse at top,oklch(0.62 0.18 277 / 0.12),transparent 60%);
}
.pulse-band-glow--bottom{
  background:radial-gradient(ellipse at bottom,oklch(0.62 0.18 277 / 0.12),transparent 70%);
}
.pulse-hero-media{
  background:oklch(0.97 0.01 272);
}
.pulse-card-hover{
  transition:border-color .3s ease,box-shadow .3s ease;
}
.pulse-card-hover:hover{
  border-color:var(--primary);
  box-shadow:0 0 24px oklch(0.62 0.18 277 / 0.25);
}

/* ---------- InfiniPulse early bird ---------- */
.early-bird-band{
  position:relative;
  padding:5rem 0;
  border-top:1px solid var(--border);
  background:linear-gradient(180deg,color-mix(in oklab,var(--primary) 6%,var(--background)),var(--background));
}
.early-bird-band__inner{max-width:72rem;margin:0 auto;padding:0 1.5rem}
.early-bird-band__layout{
  display:grid;gap:2.5rem;align-items:center;
}
@media(min-width:1024px){
  .early-bird-band__layout{grid-template-columns:minmax(0,1.05fr) minmax(0,.9fr);gap:3.5rem}
}
.early-bird-band__copy{max-width:40rem}
.early-bird-band__eyebrow{font-size:.7rem;text-transform:uppercase;letter-spacing:.28em;color:var(--secondary)}
.early-bird-band__title{margin-top:1rem;font-size:clamp(1.6rem,3vw,2.35rem);font-weight:700;line-height:1.15}
.early-bird-band__copy-text{margin-top:1rem;font-size:1.05rem;color:var(--muted-foreground);line-height:1.6}
.early-bird-band__list{margin-top:1.75rem;display:grid;gap:.85rem}
.early-bird-band__list li{display:flex;align-items:flex-start;gap:.7rem;font-size:.95rem}
.early-bird-band__list svg{width:1rem;height:1rem;color:var(--primary);margin-top:.2rem;flex-shrink:0}
.early-bird-band__cta{margin-top:2rem;display:inline-flex;align-items:center;gap:.45rem;border-radius:9999px;background:var(--action);color:var(--primary-foreground);padding:.8rem 1.5rem;font-weight:600;box-shadow:var(--shadow-glow);transition:transform .16s ease-out,opacity .2s ease}
.early-bird-band__cta:hover{opacity:.9}
.early-bird-band__cta svg{width:1rem;height:1rem}
.early-bird-band__visual{
  position:relative;display:flex;align-items:flex-end;justify-content:center;
  min-height:17rem;padding-top:.5rem;
}
.early-bird-band__scene{
  position:relative;width:100%;max-width:42rem;overflow:hidden;
}
.early-bird-band__scene-glow{
  position:absolute;inset:5% -2% 10%;pointer-events:none;z-index:0;
  background:radial-gradient(ellipse at 50% 85%,oklch(0.62 0.18 277 / 0.2),transparent 72%);
  filter:blur(24px);
}
.early-bird-band__cityscape{
  position:relative;z-index:1;display:block;width:100%;height:auto;
  -webkit-mask-image:linear-gradient(to top,#000 88%,transparent);
  mask-image:linear-gradient(to top,#000 88%,transparent);
}
@media(min-width:1024px){
  .early-bird-band__scene{max-width:44rem}
  .early-bird-band__visual{min-height:21rem}
}

.early-bird-modal{
  position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:1.25rem;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .25s cubic-bezier(.16,1,.3,1),visibility .25s;
}
.early-bird-modal .early-bird-modal__panel{transform:scale(.97);transition:transform .25s cubic-bezier(.16,1,.3,1)}
.early-bird-modal.is-open .early-bird-modal__panel{transform:scale(1)}
.early-bird-modal.is-open{opacity:1;visibility:visible;pointer-events:auto}
html.has-early-bird-modal,html.has-early-bird-modal body{overflow:hidden}
.early-bird-modal__backdrop{position:absolute;inset:0;background:rgba(6,10,28,.62);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.early-bird-modal__panel{
  position:relative;z-index:1;width:min(100%,28rem);
  border-radius:1.5rem;border:1px solid var(--border);background:var(--card);
  box-shadow:var(--shadow-card);padding:1.75rem 1.75rem 1.5rem;
}
.early-bird-modal__eyebrow{font-size:.68rem;text-transform:uppercase;letter-spacing:.24em;color:var(--secondary)}
.early-bird-modal__title{margin-top:.65rem;font-size:1.35rem;font-weight:700;line-height:1.25}
.early-bird-modal__copy{margin-top:.75rem;font-size:.95rem;color:var(--muted-foreground);line-height:1.55}
.early-bird-modal__actions{margin-top:1.5rem;display:flex;flex-wrap:wrap;gap:.65rem}
.early-bird-modal__primary{
  display:inline-flex;align-items:center;gap:.4rem;border-radius:9999px;
  background:var(--action);color:var(--primary-foreground);padding:.7rem 1.2rem;
  font-weight:600;font-size:.92rem;transition:transform .16s ease-out,opacity .2s ease;
}
.early-bird-modal__primary:hover{opacity:.9}
.early-bird-modal__primary:active{transform:scale(.97)}
.early-bird-modal__ghost{
  border-radius:9999px;border:1px solid var(--border);padding:.7rem 1.1rem;
  font-size:.92rem;font-weight:500;color:var(--muted-foreground);background:transparent;
  transition:border-color .2s,color .2s;
}
.early-bird-modal__ghost:hover{border-color:var(--primary);color:var(--primary)}

.early-bird-page{
  position:relative;
  padding-top:7rem;
  padding-bottom:5rem;
}
.early-bird-page__bg{position:absolute;inset:0;pointer-events:none}
.early-bird-page__grid{position:absolute;inset:0;opacity:.6}
.early-bird-page__glow{
  position:absolute;left:0;right:0;top:0;height:600px;
  background:radial-gradient(ellipse at top,color-mix(in oklab,var(--primary) 14%,transparent),transparent 60%);
}
.early-bird-page svg,
.early-bird-form-wrap svg{
  width:1rem;height:1rem;flex-shrink:0;display:inline-block;vertical-align:middle;
}
.early-bird-page__trust-item svg{width:.9rem;height:.9rem}
.early-bird-page__layout{
  position:relative;
  display:grid;
  gap:2.5rem;
  align-items:start;
}
@media(min-width:1024px){
  .early-bird-page__layout{
    grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
    gap:3.5rem;
  }
}
.early-bird-page__copy-col{display:grid;gap:1.5rem}
.early-bird-page__hero{max-width:42rem}
.early-bird-page__eyebrow{font-size:.7rem;text-transform:uppercase;letter-spacing:.28em;color:var(--secondary)}
.early-bird-page__title{margin-top:1rem;font-size:clamp(1.9rem,3.8vw,2.85rem);font-weight:700;line-height:1.08;letter-spacing:-.02em}
.early-bird-page__lead{margin-top:1.1rem;font-size:1.05rem;color:var(--muted-foreground);line-height:1.65;max-width:36rem}
.early-bird-page__benefits{margin-top:1.75rem;display:grid;gap:.75rem;max-width:36rem}
.early-bird-page__benefits li{display:flex;align-items:flex-start;gap:.65rem;font-size:.95rem;line-height:1.45}
.early-bird-page__benefits svg{color:var(--primary);margin-top:.2rem}
.early-bird-page__trust{
  margin-top:1.75rem;display:flex;flex-wrap:wrap;gap:.55rem;max-width:38rem;
}
.early-bird-page__trust-item{
  display:inline-flex;align-items:center;gap:.45rem;
  border-radius:9999px;border:1px solid var(--border);background:color-mix(in oklab,var(--card) 82%,transparent);
  padding:.45rem .8rem;font-size:.78rem;font-weight:500;color:var(--muted-foreground);
}
.early-bird-page__trust-item svg{color:var(--primary)}
.early-bird-page__cityscape{
  width:100%;max-width:44rem;
}
.early-bird-page__cityscape img{
  width:100%;height:auto;display:block;
}
.early-bird-form-wrap{
  margin-top:0;max-width:40rem;
  overflow:visible;
}
@media(max-width:767px){
  .early-bird-page{padding-top:6.25rem;padding-bottom:3rem}
  .early-bird-page__layout{gap:0}
  .early-bird-page__copy-col{display:none}
  .early-bird-form-wrap{max-width:none}
  .early-bird-form-wrap.reveal{opacity:1;transform:none;transition:none}
}
@media(min-width:1024px){
  .early-bird-form-wrap{
    position:sticky;top:6.5rem;max-width:none;
  }
}
.early-bird-form__intro{margin-bottom:1rem}
.early-bird-form__intro-title{font-size:1.15rem;font-weight:700;line-height:1.25}
.early-bird-form__intro-copy{margin-top:.35rem;font-size:.9rem;color:var(--muted-foreground);line-height:1.5}
.early-bird-form{
  border-radius:1.5rem;border:1px solid var(--border);background:var(--card);
  box-shadow:var(--shadow-card);padding:1.75rem;display:grid;gap:1.25rem;
  overflow:visible;
}
.early-bird-form label{display:block}
.early-bird-form__label{
  font-size:.62rem;text-transform:uppercase;letter-spacing:.22em;font-weight:600;
  margin-bottom:.55rem;color:var(--secondary);
}
.early-bird-form input,
.early-bird-form select,
.early-bird-form textarea{
  width:100%;border:1px solid var(--border);border-radius:.85rem;
  background:var(--background);padding:.7rem .9rem;font:inherit;color:var(--foreground);
  outline:none;transition:border-color .2s ease;
}
.early-bird-form input:focus,
.early-bird-form select:focus,
.early-bird-form textarea:focus{border-color:var(--primary)}
.early-bird-form textarea{resize:vertical;min-height:6.5rem}
.early-bird-form__grid{display:grid;gap:1.25rem}
@media(min-width:640px){.early-bird-form__grid--2{grid-template-columns:1fr 1fr}}
.early-bird-form__consent{display:flex;align-items:flex-start;gap:.65rem;font-size:.88rem;color:var(--muted-foreground);line-height:1.45}
.early-bird-form__consent input{width:auto;margin-top:.2rem}
.early-bird-form__error{font-size:.88rem;color:#e57373}
.early-bird-form__submit{
  justify-self:start;border-radius:9999px;background:var(--action);color:var(--primary-foreground);
  padding:.75rem 1.4rem;font-weight:600;display:inline-flex;align-items:center;gap:.4rem;
  transition:opacity .2s ease;
}
.early-bird-form__submit:hover{opacity:.9}
.early-bird-form__submit:disabled{opacity:.6;cursor:not-allowed}
.early-bird-country__wrap{position:relative}
.early-bird-country__input{
  width:100%;padding-right:2.5rem;cursor:text;
}
.early-bird-country__toggle{
  position:absolute;right:.55rem;top:50%;transform:translateY(-50%);
  display:grid;place-items:center;width:1.75rem;height:1.75rem;
  border:0;border-radius:.45rem;background:transparent;color:var(--muted-foreground);
  cursor:pointer;transition:color .15s ease,background-color .15s ease;
}
.early-bird-country__toggle svg{width:.95rem;height:.95rem;display:block;transition:transform .2s ease}
.early-bird-country__wrap.is-open .early-bird-country__toggle{color:var(--primary)}
.early-bird-country__wrap.is-open .early-bird-country__toggle svg{transform:rotate(180deg)}
.early-bird-country__wrap.is-open .early-bird-country__input{border-color:var(--primary)}
.early-bird-country__list{
  position:absolute;z-index:40;left:0;right:0;top:calc(100% + .4rem);
  max-height:13.5rem;margin:0;padding:.3rem;overflow-y:auto;
  list-style:none;border:1px solid var(--border);border-radius:.85rem;
  background:var(--card);box-shadow:0 12px 32px rgba(15,23,42,.12);
  scrollbar-width:thin;scrollbar-color:color-mix(in oklab,var(--primary) 35%,transparent) transparent;
}
.early-bird-country__list::-webkit-scrollbar{width:.4rem}
.early-bird-country__list::-webkit-scrollbar-thumb{
  border-radius:9999px;background:color-mix(in oklab,var(--primary) 35%,transparent);
}
.early-bird-country__hint{
  padding:.45rem .75rem .35rem;font-size:.72rem;font-weight:500;
  letter-spacing:.04em;text-transform:uppercase;color:var(--muted-foreground);
  pointer-events:none;user-select:none;
}
.early-bird-country__option{
  padding:.55rem .75rem;font-size:.92rem;line-height:1.35;border-radius:.55rem;
  cursor:pointer;transition:background-color .15s ease,color .15s ease;
}
.early-bird-country__option.is-active,
.early-bird-country__option:hover{background:color-mix(in srgb,var(--primary) 10%,transparent);color:var(--primary)}
.early-bird-country__empty{
  padding:.65rem .75rem;font-size:.88rem;color:var(--muted-foreground);
}
.early-bird-success{
  border-radius:1.5rem;border:1px solid var(--border);background:var(--card);
  box-shadow:var(--shadow-card);padding:2rem;text-align:center;
}
.early-bird-success__mark{
  width:3rem;height:3rem;margin:0 auto;border-radius:9999px;
  display:grid;place-items:center;background:color-mix(in srgb,var(--primary) 10%,transparent);
  border:1px solid color-mix(in srgb,var(--primary) 28%,transparent);color:var(--primary);
  font-size:1.35rem;font-weight:700;line-height:1;
}
.early-bird-success__title{margin-top:1rem;font-size:1.45rem;font-weight:700}
.early-bird-success__copy{margin-top:.75rem;color:var(--muted-foreground);line-height:1.55}
.early-bird-success__back{
  margin-top:1.5rem;display:inline-flex;align-items:center;gap:.35rem;
  color:var(--primary);font-weight:600;
}
.early-bird-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}

/* Legal pages (privacy policy, terms) */
.legal-hero{padding:9rem 0 3rem;position:relative;overflow:hidden}
.legal-hero__eyebrow{font-family:'IBM Plex Mono',monospace;font-size:.7rem;text-transform:uppercase;letter-spacing:.35em;color:var(--primary)}
.legal-hero h1{margin-top:1.25rem;font-size:clamp(2rem,5vw,3rem);font-weight:700;line-height:1.1}
.legal-hero__meta{margin-top:1.25rem;font-size:.875rem;color:var(--muted-foreground)}
.legal-layout{display:grid;gap:3rem;padding-bottom:6rem;min-width:0}
.legal-layout>*{min-width:0}
.legal-single{max-width:46rem;margin:0 auto;padding-bottom:6rem;min-width:0}
@media(min-width:1024px){.legal-layout{grid-template-columns:16rem 1fr;gap:4rem;align-items:start}}
.legal-toc{display:none}
@media(min-width:1024px){.legal-toc{display:block;position:sticky;top:7rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:1.5rem;box-shadow:var(--shadow-card)}}
.legal-toc__heading{font-size:.7rem;text-transform:uppercase;letter-spacing:.25em;font-weight:600;color:var(--muted-foreground)}
.legal-toc__links{margin-top:1rem;display:flex;flex-direction:column;gap:.6rem;font-size:.85rem}
.legal-toc__links a{color:var(--muted-foreground);transition:color .15s}
.legal-toc__links a:hover{color:var(--primary)}
.legal-prose{max-width:46rem;color:var(--foreground)}
.legal-prose h2{margin-top:3rem;font-family:Sora,sans-serif;font-size:1.35rem;font-weight:700;scroll-margin-top:7rem}
.legal-prose h2:first-child{margin-top:0}
.legal-prose h3{margin-top:2rem;font-family:Sora,sans-serif;font-size:1.05rem;font-weight:600}
.legal-prose p{margin-top:1rem;line-height:1.75;color:var(--muted-foreground)}
.legal-prose ul{margin-top:1rem;display:flex;flex-direction:column;gap:.6rem;list-style:disc;padding-left:1.25rem;color:var(--muted-foreground);line-height:1.7}
.legal-prose li::marker{color:var(--primary)}
.legal-prose a{color:var(--primary);text-decoration:underline;text-underline-offset:3px}
.legal-prose strong{color:var(--foreground);font-weight:600}
.legal-prose .legal-note{margin-top:1.5rem;border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb,var(--primary) 4%,var(--card));padding:1.25rem 1.5rem}
.legal-prose .legal-note p{margin-top:0;color:var(--muted-foreground)}
.legal-table-wrap{margin-top:1.25rem;overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}
.legal-table{width:100%;border-collapse:collapse;font-size:.875rem;min-width:32rem}
.legal-table th{text-align:left;padding:.85rem 1rem;background:var(--muted);font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted-foreground)}
.legal-table td{padding:.85rem 1rem;border-top:1px solid var(--border);color:var(--muted-foreground);vertical-align:top;line-height:1.6}

/* hardening */
.early-bird-band__cta:active{transform:scale(.97)}
@media (hover:none),(pointer:coarse){
  .product-card:hover,.metric-chip:hover,.detail-item:hover,.pulse-card-hover:hover{transform:none;border-color:var(--border);box-shadow:var(--shadow-card)}
  .loc-chip:hover{transform:none;border-color:var(--border)}
  .product-card:hover .product-card__cta svg{transform:none}
}
