/*
 Theme Name:   Template CPL 4
 Theme URI:    https://www.commparlimage.ca/
 Description:  Thème en développement
 Author:       Jordan Ouellet
 Author URI:   https://www.commparlimage.ca
 Template:     blankslate
 Version:      1.0.0
 Text Domain:  templatecpl
*/

/********************************************************************************************************************/

html{
	font-size: 16px;
	font-family: 'Rubik', sans-serif;
	font-weight: 300;
	line-height: 1.2;
}

html, body, address, blockquote, div, dl, form, h1, h2, h3, h4, h5, h6, ol, p, pre, table, ul,
dd, dt, li, tbody, td, tfoot, th, thead, tr, del, ins, map, object,
a, abbr, acronym, b, bdo, big, br, cite, code, dfn, em, i, img, kbd, q, samp, small, span,
strong, sub, sup, tt, var, legend, fieldset {
	margin: 0;
	padding: 0;
	text-decoration: none; 
}

img, fieldset {
	border: 0;
}

/* set image max width to 100% */
img {
	max-width: 100%;
	height: auto;
	width: auto\9; /* ie8 */
}

/* set html5 elements to block */
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { 
    display: block;
    display: block;
}

ul li {
	list-style-type: none;
}


#human{display:none !important;}


html, body {
	width: 100%;
	height: 100%;
	scroll-behavior: smooth;
}

body {
	background: var(--body-color);
	overflow-x: clip;
}

h1, h2, h3, h4 {
	font-family: 'Noto Serif';
	font-weight: 600;
}

p {
	line-height: 1.5;
}

main h1, main h2, main h3, main h4, main p {
	color: var(--text-color);
}

hr {
	all: unset;
	display: block;
	position: relative;
	max-width: 55%;
	border: 1px solid var(--secondary-color);
	margin: 1rem auto;
	opacity: .5;
}

hr::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	translate: 0 -50%;
	width: 8px;
	height: 8px;
	background: var(--secondary-color);
	border-radius: 50%;
	border: 5px solid var(--card-color);
	margin: auto;
}

main {
	overflow-x: clip;
}

/* INITIALISATION ***************************************************************************************************/

.table{display:table;}
.container{display:flex;}
.grid{display:grid;}

/********************************************************************************************************************/
/* ELEMENT CLASSES */

.flex-reverse {
	flex-direction: row-reverse;
}

/* 2 Column layout style */

.flex-2 {
	display: flex;
	align-items: center;
	gap: 3.25rem;
}

.flex-2 > * {
	flex-grow: 1;
	min-width: calc(50% - 1.625rem);
}

.flex-2 img {
	border-radius: 40px;
}

.grid-2{
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3rem;
	padding: 2rem 0;
}

/* 3 Column layout style */

.col-3 {
	display: flex;
	flex-wrap: wrap;
	gap: 3rem;
}

.col-3 > * {
	flex: 1 1 calc((100% / 3) - 3rem + (3rem / 3));
}

.col-4 {
	display: flex;
	flex-wrap: wrap;
	gap: 3rem;
}

.col-4 > * {
	flex: 1 1 calc((100% / 4) - 3rem + (3rem / 4));
}

/********************************************************************************************************************/
/* Utility classes */

.wrap	{
	position: relative; 
	margin: 0 auto;
	width: 1280px;
	max-width: 100%;
}

.wrap-lg {
	position: relative; 
	margin: 0 auto;
	width: 85%;
}

body.no-scroll {
	overflow: hidden;
}

.anchor {
	position: relative;
	visibility: hidden;
	top: -150px;
	display: block;
}

#mobile-overlay {
	position: fixed;
	width: 100%;
	height: 100%;
	background-color: #000;
	visibility: hidden;
	opacity: 0;
	z-index: 500;
	transition: visibility .4s, opacity .4s;
}

#mobile-overlay.open {
	visibility: visible;
	opacity: 0.3;
}

.text-center {
	text-align: center;
}

.center {
	display: block;
	margin: auto;
}

.center-block {
	max-width: 70%;
	margin: auto;
}

.space-between {
	justify-content: space-between;
}

.align-center {
	align-items: center;
}

.half-width {
	width: 50%;
}

/********************************************************************************************************************/

.btn-main-cta {
	display: inline-block;
	font-size: 1.2rem;
	font-weight: 400;
	color: var(--btn-text-light);
	text-transform: uppercase;
	background: var(--primary-color);
	padding: 1rem 2rem;
	border: 2px solid rgba(255, 255, 255, .35);
	transition: background .25s, border .25s;
}

.btn-main-cta:hover {
	background: var(--primary-light);
	border: 2px solid transparent;
}

/*===================================*/

.btn-primary {
	display: inline-block;
	font-weight: 400;
	color: var(--btn-text-light);
	text-transform: uppercase;
	background: var(--primary-color);
	padding: 1rem 2rem;
	transition: background .25s;
}

.btn-primary:hover {
	background: var(--primary-light);
}

/*===================================*/

.btn-outline {
	display: inline-block;
	font-weight: 400;
	color: var(--text-color);
	text-transform: uppercase;
	padding: 1rem 2rem;
	border: 2px solid var(--text-color);
	transition: color .25s, background .25s;
}

.btn-outline:hover {
	color: var(--btn-text-light);
	background: var(--text-color);
}

/*===================================*/

.btn-white-outline {
	display: inline-block;
	font-size: 1.2rem;
	font-weight: 400;
	color: #fff;
	text-transform: uppercase;
	padding: 1rem 2rem;
	border: 2px solid #fff;
	transition: color .25s, background .25s;
}

.btn-white-outline:hover {
	color: var(--text-color);
	background: #fff;
}

/*===================================*/

.btn-arrow {
	display: flex;
	gap: .5rem;
	font-weight: 400;
	color: var(--text-color);
	text-transform: uppercase;
	opacity: .5;
	transition: opacity .25s;
}

.btn-arrow:hover {
	opacity: 1;
}

.btn-arrow::after {
	content: '';
	width: 1rem;
	height: 1rem;
	background: currentColor;
	-webkit-mask: url(img/icons/arrow-long.svg) no-repeat center center/contain;
	mask: url(img/icons/arrow-long.svg) no-repeat center center/contain;
}

/*===================================*/

.text-block > h2 {
	font-size: 2rem;
	margin-bottom: 1.5rem;
}

.text-block > h2 span {
	font-style: italic;
	font-weight: 400;
	background: linear-gradient(transparent 60%, var(--accent-color) 60%) no-repeat .5rem center;
	padding-right: .5rem;
}

.text-block > p:not(:first-child) {
	margin-top: 1rem;
}

.text-block > ul {
	color: var(--text-color);
	padding-left: 3rem;
	margin: 1.25rem 0;
}

.text-block > ul > li {
	list-style-type: disc;
	color: var(--text-color);
}

.text-block > ul > li:not(:last-child) {
	margin-bottom: .85rem;
}

.text-block > ul > li::marker {
	color: var(--secondary-color);
}

.text-block > p + .btn {
	margin-top: 2rem;
}

.wrap:not(.split-section, .split-even) > .text-block:has(+ *) {
	margin-bottom: 4rem;
}

/*===================================*/

.split-section {
	display: flex;
	gap: 3rem;
	align-items: center;
}

.split-section .section-media {
	position: relative;
/*	flex: 0 1 55%;*/
	max-width: 55%;
}

.split-section .text-block {
	flex: 1 1 0;
}

.split-section .section-media img {
	display: block;
}

/*===================================*/

.split-even {
	display: flex;
	flex-wrap: wrap;
	gap: 3rem;
}

.split-even > * {
	flex: 1 0 calc((100% / 2) - 3rem + (3rem / 2));
	min-width: 0;
}

/*===================================*/

.section-media.circle-deco-1::before {
	content: '';
	position: absolute;
	top: 50%;
	translate: 0 -50%;
	width: auto;
	height: 90%;
	aspect-ratio: 1;
	background: var(--secondary-color);
	-webkit-mask: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' class='ring' viewBox='0 0 200 200' aria-hidden='true'%3e%3ccircle cx='100' cy='100' r='100' fill='none' stroke='black' stroke-width='2' stroke-dasharray='6 10' /%3e%3c/svg%3e") no-repeat center center/contain;
	mask: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' class='ring' viewBox='0 0 200 200' aria-hidden='true'%3e%3ccircle cx='100' cy='100' r='100' fill='none' stroke='black' stroke-width='2' stroke-dasharray='6 10' /%3e%3c/svg%3e") no-repeat center center/contain;
	border-radius: 50%;
	pointer-events: none;
	animation: spin 45s linear infinite;
	z-index: -1;
}

.section-media.circle-deco-1::after {
	content: '';
	position: absolute;
	top: 50%;
	translate: 0 -50%;
	width: auto;
	height: 75%;
	aspect-ratio: 1;
	border: 2px solid var(--secondary-color);
	border-radius: 50%;
	pointer-events: none;
	z-index: -1;
}

.section-media.circle-deco-2::before {
	content: '';
	position: absolute;
	top: 50%;
	translate: 0 -50%;
	width: auto;
	height: 90%;
	aspect-ratio: 1;
	background: var(--secondary-color);
	-webkit-mask: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' class='ring' viewBox='0 0 200 200' aria-hidden='true'%3e%3ccircle cx='100' cy='100' r='100' fill='none' stroke='black' stroke-width='3' stroke-dasharray='25 10' /%3e%3c/svg%3e") no-repeat center center/contain;
	mask: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' class='ring' viewBox='0 0 200 200' aria-hidden='true'%3e%3ccircle cx='100' cy='100' r='100' fill='none' stroke='black' stroke-width='3' stroke-dasharray='25 10' /%3e%3c/svg%3e") no-repeat center center/contain;
	border-radius: 50%;
	pointer-events: none;
	animation: spin 45s linear infinite;
	z-index: -1;
}

.section-media.circle-deco-2::after {
	content: '';
	position: absolute;
	top: 50%;
	translate: 0 -50%;
	width: auto;
	height: 75%;
	aspect-ratio: 1;
	background: var(--secondary-color);
	-webkit-mask: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' class='ring' viewBox='0 0 200 200' aria-hidden='true'%3e%3ccircle cx='100' cy='100' r='100' fill='none' stroke='black' stroke-width='2' stroke-dasharray='6 10' /%3e%3c/svg%3e") no-repeat center center/contain;
	mask: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' class='ring' viewBox='0 0 200 200' aria-hidden='true'%3e%3ccircle cx='100' cy='100' r='100' fill='none' stroke='black' stroke-width='2' stroke-dasharray='6 10' /%3e%3c/svg%3e") no-repeat center center/contain;
	border-radius: 50%;
	pointer-events: none;
	animation: spinReverse 45s linear infinite;
	z-index: -1;
}

@keyframes spin {

    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

@keyframes spinReverse {

    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(-360deg);
    }
}

.circle-deco-1.deco-left::before {
	left: -12%;
}

.circle-deco-1.deco-left::after {
	left: -8%;
}

.circle-deco-1.deco-right::before {
	right: -12%;
}

.circle-deco-1.deco-right::after {
	right: -8%;
}

.circle-deco-2.deco-left::before {
	left: -20%;
}

.circle-deco-2.deco-left::after {
	left: -10%;
}

.circle-deco-2.deco-right::before {
	right: -20%;
}

.circle-deco-2.deco-right::after {
	right: -10%;
}

/*===================================*/

.card {
	position: relative;
	text-align: center;
	background: var(--card-color);
	padding: 3rem 2rem;
	box-sizing: border-box;
	border-radius: 15px;
}

.card::before {
	content: '';
	position: absolute;
	inset: 0;
	bottom: -10px;
	background: var(--bg-color-1);
	border-radius: inherit;
	box-shadow: 0 3px 4px 2px #0000000d;
	z-index: -1;
}

.card:has(> .card-number) {
	margin-top: 3rem;
}

.card:has(> .card-number):not(:last-child)::after {
	content: '';
	position: absolute;
	top: 12%;
	left: 98%;
	width: 4rem;
	height: 4rem;
	background: var(--primary-color);
	-webkit-mask: url(img/icons/curved-thin-arrow.svg) no-repeat center center/contain;
	mask: url(img/icons/curved-thin-arrow.svg) no-repeat center center/contain;
	opacity: .5;
	transform: rotate(40deg);
	z-index: 5;
}

.card .card-number {
	position: absolute;
	top: -3rem;
	left: 0;
	right: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: 'Noro Serif';
	font-size: 3rem;
	width: 1.5em;
	aspect-ratio: 1;
	color: color-mix(in srgb, var(--text-color) 60%, white);
	background: var(--bg-color-1);
	border: 8px solid #fff;
	border-radius: 50%;
	box-shadow: 0 3px 4px 2px #0000000d;
	margin: auto;
}

.card .card-number + .card-title {
	margin-top: 1rem;
}

.card .card-title {
	font-size: 1.5rem;
	font-weight: 400;
}

/*===================================*/

.image-card .card-content {
	position: relative;
	width: 90%;
	text-align: center;
	background: var(--card-color);
	padding: 1.5rem 2rem 2.5rem;
	box-sizing: border-box;
	margin: -20% auto 0;
	box-shadow: 0 3px 4px 2px #0000000d;
}

.image-card .card-content h3 {
	font-size: 1.35rem;
}

.image-card .card-content a {
	margin-top: 1.5rem;
}

