:root {
  --navy: #071a2d;
  --navy-deep: #04111e;
  --navy-soft: #102b47;
  --gold: #c6a76b;
  --gold-light: #e7d0a2;
  --ink: #0b1b2a;
  --warm: #f4f1ea;
  --paper: #faf9f5;
  --muted: #68727c;
  --line: rgba(10, 28, 45, .14);
  --shell: min(1190px, calc(100vw - 64px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 16px; line-height: 1.55; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
p, h1, h2, h3 { margin-top: 0; }
h1, h2, h3 { font-weight: 500; line-height: .98; letter-spacing: -.055em; }
::selection { color: var(--navy); background: var(--gold-light); }
:focus-visible { outline: 3px solid var(--gold-light); outline-offset: 4px; }

.reveal,
.hero-inner,
.closing-inner,
.section-head,
.service-topline,
.industries-head,
.footer-top > div,
.footer-bottom,
.role-card,
.principle-list article,
.industry-list span,
.service-grid > article {
  --reveal-delay: .22s;
  opacity: 0;
  transform: translateY(16px);
}

@keyframes revealFade {
  to { opacity: 1; transform: translateY(0); }
}

.reveal.in-view,
.hero-inner.in-view,
.closing-inner.in-view,
.section-head.in-view,
.service-topline.in-view,
.industries-head.in-view,
.footer-top > div.in-view,
.footer-bottom.in-view,
.role-card.in-view,
.principle-list article.in-view,
.industry-list span.in-view,
.service-grid > article.in-view {
  animation: revealFade 0.75s cubic-bezier(.16, .79, .25, 1) forwards;
  animation-delay: var(--reveal-delay);
}

main > .hero.reveal { --reveal-delay: .06s; }
main > .confidence-strip.reveal { --reveal-delay: .13s; }
main > .opportunities.section-pad.reveal { --reveal-delay: .2s; }
main > .why-us.reveal { --reveal-delay: .27s; }
main > .services.section-pad.reveal { --reveal-delay: .34s; }
main > .industries.reveal { --reveal-delay: .41s; }
main > .closing-cta.reveal { --reveal-delay: .48s; }
footer.reveal { --reveal-delay: .56s; }

footer .footer-top > div:nth-child(1) { --reveal-delay: .6s; }
footer .footer-top > div:nth-child(2) { --reveal-delay: .64s; }
footer .footer-top > div:nth-child(3) { --reveal-delay: .68s; }
footer .footer-top > div:nth-child(4) { --reveal-delay: .72s; }

.hero-inner { --reveal-delay: .11s; }

.confidence-grid > *:nth-child(1) { --reveal-delay: .18s; }
.confidence-grid > *:nth-child(2) { --reveal-delay: .21s; }
.confidence-grid > *:nth-child(3) { --reveal-delay: .24s; }
.confidence-grid > *:nth-child(4) { --reveal-delay: .27s; }

.role-card:nth-child(1) { --reveal-delay: .35s; }
.role-card:nth-child(2) { --reveal-delay: .38s; }
.role-card:nth-child(3) { --reveal-delay: .41s; }
.role-card:nth-child(4) { --reveal-delay: .44s; }

.principle-list article:nth-child(1) { --reveal-delay: .45s; }
.principle-list article:nth-child(2) { --reveal-delay: .5s; }
.principle-list article:nth-child(3) { --reveal-delay: .55s; }

.service-grid > article:nth-child(1) { --reveal-delay: .43s; }
.service-grid > article:nth-child(2) { --reveal-delay: .48s; }
.service-grid > article:nth-child(3) { --reveal-delay: .53s; }

.industry-list span:nth-child(1) { --reveal-delay: .48s; }
.industry-list span:nth-child(2) { --reveal-delay: .52s; }
.industry-list span:nth-child(3) { --reveal-delay: .56s; }
.industry-list span:nth-child(4) { --reveal-delay: .6s; }
.industry-list span:nth-child(5) { --reveal-delay: .64s; }
.industry-list span:nth-child(6) { --reveal-delay: .68s; }
.industry-list span:nth-child(7) { --reveal-delay: .72s; }
.industry-list span:nth-child(8) { --reveal-delay: .76s; }

.closing-inner { --reveal-delay: .54s; }

.utility-bar.reveal { --reveal-delay: .02s; }

.shell { width: var(--shell); margin-inline: auto; }
.utility-bar { color: #d7dfe6; background: var(--navy-deep); font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; }
.utility-inner { display: flex; align-items: center; justify-content: space-between; min-height: 35px; }
.utility-inner p { margin: 0; }
.utility-inner a { color: var(--gold-light); }
.site-header { position: relative; z-index: 10; background: rgba(7, 26, 45, .98); color: #f8f5ef; border-bottom: 1px solid rgba(255,255,255,.09); }
.nav-wrap { min-height: 85px; display: flex; align-items: center; gap: 48px; }
.brand { width: 167px; flex: none; }
.brand img { width: 100%; }
nav { display: flex; align-items: center; gap: 32px; margin-left: auto; }
nav a { font-size: .76rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; opacity: .86; transition: color .2s ease, opacity .2s ease; }
nav a:hover { color: var(--gold-light); opacity: 1; }
.nav-cta { display: flex; align-items: center; gap: 12px; border-left: 1px solid rgba(255,255,255,.18); padding-left: 28px; font-size: .76rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--gold-light); }
.nav-cta span { font-size: 1.25rem; font-weight: 400; transition: transform .2s ease; }
.nav-cta:hover span, .button:hover span, .role-card a:hover span, .text-link:hover span { transform: translate(3px, -2px); }

.hero { --hero-parallax: 0px; position: relative; isolation: isolate; min-height: 720px; color: white; overflow: hidden; background-image: linear-gradient(90deg, rgba(4,17,30,.98) 0%, rgba(4,17,30,.85) 35%, rgba(4,17,30,.22) 75%), linear-gradient(0deg, rgba(4,17,30,.5), transparent 40%), url('assets/security-team-hero.png'); background-size: cover; background-position: center calc(50% + var(--hero-parallax)); }
.hero-inner { position: relative; z-index: 1; padding: 116px 0 138px; }
.hero { background-attachment: scroll; }
.eyebrow { margin-bottom: 22px; color: #d5dce2; font-size: 14px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.eyebrow.gold { color: #8c6b31; }
.hero h1 { max-width: 735px; margin-bottom: 28px; font-size: clamp(3.5rem, 6.1vw, 6.35rem); }
em { color: var(--gold-light); font-family: Georgia, "Times New Roman", serif; font-weight: 400; letter-spacing: -.07em; }
.hero-copy { max-width: 485px; margin-bottom: 35px; color: #e0e6eb; font-size: 1.1rem; }
.hero-actions { display: flex; align-items: center; gap: 31px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 20px; min-height: 55px; padding: 0 24px; font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; transition: transform .2s ease, background .2s ease, color .2s ease; }
.button:hover { transform: translateY(-3px); }
.button span { font-size: 1.1rem; transition: transform .2s ease; }
.button-gold { color: var(--navy); background: var(--gold-light); }
.button-gold:hover { background: #fff0d0; }
.text-link { display: inline-flex; align-items: center; gap: 13px; padding-bottom: 5px; border-bottom: 1px solid currentColor; font-size: .72rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.text-link span { font-size: 1.1rem; transition: transform .2s ease; }
.text-link.light { color: #fff; }
.text-link.dark { color: var(--navy); }
.hero-proof { display: flex; gap: 14px; align-items: flex-start; margin-top: 86px; color: #d6dce0; font-size: .74rem; letter-spacing: .025em; }
.hero-proof p { margin: 0; line-height: 1.5; }
.hero-proof strong { color: var(--gold-light); font-weight: 500; }
.proof-line { width: 42px; height: 1px; margin-top: 10px; background: var(--gold); }
.card-kicker, .role-tag { margin-bottom: 10px; color: #5d4b2c; font-size: .64rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }

.confidence-strip { color: #e8edf1; background: var(--navy); }
.confidence-grid { display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); align-items: stretch; }
.confidence-grid > * { min-height: 113px; display: flex; align-items: center; margin: 0; padding: 20px 27px; border-right: 1px solid rgba(255,255,255,.12); font-size: .77rem; letter-spacing: .03em; }
.confidence-grid > :last-child { border-right: 0; }
.confidence-grid p { padding-left: 0; font-size: 1.12rem; line-height: 1.3; letter-spacing: -.035em; }
.confidence-grid span { margin-right: 12px; color: var(--gold); font-family: Georgia, serif; font-size: 1.3rem; }

.section-pad { padding: 144px 0; }
.section-head { display: flex; justify-content: space-between; gap: 60px; margin-bottom: 58px; }
.section-head h2, .why-us h2, .service-lead h2, .industries h2, .closing-cta h2 { margin-bottom: 0; font-size: clamp(3rem, 5.2vw, 5.2rem); }
.section-intro { max-width: 420px; margin: 37px 0 0; color: #50606e; font-size: 1rem; }
.real-purpose { color: #cfa349; }
.role-grid { display: grid; grid-template-columns: 1.35fr repeat(3, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.role-card { position: relative; display: flex; flex-direction: column; min-height: 310px; padding: 25px; background: var(--paper); transition: background .25s ease, transform .25s ease; }
.role-card:hover { transform: translateY(-6px); background: #f0ede5; }
.role-card.featured { justify-content: space-between; color: white; background: var(--navy); }
.role-number { margin-bottom: auto; color: #7c8995; font-family: Georgia, serif; font-size: 1.15rem; }
.role-card h3 { margin-bottom: 21px; font-size: 2rem; }
.role-card.featured h3 { font-size: 2.6rem; }
.role-card a { display: inline-flex; justify-content: space-between; align-items: center; margin-top: auto; padding-top: 17px; border-top: 1px solid currentColor; font-size: .68rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.role-card a span { font-size: 1.05rem; transition: transform .2s ease; }

.why-us { color: #f4f1ea; background: var(--navy-deep); }
.why-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 120px; padding: 135px 0; }
.why-copy h2 { margin-bottom: 31px; }
.why-copy > p:not(.eyebrow) { max-width: 405px; color: #bcc7d1; }
.why-copy .text-link { margin-top: 25px; color: var(--gold-light); }
.standard-section .eyebrow,
.standard-section .principle-list span { color: #e7d0a2; }
.principle-list { border-top: 1px solid rgba(255,255,255,.16); }
.principle-list article { display: grid; grid-template-columns: 50px 1fr; gap: 17px; padding: 31px 0; border-bottom: 1px solid rgba(255,255,255,.16); }
.principle-list span { color: var(--gold); font-family: Georgia, serif; font-size: 1.1rem; }
.principle-list h3 { margin-bottom: 9px; font-size: 1.45rem; letter-spacing: -.04em; }
.principle-list p { margin: 0; color: #aab6c1; font-size: .9rem; }

.service-grid { display: grid; grid-template-columns: 1.25fr 1fr 1fr; min-height: 350px; }
.service-grid > article { padding: 34px 38px; }
.service-lead { display: flex; flex-direction: column; color: white; background: #193a57; }
.service-lead h2 { margin-bottom: 36px; font-size: clamp(2.6rem, 4vw, 4.3rem); }
.button-outline { align-self: flex-start; color: white; border: 1px solid rgba(255,255,255,.5); }
.button-outline:hover { color: var(--navy); background: var(--gold-light); border-color: var(--gold-light); }
.service-detail { background: #eae6dc; }
.service-detail h3 { margin-bottom: 33px; font-size: 2rem; }
.service-detail ul { padding: 0; margin: 0; list-style: none; }
.service-detail li { padding: 12px 0; border-top: 1px solid rgba(7,26,45,.17); font-size: .87rem; }
.service-detail li::before { margin-right: 10px; color: #987739; content: '—'; }
.dark-panel { color: #edf0f2; background: var(--navy); }
.dark-panel .eyebrow { color: var(--gold-light); }
.dark-panel h3 { font-size: 1.86rem; }
.dark-panel > p:last-child { color: #b6c2cc; }

.industries { padding: 130px 0; background: #ded8cc; }
.industries-head { text-align: left; margin-bottom: 58px; }
.industries h2 em { color: #193a57; }
.industry-list { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(255,255,255,.22); border-left: 1px solid rgba(255,255,255,.22); }
.industry-list span { min-height: 91px; display: flex; align-items: center; padding: 18px 24px; border-right: 1px solid rgba(255,255,255,.22); border-bottom: 1px solid rgba(255,255,255,.22); color: white; font-size: .88rem; font-weight: 700; letter-spacing: -.015em; }
.industry-list span:nth-child(4n + 1), .industry-list span:nth-child(4n + 3) { background: #193a57; }
.industry-list span:nth-child(4n + 2), .industry-list span:nth-child(4n + 4) { background: #071a2d; }
.industry-list span::before { width: 7px; height: 7px; margin-right: 11px; border: 1px solid #e7d0a2; border-radius: 50%; content: ''; }

.closing-cta { position: relative; color: white; background: linear-gradient(112deg, #071a2d 0%, #0d3554 73%, #0d314e 100%); overflow: hidden; }
.closing-cta::before { position: absolute; inset: 0; background: linear-gradient(112deg, rgba(7,26,45,.88) 0%, rgba(13,53,84,.72) 73%, rgba(13,49,78,.93) 100%); content: ''; z-index: 0; }
.closing-cta {
  background-image: url('assets/security-guards-training.png');
  background-size: cover;
  background-position: 50% 25%;
  background-attachment: scroll;
}
.closing-inner { position: relative; z-index: 1; padding: 118px 0 122px; }
.closing-cta h2 { margin-bottom: 39px; }
.closing-cta h2 em { color: #e7d0a2; }

.application-page { background: #f4f1ea; }
.application-hero { color: white; background: linear-gradient(116deg, rgba(4,17,30,.97), rgba(7,26,45,.84)), url('assets/security-guards-training.png') center/cover; }
.application-hero-inner { padding: 106px 0 112px; }
.application-hero h1 { margin-bottom: 25px; font-size: clamp(3.35rem, 5.9vw, 6rem); }
.application-hero p:last-child { max-width: 540px; margin-bottom: 0; color: #d7e0e6; font-size: 1.04rem; }
.application-content { padding-top: 112px; }
.application-layout { display: grid; grid-template-columns: minmax(250px, .7fr) minmax(0, 1.5fr); align-items: start; gap: 78px; }
.application-aside { position: sticky; top: 30px; }
.application-aside h2 { margin-bottom: 25px; font-size: clamp(2.9rem, 4vw, 4.3rem); }
.application-aside > p:not(.eyebrow) { max-width: 290px; color: #53626e; }
.application-aside > p span, .form-field b, .form-consent b { color: #a47d37; }
.application-help { margin-top: 39px; padding-top: 23px; border-top: 1px solid var(--line); }
.application-help p { margin-bottom: 8px; color: var(--navy); font-size: .84rem; }
.application-help a { display: block; margin-top: 4px; color: #52606c; font-size: .86rem; }
.application-help a:hover { color: var(--navy); }
.application-form { padding: 48px; background: white; border: 1px solid rgba(7,26,45,.11); box-shadow: 0 19px 52px rgba(6,24,41,.08); }
.form-section { min-width: 0; margin: 0 0 42px; padding: 0 0 42px; border: 0; border-bottom: 1px solid rgba(7,26,45,.13); }
.form-section legend { width: 100%; margin-bottom: 26px; padding: 0; color: var(--navy); font-size: 1.28rem; font-weight: 700; letter-spacing: -.045em; }
.form-section legend span { display: inline-block; margin-right: 11px; color: var(--gold); font-family: Georgia, serif; font-size: 1rem; font-weight: 400; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.form-field { min-width: 0; }
.form-field.full-width { grid-column: span 2; }
.form-field label, .form-label { display: block; margin-bottom: 8px; color: #20354a; font-size: .72rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.form-field input:not([type="checkbox"]):not([type="radio"]), .form-field select, .form-field textarea { width: 100%; min-height: 49px; padding: 12px 13px; color: var(--ink); background: #fcfbf8; border: 1px solid rgba(7,26,45,.2); border-radius: 0; font: inherit; font-size: .92rem; outline: none; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; }
.form-field textarea { min-height: 115px; resize: vertical; }
.form-field input[type="file"] { width: 100%; padding: 11px; color: #405266; background: #fcfbf8; border: 1px dashed rgba(7,26,45,.3); font: inherit; font-size: .83rem; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { background: white; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(231,208,162,.45); }
.form-field input::file-selector-button { margin-right: 13px; padding: 8px 10px; color: white; background: var(--navy); border: 0; font: inherit; font-size: .65rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; }
.option-group { display: flex; flex-wrap: wrap; gap: 12px 19px; min-height: 49px; align-items: center; padding: 10px 0; }
.option-group label, .form-consent label { display: inline-flex; gap: 9px; align-items: flex-start; margin: 0; color: #35495d; font-size: .88rem; font-weight: 500; letter-spacing: 0; line-height: 1.45; text-transform: none; }
.option-grid { gap: 11px 23px; }
.option-group input, .form-consent input { width: 17px; height: 17px; flex: none; margin: 2px 0 0; accent-color: var(--navy); }
.field-note { margin: 8px 0 0; color: #6f7b85; font-size: .76rem; }
.form-consent { display: grid; gap: 14px; margin-bottom: 31px; }
.form-submit { display: flex; align-items: center; justify-content: space-between; gap: 25px; padding-top: 26px; border-top: 1px solid rgba(7,26,45,.13); }
.form-submit p { max-width: 390px; margin: 0; color: #667582; font-size: .78rem; }

@media (max-width: 900px) {
  .application-layout { grid-template-columns: 1fr; gap: 45px; }
  .application-aside { position: static; }
}

footer { color: #c1cad0; background: #030b13; }
.footer-top { display: grid; grid-template-columns: 1.55fr 1fr 1.25fr .65fr; gap: 50px; padding: 77px 0 57px; }
.footer-brand img { width: 170px; margin-bottom: 22px; }
.footer-brand p { max-width: 280px; color: #8998a4; font-size: .82rem; }
.footer-label { margin-bottom: 13px; color: var(--gold); font-size: .65rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
footer a, footer address { display: block; margin-bottom: 8px; color: #c9d1d7; font-size: .82rem; font-style: normal; transition: color .2s ease; }
footer a:hover { color: var(--gold-light); }
footer .footer-phone { color: white; font-size: 1.5rem; letter-spacing: -.05em; }
.footer-bottom { display: flex; justify-content: space-between; gap: 25px; padding: 18px 0; border-top: 1px solid rgba(255,255,255,.09); color: #6d7a84; font-size: .67rem; letter-spacing: .08em; text-transform: uppercase; }
.footer-bottom p { margin: 0; }

@media (max-width: 900px) {
  :root { --shell: min(100% - 42px, 680px); }
  .nav-wrap { gap: 22px; }
  nav { gap: 20px; }
  .nav-cta { display: none; }
  .hero { min-height: 695px; background-position: 60% center; background-attachment: scroll; }
  .confidence-grid { grid-template-columns: 1.4fr repeat(3, 1fr); }
  .confidence-grid > * { padding: 18px; }
  .role-grid { grid-template-columns: repeat(2, 1fr); }
  .role-card.featured { grid-column: span 2; min-height: 275px; }
  .why-grid { gap: 65px; }
  .service-grid { grid-template-columns: 1.1fr 1fr; min-height: 0; }
  .dark-panel { grid-column: span 2; }
  .footer-top { grid-template-columns: 1.3fr 1fr; }
}

@media (max-width: 640px) {
  :root { --shell: calc(100vw - 38px); }
  .utility-inner p { display: none; }
  .utility-inner { justify-content: center; }
  .site-header { position: relative; }
  .nav-wrap { min-height: 73px; justify-content: space-between; }
  .brand { width: 139px; }
  nav { gap: 15px; margin-left: 0; }
  nav a { display: none; }
  nav a:first-child, nav a:last-child { display: block; font-size: .65rem; }
  .hero { min-height: 706px; background-position: 63% center; }
  .hero-inner { padding: 83px 0 180px; }
  .hero h1 { font-size: clamp(3.1rem, 14.5vw, 4.45rem); }
  .hero-copy { max-width: 330px; font-size: .99rem; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 19px; }
  .hero-proof { margin-top: 48px; }
  .confidence-grid { grid-template-columns: 1fr 1fr; }
  .confidence-grid p { grid-column: span 2; min-height: auto; padding: 21px 0 16px; }
  .confidence-grid > * { min-height: 70px; padding: 15px 0; border-right: 0; border-top: 1px solid rgba(255,255,255,.1); }
  .confidence-grid > div:nth-of-type(1) { border-right: 1px solid rgba(255,255,255,.1); padding-right: 11px; }
  .confidence-grid > div:nth-of-type(2) { padding-left: 11px; }
  .confidence-grid > div:nth-of-type(3) { grid-column: span 2; }
  .section-pad { padding: 83px 0; }
  .section-head, .industries-head { display: block; }
  .section-intro { margin-top: 22px; }
  .role-grid { grid-template-columns: 1fr; }
  .role-card, .role-card.featured { grid-column: span 1; min-height: 210px; }
  .role-card.featured h3 { font-size: 2.3rem; }
  .why-grid { grid-template-columns: 1fr; gap: 48px; padding: 83px 0; }
  .why-copy h2 { font-size: 3.2rem; }
  .service-grid { grid-template-columns: 1fr; }
  .service-grid > article { padding: 33px 27px; }
  .service-lead { min-height: 0; }
  .dark-panel { grid-column: span 1; }
  .industries { padding: 82px 0; }
  .industry-list { grid-template-columns: repeat(2, 1fr); }
  .industry-list span { min-height: 77px; padding: 13px; font-size: .76rem; }
  .closing-inner { padding: 89px 0; }
  .application-hero-inner { padding: 80px 0 84px; }
  .application-content { padding-top: 76px; }
  .application-layout { gap: 37px; }
  .application-form { padding: 28px 21px; }
  .form-section { margin-bottom: 31px; padding-bottom: 31px; }
  .form-grid { grid-template-columns: 1fr; gap: 17px; }
  .form-field.full-width { grid-column: auto; }
  .form-submit { align-items: stretch; flex-direction: column; }
  .form-submit .button { width: 100%; }
  .footer-top { grid-template-columns: 1fr; gap: 31px; padding: 60px 0 42px; }
  .footer-bottom { display: block; }
  .footer-bottom p + p { margin-top: 5px; }
}
