:root {
	--bs-blue: #0d6efd;
	--bs-indigo: #6610f2;
	--bs-purple: #6f42c1;
	--bs-pink: #d63384;
	--bs-red: #dc3545;
	--bs-orange: #fd7e14;
	--bs-yellow: #ffc107;
	--bs-green: #198754;
	--bs-teal: #20c997;
	--bs-cyan: #0dcaf0;
	--bs-white: #fff;
	--bs-gray: #6c757d;
	--bs-gray-dark: #343a40;
	--bs-primary: #00D1F9;
	--bs-secondary: #19409A;
	--bs-success: #198754;
	--bs-info: #0dcaf0;
	--bs-warning: #ffc107;
	--bs-danger: #dc3545;
	--bs-light: #F2F9F9;
	--bs-dark: #001442;
	--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
	--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
	--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
	--bs-breadcrumb-divider: "»";
	--jaune: #ffe600;
	--noir: #111111;

}

/* HERO / GROS TITRES */
h1, .hero-title {
	font-family: 'Bebas Neue', sans-serif;
	font-size: clamp(35px, 2vw, 50px);
	letter-spacing: 2px;
	color: var(--jaune);
	/* effet proche du logo mais clean */
	-webkit-text-stroke: 2px var(--noir);
	
	margin: 0;
}

/* TITRES SECTIONS */
h2, h3 {
	/*font-family: "Anton", sans-serif;*/
	font-family: 'Oswald', sans-serif;
	font-weight: 700;
	font-size: 18px;
	color: var(--noir);
	text-transform: uppercase;
	letter-spacing: 1px;
}

/* VARIANTE JAUNE */
h2.yellow {
	color: var(--jaune);
}


/* surcharge bootstrap : class utilisée (entre autres ?) pour le titre h2 dans .bg-breadcrumb */
.display-4 {
	font-size: 2rem;
}

label { display:flex; }

/* TEXTE */
/*
body {
	font-family: Arial, sans-serif;
}
*/

/* surcharges bootstrap */
.text-primary { color: #00a3e0 !important; }
@media (min-width: 1200px) {
	.display-3 { font-size: 3rem; }
}

.carousel-control-prev, .carousel-control-next {
	z-index: 3;
}
/* pour corriger le scroll horizontal superflu */
/* https://github.com/twbs/bootstrap/issues/33911 */

.row-contenu {
	margin-left: calc(var(--bs-gutter-x) * -1);
	margin-right: 0;
	> * {
		padding-left: var(--bs-gutter-x);
		padding-right: 0;
	}
}

a {
	/*color: #00d1f9;*/
	text-decoration: none;
}

.navbar > .logo {
	padding: 0px;
	margin: 20px auto 0px auto;
	display: flex;
}

.navbar .logo p {
	font-size: 15px;
	color: var(--bs-white);
	font-family: 'Roboto', sans-serif;
	font-weight: 500;
	letter-spacing: 3px;
	margin-top: 3px;
	transition: color 0.3s ease;
}

.navbar.sticky-top .logo p {
	color: #a9a9a9;
}


/*
.header-background {
	bottom: 0;
	left: 0;
	position: absolute;
	right: 0;
	top: 0;
}
*/

body {
	color:grey;
}
/* Réinitialiser les marges et les bordures */
/*
body, html {
	margin: 0;
	padding: 0;
	width: 100%;
	height: 100%;
}
*/

/* layout */
.hero {
    position: relative;
    overflow: hidden;
    height: 100svh;
    min-height: 600px;
}

.hero-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.hero-content {
    position: relative;
    z-index: 2;
}

.hero-has-bg {
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero-simple {
    display: block;
}

/*
.hero-inner {
    position: relative;
    z-index: 2;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}
*/

/* hauteur hero selon pages  */
body.webpublic-index .hero {
	height: 60svh;
}

@supports not (height: 100svh) {
	.hero { height: 100vh; }
	body.node-promoted .hero { height: 100vh; }
	body.webpublic-index .hero { height: 60vh; }
}

.header-page {
	min-height:250px;
}

body.has-hero .header-page {
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 3;
}

body.no-hero .header-page {
    position: relative;
}

body.no-hero .main-content {
    padding-top: 50px;
}
/*
body.webpublic-index .hero-has-bg {
    align-items: flex-start;
    padding-top: 120px;
}
*/

/*
.header-page {
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 3;
    min-height:300px;
}
*/

/* Container de la vidéo */
.video-container {
    position: absolute;
    inset: 0;
    z-index: 0;
    background-image: url('/uploads/home_video.jpg');
    background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.video-container video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.video-container::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.35);
}

/*
.video-container {
	position: absolute;
	inset: 0;
	overflow: hidden;
	background-image: url('/uploads/home_video.jpg');
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	margin-top:-15rem;
}

*/

/* Styles pour la vidéo */
/*
.video-container video {
	position: absolute;
	top: 50%;
	left: 50%;
	min-width: 100%;
	min-height: 100%;
	width: auto;
	height: auto;
	transform: translate(-50%, -50%);
	z-index: 1;
	object-fit: cover;
}
*/

/* video youtube dans le caroussel bateaux neufs */
/*

.video-iframe-container {
	position: relative;
	padding-bottom: 56.25%;
	height: 0;
}
.video-iframe-container iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
*/
.footer {
	background: var(--bs-dark);
}

.footer-legal a { padding-left:25px; }

. a:hover {
	letter-spacing: 1px;
	/*color: var(--bs-primary);*/
}

/* titre constance boat footer */
#block-2 h4 {
	font-family: 'Roboto', sans-serif;
	font-weight: 500;
	color: #9c9c9c;
	font-size: 22px;
	text-transform: uppercase;
}