/*===================================*/

.simple-card {
	position: relative;
	background: var(--card-color);
	padding: 3rem;
	box-sizing: border-box;
	box-shadow: 0 3px 4px 2px #0000000d;
}

.simple-card::before {
	content: '';
	position: absolute;
	inset: 0;
	background: transparent;
	border: 1px solid var(--primary-color);
	margin: 1rem;
	pointer-events: none;
}

.simple-card h3 {
	font-size: 1.5rem;
}

/*===================================*/

.icon-block .icon {
	display: inline-block;
	width: 4rem;
	height: 4rem;
	background: var(--secondary-color);
	-webkit-mask: var(--icon) no-repeat center center/contain;
	mask: var(--icon) no-repeat center center/contain;
}

.icon-block h3 {
	font-size: 1.25rem;
	font-weight: 400;
	margin: .5rem 0;
}

.icon-block p {
	margin-top: .85rem;
}

/*===================================*/

.accordion {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.accordion-item {
	border: 1px solid var(--primary-color);
	transition: background .25s;
}

.accordion-item:hover,
.accordion-item.open {
	background: var(--primary-color);
}

.accordion-item .accordion-title {
	all: unset;
	display: flex;
	align-items: center;
	gap: 1rem;
	width: 100%;
	font-family: 'Noto Serif';
	font-size: 1.25rem;
	font-weight: 400;
	color: var(--primary-color);
	padding: 1rem;
	box-sizing: border-box;
	cursor: pointer;
	transition: color .25s, background .25s;
}

.accordion-item:hover .accordion-title,
.accordion-item.open .accordion-title  {
	color: var(--btn-text-light);
}

/*.accordion-item .accordion-title::before {
	content: '+';
	font-size: 3rem;
	font-weight: 300;
	line-height: 0;
	flex-shrink: 0;
}*/

.accordion-item .accordion-title .open-icon {
	position: relative;
	width: 1.25rem;
	height: 1.25rem;
}

.accordion-item .accordion-title .open-icon::before {
	content: '';
	position: absolute;
	inset: 0;
	width: 100%;
	height: 2px;
	background: currentColor;
	margin: auto;
	transition: opacity .15s, transform .25s;
}

.accordion-item.open .accordion-title .open-icon::before {
	opacity: 0;
	transform: rotate(90deg);
}

.accordion-item .accordion-title .open-icon::after {
	content: '';
	position: absolute;
	inset: 0;
	width: 2px;
	height: 100%;
	background: currentColor;
	margin: auto;
	transition: transform .25s;
}

.accordion-item.open .accordion-title .open-icon::after {
	transform: rotate(90deg);
}

.accordion-item .accordion-content {
	display: none;
	padding: 0 2rem 1rem 3.25rem;
}

.accordion-item .accordion-content > * {
	color: var(--btn-text-light);
}

/*===================================*/

.full-width-banner {
	position: relative;
	min-height: 500px;
	background: var(--bg-image) no-repeat center center/cover;
}

.full-width-banner::before {
	content: '';
	position: absolute;
	inset: 0;
	background: #000;
	opacity: .35;
}

.full-width-banner .container {
	display: flex;
	flex-direction: column;
	gap: 2rem;
	min-height: inherit;
	padding: 5rem 0;
	box-sizing: border-box;
}

.full-width-banner .container > * {
	max-width: 45%;
}

.full-width-banner h2 {
	font-size: 3rem;
	color: #fff;
}

.full-width-banner.x-left .container {
	align-items: flex-start;
}

.full-width-banner.x-center .container {
	align-items: center;
	text-align: center;
}

.full-width-banner.x-right .container {
	align-items: flex-end;
	text-align: right;
}

.full-width-banner.y-top .container {
	justify-content: flex-start;
}

.full-width-banner.y-center .container {
	justify-content: center;

}

.full-width-banner.y-bottom .container {
	justify-content: flex-end;
}

/*===================================*/

.gallery-container {
	display: flex;
	justify-content: center;
	gap: 1.5rem;
	flex-wrap: wrap;
}

.gallery-container .gallery-item {
	position: relative;
	width: calc((100% / 4) - 1.5rem + (1.5rem / 4));
	background: #000;
}

.gallery-container .gallery-item::after {
	content: '';
	position: absolute;
	inset: 0;
	width: 4rem;
	height: 4rem;
	background: #fff;
	-webkit-mask: url(img/icons/plus-circle.svg) no-repeat center center/contain;
	mask: url(img/icons/plus-circle.svg) no-repeat center center/contain;
	opacity: 0;
	margin: auto;
	transition: opacity .25s;
}

.gallery-container .gallery-item:hover::after {
	opacity: 1;
	transition-delay: .15s;
}

.gallery-container .gallery-thumbnail {
	display: block;
	width: 100%;
	aspect-ratio: 4/3;
	object-fit: cover;
	transition: opacity .4s;
}

.gallery-container .gallery-item:hover .gallery-thumbnail {
	opacity: .5;
}

.gallery-container .gallery-count {
	position: absolute;
	right: .5rem;
	bottom: .5rem;
	display: flex;
	align-items: center;
	gap: .5rem;
	font-size: 1.25rem;
	color: #fff;
	opacity: 0;
	transform: translateX(10px);
	transition: opacity .25s, transform .25s;
}

.gallery-container .gallery-count::before {
	content: '';
	width: 1.5rem;
	height: 1.5rem;
	background: currentColor;
	-webkit-mask: url(img/icons/photo-gallery.svg) no-repeat center center/contain;
	mask: url(img/icons/photo-gallery.svg) no-repeat center center/contain;
}

.gallery-container .gallery-item:hover .gallery-count {
	opacity: 1;
	transform: translateX(0);
	transition-delay: .35s;
}

.gallery-container .gallery-hidden {
	display: none;
}

/*===================================*/

.blog-card {
	box-shadow: 0 3px 4px 2px #0000000d;
}

.blog-card .blog-card-top {
	position: relative;
}

.blog-card .blog-card-top .blog-card-image img {
	display: block;
	width: 100%;
	aspect-ratio: 4/3;
	object-fit: cover;
}

.blog-card .blog-card-meta {
	position: absolute;
	left: 0;
	bottom: 0;
	display: flex;
	align-items: center;
	gap: .75rem;
	background: #fff;
	padding: .75rem 1rem 0;
}

.blog-card .blog-card-meta > * {
	opacity: .5;
}

.blog-card .blog-card-meta .pipe-divider {
	content: '';
	width: 1px;
	height: 12px;
	background: var(--text-color);
	opacity: 1;
}

.blog-card .blog-card-meta a {
	color: var(--text-color);
	transition: opacity .25s;
}

.blog-card .blog-card-meta a:hover {
	opacity: 1;
}

.blog-card .blog-card-main {
	display: flex;
	flex-direction: column;
	background: #fff;
	padding: 1.5rem 1rem;
}

.blog-card .blog-card-title {
	font-size: 1.5rem;
	margin-bottom: 1.5rem;
}

.blog-card .btn-arrow {
	align-self: flex-end;
}

/*===================================*/

.testimonial-container {
	position: relative;
	color: var(--text-color);
	text-align: center;
	background: var(--bg-color-1);
	padding: 2.5rem;
	box-sizing: border-box;
}

.testimonial-container::before {
	content: '“';
    display: inline-block;
    font-family: 'Noto Serif', serif;
    font-size: 10rem;
    font-weight: 700;
    opacity: .65;
    line-height: .5;
    vertical-align: top;
    margin-top: 1rem;
}

.testimonial-container .testimonial-slider {
	width: 75%;
}

.testimonial-message {
	font-size: 1.5rem;
}

.testimonial-name {
	font-size: 1.25rem;
	font-weight: 600;
	margin-top: 3rem;
}

.testimonial-company {
	font-size: 1.25rem;
	font-weight: 400;
}

.testimonial-container .slider-arrow {
	all: unset;
	display: block;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 3rem;
	height: 3rem;
	background: currentColor;
	-webkit-mask: url(img/icons/arrow-short-circle.svg) no-repeat center center/contain;
	mask: url(img/icons/arrow-short-circle.svg) no-repeat center center/contain;
	opacity: .3;
	transition: opacity .25s;
}

.testimonial-container .slider-arrow:hover {
	opacity: .65;
}

.testimonial-container .slider-arrow-prev {
	left: 2rem;
	transform: scaleX(-1) translateY(-50%);
}

.testimonial-container .slider-arrow-next {
	right: 2rem;
}

/*===================================*/

#main-form {
	background: var(--card-color);
	padding: 3rem;
	box-sizing: border-box;
	box-shadow: 0 3px 4px 2px #0000000d;
}

/*#main-form form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.5rem;
	padding: .75rem;
}

#main-form form .form-field {
	grid-column: 1/-1;
}

#main-form form .form-field.half {
	grid-column: span 1;
}*/

#main-form .gform_heading {
	display: none;
}

#main-form .gform_fields {
	row-gap: 1.5rem;
}

#main-form form .gfield_label {
	color: var(--text-color);
	font-size: 1rem;
	font-weight: 400;
	opacity: .5;
}

#main-form form input,
#main-form form select,
#main-form form textarea {
	appearance: none;
	font-family: 'Rubik';
	width: 100%;
	padding: .75rem;
	border: 1px solid color-mix(in srgb, var(--body-color), 10% #000);
	margin-top: .5rem;
	box-sizing: border-box;
}

#main-form form input:focus,
#main-form form select:focus,
#main-form form textarea:focus {
	outline: none;
	border: 1px solid var(--primary-color);
}

#main-form form label:has(+ .ginput_container input:focus, + .ginput_container select:focus, + .ginput_container textarea:focus) {
	color: var(--primary-color);
	opacity: 1;
}

#main-form form button[type=submit] {
	width: max-content;
	display: inline-block;
	font-family: 'Rubik';
	font-size: 1rem;
	font-weight: 400;
	color: var(--btn-text-light);
	text-transform: uppercase;
	background: var(--primary-color);
	padding: 1rem 2rem;
	border: none;
	cursor: pointer;
	transition: background .25s;
}

#main-form form button[type=submit]:hover {
	background: var(--primary-light);
}

/*===================================*/

.cta-banner {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 500px;
	color: #fff;
	background: var(--banner-bg) no-repeat center center/cover;
	padding: 8rem 4rem 4rem;
	box-sizing: border-box;
}

.cta-banner::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #000;
	opacity: .35;
}

.cta-banner h2 {
	max-width: 600px;
	font-size: 3rem;
	color: #fff;
	margin-bottom: 1rem;
}

.cta-banner p {
	max-width: 500px;
	font-size: 1.5rem;
	color: #fff;
	margin-bottom: 1.5rem;
}

/*===================================*/

.grid-container {
	display: flex;
	align-items: flex-start;
	gap: 1.5rem;
}

/*===================================*/

.sidebar {
	position: sticky;
	width: 300px;
	max-width: 33%;
	flex-shrink: 0;
}

/*===================================*/

.sidebar-block {
	background: #fff;
	padding: 3rem;
	box-sizing: border-box;
}

.sidebar-block > a {
	all: unset;
	position: relative;
	font-size: 1.25rem;
	cursor: pointer;
	transition: color .25s;
}

.sidebar-block > a:hover {
	color: var(--secondary-color);
}

.sidebar-block > a.active {
	display: flex;
	align-items: center;
	gap: .75rem;
	font-weight: 500;
}

.sidebar-block > a.active::after {
	content: '';
	width: .5rem;
	height: .5rem;
	background: var(--secondary-color);
	border-radius: 50%;
}

/********************************************************************************************************************/

#navbar {
	position: fixed;
	width: 100%;
	z-index: 1000;
	top: 0;
/*	background: linear-gradient(to top, var(--navbar-color) 50%, transparent 50%) no-repeat center top/200% 200%;*/
	transition: background-position .35s, box-shadow .35s, padding .35s;
}

#navbar .navbar-bg {
	position: absolute;
	top: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

#navbar .navbar-bg::before {
	content: '';
	position: absolute;
	inset: 0;
	background: var(--navbar-color);
	transform: translateY(100%);
	transition: transform .35s ease;
	z-index: -1;
}

#navbar.mobile-menu-open .navbar-bg::before {
	background: #fff;
}

/*===================================*/

#navbar .container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
}

#navbar .logo {

	position: relative;
	width: 180px;
	height: 100px;
	display: flex;
	align-items: center;
	justify-content: center;
	top:-15px;

}

#navbar .logo img {

	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;

}

#navbar .logo .logo-top {
	transition: opacity .5s, transform .5s;
}

#navbar .logo .logo-scrolled {
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
	transform: translateY(-100%);
	transition: opacity .5s, transform .5s;
}

#navbar .menu {
	display: flex;
	align-items: center;
	gap: 2rem;
}

#navbar .menu li > a {
	color: transparent;
	font-weight: 400;
	opacity: .75;
	background: linear-gradient(to top, var(--text-color) 50%, #fff 50%) no-repeat center top/200% 200%;
	background-clip: text;
	transition: opacity .25s, background-position .35s;
}

#navbar .menu li > a:hover,
#navbar .menu > li.menu-item-has-children:hover > a {
	opacity: 1;
}

#navbar .menu > li.menu-item-has-children {
	position: relative;
}

#navbar .menu > li.menu-item-has-children > a {
	display: flex;
	align-items: center;
	gap: .5rem;
}

