:root {
  --teal:#006d5b;
  --blue:#367588;
  --pale:#eaf5f6;
  --ink:#173238;
  --muted:#5c6c70;
  --line:#d9e7e8
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth 
}
 
body { 
  margin:0;
  color:var(--ink);
  font-family:'Nunito Sans',Arial,sans-serif;
  font-size:16px;
  line-height:1.7;
  background:#fff
}

a {
  color:inherit;
  text-decoration:none
}

.site-header {
  border-bottom:1px solid var(--line);
  background:#fff;
  position:sticky;
  top:0;
  z-index:10
}

.topline {
  font-size:13px;
  color:var(--muted);
  padding:9px 0;
  border-bottom:1px solid #edf2f2
}

.topline-inner,.nav-inner,.footer-inner {
  width:min(calc(100% - 40px),1120px);
  margin:auto
}

.topline-inner {
  display:flex;
  justify-content:flex-end;
  gap:24px
}

.topline a:hover {
  color:var(--teal)
}

.navbar {
  padding:17px 0;
  background:#fff
}

.nav-inner {
  display:flex;
  align-items:center;
  gap:24px
}

.brand {
  display:flex;
  align-items:center;
  gap:12px;
  margin-right:auto
}

.brand-mark {
  width:48px;
  height:48px;
  border-radius:50%;
  background:var(--teal);
  color:#fff;
  display:grid;
  place-items:center;
  font-family:Montserrat,sans-serif;
  font-size:11px;
  line-height:1.1;
  text-align:center;
  font-weight:700;
  letter-spacing:1px
}

.brand-name {
  font-family:Montserrat,sans-serif;
  font-weight:700;
  font-size:18px;
  line-height:1.15;
  white-space:nowrap
}

.brand-name small {
  display:block;
  color:var(--muted);
  font:500 11px 'Nunito Sans',sans-serif;
  letter-spacing:1px;
  text-transform:uppercase
}

.nav-links {
  display:flex;
  align-items:center;
  gap:20px;
  color:var(--ink);
  font-size:15px;
  white-space:nowrap
}

.nav-links a:hover,.nav-links .active {
  color:var(--teal)
}

.nav-links .nav-button {
  color:#fff;
  background:var(--teal);
  padding:11px 17px;
  border-radius:4px;
  min-width:150px;
  text-align:center
}

.menu-toggle {
  display:none;
  border:0;
  background:none;
  color:var(--teal);
  font-size:28px
}

.hero {
  background:linear-gradient(90deg,rgba(0,52,55,.8),rgba(0,52,55,.12)),url('https://images.unsplash.com/photo-1497366754035-f200968a6e72?auto=format&fit=crop&w=1800&q=85') center/cover;
  min-height:480px;
  color:#fff;
  display:flex;
  align-items:center
}

.hero-inner {
  width:min(calc(100% - 40px),1120px);
  margin:auto
}

.eyebrow {
  font-family:Montserrat,sans-serif;
  text-transform:uppercase;
  letter-spacing:2px;
  font-size:13px;
  font-weight:700;
  color:#86d4c5;
  margin:0 0 14px
}

.hero h1 {
  max-width:700px;
  margin:0 0 20px;
  font:600 clamp(42px,6vw,72px)/1.05 Montserrat,sans-serif;
  letter-spacing:-2px
}

.hero p {
  max-width:590px;
  font-size:20px;
  line-height:1.55;
  margin:0 0 28px
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:13px 20px;
  border-radius:4px;
  background:var(--teal);
  color:#fff;
  font:700 13px Montserrat,sans-serif;
  letter-spacing:.5px
}

.button:hover {
  background:var(--blue);
  color:#fff
}

.intro {
  padding:90px 0
}

.content-width {
  width:min(calc(100% - 40px),960px);
  margin:auto
}

.intro-grid,.split,.contact-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  align-items:center
}

.section-label {
  color:var(--teal);
  font:700 13px Montserrat,sans-serif;
  letter-spacing:2px;
  text-transform:uppercase
}

.section-title {
  font:600 clamp(32px,4vw,52px)/1.12 Montserrat,sans-serif;
  letter-spacing:-1.5px;
  margin:10px 0 20px
}

.lead {
  font-size:20px;
  line-height:1.6;
  color:var(--muted)
}

.soft-panel {
  background:var(--pale);
  padding:36px;
  border-left:5px solid var(--teal)
}

.soft-panel h3 {
  margin:0 0 10px;
  font:600 25px Montserrat,sans-serif
}

.soft-panel p {
  margin:0;
  color:var(--muted)
}

.page-hero {
  background:var(--pale);
  padding:70px 0
}

.page-hero h1 {
  margin:0;
  font:600 clamp(38px,5vw,60px)/1.1 Montserrat,sans-serif
}

.page-hero p {
  max-width:650px;
  color:var(--muted);
  font-size:19px;
  margin:18px 0 0
}

.prose {
  padding:80px 0
}

.prose h2 {
  font:600 30px/1.2 Montserrat,sans-serif;
  margin:0 0 20px
}

