f/********** Template CSS **********/


/*--------------------------------------------------------------
# General
--------------------------------------------------------------*/
/* body {
  font-family: "Open Sans", sans-serif;
  color: #444444;
}

a {
  color: #244484;
  text-decoration: none;
}

a:hover {
  color: #244484;
  text-decoration: none;
}

h1, h2, h3, h4, h5, h6 {
  font-family: "Jost", sans-serif;
} */

/* Police par défaut pour le texte */
body {
  font-family: "Open Sans", sans-serif;
  font-weight: 400;
  color: #444;
}

/* Titres */
h1, h2, h3, h4, h5, h6 {
  font-family: "Jost", sans-serif;
  font-weight: 600; /* OnePress utilise souvent 600 ou 700 */
  color: #244484;   /* optionnel */
}

/* Liens */
a {
  color: #244484;
  text-decoration: none;
  transition: 0.3s;
}

a:hover {
  color: #192f63;
}

/*--------------------------------------------------------------
# Preloader
--------------------------------------------------------------*/
#preloader {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9999;
  overflow: hidden;
  background: #37517e;
}

#preloader:before {
  content: "";
  position: fixed;
  top: calc(50% - 30px);
  left: calc(50% - 30px);
  border: 6px solid #37517e;
  border-top-color: #fff;
  border-bottom-color: #fff;
  border-radius: 50%;
  width: 60px;
  height: 60px;
  -webkit-animation: animate-preloader 1s linear infinite;
  animation: animate-preloader 1s linear infinite;
}

@-webkit-keyframes animate-preloader {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

@keyframes animate-preloader {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

/*--------------------------------------------------------------
# Back to top button
--------------------------------------------------------------*/
.back-to-top {
  position: fixed;
  visibility: hidden;
  opacity: 0;
  right: 15px;
  bottom: 15px;
  z-index: 996;
  background: #244484;
  width: 40px;
  height: 40px;
  border-radius: 50px;
  transition: all 0.4s;
}

.back-to-top i {
  font-size: 24px;
  color: #fff;
  line-height: 0;
}

.back-to-top:hover {
  background: #244484;
  color: #fff;
}

.back-to-top.active {
  visibility: visible;
  opacity: 1;
}

/*--------------------------------------------------------------
# Header
--------------------------------------------------------------*/
#header {
  transition: all 0.5s;
  z-index: 997;
  padding: 15px 0;
}

#header.header-scrolled, #header.header-inner-pages {
  background: rgba(40, 58, 90, 0.9);
}

#header .logo {
  font-size: 30px;
  margin: 0;
  padding: 0;
  line-height: 1;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
}

#header .logo a {
  color: #fff;
}

#header .logo img {
  max-height: 40px;
}

/*--------------------------------------------------------------
# Navigation Menu
--------------------------------------------------------------*/
/**
* Desktop Navigation 
*/
.navbar {
  padding: 0;
}

.navbar ul {
  margin: 0;
  padding: 0;
  display: flex;
  list-style: none;
  align-items: center;
  justify-content: flex-start; /* AJOUT IMPORTANT */
}

.navbar li {
  position: relative;
}

.navbar a, .navbar a:focus {
  display: flex;
  align-items: center;
  justify-content: flex-start; /* <- AU LIEU DE space-between */
  padding: 10px 0 10px 30px;
  font-size: 15px;
  font-weight: 500;
  color: #000000;
  white-space: nowrap;
  transition: 0.3s;
}

.navbar a i, .navbar a:focus i {
  font-size: 12px;
  line-height: 0;
  margin-left: 5px;
}

.navbar a:hover, 
.navbar .active, 
.navbar .active:focus, 
.navbar li:hover > a {
  color: #244484;
}

.navbar .getstarted {
  padding: 8px 20px;
  margin-left: 30px;
  border-radius: 50px;
  color: #fff;
  font-size: 14px;
  border: 2px solid #244484;
  font-weight: 600;
}

.navbar .getstarted:hover {
  color: #fff;
  background: #244484;
}

.navbar .dropdown ul {
  display: block;
  position: absolute;
  left: 14px;
  top: calc(100% + 30px);
  margin: 0;
  padding: 10px 0;
  z-index: 99;
  opacity: 0;
  visibility: hidden;
  background: #fff;
  box-shadow: 0px 0px 30px rgba(127, 137, 161, 0.25);
  transition: 0.3s;
  border-radius: 4px;

}

.navbar .dropdown ul li {
  min-width: 200px;
}

.navbar .dropdown ul a {
  padding: 10px 20px;
  font-size: 14px;
  text-transform: none;
  font-weight: 500;
  color: #244484;
}

.navbar .dropdown ul a i {
  font-size: 12px;
}

.navbar .dropdown ul a:hover, .navbar .dropdown ul .active:hover, .navbar .dropdown ul li:hover > a {
  color: #244484;
}

.navbar .dropdown:hover > ul {
  opacity: 1;
  top: 100%;
  visibility: visible;
}

.navbar .dropdown .dropdown ul {
  top: 0;
  left: calc(100% - 30px);
  visibility: hidden;
}

.navbar .dropdown .dropdown:hover > ul {
  opacity: 1;
  top: 0;
  left: 100%;
  visibility: visible;
}

@media (max-width: 1366px) {
  .navbar .dropdown .dropdown ul {
    left: -90%;
  }
  .navbar .dropdown .dropdown:hover > ul {
    left: -100%;
  }
}

/* --- Icônes réseaux sociaux dans le menu (style bandeau bleu) --- */
/*.nav-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  font-size: 14px;
  background-color: #fff;
  color: #d92332; 
  border-radius: 50%;
  border: 1px solid #ddd;
  transition: all 0.3s ease;
  text-decoration: none;
}

.nav-social a:hover {
  background-color: #d92332;
  color: #fff;
  transform: scale(1.1);
}

.nav-social {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: 10px;
} */

/* Correction du décalage vertical des icônes sociales */
/*.nav-social a i {
  line-height: 1;   
  display: block;   
} */

/**
* Mobile Navigation 
*/
.mobile-nav-toggle {
  color: #fff;
  font-size: 28px;
  cursor: pointer;
  display: none;
  line-height: 0;
  transition: 0.5s;
}

.mobile-nav-toggle.bi-x {
  color: #fff;
}

@media (max-width: 991px) {
  .mobile-nav-toggle {
    display: block;
  }
  .navbar ul {
    display: none;
  }
}

.navbar-mobile {
  position: fixed;
  overflow: hidden;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  background: rgba(40, 58, 90, 0.9);
  transition: 0.3s;
  z-index: 999;
}

.navbar-mobile .mobile-nav-toggle {
  position: absolute;
  top: 15px;
  right: 15px;
}

.navbar-mobile ul {
  display: block;
  position: absolute;
  top: 55px;
  right: 15px;
  bottom: 15px;
  left: 15px;
  padding: 10px 0;
  border-radius: 10px;
  background-color: #fff;
  overflow-y: auto;
  transition: 0.3s;
}

.navbar-mobile a {
  padding: 10px 20px;
  font-size: 15px;
  color: #244484;
}

.navbar-mobile a:hover, .navbar-mobile .active, .navbar-mobile li:hover > a {
  color: #244484;
}

.navbar-mobile .getstarted {
  margin: 15px;
  color: #244484;
}

.navbar-mobile .dropdown ul {
  position: static;
  display: none;
  margin: 10px 20px;
  padding: 10px 0;
  z-index: 99;
  opacity: 1;
  visibility: visible;
  background: #fff;
  box-shadow: 0px 0px 30px rgba(127, 137, 161, 0.25);
}

.navbar-mobile .dropdown ul li {
  min-width: 200px;
}

.navbar-mobile .dropdown ul a {
  padding: 10px 20px;
}

.navbar-mobile .dropdown ul a i {
  font-size: 12px;
}

.navbar-mobile .dropdown ul a:hover, .navbar-mobile .dropdown ul .active:hover, .navbar-mobile .dropdown ul li:hover > a {
  color: #47b2e4;
}

.navbar-mobile .dropdown > .dropdown-active {
  display: block;
}

/*--------------------------------------------------------------
# Hero Section
--------------------------------------------------------------*/
/* #hero {
  width: 100%;
  height: 80vh;
  background: #244484;
}

#hero .container {
  padding-top: 72px;
}

#hero h1 {
  margin: 0 0 10px 0;
  font-size: 48px;
  font-weight: 700;
  line-height: 56px;
  color: #fff;
}

#hero h2 {
  color: rgba(255, 255, 255, 0.6);
  margin-bottom: 50px;
  font-size: 24px;
}

#hero .btn-get-started {
  font-family: "Jost", sans-serif;
  font-weight: 500;
  font-size: 16px;
  letter-spacing: 1px;
  display: inline-block;
  padding: 10px 28px 11px 28px;
  border-radius: 50px;
  transition: 0.5s;
  margin: 10px 0 0 0;
  color: #fff;
  background: #244484;
}

#hero .btn-get-started:hover {
  background: #244484;
}

#hero .btn-watch-video {
  font-size: 16px;
  display: flex;
  align-items: center;
  transition: 0.5s;
  margin: 10px 0 0 25px;
  color: #fff;
  line-height: 1;
}

#hero .btn-watch-video i {
  line-height: 0;
  color: #fff;
  font-size: 32px;
  transition: 0.3s;
  margin-right: 8px;
}

#hero .btn-watch-video:hover i {
  color: #244484;
}

#hero .animated {
  animation: up-down 2s ease-in-out infinite alternate-reverse both;
}

@media (max-width: 991px) {
  #hero {
    height: 100vh;
    text-align: center;
  }
  #hero .animated {
    -webkit-animation: none;
    animation: none;
  }
  #hero .hero-img {
    text-align: center;
  }
  #hero .hero-img img {
    width: 50%;
  }
}

@media (max-width: 768px) {
  #hero h1 {
    font-size: 28px;
    line-height: 36px;
  }
  #hero h2 {
    font-size: 18px;
    line-height: 24px;
    margin-bottom: 30px;
  }
  #hero .hero-img img {
    width: 70%;
  }
}*/

/* Hero Section ajustée sans bandeau */
#hero {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  height: 60vh; /* garde la même taille que maintenant */
  margin-top: 0 !important; /* supprime tout espace au-dessus */
  padding-top: 0 !important;
}


@media (max-width: 575px) {
  #hero .hero-img img {
    width: 80%;
  }
  #hero .btn-get-started {
    font-size: 16px;
    padding: 10px 24px 11px 24px;
  }
}

@-webkit-keyframes up-down {
  0% {
    transform: translateY(10px);
  }
  100% {
    transform: translateY(-10px);
  }
}

@keyframes up-down {
  0% {
    transform: translateY(10px);
  }
  100% {
    transform: translateY(-10px);
  }
}


@font-face {
    font-family: 'Cooperhewitt';
    src: url('/fonts/Cooperhewitt-Regular.otf') format('opentype');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'Cooperhewitt';
    src: url('/fonts/Cooperhewitt-Bold.otf') format('opentype');
    font-weight: bold;
    font-style: normal;
}

@font-face {
    font-family: 'Cooperhewitt';
    src: url('/fonts/Cooperhewitt-Light.otf') format('opentype');
    font-weight: lighter;
    font-style: normal;
}




