@font-face {
  font-family: 'm_bold';
  src: url('../fonts/mb.woff2') format('woff2'), url('../fonts/mb.woff') format('woff');
  font-display: swap;
}
@font-face {
  font-family: 'm_reg';
  src: url('../fonts/mr.woff2') format('woff2'), url('../fonts/mr.woff') format('woff');
  font-display: swap;
}

:root {
  --coco-coral: #ee787c;
  --coco-teal: #106a71;
  --coco-cream: #ecf2da;
  --bs-body-font-family: m_reg, sans-serif;
  --bs-body-color: #000;
  --bs-body-bg: #fff;
  --bs-link-color: #000;
  --bs-link-hover-color: #000;
  --bs-link-color-rgb: 0, 0, 0;
  --bs-link-hover-color-rgb: 0, 0, 0;
}

.container, .container-fluid, .row {
  --bs-gutter-x: 30px;
}

html {
  font-size: .95em;
  scroll-behavior: smooth;
}
body {
  font-size: .95rem;
  line-height: 1.4em;
  color: #000;
  background-color: #fff;
  font-family: m_reg, sans-serif;
}
h1, h2, h3, h4, h5, h6 {
  font-family: 'm_bold', sans-serif;
  margin: 0;
  padding: 0;
  font-weight: normal;
  line-height: 1.2;
}
h1 { font-size: 2.5rem; }
h2 { font-size: 2rem; }
h3 { font-size: 1.75rem; }
h4 { font-size: 1.5rem; }
h5 { font-size: 1.25rem; }
h6 { font-size: 1rem; }
ol, ul { padding-left: 40px; }
p { margin-bottom: 0; }
p.mini { font-size: .75em; }
figure { margin: 0; padding: 0; }
.silence { color: rgba(0, 0, 0, .333); }
strong {
  font-family: 'm_bold', sans-serif;
  font-weight: bold;
  font-style: normal;
}
a, a:hover, a:active, a:link, a:visited, a:focus {
  color: inherit;
  text-decoration: none;
}
a:focus-visible, button:focus-visible {
  outline: 2px solid var(--coco-teal);
  outline-offset: 3px;
}
hr {
  margin-top: 3em;
  margin-bottom: 3em;
  border: 0;
  border-top: 1px solid rgba(0, 0, 0, .125);
  opacity: 1;
}
.visually-hidden-focusable:focus-visible {
  z-index: 2000;
}
.skip-link {
  position: absolute;
  left: 1em;
  top: -5em;
  z-index: 3000;
  background: #fff;
  color: #000;
  padding: .75em 1em;
}
.skip-link:focus {
  top: 1em;
}

.btn {
  --bs-btn-padding-x: 1rem;
  --bs-btn-padding-y: .5rem;
  --bs-btn-font-size: 1rem;
  --bs-btn-border-width: 0;
  --bs-btn-border-radius: 0;
  font-weight: normal;
  line-height: 1.5;
  transition: color .15s ease-in-out, background-color .15s ease-in-out;
}
.btn-primary {
  --bs-btn-color: var(--coco-coral);
  --bs-btn-bg: var(--coco-cream);
  --bs-btn-hover-color: var(--coco-cream);
  --bs-btn-hover-bg: var(--coco-coral);
  --bs-btn-active-color: var(--coco-cream);
  --bs-btn-active-bg: var(--coco-coral);
  --bs-btn-focus-shadow-rgb: 238, 120, 124;
}
.btn-secondary {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--coco-coral);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--coco-coral);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--coco-coral);
  --bs-btn-focus-shadow-rgb: 238, 120, 124;
}
.btn-third {
  --bs-btn-color: var(--coco-coral);
  --bs-btn-bg: #fff;
  --bs-btn-hover-color: var(--coco-coral);
  --bs-btn-hover-bg: #fff;
  --bs-btn-active-color: var(--coco-coral);
  --bs-btn-active-bg: #fff;
  --bs-btn-focus-shadow-rgb: 238, 120, 124;
}

