@charset "UTF-8";

:root {
	--color-aqua: 32,171,160;
    --color-black: 0,0,0;
	--color-blue: 48,90,156;
	--color-coral: 232,87,83;
	--color-cyan: 194,222,223;
	--color-green: 73,155,109;
	--color-grey-9: 24,24,24;
	--color-grey-17: 44,44,44;
	--color-grey-53: 136,136,136;
	--color-grey-60: 153,153,153;
	--color-grey-98: 249,249,249;
	--color-pink: 244,163,172;
	--color-red: 207,46,33;
	--color-white: 255,255,255;
	--color-yellow: 247,202,69;
	
	--color-resto-italien: #50AE8C;
	--color-resto-asiatique: #D12C15;
	--color-resto-mediterraneen: #315C9B;
	--color-resto-reconfortant: #EB9049;
	--color-resto-sur-le-pouce: #A399FF;
	--color-resto-burger: #F9D77E;
	--color-resto-bar: #EF346C;
	--color-resto-brunch: #F19B8B;

    --transition-duration-bt: 0.4s;
	--transition-timing-linear: linear;
	--transition-timing-ease-out: cubic-bezier(0,0.6,0.4,1);
	--transition-timing-ease-in-out: cubic-bezier(0.6,0,0.4,1);
}

html {
	height: 100%;
	font-family: 'Poppins', sans-serif;
}

body {
	width: 100%;
	height: 100%;
	background: rgb(var(--color-white));
	overflow-y: scroll;
}

body.noscroll {
	overflow: hidden;
}

.notransition {
	transition: none !important;
}

*, ::before, ::after {
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
	-webkit-text-size-adjust: 100%;
}

img, iframe, video {
	display: block;
}

html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, hr, p, blockquote, pre, a, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figure, figcaption, hgroup, menu, footer, header, nav, button, section, summary, time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: none;
}

ul, li {
	list-style: none;
}

a {
	color: inherit;
	text-decoration: none;
}

h1, h2, h3, h4, h5, h6 {
	font-weight: normal;
}

button {
	background: none;
	border-radius: 0;
	cursor: pointer;
}

button::-moz-focus-inner {
    padding: 0;
    border: 0
}

*:focus {
    outline: 0;
}


/*************************************
	Header
 *************************************/


header {
    display: block;
    position: absolute;
	width: 100%;
    top: 0;
    background: rgba(var(--color-grey-98),1);
	border-bottom: solid 1px rgb(var(--color-grey-17));
    z-index: 200;
}

header.fixed {
    position: fixed;
	transition: background-color 0.4s 0.6s linear, transform 0.6s;
}

header.hide {
	transform: translateY(-100%);
}

header nav {
	display: flex;
	justify-content: space-between;
    max-width: 1920px;
    margin: 0 auto;
}

header nav ul.main-menu {
	display: flex;
    /*-- 6 * 8 --*/
	column-gap: min(48px, (48 / 1920) * 100vw);
	align-items: stretch;
    /*-- 8 * 8 --*/
	padding: 0 min(64px, (64 / 1920) * 100vw);
}

header nav ul.main-menu {
	flex-grow: 2;
}

header nav ul.main-menu li {
    display: flex;
    align-items: center;
}

header nav ul.main-menu li a {
	position: relative;
	color: rgb(var(--color-grey-17));
	font-weight: 500;
	font-size: clamp(14px, (16 / 1920) * 100vw, 16px);
	letter-spacing: 0.1em;
	line-height: 1em;
	text-transform: uppercase;
}

header nav ul.main-menu li.logo {
	flex-grow: 2;
}

header nav ul.main-menu li.logo a {
	display: table;
	border-right: solid 1px rgb(var(--color-grey-17));
    font-size: 0;
	padding: 12px min(64px, (64 / 1920) * 100vw) 12px 0;
}

header nav ul.main-menu li.logo a:after {
    content: "";
	display: block;
    width: clamp(163px, (235 / 1920) * 100vw, 235px);
    height: clamp(36px, (52 / 1920) * 100vw, 52px);
    background: url("../images/logo-ici-faubourg-boisbriand.svg") center center no-repeat;
    background-size: 100%;
}

header nav ul.main-menu li.wpml-ls-menu-item {
    border-left: solid 1px rgb(var(--color-grey-17));
    margin-left: min(16px, (16 / 1920) * 100vw);
    padding-left: min(64px, (64 / 1920) * 100vw);
}

header nav ul.main-menu li:not(.logo):not(.lang) a:after {
	content: "";
	display: block;
	position: absolute;
    width: 0;
	height: 2px;
	left: 0;
	bottom: 0;
    margin: 0 -5% clamp(-12px, (-12 / 1920) * 100vw, -6px) -5%;
    transition: width 0.3s cubic-bezier(0.25,0.25,0.25,1), height 0.3s 0.3s cubic-bezier(0.25,0.25,0.25,1);
}

header nav ul.main-menu li:not(.logo):not(.wpml-ls-menu-item) a:hover:after,
header nav ul.main-menu li:not(.logo):not(.wpml-ls-menu-item).current-menu-item a:after {
    width: 110%;
    height: clamp(4px, (8 / 1920) * 100vw, 8px);
}

header nav ul.main-menu li.commerces a:after {
	background: rgb(var(--color-yellow));
}

header nav ul.main-menu li.emplois a:after {
	background: rgb(var(--color-coral));
}

header nav ul.main-menu li.promos a:after {
	background: rgb(var(--color-green));
}

header nav ul.main-menu li.nouvelles a:after {
	background: rgb(var(--color-pink));
}

header nav ul.main-menu li.evenements a:after {
	background: rgb(var(--color-blue));
}

header nav ul.main-menu li.nous-joindre a:after {
	background: rgb(var(--color-aqua));
}

header .social-networks {
    display: none;
}


/*************************************
	Sections
 *************************************/


.container {
	display: flex;
	flex-direction: column;
	position: relative;
	width: 100%;
	height: 100%;
	min-height: 100%;
    padding-top: clamp(36px + 24px, ((52 / 1920) * 100vw) + 24px, 52px + 24px);
}

main {
	flex: 1 0 auto;
	display: block;
	position: relative;
    /*overflow: hidden;*/
}

section {
	display: block;
    position: relative;
    color: rgb(var(--color-black));
}

section:not(.header) + section,
section:last-of-type {
	padding-bottom: min(110px, (110 / 1920) * 100vw);
}

section > div {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    position: relative;
}

section:not(.header) > div {
    max-width: 1920px;
    margin: 0 auto;
    /*-- 22 * 8 --*/
	padding: 0 min(176px, ((176) / 1920) * 100vw);
}

section:not(.header) > div > div,
section:not(.header) > div > div.split-flex-2-1 > div {
    display: flex;
    flex-flow: column nowrap;
    align-items: flex-start;
    position: relative;
}

section:not(.header) > div > div:only-of-type {
    grid-column: 1 / -1;
}

section > div > div.indent {
    /*-- 22 * 8 --*/
	padding-left: min(176px, (176 / 1920) * 100vw);
	padding-right: min(176px, (176 / 1920) * 100vw);
}

section > div > div.split-flex-2-1 {
	flex-direction: row;
	column-gap: min(110px, (110 / 1920) * 100vw);
}

section > div > div.split-flex-2-1 > div:first-of-type {
	flex-grow: 2;
}

.no-margin {
    margin: 0 !important;
}

.no-padding:not(.w720) {
    padding: 0 !important;
}

section h1 {
    color: rgb(var(--color-grey-17));
    font-weight: 500;
    font-size: clamp(32px, (45 / 1920) * 100vw, 45px);
    letter-spacing: 0.1em;
    line-height: 1.2857em;
}

section h1:before {
    content: "";
    display: block;
    position: relative;
    width: 90px;
    height: 6px;
    margin-bottom: 0.5556em;
}

section h2 {
    display: block;
	min-height: 0vh;
    font-weight: 600;
    font-size: clamp(21px, (24 / 1366) * 100vw, 24px);
    letter-spacing: 0.08em;
    line-height: 1.2857em;
    text-transform: uppercase;
}

section h2.show {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.6s linear, transform 0.6s cubic-bezier(0.25,0.25,0.25,1);
	transition-delay: var(--transition-delay);
}

section h2.hide {
    opacity: 0;
    transform: translateY(1.25em);
}

section h4 {
    display: block;
    min-height: 0vh;
    font-weight: 400;
    font-size: clamp(18px, (20 / 1366) * 100vw, 20px);
    letter-spacing: 0.08em;
    line-height: 1.2857em;
	text-decoration: underline;
}

