/* ============================================================
   Supahuman corporate / AI Studio — brand layer + page styles
   Sits on the shared design system (colors_and_type.css). Everything
   is scoped under .sh so it never collides with the VETos site styles.
   Light "studio" expression: white surfaces, Geomanist headings,
   blue→violet / peach→pink gradient signatures.
   ============================================================ */

.sh {
  background: #fff;
  color: var(--fg-2);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
  min-height: 100vh;
}
.sh *, .sh *::before, .sh *::after { box-sizing: border-box; }
.sh a { color: inherit; text-decoration: none; }

/* ---------- Nav ---------- */
.sh-nav {
  position: sticky; top: 0; z-index: 100;
  background: rgba(255, 255, 255, 0.82);
  -webkit-backdrop-filter: saturate(160%) blur(12px);
  backdrop-filter: saturate(160%) blur(12px);
  border-bottom: 1px solid var(--border-subtle);
}
.sh-nav__inner { display: flex; align-items: center; justify-content: space-between; height: 70px; }
.sh-nav__logo img { height: 26px; width: auto; display: block; }
.sh-nav__links { display: flex; align-items: center; gap: 30px; }
.sh-nav__links a { font-size: 15px; color: var(--fg-2); font-weight: 500; transition: color var(--transition-fast); }
.sh-nav__links a:hover { color: var(--fg-1); }
@media (max-width: 760px) { .sh-nav__links a:not(.sh-btn) { display: none; } }