#wrapper {
    width: 60%;
    margin-left: 25px;
    margin-right: 25px;
}


:root {
    --primary: #244484;
    --secondary: #555555;
    --light: #F1F3FA;
    --dark: #000;
}

.back-to-top {
    position: fixed;
    display: none;
    right: 30px;
    bottom: 30px;
    z-index: 99;
}

#heads {
    background: #244484;
}

.fw-medium {
    font-weight: 500;
}


/*** Spinner ***/
#spinner {
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s ease-out, visibility 0s linear .5s;
    z-index: 99999;
}

#spinner.show {
    transition: opacity .5s ease-out, visibility 0s linear 0s;
    visibility: visible;
    opacity: 1;
}


/*** Button ***/
.btn {
    transition: .5s;
    font-weight: 500;
}

.btn-primary,
.btn-outline-primary:hover {
    color: var(--light);
}

.btn-secondary,
.btn-outline-secondary:hover {
    color: var(--dark);
}

.column-title-small {
    color: var(--primary);
}
.h3 {
    color: var(--primary);
}
.btn-square {
    width: 38px;
    height: 38px;
}
.titles {
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: normal;
}
.btn-sm-square {
    width: 32px;
    height: 32px;
}

.btn-lg-square {
    width: 48px;
    height: 48px;
}

.btn-square,
.btn-sm-square,
.btn-lg-square {
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: normal;
}


/*** Navbar ***/


.navbar-nav a:hover {
    animation: grow 0.2s ease-in-out;
}

@keyframes grow {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.1);
    }
    100% {
        transform: scale(1);
    }
}


.sticky-top {
    top: -100px;
    transition: .5s;
}

.navbar .navbar-nav .nav-link {
    margin-right: 35px;
    padding: 25px 0;
    color: var(--dark);
    font-size: 18px;
    font-weight: 500;
    outline: none;
}

.navbar .navbar-nav .nav-link:hover,
.navbar .navbar-nav .nav-link.active {
    color: var(--primary);
}

.navbar .dropdown-toggle::after {
    border: none;
    content: "\f107";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    vertical-align: middle;
    margin-left: 8px;
}


@media (max-width: 991.98px) {
    

    .navbar .navbar-nav .nav-link  {
        margin-right: 0;
        padding: 10px 0;
    }

    .navbar .navbar-nav {
        margin-top: 15px;
        border-top: 1px solid #EEEEEE;
    }
}

@media (min-width: 992px) {
    

   .navbar .nav-item.dropdown > .dropdown-menu {
        display: block;
        border: none;
        margin-top: 0;
        top: 150%;
        opacity: 0;
        visibility: hidden;
        transition: .5s;
    }

    .navbar .nav-item:hover .dropdown-menu {
        top: 100%;
        visibility: visible;
        transition: .5s;
        opacity: 1;
    }
}


/*** Header ***/
.carousel-caption {
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    background: rgba(0, 0, 0, .1);
    z-index: 1;
}

.carousel-control-prev,
.carousel-control-next {
    width: 15%;
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 3.5rem;
    background-color: var(--primary);
    border: 15px solid var(--primary);
}

@media (max-width: 768px) {

    
    #header-carousel .carousel-item {
        position: relative;
        min-height: 450px;
    }
    
    #header-carousel .carousel-item img {
        position: absolute;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
}

.page-header {
    background: linear-gradient(rgba(0, 0, 0, .1), rgba(0, 0, 0, .1)), url(../img/page-bg.jpg) center center no-repeat;
    background-size: cover;
}

.page-header .breadcrumb-item+.breadcrumb-item::before {
    color: var(--light);
}

.page-header .breadcrumb-item,
.page-header .breadcrumb-item a {
    font-size: 18px;
    color: var(--light);
}


/*** Features ***/
.feature-row {
    box-shadow: 0 0 45px rgba(0, 0, 0, .08);
}

.feature-item {
    border-color: rgba(0, 0, 0, .03) !important;
}



/*** About ***/
.about {
    background: linear-gradient(rgba(0, 0, 0, .1), rgba(0, 0, 0, .1)), url(../img/about.jpg) left center no-repeat;
    background-size: cover;
}

.btn-play {
    position: relative;
    display: block;
    box-sizing: content-box;
    width: 36px;
    height: 46px;
    border-radius: 100%;
    border: none;
    outline: none !important;
    padding: 18px 20px 20px 28px;
    background: var(--primary);
}

.btn-play:before {
    content: "";
    position: absolute;
    z-index: 0;
    left: 50%;
    top: 50%;
    transform: translateX(-50%) translateY(-50%);
    display: block;
    width: 90px;
    height: 90px;
    background: var(--primary);
    border-radius: 100%;
    animation: pulse-border 1500ms ease-out infinite;
}

.btn-play:after {
    content: "";
    position: absolute;
    z-index: 1;
    left: 50%;
    top: 50%;
    transform: translateX(-50%) translateY(-50%);
    display: block;
    width: 90px;
    height: 90px;
    background: var(--primary);
    border-radius: 100%;
    transition: all 200ms;
}

.btn-play span {
    display: block;
    position: relative;
    z-index: 3;
    width: 0;
    height: 0;
    left: 3px;
    border-left: 30px solid #FFFFFF;
    border-top: 18px solid transparent;
    border-bottom: 18px solid transparent;
}

@keyframes pulse-border {
    0% {
        transform: translateX(-50%) translateY(-50%) translateZ(0) scale(1);
        opacity: 1;
    }

    100% {
        transform: translateX(-50%) translateY(-50%) translateZ(0) scale(2);
        opacity: 0;
    }
}

.modal-video .modal-dialog {
    position: relative;
    max-width: 800px;
    margin: 60px auto 0 auto;
}

.modal-video .modal-body {
    position: relative;
    padding: 0px;
}

.modal-video .close {
    position: absolute;
    width: 30px;
    height: 30px;
    right: 0px;
    top: -30px;
    z-index: 999;
    font-size: 30px;
    font-weight: normal;
    color: #FFFFFF;
    background: #000000;
    opacity: 1;
}

/*** Service ***/
.service-item .service-text {
    position: relative;
    width: 100%;
    top: 0;
    left: 0;
    text-align: center;
    background: #FFFFFF;
    box-shadow: 0 0 45px rgba(0, 0, 0, .06);
    transition: .5s;
    z-index: 2;
}

.service-item:hover .service-text {
    top: -1.5rem;
}

.service-item .service-text h5 {
    transition: .5s;
}

.service-item:hover .service-text h5 {
    color: var(--primary);
}

.service-item .service-btn {
    position: absolute;
    width: 80%;
    height: 3rem;
    left: 10%;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #FFFFFF;
    box-shadow: 0 0 45px rgba(0, 0, 0, .07);
    transition: .5s;
    z-index: 1;
}

.service-item:hover .service-btn {
    bottom: -1.5rem;
}

/* === Nos Partenaires === */
.owl-carousel .partner-item img {
  max-height: 80px;
  width: auto;
  display: inline-block;
  vertical-align: middle;
  object-fit: contain;
  image-rendering: -webkit-optimize-contrast;
  transition: transform 0.3s ease; /* effet fluide au survol */
}

.owl-carousel .partner-item img:hover {
  transform: scale(1.05); /* léger zoom */
}

/*** Project ***/
.project-item {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 0 45px rgba(0, 0, 0, .07);
}

.project-item .post-date {
  position: absolute;
  right: 0;
  bottom: 0;
  background-color: var(--accent-color);
  color: var(--contrast-color);
  text-transform: uppercase;
  font-size: 13px;
  padding: 6px 12px;
  font-weight: 500;
}

.project-item .project-overlay {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, .5);
    opacity: 0;
    padding-top: 60px;
    transition: .5s;
}

.project-item:hover .project-overlay {
    opacity: 1;
    padding-top: 0;
}

.project-carousel .owl-nav {
    position: absolute;
    top: -100px;
    right: 0;
    display: flex;
}

.project-carousel .owl-nav .owl-prev,
.project-carousel .owl-nav .owl-next {
    margin-left: 15px;
    width: 55px;
    height: 55px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--secondary);
    border-radius: 55px;
    box-shadow: 0 0 45px rgba(0, 0, 0, .15);
    font-size: 25px;
    transition: .5s;
}

.project-carousel .owl-nav .owl-prev:hover,
.project-carousel .owl-nav .owl-next:hover {
    background: var(--primary);
    color: #FFFFFF;
}

@media (max-width: 768px) {
    

    .project-carousel .owl-nav {
        top: -70px;
        right: auto;
        left: 50%;
        transform: translateX(-50%);
    }

    .project-carousel .owl-nav .owl-prev,
    .project-carousel .owl-nav .owl-next {
        margin: 0 7px;
        width: 45px;
        height: 45px;
        font-size: 20px;
    }
}

/*** Team ***/

.team-item 
{
    position: relative;
    text-align: center;
    box-shadow: 0 0 45px rgba(0, 0, 0, .07);
}

.team-item .team-social {
    position: absolute;
    padding: 0;
    top: 15px;
    left: 0;
    overflow: hidden;
}

.team-item .team-social li {
    list-style-type: none;
    margin-bottom: 10px;
    margin-left: -50px;
    opacity: 0;
    transition: .5s;
}

.team-item:hover .team-social li {
    margin-left: 15px;
    opacity: 1;
}

.team-item .team-social li .btn {
    background: #FFFFFF;
    color: var(--primary);
    border-radius: 40px;
    transition: .5s;
}

.team-item .team-social li .btn:hover {
    color: #FFFFFF;
    background: var(--primary);
}

.team-item .team-social li:nth-child(1) {
    transition-delay: .1s;
}

.team-item .team-social li:nth-child(2) {
    transition-delay: .2s;
}

.team-item .team-social li:nth-child(3) {
    transition-delay: .3s;
}

.team-item .team-social li:nth-child(4) {
    transition-delay: .4s;
}

.team-item .team-social li:nth-child(5) {
    transition-delay: .5s;
}


/*** Testimonial ***/

.testimonial-item {
    box-shadow: 0 0 45px rgba(0, 0, 0, .07);
    transition: .5s;
}

.owl-item .testimonial-item,
.testimonial-item * {
    transition: .5s;
}

.owl-item.center .testimonial-item,
.testimonial-item:hover {
    background: var(--primary);
}

.owl-item.center .testimonial-item *,
.testimonial-item:hover * {
    color: #FFFFFF !important;
}

.testimonial-item img {
    width: 100px !important;
    height: 100px !important;
    border-radius: 100px;
}

.testimonial-carousel .owl-nav {
    position: absolute;
    top: -100px;
    right: 0;
    display: flex;
}

.testimonial-carousel .owl-nav .owl-prev,
.testimonial-carousel .owl-nav .owl-next {
    margin-left: 15px;
    width: 55px;
    height: 55px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--secondary);
    border-radius: 55px;
    box-shadow: 0 0 45px rgba(0, 0, 0, .15);
    font-size: 25px;
    transition: .5s;
}

.testimonial-carousel .owl-nav .owl-prev:hover,
.testimonial-carousel .owl-nav .owl-next:hover {
    background: var(--primary);
    color: #FFFFFF;
}