section p {
	min-height: 0vh;
    color: rgb(var(--color-grey-17));
    font-weight: 400;
    font-size: clamp(16px, (18 / 1366) * 100vw, 18px);
    letter-spacing: 0.08em;
    line-height: 1.2857em;
}

section h1 + p,
section h1 + h2,
section h2 + h4,
section p + h2,
section p + h4,
section * + p {
    margin-top: 1.2857em;
}

section h2 + p {
    margin-top: 0.64em;
}

section p.show {
    opacity: 1;
    transition: opacity 0.6s linear;
	transition-delay: var(--transition-delay);
}

section p.hide {
    opacity: 0;
}

section p a {
	text-decoration: underline;
}

strong {
    font-weight: 700;
}

sup {
	display: inline-block;
	position: relative;
	font-size: 0.6em;
	vertical-align: top;
	margin-top: -0.3em;
}

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

.flex-direction-row {
	flex-direction: row;
	column-gap: max(51px, (68 / 1366) * 100vw);
}

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

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

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

.text-decoration-underline {
	text-decoration: underline !important;
}

.text-transform-none {
	text-transform: none !important;
}

.text-transform-uppercase {
	text-transform: uppercase !important;
}

.white-space-nowrap {
	white-space: nowrap;
}

.grecaptcha-badge { 
    visibility: hidden;
}

section.header img {
    width: 100vw;
    height: auto;
}

section.header.commerces,
section.commerces h1:before {
    background: rgb(var(--color-aqua));
}

section.header.emplois,
section.emplois h1:before {
    background: rgb(var(--color-coral));
}

section.header.promos,
section.promos h1:before {
    background: rgb(var(--color-green));
}

section.header.nouvelles,
section.nouvelles h1:before {
    background: rgb(var(--color-pink));
}

section.header.restaurants,
section.restaurants h1:before {
    background: rgb(var(--color-red));
}

section.header.evenements,
section.evenements h1:before {
    background: rgb(var(--color-blue));
}

section.header.nous-joindre,
section.nous-joindre h1:before {
    background: rgb(var(--color-aqua));
}

section.path {
    padding-top: min(50px, (50 / 1920) * 100vw);
    padding-bottom: min(50px, (50 / 1920) * 100vw);
}

section.path > div > div {
    display: block;
    color: rgb(var(--color-grey-60));
    text-align: right;
}

section.path > div > div a {
	display: inline-block;
    color: rgb(var(--color-grey-60));
    font-weight: 600;
    font-size: 14px;
    letter-spacing: 0.08em;
    line-height: 1.2857em;
}

section.path > div > div a:last-of-type {
    color: rgb(var(--color-grey-17));
}

.bt,
.bt:after {
    display: inline-block;
	border: solid 1px rgb(var(--color-grey-17));
	font-size: 1em;
}

.bt {
	position: relative;
	background: transparent;
	color: rgb(var(--color-grey-17));
	padding: 0.75em 1.5em;
}

.bt + .bt  {
    margin-left: 1.5em;
}

.bt:after {
	content: attr(data-name);
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	width: 100%;
	height: 100%;
	left: -1px;
	top: -1px;
	background: rgb(var(--color-grey-17));
	color: rgb(var(--color-white));
	clip-path: inset(0 100% 0 0);
	transition: clip-path 0.4s cubic-bezier(0.25,0.25,0.25,1);
}

.bt:hover:after {
	clip-path: inset(0 0 0 0);
}

.bt.show:after {
    animation: kf-bt-show 0.4s cubic-bezier(0.25,0.25,0.25,1) backwards;
    animation-delay: var(--transition-delay);
}

@keyframes kf-bt-show {
    0%   {clip-path: inset(0 0 0 0);}
    100%  {clip-path: inset(0 0 0 100%);}
}

.boutiques h1 {
	align-self: center;
	font-weight: 700;
	font-size: 18px;
	letter-spacing: 0.08em;
    line-height: 1.2857em;
	text-align: center;
	text-transform: uppercase;
	margin-top: 30px;
	margin-bottom: 30px;
}

section > div > div.map-container {
    display: grid;
    grid-template-columns: 1fr auto;
    margin-left: min(88px, (88 / 1920) * 100vw);
}

.map {
	position: relative;
    margin: min(190px, (190 / 1920) * 100vw) 0 0 0;
    padding-top: calc((660 / 660) * 100%);
}

.map.scaled {
    border: solid 1px rgb(var(--color-grey-17));
    overflow: hidden;
}

.map-grp {
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    transition: width 0.4s cubic-bezier(0.25,0.25,0.25,1);
}

.map.scaled .map-grp {
    margin: 300px 0 0 0;
}

.map-scale {
    display: flex;
    flex-direction: column;
    row-gap: 4px;
    position: absolute;
    left: 8px;
    bottom: 8px;
    background: rgba(var(--color-white),0.75);
    padding: 4px;
}

.map-scale button {
    width: 48px;
    height: 48px;
    background: rgb(var(--color-aqua));
    color: rgb(var(--color-white));
    font-size: 32px;
}

.map div.info-window {
	display: none;
	position: absolute;
	background: rgb(var(--color-white));
	transform: translate(-35px, calc(-100% - 20px));
	z-index: 10;
}

.map div.info-window:before,
.map div.info-window:after {
	content: "";
	display: block;
	position: absolute;
	width: 0;
	height: 0;
	left: 20px;
	bottom: -20px;
	border-left: 15px solid transparent;
	border-right: 15px solid transparent;
	border-top: 20px solid rgb(var(--color-grey-17));
}

.map div.info-window.show {
	display: block;
}

.map div.info-window:after {
	bottom: -18px;
	border-top-color: rgb(var(--color-white));
}

.map div.info-window article h1 {
    border-bottom: solid 1px rgb(var(--color-black));
    text-align: center;
	padding: 0.435em;
}

.map div.info-window article h1 + p,
.map div.info-window article p:first-child {
    margin-top: 1em;
}

.map div.info-window article p + h1 {
    border-top: solid 1px rgb(var(--color-black));
	margin-top: 0.875em;
}

.map div.info-window article p,
.map div.info-window article ul,
.map div.info-window article table {
	padding: 0 1em;
}

.map div.info-window article table td {
	vertical-align: top;
	white-space: nowrap;
}

.map div.info-window article table td:not(:first-child) {
	text-align: right;
}

.map div.info-window article table td + td {
    padding-left: 0.5em;
}

.map div.info-window article a {
    text-decoration: none;
}

.map div.info-window article > *:last-child {
	padding-bottom: 1em;
}

.map div.info-window article figure picture img {
    width: 60%;
    height: auto;
    margin: 0 auto;
}

.map svg {
	position: relative;
	width: 100%;
	height: auto;
}

.map.scaled svg {
	cursor: move;
}

.map svg g#paysage-bckg {
	fill: #e5e5e5;
}

.map svg g#stationnements-reguliers * {
	fill: transparent;
	stroke: #999999;
	stroke-width: 0.25px;
}

.map svg g#stationnements-handicapes {
	fill: #999999;	
}

.map svg g#trottoirs {
	fill: #bfbfbf;
}

.map svg g#paysage {
	fill: #3db17f;
	stroke: #2b2b2b;
	stroke-width: 0.5px;
}

.map.location svg g#paysage {
	fill: rgb(var(--color-grey-17));
}

.map svg g#terrasses {
	fill: transparent;
	stroke: #2b2b2b;
	stroke-width: 0.25px;
	stroke-dasharray: 2;
}

.map svg g.shade {
	fill: transparent;
    transition: fill 0.4s 0.4s linear;
}

.map.highlight svg g.shade {
	fill: rgba(var(--color-white),0.75);
    transition-delay: 0s;
}

.map svg g#locaux .surface,
.map svg g#locaux .toit,
.map svg g#locaux-future .surface,
.map svg g#locaux-future .toit {
	fill: #CCCCCC;
	stroke: #2b2b2b;
	stroke-width: 0.5px;
}

.map svg g#locaux .transparent {
	stroke: none;
	opacity: 0;
    transition: opacity 0.4s linear;
}

.map svg g#locaux g.local:hover .transparent,
.map svg g#locaux g.local.hover .transparent,
.map svg g#locaux g.local.active .transparent {
	opacity: 0.5;
}

.map.location svg g#locaux .toit {
	fill: #888888;
}

.map svg g#locaux g.local .surface,
.map svg g#locaux g.local .toit {
	fill: #FFFFFF;
    transition: fill 0.4s linear;
}

.map svg g#locaux-future .surface,
.map svg g#locaux-future .toit {
	stroke-dasharray: 2;
}

.map svg g#locaux g.murs,
.map svg g#locaux-future g.murs {
	stroke: #2b2b2b;
	stroke-width: 0.5px;
}

