@import url('https://fonts.googleapis.com/css2?family=League+Spartan:wght@400;500;600;700;800;900&display=swap');

/* Semper Security location pages */
.semper-location-page,
.semper-location-archive{
  --sl-teal:#007C92;
  --sl-teal-dark:#00687a;
  --sl-ink:#071116;
  --sl-dark:#09171d;
  --sl-white:#ffffff;
  --sl-text:#111b24;
  --sl-muted:#6b7880;
  --sl-line:#dce4e7;
  background:#fff;
  color:var(--sl-text);
  font-family:"League Spartan",Arial,Helvetica,sans-serif;
  overflow:hidden;
}

.semper-location-page *,
.semper-location-page *::before,
.semper-location-page *::after,
.semper-location-archive *,
.semper-location-archive *::before,
.semper-location-archive *::after{box-sizing:border-box;}

.semper-location-page a,
.semper-location-archive a{text-decoration:none;}

.sl-shell,
.semper-location-shell{
  width:min(1420px,88%);
  margin:0 auto;
}

.sl-section{padding:105px 0;}

.sl-eyebrow{
  display:flex;
  align-items:center;
  gap:13px;
  margin:0 0 20px;
  color:var(--sl-teal);
  font-size:13px!important;
  line-height:1;
  font-weight:900;
  letter-spacing:1.8px;
  text-transform:uppercase;
}
.sl-eyebrow::before{
  content:"";
  width:30px;
  height:2px;
  flex:0 0 30px;
  background:var(--sl-teal);
}

.semper-location-page h2{
  margin:0;
  color:var(--sl-text);
  font-size:clamp(40px,4.3vw,66px);
  line-height:.98;
  letter-spacing:-3px;
  font-weight:900;
}
.semper-location-page h2 span{color:var(--sl-teal);}

.sl-copy p{
  margin:0 0 24px;
  color:#66757d;
  font-size:18px;
  line-height:1.74;
}
.sl-copy p:last-child{margin-bottom:0;}

/* Hero */
.sl-hero{
  position:relative;
  min-height:850px;
  display:flex;
  align-items:center;
  isolation:isolate;
  overflow:hidden;
  background:#030a0e;
}
.sl-hero-media,
.sl-hero-overlay,
.sl-hero-slide{position:absolute;inset:0;}
.sl-hero-media{z-index:-3;overflow:hidden;}
.sl-hero-slide{opacity:0;animation:slHeroFade 18s infinite;}
.sl-hero-slide-1{animation-delay:0s;}
.sl-hero-slide-2{animation-delay:6s;}
.sl-hero-slide-3{animation-delay:12s;}
.sl-hero-slide img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:66% center;
  transform:scale(1.03);
  animation:slHeroPan 18s ease-in-out infinite;
  filter:brightness(.94) contrast(1.06) saturate(1.02);
}
.sl-hero-overlay{
  z-index:-2;
  background:
    linear-gradient(90deg,rgba(3,10,14,.98) 0%,rgba(3,10,14,.94) 32%,rgba(3,10,14,.70) 53%,rgba(3,10,14,.28) 74%,rgba(3,10,14,.12) 100%),
    linear-gradient(180deg,rgba(3,10,14,.06),rgba(3,10,14,.72));
}
.sl-hero-inner{padding:130px 0 92px;}
.sl-hero-copy{max-width:1080px;}
.sl-badge{
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:40px;
  padding:0 17px;
  margin-bottom:32px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  color:#fff;
  font-size:12px;
  font-weight:900;
  letter-spacing:1.3px;
  text-transform:uppercase;
}
.sl-badge::before{
  content:"";
  width:9px;
  height:9px;
  border-radius:50%;
  background:var(--sl-teal);
  box-shadow:0 0 0 5px rgba(0,124,146,.12);
}
.sl-hero h1{
  max-width:1000px;
  margin:0;
  color:#fff;
  font-size:clamp(62px,6.2vw,100px);
  line-height:.89;
  letter-spacing:-5px;
  font-weight:900;
}
.sl-hero h1 span{
  display:block;
  margin-top:8px;
  color:var(--sl-teal);
}
.sl-hero-lead{
  max-width:880px;
  margin:34px 0 0;
  color:rgba(255,255,255,.80);
  font-size:20px!important;
  line-height:1.7;
}
.sl-actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:35px;
}
.sl-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  min-height:62px;
  padding:0 32px;
  border:1px solid rgba(255,255,255,.27);
  border-radius:999px;
  color:#fff!important;
  font-size:13px;
  font-weight:900;
  letter-spacing:.7px;
  text-transform:uppercase;
  transition:transform .22s ease,background .22s ease,border-color .22s ease;
}
.sl-btn::after{content:"→";font-size:19px;}
.sl-btn:hover{transform:translateY(-2px);}
.sl-btn-primary{background:var(--sl-teal);border-color:var(--sl-teal);}
.sl-btn-primary:hover{background:var(--sl-teal-dark);border-color:var(--sl-teal-dark);}
.sl-btn-outline{background:rgba(0,0,0,.08);}
.sl-btn-outline:hover{border-color:var(--sl-teal);}
.sl-trust{
  display:flex;
  flex-wrap:wrap;
  gap:15px 28px;
  margin-top:38px;
  padding-top:22px;
  border-top:1px solid rgba(255,255,255,.15);
}
.sl-trust span{
  color:rgba(255,255,255,.68);
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
}
.sl-trust span::before{content:"✓";margin-right:8px;color:var(--sl-teal);}