@media only screen and (min-width: 1025px) { 
    
        section {
        zoom:80%
    }

    .testimonial-carousel .owl-nav {
        top: -70px;
        right: auto;
        left: 50%;
        transform: translateX(-50%);
    }

    .testimonial-carousel .owl-nav .owl-prev,
    .testimonial-carousel .owl-nav .owl-next {
        margin: 0 7px;
        width: 25px;
        height: 25px;
        font-size: 20px;
    }
}

.twitter {
    
    zoom:80%
    width: 25px;
    height: 25px;


}



/*** Footer ***/
.footer {
    color: #B0B9AE;
    background: #244484;
}

.footer .btn.btn-link {
    display: block;
    margin-bottom: 5px;
    padding: 0;
    text-align: left;
    color: #B0B9AE;
    font-weight: normal;
    text-transform: capitalize;
    transition: .3s;
}

.footer .btn.btn-link::before {
    position: relative;
    content: "\f105";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-right: 10px;
}

.footer .btn.btn-link:hover {
    color: var(--light);
    letter-spacing: 1px;
    box-shadow: none;
}



.main-wrapper {
    max-width: 72.5rem
}

.article-wrapper,.main-wrapper {
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.5rem;
    padding-right: 1.5rem
}

.article-wrapper {
    max-width: 63rem
}

.intro-wrapper {
    margin-left: auto;
    margin-right: auto;
    max-width: 57rem;
    padding-left: 1.5rem;
    padding-right: 1.5rem
}

.main-wrapper .article-wrapper,.main-wrapper .intro-wrapper,.main-wrapper .main-wrapper {
    padding-left: 0;
    padding-right: 0
}

.pointer-events-none {
    pointer-events: none
}

.fixed {
    position: fixed
}

.absolute {
    position: absolute
}

.relative {
    position: relative
}

.inset-0 {
    bottom: 0;
    left: 0;
    right: 0;
    top: 0
}

.top-0 {
    top: 0
}

.left-0 {
    left: 0
}

.right-4 {
    right: 1rem
}

.top-8 {
    top: 2rem
}

.right-6 {
    right: 1.5rem
}

.left-1\/2 {
    left: 50%
}

.top-1\/2 {
    top: 50%
}

.right-0 {
    right: 0
}

.top-full {
    top: 100%
}

.top-6 {
    top: 1.5rem
}

.left-5 {
    left: 1.25rem
}

.right-5 {
    right: 1.25rem
}

.bottom-0 {
    bottom: 0
}

.top-2\.5 {
    top: .625rem
}

.right-2\.5 {
    right: .625rem
}

.top-2 {
    top: .5rem
}

.right-2 {
    right: .5rem
}

.z-50 {
    z-index: 50
}

.z-20 {
    z-index: 20
}

.z-10 {
    z-index: 10
}

.col-span-2 {
    grid-column: span 2/span 2
}

.mx-auto {
    margin-left: auto;
    margin-right: auto
}

.my-6 {
    margin-bottom: 1.5rem;
    margin-top: 1.5rem
}

.my-4 {
    margin-bottom: 1rem;
    margin-top: 1rem
}

.my-12 {
    margin-bottom: 3rem;
    margin-top: 3rem
}

.my-auto {
    margin-bottom: auto;
    margin-top: auto
}

.mr-6 {
    margin-right: 1.5rem
}

.mb-12 {
    margin-bottom: 3rem
}

.mb-9 {
    margin-bottom: 2.25rem
}

.mt-14 {
    margin-top: 3.5rem
}

.ml-1 {
    margin-left: .25rem
}

.mt-4 {
    margin-top: 1rem
}

.mt-12 {
    margin-top: 3rem
}

.mt-10 {
    margin-top: 2.5rem
}

.mr-1 {
    margin-right: .25rem
}

.ml-3\.5 {
    margin-left: .875rem
}

.ml-3 {
    margin-left: .75rem
}

.mr-3 {
    margin-right: .75rem
}

.mb-4 {
    margin-bottom: 1rem
}

.mb-6 {
    margin-bottom: 1.5rem
}

.mb-2 {
    margin-bottom: .5rem
}

.mt-2 {
    margin-top: .5rem
}

.mt-6 {
    margin-top: 1.5rem
}

.mb-10 {
    margin-bottom: 2.5rem
}

.mt-3\.5 {
    margin-top: .875rem
}

.mt-3 {
    margin-top: .75rem
}

.mr-2 {
    margin-right: .5rem
}

.mr-4 {
    margin-right: 1rem
}

.mt-9 {
    margin-top: 2.25rem
}

.mt-8 {
    margin-top: 2rem
}

.mr-5 {
    margin-right: 1.25rem
}

.mb-3 {
    margin-bottom: .75rem
}

.mr-2\.5 {
    margin-right: .625rem
}

.mt-5 {
    margin-top: 1.25rem
}

.ml-auto {
    margin-left: auto
}

.mt-1 {
    margin-top: .25rem
}

.mb-5 {
    margin-bottom: 1.25rem
}

.mb-7 {
    margin-bottom: 1.75rem
}

.-mt-8 {
    margin-top: -2rem
}

.mb-8 {
    margin-bottom: 2rem
}

.mt-11 {
    margin-top: 2.75rem
}

.mb-14 {
    margin-bottom: 3.5rem
}

.mt-2\.5 {
    margin-top: .625rem
}

.-mt-4 {
    margin-top: -1rem
}

.-mt-9 {
    margin-top: -2.25rem
}

.mt-auto {
    margin-top: auto
}

.block {
    display: block
}

.inline-block {
    display: inline-block
}

.flex {
    display: -webkit-flex;
    display: flex
}

.inline-flex {
    display: -webkit-inline-flex;
    display: inline-flex
}

.grid {
    display: grid
}

.inline-grid {
    display: inline-grid
}

.hidden {
    display: none
}

.aspect-video {
    aspect-ratio: 16/9
}

.aspect-square {
    aspect-ratio: 1/1
}

.h-full {
    height: 100%
}

.h-1\/2 {
    height: 50%
}

.h-20 {
    height: 5rem
}

.h-4 {
    height: 1rem
}

.h-16 {
    height: 4rem
}

.h-28 {
    height: 7rem
}

.h-1 {
    height: .25rem
}

.h-\[5\.25rem\] {
    height: 5.25rem
}

.h-\[3\.8rem\] {
    height: 3.8rem
}

.h-11 {
    height: 2.75rem
}

.h-6 {
    height: 1.5rem
}

.h-44 {
    height: 11rem
}

.h-12 {
    height: 3rem
}

.h-10 {
    height: 2.5rem
}

.h-9 {
    height: 2.25rem
}

.h-3\/4 {
    height: 75%
}

.h-\[3\.75rem\] {
    height: 3.75rem
}

.h-\[2\.6rem\] {
    height: 2.6rem
}

.h-40 {
    height: 10rem
}

.min-h-\[7rem\] {
    min-height: 7rem
}

.min-h-\[20\.8rem\] {
    min-height: 20.8rem
}

.w-full {
    width: 100%
}

.w-6 {
    width: 1.5rem
}

.w-auto {
    width: auto
}

.w-72 {
    width: 18rem
}

.w-\[6\.4rem\] {
    width: 6.4rem
}

.w-20 {
    width: 5rem
}

.w-1\/2 {
    width: 50%
}

.w-4 {
    width: 1rem
}

.w-16 {
    width: 4rem
}

.w-28 {
    width: 7rem
}

.w-10 {
    width: 2.5rem
}

.w-9\/12 {
    width: 75%
}

.w-\[47\.5\%\] {
    width: 47.5%
}

.w-\[5\.25rem\] {
    width: 5.25rem
}

.w-8 {
    width: 2rem
}

.w-\[3\.8rem\] {
    width: 3.8rem
}

.w-11 {
    width: 2.75rem
}

.w-\[10\.4rem\] {
    width: 10.4rem
}

.w-36 {
    width: 9rem
}

.w-12 {
    width: 3rem
}

.w-max {
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content
}

.w-9 {
    width: 2.25rem
}

.w-3\/4 {
    width: 75%
}

.min-w-\[200px\] {
    min-width: 200px
}

.min-w-0 {
    min-width: 0
}

.max-w-full {
    max-width: 100%
}

.max-w-\[18rem\] {
    max-width: 18rem
}

.max-w-\[73\.5rem\] {
    max-width: 73.5rem
}

.max-w-\[60\.63rem\] {
    max-width: 60.63rem
}

.max-w-\[40rem\] {
    max-width: 40rem
}

.max-w-\[40\.5rem\] {
    max-width: 40.5rem
}

.max-w-sm {
    max-width: 24rem
}

.max-w-xl {
    max-width: 36rem
}

.max-w-max {
    max-width: 1440px
}

.max-w-\[1000px\] {
    max-width: 1000px
}

.max-w-\[56rem\] {
    max-width: 56rem
}

.shrink-0 {
    -webkit-flex-shrink: 0;
    flex-shrink: 0
}

.flex-grow {
    -webkit-flex-grow: 1;
    flex-grow: 1
}

.-translate-y-full {
    --tw-translate-y: -100%
}

.-translate-x-1\/2,.-translate-y-full {
    -webkit-transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
    transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}

.-translate-x-1\/2 {
    --tw-translate-x: -50%
}

.-translate-y-1\/2 {
    --tw-translate-y: -50%
}

.-translate-x-14,.-translate-y-1\/2 {
    -webkit-transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
    transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}

.-translate-x-14 {
    --tw-translate-x: -3.5rem
}

.transform-gpu {
    -webkit-transform: translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
    transform: translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}

@-webkit-keyframes loader {
    0% {
        -webkit-transform: rotate(1turn);
        transform: rotate(1turn)
    }

    to {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg)
    }
}

@keyframes loader {
    0% {
        -webkit-transform: rotate(1turn);
        transform: rotate(1turn)
    }

    to {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg)
    }
}

.animate-loader {
    -webkit-animation: loader 1s linear infinite;
    animation: loader 1s linear infinite
}

@-webkit-keyframes modal {
    0% {
        opacity: 0;
        -webkit-transform: scale(.96);
        transform: scale(.96)
    }

    to {
        opacity: 1;
        -webkit-transform: scale(1);
        transform: scale(1)
    }
}

@keyframes modal {
    0% {
        opacity: 0;
        -webkit-transform: scale(.96);
        transform: scale(.96)
    }

    to {
        opacity: 1;
        -webkit-transform: scale(1);
        transform: scale(1)
    }
}

.animate-modal {
    -webkit-animation: modal .4s ease-in-out;
    animation: modal .4s ease-in-out
}

.cursor-pointer {
    cursor: pointer
}

.resize-y {
    resize: vertical
}

.grid-cols-3 {
    grid-template-columns: repeat(3,minmax(0,1fr))
}

.grid-cols-2 {
    grid-template-columns: repeat(2,minmax(0,1fr))
}

.flex-col {
    -webkit-flex-direction: column;
    flex-direction: column
}

.flex-wrap {
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap
}

.place-items-center {
    place-items: center
}

.items-start {
    -webkit-align-items: flex-start;
    align-items: flex-start
}

.items-center {
    -webkit-align-items: center;
    align-items: center
}

.justify-center {
    -webkit-justify-content: center;
    justify-content: center
}

.justify-between {
    -webkit-justify-content: space-between;
    justify-content: space-between
}

