/* Shared colors and surface roles for the public website. */
:root{
  --navy:#0B2044;
  --navy-2:#132A5C;
  --red:#B91C2E;
  --red-2:#8F1523;
  --white:#FFFFFF;
  --gold:#C9A22A;
  --paper:#F7F5EF;
  --ink:#151A24;
  --sub:#5B6270;
  --line:#E4E1D6;
  --on-navy:#CFD8EC;
  --navy-tint:#EDF1F7;
}
/* Shared signal-rail scrollbar from Digital Health and Regulation. */
*{
  scrollbar-width:thin;
  scrollbar-color:var(--red-2) transparent;
}
/* Keep Chromium's native scrollbar styling available for hover/drag states. */
@supports selector(::-webkit-scrollbar){
  *{scrollbar-width:auto;scrollbar-color:auto;}
  ::-webkit-scrollbar{width:12px;height:12px;}
  ::-webkit-scrollbar-track{
    background:linear-gradient(90deg,transparent calc(50% - 1px),rgba(11,32,68,.12) calc(50% - 1px),rgba(11,32,68,.12) calc(50% + 1px),transparent calc(50% + 1px));
  }
  ::-webkit-scrollbar-track:horizontal{
    background:linear-gradient(180deg,transparent calc(50% - 1px),rgba(11,32,68,.12) calc(50% - 1px),rgba(11,32,68,.12) calc(50% + 1px),transparent calc(50% + 1px));
  }
  ::-webkit-scrollbar-thumb{
    border:3px solid transparent;
    border-radius:999px;
    background:linear-gradient(180deg,var(--red),var(--red-2)) padding-box;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.25);
  }
  ::-webkit-scrollbar-thumb:hover{
    background:linear-gradient(180deg,var(--red-2),var(--navy)) padding-box;
  }
  ::-webkit-scrollbar-thumb:active{background:var(--red) padding-box;}
  ::-webkit-scrollbar-corner{background:transparent;}
}
@media (forced-colors:active){
  *{scrollbar-width:auto;scrollbar-color:auto;}
  ::-webkit-scrollbar-thumb{background:CanvasText padding-box;box-shadow:none;}
  ::-webkit-scrollbar-thumb:hover,::-webkit-scrollbar-thumb:active{background:Highlight padding-box;}
}
body{background:var(--paper);color:var(--ink);}
/* Two-line menu toggle; aria-expanded drives both directions of the morph. */
.mobile-toggle{position:relative;width:44px;height:44px;gap:0;flex:none;}
.mobile-toggle span{
  position:absolute;
  left:10px;
  top:21px;
  width:24px;
  height:2px;
  transform-origin:center;
  transition:transform 300ms cubic-bezier(.22,1,.36,1);
}
.mobile-toggle span:first-child{transform:translateY(-4px);}
.mobile-toggle span:nth-child(2){transform:translateY(4px);}
.mobile-toggle span:nth-child(n+3){display:none;}
.mobile-toggle[aria-expanded="true"] span:first-child{transform:rotate(45deg);}
.mobile-toggle[aria-expanded="true"] span:nth-child(2){transform:rotate(-45deg);}
.mobile-toggle:focus-visible{outline:2px solid var(--navy);outline-offset:2px;border-radius:4px;}
@media (prefers-reduced-motion:reduce){
  .mobile-toggle span{transition:none;}
}
.intro-band{background:var(--navy);color:var(--white);}
.intro-band h1:not(:where(.phone *)),.intro-band h2:not(:where(.phone *)){color:var(--white);}
.intro-band p:not(:where(.phone *)){color:var(--on-navy);}
.intro-band .eyebrow,.eyebrow.light{color:var(--white);}
.eyebrow{color:var(--red);}
.card{background:var(--white);border-color:var(--line);}
.card-dark{background:var(--navy);color:var(--white);border-color:var(--navy);}
.card-dark h2,.card-dark h3{color:var(--white);}
.card-dark p{color:var(--on-navy);}
.card-on-navy{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.2);}
/* Red body, gold cap, navy arrow. Cap and arrow stay these hexes. */
.btn.btn-primary{
  --cap:46px;
  --arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 16'%3E%3Cpath d='M1.7 8H11.5' fill='none' stroke='%230B2044' stroke-width='1.8' stroke-linecap='butt'/%3E%3Cpath d='M7.2 3.35 12.5 8 7.2 12.65' fill='none' stroke='%230B2044' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  position:relative;
  padding:15px calc(var(--cap) + 16px) 15px 18px;
  background:var(--red);
  color:var(--white);
}
.btn.btn-primary:hover{background:var(--red-2);}
.btn.btn-primary:not(.area-tip){overflow:hidden;}
.btn.btn-primary::before{
  content:"";
  position:absolute;
  top:-2px;
  right:-2px;
  bottom:-2px;
  width:var(--cap);
  border-radius:0 6px 6px 0;
  pointer-events:none;
  background-color:#C9A22A;
  background-image:var(--arrow),var(--arrow);
  background-repeat:no-repeat;
  background-size:16px 16px,16px 16px;
  background-position:
    calc((var(--cap) - 16px) / 2) center,
    calc((var(--cap) - 16px) / 2 - var(--cap)) center;
}
.nav-actions .btn.btn-primary{padding:10px calc(var(--cap) + 12px) 10px 14px;font-size:14px;}
.area-search .btn.btn-primary{height:48px;padding:0 calc(var(--cap) + 16px) 0 18px;}
.area-actions .btn.btn-primary{padding:13px calc(var(--cap) + 12px) 13px 14px;}
.area-actions .area-ask.btn-primary{background:var(--red);color:var(--white);border:2px solid transparent;}
.area-actions .area-ask.btn-primary:hover{background:var(--red-2);}
@media (max-width:700px){
  .area-search .btn.btn-primary{height:44px;}
  .area-actions .btn.btn-primary{--cap:40px;}
  .area-actions.area-actions{flex-direction:column;}
  .area-actions .btn.btn{flex:none;width:100%;}
}
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  .btn.btn-primary::before{transition:background-position .32s cubic-bezier(.22,.7,.2,1);}
  .btn.btn-primary:hover:not(:disabled)::before{
    background-position:
      calc((var(--cap) - 16px) / 2 + var(--cap)) center,
      calc((var(--cap) - 16px) / 2) center;
  }
}
.text-arrow{
  --mark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 16'%3E%3Cpath d='M1.7 8H11.5' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='butt'/%3E%3Cpath d='M7.2 3.35 12.5 8 7.2 12.65' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  display:inline-flex;
  align-items:center;
  gap:.4em;
}
.text-arrow::after{
  content:"";
  width:1.125em;
  height:1em;
  flex:none;
  background:currentColor;
  -webkit-mask:var(--mark) center / contain no-repeat;
  mask:var(--mark) center / contain no-repeat;
}
.text-arrow.out{
  --mark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 12 11.2 4.8' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='butt'/%3E%3Cpath d='M6.6 4.5H11.7V9.6' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.text-arrow.out::after{width:1em;}
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  .text-arrow::after{transition:transform .2s cubic-bezier(.2,.7,.2,1);}
  .text-arrow:hover::after{transform:translateX(3px);}
  .text-arrow.out:hover::after{transform:translate(2px,-2px);}
}
.btn-navy{background:var(--navy);color:var(--white);}
.btn-navy:hover{background:var(--navy-2);}
.btn-outline{background:transparent;border-color:var(--white);color:var(--white);}
.btn-outline:hover{background:rgba(255,255,255,.08);border-color:var(--white);}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--navy);outline-offset:4px;}
.intro-band a:focus-visible,.intro-band button:focus-visible,.card-dark a:focus-visible,.site-footer a:focus-visible{outline-color:var(--white);}
.divider-flag{height:6px;width:100%;background:linear-gradient(90deg,var(--red) 0 33.333%,var(--white) 33.333% 66.667%,var(--navy) 66.667% 100%);}
.philosophy{border-bottom:0;}
.homepage-stats{margin-top:32px;}
.section-separated{background:var(--paper);border-top:1px solid var(--line);}
.service-icon{width:44px;height:44px;border-radius:10px;background:var(--navy-tint);color:var(--navy);display:flex;align-items:center;justify-content:center;margin-bottom:18px;}
.service-icon svg{stroke:currentColor;}
.site-footer{background:var(--navy);color:var(--white);}
.campaign-intro-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:center;}
.campaign-intro-grid h1{font-size:38px;margin-top:10px;}
.campaign-intro-grid p{font-size:16.5px;line-height:1.65;}
.contact-intro{text-align:center;max-width:640px;margin:0 auto;}
.contact-intro h1{font-size:34px;margin:12px 0;}
.contact-intro p{font-size:16px;line-height:1.6;}
@media(max-width:1160px){.campaign-intro-grid{grid-template-columns:1fr;}.homepage-stats{margin-top:24px;}}

/* In the page, not the viewport. Below 1600px the gutters cannot hold a whole star. */
.margin-stars{
  position:absolute;
  left:0;
  top:0;
  width:100%;
  z-index:2;
  overflow:hidden;
  pointer-events:none;
  color:var(--navy);
}
.margin-star{position:absolute;left:0;top:0;display:block;overflow:visible;}
@media(max-width:1599px){.margin-stars{display:none;}}