#navbar .menu > li.menu-item-has-children > a::after {
	content: '';
	display: block;
	width: .55rem;
	height: .55rem;
	background: #fff;
	-webkit-mask: url(img/icons/caret-down-icon.svg) no-repeat center center/contain;
	mask: url(img/icons/caret-down-icon.svg) no-repeat center center/contain;
	transition: background .3s;
}

#navbar .menu .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	width: max-content;
	opacity: 0;
	visibility: hidden;
	transform: translateY(20px);
	pointer-events: none;
	transition: transform .3s, opacity .3s, visibility .3s;
}

#navbar .menu .sub-menu::before {
	display: block;
	content: '';
	width: 100%;
	height: 1rem;
}

#navbar .menu .sub-menu::after {
	content: '';
	display: block;
	position: absolute;
	bottom: 0;
	width: 100%;
	height: calc(100% - 1rem);
	box-shadow: 0 2px 3px #00000033;
	z-index: -1;
}

#navbar .menu .sub-menu > li {
	background: #fff;
}

#navbar .menu .sub-menu > li > a {
	display: block;
	color: var(--text-color);
	padding: .75rem 1rem;
	box-sizing: border-box;
	transition: color .3s, background .3s, border .3s;
}

#navbar .menu > li.menu-item-has-children:hover .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	pointer-events: auto;
}

#navbar .menu li.btn-nav-cta > a {
	color: #fff;
	background: transparent;
	padding: .65rem .85rem;
	border: 2px solid #fff;
	transition: opacity .25s, color .25s, background .25s, border .25s;
}

#navbar .menu li.btn-nav-cta > a:hover {
	color: var(--text-color);
	background: #fff;
}

#navbar #menu-btn {
	all: unset;
	display: none;
	width: 3rem;
	height: 3rem;
	background: #fff;
	-webkit-mask: url(img/icons/menu.svg) no-repeat center center/contain;
	mask: url(img/icons/menu.svg) no-repeat center center/contain;
	opacity: .65;
	cursor: pointer;
	transition: background .25s, opacity .25s;
}

#navbar #menu-btn:hover {
	opacity: 1;
}

#navbar #menu-btn.close-btn {
	-webkit-mask: url(img/icons/close.svg) no-repeat center center/80%;
	mask: url(img/icons/close.svg) no-repeat center center/80%;
}

/*===================================*/

#navbar.scrolled{
/*	background-position: bottom;*/
	box-shadow: 0px 3px 8px 3px #0000001a;
}

#navbar.scrolled .navbar-bg::before {
	transform: translateY(0);
}

#navbar.scrolled .logo .logo-top {
	opacity: 0;
	transform: translateY(100%);
}

#navbar.scrolled .logo .logo-scrolled {
	opacity: 1;
	transform: translateY(0);
}

#navbar.scrolled .menu li > a {
	background-position: bottom;
}

#navbar.scrolled .menu > li.menu-item-has-children > a::after {
	background: var(--text-color);
}

#navbar.scrolled .menu li.btn-nav-cta > a {
	color: #fff;
	background: var(--secondary-color);
	border: 2px solid var(--secondary-color);
}

#navbar.scrolled #menu-btn {
	background: var(--text-color);
}

/*===================================*/

#navbar.no-hero .navbar-bg::before {
	transform: translateY(0);
}

#navbar.no-hero .logo .logo-top {
	opacity: 0;
	transform: translateY(100%);
}

#navbar.no-hero .logo .logo-scrolled {
	opacity: 1;
	transform: translateY(0);
}

#navbar.no-hero .menu li > a {
	background-position: bottom;
}

#navbar.no-hero .menu > li.menu-item-has-children > a::after {
	background: var(--text-color);
}

#navbar.no-hero .menu li.btn-nav-cta > a {
	color: #fff;
	background: var(--secondary-color);
	border: 2px solid var(--secondary-color);
}

#navbar.no-hero #menu-btn {
	background: var(--text-color);
}

/* =========================================================

   NAVBAR - UTILITY BAR

========================================================= */

.navbar-utility {
    position: absolute;
    z-index: 3;
    top: 0;
    left: 0;
    width: 100%;
    height: 32px;
    border-bottom: 1px solid rgba(255, 255, 255, .15);
}

.navbar-utility > .container {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    height: 100%;
}

.navbar-utility-links {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 1rem;
    height: 100%;
	width:100%;
}

.navbar-account {
    display: flex;
    align-items: center;
    color: #fff;
    font-size: .7rem;
    font-weight: 600;
    line-height: 1;
    text-transform: uppercase;
    transition: opacity .2s;
}

.navbar-account:hover,
.navbar-cart:hover {
    opacity: .7;
}

/* Panier */

.navbar-cart {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 24px;
    height: 24px;
}

.navbar-cart img {
    display: block;
    width: 17px;
    height: 17px;
    object-fit: contain;
    filter: brightness(0) invert(1);
}

.navbar-cart-count {
    position: absolute;
    top: -1px;
    right: -3px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 13px;
    height: 13px;
    border-radius: 7px;
    background-color: var(--primary-color);
    color: #fff;
    font-size: 8px;
    font-weight: 700;
    line-height: 1;
}

/* Utilise l'espace existant du header */

.navbar-main > .container {
    padding-top: 32px;
    box-sizing: border-box;
}

/* =========================================================
   NAVBAR SCROLLÉ / PAGES SANS HERO
========================================================= */

#navbar.scrolled .navbar-utility,
#navbar.no-hero .navbar-utility {
    border-bottom-color: rgba(0, 0, 0, .08);
}
#navbar.scrolled .navbar-account,
#navbar.no-hero .navbar-account {
    color: var(--text-color);
}
#navbar.scrolled .navbar-cart img,
#navbar.no-hero .navbar-cart img {
    filter: none;
}

/********************************************************************************************************************/

#mobile-menu {
	position: fixed;
	top: 0;
	left: 0;
	width: 50%;
	height: 100%;
	background: #fff;
	transform: translateX(-100%);
	z-index: 1200;
	transition: transform 1s;
}

#mobile-menu.open {
	transform: translateX(0);
}

#mobile-menu .logo {
	display: block;
	max-width: 200px;
	margin: 3rem;
}

#mobile-menu .menu a {
	opacity: .65;
	transition: opacity .25s;
}

#mobile-menu .menu a:hover {
	opacity: 1;
}

#mobile-menu .menu > li > a {
	display: flex;
	align-items: center;
	gap: 1rem;
	color: var(--text-color);
	padding: 1rem 3rem;
	border-top: 1px solid #0000001a;
	transition: background .25s;
}

#mobile-menu .menu > li:last-child > a {
	border-bottom: 1px solid #0000001a;
}

#mobile-menu .menu > li > a:hover {
	background: #0000000d;
}

#mobile-menu .menu .sub-menu {
	display: none;
	margin: 1rem 0;
}

#mobile-menu .menu .submenu-toggle {
	all: unset;
	display: block;
	width: .75rem;
	height: .75rem;
	background: currentColor;
	-webkit-mask: url(img/icons/caret-down-icon.svg) no-repeat center center/contain;
	mask: url(img/icons/caret-down-icon.svg) no-repeat center center/contain;
	margin-left: auto;
}

#mobile-menu .menu .sub-menu > li > a {
	display: block;
	color: var(--text-color);
	font-size: .9em;
	padding: .4rem 3rem;
}

/********************************************************************************************************************/
/********************************************************************************************************************/
/********************************************************************************************************************/

#hero-section {
	position: relative;
	height: 850px;
}

#hero-section .hero-slider,
#hero-section .swiper-wrapper,
#hero-section .hero-slide {
	height: 100%;
}

#hero-section .hero-slide {
	position: relative;
	background: var(--hero-image) no-repeat center center/cover;
}

#hero-section .hero-slide::before {
	content: '';
	position: absolute;
	display: block;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #000;
	opacity: .35;
	z-index: 1;
}

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

#hero-section .swiper-pagination {
	bottom: 2rem;
}

#hero-section .swiper-pagination-bullet {
	width: 10px;
	height: 10px;
	background: #fff;
	opacity: .5;
}

#hero-section .swiper-pagination-bullet-active {
	opacity: 1;
}

#hero-section .hero-content {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	height: 100%;
	color: #fff;
	padding-bottom: 5%;
	box-sizing: border-box;
}

#hero-section .hero-content-inner {
	max-width: 55%;
}

#hero-section .hero-content h1 {
	font-size: 3rem;
	margin-bottom: 2rem;
}

#hero-section .hero-content p {
	font-size: 1.5rem;
	margin: 2rem 0;
}

#hero-section .hero-content a {
	margin: 0 1rem 1rem 0;
}

/********************************************************************************************************************/

#home-content > section {
	margin: 8rem 0;
}

/********************************************************************************************************************/

#home-content .section-2 {
	background: var(--bg-color-1);
	padding: 3rem 0 5rem;
}

#home-content .section-2 .text-block {
	margin-bottom: 3rem;
}

#home-content .section-2 .section-2-cta {
	display: flex;
	justify-content: center;
	margin-top: 3.5rem;
}

/********************************************************************************************************************/

#home-content .section-3 .accordion {
	margin-top: 2.5rem;
}

#home-content .section-3 .accordion-cta {
    margin-top: 1.75rem;
}

#home-content .section-3 .accordion-cta .accordion-btn {
    display: inline-block;
    width: auto;
    font-size: .875rem;
    font-weight: 500;
    line-height: 1;
    color: var(--primary-color);
    text-transform: uppercase;
    text-decoration: none;
    background-color: #fff;
    padding: .875rem 1.25rem;
    border: 2px solid #fff;
    transition: color .2s, background-color .2s;
}

#home-content .section-3 .accordion-cta .accordion-btn:hover {
    color: #fff;
    background-color: transparent;
}

/********************************************************************************************************************/

#home-content .section-5 .col-4 {
	max-width: 85%;
	margin: 3rem auto 0;
}

/********************************************************************************************************************/

#home-content .section-6 {
	background-image: linear-gradient(to bottom, var(--bg-color-2) 80%, transparent 50%);
	padding-top: 5rem;
}

#home-content .section-6 .container {
	margin-bottom: 3rem;
}

/********************************************************************************************************************/

#home-content .section-7 .col-3 {
	align-items: flex-start;
	margin-top: 4rem;
}

/********************************************************************************************************************/

#home-content .section-8 {
	margin-bottom: 28rem;
}

#home-content .section-8 > .wrap {
	position: absolute;
	left: 0;
	right: 0;
	top: 50%;
}

#home-content .section-8 .testimonial-container {
	width: 80%;
	margin: auto;
}

/********************************************************************************************************************/

/*#home-content .section-9 {
	margin-bottom: 16rem;
}*/

#home-content .section-9 .split-section {
	display: grid;
	grid-template-columns: 55% 45%;
	align-items: flex-start;
}

#home-content .section-9 .section-media {
	max-width: 100%;
	grid-column: 1;
	grid-row: 1;
}

#home-content .section-9 .section-media img {
	border-radius: 0 10% 0 50%;
}

#home-content .section-9 .contact-form {
	/*position: absolute;
	right: 0;
	width: 55%;
	margin-top: 5rem;*/
	width: 125%;
	grid-column: 2;
	grid-row: 1;
	margin-top: 5rem;
	margin-left: -25%;
	z-index: 2;
}

#home-content .section-9 .circle-deco-1.deco-left::before {
	top: unset;
	translate: unset;
	bottom: -12%;
}

#home-content .section-9 .circle-deco-1.deco-left::after {
	top: unset;
	translate: unset;
	left: -6%;
	bottom: -5%;
}

/********************************************************************************************************************/

#page-hero {
	position: relative;
	min-height: 500px;
	display: flex;
	align-items: flex-end;
	text-align: center;
	background: var(--header-image) no-repeat center center/cover;
}

#page-hero::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #000;
	opacity: .35;
}

#page-hero .wrap {
	height: 100%;
}

#page-hero h1 {
	font-size: 3.75rem;
	color: #fff;
	margin-bottom: 8vh;
}

/*===================================*/

.page-content > section {
	margin: 8rem 0;
}

/********************************************************************************************************************/

#apropos .stat-blocks {
	display: flex;
	gap: 4rem;
	align-items: flex-start;
	margin-top: 2.5rem;
}

#apropos .stat-blocks .block {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: .5rem;
	flex: 1 0 calc((100% / 2) - 4rem + (4rem / 2));
}

#apropos .stat-blocks .stat {
	font-family: 'Noto Serif';
	font-size: 3rem;
	font-weight: 900;
	color: var(--secondary-color);
	line-height: 1;
}

#apropos .stat-blocks h3 {
	font-size: 1.3rem;
}

#apropos .stat-blocks p {
	font-size: .9rem;
}

#apropos .section-1 .section-media img {
	border-radius: 30% 0 10% 0;
}

#apropos .section-2 .subsec-1 {
	background: var(--secondary-color);
	padding: 4rem 0 7rem;
}

#apropos .section-2 .subsec-1 h2 {
	color: var(--body-color);
	margin-bottom: 2.5rem;
}

#apropos .section-2 .subsec-1 .wrap > .text-block p {
	color: var(--body-color);
}

#apropos .section-2 .subsec-2 .wrap {
	background: var(--body-color);
	padding-top: 1.5rem;
	border-radius: 50px 50px 0 0;
	margin-top: -3rem;
}

