/* https://philipwalton.github.io/solved-by-flexbox/demos/sticky-footer/ */
/* https://gomakethings.com/how-to-prevent-anchor-links-from-scrolling-behind-a-sticky-header-with-one-line-of-css/ */
/* https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior */
/* https://css-irl.info/animating-underlines/ */
/* https://css-tricks.com/full-browser-width-bars/ */
/* https://css-tricks.com/creating-sliding-effects-using-sticky-positioning/ */


:root {
  scroll-behavior: smooth;

  --text-heading-color: #4e6472;
  --text-paragraph-color: #4e6472;
  --light-color: #b8c5cc;
  --highlight-color: #337bc3;
  --testimonial-color: #597282;
  --base-color: #4e6472;
  --footer-color: #113c5f;
  --anim: 250ms;
}

html {
  overflow-x: hidden;
  color: var(--text-paragraph-color);
  font-size: 12pt;
  /* scroll-padding-top: 200px; */
}

* {
  box-sizing: border-box;
}



body {
  font-family: 'Outfit', sans-serif;
  /* font-size: 12pt; */
  font-weight: 400;
  margin: 0;
  /* background: url('lapis-bg-fade.jpg'); */
  /* overflow-x: hidden; */

  display: flex;
  flex-direction: column;
  min-height: 100vh;
  overflow-x: clip;
}



.inset {
  margin: 0 auto;
  max-width: 50rem;
  padding: 0 1.5rem;
}

header {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  /* padding: 0 30px; */

  -webkit-transition: all 0.5s;
  -moz-transition: all 0.5s;
  transition: all 0.5s;
  z-index: 1;
}

main {
  /* padding: 30px; */
  flex: 1;
}

nav {
  pointer-events: all;
}





/* .full-width { */
/*   position: relative; */
/*   margin: 0 -9600rem; */
/*   padding: 0 9600em; */
/*   z-index: 0; */
/* } */
/* .full-width:before { */
/*   content: ""; */
/*   position: absolute; */
/*   z-index: -1; */
/*   top: 0; */
/*   bottom: 0; */
/*   left: 9598.5rem; */
/*   right: 9598.5rem; */
/* } */

emph {
  font-style: italic;
}

.full-width {
  position: relative;
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
  z-index: 0;
}
.full-width:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  left: -1.5rem;
  right: -1.5rem;
}

@media (min-width:600px) {
  .full-width {
    /* position: relative; */
    margin-left: -9600rem;
    margin-right: -9600rem;
    padding-left: 9600rem;
    padding-right: 9600rem;
    /* z-index: 0; */
  }
  .full-width:before {
    /* content: ""; */
    /* position: absolute; */
    /* z-index: -1; */
    /* top: 0; */
    /* bottom: 0; */
    left: 9598.5rem;
    right: 9598.5rem;
  }
}



.image-div {
  vertical-align: middle;
  position: relative;
}

nav {
  color: var(--text-heading-color);
  background: white;
}
nav .full-width {
  background: url('horizontal-line-edge.svg') no-repeat bottom;
}
nav .full-width:before {
  background: url('horizontal-line.svg') no-repeat top, url('horizontal-line.svg') no-repeat bottom;
}

#header .header-logo {
  background: white url('shading.svg') no-repeat top;
  display: flex;
  position: relative;
  align-items: center;
}
#header .header-logo-box {
  margin: 4rem 0 3rem 0;
  transition: var(--anim);
}
#header.shrink .header-logo-box {
  margin: 1rem 0;
  transition: var(--anim);
}
#header #purpose {
  color: var(--text-paragraph-color);
  overflow: hidden;
  padding: 0.5em 0;
  transition: var(--anim);
}
#header.shrink #purpose {
  padding: 0.2em 0;
  transition: var(--anim);
}
.white {
  background: white;
}


#header .header-graphic .full-width {
  background: url('horizontal-line-edge.svg') no-repeat bottom, url('lapis-bg-fade.jpg');
  height: 140px;
  transition: var(--anim);
}
#header .header-graphic .full-width:before {
  background: url('horizontal-line.svg') no-repeat bottom, url('lapis-bg.jpg');
}
#header.shrink .header-graphic .full-width {
  height: 40px;
  transition: var(--anim);
}


#header .header-shadow .full-width {
  height: 15px;
}
#header .header-shadow .full-width:before {
  background: url('shading.svg') no-repeat top;
}


footer {
  min-height: 12vh;
  background: var(--footer-color);
  color: #ddd;
  font-size: 1rem;
  font-weight: 200;
}

footer h1 {
  font-weight: 500;
  font-size: 1rem;
  margin: 1rem 0 0.5rem 0;
}
footer ul, footer p {
  margin: 0.5rem 0;
}

footer address {
  font-style: normal;
}

