/* ==== DEBUG ==== */
*.debug section div.fr-container {
  outline: var(--artwork-major-blue-france) 1px solid;
  outline-offset: -0.5px;
}

*.debug div:not(.fr-container) {
  outline: var(--artwork-major-blue-france) 2px solid;
  outline-offset: -1px;
}
/* =============== */

/* Specific styles */

/* Override bootstrap default 10px font-size */
html {
  font-size: 1rem;
  scroll-behavior: smooth;
}

/* Minimum height for home page */
main {
  min-height: 50vh;
}

header .fr-responsive-img {
  max-width: 17rem;
}
footer .fr-responsive-img {
  max-width: 11rem;
}

#map {
  min-height: 50vh;
  height: 93%;
}

.psup-search-map-sticky-container {
  display: flex;
  flex-direction: column-reverse;
}

#psup-search-map-show-all-btn {
  background-color: var(--background-default-grey);
  margin: 10px;
  transition: opacity 0.3s;
  opacity: 1;
  z-index: 401;
}

@media (min-width: 36em) {
  .psup-search-map-sticky-container {
    display: block;
  }
  #psup-search-map-show-all-btn {
    position: absolute;
  }
}
#psup-search-map-show-all-btn[hidden] {
  opacity: 0;
}

.psup-list-no-bullet {
  padding-left: 0;
  list-style: none;
}

.psup-list-related-courses li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  position: relative;
  padding-bottom: 0.5rem;
  padding-top: 0.5rem;
  list-style: none;
}

.psup-list-related-courses li:before {
  bottom: 0;
  box-shadow: inset 0 1px 0 0 var(--border-default-grey), 0 1px 0 0 var(--border-default-grey);
  content: '';
  display: block;
  height: 100%;
  left: 0;
  pointer-events: none;
  position: absolute;
  right: 0;
  top: 0;
  width: 100%;
}

/* -------------------- */
/* DSFR hacks           */
/* -------------------- */
.fr-header__menu-links
  .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-'])
  .fr-btn[class*=' fr-icon-'],
.fr-header__tools-links
  .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-'])
  .fr-btn[class*=' fr-icon-'] {
  white-space: inherit;
}
.fr-tags-group > .fr-btn {
  min-height: 1.5rem;
  padding: 0.125rem 0.5rem;
  transform: translate(0, -0.25rem);
}
/* Bug? */
.fr-fieldset__content {
  margin-right: 0.5rem;
}
/* Bug logo operator? */
.fr-header__operator {
  flex: 1 1 auto;
}
.fr-header__brand,
.fr-header__brand-top {
  flex: 1 1 100%;
}
.psup-collapse-less-animation {
  transition: none !important;
}
.psup-collapse-less-animation::before {
  transition: none !important;
}

@media (min-width: 36em) {
  .fr-btn {
    max-width: max-content;
  }
}
@media (min-width: 78em) {
  .fr-container-fluid {
    margin-left: auto;
    margin-right: auto;
    max-width: 156rem;
  }
}

/* -------------------- */
/* Parcoursup Search    */
/* -------------------- */

/* Search banner */
.psup-search-banner {
  background-color: var(--background-alt-blue-france);
  margin-bottom: 2rem;
  padding: 0.5rem;
}

@media (min-width: 48em) {
  .psup-search-banner {
    margin-bottom: 4rem;
    padding: 1rem 2rem 2rem;
  }
}

.psup-search-banner .fr-btns-group--inline-lg {
  display: flex;
  justify-content: center;
  width: 100%;
}

.psup-search-banner h1 {
  margin-top: 1rem !important;
  text-align: center;
}

.psup-search-banner .fr-grid-row > * {
  padding: 1rem 2rem;
}

#psup-search-banner__keywords-container span {
  white-space: pre;
}

#psup-search-geo-banner__keywords-container span {
  white-space: pre;
}

.psup-search-banner__keywords {
  font-weight: 700;
}

.div-localisation {
	width: 70%;
	margin-right: 20px;
}

.localisation {
	width : 100% !important;
}
.autocomplete {
  position: relative;
  width:100%;

}

.autocomplete-items {
  position: absolute;
  border: 1px solid #d4d4d4;
  border-bottom: none;
  border-top: none;
  z-index: 99;
  /*position the autocomplete items to be the same width as the container:*/
  top: 100%;
  left: 0;
  right: 0;
  width : 62% !important;
}

