:root{
  --slate:#253746;
  --blue:#768692;
  --ink:#0f1720;
  --muted:#4b5563;
  --bg:#ffffff;
  --bg-muted:#f6f8fa;
  --card:#ffffff;
  --border:rgba(15,23,32,.10);
  --shadow: 0 10px 30px rgba(15,23,32,.08);
  --radius:18px;

  --font-head: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  --font-body: "Roboto", system-ui, -apple-system, Segoe UI, Arial, sans-serif;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--bg);
  line-height:1.6;
}

a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

.container{max-width:1200px;margin:0 auto;padding:0 22px}
.container.narrow{max-width:820px}
.center{text-align:center}
.mt-24{margin-top:24px}
.mt-32{margin-top:32px}
.small{font-size:.95rem}
.muted{color:var(--muted)}

.section{padding:72px 0}
.section-muted{background:var(--bg-muted)}
.section-head{margin-bottom:26px}
.section-head p{max-width:780px;color:var(--muted);margin:12px 0 0}

h1,h2,h3{
  font-family:var(--font-head);
  letter-spacing:-0.02em;
  margin:0 0 14px;
  line-height:1.1;
}
h1{font-size:3rem}
h2{font-size:2.1rem}
h3{font-size:1.35rem}

.lead{font-size:1.25rem;color:var(--muted)}
.bullets{padding-left:18px;margin:14px 0 0}
.bullets li{margin:10px 0}
.bullets.compact li{margin:8px 0}

.card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}
.pad{padding:22px}
.card.insight{padding:22px}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:12px 18px;
  border-radius:999px;
  font-weight:600;
  border:1px solid transparent;
  transition:transform .12s ease, background .12s ease, border-color .12s ease, opacity .12s ease;
  cursor:pointer;
}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0px)}
.btn-full{width:100%}
.btn-primary{
  background:var(--slate);
  color:#fff;
}
.btn-primary:hover{background:#1d2f3d}
.btn-ghost{
  background:transparent;
  border-color:rgba(37,55,70,.25);
  color:var(--slate);
}
.btn-ghost:hover{background:rgba(37,55,70,.06)}
.btn-ghost-light{
  border-color:#fff;
  color:#fff;
  background-color:rgba(255,255,255,.08);
}
.btn-ghost-light:hover{
  background-color:rgba(255,255,255,.2);
  border-color:#fff;
  color:#fff;
}

.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(255,255,255,.95);
  backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid rgba(15,23,32,.08);
  min-height:120px;
  padding:10px 0;
  display:flex;
  align-items:center;
  overflow:visible;
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  width:100%;
  position:relative;
  overflow:visible;
}
.brand{display:flex;align-items:center;gap:12px}
.site-header .brand{
  flex:0 0 auto;
  display:flex;
  align-items:center;
}

.brand-mark{
  width:34px;height:34px;border-radius:10px;
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(37,55,70,.08);
  color:var(--slate);
  font-weight:800;
  font-family:var(--font-head);
}

.brand-text{
  font-weight:800;
  font-family:var(--font-head);
  letter-spacing:-0.02em;
}

.site-logo{
  height:96px;
  width:auto;
  display:block;
}

