@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@100;300;400;700&display=swap');

:root{
	--primary: #ff7506;
	--secondary: #020e28;
	--tertiary: #1d4982;
	--primary-opacity-80: #ff7506CC;
}


a {
	color: var(--primary);
}
 
.tooltip-inner{
	padding:3px 8px;
	color:var(--secondary);
	text-align:center;
	background-color:#fff !important;
	border-radius:.25rem;
	border: 1px solid var(--secondary);
}

.minisite {
	font-family: 'Montserrat', sans-serif;
	font-size: 0.9rem;
	/*font-size: 90%;*/
}

.container-narrow {
	max-width: 800px;
}

/* Theme color */
.bg-primary {
    background-color: var(--primary) !important;	
}
.text-primary {
    color: var(--primary) !important;	
}
.bg-secondary, .bg-bleufoncer {
    background-color: var(--secondary) !important;	
}
.text-secondary {
    color: var(--secondary) !important;	
}
.bg-tertiary {
    background-color: var(--tertiary) !important;	
}
.text-tertiary {
    color: var(--tertiary) !important;	
}

.image-bg {
	background-position:center;
	background-size:cover;
	background-repeat: no-repeat;
	position: relative;
	z-index: 1;
}

.navbar-collapse.collapse.show {
	display: block !important;
}
.surtitre {
	color: var(--primary);
	font-weight: bold;
	font-size: 0.9rem;
	text-align: center;
	text-transform: uppercase;
}

.titresection {
	color: var(--secondary);
	font-weight: bold;
	font-size: 1.4rem;
	text-align: center;	
	max-width: 600px;
	margin:  0.5rem auto 2rem;
	text-transform: initial;
}

/* Top header */
.minisite-top-header {
}

.minisite-top-header .nav-link {
	color: #ffffff;
}

.nav-link .picto {
	margin: 0 10px 0 0;
	transform:  translateY(-2px);
	display: inline-block;
}

.nav-link.telephone {
	/*color:  var(--primary);*/
}

.nav-link.contactez-nous {
	background: var(--primary);
	color:  #ffffff;	
}

/* Navigation */

.navbar-toggler {
	color: var(--primary);
	border: none;
}

.navbar-toggler .open {
	font-size: 1.7rem;
	color: var(--primary);
	font-weight: lighter;
	display: none;
}
.navbar-toggler .close {
	font-size: 1.7rem;
	font-weight: lighter;
	color: var(--primary);
	display: block;
}

.navbar-toggler.collapsed .open {
	display: block;
}
.navbar-toggler.collapsed .close {
	display: none;
}



.navbar-brand {
	margin-bottom: 0;
	padding-bottom: 0;
	padding-top: 0;
}

.navbar-brand img {
	max-width: 150px;
	max-height: 70px;
}

.navmenu {
	background: #fff;
	padding-top: 0.4rem;
	padding-bottom: 0.4rem;
	border-bottom: 1px solid #ccc;
}

.navmenu .nav-link {
	font-weight: bold;
	color: #000 !important;
	text-transform: uppercase;
	font-size: 0.9rem;
	transition: color 0.3s;
}

.navmenu .nav-link.active {
	transition: color 0.3s;
	color: var(--primary) !important;
}

.heading {
	background-color: #315b92;
	padding-top: 6rem;
	padding-bottom: 6rem;
	z-index: 1;
	position: relative;
	/* Affiche (quasi) toute la photo du hero sans la rogner en haut/bas */
	aspect-ratio: 16 / 9;
	max-height: 85vh;
}
.heading .titreneuf {
	background: #fff;
	color: var(--primary);
	display: inline-block;
	line-height: 1.3;
	padding: 0.3rem 0.6rem;
	text-transform: uppercase;
	font-size: 0.85rem;
	font-weight: bold;
	margin-bottom: 1rem;
}

.heading h1 {
	color: #ffffff;
	font-weight: bold;
	margin-bottom: 1.5rem;
	max-width: 500px;
}

body.minisite .heading h1{text-transform:none}

.heading .localisation {
	color: #ffffff;
	font-size: 1.5rem;
	font-weight: normal;
	margin-bottom: 2.5rem;
}

