/*----------- TEXT ---------- */

/* Fonts */
:root {
	--bs-font-sans-serif: "Source Sans 3", "Source Sans Pro", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
	--bs-font-serif: "Playfair", "Source Serif 4", "Source Serif Pro", serif;
}

/* Headers */

h2 {font-weight: 300; letter-spacing: -.5px; color: #265b87;}
h4 {font-weight: bold; margin-bottom: 1rem; color: #555;}
h5 {font-weight: bold;}

/* Paragraphs */
.homepage p {line-height: 1.35em;}
.caption {font-size: .85em; line-height: 1.3em; color: #888; margin: 10px 0 30px 0;}

/* Links */
a {color: steelblue; text-decoration: none; transition: .1s linear;}
a:hover, a:active {color: black; text-decoration: underline;}
a * {transition: .1s linear;}
h1 a {font-family: var(--bs-font-serif); color: #205784;}
h1 a:hover {text-decoration: none;}

/* Buttons */
.btn.btn-primary {background-color: steelblue; border-color: steelblue; color: white; font-weight: bold;}
.btn.btn-primary:hover {background-color: #265b87; border-color: #265b87; text-decoration: none;}
.btn.btn-light {font-size: .85em; color: #999; margin-right: 10px; padding: 0; border: 0; background: none;}
.btn.btn-light.active {color: #444; }
.btn.btn-light:hover {text-decoration: none; color: black;}
.btn.btn-light:focus {background: none; color: #999;}
.btn.btn-light.active:focus {color: #444;}
.btn.btn-light .bi {margin-right: 5px;}

/* Tooltips */
.tooltip {--bs-tooltip-color: #444; --bs-tooltip-opacity: .98; --bs-tooltip-max-width: 400px;}
.tooltip-inner {background: white; padding: 15px 20px; border-radius: 4px; border: 1px solid #ddd; text-align: left; font-size: 1.1em; line-height: 1.4em;}
.tooltip-inner .ref {margin: 0;}
.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before {border-top-color: #bbb;}
.bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before {border-right-color: #bbb;}
.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before {border-bottom-color: #bbb;}
.bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before {border-left-color: #bbb;}

/* Tables */
.table.tbl {font-size: .85em; line-height: 1.3em; color: #444;}

/* Icons */
#home .bi, #about .bi {margin-left: 7px;}



.new h1 {font-family: var(--bs-font-serif); font-size: 2rem; font-weight: 400; color: #205784; letter-spacing: -1px;}
.new h3 {text-transform: uppercase; letter-spacing: .5px; color: #777; font-weight: bold; font-size: 16px; margin-top: 16px;}
.new h4 {font-size: 1.2rem; color: #777; text-transform: uppercase; letter-spacing: .5px;}
.new h5, .new h6 {font-weight: normal; margin-top: 0;}
.new h5 {font-size: 1.1rem;  color: #777;}
.new h5 span {letter-spacing: 5px;}
.new h6 {margin-bottom: 1em; color: #666;}
.new h6 span {color: #999;}

.new .page-body p, .new .page-body p *:not(code) {font-family: var(--bs-font-serif); letter-spacing: -.5px;}
.new .page-body p {font-size: 1.15em; line-height: 1.3em;}
.blog .new h1 {text-transform: none; font-size: 2rem; font-weight: 400; color: #205784; letter-spacing: -.8px;}

.endpage a h6 {color: #666;}

.new .lead {font-family: var(--bs-font-serif); font-size: 1.2rem; line-height: 1.2em; font-weight: normal; letter-spacing: -.7px;}

.new .info-icons {margin-top: 8px;}
.new .info-icons i, .endpage i {margin-right: 10px; color: #666; font-size: .9em;}
.new .info-icons h6, .endpage h6 {margin-bottom: 0; }
.new .info-icons .d-flex, .endpage .d-flex {margin-bottom: 0; padding: .5em 0;}
.new .info-icons a:hover, .endpage a:hover {text-decoration: none;}
.new .info-icons a:hover h6, .new .info-icons a:hover i, .endpage a:hover h6, .endpage a:hover i {color: black;}
.new .info-icons a:hover h6 span {color: #555;}

.about-list li {margin-bottom: .5rem; line-height: 1.35em; color: #212529;}

.post-list li {margin-bottom: .7em;}
.post-list li a:hover {text-decoration: none;}
.post-list li a:hover code {color: #801148;}
.post-list li a:hover .post-info {color: #333;}
.post-list li a:hover .post-info span.post-date {color: #666;}

.post-block {border-left: 4px solid rgba(70, 130, 180, .7); padding: 3px 0 3px 15px; margin-left: 3px; margin-bottom: 1em;}
.post-block:hover {border-left: 4px solid rgba(70, 130, 180, 1);}
.accordion p, .accordion p *:not(code) {font-family: var(--bs-font-serif); letter-spacing: -.5px;}
.accordion p {font-size: 1.15em; line-height: 1.2em;}
.post-title {font-weight: bold; margin-bottom: 0.1em; line-height: 1.1em !important;}
.post-info {font-size: 1em !important; color: #666; margin-bottom: .0;}
.post-info span.bullet {letter-spacing: 5px;}
.post-info span.post-date {color: #999;}

.accordion-button {text-transform: uppercase; letter-spacing: .5px; font-weight: bold;}
.accordion-button:hover {background: transparent; color: #444;}
.accordion-button:not(.collapsed) {box-shadow: none;}
.accordion-body {padding-bottom: .5em;}

.accordion {
	--bs-accordion-bg: transparent;
	--bs-accordion-active-bg: transparent;
	--bs-accordion-active-color: #444;
	--bs-accordion-btn-color: #777;
	--bs-accordion-btn-focus-box-shadow: none;
	--bs-accordion-btn-padding-x: 0;
	--bs-accordion-body-padding-x: 0;
	--bs-accordion-body-padding-y: 0;
}


/*----------- LAYOUT ---------- */

/* Body */
.col-lg-12 {max-width: 900px;}

/* Header */
.blankbar {margin-top: 50px;}
header {display: flex}
header h1, nav h1, .navbar-brand {font-weight: bold; font-size: 22px; margin: 0; letter-spacing: 1px; text-transform: uppercase;}
.subtitle {font-size: 17px; padding-top: 0.7rem;}
.subtitle span {letter-spacing: 5px;}
.subtitle br {display: none;}

/* Nav */
.navbar {--bs-navbar-padding-y: 0; background: rgba(255,255,255,95%);}
.topbar1 {transition: .1s linear;}
.topbar2 {border-bottom: 1px solid #ddd; transition: .1s linear;}
.navbar .container {margin: 0 auto; max-width: 804px;}
.nav-link {padding: 8px 0; margin-left: 16px; font-weight: bold; text-transform: uppercase; color: steelblue; letter-spacing: 1px;}
.nav-link.active, .nav-link:hover {color: black; text-decoration: none;}
.navbar-toggler, .navbar-toggler:focus {border: 0; box-shadow: none; padding: 0;}
.navbar-expand-sm .navbar-nav .nav-link {padding-right: 0; padding-left: 0;}

/* Banner */
.banner {background: #f4f4f4; color: #444; padding-top: calc(var(--bs-gutter-y) * .5); padding-bottom: calc(var(--bs-gutter-y) * .5);}
.crumb {margin: 20px 0 10px 0; font-size: 15px; font-weight: bold; text-transform: uppercase; letter-spacing: 1px;}
.banner h3 {font-weight: bold; font-size: 2rem; letter-spacing: -1px; margin-bottom: 15px;}
.banner:not(.homepage .banner) .lead, .banner:not(.homepage .banner) .lead * {font-family: var(--bs-font-serif); font-weight: 400; letter-spacing: -.6px; line-height: 1.2em;}
.homepage .banner .lead {font-weight: normal; letter-spacing: -.2px;}
.banner .date {color: #888; font-size: .9em; line-height: 1.3em;}
.banner .date .bi {margin: 0 5px;}
.banner .date .bullet {padding: 0 5px;}

/* Content */
iframe {width: 100%; z-index: 1;}
.video {max-width: 100%; overflow-x: scroll; justify-content: center}
.container.boxed {margin-bottom: 20px;}
.container.boxed iframe {border: 1px solid #eee; border-radius: 4px; max-width: 1100px; padding: 5px 20px 0 20px; margin: 0 auto;}
.sunken-shadows iframe {border-top: 1px solid #ddd; border-bottom: 1px solid #ddd;}
.shadow-top {height: 20px; margin-bottom: -20px; box-shadow: inset 0px 11px 8px -10px #ddd; z-index: 1000; position: relative;}
.shadow-bottom {height: 20px; margin-top: -27px; box-shadow: inset 0px -11px 8px -10px #ddd; z-index: 1000; position: relative;}
.lead-li {font-size: .9em; line-height: 1.2em; margin-bottom: .5em;}
.lead-li span {color: #666;}
ul.lead {margin-bottom: 1.3em;}

/* Carousel */
.carousel-indicators [data-bs-target] {width: 12px; height: 12px; margin: 0 7px; border: 0; border-radius: 50%; background-color: #aaa; opacity: .3;}
.carousel-indicators [data-bs-target]:hover {opacity: .7;}
.carousel-indicators .active {opacity: .8}
.hide-buttons .carousel-control-prev, .hide-buttons .carousel-control-next {display: none;}

/* Footer */
.footer {background: #f7f7f7; color: #777; padding-top: calc(var(--bs-gutter-y) * .5); padding-bottom: calc(var(--bs-gutter-y) * .5);}
.homepage:not(.research) .footer:not(.summary .footer) {display: none;}


/*----------- SIDEBAR ---------- */

/* Sidebars */
.sidebar .key {position: -webkit-sticky; position: sticky; top: 80px;}
.headshot {width: 150px; border-radius: 50%; margin: 0 0 15px 15px; border: 6px solid #ddd;}
.research .headshot {border: 6px solid #ddd;}
.sidebar-title, .sidebar-sub {margin-left: 10px; text-align: center; }
.sidebar-title {margin-bottom: 3px;}
.sidebar-sub {margin-left: 10px; margin-bottom: 0; color: #666; font-size: .8em;}

/* Homepage sidebar */
.contact {float: none;}
.contact:not(.contact-icons) li {width: 100%;}
.contact li a {display: block; padding: 7px 10px; line-height: 1.2em; overflow: hidden;}
.contact.contact-icons li a {padding: 4px 7px; border-radius: 15px; border: 1px solid transparent;}
.contact li.name {color: #333333; font-weight: bold; padding: 7px 10px; line-height: 1.2em;}
.contact li a:hover {text-decoration: none; background: #f5f5f5; border-bottom: 0;}
.contact.contact-icons li a:hover {text-decoration: none; background: white; border: 1px solid #ccc;}
.footer .contact li a:hover {background: none;}
.contact i {padding-right: 5px; margin-bottom: -2px;}
.contact .bi {font-size: .9em;}
.contact.contact-icons {padding-left: 3px; justify-content: center;}
.contact.contact-icons .bi {padding: 0;}
.contact-type {display: none;}


/* Research sidebar */
.key li {width: 100%;}
.key li a.btn.btn-primary, .key li a.btn.btn-light {display: block; padding: 7px 10px; line-height: 1.2em; overflow: hidden; text-align: left; font-size: 1rem;}
.key li a.btn.btn-primary {background: none; border: 0; color: #2D5373; font-weight: bold; border: 0; text-decoration: none;}
.key li a.btn.btn-primary:hover {background: #f5f5f5; border: 0; text-decoration: none;}
.key li a.btn.btn-light {background: none; color: #999; border: 0; text-decoration: none;}
.key li a.btn.btn-light:hover {background: #f5f5f5; color: #666;  border: 0; text-decoration: none;}
.key .bi {margin: 0 5px 0 0; font-size: 1em;}


/*----------- CARDS ---------- */

/* Top key for cards */
.top.key {display: block; margin-bottom: 1rem;}
.top.key .btn {display: inline; padding: 0; font-size: 15px; margin-right: 15px;}
.top.key .btn-primary {background: none; border: 0; color: #2D5373; font-weight: bold;}
.top.key .btn-primary:hover {background: none; border: 0; color: #666;}
.top.key .btn-light {background: none; font-weight: normal; border: 0; color: #999;}
.top.key .btn-light:hover {background: none; border: 0; color: #666;}

/* Cards */
.card {margin-bottom: 20px; transition: .1s linear;}
.card-img {width: 125px; float: right; margin: 0 0 15px 10px; transition: .1s linear;}
@media (max-width: 500px) {.card-img {width: 100px;}}
.card-title {font-size: 1em; color: #2D5373; transition: .1s linear;}
.card-text {font-size: .9em; margin-bottom: .5em;}
.card-text .bi {font-size: 1em; margin: 0 5px 0 0;}
.card-text span {margin: 0 5px;}
.card:hover {border: 1px solid rgba(0,0,0,.3); background: #fafafa;}
.card:hover .card-title {color: black;}
.cards .card-footer {padding: 1rem;}
.cards .card-footer .bi {font-size: 1em; margin: 0 0 0 5px;}
.card-body {padding: 16px;}
.card-body .caption {margin: 10px 0 0 0;}
.card a {color: var(--bs-card-color); text-decoration: none;}
.card a:hover {text-decoration: none;}
.abstract {padding: 1.5rem; background: rgba(0,0,0,.025); font-size: 15px; line-height: 1.4em;}
.iframe {width: 100%;}


/*----------- PAGES ---------- */

/* Blog */
.buttons .btn {font-size: .8em; padding: 5px 10px;}
.blog .col-lg-8 {max-width: 750px;}
.blog .body p, .blog .body p *, .blog-ul li, .blog-ul li * {font-family: var(--bs-font-serif); line-height: 1.3em; letter-spacing: -.5px;}
.blog .body p {font-size: 1.2em;}
.photo img {max-width: 1000px;}
.blog .body p:first-child:first-letter {float: left; font-size: 90px; line-height: 60px; padding-top: 5px; padding-right: 8px; padding-left: 3px;}
.blog-ul li {margin-bottom: 15px; font-size: 1.2em;}

/* Research summary */
.summary-header {background: #f8f8f8;}
.summary .h3s {margin: 40px 0 10px 0;}
.summary .h3s h3, #refs h3 {font-weight: bold; margin: 0; padding: 0; color: rgba(0,0,0,.65); font-size: 18px; text-transform: uppercase; letter-spacing: 1px; transition: .1s linear;}
.summary .h3s h3:nth-of-type(2) {color: #999; font-weight: normal; font-size: .95em;}
.summary .h3s h3 .bi {margin: 0 5px; font-size: .9em; position: relative; top: -2px;}
.summary .h3s h3 a:hover {text-decoration: none;}
.bigidea {font-family: var(--bs-font-serif); letter-spacing: -.4px; font-weight: normal; font-size: 1.3em; color: #333; margin: 1rem 0 2rem 0; line-height: 1.3em; transition: .1s linear;}
.bigidea * {font-family: var(--bs-font-serif);}
.details .bigidea {margin: 1rem 0; font-size: 1.2em;}
.homepage:not(.research) #summary {overflow-y: hidden; transition: max-height 0.4s ease-in-out; max-height: 0;}
.ref {margin: 10px 0 17px 0;}
.ref.faded, .ref.faded a {color: #bbb;}
.ref .bi {margin: 0 5px 0 0;}
.ref p {margin-bottom: 0; line-height: 1.3em;}
.about-post {color: #777; line-height: 1.3em;}

@media (max-width: 992px) {
	.summary .bigidea {font-size: 1.2em;}
	.summary .h3s h3 {font-size: 17px;}
}

@media (max-width: 767px) {
	.summary .bigidea {font-size: 1.1em;}
	.summary .h3s h3 {font-size: 16px;}
	.summary .h3s h3 span {display: none;}
}



/*----------- RESPONSIVE STYLES ---------- */

/* Phones */
@media (max-width: 576px) {
	header {display: block;}
	.nav-link {margin-left: 0; margin-right: 16px;}
}

/* Tablets */
@media (max-width: 769px) {
	.homepage .sidebar {display: none;}
	.homepage:not(.research) .footer:not(.summary .footer) {display: flex;}
	.homepage .summary .footer {display: none;}
	.headshot {margin-right: 20px; margin-bottom: 0;}
	.contact {position: relative; bottom: 0; margin-top: 0;}
	.research .headshot {display: none;}
	.research .sidebar {display: none;}
	.research .top.key {display: block; margin-bottom: 2rem;}
	.key .btn {display: inline; margin: 2px 15px 2px 0;}
	
}

/* Mid-sized screens */
@media (max-width: 860px) and (min-width: 769px) {
	.contact-info {display: none;}
	.contact-type {display: inline;}
}

/* Tablets */
@media (max-width: 860px) {
	.video {justify-content: flex-start}
	.sidebar-title, .sidebar-sub {text-align: left;}
	.contact.contact-icons {padding-left: 0; justify-content: start}
}

