/* Site V2 final — shared design tokens and consistency layer.
   Loaded after page-specific styles to preserve approved layouts while
   normalizing type, spacing, CTAs and hero proportions across the site. */
:root {
  --site-container: min(1240px, calc(100% - 64px));
  --site-container-tablet: min(1080px, calc(100% - 48px));
  --site-container-mobile: calc(100% - 36px);
  --site-space-section: clamp(84px, 8vw, 116px);
  --site-space-hero-top: clamp(128px, 9vw, 150px);
  --site-space-hero-bottom: clamp(62px, 5vw, 80px);
  --site-h1-internal: clamp(3rem, 3.6vw, 4.2rem);
  --site-h2: clamp(2.3rem, 4vw, 4.08rem);
  --site-body-large: clamp(1rem, 1.18vw, 1.09rem);
  --site-line-body: 1.72;
  --site-radius-card: 20px;
  --site-radius-button: 10px;
  --site-border-light: rgba(14, 46, 58, .13);
  --site-border-dark: rgba(238, 243, 245, .16);
  --site-deep: #0e2e3a;
  --site-deeper: #071f29;
  --site-teal: #0b7a78;
  --site-bright: #12b3ad;
  --site-light: #eef3f5;
  --site-paper: #f7f9fa;
  --site-text: #0e2e3a;
  --site-text-secondary: rgba(14, 46, 58, .74);
  --site-button-height: 54px;
}

:is(.home-v2-page, .platform-v2-page, .journey-v2-page) { --v2-shell: var(--site-container); }
.about-v2-page { --about-shell: var(--site-container); }

:is(.home-v2-page, .platform-v2-page, .journey-v2-page, .about-v2-page) .v2-button {
  min-height: var(--site-button-height) !important;
  padding: 13px 21px !important;
  border-radius: var(--site-radius-button) !important;
  font-size: .9rem !important;
  line-height: 1.1 !important;
}

:is(.jf-hero, .about-hero) {
  min-height: 0;
  padding: var(--site-space-hero-top) 0 var(--site-space-hero-bottom);
}
:is(.home-v4-hero__layout, .pc-hero__layout) {
  padding-block: var(--site-space-hero-top) var(--site-space-hero-bottom);
}
:is(.home-v4-hero h1, .pc-hero h1, .jf-hero h1, .about-hero h1) {
  max-width: 760px;
  margin-top: 20px;
  color: var(--site-light);
  font-size: var(--site-h1-internal);
  font-weight: 640;
  letter-spacing: -.052em;
  line-height: 1.04;
  text-wrap: balance;
}
:is(.home-v4-hero__promise, .pc-hero__content > p:not(.v2-eyebrow):not(.pc-hero__positioning), .jf-hero__summary, .about-hero__summary) {
  max-width: 680px;
  margin-top: 24px;
  color: rgba(238, 243, 245, .79);
  font-size: var(--site-body-large);
  line-height: 1.68;
}
:is(.platform-actions, .journey-actions, .about-actions) { margin-top: 31px; }
.platform-hero__asset { width: min(100%, 620px); }
:is(.journey-hero__asset, .about-hero__asset) { width: min(100%, 520px); }

:is(.platform-v2-page, .journey-v2-page, .about-v2-page) main h2 {
  font-size: var(--site-h2);
  font-weight: 630;
  letter-spacing: -.052em;
  line-height: 1.03;
  text-wrap: balance;
}

:is(.platform-intelligence, .platform-framework, .platform-continuity, .platform-deliverables,
    .journey-fit, .journey-process, .journey-method, .journey-transformation,
    .about-organization, .about-vision, .about-improvement, .about-research,
    .about-experience, .about-ip, .about-architecture, .about-execution) {
  padding-block: var(--site-space-section);
}

:is(.platform-continuity-path, .journey-path-card, .journey-audience, .about-identity) { border-radius: var(--site-radius-card); }
.platform-continuity__dashboard img { max-height: 560px; object-position: left center; }
.platform-continuity__dashboard figcaption { color: rgba(14, 46, 58, .62); }

@media (max-width: 1120px) {
  :is(.home-v2-page, .platform-v2-page, .journey-v2-page) { --v2-shell: var(--site-container-tablet); }
  .about-v2-page { --about-shell: var(--site-container-tablet); }
}

@media (max-width: 1050px) {
  :is(.jf-hero, .about-hero) { min-height: 0; padding: 124px 0 70px; }
  :is(.home-v4-hero__layout, .pc-hero__layout) { padding-block: 124px 70px; }
  :is(.home-v4-hero h1, .pc-hero h1, .jf-hero h1, .about-hero h1) { font-size: clamp(2.55rem, 4vw, 3.3rem); }
  :is(.platform-hero__grid, .journey-hero__grid, .about-hero__grid) { gap: 42px; }
  .platform-hero__asset { width: min(100%, 580px); }
  :is(.journey-hero__asset, .about-hero__asset) { width: min(100%, 520px); }
}

@media (max-width: 900px) {
  :is(.home-v4-hero h1, .pc-hero h1, .jf-hero h1, .about-hero h1) { font-size: clamp(2.45rem, 5.2vw, 3rem); }
}

@media (max-width: 640px) {
  :is(.home-v2-page, .platform-v2-page, .journey-v2-page) { --v2-shell: var(--site-container-mobile); }
  .about-v2-page { --about-shell: var(--site-container-mobile); }
  :is(.jf-hero, .about-hero) { padding: 108px 0 58px; }
  :is(.home-v4-hero__layout, .pc-hero__layout) { padding-block: 108px 58px; }
  :is(.home-v4-hero h1, .pc-hero h1, .jf-hero h1, .about-hero h1) { max-width: 100%; font-size: clamp(2.2rem, 9.6vw, 2.85rem); line-height: 1.04; }
  :is(.platform-v2-page, .journey-v2-page, .about-v2-page) main h2 { font-size: 2.35rem; line-height: 1.04; }
  :is(.platform-actions, .journey-actions, .about-actions) .v2-button { width: 100%; justify-content: center; }
  :is(.platform-hero__asset, .journey-hero__asset, .about-hero__asset) { width: 100%; max-width: 420px; }
}

@media (prefers-reduced-motion: reduce) {
  :is(.home-v2-page, .platform-v2-page, .journey-v2-page, .about-v2-page) *,
  :is(.home-v2-page, .platform-v2-page, .journey-v2-page, .about-v2-page) *::before,
  :is(.home-v2-page, .platform-v2-page, .journey-v2-page, .about-v2-page) *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