#apropos .section-3 .text-block {
	margin-top: 4rem;
}

#apropos .section-4 {
	background-image: linear-gradient(to bottom, var(--bg-color-2) 80%, transparent 20%);
	padding-top: 4rem;
}

#apropos .section-4 .split-even {
	max-width: 850px;
	margin: auto;
}

#apropos .section-4 .split-even .image-card > img {
	border: 10px solid var(--card-color);
	box-sizing: border-box;
}

#apropos .section-4 .split-even .image-card .card-content {
	width: 80%;
	padding: 1rem 2rem 1.5rem;
}

#apropos .section-4 .split-even .image-card .card-socials {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: .75rem;
	margin-top: .85rem;
}

#apropos .section-4 .split-even .image-card .social-icon {
	width: 1.5rem;
	height: 1.5rem;
	background: var(--text-color);
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: center;
	-webkit-mask-size: contain;
	mask-repeat: no-repeat;
	mask-position: center;
	mask-size: contain;
	margin: 0;
	transition: background .25s;
}

#apropos .section-4 .split-even .image-card .social-icon:hover {
	background: var(--secondary-color);
}

#apropos .section-4 .split-even .image-card .social-icon.facebook {
	-webkit-mask-image: url(img/icons/facebook.svg);
	mask-image: url(img/icons/facebook.svg);
}

#apropos .section-4 .split-even .image-card .social-icon.instagram {
	-webkit-mask-image: url(img/icons/instagram.svg);
	mask-image: url(img/icons/instagram.svg);
}

#apropos .section-4 .split-even .image-card .social-icon.pinterest {
	-webkit-mask-image: url(img/icons/pinterest.svg);
	mask-image: url(img/icons/pinterest.svg);
}

#apropos .section-4 .split-even .image-card .social-icon.youtube {
	-webkit-mask-image: url(img/icons/youtube.svg);
	mask-image: url(img/icons/youtube.svg);
}

#apropos .section-4 .split-even .image-card .social-icon.x-social {
	-webkit-mask-image: url(img/icons/x-social.svg);
	mask-image: url(img/icons/x-social.svg);
}

#apropos .section-4 .split-even .image-card .social-icon.linkedin {
	-webkit-mask-image: url(img/icons/linkedin.svg);
	mask-image: url(img/icons/linkedin.svg);
}

/********************************************************************************************************************/

/*#services .section-1 .text-block + .col-3 {
	margin-top: 4rem;
}*/

/*===================================*/

/*#service-single .section-1 .text-block + img {
	margin-top: 4rem;
}*/

#service-single .section-3 .text-block {
	position: relative;
	padding: 4rem 0;
}

#service-single .section-3 .text-block::before {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: -100vw;
	width: 200vw;
	background: var(--bg-color-1);
	z-index: -1;
}

#service-single .section-4 .check-boxes {
	gap: 1rem;
	border: 1px solid var(--bg-color-1);
	border-radius: 15px;
	padding: 1.5rem 1rem;
	margin-top: 3rem;
	box-sizing: border-box;
}

#service-single .section-4 .check-item {
	position: relative;
	display: flex;
	flex-direction: column;
	padding-left: 3.5rem;
	box-sizing: border-box;
}

#service-single .section-4 .check-item::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 2.5rem;
	height: 2.5rem;
	background: var(--secondary-color);
	-webkit-mask: var(--icon) no-repeat center center/contain;
	mask: var(--icon) no-repeat center center/contain;
	margin-top: -.2rem;
}

#service-single .section-4 .check-item h3 {
	font-family: 'Rubik';
	font-weight: 500;
	margin-bottom: .5rem;
}

#service-single .section-4 .check-item p {
	font-size: .9rem;
	line-height: 1.4;
}

/********************************************************************************************************************/

#portfolio .gallery-container {
	position: relative;
	justify-content: flex-start;
	width: 100%;
}

#portfolio .gallery-item {
	width: calc((100% / 2) - 1.5rem + (1.5rem / 2));
	opacity: 0;
	visibility: hidden;
	transform: translateY(25px);
	pointer-events: none;
}

#portfolio .gallery-item.visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	pointer-events: auto;
	transition: opacity .25s, visibility .25s, transform .25s;
}

#portfolio .gallery-item.hidden {
	opacity: 0;
	visibility: hidden;
	position: absolute;
	pointer-events: none;
}

#portfolio .filters {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

#portfolio .filters button {
	all: unset;
	position: relative;
	font-size: 1.25rem;
	cursor: pointer;
	transition: color .25s;
}

#portfolio .filters button:hover {
	color: var(--secondary-color);
}

#portfolio .filters button.active {
	display: flex;
	align-items: center;
	gap: .75rem;
	font-weight: 500;
}

#portfolio .filters button.active::after {
	content: '';
	width: .5rem;
	height: .5rem;
	background: var(--secondary-color);
	border-radius: 50%;
}

/********************************************************************************************************************/

#blog .categories {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

#blog .blog-container {
	width: 100%;
}

#blog .blog-container article {
/*	width: 50%;*/
}

/********************************************************************************************************************/

#article-page article {
	padding-top: 3rem;
}

#article-page img.attachment-post-thumbnail {
	max-height: 650px;
	object-fit: cover;
}

#article-page h1 {
	font-size: 3rem;
	margin-top: 3rem;
	margin-bottom: 2rem;
}

#article-page h2,
#article-page h3 {
	margin-top: 1.5rem;
}

/********************************************************************************************************************/

#contact .contact-item {
	display: grid;
	grid-template-columns: 2.5rem 1fr;
	column-gap: 1rem;
	margin-top: 3rem;
}

#contact .contact-item::before {
	content: '';
	grid-column: 1;
	grid-row: 1/3;
	width: 2.5rem;
	height: 2.5rem;
	background:var(--secondary-color);
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: center;
	-webkit-mask-size: contain;
	mask-repeat: no-repeat;
	mask-position: center;
	mask-size: contain;
}

#contact .contact-item.phone::before {
	-webkit-mask-image: url(img/icons/phone.svg);
	mask-image: url(img/icons/phone.svg);
}

#contact .contact-item.email::before {
	-webkit-mask-image: url(img/icons/mail.svg);
	mask-image: url(img/icons/mail.svg);
}

#contact .contact-item.address::before {
	-webkit-mask-image: url(img/icons/map.svg);
	mask-image: url(img/icons/map.svg);
}

#contact .contact-item p {
	font-size: 1.125rem;
	font-weight: 400;
	margin-bottom: .2rem;
}

#contact .contact-item a {
	font-size: 1.5rem;
	font-weight: 500;
	color: var(--text-color);
	transition: color .25s;
}

#contact .contact-item a:hover {
	color: var(--primary-color);
}

#contact #main-form {
	width: 55%;
}

#contact .map-container {
	position: relative;
}

#contact .open-hours {
	position: absolute;
	left: 10%;
	bottom: 20%;
	width: 40%;
	max-width: 500px;
	background: var(--card-color);
	padding: 3rem;
	box-sizing: border-box;
	box-shadow: 0 3px 4px 2px #0000000d;
	z-index: 5;
}

#contact .open-hours h2 {
	font-size: 2rem;
	margin-bottom: 2rem;
}

#contact .open-hours ul > li {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	font-size: 1.125rem;
	margin-top: 1rem;
}

#contact .open-hours ul > li .day {
	font-weight: 500;
}

#contact .open-hours ul > li .day,
#contact .open-hours ul > li .hours {
	flex-shrink: 0;
}

#contact .open-hours ul > li .line {
	flex-grow: 1;
	height: 1px;
	background: var(--text-color);
	opacity: .15;
}

#map {
	min-height: 650px;
}

#map .maplibregl-marker {
	cursor: pointer;
}

/********************************************************************************************************************/

footer {
	color: var(--btn-text-light);
	box-sizing: border-box;
}

footer > section {
	background: var(--footer-color);
	padding: 0 3rem;
	margin-top: 1rem;
}

footer a:not(.logo) {
	color: var(--btn-text-light);
	opacity: .75;
	transition: opacity .25s;
}

footer a:not(.logo):hover {
	opacity: 1;
}

/*===================================*/

footer .footer-top {
	padding: 3rem 0 2rem;
}

footer .footer-details {
	width: 25%;
	margin-right: auto;
}

footer .footer-details .logo {
	display: block;
	max-width: 230px;
	margin-bottom: 1rem;
}

footer .footer-details .footer-contact {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1.5rem;
	margin-top: 2rem;
}

footer .footer-details .footer-contact-item {
	display: inline-flex;
	align-items: center;
	gap: 1rem;
	line-height: 1.5;
}

footer .footer-details .footer-contact-item::before {
	content: '';
	width: 1.5rem;
	height: 1.5rem;
	background: currentColor;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: center;
	-webkit-mask-size: contain;
	mask-repeat: no-repeat;
	mask-position: center;
	mask-size: contain;
}

footer .footer-details .footer-address::before {
	-webkit-mask-image: url(img/icons/map.svg);
	mask-image: url(img/icons/map.svg);
}

footer .footer-details .footer-email::before {
	-webkit-mask-image: url(img/icons/mail.svg);
	mask-image: url(img/icons/mail.svg);
}

footer .footer-details .footer-phone::before {
	-webkit-mask-image: url(img/icons/phone.svg);
	mask-image: url(img/icons/phone.svg);
}

footer .footer-menu {
	margin-left: 5rem;
}

footer .footer-menu h3 {
	font-family: 'Rubik';
	font-size: 1.25rem;
	font-weight: 400;
	margin-bottom: 1.5rem;
}

footer .footer-menu .menu {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

/*===================================*/

footer .footer-bottom {
	gap: 1rem;
	border-top: 1px solid var(--body-color);
	padding: 1.5rem 0;
}

footer .footer-bottom-links .menu {
	display: flex;
	align-items: center;
	gap: 1rem;
	font-size: .875rem;
}

footer .footer-socials {
	display: flex;
	align-items: center;
	gap: .75rem;
}

footer .footer-socials .social-icon {
	width: 1.5rem;
	height: 1.5rem;
	background: currentColor;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: center;
	-webkit-mask-size: contain;
	mask-repeat: no-repeat;
	mask-position: center;
	mask-size: contain;
}

footer .footer-socials .social-icon.facebook {
	-webkit-mask-image: url(img/icons/facebook.svg);
	mask-image: url(img/icons/facebook.svg);
}

footer .footer-socials .social-icon.instagram {
	-webkit-mask-image: url(img/icons/instagram.svg);
	mask-image: url(img/icons/instagram.svg);
}

footer .footer-socials .social-icon.pinterest {
	-webkit-mask-image: url(img/icons/pinterest.svg);
	mask-image: url(img/icons/pinterest.svg);
}

footer .footer-socials .social-icon.youtube {
	-webkit-mask-image: url(img/icons/youtube.svg);
	mask-image: url(img/icons/youtube.svg);
}

footer .footer-socials .social-icon.x-social {
	-webkit-mask-image: url(img/icons/x-social.svg);
	mask-image: url(img/icons/x-social.svg);
}

footer .footer-socials .social-icon.linkedin {
	-webkit-mask-image: url(img/icons/linkedin.svg);
	mask-image: url(img/icons/linkedin.svg);
}

/*===================================*/

#footer-newsletter {
	padding: 2rem 0;
}

#footer-newsletter .newsletter-container {
	display: flex;
	align-items: center;
	gap: 2rem;
}

#footer-newsletter form {
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-grow: 1;
}

#footer-newsletter form input {
	font-family: 'Rubik';
	width: 100%;
	font-size: .875rem;
	font-weight: 300;
	border: none;
	padding: 1rem;
	box-sizing: border-box;
}

#footer-newsletter form button {
	all: unset;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1;
	width: 3rem;
	flex-shrink: 0;
	background: var(--primary-color);
	border-radius: 50%;
	cursor: pointer;
	transition: background .25s;
}

#footer-newsletter form button:hover {
	background: var(--primary-light);
}

#footer-newsletter form button::after {
	content: '';
	display: block;
	width: 55%;
	height: 55%;
	background: #fff;
	-webkit-mask: url(img/icons/paper-plane.svg) no-repeat center center/contain;
	mask: url(img/icons/paper-plane.svg) no-repeat center center/contain;
	margin-right: 4px;
}

/*===================================*/

#subfooter {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 3rem;
	font-size: .875rem;
	padding: 1.25rem 0;
}

#subfooter p {
	color: var(--text-color);
}

#subfooter a {
	font-weight: 500;
	color: var(--primary-color);
	opacity: 1;
	transition: color .25s;
}

#subfooter a:hover {
	color: var(--primary-light);
}

/********************************************************************************************************************/

/********************************************************************************************************************/

/********************************************************************************************************************/

/* Section vins */

#home-content .section-vins {

	background: var(--bg-color-2);
	padding: 7rem 0;
	margin-top:-8rem;

}

#home-content .section-vins .text-block {

	max-width: 700px;
	margin: 0 auto 3.5rem;

}

#home-content .section-vins .text-block h2 {

	margin-bottom: 1rem;

}

#home-content .section-vins .text-block p {

	margin: 0;

}

.vins-grid {

	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;

}

.vin-card {

	background: #fff;
	overflow: hidden;

}

.vin-card-image {

	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	overflow: hidden;

}

.vin-card-image img {

	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;

}

.vin-card-content {

	position: relative;
	padding: 1.75rem 1.5rem 1.5rem;
	text-align: left;

}