.justify-items-center {
    justify-items: center
}

.gap-6 {
    gap: 1.5rem
}

.gap-8 {
    gap: 2rem
}

.gap-2 {
    gap: .5rem
}

.gap-5 {
    gap: 1.25rem
}

.gap-14 {
    gap: 3.5rem
}

.gap-10 {
    gap: 2.5rem
}

.gap-12 {
    gap: 3rem
}

.gap-2\.5 {
    gap: .625rem
}

.gap-x-6 {
    -webkit-column-gap: 1.5rem;
    -moz-column-gap: 1.5rem;
    column-gap: 1.5rem
}

.gap-y-8 {
    row-gap: 2rem
}

.space-x-1>:not([hidden])~:not([hidden]) {
    --tw-space-x-reverse: 0;
    margin-left: calc(.25rem*(1 - var(--tw-space-x-reverse)));
    margin-right: calc(.25rem*var(--tw-space-x-reverse))
}

.space-x-4>:not([hidden])~:not([hidden]) {
    --tw-space-x-reverse: 0;
    margin-left: calc(1rem*(1 - var(--tw-space-x-reverse)));
    margin-right: calc(1rem*var(--tw-space-x-reverse))
}

.space-y-2>:not([hidden])~:not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-bottom: calc(.5rem*var(--tw-space-y-reverse));
    margin-top: calc(.5rem*(1 - var(--tw-space-y-reverse)))
}

.space-x-8>:not([hidden])~:not([hidden]) {
    --tw-space-x-reverse: 0;
    margin-left: calc(2rem*(1 - var(--tw-space-x-reverse)));
    margin-right: calc(2rem*var(--tw-space-x-reverse))
}

.space-x-6>:not([hidden])~:not([hidden]) {
    --tw-space-x-reverse: 0;
    margin-left: calc(1.5rem*(1 - var(--tw-space-x-reverse)));
    margin-right: calc(1.5rem*var(--tw-space-x-reverse))
}

.space-y-10>:not([hidden])~:not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-bottom: calc(2.5rem*var(--tw-space-y-reverse));
    margin-top: calc(2.5rem*(1 - var(--tw-space-y-reverse)))
}

.space-y-5>:not([hidden])~:not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-bottom: calc(1.25rem*var(--tw-space-y-reverse));
    margin-top: calc(1.25rem*(1 - var(--tw-space-y-reverse)))
}

.overflow-hidden {
    overflow: hidden
}

.\!overflow-visible {
    overflow: visible!important
}

.overflow-y-auto {
    overflow-y: auto
}

.truncate {
    overflow: hidden;
    text-overflow: ellipsis
}

.truncate,.whitespace-nowrap {
    white-space: nowrap
}

.break-all {
    word-break: break-all
}

.rounded-xl {
    border-radius: .75rem
}

.rounded-2xl {
    border-radius: 1rem
}

.\!rounded-full {
    border-radius: 9999px!important
}

.rounded-full {
    border-radius: 9999px
}

.rounded {
    border-radius: .25rem
}

.rounded-none {
    border-radius: 0
}

.rounded-md {
    border-radius: .375rem
}

.rounded-lg {
    border-radius: .5rem
}

.rounded-b-xl {
    border-bottom-left-radius: .75rem;
    border-bottom-right-radius: .75rem
}

.border {
    border-width: 1px
}

.border-0 {
    border-width: 0
}

.border-b {
    border-bottom-width: 1px
}

.border-b-0 {
    border-bottom-width: 0
}

.border-t-0 {
    border-top-width: 0
}

.border-b-2 {
    border-bottom-width: 2px
}

.border-dashed {
    border-style: dashed
}

.border-secondary-200 {
    --tw-border-opacity: 1;
    border-color: rgb(226 62 78/var(--tw-border-opacity))
}

.border-secondary-400 {
    --tw-border-opacity: 1;
    border-color: rgb(170 54 57/var(--tw-border-opacity))
}

.border-grey-200 {
    --tw-border-opacity: 1;
    border-color: rgb(226 226 226/var(--tw-border-opacity))
}

.border-grey-400 {
    --tw-border-opacity: 1;
    border-color: rgb(179 179 179/var(--tw-border-opacity))
}

.border-secondary-100 {
    --tw-border-opacity: 1;
    border-color: rgb(250 79 79/var(--tw-border-opacity))
}

.\!border-white {
    --tw-border-opacity: 1!important;
    border-color: rgb(255 255 255/var(--tw-border-opacity))!important
}

.border-b-grey-300 {
    --tw-border-opacity: 1;
    border-bottom-color: rgb(200 200 200/var(--tw-border-opacity))
}

.bg-primary {
    --tw-bg-opacity: 1;
    background-color: rgb(39 66 133/var(--tw-bg-opacity))
}

.bg-secondary-100 {
    --tw-bg-opacity: 1;
    background-color: rgb(250 79 79/var(--tw-bg-opacity))
}

.bg-secondary-200 {
    --tw-bg-opacity: 1;
    background-color: rgb(226 62 78/var(--tw-bg-opacity))
}

.bg-secondary-400 {
    --tw-bg-opacity: 1;
    background-color: rgb(170 54 57/var(--tw-bg-opacity))
}

.bg-tertiary {
    --tw-bg-opacity: 1;
    background-color: rgb(242 210 16/var(--tw-bg-opacity))
}

.bg-white {
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255/var(--tw-bg-opacity))
}

.bg-black {
    --tw-bg-opacity: 1;
    background-color: rgb(0 0 0/var(--tw-bg-opacity))
}

.bg-grey-100 {
    --tw-bg-opacity: 1;
    background-color: rgb(248 248 248/var(--tw-bg-opacity))
}

.bg-grey-200 {
    --tw-bg-opacity: 1;
    background-color: rgb(226 226 226/var(--tw-bg-opacity))
}

.bg-grey-300 {
    --tw-bg-opacity: 1;
    background-color: rgb(200 200 200/var(--tw-bg-opacity))
}

.bg-grey-400 {
    --tw-bg-opacity: 1;
    background-color: rgb(179 179 179/var(--tw-bg-opacity))
}

.bg-grey-500 {
    --tw-bg-opacity: 1;
    background-color: rgb(108 108 108/var(--tw-bg-opacity))
}

.bg-grey-600 {
    --tw-bg-opacity: 1;
    background-color: rgb(83 83 83/var(--tw-bg-opacity))
}

.bg-grey-700 {
    --tw-bg-opacity: 1;
    background-color: rgb(30 33 44/var(--tw-bg-opacity))
}

.bg-green {
    --tw-bg-opacity: 1;
    background-color: rgb(72 184 104/var(--tw-bg-opacity))
}

.bg-facebook {
    --tw-bg-opacity: 1;
    background-color: rgb(23 106 231/var(--tw-bg-opacity))
}

.bg-twitter {
    --tw-bg-opacity: 1;
    background-color: rgb(97 159 251/var(--tw-bg-opacity))
}

.bg-black\/80 {
    background-color: rgba(0,0,0,.8)
}

.bg-\[\#00A2E6\] {
    --tw-bg-opacity: 1;
    background-color: rgb(0 162 230/var(--tw-bg-opacity))
}

.bg-\[\#F6D71C\] {
    --tw-bg-opacity: 1;
    background-color: rgb(246 215 28/var(--tw-bg-opacity))
}

.bg-\[\#DB243D\] {
    --tw-bg-opacity: 1;
    background-color: rgb(219 36 61/var(--tw-bg-opacity))
}

.bg-transparent {
    background-color: transparent
}

.bg-secondary-200\/70 {
    background-color: rgba(226,62,78,.7)
}

.bg-gradient-to-b {
    background-image: linear-gradient(to bottom,var(--tw-gradient-stops))
}

.from-grey-100 {
    --tw-gradient-from: #f8f8f8;
    --tw-gradient-to: hsla(0,0%,97%,0);
    --tw-gradient-stops: var(--tw-gradient-from),var(--tw-gradient-to)
}

.to-white {
    --tw-gradient-to: #fff
}

.fill-primary {
    fill: #274285
}

.fill-current {
    fill: currentColor
}

.fill-white {
    fill: #fff
}

.fill-black {
    fill: #000
}

.fill-secondary-100 {
    fill: #fa4f4f
}

.fill-grey-500 {
    fill: #6c6c6c
}

.stroke-primary {
    stroke: #274285
}

.object-contain {
    object-fit: contain
}

.object-cover {
    object-fit: cover
}

.object-center {
    object-position: center
}

.object-top {
    object-position: top
}

.p-6 {
    padding: 1.5rem
}

.p-3 {
    padding: .75rem
}

.p-4 {
    padding: 1rem
}

.p-5 {
    padding: 1.25rem
}

.p-8 {
    padding: 2rem
}

.p-2 {
    padding: .5rem
}

.py-9 {
    padding-bottom: 2.25rem;
    padding-top: 2.25rem
}

.py-20 {
    padding-bottom: 5rem;
    padding-top: 5rem
}

.py-4 {
    padding-bottom: 1rem;
    padding-top: 1rem
}

.px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem
}

.py-3 {
    padding-bottom: .75rem;
    padding-top: .75rem
}

.py-2 {
    padding-bottom: .5rem;
    padding-top: .5rem
}

.px-5 {
    padding-left: 1.25rem;
    padding-right: 1.25rem
}

.px-4 {
    padding-left: 1rem;
    padding-right: 1rem
}

.py-7 {
    padding-bottom: 1.75rem;
    padding-top: 1.75rem
}

.px-14 {
    padding-left: 3.5rem;
    padding-right: 3.5rem
}

.px-2 {
    padding-left: .5rem;
    padding-right: .5rem
}

.py-12 {
    padding-bottom: 3rem;
    padding-top: 3rem
}

.px-7 {
    padding-left: 1.75rem;
    padding-right: 1.75rem
}

.py-8 {
    padding-bottom: 2rem;
    padding-top: 2rem
}

.py-1 {
    padding-bottom: .25rem;
    padding-top: .25rem
}

.py-16 {
    padding-bottom: 4rem;
    padding-top: 4rem
}

.px-24 {
    padding-left: 6rem;
    padding-right: 6rem
}

.pb-6 {
    padding-bottom: 1.5rem
}

.pt-7 {
    padding-top: 1.75rem
}

.pt-12 {
    padding-top: 3rem
}

.pb-16 {
    padding-bottom: 4rem
}

.pt-16 {
    padding-top: 4rem
}

.pb-14 {
    padding-bottom: 3.5rem
}

.pb-2 {
    padding-bottom: .5rem
}

.pt-8 {
    padding-top: 2rem
}

.pb-5 {
    padding-bottom: 1.25rem
}

.pt-0 {
    padding-top: 0
}

.pt-40 {
    padding-top: 10rem
}

.pb-10 {
    padding-bottom: 2.5rem
}

.pt-44 {
    padding-top: 11rem
}

.pb-20 {
    padding-bottom: 5rem
}

.pr-36 {
    padding-right: 9rem
}

.pt-28 {
    padding-top: 7rem
}

.pb-8 {
    padding-bottom: 2rem
}

.pt-4 {
    padding-top: 1rem
}

.pb-12 {
    padding-bottom: 3rem
}

.pb-3 {
    padding-bottom: .75rem
}

