/* Hero typography is fully visible and aligned before any scrolling. */
.hero h1 { display: grid; row-gap: 0; margin-bottom: 24px; }
.hero-gold-frame {
  display: block;
  font-size: clamp(84px, 10vw, 150px);
  line-height: 1.08;
  padding: 0 .08em .08em;
  overflow: visible;
}
.hero .hero-gold { font-size: inherit; line-height: inherit; margin: 0; }
.hero-support { position: relative; }
.hero-scene { height: auto; min-height: max(100svh, 820px); }
.hero { height: auto; min-height: 122svh; padding-bottom: 6svh; }
.hero-copy { padding-bottom: 170px; }
.hero .shore { top: auto; bottom: 100px; }

/* Foundation: one continuous path passes through the actual marker centres. */
.foundation-route {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 35px;
  margin: 60px 0 28px;
  padding: 25px 0 45px;
  text-align: left;
}
.foundation-track { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; fill: none; pointer-events: none; }
.foundation-base { stroke: var(--rule); stroke-width: 1; stroke-dasharray: 3 6; opacity: .55; }
.foundation-ink { stroke: var(--gold); stroke-width: 1.7; stroke-dasharray: 4 5; }
.foundation-mask { stroke-dasharray: 1; stroke-dashoffset: 0; }
.foundation-stop { position: relative; padding-top: 24px; }
.foundation-stop:nth-of-type(1) { margin-top: 75px; }
.foundation-stop:nth-of-type(2) { margin-top: 38px; }
.foundation-stop:nth-of-type(3) { margin-top: 0; }
.foundation-stop .fix { width: 13px; height: 13px; }
.foundation-stop .fix:before { top: 5px; left: -5px; width: 21px; }
.foundation-stop .fix:after { left: 5px; top: -5px; height: 21px; }
.foundation-stop p { margin-top: 23px; font-family: var(--serif); font-size: 26px; line-height: 1.25; }
@media (prefers-reduced-motion: no-preference) {
  .motion .foundation-mask { stroke-dashoffset: calc(1 - var(--foundation-progress, 0)); }
  .motion .foundation-stop .fix { transition: background .25s ease, outline-color .25s ease; }
  .motion .foundation-stop.is-reached .fix { background: var(--gold); outline: 1px solid var(--gold); outline-offset: 4px; }
  .motion .foundation-stop p { opacity: .62; transition: opacity .35s ease; }
  .motion .foundation-stop.is-reached p { opacity: 1; }
}