.autocomplete-items div {
  padding: 10px;
  cursor: pointer;
  background-color: #fff; 
  border-bottom: 1px solid #d4d4d4; 
}

/*when hovering an item:*/
.autocomplete-items div:hover {
  background-color: #e9e9e9; 
}

/*when navigating through the items using the arrow keys:*/
.autocomplete-active {
  background-color: DodgerBlue !important; 
  color: #ffffff; 
}


/* Parcoursup search (filters + search results & map)*/
.psup-search .fr-pagination__list {
  justify-content: center;
}

#psup-search-filters-group {
  display: block;
}

/* Search filters */
@media (max-width: 61.9999em) {
  #psup-search-filters__content > form {
    overscroll-behavior-y: contain;
    overflow-x: hidden;
    min-height: calc(100vh - 8rem);
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
}
.psup-search-filters__container h2 {
  margin-bottom: 0;
}

.psup-search-filters__container input {
  margin-bottom: 2rem;
}

.psup-search-filters__count-badge {
  display: inline;
  margin-left: 0.5rem;
  margin-right: 0.5rem;
}

#psup-search-filters__content {
  padding-left: 0;
  padding-right: 0;
}

.psup-search-filter__label {
  flex-wrap: nowrap !important;
  align-items: baseline !important;
}
.psup-search-filter__result-name {
  word-break: break-word;
}
.psup-search-filter__result-count {
  text-align: right;
  margin-left: auto;
  padding-left: 1rem;
}
.psup-search-filter__result-count:before {
  content: '(';
}
.psup-search-filter__result-count:after {
  content: ')';
}

/* Search sort */
.psup-search-sort {
  display: flex;
  align-items: baseline;
  gap: 1rem;
}
.psup-search-sort label {
  flex-shrink: 0;
}

/* Search results */

@media (min-width: 62em) {
  .psup-search-results {
    padding-left: 1rem;
  }
}

.psup-search-results > div:first-child {
  height: 93%;
}

.psup-search-results .fr-tag {
    background-color: var(--background-contrast-green-archipel);
    color: var(--text-label-green-archipel);
}

.psup-search-results .fr-card {
  background-color: var(--background-default-grey);
  box-shadow: inset 0 0 0 1px var(--border-default-grey), inset 0 -0.25rem 0 0 var(--border-plain-blue-france) !important;
}

.psup-search-results .fr-card[aria-current='location'] {
  box-shadow: inset 0 0 0 1px var(--border-default-grey), inset 0 0 0 0.25rem var(--border-plain-blue-france) !important;
}

.psup-search-results .fr-card + .fr-card {
  margin-top: 1.5rem;
}

.psup-search-results .fr-card__title {
  padding: 0.5rem;
  margin: -0.5rem;
}

.psup-search-results-card__school-name {
  display: block;
  margin-bottom: 0.25rem;
  font-size: 1.75rem;
  line-height: 2.2rem;
  font-weight: 300;
}

.psup-search-results-card__course-name {
  font-weight: 700;
  font-size: 1.1rem;
  line-height: 1.5rem;
}

.psup-search-results__details {
  cursor: auto;
}

@media (min-width: 62em) {
  .psup-search-filters__container > .fr-accordion:before {
    content: none;
  }
}

@media (min-width: 78em) {
  .psup-search-results {
    flex-direction: inherit;
  }
  .psup-search-map-sticky-container {
    height: 100vh;
    position: sticky;
    top: 0;
  }
}

/*

*/

.psup-video-container {
  width: 100%;
  text-align: center;
  background-color: var(--background-contrast-grey);
}

.psup-video-container iframe {
  max-width: 100%;
}

/* Leaflet overrides */
.leaflet-fade-anim .leaflet-tile {
  will-change: auto;
}
.leaflet-zoom-anim .leaflet-zoom-animated {
  will-change: auto;
}

.leaflet-left .leaflet-control {
  margin-left: 0px;
}
.leaflet-right .leaflet-control {
  margin-right: 0px;
}

.leaflet-top,
.leaflet-bottom {
  z-index: 501;
}


/*------------------------------------------------------------------------------*/

#tableau-comparateur .lib-formation{
	vertical-align: baseline;
}

.psup-search-results-card__appreciation{
	box-shadow: inset 0 0 0 1px var(--border-default-grey) !important;
	
}

.psup-search-results-card__appreciation .fr-tags-group .psup-search-results-card-appreciation__title{
	font-weight: 700;
    font-size: 1.05rem;
    line-height: 1.5rem;
}