.bg-coral { background-color: var(--coco-coral); }
.bg-teal { background-color: var(--coco-teal); }
.bg-cream { background-color: var(--coco-cream); }

.main { padding: 4em 0; }
main.main { margin-top: 5em; }
.container { padding: 0 2.5em; }
@media (min-width: 576px) {
  .container { padding: 0 15px; }
}
@media (min-width: 1400px) {
  .container { max-width: 1140px; }
}

.flashed:hover {
  opacity: 1;
  animation: flashed .666s;
}
@keyframes flashed {
  0% { opacity: .75; }
  100% { opacity: 1; }
}

.loader___wrapper {
  position: fixed;
  inset: 0;
  z-index: 3000;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: var(--coco-cream);
  transition: opacity .6s ease .35s, visibility 0s linear .95s;
  animation: loader-timeout .6s ease 5s forwards;
}
.loader {
  display: inline-block;
  width: 100px;
  height: 100px;
  position: relative;
  animation: scale-up-center 2s cubic-bezier(.39, .575, .565, 1) infinite both;
}
html.is-loaded .loader___wrapper {
  opacity: 0;
  visibility: hidden;
}
@keyframes scale-up-center {
  0% { transform: scale(.9); }
  50% { transform: scale(1); }
  100% { transform: scale(.9); }
}
@keyframes loader-timeout {
  to { opacity: 0; visibility: hidden; }
}

#navbar {
  background-color: #fff;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1030;
  padding: 1em 0;
  box-shadow: 0 4px 5px 0 rgba(0, 0, 0, .05);
  transition: transform .4s ease-in-out;
}
#navbar.is-hidden {
  transform: translateY(-100%);
}
.leftnav, .rightnav {
  min-width: 103px;
  max-width: 103px;
  height: 60px;
  overflow: hidden;
}
.rightnav { justify-content: flex-end; }
.rightnav___inner {
  display: flex;
  align-items: center;
  gap: 4px;
  max-width: 103px;
}
.navbar-toggler {
  padding: 0;
  border: 0;
}
.navbar-toggler:focus {
  box-shadow: none;
}
.navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 1)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='3' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
.navbar-brand {
  margin: 0;
  padding: 0;
}
.navbar-brand img {
  display: block;
  height: 50px;
  width: auto;
}
.rightnav___inner img {
  display: block;
  height: 29px;
  width: auto;
}

.mainmenu___modal .modal-dialog {
  max-width: 100%;
  margin: 1rem auto;
}
.mainmenu___modal .modal-content {
  background-color: transparent;
  border: 0;
  border-radius: 0;
}
.mainmenu___modal .modal-body {
  padding: 1rem;
}
.mainmenu___modal .modal-footer {
  border: 0;
  padding: 1rem;
}
@media (min-width: 576px) {
  .mainmenu___modal .modal-dialog {
    min-width: 100%;
    margin: 1.75rem auto;
    padding-left: 2rem;
    padding-right: 2rem;
  }
}
.modal-backdrop {
  --bs-backdrop-bg: var(--coco-coral);
  --bs-backdrop-opacity: .99;
}
.mainmenu___modal .menu-close {
  display: block;
  margin: 0 0 0 auto;
  padding: 0;
  border: 0;
  background: transparent;
  font-family: 'm_reg', sans-serif;
  font-size: 4rem;
  line-height: 1;
  color: #fff;
}
.mainmenu___modal hr {
  margin-top: 2em;
  margin-bottom: 2em;
  border-top: 1px solid rgba(255, 255, 255, .05);
}
.mainmenu___modal .navbar-nav {
  --bs-nav-link-padding-x: 0;
  --bs-nav-link-padding-y: 0;
  margin: 0;
  padding: 0;
}
.mainmenu___modal .nav-item {
  font-size: 1.2em;
  text-transform: lowercase;
  padding: .3em 0;
}
.mainmenu___modal .nav-item:last-child {
  padding-bottom: 0;
}
.mainmenu___modal .nav-link {
  color: rgba(255, 255, 255, .67);
}
.mainmenu___modal .nav-link.active, .mainmenu___modal .nav-link:hover {
  color: #fff;
}
.mainmenu___modal .nav-link::before {
  content: "";
  background-image: url("../img/list_w.svg");
  background-size: 100% 100%;
  display: inline-block;
  margin-right: .666em;
  height: 13px;
  width: 13px;
  opacity: .333;
}
.mainmenu___modal .modal-footer p, .mainmenu___modal .modal-footer a {
  color: #fff;
}
.mainmenu___modal .modal-footer a {
  text-transform: uppercase;
}
.mainmenu___modal .modal-footer a::before {
  content: "|";
  margin-left: .5em;
  margin-right: .5em;
  opacity: .5;
}