.pr-12 {
    padding-right: 3rem
}

.pt-14 {
    padding-top: 3.5rem
}

.pb-9 {
    padding-bottom: 2.25rem
}

.text-left {
    text-align: left
}

.text-center {
    text-align: center
}

.text-right {
    text-align: right
}

.align-top {
    vertical-align: top
}

.font-book {
    font-family: cooperhewitt-book-webfont,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont
}

.font-medium {
    font-family: cooperhewitt-medium-webfont,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont
}

.font-bold {
    font-family: cooperhewitt-bold-webfont,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont
}

.font-semibold {
    font-family: cooperhewitt-semibold-webfont,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont
}

.text-45 {
    font-size: 2.8rem;
    line-height: 3.62rem
}

.text-40 {
    font-size: 2.5rem;
    line-height: 3rem
}

.text-34 {
    font-size: 2.13rem;
    line-height: 2.75rem
}

.text-27 {
    font-size: 1.7rem;
    line-height: 2.19rem
}

.text-25 {
    font-size: 1.56rem;
    line-height: 2.18rem
}

.text-23 {
    font-size: 1.37rem
}

.text-22,.text-23 {
    line-height: 2.16rem
}

.text-22 {
    font-size: 1.44rem
}

.text-20 {
    font-size: 1.25rem;
    line-height: 1.88rem
}

.text-18 {
    font-size: 1.13rem
}

.text-16,.text-18 {
    line-height: 1.5rem
}

.text-16 {
    font-size: 1rem
}

.text-14 {
    font-size: .88rem;
    line-height: 1.5rem
}

.text-\[18\.8rem\] {
    font-size: 18.8rem
}

.font-book {
    font-weight: 705
}

.font-medium {
    font-weight: 707
}

.font-bold {
    font-weight: 711
}

.font-semibold {
    font-weight: 709
}

.uppercase {
    text-transform: uppercase
}

.leading-tight {
    line-height: 1.25
}

.\!leading-tight {
    line-height: 1.25!important
}

.leading-7 {
    line-height: 1.75rem
}

.text-white {
    --tw-text-opacity: 1;
    color: rgb(255 255 255/var(--tw-text-opacity))
}

.text-secondary-200 {
    --tw-text-opacity: 1;
    color: rgb(226 62 78/var(--tw-text-opacity))
}

.text-secondary-400 {
    --tw-text-opacity: 1;
    color: rgb(170 54 57/var(--tw-text-opacity))
}

.text-primary {
    --tw-text-opacity: 1;
    color: rgb(39 66 133/var(--tw-text-opacity))
}

.text-grey-500 {
    --tw-text-opacity: 1;
    color: rgb(108 108 108/var(--tw-text-opacity))
}

.text-current {
    color: currentColor
}

.text-black {
    --tw-text-opacity: 1;
    color: rgb(0 0 0/var(--tw-text-opacity))
}

.text-grey-600 {
    --tw-text-opacity: 1;
    color: rgb(83 83 83/var(--tw-text-opacity))
}

.text-transparent {
    color: transparent
}

.text-tertiary {
    --tw-text-opacity: 1;
    color: rgb(242 210 16/var(--tw-text-opacity))
}

.text-grey-400 {
    --tw-text-opacity: 1;
    color: rgb(179 179 179/var(--tw-text-opacity))
}

.placeholder-grey-400::-webkit-input-placeholder {
    --tw-placeholder-opacity: 1;
    color: rgb(179 179 179/var(--tw-placeholder-opacity))
}

.placeholder-grey-400::-moz-placeholder {
    --tw-placeholder-opacity: 1;
    color: rgb(179 179 179/var(--tw-placeholder-opacity))
}

.placeholder-grey-400:-ms-input-placeholder {
    --tw-placeholder-opacity: 1;
    color: rgb(179 179 179/var(--tw-placeholder-opacity))
}

.placeholder-grey-400::-ms-input-placeholder {
    --tw-placeholder-opacity: 1;
    color: rgb(179 179 179/var(--tw-placeholder-opacity))
}

.placeholder-grey-400::placeholder {
    --tw-placeholder-opacity: 1;
    color: rgb(179 179 179/var(--tw-placeholder-opacity))
}

.opacity-0 {
    opacity: 0
}

.opacity-95 {
    opacity: .95
}

.opacity-5 {
    opacity: .05
}

.shadow-small {
    --tw-shadow: 0px 30px 24px -10px hsla(229,6%,63%,.08),0px 12px 10px -6px hsla(229,6%,63%,.04),0px 4px 4px -4px rgba(30,33,44,.03);
    --tw-shadow-colored: 0px 30px 24px -10px var(--tw-shadow-color),0px 12px 10px -6px var(--tw-shadow-color),0px 4px 4px -4px var(--tw-shadow-color)
}

.shadow-md,.shadow-small {
    box-shadow: var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)
}

.shadow-md {
    --tw-shadow: 0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);
    --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)
}

.shadow-xl {
    --tw-shadow: 0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);
    --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)
}

.shadow-projectCard,.shadow-xl {
    box-shadow: var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)
}

.shadow-projectCard {
    --tw-shadow: 10px 10px 60px rgba(0,0,0,.25);
    --tw-shadow-colored: 10px 10px 60px var(--tw-shadow-color)
}

.invert {
    --tw-invert: invert(100%)
}

.filter,.invert {
    -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
    filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)
}

.transition-opacity {
    transition-duration: .15s;
    transition-property: opacity;
    transition-timing-function: cubic-bezier(.4,0,.2,1)
}

.transition-colors {
    transition-duration: .15s;
    transition-property: color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;
    transition-property: color,background-color,border-color,text-decoration-color,fill,stroke;
    transition-property: color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color,-moz-text-decoration-color;
    transition-timing-function: cubic-bezier(.4,0,.2,1)
}

.transition-all {
    transition-duration: .15s;
    transition-property: all;
    transition-timing-function: cubic-bezier(.4,0,.2,1)
}

.transition {
    transition-duration: .15s;
    transition-property: color,background-color,border-color,fill,stroke,opacity,box-shadow,-webkit-text-decoration-color,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;
    transition-property: color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;
    transition-property: color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-moz-text-decoration-color,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;
    transition-timing-function: cubic-bezier(.4,0,.2,1)
}

.transition-transform {
    transition-duration: .15s;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform,-webkit-transform;
    transition-timing-function: cubic-bezier(.4,0,.2,1)
}

.duration-300 {
    transition-duration: .3s
}

.duration-500 {
    transition-duration: .5s
}

.ease-in-out {
    transition-timing-function: cubic-bezier(.4,0,.2,1)
}

.line-clamp-2 {
    -webkit-line-clamp: 2
}

.line-clamp-2,.line-clamp-3 {
    -webkit-box-orient: vertical;
    display: -webkit-box;
    overflow: hidden
}

.line-clamp-3 {
    -webkit-line-clamp: 3
}

.line-clamp-5 {
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 5;
    display: -webkit-box;
    overflow: hidden
}

@font-face {
    font-display: swap;
    font-family: cooperhewitt-bold-webfont;
    font-style: normal;
    font-weight: 711;
    src: url(/fonts/cooperhewitt-bold-webfont.woff2) format("woff2")
}

@font-face {
    font-display: swap;
    font-family: cooperhewitt-semibold-webfont;
    font-style: normal;
    font-weight: 709;
    src: url(/fonts/cooperhewitt-semibold-webfont.woff2) format("woff2")
}

@font-face {
    font-display: swap;
    font-family: cooperhewitt-book-webfont;
    font-style: normal;
    font-weight: 705;
    src: url(/fonts/cooperhewitt-book-webfont.woff2) format("woff2")
}

@font-face {
    font-display: swap;
    font-family: cooperhewitt-medium-webfont;
    font-style: normal;
    font-weight: 707;
    src: url(/fonts/cooperhewitt-medium-webfont.woff2) format("woff2")
}

:focus {
    outline: none
}

.app-mousedown :focus {
    outline: none!important
}

.before\:absolute:before {
    content: var(--tw-content);
    position: absolute
}

.before\:inset-0:before {
    bottom: 0;
    top: 0
}

.before\:inset-0:before,.before\:inset-x-0:before {
    content: var(--tw-content);
    left: 0;
    right: 0
}

.before\:right-0:before {
    content: var(--tw-content);
    right: 0
}

.before\:left-1\/2:before {
    content: var(--tw-content);
    left: 50%
}

.before\:bottom-0:before {
    bottom: 0;
    content: var(--tw-content)
}

.before\:hidden:before {
    content: var(--tw-content);
    display: none
}

.before\:h-4:before {
    content: var(--tw-content);
    height: 1rem
}

.before\:h-full:before {
    content: var(--tw-content);
    height: 100%
}

.before\:h-1\.5:before {
    content: var(--tw-content);
    height: .375rem
}

.before\:h-1:before {
    content: var(--tw-content);
    height: .25rem
}

.before\:w-full:before {
    content: var(--tw-content);
    width: 100%
}

.before\:-translate-x-1\/2:before {
    --tw-translate-x: -50%;
    content: var(--tw-content);
    -webkit-transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
    transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}

.before\:whitespace-nowrap:before {
    content: var(--tw-content);
    white-space: nowrap
}

.before\:rounded-xl:before {
    border-radius: .75rem;
    content: var(--tw-content)
}

.before\:rounded:before {
    border-radius: .25rem;
    content: var(--tw-content)
}

.before\:border-l:before {
    border-left-width: 1px;
    content: var(--tw-content)
}

.before\:bg-primary:before {
    --tw-bg-opacity: 1;
    background-color: rgb(39 66 133/var(--tw-bg-opacity));
    content: var(--tw-content)
}

.before\:bg-white:before {
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255/var(--tw-bg-opacity));
    content: var(--tw-content)
}

.before\:font-bold:before {
    content: var(--tw-content);
    font-family: cooperhewitt-bold-webfont,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont;
    font-weight: 711
}

.before\:text-primary:before {
    --tw-text-opacity: 1;
    color: rgb(39 66 133/var(--tw-text-opacity));
    content: var(--tw-content)
}

.before\:opacity-50:before {
    content: var(--tw-content);
    opacity: .5
}

.before\:opacity-0:before {
    content: var(--tw-content);
    opacity: 0
}

.before\:\!opacity-100:before {
    content: var(--tw-content);
    opacity: 1!important
}

.before\:shadow-projectCard:before {
    --tw-shadow: 10px 10px 60px rgba(0,0,0,.25);
    --tw-shadow-colored: 10px 10px 60px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);
    content: var(--tw-content)
}

.before\:transition-opacity:before {
    content: var(--tw-content);
    transition-duration: .15s;
    transition-property: opacity;
    transition-timing-function: cubic-bezier(.4,0,.2,1)
}

.before\:transition-all:before {
    content: var(--tw-content);
    transition-duration: .15s;
    transition-property: all;
    transition-timing-function: cubic-bezier(.4,0,.2,1)
}

.before\:duration-300:before {
    content: var(--tw-content);
    transition-duration: .3s
}

.before\:ease-in-out:before {
    content: var(--tw-content);
    transition-timing-function: cubic-bezier(.4,0,.2,1)
}

.before\:content-\[attr\(data-navlink\)\]:before {
    --tw-content: attr(data-navlink);
    content: var(--tw-content)
}