.map svg g#locaux g.murs.sud *,
.map svg g#locaux-future g.murs.sud *,
.map svg g#locaux-future g.murs.nord * {
	fill: #333333;
}

.map svg g#locaux g.murs.sud-est *,
.map svg g#locaux-future g.murs.sud-est *,
.map svg g#locaux-future g.murs.nord-ouest * {
	fill: #666666;
}

.map svg g#locaux g.murs.est *,
.map svg g#locaux-future g.murs.est *,
.map svg g#locaux-future g.murs.ouest * {
	fill: #999999;
}

.map svg g#locaux g.local {
	cursor: pointer;
}

.map svg g#locaux g.local:nth-child(7n+1):hover .toit,
.map svg g#locaux g.local.hover:nth-child(7n+1) .toit,
.map svg g#locaux g.local.active:nth-child(7n+1) .toit {
    fill: rgb(var(--color-aqua));
}

.map svg g#locaux g.local:nth-child(7n+2):hover .toit,
.map svg g#locaux g.local.hover:nth-child(7n+2) .toit,
.map svg g#locaux g.local.active:nth-child(7n+2) .toit {
    fill: rgb(var(--color-blue));
}

.map svg g#locaux g.local:nth-child(7n+3):hover .toit,
.map svg g#locaux g.local.hover:nth-child(7n+3) .toit,
.map svg g#locaux g.local.active:nth-child(7n+3) .toit {
    fill: rgb(var(--color-coral));
}

.map svg g#locaux g.local:nth-child(7n+4):hover .toit,
.map svg g#locaux g.local.hover:nth-child(7n+4) .toit,
.map svg g#locaux g.local.active:nth-child(7n+4) .toit {
    fill: rgb(var(--color-cyan));
}

.map svg g#locaux g.local:nth-child(7n+5):hover .toit,
.map svg g#locaux g.local.hover:nth-child(7n+5) .toit,
.map svg g#locaux g.local.active:nth-child(7n+5) .toit {
    fill: rgb(var(--color-green));
}

.map svg g#locaux g.local:nth-child(7n+6):hover .toit,
.map svg g#locaux g.local.hover:nth-child(7n+6) .toit,
.map svg g#locaux g.local.active:nth-child(7n+6) .toit {
    fill: rgb(var(--color-pink));
}

.map svg g#locaux g.local:nth-child(7n+7):hover .toit,
.map svg g#locaux g.local.hover:nth-child(7n+7) .toit,
.map svg g#locaux g.local.active:nth-child(7n+7) .toit {
    fill: rgb(var(--color-yellow));
}

.map svg g#locaux-future g.local > g {
	display: none;
}

.map svg g#aire-de-jeux {
	pointer-events: none;
}

.map svg g#aire-de-jeux .toit {
	stroke: none;
}

.map svg g.local:not(.hover) g#aire-de-jeux .toit {
	fill: #000000;
}

.map svg g#escale path:nth-child(1) {
	fill: rgba(var(--color-white), 0.75);
}

.map svg g#locaux g[data-permalink*=aire-de-jeux].local .transparent,
.map svg g#locaux g[data-permalink*=escale].local .transparent {
	opacity: 0;
}

.tool-box {
	display: block;
    position: relative;
    min-height: 0vh;
	background: rgb(var(--color-white));
	border: solid 2px rgb(var(--color-black));
	color: rgb(var(--color-grey-9));
	font-weight: 500;
	font-size: clamp(16px, (20 / 1920) * 100vw, 20px);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 1.5em;
    overflow: hidden;
    transition: width 0.4s cubic-bezier(0.25,0.25,0.25,1);
}

.tool-box.expand {
    transition: width 0.4s cubic-bezier(0.25,0.25,0.25,1), height 0.4s 0.4s cubic-bezier(0.25,0.25,0.25,1);
}

.tool-box.right {
    margin-left: max(-176px, (-176 / 1920) * 100vw);
}

.tool-box.expand.right {
    margin-left: min(88px, (88 / 1920) * 100vw);
}

.tool-box > div,
.restaurants-list .tool-box form > ul > li > div,
.restaurants-list .tool-box form > ul > li > ul > li {
	border-bottom: solid 2px rgb(var(--color-black));
	color: rgb(var(--color-grey-53));
	font-size: clamp(14px, (18 / 1920) * 100vw, 18px);
	padding: 1.2857em 0;
}

.tool-box > div,
.restaurants-list .tool-box form > ul > li > div {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	min-height: 0vh;
}

.ico-dropdown:after {
	content: "";
	display: block;
	width: 1.7778em;
	height: 1.7778em;
	background-image: url("../images/ico-arrow.svg");
	background-position: center center;
	background-repeat: no-repeat;
	background-size: 100%;
    margin-left: 1.7778em;
	transform: rotate(-90deg);
	transform-origin: center center;
}

.ico-dropdown.open {
    background: rgb(var(--color-grey-17));
    color: rgb(var(--color-white));
    padding-right: 1.5em !important;
    padding-left: 1.5em !important;
    transition: padding 0.4s cubic-bezier(0.25,0.25,0.25,1);
}

.ico-dropdown.open:after {
	background-image: url("../images/ico-arrow-white.svg");
}

.restaurants-list > div {
	grid-template-columns: minmax(250px, 1fr) 1fr 1fr 1fr;
	column-gap: min(48px, (48 / 1920) * 100vw);
}

.restaurants-list .tool-box {
	align-self: start;
	position: sticky;
	top: 1.5em;
}

.restaurants-list .tool-box form {
	font-size: clamp(16px, (20 / 1920) * 100vw, 20px);
}

.restaurants-list .tool-box form,
.restaurants-list .tool-box form ul {
	width: 100%;
}

.restaurants-list .tool-box .ico-dropdown + ul {
	height: 0;
	overflow: hidden;
	transition: height 0.4s cubic-bezier(0.25,0.25,0.25,1);
}

.restaurants-list .tool-box form > ul > li > ul > li > label {
	display: flex;
	justify-content: space-between;
	font-size: clamp(14px, (18 / 1920) * 100vw, 18px);
}

.restaurants-list .tool-box form > ul > li > ul > li > label > span {
	position: relative;
    color: rgb(var(--color-black));
	opacity: 1;
}

.restaurants-list .tool-box form input[type="checkbox"] {
	align-self: auto;
}

.restaurants-list .tool-box form input[type="checkbox"]:before {
	width: 1em;
	height: 1em;
	border-width: 2px;
	font-size: clamp(14px, (18 / 1920) * 100vw, 18px);
	line-height: 1em;
}

.restaurants-list .tool-box form input[type="checkbox"]:checked:before {
    color: rgba(var(--color-black), 1);
}

.restaurants-list .results {
	grid-column-end: span 3;
}

ul.unordered-list {
	font-weight: 400;
	font-size: clamp(14px, (18 / 1920) * 100vw, 18px);
    letter-spacing: 0.08em;
    line-height: 1.2857em;
	margin-bottom: 1.5em;
}

ul.unordered-list:last-child {
	margin-bottom: 0 !important;
}

ul.unordered-list li {
    position: relative;
    margin-bottom: 0.5em;
    padding-left: 1.5em;
}

ul.unordered-list li:before {
    content: "•";
    display: inline-block;
    position: absolute;
    left: 0;
    font-size: 0.75em;
}

ol {
	display: block;
	list-style-type: decimal;
	margin-top: 1em;
	margin-bottom: 1em;
	margin-left: 0;
	margin-right: 0;
	padding-left: 40px;
}

ol li {
	display: list-item;
	list-style: decimal;
}

ol.alpha li {
	display: list-item;
	list-style: lower-alpha;
}

.commerces-search-results,
.commerces-list {
    display: none;
    color: rgb(var(--color-grey-17));
}

.commerces-search-results.show, 
.commerces-list.show {
    display: block;
    opacity: 1;
    animation: kf-fade-in 0.4s linear both;
}

.commerces-list.show {
    margin-top: 1.5em;
}

.commerces-search-results > li,
.commerces-list > li {
    border-bottom: solid 1px rgb(var(--color-grey-17));
    margin-bottom: 0.5em;
    padding-bottom: 0.5em;
}

.expandable-list > button {
    display: block;
    color: rgb(var(--color-grey-17));
    font-weight: 500;
    font-size: clamp(14px, (18 / 1920) * 100vw, 18px);
	letter-spacing: 0.08em;
    line-height: 1.2857em;
    text-align: left;
    text-transform: uppercase;
    cursor: pointer;
}

.expandable-list > button:after {
    content: "\f078";
    display: inline-block;
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: 10px;
    vertical-align: top;
    margin-left: 1em;
    transition: transform 0.4s;
}

