/* Aperture Research Works V116 — governing visual policy and fixed action rail.
   Governing rule: text is black on every non-black surface; white is permitted only on true black. */

:root{--v116-black:#000;--v116-white:#fff;--v116-work:#ffdf00;--v116-border:#000}

/* Header and logo proportion */
.site-header{min-height:96px!important}
.site-header .nav-shell{min-height:96px!important;align-items:center!important}
.site-header .brand{display:flex!important;align-items:center!important;justify-content:flex-start!important;min-width:0!important;overflow:visible!important}
.site-header .brand img{width:310px!important;max-width:36vw!important;height:auto!important;display:block!important}

/* Governing page text colour: black unless a component is explicitly normalised to true black below. */
html,body{color:#000!important}
body :where(h1,h2,h3,h4,h5,h6,p,li,dt,dd,label,legend,summary,small,strong,b,em,i,span,a,button,input,textarea,select,option,th,td,caption,blockquote,code,kbd,samp){color:#000!important}
body :where(input,textarea,select,option){-webkit-text-fill-color:#000!important}
body :where(a,button){text-decoration-color:currentColor}

/* Components that historically used dark navy are normalised to TRUE BLACK so white copy remains compliant. */
body :is(.site-footer,.contrast-dark,.dark-card,.case-finding,.v46a-case,.v46f-outcome-card,.v46f-sidecard,.v113-private-standard,.v113-private-card,.v113-form-gate,.v612-speed-band){background:#000!important;background-image:none!important;color:#fff!important}
body :is(.site-footer,.contrast-dark,.dark-card,.case-finding,.v46a-case,.v46f-outcome-card,.v46f-sidecard,.v113-private-standard,.v113-private-card,.v113-form-gate,.v612-speed-band) :where(h1,h2,h3,h4,h5,h6,p,li,dt,dd,label,legend,summary,small,strong,b,em,i,span,a,button,th,td,caption,blockquote){color:#fff!important}
body :is(.site-footer,.contrast-dark,.dark-card,.case-finding,.v46a-case,.v46f-outcome-card,.v46f-sidecard,.v113-private-standard,.v113-private-card,.v113-form-gate,.v612-speed-band) a{text-decoration-color:#fff!important}
.site-footer :is(input,textarea,select,option){color:#000!important;-webkit-text-fill-color:#000!important}

/* Any section explicitly marked by the runtime policy as black gets white text. */
.v116-black-surface{background-color:#000!important;background-image:none!important;color:#fff!important}
.v116-black-surface :where(h1,h2,h3,h4,h5,h6,p,li,dt,dd,label,legend,summary,small,strong,b,em,i,span,a,button,th,td,caption,blockquote){color:#fff!important}

/* Buttons on non-black surfaces must also use black text. */
body :where(.button,.text-button,.q-choice,.language-control,.v107-search-launch,.menu-button){color:#000!important}
body :where(.button,.text-button,.q-choice,.language-control,.v107-search-launch,.menu-button) :where(span,strong,small){color:#000!important}

/* Bottom three-action rail. See Our Work permanently lives between Request Consideration and WhatsApp. */
.enquiry-sticky,.v116-work-sticky,.whatsapp-fab{position:fixed!important;bottom:calc(12px + env(safe-area-inset-bottom))!important;z-index:8998!important;box-sizing:border-box!important}
.enquiry-sticky{display:inline-flex!important;left:12px!important;top:auto!important;transform:none!important;align-items:center!important;justify-content:center!important;min-height:50px!important;max-width:188px!important;padding:.68rem .92rem!important;border:2px solid #000!important;border-radius:16px!important;background:#fff!important;background-image:none!important;color:#000!important;box-shadow:0 10px 26px rgba(0,0,0,.18)!important;text-decoration:none!important;text-align:center!important}
.enquiry-sticky :where(span,small){color:#000!important}
.enquiry-sticky small{display:none!important}
.v116-work-sticky{display:inline-flex!important;left:50%!important;right:auto!important;top:auto!important;transform:translateX(-50%)!important;align-items:center!important;justify-content:center!important;min-height:52px!important;min-width:178px!important;max-width:220px!important;padding:.72rem 1.05rem!important;border:2px solid #000!important;border-radius:16px!important;background:#ffdf00!important;background-image:none!important;color:#000!important;box-shadow:0 12px 30px rgba(0,0,0,.22)!important;text-decoration:none!important;text-align:center!important;font-weight:900!important;letter-spacing:.01em!important}
.v116-work-sticky span{color:#000!important;font-weight:900!important}
.v116-work-sticky:hover,.v116-work-sticky:focus-visible{transform:translate(-50%,-2px)!important;box-shadow:0 16px 36px rgba(0,0,0,.28)!important}
.whatsapp-fab{right:12px!important;left:auto!important;top:auto!important}
.whatsapp-fab span{color:#000!important}

/* One action layer: hide the centre action whenever Request Consideration is intentionally suppressed. */
body.menu-open .enquiry-sticky,
body.menu-open .v116-work-sticky,
body.menu-open .whatsapp-fab,
.site-header.menu-open~.enquiry-sticky,
.site-header.menu-open~.v116-work-sticky,
body.v107-search-locked .enquiry-sticky,
body.v107-search-locked .v116-work-sticky,
body.v107-search-locked .whatsapp-fab,
body.v946-404 .enquiry-sticky,
body.v946-404 .v116-work-sticky,
body.partner-page .enquiry-sticky,
body.partner-page .v116-work-sticky,
body:has(#partner-access) .enquiry-sticky,
body:has(#partner-access) .v116-work-sticky{display:none!important}

body{padding-bottom:78px!important}
.site-footer{padding-bottom:84px!important}

/* Mobile header: logo remains substantial while language/search/menu each retain their own touch lane. */
@media(max-width:760px){
  .site-header{min-height:88px!important}
  .site-header .nav-shell{display:grid!important;grid-template-columns:minmax(142px,1fr) 104px 42px 48px!important;column-gap:6px!important;width:calc(100% - 18px)!important;min-height:88px!important;height:88px!important;padding:0!important}
  .site-header .brand{grid-column:1!important;width:100%!important;max-width:100%!important;overflow:visible!important}
  .site-header .brand img{width:154px!important;max-width:100%!important;min-width:0!important}
  .site-header .header-linkedin{display:none!important}
  .site-header .language-control{grid-column:2!important;width:104px!important;min-width:104px!important;max-width:104px!important;height:44px!important;min-height:44px!important;margin:0!important;padding:3px 6px!important;box-sizing:border-box!important;overflow:hidden!important}
  .site-header .language-control select{font-size:16px!important;min-width:0!important;width:100%!important;color:#000!important;-webkit-text-fill-color:#000!important}
  .site-header .v107-search-launch{grid-column:3!important;width:42px!important;min-width:42px!important;height:42px!important;margin:0!important;position:static!important;transform:none!important}
  .site-header .menu-button{grid-column:4!important;width:48px!important;min-width:48px!important;height:48px!important;min-height:48px!important;margin:0!important;padding:8px!important;position:static!important}
  .site-nav{inset:88px 0 auto 0!important;max-height:calc(100dvh - 88px)!important}
  .enquiry-sticky{left:8px!important;min-height:48px!important;max-width:126px!important;padding:.58rem .58rem!important;border-radius:14px!important;line-height:1.05!important}
  .enquiry-sticky span{font-size:.76rem!important;font-weight:900!important}
  .v116-work-sticky{min-width:108px!important;max-width:116px!important;min-height:48px!important;padding:.58rem .48rem!important;border-radius:14px!important;line-height:1.05!important}
  .v116-work-sticky span{font-size:.76rem!important}
  .whatsapp-fab{right:8px!important;width:50px!important;height:50px!important;min-width:50px!important;min-height:50px!important}
  .whatsapp-fab span{display:none!important}
  body{padding-bottom:72px!important}.site-footer{padding-bottom:80px!important}
}
@media(max-width:390px){
  .site-header .nav-shell{grid-template-columns:minmax(136px,1fr) 98px 40px 46px!important;column-gap:5px!important}
  .site-header .brand img{width:150px!important}
  .site-header .language-control{width:98px!important;min-width:98px!important;max-width:98px!important}
  .site-header .v107-search-launch{width:40px!important;min-width:40px!important;height:40px!important}
  .site-header .menu-button{width:46px!important;min-width:46px!important;height:46px!important;min-height:46px!important}
  .enquiry-sticky{max-width:122px!important}.v116-work-sticky{min-width:104px!important;max-width:110px!important}
}
@media(max-width:360px){
  .site-header .nav-shell{grid-template-columns:minmax(128px,1fr) 92px 38px 44px!important;column-gap:4px!important;width:calc(100% - 14px)!important}
  .site-header .brand img{width:142px!important}
  .site-header .language-control{width:92px!important;min-width:92px!important;max-width:92px!important;padding-left:4px!important;padding-right:4px!important}
  .site-header .language-control select{font-size:15px!important}
  .site-header .v107-search-launch{width:38px!important;min-width:38px!important;height:38px!important}
  .site-header .menu-button{width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important}
  .enquiry-sticky{left:6px!important;max-width:116px!important;padding:.52rem .44rem!important}.enquiry-sticky span{font-size:.72rem!important}
  .v116-work-sticky{min-width:98px!important;max-width:102px!important;padding:.52rem .38rem!important}.v116-work-sticky span{font-size:.72rem!important}
  .whatsapp-fab{right:6px!important;width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important}
}