.after\:h-4:after {
    content: var(--tw-content);
    height: 1rem
}

.hover\:scale-125:hover {
    --tw-scale-x: 1.25;
    --tw-scale-y: 1.25
}

.hover\:scale-110:hover,.hover\:scale-125:hover {
    -webkit-transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
    transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}

.hover\:scale-110:hover {
    --tw-scale-x: 1.1;
    --tw-scale-y: 1.1
}

.hover\:border-secondary-400:hover {
    --tw-border-opacity: 1;
    border-color: rgb(170 54 57/var(--tw-border-opacity))
}

.hover\:bg-secondary-400:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(170 54 57/var(--tw-bg-opacity))
}

.hover\:bg-grey-300:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(200 200 200/var(--tw-bg-opacity))
}

.hover\:text-secondary-400:hover {
    --tw-text-opacity: 1;
    color: rgb(170 54 57/var(--tw-text-opacity))
}

.hover\:text-transparent:hover {
    color: transparent
}

.hover\:underline:hover {
    -webkit-text-decoration-line: underline;
    -moz-text-decoration-line: underline;
    text-decoration-line: underline
}

.hover\:brightness-\[1\.15\]:hover {
    --tw-brightness: brightness(1.15);
    -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
    filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)
}

.hover\:before\:opacity-100:hover:before {
    content: var(--tw-content);
    opacity: 1
}

.focus\:border-grey-400:focus {
    --tw-border-opacity: 1;
    border-color: rgb(179 179 179/var(--tw-border-opacity))
}

.focus\:shadow-none:focus {
    --tw-shadow: 0 0 #0000;
    --tw-shadow-colored: 0 0 #0000;
    box-shadow: var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)
}

.focus\:outline-none:focus {
    outline: 2px solid transparent;
    outline-offset: 2px
}

.focus\:ring-0:focus {
    --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
    --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);
    box-shadow: var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)
}

.disabled\:cursor-not-allowed:disabled {
    cursor: not-allowed
}

.disabled\:opacity-0:disabled {
    opacity: 0
}

.disabled\:brightness-200:disabled {
    --tw-brightness: brightness(2)
}

.disabled\:brightness-200:disabled,.disabled\:grayscale:disabled {
    -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
    filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)
}

.disabled\:grayscale:disabled {
    --tw-grayscale: grayscale(100%)
}

.group:hover .group-hover\:scale-125 {
    --tw-scale-x: 1.25;
    --tw-scale-y: 1.25;
    -webkit-transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
    transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}

.group:hover .group-hover\:fill-primary {
    fill: #274285
}

.group:hover .group-hover\:text-secondary-400 {
    --tw-text-opacity: 1;
    color: rgb(170 54 57/var(--tw-text-opacity))
}

.peer:checked~.peer-checked\:before\:opacity-100:before {
    content: var(--tw-content);
    opacity: 1
}

.group[aria-expanded=true] .group-aria-\[expanded\=true\]\:opacity-0 {
    opacity: 0
}

.group[aria-expanded=true] .group-aria-\[expanded\=true\]\:opacity-100 {
    opacity: 1
}

@media (min-width: 768px) {
    
    .md\:top-10 {
        top:2.5rem
    }

    .md\:left-8 {
        left: 2rem
    }

    .md\:right-8 {
        right: 2rem
    }

    .md\:col-span-2 {
        grid-column: span 2/span 2
    }

    .md\:mx-0 {
        margin-left: 0;
        margin-right: 0
    }

    .md\:mt-7 {
        margin-top: 1.75rem
    }

    .md\:mt-16 {
        margin-top: 4rem
    }

    .md\:mt-8 {
        margin-top: 2rem
    }

    .md\:mb-8 {
        margin-bottom: 2rem
    }

    .md\:mb-12 {
        margin-bottom: 3rem
    }

    .md\:mr-6 {
        margin-right: 1.5rem
    }

    .md\:mb-14 {
        margin-bottom: 3.5rem
    }

    .md\:mr-10 {
        margin-right: 2.5rem
    }

    .md\:mt-0 {
        margin-top: 0
    }

    .md\:ml-4 {
        margin-left: 1rem
    }

    .md\:mb-10 {
        margin-bottom: 2.5rem
    }

    .md\:mt-10 {
        margin-top: 2.5rem
    }

    .md\:mb-0 {
        margin-bottom: 0
    }

    .md\:-mt-24 {
        margin-top: -6rem
    }

    .md\:mr-12 {
        margin-right: 3rem
    }

    .md\:mr-\[2\%\] {
        margin-right: 2%
    }

    .md\:mt-6 {
        margin-top: 1.5rem
    }

    .md\:block {
        display: block
    }

    .md\:inline-block {
        display: inline-block
    }

    .md\:flex {
        display: -webkit-flex;
        display: flex
    }

    .md\:grid {
        display: grid
    }

    .md\:hidden {
        display: none
    }

    .md\:h-5 {
        height: 1.25rem
    }

    .md\:h-11 {
        height: 2.75rem
    }

    .md\:max-h-\[15rem\] {
        max-height: 15rem
    }

    .md\:min-h-\[218px\] {
        min-height: 218px
    }

    .md\:min-h-\[32\.6rem\] {
        min-height: 32.6rem
    }

    .md\:min-h-\[23\.8rem\] {
        min-height: 23.8rem
    }

    .md\:w-1\/3 {
        width: 33.333333%
    }

    .md\:w-5 {
        width: 1.25rem
    }

    .md\:w-1\/2,.md\:w-\[50\%\] {
        width: 50%
    }

    .md\:w-\[45\.5\%\] {
        width: 45.5%
    }

    .md\:w-\[14\.6rem\] {
        width: 14.6rem
    }

    .md\:w-56 {
        width: 14rem
    }

    .md\:w-3\/5 {
        width: 60%
    }

    .md\:w-11 {
        width: 2.75rem
    }

    .md\:max-w-none {
        max-width: none
    }

    .md\:max-w-\[50\%\] {
        max-width: 50%
    }

    .md\:grid-cols-2 {
        grid-template-columns: repeat(2,minmax(0,1fr))
    }

    .md\:grid-cols-3 {
        grid-template-columns: repeat(3,minmax(0,1fr))
    }

    .md\:flex-row {
        -webkit-flex-direction: row;
        flex-direction: row
    }

    .md\:flex-wrap {
        -webkit-flex-wrap: wrap;
        flex-wrap: wrap
    }

    .md\:place-items-center {
        place-items: center
    }

    .md\:items-start {
        -webkit-align-items: flex-start;
        align-items: flex-start
    }

    .md\:items-center {
        -webkit-align-items: center;
        align-items: center
    }

    .md\:justify-start {
        -webkit-justify-content: flex-start;
        justify-content: flex-start
    }

    .md\:justify-center {
        -webkit-justify-content: center;
        justify-content: center
    }

    .md\:justify-between {
        -webkit-justify-content: space-between;
        justify-content: space-between
    }

    .md\:gap-7 {
        gap: 1.75rem
    }

    .md\:gap-5 {
        gap: 1.25rem
    }

    .md\:gap-8 {
        gap: 2rem
    }

    .md\:gap-6 {
        gap: 1.5rem
    }

    .md\:gap-x-4 {
        -webkit-column-gap: 1rem;
        -moz-column-gap: 1rem;
        column-gap: 1rem
    }

    .md\:gap-y-14 {
        row-gap: 3.5rem
    }

    .md\:space-y-0>:not([hidden])~:not([hidden]) {
        --tw-space-y-reverse: 0;
        margin-bottom: calc(0px*var(--tw-space-y-reverse));
        margin-top: calc(0px*(1 - var(--tw-space-y-reverse)))
    }

    .md\:space-x-9>:not([hidden])~:not([hidden]) {
        --tw-space-x-reverse: 0;
        margin-left: calc(2.25rem*(1 - var(--tw-space-x-reverse)));
        margin-right: calc(2.25rem*var(--tw-space-x-reverse))
    }

    .md\:space-x-5>:not([hidden])~:not([hidden]) {
        --tw-space-x-reverse: 0;
        margin-left: calc(1.25rem*(1 - var(--tw-space-x-reverse)));
        margin-right: calc(1.25rem*var(--tw-space-x-reverse))
    }

    .md\:space-x-2\.5>:not([hidden])~:not([hidden]) {
        --tw-space-x-reverse: 0;
        margin-left: calc(.625rem*(1 - var(--tw-space-x-reverse)));
        margin-right: calc(.625rem*var(--tw-space-x-reverse))
    }

    .md\:space-x-2>:not([hidden])~:not([hidden]) {
        --tw-space-x-reverse: 0;
        margin-left: calc(.5rem*(1 - var(--tw-space-x-reverse)));
        margin-right: calc(.5rem*var(--tw-space-x-reverse))
    }

    .md\:whitespace-nowrap {
        white-space: nowrap
    }

    .md\:border-2 {
        border-width: 2px
    }

    .md\:py-7 {
        padding-bottom: 1.75rem;
        padding-top: 1.75rem
    }

    .md\:px-2 {
        padding-left: .5rem;
        padding-right: .5rem
    }

    .md\:px-6 {
        padding-left: 1.5rem;
        padding-right: 1.5rem
    }

    .md\:px-16 {
        padding-left: 4rem;
        padding-right: 4rem
    }

    .md\:py-16 {
        padding-bottom: 4rem;
        padding-top: 4rem
    }

    .md\:px-5 {
        padding-left: 1.25rem;
        padding-right: 1.25rem
    }

    .md\:pt-20 {
        padding-top: 5rem
    }

    .md\:pt-52 {
        padding-top: 13rem
    }

    .md\:pt-64 {
        padding-top: 16rem
    }

    .md\:pb-32 {
        padding-bottom: 8rem
    }

    .md\:pr-0 {
        padding-right: 0
    }

    .md\:pr-4 {
        padding-right: 1rem
    }

    .md\:pt-32 {
        padding-top: 8rem
    }

    .md\:pb-8 {
        padding-bottom: 2rem
    }

    .md\:pb-9 {
        padding-bottom: 2.25rem
    }

    .md\:pb-5 {
        padding-bottom: 1.25rem
    }

    .md\:text-left {
        text-align: left
    }

    .md\:\!text-left {
        text-align: left!important
    }

    .md\:text-center {
        text-align: center
    }

    .md\:text-22 {
        font-size: 1.44rem;
        line-height: 2.16rem
    }

    .md\:text-20 {
        font-size: 1.25rem;
        line-height: 1.88rem
    }

    .md\:text-45 {
        font-size: 2.8rem;
        line-height: 3.62rem
    }

    .md\:text-25 {
        font-size: 1.56rem;
        line-height: 2.18rem
    }

    .md\:text-27 {
        font-size: 1.7rem;
        line-height: 2.19rem
    }

    .md\:text-18 {
        font-size: 1.13rem;
        line-height: 1.5rem
    }

    .md\:text-23 {
        font-size: 1.37rem;
        line-height: 2.16rem
    }

    .md\:text-40 {
        font-size: 2.5rem;
        line-height: 3rem
    }

    .md\:text-34 {
        font-size: 2.13rem;
        line-height: 2.75rem
    }

    .md\:shadow-newsContent {
        --tw-shadow: 5px 17px 18px 0 rgba(0,0,0,.25);
        --tw-shadow-colored: 5px 17px 18px 0 var(--tw-shadow-color);
        box-shadow: var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)
    }

    .md\:line-clamp-3 {
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
        display: -webkit-box;
        overflow: hidden
    }

    .md\:before\:block:before {
        content: var(--tw-content);
        display: block
    }
}

