/* ==========================================================================
   SEQTO — Home page correction & polish layer
   Loaded LAST, after seqto.css and seqto-responsive.css.
   Purpose: undo the accidental disabling of the home page interactions and
   even out spacing/typography. It contains no layout rewrites — every rule
   below is either a restoration or a rhythm correction.
   Build: 2026-09-22
   ========================================================================== */

/* --------------------------------------------------------------------------
   1 · Restore the signature cursor
   css/seqto.css contains:
       body.sq-home{cursor:auto}
       body.sq-home #cursor,body.sq-home #cursorRing{display:none !important}
   which switched the gold dot + trailing ring off on the home page only.
   The rules below bring it back, but strictly for mouse users: the
   touch/coarse-pointer rule in seqto-responsive.css still wins on phones,
   and the script only adds .sq-has-cursor when a fine pointer is present.
   -------------------------------------------------------------------------- */
@media (hover: hover) and (pointer: fine) {
  html.sq-has-cursor body.sq-home { cursor: none; }
  html.sq-has-cursor body.sq-home a,
  html.sq-has-cursor body.sq-home button,
  html.sq-has-cursor body.sq-home .service-card,
  html.sq-has-cursor body.sq-home .og-card,
  html.sq-has-cursor body.sq-home .sq-card { cursor: none; }

  /* text entry always keeps a real caret */
  html.sq-has-cursor body.sq-home input,
  html.sq-has-cursor body.sq-home textarea,
  html.sq-has-cursor body.sq-home select { cursor: auto; }

  html.sq-has-cursor body.sq-home #cursor,
  html.sq-has-cursor body.sq-home #cursorRing { display: block !important; }
}

/* the dot/ring must never sit under a modal or the chat panel */
#cursor { z-index: 100000; }
#cursorRing { z-index: 99999; transition: transform .15s ease, border-color .15s ease, opacity .2s ease; }
#cursor { transition: transform .12s ease, opacity .2s ease; }

/* --------------------------------------------------------------------------
   2 · Reveal animations — fail-safe
   The legacy home page uses .reveal/.visible while the rest of the site uses
   .sq-reveal/.is-in. Both are kept. If JavaScript never runs, content must
   still be readable rather than stuck at opacity:0.
   -------------------------------------------------------------------------- */
html:not(.sq-js) .reveal,
html:not(.sq-js) .sq-reveal { opacity: 1 !important; transform: none !important; }

@media (prefers-reduced-motion: reduce) {
  .reveal, .sq-reveal { opacity: 1 !important; transform: none !important; }
}

/* --------------------------------------------------------------------------
   3 · Section rhythm
   The home page mixes rem-based and px-based section padding. These two rules
   give every top-level band the same vertical rhythm without touching the
   inline layout of anything inside them.
   -------------------------------------------------------------------------- */
body.sq-home { --sq-home-band: clamp(3.6rem, 6vw, 6.5rem); }
body.sq-home main > section:not(.hero):not(.cta-section) {
  padding-top: var(--sq-home-band);
  padding-bottom: var(--sq-home-band);
}
body.sq-home main > section + section { border-top: 1px solid var(--sq-border-soft, #171a25); }

/* consistent gap under every section heading block */
body.sq-home .section-header,
body.sq-home .services-header,
body.sq-home .sq-sechead { margin-bottom: clamp(2rem, 3.4vw, 3.4rem); }

/* --------------------------------------------------------------------------
   4 · Typography evenness
   -------------------------------------------------------------------------- */
body.sq-home .section-label,
body.sq-home .sq-eyebrow { margin-bottom: .9rem; }
body.sq-home p { text-wrap: pretty; }
body.sq-home h1, body.sq-home h2, body.sq-home h3,
body.sq-home .hero-title, body.sq-home .section-title { text-wrap: balance; }

/* --------------------------------------------------------------------------
   5 · Interaction consistency
   Cards, buttons and links across the page settle on one hover language.
   -------------------------------------------------------------------------- */
body.sq-home .service-card,
body.sq-home .expert-card,
body.sq-home .industry-item,
body.sq-home .why-item,
body.sq-home .og-card {
  transition: transform .3s cubic-bezier(.22,.61,.36,1),
              border-color .3s ease,
              box-shadow .3s ease;
}
body.sq-home .service-card:hover,
body.sq-home .expert-card:hover,
body.sq-home .og-card:hover { transform: translateY(-6px); }

/* visible keyboard focus everywhere, including the custom-cursor state */
body.sq-home :where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid var(--gold, #c8972a);
  outline-offset: 3px;
  border-radius: 2px;
}

/* --------------------------------------------------------------------------
   6 · Small corrections found during the audit
   -------------------------------------------------------------------------- */
/* the sticky header now receives both state classes; keep them identical */
body.sq-home nav#navbar.scrolled,
body.sq-home nav#navbar.is-scrolled {
  background: rgba(6, 6, 8, .97);
  box-shadow: 0 8px 30px rgba(0, 0, 0, .5);
}

/* anchor targets should not hide under the fixed header */
body.sq-home [id] { scroll-margin-top: calc(var(--sq-header-h, 72px) + 24px); }

/* images in the legacy markup were not intrinsically sized */
body.sq-home img { max-width: 100%; height: auto; }

/* the preloader must never trap the page if its script is blocked */
html:not(.sq-js) #seqto-preloader { display: none !important; }