/* ROCK3T Group Inc — restrained navy / charcoal / white.
   Layout: white editorial pages with full-bleed photographic page heads, navy bands for credentials and calls to action. */
:root{
  --navy:#0E2240;        /* primary brand, bands, buttons */
  --navy-2:#173561;      /* hover, secondary */
  --charcoal:#22262D;    /* body text */
  --slate:#566170;       /* secondary text (AA on white) */
  --line:#DCE1E8;        /* hairlines */
  --mist:#F3F5F8;        /* tinted sections */
  --white:#FFFFFF;
  --on-navy:#C9D3E2;     /* secondary text on navy (AA) */
  --focus:#2F6FD6;
  --todo-bg:#FFF6DB; --todo-line:#C99A06; --todo-ink:#5A4300;
  --f-head:"Archivo","Arial Narrow","Helvetica Neue",Arial,sans-serif;
  --f-body:"Source Sans 3","Segoe UI",system-ui,-apple-system,sans-serif;
  --maxw:1200px;
  --s1:.5rem;--s2:1rem;--s3:1.5rem;--s4:2rem;--s5:3rem;--s6:4.5rem;--s7:6.5rem;
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0}
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
body{background:var(--white);color:var(--charcoal);font-family:var(--f-body);font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;height:auto;display:block}
a{color:var(--navy)}
p{margin:0}
h1,h2,h3{font-family:var(--f-head);font-stretch:88%;color:var(--navy);line-height:1.12;margin:0;letter-spacing:-.005em;text-wrap:balance}
h2{font-size:clamp(1.75rem,3.2vw,2.5rem);font-weight:700}
h3{font-size:1.2rem;font-weight:700}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:16px;top:-60px;z-index:100;background:var(--navy);color:var(--white);padding:.7rem 1rem;font-weight:600}
.skip:focus{top:calc(env(safe-area-inset-top,0px) + 12px)}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.narrow{max-width:760px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.8rem 1.5rem;font-family:var(--f-head);font-stretch:92%;font-weight:600;font-size:1rem;letter-spacing:.01em;text-decoration:none;border:2px solid transparent;border-radius:2px;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
.btn-sm{min-height:42px;padding:.55rem 1.1rem;font-size:.95rem}
.btn-solid{background:var(--navy);color:var(--white)}
.btn-solid:hover{background:var(--navy-2)}
.btn-light{background:var(--white);color:var(--navy)}
.btn-light:hover{background:var(--mist)}
.btn-outline-light{border-color:rgba(255,255,255,.7);color:var(--white)}
.btn-outline-light:hover{background:rgba(255,255,255,.12);border-color:var(--white)}
.link{font-weight:600;text-decoration:underline;text-underline-offset:.25em;text-decoration-thickness:1px}
.link:hover{text-decoration-thickness:2px}

/* header */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--white);border-bottom:1px solid var(--line)}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--white)}
.bar{display:flex;align-items:center;gap:var(--s3);height:72px}
.brand{display:flex;align-items:baseline;gap:.5rem;text-decoration:none;margin-right:auto}
.wordmark{font-family:var(--f-head);font-stretch:100%;font-weight:800;font-size:1.45rem;letter-spacing:.14em;color:var(--navy)}
.wordmark span{color:var(--slate)}
.brand .sub{font-family:var(--f-head);font-weight:500;font-size:.8rem;letter-spacing:.08em;color:var(--slate)}
.brand.light .wordmark{color:var(--white)}.brand.light .wordmark span,.brand.light .sub{color:var(--on-navy)}
.primary ul{display:flex;gap:var(--s4);list-style:none;margin:0;padding:0}
.primary a{font-weight:600;font-size:1rem;text-decoration:none;color:var(--charcoal);padding-block:.4rem;border-bottom:2px solid transparent}
.primary a:hover{color:var(--navy);border-bottom-color:var(--line)}
.primary a[aria-current="page"]{color:var(--navy);border-bottom-color:var(--navy)}
.menu-toggle{display:none;width:48px;height:48px;border:1px solid var(--line);background:var(--white);border-radius:2px;cursor:pointer;position:relative}
.menu-toggle .bars,.menu-toggle .bars::before,.menu-toggle .bars::after{position:absolute;left:13px;width:20px;height:2px;background:var(--navy);content:"";transition:transform .2s}
.menu-toggle .bars{top:23px}.menu-toggle .bars::before{left:0;top:-6px}.menu-toggle .bars::after{left:0;top:6px}
.menu-toggle[aria-expanded="true"] .bars{background:transparent}
.menu-toggle[aria-expanded="true"] .bars::before{transform:translateY(6px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] .bars::after{transform:translateY(-6px) rotate(-45deg)}
.mobile-nav{border-top:1px solid var(--line);background:var(--white)}
.mobile-nav ul{list-style:none;margin:0;padding:var(--s1) 0 var(--s3)}
.mobile-nav a{display:block;padding:.85rem 0;border-bottom:1px solid var(--line);font-family:var(--f-head);font-stretch:90%;font-weight:600;font-size:1.25rem;text-decoration:none;color:var(--navy)}
@media (max-width:1080px){.primary{display:none}.menu-toggle{display:block}}
@media (min-width:1081px){.mobile-nav{display:none!important}}
@media (max-width:520px){.hide-sm{display:none}}

/* hero */
.hero,.page-hero{position:relative;isolation:isolate;color:var(--white);overflow:hidden;background:var(--navy)}
.hero .media,.page-hero .media{position:absolute;inset:0;z-index:-1}
.hero .media img,.page-hero .media img{width:100%;height:100%;object-fit:cover}
.hero .media::after,.page-hero .media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,26,50,.93) 0%,rgba(10,26,50,.78) 45%,rgba(10,26,50,.45) 100%)}
.hero-inner{padding-block:clamp(5rem,12vw,9rem) clamp(4rem,9vw,7rem)}
.kicker{font-family:var(--f-head);font-weight:600;font-size:1rem;letter-spacing:.06em;color:var(--on-navy)}
.hero h1{color:var(--white);font-size:clamp(2.3rem,5.2vw,4.1rem);font-weight:700;max-width:20ch;margin-top:var(--s2)}
.hero .lede,.page-hero .lede{color:#E3E9F2;font-size:clamp(1.08rem,1.5vw,1.25rem);max-width:58ch;margin-top:var(--s3)}
.hero .actions{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s4)}
.page-hero .wrap{padding-block:clamp(3.5rem,8vw,6rem)}
.page-hero h1{color:var(--white);font-size:clamp(2.1rem,4.6vw,3.5rem);font-weight:700;max-width:22ch}
.crumb{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.95rem;color:var(--on-navy);margin-bottom:var(--s2)}
.crumb a{color:var(--on-navy)}.crumb a:hover{color:var(--white)}