.prose h3 {
  font:600 21px/1.3 Montserrat,sans-serif;
  color:var(--teal);
  margin:32px 0 10px
}

.prose p {
  color:var(--muted);
  margin:0 0 18px
}

.prose ul {
  padding-left:22px;
  color:var(--muted);
  margin-top:0
}

.prose li {
  padding:4px 0
}

.service-list {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:20px 45px
}

.service-list ul {
  margin:0
}

.info-card {
  border:1px solid var(--line);
  padding:25px;
  background:#fff
}

.info-card h3 {
  margin-top:0
}

.callout {
  background:var(--teal);
  color:#fff;
  padding:36px;
  border-radius:4px;
  margin-top:45px
}

.callout p {
  color:#e2f3f0
}

.article {
  max-width:760px;
  margin:auto
}

.article .dropcap:first-letter {
  font:600 60px/1 Montserrat,sans-serif;
  color:var(--teal);
  float:left;
  padding:8px 10px 0 0
}

.footer {
  background:#153a40;
  color:#deeeee;
  margin-top:70px;
  padding:5px 0 5px
}

.footer-inner {
  display:flex;
  justify-content:space-between;
  gap:35px;
  align-items:center
}

.footer p {
  color:#abc4c6;
  margin:8px 0 0
}

.footer-links {
  display:flex;
  gap:20px;
  align-items:flex-start
}

.footer-links a:hover {
  color:#fff
}

.footer-recognition {
  flex:0 0 550px;
  width:550px;
  max-width:100%;
  margin-left:auto;
  height:240px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 2px 8px rgba(0,0,0,.16)
}

.footer-recognition img {
  display:block;
  width:auto;
  height:240px;
  max-width:100%;
  object-fit:contain;
}

.footer-bottom {
  width:min(calc(100% - 40px),1120px);
  margin:30px auto 0;
  border-top:1px solid #386269;
  color:#abc4c6;
  font-size:13px;
  display:flex;
  justify-content:space-between
}

@media(max-width:800px) {
  .topline {
    display:none
  }
  .navbar {
    padding:13px 0
  }
  .menu-toggle {
    display:block
  }
  .nav-links {
    display:none;
    position:absolute;
    top:75px;
    left:0;
    right:0;
    background:#fff;
    padding:15px 20px 22px;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    border-bottom:1px solid var(--line);
    box-shadow:0 8px 20px #1238
  }
  .nav-links.open {
    display:flex
  }
  .nav-links a {
    padding:10px 0
  }
  .nav-links .nav-button {
    text-align:center
  }
  .hero {
    min-height:520px
  }
  .hero p {
    font-size:18px
  }
  .intro,.prose {
    padding:58px 0
  }
  .intro-grid,.split,.contact-grid {
    grid-template-columns:1fr;
    gap:30px
  }
  .service-list {
    grid-template-columns:1fr
  }
  .footer-inner {
    flex-direction:column
  }
  .footer-recognition {
    flex:0 0 auto;
    width:min(550px,100%);
    height:auto;
    margin-left:0
  }
  .footer-recognition img {
    width:100%;
    height:auto
  }
  .footer-bottom {
    flex-direction:column;
    gap:7px
  }
}

.location-section {
  padding-top:70px
}

.location-intro {
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:55px;
  align-items:center;
  margin-bottom:65px
}

.location-intro h2,.map-block h2 {
  font:600 31px/1.2 Montserrat,sans-serif;
  margin:0 0 20px
}

.building-photo {
  margin:0
}

.building-photo img {
  display:block;
  width:100%;
  height:330px;
  object-fit:cover;
  border-radius:4px
}

.building-photo figcaption {
  color:var(--muted);
  font-size:13px;
  margin-top:9px
}

.location-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  align-items:center
}

.soft-panel address {
  color:var(--muted);
  font-style:normal;
  margin:0
}

.soft-panel .button {
  color:#fff
}

.map-block {
  margin-top:75px
}

.map-block>div:first-child {
  margin-bottom:24px
}

.map-frame {
  height:360px;
  border:1px solid var(--line);
  border-radius:4px;
  overflow:hidden;
  box-shadow:0 8px 25px rgba(23,50,56,.08)
}

.map-frame iframe {
  display:block;
  width:100%;
  height:100%;
  border:0
}

@media(max-width:800px) {
  .location-intro,.location-grid {
    grid-template-columns:1fr;
    gap:30px
  }
  .location-intro {
    margin-bottom:50px
  }
  .location-intro h2,.map-block h2 {
    font-size:27px
  }
  .building-photo img {
    height:260px
  }
  .map-block {
    margin-top:55px
  }
  .map-frame {
    height:320px
  }
}

.contact-portrait {
  margin:34px 0 0;
  max-width:250px
}

.contact-portrait img {
  display:block;
  width:100%;
  height:300px;
  object-fit:cover;
  object-position:center top;
  border-radius:4px
}

.contact-portrait figcaption {
  color:var(--muted);
  font-size:13px;
  margin-top:9px
}

