/* Lexi marketing site overrides */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; background: #F9F7F2; color: #191919; font-family: 'Inter', system-ui, sans-serif; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }

.wrap { max-width: 1232px; margin: 0 auto; padding: 0 32px; }

/* Buttons */
.btn { display: inline-flex; align-items: center; gap: 8px; border: none; border-radius: 999px; font-weight: 700; cursor: pointer; transition: background-color .35s cubic-bezier(.2,.7,.2,1), color .35s cubic-bezier(.2,.7,.2,1), border-color .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s cubic-bezier(.2,.7,.2,1); font-family: inherit; white-space: nowrap; }
.btn-primary { background: var(--primary, #0004FF); color: #fff; padding: 14px 26px; font-size: 14px; }
.btn-primary:hover { background: var(--primary-hover, #191919); }
.btn-secondary { background: transparent; color: #191919; border: 1.5px solid #191919; padding: 12.5px 24.5px; font-size: 14px; }
.btn-secondary:hover { border-color: #0004FF; color: #0004FF; }
.btn-white { background: #fff; color: #191919; padding: 14px 26px; font-size: 14px; border: none; }
.btn-white:hover { background: #F9F7F2; }
.btn-ghost-light { background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,.4); padding: 12.5px 24.5px; font-size: 14px; }
.btn-ghost-light:hover { border-color: #fff; }

/* Soft transitions on interactive elements */
.nav-link, .footer-link, .ulink, .logo-mute, a { transition: color .35s cubic-bezier(.2,.7,.2,1), opacity .35s cubic-bezier(.2,.7,.2,1); }
.card { transition: box-shadow .35s cubic-bezier(.2,.7,.2,1), transform .35s cubic-bezier(.2,.7,.2,1); }
.chip { transition: background-color .3s ease, color .3s ease; }

/* Eyebrow */
.eyebrow { font-size: 12.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #0004FF; }
.eyebrow-muted { font-size: 12.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #6f6f6f; }

/* Section */
.section { padding: 132px 0; }
.section-title { font-size: 52px; font-weight: 800; line-height: 1.06; letter-spacing: -0.025em; color: #191919; text-align: center; margin: 20px auto 22px; max-width: 900px; text-wrap: balance; }
.section-sub { font-size: 19px; color: #494949; text-align: center; max-width: 640px; margin: 0 auto; line-height: 1.6; text-wrap: pretty; }
.section-head { display: flex; flex-direction: column; align-items: center; gap: 16px; margin-bottom: 72px; }

/* Cards */
.card { background: #fff; border-radius: 24px; box-shadow: 0 1px 2px -1px rgba(0,0,0,.06), 0 1px 3px 0 rgba(0,0,0,.06); }

/* Floating ui card */
.glass { background: rgba(255,255,255,.85); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid rgba(255,255,255,.6); border-radius: 18px; box-shadow: 0 12px 40px -8px rgba(0,4,255,.18), 0 4px 12px -4px rgba(0,0,0,.08); }

/* gradient backgrounds for product cards — unified blue family (no purple) */
.grad-copywriter { background: linear-gradient(135deg, #5b78ff 0%, #0004FF 58%, #0a1480 100%); }
.grad-supporter { background: linear-gradient(135deg, #9cc0ff 0%, #3a64ff 60%, #0004FF 100%); }
.grad-implement-1 { background: linear-gradient(160deg, #cdddff 0%, #8fb0ff 100%); }
.grad-implement-2 { background: linear-gradient(160deg, #aac2ff 0%, #6e8cff 100%); }
.grad-implement-3 { background: linear-gradient(160deg, #b6ccff 0%, #5d7bff 100%); }

/* status dot pulse */
@keyframes pulse-dot { 0%,100% { opacity: 1; } 50% { opacity: .4; } }
.dot-live { animation: pulse-dot 1.6s ease-in-out infinite; }

/* product-demo mock animations */
@keyframes lexi-blink { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0; } }
@keyframes lexi-pop { 0% { transform: scale(.6); opacity: 0; } 60% { transform: scale(1.1); } 100% { transform: scale(1); opacity: 1; } }

/* ── Capabilities grid: fluid CSS keyframe loops ───────────────────────── */
/* Card 1 — channel chips: blue highlight glides chip-to-chip (11s cycle, 2.2s each) */
@keyframes fgChip {
  0%, 20%, 100% { background-color: #fff; color: #5f6b86; border-color: #D0DCF2; }
  4%, 15%       { background-color: #0004FF; color: #fff; border-color: #0004FF; }
}
@keyframes fgChipCheck {
  0%, 20%, 100% { opacity: 0; }
  4%, 15%       { opacity: 1; }
}
.fg-chip { animation: fgChip 11s ease-in-out infinite; }
.fg-chip .fg-check { animation: fgChipCheck 11s ease-in-out infinite; animation-delay: inherit; }

/* Card 3 — A/B variants: B considered, then A wins (9s cycle) */
@keyframes fgVarA {
  0%, 52%   { border-color: #D0DCF2; box-shadow: 0 0 0 3px rgba(0,4,255,0); }
  64%, 94%  { border-color: #0004FF; box-shadow: 0 0 0 3px rgba(0,4,255,.07); }
  100%      { border-color: #D0DCF2; box-shadow: 0 0 0 3px rgba(0,4,255,0); }
}
@keyframes fgVarB {
  0%, 16%   { border-color: rgba(143,166,217,0); }
  28%, 46%  { border-color: #8fa6d9; }
  58%, 100% { border-color: rgba(143,166,217,0); }
}
@keyframes fgWin {
  0%, 56%  { opacity: 0; }
  68%, 94% { opacity: 1; }
  100%     { opacity: 0; }
}
.fg-va  { animation: fgVarA 9s ease-in-out infinite; }
.fg-vb  { animation: fgVarB 9s ease-in-out infinite; }
.fg-win { animation: fgWin 9s ease-in-out infinite; }

/* Card 5 — sliders drift between two settings, each at its own pace */
@keyframes fgFillLen   { from { width: 42%; } to { width: 71%; } }
@keyframes fgKnobLen   { from { left: calc(42% - 5px); } to { left: calc(71% - 5px); } }
@keyframes fgFillBrand { from { width: 78%; } to { width: 52%; } }
@keyframes fgKnobBrand { from { left: calc(78% - 5px); } to { left: calc(52% - 5px); } }
@keyframes fgFillTone  { from { width: 64%; } to { width: 88%; } }
@keyframes fgKnobTone  { from { left: calc(64% - 5px); } to { left: calc(88% - 5px); } }
.fg-fill-len   { animation: fgFillLen   5.6s cubic-bezier(.45,.05,.55,.95) infinite alternate; }
.fg-knob-len   { animation: fgKnobLen   5.6s cubic-bezier(.45,.05,.55,.95) infinite alternate; }
.fg-fill-brand { animation: fgFillBrand 7.4s cubic-bezier(.45,.05,.55,.95) infinite alternate; }
.fg-knob-brand { animation: fgKnobBrand 7.4s cubic-bezier(.45,.05,.55,.95) infinite alternate; }
.fg-fill-tone  { animation: fgFillTone  6.5s cubic-bezier(.45,.05,.55,.95) infinite alternate; }
.fg-knob-tone  { animation: fgKnobTone  6.5s cubic-bezier(.45,.05,.55,.95) infinite alternate; }

@media (prefers-reduced-motion: reduce) {
  .fg-anim, .fg-anim .fg-check { animation: none !important; }
}

/* hero floating cards — gentle bob */
@keyframes lexi-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }
@media (prefers-reduced-motion: no-preference) {
  .hero-float { animation: lexi-float var(--float-dur, 6s) ease-in-out var(--float-delay, 0s) infinite; will-change: transform; }
}

/* underline link */
.ulink { color: #0004FF; font-weight: 600; }
.ulink:hover { text-decoration: underline; }

/* logo strip mute */
.logo-mute { color: #929292; font-weight: 700; font-size: 22px; letter-spacing: -0.01em; opacity: .85; transition: opacity .2s; font-family: 'Inter', sans-serif; }
.logo-mute:hover { opacity: 1; color: #191919; }

/* nav */
.nav-link { color: #363636; font-weight: 500; font-size: 14px; padding: 8px 4px; }
.nav-link:hover { color: #0004FF; }

/* tabs in hero pill */
.hero-pill-tab { padding: 10px 18px; border-radius: 999px; font-size: 13px; font-weight: 600; cursor: pointer; transition: all .15s; border: none; background: transparent; color: #363636; font-family: inherit; }
.hero-pill-tab.active { background: #0004FF; color: #fff; }
.hero-pill-tab:hover:not(.active) { color: #191919; }

/* product card chip */
.chip { display: inline-flex; align-items: center; padding: 6px 12px; border-radius: 999px; background: #F0EFEA; color: #363636; font-size: 12px; font-weight: 500; }
.chip-on-grad { background: rgba(255,255,255,.7); color: #191919; }

/* tiny rounded card svg-ish */
.mini-card { background: #fff; border-radius: 12px; padding: 14px 16px; box-shadow: 0 4px 16px -4px rgba(0,4,255,.12), 0 1px 3px rgba(0,0,0,.04); }

/* product tile small */
.tile-icon { width: 36px; height: 36px; border-radius: 10px; display: flex; align-items: center; justify-content: center; }

/* footer */
.footer-link { color: #B3B3B3; font-size: 14px; padding: 4px 0; display: block; }
.footer-link:hover { color: #fff; }

/* CEE coverage map cells */
.map-cell { width: 36px; height: 36px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 700; color: #fff; }

/* =========================================================
   RICHER HOVER EFFECTS
   ========================================================= */
@media (hover: hover) and (prefers-reduced-motion: no-preference) {

  /* ---- Buttons: lift + press, arrow nudge, sheen sweep ---- */
  .btn { position: relative; overflow: hidden;
    transition: background-color .35s cubic-bezier(.2,.7,.2,1), color .35s cubic-bezier(.2,.7,.2,1),
                border-color .35s cubic-bezier(.2,.7,.2,1), transform .25s cubic-bezier(.2,.7,.2,1),
                box-shadow .3s cubic-bezier(.2,.7,.2,1); }
  .btn::after { content: ""; position: absolute; top: 0; left: -120%; width: 60%; height: 100%;
    background: linear-gradient(100deg, transparent, rgba(255,255,255,.35), transparent);
    transform: skewX(-18deg); transition: left .6s cubic-bezier(.2,.7,.2,1); pointer-events: none; }
  .btn:hover::after { left: 130%; }
  .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 10px 24px -8px rgba(0,4,255,.5); }
  .btn-primary:active { transform: translateY(0); box-shadow: 0 4px 12px -6px rgba(0,4,255,.45); }
  .btn-secondary:hover { transform: translateY(-2px); background: #0004FF; color: #fff; border-color: #0004FF; box-shadow: 0 10px 24px -10px rgba(0,4,255,.45); }
  .btn-secondary::after { background: linear-gradient(100deg, transparent, rgba(0,4,255,.18), transparent); }
  .btn-white:hover { transform: translateY(-2px); box-shadow: 0 12px 26px -10px rgba(0,0,0,.3); }
  .btn-ghost-light:hover { transform: translateY(-2px); background: rgba(255,255,255,.08); }
  /* arrow nudge — any button whose label ends in an arrow */
  .btn { gap: 8px; }
  .btn span.arr, .btn .arr { display: inline-block; transition: transform .3s cubic-bezier(.2,.7,.2,1); }
  .btn:hover span.arr, .btn:hover .arr { transform: translateX(4px); }

  /* ---- Cards: hover disabled per request ---- */
  .card { border: 1px solid transparent; }
  .mini-card { transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s cubic-bezier(.2,.7,.2,1); }

  /* ---- Nav + footer + inline links: wipe-in underline ---- */
  .nav-link { position: relative; }
  .nav-link::after { content: ""; position: absolute; left: 4px; right: 4px; bottom: 2px; height: 2px;
    background: #0004FF; border-radius: 2px; transform: scaleX(0); transform-origin: left;
    transition: transform .3s cubic-bezier(.2,.7,.2,1); }
  .nav-link:hover::after { transform: scaleX(1); }
  .footer-link { position: relative; width: fit-content; }
  .footer-link::after { content: ""; position: absolute; left: 0; right: 0; bottom: 1px; height: 1px;
    background: currentColor; transform: scaleX(0); transform-origin: left; opacity: .6;
    transition: transform .3s cubic-bezier(.2,.7,.2,1); }
  .footer-link:hover::after { transform: scaleX(1); }
  .ulink { position: relative; text-decoration: none; }
  .ulink::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 1.5px;
    background: #0004FF; transform: scaleX(0); transform-origin: left;
    transition: transform .3s cubic-bezier(.2,.7,.2,1); }
  .ulink:hover { text-decoration: none; }
  .ulink:hover::after { transform: scaleX(1); }

  /* ---- Logo strip: desaturate -> full colour + lift ---- */
  .logo-mute { transition: opacity .3s ease, color .3s ease, transform .3s cubic-bezier(.2,.7,.2,1); }
  .logo-mute:hover { transform: translateY(-2px); }

  /* ---- Hero pill tabs: springy ---- */
  .hero-pill-tab { transition: color .25s ease, background-color .25s ease, transform .2s cubic-bezier(.2,.7,.2,1); }
  .hero-pill-tab:hover:not(.active) { transform: translateY(-1px); }

  /* ---- Chips: blue tint on hover ---- */
  .chip { transition: background-color .3s ease, color .3s ease, transform .3s cubic-bezier(.2,.7,.2,1); }
  .chip:hover { background: #EBECFF; color: #0004FF; transform: translateY(-1px); }

  /* ---- Map cells: pop ---- */
  .map-cell { transition: transform .25s cubic-bezier(.2,.7,.2,1), box-shadow .25s ease; }
  .map-cell:hover { transform: scale(1.12); box-shadow: 0 6px 14px -5px rgba(0,4,255,.5); z-index: 2; }
}