.expandable-list.active button:after {
    transform: scaleY(-1);
}

.expandable-list ol,
.expandable-list ul {
    height: 0;
    overflow: hidden;
    transition: height 0.4s cubic-bezier(0.25,0.25,0.25,1);
}

.expandable-list li:first-of-type {
    margin-top: 10px;
}

.expandable-list li {
    margin-bottom: 2px;
}

.expandable-list.active ul.grid-list {
    padding: 20px 0;
}

.expandable-list ul.grid-list li {
    margin: 0;
}

.commerces-search-results > li.expandable-list button {
	display: none;
}

ul.emplois-list {
	display: table;
	width: 100%;
	min-height: 0vh;
	color: rgb(var(--color-grey-17));
	font-weight: 500;
	font-size: clamp(14px, (18 / 1920) * 100vw, 18px);
	letter-spacing: 0.08em;
	line-height: 1.2857em;
	text-transform: uppercase;
	margin-top: -3.2857em;
    /*-- 40 * 9 --*/
	/*padding-left: min(360px, (360 / 1920) * 100vw);*/
}

ul.emplois-list > li {
	display: table-row;
}

ul.emplois-list > li > span {
	display: table-cell;
	border-bottom: solid 1px rgb(var(--color-grey-17));
	padding: 1em 0;
	transition: background-color 0.2s linear, color 0.2s linear;
}

ul.emplois-list > li > span:last-of-type {
	vertical-align: middle;
}

ul.emplois-list > li:nth-child(even) > span {
	background: rgb(var(--color-grey-98));
}

ul.emplois-list > li:not(:first-of-type):hover > span {
	background: rgb(var(--color-grey-53));
	color: rgb(var(--color-white));
}

ul.emplois-list > li:first-of-type > span {
	color: rgb(var(--color-grey-53));
}

ul.emplois-next-page {
	display: flex;
	column-gap: 1.6667em;
	color: rgb(var(--color-grey-17));
	font-weight: 500;
	font-size: clamp(14px, (18 / 1920) * 100vw, 18px);
	letter-spacing: 0.08em;
	line-height: 1.2857em;
	margin-left: auto;
	padding: 1em 0;
}

ul.emplois-next-page li:first-of-type,
ul.emplois-next-page li:last-of-type {
	font-size: clamp(8px, (12 / 1920) * 100vw, 12px);
	opacity: 0.25;
}

.bt-next {
	display: block;
	width: 1.7778em;
	height: 1.7778em;
	background-image: url("../images/ico-arrow.svg");
	background-position: center center;
	background-repeat: no-repeat;
	background-size: 100%;
	transform: rotate(180deg);
	transform-origin: center center;
}

.bt-cta {
	display: flex;
	align-items: center;
	min-width: 192px;
	height: clamp(39px, (52 / 1920) * 100vw, 52px);
	color: rgb(var(--color-white));
	font-size: 14px;
	text-decoration: none;
	text-transform: uppercase;
}

.bt-cta span {
	flex-grow: 2;
	text-align: center;
    padding: 0 clamp(18px, (24 / 1920) * 100vw, 24px);
}

.bt-cta:after {
	content: "";
	display: inline-block;
	width: clamp(39px, (52 / 1920) * 100vw, 52px);
	height: 100%;
	background: url("../images/ico-arrow-white.svg") center center no-repeat;
	background-size: clamp(18px, (24 / 1920) * 100vw, 24px);
	border-right: solid 1px rgb(var(--color-white));
	transform: scaleX(-1);
}

.bt-cta.blue {
	background-color: rgb(var(--color-blue));
}

.bt-cta.coral {
	background-color: rgb(var(--color-coral));
}

.bt-cta.green {
	background-color: rgb(var(--color-green));
}

.promos-list,
.nouvelles-list,
.restaurants-list .results > ul {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr);
	grid-gap: min(24px, (24 / 1920) * 100vw);
}

.restaurants-list .results > ul {
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	width: 100%;
}

.nouvelles-list {
	grid-template-columns: 2fr 1fr;
}

.map div.info-window article,
.promos-list article,
.nouvelles-list article,
.restaurants-list .results article {
	border: solid 1px rgb(var(--color-black));
	font-size: 14px;
	letter-spacing: 0.08em;
}