#block-2 h4 span {
	color: #00a3e0;
}

.product-item > a { color:inherit; display:contents; }
.product-item > a p.h4 { color: var(--bs-secondary-color); }
.product-item > a > img { min-height: 400px; }

/*
.home-search {
	position:absolute;
	top:70vh;
	left:50%;
	transform:translate(-70vh, -50%);
	z-index:1;
}
*/

.home-search {
	position: relative;
	z-index: 2;
}

.home-search .form-control,
.home-search .form-select {
	min-width: 140px;
}

.home-search button {
	height: 38px;
}

@media (min-width: 768px) {
	.home-search button {
		white-space: nowrap;
	}
}

.home-search form {
	background: #eee;
	border-radius: 8px;
	opacity: 0.85;
	box-shadow: 0 5px 20px rgba(0,0,0,0.1);
}

.home-search .form-control,
.home-search .form-select {
	border-radius: 6px;
}



.home-carousel-marques {
	border-radius: 10px;
	background: #fff;
	padding: 0;
}

.home-carousel-marques {
	position: relative;
	display: flex;
	align-items: stretch;
}

#home-carousel-marques .carousel-item {
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform .5s;
}

#home-carousel-marques .carousel-item img {
	max-width: 140px;
	height: 140px;
	object-fit: contain;
}


#home-carousel-marques .carousel-fade .active.carousel-item-start,
#home-carousel-marques .carousel-fade .active.carousel-item-end {
	transition: opacity 0s;
}

.home-carousel-marques > img {
	border-radius: 10px 0 0 10px;
}

.home-vignettes .thumbnail img { border-radius: 10px; }

.bg-gray-light { background-color: var(--bs-gray-300); }
.gray-light { color: var(--bs-gray); }
.gray-dark { color: var(--bs-gray-dark); }

.block-recherchebateau img { transition: 0.5s; border-radius:0.375rem; }
.block-recherchebateau img:hover { transform: scale(1.2); }


.listventesview {
	display: flex;
	justify-content: center;
	gap: 20px; /* espace régulier */
	flex-wrap: wrap;
	padding: 0;
}

.listventesview .breadcrumb-item {
	width: 140px; /* largeur fixe = alignement propre */
	text-align: center;
}

.listventesview .breadcrumb-item a {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-decoration: none;
}

.marque-logo-container {
	text-align: center;
	padding:5px;
}

.img-cover {
	height: 100%;
	object-fit: cover;
}

.marque-logo-rounded-home,
.marque-logo-rounded {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 90px;
	height: 90px;
	border-radius: 50%;
	/*color:#fff;*/
	box-sizing: border-box;
	transition: 0.5s;
}

.marque-logo-breadcrumb {
	background-color: #fff;
	width: 90px;
	height: 90px;
	opacity:0.5;
	margin:0px auto;
}

.listventesview li.active-vente {
	transform: scale(1.1);
	z-index: 2;
}

.listventesview li.active-vente img {
	border: 3px solid #ffc107;
	box-shadow: 0 0 10px rgba(0,0,0,0.3);
}

.listventesview .marque-logo-breadcrumb {
	/*
	width: 120px;
	height: 120px;
	*/
	opacity:1;
}

.marque-logo-page {
	width: 120px;
	height: 120px;
	background-color: #9c9c9c;
}

.marque-logo-home {
	width: 90px;
	height: 90px;
	background-color: #9c9c9c;
}

.marque-logo-rounded:hover { transform: scale(1.2); }

.marque-logo-img-breadcrumb {
	width: 80px;
	height: 80px;
}

.listventesview .marque-logo-breadcrumb {
	width: 100%;
	max-width: 120px;
	aspect-ratio: 1 / 1; /* 👈 clé du problème */
	margin: 0 auto;
}

.listventesview .marque-logo-rounded {
	display: flex;
	justify-content: center;
	align-items: center;
	border-radius: 50%;
	overflow: hidden; /* important pour le rond */
}


.marque-logo-img-page {
	width: 110px;
	height: 110px;
}

.marque-logo-img-home {
	width: 80px;
	height: 80px;
}


.marque-logo-img {
	border-radius: 50%;
	object-fit: contain;
	background: #fff;
	padding: 7px;
}

.listventesview .marque-logo-img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	border-radius: 50%;
	background: #fff;
	padding:0px;
}

.listventesview .vente-photo-breadcrumb {
	width: 120px;
	aspect-ratio: 1 / 1;
	margin: 0 auto;
}

