/* Final visual system: premium red / black / white */
:root{
  --ez-black:#0b0b0c;
  --ez-charcoal:#17181b;
  --ez-graphite:#282a2f;
  --ez-white:#ffffff;
  --ez-paper:#f4f1ed;
  --ez-soft:#e7e2dc;
  --ez-muted:#565a61;
  --ez-red:#c9182b;
  --ez-red-bright:#ef3340;
  --ez-red-deep:#8f1020;
  --ez-line:#d3cdc6;
  --ink:var(--ez-black)!important;
  --paper:var(--ez-paper)!important;
  --hot:var(--ez-red)!important;
  --acid:var(--ez-red)!important;
  --orange:var(--ez-red)!important;
  --lime:var(--ez-red)!important;
  --blue:var(--ez-red-deep)!important;
}

html,body{background:var(--ez-paper)!important;color:var(--ez-black)!important}
body:before{
  opacity:1!important;
  background:
    radial-gradient(circle at 84% 9%,rgba(201,24,43,.08),transparent 28rem),
    radial-gradient(circle at 8% 76%,rgba(11,11,12,.04),transparent 26rem)!important;
}

/* Header */
.site-header{background:rgba(255,255,255,.97)!important;color:var(--ez-black)!important;border-bottom:1px solid #ded9d3!important}
.brand,.nav-links a{color:var(--ez-black)!important}
.brand-dot{background:var(--ez-red)!important;box-shadow:0 0 0 7px rgba(201,24,43,.09)!important}
.nav-links a:hover{color:var(--ez-red-deep)!important;border-color:var(--ez-red)!important}

/* Buttons */
.button-dark{background:var(--ez-black)!important;color:#fff!important;border-color:var(--ez-black)!important}
.button-dark:hover{background:#29292d!important;color:#fff!important}
.button-orange{background:var(--ez-red)!important;color:#fff!important;border-color:var(--ez-red)!important}
.button-orange:hover{background:var(--ez-red-deep)!important;color:#fff!important}
.button-light{background:#fff!important;color:var(--ez-black)!important;border-color:var(--ez-black)!important}
.button-light:hover{background:#f0ece7!important;color:var(--ez-black)!important}
.button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline-color:var(--ez-red)!important}

/* Hero */
.hero{background:var(--ez-paper)!important;color:var(--ez-black)!important}
.hero h1,.hero h1 em,.hero-lede{color:var(--ez-black)!important}
.hero-sub,.hero-availability{color:#4c5057!important}
.hero-kicker span{background:#fff!important;color:var(--ez-black)!important;border-color:var(--ez-black)!important}
.hero-kicker span:last-child{background:var(--ez-red)!important;color:#fff!important;border-color:var(--ez-red)!important}
.hero:after{color:rgba(11,11,12,.038)!important}
.portrait-stage:before{color:var(--ez-red)!important;opacity:.92!important}
.portrait{background:var(--ez-black)!important;border-color:var(--ez-black)!important}
.portrait-badge{background:var(--ez-black)!important;color:#fff!important;border-color:var(--ez-black)!important}
.portrait-badge strong{color:#fff!important}
.portrait-badge span{color:#d9d9dc!important}

/* Shared typography */
.eyebrow,.eyebrow:before{color:var(--ez-red)!important}
.section-title{color:var(--ez-black)!important}
.body-copy{color:#4e5258!important}
.positioning-copy{color:var(--ez-black)!important}
.positioning-copy span{color:var(--ez-black)!important;background:linear-gradient(transparent 65%,rgba(201,24,43,.15) 65%)!important}

/* About */
.positioning{background:#fff!important;color:var(--ez-black)!important;border-top:1px solid #d9d4ce!important}
.solve-grid{background:var(--ez-black)!important;border-color:var(--ez-black)!important}
.solve-card{
  background:#fff!important;
  color:var(--ez-black)!important;
  border-color:var(--ez-black)!important;
  min-height:280px!important;
  padding:30px 32px 34px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  overflow:visible!important;
}
.solve-card:nth-child(odd),.solve-card:nth-child(even){padding:30px 32px 34px!important}
.solve-card:nth-child(2),.solve-card:nth-child(3){background:#f1eeea!important}
.solve-card b{color:var(--ez-red)!important;display:block!important;margin:0 0 34px!important;line-height:1.25!important}
.solve-card h3{color:var(--ez-black)!important;margin:0 0 14px!important;padding:0!important;line-height:1.06!important;overflow:visible!important}
.solve-card p{color:#454950!important;font-size:14px!important;line-height:1.64!important;margin:0!important;padding:0!important}
.solve-card:hover{background:#faeeee!important;transform:translateY(-3px)!important}
.solve-card:hover h3,.solve-card:hover p{color:var(--ez-black)!important}

/* Case studies */
.work{background:var(--ez-black)!important;color:#fff!important}
.work .section-title{color:#fff!important}
.work .eyebrow{color:#ff6c78!important}
.work .body-copy{color:#d7d7db!important}
.work .project-list,.work .work-list{color:var(--ez-black)!important}
.project-case{background:#fff!important;color:var(--ez-black)!important;border:1px solid #4a4a4f!important;box-shadow:none!important}
.project-case.is-open{box-shadow:0 18px 50px rgba(0,0,0,.28)!important}
.project-toggle{background:#fff!important;color:var(--ez-black)!important}
.project-toggle:hover{background:#f6f2ee!important;color:var(--ez-black)!important}
.project-index{color:var(--ez-red)!important}
.project-heading small{color:#666970!important}
.project-heading h3{color:var(--ez-black)!important}
.project-metric{background:#f0ece7!important;color:var(--ez-black)!important;border-color:#8b8680!important;font-size:10px!important}
.project-case.is-open .project-metric{background:var(--ez-red)!important;color:#fff!important;border-color:var(--ez-red)!important}
.project-action,.project-action-icon{color:var(--ez-black)!important;border-color:var(--ez-black)!important}
.project-case.is-open .project-action-icon{background:var(--ez-red)!important;color:#fff!important;border-color:var(--ez-red)!important}
.project-detail{background:#fff!important;color:var(--ez-black)!important;border-color:#bdb7b1!important}
.project-lede{color:var(--ez-black)!important}
.project-meta span{background:#f4f1ed!important;color:#2b2c30!important;border-color:#8a8580!important}
.project-objective,.project-note,.process-step,.visual-card{background:#f7f4f0!important;color:#24262a!important}
.project-objective,.project-note{border-left-color:var(--ez-red)!important}
.project-block h4{color:var(--ez-red-deep)!important}
.project-block p,.project-block ul,.project-note{color:#454950!important}
.process-step{border-color:#99938d!important;font-size:10px!important}
.process-step b{background:var(--ez-black)!important;color:#fff!important}
.tool-cloud span{background:#fff!important;color:#202226!important;border-color:#8c8782!important}
.outcome{background:var(--ez-black)!important;color:#fff!important;border-color:#55555a!important}
.outcome strong{color:#ff5b69!important}
.outcome span{color:#f1f1f3!important}
.visual-card-head{background:var(--ez-black)!important;color:#fff!important}
.visual-card-head small{color:#d8d8dc!important}
.analytics-row,.architecture-node,.evidence-card{background:#fff!important;color:#222428!important}
.analytics-row strong,.architecture-node small{color:var(--ez-red-deep)!important}
.analytics-row span,.architecture-node span{color:#4a4e55!important}
.roadmap-marker span{background:var(--ez-red)!important;color:#fff!important}
.roadmap-phase:nth-child(even) .roadmap-marker span{background:var(--ez-black)!important;color:#fff!important}
.roadmap-copy small{color:var(--ez-red-deep)!important}

/* Operating model */
.operating{background:#f2efeb!important;color:var(--ez-black)!important}
.framework-grid{border-color:var(--ez-black)!important}
.framework-stage{background:#fff!important;color:var(--ez-black)!important;border-color:var(--ez-black)!important}
.framework-stage:nth-child(even){background:#ece8e3!important}
.framework-stage b{color:var(--ez-red)!important}
.framework-stage h3{color:var(--ez-black)!important}
.framework-stage p{color:#454950!important}
.framework-stage span{color:#25282d!important}
.horizon{background:#fff!important;color:var(--ez-black)!important;border-color:#b9b3ad!important}
.horizon small{color:var(--ez-red)!important}
.horizon p{color:#454950!important}
/* Proof */
.proof{background:#fff!important;color:var(--ez-black)!important}
.media-proof,.stack-group{background:#f7f4f0!important;color:var(--ez-black)!important;border:1px solid #c5bfb8!important}
.media-proof-copy small{color:var(--ez-red)!important}
.media-proof-copy p,.stack-group p{color:#44484f!important}
.stack-group strong{color:var(--ez-black)!important}

/* Recommendations */
.voice{background:var(--ez-charcoal)!important;color:#fff!important}
.voice .section-title{color:#fff!important}
.voice .eyebrow{color:#ff6370!important}
.voice .body-copy{color:#d7d7da!important}
.recommendation-card{background:#fff!important;color:var(--ez-black)!important;border:1px solid #fff!important;box-shadow:0 12px 34px rgba(0,0,0,.18)!important}
.recommendation-card blockquote{color:var(--ez-black)!important}
.recommendation-name{color:var(--ez-red-deep)!important}
.recommendation-role{color:#5b5e64!important}
.recommendation-link{color:var(--ez-red-deep)!important;font-weight:800!important}
.recommendation-card:hover,.recommendation-card:hover blockquote,.recommendation-card:hover .recommendation-name,.recommendation-card:hover .recommendation-role{color:var(--ez-black)!important}

/* Fit */
.fit{background:var(--ez-paper)!important;color:var(--ez-black)!important}
.fit-panel{color:var(--ez-black)!important;border-color:#8f8983!important}
.fit-panel h3{color:var(--ez-black)!important}
.fit-panel p{color:#484c52!important}

/* Contact */
.contact{background:var(--ez-red-deep)!important;color:#fff!important}
.contact .section-title,.contact .email{color:#fff!important}
.contact .eyebrow{color:#ffabb2!important}
.contact .body-copy{color:#f1e7e8!important}
.form{background:#fff!important;color:var(--ez-black)!important;border:0!important;box-shadow:0 22px 60px rgba(0,0,0,.24)!important}
.field label{color:var(--ez-black)!important;font-weight:800!important}
.field input,.field textarea{background:#fff!important;color:var(--ez-black)!important;border-color:#79746f!important}
.form-help,.status{color:#555960!important}
.footer{background:var(--ez-black)!important;color:#d7d7da!important}

/* Universal interaction contrast guards */
[aria-selected="true"],[aria-pressed="true"],.active,.is-active{color:#fff!important}
[aria-selected="true"] *,[aria-pressed="true"] *,.active *,.is-active *{color:inherit!important}
.hero-kicker span[aria-pressed="true"],.hero-kicker span.active{background:var(--ez-red)!important;color:#fff!important;border-color:var(--ez-red)!important}
.project-case.is-open .project-toggle,.project-case.is-open .project-toggle *{color:var(--ez-black)!important}
.project-case.is-open .project-metric,.project-case.is-open .project-action-icon{color:#fff!important}
a:hover strong,a:hover span,a:hover small,button:hover strong,button:hover span,button:hover small{color:inherit}

/* Prevent any old lime/blue artifacts from surviving */
.impact-item strong,.impact-stat strong,.evidence-card:hover,.recommendation-card:hover{color:inherit!important}
.evidence-card:hover{background:#f2e7e8!important;color:var(--ez-black)!important}
.evidence-card:hover *{color:inherit!important}

@media (min-width:900px){
  .project-heading small,.project-metric,.project-action,.project-block h4,.project-meta span,.outcome span,.visual-card-head>span,.visual-card-head small{font-size:10px!important}
}

@media (max-width:900px){
  .solve-card:nth-child(2),.solve-card:nth-child(3),.framework-stage:nth-child(even){background:#fff!important}
  .solve-card,.solve-card:nth-child(odd),.solve-card:nth-child(even){padding:26px!important;min-height:auto!important}
  .solve-card b{margin-bottom:24px!important}
  .project-detail-inner{padding:26px 22px!important}
}

/* Hero portrait: deliberately crop below the upper torso so the left hand and wedding ring cannot enter frame. */
.portrait img{
  object-position:center top!important;
  transform:scale(1.52);
  transform-origin:center top;
}
@media (max-width:820px){
  .portrait img{transform:scale(1.58)}
}
@media (max-width:560px){
  .portrait img{transform:scale(1.64)}
}

/* Definitive hero crop: the source photo contains a wedding ring lower in frame. Keep only head + shoulders. Higher specificity intentionally overrides the inline legacy zoom rules. */
.hero .portrait-stage .portrait{
  aspect-ratio:1 / 1.08!important;
  overflow:hidden!important;
}
.hero .portrait-stage .portrait img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center 8%!important;
  transform:scale(1.16)!important;
  transform-origin:center 8%!important;
}
@media (max-width:820px){
  .hero .portrait-stage .portrait{aspect-ratio:1 / 1.04!important}
  .hero .portrait-stage .portrait img{object-position:center 6%!important;transform:scale(1.2)!important}
}
@media (max-width:560px){
  .hero .portrait-stage .portrait{aspect-ratio:1 / 1!important}
  .hero .portrait-stage .portrait img{object-position:center 5%!important;transform:scale(1.24)!important}
}