.icon-appreciation{
	color:var(--green-emeraude-main-632);
}

.col-centree{display: flex; justify-content: center; flex-direction: column;}

.btns-droite button{ width: 100% !important; max-width: 100%;}

.psup-rating {
    display: flex;
    flex-wrap: wrap;
    font-size: 1rem;
    line-height: 1.5rem;
    align-items: center;
    margin: -.5rem
}

.psup-rating>* {
    margin: .5rem
}

.psup-rating-text {
    line-height: 1rem;
    text-transform: uppercase;
    font-weight: 700;
    font-size: small;
    padding: .5rem .75rem;
    color: var(--text-label-grey);
    background-color: var(--background-contrast-blue-france);
    border-radius: .25rem
}

.psup-rating-circles {
    display: flex;
    margin-top: .25rem;
}
@media(max-width: 990px) {
	.psup-rating-circles {
	    display: flex;
	    margin-top: 0rem;
	    margin-bottom: 1rem;
	}
	
}

.psup-rating-circles>*+* {
    margin-left: .5rem;
}



button.psup-rating-circle {
    background-color: var(--background-contrast-grey);
    border-radius: 50%;
    border:var(--green-emeraude-main-632);
    border-style: solid;
    border-width: thin;
    height: calc(var(--xl-base) + 0.1em - 2px);
    width: calc(var(--xl-base) + 0.1em - 2px)
}

span.psup-rating-circle {
    background-color: var(--background-contrast-grey);
    border-radius: 50%;
    border:var(--green-emeraude-main-632);
    border-style: solid;
    border-width: thin;
    height: calc(var(--xl-base)  - 2px);
    width: calc(var(--xl-base)  - 2px)
}
@media(min-width: 990px) {
	span.psup-rating-circle {
	    margin-left: .5rem;
	}
}


@media screen and (max-width: 576px) {
    .psup-rating-circle {
        height:calc(var(--xl-base) + .65em - 2px);
        width: calc(var(--xl-base) + .65em - 2px)
    }
}

.psup-rating-circle.full,
.psup-rating-circle.full:hover {
    background-color: var(--green-emeraude-main-632)
}

.sticky-comparator .fr-tile__body{
	justify-content: flex-start;
}


/* BANDEAU COMPARATEUR ---------------------------------------------------------*/

#div-sticky-comparator {
	height: 8%;
}

.sticky-comparator {
	max-height: 100vh;
    overflow-y: auto;
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	background-color: var(--background-default-grey);
	z-index: 650;
}

.sticky-comparator_collapse.co-button {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 48px;
    width: 100%;
    border: none;
    border-radius: 0;
    background-color: var(--background-action-high-blue-france);
    color: var(--text-inverted-blue-france);
    gap: 0 8px;
    text-transform: inherit;
    padding: 0;
    margin: 0;
}
.sticky-comparator_collapse.co-button:hover{
	background-color: var(--background-action-high-blue-france);
    color: var(--text-inverted-blue-france);
}

.sticky-comparator .products-items {
	display: flex;
	margin-bottom: 8px
}

@media(min-width: 1180px) {
	.sticky-comparator .products-items {
		margin-bottom: 0
	}
}

.sticky-comparator .products-infos,
.sticky-comparator .box-available {
	display: flex;
	align-items: flex-start
}

.sticky-comparator .products-infos::after,
.sticky-comparator .box-available::after {
	content: "";
	color: #fab31e;
	font-size: 1.43em;
	margin: 0 10px;
	align-self: center
}

@media(min-width: 1180px) {
	.sticky-comparator .products-infos::after,
	.sticky-comparator .box-available::after {
		font-size: 1.715em;
		margin: 0 16px
	}
}

.sticky-comparator .products-infos:last-of-type::after,
.sticky-comparator .box-available:last-of-type::after {
	content: none
}

.sticky-comparator .box-available {
	align-items: center;
	justify-content: center;
}

.sticky-comparator .box-available::after {
	color: #e6e6e6
}

.sticky-comparator .box-available_content {
	display: flex;
	align-items: center;
	justify-content: center;
	color: #ccc;
	font-size: 36px;
	font-weight: 700;
	width: 101px;
	height: 98px;
	background-color: #f7f7f7
}

@media(max-width: 990px) {
	.sticky-comparator .box-available_content {
		width: 81px;
		height: 78px
	}
}

.sticky-comparator .products-infos:first-of-type::before {
	content: none
}