.vente-photo-rounded {
	width: 100%;
	height: 100%;
	border-radius: 50%;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

.vente-photo-img-breadcrumb {
	width: 100%;
	height: 100%;
	object-fit: contain !important; /* 👈 force si conflit */
	object-position: center;
	background: #fff;
}



.marque-bottom {
	position: relative;
	background: rgb(197, 197, 197);
	background: radial-gradient(at center, rgb(35, 35, 38) 0%, rgba(255, 255, 255,0) 60%);
	padding: 20px 350px 70px 350px;
	text-align: center;
}

.marques-disponibles .marque-logo-breadcrumb,
.marque-bottom .marque-logo-breadcrumb {
	opacity: 1;
}

.block-liste-marques {
	background: grey;
	text-align: center;
	background-image: linear-gradient(to bottom, #000000, #322e2d, #605955, #8f8a81, #bcc0b2);
	border-radius: 10px;
}

.block-liste-marques > h3, .block-liste-marques .marque-bandeau-text {
	color: #fff;
	transition:0.5s;
}
.marque-bandeau-text { text-align:center; }

.resacategories .image-container {
	height: 300px;
	overflow: hidden;
}

.resacategories .image-container img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display:block;
}

/*** Products Start ***/
.product .product-item {
	border: 1px solid rgba(196, 211, 211, 0.9);
	border-radius: 10px;
}


/* methode corrigé chatgpt */
/* pour hauteur identique des cards */
/* .product = vehicules location (index) */

.product .row > [class*="col-"] {
	display: flex;
}

.product-item {
	height: 100%;
	display: flex;
	flex-direction: column;
	/*width: 100%;*/ /* peut être utile pour le swipper de la home */
}

.product .product-content {
	/*flex-grow: 1;*/
	display:flex;
	flex-direction:column;
	flex:1;
}

.product .product-content .btn {
	margin: auto auto 0px auto;
	width:50%;
}

/* solution moderne chatgpt plus responsive */
.product-item .image-container {
	width: 100%;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

.product-item .image-container img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/*** Products End ***/



.carousel-caption { /*bottom:50px;*/ }

.searchform-sort-btn {
	width: 40px;
	height: 40px;
	border-radius: 50px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.searchform-sort-btn.active {
	background: var(--bs-primary);
	cursor:pointer;
}

.searchform-sort-btn.inactive {
	background: var(--bs-gray);
}


#SortMethod { margin-right:5px; width:150px; float:left; }

.page-item.disabled .page-link > a {
	color: #6c757d;
	pointer-events: none;
}

/* page bateaux */

.navigation-item .search-icon {
	width: 80px;
	height: 80px;
	border-radius: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--bs-primary);
	opacity: 0.65;
}
.navigation-item .search-icon:hover i {
	transform: rotate(360deg);
}

.navigation-item .search-icon i {
	transition: 0.5s;
}

.prev-boat, .next-boat {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 80px;
	height: 80px;
	border-radius:40px;
	opacity: 0.65!important;
}

.btn-small {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	border-radius: 27px;
	opacity: 0.65 !important;
	margin-left: 15px;
	/*padding-left: 15px;*/
}


.breadcrumb-item + .breadcrumb-item::before {
	float: left;
	padding-right: .5rem;
	color: #6c757d;
	content: var(--bs-breadcrumb-divider, "/");
}


.listnodeview > .breadcrumb-item + .breadcrumb-item::before,
.listventesview > .breadcrumb-item + .breadcrumb-item::before {
	display:none;
}
.listnodeview { z-index:2; }

.boatgallery .image-container {
	/*height: 320px;*/
	overflow: hidden;
	justify-content: center;
	align-items: center;
}

.boatgallery .image-container > img {
	max-height: 100%;
	max-width: 100%;
	cursor:pointer;
}

#gallery-carousel .carousel-item img {
	object-fit: cover;
	/*object-position: center; */
	height: 95vh;
	overflow: hidden;
	border-radius:10px;
}

/* carousel du plan */
#plans .carousel-indicators{
	position:relative;
	margin:0;
	display:flex;
	flex-direction:column;
	gap:10px;
}

#plans .carousel-indicators button{
	width:100%;
	height:auto;
	border:0;
	background:none;
	padding:0;
	opacity:.6;
}

#plans .carousel-indicators button.active{
	opacity:1;
}

#plans .carousel-indicators img{
	display:block;
	width:100%;
	height:auto;
	cursor:pointer;
	transition:0.3s;
}


#plans .carousel-indicators img:hover{
	transform:scale(1.05);
}

#boatgallerymodal .modal-body > button {
	position: absolute;
	top: 20px;
	right: 20px;
	background-color: var(--bs-primary);
	z-index: 10000;
	width: 3em;
	height: 3em;
	border-radius: 30px;
}

.accordion-button { font-family:revert; }

.virtualtour {
	height: 680px;
	border: none;
}

.videofilm {
	border-radius: 10px;
	overflow: hidden;
	height: 369px;
	margin-bottom:15px;
}

/* gestion blockquote dans description des bateaux */
.viewgeneral {
	position: relative;
}

/* Animation hauteur fluide */
.extra-content {
	overflow: hidden;
	transition: height 0.6s cubic-bezier(.4,0,.2,1), opacity 0.4s ease;
}

/* État replié */
.viewgeneral.is-collapsed .extra-content {
	opacity: 0;
}

/* Dégradé élégant */
.viewgeneral.is-collapsed::after {
	content: "";
	position: absolute;
	bottom: 60px;
	left: 0;
	right: 0;
	height: 80px;
	background: linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,0.95));
	pointer-events: none;
}

