/* ============================================================
   skip-a-beat — v2 shared (Editorial Contrast)
   Tokens, reset, nav, mobile menu, footer, ticker, utility
   classes shared across every v2-skinned page.
   ============================================================ */

:root {
  --paper: #f2efe8;            /* warm cream */
  --ink: #0f0e0c;              /* rich black */
  --accent: #c8442a;           /* red-clay */
  --accent-fg: #faf7f0;
  --muted: #e8e4da;            /* soft cream */
  --muted-fg: #8a8578;         /* stone */
  --rule: rgba(15,14,12,0.14); /* hairline */

  --font: "Helvetica Neue", Helvetica, Arial, "Nimbus Sans", sans-serif;
  --maxw: 1400px;
  --ease: cubic-bezier(0.2, 0.8, 0.2, 1);
}

*, *::before, *::after { box-sizing: border-box; }

body.v2-page {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
  max-width: 100vw;
}

body.v2-page ::selection { background: var(--accent); color: var(--accent-fg); }

.v2-page h1, .v2-page h2, .v2-page h3, .v2-page h4, .v2-page p, .v2-page figure {
  margin: 0;
}
.v2-page a { color: inherit; text-decoration: none; }
.v2-page img { display: block; max-width: 100%; }

/* Editorial display type */
.v2-display {
  font-weight: 700;
  letter-spacing: -0.045em;
  line-height: 0.95;
  padding-bottom: 0.06em;
  margin: 0;
}
.v2-eyebrow {
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-size: 11px;
  margin: 0;
}
.v2-italic { font-style: italic; font-weight: 400; }
.v2-accent { color: var(--accent); }
.v2-hairline-t { border-top: 1px solid var(--rule); }
.v2-hairline-b { border-bottom: 1px solid var(--rule); }

.v2-wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }
@media (min-width: 768px) { .v2-wrap { padding: 0 40px; } }

/* ---------- Cursor (additive, no cursor:none — safe over iframes) ---------- */
.v2-cursor-dot,
.v2-cursor-ring {
  position: fixed; left: 0; top: 0; z-index: 60;
  border-radius: 50%;
  pointer-events: none;
  mix-blend-mode: difference;
  transform: translate(-50%, -50%);
  will-change: transform;
  display: none;
}
.v2-cursor-dot { width: 12px; height: 12px; background: var(--accent); z-index: 61; }
.v2-cursor-ring { width: 96px; height: 96px; border: 1px solid rgba(200,68,42,0.4); }
@media (min-width: 768px) and (pointer: fine) {
  .v2-cursor-dot, .v2-cursor-ring { display: block; }
}

/* ---------- Nav ---------- */
.v2-nav {
  position: fixed; inset: 0 0 auto 0; z-index: 50;
  background: transparent;
  border-bottom: 1px solid transparent;
  transition: background 0.5s var(--ease), border-color 0.5s var(--ease);
}
.v2-nav.is-solid {
  background: rgba(242,239,232,0.9);
  backdrop-filter: blur(10px);
  border-bottom-color: var(--rule);
}
.v2-nav-inner {
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 20px;
}
@media (min-width: 768px) { .v2-nav-inner { padding: 8px 32px; } }
.v2-nav-logo img { height: 64px; width: auto; }
@media (min-width: 768px) { .v2-nav-logo img { height: 88px; } }

.v2-nav-links { display: none; align-items: center; gap: 24px; }
@media (min-width: 768px) { .v2-nav-links { display: flex; } }
.v2-nav-link {
  position: relative; overflow: hidden;
  font-size: 11px; font-weight: 500;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--ink); transition: color 0.5s var(--ease);
}
.v2-nav-link span { display: inline-block; transition: transform 0.5s var(--ease); }
.v2-nav-link .v2-link-b {
  position: absolute; inset: 0; transform: translateY(100%); color: var(--accent);
}
.v2-nav-link:hover .v2-link-a { transform: translateY(-100%); }
.v2-nav-link:hover .v2-link-b { transform: translateY(0); }
.v2-nav-link.is-active { color: var(--accent); }

.v2-nav-cta {
  display: none; font-size: 11px; font-weight: 500;
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink);
  transition: color 0.5s var(--ease);
}
@media (min-width: 768px) { .v2-nav-cta { display: inline-block; } }
.v2-nav-cta span { border-bottom: 1px solid currentColor; padding-bottom: 4px; }

/* On dark hero (not scrolled): nav text + logo light */
.v2-nav.on-dark .v2-nav-link:not(.is-active),
.v2-nav.on-dark .v2-nav-cta,
.v2-nav.on-dark .v2-burger { color: var(--paper); }