/* sections */
.section{padding-block:clamp(3.5rem,8vw,var(--s7))}
.section.tint{background:var(--mist)}
.section.navy{background:var(--navy);color:var(--white)}
.section.navy h2{color:var(--white)}
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--s5);align-items:start}
@media (max-width:860px){.split{grid-template-columns:1fr;gap:var(--s3)}}
.prose{display:grid;gap:var(--s2);max-width:66ch}
.prose p,.prose-p,.intro-p{font-size:1.125rem;color:var(--charcoal)}
.prose.light p{color:#E3E9F2}
.intro-p{max-width:60ch;margin-bottom:var(--s4)}
.prose-p{max-width:60ch;margin-block:var(--s2) var(--s3)}
.muted{color:var(--slate);font-size:1rem;margin-top:var(--s3);max-width:60ch}
.head-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:var(--s2);margin-bottom:var(--s4)}
.h1-plain{font-size:clamp(2rem,4vw,3rem)}

/* service cards */
.svc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
@media (max-width:1100px){.svc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.svc-grid{grid-template-columns:1fr}}
.svc-card,.ind-card{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);text-decoration:none;color:inherit;min-width:0;transition:border-color .2s,box-shadow .2s}
.svc-card:hover{border-color:var(--navy);box-shadow:0 6px 24px rgba(14,34,64,.08)}
.thumb{aspect-ratio:3/2;overflow:hidden;background:var(--mist)}
.thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.svc-card:hover .thumb img{transform:scale(1.03)}
.svc-card .body,.ind-card .body{display:flex;flex-direction:column;gap:.6rem;padding:var(--s3);flex:1}
.svc-card p,.ind-card p{color:var(--slate);font-size:1rem}
.more{margin-top:auto;padding-top:var(--s1);font-weight:600;color:var(--navy);text-decoration:underline;text-underline-offset:.25em}

