.offensive-page{--os-paper:#eef1ec;--os-green:#3fbba3;background:#080d0b}.offensive-page .site-header{position:absolute}.os-hero{position:relative;min-height:760px;padding-top:88px;overflow:hidden;background:radial-gradient(circle at 78% 44%,rgba(39,159,89,.18),transparent 24%),linear-gradient(135deg,#0b120f 0%,#050907 75%)}.os-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(63,187,163,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(63,187,163,.055) 1px,transparent 1px);background-size:74px 74px;mask-image:linear-gradient(to bottom,#000,transparent 90%)}.os-hero-inner{position:relative;z-index:2;padding-top:40px}.breadcrumb{display:flex;gap:12px;font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:#637169}.breadcrumb b{font-weight:600;color:#a7b3ac}.os-title{margin-top:105px}.os-title h1{font-family:var(--display);font-size:clamp(64px,8vw,112px);line-height:.9;letter-spacing:-.065em;margin:0;max-width:880px}.os-title h1 em{font-style:normal;color:var(--green)}.os-title>p:not(.eyebrow){font-size:19px;color:#acb7b1;max-width:580px;margin:30px 0}.hero-meta{position:absolute;right:0;bottom:-108px;display:flex;gap:8px}.hero-meta span{border:1px solid rgba(255,255,255,.14);font-size:8px;letter-spacing:.14em;color:#7e8b84;padding:8px 11px}.os-orbit{position:absolute;width:520px;height:520px;border:1px solid rgba(63,187,163,.15);border-radius:50%;right:-130px;top:145px}.os-orbit:before,.os-orbit:after,.os-orbit i{content:"";position:absolute;border:1px solid rgba(63,187,163,.12);border-radius:50%;inset:45px}.os-orbit:after{inset:110px}.os-orbit i:nth-child(1){width:10px;height:10px;inset:auto;top:51px;left:109px;background:var(--green);border:0;box-shadow:0 0 20px var(--green)}.os-orbit i:nth-child(2){width:5px;height:5px;inset:auto;bottom:110px;left:29px;background:var(--green);border:0}.os-orbit i:nth-child(3){inset:180px}.os-orbit span{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--display);font-size:72px;color:rgba(63,187,163,.12)}
.os-overview{background:var(--os-paper);color:var(--ink)}.overview-grid{display:grid;grid-template-columns:210px 1fr;gap:60px}.offensive-page .os-overview .section-index,.offensive-page .os-services .section-index,.offensive-page .deliverables .section-index{color:#138448}.overview-grid h2,.os-section-heading h2,.method-intro h2,.engagement-head h2,.faq-intro h2,.assessment-inner h2{font-family:var(--display);font-size:clamp(44px,5vw,67px);line-height:1;letter-spacing:-.05em;margin:0}.overview-grid h2 em,.os-section-heading h2 em,.method-intro h2 em,.engagement-head h2 em,.faq-intro h2 em,.assessment-inner h2 em{font-style:normal;color:#168b76}.overview-copy{display:grid;grid-template-columns:1fr 1fr;gap:45px;border-top:1px solid #bdc5c0;margin-top:50px;padding-top:28px;color:#525d57}.overview-copy p{margin:0;line-height:1.75}
.os-services{background:#e5e9e3;color:var(--ink);padding-top:30px}.os-section-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:62px}.os-section-heading>span{max-width:370px;color:#5f6963;line-height:1.7}.os-card-grid{display:grid;grid-template-columns:repeat(3,1fr);border-left:1px solid #b8c1bb;border-top:1px solid #b8c1bb}.os-card{min-height:390px;padding:30px;display:flex;flex-direction:column;border-right:1px solid #b8c1bb;border-bottom:1px solid #b8c1bb;transition:transform .25s,background .25s}.os-card:hover{background:#fff;transform:translateY(-6px)}.os-card.featured{background:#101713;color:#fff}.os-card.featured:hover{background:#131e18}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:auto}.card-top>span{font-family:var(--display);font-size:10px;color:#68736d}.os-card.featured .card-top>span{color:var(--green)}.os-card h3{font-family:var(--display);font-size:29px;line-height:1.05;letter-spacing:-.035em;margin:35px 0 15px}.os-card>p{font-size:14px;line-height:1.7;color:#657069;margin:0}.os-card.featured>p{color:#9ba7a0}.mini-icon{height:25px;display:flex;gap:3px;align-items:flex-end}.mini-icon i{width:5px;background:#198d50}.mini-icon i:nth-child(1){height:12px}.mini-icon i:nth-child(2){height:19px}.mini-icon i:nth-child(3){height:25px}.crosshair{width:27px;height:27px;border:1px solid #17894d;border-radius:50%;position:relative}.crosshair:before,.crosshair:after{content:"";position:absolute;background:#17894d}.crosshair:before{width:1px;height:35px;left:13px;top:-5px}.crosshair:after{height:1px;width:35px;top:13px;left:-5px}.diamond-icon,.code-icon,.cloud-icon{font-family:var(--display);font-size:27px;color:#17914f}.os-card.featured .diamond-icon{color:var(--green)}.code-icon{font-size:16px;font-weight:700}.network-icon{position:relative;width:30px;height:27px}.network-icon i{position:absolute;width:6px;height:6px;background:#17894d;border-radius:50%}.network-icon i:nth-child(1){left:12px}.network-icon i:nth-child(2){left:0;bottom:0}.network-icon i:nth-child(3){right:0;bottom:0}.network-icon i:nth-child(4){left:12px;bottom:5px}.network-icon:before,.network-icon:after{content:"";position:absolute;top:6px;width:1px;height:20px;background:#17894d;transform-origin:top}.network-icon:before{left:13px;transform:rotate(35deg)}.network-icon:after{right:13px;transform:rotate(-35deg)}.subservices{display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:18px 0 0;list-style:none}.subservices li{font-size:9px;text-transform:uppercase;letter-spacing:.07em;padding:6px 8px;border:1px solid #bac2bd}
.method{background:#0a100d}.method-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:100px}.method-intro{position:sticky;top:50px;align-self:start}.method-intro h2 em{color:var(--green)}.method-intro>p:not(.section-index){color:#909c95;line-height:1.75;margin:28px 0}.standards{display:flex;gap:7px;flex-wrap:wrap}.standards span{border:1px solid rgba(255,255,255,.15);font-size:9px;letter-spacing:.11em;padding:7px 9px;color:#8b9790}.method-steps{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.method-steps li{display:grid;grid-template-columns:58px 1fr;gap:25px;padding:27px 0;border-bottom:1px solid var(--line)}.method-steps li>span{font-family:var(--display);font-size:10px;color:var(--green);padding-top:5px}.method-steps h3{font-family:var(--display);font-size:20px;margin:0 0 5px}.method-steps p{font-size:13px;color:#818d86;margin:0}
.deliverables{background:var(--os-paper);color:var(--ink)}.deliverable-list{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #bcc4bf;border-left:1px solid #bcc4bf}.deliverable-list>div{min-height:220px;padding:27px;border-right:1px solid #bcc4bf;border-bottom:1px solid #bcc4bf}.deliverable-list b{font-family:var(--display);font-size:9px;color:#168b76}.deliverable-list h3{font-family:var(--display);font-size:18px;margin:52px 0 7px}.deliverable-list p{font-size:13px;color:#69736d;line-height:1.6;margin:0}
.engagement{background:#dfe4dd;color:var(--ink)}.engagement-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:75px}.engagement-head .section-index{color:#17884d}.engagement-track{display:grid;grid-template-columns:repeat(5,1fr)}.engagement-track>div{position:relative;padding-right:25px}.engagement-track span{font-family:var(--display);font-size:10px;color:#168b76}.engagement-track i{display:block;width:100%;height:1px;background:#aab5ae;margin:18px 0 25px;position:relative}.engagement-track i:before{content:"";width:9px;height:9px;background:#168b76;border-radius:50%;position:absolute;top:-4px;left:0}.engagement-track h3{font-family:var(--display);font-size:19px;margin:0 0 8px}.engagement-track p{font-size:13px;color:#657069;line-height:1.6;margin:0}
.faq{background:#0a100d}.faq-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:100px}.faq-intro h2 em{color:var(--green)}.faq-intro>p:not(.section-index){color:#818c86;max-width:360px;margin-top:25px}.faq-list{border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line);padding:23px 0}.faq-list summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px;font-family:var(--display);font-size:17px}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{font-size:20px;color:var(--green);transition:.2s}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details p{color:#8e9992;font-size:14px;line-height:1.7;max-width:680px;margin:18px 40px 2px 0}
.assessment-cta{position:relative;background:var(--green);color:var(--ink);overflow:hidden}.assessment-inner{position:relative;display:grid;grid-template-columns:1.25fr .75fr;gap:100px;padding:100px 0;align-items:end}.assessment-inner .section-index{color:#155f39}.assessment-inner h2 em{color:#fff}.assessment-inner>div:last-child>p{color:#275e43;line-height:1.7}.assessment-inner .btn{margin-top:20px}
@media(max-width:950px){.os-orbit{opacity:.5;right:-260px}.overview-grid{grid-template-columns:1fr}.os-card-grid{grid-template-columns:1fr 1fr}.method-grid,.faq-grid{grid-template-columns:1fr;gap:65px}.method-intro{position:static}.assessment-inner{gap:50px}.os-section-heading{gap:45px}.deliverable-list{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.os-hero{padding-top:72px;min-height:700px}.os-title{margin-top:80px}.os-title h1{font-size:57px}.os-title>p:not(.eyebrow){font-size:17px}.hero-meta{display:none}.os-orbit{width:350px;height:350px;right:-250px}.overview-grid{gap:25px}.overview-copy{grid-template-columns:1fr;gap:20px}.os-section-heading{display:block}.os-section-heading>span{display:block;margin-top:24px}.os-card-grid,.deliverable-list{grid-template-columns:1fr}.os-card{min-height:330px}.method-grid{gap:50px}.engagement-head{display:block}.engagement-track{grid-template-columns:1fr}.engagement-track>div{display:grid;grid-template-columns:35px 35px 1fr;gap:10px;padding:15px 0}.engagement-track i{width:1px;height:100%;min-height:58px;margin:0 15px}.engagement-track i:before{left:-4px;top:0}.engagement-track p{grid-column:3}.faq-grid{gap:45px}.assessment-inner{grid-template-columns:1fr;gap:30px;padding:80px 0}.assessment-inner h2{font-size:45px}}

/* Practice-specific imagery */
.os-hero{background-position:center;background-size:cover;background-repeat:no-repeat}
.os-orbit{opacity:.68}.os-grid{opacity:.7}
@media(max-width:650px){.os-hero{background-position:63% center}.os-orbit{opacity:.35}}

/* Each practice keeps the same hero treatment with its own visual subject. */
.offensive-page:not(.defensive-page):not(.grc-page) .os-hero{background-image:linear-gradient(90deg,rgba(4,9,7,.91) 0%,rgba(4,9,7,.65) 43%,rgba(4,9,7,.08) 78%),linear-gradient(0deg,#060b09 0%,transparent 34%),url('../assets/offensive-hero.png')}
.defensive-page .os-hero{background-image:linear-gradient(90deg,rgba(4,9,7,.91) 0%,rgba(4,9,7,.65) 43%,rgba(4,9,7,.08) 78%),linear-gradient(0deg,#060b09 0%,transparent 34%),url('../assets/defensive-hero.png')}
.grc-page .os-hero{background-image:linear-gradient(90deg,rgba(4,9,7,.91) 0%,rgba(4,9,7,.65) 43%,rgba(4,9,7,.08) 78%),linear-gradient(0deg,#060b09 0%,transparent 34%),url('../assets/grc-hero.png')}
.offensive-page .os-hero{background-color:#08120f;background-blend-mode:normal}
.os-overview.section{padding-top:65px}
.os-orbit{display:none}
@media(max-width:650px){.os-hero{background-position:63% center}}

/* Refined practice pages */
.os-hero{min-height:790px}
.os-hero:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,#080d0b,transparent 24%)}
.os-hero-inner{z-index:3}
.os-title{margin-top:112px;max-width:750px}
.os-title h1{font-size:clamp(64px,8vw,110px);text-wrap:balance}
.os-title>p:not(.eyebrow){color:#cdd9d0;line-height:1.7}
.breadcrumb,.detail-breadcrumb{color:#9cab9d}
.os-card{transition:background .25s,border-color .25s,transform .25s}
.os-card:hover{transform:translateY(-5px);border-color:rgba(63,187,163,.45)}
.os-card h3{text-wrap:balance}
.hero-meta{bottom:-88px}
@media(max-width:950px){.os-title{margin-top:95px}}
@media(max-width:650px){.os-hero{min-height:720px}.os-title{margin-top:78px}.os-title h1{font-size:clamp(54px,13vw,72px)}.os-card:hover{transform:none}}

/* Contrast for practice pages. */
.offensive-page .os-overview .section-index,.offensive-page .os-services .section-index,.offensive-page .deliverables .section-index,.engagement-head .section-index{color:var(--green-dark)}
.os-card>p,.deliverable-list p,.engagement-track p,.os-section-heading>span{color:#505d56}
.card-top>span,.tool-card i{color:#505d56}
.assessment-inner .section-index,.assessment-inner>div:last-child>p{color:#073f35}
.assessment-inner h2 em{color:#073f35;text-decoration:underline;text-decoration-color:rgba(255,255,255,.68);text-decoration-thickness:.055em;text-underline-offset:.08em}

/* A wider hero frame lets the message and subject image breathe. */
.os-hero{min-height:730px;background-size:cover,cover,max(90%, 1500px) auto;background-repeat:no-repeat}
.os-title{margin-top:88px;max-width:720px}
.os-title h1{font-size:clamp(58px,6.6vw,92px);line-height:.96}
@media(max-width:950px){.os-title{margin-top:78px}.os-hero{background-size:cover,cover,auto 94%}}
@media(max-width:650px){.os-hero{min-height:680px;background-size:cover,cover,auto 88%}.os-title{margin-top:62px}.os-title h1{font-size:clamp(46px,11vw,62px)}}

/* Tint the artwork itself while keeping hero text and the logo untouched. */
.offensive-page:not(.defensive-page):not(.grc-page) .os-hero,.defensive-page .os-hero,.grc-page .os-hero{background-image:none}
.os-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background-color:#08120f;background-position:center;background-size:cover,cover,max(90%, 1500px) auto;background-repeat:no-repeat;filter:hue-rotate(38deg) saturate(.78)}
.offensive-page:not(.defensive-page):not(.grc-page) .os-hero::before{background-image:linear-gradient(90deg,rgba(4,9,7,.91) 0%,rgba(4,9,7,.65) 43%,rgba(4,9,7,.08) 78%),linear-gradient(0deg,#060b09 0%,transparent 34%),url('../assets/offensive-hero.png')}
.defensive-page .os-hero::before{background-image:linear-gradient(90deg,rgba(4,9,7,.91) 0%,rgba(4,9,7,.65) 43%,rgba(4,9,7,.08) 78%),linear-gradient(0deg,#060b09 0%,transparent 34%),url('../assets/defensive-hero.png')}
.grc-page .os-hero::before{background-image:linear-gradient(90deg,rgba(4,9,7,.91) 0%,rgba(4,9,7,.65) 43%,rgba(4,9,7,.08) 78%),linear-gradient(0deg,#060b09 0%,transparent 34%),url('../assets/grc-hero.png')}
@media(max-width:950px){.os-hero::before{background-size:cover,cover,auto 94%}}
@media(max-width:650px){.os-hero::before{background-position:63% center;background-size:cover,cover,auto 88%}}

/* Stronger reading contrast across practice pages. */
.overview-copy,.os-section-heading>span,.os-card>p,.deliverable-list p,.engagement-track p,.card-top>span{color:var(--text-on-light)}
.os-overview h2 em,.os-services h2 em,.deliverables h2 em,.engagement h2 em,.deliverable-list b,.engagement-track span{color:var(--link-on-light)}
.overview-copy,.os-card-grid,.os-card,.deliverable-list,.deliverable-list>div,.subservices li{border-color:var(--border-on-light)}
.os-card.featured>p,.method-intro>p:not(.section-index),.standards span,.method-steps p,.faq-intro>p:not(.section-index),.faq-list details p,.hero-meta span{color:var(--text-on-dark)}
.os-card.featured .card-top>span{color:var(--green)}
.card-top>span,.subservices li,.deliverable-list b,.engagement-track span,.hero-meta span{font-size:11px}