.btn-calltoaction {
	border-radius: 10px;
	background: var(--primary);
	color: #fff;
	padding: .475rem 1rem;
	font-size: 0.8rem;
	font-weight: bold;
	letter-spacing: 0.5px;
}

.btn-calltoaction.has-picto {
	padding: .475rem 1rem .475rem 2.3rem;
	position: relative;
}

.btn-calltoaction .picto {
	position: absolute;
	left: 0.8rem;
	top: 50%;
	transform:  translateY(-50%);
}


/* Heading */
.accroche {
    background-color: var(--secondary);	
    position: relative;
    font-size: 1.3rem;
}

.accroche .background {
    display: block;
    position: absolute;
    left: 0px;
    width: 50%;
    height: 100%;
    background-color: var(--primary);

}

.accroche .bg1 {
    background-color: var(--primary);
    color:  #ffffff;
    padding: 1.5rem;
    padding-top: 1.25rem;
    padding-bottom: 1.5rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	font-size: 1.4rem;
}

.accroche .bg2 {
    background-color: var(--secondary);	
    color:  #ffffff;
    padding: 1.5rem;
	font-size: 1.2rem;
}


/* Points Forts */
.points-forts {
	background-size: cover;
	color:  #fff;
	position: relative;
	z-index: 1;
}

.overlay {
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 100%;
	z-index: -1;
}

.points-forts .overlay {
	background:  rgba(0,0,0,0.2);
}


.points-forts .contenu ul {
	list-style: none;
}

.points-forts .contenu ul li {
	position: relative;
	/*display: flex;*/
	/*flex-direction: row;*/
	/*align-items: center;*/
	margin-bottom: 0.75rem;
	padding-left: 1rem;
}

.points-forts .contenu ul li:before {
	content: " ";
	display: inline-block;
	align-items: center;
	background: var(--primary);
	width: 10px;
	height: 10px;
	margin: 0.5rem 1.5rem 0.5rem 0;
	position: absolute;
	left: -25px;
    top: -3px;
}

.points-forts .titresection {
	color: #fff
}

.minisite .footer {
	background: var(--primary);
	color: #ffffff;
	padding:  2rem;
	text-align: center;
}

.promoteur .contenu {
	max-width: 800px;
	margin: auto;
}

.promoteur .logo img {
	max-width: 200px;
	max-height:  80px;
}

.showcase-text {
	min-height: 360px;
	padding: 1rem 4rem !important;
	display: flex;
	flex-direction: column;
	justify-content: center;
}


.nowrap {
	white-space: nowrap;
}


.prix-et-disponibilites {
	background: #fff5ee;
}

.table-products thead tr {
	background: var(--primary);
	color:  #fff;
}

#back-to-the-top {
  position: fixed;
  bottom: 20px;
  right: 20px;
  text-align: center;
  text-decoration: none;
  display: none;
  z-index: 999;
  border: 1px solid #ccc;
  color: var(--primary);
  padding: 0.5rem 0.6rem;
  box-shadow: 0 1px 20px rgba(0,0,0,.3);
  background: #ffffff;

}



#back-to-the-top:hover {
	color: var(--secondary);
}

#back-to-the-top i {
	margin: 0;
    font-size: 23px;
}

.map-contact a {
	color: #ffffff ;
}

#accordion {
	max-width: 900px;
	margin: 1rem auto 2rem;
}

#accordion .card {
	border: 0;
	border-radius: 0;
}

#accordion .tableDivHeader {
	display: flex;
	justify-content: center;
	flex-direction: column;	
	font-size: 1rem;
}

#productTable .thead-light {
	background-color: var(--primary);
	color: #fff;
}
#productTable .thead-light th {
	background-color: var(--primary);
	border: 0;
	color: #fff;
}

#accordion .opened {
	display:  block;
}
#accordion .closed {
	display:  none;
}

#accordion .collapsed .opened {
	display:  none;
}
#accordion .collapsed .closed {
	display:  block;
}

#accordion .card-item.collapsed {
	background-color: #d4d6db;
	color: var(--secondary);
}
#accordion .card-item {
	background-color: var(--secondary);
	color: #ffffff;
}

#accordion .card-header{
	border:  0;
}

#accordion .table{
	margin-bottom:  0;
}