footer section {
  margin: 0 auto;
  max-width: 50rem;
  /* min-height: 500px; */
  padding: 3rem 1.5rem;
}

footer section .shadow {
  /* z-index: 5; */
  margin: 0.5rem -1.5rem;
  padding: 0 1.5rem;
}

footer section .shadow.full-width {
  height: 15px;
  background: url('horizontal-line-edge.svg') no-repeat bottom;
}
footer section .shadow.full-width:before {
  background: url('horizontal-line.svg') no-repeat bottom;
  z-index: 5;
  /* background: url('shading.svg') no-repeat top; */
}
footer a.style:hover, footer a.style:focus {
  color: inherit;
}
footer section .split {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}


main section {
  margin: 5rem auto;
  max-width: 50rem;
  padding: 0 1.5rem;
}

main section h2 {
  font-family: 'Outfit', sans-serif;
  font-size: 1.4rem;
  font-weight: normal;
  color: var(--highlight-color);
  margin: 0.5rem -1.5rem;
  margin-bottom: 4rem;
  padding: 0 1.5rem;
  /* border-bottom: 2px solid var(--highlight-color); */
}


main section h2.full-width {
  background: url('horizontal-line-edge-bright.svg') no-repeat bottom;
}
main section h2.full-width:before {
  background: url('horizontal-line-bright.svg') no-repeat bottom;
}


#nav-about:before {
  content: '';
  position: absolute;
  transform: translate(-20px, -40px);
  width: 80px;
  height: 60px;
  background: url(quote.svg) no-repeat;
  opacity: 0.2;
  z-index: -1;
}
@media (min-width:600px) {
  #nav-about:before {
    transform: translate(-80px, -15px);
    width: 80px;
    height: 60px;
    background: url(quote.svg) no-repeat;
    opacity: 0.85;
  }
}

.header-logo-box .image-div:after {
  content: url(bunting-main.svg);
  position: absolute;
  width: 68px;
  height: 117px;
  background:  no-repeat;
  background-position: center center;
  opacity: 0.2;
  z-index: 5;
  transform: translate(-40px, -36px);
  transition: var(--anim);
}
.shrink .header-logo-box .image-div:after {
  transform: translate(-10px, -28px) scale(0.5);
  transition: var(--anim);
}

@media (min-width:600px) {
  .header-logo-box .image-div:after {
    opacity: 0.85;
    z-index: 5;
    transform: translate(30px, -36px);
  }
  .shrink .header-logo-box .image-div:after {
    transform: translate(25px, -28px) scale(0.5);
    transition: var(--anim);
  }
}

.header-force, #header {
  pointer-events: none;
}




/* body { */
/*   margin: 0; */
/*   min-height: 100vh; */
/*   font-family: "Open Sans", sans-serif; */
/*   font-size: clamp(1.2rem, 3vw, 3rem); */
/*   font-weight: 700; */
/*   background: #c1f7f5; */
/* } */

nav ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: start;
}

nav li {
  margin-right: 2rem;
}

ul {
  list-style: none;
  margin: 0;
  padding: 0;
}


a {
  color: inherit;
  display: inline-block;
  position: relative;
  text-decoration: none;
}
footer a {
  text-decoration: underline;
  text-decoration-color: #79a;
}

a.style {
  padding: 0.5em 0;
}

/* Fade in */
a.style::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: var(--base-color);
  opacity: 0;
  transition: opacity 300ms, transform 300ms;
  transform: translate3d(0, -2px, 0);
}

/* a.active { */
/*   color: green; */
/* } */




a.style.active::after {
  background-color: var(--base-color);
  opacity: 1;
}

a.style:hover, a.style:focus, a.style {
  color: var(--highlight-color);
}

a.style:hover::after,
a.style:focus::after {
  background-color: var(--highlight-color);
  opacity: 1;
  transform: translate3d(0, -4px, 0);
}

.person-summary .link-plain {
  padding: 0;
  margin: 0;
}
.block {
  display: block;
}



.team {
  margin: 1rem 0;
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
}


.person {
  margin: 1rem 0;
}
.person-header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-bottom: 1.5rem;
  gap: 2rem;
}
@media (min-width:600px) {
  .person-header {
    flex-direction: row;
  }
}