/* Bouton premium */
.toggle-description {
	margin-top: 20px;
	background: none;
	border: none;
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	color: #0d6efd;
	transition: opacity 0.3s ease;
}

.toggle-description:hover {
	opacity: 0.7;
}

.toggle-description .chevron {
	transition: transform 0.4s ease;
}

.toggle-description.is-open .chevron {
	transform: rotate(180deg);
}


/*** Single Page Hero Header Start ***/
.bg-breadcrumb {
	position: relative;
	/*
	top:15px;
	overflow: hidden;
	*/
	background: rgb(197, 197, 197);
	background: radial-gradient(at center, rgb(35, 35, 38) 0%, rgba(255, 255, 255,0) 70%);
	/* padding: 120px 0 60px 0; */
	transition: 0.5s;
	z-index:2;/* inactive le menu : non plus avec le nouveau layout hero */
}

.bg-breadcrumb .breadcrumb {
	position: relative;
}

/*
.breadcrumb .breadcrumb-item a,
.bg-breadcrumb .breadcrumb .breadcrumb-item a {
	color: var(--bs-white);
}
*/
.block-liste-marques-home .breadcrumb-item a,
.listventesview .breadcrumb-item a,
.listnodeview .breadcrumb-item a {
	color: var(--bs-white);
	transition:0.5s;
}

.block-liste-marques-home .breadcrumb-item a:hover,
.listnodeview .breadcrumb-item a:hover,
.block-liste-marques .marque-bandeau-text:hover {
	letter-spacing: 1px;
	color: var(--bs-primary);
}

/* page contact */
#map_canvas_1 {
	position:relative;
	height:100vh;
	z-index:2;
}

@media (max-width: 992px) {
	.bg-breadcrumb {
		padding: 60px 0 60px 0;
	}
}
/*** Single Page Hero Header End ***/



