
:root{
  --navy:#031827;
  --navy2:#071f30;
  --panel:#071c2a;
  --line:#34556b;
  --orange:#f6892d;
  --white:#f8fafb;
  --muted:#b9c6ce;
}
*{box-sizing:border-box}
html{background:var(--navy);scroll-behavior:smooth}
body{
  margin:0;color:var(--white);
  text-rendering:geometricPrecision;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;
  background:
    linear-gradient(rgba(3,24,39,.94),rgba(3,24,39,.97)),
    url("assets/blueprint-bg.jpg") center top/900px auto repeat;
}
a{color:inherit;text-decoration:none}
.exact-header{
  position:sticky;top:0;z-index:20;
  width:min(1536px,100%);margin:auto;position:relative;line-height:0;
  background:#031827;
}
.exact-header img{display:block;width:100%;height:auto}
.nav-hotspot{position:absolute;top:20%;height:58%;z-index:3}
.nav-home{left:35.2%;width:4.1%}.nav-about{left:40.2%;width:4.2%}
.nav-services{left:44.9%;width:5.5%}.nav-gallery{left:50.9%;width:5%}
.nav-reviews{left:56.7%;width:5%}.nav-contact{left:62.7%;width:5.3%}
.nav-phone{left:78%;top:4%;width:15.5%;height:79%}
.nav-hotspot:focus-visible{outline:2px solid var(--orange);outline-offset:-2px}