.vin-card-content h3 {

	font-size: 1.4rem;
	margin: 0 0 .5rem;

}

.vin-card-content h3 a {

	color: inherit;
	text-decoration: none;

}

.vin-card-price {

	font-size: 1rem;
	margin-bottom: 1.5rem;

}

.vin-card-price del {

	opacity: .5;
	margin-right: .5rem;

}

.vin-card-price ins {

	text-decoration: none;

}

.vin-card .btn-arrow {

	display: inline-block;

}

.vins-footer {

	margin-top: 3.5rem;

}

/* Archive - Nos vins */

#vins .section-1 .text-block {

	max-width: 700px;
	margin: 0 auto 3.5rem;

}

.vins-filters {

	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .75rem;
	margin-bottom: 3.5rem;

}

.vin-filter {

	appearance: none;
	-webkit-appearance: none;
	font-family: inherit;
	font-size: .875rem;
	font-weight: 500;
	color: var(--primary-color);
	text-transform: uppercase;
	background-color: transparent;
	padding: .875rem 1.25rem;
	border: 2px solid var(--primary-color);
	border-radius: 0;
	cursor: pointer;
	transition: color .2s, background-color .2s;

}

.vin-filter:hover,

.vin-filter.active {

	color: #fff;
	background-color: var(--primary-color);

}

.vins-archive-grid {

	grid-template-columns: repeat(3, 1fr);

}

.vin-card.is-hidden {

	display: none;

}

/********************************************************************************************************************/

/* =========================================================
   SINGLE VIN
========================================================= */

#single-vin {
    background-color: #f8f5ee;
}

/* Retour */
.single-vin-back {
    display: inline-flex;
    align-items: center;
    margin-bottom: 2.5rem;
    font-size: .875rem;
    font-weight: 600;
    color: var(--primary-color);
    text-transform: uppercase;
}

/* Section principale */
.single-vin-main {
    padding: 5rem 0 7rem;
}

.single-vin-main > .wrapper {
    width: calc(100% - 4rem);
    max-width: 1400px;
    margin: 0 auto;
}

.single-vin-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(360px, .9fr);
    gap: 6rem;
    align-items: center;
}

/* Image */
.single-vin-image {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 600px;
}

.single-vin-image img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 700px;
    object-fit: contain;
}

/* Informations */
.single-vin-content {
    max-width: 520px;
}

.single-vin-type {
    margin-bottom: 1rem;
    font-size: .875rem;
    font-weight: 600;
    color: var(--primary-color);
    text-transform: uppercase;
    letter-spacing: .08em;
}

.single-vin-content h1 {
    margin: 0 0 1rem;
    font-size: clamp(2.75rem, 4vw, 4.5rem);
    line-height: 1;
}

.single-vin-price {
    margin-bottom: 2.5rem;
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--primary-color);
}

.single-vin-details {
    margin-bottom: 2.5rem;
    padding: 1.75rem 0;
    border-top: 1px solid rgba(0, 0, 0, .15);
    border-bottom: 1px solid rgba(0, 0, 0, .15);
}

.single-vin-details p {
    margin: 0;
    line-height: 1.8;
}

/* Panier */
.single-vin-cart form.cart {
    display: flex;
    align-items: stretch;
    gap: .75rem;
    margin: 0;
}

/* Produits réservables - calendrier PluginHive */
.single-vin-cart.booking-product form.cart {
	display: block;
}

.single-vin-cart .quantity {
    margin: 0 !important;
}

.single-vin-cart .quantity input.qty {
    width: 70px;
    height: 54px;
    padding: 0 .5rem;
    border: 1px solid rgba(0, 0, 0, .25);
    border-radius: 0;
    background-color: #fff;
    text-align: center;
    font-family: inherit;
    font-size: 1rem;
}

.single-vin-cart .single_add_to_cart_button {
    min-height: 54px;
    padding: 0 2rem !important;
    border: 0 !important;
    border-radius: 0 !important;
    background-color: var(--primary-color) !important;
    color: #fff !important;
    font-family: inherit;
    font-size: .875rem !important;
    font-weight: 600 !important;
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color .2s;
}

.single-vin-cart .single_add_to_cart_button:hover {
    background-color: var(--primary-hover) !important;
}

/* Description */
.single-vin-description {
    padding: 7rem 0;
    background-color: #fff;
}

.single-vin-description > .wrapper {
    width: calc(100% - 4rem);
    max-width: 1200px;
    margin: 0 auto;
}

.single-vin-description-inner {
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
}

.single-vin-description h2 {
    margin: 0 0 2rem;
}

.single-vin-description-text {
    font-size: 1.125rem;
    line-height: 1.8;
}

.single-vin-description-text p {
    margin: 0 0 1rem;
}

.single-vin-description-text p:last-child {
    margin-bottom: 0;
}

/* Produits similaires */
.single-vin-related {
    padding: 7rem 0;
}

.single-vin-related > .wrapper {
    width: calc(100% - 4rem);
    max-width: 1400px;
    margin: 0 auto;
}

.single-vin-related > .wrapper > h2 {
    margin: 0 0 3.5rem;
    text-align: center;
}

.vins-related-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}

.vins-related-grid .vin-card {
    min-width: 0;
}

.vins-related-grid .vin-card-content {
    padding: 1.75rem;
}

.vins-related-grid .vin-card-content h3 {
    margin: 0 0 .5rem;
}

.vin-card-price {
    margin-bottom: 1rem;
    color: var(--primary-color);
    font-weight: 600;
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media screen and (max-width: 1024px) {
    .single-vin-grid {
        grid-template-columns: 1fr 1fr;
        gap: 3rem;
    }
}

@media screen and (max-width: 767px) {
    .single-vin-main {
        padding: 3rem 0 4.5rem;
    }

    .single-vin-main > .wrapper,
    .single-vin-description > .wrapper,
    .single-vin-related > .wrapper {
        width: calc(100% - 2rem);
    }

    .single-vin-back {
        margin-bottom: 2rem;
    }

    .single-vin-grid {
        grid-template-columns: 1fr;
        gap: 3rem;
    }

    .single-vin-image {
		min-height: 0;
	}

	.single-vin-image img {
		max-height: none;
		width: 100%;
	}

    .single-vin-content {
        max-width: none;
    }

    .single-vin-content h1 {
        font-size: 2.75rem;
    }

    .single-vin-description,
    .single-vin-related {
        padding: 4.5rem 0;
    }

    .vins-related-grid {
        grid-template-columns: 1fr;
    }
}

@media screen and (max-width: 480px) {
    .single-vin-cart form.cart {
        align-items: stretch;
    }

    .single-vin-cart .single_add_to_cart_button {
        flex: 1;
        padding: 0 1rem !important;
    }
}

/********************************************************************************************************************/

/* WOOCOMMERCE - PAGES TRANSACTIONNELLES */

/********************************************************************************************************************/

#shop-page {
    padding-top: 180px;
    padding-bottom: 8rem;
}

.shop-page-header {
    margin-bottom: 3rem;
}

.shop-page-header h1 {
    margin: 0;
}

.shop-page-container {
    display: block;
}

/* =========================================================
   WOOCOMMERCE - PANIER
========================================================= */

.woocommerce-cart .shop-page-header {
    margin-bottom: 3.5rem;
}

/* Colonnes principales */
.woocommerce-cart .wp-block-woocommerce-cart {
    margin: 0;
}

.woocommerce-cart .wc-block-cart {
    gap: 3.5rem;
}

.woocommerce-cart .wc-block-cart__main {
    width: calc(70% - 1.75rem);
}

.woocommerce-cart .wc-block-cart__sidebar {
    width: calc(30% - 1.75rem);
    margin: 0;
}

/* Produit */
.woocommerce-cart .wc-block-cart-items {
    border-spacing: 0;
}

.woocommerce-cart .wc-block-cart-items th {
    padding-bottom: 1rem !important;
    border-bottom: 1px solid rgba(67, 45, 51, .2) !important;
    color: var(--text-color);
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
}

.woocommerce-cart .wc-block-cart-items td {
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important;
    border-bottom: 1px solid rgba(67, 45, 51, .2) !important;
}

.woocommerce-cart .wc-block-cart-item__image {
    width: 120px !important;
    padding-right: 1.5rem !important;
}

.woocommerce-cart .wc-block-cart-item__image img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
}

.woocommerce-cart .wc-block-components-product-name {
    color: var(--primary-color);
    font-weight: 700;
    text-decoration: none;
}

.woocommerce-cart .wc-block-components-product-name:hover {
    color: var(--primary-hover);
}

/* Quantité */
.woocommerce-cart .wc-block-components-quantity-selector {
    border: 1px solid rgba(67, 45, 51, .25);
    border-radius: 0;
}

.woocommerce-cart .wc-block-components-quantity-selector input {
    font-family: inherit;
}

/* Totaux */
.woocommerce-cart .wc-block-cart__sidebar {
    padding: 2rem;
    background-color: #fff;
}

.woocommerce-cart .wc-block-cart__totals-title {
    padding: 0 0 1rem !important;
    margin: 0 !important;
    border-bottom: 1px solid rgba(67, 45, 51, .2);
    font-size: .8rem !important;
    font-weight: 700 !important;
    text-align: left !important;
}

.woocommerce-cart .wc-block-components-totals-wrapper {
    padding-left: 0;
    padding-right: 0;
}

.woocommerce-cart .wc-block-components-totals-footer-item {
    font-size: 1.25rem;
    font-weight: 700;
}

/* Bouton checkout */
.woocommerce-cart .wc-block-cart__submit {
    margin-top: 1.5rem;
}

.woocommerce-cart .wc-block-cart__submit-button {
    min-height: 54px;
    background-color: var(--primary-color) !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 0 !important;
    font-family: inherit;
    font-size: .9rem;
    font-weight: 700;
    text-transform: uppercase;
    transition: background-color .2s;
}

.woocommerce-cart .wc-block-cart__submit-button:hover {
    background-color: var(--primary-hover) !important;
}

/* Code promo */
.woocommerce-cart .wc-block-components-totals-coupon {
    border-bottom: 1px solid rgba(67, 45, 51, .2);
}

/* Responsive */
@media (max-width: 991px) {
    .woocommerce-cart .wc-block-cart {
        display: block;
    }

    .woocommerce-cart .wc-block-cart__main,
    .woocommerce-cart .wc-block-cart__sidebar {
        width: 100%;
    }

    .woocommerce-cart .wc-block-cart__sidebar {
        margin-top: 3rem;
    }
}

@media (max-width: 767px) {
    .woocommerce-cart .wc-block-cart-item__image {
        width: 90px !important;
        padding-right: 1rem !important;
    }

    .woocommerce-cart .wc-block-cart__sidebar {
        padding: 1.5rem;
    }
}

/* =========================================================
   WOOCOMMERCE - MON COMPTE / CONNEXION
========================================================= */

.woocommerce-account .woocommerce {
    max-width: 700px;
}

.woocommerce-account .woocommerce h2 {
    margin: 0 0 1.5rem;
    font-size: 1.75rem;
}

.woocommerce-account .woocommerce-form-login {
    margin: 0;
    padding: 2.5rem;
    border: 0;
    border-radius: 0;
    background-color: #fff;
}

.woocommerce-account .woocommerce-form-login .form-row {
    margin: 0 0 1.25rem;
    padding: 0;
}

.woocommerce-account .woocommerce-form-login label {
    display: block;
    margin-bottom: .5rem;
    font-size: .9rem;
    font-weight: 600;
}

.woocommerce-account .woocommerce-form-login input.input-text {
    width: 100%;
    min-height: 50px;
    padding: .75rem 1rem;
    border: 1px solid rgba(67, 45, 51, .25);
    border-radius: 0;
    background-color: transparent;
    font-family: inherit;
    font-size: 1rem;
}

.woocommerce-account .woocommerce-form-login input.input-text:focus {
    outline: none;
    border-color: var(--primary-color);
}

.woocommerce-account .woocommerce-form-login .form-row:nth-last-of-type(1) {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    margin-bottom: 1rem;
}

.woocommerce-account .woocommerce-form-login .woocommerce-form-login__rememberme {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: 0;
    font-weight: 400;
}

.woocommerce-account .woocommerce-form-login .woocommerce-form-login__rememberme input {
    margin: 0;
}

.woocommerce-account .woocommerce-form-login .woocommerce-button {
    margin: 0;
    padding: 1rem 2rem;
    border: 0;
    border-radius: 0;
    background-color: var(--primary-color);
    color: #fff;
    font-family: inherit;
    font-size: .85rem;
    font-weight: 700;
    text-transform: uppercase;
    transition: background-color .2s;
}

.woocommerce-account .woocommerce-form-login .woocommerce-button:hover {
    background-color: var(--primary-hover);
    color: #fff;
}

.woocommerce-account .woocommerce-LostPassword {
    margin: 0;
}