.square::before {
  content: "";
  display: block;
  padding-top: 100%;
}
.rectangle::before {
  content: "";
  display: block;
  padding-top: calc(200% + 30px);
}
.rectangle___landscape::before {
  content: "";
  display: block;
  padding-top: calc(50% - 15px);
}
.rectangle, .rectangle___landscape, .square {
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
}
.masonry___item {
  margin-bottom: 30px;
}
.masonry___item___inner {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
  padding: 2em;
  box-sizing: border-box;
}
.homepage .masonry___item___inner {
  color: var(--coco-coral);
}
.homepage .tile-rule {
  width: 50%;
  margin: .5em auto;
  border: 0;
  border-top: 1px solid var(--coco-coral);
  opacity: .25;
}
.square___little h3 {
  text-transform: lowercase;
  font-size: 1.75rem;
  line-height: 1.75rem;
  text-align: center;
}
.square___little p {
  text-transform: lowercase;
  font-size: 1rem;
  line-height: 1.2rem;
  margin-bottom: 0;
  text-align: center;
}
.square___big h1 {
  font-size: 2.5rem;
  line-height: 2.5rem;
  margin-bottom: .25em;
}
.square___big h1 span {
  display: block;
}
.square___big .btn {
  font-family: 'm_bold', sans-serif;
  margin-top: 2em;
}
.link-picto {
  position: absolute;
  top: 0;
  right: 0;
  height: 20px;
  width: 20px;
}

.page___header {
  padding-top: 12em;
  padding-bottom: 5em;
  background-color: var(--coco-coral);
}
.page___header.has-cover {
  padding-bottom: 12em;
}
.page___title {
  font-size: 4em;
  text-transform: lowercase;
  color: #fff;
  overflow-wrap: break-word;
  hyphens: auto;
}
.start {
  margin-top: 3em;
}
.intro .kirbytext {
  font-family: 'm_bold', sans-serif;
  font-size: 1.2em;
}
.kirbytext h1, .kirbytext h2, .kirbytext h3, .kirbytext h4, .kirbytext h5 {
  margin-bottom: .425em;
}
.kirbytext h2.sub-title {
  font-size: 2.5rem;
  margin-top: 2em;
  margin-bottom: 1em;
}