/* differentiators */
.diff-grid{list-style:none;margin:var(--s5) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5) var(--s4)}
.diff-grid li{border-top:2px solid var(--navy);padding-top:var(--s3);min-width:0}
.diff-grid p{color:var(--slate);margin-top:.6rem;font-size:1.02rem}
@media (max-width:960px){.diff-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.diff-grid{grid-template-columns:1fr;gap:var(--s4)}}

/* facts */
.facts{margin:0;display:grid;gap:0;border-top:1px solid rgba(255,255,255,.2)}
.facts>div{display:grid;grid-template-columns:minmax(0,11rem) minmax(0,1fr);gap:var(--s3);padding-block:var(--s3);border-bottom:1px solid rgba(255,255,255,.2)}
.facts dt{font-family:var(--f-head);font-stretch:90%;font-weight:600;color:var(--on-navy)}
.facts dd{margin:0;color:var(--white)}
.facts.dark{border-top-color:var(--line);margin-top:var(--s3)}
.facts.dark>div{border-bottom-color:var(--line)}
.facts.dark dt{color:var(--slate)}.facts.dark dd{color:var(--charcoal)}
@media (max-width:560px){.facts>div{grid-template-columns:1fr;gap:.25rem}}
.todo-wrap{margin-top:var(--s3)}

/* feature (careers teaser) */
.feature-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s5);align-items:center}
.feature-media{aspect-ratio:3/2;overflow:hidden}
.feature-media img{width:100%;height:100%;object-fit:cover}
@media (max-width:860px){.feature-grid{grid-template-columns:1fr;gap:var(--s3)}}

/* CTA */
.cta-band{background:var(--navy-2);color:var(--white)}
.cta-inner{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--s3);padding-block:var(--s6)}
.cta-band h2{color:var(--white)}
.cta-band p{color:#E3E9F2;margin-top:.6rem;max-width:56ch}

/* service detail */
.svc-layout{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:var(--s5);align-items:start}
@media (max-width:960px){.svc-layout{grid-template-columns:1fr}}
.sub-h{margin-top:var(--s5);font-size:clamp(1.5rem,2.4vw,2rem)}
.item-list{list-style:none;margin:var(--s3) 0 0;padding:0;display:grid;border-top:1px solid var(--line)}
.item-list li{padding-block:var(--s3);border-bottom:1px solid var(--line)}
.item-list p{color:var(--slate);margin-top:.4rem;max-width:66ch}
.item-list.cols{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--s5)}
@media (max-width:700px){.item-list.cols{grid-template-columns:1fr}}
.svc-aside{display:grid;gap:var(--s3);position:sticky;top:calc(env(safe-area-inset-top,0px) + 96px)}
@media (max-width:960px){.svc-aside{position:static}}
.aside-box{border:1px solid var(--line);padding:var(--s3);display:grid;gap:var(--s2);background:var(--white)}
.aside-box h2{font-size:1.25rem}
.aside-box p{color:var(--slate)}
.aside-box ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.aside-box a:not(.btn){font-weight:600}
.terms{display:flex;flex-wrap:wrap;gap:.5rem;margin:0}
.terms div{border:1px solid var(--line);background:var(--white);padding:.45rem .8rem}
.terms dt{font-weight:600;color:var(--navy)}

/* industries */
.ind-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
@media (max-width:1000px){.ind-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.ind-grid{grid-template-columns:1fr}}
.ind-card .link{margin-top:auto;padding-top:var(--s1)}
.regions{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}
.regions li{border-top:2px solid var(--navy);padding-top:var(--s2)}
.regions p{color:var(--slate);margin-top:.3rem}
@media (max-width:480px){.regions{grid-template-columns:1fr}}

/* contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--s5);align-items:start}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3);padding:var(--s4);border:1px solid var(--line);background:var(--mist)}
@media (max-width:600px){.form{grid-template-columns:1fr;padding:var(--s3)}}
.field{display:grid;gap:.4rem;min-width:0}
.field.full,.setup-note,.form-status{grid-column:1/-1}
label{font-weight:600;color:var(--charcoal)}
.opt{font-weight:400;color:var(--slate)}
input,select,textarea{font:inherit;color:var(--charcoal);background:var(--white);border:1px solid #9AA5B4;border-radius:2px;padding:.75rem .85rem;width:100%;min-height:48px}
input:focus,select:focus,textarea:focus{outline:3px solid var(--focus);outline-offset:1px;border-color:var(--navy)}
input[aria-invalid="true"],textarea[aria-invalid="true"]{border-color:#B3261E}
.hp{position:absolute;left:-9999px}
.form-status{font-weight:600}
.form-status.err{color:#B3261E}
.form-status.info{color:var(--todo-ink);background:var(--todo-bg);border-left:4px solid var(--todo-line);padding:.75rem 1rem;font-weight:400}
.setup-note{background:var(--todo-bg);border-left:4px solid var(--todo-line);color:var(--todo-ink);padding:.75rem 1rem;font-size:.98rem}

/* draft markers */
.todo{display:inline-block;background:var(--todo-bg);color:var(--todo-ink);border:1px dashed var(--todo-line);padding:.3rem .6rem;font-size:.95rem;line-height:1.45}
.todo b{font-weight:700;text-transform:uppercase;font-size:.75rem;letter-spacing:.06em;margin-right:.4rem}
.todo.review{background:#EAF1FF;border-color:#4B74C4;color:#1E3A73}

/* footer */
.site-footer{background:#0A1830;color:var(--on-navy)}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:var(--s5);padding-block:var(--s6) var(--s5)}
.foot-brand p{margin-top:var(--s2);max-width:40ch}
.foot-brand .reg{font-size:.95rem}
.foot-h{font-size:1rem;color:var(--white);margin-bottom:var(--s2);font-weight:600}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.site-footer a{color:var(--on-navy);text-decoration:none}
.site-footer a:hover{color:var(--white);text-decoration:underline}
.site-footer .todo{font-size:.85rem}
.foot-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s2);padding-block:var(--s3);border-top:1px solid rgba(255,255,255,.14);font-size:.92rem}
@media (max-width:900px){.foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.foot-brand{grid-column:1/-1}}
@media (max-width:520px){.foot-grid{grid-template-columns:1fr}}

/* motion: content visible at rest; short entrance only */
@media (prefers-reduced-motion:no-preference){
  .hero-inner>*{animation:rise .8s cubic-bezier(.2,.7,.2,1) both}
  .hero-inner>*:nth-child(2){animation-delay:.08s}.hero-inner>*:nth-child(3){animation-delay:.16s}.hero-inner>*:nth-child(4){animation-delay:.24s}
  @keyframes rise{from{opacity:.001;transform:translateY(12px)}to{opacity:1;transform:none}}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}

