/* v55 layer — loaded last on every page (EN + HE). Built 4 Oct 2026. */

/* ---------- New components (B1 OpEx, B2 Complex project delivery) ---------- */
.phero__display{font-family:var(--font-display,inherit);font-weight:700;font-size:clamp(1.5rem,3.2vw,2.4rem);line-height:1.15;color:#fff;margin:.6rem 0 1rem;max-width:30ch}
.phero__lead.v55-aud{margin-top:.75rem;font-size:1rem;opacity:.85}
.v55-anchor{display:block;position:relative;top:-6rem;visibility:hidden;height:0}
.v55-points,.v55-steps{margin:1.5rem 0 0;padding-inline-start:1.4rem;display:grid;gap:1rem}
.v55-points li,.v55-steps li{line-height:1.6;padding-inline-start:.25rem}
.v55-points li::marker,.v55-steps li::marker{color:#0891b2;font-weight:700}
.v55-points strong,.v55-steps strong{color:#0a3a8c}
.v55-entry{margin-top:2rem;padding-top:1.25rem;border-top:1px solid var(--light,#eaecf5)}
.v55-entry p{margin:0 0 .5rem}
.v55-qa h3{font-size:1.1rem;margin:1.5rem 0 .4rem;color:#0a3a8c}
.v55-qa p{margin:0;line-height:1.6}
.v55-faq .sh,.v55-pos .sh,.v55-reset .sh{margin-bottom:.5rem}

/* ---------- Review fixes (360 review, 4 Oct 2026) ---------- */
/* C12 phone menu: own scroll area; page locked while open (html.nav-open set by v55.js) */
@media (max-width:1023px){
  .nav__mobile{max-height:calc(100dvh - 68px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
}
html.nav-open,html.nav-open body{overflow:hidden}

/* C13 AI workshops hero on phones: stack lede and caption */
@media (max-width:760px){
  .w55-hero{flex-direction:column;align-items:stretch;justify-content:flex-end}
  .w55-hero__in,.w55-hero__cap{width:100%;max-width:none}
}

/* C14 case summary strip keeps the page gutter */
main .container.evidence__grid{padding:1.75rem clamp(1.25rem,5vw,2.5rem)}

/* C15 How we work principles graphic: flat, on-palette; replaced by the text steps below 860px */
.opy-principles .grad{background:none!important;-webkit-background-clip:initial!important;background-clip:initial!important;-webkit-text-fill-color:#0a3a8c!important;color:#0a3a8c!important}
.opy-principles [fill^="url(#haze"]{display:none}
.opy-principles .tx.logo{display:none}
@media (max-width:860px){.opy-principles{display:none}}
/* C15 contact page: no multi-colour glow, ring or sheen */
.panel .glow,.panel .glow i{display:none!important}
.avatar:before{background:#0891b2!important;opacity:1!important}
.send__sheen{display:none!important}

/* C16 people without a photo: no picture, no initials, flat ink tile */
.w55-pc__mono{background:#0e1028!important}
.w55-pc__mono span{display:none}

/* C17 contrast */
.cta__people{color:#a4aec4!important}
body:has(.w55-hero) header.nav:not(.is-scrolled){background:linear-gradient(180deg,rgba(8,8,24,.88),rgba(8,8,24,0))}
body:has(.w55-hero) header.nav:not(.is-scrolled) .nav__link{color:#fff}
.w55-panel [class*="attr"],.w55-quote__role,.w55-q__role{color:#fff!important}
.w55-story__cap{color:#fff!important;background:rgba(8,8,24,.72);padding:.2rem .5rem;border-radius:2px}
.w55-pc__role{color:#fff!important}
.w55-pc__shade{background:linear-gradient(180deg,rgba(8,8,24,0) 35%,rgba(8,8,24,.85) 100%)!important}

/* B7 / a11y: touch targets on phones */
@media (max-width:767px){
  .nav__cta .btn,.btn,.nav .nav__cta .btn{min-height:44px}
  .nav__logo,header.nav a[aria-label*="home" i]{display:inline-flex;align-items:center;min-height:44px}
  .case__body summary{min-height:44px;display:flex;align-items:center}
}

/* C22 signed numbers stay in reading order in RTL */
html[dir="rtl"] .row__stat-value,html[dir="rtl"] .cr-bridge dd,html[dir="rtl"] dl dd{unicode-bidi:plaintext}
/* C23 bullets and step rails mirror in RTL */
html[dir="rtl"] .signals li{padding-left:0;padding-inline-start:1.5rem}
html[dir="rtl"] .signals li::before{left:auto;inset-inline-start:0}
html[dir="rtl"] .cr-step{padding-left:0;padding-inline-start:3rem}
html[dir="rtl"] .cr-step::before{left:auto;inset-inline-start:0}
html[dir="rtl"] .cr-step:not(:last-child)::after{left:auto;inset-inline-start:.55rem}
html[dir="rtl"] .cr-src__fix .mono-label{margin-right:0;margin-inline-end:.4rem}
/* C24 status label spacing (both directions) */
.svc-proof .status{margin:0 0 .25rem;margin-inline-end:.5rem}
/* C25 case-page diagrams: full width on desktop, scroll on phones instead of shrinking */
.ins-body figure.diagram,figure.diagram{max-width:none;width:min(100%,960px)}
@media (max-width:767px){figure.diagram{overflow-x:auto}figure.diagram svg{min-width:720px}}
/* C31 About Opyflow band on case and capability pages */
.v55-about{padding-block:2.5rem;background:var(--ice,#f3f4fa);border-top:1px solid var(--light,#eaecf5)}
.v55-about .mono-label{margin:0 0 .5rem;color:#0a3a8c}
.v55-about p.measure{margin:0;line-height:1.6;color:var(--charcoal,#1e2440)}
/* QA a11y: unselected Applied AI tab names reach 4.5:1 (was opacity .5 = 3.5:1) */
.agx-tabs .nm{opacity:.72}
/* QA a11y: pending agent-definition chips readable on the dark panel (done chips keep the tick and white text) */
.agx-def li:not(.done):not(.now){color:rgba(199,205,224,.72)}
/* QA: Hebrew How-we-work diagram (raster) follows the English rule — hidden on phones, where the text steps carry it */
@media (max-width:860px){.hwf__frame--still{display:none}}
/* C26 accessibility statement lists */
.prose ul.v55-list{list-style:disc;padding-inline-start:1.25rem;margin:.25rem 0 1.25rem;display:grid;gap:.5rem}
.prose ul.v55-list li{line-height:1.6}
/* QA a11y: Applied AI play/pause control reaches 44px on phones */
@media (max-width:767px){.agx-play{min-height:44px;min-width:44px}}
/* v55.1 (QA re-verification, 4 Oct) */
/* Workshops quote panel: flat deep blue (no gradient) so attributions reach 4.5:1 */
.w55-panel{background:#0a3a8c!important}
.w55-quote footer{color:#fff!important}
/* How we work graphic: numerals and phase names in deep blue (06/07 and "Delivered" were 2.5:1) */
.opy-principles .tx.num,.opy-principles .tx.phase{color:#0a3a8c!important}
/* Case diagrams: break out of the text column on desktop so labels stay readable */
@media (min-width:1024px){.ins-body figure.diagram{--dw:min(960px,calc(100vw - 4rem));width:var(--dw);max-width:none;margin-inline:calc((100% - var(--dw)) / 2)}}
/* Contact/subscribe form messages are not status pills */
form p.status[data-status]{display:block;width:auto;max-width:100%;padding:0;border:0;border-radius:0;font-family:inherit;font-weight:400;font-size:.9375rem;line-height:1.5;letter-spacing:normal;text-transform:none;margin:.5rem 0 0}
/* v55.2 F24: Applied AI demo is labelled as an illustration */
.agx-note{margin:0 0 .75rem;font-size:.875rem;color:var(--charcoal,#1e2440);opacity:.85}
