/* ============================================================
   Longboard marketing site — shared design system
   Brand tokens, base reset, hover-state classes (converted from
   the prototype's `style-hover` attrs), header/footer chrome,
   and a responsive layer that retrofits the desktop-first,
   inline-styled prototype markup for tablet/mobile.
   ============================================================ */

/* ---------- base (from prototype <helmet>) ---------- */
* { box-sizing: border-box; }
html, body { margin: 0; }
html { overflow-x: hidden; }
body {
  font-family: 'Geist', ui-sans-serif, system-ui, sans-serif;
  background: #f6f0e5;
  color: #51636b;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
img { max-width: 100%; }
h1, h2, h3, p { text-wrap: pretty; }

@keyframes lbbob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: .001ms !important; animation-iteration-count: 1 !important; }
}

/* ---------- form inputs (About + early access) ---------- */
.lbinput {
  width: 100%; height: 46px; border: 1px solid #d8cfba; background: #fff;
  border-radius: 11px; padding: 0 14px; font-family: inherit; font-size: 14.5px;
  color: #16384a; outline: none;
}
.lbinput:focus { border-color: #16384a; box-shadow: 0 0 0 3px rgba(22,56,74,.12); }
textarea.lbinput { height: auto; padding: 12px 14px; resize: vertical; }
.lbinput::placeholder { color: #a7b0b6; }

/* ---------- hover-state utility classes ----------
   Direct 1:1 map of the prototype's `style-hover="…"` values. */
.hv-white:hover    { color: #fff; }
.hv-navy:hover     { color: #16384a; }
.hv-b6:hover       { filter: brightness(1.06); }
.hv-b7:hover       { filter: brightness(1.07); }
.hv-b8:hover       { filter: brightness(1.08); }
.hv-cream:hover    { background: #fbf7ee; }
.hv-cream2:hover   { background: #faf6ec; }

/* ============================================================
   HEADER (canonical — identical markup pasted on every page)
   ============================================================ */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(246,240,229,.82);
  -webkit-backdrop-filter: saturate(140%) blur(10px);
  backdrop-filter: saturate(140%) blur(10px);
  border-bottom: 1px solid #ece3d2;
}
.header-inner {
  max-width: 1200px; margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 32px;
}
.brand { display: flex; align-items: center; gap: 11px; text-decoration: none; }
.brand-mark { height: 34px; width: auto; }
.brand-word { font-size: 20px; font-weight: 700; color: #16384a; letter-spacing: -.02em; }

.site-nav { display: flex; align-items: center; gap: 30px; }
.nav-link {
  color: #3f5560; font-size: 14.5px; font-weight: 500; text-decoration: none;
}
.nav-link:hover { color: #16384a; }
.nav-cta {
  background: #ed7d24; color: #fff; font-size: 14.5px; font-weight: 600;
  padding: 11px 20px; border-radius: 11px; text-decoration: none;
  box-shadow: 0 6px 16px rgba(237,125,36,.3); white-space: nowrap;
}
.nav-cta:hover { filter: brightness(1.06); }

/* current-page highlight (driven by <body class="page-…">) */
body.page-home    .nav-home,
body.page-how     .nav-how,
body.page-compare .nav-compare,
body.page-about   .nav-about { color: #16384a; font-weight: 600; }

/* hamburger — hidden on desktop (real <button>, keyboard-operable on mobile) */
.nav-burger { display: none; font: inherit; }
.nav-burger:focus-visible { outline: 2px solid #16384a; outline-offset: 2px; }

/* ============================================================
   FOOTER (canonical)
   ============================================================ */
.site-footer { background: #16384a; color: #b7c7cf; }
.footer-inner {
  max-width: 1200px; margin: 0 auto; padding: 50px 32px 40px;
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 40px; flex-wrap: wrap;
}
.footer-brand { max-width: 300px; }
.footer-chip {
  display: grid; place-items: center; height: 38px; padding: 0 6px;
  border-radius: 10px; background: #f6f0e5;
}
.footer-cols { display: flex; gap: 64px; flex-wrap: wrap; }
.footer-col { display: flex; flex-direction: column; gap: 11px; }
.footer-head {
  font-size: 12.5px; font-weight: 700; letter-spacing: .06em;
  text-transform: uppercase; color: #6b8089;
}
.footer-link { font-size: 14.5px; color: #b7c7cf; text-decoration: none; }
.footer-link:hover { color: #fff; }
.footer-bar { border-top: 1px solid rgba(255,255,255,.1); }
.footer-bar-inner {
  max-width: 1200px; margin: 0 auto; padding: 18px 32px;
  display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px;
  font-size: 13px; color: #6b8089;
}

/* ============================================================
   RESPONSIVE LAYER
   Overrides the prototype's fixed inline grids/type for smaller
   viewports via attribute selectors (inline styles are not
   !important, so stylesheet !important wins).
   ============================================================ */

/* Tablet: dense card grids → 2-up; two-column feature rows → stack */
@media (max-width: 1000px) {
  [style*="grid-template-columns:repeat(3"],
  [style*="grid-template-columns:repeat(4"],
  [style*="grid-template-columns:repeat(5"] { grid-template-columns: repeat(2, 1fr) !important; }
  [style*="grid-template-columns:.92fr"],
  [style*="grid-template-columns:1.08fr"],
  [style*="grid-template-columns:1.05fr"],
  [style*="grid-template-columns:1fr 1fr"],
  [style*="grid-template-columns:1.1fr"],
  [style*="grid-template-columns:.9fr"],
  [style*="grid-template-columns:.85fr"],
  [style*="grid-template-columns:1.15fr"] { grid-template-columns: 1fr !important; }
}

/* Mobile nav */
@media (max-width: 860px) {
  .nav-burger {
    display: flex; flex-direction: column; justify-content: center; gap: 5px;
    width: 42px; height: 38px; padding: 9px 8px; cursor: pointer;
    border: 1px solid #e0d6c3; border-radius: 10px; background: #fff;
  }
  .nav-burger span { display: block; height: 2px; border-radius: 2px; background: #16384a; transition: .2s; }
  .site-nav {
    position: absolute; top: 100%; left: 0; right: 0;
    flex-direction: column; align-items: stretch; gap: 4px;
    background: #f6f0e5; border-bottom: 1px solid #ece3d2;
    padding: 10px 18px 18px; display: none;
  }
  .site-header.nav-open .site-nav { display: flex; }
  .site-nav .nav-link { padding: 12px 6px; font-size: 16px; border-bottom: 1px solid #ece3d2; }
  .site-nav .nav-cta { margin-top: 10px; text-align: center; padding: 14px 20px; font-size: 15.5px; }
  .header-inner { position: relative; }
}

/* Phone: any remaining multi-column grid → single column; type + gutters shrink */
@media (max-width: 640px) {
  [style*="grid-template-columns"] { grid-template-columns: 1fr !important; }
  h1 { font-size: 36px !important; line-height: 1.07 !important; }
  h2 { font-size: 27px !important; }
  .header-inner,
  section > div,
  .footer-inner,
  .footer-bar-inner { padding-left: 18px !important; padding-right: 18px !important; }
}
@media (max-width: 420px) {
  h1 { font-size: 31px !important; }
}

/* Wide tables (Compare / Pricing matrix) scroll horizontally on small screens */
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
