:root {
  --navy:#183875;
  --navy2:#0b234f;
  --orange:#f5821f;
  --ink:#182235;
  --muted:#657087;
  --paper:#f5f8fc;
  --line:#dbe3ef;
  --white:#fff
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth
}

body {
  margin:0;
  font:16px/1.75 Arial,Helvetica,sans-serif;
  color:var(--ink);
  background:#fff
}

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

.site-header {
  min-height:84px;
  display:flex;
  align-items:center;
  gap:28px;
  padding:10px max(5vw,22px);
  position:sticky;
  top:0;
  z-index:20;
  background:rgba(255,255,255,.97);
  border-bottom:1px solid var(--line)
}

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

.brand img {
  width:60px;
  height:60px;
  object-fit:contain;
  border-radius:50%
}

.brand span {
  display:flex;
  flex-direction:column
}

.brand strong {
  font-size:1.15rem;
  color:var(--navy)
}

.brand small {
  color:var(--muted)
}

nav {
  display:flex;
  gap:24px;
  font-weight:700;
  color:var(--navy)
}

nav a:hover,.toc a:hover {
  color:var(--orange)
}

.phone,.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  padding:12px 18px;
  font-weight:800
}

.phone,.primary {
  background:var(--orange);
  color:#fff
}

.secondary {
  border:2px solid #fff;
  color:#fff
}

.blog-hero {
  padding:86px max(7vw,28px);
  background:var(--navy2);
  color:#fff
}

.eyebrow {
  text-transform:uppercase;
  letter-spacing:.12em;
  color:var(--orange);
  font-size:.82rem;
  font-weight:800;
  margin:0 0 12px
}

.blog-hero h1,.article-hero h1 {
  font-size:clamp(2.5rem,5vw,5rem);
  line-height:1.02;
  letter-spacing:-.045em;
  margin:0;
  max-width:980px
}

.blog-hero p {
  max-width:740px;
  font-size:1.18rem;
  color:#d6e0ee
}

.article-list {
  padding:80px max(7vw,28px)
}

.article-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:26px
}

.article-card {
  border:1px solid var(--line);
  border-radius:20px;
  overflow:hidden;
  background:#fff;
  transition:.2s;
  box-shadow:0 12px 35px rgba(24,56,117,.07)
}

.article-card:hover {
  transform:translateY(-4px);
  box-shadow:0 22px 50px rgba(24,56,117,.12)
}

.article-card img {
  display:block;
  width:100%;
  aspect-ratio:16/9;
  object-fit:cover
}

.article-card div {
  padding:25px
}

.article-card span,.meta {
  color:var(--orange);
  font-weight:800;
  font-size:.85rem;
  text-transform:uppercase;
  letter-spacing:.06em
}

.article-card h2 {
  font-size:1.55rem;
  line-height:1.2;
  color:var(--navy2);
  margin:9px 0
}

.article-card p {
  color:var(--muted);
  margin:0 0 14px
}

.article-card b {
  color:var(--navy)
}

.article-hero {
  min-height:520px;
  padding:90px max(7vw,28px);
  display:flex;
  align-items:flex-end;
  color:#fff;
  background-position:center;
  background-size:cover;
  position:relative
}

.article-hero:before {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(6,22,52,.92),rgba(6,22,52,.3))
}

.article-hero>div {
  position:relative;
  max-width:930px
}

.article-hero .meta {
  color:#ffad63
}

.article-hero p {
  font-size:1.18rem;
  max-width:760px;
  color:#e1e9f4
}

.actions {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:25px
}

.article-shell {
  display:grid;
  grid-template-columns:minmax(0,1fr) 300px;
  gap:70px;
  max-width:1260px;
  margin:auto;
  padding:75px 28px
}

.article-body {
  max-width:790px
}

.article-body h2 {
  font-size:2rem;
  line-height:1.2;
  color:var(--navy2);
  margin:55px 0 16px;
  scroll-margin-top:110px
}

.article-body h3 {
  font-size:1.3rem;
  color:var(--navy);
  margin:30px 0 9px
}

.article-body p,.article-body li {
  color:#3f4b60
}

.article-body ul {
  padding-left:22px
}

.callout {
  background:var(--paper);
  border-left:5px solid var(--orange);
  padding:22px 24px;
  border-radius:0 14px 14px 0;
  margin:30px 0
}

.article-body img {
  width:100%;
  border-radius:18px;
  margin:26px 0
}

.toc {
  position:sticky;
  top:112px;
  align-self:start;
  border:1px solid var(--line);
  border-radius:16px;
  padding:22px;
  background:#fff
}

.toc strong {
  display:block;
  color:var(--navy2);
  font-size:1.12rem;
  margin-bottom:10px
}

.toc a {
  display:block;
  padding:7px 0;
  color:var(--muted);
  line-height:1.35
}

.side-cta {
  margin-top:22px;
  padding:22px;
  border-radius:16px;
  background:var(--navy2);
  color:#fff
}

.side-cta strong {
  font-size:1.15rem
}

.side-cta p {
  color:#d6e0ee
}

.side-cta .button {
  width:100%
}

.faq details {
  border-top:1px solid var(--line);
  padding:17px 0
}

.faq summary {
  cursor:pointer;
  font-weight:800;
  color:var(--navy)
}

.article-footer {
  background:var(--paper);
  padding:55px 28px;
  text-align:center
}

.article-footer h2 {
  color:var(--navy2);
  font-size:2rem;
  margin:0 0 10px
}

.site-footer {
  background:#081936;
  color:#bac8dd;
  padding:35px max(7vw,28px)
}

.site-footer strong {
  color:#fff
}

.breadcrumb {
  position:absolute;
  top:22px;
  left:max(7vw,28px);
  z-index:2;
  color:#dce5f4;
  font-size:.9rem
}

.breadcrumb a {
  text-decoration:underline
}

@media(max-width:900px) {
  nav {
    display:none
  }
  .article-grid {
    grid-template-columns:1fr
  }
  .article-shell {
    grid-template-columns:1fr
  }
  .toc {
    position:static;
    order:-1
  }
  .article-hero {
    min-height:470px
  }
  .brand small {
    display:none
  }
}

@media(max-width:580px) {
  .site-header {
    min-height:74px;
    padding:8px 15px
  }
  .brand img {
    width:52px;
    height:52px
  }
  .brand strong {
    font-size:1rem
  }
  .phone {
    font-size:.82rem;
    padding:9px 10px
  }
  .blog-hero,.article-list {
    padding-left:20px;
    padding-right:20px
  }
  .article-hero {
    padding:75px 20px 45px
  }
  .breadcrumb {
    left:20px
  }
  .article-shell {
    padding:45px 20px;
    gap:35px
  }
  .article-body h2 {
    font-size:1.65rem
  }
  .actions {
    flex-direction:column
  }
  .button {
    width:100%
  }
}