.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.site-nav{
  display:flex;align-items:center;gap:18px;
}
.site-nav a{color:rgba(15,23,32,.80);font-weight:600}
.site-nav a.active{color:var(--slate)}
.site-nav .btn{margin-left:6px;color:#fff}
.resource-buttons{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}

.client-resources{
  position:relative;
  display:flex;
  align-items:center;
}
.client-resources-toggle{
  white-space:nowrap;
  background:var(--slate);
  color:#fff;
  border-color:var(--slate);
}
.client-resources-toggle:hover{
  background:#1d2f3d;
  border-color:#1d2f3d;
}
.client-resources-toggle:active{
  background:#162534;
  border-color:#162534;
}
.client-resources-toggle:focus-visible{
  outline:3px solid rgba(37,55,70,.35);
  outline-offset:2px;
}
.client-resources-menu{
  position:absolute;
  top:calc(100% + 10px);
  right:0;
  width:280px;
  padding:12px;
  border-radius:14px;
  background:#fff;
  border:1px solid rgba(15,23,32,.12);
  box-shadow:var(--shadow);
  z-index:200;
}
.client-resources-item{
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px 12px;
  border-radius:10px;
  color:var(--slate);
  font-weight:600;
}
.client-resources-item img{height:22px;width:auto}
.client-resources-item:hover{background:rgba(37,55,70,.06)}

/* hamburger — hidden on desktop */
.nav-toggle{
  display:none;
  width:44px;height:44px;
  border-radius:12px;
  border:1px solid rgba(15,23,32,.10);
  background:#fff;
  padding:0;
  flex-shrink:0;
}
.nav-toggle span{display:block;height:2px;background:var(--slate);margin:6px 10px;border-radius:2px}

.hero{
  position:relative;
  min-height:560px;
  display:flex;
  align-items:center;
  overflow:hidden;
}
.hero-bg{
  position:absolute;inset:0;
  background-size:cover;
  background-position:center;
  transform:scale(1.02);
}
.hero-bg, .hero-media{ position:absolute; inset:0; z-index:0; }
.hero-media, .hero-media img, .hero-image{
  width:100%; height:100%;
  object-fit:cover; object-position:center;
  display:block;
}
.hero-inner{position:relative;z-index:2;padding:74px 0;max-width:860px}
.hero-inner,
.hero-inner .lead,
.hero-note{color:#fff}
.hero-inner h1,
.hero-inner .lead,
.hero-note{text-shadow:0 2px 12px rgba(15,23,32,.35)}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.hero-note{margin-top:18px;font-weight:600}
.hero-next{
  max-width:620px;
  width:100%;
  background:rgba(255,255,255,.96);
  color:var(--ink);
  border-color:rgba(15,23,32,.12);
}
.hero-next h2{
  font-size:1.5rem;
  margin-bottom:10px;
  color:var(--slate);
  text-shadow:none;
}
.hero-next .bullets{ margin-top:6px; }
.hero-next .bullets li{ color:var(--ink); }

.grid{display:grid;gap:18px}
.grid.tiers{grid-template-columns:repeat(3, minmax(0,1fr))}
.grid.profiles{grid-template-columns:repeat(3, minmax(0,1fr))}
.grid.insights{grid-template-columns:repeat(3, minmax(0,1fr))}
.grid.features{grid-template-columns:repeat(2, minmax(0,1fr))}
.grid.resources{grid-template-columns:repeat(2, minmax(0,1fr))}
.grid.two-col{grid-template-columns:repeat(2, minmax(0,1fr))}

.tier{display:flex;flex-direction:column;overflow:hidden}
.tier-top{padding:22px 22px 12px}
.tier-icon{width:56px;height:56px;margin-bottom:10px;opacity:.92}
.tier-sub{font-weight:800;color:var(--slate);margin-top:-6px}
.tier-desc{color:var(--muted);margin-top:8px}
.tier-body{padding:0 22px 18px;color:var(--ink)}
.tier-label{font-weight:800;color:rgba(15,23,32,.72);margin-top:12px;margin-bottom:6px}
.tier-foot{padding:18px 22px 22px;border-top:1px solid rgba(15,23,32,.08)}
.tier-invest{color:rgba(15,23,32,.72);margin-bottom:12px}

.profile img{width:100%;height:260px;object-fit:cover;object-position:50% 20%}
.profile-body{padding:16px 18px 20px}
.profile-body p{color:var(--muted);margin:0}

.feature{
  display:flex;
  gap:14px;
  align-items:flex-start;
  padding:18px;
  border:1px solid rgba(15,23,32,.08);
  border-radius:16px;
  background:#fff;
  box-shadow:var(--shadow);
}
.feature img{width:54px;height:54px;opacity:.92}
.feature p{margin:6px 0 0;color:var(--muted)}

.resource-card{padding:22px;display:block}
.resource-card p{color:var(--muted);margin:8px 0 0}
.pill{
  display:inline-block;
  margin-top:14px;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(118,134,146,.14);
  color:rgba(37,55,70,.92);
  font-weight:700;
  font-size:.9rem;
}

.site-footer{
  background:#0f1720;
  color:rgba(255,255,255,.92);
  padding:24px 0;
}
.footer-inner{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.footer-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
}
.footer-brand{font-family:var(--font-head);font-weight:800;font-size:1.1rem}
.footer-muted{color:rgba(255,255,255,.68);margin-top:4px}
.footer-title{font-weight:600;margin-bottom:4px;color:#fff}
.footer-contact{
  display:flex;
  flex-direction:column;
  gap:6px;
  font-size:.9rem;
}
.footer-contact-line{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  color:rgba(255,255,255,.78);
}
.footer-contact-line span[aria-hidden="true"]{
  color:rgba(255,255,255,.55);
}
.footer-contact a{color:rgba(255,255,255,.78)}
.footer-contact a:hover{color:#fff}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
  border-top:1px solid rgba(255,255,255,.12);
  padding-top:10px;
}
.footer-legal{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  font-size:.82rem;
  color:rgba(255,255,255,.78);
}
.footer-legal a{color:rgba(255,255,255,.78)}
.footer-legal a:hover{color:#fff}
.footer-affiliations{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.footer-affiliation-logos{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.footer-affiliation-logos img{
  height:30px;
  width:auto;
  display:block;
}
.embed{overflow:hidden}

/* =========================
   BLOG READABILITY (SCOPED)
   ========================= */
body.blog-page main.section > .container{
  padding-top:44px;
  padding-bottom:44px;
  font-size:18px;
  line-height:1.75;
}

body.blog-page main.section > .container.narrow{
  max-width:860px;
}

body.blog-page main.section > .container h1{
  line-height:1.12;
  margin:10px 0 18px;
}

body.blog-page main.section > .container h2{
  line-height:1.2;
  margin:40px 0 14px;
}

body.blog-page main.section > .container h3{
  line-height:1.25;
  margin:28px 0 12px;
}

body.blog-page main.section > .container p{
  margin:0 0 18px;
}

body.blog-page main.section > .container ul,
body.blog-page main.section > .container ol{
  margin:0 0 18px 22px;
  padding:0;
}

body.blog-page main.section > .container li{
  margin:0 0 10px;
}

body.blog-page main.section > .container a{
  color:#14B8A6;
  text-decoration:underline;
  text-underline-offset:2px;
  text-decoration-thickness:2px;
}

body.blog-page main.section > .container a:visited{
  color:#0F766E;
}

body.blog-page main.section > .container a:hover{
  color:#0B1F3A;
  text-decoration-thickness:3px;
}

body.blog-page main.section > .container a:focus{
  outline:3px solid rgba(20,184,166,.35);
  outline-offset:2px;
  border-radius:4px;
}

body.blog-page main.section > .container .quick-answer,
body.blog-page main.section > .container .callout,
body.blog-page main.section > .container .quick-answer-box,
body.blog-page main.section > .container .box,
body.blog-page main.section > .container .card{
  padding:22px 24px;
  margin:18px 0 30px;
  border-radius:16px;
}

body.blog-page main.section > .container .quick-answer ul,
body.blog-page main.section > .container .callout ul,
body.blog-page main.section > .container .quick-answer-box ul,
body.blog-page main.section > .container .box ul,
body.blog-page main.section > .container .card ul{
  margin:12px 0 0 20px;
}

body.blog-page main.section > .container .quick-answer li,
body.blog-page main.section > .container .callout li,
body.blog-page main.section > .container .quick-answer-box li,
body.blog-page main.section > .container .box li,
body.blog-page main.section > .container .card li{
  margin-bottom:8px;
}

/* =========================
   MOBILE  (≤ 980px)
   Single authoritative block — do not add additional @media blocks below this.
   ========================= */
@media (max-width: 980px) {

  h1 { font-size: 2.4rem }

  /* collapse all multi-column grids to single column */
  .grid.tiers,
  .grid.profiles,
  .grid.insights,
  .grid.features,
  .grid.resources,
  .grid.two-col { grid-template-columns: 1fr }

  /* header */
  .site-header {
    min-height: 88px;
    padding: 8px 0;
    background: #fff;
    overflow: visible;
  }
  .header-inner {
    position: relative;
    overflow: visible;
  }

  /* logo */
  .site-logo { height: 56px }

  /* hamburger button — shown on mobile */
  .nav-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border-radius: 12px;
    background: #fff;
    border: 1px solid rgba(37,55,70,0.15);
    box-shadow: 0 4px 12px rgba(0,0,0,0.10);
    position: relative;
    flex-shrink: 0;
  }
  /* hamburger lines — positioned absolutely inside the button */
  .nav-toggle span {
    position: absolute;
    left: 50%;
    width: 20px;
    height: 2px;
    background: #253746;
    border-radius: 2px;
    margin: 0;
    transform: translateX(-50%);
    transition: transform 180ms ease, opacity 180ms ease;
  }
  .nav-toggle span:nth-child(1) { top: 14px }
  .nav-toggle span:nth-child(2) { top: 21px }
  .nav-toggle span:nth-child(3) { top: 28px }

  /* X state */
  .site-header.open .nav-toggle span:nth-child(1) {
    top: 21px;
    transform: translateX(-50%) rotate(45deg);
  }
  .site-header.open .nav-toggle span:nth-child(2) { opacity: 0 }
  .site-header.open .nav-toggle span:nth-child(3) {
    top: 21px;
    transform: translateX(-50%) rotate(-45deg);
  }

  /* nav — hidden by default, visible when header has .open */
  .site-nav {
    display: none;
  }
  .site-header.open .site-nav {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
    position: absolute;
    top: calc(100% + 8px);
    left: 16px;
    right: 16px;
    background: #fff;
    border: 1px solid rgba(37,55,70,0.12);
    border-radius: 16px;
    box-shadow: 0 12px 32px rgba(0,0,0,0.16);
    padding: 12px;
    z-index: 200;
  }

  /* nav links inside open menu */
  .site-header.open .site-nav a {
    display: block;
    padding: 11px 14px;
    border-radius: 10px;
    color: #253746;
    font-weight: 600;
    white-space: normal;
  }
  /* preserve white text on primary CTA button */
  .site-header.open .site-nav a.btn-primary {
    color: #fff;
  }
  .site-header.open .site-nav a:hover,
  .site-header.open .site-nav a:active { background: rgba(37,55,70,0.06) }
  .site-header.open .site-nav a.btn-primary:hover { background: #1d2f3d }

  /* CTA button inside mobile menu */
  .site-header.open .site-nav .btn {
    margin: 6px 0 0;
    width: 100%;
    justify-content: center;
  }

  /* client resources dropdown — goes static inside menu on mobile */
  .client-resources {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
  }
  .client-resources-toggle {
    width: 100%;
    justify-content: center;
  }
  .client-resources-menu {
    position: static;
    width: 100%;
    margin-top: 8px;
    box-shadow: none;
    border-radius: 10px;
  }

  /* hero padding on small screens */
  .hero-inner {
    padding-left: 16px;
    padding-right: 16px;
  }

}

/* =========================
   SMALL MOBILE  (≤ 480px)
   Only override what genuinely needs a smaller-screen adjustment.
   ========================= */
@media (max-width: 480px) {

  h1 { font-size: 2rem }
  h2 { font-size: 1.7rem }

  .section { padding: 48px 0 }

  .site-footer { padding: 18px 0 }
  .footer-affiliation-logos img { height: 24px }

  body.blog-page main.section > .container {
    padding-top: 28px;
    padding-bottom: 28px;
    font-size: 17px;
  }
  body.blog-page main.section > .container h2 { margin-top: 30px }

}