main.blog, main.article {
  margin-top: 0;
  padding-top: 0;
}
.article___inner {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
  box-sizing: border-box;
}
.blog .tile-link {
  display: block;
}
.blog .overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: .85;
  background-color: var(--coco-teal);
}
.blog .article h2, .blog .article p {
  color: #fff;
}
.blog .article {
  padding: 2em;
}
.blog .article h2 {
  font-size: 1.8em;
  line-height: 1.2em;
  border-bottom: 1px solid rgba(255, 255, 255, .25);
  padding-bottom: .5em;
  margin-bottom: .5em;
  text-transform: lowercase;
}
.blog .article___inner___content h2 {
  border-top: 1px solid rgba(255, 255, 255, .25);
  padding-top: .5em;
}
.blog .article-date {
  position: absolute;
  top: 1em;
  right: 1em;
  color: #fff;
}
.blog .article___inner___content {
  position: absolute;
  bottom: 0;
  width: 100%;
}
.blog .tile-rule {
  border-bottom: 1px solid rgba(255, 255, 255, .25);
  padding-bottom: 1.5em;
  margin-bottom: 1.5em;
}
.blog ul.tiles {
  list-style: none;
  margin: 3em -15px 0;
  padding: 0;
}
.blog .tiles > li {
  list-style-type: none;
}
.blog .article___inner img {
  filter: grayscale(1) brightness(1);
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.blog .article___inner:has(img) {
  height: 100%;
  top: 0;
  transform: none;
}
.blog .article___inner:has(img) img {
  position: absolute;
  inset: 0;
}
.blog .page___header .kirbytext a {
  color: #fff;
  border-bottom: 1px dotted #fff;
}
.blog .page___header hr {
  border-top-color: #fff;
}
.blog .page___header .kirbytext {
  color: #fff;
}

.article p.article___date {
  color: #fff;
  font-size: 2em;
  margin-top: 1em;
  padding-top: 1em;
  border-top: 1px solid rgba(255, 255, 255, .59);
}
.article p.article___date::before {
  content: "";
  background-image: url("../img/calender.svg");
  background-size: 100% 100%;
  display: inline-block;
  margin-right: .4em;
  height: 18px;
  width: 20px;
}
.kirbytext p {
  margin-bottom: 1.7em;
  font-size: 1.1em;
  line-height: 1.7em;
}
.kirbytext ul li {
  margin-bottom: .85em;
  font-size: 1.1em;
  line-height: 1.7em;
}
.kirbytext ul li:last-child {
  margin-bottom: 0;
}
.kirbytext ul {
  padding-left: 1em;
}
.kirbytext a {
  color: #000;
  border-bottom: 1px dotted rgba(0, 0, 0, .5);
  overflow-wrap: anywhere;
}
.kirbytext a:hover {
  border-bottom-color: #000;
}
.article .article___image {
  margin-bottom: 1.7em;
  margin-top: -12em;
}
.article .article___image img {
  width: 100%;
  height: auto;
}
.article .page___header {
  padding-bottom: 5em;
}
.article .page___header.has-cover {
  padding-bottom: 12em;
}
.article___navi {
  margin: 4em 0 0;
  padding: 1em 0 0;
  list-style: none;
  font-size: 1.1em;
  line-height: 1.7em;
  border-top: 1px solid #000;
}
.article___navi li {
  margin-bottom: .85em;
  font-family: 'm_bold', sans-serif;
  text-transform: uppercase;
}
.article___navi li a {
  font-family: m_reg, sans-serif;
  color: rgba(0, 0, 0, .666);
  text-transform: lowercase;
}
.article___navi li a:hover {
  color: #000;
}
.article___navi li a::before, .article___navi li a::after {
  content: "";
  background-image: url("../img/list.svg");
  background-size: 100% 100%;
  display: inline-block;
  height: 10px;
  width: 10px;
  opacity: .333;
}
.article___navi li a::before { margin-right: .333em; }
.article___navi li a::after { margin-left: .333em; }

.about___coco___section h2 {
  margin-bottom: 1em;
  text-transform: uppercase;
  padding-bottom: .2em;
  padding-top: 5em;
}
.about___coco___section h2 span {
  border-bottom: 6px solid #000;
}
.about___coco .coco___navi {
  position: sticky;
  top: 10em;
  background-color: var(--coco-coral);
  padding: 1em;
}
.about___coco .coco___navi ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.about___coco .coco___navi ul li {
  margin-bottom: .7em;
  border-bottom: 1px solid rgba(0, 0, 0, .05);
  padding-bottom: .666em;
}
.about___coco .coco___navi ul li:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
}
.about___coco .coco___navi ul li a::before {
  content: "";
  background-image: url("../img/list_w.svg");
  background-size: 100% 100%;
  display: inline-block;
  margin-right: .333em;
  height: 10px;
  width: 10px;
  opacity: .333;
}
.about___coco .coco___navi ul li a {
  color: rgba(255, 255, 255, .8);
  text-transform: lowercase;
}
.about___coco .coco___navi ul li a:hover {
  color: #fff;
}
.about___coco .about-aside {
  padding-top: 8em;
}
.about_coco_squares .item {
  display: block;
}
.about_coco_squares .item h2 {
  color: #fff;
  font-size: 1.75em;
  text-transform: lowercase;
}
.about_coco_squares .item p {
  color: #fff;
  font-size: .8em;
  margin-bottom: 1em;
}
.about_coco_squares .article___inner {
  padding: 1em;
}
.about_coco_squares .tile-rule {
  width: 50%;
  margin: .5em auto;
  border: 0;
  border-top: 1px solid var(--coco-cream);
  opacity: .25;
}

