/* Homepage experience. Shared interior-page styles stay in site.css. */
.ops-home{--experience-width:1240px}.ops-home main{overflow:clip}.ops-home section[id],.ops-home [id^=solution-]{scroll-margin-top:100px}.ops-home .hero h1{font-size:clamp(46px,6.7vw,94px);line-height:1.02;max-width:1100px;letter-spacing:-.045em}.hero-description{max-width:540px;margin:28px auto 0;color:#d1dad5;font-size:17px;line-height:1.6}.hero-actions{justify-content:center;margin-top:30px}.hero-actions .btn--outline{border-color:#8faba1;color:white;background:#05131055}.ops-home .hero .announce{color:var(--mint-2);letter-spacing:.1em}.ops-home .hero-art{animation:hero-drift 4.5s ease-out both}.ops-home .hero-inner{animation:hero-enter 1.2s ease-out both}.ops-home .audience{display:none}.eyebrow{font:11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);margin-bottom:22px}.experience-section,.industry-experience,.trust-experience{max-width:var(--experience-width);margin:auto;padding:100px 36px}.section-heading h2,.industry-heading h2,.trust-experience h2,.closing-experience h2{font:clamp(36px,4vw,58px)/1.08 var(--serif);letter-spacing:-.035em;font-weight:400}em{font-weight:400}.section-heading>p:last-child{max-width:450px;color:var(--ink-2);line-height:1.6;margin-top:22px;font-size:15px}.solution-explorer{display:grid;grid-template-columns:310px 1fr;gap:40px;margin-top:50px;align-items:center}.solution-tabs{display:flex;flex-direction:column}.solution-tabs button{display:flex;gap:14px;align-items:center;text-align:left;padding:23px 12px;border:0;border-bottom:1px solid #dce2dd;background:transparent;font:14px var(--sans);color:#6b746f;cursor:pointer;transition:background .2s,color .2s}.solution-tabs button span{font:10px var(--mono);opacity:.65}.solution-tabs button b{margin-left:auto;font-weight:400}.solution-tabs button[aria-selected=true]{background:#e4eee6;color:#122c20}.solution-tabs button:hover{color:#0b2015;background:#edf1eb}.solution-stage{min-width:0;border:1px solid #cdd8cf;background:#eff2ec;box-shadow:0 22px 60px #1737230d}.stage-top{display:flex;justify-content:space-between;gap:10px;background:#14271e;color:#d3e3d9;padding:18px 22px;font:9px var(--mono);letter-spacing:.07em}.stage-top i{display:inline-block;background:#8bddae;width:6px;height:6px;border-radius:50%;margin-right:7px}.demo-workspace{padding:30px 34px 20px}.demo-context{display:flex;justify-content:space-between;color:#737e76;font:9px var(--mono);letter-spacing:.06em}.demo-workspace h3{font:26px var(--serif);margin:16px 0 25px}.demo-event{display:flex;gap:15px;align-items:center;padding:20px;background:white;border:1px solid #dce2d8;border-radius:5px}.demo-event small,.demo-result>small{font:9px var(--mono);letter-spacing:.07em;color:#627267}.demo-event p{font-size:13px;line-height:1.6;margin-top:8px}.event-icon{font-size:25px;color:#73917d}.event-time{font:9px var(--mono);color:#8e9a91;margin-left:auto}.demo-connector{height:30px;border-left:1px dashed #8da48e;margin-left:35px}.demo-result{border:1px solid #adc5af;border-radius:5px;padding:22px;background:#fafff8}.demo-result h4{font:18px var(--sans);letter-spacing:-.02em;margin:13px 0 8px}.demo-result p{font-size:12px;color:#607065;line-height:1.6;min-height:38px}.review-state{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #dce6d8;padding-top:15px;margin-top:20px;font:9px var(--mono);color:#6f6b37}.review-state span:last-child{color:#587362}.demo-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:22px;font:9px var(--mono);color:#738077}.demo-bottom button{border:0;background:none;padding:12px;color:#365e43;cursor:pointer;font:11px var(--sans)}.solution-caption{padding:22px 34px;background:#fff;border-top:1px solid #dce2d8;display:flex;align-items:center;gap:25px}.solution-caption p{font-size:13px;color:#657268;line-height:1.5}.solution-caption a{flex-shrink:0;font-size:12px;text-decoration:underline;text-underline-offset:4px}.role-line{display:flex;gap:26px;flex-wrap:wrap;align-items:center;border-bottom:1px solid #dce2dd;padding:35px 0;font-size:12px}.role-line>span{color:#758077;margin-right:auto}.role-line a{padding:8px 0}.industry-experience{padding-top:40px}.industry-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:40px}.industry-navigation{display:flex;flex-direction:column;align-items:flex-end;gap:15px}.industry-navigation select{font:12px var(--sans);padding:12px;max-width:260px;border:1px solid #d4dcd5;background:transparent}.industry-navigation button{width:44px;height:44px;border:1px solid #cad5ce;background:transparent;cursor:pointer;font-size:20px;margin-left:6px}.industry-navigation button:disabled{opacity:.3;cursor:default}.sector-track{display:flex;gap:20px;overflow:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}.sector-card{flex:0 0 calc((100% - 40px)/3);min-width:0;min-height:345px;display:flex;flex-direction:column;padding:30px;scroll-snap-align:start;position:relative;overflow:hidden;background:#e7ece2;border-top:3px solid #809e78;transition:background .25s}.sector-card:nth-child(3n+2){background:#e4e9e8;border-color:#739493}.sector-card:nth-child(3n){background:#ede8dd;border-color:#a28e68}.sector-card:before{content:'';position:absolute;inset:0;background:url('/assets/hero-commodity-engraving-v2.jpg') center/cover;opacity:.08;mix-blend-mode:multiply;pointer-events:none;transition:transform .6s}.sector-card:hover:before{transform:scale(1.06)}.sector-card>*{position:relative}.sector-number{font:10px var(--mono);color:#637368;letter-spacing:.08em}.sector-card h3{font:29px/1.1 var(--serif);margin-top:40px;letter-spacing:-.02em}.sector-card p{font-size:13px;line-height:1.6;color:#566459;margin-top:16px}.sector-open{display:flex;justify-content:space-between;align-items:center;background:transparent;border:0;border-top:1px solid #8da08c66;padding:20px 0 0;margin-top:auto;font:12px var(--sans);cursor:pointer;min-height:55px;text-align:left}.custom-experience{background:#10281e;color:#f0f4e9;padding:65px max(36px,calc((100vw - 1168px)/2));position:relative;overflow:hidden}.custom-experience:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#10281ef2,#10281e55),url('/assets/linkedin-commodities-banner-1584x396.png') center/cover;opacity:.65;pointer-events:none}.custom-experience>*{position:relative}.custom-index{font:10px var(--mono);letter-spacing:.12em;color:#a9c0ae;margin-bottom:55px}.custom-experience h2{font:clamp(40px,5.5vw,78px)/1.04 var(--serif);letter-spacing:-.035em}.custom-experience h2 em{color:#afd2ab}.custom-experience p{max-width:430px;font-size:15px;line-height:1.7;color:#b7c8b9;margin:28px 0}.trust-experience>div{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:40px}.trust-experience>div p{border-top:1px solid #cad5c8;padding-top:24px;font-size:14px;line-height:1.65;color:#627164}.closing-experience{padding:90px 24px 110px;text-align:center;background:#edf1e8}.closing-experience .btn{margin-top:35px}.closing-experience .eyebrow{font-size:9px}#sector-dialog{width:min(650px,calc(100% - 28px));max-height:85svh;margin:auto;padding:50px 40px 35px;border:1px solid #c8d7c7;background:#fafbf6;color:var(--ink);box-shadow:0 30px 100px #0003}#sector-dialog::backdrop{background:#071b13aa;backdrop-filter:blur(6px)}.dialog-close{position:absolute;right:14px;top:12px;width:44px;height:44px;border:0;background:transparent;font-size:20px;cursor:pointer}#sector-title{font:38px/1.1 var(--serif);margin:10px 0 25px}.portfolio-detail{font-size:14px;line-height:1.6}.detail-intro{color:#647265;margin-bottom:25px}.detail-label{font:10px var(--mono);text-transform:uppercase;margin:20px 0 12px;color:#657666}.capability-list{display:grid;gap:18px;list-style:none}.capability-list h4{font-size:14px;font-weight:500}.capability-list p{font-size:13px;color:#637063}.industry-example{background:#e9efe4;padding:2px 20px 20px;margin:24px 0}.text-link{display:inline-flex;gap:15px;padding:12px 0;text-decoration:underline;text-underline-offset:5px}.demo-sequence.play .demo-event{animation:step-in .6s both}.demo-sequence.play .demo-result{animation:step-in .6s .65s both}.demo-sequence.play .review-state{animation:step-in .5s 1.2s both}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}button:focus-visible,a:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid #438d63;outline-offset:4px}@keyframes step-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes hero-enter{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes hero-drift{from{transform:scale(1.055)}to{transform:scale(1)}}
@media(max-width:900px){.solution-explorer{grid-template-columns:1fr;gap:22px}.solution-tabs{flex-direction:row;overflow:auto}.solution-tabs button{flex-shrink:0;padding:17px;white-space:nowrap}.solution-tabs button b{display:none}.role-line{gap:15px 25px}.role-line>span{width:100%}.sector-card{flex-basis:calc((100% - 20px)/2)}.industry-heading{align-items:flex-start}.industry-navigation select{max-width:200px}.ops-home .hero h1{font-size:64px}.stage-top{font-size:8px}}
@media(max-width:600px){.experience-section,.industry-experience,.trust-experience{padding:65px 22px}.ops-home .hero h1{font-size:46px}.hero-description{font-size:15px;max-width:320px}.ops-home .hero{min-height:800px;min-height:94svh}.ops-home .hero .announce{font-size:9px;letter-spacing:.04em}.industry-heading{display:block}.industry-navigation{flex-direction:row;justify-content:space-between;margin-top:25px;align-items:center}.sector-card{flex-basis:87%;padding:25px;min-height:330px}.demo-workspace{padding:24px 17px 12px}.stage-top{padding:15px 12px;letter-spacing:0;font-size:7px}.demo-event{padding:16px 12px;gap:10px}.event-time{display:none}.demo-result{padding:18px 15px}.review-state{font-size:8px}.solution-caption{padding:20px;display:block}.solution-caption a{display:inline-block;margin-top:12px}.demo-bottom{font-size:8px}.industry-experience{padding-top:10px}.custom-experience{padding:45px 24px}.custom-experience h2{font-size:44px}.trust-experience>div{grid-template-columns:1fr;gap:22px}.closing-experience{padding:70px 22px}#sector-dialog{padding:44px 24px 28px}#sector-title{font-size:32px}}
@media(prefers-reduced-motion:reduce){.ops-home *, .ops-home *:before{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Keep homepage heading accents upright. */
.ops-home h2 em { font-style: normal; }
/* Restore the original homepage typography scale and spacing. */
.hero-title-subject { display: inline-block; max-width: 100%; }
.hero-keep-together { white-space: nowrap; }
.ops-home .hero h1 {
  font-size: clamp(30px, 3.8vw, 50px);
  line-height: 1.1;
  letter-spacing: -0.018em;
}
@media (max-width: 600px) {
  .ops-home .hero h1 { font-size: clamp(26px, 7.7vw, 30px); }
  .hero-title-subject { text-wrap: balance; }
}
.ops-home :is(.section-heading, .industry-heading, .trust-experience, .closing-experience, .custom-experience) h2 {
  font-size: clamp(28px, 3.7vw, 48px);
  line-height: 1.1;
  letter-spacing: -0.016em;
}
/* Original sector engravings, each tied to its own industry. */
.ops-home .sector-card,
.ops-home .sector-card:nth-child(3n+2),
.ops-home .sector-card:nth-child(3n) {
  background: #0a2419;
  border-top: 0;
  color: #f0f3e8;
  min-height: 380px;
  isolation: isolate;
}
.ops-home .sector-card::before { display: none; }
/* Art and gradient sit behind the card's own content, so the copy needs no z-index of its own. */
.ops-home .sector-card .sector-art {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .85;
  pointer-events: none;
  transition: transform .6s ease;
}
.ops-home .sector-card::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, #0a2419bd 0%, #0a2419ad 40%, #0a241914 78%, #0a2419ad 100%);
  pointer-events: none;
}
.ops-home .sector-card:hover .sector-art { transform: scale(1.045); }
.ops-home .sector-card p { color: #d5ded2; }
/* "Explore sector" is a real link stretched over the whole card, so the card gets a
   link's pointer cursor and keyboard behaviour without a click handler on the article. */
.ops-home .sector-card .sector-open {
  position: static;
  color: #f0f3e8;
  border-top: 0;
  text-decoration: none;
  transition: color .25s;
}
.ops-home .sector-card .sector-open::before { content: ''; position: absolute; inset: 0; }
.ops-home .sector-card:hover .sector-open { color: #ffffff; }
@media (prefers-reduced-motion: reduce) {
  .ops-home .sector-card:hover .sector-art { transform: none; }
}

/* The UA select chevron ignores padding-right, so draw our own and inset it to match. */
.ops-home .industry-navigation select {
  appearance: none;
  padding-right: 38px;
  border-radius: 0;
  background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' stroke='%2355605B' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 13px center;
  background-size: 12px 8px;
}

/* Keep industry navigation close to the carousel on desktop. */
.ops-home .sector-card h3 { margin-top: 20px; }
@media (min-width: 901px) {
  .industry-experience { position: relative; }
  .industry-navigation > div { display: contents; }
  .industry-navigation button { position: absolute; top: var(--sector-arrow-top, 360px); margin: 0; z-index: 2; transform: translateY(-50%); background: var(--white); }
  #sector-prev { left: -16px; }
  #sector-next { right: -16px; }
}
@media (min-width: 901px) and (max-width: 1300px) {
  #sector-prev { left: 4px; }
  #sector-next { right: 4px; }
}

/* Industry dialog: section labels share the title's serif instead of the mono eyebrow. */
.ops-home .detail-label {
  font: 19px/1.3 var(--serif);
  letter-spacing: -.015em;
  text-transform: none;
  color: var(--ink);
  margin: 30px 0 16px;
}
.ops-home .industry-example .detail-label { font-size: 16px; margin: 20px 0 10px; }
.ops-home .capability-list h4 { font-family: var(--sans); }

/* Industries runs straight into Solutions, so the seam between them does not
   need two full section paddings stacked on top of each other. */
.ops-home .industry-experience { padding-bottom: 24px; }
.ops-home #solutions { padding-top: 44px; }
/* Anchor jumps clear the sticky nav and no more. The old 100px offset stacked
   on top of the section's own padding, dropping the heading far down the page. */
.ops-home section[id] { scroll-margin-top: 74px; }

/* Security carries a lead line and three named commitments again, restored
   from the pre-redesign page. */
.ops-home .trust-lead { max-width: 640px; margin-top: 26px; font-size: 15px; line-height: 1.7; color: #627164; }
.ops-home .trust-experience > div { margin-top: 34px; }
.ops-home .trust-experience > div article { border-top: 1px solid #cad5c8; padding-top: 24px; }
.ops-home .trust-experience > div article h3 { font-size: 15px; font-weight: 500; letter-spacing: -.01em; }
.ops-home .trust-experience > div article p { border-top: 0; padding: 9px 0 0; font-size: 14px; line-height: 1.65; color: #627164; }


/* The closing line is a sentence, not a label, so it takes the heading's serif
   and runs into the headline as one thought. */
.ops-home .closing-lead { font: 17px/1.5 var(--serif); color: #5d6f60; margin-bottom: 18px; }
@media (max-width: 600px) { .ops-home .closing-lead { font-size: 15px; margin-bottom: 14px; } }

/* iOS Safari paints form-control and button text with the system accent unless
   both colour properties are set, which turned the industry picker and its
   carousel arrows blue on iPhone. */
.ops-home .industry-navigation select,
.ops-home .industry-navigation button,
.ops-home .dialog-close {
  color: var(--ink);
  -webkit-text-fill-color: var(--ink);
  -webkit-appearance: none;
  appearance: none;
}
.ops-home .industry-navigation button:disabled { color: var(--ink); -webkit-text-fill-color: var(--ink); }
/* Between the two static weights: 500 read heavy, 400 read thin. Geist is
   served as a variable font over 400..500, so this is a real intermediate. */
.ops-home .hero-actions .btn { font-weight: 450; }

/* Focus rings exist for keyboard users. The industry dialog moves focus
   programmatically (to the close button on open, back to the card on close),
   which Safari then paints as a visible ring on touch, where no keyboard is
   involved. Keep the ring for fine pointers and drop it for coarse ones. */
@media (pointer: coarse) {
  .ops-home button:focus-visible,
  .ops-home a:focus-visible,
  .ops-home select:focus-visible,
  .ops-home [tabindex]:focus-visible,
  .ops-home .dialog-close:focus-visible,
  .ops-home .sector-open:focus-visible { outline: none; }
}