.woocommerce-account .woocommerce-LostPassword a {
    color: var(--text-color);
    font-size: .9rem;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.woocommerce-account .woocommerce-LostPassword a:hover {
    color: var(--primary-color);
}

@media (max-width: 767px) {
    .woocommerce-account .woocommerce-form-login {
        padding: 1.5rem;
    }

    .woocommerce-account .woocommerce-form-login .form-row:nth-last-of-type(1) {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* //////////////////////// */

/* =========================================================
   WOOCOMMERCE - MON COMPTE - UTILISATEUR CONNECTÉ
========================================================= */
.woocommerce-account.logged-in .shop-page-container {
    max-width: 1200px;
}
.woocommerce-account.logged-in .shop-page-content > .woocommerce {
    display: flex;
    align-items: flex-start;
    gap: 4rem;
    max-width: none;
}
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation {
    float: none !important;
    flex: 0 0 250px;
    width: 250px !important;
    margin: 0;
}
.woocommerce-account.logged-in .woocommerce-MyAccount-content {
    float: none !important;
    flex: 1 1 auto;
    width: auto !important;
    min-width: 0;
    margin: 0;
}
/* NAVIGATION */
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul {
    margin: 0;
    padding: 0;
    list-style: none;
    background-color: #fff;
}
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li {
    margin: 0;
    padding: 0;
    border-bottom: 1px solid rgba(67, 45, 51, .12);
}
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li:last-child {
    border-bottom: 0;
}
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation a {
    display: block;
    padding: 1rem 1.25rem;
    color: var(--text-color);
    font-size: .9rem;
    font-weight: 600;
    text-decoration: none;
    transition: color .2s, background-color .2s;
}
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation a:hover {
    color: var(--primary-color);
    background-color: rgba(67, 45, 51, .04);
}
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation .is-active a {
    color: #fff;
    background-color: var(--primary-color);
}
/* CONTENU */
.woocommerce-account.logged-in .woocommerce-MyAccount-content > *:first-child {
    margin-top: 0;
}
.woocommerce-account.logged-in .woocommerce-MyAccount-content p {
    line-height: 1.6;
}
.woocommerce-account.logged-in .woocommerce-MyAccount-content a {
    color: var(--primary-color);
}
.woocommerce-account.logged-in .woocommerce-MyAccount-content a:hover {
    color: var(--primary-hover);
}
/* COMMANDES / TABLEAUX */
.woocommerce-account.logged-in .woocommerce-orders-table,
.woocommerce-account.logged-in .woocommerce-table {
    width: 100%;
    margin: 0;
    border: 0;
    border-collapse: collapse;
    background-color: #fff;
}
.woocommerce-account.logged-in .woocommerce-orders-table th,
.woocommerce-account.logged-in .woocommerce-table th {
    padding: 1rem;
    border: 0;
    border-bottom: 1px solid rgba(67, 45, 51, .15);
    font-size: .75rem;
    font-weight: 700;
    text-align: left;
    text-transform: uppercase;
}
.woocommerce-account.logged-in .woocommerce-orders-table td,
.woocommerce-account.logged-in .woocommerce-table td {
    padding: 1rem;
    border: 0;
    border-bottom: 1px solid rgba(67, 45, 51, .1);
    vertical-align: middle;
}
/* BOUTONS */
.woocommerce-account.logged-in .woocommerce-MyAccount-content .button {
    display: inline-block;
    width: auto;
    margin: 0;
    padding: .9rem 1.25rem;
    border: 0;
    border-radius: 0;
    background-color: var(--primary-color);
    color: #fff;
    font-family: inherit;
    font-size: .75rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    text-transform: uppercase;
}
.woocommerce-account.logged-in .woocommerce-MyAccount-content .button:hover {
    background-color: var(--primary-hover);
    color: #fff;
}
/* MESSAGES / ÉTATS VIDES */
.woocommerce-account.logged-in .woocommerce-info,
.woocommerce-account.logged-in .woocommerce-message,
.woocommerce-account.logged-in .woocommerce-error {
    box-sizing: border-box;
    width: 100%;
    margin: 0 0 1.5rem;
    padding: 1.25rem 1.5rem;
    border: 0;
    border-left: 4px solid var(--primary-color);
    border-radius: 0;
    background-color: #fff;
    color: var(--text-color);
}
.woocommerce-account.logged-in .woocommerce-info::before,
.woocommerce-account.logged-in .woocommerce-message::before {
    color: var(--primary-color);
}

/* FORMULAIRES */
.woocommerce-account.logged-in .woocommerce-MyAccount-content form {
    width: 100%;
    max-width: 800px;
}
.woocommerce-account.logged-in .woocommerce-MyAccount-content .form-row {
    box-sizing: border-box;
    margin: 0 0 1.25rem;
    padding: 0;
}
.woocommerce-account.logged-in .woocommerce-MyAccount-content .form-row label {
    display: block;
    margin-bottom: .5rem;
    font-size: .9rem;
    font-weight: 600;
}
.woocommerce-account.logged-in .woocommerce-MyAccount-content .input-text,
.woocommerce-account.logged-in .woocommerce-MyAccount-content input[type="text"],
.woocommerce-account.logged-in .woocommerce-MyAccount-content input[type="email"],
.woocommerce-account.logged-in .woocommerce-MyAccount-content input[type="tel"],
.woocommerce-account.logged-in .woocommerce-MyAccount-content input[type="password"],
.woocommerce-account.logged-in .woocommerce-MyAccount-content select,
.woocommerce-account.logged-in .woocommerce-MyAccount-content textarea {
    box-sizing: border-box;
    width: 100%;
    min-height: 50px;
    padding: .75rem 1rem;
    border: 1px solid rgba(67, 45, 51, .25);
    border-radius: 0;
    background-color: #fff;
    color: var(--text-color);
    font-family: inherit;
    font-size: 1rem;
}
.woocommerce-account.logged-in .woocommerce-MyAccount-content .input-text:focus,
.woocommerce-account.logged-in .woocommerce-MyAccount-content input:focus,
.woocommerce-account.logged-in .woocommerce-MyAccount-content select:focus,
.woocommerce-account.logged-in .woocommerce-MyAccount-content textarea:focus {
    outline: none;
    border-color: var(--primary-color);
}
.woocommerce-account.logged-in .woocommerce-MyAccount-content .form-row-first {
    float: left;
    width: calc(50% - .75rem);
}
.woocommerce-account.logged-in .woocommerce-MyAccount-content .form-row-last {
    float: right;
    width: calc(50% - .75rem);
}
/* CHANGEMENT DE MOT DE PASSE */
.woocommerce-account.logged-in .woocommerce-MyAccount-content fieldset {
    box-sizing: border-box;
    clear: both;
    width: 100%;
    margin: 2.5rem 0;
    padding: 2rem;
    border: 1px solid rgba(67, 45, 51, .15);
    background-color: #fff;
}
.woocommerce-account.logged-in .woocommerce-MyAccount-content fieldset legend {
    padding: 0 .75rem;
    font-size: 1rem;
    font-weight: 700;
}
/* RESPONSIVE */
@media (max-width: 991px) {
    .woocommerce-account.logged-in .shop-page-content > .woocommerce {
        gap: 2rem;
    }
    .woocommerce-account.logged-in .woocommerce-MyAccount-navigation {
        flex-basis: 210px;
        width: 210px !important;
    }
    .woocommerce-account.logged-in .woocommerce-Addresses {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 767px) {
    .woocommerce-account.logged-in .shop-page-content > .woocommerce {
        display: block;
    }
    .woocommerce-account.logged-in .woocommerce-MyAccount-navigation {
        width: 100% !important;
        margin-bottom: 2.5rem;
    }
    .woocommerce-account.logged-in .woocommerce-MyAccount-content {
        width: 100% !important;
    }
    .woocommerce-account.logged-in .woocommerce-MyAccount-content .form-row-first,
    .woocommerce-account.logged-in .woocommerce-MyAccount-content .form-row-last {
        float: none;
        width: 100%;
    }
}

/* =========================================================
   WOOCOMMERCE - MON COMPTE - CORRECTIFS
========================================================= */

/* ADRESSES */
.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-Addresses {
    margin-top: 2rem;
}
.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-Address-title {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.5rem;
}
.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-Address-title h2,
.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-Address-title h3 {
    flex: 1 1 auto;
    margin: 0 0 1.5rem;
    padding: 0;
}
.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-Address-title .edit {
    position: static;
    flex: 0 0 auto;
    margin-top: .3rem;
    font-size: .8rem;
    font-weight: 700;
    line-height: 1.3;
    white-space: nowrap;
    text-decoration: none;
}
.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-Address address {
    clear: both;
}

/* MESSAGES WOOCOMMERCE */
.woocommerce-account.logged-in .woocommerce-info,
.woocommerce-account.logged-in .woocommerce-message {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    min-height: 80px;
    padding: 1.5rem 2rem;
}
.woocommerce-account.logged-in .woocommerce-info::before,
.woocommerce-account.logged-in .woocommerce-message::before {
    display: none;
}
.woocommerce-account.logged-in .woocommerce-info .button,
.woocommerce-account.logged-in .woocommerce-message .button {
    flex: 0 0 auto;
    order: 2;
}

/* PAGE COMMANDES */
.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-info + .woocommerce-info {
    margin-top: 1.5rem;
}

/* DÉTAILS DU COMPTE */
.woocommerce-account.logged-in .woocommerce-EditAccountForm {
    max-width: none;
}
.woocommerce-account.logged-in .woocommerce-EditAccountForm fieldset {
    margin-top: 2.5rem;
}
.woocommerce-account.logged-in .woocommerce-EditAccountForm em {
    display: block;
    margin-top: .4rem;
    font-size: .9rem;
    line-height: 1.5;
}

/* RESPONSIVE */
@media (max-width: 767px) {
    .woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-Address-title {
        display: block;
    }
    .woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-Address-title .edit {
        display: inline-block;
        margin: 0 0 1.25rem;
        white-space: normal;
    }
    .woocommerce-account.logged-in .woocommerce-info,
    .woocommerce-account.logged-in .woocommerce-message {
        display: block;
        padding: 1.5rem;
    }
    .woocommerce-account.logged-in .woocommerce-info .button,
    .woocommerce-account.logged-in .woocommerce-message .button {
        display: table;
        margin-top: 1rem;
    }
}


/* ========================================
   SINGLE EVENT
======================================== */

#event-page {
	background: #fff;
}

.event-content-section {
	padding: 70px 0 80px;
	margin:0 !important;
}

.event-layout {
	display: grid;
	grid-template-columns: minmax(240px, 320px) minmax(0, 1fr);
	gap: 90px;
	align-items: start;
}


/* SIDEBAR
---------------------------------------- */

.event-sidebar {
	min-width: 0;
}

.event-sidebar-inner {
	position: sticky;
	top: 130px;
}

.event-info {
	padding: 0 0 25px;
	margin: 0 0 25px;
	border-bottom: 1px solid rgba(0, 0, 0, 0.15);
}

.event-info-label {
	display: block;
	margin-bottom: 7px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 1.5px;
	text-transform: uppercase;
}

.event-info-value {
	font-size: 17px;
	line-height: 1.5;
}

.event-info-value strong,
.event-info-value span {
	display: block;
}

.event-note {
	margin-top: 30px;
	padding: 22px;
	font-size: 15px;
	line-height: 1.6;
	background: #f4f1eb;
}

.event-sidebar-btn {
	display: inline-flex;
	margin-top: 30px;
}


/* CONTENU PRINCIPAL
---------------------------------------- */

.event-article {
	min-width: 0;
	max-width: 820px;
}

.event-article-content > *:first-child {
	margin-top: 0;
}

.event-article-content h2 {
	margin-top: 15px;
	margin-bottom: 25px;
}

.event-article-content h2:first-child {
	margin-top: 0;
}

.event-article-content p {
	line-height: 1.75;
	margin-bottom: 25px;
}

.event-article-content figure {
	margin-top: 30px;
	margin-bottom: 40px;
}

.event-article-content p + figure,
.event-article-content p + .wp-block-image,
.event-article-content p + .wp-block-gallery {
	margin-top: 30px;
}

.event-article-content figure + h2,
.event-article-content .wp-block-image + h2,
.event-article-content .wp-block-gallery + h2 {
	margin-top: 50px;
}

.event-article-content figure img {
	display: block;
	width: 100%;
	height: auto;
}

.event-article-content .wp-block-gallery {
	margin-top: 30px;
	margin-bottom: 0;
}


/* INSCRIPTION
---------------------------------------- */

.event-registration {
	padding: 80px 0;
	margin:0 !important;
	background: #f4f1eb;
}

.event-registration-inner {
	max-width: 900px;
	margin: 0 auto;
}

.event-registration-inner > h2 {
	margin-top: 0;
	margin-bottom: 20px;
}

.event-registration-text {
	max-width: 700px;
	margin-bottom: 45px;
}

.event-registration-text p:last-child {
	margin-bottom: 0;
}

.event-registration-form .gform_wrapper {
	margin: 0;
}

.event-sidebar-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 30px;
	padding: 14px 28px;
	background: #432e35;
	color: #fff;
	font-size: 15px;
	font-weight: 500;
	text-decoration: none;
	transition: all 0.3s ease;
}

.event-sidebar-btn:hover {
	background: #2f2025;
	color: #fff;
}


/* TABLETTE / MOBILE
---------------------------------------- */

@media screen and (max-width: 900px) {

	.event-content-section {
		padding: 70px 0 80px;
	}

	.event-layout {
		display: block;
	}

	.event-sidebar {
		margin-bottom: 60px;
	}

	.event-sidebar-inner {
		position: static;
	}

	.event-article {
		max-width: none;
	}

	.event-registration {
		padding: 70px 0;
	}

}

@media screen and (max-width: 600px) {

	.event-content-section {
		padding: 50px 0 60px;
	}

	.event-sidebar {
		margin-bottom: 50px;
	}

	.event-info {
		padding-bottom: 20px;
		margin-bottom: 20px;
	}

	.event-note {
		margin-top: 25px;
	}

	.event-article-content h2 {
		margin-top: 50px;
	}

	.event-article-content figure {
		margin-top: 35px;
		margin-bottom: 45px;
	}

	.event-registration {
		padding: 55px 0;
	}

}

.event-past-label {
    display: inline-block;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/********************************************************************************************************************/

.event-article-content img {
	cursor: zoom-in;
}

body.event-lightbox-open {
	overflow: hidden;
}

.event-lightbox {
	position: fixed;
	z-index: 99999;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 50px;
	background: rgba(20, 15, 17, 0.92);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.25s ease, visibility 0.25s ease;
}

.event-lightbox.open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.event-lightbox img {
	display: block;
	max-width: 90vw;
	max-height: 90vh;
	width: auto;
	height: auto;
	object-fit: contain;
}

.event-lightbox-close {
	position: absolute;
	top: 25px;
	right: 30px;
	z-index: 2;
	padding: 0;
	border: 0;
	background: transparent;
	color: #fff;
	font-size: 45px;
	font-weight: 300;
	line-height: 1;
	cursor: pointer;
}

@media screen and (max-width: 600px) {
	.event-lightbox {
		padding: 20px;
	}

	.event-lightbox img {
		max-width: 100%;
		max-height: 85vh;
	}

	.event-lightbox-close {
		top: 15px;
		right: 18px;
	}
}

/********************************************************************************************************************/

/* PAGE LÉGALE */
#legal-page {
	padding: 80px 0 120px;
}
.legal-page-container {
	max-width: 1200px;
}
.legal-page-header {
	margin-bottom: 60px;
}
.legal-page-header h1 {
	margin: 0;
	font-size: clamp(42px, 5vw, 72px);
	line-height: 1;
}
.legal-page-content {
	max-width: 950px;
}
.legal-page-content h2 {
	margin: 60px 0 20px;
}
.legal-page-content h3 {
	margin: 45px 0 15px;
}
.legal-page-content h4 {
	margin: 35px 0 15px;
}
.legal-page-content h2:first-child,
.legal-page-content h3:first-child,
.legal-page-content h4:first-child {
	margin-top: 0;
}
.legal-page-content p {
	margin: 0 0 20px;
}
.legal-page-content strong {
	font-weight: 700;
}
.legal-page-content ul {
	margin: 0 0 25px;
	padding-left: 25px;
	list-style: disc outside;
}
.legal-page-content ol {
	margin: 0 0 25px;
	padding-left: 25px;
	list-style: decimal outside;
}
.legal-page-content ul ul {
	margin: 8px 0;
	list-style-type: circle;
}
.legal-page-content ol ol {
	margin: 8px 0;
	list-style-type: lower-alpha;
}
.legal-page-content li {
	display: list-item;
	margin: 0 0 8px;
	padding-left: 5px;
}
.legal-page-content li:last-child {
	margin-bottom: 0;
}
.legal-page-content a {
	text-decoration: underline;
	text-underline-offset: 3px;
}
.legal-page-content blockquote {
	margin: 30px 0;
	padding: 5px 0 5px 25px;
	border-left: 3px solid currentColor;
}
.legal-page-content hr {
	margin: 50px 0;
	border: 0;
	border-top: 1px solid rgba(0, 0, 0, 0.2);
}
.legal-page-content table {
	width: 100%;
	margin: 30px 0;
	border-collapse: collapse;
}
.legal-page-content th,
.legal-page-content td {
	padding: 12px 15px;
	border: 1px solid rgba(0, 0, 0, 0.2);
	text-align: left;
	vertical-align: top;
}
.legal-page-content img {
	max-width: 100%;
	height: auto;
}
@media (max-width: 768px) {
	#legal-page {
		padding: 50px 0 80px;
	}
	.legal-page-header {
		margin-bottom: 40px;
	}
	.legal-page-header h1 {
		font-size: 42px;
	}
	.legal-page-content h2 {
		margin-top: 45px;
	}
	.legal-page-content h3 {
		margin-top: 35px;
	}
	.legal-page-content h4 {
		margin-top: 30px;
	}
	.legal-page-content ul,
	.legal-page-content ol {
		padding-left: 22px;
	}
}

/* PAGE LÉGALE - CORRECTIONS */
#legal-page {
	padding-top: 220px;
}
.legal-page-content ul {
	margin: 0 0 25px;
	padding-left: 25px;
	list-style: disc outside;
}
.legal-page-content ul > li {
	display: list-item;
	list-style: disc outside;
	margin: 0 0 8px;
	padding-left: 5px;
}
.legal-page-content ol {
	margin: 0 0 25px;
	padding-left: 25px;
	list-style: decimal outside;
}
.legal-page-content ol > li {
	display: list-item;
	list-style: decimal outside;
	margin: 0 0 8px;
	padding-left: 5px;
}
.legal-page-content ul ul,
.legal-page-content ul ul > li {
	list-style-type: circle;
}
.legal-page-content ol ol,
.legal-page-content ol ol > li {
	list-style-type: lower-alpha;
}
@media screen and (max-width: 1024px) {
	#legal-page {
		padding-top: 160px;
	}
}