/* PRGRAM IMAGE */
.image-box {
	position:  relative;
	max-width: 700px;
	margin: auto;
}

.image-quicklink {
	position: absolute;
	top: 0;
	right: 0;
	display: flex;
	flex-direction: column;
	z-index: 10;
}

.image-quicklink .picto-box {
	padding: 0.5rem;
	cursor: pointer;
	/*border: 1px solid ;*/
}

.image-quicklink .picto-box:nth-child(odd) {
	background: var(--primary);
}
.image-quicklink .picto-box:nth-child(even) {
	background: var(--secondary);
}

/*.image-quicklink .picto-box.aggrandir {
	background: var(--primary);
}
.image-quicklink .picto-box.diaporama {
	background: var(--secondary);
}
.image-quicklink .picto-box.vueinteractive {
	background: var(--primary);
}
.image-quicklink .picto-box.video {
	background: var(--secondary);
}*/

/*  a ajuster sur image  */ 
.degrad {
	background: linear-gradient(160deg, rgba(2,14,40,0.4) 0%, rgba(2,14,40,0.2) 35%, rgba(2,14,40,0) 100%);
}

.image-box {
	margin-bottom: 2rem;

}
.carousel-indicators {
	transform: translateY(60px);
}
.carousel-indicators li {
    background-color: var(--secondary) !important;
    width: 12px !important;
    height: 12px !important;
	border: none;
	border-radius: 5px;
    margin: 7px !important;
}

.carousel-indicators li.active {
	background-color: var(--primary) !important;
    width: 12px !important;
    height: 12px !important;
    margin: 7px !important;
}

.carousel-control-next, .carousel-control-prev {
	width: 50px;
}

.carousel-control-next span, .carousel-control-prev span{
	width: 50px;
}

/* RESPONSIVE TABLE */

@media (max-width: 768px) {
	.table thead {
		left: -9999px;
		position: absolute;
		visibility: hidden;
	}
	.table    tr, .table td {
		text-align: right;
	}
	.table tr {
		border-bottom: 0;
		display: flex;
		flex-direction: row;
		flex-wrap: wrap;
		margin-bottom: 20px;
	}
	.table td {
		margin: 0 -1px -1px 0;
		position: relative;
		width: 100%;
	}
	.table td::before {
		content: attr(data-title);
		text-align: left;
		float: left;
	}
	.table td.trIndex {
		display: table-cell;
	    visibility: visible;
	    border-top: 0px solid var(--secondary);
	    background-color: #c7c7c7;
	    padding: 0.35rem 0.75rem;
	}
}


.program .map-contact {
    background: var(--primary);
}


.disclaimer {
	font-size: 0.8rem;
	color:  #828b8b;
}


/* Contactez-nous */
#contactez-nous .overlay {
	background:  rgba(248,249,250,0.92);
}


/* FORM */
input[type="checkbox"], input[type="radio"] {
    margin: 0 0.5rem 0 0.5rem;
}

.form-control::placeholder {
    color: #6c757d;
    opacity: 0.9 !important;
    font-size: 0.8 !important;
}

.labelMain {
	font-weight: bold;
    color: var(--secondary);
}

.custom-radio label {
  display: inline-block;
  padding: 0.6em 2em 0.5em 2em;
  margin: 0 1rem 0.5em 0;
  cursor: pointer;
  color: var(--primary);
  font-weight: bold;
  border-radius: 10px;
  border: 1px solid var(--primary);
  background: #ffffff;
  transition: 0.3s;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
    font-weight: bold;
    letter-spacing: 1px;
    font-size: 0.8rem;
}

.custom-radio label:hover {
  background: #f8f9fa;
  /*color: #101010;*/
  /*box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2), inset 0 -3px 0 rgba(0, 0, 0, 0.32);*/
}
.custom-radio label:active {
  /*transform: translateY(2px);*/
  /*box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2), inset 0px -1px 0 rgba(0, 0, 0, 0.22);*/
}

.custom-radio input[type='radio'] {
	display: none;
}

.custom-radio input[type='radio']:checked + label {
  background: var(--primary);
  color: #fff;
}
.custom-radio input[type='radio']:checked + label:hover {
  /*background: #29b765;*/
  /*color: #e2e2e2;*/
}

