/* accessibility */
html { --12px: .75rem; --14px: 0.875rem; --15px: 0.9375rem; --16px: 1rem; --17px: 1.0625rem; --18px: 1.125rem; --19px: 1.1875rem; --20px: 1.25rem; --24px: 1.5rem; --30px: 1.875rem; --32px: 2rem; --36px: 2.25rem; --40px: 2.5rem; --42px: 2.625rem; --50px: 3.125rem; }
* { scroll-behavior: smooth }
*:focus-visible, input:focus-visible { outline-style: solid; outline-width: 2px; outline-color: #000; box-shadow: -4px -4px 8px #fff; outline-offset: 4px; border-radius: 3px; transition: all .3s linear .01s; }
header a:focus-visible, .homebanner .btn, footer :is(a, input, textarea):focus-visible{ outline-color: #fff; box-shadow: unset }
.jump { text-decoration-line: underline; text-decoration-color: var(--accent); text-underline-offset: 4px; position: absolute; background: #fff; left: 150px; top: -6px; padding: 10px; border-width: 2px; border-color: var(--light-30); border-style: none solid solid; transform: translateY(-100%) }
.jump:focus { transform: translateY(0%); outline-offset: 0 }
:root { --main-bg: #fff; --light: #f5f5f5; --light-comp: #4d4d4d; --dark: #0a293a; --dark-comp: #fff; --primary: #003057; --primary-comp: #fff; --secondary: #007ACC; --secondary-comp: #fff; }
/* opens a new window notification */
a[target="_blank"] { position: relative }
a[target="_blank"] i { padding: 4px; border: 1px solid black; color: #000; background-color: #fff; text-decoration: none; position: absolute; left: -2px; top: -30px; z-index: 999; width: 130px; display: none; font-size: var(--12px); font-style: normal; font-weight: 400; font-family: sans-serif; text-align: center !important; text-transform: none }
a[onclick="target='_blank'"]:hover i, a[target="_blank"]:hover i, a[onclick="target='_blank'"]:focus i, a[target="_blank"]:focus i { display: block }
header a[onclick="target='_blank'"] i, header a[target="_blank"] i { left: 0; }
.ccpaNotice a:focus-visible { outline-color: #000 }
.ccpaNotice a i { bottom: unset !important; top: -30px; }
.a8bmark[target="_blank"] i { right: 0; left: unset }
/* GENERAL */
body { font-family: 'Montserrat', Arial, Helvetica, sans-serif; line-height: 1.6; text-align: center; }
body, .news a, .news a:hover { color: var(--light-comp, #4d4d4d); }
body, header ul, .hero h1, .hero p { padding: 0; margin: 0; }
h1, h2, h3, h4, h5, h6, p, th, td, dd, dt, li, blockquote { text-align: left; }
h1, h2, h3, h4, h5, h6 { font-weight: 400; }
nav, .hero p, h1, h2, h3, h4, h5, h6 { text-transform: uppercase; }
h1 { color: var(--dark, #333); }
img, iframe { max-width: 100%; height: auto; display: block }
img { margin: 0 auto }
iframe { aspect-ratio: auto 16 / 9; width: 100%; margin: 1em auto; }
a img, iframe { border: none; }
a, .assoc img, .team img, .news h3 { transition: ease-in-out .3s; }
header a:hover, form input[type=submit]:hover, .btn:hover, .news a, .btn, .team a, .team a:hover, .news a:hover { text-decoration: none; }
a { text-underline-offset: 4px }
a, main a:hover, .news a:hover h3 { color: var(--secondary, #0091ef); }
a:hover { text-decoration: underline; }
hr { border-width: 1px; border-color: var(--light); border-style: none none solid; margin: 40px 0; }
.imgLeft, .imgRight, .news img { border-radius: 5px; }
.imgLeft, .imgRight { max-width: 45%; }
.imgLeft { float: left; margin: 10px 4% 2% 0; }
.imgCenter { display: block; margin: 0 auto; }
.imgRight { float: right; margin: 10px 0 2% 4%; }
.nowrap, a[href^=tel] { white-space: nowrap; }
sup { line-height: 0; }
.hide { display: none !important; }
.center, .ccpaNotice, .hero h1, .hero p, .home h2, .home h3, .team li, .tribute p, .news p { text-align: center !important; }
.wrap { display: block; max-width: 1180px; margin: 0 auto; position: relative; }
.bg-dark, .bg-primary, .bg-light { border-width: 1px; border-style: solid none; }
.bg-dark, .bg-primary, .team a, .team a:hover { color: var(--dark-comp, #fff); }
.bg-dark { background-color: var(--dark, #333); border-color: var(--dark, #333) }
.bg-primary, header { background-color: var(--primary, #003057); border-color: var(--primary, #003057) }
.bg-light { background-color: var(--light); color: var(--light-comp); border: 1px solid var(--light) }
.mid { align-items: center; align-self: center; }
.grid { display: grid; grid-gap: 10px 20px; }
.grid.half { grid-template-columns: repeat(2,1fr); }
.grid.third { grid-template-columns: repeat(3,1fr); }
.grid.fourth { grid-template-columns: repeat(4,1fr); }
.bgimg { position: relative }
.bgimg > img:first-of-type, .hero div[role=complementary] img { position: absolute; width: 100%; height: 100%; inset: 0; object-fit: cover; z-index: 0 }
.bgimg .wrap { z-index: 2 }
.pad { padding-left: 10px; padding-right: 10px }
/* HEADER & NAVIGATION */
header, .hero { position: relative; }
.hero:before { background-image: linear-gradient(transparent,rgba(0,0,0,.7),transparent) }
header a { display: block }
#logo { padding: 15px; border-radius:5px }
header { z-index: 999; backdrop-filter: blur(4px) brightness(0.9) }
.grid .bgimg > img:first-of-type { position: relative; width: 400px; height: 300px; inset: 0; object-fit: cover; z-index: 0; }
#news .btn { color: #fff }
header .grid, footer .cta > .wrap > .grid { grid-template-columns: 350px 1fr; }
header nav { text-align: right; margin: 10px 0 }
#logo img { max-width: 350px; width: 100% }
div[role=complementary] { position: unset }
nav li, .assoc a, .more img { display: inline-block; }
nav a, .hero h1, .hero p { color: var(--dark-comp, #fff); }
nav a { font-size: var(--20px); margin: 5px; padding: 5px; text-decoration: underline transparent; text-underline-offset: 6px; text-decoration-thickness: 2px; margin: 5px; padding: 5px }
nav a:hover { text-decoration: underline var(--secondary); text-underline-offset: 6px; text-decoration-thickness: 2px }
/* HERO */
.hero, .think, .next { background-image: url(/images/dots-for-dark-background.png); }
.hero { position: relative; }
.hero:before { content: ""; width: 100%; height: 100%; position: absolute; top: 0; left: 0; z-index: 1 }
.hero { width: 100%; top: 0 }
.hero > div > .wrap { padding: 50px 20px 50px }
.hero h1, .hero p { font-size: var(--42px); text-shadow: 2px 2px 3px rgba(0,0,0,.3); }
.hero .btn { margin-top: 20px; }
/* HOME */
.homebanner { padding-top: 50px }
.homebanner .btn { box-shadow: 0 0 4px #333 }
.home h2 { font-size: var(--30px); }
.home > div > .wrap { padding: 40px 10px; }
.assoc ul { margin: 0; padding: 0 }
.assoc li { display: inline-block; margin: 0 }
.assoc a { display: block; margin: 10px 20px }
.assoc img { width: auto; height: 95px; vertical-align: middle;   }
.think .grid { grid-gap: 0; }
.think .grid div { position: relative;max-height:400px }
.think img { object-fit: cover; width: 100%; object-position: 50% 30%; }
.news img { object-fit: cover; width: 300px; object-position: 50% 30%; }
.think img { height: 100% }
.think h2, .think h3, .next h2 { text-transform: unset; }
.think h3 { width: 70%; font-size: var(--24px); margin: 0; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 999; }
.team .grid { grid-gap: 10px 50px; padding: 20px 0 40px; }
.team .grid.fourth img { border-radius: 50%; max-width: 250px; width: 100% }
.team a:hover img, .news .btn:hover { transform: scale(1.1); }
.team .grid.half h2 { font-size: var(--24px); text-align: left !important; }
.news h2 span { font-weight: 600; color: var(--secondary); }
.news .grid { grid-gap: 10px clamp(10px, 4vw, 40px); margin: 20px 0 50px; }
.news .grid a{display:block}
.news h3, .news p { line-height: 1.4; }
.news img { object-position: top; height: 300px }
.news div a:nth-child(2) {color:#0248ca;}
.news .btn {font-size: var(--18px);}
/* FORMS */
form { margin: 40px 0; }
form ::placeholder { color: var(--light-comp, #4d4d4d); }
fieldset { border: none; padding: 0; margin: 0 }
form legend { text-align: left; padding: 0; margin: 1em 0; }
form .grid { grid-gap: 10px; margin-bottom: 10px }
form label { display: block; }
form input, form textarea, form label { font-family: 'Montserrat', sans-serif; font-size: var(--16px); display: block; box-sizing: border-box; margin-bottom: 10px; width: 100%; line-height: 1.5 }
form input, form textarea { background-color: var(--main-bg, #fff); padding: 10px; border: 1px solid #e7e7e7; }
form label > *, form .grid label { margin-bottom: 0 }
form label { text-align: left }
form select { width: 100%; }
form input[type=file] { margin-left: 10px; border-radius: 0; }
form textarea { height: 100px; padding: 15px 10px; }
form input[type=submit], .btn { display: inline-block; min-width: 110px; text-align: center; background-color: var(--primary, #003057); color: var(--primary-comp, #fff); padding: 10px 40px; margin: 10px 0; border-color: var(--primary, #003057); border-radius: 4px; transition: ease-in-out .3s; }
form input[type=submit] { min-width: 250px; }
form input[type=submit]:hover, .btn:hover, footer input[type=submit] { cursor: pointer; background-color: #14C0FF; color: #000; }
#wcag { padding: 20px clamp(20px, 3vw, 40px); }
#contact textarea { height: 150px; }
/* FOOTER */
footer { clear: both }
footer .wrap { padding: 20px 10px; }
footer a { color: var(--dark-comp, #fff); display: block; margin: 5px 0; padding: 5px 0 }
footer h2 { margin-top: 40px;font-size:1.17rem }
footer hr { margin: 20px 0; border-color: rgba(255,255,255,.1) }
.subfoot .grid.mid { grid-template-columns: 1fr 1fr 150px }
footer ul, footer p { margin: 40px 0; }
footer #quick { margin: 40px 0 0; }
footer .grid.third { grid-gap: 10px clamp(20px, 4vw, 50px) }
footer .grid legend{display:block;font-size:1.17em;text-transform:uppercase;text-align:left;margin-top:40px}
/* MAIN & EVERYTHING ELSE */
main { padding: 30px 10px 60px; }
main h1 { font-size: var(--30px); }
main h2 { font-size: var(--24px); }
main h3, .msai h2 { font-size: var(--20px); }
main h4, .news h3 { font-size: var(--18px); }
main ul, main ol { padding-left: 25px; }
main li { margin: 5px 0; }
.nolist, .team ul, footer ul, .leadership .title { list-style: none; padding-left: 0; }
.solutions .grid { padding: 30px 0; }
.solutions .grid h3 { margin: 10px 0 }
.solutions .grid p { margin: 10px 0; padding: 0 5px 5px; }
.solutions img { object-fit: cover; width: 100%; height: 250px; }
.contact .grid { padding: 20px 0; }
.contact .grid > div { padding: 20px 40px; }
.leadership .title { max-width: 50%; font-size: var(--20px); line-height: 1.3; border-bottom: 2px solid var(--secondary, #0091ef); padding-bottom: 20px; margin-bottom: 30px }
.leadership .mission { font-style: italic; }
.leadership .nolist { margin: 20px 0; }
.msai img { max-width: 200px; }
.msai li{position:relative;padding-left:50px}
.msai svg {  position:absolute;left:0;top:10px; border: 1px solid var(--secondary, #0091ef); border-radius: 50px; }
.msai-blue { background-image: linear-gradient(130deg, #21bdff, #0248ca) }
.msai-green { background-image: linear-gradient(130deg, #44cf57, #006637 ) }
.more img { max-height: 100px;width:auto; margin: 20px 40px; }

/*** mobile ***/
@media(prefers-reduced-motion) {
    * { transition: all 0s !important; scroll-behavior: unset; animation: none }
}

@media(forced-colors:active) {
    .a8bmark img { filter: brightness(0) }
    .subfoot { margin-top: -1px }
    #logo img { filter: drop-shadow(1px 1px 4px #000) }
}

@media(max-width:68.75rem) /* 1100px */ {
    .solutions .grid h3 span { display: block }
    .msai .grid.third{grid-template-columns:1fr 1fr}
}

@media(max-width:62.5rem) /* 1000px */ {
    .back { display: block }
    .team .grid.fourth { grid-template-columns: 1fr 1fr }
}

@media(max-width:47.999rem) /* <768px */ {
    .grid.fourth, .think .grid.third, footer .grid.third { grid-template-columns: 1fr 1fr }
    .cta .grid.third, .subfoot .grid.mid { grid-template-columns: 1fr }
    .solutions .grid h3 span { display: inline }
    footer .grid.third > div:last-of-type:nth-of-type(odd) { grid-column: 1/-1 }
    footer :is(h2, p, li, .grid legend) { text-align: center }
    footer p { margin: 5px 0 }
}

@media(max-width:43.75rem) /* 700px */ {
    header .grid { grid-template-columns: 1fr }
    .home .grid.third { grid-template-columns: 1fr 1fr }
    nav ul { text-align: center }
    nav a { padding: 5px 10px }
    .hero { height: auto !important }
    .hero > div .wrap { padding: 60px 10px 100px; }
}

@media(max-width:37.5rem) /* 600px */ {
    .grid.half, .grid.third, footer .cta > .wrap > .grid, .row2 .grid, .subfoot .grid.mid, footer .grid.third { grid-template-columns: 1fr }
    .subfoot p, .row2 h2, .row2 h3 { text-align: center }
    .imgRight { float: none; margin: 0 auto; max-width: 100%; }
    .row1 .grid > div:nth-of-type(2) { border: none }
    main { margin-bottom: 0; padding-bottom: 50px }
    .cta .grid > div:last-of-type { margin-top: unset }
    #intro .nowrap { white-space: normal }
}

@media(max-width:31.25rem) /* 500px */ {
    .grid.fourth, .msai .grid.third,.think .grid.third { grid-template-columns: 1fr }
    .think .grid.third>div{height:225px}
    .jump { left: unset; right: 0 }
    .hero h1 { font-size: var(--36px) }
    #news .grid.third { grid-template-columns: 1fr; }
}

@media(max-width:25rem) /* 400px */ {
    form input[type=submit] { max-width: unset; display: block; width: 100% }
    .homebanner { padding-top: 0 }
    nav ul { display: grid; grid-template-columns: 1fr 1fr }
    nav a { text-align: center }
    .hero h1 { font-size: var(--24px) }
    .news .grid.third, .team .grid.fourth { grid-template-columns: 1fr }
}