.restaurants-list .results article {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.restaurants-list .results article div.info {
	flex-grow: 1;
	display: block;
}

.restaurants-list .results article div.info svg {
	width: auto;
	height: 14px;
}

.restaurants-list .results article div.info svg > * {
	fill: none;
	stroke: none;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 10px;
}

.restaurants-list .results article div.info svg > *.st0,
.restaurants-list .results article div.info svg > *.st2 {
	fill: none !important;
}

.restaurants-list .results article div.info svg > *.st2 {
	stroke: #fff !important;
}

.restaurants-list .results article.reconfortant div.info svg > *,
.restaurants-list .results article.comfort-food div.info svg > * {
	fill: var(--color-resto-reconfortant);
	stroke: var(--color-resto-reconfortant);
}

.restaurants-list .results article.sur-le-pouce div.info svg > *,
.restaurants-list .results article.on-the-go div.info svg > * {
	fill: var(--color-resto-sur-le-pouce);
	stroke: var(--color-resto-sur-le-pouce);
}

.restaurants-list .results article.bar div.info svg > *,
.restaurants-list .results article.bar-en div.info svg > * {
	fill: var(--color-resto-bar);
	stroke: var(--color-resto-bar);
}

.restaurants-list .results article.italien div.info svg > *,
.restaurants-list .results article.italian div.info svg > * {
	fill: var(--color-resto-italien);
	stroke: var(--color-resto-italien);
}

.restaurants-list .results article.asiatique div.info svg > *,
.restaurants-list .results article.asian div.info svg > * {
	fill: var(--color-resto-asiatique);
	stroke: var(--color-resto-asiatique);
}

.restaurants-list .results article.mediterraneen div.info svg > *,
.restaurants-list .results article.mediterranean div.info svg > * {
	fill: var(--color-resto-mediterraneen);
	stroke: var(--color-resto-mediterraneen);
}

.restaurants-list .results article.burger div.info svg > *,
.restaurants-list .results article.burger-en div.info svg > * {
	fill: var(--color-resto-burger);
	stroke: var(--color-resto-burger);
}

.restaurants-list .results article.brunch div.info svg > *,
.restaurants-list .results article.brunch-en div.info svg > * {
	fill: var(--color-resto-brunch);
	stroke: var(--color-resto-brunch);
}

.restaurants-list .results article.reconfortant div.info i,
.restaurants-list .results article.comfort-food div.info i {
	color: var(--color-resto-reconfortant);
}

.restaurants-list .results article.sur-le-pouce div.info i,
.restaurants-list .results article.on-the-go div.info i {
	color: var(--color-resto-sur-le-pouce);
}

.restaurants-list .results article.bar div.info i,
.restaurants-list .results article.bar-en div.info i {
	color: var(--color-resto-bar);
}

.restaurants-list .results article.italien div.info i,
.restaurants-list .results article.italian div.info i {
	color: var(--color-resto-italien);
}

.restaurants-list .results article.asiatique div.info i,
.restaurants-list .results article.asian div.info i {
	color: var(--color-resto-asiatique);
}

.restaurants-list .results article.mediterraneen div.info i,
.restaurants-list .results article.mediterranean div.info i {
	color: var(--color-resto-mediterraneen);
}

.restaurants-list .results article.burger div.info i,
.restaurants-list .results article.burger-en div.info i {
	color: var(--color-resto-burger);
}

.restaurants-list .results article.brunch div.info i,
.restaurants-list .results article.brunch-en div.info i {
	color: var(--color-resto-brunch);
}

.restaurants-list .results article div.info table table td + td {
	padding-left: 0.2em;
}

.promos-list article > div + div,
.nouvelles-list article > div + div,
.restaurants-list .results article > div + div {
	border-top: solid 1px rgb(var(--color-black));
	padding: 1em;
}

.promos-list article > div:last-of-type,
.nouvelles-list article > div:last-of-type,
.restaurants-list .results article > div:last-of-type {
	display: flex;
	justify-content: space-between;
	border-top: solid 1px rgb(var(--color-black));
	padding: 0;
}

.promos-list article > div:last-of-type > div,
.nouvelles-list article > div:last-of-type > div,
.restaurants-list .results article > div:last-of-type > div {
	display: flex;
	align-items: center;
	font-weight: 600;
	font-size: 15px;
	text-transform: uppercase;
	padding: 1em;
}

.nouvelles-list article > div:last-of-type > div:first-of-type,
.restaurants-list .results article > div:last-of-type > div:first-of-type,
.restaurants-list .results article div.info > table {
	flex-grow: 2;
	justify-content: center;
}

.promos-list article > div:last-of-type > div + div,
.nouvelles-list article > div:last-of-type > div + div,
.restaurants-list .results article > div:last-of-type > div + div,
.restaurants-list .results article div.info > div {
	border-left: solid 1px rgb(var(--color-black));
}

.promos-list article figure,
.nouvelles-list article figure,
.restaurants-list .results article figure {
	position: relative;
	margin: 6px;
	padding-top: calc(100% - 12px);
}

.restaurants-list .results article figure:after {
	content: "";
	display: block;
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
	background: rgba(255,0,0,0.1);
	mask-image: url("../images/mask-restaurants-img.svg");
	mask-size: 100%;
}

.restaurants-list .results article.reconfortant figure:after,
.restaurants-list .results article.comfort-food figure:after {
	background: var(--color-resto-reconfortant);
}

.restaurants-list .results article.sur-le-pouce figure:after,
.restaurants-list .results article.on-the-go figure:after {
	background: var(--color-resto-sur-le-pouce);
}

.restaurants-list .results article.bar figure:after,
.restaurants-list .results article.bar-en figure:after {
	background: var(--color-resto-bar);
}

.restaurants-list .results article.italien figure:after,
.restaurants-list .results article.italian figure:after {
	background: var(--color-resto-italien);
}

.restaurants-list .results article.asiatique figure:after,
.restaurants-list .results article.asian figure:after {
	background: var(--color-resto-asiatique);
}

.restaurants-list .results article.mediterraneen figure:after,
.restaurants-list .results article.mediterranean figure:after {
	background: var(--color-resto-mediterraneen);
}

.restaurants-list .results article.burger figure:after,
.restaurants-list .results article.burger-en figure:after {
	background: var(--color-resto-burger);
}

.restaurants-list .results article.brunch figure:after,
.restaurants-list .results article.brunch-en figure:after {
	background: var(--color-resto-brunch);
}

.nouvelles-list article:nth-child(odd) figure {
	padding-top: calc(50% - 12px);
}

.promos-list article figure img,
.nouvelles-list article figure img,
.restaurants-list .results article figure img {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
	object-fit: cover;
}

.restaurants-list .results article figure img {
	width: calc((100% * (250 / 300)) + 4px);
	height: calc((100% * (250 / 300)) + 4px);
	right: 0;
	bottom: 0;
	margin: auto;
	object-fit: contain;
}

.map div.info-window article h1,
.promos-list article h1,
.nouvelles-list article h1,
.restaurants-list .results article h1 {
	color: rgb(var(--color-black));
	font-weight: 600;
	font-size: 16px;
	letter-spacing: 0.08em;
    line-height: 1.2857em;
	text-transform: uppercase;
}

.boutiques h1:before,
.galerie h1:before,
.map div.info-window article h1:before,
.promos-list article h1:before,
.nouvelles-list article h1:before,
.evenements-list article h1:before,
.restaurants-list .results article h1:before {
    content: none;
}

.promos-list article h2,
.promos-list article h3,
.nouvelles-list article h2,
.nouvelles-list article h3,
.nouvelle article h3 {
	color: rgb(var(--color-grey-53));
	font-weight: 400;
	font-size: 12px;
	letter-spacing: 0.08em;
    line-height: 1.2857em;
	text-transform: uppercase;
}

.map div.info-window article p,
.promos-list article p,
.nouvelles-list article p {
	color: rgb(var(--color-black));
	font-weight: 400;
	font-size: 14px;
	letter-spacing: 0.08em;
    line-height: 1.2857em;
}

.map div.info-window article small,
.promos-list article small,
.nouvelles-list article small {
	font-weight: 500;
	font-size: 12px;
	text-transform: uppercase;
}

.map div.info-window article strong,
.promos-list article strong,
.nouvelles-list article strong,
.evenements-list article strong {
	font-weight: 600;
}

.restaurants-list .results article > div > table {
	width: 100%;
	border-spacing: 0.5em;
    border-collapse: separate;
}

.restaurants-list .results article table td {
	vertical-align: top;
}

.restaurants-list .results article table tr.horaire table {
	width: 100%;
}

.restaurants-list .results article table tr.horaire table td:first-child {
	width: 100%;
}

.restaurants-list .results article table tr.horaire table td:not(:first-child) {
	text-align: right;
}

.nouvelle {
    font-size: clamp(16px, (18 / 1366) * 100vw, 18px);	
}

.nouvelle div,
.nouvelle p {
	clear: both;
}

.nouvelle figure {
	margin-top: 1.2857em;
	margin: 2.5714em 0;
}

.nouvelle img {
	width: 100%;
	height: auto;
}

.nouvelle img.float-left {
	float: left;
	margin: 0 1em 1em 0; 
}

.nouvelle img.float-right {
	float: right;
	margin: 0 0 1em 1em; 
}

.nouvelle img.w-demi {
	width: 50%;
}

.nouvelle img.w-tier {
	width: 33%;
}

.nouvelle img.w-quart {
	width: 25%;
}

.evenements-list {
	display: grid;
	grid-template-columns: auto;
	grid-gap: min(64px, (64 / 1920) * 100vw);
}

.evenements-list article {
	display: grid;
	grid-template-columns: auto 1fr;
	grid-gap: min(40px, (40 / 1920) * 100vw);
	color: rgb(var(--color-grey-17));
}

.evenements-list article figure {
	position: relative;
}

.evenements-list article figure img {
	width: clamp(240px, (320 / 1920) * 100vw, 320px);
	height: clamp(240px, (320 / 1920) * 100vw, 320px);
	object-fit: cover;
}

.evenements-list article > div:nth-child(2) {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
}

.evenements-list article h1 {
	font-weight: 600;
	font-size: clamp(24px, (36 / 1920) * 100vw, 36px);
	letter-spacing: 0.08em;
    line-height: 1.2857em;
}

.evenements-list article h3 {
	font-weight: 600;
	font-size: clamp(14px, (20 / 1920) * 100vw, 20px);
	letter-spacing: 0.08em;
    line-height: 1.2857em;
}

.evenements-list article p:not(:last-of-type) {
    flex-grow: 2;
	font-weight: 400;
	font-size: clamp(16px, (18 / 1920) * 100vw, 18px);
	letter-spacing: 0.08em;
    line-height: 1.2857em;
}

p + figure {
    margin-top: 1.2857em;
}

p + figure img {
    width: 100%;
    height: auto;
}

section.galerie > div > div {
	display: grid;
	grid-template-columns: repeat(24, 1fr);
    grid-auto-rows: calc((20 / 1920) * 100vw);
	grid-auto-flow: dense;
	grid-gap: min(32px, (32 / 1920) * 100vw);
	padding-top: 0;
	padding-bottom: 0;
}

section.galerie > div > div > *,
section.galerie > div > div figure,
section.galerie > div > div picture {
	display: block;
	position: relative;
    width: 100%;
    height: 100%;
}

section.galerie > div > div > *.show {
	opacity: 1;
    transition: opacity 0.4s linear;
	transition-delay: var(--transition-delay);
}

section.galerie > div > div > *.hide {
	opacity: 0;
}

section.galerie > div > div picture img {
	position: absolute;
	width: 100%;
	height: 100%;
    object-fit: cover;
}

section.galerie .square {
	grid-column-end: span 7;
	grid-row-end: span 7;
}

section.galerie .square_large {
	grid-column-end: span 10;
	grid-row-end: span 10;
}

section.galerie .landscape {
	grid-column-end: span 14;
	grid-row-end: span 10;
}

section.galerie .portrait {
	grid-column-end: span 10;
	grid-row-end: span 17;
}

section.galerie .full-width {
	grid-column: 1 / -1;
	grid-row-end: span 14;
}

.grid-column-start {
    grid-column-start: var(--grid-column-start);
}

.grid-column-end {
    grid-column-end: var(--grid-column-end);
}

.grid-row-start {
    grid-row-start: var(--grid-row-start);
}

.grid-row-end {
    grid-row-end: var(--grid-row-end);
}


/*************************************
	Form
 *************************************/


form {
    display: flex;
	position: relative;
	font-size: 0px;
	counter-reset: inp_radio;
}

form input, 
form textarea,
form select,
form label,
form button[type="submit"],
form p {
    display: block;
    position: relative;
    color: rgb(var(--color-grey-17));
    font-family: 'Poppins', sans-serif;
    font-size: clamp(12px, (14 / 1920) * 100vw, 14px);
    letter-spacing: 0.08em;
    line-height: 1.2857em;
    margin: 0;
	padding: 0;
}

form.form-newsletter label {
    display: flex;
    align-items: center;
    border: solid 1px rgb(var(--color-grey-17));
}

form label.select {
	overflow: hidden;
}

form.form-newsletter input, 
form.form-newsletter textarea,
form.form-newsletter select,
form.form-newsletter label:not(.checkbox) span {
	padding: 0.85em 1.7em;
}

form input, 
form textarea,
form select {
	background: transparent;
	border: none;
    border-radius: 0;
    -webkit-appearance: none;
	appearance: none;
    transition: min-height 0.4s var(--transition-timing-ease-in-out);
}

form.form-newsletter input, 
form.form-newsletter textarea,
form.form-newsletter select {
    width: 340px;
}

form select {
	padding-right: 2.5em;
}

form textarea {
	height: calc(2.25em + 2px);
	transition: height 0.4s;
}

form textarea.focus-in {
	height: 4.75em;
}

form input:-webkit-autofill,
form input:-webkit-autofill:hover, 
form input:-webkit-autofill:focus, 
form input:-webkit-autofill:active {
    -webkit-text-fill-color: rgb(var(--color-grey-17));
	-webkit-box-shadow: 0 0 0 30px rgb(var(--color-grey-98)) inset !important;
	box-shadow: 0 0 0 30px rgb(var(--color-grey-98)) inset !important;
}

form input[type="radio"] {
	display: block;
	width: 0;
	background: transparent;
	border: none;
	margin: 0;
	padding: 0;
}

form input[type="radio"]:before {
	content: counter(inp_radio, upper-alpha);
	counter-increment: inp_radio;
	transition: color 0.2s linear;
}

form label.radio,
form input[type="radio"],
form label.checkbox,
form input[type="checkbox"] {
	cursor: pointer;
}

form label.select:after {
	content: "";
	display: block;
	position: absolute;
	width: 14px;
	height: 14px;
	right: 0.75em;
	top: 50%;
	border-right: solid 1px rgb(var(--color-grey-94));
	border-bottom: solid 1px rgb(var(--color-grey-94));
	transform: rotate(45deg) translate(-50%, -50%);
	transform-origin: center center;
}

form label {
	transition: padding 0.4s var(--transition-timing-ease-in-out);
}

form.show label {
	opacity: 1;
	transition: opacity 0.6s linear, padding 0.4s var(--transition-timing-ease-in-out);
}

form.show label:nth-child(2) {
	transition-delay: 0.1s;
}

form.show label:nth-child(3) {
	transition-delay: 0.2s;
}

form.show label:nth-child(4) {
	transition-delay: 0.3s;
}

form.show label:nth-child(5) {
	transition-delay: 0.4s;
}

form.show label:nth-child(6) {
	transition-delay: 0.5s;
}

form.show label:nth-child(7) {
	transition-delay: 0.6s;
}

form label:not(.checkbox) span {
    position: absolute;
    clip-path: inset(0 0 0 0);
    opacity: 0.5;
	transition: clip-path 0.4s cubic-bezier(0.25,0.25,0.25,1);
}

form label:not(.select):not(.radio).focus-in span {
    clip-path: inset(0 100% 0 0);
}

form label.radio {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-gap: 2em;
	transition: color 0.2s linear;
}

form label.checkbox {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-gap: 1em;
    margin:  2em 0;
    padding: 0;
    transform: none;
}

form label.checkbox span {
	align-self: center;
	text-transform: none;
}

form label + p {
	font-weight: 300;
	margin-top: 4em;
}

form input[type="checkbox"] {
    align-self: start;
	width: auto;
	height: auto;
	-webkit-appearance: none;
	appearance: none;
	border: none;
	font-size: 0;
	margin: 0;
	padding: 0;	
}

form input[type="checkbox"]:before{
	content: "\f00c";
	display: block;
	width: 2.25em;
	height: 2.25em;
	min-height: 0vh;
	background: transparent;
	border: solid 1px rgb(var(--color-black));
	color: rgba(var(--color-black), 0);
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	font-size: 14px;
	line-height: 2.25em;
	text-align: center;
	transition: color 0.2s linear;
}

form input[type="checkbox"]:checked:before {
    color: rgba(var(--color-black), 1);
}

form button[type="submit"] {
	padding: 0.85em 1.7em;
}

form button[type="submit"]:disabled {
	opacity: 0.25;
}

form.show button[type="submit"] {
	opacity: 1;
	transition: opacity 0.6s linear;
	transition-delay: 0.8s;
}

form label + button[type="submit"] {
    border-left: none;
}

.error {
	color: #FF0000 !important;
}

.takk {
	display: block;
	position: relative;
	animation: kf-fade-in 0.4s linear both;
}

form.form-search {
    justify-content: space-between;
    align-items: flex-end;
    column-gap: 1.7778em;
    width: 100%;
    font-size: clamp(14px, (18 / 1920) * 100vw, 18px);
}

form.form-search input, 
form.form-search textarea,
form.form-search select,
form.form-search label,
form.form-search button[type="submit"],
form.form-search p {
    font-size: clamp(14px, (18 / 1920) * 100vw, 18px);
}

form.form-search input, 
form.form-search textarea,
form.form-search select {
    width: 100px;
}

form.form-search button[type="submit"] {
    display: block;
	width: 32px;
	height: 32px;
    background: url("../images/ico-search.svg") center center no-repeat;
	background-size: 100%;
    padding: 0;    
}

form.form-search button[type="submit"].loading {
	background-image: url("../images/ico-search-loading.svg");
	pointer-events: none;
	transform-origin: center center;
	animation: kf-loading-anim 1s steps(8) 0s forwards infinite;
}

@keyframes kf-loading-anim {
    0%   {transform: rotate(0);}
    100%  {transform: rotate(360deg);}
}

/*form.form-rallye-rentree {
    font-family: 'Poppins', sans-serif;
	font-weight: 400;	
}

form.form-rallye-rentree .mc-field-group {
    display: flex !important;
	gap: 2rem !important;
}

form.form-rallye-rentree .mc-field-group input {
	text-indent: 1rem !important;
    background: none;
	border-color: #EFEDEA;
	border-radius: 4px;
}

form.form-rallye-rentree .mc-field-group input {
	border-color: var(--color-black);
}

form.form-rallye-rentree .mc-field-group input:focus {
    background: white !important;
    transition: var(--transition);
    border-color: white;
    outline: none !important;
}

form.form-rallye-rentree .button {
    clear: both;
    background-color: rgba(0, 0, 0, 0) !important;
    border: 1px solid white !important;
    font-size: 1rem !important;
	height: initial !important;
	padding: 8px 16px !important;
}

form.form-rallye-rentree .button {
    background-color: var(--color-black) !important;
    border-color: var(--color-black) !important;
	color: #FFFFFF !important;
	height: 100% !important;
	margin: 0 !important;
	padding: 16px !important;
}

form.form-rallye-rentree .button:hover {
	font-family: 'Poppins', sans-serif;
	font-weight: 500;
    background-color: white !important;
    color: var(--color-black) !important;
}

form.form-rallye-rentree #mc-embedded-subscribe-form div.mce_inline_error {
    background-color: rgba(0, 0, 0, 0) !important;
	font-size: 14px;
}*/


/*************************************
	Footer
 *************************************/


footer {
    background: rgb(var(--color-grey-98));
    border-top: solid 1px rgb(var(--color-grey-17));
    /*-- 8 * 9 --*/
	padding: clamp(48px, (60 / 1920) * 100vw, 60px) min(72px, (72 / 1920) * 100vw) clamp(24px, (36 / 1920) * 100vw, 36px) min(72px, (72 / 1920) * 100vw);
}

footer > div {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    position: relative;
    max-width: 1540px;
    color: rgb(var(--color-grey-17));
	font-size: clamp(12px, (14 / 1920) * 100vw, 14px);
    letter-spacing: 0.08em;
    margin: 0 auto;
}

footer > div + div {
    border-top: solid 1px rgb(var(--color-grey-17));
    margin-top: 24px;
    padding-top: 16px;
}

img.logo-footer {
    width: auto;
    height: 50px;
}

footer .legal > span + span:before {
    content: " - ";
}

footer .legal > span:nth-child(2):before {
    content: none;
}

.social-networks {
    display: flex;
    column-gap: 30px;
    min-height: 0vh;
}

.social-networks i {
    color: rgb(var(--color-grey-17));
    font-size: 28px;    
}


/*************************************
	Lightbox
 *************************************/


#lightbox, #lightbox .lightbox_bckg {
	position: fixed;
	display: none;
	left: 0px;
	top: 0px;
	width: 100%;
	height: 100%;
}

