/* OfferNorth company pages */
:root {
  --paper:#101927; --white:#182536; --line:#253447; --ink:#f7faf8; --body:#c9d9d5;
  --accent:#79e0bf; --green:#79e0bf; --muted:#adc3c0;
}
.top, .top.scrolled, .top:has(#mobile-menu:not([hidden])), #mobile-apply { background:var(--paper); border-color:var(--line); }
.top-in .wordmark span, .foot-in .wordmark span { color:var(--accent); }
.btn.primary-action, .main-nav .btn.nav-btn, #mobile-menu .btn, .prose .btn.primary-action {
  display:inline-flex; align-items:center; justify-content:center; gap:.7em;
  min-height:48px; padding:12px 20px; border:1px solid #90e7cc; border-bottom-color:#4a9b86;
  border-radius:7px; background:#79e0bf; color:#101927;
  box-shadow:0 3px 0 #388a73,0 6px 15px #06101842;
  font-weight:680; text-align:center; transition:background .18s ease,box-shadow .18s ease,transform .18s ease;
}
.main-nav .btn.nav-btn { min-height:42px; padding:9px 16px; font-size:14px; }
.btn.primary-action:hover, .main-nav .btn.nav-btn:hover, #mobile-menu .btn:hover, .prose .btn.primary-action:hover {
  color:#101927; background:#99e9cf; box-shadow:0 3px 0 #4b9e87,0 7px 18px #06101845;
}
.btn.primary-action:active, .main-nav .btn.nav-btn:active, #mobile-menu .btn:active, .prose .btn.primary-action:active {
  transform:translateY(2px); background:#70d5b5; box-shadow:0 1px 0 #388a73,0 2px 6px #06101836;
}
.btn.primary-action:focus-visible, .main-nav .btn.nav-btn:focus-visible { outline:3px solid var(--ink)!important; outline-offset:5px; }

.company-screen {
  display:flex; align-items:center; position:relative; isolation:isolate;
  min-height:clamp(580px,calc(100svh - 74px),980px);
  padding-block:clamp(68px,8vw,130px); border-bottom:1px solid var(--line);
  background:var(--paper); color:var(--ink); scroll-margin-top:0;
}
.company-wrap { width:min(1140px,calc(100% - clamp(64px,11vw,164px))); margin-inline:auto; }
.company-screen h1, .company-screen h2, .company-screen h3, .written-sample h3 { font-family:var(--studio-sans); color:var(--ink); }
.company-screen h2 {
  margin:0; font-weight:590; font-size:clamp(48px,5.3vw,84px); line-height:1.02; letter-spacing:-.063em; text-wrap:balance;
}
.company-screen h2 em { font:inherit; color:var(--accent); }
.company-deck, .company-screen .company-deck {
  font:400 clamp(17px,1.45vw,21px)/1.53 var(--studio-sans); color:var(--body); text-wrap:pretty; margin:0;
}
.company-link { display:inline-flex; align-items:center; gap:9px; min-height:44px; font:590 15px/1.35 var(--studio-sans); color:var(--ink); }
.company-link .icon { width:15px; height:15px; color:var(--accent); }
.company-link:hover { color:var(--accent); }
.company-link:focus-visible, .company-disclosures summary:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
.company-screen .hero-actions { gap:18px 25px; margin-top:30px; }
.company-two-col { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.92fr); gap:32px clamp(50px,7.2vw,118px); align-items:start; }

#opportunity.expertise-hero {
  display:flex; align-items:center; min-height:clamp(510px,calc(89svh - 74px),900px); padding:clamp(82px,9vw,140px) 0;
  background:radial-gradient(ellipse at 50% 76%,#152c35 0%,#13202e 29%,#101927 66%); border-bottom:1px solid var(--line); overflow:visible;
}
#opportunity.expertise-hero::before { display:none; }
.company-opening { text-align:center; }
#opportunity h1 { margin:0; font:670 clamp(58px,7.7vw,112px)/1.005 var(--studio-sans); color:var(--ink); letter-spacing:-.076em; text-wrap:initial; }
#opportunity h1 span { display:block; }
#opportunity h1 span:last-child { color:var(--accent); }
#opportunity .company-deck { max-width:55ch; margin:27px auto 0; }
#opportunity .hero-actions { justify-content:center; margin-top:31px; }
#opportunity .primary-action { min-height:53px; padding-inline:23px; font-size:16px; }