.about___coco .kirbytext ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.about___coco ul.coco___press {
  margin-left: -15px;
  margin-right: -15px;
}
.about___coco ul.coco___press li h4 {
  font-size: 1em;
}
.about___coco .coco___press .inner {
  background-color: rgba(0, 0, 0, .025);
  padding: 1em;
}
.kirbytext .coco___press p {
  margin-bottom: 0;
  font-size: .75em;
}
.kirbytext .coco___press li h4 {
  margin-bottom: 0;
}
.about___coco ul.coco___partners {
  margin-left: -15px;
  margin-right: -15px;
}
.about___coco ul.coco___partners li h4 {
  font-size: 1em;
  line-height: 1em;
  margin-bottom: 0;
  font-family: m_reg, sans-serif;
  text-transform: uppercase;
}
.about___coco ul.coco___partners li:not(:last-child) {
  border-bottom: 1px solid rgba(0, 0, 0, .025);
  padding-bottom: 1em;
  margin-bottom: 1em;
}
.about___coco .coco___partners .inner {
  background-color: transparent;
  padding: 0;
}
.about___coco .kirbytext .coco___partners a {
  color: rgba(0, 0, 0, .333);
  font-size: .85em;
  line-height: 1em;
}
.about___coco .kirbytext .coco___partners a:hover {
  color: #000;
}

.selected___projects h3 {
  text-transform: uppercase;
}
.selected___projects h3 span {
  border-bottom: 5px solid #000;
}
.selected___projects p {
  margin-bottom: 0;
}
.selected___projects p span {
  text-transform: uppercase;
  font-size: .75em;
  font-family: 'm_bold', sans-serif;
}
.selected___projects p.more___info {
  text-transform: uppercase;
  font-size: .75em;
}
.selected___projects ul {
  margin: 0 -15px;
  padding: 0 2em;
  list-style: none;
}
.selected___projects ul li:not(:last-child) {
  border-bottom: 1px solid rgba(0, 0, 0, .125);
  margin-bottom: 2em;
  padding-bottom: 2em;
}

ul.archive___ul, ul.archive___ul ul.documents {
  margin-left: 0;
  padding-left: 0;
  list-style: none;
}
ul.archive___ul {
  border-top: 1px solid rgba(0, 0, 0, .125);
  padding-top: 4em;
  margin-top: 4em;
}
ul.archive___ul li.year:not(:last-child) {
  border-bottom: 1px solid rgba(0, 0, 0, .125);
  padding-bottom: 4em;
  margin-bottom: 4em;
}
ul.archive___ul ul.documents li .inner {
  background-color: rgba(0, 0, 0, .025);
  padding: 1em;
}
ul.archive___ul ul.documents li:not(:last-child) {
  margin-bottom: 1em;
}
.kirbytext .doc-title {
  font-family: 'm_bold', sans-serif;
  margin-bottom: 0;
  font-size: 1rem;
}
ul.archive___ul .year > h2 {
  font-size: 2.5rem;
}