@media (min-width: 1024px) {
    
    
    .lg\:relative {
        position:relative
    }

    .lg\:left-auto {
        left: auto
    }

    .lg\:right-5 {
        right: 1.25rem
    }

    .lg\:top-5 {
        top: 1.25rem
    }

    .lg\:col-span-5 {
        grid-column: span 5/span 5
    }

    .lg\:col-span-3 {
        grid-column: span 3/span 3
    }

    .lg\:col-span-4 {
        grid-column: span 4/span 4
    }

    .lg\:-mx-5 {
        margin-left: -1.25rem;
        margin-right: -1.25rem
    }

    .lg\:my-11 {
        margin-bottom: 2.75rem;
        margin-top: 2.75rem
    }

    .lg\:mt-0 {
        margin-top: 0
    }

    .lg\:mr-2 {
        margin-right: .5rem
    }

    .lg\:mb-10 {
        margin-bottom: 2.5rem
    }

    .lg\:mt-11 {
        margin-top: 2.75rem
    }

    .lg\:mb-0 {
        margin-bottom: 0
    }

    .lg\:-mt-10 {
        margin-top: -2.5rem
    }

    .lg\:mt-8 {
        margin-top: 2rem
    }

    .lg\:-mt-16 {
        margin-top: -4rem
    }

    .lg\:mr-\[5\%\] {
        margin-right: 5%
    }

    .lg\:mt-12 {
        margin-top: 3rem
    }

    .lg\:h-auto {
        height: auto
    }

    .lg\:h-\[6\.4rem\] {
        height: 6.4rem
    }

    .lg\:h-\[4\.5rem\] {
        height: 4.5rem
    }

    .lg\:h-8 {
        height: 2rem
    }

    .lg\:h-16 {
        height: 4rem
    }

    .lg\:max-h-\[20rem\] {
        max-height: 20rem
    }

    .lg\:min-h-\[6\.6rem\] {
        min-height: 6.6rem
    }

    .lg\:min-h-\[13\.35rem\] {
        min-height: 13.35rem
    }

    .lg\:min-h-\[18\.8rem\] {
        min-height: 18.8rem
    }

    .lg\:min-h-\[29rem\] {
        min-height: 29rem
    }

    .lg\:w-40 {
        width: 10rem
    }

    .lg\:w-\[6\.6rem\] {
        width: 6.6rem
    }

    .lg\:w-\[13\.35rem\] {
        width: 13.35rem
    }

    .lg\:w-\[6\.4rem\] {
        width: 6.4rem
    }

    .lg\:w-1\/2 {
        width: 50%
    }

    .lg\:w-\[4\.5rem\] {
        width: 4.5rem
    }

    .lg\:w-80 {
        width: 20rem
    }

    .lg\:w-\[23\.1rem\] {
        width: 23.1rem
    }

    .lg\:w-8 {
        width: 2rem
    }

    .lg\:w-5\/12 {
        width: 41.666667%
    }

    .lg\:w-\[18\.25rem\] {
        width: 18.25rem
    }

    .lg\:w-7\/12 {
        width: 58.333333%
    }

    .lg\:max-w-\[68\.5rem\] {
        max-width: 68.5rem
    }

    .lg\:max-w-\[63rem\] {
        max-width: 63rem
    }

    .lg\:max-w-\[74\.3rem\] {
        max-width: 74.3rem
    }

    .lg\:max-w-\[33\.3333\%\] {
        max-width: 33.3333%
    }

    .lg\:translate-x-0 {
        --tw-translate-x: 0px
    }

    .lg\:translate-x-0,.lg\:translate-y-0 {
        -webkit-transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
        transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
    }

    .lg\:translate-y-0 {
        --tw-translate-y: 0px
    }

    .lg\:grid-cols-footer {
        grid-template-columns: repeat(15,minmax(0,1fr))
    }

    .lg\:grid-cols-3 {
        grid-template-columns: repeat(3,minmax(0,1fr))
    }

    .lg\:justify-start {
        -webkit-justify-content: flex-start;
        justify-content: flex-start
    }

    .lg\:gap-8 {
        gap: 2rem
    }

    .lg\:gap-10 {
        gap: 2.5rem
    }

    .lg\:gap-6 {
        gap: 1.5rem
    }

    .lg\:gap-12 {
        gap: 3rem
    }

    .lg\:space-x-2>:not([hidden])~:not([hidden]) {
        --tw-space-x-reverse: 0;
        margin-left: calc(.5rem*(1 - var(--tw-space-x-reverse)));
        margin-right: calc(.5rem*var(--tw-space-x-reverse))
    }

    .lg\:space-x-16>:not([hidden])~:not([hidden]) {
        --tw-space-x-reverse: 0;
        margin-left: calc(4rem*(1 - var(--tw-space-x-reverse)));
        margin-right: calc(4rem*var(--tw-space-x-reverse))
    }

    .lg\:space-x-10>:not([hidden])~:not([hidden]) {
        --tw-space-x-reverse: 0;
        margin-left: calc(2.5rem*(1 - var(--tw-space-x-reverse)));
        margin-right: calc(2.5rem*var(--tw-space-x-reverse))
    }

    .lg\:self-center {
        -webkit-align-self: center;
        align-self: center
    }

    .lg\:overflow-hidden {
        overflow: hidden
    }

    .lg\:overflow-visible {
        overflow: visible
    }

    .lg\:rounded-2xl {
        border-radius: 1rem
    }

    .lg\:rounded-none {
        border-radius: 0
    }

    .lg\:p-4 {
        padding: 1rem
    }

    .lg\:p-0 {
        padding: 0
    }

    .lg\:p-7 {
        padding: 1.75rem
    }

    .lg\:py-20 {
        padding-bottom: 5rem;
        padding-top: 5rem
    }

    .lg\:py-4 {
        padding-bottom: 1rem;
        padding-top: 1rem
    }

    .lg\:px-5 {
        padding-left: 1.25rem;
        padding-right: 1.25rem
    }

    .lg\:px-20 {
        padding-left: 5rem;
        padding-right: 5rem
    }

    .lg\:px-4 {
        padding-left: 1rem;
        padding-right: 1rem
    }

    .lg\:py-0 {
        padding-bottom: 0;
        padding-top: 0
    }

    .lg\:py-12 {
        padding-bottom: 3rem;
        padding-top: 3rem
    }

    .lg\:px-0 {
        padding-left: 0;
        padding-right: 0
    }

    .lg\:pl-14 {
        padding-left: 3.5rem
    }

    .lg\:pt-16 {
        padding-top: 4rem
    }

    .lg\:pt-24 {
        padding-top: 6rem
    }

    .lg\:pb-20 {
        padding-bottom: 5rem
    }

    .lg\:text-left {
        text-align: left
    }

    .lg\:text-right {
        text-align: right
    }

    .lg\:text-16 {
        font-size: 1rem;
        line-height: 1.5rem
    }

    .lg\:text-22 {
        font-size: 1.44rem;
        line-height: 2.16rem
    }

    .lg\:text-25 {
        font-size: 1.56rem;
        line-height: 2.18rem
    }

    .lg\:text-27 {
        font-size: 1.7rem;
        line-height: 2.19rem
    }

    .lg\:text-20 {
        font-size: 1.25rem;
        line-height: 1.88rem
    }

    .lg\:text-18 {
        font-size: 1.13rem;
        line-height: 1.5rem
    }

    .lg\:text-45 {
        font-size: 2.8rem;
        line-height: 3.62rem
    }

    .lg\:text-40 {
        font-size: 2.5rem;
        line-height: 3rem
    }

    .lg\:text-34 {
        font-size: 2.13rem;
        line-height: 2.75rem
    }

    .lg\:text-23 {
        font-size: 1.37rem;
        line-height: 2.16rem
    }
}

@media (min-width: 1280px) {
    
    
    

    .xl\:gap-20 {
        gap:5rem
    }
}

.is-transparent .\[\.is-transparent_\&\]\:hidden,.not-transparent .\[\.not-transparent_\&\]\:hidden {
    display: none
}

.is-transparent .\[\.is-transparent_\&\]\:contrast-200 {
    --tw-contrast: contrast(2)
}

.is-transparent .\[\.is-transparent_\&\]\:contrast-200,.is-transparent .\[\.is-transparent_\&\]\:grayscale {
    -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
    filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)
}

.is-transparent .\[\.is-transparent_\&\]\:grayscale {
    --tw-grayscale: grayscale(100%)
}

.is-transparent .\[\.is-transparent_\&\]\:invert {
    --tw-invert: invert(100%);
    -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
    filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)
}

[aria-expanded=true] .\[\[aria-expanded\=true\]_\&\]\:rotate-180 {
    --tw-rotate: 180deg;
    -webkit-transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
    transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}

[aria-expanded=true] .\[\[aria-expanded\=true\]_\&\]\:text-transparent {
    color: transparent
}

.\[\&\[data-state\=active\]\]\:before\:opacity-100[data-state=active]:before,[aria-expanded=true] .\[\[aria-expanded\=true\]_\&\]\:before\:opacity-100:before {
    content: var(--tw-content);
    opacity: 1
}

.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow,.react-datepicker__navigation-icon:before,.react-datepicker__year-read-view--down-arrow {
    border-color: #ccc;
    border-style: solid;
    border-width: 3px 3px 0 0;
    content: "";
    display: block;
    height: 9px;
    position: absolute;
    top: 6px;
    width: 9px
}

.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle,.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle {
    margin-left: -4px;
    position: absolute;
    width: 0
}

.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:after,.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before,.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:after,.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:before {
    border: 8px solid transparent;
    box-sizing: content-box;
    content: "";
    height: 0;
    left: -8px;
    position: absolute;
    width: 1px;
    z-index: -1
}

.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before,.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:before {
    border-bottom-color: #aeaeae
}

.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle {
    margin-top: -8px;
    top: 0
}

.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:after,.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before {
    border-bottom-color: #f0f0f0;
    border-top: none
}

.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:after {
    top: 0
}

.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before {
    border-bottom-color: #aeaeae;
    top: -1px
}

.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle {
    bottom: 0;
    margin-bottom: -8px
}

.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:after,.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:before {
    border-bottom: none;
    border-top-color: #fff
}

.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:after {
    bottom: 0
}

.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:before {
    border-top-color: #aeaeae;
    bottom: -1px
}

.react-datepicker-wrapper {
    border: 0;
    display: inline-block;
    padding: 0;
    width: 100%
}

.react-datepicker {
    background-color: #fff;
    border: 1px solid #aeaeae;
    border-radius: .3rem;
    color: #000;
    display: inline-block;
    font-family: Helvetica Neue,helvetica,arial,sans-serif;
    font-size: .8rem;
    position: relative
}

.react-datepicker--time-only .react-datepicker__triangle {
    left: 35px
}

.react-datepicker--time-only .react-datepicker__time-container {
    border-left: 0
}

