/* ════════════════════════════════════════════════════════════════
   Attribute Co — shared base styles (every page)
   Colors, spacing and type scale live in /assets/js/tailwind-config.js
   ════════════════════════════════════════════════════════════════ */
:root {
  --color-cobalt-500:#004AAD;
  --shadow-cobalt:0 4px 24px rgba(0,74,173,0.28);
  --navy-grad:linear-gradient(157deg,#000b1f 0%,#001a4d 44%,#004AAD 100%);
  --home-grad:linear-gradient(135deg,#001f5c 0%,#004AAD 50%,#001433 100%);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
body { font-family:'Inter',system-ui,sans-serif; background:#fff; color:#0A0A0B; line-height:1.6; overflow-x:hidden; margin:0; }
h1,h2,h3,h4,h5,h6 { font-family:'Montserrat',system-ui,sans-serif; font-weight:800; line-height:1.1; color:#0A0A0B; margin:0; }
a { color:inherit; text-decoration:none; }
img,video { max-width:100%; height:auto; display:block; }
button,input,textarea,select { font-family:inherit; }
::selection { background:#004AAD; color:#fff; }
::-webkit-scrollbar { width:6px; height:6px; }
::-webkit-scrollbar-track { background:#F5F7FB; }
::-webkit-scrollbar-thumb { background:#93b6e9; border-radius:3px; }
[hidden] { display:none !important; }

/* Accessibility */
.skip-link { position:absolute; left:-9999px; top:0; z-index:100; background:#004AAD; color:#fff; padding:10px 16px; border-radius:0 0 12px 0; font-weight:600; font-size:14px; }
.skip-link:focus { left:0; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline:2px solid #3a7ada; outline-offset:2px; border-radius:6px; }

.section-padding { padding-top:5rem; padding-bottom:5rem; }
@media (min-width:1024px){ .section-padding { padding-top:8rem; padding-bottom:8rem; } }
.text-label { text-transform:uppercase; letter-spacing:0.12em; font-size:0.75rem; font-weight:600; color:#004AAD; font-family:'Inter',sans-serif; }

/* ── Hero shimmer, glow, grain ── */
@keyframes shimmer-sweep { 0%{background-position:200% center;} 100%{background-position:-200% center;} }
@keyframes hero-glow-pulse { 0%,100%{opacity:.5;} 50%{opacity:1;} }
.text-shimmer { /* home: white */
  background:linear-gradient(90deg,rgba(255,255,255,.6) 0%,rgba(255,255,255,.6) 30%,#fff 46%,rgba(255,255,255,.6) 62%,rgba(255,255,255,.6) 100%);
  background-size:220% auto; -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  animation:shimmer-sweep 3.8s linear infinite;
}
.text-shimmer-cool { /* industry pages: cool blue */
  background:linear-gradient(90deg,rgba(147,182,233,.7) 0%,rgba(147,182,233,.7) 30%,#dbe7ff 47%,rgba(147,182,233,.7) 64%,rgba(147,182,233,.7) 100%);
  background-size:220% auto; -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  animation:shimmer-sweep 4s linear infinite;
}
.hero-depth-pulse { position:absolute; inset:0; pointer-events:none; background:radial-gradient(ellipse 75% 55% at 30% 40%, rgba(0,100,255,.22), transparent 70%); animation:hero-glow-pulse 9s ease-in-out infinite; }
.hero-depth-pulse.is-centered { background:radial-gradient(ellipse 80% 55% at 50% 38%, rgba(0,100,255,.14), transparent 68%); }
.grain, .hero-grain { position:absolute; inset:0; pointer-events:none; opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E"); }
.hero-grain { opacity:.04; }
@keyframes hero-bob { 0%,100%{transform:translate(-50%,0);} 50%{transform:translate(-50%,8px);} }

/* ── Pill buttons (industry pages) ── */
.pill { display:inline-flex; align-items:center; justify-content:center; gap:8px; border-radius:999px; font-family:'Inter',sans-serif; font-weight:600; font-size:1rem; padding:15px 30px; cursor:pointer; transition:.2s; border:0; }
.pill-white { background:#fff; color:#004AAD; }
.pill-white:hover { background:rgba(255,255,255,.9); box-shadow:var(--shadow-cobalt); }
.pill-ghost { background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.55); }
.pill-ghost:hover { background:rgba(255,255,255,.1); }
.pill-cobalt { background:#004AAD; color:#fff; box-shadow:var(--shadow-cobalt); }
.pill-cobalt:hover { background:#0A5BD3; }
.pill[disabled], .pill[aria-busy="true"] { opacity:.7; cursor:progress; }

/* ── Image with branded fallback ── */
.imgwrap { position:relative; overflow:hidden; background:var(--navy-grad); }
.imgwrap img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }

.glass-chip { display:inline-flex; align-items:center; gap:9px; background:rgba(255,255,255,.92); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border-radius:14px; padding:11px 15px; box-shadow:0 8px 28px rgba(0,30,90,.18); }
.beacon { width:8px; height:8px; border-radius:999px; background:#10b981; position:relative; flex-shrink:0; }
.beacon::after { content:''; position:absolute; inset:-4px; border-radius:999px; border:2px solid rgba(16,185,129,.45); animation:beacon-pulse 2s ease-out infinite; }
@keyframes beacon-pulse { 0%{transform:scale(.6);opacity:1;} 100%{transform:scale(1.6);opacity:0;} }

/* ── Marquee ── */
@keyframes marquee { 0%{transform:translateX(0);} 100%{transform:translateX(-50%);} }
.marquee-track { animation:marquee 34s linear infinite; }
.marquee-track:hover { animation-play-state:paused; }

/* ── Scroll reveal ── */
.reveal { opacity:0; transform:translateY(24px); transition:opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1); }
.reveal.in { opacity:1; transform:none; }
.no-js .reveal { opacity:1; transform:none; }

/* ── Accordion ── */
.acc-collapse { display:grid; grid-template-rows:0fr; transition:grid-template-rows .28s cubic-bezier(.16,1,.3,1); }
.acc-collapse.open { grid-template-rows:1fr; }
.acc-collapse > div { overflow:hidden; }

/* ── Floating hero chips ── */
@keyframes floaty { 0%,100%{transform:translateY(0);} 50%{transform:translateY(-9px);} }
.floaty { animation:floaty 6s ease-in-out infinite; }
.floaty.d1 { animation-delay:-2s; }
.floaty.d2 { animation-delay:-4s; }
.hero-rotor { display:inline-block; transition:opacity .4s cubic-bezier(.16,1,.3,1), transform .4s cubic-bezier(.16,1,.3,1), color .4s ease; will-change:opacity,transform; }

/* ── Status beacon + chat launcher ── */
@keyframes online-beacon { 0%,100%{opacity:1;transform:scale(1);} 50%{opacity:.5;transform:scale(.85);} }
.online-beacon { animation:online-beacon 2.4s ease-in-out infinite; }
@keyframes chat-launcher-pulse { 0%{box-shadow:var(--shadow-cobalt),0 0 0 0 rgba(0,74,173,.45);} 70%{box-shadow:var(--shadow-cobalt),0 0 0 14px rgba(0,74,173,0);} 100%{box-shadow:var(--shadow-cobalt),0 0 0 0 rgba(0,74,173,0);} }
.chat-pulse { animation:chat-launcher-pulse 1.8s ease-out .8s 2; }
@keyframes typb { 0%,100%{opacity:.25;transform:translateY(0);} 50%{opacity:1;transform:translateY(-3px);} }
.typ { animation:typb 1s ease-in-out infinite; }
.typ:nth-child(2){ animation-delay:.18s; } .typ:nth-child(3){ animation-delay:.36s; }
.chat-msg a { text-decoration:underline; text-underline-offset:2px; font-weight:600; }

/* ── Form fields ── */
.field { padding:12px 14px; border:1px solid #E8EBF2; border-radius:12px; font-family:'Inter',sans-serif; font-size:14px; color:#0A0A0B; background:#fff; transition:.15s; width:100%; min-width:0; }
.field::placeholder { color:#9B9BA6; }
.field:hover { border-color:#93b6e9; }
.field:focus { outline:none; border-color:transparent; box-shadow:0 0 0 2px #004AAD; }
.field[aria-invalid="true"] { border-color:#dc2626; box-shadow:0 0 0 1px #dc2626; }
textarea.field { resize:vertical; min-height:96px; line-height:1.5; }
select.field { appearance:none; -webkit-appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236B6B78' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; padding-right:36px; }
.field-label { display:block; font-size:12px; font-weight:600; color:#44444F; margin-bottom:6px; }
/* Honeypot: hidden from people, visible to naive bots */
.hp { position:absolute !important; left:-10000px !important; top:auto; width:1px; height:1px; overflow:hidden; }

/* ── Legal pages ── */
.legal h2 { font-size:1.25rem; font-weight:800; margin:2.5rem 0 .75rem; letter-spacing:-0.01em; }
.legal h3 { font-size:1rem; font-weight:700; margin:1.5rem 0 .5rem; }
.legal p, .legal li { color:#44444F; font-size:15px; line-height:1.75; }
.legal p { margin:0 0 1rem; }
.legal ul { list-style:disc; padding-left:1.25rem; margin:0 0 1rem; }
.legal li { margin-bottom:.35rem; }
.legal a { color:#004AAD; text-decoration:underline; text-underline-offset:2px; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .text-shimmer,.text-shimmer-cool,.hero-depth-pulse,.marquee-track,.floaty,.beacon::after,.chat-pulse,.online-beacon,.typ { animation:none; }
  .reveal { opacity:1; transform:none; transition:none; }
}

/* ════════════ Header (transparent over hero → white on scroll) ════════════ */
.site-header { padding:1rem 0; transition:background-color .3s, box-shadow .3s, padding .3s; }
.site-header .logo-img { height:2.5rem; width:auto; transition:height .3s; }
.site-header .logo-dark { display:none; }
.site-header .nav-link { color:rgba(255,255,255,.72); transition:color .3s, background-color .2s; }
.site-header .nav-link:hover { color:#fff; }
.site-header .nav-link[aria-current="page"] { color:#fff; font-weight:600; }
.site-header .header-cta { border:1px solid rgba(255,255,255,.6); color:#fff; }
.site-header .header-cta:hover { background:rgba(255,255,255,.1); }
.site-header.is-scrolled, .site-header.menu-open, body[data-header="solid"] .site-header { background:#fff; box-shadow:0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04); padding:.625rem 0; }
.site-header.is-scrolled .logo-img, .site-header.menu-open .logo-img, body[data-header="solid"] .site-header .logo-img { height:2rem; }
.site-header.is-scrolled .logo-light, .site-header.menu-open .logo-light, body[data-header="solid"] .site-header .logo-light { display:none; }
.site-header.is-scrolled .logo-dark, .site-header.menu-open .logo-dark, body[data-header="solid"] .site-header .logo-dark { display:block; }
.site-header.is-scrolled .nav-link, .site-header.menu-open .nav-link, body[data-header="solid"] .site-header .nav-link { color:#44444F; }
.site-header.is-scrolled .nav-link:hover, .site-header.menu-open .nav-link:hover, body[data-header="solid"] .site-header .nav-link:hover { color:#0A0A0B; background:#F5F7FB; }
.site-header.is-scrolled .nav-link[aria-current="page"], .site-header.menu-open .nav-link[aria-current="page"], body[data-header="solid"] .site-header .nav-link[aria-current="page"] { color:#004AAD; }
.site-header.is-scrolled .header-cta, .site-header.menu-open .header-cta, body[data-header="solid"] .site-header .header-cta { background:#004AAD; border-color:#004AAD; color:#fff; box-shadow:var(--shadow-cobalt); }
.site-header.is-scrolled .header-cta:hover, .site-header.menu-open .header-cta:hover, body[data-header="solid"] .site-header .header-cta:hover { background:#0A5BD3; }
#industries-button[aria-expanded="true"] .chev { transform:rotate(180deg); }
.chev { transition:transform .2s; }
.drawer-link[aria-current="page"] { color:#004AAD; font-weight:600; }

/* FAQ icon state */
.faq-icon { background:#F5F7FB; color:#6B6B78; }
.faq-icon.is-open { background:#004AAD; color:#fff; }

/* Home growth-ladder tabs */
.ladder-btn { background:transparent; }
.ladder-btn:hover { background:rgba(255,255,255,.5); }
.ladder-btn .ladder-dot { background:#E8EBF2; color:#6B6B78; }
.ladder-btn:hover .ladder-dot { background:#c0d4f2; }
.ladder-btn .ladder-num { color:#9B9BA6; }
.ladder-btn .ladder-name { color:#6B6B78; }
.ladder-btn .ladder-tag { color:#9B9BA6; }
.ladder-btn .ladder-chev { display:none; }
.ladder-btn.is-active { background:#fff; box-shadow:0 4px 16px rgba(0,74,173,0.08), 0 1px 4px rgba(0,0,0,0.04); }
.ladder-btn.is-active .ladder-dot { background:#004AAD; color:#fff; }
.ladder-btn.is-active .ladder-num { color:#004AAD; }
.ladder-btn.is-active .ladder-name { color:#0A0A0B; }
.ladder-btn.is-active .ladder-tag { color:#44444F; }
.ladder-btn.is-active .ladder-chev { display:block; }

body.drawer-open #chat-launcher, body.drawer-open #chat-panel { display:none !important; }