.hidden {
  display: none;
}

.custom-radio-narrow label {
  padding: 0.5em 1em;
  margin: 0 0.6em 0.5em 0;
}




.custom-radio2 label {
  display: inline-block;
  padding: 0;
  margin: 0 1rem 0.5em 40px;
  cursor: pointer;
  transition: 0.3s;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
    font-size: 0.9rem;
    position: relative;
}

.custom-radio2 label:before {
  content: '';
  width:  20px;
  height:  20px;
  border: 1px solid var(--primary);
  border-radius: 10px;
  position: absolute;
  left: -30px;
  top: 50%;
  transform: translateY(-50%);
  background: #fff;
}

.custom-radio2 label:after {
  content: '';
  width:  14px;
  height:  14px;
  border: none;
  border-radius: 8px;
  position: absolute;
  left: -27px;
  top: 50%;
  transform: translateY(-50%);
  background: var(--primary);
display: none;
}

.custom-radio2 label:hover {
  background: #f8f9fa;
  /*color: #101010;*/
  /*box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2), inset 0 -3px 0 rgba(0, 0, 0, 0.32);*/
}
.custom-radio2 label:active {
  /*transform: translateY(2px);*/
  /*box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2), inset 0px -1px 0 rgba(0, 0, 0, 0.22);*/
}

.custom-radio2 input[type='radio'] {
	display: none;
}

.custom-radio2 input[type='radio']:checked + label:after {
  display: block;
}
.custom-radio2 input[type='radio']:checked + label:hover {
  /*background: #29b765;*/
  /*color: #e2e2e2;*/
} 




.custom-checkbox label {
  padding: 0 0 0 2.5rem;
  position: relative;
}

.custom-checkbox label:before {
  content: '';
  width:  20px;
  height:  20px;
  border: 1px solid var(--primary);
  border-radius: 0;
  position: absolute;
  left: 0.2rem;
  top: 5px;
  background: #ffffff;
}

.custom-checkbox label:after {
  content:"\f00c";
  font: normal normal normal 16px/1 FontAwesome;
  color: var(--primary);
  width:  14px;
  height:  14px;
  border: none;
  position: absolute;
  left: 5px;
  top: 7px;
  display: none;
} 

.custom-checkbox label:hover {
  background: #f8f9fa;
  /*color: #101010;*/
  /*box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2), inset 0 -3px 0 rgba(0, 0, 0, 0.32);*/
}
.custom-checkbox label:active {
  /*transform: translateY(2px);*/
  /*box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2), inset 0px -1px 0 rgba(0, 0, 0, 0.22);*/
}

.custom-checkbox input[type='checkbox'] {
	display: none;
}

.custom-checkbox input[type='checkbox']:checked + label:after {
  display: block;
}
.custom-checkbox input[type='checkbox']:checked + label:hover {
  /*background: #29b765;*/
  /*color: #e2e2e2;*/
} 


/* Responsive */

@media (max-width: 992px) {
	.program .map-contact {
	    min-height: initial
	}
}