.react-datepicker--time-only .react-datepicker__time,.react-datepicker--time-only .react-datepicker__time-box {
    border-bottom-left-radius: .3rem;
    border-bottom-right-radius: .3rem
}

.react-datepicker__triangle {
    left: 50px;
    position: absolute
}

.react-datepicker-popper {
    z-index: 1
}

.react-datepicker-popper[data-placement^=bottom] {
    padding-top: 10px
}

.react-datepicker-popper[data-placement=bottom-end] .react-datepicker__triangle,.react-datepicker-popper[data-placement=top-end] .react-datepicker__triangle {
    left: auto;
    right: 50px
}

.react-datepicker-popper[data-placement^=top] {
    padding-bottom: 10px
}

.react-datepicker-popper[data-placement^=right] {
    padding-left: 8px
}

.react-datepicker-popper[data-placement^=right] .react-datepicker__triangle {
    left: auto;
    right: 42px
}

.react-datepicker-popper[data-placement^=left] {
    padding-right: 8px
}

.react-datepicker-popper[data-placement^=left] .react-datepicker__triangle {
    left: 42px;
    right: auto
}

.react-datepicker__header {
    background-color: #f0f0f0;
    border-bottom: 1px solid #aeaeae;
    border-top-left-radius: .3rem;
    padding: 8px 0;
    position: relative;
    text-align: center
}

.react-datepicker__header--time {
    padding-bottom: 8px;
    padding-left: 5px;
    padding-right: 5px
}

.react-datepicker__header--time:not(.react-datepicker__header--time--only) {
    border-top-left-radius: 0
}

.react-datepicker__header:not(.react-datepicker__header--has-time-select) {
    border-top-right-radius: .3rem
}

.react-datepicker__month-dropdown-container--scroll,.react-datepicker__month-dropdown-container--select,.react-datepicker__month-year-dropdown-container--scroll,.react-datepicker__month-year-dropdown-container--select,.react-datepicker__year-dropdown-container--scroll,.react-datepicker__year-dropdown-container--select {
    display: inline-block;
    margin: 0 2px
}

.react-datepicker-time__header,.react-datepicker-year-header,.react-datepicker__current-month {
    color: #000;
    font-size: .944rem;
    font-weight: 700;
    margin-top: 0
}

.react-datepicker-time__header {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap
}

.react-datepicker__navigation {
    -webkit-align-items: center;
    align-items: center;
    background: none;
    border: none;
    cursor: pointer;
    display: -webkit-flex;
    display: flex;
    height: 32px;
    -webkit-justify-content: center;
    justify-content: center;
    overflow: hidden;
    padding: 0;
    position: absolute;
    text-align: center;
    text-indent: -999em;
    top: 2px;
    width: 32px;
    z-index: 1
}



/* NAVIGATION DOTS (ajoute à la fin de ton style.css) */
#side-dots {
  position: fixed;
  right: 30px;                /* distance du bord droit */
  top: 75%;
  transform: translateY(-50%);
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 15px;
  pointer-events: auto;
}

#side-dots .dot {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: rgba(232, 26, 26,0.8); /* bordeau semi-transp */
  border: 2px solid rgba(255,255,255,0.9);
  display: inline-block;
  transition: transform .18s ease, background .18s ease, opacity .2s;
  opacity: 0.9;
}

/* dot active */
#side-dots .dot.active {
  transform: scale(1.5);
  background: rgba(36,68,132,1);
  box-shadow: 0 4px 10px rgba(36,68,132,0.25);
}

/* mobile: cacher ou réduire */
@media (max-width: 991px) {
  #side-dots { left: 8px; gap: 10px; }
  #side-dots .dot { width: 10px; height: 10px; }
}


/* SECTION ACTIVITES PHARES */
.activites-section {
  background-color: #ffffff;
}

.activites-section .section-header h2 {
  font-size: 1.7rem;
  font-weight: 700;
  color: #244484;
  margin-bottom: 0.25rem;
}

.activites-section .section-header p {
  margin: 0;
  color: #6c757d;
}

/* Grille responsive : 4, puis 3, 2, 1 colonnes selon la largeur */
.activites-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr); /* 2 colonnes */
  gap: 24px;
}

/* Responsive : 1 colonne sur mobile */
@media (max-width: 768px) {
  .activites-grid {
    grid-template-columns: 1fr;
  }
}

/* Carte activité */
.activite-item {
  background-color: #ffffff;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,0.04);
  box-shadow: 0 8px 18px rgba(0,0,0,0.04);
  display: flex;
  flex-direction: column;
  height: 100%;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.activite-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 26px rgba(0,0,0,0.08);
}

/* Image + badge */
.activite-thumb {
  position: relative;
  width: 100%;
  padding-top: 66.66%; /* carré parfait 1:1 */
  overflow: hidden;
}

.activite-thumb img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover; /* coupe proprement */
  z-index: 1;
}


.activite-item:hover .activite-thumb img {
  transform: scale(1.05);
}

.activite-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  padding: 4px 10px;
  font-size: 1rem;
  font-weight: 600;
  color: #fff;
  background: #244484;
  z-index: 2;
}

/* Variantes par catégorie (optionnelles) */
.activite-badge.cat-reforme    { background: #244484; }
.activite-badge.cat-at         { background: #1b7f5f; }
.activite-badge.cat-piredd     { background: #b66b17; }
.activite-badge.cat-partenaire { background: #8c2673; }

/* Contenu */
.activite-content {
  padding: 14px 16px 16px;
}

.activite-date {
  display: block;
  font-size: 1rem;
  color: #6c757d;
  margin-bottom: 6px;
}

.activite-title {
  font-size: 1.4rem;
  margin: 0 0 6px;
  line-height: 1.3;
  text-align: justify;
}

.activite-title a {
  color: #212529;
  text-decoration: none;
}

.activite-title a:hover {
  color: #244484;
}

.activite-excerpt {
  font-size: 1.2rem;
  color: #495057;
  text-align: justify;
}



#presentation-programme {
  font-size: 1.15rem; /* texte principal */
  color: #2b2b2b;
}

#presentation-programme h4 {
  font-size: 1.5rem;
  font-weight: 700;
  color: #244484;
}

#presentation-programme p,
#presentation-programme li {
  font-size: 1.15rem;
  line-height: 1.75;
}


section {
  padding-top: 40px !important;
  padding-bottom: 40px !important;
}

section .container,
section .container-sm {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}


/* SECTION MÉDIATHÈQUE */
.mediatec-section {
  background-color: #f9fafc;
  padding: 60px 0;
}

.mediatec-section .container {
  max-width: 1200px;
  margin: 0 auto;
}

/* En-tête */
.mediatec-header {
  text-align: center;
  margin-bottom: 30px;
}

.mediatec-header h2 {
  font-size: 2rem;
  font-weight: 700;
  color: #244484;
  margin-bottom: 8px;
}

.mediatec-header p {
  margin: 0;
  color: #6c757d;
}

/* Filtres */
.mediatec-filters {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-bottom: 24px;
  flex-wrap: wrap;
}

.mediatec-filter-btn {
  border: 1px solid #244484;
  background-color: #ffffff;
  color: #244484;
  padding: 6px 16px;
  border-radius: 999px;
  font-size: 0.9rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
}

.mediatec-filter-btn:hover {
  background-color: #244484;
  color: #ffffff;
}

.mediatec-filter-btn.is-active {
  background-color: #244484;
  color: #ffffff;
}

/* Grille */
.mediatec-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 30px;
}

/* Carte médiathèque */
.mediatec-item {
  background-color: #ffffff;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,0.04);
  box-shadow: 0 8px 18px rgba(0,0,0,0.04);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.mediatec-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 26px rgba(0,0,0,0.08);
}

/* Vignette (image) avec ratio fixe */
.mediatec-thumb {
  position: relative;
  width: 100%;
  padding-top: 66.66%; /* ratio ~ 3:2 adapté à tes 1080 x 720 */
  overflow: hidden;
  display: block;
}

.mediatec-thumb img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.mediatec-item:hover .mediatec-thumb img {
  transform: scale(1.05);
}

/* Overlay et titre */
.mediatec-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.6), transparent 50%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 12px 14px;
  color: #ffffff;
}

.mediatec-tag {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 999px;
  background-color: rgba(36,68,132,0.95);
  margin-bottom: 6px;
}

.mediatec-title {
  font-size: 0.95rem;
  margin: 0;
}

/* Icône lecture pour vidéos */
.mediatec-video .mediatec-play-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 2.3rem;
  line-height: 1;
  color: #ffffff;
  text-shadow: 0 4px 12px rgba(0,0,0,0.5);
}

/* Responsive petits écrans */
@media (max-width: 768px) {
  .mediatec-section {
    padding: 40px 0;
  }

  .mediatec-header h2 {
    font-size: 1.6rem;
  }
}

/* ===== Sous-menu niveau 2 ===== */
.dropdown-submenu { position: relative; }

/* caché par défaut */
.dropdown-submenu > .dropdown-menu{
  display: block;                /* on laisse block */
  position: absolute;
  top: 0;
  left: 100%;
  margin-top: -0.25rem;

  opacity: 0;
  visibility: hidden;
  transform: translateX(10px);
  transition: .2s;
}

/* ouvre seulement au survol du lien PAAJ */
.dropdown-submenu > a:hover + .dropdown-menu,
.dropdown-submenu > .dropdown-menu:hover{
  opacity: 1;
  visibility: visible;
  transform: translateX(0);
}

/* flèche */
.dropdown-submenu > a.dropdown-toggle::after{
  float: right;
  margin-top: .45rem;
}


/* Supprimer totalement le badge Photo / Vidéo */
.mediatec-tag {
  display: none !important;
}

.mediatec-overlay {
  padding-top: 0;
}

.share-box {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 25px;
  padding: 15px 0;
}

.share-label {
  font-weight: 600;
  color: #244484;
  margin-right: 8px;
}

.share-btn {
  display: inline-block;
  padding: 8px 14px;
  border-radius: 6px;
  text-decoration: none;
  border: none;
  cursor: pointer;
  font-size: 0.95rem;
  transition: 0.2s ease;
  background: #f1f3f5;
  color: #222;
}

.share-btn:hover {
  transform: translateY(-2px);
}

.share-btn.whatsapp {
  background: #25d366;
  color: #fff;
}

.share-btn.email {
  background: #ea4335;
  color: #fff;
}

.share-btn.facebook {
  background: #1877f2;
  color: #fff;
}

.share-btn.twitter {
  background: #111;
  color: #fff;
}

.copy-btn {
  background: #244484;
  color: #fff;
}

.explorer {
  max-width: 700px;
  margin: auto;
  background: #fff;
  padding: 20px;
  border-radius: 10px;
}

.folder-block {
  margin-bottom: 10px;
}

.folder-title {
  cursor: pointer;
  font-weight: bold;
  padding: 8px 10px;
  border-radius: 6px;
}

.folder-title:hover {
  background: #eef3ff;
}

.folder-title.sub {
  margin-left: 20px;
}

.folder-content {
  display: none;
  margin-left: 25px;
  margin-top: 5px;
}

.folder-content a {
  display: block;
  text-decoration: none;
  color: #333;
  padding: 5px 0;
}

.folder-content a:hover {
  color: #244484;
}