/* Bright Precision — a light, editorial homepage system. */
.bright-site {
  --bright-ink: #102a3b;
  --bright-muted: #52646d;
  --bright-line: #dce5e5;
  --bright-teal: #17666a;
  --bright-coral: #ff7857;
  --bright-mint: #dff3ec;
  --bright-sand: #f3ddb6;
  color: var(--bright-ink);
  background: #fff;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}

.bright-site .container {
  width: min(100%, 1440px);
  max-width: 1440px;
  padding-inline: clamp(24px, 5vw, 76px);
}

.bright-site .site-header {
  border-bottom: 1px solid #102a3b10;
  background: #ffffffeb;
}

.bright-site .site-header.is-scrolled {
  background: #fffffff7;
  box-shadow: 0 10px 35px #102a3b0a;
}

.bright-site .header-inner { min-height: 76px; }
.bright-site .brand img { width: 154px; }
.bright-site #main-nav { gap: clamp(18px, 2.2vw, 32px); }
.bright-site #main-nav > a:not(.nav-contact) { font-size: 13px; font-weight: 600; }
.bright-site #main-nav > a:not(.nav-contact)::after { display: none; }
.bright-site #main-nav > a:not(.nav-contact):hover { color: var(--bright-teal); }
.bright-site .nav-contact {
  min-height: 42px;
  padding: 10px 18px;
  border: 0;
  border-radius: 999px;
  color: #fff;
  background: var(--bright-ink);
  font-size: 13px;
  font-weight: 700;
}
.bright-site .nav-contact:hover { background: var(--bright-teal); }
.bright-site .page-progress { height: 2px; background: var(--bright-coral); }
.bright-site .analytics-consent { width: min(420px, calc(100% - 40px)); align-items: stretch; flex-direction: column; gap: 12px; }
.bright-site .analytics-consent p { max-width: none; }
.bright-site .analytics-actions { justify-content: flex-end; }

.bright-site h1,
.bright-site h2,
.bright-site h3 {
  color: var(--bright-ink);
  font-family: inherit;
  letter-spacing: -.055em;
  text-wrap: balance;
}

.bright-site h1 {
  max-width: 1100px;
  margin-inline: auto;
  font-size: clamp(52px, 7.2vw, 104px);
  font-weight: 700;
  line-height: .94;
  text-align: center;
}

.bright-site h2 {
  font-size: clamp(42px, 5.35vw, 76px);
  font-weight: 680;
  line-height: .98;
}

.bright-site .button {
  min-height: 48px;
  padding: 13px 22px;
  border: 0;
  border-radius: 999px;
  color: #fff;
  background: var(--bright-ink);
  box-shadow: none;
  font-size: 14px;
  font-weight: 700;
  transition: transform 180ms ease, background-color 180ms ease;
}
.bright-site .button:hover { transform: translateY(-2px); background: var(--bright-teal); box-shadow: none; }
.bright-site .button:active { transform: translateY(0); box-shadow: none; }
.bright-site .text-link,
.bright-site .email-link {
  padding: 0;
  border: 0;
  color: var(--bright-ink);
  font-size: 14px;
  font-weight: 650;
}
.bright-site .text-link::after,
.bright-site .email-link::after { content: " →"; color: var(--bright-coral); }
.bright-site .text-link:hover,
.bright-site .email-link:hover { color: var(--bright-teal); }

.bright-hero {
  overflow: clip;
  min-height: min(570px, calc(100svh - 76px));
  border-bottom: 1px solid var(--bright-line);
  background: #fff;
}

.bright-hero-inner {
  display: flex;
  min-height: min(570px, calc(100svh - 76px));
  align-items: center;
  flex-direction: column;
  justify-content: center;
  padding-block: clamp(62px, 9vh, 96px) 30px;
  text-align: center;
}

.bright-hero h1 span { position: relative; display: inline-block; color: var(--bright-teal); }
.bright-hero h1 span::after {
  content: "";
  position: absolute;
  z-index: -1;
  right: -.02em;
  bottom: .03em;
  left: -.02em;
  height: .14em;
  border-radius: 999px;
  background: var(--bright-mint);
  transform: scaleX(0);
  transform-origin: left;
  animation: bright-line-in 760ms cubic-bezier(.2,.8,.2,1) 420ms forwards;
}

@keyframes bright-line-in { to { transform: scaleX(1); } }

.bright-hero-lede {
  max-width: 760px;
  margin-top: 34px;
  color: var(--bright-muted);
  font-size: clamp(18px, 1.6vw, 22px);
  line-height: 1.55;
}

.bright-actions { display: flex; align-items: center; justify-content: center; gap: 28px; margin-top: 32px; }
.bright-site .cta-reassurance { margin-top: 18px; color: #6a7a80; font-size: 12px; }
.bright-signal { display: grid; width: min(100%, 940px); height: 5px; grid-template-columns: 2fr 1.35fr 1fr .75fr; gap: 8px; margin-top: auto; padding-top: 54px; }
.bright-signal span { display: block; border-radius: 999px; background: var(--bright-teal); transform: scaleX(calc(.4 + (var(--scroll-progress, 0) * .6))); transform-origin: left; transition: transform 120ms linear; }
.bright-signal span:nth-child(2) { background: var(--bright-coral); }
.bright-signal span:nth-child(3) { background: var(--bright-sand); }
.bright-signal span:nth-child(4) { background: var(--bright-mint); }
.bright-promise { margin-top: 20px; color: #718087; font-size: 12px; font-weight: 650; letter-spacing: .04em; }

.bright-outcomes,
.bright-services,
.bright-process,
.bright-close { padding-block: clamp(76px, 7vw, 104px); }
.bright-outcomes { padding-block: clamp(72px, 6vw, 88px); }
.bright-services,
.bright-process { padding-block: clamp(68px, 5.5vw, 80px); }
.bright-close { padding-block: clamp(68px, 5vw, 76px); }

.bright-outcomes { background: #fff; }
.bright-split-heading { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(260px, .65fr); gap: clamp(50px, 9vw, 150px); align-items: end; }
.bright-split-heading > p { max-width: 460px; padding-bottom: 7px; color: var(--bright-muted); font-size: 17px; line-height: 1.65; }

.bright-outcome-list { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: clamp(52px, 5.5vw, 80px); border-top: 1px solid var(--bright-line); }
.bright-outcome-list article { min-height: 200px; padding: 28px 34px 24px 0; border-right: 1px solid var(--bright-line); }
.bright-outcome-list article + article { padding-left: 34px; }
.bright-outcome-list article:last-child { border-right: 0; }
.bright-outcome-list h3 { max-width: 320px; font-size: clamp(27px, 2.6vw, 39px); font-weight: 640; line-height: 1.04; }
.bright-outcome-list p { max-width: 300px; margin-top: 22px; color: var(--bright-muted); font-size: 15px; line-height: 1.55; }
.bright-industry-links { display: flex; align-items: center; flex-wrap: wrap; gap: 18px 30px; padding-top: 30px; border-top: 1px solid var(--bright-line); }
.bright-industry-links span { margin-right: auto; color: var(--bright-muted); font-size: 12px; font-weight: 650; }
.bright-industry-links a { font-size: 13px; font-weight: 680; }
.bright-industry-links a:hover { color: var(--bright-teal); }

.bright-services { overflow: clip; background: var(--bright-mint); }
.bright-services .bright-split-heading > p { color: #456068; }
.bright-service-list { margin-top: clamp(44px, 4.5vw, 64px); border-top: 1px solid #102a3b30; }
.bright-service-list .service-lane {
  display: grid;
  min-height: 100px;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 34px;
  align-items: center;
  padding: 18px 4px;
  border: 0;
  border-bottom: 1px solid #102a3b30;
  color: var(--bright-ink);
  background: transparent;
  text-align: left;
  transition: padding 220ms ease, color 180ms ease, background-color 180ms ease;
}
.bright-service-list .service-lane:hover,
.bright-service-list .service-lane[aria-pressed="true"] { padding-inline: 22px; color: var(--bright-teal); background: #ffffff85; box-shadow: none; }
.bright-service-list .lane-copy strong { font-size: clamp(28px, 3.6vw, 50px); font-weight: 620; letter-spacing: -.045em; }
.bright-service-list .lane-copy small { max-width: 680px; margin-top: 12px; color: #50656d; font-size: 15px; line-height: 1.5; }
.bright-service-list .lane-action { min-width: 88px; color: var(--bright-teal); font-size: 12px; font-weight: 700; text-align: right; text-transform: none; }
.bright-service-action { display: flex; align-items: center; justify-content: space-between; gap: 44px; padding-top: 28px; }
.bright-service-action > div { max-width: 680px; }
.bright-service-action h3 { font-size: 27px; font-weight: 650; line-height: 1.1; }
.bright-service-action p { margin-top: 8px; color: #50656d; font-size: 14px; }
.bright-service-action .button { flex: 0 0 auto; }
.bright-site .selection-confirmed { animation: bright-confirm 300ms ease; }
@keyframes bright-confirm { 50% { transform: translateY(-3px); background: var(--bright-coral); } }

.bright-process { background: #fff; }
.bright-process .bright-split-heading { align-items: start; }
.bright-process .bright-split-heading > p { padding-top: 8px; }
.bright-process-steps { display: grid; grid-template-columns: repeat(3, 1fr); padding: 0 clamp(24px, 5vw, 76px); margin-top: clamp(44px, 4.5vw, 64px); list-style: none; }
.bright-process-steps li { position: relative; min-height: 210px; padding: 22px 38px 22px 0; border-top: 1px solid var(--bright-line); }
.bright-process-steps li + li { padding-left: 38px; border-left: 1px solid var(--bright-line); }
.bright-process-steps li::before { content: ""; position: absolute; top: -2px; left: 0; width: 100%; height: 3px; background: var(--bright-coral); transform: scaleX(.08); transform-origin: left; transition: transform 600ms cubic-bezier(.2,.8,.2,1) calc(var(--stage-order, 0) * 90ms); }
.bright-process-steps li.is-visible::before { transform: scaleX(1); }
.bright-process-steps li:nth-child(2)::before { background: var(--bright-teal); }
.bright-process-steps li:nth-child(3)::before { background: var(--bright-sand); }
.bright-process-steps span { color: var(--bright-teal); font-size: 12px; font-weight: 700; }
.bright-process-steps h3 { max-width: 330px; margin-top: 30px; font-size: clamp(26px, 2.5vw, 36px); font-weight: 630; line-height: 1.04; }
.bright-process-steps p { max-width: 340px; margin-top: 20px; color: var(--bright-muted); font-size: 15px; line-height: 1.6; }
.bright-control-note { display: flex; align-items: baseline; justify-content: space-between; gap: 36px; padding-top: 26px; border-top: 1px solid var(--bright-ink); }
.bright-control-note strong { font-size: 15px; }
.bright-control-note span { max-width: 630px; color: var(--bright-muted); font-size: 14px; }
.bright-responsibilities { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: 28px; border-top: 1px solid var(--bright-line); }
.bright-responsibilities p { display: grid; gap: 10px; padding: 19px 30px 16px 0; border-right: 1px solid var(--bright-line); }
.bright-responsibilities p + p { padding-left: 30px; }
.bright-responsibilities p:nth-child(3) { border-right: 0; }
.bright-responsibilities strong { font-size: 13px; }
.bright-responsibilities span { color: var(--bright-muted); font-size: 13px; line-height: 1.5; }
.bright-responsibilities small { grid-column: 1 / -1; padding-top: 16px; color: #7a878c; font-size: 11px; }

.bright-close { position: relative; overflow: clip; border-block: 1px solid var(--bright-line); background: linear-gradient(120deg, #fff 0 56%, #f8fcfa 56% 100%); }
.bright-close::before,
.bright-close::after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; }
.bright-close::before { width: 270px; height: 270px; right: -75px; top: -80px; background: var(--bright-mint); }
.bright-close::after { width: 92px; height: 92px; right: 190px; bottom: 55px; background: var(--bright-coral); }
.bright-close-inner { position: relative; z-index: 1; }
.bright-founder-line { color: var(--bright-teal); font-size: 13px; font-weight: 700; }
.bright-close h2 { max-width: 900px; margin-top: 24px; }
.bright-close h2 + p { max-width: 780px; margin-top: 30px; color: var(--bright-muted); font-size: 18px; line-height: 1.65; }
.bright-close .bright-actions { justify-content: flex-start; margin-top: 34px; }
.bright-close-links { display: flex; flex-wrap: wrap; gap: 26px; margin-top: 36px; }
.bright-close-links a { font-size: 13px; font-weight: 650; }
.bright-close-links a:hover { color: var(--bright-teal); }

.bright-site footer { border: 0; background: #fff; }
.bright-site .footer-inner { padding-block: 42px; }
.bright-site .conversion-bar { border: 0; border-radius: 999px; background: #fff; box-shadow: 0 16px 48px #102a3b24; }

@media (max-width: 920px) {
  .bright-split-heading { grid-template-columns: 1fr; gap: 28px; }
  .bright-split-heading > p { max-width: 650px; }
  .bright-outcome-list { grid-template-columns: 1fr; }
  .bright-outcome-list article,
  .bright-outcome-list article + article { min-height: 0; padding: 32px 0; border-right: 0; border-bottom: 1px solid var(--bright-line); }
  .bright-outcome-list article:last-child { border-bottom: 0; }
  .bright-outcome-list h3,
  .bright-outcome-list p { max-width: 650px; }
  .bright-process-steps { grid-template-columns: 1fr; }
  .bright-process-steps li,
  .bright-process-steps li + li { min-height: 0; padding: 28px 0 44px; border-left: 0; }
  .bright-process-steps li + li { margin-top: 12px; }
  .bright-process-steps h3 { margin-top: 36px; }
  .bright-control-note { align-items: flex-start; flex-direction: column; }
  .bright-responsibilities { grid-template-columns: 1fr; }
  .bright-responsibilities p,
  .bright-responsibilities p + p { padding: 24px 0; border-right: 0; border-bottom: 1px solid var(--bright-line); }
}

@media (max-width: 760px) {
  .bright-site .header-inner { min-height: 68px; }
  .bright-site .brand img { width: 138px; }
  .bright-site #main-nav.nav-enhanced { padding: 12px 24px 24px; background: #fff; }
  .bright-site #main-nav.nav-enhanced a { min-height: 46px; }
  .bright-site .nav-contact { margin-top: 8px; }
  .bright-site .analytics-consent { right: 12px; width: calc(100% - 24px); }
  .bright-hero { min-height: auto; }
  .bright-hero-inner { min-height: auto; padding-block: 76px 30px; }
  .bright-site h1 { font-size: clamp(46px, 13.4vw, 64px); }
  .bright-site h2 { font-size: clamp(39px, 11vw, 54px); }
  .bright-hero-lede { margin-top: 27px; font-size: 18px; }
  .bright-actions { width: 100%; align-items: stretch; flex-direction: column; gap: 20px; }
  .bright-actions .button { width: 100%; justify-content: space-between; }
  .bright-signal { padding-top: 58px; }
  .bright-outcomes,
  .bright-services,
  .bright-process,
  .bright-close { padding-block: 78px; }
  .bright-outcome-list,
  .bright-service-list,
  .bright-process-steps { margin-top: 52px; }
  .bright-industry-links { align-items: flex-start; flex-direction: column; }
  .bright-industry-links span { margin-right: 0; }
  .bright-service-list .service-lane { min-height: 0; grid-template-columns: 1fr; gap: 20px; padding-block: 28px; }
  .bright-service-list .service-lane:hover,
  .bright-service-list .service-lane[aria-pressed="true"] { padding-inline: 14px; }
  .bright-service-list .lane-action { text-align: left; }
  .bright-service-action { align-items: flex-start; flex-direction: column; }
  .bright-service-action .button { width: 100%; justify-content: space-between; }
  .bright-process-steps { padding-inline: 24px; }
  .bright-close { background: #f8fcfa; }
  .bright-close::before { width: 160px; height: 160px; right: -70px; top: -50px; }
  .bright-close::after { width: 54px; height: 54px; right: 18px; bottom: 36px; }
  .bright-close .bright-actions { align-items: flex-start; }
  .bright-close-links { align-items: flex-start; flex-direction: column; margin-top: 58px; }
}

@media (prefers-reduced-motion: reduce) {
  .bright-hero h1 span::after { animation: none; transform: scaleX(1); }
  .bright-signal span { transform: none; }
}