.v2-burger {
  display: inline-flex; align-items: center; gap: 8px;
  background: none; border: 0; cursor: pointer; color: var(--ink);
  z-index: 60; position: relative;
}
@media (min-width: 768px) { .v2-burger { display: none; } }
.v2-burger-label { font-size: 11px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; }
.v2-burger-lines { position: relative; display: block; width: 24px; height: 16px; }
.v2-burger-lines span {
  position: absolute; left: 0; height: 1px; width: 24px; background: currentColor;
  transition: transform 0.35s var(--ease);
}
.v2-burger-lines span:nth-child(1) { top: 0; }
.v2-burger-lines span:nth-child(2) { top: 14px; }
.v2-burger.is-open .v2-burger-lines span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.v2-burger.is-open .v2-burger-lines span:nth-child(2) { transform: translateY(-7px) rotate(-45deg); }

/* ---------- Mobile menu ---------- */
.v2-mobile {
  position: fixed; inset: 0; z-index: 40;
  background: var(--paper);
  display: flex; flex-direction: column;
  padding: 80px 20px 32px; overflow: hidden;
  opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease;
}
.v2-mobile.is-open { opacity: 1; visibility: visible; }
@media (min-width: 768px) { .v2-mobile { display: none; } }
.v2-mobile-eyebrow { color: var(--muted-fg); }
.v2-mobile-nav { display: flex; flex-direction: column; margin-top: 24px; position: relative; z-index: 2; }
.v2-mobile-nav a {
  display: flex; align-items: baseline; justify-content: space-between;
  border-bottom: 1px solid var(--rule); padding: 12px 0;
  font-size: 36px; font-weight: 700; letter-spacing: -0.045em; color: var(--ink);
}
.v2-mobile-nav a span:last-child { font-size: 10px; letter-spacing: 0.2em; color: var(--muted-fg); }
.v2-mobile-foot { margin-top: auto; padding-top: 32px; }
.v2-mobile-foot .v2-mail {
  display: flex; align-items: center; justify-content: space-between;
  border-bottom: 1px solid var(--ink); padding-bottom: 12px; font-size: 16px;
}
.v2-mobile-foot .v2-socials { display: flex; flex-wrap: nowrap; justify-content: space-between; gap: 6px; margin-top: 16px; }
.v2-mobile-foot .v2-socials a { flex: 0 1 auto; font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted-fg); white-space: nowrap; }
@media (min-width: 480px) { .v2-mobile-foot .v2-socials a { font-size: 11px; letter-spacing: 0.18em; } }
.v2-mobile-wave { position: absolute; inset: auto 0 0 0; height: 256px; width: 100%; color: rgba(200,68,42,0.15); pointer-events: none; }

/* ---------- Ticker ---------- */
.v2-ticker { overflow: hidden; background: var(--paper); color: var(--ink); padding: 12px 0; }
.v2-marquee { display: inline-flex; gap: 48px; white-space: nowrap; animation: v2-scroll 40s linear infinite; will-change: transform; }
.v2-marquee span { display: inline-flex; align-items: center; gap: 24px; }
.v2-ticker .v2-marquee { font-size: 11px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; }
.v2-star { color: var(--accent); }
@keyframes v2-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ---------- Page header (non-home pages) ---------- */
.v2-pagehead { background: var(--ink); color: var(--paper); padding: 160px 0 48px; }
.v2-pagehead .v2-eyebrow { color: var(--accent); }
.v2-pagehead-h1 { font-size: 14vw; margin: 16px 0 0; }
@media (min-width: 768px) { .v2-pagehead-h1 { font-size: 7vw; } }
.v2-pagehead-intro { max-width: 32rem; margin-top: 24px; font-size: 14px; line-height: 1.6; color: rgba(242,239,232,0.65); }

/* ---------- Footer ---------- */
.v2-footer { background: var(--ink); color: var(--paper); padding: 48px 0; }
.v2-footer-top { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 32px; }
.v2-footer-logo img { height: 80px; width: auto; }
@media (min-width: 768px) { .v2-footer-logo img { height: 112px; } }
.v2-footer-logo .v2-eyebrow { color: rgba(242,239,232,0.5); margin-top: 24px; }
.v2-footer-links { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px 48px; font-size: 14px; }
.v2-footer-links a { color: rgba(242,239,232,0.7); transition: color 0.3s; }
.v2-footer-links a:hover { color: var(--accent); }
.v2-footer-bottom { margin-top: 48px; border-top: 1px solid rgba(242,239,232,0.2); padding-top: 24px; }
.v2-footer-bottom-inner { display: flex; flex-direction: column-reverse; gap: 12px; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(242,239,232,0.5); }
@media (min-width: 768px) { .v2-footer-bottom-inner { flex-direction: row; justify-content: space-between; } }

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .v2-marquee { animation: none; }
}