/********************************************************************************************************************/

/* PluginHive - bouton Réserver maintenant */
.single-vin-cart button[type="submit"]:hover,
.single-vin-cart .button:hover {
	background-color: #d9a07e !important;
	color: #f8f3ea !important;
	opacity: 1 !important;
}

/* Panier vide */
.woocommerce-cart .wc-block-grid {
	margin-top: 3rem;
}

.woocommerce-cart .wc-block-grid__products {
	margin-top: 2rem;
}

/* Masquer "Parcourir la boutique" */
.woocommerce-cart .wp-block-woocommerce-empty-cart-block > p.wp-block-paragraph {
	display: none;
}

/* Cards produits */
.woocommerce-cart .wc-block-grid__product-image {
	margin-bottom: 1.25rem !important;
}

.woocommerce-cart .wc-block-grid__product-title {
	margin: 0 0 .75rem !important;
	color: var(--text-color);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.35;
}

.woocommerce-cart .wc-block-grid__product-price {
	margin: 0 0 1rem !important;
	color: var(--text-color);
}

.woocommerce-cart .wc-block-grid__product-add-to-cart {
	margin: 0 !important;
}

.woocommerce-cart .wc-block-grid__product-add-to-cart a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 0 1.5rem !important;
	border: 0 !important;
	border-radius: 50px !important;
	background-color: var(--primary-color) !important;
	color: var(--btn-text-light) !important;
	font-size: .875rem;
	text-decoration: none !important;
}


/********************************************************************************************************************/

/* ==============================
   WOOCOMMERCE - COMMANDE REÇUE
============================== */

.woocommerce-order-received .shop-page-container {
	padding-top: 5rem;
	padding-bottom: 6rem;
}

.woocommerce-order-received .woocommerce-thankyou-order-received {
	margin: 0 0 2.5rem;
	font-size: 1.1rem;
}

.woocommerce-order-received .woocommerce-order-overview {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	margin: 0 0 3rem;
	padding: 0;
	list-style: none;
}

.woocommerce-order-received .woocommerce-order-overview li {
	margin: 0;
	padding: 0 1.5rem;
	border-right: 1px solid rgba(63, 46, 53, .2);
	font-size: .75rem;
	text-transform: uppercase;
}

.woocommerce-order-received .woocommerce-order-overview li:first-child {
	padding-left: 0;
}

.woocommerce-order-received .woocommerce-order-overview li:last-child {
	border-right: 0;
}

.woocommerce-order-received .woocommerce-order-overview li strong {
	display: block;
	margin-top: .3rem;
	font-size: 1rem;
	font-weight: 600;
	text-transform: none;
}

.woocommerce-order-received .woocommerce-order-details {
	margin-top: 2.5rem;
}

.woocommerce-order-received .woocommerce-order-details__title,
.woocommerce-order-received .woocommerce-column__title,
.woocommerce-order-received .woocommerce-additional-fields h2 {
	margin: 0 0 1rem;
	font-size: 1.6rem;
}

.woocommerce-order-received table.shop_table {
	width: 100%;
	margin: 0;
	border: 1px solid rgba(63, 46, 53, .2);
	border-radius: 6px;
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
}

.woocommerce-order-received table.shop_table th,
.woocommerce-order-received table.shop_table td {
	padding: 1rem;
	border: 0;
	border-bottom: 1px solid rgba(63, 46, 53, .15);
	text-align: left;
	vertical-align: top;
}

.woocommerce-order-received table.shop_table tr:last-child th,
.woocommerce-order-received table.shop_table tr:last-child td {
	border-bottom: 0;
}

.woocommerce-order-received table.shop_table thead th {
	background: rgba(217, 160, 126, .12);
	font-weight: 600;
}

.woocommerce-order-received table.shop_table tfoot th {
	width: 36%;
	font-weight: 600;
}

.woocommerce-order-received .woocommerce-customer-details {
	margin-top: 3rem;
}

.woocommerce-order-received .woocommerce-customer-details address {
	padding: 1.25rem 1.5rem;
	border: 1px solid rgba(63, 46, 53, .2);
	border-radius: 6px;
	font-style: normal;
	line-height: 1.6;
}

.woocommerce-order-received .woocommerce-additional-fields {
	margin-top: 3rem;
}

.woocommerce-order-received .woocommerce-additional-fields table {
	margin-top: 1rem;
}

@media (max-width: 767px) {
	.woocommerce-order-received .shop-page-container {
		padding-top: 3rem;
		padding-bottom: 4rem;
	}

	.woocommerce-order-received .woocommerce-order-overview {
		display: block;
	}

	.woocommerce-order-received .woocommerce-order-overview li {
		padding: .75rem 0;
		border-right: 0;
		border-bottom: 1px solid rgba(63, 46, 53, .15);
	}

	.woocommerce-order-received .woocommerce-order-overview li:last-child {
		border-bottom: 0;
	}

	.woocommerce-order-received table.shop_table th,
	.woocommerce-order-received table.shop_table td {
		padding: .8rem;
	}

	.woocommerce-order-received table.shop_table tfoot th {
		width: 45%;
	}
}

/* Valeurs de la colonne Total : poids normal */
.woocommerce-order-received .woocommerce-order-details table.shop_table tbody td.product-total,
.woocommerce-order-received .woocommerce-order-details table.shop_table tfoot td {
	font-weight: 400;
}

/* Espace avant Informations complémentaires */
.wc-block-order-confirmation-additional-fields-wrapper {
	margin-top: 3rem !important;
}

.wc-block-order-confirmation-additional-fields-wrapper h2{margin-bottom:15px !important;}

.shop-breadcrumb {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .6rem;
	margin-bottom: 1.25rem;
	font-size: .875rem;
	padding-top:10px;
}

.shop-breadcrumb a {
	color: var(--text-color);
	text-decoration: none;
	opacity: .65;
}

.shop-breadcrumb a:hover {
	opacity: 1;
}

.shop-breadcrumb span:last-child {
	color: var(--text-color);
}

/********************************************************************************************************************/

/* ==================================================
   BOUTIQUE / CATÉGORIES PRODUITS
================================================== */

.shop-archive-header {
	padding: 4rem 0 0;
	margin-bottom:-40px !important;
}

.shop-archive-content {
	padding: 0 0 6rem;
}

/* Layout sidebar + produits */
.shop-layout {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	gap: 4rem;
	align-items: start;
}

/* Sidebar */
.shop-sidebar {
	position: sticky;
	top: 140px;
}

.shop-sidebar .shop-widget {
	margin-bottom: 2.5rem;
}

.shop-sidebar .shop-widget-title {
	margin: 0 0 1.25rem;
	font-size: 1.25rem;
}

.shop-sidebar ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.shop-sidebar li {
	margin: 0;
	padding: .45rem 0;
	list-style: none;
	border-bottom: 1px solid rgba(63, 46, 53, .12);
}

.shop-sidebar li:last-child {
	border-bottom: 0;
}

.shop-sidebar a {
	color: var(--text-color);
	text-decoration: none;
}

.shop-sidebar a:hover {
	color: var(--primary-color);
}

/* Grille produits */
.shop-products ul.products {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 3rem 2rem;
	margin: 0;
	padding: 0;
}

.shop-products ul.products::before,
.shop-products ul.products::after {
	display: none;
}

.shop-products ul.products li.product {
	float: none;
	width: auto;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Image */
.shop-products ul.products li.product a.woocommerce-LoopProduct-link {
	display: block;
	color: var(--text-color);
	text-decoration: none;
}

.shop-products ul.products li.product img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	margin: 0 0 1.5rem;
	object-fit: contain;
	background-color: var(--card-color);
}

/* Titre */
.shop-products ul.products li.product .woocommerce-loop-product__title {
	margin: 0 0 .6rem;
	padding: 0;
	color: var(--text-color);
	font-size: 1.25rem;
	line-height: 1.25;
}

/* Prix */
.shop-products ul.products li.product .price {
	display: block;
	margin: 0 0 1.25rem;
	color: var(--primary-color);
	font-size: 1rem;
	font-weight: 500;
}