.linear-top-to-bottom:before {
	background:#0e233f;
	background:linear-gradient(180deg,#0e233f,rgba(14,35,63,0) 70%);
	z-index:2;
}

.linear-left-to-right:after,
.linear-top-to-bottom:before {
	content:"";
	height:100%;
	left:0;
	pointer-events:none;
	position:absolute;
	top:0;
	width:100%
}

.navbar-nav { min-width:270px; } /* pour éviter le décalage dans le sous-menu */

.linear-left-to-right:after {
	background:#0e233f;
	background:linear-gradient(90deg,#0e233f,rgba(14,35,63,0) 66%);
	z-index:1
}

/*
.header-page, .header-carousel {
	position: relative;
}
	

.header-content {
	position: relative;
	width: 100%;
	margin-top: -15rem;
}

.webpublic-index .carousel-header {
	height: 60vh;
}

*/

.carousel-header img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}


/* X-Small devices (portrait phones, less than 576px)
   No media query for `xs` since this is the default in Bootstrap
   Small devices (landscape phones, 576px and up) */
@media (min-width: 576px) {
	/*
	.linear-top-to-bottom:before {
		background:#0e233f;
		background:linear-gradient(180deg,#0e233f,rgba(14,35,63,0) 140%);
		z-index:auto;
	}
	*/
}
/* Medium devices (tablets, 768px and up) */
@media (min-width: 768px) {
	/*
	.header-page, .header-carousel {
		position: relative;
	}
	*/
	/*
	.linear-top-to-bottom:before {
		background:#0e233f;
		background:linear-gradient(180deg,#0e233f,rgba(14,35,63,0) 33%);
		z-index:auto;
	}
	*/
}
/*
.header-page {
	z-index:2;
	position: relative;
	min-height: 15rem;
}

body:not(.header-content, .video-container)) .header-page {
	position: relative;
	min-height: 30rem;
}
*/


.fondsearch {
	position: relative;
	width: 100%;
	background: rgba(255,255,255,0.8);
	border-radius: 10px;
	padding: 20px;
}
	

/* Large devices (desktops, 992px and up) */
@media (min-width: 992px) {

	/*
	.fondsearch {
		position: absolute;
		bottom: 20px;
		left: 50%;
		transform: translateX(-50%);
		z-index: 30;
		width: 100%;
		background: rgba(255,255,255,0.8);
		padding: 20px;
		border-radius: 10px;
	}
	*/
	/*
	.fondsearch {
		position: relative;
		z-index: 30;
		width: 100%;
		background: rgba(255,255,255,0.8);
		border-radius: 10px;
	}
	*/
	/*
	.contactplus-view .header-page,
	.nodes-promoted .header-page {
		min-height: 30rem;
	}

	.contactplus-view .header-content,
	.nodes-promoted .header-content {
		margin-top: -30rem;
	}
	*/

/* pas prix en compte */
	
	
	.linear-top-to-bottom:before {
		background:#0e233f;
		background:linear-gradient(180deg,#0e233f,rgba(14,35,63,0) 60%);
		z-index:2;
	}
	
	
	/*.header-carousel { position:absolute; }*/
	.affairedescription {
		height: 160px;
		margin-top: -160px;
		color: white;
		padding: 10px;
		background-color: var(--bs-gray);
		opacity: 0.6;
		overflow: auto;
	}
	
	/* .excerpt-index-neuf { height:120px; } */
	
	
}


.filter {
	background-color: #eee;
	border-radius: 8px;
	opacity: 0.85;
	width: 100%;
	margin: 0 auto!important;
}


/* X-Large devices (large desktops, 1200px and up) */

@media (min-width: 1200px) {
	
	
	#slider { height:100vh; }

}

/* XX-Large devices (larger desktops, 1400px and up) */
@media (min-width: 1400px) {
	/*
	.header-page {
		min-height: 30rem;
		position: absolute;
		z-index:2;
	}
	*/
	/*
	.linear-top-to-bottom:before {
		background:#0e233f;
		background:linear-gradient(180deg,#0e233f,rgba(14,35,63,0) 33%);
		z-index:2;
	}
	*/
	/*.header-carousel { position:absolute; }*/
	/*
	.bg-breadcrumb {
		position: absolute;
		top:15px;
		
	}
	*/

}

@media (max-width: 992px) {

	.fondsearch {
		position: relative;
		bottom: auto;
		left: auto;
		width:auto;
		transform: none;
		margin-top: 0 auto;
		background: #c0c0c0;
		border-radius: 10px;
	}
	

	.carousel-header,
	.carousel-header img { height: auto; }

	/*
	.header-page {
		position: relative;
		min-height: 15rem;
	}
	*/
	
	.linear-top-to-bottom:before {
		background:#0e233f;
		background:linear-gradient(180deg,#0e233f,rgba(14,35,63,0) 33%);
		z-index:2;
	}
	
	/*
	.header-page {
		min-height: 30rem;
		position: absolute;
		z-index:2;
	}
	*/
	.linear-top-to-bottom:before {
		background:#0e233f;
		background:linear-gradient(180deg,#0e233f,rgba(14,35,63,0) 140%); /* pourcentage plus petit pour avoir un gradient qui ne se voit pas trop sur la video ou le slider */
		z-index:auto;
	}
	
	.home-vignettes #block-23 { display:none; }
	
	.home-marques-description img.rounded-start {
		border-bottom-left-radius: 0px !important;
		border-bottom-right-radius: 0px !important;
		border-top-left-radius: 10px !important;
		border-top-right-radius: 10px !important;
	}
	
	.home-marques-description img.rounded-end {
		border-bottom-left-radius: 10px !important;
		border-bottom-right-radius: 10px !important;
		border-top-left-radius: 0px !important;
		border-top-right-radius: 0px !important;
	}
	
}

/* pour l'élément affairesmois2 */
.product-img {
    aspect-ratio: 16 / 9;   /* toutes les images au même ratio */
    object-fit: cover;
}


/* swiper affaires du mois */


.product-swiper {
	padding-left: 2rem;
	padding-right: 2rem;
}

.swiper-slide {
	display: flex;
	height: auto;
}

.swiper-slide a { color:unset; }

.swiper-slide > * {
	width: 100%;
}

.yacht-swiper {
	padding-bottom: 40px;  /* plus d'espace avant la pagination */
}

.swiper-button-next, .swiper-button-prev {
	background-color: var(--bs-primary);
	transition: 0.8s;
	opacity: 0.7;
}

.swiper-button-next {
	right: 0;
	border-right: 0;
	border-top-left-radius: 50px;
	border-top-right-radius: 0;
	border-bottom-left-radius: 50px;
	border-bottom-right-radius: 0;
	padding: 0px 20px 0px 30px;
}

.swiper-button-prev {
	left: 0;
	border-left: 0;
	border-top-left-radius: 0;
	border-top-right-radius: 50px;
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 50px;
	padding: 0px 30px 0px 20px;
}

.swiper-button-next:after, .swiper-button-prev:after {
	font-family: swiper-icons;
	font-size: 24px;
	line-height: 1;
	font-weight: 900;
	color: #fff;
}

.swiper-button-next:hover, .swiper-button-prev:hover {
	background: var(--bs-secondary);
	opacity:1;
}

.swiper-button-disabled { display:none; }


/* Image homogène */

.product-image {
	aspect-ratio: 16 / 9;
	overflow: hidden;
}

/* pour limiter en hauteur : pose problème de cadrage / image tronquée */
/*
.product-image {
    flex: 1 1 auto;
    min-height: 180px;
    max-height: 45vh;
    overflow: hidden;
}
*/


.product-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}


.yacht-swiper .swiper-slide-active .product-item {
	box-shadow: 0 20px 40px rgba(0,0,0,0.15);
}

.product-description {
    position: relative;
    max-height: 6.5em;
    overflow: hidden;
    line-height: 1.6;
}

/* pour limiter en hauteur */
/*
.product-description {
    max-height: 6.5em;
    overflow: hidden;
    position: relative;
}
*/

/* Dégradé luxe */
.product-description::after {
    content: "";
    position: absolute;
    bottom: 0;
    right: 0;
    width: 100%;
    height: 2em;
    pointer-events: none;
    background: linear-gradient(to bottom, rgba(255,255,255,0), #fff);
}

/* version pour hauteur réduite */
/*
@media (min-width: 992px) {
    .product-item {
        max-height: 80vh;
    }
}


.product-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
}

.product-body .mt-auto {
    margin-top: auto;
}
*/


/* reservation */
/*.webpublic-index .row.g-4 > [class*="col-"] { display: flex; }*/

.confirm {
	display:none;
}

.agence-infos, .spec-section, .confirm .box {
	box-shadow: 0 4px 15px rgba(0,0,0,0.05);
	background: linear-gradient(135deg, #fff9db 0%, #ffffff 60%);
}


.info-grid {
	display: grid;
	gap: 0px 15px;
	align-items: center;
}

.contrat-grid { grid-template-columns: 50% 50%; }
.options-grid { grid-template-columns: 1fr auto; }

.info-grid .label {
	font-weight: 600;
	color: #666;
}

.contrat-grid .label { text-align:right; }
.contrat-grid > div:nth-child(2n) {
	text-align: left;
	font-weight: 600;
}

.info-grid > div {
	padding: 6px 0;
	border-bottom: 1px solid #eee;
}

.options-grid .price {
	text-align:right;
	font-weight: 600;
	white-space: nowrap;
}

.options-grid .label {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	cursor: pointer;
}

.options-grid .label input {
	flex: 0 0 auto;
	margin-top: 4px;
}

.options-grid .label label {
	flex: 1;
	margin: 0;
	line-height: 1.3;
}

/* Hover uniquement si PAS sélectionné */
.card-categorie:not(.catisselected):hover {
	transform: translateY(-4px) scale(1.02);
	box-shadow: 0 10px 25px rgba(0,0,0,0.12);
}

.card-categorie .top-title > h2 { color:var(--jaune); }

.card { border-radius:11px; }

/* Sélection */
.podium-item.catisselected,
.card-categorie.catisselected {
	border-width: 2px!important;
}

.card-categorie.catisselected {
	border-color: rgba(var(--bs-success-rgb))!important;
}

/* Animation pulse SANS casser translate */
.card-categorie.catisselected.pulse {
	animation: pulseAnim 1.2s infinite;
}

@keyframes pulseAnim {
	0%   { transform: scale(1.02); }
	50%  { transform: scale(1.05); }
	100% { transform: scale(1.02); }
}

.card-categorie {
	transition: all 0.5s ease;
}

/* Base commune */
.selectedcat {
	align-items: center;
	justify-content: center;
	font-weight: 700;
	border-radius: 50%;
}

/* Version FORM (petite) */
#ReservationIndexForm .selectedcat {
	display:none;
	width: 50px;
	height: 50px;
	font-size: 14px;
	background: #e9ecef;
	color: #333;
	margin:10px auto;
	border: 1px solid var(--bs-gray);
}

/* Version CONFIRM (grosse, visible) */
.confirm-price .selectedcat {
	display: flex;
	width: 80px;
	height: 80px;
	font-size: 32px;
	margin: 0 auto 15px;
	background: radial-gradient(circle at 30% 30%, #ffffff, #ffe082);
	color: #2c2c2c;
	box-shadow: 0 5px 15px rgba(0,0,0,0.15);
}

#modalTitle { color: var(--jaune); }

.podium-item .rank,
#modalTitle .categorie-code,
.card-categorie .categorie-code {
	display:inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	border-radius: 50%;
	width: 30px;
	height: 30px;
	font-size: 14px;
	background: #e9ecef;
	color: #333;
	border: 1px solid var(--bs-gray);
	margin-left:15px;
}


.top-prix-item .categorie-code {
	margin-right:15px;
}

.card-categorie .btn {
	padding: 6px 8px;
	font-size: 13px;
	white-space: nowrap;
}

.confirm .box.confirm-price {
	background: linear-gradient(135deg, #fff3b0 0%, #ffd54f 50%, #ffca28 100%);
	box-shadow: 0 10px 30px rgba(255, 193, 7, 0.4);
	/*border: none !important;*/
	transform: scale(1.02);
}

.confirm-price #totalTTC {
	font-size: 25px;
	font-weight: bold;
	color: #2c2c2c;
	white-space:nowrap;
}

.confirm-row-animate {
	animation: slideInRight 0.6s ease;
}

@keyframes slideInRight {
	from {
		opacity: 0;
		transform: translateX(40px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}

/* formulaires */


.input-radio {
	display: inline-grid;
	grid-template-columns: auto auto;
	gap: 2px 10px;
	align-items: center;
}

.fondsearch .row {
	justify-content: center;
}

.periode {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 10px 15px;
	align-items: center; /* important */
}

.date-block {
	display: flex;
	flex-direction: column;
}

/*
.contact-form .form-control { width:95%; }
form { margin: 10px 0px 0px 0px; }
#FormCommentaires{width:300px;}
.contact-form label { display: block; float:left;width:120px;font-family: 'Roboto', sans-serif;font-weight:normal;font-size:12px;}
form .input { margin: 0px 0px 10px 0px; }
form .text input,
form .password input,
form .tel input,
form .textarea textarea,
form input[type=email]{
	-moz-border-radius:5px;
	-webkit-border-radius:5px;
	border-radius:5px;border: 1px solid #ccc;}
*/
form .error-message { color: #ee4b33; }
/*
form input[type=submit] {
	background-color:#51acd4;
	color:#fff;	
	border:none;
	cursor:pointer;
	
	padding:4px;
	width:77px;
	text-align:center;
	-moz-border-radius:5px;
	-webkit-border-radius:5px;
	border-radius:5px;
	
}

form input[type=submit]:hover{
	background-color:#ccc;
	color:#fff;
}

.contact-form .submit{text-align:left;}
*/
.required > label:after, .radio-label.required:after {
	content: "*";
	color:red;
	margin-left: 5px;
}

.reqtxt:before {
	content: "*";
	color:red;
}
.reqtxt {
	display: block;
	font-style: italic;
	padding-bottom: 12px;
}

#flashMsg {
	position: fixed;
	top: 20px;
	left: 50%;
	transform: translateX(-50%);
}

#flashmessage, .form-success {padding:5px;background-color:#dcff8e;border:1px dotted #4e8d00;}
.error, .notice, .success, .message, .form-success {
	padding: .8em;
	margin: 1em auto 1em auto;
	border: 3px solid #00A7D0;
	max-width: 500px;
	border-radius: 10px;
}
#flashMessage.error, .error { background: #e95f73; color: var(--bs-white); }
#flashMessage.notice, .notice, .message { background: #FFF6BF; color: #817134; }
#flashMessage.success, .success { background: #CDDF86; color: #529214; }
.error a { color: #D12F19; }
.notice a, .message a { color: #817134; }
.success a { color: #529214; }

/* liste de boutons en ligne */
.btn-links{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
	list-style:none;
	padding:0;
	margin:0;
}

.btn-links li{
	flex:1 1 200px;
}

.btn-links .btn{
	width:100%;
}

.node-body blockquote {
	font-size: 18px;
	font-weight: 600;
}

/* identification */
#admin-login {
	width: 300px;
	margin: 15px auto;
}

#admin-login .input-group { margin-bottom:15px; }

.input-group-addon {
	border-radius: 10px 0px 0px 10px;
	background: #d7d1d1;
	padding: 8px;
}

/* switcher téléphone */
#phoneMain {
	display: inline-block;
	color: var(--jaune);
	font-family: 'Oswald', sans-serif;
	line-height: 1.1;
	min-width: 160px;
}

#phoneCity {
	font-size: 16px;
	padding-bottom:5px;
	opacity: 0.8;
	color:var(--bs-white);
}

#phoneNumber {
	font-size: 20px;
}

.phone-highlight {
	color:var(--bs-white);
}

#phoneLeft {
	color: var(--jaune);
}

.sticky-top #phoneMain,
.sticky-top #phoneCity,
.sticky-top #phoneLeft,
.sticky-top .phone-highlight {
	color: var(--bs-dark);
}

/* modale des infos véhicules par categorie */
#modalInfosCat .modal-dialog {
	max-width: 800px;
}

#modalInfosCat .modal-content {
	height: calc(100vh - 40px);
}

#modalInfosCat .modal-body {
	overflow-y: auto;
}

#modalSpecs h5 {
	border-bottom: 2px solid #eee;
	padding-bottom: 5px;
	margin-bottom: 10px;
}

#modalSpecs .list-group-item {
	font-size: 14px;
}