@media(max-width:800px) {
  .contact-portrait {
    max-width:230px
  }
}

.contact-hero {
  background:var(--pale);
  padding:72px 0 78px
}

.contact-hero-grid {
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:80px;
  align-items:center
}

.contact-hero-copy h1 {
  max-width:620px;
  font:600 clamp(40px,5vw,64px)/1.08 Montserrat,sans-serif;
  letter-spacing:-1.8px;
  margin:10px 0 22px
}

.contact-lead {
  max-width:560px;
  color:var(--muted);
  font-size:19px;
  line-height:1.7;
  margin:0 0 28px
}

.contact-actions {
  display:flex;
  align-items:center;
  gap:23px;
  flex-wrap:wrap
}

.contact-actions .button {
  background:var(--teal)
}

.text-link {
  color:var(--teal);
  font-weight:700;
  text-decoration:underline;
  text-decoration-color:#9ccbc1;
  text-underline-offset:4px
}

.text-link:hover {
  color:var(--blue)
}

.contact-hero-image {
  margin:0
}

.contact-hero-image img {
  display:block;
  width:100%;
  height:490px;
  object-fit:cover;
  object-position:center top;
  border-radius:5px;
  box-shadow:0 18px 35px rgba(23,50,56,.16)
}

.contact-hero-image figcaption {
  color:var(--muted);
  font-size:13px;
  margin-top:10px
}

.contact-options {
  padding:86px 0 96px
}

.contact-options-heading {
  text-align:center;
  margin-bottom:38px
}

.contact-options-heading h2,.contact-bottom-cta h2 {
  font:600 clamp(30px,4vw,46px)/1.15 Montserrat,sans-serif;
  letter-spacing:-1px;
  margin:8px 0 12px
}

.contact-options-heading>p:last-child {
  color:var(--muted);
  font-size:18px;
  margin:0
}

.contact-warning {
  max-width:820px;
  margin:0 auto;
  color:var(--muted);
  font-size:13px;
  line-height:1.7;
  text-align:center
}

.contact-card-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px
}

.contact-card {
  border:1px solid var(--line);
  border-radius:5px;
  padding:32px;
  background:#fff;
  box-shadow:0 8px 25px rgba(23,50,56,.05)
}

.contact-card-primary {
  background:#eaf5f6;
  border-color:#c7e2e4
}

.contact-card-icon {
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border-radius:50%;
  background:var(--teal);
  color:#fff;
  font-size:20px;
  margin-bottom:24px
}

.contact-card .section-label {
  margin-bottom:9px
}

.contact-card h3 {
  font:600 23px/1.25 Montserrat,sans-serif;
  margin:0 0 15px
}

.contact-card p:not(.section-label) {
  color:var(--muted);
  line-height:1.7;
  margin:0 0 20px
}

.contact-card .button {
  margin-top:3px
}

.contact-address {
  font-weight:700;
  color:var(--ink)!important
}

.contact-bottom-cta {
  background:#153a40;
  color:#fff;
  padding:58px 0 64px;
  text-align:center
}

.contact-bottom-cta .section-label {
  color:#86d4c5
}

.contact-bottom-cta h2 {
  margin-bottom:23px
}

.contact-bottom-cta .button {
  background:#86d4c5;
  color:#153a40
}

.contact-bottom-cta .button:hover {
  background:#fff
}

@media(max-width:800px) {
  .contact-hero {
    padding:55px 0 62px
  }
  .contact-hero-grid {
    grid-template-columns:1fr;
    gap:38px
  }
  .contact-hero-copy h1 {
    font-size:42px
  }
  .contact-lead {
    font-size:17px
  }
  .contact-hero-image img {
    height:430px
  }
  .contact-options {
    padding:60px 0 70px
  }
  .contact-options-heading>p:last-child {
    font-size:16px
  }
  .contact-card-grid {
    grid-template-columns:1fr;
    gap:18px
  }
  .contact-card {
    padding:28px
  }
  .contact-bottom-cta {
    padding:48px 0 54px
  }
}

.footer-address {
  font-style:normal;
  color:#abc4c6;
  margin-top:4px;
  font-size:13px;
  line-height:1.5
}

.services-callout {
  background:#006d5b;
  color:#fff
}

.services-callout h3,.services-callout p {
  color:#fff!important
}

.services-callout h3 {
  margin-top:0
}

.contact-hero-image {
  position:relative;
  z-index:0;
  padding:10px 10px 13px;
  background:#fff;
  border:1px solid #c7e2e4;
  border-radius:8px;
  box-shadow:0 18px 35px rgba(23,50,56,.14)
}

.contact-hero-image::before {
  content:'';
  position:absolute;
  inset:-8px;
  z-index:-1;
  border:1px solid rgba(0,109,91,.35);
  border-radius:12px
}

.contact-hero-image img {
  border:1px solid #e1eeee;
  border-radius:4px;
  box-shadow:none
}

.contact-hero-image figcaption {
  padding:0 3px
}
