/* GateERP / One chapter, one canvas.
   Native document scrolling stays available inside naturally tall chapters. */
.gs-site .gc-experience {
  --gp-view-height: calc(100svh - var(--gp-header-height, var(--gc-header, 80px)));
  width: 100%;
  max-width: none;
  margin-inline: 0;
}
.gs-site .gc-experience > section {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin-inline: 0;
  min-height: var(--gp-view-height);
  scroll-margin-top: var(--gp-header-height, var(--gc-header, 80px));
}
.gs-site .gc-experience > section:not(.gc-scroll-runway) { height: auto; }
.gs-site .gc-experience > .gp-final > .gs-container { width: 100%; max-width: none; }
.gp-snap-point {
  position: absolute;
  inset-inline: 0;
  height: 1px;
  pointer-events: none;
  opacity: 0;
  scroll-margin-top: 0;
}

/* The new chapter index replaces the earlier anonymous dots. */
.gc-experience[data-gp-ready="true"] .gc-chapter-nav { display: none; }
.gp-presentation-nav {
  --gp-nav-ink: #164753;
  --gp-nav-field: #f6f4ed;
  --gp-nav-accent: #a70050;
  position: fixed;
  z-index: 85;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 13px;
  color: var(--gp-nav-ink);
  pointer-events: none;
  font-family: inherit;
  transition: color .2s ease;
}
.gp-presentation-nav[data-gp-tone="dark"] {
  --gp-nav-ink: #f0f5ee;
  --gp-nav-field: #063541;
  --gp-nav-accent: #e894bd;
}
.gp-presentation-nav > * { pointer-events: auto; }
.gp-presentation-nav ol {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.gp-presentation-nav li { margin: 0; padding: 0; }
.gp-presentation-nav li a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  min-height: 24px;
  color: inherit;
  text-decoration: none;
  outline-offset: 3px;
}
.gp-presentation-dot {
  display: block;
  height: 5px;
  width: 5px;
  border-radius: 50%;
  background: currentColor;
  opacity: .42;
  transition: width .2s ease, opacity .2s ease, border-radius .2s ease;
}
.gp-presentation-nav a[aria-current="location"] .gp-presentation-dot {
  opacity: 1;
  width: 20px;
  height: 5px;
  border-radius: 0 7px 0 7px;
  color: var(--gp-nav-accent);
}
.gp-presentation-name {
  position: absolute;
  right: 37px;
  top: 50%;
  transform: translateY(-50%);
  padding: 7px 10px;
  white-space: nowrap;
  max-width: min(270px, calc(100vw - 95px));
  font-size: 11px;
  letter-spacing: .015em;
  line-height: 1.5;
  color: var(--gp-nav-ink);
  background: var(--gp-nav-field);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .15s ease, visibility .15s ease;
}
.gp-presentation-nav li a:hover .gp-presentation-name,
.gp-presentation-nav li a:focus-visible .gp-presentation-name {
  opacity: 1;
  visibility: visible;
}
.gp-presentation-controls {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
  color: inherit;
}
.gp-presentation-controls :is([data-gp-prev],[data-gp-next]) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 32px;
  min-width: 32px;
  min-height: 44px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: 19px;
  cursor: pointer;
  transition: color .18s ease, transform .18s ease;
}
.gp-presentation-controls :is([data-gp-prev],[data-gp-next]):hover { color: var(--gp-nav-accent); }
.gp-presentation-controls [data-gp-prev]:hover { transform: translateY(-2px); }
.gp-presentation-controls [data-gp-next]:hover { transform: translateY(2px); }
.gp-presentation-controls :is([data-gp-prev],[data-gp-next]):disabled,
.gp-presentation-controls :is([data-gp-prev],[data-gp-next])[aria-disabled="true"] {
  opacity: .28;
  cursor: default;
  transform: none;
}
.gp-presentation-nav :is(a,button):focus-visible {
  outline: 2px solid var(--gp-nav-accent);
  outline-offset: 3px;
}
.gp-presentation-index {
  font-size: 9px;
  letter-spacing: .05em;
  line-height: 1.4;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.gp-presentation-label { display: none; }

/* Desktop chapters have a deliberate single-screen composition. There is no
   fixed section height or internal scroller: disclosures may enlarge a chapter. */
@media (min-width:951px) {
  .gs-site .gc-experience > .gc-chapter { padding-block: clamp(34px, 4.6vh, 64px); }
  .gs-site .gc-experience > :is(.gv-product,.gc-ecosystem,.gc-intelligence,.gc-industries,.gc-partnership) {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .gs-site .gc-experience > .gc-purpose { padding: 0; }
  .gs-site .gc-experience .gc-section-top { margin-bottom: 22px; }
  .gs-site .gc-experience :is(.gv-product-heading,.gc-ecosystem-intro,.gc-clarity,.gc-ai-layout,.gc-partnership) h2 {
    font-size: clamp(42px, 3.75vw, 64px);
    line-height: 1.04;
  }
  .gs-site .gc-experience .gc-lead { margin-top: 23px !important; }
  .gs-site .gc-experience .gc-chapter-foot { padding-top: 8px; margin-top: 18px; }
  .gs-site .gc-experience .gc-map-note { margin-top: 12px !important; }

  .gs-site .gc-experience .gv-product-tabs { margin-top: 18px; }
  .gs-site .gc-experience .gv-product-tabs button { min-height: 48px; padding-block: 10px; }
  .gs-site .gc-experience .gv-product-panel {
    min-height: 0;
    padding-block: 20px 6px;
    gap: 5.5vw;
    grid-template-columns: 1fr 1.1fr;
  }
  .gs-site .gc-experience .gv-case-copy h3 {
    font-size: clamp(30px, 2.45vw, 40px);
    margin-block: 12px;
  }
  .gs-site .gc-experience .gv-case-copy > p { max-width: 465px; }
  .gs-site .gc-experience .gv-case-copy .gv-case-platform { margin-top: 14px; }
  .gs-site .gc-experience .gv-case-owner { margin-top: 16px; }
  .gs-site .gc-experience .gv-case-owner > strong { margin-top: 5px; }
  .gs-site .gc-experience .gv-product-canvas { min-height: 0; padding-block: 8px; }
  .gs-site .gc-experience .gv-product-canvas .gv-laptop { width: min(100%, 520px); }
  .gs-site .gc-experience .gv-product-canvas .gv-tablet { width: min(72%, 440px); }
  .gs-site .gc-experience .gv-product-canvas .gv-phone { width: 150px; }
  .gs-site .gc-experience .gv-product-caption { margin-top: 12px; }
  .gs-site .gc-experience .gv-case-flow { margin-top: 12px; padding-top: 12px; }
  .gs-site .gc-experience .gv-scope-note { margin-top: 14px !important; }

  .gs-site .gc-experience .gc-ecosystem-layout {
    grid-template-columns: minmax(360px,.95fr) minmax(0,1.05fr);
    gap: clamp(70px, 8vw, 140px);
    margin-top: 18px;
  }
  .gs-site .gc-experience .gc-orbit { width: min(100%, 400px); margin-inline: auto; }
  .gs-site .gc-experience .gc-orbit-label { width: 114px; font-size: 12px !important; }
  .gs-site .gc-experience .gc-orbit-core strong { font-size: 43px; margin-top: 8px; }
  .gs-site .gc-experience .gc-orbit-core span { font-size: 5px; margin-top: 9px; }
  .gs-site .gc-experience .gc-system-detail h3 { font-size: clamp(29px,2.5vw,39px); margin-block: 16px; }
  .gs-site .gc-experience .gc-record-line { margin-top: 16px; }
  .gs-site .gc-experience .gc-system-question { margin-top: 17px; }
  .gs-site .gc-experience .gc-system-detail .gc-link { margin-top: 8px; }

  .gs-site .gc-experience .gc-work-nav { top: 27px; }
  .gs-site .gc-experience .gc-work-scene {
    min-height: calc(var(--gp-view-height) - 50px);
    padding-top: 120px;
    padding-bottom: 207px;
  }
  .gs-site .gc-experience .gc-work-copy { width: 48%; max-width: 570px; }
  .gs-site .gc-experience .gc-work-copy h2 { font-size: clamp(43px,3.5vw,61px); margin-block: 18px; }
  .gs-site .gc-experience .gc-work-copy .gc-link { margin-top: 8px; }
  .gs-site .gc-experience .gc-work-flow { bottom: 44px; }
  .gs-site .gc-experience .gc-work-flow li { padding-top: 16px; }
  .gs-site .gc-experience .gc-work-flow h4 { margin-block: 6px; }
  .gs-site .gc-experience .gc-work-flow small { margin-top: 10px; }

  .gs-site .gc-experience .gc-finance-graphic { padding-block: 10px; }
  .gs-site .gc-experience .gc-finance-graphic svg { max-height: 76px; }
  .gs-site .gc-experience .gc-finance-core strong { font-size: 33px; line-height: 1.25; margin-top: 10px; }
  .gs-site .gc-experience .gc-finance-results strong { font-size: 66px; line-height: 1.25; }
  .gs-site .gc-experience .gc-value-line { margin-top: 28px; padding-top: 14px; }

  .gs-site .gc-experience .gc-ai-layout { margin-block: 20px; }
  .gs-site .gc-experience .gc-ai-steps summary { min-height: 87px; }
  .gs-site .gc-experience .gc-ai-steps summary strong { font-size: 39px; }
  .gs-site .gc-experience .gc-ai-steps > .gc-link { margin-top: 14px; }

  .gs-site .gc-experience .gc-industry-content h2 { font-size: clamp(48px,4.2vw,68px); margin-top: 25px; }
  .gs-site .gc-experience .gc-industry-list { margin-top: 24px; }
  .gs-site .gc-experience .gc-industry-list button { min-height: 48px; padding-block: 12px; font-size: 21px; }
  .gs-site .gc-experience .gc-industry-description { margin-top: 19px; min-height: 0; }
  .gs-site .gc-experience .gc-industry-note { margin-top: 11px !important; }

  .gs-site .gc-experience .gc-term { margin-top: 23px; }
  .gs-site .gc-experience .gc-term strong { font-size: 91px; }
  .gs-site .gc-experience .gc-models summary { min-height: 77px; }
  .gs-site .gc-experience .gc-models summary strong { font-size: 25px; }
  .gs-site .gc-experience .gc-models details > p { padding-bottom: 16px; }
  .gs-site .gc-experience .gc-model-scope { margin-top: 17px !important; }
  .gs-site .gc-experience .gc-models > .gc-action { margin-top: 17px; min-height: 54px; padding-block: 13px; }
  .gs-site .gc-experience .gc-implementation { margin-top: 28px; padding-top: 12px; }
  .gs-site .gc-experience .gc-implementation ol { margin-top: 17px; }
  .gs-site .gc-experience .gc-implementation strong { font-size: 25px; margin-top: 8px; }
  .gs-site .gc-experience .gc-implementation p { margin-top: 7px; }

  .gs-site .gc-experience .gc-purpose-copy { padding-block: 42px; }
  .gs-site .gc-experience .gc-purpose-copy h2 { font-size: clamp(44px,4vw,62px); margin-block: 27px; }
  .gs-site .gc-experience .gc-signature { margin-top: 26px; }
  .gs-site .gc-experience > .gp-final { min-height: var(--gp-view-height); }
}

@media (min-width:951px) and (min-height:700px) and (prefers-reduced-motion:no-preference) {
  html.gp-presentation-enabled {
    scroll-snap-type: y mandatory;
    scroll-padding-top: var(--gp-header-height, 80px);
  }
  html.gp-presentation-enabled .gc-experience > section[data-gp-section]:not(.gc-scroll-runway),
  html.gp-presentation-enabled .gp-snap-point,
  html.gp-presentation-enabled .gs-footer {
    scroll-snap-align: start;
    scroll-snap-stop: always;
    scroll-margin-top: 0;
  }
  html.gp-presentation-enabled .gc-scroll-runway[data-gp-section] { scroll-snap-align: none; }
}
html.gp-presentation-enabled.gp-presentation-focus,
html.gp-presentation-enabled:has(dialog[open]) { scroll-snap-type: none; }

/* Small screens keep ordinary scrolling. A low, open control rail has its own
   safe-area lane; tall stories and touch gestures are never forced to snap. */
@media (max-width:950px), (max-height:699px) {
  html.gp-presentation-enabled { scroll-snap-type: none; }
  .gp-presentation-nav {
    top: auto;
    right: 0;
    left: 0;
    bottom: 0;
    transform: none;
    min-height: 68px;
    padding: 10px max(22px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(22px, env(safe-area-inset-left));
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    background: linear-gradient(0deg,var(--gp-nav-field) 66%,transparent);
  }
  .gp-presentation-nav ol { display: none; }
  .gp-presentation-controls { flex-direction: row; width: 100%; gap: 9px; order: 3; }
  .gp-presentation-controls :is([data-gp-prev],[data-gp-next]) { min-width: 44px; flex-basis: 44px; }
  .gp-presentation-index { font-size: 10px; text-align: left; white-space: nowrap; }
  .gp-presentation-label {
    display: block;
    min-width: 0;
    flex: 1;
    font-size: 11px;
    line-height: 1.35;
    text-align: left;
  }
  .gs-site .gc-experience > section:not(.gc-scroll-runway):not(.gc-purpose):not(.gc-workplaces) {
    padding-bottom: 100px;
  }
  .gs-site .gc-experience .gc-purpose-copy { padding-bottom: 100px; }
  .gs-site .gc-experience .gc-work-scope { padding-bottom: 86px; }
  .gs-site:has(.gc-experience) .gs-footer { padding-bottom: 100px; }
  .gp-presentation-nav[data-gp-in-hero="true"] { display: none; }
}
@media (max-width:700px) {
  .gs-site .gc-experience { --gp-view-height: calc(100svh - var(--gp-header-height, 72px)); }
}
@media (max-width:374px) {
  .gp-presentation-nav { gap: 9px; padding-inline: 16px; }
  .gp-presentation-controls { gap: 2px; }
  .gp-presentation-label { font-size: 10px; }
}
@media (prefers-reduced-motion:reduce) {
  html.gp-presentation-enabled { scroll-snap-type: none; scroll-behavior: auto; }
  .gp-presentation-nav, .gp-presentation-nav * { transition: none; }
  .gp-presentation-controls :is([data-gp-prev],[data-gp-next]):hover { transform: none; }
}
@media (forced-colors:active) {
  .gp-presentation-nav { --gp-nav-ink: CanvasText; --gp-nav-field: Canvas; --gp-nav-accent: Highlight; }
  .gp-presentation-nav[data-gp-tone="dark"] { --gp-nav-ink: CanvasText; --gp-nav-field: Canvas; --gp-nav-accent: Highlight; }
  .gp-presentation-dot { forced-color-adjust: none; }
  .gp-presentation-nav li a[aria-current="location"] { outline: 1px solid Highlight; }
  .gp-presentation-controls button { border: 1px solid ButtonText; }
}
@media print {
  .gp-presentation-nav { display: none !important; }
  .gs-site .gc-experience > section { min-height: 0; scroll-snap-align: none; }
}