.sticky-comparator .products-infos_content {
	width: 96px;
	text-align: center;
	position: relative
}

@media(max-width: 990px) {
	.sticky-comparator .products-infos_content {
		max-width: 80px
	}
}

.sticky-comparator .products-infos--close {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 24px;
	width: 24px;
	border: none;
	border-radius: 50%;
	position: absolute;
	right: .5em;
	top: 0;
	cursor: pointer;
	box-shadow: 0 0 5px 1px #ddd
}

.sticky-comparator-products {
	display: none;
	justify-content: space-between;
	align-items: center;
	margin: auto;
	transition: flex 150ms
}

.sticky-comparator-products.active {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0 40px;
	padding: 16px 0 32px;
	height: 100%
}



@media(min-width: 990px) {
	.sticky-comparator_collapse.co-button {
		height: 64px
	}
}

.sticky-comparator_collapse.co-button .products-number {
	position: relative
}

.sticky-comparator_collapse.co-button>span {
	font-size: 1.2em
}

@media(max-width: 990px) {
	.sticky-comparator_collapse.co-button>span {
		font-size: 1em
	}
}

.sticky-comparator_collapse.active .products-number::after {
	transform: none
}

.sticky-comparator--empty {
	position: absolute;
	right: 32px
}

.sticky-comparator--empty::after {
	content: "";
	font-family: "ed_icons";
	font-weight: 700
}

@media(max-width: 990px) {
	.sticky-comparator--empty::after {
		font-size: .8em
	}
}

@media(max-width: 990px) {
	.sticky-comparator .comparator-buttons {
		display: flex;
		gap: 11px
	}
}


@media(max-width: 990px) {
	.sticky-comparator .comparator-buttons .co-button {
		font-size: 1.143em;
		width: 175px
	}
}

@media(max-width: 480px) {
	#div-btns-droite{
		width: 100%;
		padding: 0 2rem 0 1rem;
	}	
	#slot-1, #slot-2, #slot-3, #slot-4, #slot-5{
		display: none;
	}
	
	.sticky-comparator{
		position: fixed;
	    left: 0;
	    right: 0;
	    bottom: 0;
	    z-index: 650;
	}
	.sticky-comparator .comparator-buttons .co-button {
		width: 165px
	}
}

.sticky-comparator .comparator-buttons .co-button:last-of-type {
	color: #000;
	background-color: #fff;
	border: 1px solid #ccc;
	margin-top: 12px
}

@media(max-width: 990px) {
	.sticky-comparator .comparator-buttons .co-button:last-of-type {
		margin-top: 0
	}
}

.product-comparator-image {
	position: relative;
	width: 100%
}

.comparator-refused-popin {
	visibility: visible
}

@media(max-width: 1180px) {
	.catalog-product-view .sticky-comparator {
		bottom: 63px
	}
}

@media(max-width: 1180px) {
	.catalog-product-view .sticky-comparator_collapse {
		background-color: #343434
	}
}

.justify-content-center{justify-content: center;}
.d-flex{display: flex;}
.d-flex-wrap{display: flex; flex-wrap: wrap;}

.loader-content{
	    margin-bottom: 4rem;
    padding-left: 2rem;
    padding-right: 2rem;
    margin-top: 3rem;
}

.combobox-list {
  position: relative;
}

.combobox-list-lastsearch {
  position: relative;
}

ul#cb2-listbox{
	top:99% !important;
}

ul[role="listbox"] {
  margin: 0;
  padding: 0;
  position: absolute;
  left: 0;
  top: 85%;
  list-style: none;
  background-color: white;
  display: none;
  box-sizing: border-box;
  border: 1px #d4d4d4 solid;
  border-bottom: none;
  border-top: none;
  width: 62% !important;
  font-size: 87.5%;
  cursor: pointer;
  z-index: 99;
}

ul[role="listbox"] li[role="option"] {
  padding: 10px;
  cursor: pointer;
  background-color: #fff; 
  border-bottom: 1px solid #d4d4d4; 
}

 /*focus and hover styling */



[role="listbox"].focus [role="option"][aria-selected="true"],
[role="listbox"] [role="option"]:hover {
background-color: #e9e9e9; 
}

a.evitement {
   position: absolute;
   left: -99999px;
}
a.evitement:focus {
   position: static;
}

.fa-heart {
	color: var(--green-emeraude-main-632) !important;
}

.fa {
	color: var(--blue-france-sun-113-625);
}
