/* SemperVigiloGroup International LLC — enterprise redesign
   Deep navy + steel · IBM Plex Serif (display) + IBM Plex Sans (text) · no gradients, no motion */

:root{
  --ink:#16202e;        /* body text */
  --navy:#0f1e33;       /* brand deep navy */
  --navy-deep:#0a1422;  /* darkest */
  --steel:#42506a;      /* secondary text */
  --mut:#6b7686;        /* muted */
  --line:#dfe3ea;       /* hairline */
  --line-2:#c8cfd9;
  --gold:#b8862f;       /* restrained accent */
  --gold-soft:#c8993f;
  --paper:#ffffff;
  --band:#f4f6f9;       /* light section band */
  --navy-line:rgba(255,255,255,.14);
  --maxw:1180px;
}

*{box-sizing:border-box}
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth }
body{
  margin:0; background:var(--paper); color:var(--ink); overflow-x:hidden;
  font-family:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:16px; line-height:1.7; -webkit-font-smoothing:antialiased;
}
.skip{ position:absolute; left:-9999px; top:0; z-index:200; background:var(--navy); color:#fff;
  padding:12px 18px; font-size:.85rem }
.skip:focus{ left:12px; top:12px }
h1,h2,h3,h4{ font-family:"IBM Plex Serif",Georgia,"Times New Roman",serif; color:var(--navy); font-weight:600; line-height:1.2; margin:0 }
p{margin:0 0 1rem}
a{color:var(--navy); text-decoration:none}
img{max-width:100%; display:block}

.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 28px }
.eyebrow{
  font-family:"IBM Plex Sans"; font-size:.72rem; font-weight:600; letter-spacing:.18em;
  text-transform:uppercase; color:var(--gold); display:inline-flex; align-items:center; gap:12px;
}
.eyebrow::before{ content:""; width:26px; height:1px; background:var(--gold); display:inline-block }
.eyebrow.center::after{ content:""; width:26px; height:1px; background:var(--gold); display:inline-block }