@media (max-width: 768px) {
	.showcase-text {
		padding: 1rem 0 !important;
	}

	.poi-container {
		display: none;
	}

	.minisite-top-header {
		background:  var(--primary) !important;
	}

	.nav-link.telephone {
	    color: #fff;
	}

	.nav-link.telephone path {
		fill:  #fff !important;
	}

	.heading {
	    aspect-ratio: auto; /* sur mobile, hauteur pilotée par le contenu */
	    max-height: none;
	}

	.heading h1 {
	    font-size: 2rem;
	}

	.heading .localisation {
	    font-size: 1.3rem;
	}
}
/* ---- Supplément INEUF v2 : nav flex, accordéon <details>, vidéo, table lots ---- */
.navmenu .minisite-nav{ display:flex; gap:6px; flex-wrap:wrap; list-style:none; margin:0; padding:0; }
.navmenu .minisite-nav .nav-link{ white-space:nowrap; }
.minisite-desc{ max-width:820px; margin:0 auto 2rem; color:#333; line-height:1.7; }
.ratio-16-9{ position:relative; padding-top:56.25%; border-radius:12px; overflow:hidden; }
.ratio-16-9 iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.details-text{ color:#333; line-height:1.7; }
/* Accordéon prix via <details> */
.lot-card{ border:1px solid #e6ebef; border-radius:10px; overflow:hidden; background:#fff; }
.lot-card>summary{ list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 18px; background:var(--tertiary); color:#fff; font-weight:600; }
.lot-card>summary::-webkit-details-marker{ display:none; }
.lot-card .lot-toggle:before{ content:'+'; font-size:1.4rem; line-height:1; }
.lot-card[open] .lot-toggle:before{ content:'\2212'; }
.lot-card .lot-title{ font-size:.98rem; }
.lot-table{ width:100%; border-collapse:collapse; }
.lot-table th{ background:#f4f7f9; color:#12212e; font-weight:700; padding:10px 12px; text-align:center; font-size:.85rem; }
.lot-table td{ padding:11px 12px; text-align:center; border-top:1px solid #eef2f5; font-size:.9rem; }
.lot-table .lot-price{ font-weight:700; color:var(--primary); }
.lot-table .lot-contact .fa, .lot-table .plan_send .fa{ color:var(--primary); }
.minisite-top-header .picto img{ vertical-align:middle; filter:brightness(0) invert(1); }

/* ---- Compat Bootstrap4 -> Bootstrap3 (préprod) : flex utilities scopées minisite v2 ---- */
.minisite-v2 .minisite-top-header .nav{ display:flex !important; flex-direction:row; justify-content:flex-end; align-items:center; gap:24px; margin:0; padding:6px 0; list-style:none; }
.minisite-v2 .minisite-top-header .nav-item{ list-style:none; float:none; }
.minisite-v2 .minisite-top-header .nav-link{ display:inline-flex; align-items:center; gap:6px; padding:6px 0; white-space:nowrap; }
.minisite-v2 .navmenu{ display:block; background:#fff; }
.minisite-v2 .navmenu .container{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; }
.minisite-v2 .navmenu .navbar-brand{ margin:0; }
.minisite-v2 .navmenu .navbar-brand img{ max-height:56px; width:auto; }
.minisite-v2 .minisite-nav{ display:flex !important; flex-direction:row; align-items:center; gap:22px; margin:0; padding:0; list-style:none; }
.minisite-v2 .minisite-nav .nav-item{ float:none; list-style:none; }
.minisite-v2 .minisite-nav .nav-link{ padding:6px 0; white-space:nowrap; }
.minisite-v2 .ml-auto{ margin-left:auto !important; }
.minisite-v2 .align-items-center{ align-items:center !important; }
.minisite-v2 .d-none{ display:none !important; }
@media (min-width:576px){ .minisite-v2 .d-sm-inline-block{ display:inline-block !important; } .minisite-v2 .d-sm-none{ display:none !important; } }
@media (max-width:575px){ .minisite-v2 .minisite-nav{ display:none !important; } }
.minisite-v2 .accroche .row{ display:flex; flex-wrap:wrap; }
.minisite-v2 .details-du-programme .row{ display:flex; flex-wrap:wrap; align-items:center; }
.minisite-v2 .row.justify-content-end{ justify-content:flex-end; }

/* ---- Minisite v2 : bandeau statut deux-tons + hero cover ---- */
.minisite-v2 .heading.image-bg{ background-size:cover !important; background-position:center !important; background-repeat:no-repeat !important; }
.minisite-v2 .accroche{ background:transparent !important; }
.minisite-v2 .accroche .bg1{ background:var(--primary) !important; color:#fff; }
.minisite-v2 .accroche .bg2{ background:var(--secondary) !important; color:#fff; }

/* ---- Conformité prod 02/07 : uppercase titres ---- */
.minisite-v2 .heading .localisation{ text-transform:uppercase; }
.minisite-v2 .showcase-text h3{ text-transform:uppercase; font-weight:bold; color:#243044; font-size:1.5rem; margin-bottom:1rem; }
.minisite-v2 .contact .custom-checkbox{ text-align:left; max-width:760px; margin:0 auto; }
.minisite-v2 .contact .custom-checkbox label{ font-size:.85rem; }
.minisite-v2 .contact .disclaimer{ font-size:.75rem; color:#555; text-align:justify; }