#lightbox {
	z-index: 2000;
}

#lightbox.show {
	display: block;
	animation: kf-fade-in 0.2s linear 0s forwards;
}

#lightbox .lightbox_bckg {
	display: block;
	background: rgba(var(--color-black),0.75);
}

#lightbox button.bt-close {
	width: 50px;
	height: 50px;
	color: rgb(var(--color-white));
	font-size: 32px;
	line-height: 50px;
	text-align: center;
}

#lightbox button.bt-close:after {
	content: "\2715";
}

#lightbox div.lightbox-container {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
    pointer-events: none;
}

#lightbox div.lightbox-content {
	display: block;
	position: relative;
	box-shadow: 0 0 30px rgba(var(--color-black), 0.5);
    pointer-events: auto;
}

#lightbox div.lightbox-content.galerie {
	display: flex;
	flex-flow: column nowrap;
	justify-content: space-between;
	align-items: flex-end;
	gap: 20px;
	width: calc(100vw - 40px);
	height: calc(100vh - 40px);
	background: rgba(var(--color-black),0.85);
	padding: 20px;
}

#lightbox div.lightbox-content.galerie div.media {
	flex-grow: 1;
	display: block;
	position: relative;
	width: 100%;
}

#lightbox div.lightbox-content.galerie iframe,
#lightbox div.lightbox-content.galerie img {
	display: block;
	position: absolute;
	width: 100%;
	height: 100%;
	animation: kf-fade-in 0.8s linear 0s forwards;
}