/* ---------- top bar ---------- */
.topbar{
  position:sticky; top:0; z-index:50; background:rgba(255,255,255,.96);
  backdrop-filter:saturate(140%) blur(6px); border-bottom:1px solid var(--line);
}
.topbar .wrap{ display:flex; align-items:center; justify-content:space-between; height:70px }
.brand{ display:flex; flex-direction:column; line-height:1.05; letter-spacing:.02em }
.brand .b1{ font-family:"IBM Plex Serif"; font-weight:600; font-size:1.15rem; color:var(--navy) }
.brand .b2{ font-size:.6rem; letter-spacing:.34em; text-transform:uppercase; color:var(--mut); font-weight:600 }
.nav{ display:flex; align-items:center; gap:34px }
.nav a{ font-size:.82rem; letter-spacing:.06em; text-transform:uppercase; font-weight:500; color:var(--steel) }
.nav a:hover,.nav a.active{ color:var(--navy) }
.nav a.active{ position:relative }
.nav a.active::after{ content:""; position:absolute; left:0; right:0; bottom:-6px; height:2px; background:var(--gold) }
.nav .btn{ padding:9px 16px }
.navtoggle{ display:none; border:1px solid var(--line-2); background:#fff; width:42px; height:38px; cursor:pointer }
.navtoggle span,.navtoggle span::before,.navtoggle span::after{ content:""; display:block; width:18px; height:2px; background:var(--navy); margin:0 auto; position:relative }
.navtoggle span::before{ position:absolute; top:-6px } .navtoggle span::after{ position:absolute; top:6px }

/* ---------- buttons ---------- */
.btn{
  display:inline-block; font-family:"IBM Plex Sans"; font-size:.78rem; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase; padding:14px 26px; border:1px solid var(--navy);
  background:var(--navy); color:#fff; cursor:pointer; transition:background .15s,color .15s,border-color .15s;
}
.btn:hover{ background:var(--navy-deep); border-color:var(--navy-deep) }
.btn--ghost{ background:transparent; color:#fff; border-color:rgba(255,255,255,.5) }
.btn--ghost:hover{ background:rgba(255,255,255,.08); border-color:#fff; color:#fff }
.btn--gold{ background:var(--gold); border-color:var(--gold); color:#20170a }
.btn--gold:hover{ background:var(--gold-soft); border-color:var(--gold-soft) }
.btn--dark{ color:#fff }

/* ---------- hero ---------- */
.hero{ position:relative; background:var(--navy-deep); color:#fff; overflow:hidden }
.hero__bg{ position:absolute; inset:0; background:center/cover no-repeat; opacity:.28; filter:saturate(.7) }
.hero__scrim{ position:absolute; inset:0; background:linear-gradient(90deg,rgba(10,20,34,.94) 0%,rgba(10,20,34,.78) 55%,rgba(10,20,34,.55) 100%) }
.hero .wrap{ position:relative; padding:104px 28px 92px }
.hero__inner{ max-width:720px }
.hero h1{ color:#fff; font-size:clamp(2.3rem,4.6vw,3.5rem); letter-spacing:-.01em; margin:20px 0 0 }
.hero .sub{ color:#c4cdda; font-size:1.12rem; margin:20px 0 0; max-width:560px }
.hero .actions{ margin-top:34px; display:flex; gap:14px; flex-wrap:wrap }
.hero__strip{ position:relative; border-top:1px solid var(--navy-line); background:rgba(255,255,255,.03) }
.hero__strip .wrap{ display:flex; flex-wrap:wrap; gap:0; padding:0 }
.hero__strip .cell{ flex:1 1 0; min-width:180px; padding:20px 28px; border-left:1px solid var(--navy-line) }
.hero__strip .cell:first-child{ border-left:0 }
.hero__strip .k{ font-family:"IBM Plex Serif"; color:#fff; font-size:1.05rem }
.hero__strip .v{ color:#9aa6b6; font-size:.76rem; text-transform:uppercase; letter-spacing:.12em; margin-top:2px }

/* ---------- sections ---------- */
.section{ padding:82px 0 }
.section--band{ background:var(--band); border-top:1px solid var(--line); border-bottom:1px solid var(--line) }
.section__head{ max-width:720px; margin-bottom:44px }
.section__head.center{ margin-left:auto; margin-right:auto; text-align:center }
.section__head h2{ font-size:clamp(1.7rem,3vw,2.2rem); margin:14px 0 0 }
.section__head p{ color:var(--steel); margin:14px 0 0; font-size:1.05rem }

/* lede / positioning */
.lede{ font-family:"IBM Plex Serif"; font-size:clamp(1.25rem,2.2vw,1.6rem); line-height:1.5; color:var(--navy); font-weight:500 }
.lede + .lede{ margin-top:1.1rem }
.split{ display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:center }
.split img{ width:100%; height:100%; object-fit:cover; border:1px solid var(--line); filter:grayscale(.15) }

/* services grid */
.grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line) }
.grid .item{ background:#fff; padding:34px 30px }
.grid .item .num{ font-family:"IBM Plex Serif"; color:var(--gold); font-size:.9rem; font-weight:600; letter-spacing:.05em }
.grid .item h3{ font-size:1.16rem; margin:10px 0 10px }
.grid .item p{ color:var(--steel); font-size:.95rem; margin:0 }

/* credentials list */
.creds{ columns:2; column-gap:54px }
.creds .c{ break-inside:avoid; display:flex; gap:14px; padding:15px 0; border-bottom:1px solid var(--line) }
.creds .c .mk{ color:var(--gold); flex:0 0 auto; font-weight:700; font-family:"IBM Plex Serif" }
.creds .c p{ margin:0; color:var(--ink); font-size:.96rem }

/* fact band (navy) */
.factband{ background:var(--navy); color:#fff }
.factband .wrap{ display:flex; flex-wrap:wrap }
.factband .f{ flex:1 1 0; min-width:210px; padding:44px 28px; border-left:1px solid var(--navy-line) }
.factband .f:first-child{ border-left:0 }
.factband .f .lab{ font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold) }
.factband .f .val{ font-family:"IBM Plex Serif"; font-size:1.5rem; margin-top:8px; color:#fff }
.factband .f .val small{ display:block; font-family:"IBM Plex Sans"; font-size:.8rem; color:#9aa6b6; letter-spacing:.02em; text-transform:none; margin-top:4px }

/* generic content lists (about page) */
.cols{ display:grid; grid-template-columns:repeat(2,1fr); gap:40px 56px }
.block h3{ font-size:1.15rem; padding-bottom:10px; border-bottom:2px solid var(--navy); margin-bottom:16px }
.block ul{ list-style:none; margin:0; padding:0 }
.block li{ padding:8px 0 8px 20px; position:relative; color:var(--steel); border-bottom:1px solid var(--line); font-size:.96rem }
.block li::before{ content:""; position:absolute; left:0; top:16px; width:7px; height:7px; background:var(--gold) }
.prose p{ color:var(--steel); font-size:1.05rem }
.prose h2{ margin:36px 0 14px }

/* page header (interior) */
.pagehead{ background:var(--navy); color:#fff; position:relative }
.pagehead .wrap{ padding:66px 28px 58px }
.pagehead h1{ color:#fff; font-size:clamp(2rem,3.6vw,2.8rem); margin:14px 0 0 }
.pagehead p{ color:#c4cdda; margin:14px 0 0; max-width:620px }

/* CTA band */
.cta{ background:var(--navy-deep); color:#fff; text-align:center }
.cta .wrap{ padding:72px 28px }
.cta h2{ color:#fff; font-size:clamp(1.7rem,3vw,2.3rem) }
.cta p{ color:#b7c1cf; max-width:560px; margin:14px auto 26px }

/* contact */
.contactgrid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:56px }
.info .row{ padding:18px 0; border-bottom:1px solid var(--line) }
.info .row .lab{ font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--mut) }
.info .row .val{ font-size:1.05rem; color:var(--ink); margin-top:4px }
.info .row a{ color:var(--navy); border-bottom:1px solid var(--gold) }
form.card{ border:1px solid var(--line); padding:34px; background:#fff }
form.card h3{ font-size:1.25rem; margin-bottom:6px }
.field{ margin-top:18px }
.field label{ display:block; font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--steel); margin-bottom:7px; font-weight:600 }
.field input,.field textarea{ width:100%; border:1px solid var(--line-2); background:#fff; font:inherit; font-size:.98rem; padding:12px 13px; border-radius:0; color:var(--ink) }
.field input:focus,.field textarea:focus{ outline:none; border-color:var(--navy); box-shadow:inset 0 0 0 1px var(--navy) }
.success{ background:#f0f5ef; border:1px solid #cfe0cb; padding:16px 18px; color:#2f5427 }

/* footer */
.foot{ background:var(--navy-deep); color:#c4cdda; border-top:3px solid var(--gold) }
.foot .wrap{ padding:56px 28px 30px; display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px }
.foot .brand .b1{ color:#fff } .foot .brand .b2{ color:#8b97a8 }
.foot p{ font-size:.9rem; color:#9aa6b6; margin:14px 0 0; max-width:320px }
.foot h4{ font-family:"IBM Plex Sans"; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:#fff; font-weight:600; margin:0 0 14px }
.foot ul{ list-style:none; margin:0; padding:0 }
.foot li{ padding:5px 0; font-size:.9rem }
.foot a{ color:#c4cdda } .foot a:hover{ color:#fff }
.foot .mono{ font-size:.86rem; color:#9aa6b6 }
.footbar{ border-top:1px solid var(--navy-line) }
.footbar .wrap{ padding:18px 28px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px }
.footbar span{ font-size:.78rem; color:#7f8b9c; letter-spacing:.04em }
.footbar .motto{ font-family:"IBM Plex Serif"; font-style:italic; color:var(--gold-soft) }

/* responsive */
@media (max-width:900px){
  .split{ grid-template-columns:1fr; gap:32px } .split .imgwrap{ order:-1 }
  .grid{ grid-template-columns:1fr 1fr }
  .contactgrid{ grid-template-columns:1fr; gap:36px }
  .foot .wrap{ grid-template-columns:1fr 1fr }
}
@media (max-width:680px){
  .nav{ position:absolute; top:70px; left:0; right:0; flex-direction:column; align-items:stretch; gap:0;
        background:#fff; border-bottom:1px solid var(--line); padding:8px 0; display:none }
  .nav.open{ display:flex }
  .nav a{ padding:14px 28px } .nav a.active::after{ display:none }
  .nav .btn{ margin:10px 28px }
  .navtoggle{ display:block }
  .grid{ grid-template-columns:1fr } .creds{ columns:1 } .cols{ grid-template-columns:1fr }
  .foot .wrap{ grid-template-columns:1fr }
  .hero .wrap{ padding:76px 28px 64px }
}
