:root{--navy:#031e40;--blue:#287df0;--red:#e72114;--ink:#062b5a;--body-blue:#15538a;--paper:#f7f9fb;--gutter:clamp(1.5rem,5.75vw,7rem)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-padding-top:1.5rem;background:var(--navy)}
body{font-family:Inter,Arial,sans-serif;font-size:1rem;line-height:1.55;color:var(--ink);background:var(--paper);-webkit-text-size-adjust:100%;overflow-wrap:anywhere}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:.25em}
a:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:6px}
img{display:block;max-width:100%;object-fit:cover}
h1,h2{font-family:'Playfair Display',Georgia,serif;font-weight:700;line-height:1.08;letter-spacing:-.025em;text-wrap:balance}
h1 span,h2 span{color:var(--blue)}
p{max-width:65ch}
.icon{display:block;width:3.7rem;height:3.7rem;object-fit:contain;flex:none;color:#0763cc}
.icon svg{width:100%;height:100%}
.skip-link{position:absolute;left:1rem;top:-5rem;background:white;color:var(--ink);padding:1rem;z-index:100}
.skip-link:focus{top:1rem}
.client-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.4rem 1.5rem;padding:.55rem var(--gutter);background:#001732;color:#e8eef8;font-size:.875rem}
.client-links span{color:#b0c3dc}
.eyebrow{font-size:.875rem;line-height:1.4;font-weight:700;letter-spacing:.1em;color:#506b91}
.hero-eyebrow{color:#c9dcf4;margin-bottom:1.3rem}
.hero-industries{font-size:1rem;color:#c9dcf4;margin-top:1.5rem}
#nav{min-height:106px;padding:0 var(--gutter);display:flex;flex-wrap:wrap;align-items:center;gap:0 5rem;background:var(--navy);color:white}
#nav-logo{flex:none;display:block}
#nav-logo-logo{width:168px;height:100px;object-fit:cover}
#nav-links{display:flex;flex-wrap:wrap;gap:0 2.5rem;align-items:center;font-size:1.1875rem;white-space:nowrap}
#nav-links a{padding:1rem 0}
#nav-contact{margin-left:auto;display:flex;align-items:center;gap:.8rem;white-space:nowrap;font-size:1.125rem}
#nav-contact .icon{width:1.5rem;height:1.5rem;color:white}
.mobile-menu{display:none}
#hero{display:grid;grid-template-columns:1fr 1fr;background:var(--navy);color:white;min-height:575px}
#hero-copy{padding:3.5rem 4rem 2.5rem var(--gutter);align-self:center}
#hero-copy-heading{font-size:clamp(2.4rem,4.25vw,4.1rem);max-width:610px}
#hero-copy-text{font-size:clamp(1rem,1.44vw,1.4rem);line-height:1.5;margin-top:1.6rem;max-width:550px;color:#edf3fb}
#hero-cta{margin-top:1.7rem}
#hero-cta-button,#contact-call-button,#contact-message-button{display:inline-flex;align-items:center;justify-content:center;min-height:3.6rem;padding:1rem 1.7rem;border-radius:.55rem;background:var(--red);color:white;font-size:1.0625rem;font-weight:600;transition:background .15s}
#hero-cta-button:hover,#contact-call-button:hover{background:#c41b10;text-decoration:none}
#hero-media{min-width:0;min-height:100%}
#hero-media-photo{width:100%;height:100%;max-height:680px;object-fit:cover}
#needs{padding:2.25rem var(--gutter) 3.5rem;background:var(--paper)}
#needs-heading-text,#solutions-hero-copy-text,#approach-copy-text{font-size:.875rem;line-height:1.4;font-weight:700;letter-spacing:.11em;color:#506b91}
#needs-source-row-2{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(2rem,6vw,7rem);margin-top:1.7rem}
#needs-source-row-2 article{min-width:0}
#needs-card-1-icon{color:var(--red)}
#needs-source-row-2 h2{font-size:clamp(1.55rem,2.15vw,2.0625rem);margin:1rem 0 .8rem}
#needs-source-row-2 p{font-size:1.25rem;line-height:1.5;color:var(--body-blue);max-width:380px}
#how-we-help{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #dce4ed;background:#fff;min-height:505px}
#solutions-hero-copy{padding:3.6rem 3rem 3rem var(--gutter);align-self:center}
#solutions-hero-copy-heading{font-size:clamp(2.25rem,3.65vw,3.6rem);margin:1.1rem 0 1.7rem;max-width:660px}
#solutions-hero-copy-text-2{font-size:1.125rem;color:#315879;max-width:550px}
#solutions-hero-photo{min-height:100%;min-width:0}
#solutions-hero-photo-photo{width:100%;height:100%;object-position:48% center}
#solutions-outcomes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(2rem,6vw,7rem);padding:3rem var(--gutter) 4rem;background:var(--navy);color:white}
#solutions-outcomes>article{display:flex;flex-direction:column;min-width:0}
#solutions-outcomes .icon{width:5rem;height:5rem}
#solutions-outcomes h2{font-size:clamp(1.6rem,2.2vw,2.2rem);margin:.9rem 0 1.2rem}
#solutions-outcomes p{font-size:1.0625rem;line-height:1.6;color:#edf3fb;margin-bottom:1.4rem}
#solutions-outcomes .divider{display:none}
#solutions-outcomes a{display:flex;gap:.8rem;justify-content:space-between;align-items:center;margin-top:auto;padding-top:1rem;border-top:1px solid #2374c8;font-size:.875rem;font-weight:600;min-height:3rem}
#solutions-outcomes a span{color:#ff665d;font-size:1.5rem}
#our-approach{display:grid;grid-template-columns:1fr 1fr;min-height:481px;background:var(--paper)}
#approach-panel{display:none}
#approach-copy{grid-column:1;grid-row:1;padding:2.75rem 4rem 2.75rem var(--gutter);align-self:center}
#approach-copy-heading{font-size:clamp(2.2rem,3.4vw,3.3rem);margin:1rem 0 1.3rem}
#approach-copy-text-2{font-size:1.0625rem;color:#315879;max-width:540px}
#approach-photo{grid-column:2;grid-row:1;width:100%;height:100%;object-position:70% center}
#about-rbs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3rem;padding:2rem var(--gutter) 3rem;background:#f8fbfe}
#about-rbs h2{font-size:clamp(1.45rem,1.95vw,1.9rem);margin:1rem 0 .9rem;max-width:270px}
#about-rbs p{font-size:1rem;color:#315879}
#about-rbs .icon{width:3.7rem;height:3.7rem}
#contact{position:relative;background:var(--navy);color:white;padding:2rem var(--gutter);overflow:hidden;display:grid;grid-template-columns:1fr 250px;gap:1.5rem 3rem}
#contact-source-row-1{display:contents}
#contact-headline{grid-column:1;grid-row:1 / span 2;border-left:2px solid var(--blue);padding-left:2rem;align-self:center}
#contact-headline-heading{font-size:clamp(1.8rem,2.5vw,2.5rem)}
#contact-copy{grid-column:1;grid-row:3;padding-left:2rem;max-width:650px}
#contact-copy-text{font-size:1rem;color:#edf3fb}
#contact .divider{display:none}
#contact-call{grid-column:2;grid-row:1;align-self:end}
#contact-message{grid-column:2;grid-row:2;align-self:start}
#contact-call-button,#contact-message-button{width:100%;min-height:3rem;font-size:1rem;padding:.8rem 1rem}
#contact-message-button{background:transparent;border:1px solid #4195fa;font-family:inherit;opacity:.65;cursor:not-allowed}
#contact-call-icon,#contact-message-icon{display:none}
#contact-source-row-1-decoration{position:absolute;right:-3rem;bottom:0;width:150px;opacity:.6;pointer-events:none}
#footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:3rem;padding:1rem var(--gutter);background:#001732;color:#e8eef8}
#footer-brand{display:flex;align-items:center;gap:1.1rem;max-width:330px}
#footer-brand-logo{width:125px;height:80px;object-fit:cover;flex:none}
.business-name{font-size:.8125rem;line-height:1.5}
#footer-nav{display:flex;flex-wrap:wrap;gap:.4rem 1.5rem;font-size:.875rem;max-width:460px}
#footer-nav a{padding:.75rem 0;white-space:nowrap}
#footer-contact{display:flex;gap:.65rem;align-items:center;white-space:nowrap;font-size:1rem}
#footer-contact .icon{width:1.2rem;height:1.2rem;color:white}
.content-section{padding:4rem var(--gutter);background:white}
.section-intro{display:grid;grid-template-columns:1fr 1fr;column-gap:4rem;align-items:end;margin-bottom:2.5rem}
.section-intro .eyebrow{grid-column:1 / -1;margin-bottom:1rem}
.section-intro h2,.cmmc-intro h2{font-size:clamp(2.25rem,3.65vw,3.6rem)}
.section-intro>p:last-child{font-size:1.125rem;color:#315879}
.security-pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3.5rem}
.security-pillars article{border-top:2px solid var(--blue);padding-top:1.2rem}
.security-pillars h3,.industry-grid h3,.resource-link h3,.cmmc-steps h3{font-family:'Playfair Display',Georgia,serif;font-size:1.7rem;line-height:1.2;margin-bottom:.8rem}
.security-pillars .pillar-number{font-size:.875rem;letter-spacing:.09em;font-weight:600;color:var(--body-blue);margin-bottom:.7rem}
.security-pillars p,.industry-grid p{font-size:1rem;color:#315879}
.standards-note{max-width:none;margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid #dce4ed;font-size:1rem;color:#315879}
.standards-note a,.cmmc-note a{text-decoration:underline;text-underline-offset:.2em}
.cmmc-section{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem 5rem;background:var(--navy);color:white}
.cmmc-intro .eyebrow{color:#c9dcf4;margin-bottom:1rem}
.cmmc-intro>p:not(.eyebrow){font-size:1.125rem;color:#edf3fb;margin:1.5rem 0}
.section-cta{display:inline-flex;gap:1.2rem;align-items:center;border:1px solid #4195fa;border-radius:.4rem;padding:.9rem 1.2rem;font-size:1rem;font-weight:600}
.section-cta:hover{background:#123867;text-decoration:none}
.cmmc-steps{list-style:none;counter-reset:cmmc;display:grid;gap:1.5rem}
.cmmc-steps li{counter-increment:cmmc;position:relative;padding-left:3rem}
.cmmc-steps li:before{content:'0' counter(cmmc);position:absolute;left:0;top:.2rem;font-size:1rem;color:#80b8ff;font-weight:600}
.cmmc-steps h3{font-size:1.5rem;margin-bottom:.5rem}
.cmmc-steps p{font-size:1rem;color:#edf3fb}
.cmmc-note{grid-column:1 / -1;border-top:1px solid #234b78;padding-top:1.5rem;max-width:none;font-size:.875rem;color:#c9dcf4}
.industries-section{background:#edf4fb}
.industry-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2rem}
.industry-grid article{border-top:2px solid #94bfe9;padding-top:1.2rem}
.industry-grid h3{font-size:1.5rem}
.partner-grid{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.partner-grid li{display:flex;flex-direction:column;justify-content:center;gap:.3rem;min-height:112px;padding:1.25rem 1.5rem;border:1px solid #dce4ed;background:var(--paper)}
.partner-grid strong{font-size:1.6rem;line-height:1.2;letter-spacing:-.02em}
.partner-grid span{font-size:.875rem;color:#506b91}
.partner-grid .gold-partner{grid-row:span 2;border-color:#b78b33;background:#fffaf0;border-top:4px solid #b78b33}
.gold-partner strong{color:#c42019}.gold-partner span{color:#7b5815;font-weight:700}
.resources-section{display:grid;grid-template-columns:.85fr 1fr 1fr;gap:2.5rem;background:#edf4fb;align-items:center}
.resources-section h2{font-size:2.6rem;margin-top:.8rem}
.resource-link{display:block;border-left:2px solid var(--blue);padding:.5rem 0 .5rem 1.5rem}
.resource-link h3{display:flex;justify-content:space-between;gap:1rem;font-size:1.5rem}
.resource-link h3 span{color:var(--red)}
.resource-link p{font-size:1rem;color:#315879}
.resource-domain{display:block;margin-top:.6rem;font-size:.875rem;color:var(--body-blue)}
@media(min-width:1280px){
  #contact{grid-template-columns:1.2fr 1fr 250px;align-items:center;gap:3rem;min-height:180px}
  #contact-headline{grid-column:1;grid-row:1 / span 2}
  #contact-copy{grid-column:2;grid-row:1 / span 2;border-left:1px solid #234b78}
  #contact-call{grid-column:3;grid-row:1}
  #contact-message{grid-column:3;grid-row:2;margin-top:-2.3rem}
}
@media(max-width:1100px){
  .security-pillars{gap:2rem}.cmmc-section{gap:2.5rem}.industry-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.resources-section{grid-template-columns:1fr 1fr}.resources-section>div{grid-column:1 / -1}
  #nav{gap:2rem}#nav-links{gap:1.5rem;font-size:.9375rem}#nav-contact{font-size:1rem}
  #hero-copy{padding-right:2rem}#hero-copy-heading{font-size:3rem}
  #hero{min-height:540px}#solutions-hero-copy,#approach-copy{padding-right:2rem}
  #about-rbs{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.5rem}
  #footer{flex-wrap:wrap;gap:1rem 2rem}#footer-nav{gap:1.5rem}
}
@media(max-width:767px){
  .content-section{padding:2.75rem var(--gutter)}.section-intro{grid-template-columns:1fr;gap:1.25rem;margin-bottom:2rem}.section-intro .eyebrow{margin-bottom:0}.section-intro>p:last-child{font-size:1rem}
  .security-pillars,.cmmc-section,.resources-section{grid-template-columns:1fr;gap:2rem}.cmmc-intro>p:not(.eyebrow){font-size:1rem}.cmmc-steps li{padding-left:2.5rem}
  .industry-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr));gap:1.5rem}.partner-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr))}.partner-grid .gold-partner{grid-row:auto;grid-column:1 / -1}.partner-grid li{padding:1.1rem;min-height:100px}.partner-grid strong{font-size:1.4rem}
  .client-links{justify-content:center;gap:.25rem 1.2rem;padding:.65rem 1rem}.client-links span{display:none}
  #nav{min-height:86px;gap:1rem;padding:0 1.25rem}#nav-logo-logo{width:108px;height:76px}
  #nav-links{display:none}#nav-contact{font-size:.875rem;gap:0}#nav-contact .icon{display:none}
  .mobile-menu{display:block;position:relative;z-index:20;color:white}
  .mobile-menu summary{padding:.75rem .3rem;cursor:pointer;font-size:.875rem;font-weight:600;list-style:none}
  .mobile-menu summary::-webkit-details-marker{display:none}
  .mobile-menu summary:after{content:' ☰'}
  .mobile-menu[open] summary:after{content:' ×'}
  .mobile-menu nav{position:absolute;right:0;top:100%;width:230px;background:white;color:var(--ink);border:1px solid #dce4ed;border-radius:.4rem;box-shadow:0 12px 25px #0002;padding:.5rem}
  .mobile-menu nav a{display:block;padding:.8rem;font-size:1rem}
  #hero{display:flex;flex-direction:column;min-height:0}
  #hero-copy{padding:2.25rem var(--gutter) 2.4rem;align-self:stretch}
  #hero-copy-heading{font-size:clamp(2.35rem,7vw,3.4rem);max-width:600px}
  #hero-copy-text{font-size:1rem;margin-top:1.4rem}
  #hero-cta-button{font-size:1rem;padding:.9rem 1.2rem;min-height:3.4rem}
  #hero-media{height:290px;min-height:0}#hero-media-photo{height:100%;object-position:center}
  #needs{padding:2rem var(--gutter) 2.5rem}
  #needs-source-row-2{grid-template-columns:1fr;gap:2rem}
  #needs-source-row-2 article{display:grid;grid-template-columns:3rem minmax(0,1fr);gap:.5rem 1.2rem}
  #needs-source-row-2 .icon{width:3rem;height:3rem;grid-column:1;grid-row:1 / span 2}
  #needs-source-row-2 h2{font-size:1.65rem;margin:0;grid-column:2}
  #needs-source-row-2 p{font-size:1rem;grid-column:2;max-width:none}
  #how-we-help{display:flex;flex-direction:column;min-height:0}
  #solutions-hero-copy{padding:2.75rem var(--gutter)}
  #solutions-hero-copy-heading{font-size:2.45rem;margin-bottom:1.25rem}
  #solutions-hero-copy-text-2{font-size:1rem}
  #solutions-hero-photo{height:280px;min-height:0}
  #solutions-outcomes{grid-template-columns:1fr;gap:2.75rem;padding:2.5rem var(--gutter)}
  #solutions-outcomes h2{font-size:1.9rem;max-width:400px}
  #solutions-outcomes .icon{width:4.2rem;height:4.2rem}
  #solutions-outcomes p{font-size:1rem}
  #our-approach{display:flex;flex-direction:column;min-height:0}
  #approach-copy{order:-1;padding:2.5rem var(--gutter);align-self:stretch}
  #approach-copy-heading{font-size:2.5rem}#approach-copy-text-2{font-size:1rem}
  #approach-photo{height:270px}
  #about-rbs{padding:2.5rem var(--gutter);gap:2.2rem 1.5rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,8rem),1fr))}
  #about-rbs h2{font-size:1.5rem}#about-rbs .icon{width:3rem;height:3rem}
  #contact{display:flex;flex-direction:column;gap:1.2rem;padding:2.5rem var(--gutter)}
  #contact-headline{align-self:stretch;padding-left:1.1rem}#contact-headline-heading{font-size:2rem}
  #contact-copy{padding-left:1.1rem}#contact-call,#contact-message{align-self:stretch}
  #contact-call{margin-top:.4rem}#contact-source-row-1-decoration{display:none}
  #footer{padding:1.5rem var(--gutter);flex-direction:column;align-items:flex-start;gap:1.25rem}
  #footer-brand-logo{width:108px;height:76px}#footer-nav{flex-wrap:wrap;gap:1.3rem}
}
@media(max-width:380px){#nav{gap:.6rem;padding:0 1rem}#nav-logo-logo{width:90px}#nav-contact{font-size:.8125rem}#about-rbs{grid-template-columns:1fr}#hero-copy-heading{font-size:2.2rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}a{transition:none}}