.person-contact {
  /* padding: 1rem 0; */
}
.person-summary h1, .person-contact h1 {
  color: var(--highlight-color);
  font-size: 1.3rem;
  font-weight: normal;
  margin: 0 0 0 0;
}
.person-contact h1 {
  font-size: 1.5rem;
}
.person-summary h2, .person-contact h2 {
  color: var(--text-paragraph-color);
  font-size: 1rem;
  font-weight: normal;
  margin: 0.25rem -1.5rem 0.75rem -1.5rem;
  /* margin-top: 0 0 0.5em 0; */
}
.person-contact a, .person-summary a {
  /* padding-left: 0.2rem; */
  /* padding-right: 0.2rem; */
}
ul.person-contact-table {
  display: table;
  margin: 2rem 0 0 0;
}
ul.person-contact-table li {
  display: table-row;
}
ul.person-contact-table li span {
  display: table-cell;
}
ul.person-contact-table li span.value {
  display: inline-block;
  margin-left: 0.4rem;
  color: var(--highlight-color);
}
ul.person-contact-table a {
  padding: 0.5rem 0;
  margin: -0.3rem 0;
}
img.linked-in-small {
  width: 1rem;
}
.person-photo {
  /* display: inline-block; */
  position: relative;
  padding: 0px;
  margin: 0px;
  width: 220px;
  max-width: 30vw;
}
.person-photo.individual {
  width: 150px;
}
img.photo {
  width: 100%;
  padding: 0px;
  margin: 0px;
  /* border: 2px solid var(--light-color); */
  border-radius: 6px;
  position: relative;
  vertical-align: middle;
}
div.photo-soon {
  content: "";
  width: 250px;
  height: 356px;
  border-radius: 6px;
  background: var(--light-color);
}
.person-photo.individual .photo-soon {
  height: 214px;
}
.person-photo::after {
  content: "";
  position: absolute;
  top: 8px;
  right: 8px;
  bottom: 8px;
  left: 8px;
  border: 2px solid white;
  border-radius: 5px;
}
.person-photo:hover::after {
  opacity: 0.5;
}

.person-text {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.person-quotes {
  margin-left: 10px;
}

@media (min-width:600px) {
  .person-text {
    display: grid;
    grid-template-columns: 2fr 1fr;
  }
}

.person-bio {
  align-self: start;
}
.person-bio h3 {
  color: var(--highlight-color);
  font-size: 1em;
  font-weight: 500;
  margin-top: 1.5rem;
  margin-bottom: 1rem;
}
.person-bio ul li {
  margin-bottom: 0.15rem;
}
.person-bio ul.plain li {
  margin-bottom: 0.3rem;
}
main section ul {
  padding-left: 2em;
  list-style: disc;
  list-style-position: outside;
}
main section ol {
  list-style-type: lower-alpha;
  list-style-position: outside;
}

ul.person-contact-table {
  padding-left: 0;
  list-style-position: inside;
}

main section p {
  line-height: 120%;
}

main section a {
  padding: 0;
}
main a.normal {
  color: var(--highlight-color);
}
main a.normal:hover {
  text-decoration: underline;
}
li address {
  display: inline-block;
  font-style: normal;
}
.person-quotes {
  align-self: start;
}

span.proof-read {
  font-weight: bold;
  background: yellow;
}

.person-quotes blockquote {
  margin-left: 0;
  margin-right: 0;
  margin-bottom: 0.4rem;
  padding-bottom: 0.2rem;
  color: var(--testimonial-color);
  border-bottom: 1px solid var(--testimonial-color);
  font-weight: 200;
}
.person-quotes blockquote:hover {
  color: var(--text-paragraph-color);
}
.person-quotes blockquote p {
  margin: 0.4rem 0;
}
.person-quotes p.by {
  color: var(--highlight-color);
  text-align: right;
  font-weight: 500;
  margin: 0;
}
.person-quotes ul {
  position: relative;
}
.person-quotes li {
  display: block;
  position: relative;
  margin-bottom: 3rem;
}
.person-quotes li::after {
  position: absolute;
  content: "";
  left: -45px;
  top: -10px;
  width: 40px;
  height: 31px;
  background: url('quote-testimonial.svg') no-repeat;
}

#cookies {
  position: sticky;
  bottom: 0;
  padding: 2rem 0;
  background: #337bc3;
  color: white;
  box-shadow: 0px 25px 40px 10px var(--footer-color);
  z-index: 10;
  display: none;
}
#cookies .inset {
  display: flex;
  align-items: center;
  gap: 2rem;
}
#cookies .buttons {
  display: flex;
  flex-align: center;
  gap: 0.5rem;
}
#cookies .buttons button {
  cursor: pointer;
}
#cookies .buttons .accept {
  border: 1px solid var(--text-paragraph-color);
  background: white;
  color: var(--highlight-color);
  font-weight: bold;
  font-size: 1rem;
  padding: 1rem;
}
#cookies .buttons .accept:hover {
  background: #efefef;
}
#cookies .buttons .accept:active {
  background: #dfdfdf;
}
#cookies .buttons .close {
  border: none;
  background: transparent;
  color: var(--text-paragraph-color);
  padding: 0.25rem;
  font-weight: bold;
  font-size: 1rem;
}
#cookies .buttons .close:hover {
  opacity: 0.7;
}
#cookies .buttons .close img {
  vertical-align: middle;
}

ul.plain {
  list-style: none;
  list-style-position: inside;
  padding-left: 0;
}