#lightbox div.lightbox-content.galerie img {
	object-fit: contain;
}

#lightbox div.lightbox-content.galerie div.ctrl-arr {
	display: flex;
	column-gap: 1px;
}

#lightbox div.lightbox-content.galerie div.ctrl-arr button {
    display: inline-block;
	position: relative;
	width: 50px;
	height: 50px;
    background: rgba(var(--color-white), 0.8);
	opacity: 0.2;
	pointer-events: none;
	transform: none;
}

#lightbox div.lightbox-content.galerie div.ctrl-arr button:after {
    content: "\f060";
    color: rgb(var(--color-black));
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: 18px;
    transition: color 0.4s;
}

#lightbox div.lightbox-content.galerie div.ctrl-arr button[data-dir="next"]:after {
    content: "\f061";
}

#lightbox div.lightbox-content.galerie div.ctrl-arr button.show {
	opacity: 1;
	pointer-events: auto;
}

#lightbox div.lightbox-content.galerie button.bt-close {
	position: relative;
	opacity: 1;
	pointer-events: auto;
}


/****  Year of the Tiger  ****/


#lightbox .lightbox-content.lb-year-of-the-tiger,
#lightbox .lightbox-content.lb-year-of-the-tiger img {
	width: 980px;
	height: 520px;
	object-fit: cover;
}

#lightbox .lightbox-content.lb-year-of-the-tiger {
	box-shadow: none;
}

#lightbox .lightbox-content.lb-year-of-the-tiger button.bt-close {
	position: absolute;
	right: 0px;
	top: 0px;
	transform: translateY(-100%);
}

@media screen and (max-width: 980px) and (orientation : landscape) {
	#lightbox .lightbox-content.lb-year-of-the-tiger,
	#lightbox .lightbox-content.lb-year-of-the-tiger img {
		width: calc((980 / 1024) * 100vw);
		height: calc((520 / 1024) * 100vw);
	}
}

@media screen and (max-width: 980px) and (orientation : portrait) {
    #lightbox .lightbox-content.lb-year-of-the-tiger,
	#lightbox .lightbox-content.lb-year-of-the-tiger img {
		width: calc((490 / 900) * 85vh);
		height: 85vh;
	}
}


@keyframes kf-fade-in {
    0%   {opacity: 0;}
    100%  {opacity: 1;}
}

.bp-960 {
    display: none;
}