/* ---------- Buttons ---------- */
.sh-btn {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-body); font-weight: 600; font-size: 15px;
  padding: 12px 22px; border-radius: var(--radius-pill);
  border: 1px solid transparent; cursor: pointer;
  transition: transform var(--transition-fast), box-shadow var(--transition-base), background var(--transition-base);
}
.sh-btn--primary { color: #fff; background: var(--gradient-blue-violet); box-shadow: var(--shadow-md); }
.sh-btn--primary:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); }
.sh-btn--ghost { color: var(--fg-1); border-color: var(--border-default); background: #fff; }
.sh-btn--ghost:hover { border-color: var(--border-strong); }
.sh-btn--on-dark { color: var(--bg-dark); background: #fff; }
.sh-btn--on-dark:hover { transform: translateY(-2px); }
.sh-btn--ghost-dark { color: #fff; border-color: rgba(255,255,255,0.32); background: transparent; }
.sh-btn--ghost-dark:hover { border-color: rgba(255,255,255,0.6); }

/* ---------- Shared section primitives ---------- */
.sh-section { padding: 96px 0; }
.sh-section--tight { padding: 64px 0; }
.sh-tag {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--font-mono); font-size: 11px; text-transform: uppercase;
  letter-spacing: var(--tracking-caps); color: var(--brand-primary); margin-bottom: 16px;
}
.sh-tag::before { content: ""; width: 24px; height: 1px; background: var(--brand-primary); }
.sh-tag.on-dark { color: var(--blue-400); }
.sh-tag.on-dark::before { background: var(--blue-400); }
.sh h1, .sh h2, .sh h3, .sh h4 { font-family: var(--font-heading); color: var(--fg-1); letter-spacing: var(--tracking-tight); line-height: 1.08; margin: 0; font-weight: 400; }
.sh-h1 { font-size: clamp(38px, 5.5vw, 64px); }
.sh-h2 { font-size: clamp(28px, 3.6vw, 40px); }
.sh-lede { font-size: clamp(17px, 1.6vw, 20px); line-height: 1.55; color: var(--fg-2); max-width: 62ch; }
.sh-grad-text { background: var(--gradient-blue-violet); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }

/* ---------- Hero (dark, gradient glow) ---------- */
.sh-hero { position: relative; overflow: hidden; background: var(--gradient-dark); color: #fff; padding: 116px 0 104px; }
.sh-hero::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(640px 360px at 88% 8%, rgba(116,35,249,0.28) 0%, transparent 60%),
    radial-gradient(560px 320px at 2% 100%, rgba(251,0,136,0.16) 0%, transparent 58%);
}
.sh-hero__inner { position: relative; z-index: 1; max-width: 880px; }
.sh-hero h1 { color: #fff; }
.sh-hero .sh-lede { color: rgba(248,249,252,0.82); margin-top: 22px; }
.sh-hero__cta { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 34px; }
.sh-hero__tagline { font-family: var(--font-heading); font-size: clamp(18px, 2vw, 23px); color: #fff; letter-spacing: -0.01em; margin-top: 30px; display: flex; align-items: center; gap: 14px; }
.sh-hero__tagline::before { content: ""; width: 28px; height: 2px; border-radius: 2px; background: var(--gradient-peach-pink); flex: none; }

/* ---------- Hero proof strip ---------- */
.sh-proof { margin-top: 46px; padding-top: 30px; border-top: 1px solid rgba(255, 255, 255, 0.14); display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
@media (max-width: 680px) { .sh-proof { grid-template-columns: 1fr; gap: 20px; } }
.sh-proof__stat { font-family: var(--font-heading); font-size: 30px; line-height: 1; letter-spacing: -0.02em; color: #fff; margin-bottom: 8px; }
.sh-proof__label { font-size: 13.5px; line-height: 1.45; color: rgba(248, 249, 252, 0.7); }

/* ---------- Cards ---------- */
.sh-grid { display: grid; gap: 20px; }
.sh-grid--2 { grid-template-columns: repeat(2, 1fr); }
.sh-grid--3 { grid-template-columns: repeat(3, 1fr); }
.sh-grid--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) { .sh-grid--3, .sh-grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .sh-grid--2, .sh-grid--3, .sh-grid--4 { grid-template-columns: 1fr; } }

.sh-card { background: #fff; border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); padding: 28px 26px; box-shadow: var(--shadow-sm); transition: transform var(--transition-base), box-shadow var(--transition-base); }
.sh-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.sh-card__num { font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.14em; color: var(--brand-primary); margin-bottom: 12px; }
.sh-card__title { font-family: var(--font-heading); font-size: 20px; color: var(--fg-1); letter-spacing: -0.01em; margin-bottom: 8px; }
.sh-card__body { font-size: 14.5px; line-height: 1.6; color: var(--fg-2); }

.sh-def { padding: 30px 30px 32px; border-radius: var(--radius-xl); background: var(--gradient-light); border: 1px solid var(--border-subtle); }
.sh-def__tag { display: inline-block; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--brand-primary); margin-bottom: 12px; }
.sh-def__title { font-family: var(--font-heading); font-size: 23px; color: var(--fg-1); letter-spacing: -0.01em; margin-bottom: 10px; }
.sh-def__body { font-size: 15px; line-height: 1.62; color: var(--fg-2); }

/* ---------- Stat ---------- */
.sh-stat { font-family: var(--font-heading); font-size: 52px; line-height: 1; letter-spacing: -0.02em; }

/* ---------- Logo / client wall ---------- */
.sh-clients { display: flex; flex-wrap: wrap; gap: 12px; }
.sh-client { font-family: var(--font-heading); font-size: 17px; color: var(--fg-1); padding: 12px 20px; border: 1px solid var(--border-subtle); border-radius: var(--radius-pill); background: #fff; }
.sh-client--more { color: var(--fg-3); background: var(--bg-surface-sunken); }

/* ---------- Steps (numbered) ---------- */
.sh-steps { display: grid; gap: 1px; background: var(--border-subtle); border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); overflow: hidden; }
.sh-step { background: #fff; padding: 24px 26px; display: grid; grid-template-columns: 56px 1fr; gap: 8px 18px; align-items: start; }
.sh-step__num { font-family: var(--font-heading); font-size: 30px; color: transparent; background: var(--gradient-blue-violet); -webkit-background-clip: text; background-clip: text; }
.sh-step__title { font-family: var(--font-heading); font-size: 18px; color: var(--fg-1); }
.sh-step__body { grid-column: 2; font-size: 14.5px; line-height: 1.6; color: var(--fg-2); }

/* ---------- Two-part commercials ---------- */
.sh-split { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
@media (max-width: 720px) { .sh-split { grid-template-columns: 1fr; } }
.sh-panel { border: 1px solid var(--border-subtle); border-radius: var(--radius-xl); padding: 30px; }
.sh-panel--build { background: var(--gradient-light); }
.sh-panel--run { background: var(--bg-dark); color: #fff; }
.sh-panel--run .sh-panel__title, .sh-panel--run .sh-panel__lead { color: #fff; }
.sh-panel__kicker { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--brand-primary); margin-bottom: 10px; }
.sh-panel--run .sh-panel__kicker { color: var(--blue-400); }
.sh-panel__title { font-family: var(--font-heading); font-size: 24px; color: var(--fg-1); margin-bottom: 10px; }
.sh-panel__lead { font-size: 15px; line-height: 1.6; color: var(--fg-2); }

/* ---------- CTA band ---------- */
.sh-cta { position: relative; overflow: hidden; background: var(--gradient-dark); color: #fff; border-radius: var(--radius-2xl); padding: 64px 48px; text-align: center; }
.sh-cta::after { content: ""; position: absolute; inset: 0; background: radial-gradient(600px 300px at 50% -20%, rgba(24,144,255,0.25) 0%, transparent 60%); pointer-events: none; }
.sh-cta__inner { position: relative; z-index: 1; }
.sh-cta h2 { color: #fff; margin-bottom: 14px; }
.sh-cta .sh-lede { color: rgba(248,249,252,0.82); margin: 0 auto 28px; }
.sh-cta__btns { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }

/* ---------- Footer ---------- */
.sh-footer { background: var(--bg-dark); color: rgba(248,249,252,0.72); padding: 64px 0 36px; }
.sh-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 32px; }
@media (max-width: 720px) { .sh-footer__grid { grid-template-columns: 1fr; } }
.sh-footer img { height: 24px; width: auto; margin-bottom: 18px; }
.sh-footer p { font-size: 14px; line-height: 1.6; max-width: 320px; }
.sh-footer h4 { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(248,249,252,0.5); margin-bottom: 14px; }
.sh-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.sh-footer ul a { font-size: 14px; color: rgba(248,249,252,0.78); }
.sh-footer ul a:hover { color: #fff; }
.sh-footer__bottom { margin-top: 44px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,0.1); display: flex; flex-wrap: wrap; gap: 14px; justify-content: space-between; font-size: 13px; color: rgba(248,249,252,0.5); }

/* ---------- Apex NZ front-door chooser ---------- */
.sh-chooser { position: fixed; inset: 0; z-index: 9999; overflow: auto; display: flex; align-items: center; justify-content: center; padding: 40px 24px; background: var(--gradient-dark); color: #fff; }
.sh-chooser::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(640px 360px at 84% 6%, rgba(116,35,249,0.3) 0%, transparent 60%), radial-gradient(560px 320px at 6% 100%, rgba(251,0,136,0.16) 0%, transparent 58%); }
.sh-chooser__inner { position: relative; z-index: 1; width: 100%; max-width: 880px; text-align: center; }
.sh-chooser__logo { display: block; height: 28px; width: auto; margin: 0 auto 36px; }
.sh-chooser .sh-chooser__title { font-family: var(--font-heading); font-weight: 400; font-size: clamp(28px, 4vw, 44px); letter-spacing: -0.02em; color: #fff; -webkit-text-fill-color: #fff; margin: 0 0 12px; }
.sh-chooser__sub { font-size: 16px; line-height: 1.5; color: rgba(248,249,252,0.78); max-width: 52ch; margin: 0 auto 40px; }
.sh-chooser__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width: 640px) { .sh-chooser__cards { grid-template-columns: 1fr; } }
.sh-chooser__card { display: flex; flex-direction: column; text-align: left; gap: 8px; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.16); border-radius: var(--radius-xl); padding: 30px 28px; cursor: pointer; color: #fff; font-family: inherit; transition: transform var(--transition-base), border-color var(--transition-base), background var(--transition-base); }
.sh-chooser__card:hover { transform: translateY(-4px); border-color: rgba(255,255,255,0.4); background: rgba(255,255,255,0.07); }
.sh-chooser__card-tag { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--blue-400); }
.sh-chooser__card-title { font-family: var(--font-heading); font-size: 24px; letter-spacing: -0.01em; color: #fff; margin-top: 2px; }
.sh-chooser__card-body { font-size: 14px; line-height: 1.55; color: rgba(248,249,252,0.78); flex: 1; }
.sh-chooser__card-cta { margin-top: 14px; font-weight: 600; font-size: 15px; color: var(--blue-400); }

/* Chooser → destination hand-off transition */
.sh-chooser__inner { transition: opacity 0.45s cubic-bezier(.2,.7,.2,1), transform 0.45s cubic-bezier(.2,.7,.2,1); }
.sh-chooser.is-leaving .sh-chooser__inner { opacity: 0; transform: scale(0.97) translateY(-6px); pointer-events: none; }
.sh-chooser__transfer { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; text-align: center; padding: 24px; animation: sh-transfer-in 0.5s cubic-bezier(.2,.7,.2,1) both; }
.sh-chooser__transfer-mark { font-family: var(--font-heading); font-size: clamp(30px, 5vw, 48px); letter-spacing: -0.025em; color: #fff; }
.sh-chooser__transfer-msg { font-size: 15px; letter-spacing: 0.02em; color: rgba(248, 249, 252, 0.7); }
.sh-chooser__transfer-bar { width: 220px; max-width: 60vw; height: 3px; border-radius: 3px; background: rgba(255, 255, 255, 0.12); overflow: hidden; margin-top: 6px; }
.sh-chooser__transfer-bar span { display: block; height: 100%; width: 38%; border-radius: 3px; background: var(--gradient-blue-violet); animation: sh-transfer-sweep 0.95s cubic-bezier(.4,0,.2,1) forwards; }
@keyframes sh-transfer-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes sh-transfer-sweep { from { transform: translateX(-120%); } to { transform: translateX(385%); } }
@media (prefers-reduced-motion: reduce) {
  .sh-chooser__inner { transition: none; }
  .sh-chooser__transfer, .sh-chooser__transfer-bar span { animation: none; }
}

/* ---------- Case study cards ---------- */
.sh-case-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); padding: 26px 24px 22px; box-shadow: var(--shadow-sm); transition: transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base); }
.sh-case-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: rgba(116, 35, 249, 0.3); }
.sh-case-card__metric { font-family: var(--font-heading); font-size: 38px; line-height: 1; letter-spacing: -0.02em; color: transparent; background: var(--gradient-blue-violet); -webkit-background-clip: text; background-clip: text; display: flex; align-items: baseline; gap: 10px; }
.sh-case-card__play { font-size: 12px; -webkit-text-fill-color: var(--brand-primary); color: var(--brand-primary); }
.sh-case-card__metric-label { font-size: 12.5px; color: var(--fg-3); margin: 6px 0 16px; }
.sh-case-card__client { font-family: var(--font-heading); font-size: 19px; color: var(--fg-1); margin-bottom: 8px; }
.sh-case-card__summary { font-size: 14px; line-height: 1.55; color: var(--fg-2); flex: 1; }
.sh-case-card__sector { margin-top: 16px; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--fg-3); }

/* ---------- Case study detail ---------- */
.sh-video { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: var(--radius-lg); overflow: hidden; background: #000; box-shadow: var(--shadow-lg); }
.sh-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.sh-case-body h2.sh-case-h { font-family: var(--font-heading); font-size: 24px; color: var(--fg-1); letter-spacing: -0.01em; margin: 36px 0 12px; }
.sh-case-body h2.sh-case-h:first-child { margin-top: 0; }
.sh-case-body p { font-size: 16.5px; line-height: 1.7; color: var(--fg-2); }
.sh-quote { margin: 44px 0 0; padding: 28px 32px; border-left: 3px solid transparent; border-image: var(--gradient-blue-violet) 1; background: var(--gradient-light); border-radius: 0 var(--radius-lg) var(--radius-lg) 0; }
.sh-quote p { font-family: var(--font-heading); font-size: 21px; line-height: 1.4; color: var(--fg-1); letter-spacing: -0.01em; margin: 0 0 14px; }
.sh-quote footer { font-size: 14px; color: var(--fg-3); }
.sh-quote footer strong { color: var(--fg-1); }

.sh-prose-list { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 10px; }
.sh-prose-list li { position: relative; padding-left: 20px; font-size: 15px; line-height: 1.55; color: var(--fg-2); }
.sh-prose-list li::before { content: ""; position: absolute; left: 0; top: 11px; width: 10px; height: 1.5px; background: var(--brand-primary); }