#challenge { background:var(--white); }
.challenge-layout { align-items:center; }
.challenge-layout h2 { max-width:13.5ch; }
.responsibility-list { margin:0; padding:0; list-style:none; border-top:1px solid #3b4c59; }
.responsibility-list li {
  display:block; color:var(--ink); padding:11px 0 12px; border-bottom:1px solid #3b4c59;
  font:520 clamp(23px,2.35vw,37px)/1.055 var(--studio-sans); letter-spacing:-.048em;
}
.company-screen .challenge-close { color:var(--body); font-size:clamp(16px,1.2vw,19px); margin-top:22px; max-width:39ch; }

#operation h2 { max-width:17ch; }
.operation-stages {
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin:clamp(36px,4.8vw,68px) 0 clamp(36px,4vw,62px); padding:0; list-style:none;
}
.operation-stages li { min-width:0; position:relative; padding:27px clamp(12px,2.7vw,38px) 0 0; }
.operation-stages li:last-child { padding-right:0; }
.operation-rail { height:2px; display:block; position:absolute; inset:0 0 auto; background:#354653; }
.operation-rail::before { position:absolute; inset:0; content:""; background:var(--accent); transform-origin:left; }
.operation-rail::after {
  position:absolute; top:50%; left:0; content:""; width:9px; height:9px; border-radius:50%;
  background:var(--accent); box-shadow:0 0 0 5px var(--paper); transform:translateY(-50%);
}
.operation-stages h3 { margin:0 0 8px; font-size:clamp(29px,2.7vw,42px); font-weight:570; line-height:1.04; letter-spacing:-.052em; }
.operation-stages p,.operation-note p,.written-sample>p,.written-sample details p,.written-sample li,.company-faq details p {
  color:var(--body); font:400 16px/1.58 var(--studio-sans); text-wrap:pretty;
}
.operation-stages p { max-width:28ch; }
.operation-note { display:flex; align-items:center; justify-content:space-between; gap:26px; padding-top:21px; border-top:1px solid var(--line); }
.operation-note p { max-width:60ch; }
.operation-note .company-link { flex:none; }

#sample-review { background:#152332; }
.sample-layout { grid-template-columns:minmax(0,.77fr) minmax(0,1.1fr); align-items:center; row-gap:15px; }
.sample-intro { align-self:end; }
.sample-intro h2 { max-width:10ch; }
.sample-intro .company-deck { margin-top:20px; max-width:33ch; }
.sample-paper { grid-row:1/3; grid-column:2; }
.written-sample {
  padding:clamp(25px,3vw,46px); border:1px solid #3b5660; border-top:3px solid var(--accent);
  background:var(--white); border-radius:3px 3px 9px 9px; box-shadow:0 12px 42px #0b141b33;
}
.written-sample header { margin-bottom:22px; padding-bottom:19px; border-bottom:1px solid #3a4e5b; }
.company-label { margin:0 0 10px; font:640 11px/1.5 var(--mono); color:var(--accent); text-transform:uppercase; letter-spacing:.095em; }
.written-sample h3 { margin:0; font:585 clamp(29px,3.3vw,47px)/1.06 var(--studio-sans); letter-spacing:-.061em; }
.sample-context { margin-top:10px; font:400 13px/1.5 var(--studio-sans); color:var(--body); }
.written-sample>p { margin-bottom:15px; }
.written-sample strong { color:var(--ink); }
.company-disclosures { border-top:1px solid #3a4e5b; margin-top:22px; }
.company-disclosures details { background:transparent; border:0; padding:0; margin:0; border-bottom:1px solid #3a4e5b; border-radius:0; }
.company-disclosures summary { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:52px; padding:11px 0; list-style:none; cursor:pointer; font:600 16px/1.42 var(--studio-sans); color:var(--ink); }
.company-disclosures summary::-webkit-details-marker { display:none; }
.company-disclosures summary::after { content:none; }
.company-disclosures summary .icon { width:17px; height:17px; flex:none; color:var(--accent); transition:transform .2s ease; }
.company-disclosures details[open] summary .icon { transform:rotate(45deg); }
.company-disclosures details>div { padding:1px 0 14px; }
.company-disclosures details p+p { margin-top:10px; }
.company-disclosures ol { margin:0; padding-left:22px; }
.company-disclosures li+li { margin-top:6px; }
.sample-ask { grid-column:1; align-self:start; padding-top:15px; }
.sample-ask p,.invitation-action p { font:540 17px/1.45 var(--studio-sans); color:var(--ink); margin-bottom:15px; }

#review { text-align:center; background:radial-gradient(ellipse at 51% 54%,#142b35 0%,var(--paper) 66%); }
.review-layout { max-width:920px; }
.review-layout h2 { max-width:21ch; margin-inline:auto; }
.review-layout h2 em { display:block; }
.review-layout .company-deck { max-width:52ch; margin:23px auto 0; }
.review-layout .hero-actions { justify-content:center; margin-top:27px; }
.review-note { max-width:57ch; font:400 14px/1.55 var(--studio-sans); color:var(--muted); margin:18px auto 0; }
#final-cta.company-screen { background:var(--white); }
.invitation-layout h2 { max-width:13ch; }
.invitation-layout .company-deck { margin-top:22px; max-width:43ch; }
.invitation-action { margin-top:27px; }
.invitation-action p { max-width:31ch; }
.company-faq { margin-top:7px; }
.company-faq h3 { font:550 clamp(26px,2.1vw,34px)/1.08 var(--studio-sans); letter-spacing:-.046em; }
.company-faq .company-disclosures { margin-top:17px; }
.company-faq>.company-link { margin-top:10px; }
.company-faq details .company-link { font-size:14px; }
.company-faq details summary { min-height:62px; }

@media(min-width:761px) and (max-width:950px) {
  .company-wrap { width:calc(100% - 70px); }
  .company-two-col { gap:30px; }
  .main-nav { gap:10px; }
  .main-nav .btn.nav-btn { font-size:12px; gap:5px; padding:8px 10px; }
}
@media(max-width:760px) {
  .company-wrap { width:calc(100% - 40px); }
  .company-screen { min-height:0; display:block; padding-block:clamp(58px,9.5vw,82px); }
  #opportunity.expertise-hero { display:flex; min-height:0; padding:clamp(80px,15svh,123px) 0 clamp(83px,15.5svh,130px); }
  #opportunity h1 { font-size:clamp(29px,9.1vw,63px); letter-spacing:-.067em; line-height:1.04; }
  #opportunity .company-deck { margin-top:20px; max-width:41ch; }
  #opportunity .hero-actions { flex-direction:column; gap:5px; margin-top:24px; }
  #opportunity .hero-actions .primary-action { font-size:15px; min-height:48px; padding-inline:19px; }
  #opportunity .company-link { min-height:43px; font-size:14px; }
  .company-screen h2 { font-size:clamp(37px,8.7vw,59px); letter-spacing:-.058em; }
  .company-deck,.company-screen .company-deck { font-size:17px; }
  .company-two-col { grid-template-columns:minmax(0,1fr); gap:24px; }
  .challenge-layout h2,.invitation-layout h2,#operation h2 { max-width:17ch; }
  .responsibility-list li { font-size:25px; padding:10px 0; }
  .operation-stages { display:block; margin:28px 0 26px; }
  .operation-stages li,.operation-stages li:last-child { padding:0 0 25px 23px; }
  .operation-stages li:last-child { padding-bottom:0; }
  .operation-rail { inset:8px auto -8px 3px; width:2px; height:auto; }
  .operation-rail::before { transform-origin:top; }
  .operation-rail::after { left:50%; top:0; width:8px; height:8px; transform:translate(-50%,0); box-shadow:0 0 0 4px var(--paper); }
  .operation-stages li:last-child .operation-rail { background:none; }
  .operation-stages li:last-child .operation-rail::before { content:none; }
  .operation-stages h3 { font-size:27px; margin:0 0 5px; }
  .operation-stages p { max-width:38ch; }
  .operation-note { align-items:start; flex-direction:column; gap:3px; padding-top:17px; }
  .sample-layout { gap:23px; }
  .sample-intro h2 { max-width:none; }
  .sample-intro .company-deck { max-width:43ch; margin-top:12px; }
  .sample-paper,.sample-ask { grid-column:auto; grid-row:auto; }
  .written-sample { padding:20px; }
  .written-sample header { margin-bottom:15px; padding-bottom:13px; }
  .written-sample h3 { font-size:clamp(29px,7.5vw,40px); }
  .written-sample>p { margin-bottom:10px; }
  .company-disclosures { margin-top:14px; }
  .sample-ask { padding-top:0; }
  .review-layout .company-deck { margin-top:16px; }
  .review-layout h2 { max-width:19ch; }
  .review-note { max-width:41ch; }
  .invitation-layout .company-deck { margin-top:15px; }
  .company-faq { padding-top:15px; }
  .company-faq details summary { min-height:55px; }
  #mobile-apply .btn { min-height:42px; }
}
@media(max-width:355px) {
  .company-wrap { width:calc(100% - 30px); }
  .company-screen h2 { font-size:35px; }
  .written-sample { padding:17px; }
  #opportunity.expertise-hero { padding:69px 0; }
}
@media screen and (prefers-reduced-motion:no-preference) {
  .company-motion [data-arrival].is-entered, .company-motion [data-responsibility].is-entered {
    animation:company-arrive 560ms cubic-bezier(.2,.72,.26,1) both;
    animation-delay:var(--company-delay,0ms);
  }
  .company-screen [data-arrival="copy"] { --company-delay:70ms; }
  .company-screen [data-arrival="action"] { --company-delay:145ms; }
  .company-motion .operation-stages [data-stage].is-entered .operation-rail::before { animation:company-line 550ms cubic-bezier(.2,.7,.25,1) both; animation-delay:var(--company-delay,0ms); }
  .company-motion .operation-stages [data-stage].is-entered .operation-rail::after { animation:company-dot 440ms ease both; animation-delay:var(--company-delay,0ms); }
  .company-motion .operation-stages [data-stage].is-entered :is(h3,p) { animation:company-arrive 540ms ease both; animation-delay:var(--company-delay,0ms); }
  @keyframes company-arrive { from {opacity:.38;transform:translateY(12px) scale(.992)} to {opacity:1;transform:none} }
  @keyframes company-line { from {transform:scaleX(0)} to {transform:scaleX(1)} }
  @keyframes company-dot { from {opacity:.3} to {opacity:1} }
}
@media screen and (max-width:760px) and (prefers-reduced-motion:no-preference) {
  .company-motion .operation-stages [data-stage].is-entered .operation-rail::before { animation-name:company-line-vertical; }
  @keyframes company-line-vertical { from {transform:scaleY(0)} to {transform:scaleY(1)} }
}
@media(prefers-reduced-motion:reduce) {
  .company-motion [data-arrival], .company-motion [data-responsibility], .company-motion .operation-stages * { opacity:1; animation:none!important; }
}
@media print {
  .company-screen, #opportunity.expertise-hero { background:white; min-height:0; padding:20px 0; display:block; }
  .company-screen *, .written-sample * { color:black!important; }
  .written-sample { box-shadow:none; }
}
.responsibility-list li:nth-child(2) { --company-delay:48ms; }
.responsibility-list li:nth-child(3) { --company-delay:96ms; }
.responsibility-list li:nth-child(4) { --company-delay:144ms; }
.responsibility-list li:nth-child(5) { --company-delay:192ms; }
.responsibility-list li:nth-child(6) { --company-delay:240ms; }
.operation-stages li:nth-child(2) { --company-delay:120ms; }
.operation-stages li:nth-child(3) { --company-delay:240ms; }