/* restored content components */
.diff-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.diff-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:960px){.diff-grid.three,.diff-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.diff-grid.three,.diff-grid.four{grid-template-columns:1fr}}
.steps{list-style:none;margin:var(--s4) 0 0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--s3);counter-reset:st}
.steps li{counter-increment:st;border-top:2px solid var(--navy);padding-top:var(--s2);min-width:0}
.steps li::before{content:"Step " counter(st);display:block;font-family:var(--f-head);font-weight:600;font-size:.9rem;color:var(--slate);margin-bottom:.4rem}
.steps p{color:var(--slate);margin-top:.4rem;font-size:1rem}
.steps.vertical{grid-template-columns:1fr;margin-top:0}
@media (max-width:960px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}
.chips{list-style:none;margin:var(--s3) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.chips li{border:1px solid var(--line);background:var(--white);padding:.4rem .8rem;font-weight:600;color:var(--navy);font-size:.95rem}
.protocol{list-style:none;margin:0;padding:0;display:grid;border-top:1px solid var(--line);counter-reset:pr}
.protocol li{counter-increment:pr;display:grid;grid-template-columns:2.5rem minmax(0,1fr);column-gap:var(--s2);padding-block:var(--s3);border-bottom:1px solid var(--line)}
.protocol li::before{content:counter(pr);grid-row:span 2;font-family:var(--f-head);font-weight:700;font-size:1.4rem;color:var(--navy)}
.protocol p{color:var(--slate);margin-top:.3rem}
.aor{width:100%;border-collapse:collapse;margin-top:var(--s3);background:var(--white)}
.aor th,.aor td{text-align:left;padding:.85rem 1rem;border-bottom:1px solid var(--line);vertical-align:top}
.aor thead th{font-family:var(--f-head);font-weight:600;font-size:.95rem;color:var(--slate);background:var(--mist)}
.aor tbody th{font-family:var(--f-head);font-stretch:88%;font-weight:700;color:var(--navy)}
.status{display:inline-flex;align-items:center;gap:.45rem;font-weight:600;color:#1D6B45}
.status::before{content:"";width:8px;height:8px;border-radius:50%;background:#1D8A55}
@media (max-width:480px){.aor th,.aor td{padding:.7rem .6rem;font-size:.95rem}}

.chips.on-navy li{background:transparent;border-color:rgba(255,255,255,.35);color:var(--white)}
.po-list{list-style:none;margin:var(--s5) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4)}
.po-list li{border-top:1px solid rgba(255,255,255,.3);padding-top:var(--s3);min-width:0}
.po-list h3{color:var(--white)}
.po-list p{color:#E3E9F2;margin-top:.5rem;font-size:1rem}
@media (max-width:960px){.po-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.po-list{grid-template-columns:1fr}}
.po-foot{margin-top:var(--s5);color:#E3E9F2;max-width:70ch}
.link.light{color:var(--white);margin-left:.4rem}
.actions-row{display:flex;flex-wrap:wrap;gap:var(--s2)}
.btn-outline{border-color:var(--navy);color:var(--navy)}
.btn-outline:hover{background:var(--mist)}

.founder{display:grid;gap:var(--s2);border-left:3px solid var(--navy);padding-left:var(--s3)}
.founder .role{font-family:var(--f-head);font-weight:700;font-stretch:88%;font-size:1.3rem;color:var(--navy)}

.naics h3{margin-bottom:.4rem}
.section.navy .link.light{margin-left:.5rem}

.certs{margin-bottom:var(--s4)}
.certs h3,.naics h3{margin-bottom:.6rem}
.cert-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.cert-list li{background:var(--white);padding:.9rem 1rem;display:grid;gap:.2rem;min-width:0}
.cert-list b{font-family:var(--f-head);font-stretch:88%;font-size:1.1rem;color:var(--navy)}
.cert-list span{color:var(--slate);font-size:.95rem}
@media (max-width:520px){.cert-list{grid-template-columns:1fr}}
.tbl{overflow-x:auto}
.primary-tag{display:inline-block;margin-left:.4rem;padding:.05rem .45rem;font-size:.78rem;font-weight:600;color:var(--white);background:var(--navy);vertical-align:middle}

.trust{margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid rgba(255,255,255,.25);max-width:60ch;color:#E3E9F2;font-weight:600;font-size:1rem}
.hero-inner>.trust{animation-delay:.3s}

.choice{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.4rem 1.4rem}
.choice legend{font-weight:600;margin-bottom:.4rem;width:100%}
.choice label,.consent label{display:inline-flex;align-items:center;gap:.5rem;font-weight:400}
.choice input,.consent input{width:20px;height:20px;min-height:0;accent-color:var(--navy)}
.consent label{align-items:flex-start}.consent input{margin-top:.2rem;flex:none}
input[type=file]{padding:.6rem;background:var(--white)}
.pp-sec{margin-top:var(--s5)}
.pp-sec h2{font-size:1.5rem;margin-bottom:var(--s2)}
.pp-sec p,.pp-sec li{max-width:70ch}
.pp-sec p+p{margin-top:var(--s2)}
.pp-sec ul{padding-left:1.2rem;display:grid;gap:.5rem}

.req{margin:0;padding-left:1.2rem;display:grid;gap:.5rem;font-size:1.08rem}