.modal-hero {
	height: 300px;
	overflow: hidden;
}

.modal-hero img {
	object-fit: cover;
	height: 100%;
	width:100%;
	object-position: center;
	display: block;
}

.modal-hero-overlay {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	padding: 15px;
	color: #fff;
	background: linear-gradient(to top, rgba(0,0,0,0.7), transparent);
}

.spec-box {
	background: #f8f9fa;
	border-radius: 10px;
	padding: 10px;
}

.spec-box .value {
	font-weight: bold;
	font-size: 18px;
}

.spec-box .label {
	font-size: 12px;
	color: #666;
}

.section-title {
	font-weight: 600;
	margin-bottom: 10px;
}

.spec-item {
	display: flex;
	justify-content: space-between;
	padding: 6px 0;
	border-bottom: 1px dashed #eee;
}

.spec-item .icon i {
	font-size: 20px;
	color: #0d6efd;
	margin-right: 8px;
}

[class^="specsclass-"] {
	opacity: 0.9;
}

.specsclass-energie { color: #198754; }   /* vert */
.specsclass-co2 { color: #6c757d; }       /* gris */
.specsclass-boite { color: #0d6efd; }     /* bleu */
.specsclass-conso { color: #fd7e14; }     /* orange */
.specsclass-poids { color: #6f42c1; }     /* violet */
.specsclass-places { color: #20c997; }    /* teal */
.specsclass-portes { color: #adb5bd; }    /* gris clair */

.spec-item .label {
	flex: 1;
	color: #555;
}

.spec-item .value {
	font-weight: 500;
}

.modal-content {
	border-radius: 15px;
}

.modal-body {
	padding: 20px;
}

/* top 3 meilleurs prix */
/* colonne */
/*
.col-lg-3 {
	position: relative;
}
*/

/* wrapper */
.sticky-wrapper {
	position: sticky;
	top: 120px;
}

/* bloc */
.block-resatopprix {
	width: 100%;
}

/* STICKY DESKTOP UNIQUEMENT */
@media (min-width: 992px) {
	.block-resatopprix {
		position: sticky;
		top: 120px;
	}
}

/* MOBILE → normal */
@media (max-width: 991px) {
	.block-resatopprix {
		position: static;
		margin-top: 20px;
	}
}

/* PODIUM */
.block-resatopprix .podium {
	display: flex;
	flex-direction: column;
	gap: 12px;
	/*padding:15px;*/
}

.block-resatopprix > h3 { text-align:center; }

/* ITEM */
.podium-item {
	/*position:relative;*/
	display: flex;
	flex-direction: column;
	align-items: center;
	/*justify-content: center;*/
	padding: 8px;
	border-radius: 10px;
	cursor: pointer;
	transition: all 0.2s ease;
	background: #fff;
	box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}


.podium-item .categorie-code {
	/* margin: 5px 0; */
	width: 45px;
	height: 45px;
	font-size: 32px;
	margin: 0 auto 10px;
	background: radial-gradient(circle at 30% 30%, #ffffff, #ffe082);
	color: #2c2c2c;
	box-shadow: 0 5px 15px rgba(0, 0, 0, 0.15);
	display: flex;
	border-radius: 50%;
	align-items: center;
	justify-content: center;
	font-weight: 700;
}


.podium-item:hover {
	transform: translateY(-3px);
	box-shadow: 0 8px 20px rgba(0,0,0,0.15);
}

/* RANK */
.rank {
	font-size: 22px;
	font-weight: bold;
	position:absolute;
	left:10px;
}

/* NOM */
.cat-name {
	font-weight: 600;
	margin-bottom: 5px;
}

/* CODE */
.categorie-code {
	margin: 5px 0;
}

/* PRIX */
.price {
	font-size: 22px;
	font-weight: bold;
}

/* 🥇 FIRST */
.podium-item.first {
	background: linear-gradient(135deg, #fff3b0 0%, #ffd54f 50%, #ffca28 100%);
	box-shadow: 0 10px 30px rgba(255, 193, 7, 0.4);
}

/* 🥈 SECOND */
.podium-item.second {
	background: linear-gradient(135deg, #f1f3f5 0%, #dee2e6 50%, #6f757b 100%);
	box-shadow: 0 10px 25px rgba(108, 117, 125, 0.5);
}

/* 🥉 THIRD */
.podium-item.third {
	background: linear-gradient(135deg, #f8e1d4 0%, #d7a86e 50%, #c68642 100%);
	box-shadow: 0 10px 25px rgba(160, 100, 50, 0.3);
}

/* SELECTION = cohérence cards */

.podium-item.pulse {
	animation: pulse 1s infinite;
}

.eco {
	margin-top: 8px;
	font-size: 14px;
	font-weight: 600;
	color: #198754;
}

/* pages agences */
.agence-infos i {
	min-width: 24px;
}

.agence-infos a {
	text-decoration: none;
}

.agence-infos a:hover {
	text-decoration: underline;
}

/******** pages vehicule vente ********/
/* ===== GRID GLOBAL ===== */
.vehicle-grid {
	display: grid;
	width: 100%;
}

.vehicle-grid .border {
	border-width:3px!important;
}

/* ===== CAS 3 PHOTOS ===== */
.photos-3 .vehicle-grid {
	grid-template-columns: 2fr 1fr;
	grid-template-rows: 1fr 1fr;
	aspect-ratio: 16 / 9;
}

.photos-3 .hero-main {
	grid-column: 1;
	grid-row: 1 / 3;
}

.photos-3 .hero-top {
	grid-column: 2;
	grid-row: 1;
}

.photos-3 .hero-bottom {
	grid-column: 2;
	grid-row: 2;
}

/* ===== CAS 2 PHOTOS ===== */
.photos-2 .vehicle-grid {
	grid-template-columns: 2fr 1fr;
	grid-template-rows: 1fr;
	aspect-ratio: 16 / 9;
}

.photos-2 .hero-main {
	grid-column: 1;
	grid-row: 1;
}

.photos-2 .hero-top {
	grid-column: 2;
	grid-row: 1;
}

.photos-2 .hero-bottom {
	display: none;
}

/* ===== CAS 1 PHOTO ===== */
.photos-1 .vehicle-grid {
	grid-template-columns: 1fr;
	grid-template-rows: 1fr;
	aspect-ratio: 21 / 9; /* 🔥 important */
}

.photos-1 .hero-main {
	grid-column: 1;
	grid-row: 1;
}

/* ===== IMAGES ===== */
.vehicle-grid .img-cover {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

/* Ajustement cadrage auto (optionnel mais recommandé) */
.photos-1 .img-cover {
	object-position: 50% 40%;
}

/* ===== BOUTON ===== */
.hero-btn {
	position: absolute;
	bottom: 65px;
	right: 15px;
}

/* ===== MOBILE ===== */
@media (max-width: 767px) {
	.vehicle-grid {
		grid-template-columns: 1fr !important;
		grid-template-rows: auto !important;
		aspect-ratio: auto !important;
	}

	.hero-main,
	.hero-top,
	.hero-bottom {
		height: 250px;
	}
}

.resumevente {
	position: relative;
	/*width: 100%;*/
	background: rgba(255,255,255,0.8);
	border-radius: 10px;
	padding: 20px;
}

.resumeprix { color: var(--bs-success); }