/* Overview */
.sl-overview{background:#fff;}
.sl-two-col,
.sl-local-grid{
  display:grid;
  grid-template-columns:.86fr 1.14fr;
  gap:95px;
  align-items:start;
}

/* Services */
.sl-services{
  background:#fff;
  padding-top:94px;
  border-top:1px solid var(--sl-line);
}
.sl-section-head{max-width:980px;margin-bottom:58px;}
.sl-section-head>p:not(.sl-eyebrow){
  max-width:760px;
  margin:24px 0 0;
  color:#6b7880;
  font-size:17px;
  line-height:1.7;
}
.sl-service-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:1px solid var(--sl-line);
}
.sl-service-item{
  display:grid;
  grid-template-columns:46px minmax(0,1fr) 30px;
  gap:16px;
  align-items:center;
  min-height:82px;
  padding:18px 0;
  border-bottom:1px solid var(--sl-line);
  color:var(--sl-text)!important;
  transition:padding-left .2s ease,background .2s ease;
}
.sl-service-item:nth-child(odd){padding-right:28px;border-right:1px solid var(--sl-line);}
.sl-service-item:nth-child(even){padding-left:28px;}
.sl-service-item:hover{background:#f6f9f9;}
.sl-service-num{
  color:var(--sl-teal);
  font-size:11px;
  font-weight:900;
  letter-spacing:1.2px;
}
.sl-service-item strong{font-size:16px;font-weight:900;}
.sl-arrow{color:var(--sl-teal);font-size:22px;text-align:right;}
.sl-inline-action{margin-top:30px;}
.sl-inline-action a{
  color:var(--sl-text)!important;
  font-size:13px;
  font-weight:900;
  letter-spacing:.7px;
  text-transform:uppercase;
}
.sl-inline-action a span{color:var(--sl-teal);margin-left:8px;}

/* Local experience */
.sl-local{
  background:
    radial-gradient(circle at 85% 15%,rgba(0,124,146,.13),transparent 30%),
    var(--sl-dark);
  color:#fff;
}
.sl-local h2{color:#fff;}
.sl-copy-dark p{color:#9eabb2;}
.sl-coverage{
  display:grid;
  grid-template-columns:.72fr 1.28fr;
  gap:70px;
  margin-top:65px;
  padding-top:32px;
  border-top:1px solid rgba(255,255,255,.12);
}
.sl-small-label{
  margin:0 0 8px;
  color:var(--sl-teal);
  font-size:11px;
  font-weight:900;
  letter-spacing:1.5px;
  text-transform:uppercase;
}
.sl-coverage h3{
  margin:0;
  color:#fff;
  font-size:20px;
  font-weight:900;
}
.sl-area-list{display:flex;flex-wrap:wrap;gap:9px;}
.sl-area-list span{
  padding:9px 13px;
  border:1px solid rgba(255,255,255,.14);
  color:#d7e0e4;
  font-size:13px;
  font-weight:800;
}

/* Sectors */
.sl-sectors{background:#fff;}
.sl-sector-links{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--sl-line);
  border-left:1px solid var(--sl-line);
}
.sl-sector-links a{
  min-height:120px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:16px;
  padding:22px;
  border-right:1px solid var(--sl-line);
  border-bottom:1px solid var(--sl-line);
  color:var(--sl-text)!important;
  font-size:15px;
  font-weight:900;
}
.sl-sector-links a span{color:var(--sl-teal);font-size:20px;}
.sl-sector-links a:hover{background:#f5f8f8;}

/* FAQ + CTA */
.sl-bottom{background:#08161d;}
.sl-bottom h2{color:#fff;}
.sl-bottom-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:75px;
  align-items:start;
}
.sl-faq-list{margin-top:36px;border-top:1px solid rgba(255,255,255,.12);}
.sl-faq{border-bottom:1px solid rgba(255,255,255,.12);}
.sl-faq summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  justify-content:space-between;
  gap:24px;
  padding:25px 0;
  color:#fff;
  font-size:17px;
  line-height:1.45;
  font-weight:900;
}
.sl-faq summary::-webkit-details-marker{display:none;}
.sl-faq summary span{
  flex:0 0 auto;
  color:var(--sl-teal);
  font-size:25px;
  transition:transform .2s ease;
}
.sl-faq[open] summary span{transform:rotate(45deg);}
.sl-faq>div{padding:0 42px 25px 0;}
.sl-faq>div p{margin:0;color:#9ba8af;font-size:15px;line-height:1.75;}
.sl-cta-panel{
  padding-left:44px;
  border-left:3px solid var(--sl-teal);
}
.sl-cta-panel>p:not(.sl-eyebrow){
  margin:30px 0 0;
  color:#9ba8af;
  font-size:17px;
  line-height:1.72;
}

/* Archive, kept customer-facing for future use */
.semper-location-archive-hero{
  padding:150px 0 110px;
  background:
    radial-gradient(circle at 84% 15%,rgba(0,124,146,.22),transparent 28%),
    #071014;
  color:#fff;
}
.semper-location-archive-hero h1{
  max-width:1000px;
  margin:0;
  color:#fff;
  font-size:clamp(56px,6vw,92px);
  line-height:.92;
  letter-spacing:-4px;
  font-weight:900;
}
.semper-location-archive-hero p{
  max-width:800px;
  margin:28px 0 0;
  color:rgba(255,255,255,.76);
  font-size:19px!important;
  line-height:1.7;
}
.semper-location-directory{padding:95px 0;}
.semper-location-directory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.semper-location-card{border:1px solid var(--sl-line);background:#fff;}
.semper-location-card-link{
  min-height:280px;
  display:flex;
  flex-direction:column;
  padding:28px;
  color:var(--sl-text)!important;
}
.semper-location-card-region{
  color:var(--sl-teal);
  font-size:11px;
  font-weight:900;
  letter-spacing:1.4px;
  text-transform:uppercase;
}
.semper-location-card h2{margin:18px 0 0;font-size:34px;letter-spacing:-1.5px;}
.semper-location-card p{color:#65727a;font-size:15px!important;line-height:1.65;}
.semper-location-card-action{margin-top:auto;font-weight:900;}
.semper-location-card-action span{color:var(--sl-teal);}

@keyframes slHeroFade{
  0%,26%{opacity:1}
  33%,93%{opacity:0}
  100%{opacity:1}
}
@keyframes slHeroPan{
  from{transform:scale(1.03)}
  to{transform:scale(1.09) translate3d(.7%,-.3%,0)}
}

@media(max-width:1050px){
  .sl-two-col,
  .sl-local-grid,
  .sl-bottom-grid{grid-template-columns:1fr;gap:52px;}
  .sl-coverage{grid-template-columns:1fr;gap:28px;}
  .sl-sector-links{grid-template-columns:repeat(2,1fr);}
  .sl-cta-panel{padding-left:0;padding-top:45px;border-left:0;border-top:3px solid var(--sl-teal);}
  .semper-location-directory-grid{grid-template-columns:repeat(2,1fr);}
}

@media(max-width:700px){
  .sl-shell,
  .semper-location-shell{width:calc(100% - 38px);}
  .sl-section{padding:72px 0;}
  .sl-hero{min-height:780px;align-items:flex-end;}
  .sl-hero-inner{padding:110px 0 68px;}
  .sl-hero-overlay{
    background:
      linear-gradient(180deg,rgba(3,10,14,.32) 0%,rgba(3,10,14,.70) 34%,rgba(3,10,14,.96) 70%,rgba(3,10,14,1) 100%);
  }
  .sl-hero-slide img{object-position:64% center;filter:brightness(.80) contrast(1.05);}
  .sl-badge{margin-bottom:25px;font-size:10px;letter-spacing:1px;}
  .sl-hero h1{
    font-size:clamp(48px,13.5vw,66px);
    line-height:.91;
    letter-spacing:-3px;
  }
  .sl-hero-lead{margin-top:25px;font-size:17px!important;line-height:1.62;}
  .sl-actions{display:grid;grid-template-columns:1fr;width:100%;}
  .sl-btn{width:100%;min-height:58px;font-size:11px;}
  .sl-trust{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
  .sl-trust span{font-size:10px;line-height:1.35;}
  .semper-location-page h2{font-size:clamp(38px,10.5vw,51px);letter-spacing:-2px;}
  .sl-copy p{font-size:16px;}
  .sl-service-grid{grid-template-columns:1fr;}
  .sl-service-item,
  .sl-service-item:nth-child(odd),
  .sl-service-item:nth-child(even){
    padding:18px 0;
    border-right:0;
  }
  .sl-service-item{grid-template-columns:38px minmax(0,1fr) 24px;min-height:72px;}
  .sl-service-item strong{font-size:15px;}
  .sl-sector-links{grid-template-columns:1fr;}
  .sl-sector-links a{min-height:92px;}
  .sl-bottom-grid{gap:60px;}
  .sl-faq summary{font-size:15px;padding:22px 0;}
  .sl-faq>div p{font-size:14px;}
  .semper-location-directory-grid{grid-template-columns:1fr;}
}

@media(prefers-reduced-motion:reduce){
  .sl-hero-slide,
  .sl-hero-slide img{animation:none!important;}
  .sl-hero-slide:first-child{opacity:1!important;}
  .sl-hero-slide:not(:first-child){display:none;}
}