/* Boutons */
.shop-products ul.products li.product .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	margin: 0;
	padding: 0 1.5rem;
	border: 0;
	border-radius: 50px;
	background-color: var(--primary-color);
	color: var(--btn-text-light);
	font-size: .875rem;
	font-weight: 500;
	text-decoration: none;
	transition: opacity .2s ease;
}

.shop-products ul.products li.product .button:hover {
	opacity: .8;
}

/* Pagination */
.shop-products .woocommerce-pagination {
	margin-top: 4rem;
}

/* TABLETTE */
@media (max-width: 1100px) {

	.shop-layout {
		grid-template-columns: 200px minmax(0, 1fr);
		gap: 2.5rem;
	}

	.shop-products ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

}

/* MOBILE */
@media (max-width: 767px) {

	.shop-archive-header {
		padding: 3rem 0;
	}

	.shop-layout {
		display: block;
	}

	.shop-sidebar {
		position: static;
		margin-bottom: 3rem;
	}

	.shop-products ul.products {
		grid-template-columns: 1fr;
		gap: 3rem;
	}

}

/* Hiérarchie des catégories de la boutique */
.shop-sidebar .product-categories > li {
	padding: .65rem 0;
	font-weight: 600;
}

.shop-sidebar .product-categories > li > a {
	font-size: 1rem;
}

.shop-sidebar .product-categories .children {
	margin: .5rem 0 0;
	padding-left: 1rem;
	border-left: 1px solid rgba(63, 46, 53, .2);
}

.shop-sidebar .product-categories .children li {
	padding: .35rem 0;
	border-bottom: 0;
	font-size: .875rem;
	font-weight: 400;
}

.shop-sidebar .product-categories .children a {
	opacity: .7;
}

.shop-sidebar .product-categories .children a:hover {
	opacity: 1;
}

.wc-block-product-categories-list > li > ul{margin:10px 0 0 20px;}

/********************************************************************************************************************/

.navbar-utility-menu {
	display: flex;
	align-items: center;
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.navbar-utility-menu li {
	margin: 0;
	padding: 0;
	list-style: none;
}

.navbar-utility-menu a {
	color: #fff;
	opacity:0.75;
	text-decoration: none;
	text-transform:uppercase;
	font-weight:500;
	font-size:0.75em;
}

.navbar-utility-menu a:hover{opacity:1;}

#navbar.scrolled .navbar-utility-menu a,
#navbar.no-hero .navbar-utility-menu a {
	color: var(--text-color);
}

/********************************************************************************************************************/

.single-vin-cart .input-person-wrap {
	display: inline-flex;
	align-items: center;
	gap: 0;
}

.single-vin-cart .input-person {
	width: 45px;
	height: 40px;
	margin: 0;
	padding: 0;
	border: 1px solid var(--text-color);
	border-left: 0;
	border-right: 0;
	border-radius: 0;
	background: #fff;
	color: var(--text-color) !important;
	text-align: center;
	font-size: 1rem;
	-moz-appearance: textfield;
}

.single-vin-cart .input-person::-webkit-inner-spin-button,
.single-vin-cart .input-person::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.single-vin-cart .person-qty-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 1px solid var(--text-color);
	background: #fff;
	color: var(--text-color);
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
}

.single-vin-cart .person-qty-btn:hover {
	background: var(--text-color);
	color: #fff;
}

/********************************************************************************************************************/

/********************************************************************************************************************/

/********************************************************************************************************************/

/********************************************************************************************************************/

/* CSS MEDIA QUERIES - WIDTH */

@media screen and (max-width: 1600px) {

}

@media screen and (max-width: 1450px) {

	.wrap{width:1100px;}

	.col-4 > * {
		flex: 1 1 calc((100% / 2) - 3rem + (3rem / 2));
	}

	.card:has(> .card-number):not(:last-child)::after {
		content: unset;
	}

}

@media screen and (max-width: 1280px) {

	.wrap{width:900px;}

	.gallery-container .gallery-item {
		width: calc((100% / 3) - 1.5rem + (1.5rem / 3));
	}

	.testimonial-message {
		font-size: 1.25rem;
	}

	/*===================================*/

	#home-content .section-6 {
		background-image: linear-gradient(to bottom, var(--bg-color-2) 90%, transparent 50%);
	}

	#home-content .section-8 .testimonial-container {
		width: 100%;
	}

	/*===================================*/

	#footer-newsletter {
		padding: 2rem;
	}

	#footer-newsletter > .wrap {
		width: 100%;
	}

}

@media screen and (max-width: 1024px) {

	.wrap{width:730px;}

	.col-3 > * {
		flex: 0 1 500px;
		max-width: 100%;
		margin: auto;
	}

	.split-section {
		flex-direction: column;
	}

	.split-section .section-media {
		max-width: 90%;
		order: 2;
	}

	.split-even > * {
		flex: 1 1 100%;
	}

	.image-card > img {
		width: 100%;
	}

	.full-width-banner .container > * {
		max-width: 65%;
	}

	.full-width-banner h2 {
		font-size: 2rem;
	}

	.gallery-container .gallery-item::after {
		width: 3rem;
		height: 3rem;
	}

	.form-container form {
		grid-template-columns: auto;
	}

	.cta-banner h2 {
		font-size: 2.2rem;
	}

	.grid-container {
		flex-direction: column;
	}

	.sidebar {
		width: 100%;
		max-width: 100%;
	}

	/*===================================*/

	#navbar #menu-btn {
		display: block;
	}

	#navbar.scrolled {
		padding: 1rem 0;
	}

	#navbar .menu {
		display: none;
	}

	/*===================================*/

	#hero-section .hero-content-inner {
		max-width: 100%;
	}

	#home-content .section-6 .container {
		flex-wrap: wrap;
		gap: 2rem;
		justify-content: center;
		text-align: center;
	}

	#home-content .section-6 .container .half-width {
		width: 100%;
	}

	/*===================================*/

	#page-hero {
		min-height: 400px;
	}

	#page-hero h1 {
		font-size: 3.3rem;
	}

	/*===================================*/

	#service-single .section-3 .text-block {
		padding: 0 0 4rem;
	}

	#service-single .section-3 .text-block::before {
		margin-top: -12rem;
	}

	#service-single .section-4 > .split-even > * {
		flex: 1 0 100%;
	}

	/*===================================*/

	#portfolio .sidebar-block {
		padding: 2rem 3rem;
	}

	#portfolio .filters {
		flex-direction: row;
		gap: 1.5rem 3rem;
		flex-wrap: wrap;
		justify-content: center;
	}

	#portfolio .filters button.active::after {
		position: absolute;
		bottom: -.75rem;
		left: 0;
		right: 0;
		margin: auto;
	}

	/*===================================*/

	#contact #main-form {
		width: 100%;
	}

	#contact .open-hours {
		width: 90%;
		max-width: 90%;
		bottom: 12%;
		left: 0;
		right: 0;
		margin: auto;
	}

	#contact .open-hours h2 {
		font-size: 1.5rem;
		text-align: center;
	}

	#map {
		min-height: 800px;
	}

	/*===================================*/

	#footer-newsletter .newsletter-container {
		width: 100%;
		flex-direction: column;
		text-align: center;
	}

	#footer-newsletter form {
		width: 100%;
	}
	
	/* =========== */
	
	.vins-grid {

		grid-template-columns: repeat(2, 1fr);
		gap: 2rem;

	}

	#home-content .section-vins {

		padding: 5rem 0;

	}

	#home-content .section-vins .text-block {

		margin-bottom: 3rem;

	}

	.vin-card-image {

		aspect-ratio: 4 / 5;

	}

	.vins-footer {

		margin-top: 3rem;

	}

}

@media screen and (max-width: 768px) {

	.wrap{width:500px;}

	.text-block > h2 {
		font-size: 1.75rem;
	}

	.center-block {
		max-width: 100%;
	}

	.card .card-title {
		font-size: 1.25rem;
	}

	.gallery-container .gallery-item {
		width: calc((100% / 2) - 1.5rem + (1.5rem / 2));
	}

	.full-width-banner .container > * {
		max-width: 85%;
	}

	.testimonial-message {
		font-size: 1rem;
	}

	.testimonial-name,
	.testimonial-company {
		font-size: 1.125rem;
	}

	.testimonial-container .slider-arrow {
		width: 2.5rem;
		height: 2.5rem;
	}

	.testimonial-container .slider-arrow-prev {
		left: 1rem;
	}

	.testimonial-container .slider-arrow-next {
		right: 1rem;
	}

	.cta-banner {
		min-height: 400px;
		padding: 3rem 2rem;
	}

	.cta-banner h2 {
		font-size: 2.2rem;
	}

	.cta-banner p {
		font-size: 1.2rem;
	}

	/*===================================*/

	#hero-section .hero-slide {
		background: var(--hero-image-mobile) no-repeat center center/cover;
	}
	
	#hero-section .hero-content {
		padding-bottom: 10%;
	}

	#hero-section .hero-content h1 {
		font-size: 2.25rem;
	}

	#hero-section .hero-content p {
		font-size: 1.25rem;
	}

	#home-content .section-5 .col-4 {
		max-width: 100%;
	}

	#home-content .section-8 {
		margin-bottom: 14rem;
	}

	#home-content .section-8 > .wrap {
		width: 90%;
	}

	#home-content .section-9 .split-section {
		grid-template-columns: auto;
	}

	#home-content .section-9 .section-media {
		grid-row: unset;
		order: 2;
	}

	#home-content .section-9 .contact-form {
		width: 100%;
		grid-column: unset;
		grid-row: unset;
		margin-left: 0;
	}

	/*===================================*/

	.page-content > section {
		margin: 5rem 0;
	}

	/*===================================*/

	#apropos .section-4 {
		background-image: linear-gradient(to bottom, var(--bg-color-2) 90%, transparent 10%);
	}

	#apropos .section-4 .split-even {
		max-width: 350px;
	}

	#apropos .section-4 .split-even .image-card {
		flex: 1 1 100%;
	}

	/*===================================*/

	#portfolio .gallery-item {
		width: 100%;
	}

	/*===================================*/

	#article-page h1 {
		font-size: 2.5rem;
	}

	/*===================================*/

	footer .footer-top {
		flex-wrap: wrap;
		gap: 3rem;
		padding: 3rem 0;
	}

	footer .footer-details {
		width: 100%;
	}

	footer .footer-menu {
		width: 45%;
		flex-grow: 1;
		margin-left: 0;
	}

	footer .footer-bottom {
		flex-direction: column;
		gap: 1.5rem;
	}

	footer .footer-bottom-links .menu {
		flex-wrap: wrap;
		justify-content: center;
	}

	#footer-newsletter form {
		flex-direction: column;
	}

	#subfooter {
		flex-direction: column;
		gap: 1rem;
	}
	
	#home-content .section-2 .section-2-cta {
		margin-top: 2.5rem;
	}

}

@media screen and (max-width: 550px) {

	.wrap{width: 90%;}

	.col-4 > * {
		flex: 1 1 100%;
	}
	
	.split-section .section-media {
		max-width: 85%;
	}

	.gallery-container {
		gap: .75rem;
	}

	.form-container {
		padding: 2rem;
	}

	.cta-banner {
		padding: 2rem 1rem;
	}

	.cta-banner h2 {
		font-size: 1.75rem;
	}

	/*===================================*/

	#mobile-menu {
		width: calc(100% - 6rem);
	}

	/*===================================*/

	#page-hero {
		min-height: 250px;
	}

	#page-hero h1 {
		font-size: 2.2rem;
		margin-bottom: 3vh;
	}

	/*===================================*/

	#apropos .stat-blocks {
		gap: 2rem;
	}

	#apropos .stat-blocks .stat {
		font-size: 2.5rem;
	}

	/*===================================*/

	#article-page h1 {
		font-size: 2rem;
	}

	/*===================================*/

	#contact .contact-item {
		grid-template-columns: 2rem 1fr;
	}

	#contact .contact-item::before {
		width: 2rem;
		height: 2rem;
		margin-top: .4rem;
	}

	#contact .contact-item p {
		font-size: 1rem;
		margin-bottom: 0;
	}

	#contact .contact-item a {
		font-size: 1.25rem;
	}

	#contact .open-hours {
		padding: 2rem;
	}

	#contact .open-hours ul > li {
		font-size: 1rem;
	}

	#map {
		min-height: 600px;
	}
	
	/* =========== */
	
	#home-content .section-vins {

		padding: 4rem 0;

	}

	#home-content .section-vins .text-block {

		margin-bottom: 2.5rem;

	}

	.vins-grid {

		grid-template-columns: repeat(2, 1fr);
		gap: 1.25rem .75rem;

	}

	.vin-card-image {

		aspect-ratio: 4 / 5;

	}

	.vin-card-content {

		padding: 1.25rem 1rem;

	}

	.vin-card-content h3 {

		font-size: 1.15rem;
		margin-bottom: .35rem;

	}

	.vin-card-price {

		font-size: .9rem;
		margin-bottom: 1rem;

	}

	.vin-card .btn-arrow {

		font-size: .75rem;

	}

	.vins-footer {

		margin-top: 2.5rem;

	}

}

@media screen and (max-width: 380px) {

	#mobile-menu {
		width: calc(100% - 4rem);
	}

	#navbar #menu-btn {
		width: 2rem;
		height: 2rem;
	}

}

/* CSS MEDIA QUERIES - HEIGHT */


@media screen and (max-height: 920px) {
	
}

@media screen and (max-height: 810px) {
	
}