@media screen and (max-width: 1280px) {
    header nav ul.main-menu {
        /*-- 4 * 8 --*/
        column-gap: min(32px, (32 / 1920) * 100vw);
        padding: 0 min(32px, (36 / 1920) * 100vw);
    }

    header nav ul.main-menu li.logo a {
        padding: 12px min(36px, (36 / 1920) * 100vw) 12px 0;
    }
    
    header nav ul.main-menu li.wpml-ls-menu-item {
        margin-left: min(4px, (4 / 1920) * 100vw);
        padding-left: min(36px, (36 / 1920) * 100vw);
    }
    
    section > div > div.indent {
        padding-left: 0;
        padding-right: 0;
    }
    
    section > div > div.map-container {
        margin-left: 0;
    }
    
    .promos-list {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .nouvelles-list {
        grid-template-columns: auto;
    }

    .nouvelles-list article figure,
    .nouvelles-list article:first-of-type figure,
	.nouvelles-list article:nth-child(odd) figure {
        padding-top: 0;
    }

    .nouvelles-list article figure img {
        position: relative;
        width: 100%;
        height: auto;
    }

    section.galerie > div > div {
        display: grid;
        grid-template-columns: repeat(24, 1fr);
        grid-auto-rows: min(22.5px, (22.5/ 1920) * 100vw);
        grid-auto-flow: dense;
        grid-gap: min(32px, (32 / 1920) * 100vw);
        padding-top: 0;
        padding-bottom: 0;
    }
	
	form.form-search button[type="submit"] {
		width: 24px;
		height: 24px;
	}
}

@media screen and (max-width: 960px) {
    .bp-960 {
        display: block;
    }

    header {
        min-height: 100vh;
        background: rgba(var(--color-grey-17),1);
        border-bottom: none;
        clip-path: polygon(0 0, 100% 0, 100% 92px, 0 92px);
        transition: clip-path 0.6s cubic-bezier(0.25,0.25,0.25,1);
    }
    
    body.nav-open {
        overflow: hidden;
    }
    
    body.nav-open header {
        clip-path: polygon(0 0, 100% 0, 100% 100vh, 0 100vh);
    }
    
    header nav {
        flex-direction: column;
        min-height: 100vh;
    }

    header nav ul.main-menu {
        display: block;
        padding: 0;
    }

    header nav ul.main-menu li {
        padding: 15px 30px;
    }
    
    header nav ul.main-menu li a {
        color: rgb(var(--color-white));
        font-size: clamp(14px, (16 / 375) * 100vw, 24px);
    }

    header nav ul.main-menu li.logo {
        padding-top: 24px;
        padding-bottom: 24px;
    }

    header nav ul.main-menu li.logo a {
        border-right: none;
        padding: 0;
    }
    
    header nav ul.main-menu li.logo a:after {
        width: 199px;
        height: 44px;
        background-image: url("../images/logo-ici-faubourg-boisbriand-white.svg");
    }

    img.logo-footer {
        width: auto;
        height: 44px;
    }

    header nav ul.main-menu li.logo + li {
        border-top: solid 1px rgb(var(--color-white));
        padding-top: 30px;
    }
    
    header nav ul.main-menu li.wpml-ls-menu-item {
        border-left: none;
        margin-left: 0;
        padding-left: 30px;
    }

    header nav ul.main-menu li:not(.logo):not(.wpml-ls-menu-item) a:after {
        margin-right: 0;
        margin-left: 0;
    }

    header nav ul.main-menu li:not(.logo):not(.wpml-ls-menu-item) a:hover:after,
    header nav ul.main-menu li:not(.logo):not(.wpml-ls-menu-item) a.current-menu-item:after {
        width: 100%;
    }
    
    header .social-networks {
        display: flex;
        justify-content: flex-end;
        border-top: solid 1px rgb(var(--color-white));
        color: rgb(var(--color-white));
        font-size: clamp(14px, (16 / 375) * 100vw, 24px);
        padding: 30px;
    }
    
    .social-networks {
        column-gap: 24px;
    }
    
    header .social-networks i,
    footer .social-networks i {
        color: rgb(var(--color-white));
    }
    
    
    /*--  nav ico  --*/


    header div.ico {
        display: block;
        flex-flow: column nowrap;
        justify-content: center;
        align-items: center;
        position: absolute;
        top: 34px;
        right: 30px;
        cursor: pointer;
        z-index: 20;
    }

    header div.ico > div {
        display: block;
        position: relative;
        width: 34px;
        height: 24px;
    }

    header div.ico span {
        display: block;
        position: absolute;
        width: 100%;
        height: 2px;
        background: rgb(var(--color-white));
        transition: width 0s 0.3s, background 0.3s 0.3s, opacity 0.3s 0.3s, top 0.3s 0.3s, transform 0.3s;
    }

    body.nav-open header div.ico span {
        background: rgb(var(--color-white));
        transition: width 0s 0.3s, background 0.3s, opacity 0.3s, top 0.3s, transform 0.3s 0.3s;
    }

    header div.ico span:nth-child(1) {
        top: 0px;
    }

    header div.ico span:nth-child(2) {
        top: calc(50% - 1px);
    }

    header div.ico span:nth-child(3) {
        top: calc(100% - 2px);
        right: 0;
    }

    body.nav-open header div.ico span:nth-child(1) {
        top: calc(50% - 1px);
        transform: rotate(45deg);
    }

    body.nav-open header div.ico span:nth-child(2) {
        opacity: 0;
    }

    body.nav-open header div.ico span:nth-child(3) {
        top: calc(50% - 1px);
        width: 100%;
        transform: rotate(-45deg);
    }

    
    /*--  Sections  --*/

    
    body .container {
        padding-top: 92px;
    }
    
    section:not(.header) + section,
    section:last-of-type {
        padding-bottom: 30px;
    }
    
    section:not(.header) > div {
        padding: 0 30px;
    }
    
    section > div > div.split-flex-2-1 {
        flex-direction: column;
        align-items: stretch;
    }

    section > div > div.split-flex-2-1 > div:first-of-type {
        flex-grow: 0;
    }
    
    section > div > div.split-flex-2-1 > div + div {
        margin-top: 30px;
    }
    
    section h1 {
        font-size: clamp(21px, (21 / 375) * 100vw, 32px);
    }
    
    section h2 {
        font-size: clamp(16px, (16 / 375) * 100vw, 24px);
    }
    
    section p {
        font-size: clamp(14px, (14 / 375) * 100vw, 18px);
    }
    
    section.path {
        padding-top: 60px;
        padding-bottom: 30px;
    }
    
    img.img-404 {
        display: block;
        width: 50%;
        height: auto;
        margin: 0 auto;
    }
    
    ul.emplois-list {
        display: block;
        margin-top: 30px;
        padding-left: 0;
    }
    
    ul.emplois-list > li {
        display: flex;
        flex-direction: column;
        border-bottom: solid 1px rgb(var(--color-grey-17));
        padding: 15px;
	    transition: background-color 0.2s linear, color 0.2s linear;
    }

    ul.emplois-list > li:first-of-type {
        display: none;
    }
    
    ul.emplois-list > li > span {
        order: 2;
        display: block;
        border: none;
        padding: .2857em 0 0 0;
    }
    
    ul.emplois-list > li > span:nth-child(3) {
        order: 1;
        color: rgb(var(--color-grey-60));
    }
    
    ul.emplois-list > li:nth-child(even) {
        background: rgb(var(--color-grey-98));
    }
    
    ul.emplois-list > li:not(:first-of-type):hover {
        background: rgb(var(--color-grey-53));
        color: rgb(var(--color-white));
    }
    
    ul.emplois-list > li:nth-child(even) > span,
    ul.emplois-list > li:not(:first-of-type):hover > span {
        background: transparent;
    }
    
    ul.emplois-list .bt-next {
        margin-left: auto;
    }
    
    .tool-box {
        font-size: clamp(14px, (14 / 375) * 100vw, 16px);
        padding: 1em;
    }

    .tool-box > div {
        padding: 1em 0;
    }

    
    .promos-list,
    .nouvelles-list {
        grid-template-columns: auto;
        grid-gap: 30px;
    }
    
    .promos-list article figure {
        padding-top: 0;
    }
    
    .promos-list article figure img {
        position: relative;
        width: min(480px, 100%);
        height: auto;
    }
    
    .evenements-list {
        grid-gap: 60px;
    }

    .evenements-list article {
        grid-template-columns: auto;
    }

    .evenements-list article figure img {
        width: min(380px, 100%);
        height: auto;
    }
	
	.nouvelle img.float-left,
	.nouvelle img.float-right {
		clear: both;
		margin: 0 0 1.2857em 0;
	}

	.nouvelle img.w-demi,
	.nouvelle img.w-tier,
	.nouvelle img.w-quart {
		width: 100%;
	}

    
    /*--  Form  --*/

    
    form.form-newsletter {
        flex-direction: column;
        align-items: flex-start;
        row-gap: 8px;
    }

    form.form-newsletter input, 
    form.form-newsletter textarea,
    form.form-newsletter select,
    form.form-newsletter label,
    form.form-newsletter button[type="submit"],
    form.form-newsletter p {
        color: rgb(var(--color-white));
    }
    
    form.form-newsletter p {
        font-size: 14px;
    }
    
    form.form-newsletter label {
        border: none;
        border-bottom: solid 1px rgb(var(--color-white));
    }

    form.form-newsletter input, 
    .form-newsletter textarea,
    .form-newsletter select,
    .form-newsletter label:not(.checkbox) span {
        padding: 0.85em 0;
    }

    .form-newsletter input, 
    .form-newsletter textarea,
    .form-newsletter select {
        width: calc(100vw - 60px);
    }
    
    .form-newsletter input:-webkit-autofill,
    .form-newsletter input:-webkit-autofill:hover, 
    .form-newsletter input:-webkit-autofill:focus, 
    .form-newsletter input:-webkit-autofill:active {
        -webkit-text-fill-color: rgb(var(--color-white));
        -webkit-box-shadow: 0 0 0 30px rgb(var(--color-grey-17)) inset !important;
        box-shadow: 0 0 0 30px rgb(var(--color-grey-17)) inset !important;
    }

    .form-newsletter label + button[type="submit"] {
        border-left: solid 1px;
    }
    
    .form-newsletter button[type="submit"] {
        margin-top: 16px;
    }
    
    .form-newsletter button br {
        display: none;
    }
    
    .form-newsletter .bt,
    .form-newsletter .bt:after {
        border-color: rgb(var(--color-white));
    }

    .form-newsletter .bt {
        color: rgb(var(--color-white));
    }
    
    .form-newsletter .bt:after {
        background: rgb(var(--color-white));
        color: rgb(var(--color-grey-17));
    }

    
    /*--  Footer  --*/
    
    
    footer {
        background: rgb(var(--color-grey-17));
        border-top: none;
        padding: 24px 30px;
    }
    
    footer > div {
        align-items: flex-start;
        color: rgb(var(--color-white));
        line-height: 1.5em;
    }
    
    footer > div:nth-child(1) {
        display: block;
    }
    
    footer > div:nth-child(1) > div:nth-child(1) {
        padding: 24px 0;
    }
    
    footer > div + div {
        padding-top: 12px;
        border-top: solid 1px rgb(var(--color-white));
    }
    
    footer .legal > span {
        display: block;
    }
    
    footer .legal > span + span:before {
        content: none;
    }
}

@media screen and (max-width: 640px) {
    section.galerie > div > div {
        grid-template-columns: auto;
        grid-auto-rows: auto;
        grid-gap: 30px;
    }

    section.galerie > div > div > *,
    section.galerie > div > div figure,
    section.galerie > div > div picture {
        width: auto;
        height: auto;
    }

    section.galerie > div > div picture img {
        position: relative;
        width: 100%;
        height: auto;
    }
    
    .grid-column-start {
        grid-column-start: auto;
    }

    .grid-column-end {
        grid-column-end: auto;
    }

    .grid-row-start {
        grid-row-start: auto;
    }

    .grid-row-end {
        grid-row-end: auto;
    }
    
    section > div > div.map-container {
        display: grid;
        grid-template-columns: auto;
    }
    
    .map {
        margin: 0;
        padding: 0;
    }

    .map svg,
    .map-scale {
        display: none;
    }
    
    .map-grp {
        position: relative;
        width: auto !important;
        height: auto !important;
        left: 0;
        top: 0;
        transition: none;
    }
    
    .map.scaled .map-grp {
        margin: 0;
    }
    
    .map div.info-window {
        display: none;
        position: relative;
        width: 100%;
        left: 0 !important;
        top: 0 !important;
        border: solid 1px rgb(var(--color-black));
        margin-bottom: 30px;
        transform: none;
        z-index: 10;
    }
    
    .map div.info-window:before,
    .map div.info-window:after {
        content: none;
    }

    .map div.info-window article h1 {
        border-bottom-width: 2px;
	    padding: 0.875em;
    }
    
    .tool-box.right,
    .tool-box.expand.right {
        margin-left: 0;
    }

    .restaurants-list > div {
		grid-template-columns: auto;
		grid-gap: 30px;
	}
	
	.restaurants-list .tool-box {
		align-self: stretch;
		position: relative;
		top: auto;
	}
	
	.restaurants-list .results {
		grid-column: 1 / -1;
	}
	
	.restaurants-list .results > ul {
		grid-gap: 30px;
	}
}

.body-preload,
.preload {
	display: none !important;
}