.cp-shell-header,
.cp-shell-footer {
  box-sizing: border-box;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  border-radius: 0 !important;
}

.cp-shell-header {
  padding: 0 !important;
  background: transparent !important;
  color: inherit !important;
}

.cp-shell-header *,
.cp-shell-footer * {
  box-sizing: border-box;
}

.cp-shell-service {
  background: #092f55 !important;
  color: #dbeafe !important;
  font-size: 12px;
}

.cp-shell-service__inner,
.cp-shell-nav,
.cp-shell-footer__inner,
.cp-shell-footer__legal {
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto;
}

.cp-shell-service__inner {
  min-height: 31px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.cp-shell-service a {
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}

.cp-shell-nav-wrap {
  background: rgba(255, 255, 255, .98) !important;
  border: 0 !important;
  border-bottom: 1px solid #dbe4ef !important;
  border-radius: 0 !important;
  box-shadow: 0 5px 18px rgba(15, 39, 71, .06) !important;
}

.cp-shell-nav {
  min-height: 68px;
  display: flex !important;
  align-items: center;
  gap: 24px;
  padding: 0 !important;
}

.cp-shell-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #0b3763;
  text-decoration: none;
  min-width: max-content;
}

.cp-shell-brand img {
  display: block;
  width: 44px;
  height: 32px;
  object-fit: contain;
}

.cp-shell-brand__text {
  display: flex;
  flex-direction: column;
  line-height: 1.05;
}

.cp-shell-brand__name {
  font-weight: 850;
  font-size: 18px;
  letter-spacing: -.025em;
}

.cp-shell-brand__company {
  margin-top: 4px;
  color: #54708d;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.cp-shell-links {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 19px;
}

.cp-shell-links a {
  color: #38516d;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}

.cp-shell-links a:hover,
.cp-shell-links a:focus-visible {
  color: #087f8c;
}

.cp-shell-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0 17px;
  border-radius: 999px;
  background: #16a34a;
  color: #fff !important;
  box-shadow: 0 7px 18px rgba(22, 163, 74, .2);
}

.cp-shell-mobile {
  display: none;
  margin-left: auto;
  position: relative;
}

.cp-shell-mobile summary {
  cursor: pointer;
  list-style: none;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  padding: 8px 12px;
  color: #0b3763;
  font-weight: 800;
  font-size: 13px;
}

.cp-shell-mobile summary::-webkit-details-marker { display: none; }

.cp-shell-mobile__panel {
  position: absolute;
  right: 0;
  top: calc(100% + 9px);
  z-index: 80;
  width: min(280px, calc(100vw - 32px));
  padding: 10px;
  border: 1px solid #dbe4ef;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 18px 40px rgba(15, 39, 71, .18);
}

.cp-shell-mobile__panel a {
  display: block;
  padding: 10px 11px;
  border-radius: 8px;
  color: #294967;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
}

.cp-shell-mobile__panel a:hover { background: #eff8fa; }

.cp-shell-footer {
  background: #081a2f !important;
  color: #aebdd0 !important;
  padding: 48px 0 24px !important;
  border: 0 !important;
  box-shadow: none !important;
  text-align: left !important;
}

/* Keep the shared shell authoritative on pages that load the SEO theme. */
.site-theme > header.cp-shell-header {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.site-theme .cp-shell-footer {
  background: #081a2f !important;
  color: #aebdd0 !important;
  border: 0 !important;
}

.cp-shell-footer__inner {
  display: grid;
  grid-template-columns: 1.35fr repeat(4, 1fr);
  gap: 34px;
}

.cp-shell-footer h2 {
  margin: 0 0 13px;
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.cp-shell-footer p { margin: 12px 0 0; font-size: 13px; line-height: 1.7; }
.cp-shell-footer a { color: #c8d4e2; text-decoration: none; }
.cp-shell-footer a:hover { color: #5eead4; }
.cp-shell-social { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 17px; }
.cp-shell-social a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 34px;
  padding: 7px 11px;
  border: 1px solid rgba(148, 163, 184, .28);
  border-radius: 999px;
  background: rgba(255, 255, 255, .05);
  color: #e2e8f0;
  font-size: 12px;
  font-weight: 750;
}
.cp-shell-social a:hover,
.cp-shell-social a:focus-visible {
  border-color: rgba(94, 234, 212, .6);
  background: rgba(94, 234, 212, .1);
  color: #5eead4;
}
.cp-shell-social svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
}
.cp-shell-footer__links { display: grid; gap: 9px; font-size: 13px; }
.cp-shell-footer .cp-shell-brand { color: #fff; }
.cp-shell-footer .cp-shell-brand__company { color: #8ca3bc; }

.cp-shell-footer__legal {
  margin-top: 34px;
  padding-top: 24px;
  border-top: 1px solid rgba(148, 163, 184, .22);
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 30px;
  align-items: center;
  font-size: 12px;
  line-height: 1.7;
}

.cp-shell-footer__map {
  overflow: hidden;
  border: 1px solid rgba(148, 163, 184, .3);
  border-radius: 12px;
  background: #fff;
}

.cp-shell-footer__map iframe { display: block; width: 100%; height: 125px; border: 0; }
.cp-shell-footer__bottom { margin-top: 13px; color: #71869d; font-size: 11px; }

@media (max-width: 980px) {
  /* The floating download button already remains visible; hide the fixed
     blinking banner where it competes with the service bar. */
  #dl-banner { display: none !important; }
  .cp-shell-links { display: none; }
  .cp-shell-mobile { display: block; }
  .cp-shell-mobile[open] > .cp-shell-mobile__panel { display: block !important; }
  .cp-shell-footer__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  /* Some page-level mobile rules color headings navy. Preserve accessible
     contrast whenever a hero explicitly declares white foreground text. */
  .site-theme .text-white h1 { color: #fff !important; }
}

@media (max-width: 640px) {
  .cp-shell-service__inner { justify-content: center; text-align: center; min-height: 34px; }
  .cp-shell-service__inner > span:first-child { display: none; }
  .cp-shell-nav { min-height: 62px; }
  .cp-shell-brand img { width: 38px; height: 28px; }
  .cp-shell-brand__name { font-size: 16px; }
  .cp-shell-brand__company { font-size: 8px; }
  .cp-shell-footer { padding-top: 38px; }
  .cp-shell-footer__inner { grid-template-columns: 1fr 1fr; gap: 28px 22px; }
  .cp-shell-footer__brand-column { grid-column: 1 / -1; }
  .cp-shell-footer__legal { grid-template-columns: 1fr; }
}