/* One audit, one shared family of combinable services. No exclusive lanes. */
.service-network {
  position: relative;
  display: grid;
  grid-template-columns: minmax(210px, .85fr) minmax(0, 2.15fr);
  column-gap: 70px;
  align-items: start;
  margin: 60px 0 0;
  padding: 40px 0 55px;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.network-lines { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; fill: none; }
.network-entry { stroke: var(--gold); stroke-width: 1.2; stroke-dasharray: 4 5; }
.network-distribution { stroke: var(--gold); stroke-width: 1; stroke-dasharray: 4 5; opacity: .7; }
.network-hub { stroke: var(--gold); stroke-width: 1; fill: var(--paper); }
.network-combination { stroke: var(--gold); stroke-width: 1; opacity: .65; transition: stroke-width .2s, opacity .2s; }
.network-combination.is-active { stroke-width: 2; opacity: 1; }
.audit-origin { padding-top: 82px; min-width: 0; }
.service-family { position: relative; min-width: 0; padding: 0 24px 28px; border: 1px solid var(--rule); border-top: 0; }
.service-family > .eyebrow { position: relative; margin: -10px 0 83px; width: fit-content; background: var(--paper); padding-right: 15px; font-size: 10px; letter-spacing: .2em; }
.service-combinations { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 27px; align-items: start; }
.service-network .service { width: auto; min-width: 0; }
.service-network .service summary { padding: 38px 0 16px; background: transparent; min-height: 176px; }
.service-network .service-marker { left: 0; top: 0; }
.service-network .polaris .service-marker { left: -2px; top: -2px; }
.service-network .service-number { font-size: 12px; }
.service-network .service-name { font-size: clamp(21px, 1.8vw, 28px); letter-spacing: .08em; }
.service-network .polaris .service-name { font-size: 32px; }
.service-network .service-type { font-size: 14px; line-height: 1.6; max-width: none; }
.service-network .annotation { position: static; margin: 0; padding: 18px 0 0; border: 0; border-top: 1px solid var(--rule); font-size: 14px; line-height: 1.85; background: transparent; }
.service-network .annotation .text-link { gap: 8px; font-size: 10px; letter-spacing: .07em; }
.service-network .service-motto { font-size: 27px; }
.service-network summary:after { content: '+'; position: absolute; right: 0; top: 32px; font-family: var(--serif); font-size: 26px; line-height: 1; color: var(--gold); }
.service-network details[open] summary:after { content: '−'; }
.service-network .service-name { padding-right: 20px; }
.service-family:after { content: ''; position: absolute; left: -6px; right: -6px; bottom: 5px; height: 1px; border-top: 1px solid var(--faint); pointer-events: none; }

@media (max-width: 1050px) {
  .hero-gold-frame { font-size: 114px; }
  .service-network { grid-template-columns: minmax(200px, .8fr) minmax(0, 2fr); gap: 40px; }
  .service-family { padding-left: 18px; padding-right: 18px; }
  .service-combinations { gap: 18px; }
  .service-network .service-name { font-size: 22px; }
  .service-network .service-type { font-size: 13px; }
  .service-network .annotation .text-link { font-size: 9px; letter-spacing: 0; }
}
@media (max-width: 900px) {
  .service-network { grid-template-columns: 1fr; gap: 65px; padding-top: 25px; }
  .audit-origin { padding-top: 0; max-width: 600px; }
  .service-network .polaris summary { min-height: 145px; }
  .service-family { padding: 0 25px 30px; }
  .service-family > .eyebrow { margin-bottom: 80px; }
  .service-network .service-type { font-size: 14px; }
  .service-network .annotation .text-link { font-size: 10px; }
}
@media (max-width: 760px) {
  .hero-gold-frame { font-size: clamp(60px, 13vw, 86px); padding-bottom: .08em; }
  .hero h1 { margin-bottom: 24px; }
  .hero-scene { position: relative; min-height: 100svh; }
  .hero { min-height: 0; padding-bottom: 20px; }
  .hero-copy { padding-bottom: 180px; }
  .hero .shore { bottom: 100px; }
  .foundation-route { display: flex; flex-direction: column; gap: 36px; margin: 35px 0 30px; padding: 20px 0; }
  .foundation-stop:nth-of-type(n) { margin-top: 0; padding: 0 0 0 38px; min-height: 44px; }
  .foundation-stop .fix { position: absolute; left: 0; top: 8px; }
  .foundation-stop p { font-size: 25px; margin-top: 0; }
  .service-network { margin-top: 40px; padding-bottom: 35px; }
  .service-network .service-type { padding-right: 0; }
}
@media (max-width: 600px) {
  .network-combination { display: none; }
  .service-family { padding-left: 23px; padding-right: 18px; }
  .service-family > .eyebrow { font-size: 9px; margin-bottom: 33px; }
  .service-combinations { grid-template-columns: 1fr; gap: 30px; }
  .service-network .service-family .service summary { padding: 0 0 8px 32px; min-height: 92px; }
  .service-network .service-family .service-marker { top: 30px; }
  .service-network .service-family .service-name { font-size: 25px; }
  .service-network .service-family .annotation { margin-left: 32px; font-size: 16px; }
  .service-network .polaris .annotation { font-size: 16px; }
  .service-network .annotation .text-link { font-size: 11px; }
  .service-network .service-family summary:after { top: 30px; }
  .service-network .service-type { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero { padding-bottom: 0; }
  .foundation-mask { stroke-dashoffset: 0; }
  .foundation-stop p { opacity: 1; }
}

#about{max-width:1440px;margin-inline:auto}
#about .about-heading{width:100%;margin-inline:auto;text-align:left}

/* Restore the gold word's scroll reveal without the former large offset. */
@media(prefers-reduced-motion:no-preference){
 .motion .hero .hero-gold{opacity:calc(.55 + var(--hero-progress,0)*.45);transform:translateY(calc((1 - var(--hero-progress,0))*8px))}
}