ul.team {
  --bs-gutter-x: 30px;
  --bs-gutter-y: 30px;
  list-style: none;
  margin-bottom: 0;
  padding: 0 0 30px;
}
@media (max-width: 575.98px) {
  ul.team > * {
    padding-left: 0;
    padding-right: 0;
  }
}
.team .card {
  height: 100%;
  border: 0;
  border-radius: 0;
  background-color: var(--coco-coral);
}
.team .card img {
  width: 100%;
  height: auto;
}
.team .card-body {
  padding: 2em 1em;
  color: #fff;
}
.team .card-body .role {
  color: #fff;
  text-transform: uppercase;
}
.team .card-body h3 {
  color: #fff;
  font-size: 1.5rem;
}
.team .card-body a {
  color: #fff;
  border-bottom: 1px dotted #fff;
}
.general-contact a {
  font-size: 1.2em;
  border-bottom: 1px dotted rgba(0, 0, 0, .5);
}
.general-contact a:hover {
  border-bottom-color: #000;
}

ul.sidebar {
  list-style: none;
  margin: 0;
  padding: 1em;
  font-size: .8em;
  background-color: rgba(0, 0, 0, .025);
}
ul.sidebar h5 {
  color: rgba(0, 0, 0, .333);
  text-transform: uppercase;
}
li.sidebar_section {
  margin-bottom: 3em;
  border-bottom: 1px solid rgba(0, 0, 0, .05);
  padding-bottom: 3em;
}
li.sidebar_section:last-child {
  margin-bottom: 0;
  border-bottom: 0;
  padding-bottom: 0;
}
ul.sidebar li ul {
  margin: 0;
  padding: 0 0 0 1.2em;
}
ul.sidebar li ul li {
  margin: 0 0 2em;
  padding: 0;
}
ul.sidebar li ul li:last-child {
  margin-bottom: 0;
}
.sidebar .kirbytext p {
  margin-bottom: 0;
  line-height: 1.5em;
}
.sidebar .sidebar_section h5 {
  margin-bottom: .5em;
}
.link-bold {
  font-family: 'm_bold', sans-serif;
}
@media (min-width: 992px) {
  ul.sidebar {
    padding: 2rem;
  }
}

footer {
  padding-bottom: 3em;
}
footer ul {
  margin: 0;
  padding: 0;
}
footer ul li {
  list-style: none;
  display: block;
}
footer ul li a {
  text-transform: uppercase;
  font-size: .9em;
}
footer a, footer a:link, footer a:active, footer a:visited, footer a:hover {
  color: #000;
}
@media (min-width: 768px) {
  footer ul li:not(:last-child)::after {
    content: "|";
    display: inline-block;
    font-size: .75em;
    padding: 0 1em;
    color: #a8a5be;
  }
  footer ul li {
    display: inline;
  }
}

@media (max-width: 575.98px) {
  .homepage .square___little h3, .homepage .square___little p, .square___little p {
    text-align: left;
  }
  .homepage .square::before, .homepage .rectangle::before, .homepage .rectangle___landscape::before {
    content: "";
    display: block;
    padding-top: 0;
  }
  .homepage .masonry___item___inner {
    position: relative;
    top: 0;
    transform: none;
    width: auto;
  }
  .homepage .tile-rule {
    margin-left: 0;
  }
}

@media (max-width: 575.98px) {
  .about_coco_squares .item h2 {
    font-size: 1.3em;
    overflow-wrap: anywhere;
    hyphens: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  .loader___wrapper {
    transition: none;
    animation-duration: 0s;
  }
  .loader {
    animation: none;
  }
  #navbar {
    transition: none;
  }
}