.page-hero{
  border-top:1px solid #294a61;border-bottom:1px solid #31566e;
  background:
    radial-gradient(circle at 78% 30%,rgba(21,74,105,.54),transparent 35%),
    linear-gradient(90deg,rgba(4,31,49,.96),rgba(7,42,63,.9));
  padding:54px 5vw 48px;
  position:relative;overflow:hidden;
}
.page-hero:after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.12;
  background-image:
    linear-gradient(rgba(255,255,255,.17) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.17) 1px,transparent 1px);
  background-size:42px 42px;
}
.hero-inner,.content{width:min(1180px,92vw);margin:auto;position:relative;z-index:1}
.eyebrow{
  color:var(--orange);font-size:12px;font-weight:700;letter-spacing:.28em;
  text-transform:uppercase;margin:0 0 8px;
}
h1{
  margin:0;font-size:clamp(34px,5vw,58px);line-height:.98;letter-spacing:.035em;
  text-transform:uppercase;text-shadow:0 3px 5px rgba(0,0,0,.35)
}
.hero-sub{
  max-width:760px;margin:15px 0 0;color:#d7e1e7;font-size:17px;line-height:1.65
}
.orange-rule{width:55px;height:3px;background:var(--orange);margin:16px 0 0}
.content{padding:42px 0 64px}
.section-title{
  display:flex;align-items:center;gap:14px;margin:0 0 22px;
  font-size:17px;letter-spacing:.22em;text-transform:uppercase
}
.section-title:before{content:"";width:42px;height:2px;background:var(--orange)}
.prose{
  background:rgba(5,26,40,.82);border:1px solid var(--line);
  padding:30px;max-width:980px;font-size:16px;line-height:1.78;color:#e3e9ed
}
.prose p:first-child{margin-top:0}.prose p:last-child{margin-bottom:0}
.prose strong{color:#fff}
.mission-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:22px}
.info-card{border:1px solid var(--line);background:rgba(4,24,38,.82);padding:24px}
.info-card h2{font-size:19px;letter-spacing:.15em;text-transform:uppercase;margin:0 0 12px;color:#fff}
.info-card h2:after{content:"";display:block;width:38px;height:2px;background:var(--orange);margin-top:10px}
.info-card p{color:#d4dee4;line-height:1.68;margin:0}
.signature{
  margin-top:26px;color:var(--orange);font-family:"Brush Script MT","Segoe Script",cursive;
  font-size:30px;transform:rotate(-1deg);display:inline-block
}

.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.service-card{
  border:1px solid var(--line);background:rgba(5,27,42,.88);padding:23px;
  position:relative;overflow:hidden
}
.service-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--orange)}
.service-card h2{margin:0 0 9px;font-size:18px;text-transform:uppercase;letter-spacing:.09em}
.service-card p{margin:0;color:#cfdae0;line-height:1.62;font-size:14px}

.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.review-card{
  border:1px solid var(--line);background:rgba(4,24,38,.86);padding:24px;position:relative
}
.review-card .quote{font-family:Georgia,serif;font-size:42px;color:var(--orange);line-height:.7}
.review-card p{font-size:15px;line-height:1.65;color:#e1e7eb}
.review-card footer{border-top:1px solid #294a5e;padding-top:12px;color:#b9c7cf;font-size:12px}
.review-card .stars{color:var(--orange);letter-spacing:.1em}
.review-placeholder{border-style:dashed;opacity:.76}
.review-placeholder p{color:#acbbc4;font-style:italic}

.contact-wrap{display:grid;grid-template-columns:.8fr 1.35fr;gap:28px}
.contact-details{border:1px solid var(--line);background:rgba(4,24,38,.84);padding:26px}
.contact-details h2{margin:0 0 18px;font-size:20px;letter-spacing:.12em;text-transform:uppercase}
.contact-details p,.contact-details a{color:#d3dfe5;line-height:1.65}
.contact-details strong{color:var(--orange)}
.contact-form{
  border:1px solid var(--line);background:rgba(4,24,38,.9);padding:26px
}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.field{display:flex;flex-direction:column;gap:7px;margin-bottom:15px}
.field.full{grid-column:1/-1}
label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#dbe4e9}
input,select,textarea{
  width:100%;border:1px solid #3a5c70;background:#041725;color:#fff;
  padding:12px 13px;font:inherit;font-size:15px;outline:none
}
input:focus,select:focus,textarea:focus{border-color:var(--orange)}
textarea{min-height:150px;resize:vertical}
.submit-btn{
  border:0;background:linear-gradient(#ff9639,#f17d1e);color:#fff;
  padding:13px 22px;font-weight:800;letter-spacing:.05em;cursor:pointer
}
.submit-btn:hover{filter:brightness(1.08)}
.note{font-size:11px;color:#9db0bc;margin:12px 0 0}

.page-footer{
  border-top:1px solid #31546a;padding:19px 5vw;text-align:center;color:#95a9b5;
  background:#031522;font-size:11px
}
.back-home{color:var(--orange);font-weight:700}
@media(max-width:760px){
  .exact-header{overflow:hidden}
  .page-hero{padding-top:38px}
  .mission-grid,.service-grid,.review-grid,.contact-wrap,.field-grid{grid-template-columns:1fr}
  .prose,.info-card,.service-card,.review-card,.contact-form,.contact-details{padding:20px}
}


.sub-mobile-header{display:none}
@media(max-width:760px){
  .exact-header{display:none}
  .sub-mobile-header{
    position:sticky;
    top:0;
    z-index:100;
    display:flex;
    min-height:64px;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:5px 15px;
    background:#031522;
    border-bottom:1px solid #2d5067;
  }
  .sub-mobile-brand{line-height:0}
  .sub-mobile-brand img{display:block;width:188px;max-width:67vw;height:auto}
  .sub-mobile-header details{position:relative}
  .sub-mobile-header summary{
    list-style:none;
    cursor:pointer;
    width:44px;height:44px;
    display:grid;place-items:center;
    border:1px solid #37586d;
    border-radius:3px;
    color:#fff;
    font-size:24px;
  }
  .sub-mobile-header summary::-webkit-details-marker{display:none}
  .sub-mobile-header nav{
    position:absolute;
    top:49px;
    right:0;
    width:210px;
    display:grid;
    background:#041a29;
    border:1px solid #385b70;
    box-shadow:0 12px 30px rgba(0,0,0,.42);
  }
  .sub-mobile-header nav a{
    padding:14px 16px;
    border-bottom:1px solid #24485e;
    color:#fff;
    text-transform:uppercase;
    letter-spacing:.08em;
    font-size:13px;
  }
  .sub-mobile-header nav a:last-child{border-bottom:0}
  .page-hero{padding:38px 20px 34px}
  .hero-inner,.content{width:100%}
  h1{font-size:36px}
  .hero-sub{font-size:15px;line-height:1.55}
  .content{padding:28px 16px 44px}
  .section-title{font-size:15px;letter-spacing:.14em}
  .mission-grid,.service-grid,.review-grid,.contact-wrap,.field-grid{grid-template-columns:1fr}
  .prose,.info-card,.service-card,.review-card,.contact-form,.contact-details{padding:19px}
  .service-card h2,.info-card h2{font-size:17px}
  input,select,textarea{font-size:16px}
}

html,button,input,select,textarea{
  text-rendering:geometricPrecision;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  font-synthesis:none;
}


@media(max-width:760px){
  .sub-mobile-header nav{
    max-height:calc(100vh - 70px);
    overflow-y:auto;
  }
  .sub-mobile-header .mobile-services-menu{
    border-bottom:1px solid #24485e;
  }
  .sub-mobile-header .mobile-services-menu > summary{
    width:auto;
    height:auto;
    min-height:46px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:12px 16px;
    border:0;
    border-radius:0;
    color:#fff;
    font-size:13px;
    text-transform:uppercase;
    letter-spacing:.08em;
    cursor:pointer;
  }
  .sub-mobile-header .mobile-services-menu > summary:after{
    content:"+";
    color:#f6892d;
    font-size:17px;
    font-weight:700;
  }
  .sub-mobile-header .mobile-services-menu[open] > summary:after{content:"−"}
  .sub-mobile-header .mobile-services-links{
    display:grid;
    background:#082335;
    border-top:1px solid #24485e;
  }
  .sub-mobile-header .mobile-services-links a{
    padding:10px 16px 10px 26px;
    border-bottom:1px solid #1e4157;
    color:#d7e2e8;
    font-size:11px;
    text-transform:none;
    letter-spacing:.025em;
  }
}
