/* ================================================================
   CRIS LANDING — BASE
   Shared by every landing page: design tokens, reset, skip link,
   scroll reveal, shared utilities and the primary button.
   Section styles live in their own verticz-<section>.css files.

   Rules: no inline styles, no !important, no responsive media queries here (print only).
          Responsive values are set per range in responsive.css:
            xs ≤575.98 | sm 576-767.98 | md 768-991.98
            lg 992-1199.98 | xl 1200-1399.98 | xxl ≥1400
   ================================================================ */

/* Design tokens live in variables.css (section 6, Landing page). */

/* ── 2. RESET & BASE ── */
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }

/* ── Scrollbars ── */
*::-webkit-scrollbar { height: var(--size-9); width: var(--size-9); }
*::-webkit-scrollbar-track, *::-webkit-scrollbar-corner { background: transparent; }
*::-webkit-scrollbar-button { display: none; }
*::-webkit-scrollbar-thumb { background: var(--white-a25); background-clip: padding-box; border: 2px solid transparent; border-radius: var(--br-full); transition: background-color var(--t-default) ease; }
*::-webkit-scrollbar-thumb:hover { background: var(--lime-a60); background-clip: padding-box; }
@supports not selector(::-webkit-scrollbar) {
  * { scrollbar-color: var(--white-a25) transparent; scrollbar-width: thin; }
}
body.plx-body {
  background-color:var(--bg);
  color:var(--t1);
  font-family:var(--font-body);
  font-size:var(--fs-16);
  line-height:1.6;
  overflow-x:hidden;
}
a { text-decoration:none; }
ul { list-style:none; margin:0; padding:0; }
button { cursor:pointer; font-family:inherit; }
img { display:block; max-width:100%; }
:focus-visible { outline:2px solid var(--lime); outline-offset:3px; border-radius:var(--br-inner); }
.plx-body section { overflow-x:hidden; }


/* ── 3. SCROLL REVEAL (state: data-revealed="true|false") ── */
[data-reveal] { opacity:0; transition:opacity var(--t-slow) cubic-bezier(0.4,0,0.2,1), transform var(--t-slow) cubic-bezier(0.4,0,0.2,1); }
[data-reveal="up"]    { transform:translateY(28px); }
[data-reveal="left"]  { transform:translateX(-28px); }
[data-reveal="right"] { transform:translateX(28px); }
[data-reveal="fade"]  { transform:scale(0.97); }
[data-reveal][data-revealed="true"] { opacity:1; transform:none; }

/* ── 4. SHARED UTILITIES ── */
.plx-h2 {
  color:var(--t1); font-size:clamp(28px,3vw,44px); font-weight:900;
  letter-spacing:-.8px;margin:0 0 var(--sp-20);
}
.plx-lime-text {
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  background-image:linear-gradient(90deg,var(--lime) 0%,var(--lime-400) 60%,var(--green) 100%);
  color:transparent;
  display:inline-block;
}

/* Eyebrow: label + gradient rule */
.plx-ph-ey {
  align-items:center; display:inline-flex; gap:var(--sp-16);
  justify-content:center; margin-bottom:var(--sp-16);
}
.plx-ph-ey-line {
  background:linear-gradient(90deg,var(--lime) 0%,var(--lime-400) 60%,var(--green) 100%); border-radius:var(--br-inner);
  flex-shrink:0; height:2px; width: var(--size-72);
}

/* Primary button */
.plx-btn-primary {
  align-items:center;
  background:linear-gradient(90deg,var(--lime) 0%,var(--green) 55%,var(--green) 100%);
  border:0; border-radius:var(--br-inner);
  color:var(--bg); display:inline-flex; font-size:var(--fs-14); font-weight:800; gap:var(--sp-6);
  padding:var(--sp-14) var(--sp-28);
  transition: filter var(--t-default), transform var(--t-default), box-shadow var(--t-default), color var(--t-default) ease;
  white-space:nowrap;
}
.plx-btn-primary:hover {
  box-shadow:0 0 32px var(--lime-a50);
  color:var(--bg); filter:brightness(1.08); transform:translateY(-1px);
}

/* ── 5. PRINT ── */
@media print {
  .plx-back-top, .plx-header, .plx-hero, .plx-cta, .plx-footer { display:none; }
}
