/* INOVU Où acheter — tabs « Boutiques en ligne » / « Les magasins », same
   look as the current inov-u.com page (logo tiles, grey stores panel with
   cyan names and separators), plus the map. */

.inoa,
.inoa *,
.inoa *::before,
.inoa *::after {
	box-sizing: border-box;
}

.inoa {
	--inoa-accent: #24B6CC;
	--inoa-accent-survol: #1D97AA;
	--inoa-texte: #50555B;
	--inoa-titre: #000000;
	--inoa-panneau: #F6F6F7;
	--inoa-tuile: #FFFFFF;
	--inoa-bord: #E6E6E6;
	--inoa-champ: #FFFFFF;
	color: var(--inoa-texte);
	font-family: Kanit, sans-serif;
}

body.dark .inoa {
	--inoa-accent: #6CC6D7;
	--inoa-accent-survol: #8AD3E0;
	--inoa-texte: rgba(255, 255, 255, 0.87);
	--inoa-titre: rgba(255, 255, 255, 0.87);
	--inoa-panneau: #1E1E1E;
	--inoa-tuile: #FFFFFF;
	--inoa-bord: #3F3F3F;
	--inoa-champ: #121212;
}

/* ---------- Tabs ---------- */

.inoa-onglets {
	display: flex;
	gap: 24px;
	margin-bottom: 24px;
}

.inoa.inoa .inoa-onglet,
.inoa.inoa .inoa-onglet:hover,
.inoa.inoa .inoa-onglet:focus {
	padding: 0 0 6px;
	border: 0;
	border-bottom: 2px solid transparent;
	border-radius: 0;
	background: transparent;
	color: var(--inoa-titre);
	font-family: inherit;
	font-size: 26px;
	font-weight: 400;
	line-height: 1.2;
	cursor: pointer;
	transition: color 0.2s, border-color 0.2s;
}

.inoa.inoa .inoa-onglet:hover {
	color: var(--inoa-accent);
}

.inoa.inoa .inoa-onglet[aria-selected="true"] {
	border-bottom-color: var(--inoa-accent);
}

.inoa.inoa .inoa-onglet:focus-visible {
	outline: 2px solid var(--inoa-accent);
	outline-offset: 4px;
}

/* ---------- Online shops ---------- */

.inoa-logos {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.inoa .inoa-logo {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	padding: 0;
	border: 3px solid var(--inoa-bord);
	border-radius: 20px;
	background-color: var(--inoa-tuile);
	transition: border-color 0.2s, box-shadow 0.2s;
}

/* Dark mode: the logo files are light, so they stay as they are (exact brand
   colours) but dimmed to grey instead of glaring white. */
body.dark .inoa .inoa-logo img {
	filter: brightness(0.78) contrast(1.05);
}

.inoa a.inoa-logo:hover,
.inoa a.inoa-logo:focus-visible {
	border-color: var(--inoa-accent);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
	outline: none;
}

/* The logo files are square with their own light background: they fill the
   tile (as on the current page) so no lighter square shows. */
.inoa .inoa-logo img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}

/* ---------- Stores ---------- */

.inoa-panneau#magasins {
	padding: 32px;
	border-radius: 20px;
	background-color: var(--inoa-panneau);
}

.inoa-recherche {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 12px;
}

.inoa .inoa-recherche input {
	flex: 1 1 260px;
	min-width: 0;
	height: 44px;
	padding: 0 16px;
	border: 1px solid var(--inoa-texte);
	border-radius: 22px;
	background-color: var(--inoa-champ);
	color: var(--inoa-texte);
	font-family: inherit;
	font-size: 16px;
}

.inoa .inoa-recherche input:focus {
	border-color: var(--inoa-accent);
	outline: 2px solid var(--inoa-accent);
	outline-offset: 0;
}

.inoa.inoa .inoa-bouton {
	height: 44px;
	padding: 0 24px;
	border: 1px solid var(--inoa-accent);
	border-radius: 22px;
	background-color: var(--inoa-accent);
	color: #FFFFFF;
	font-family: inherit;
	font-size: 15px;
	font-weight: 400;
	cursor: pointer;
	transition: background-color 0.2s, color 0.2s;
}

.inoa.inoa .inoa-bouton:hover {
	border-color: var(--inoa-accent-survol);
	background-color: var(--inoa-accent-survol);
	color: #FFFFFF;
}

.inoa.inoa .inoa-bouton--contour {
	background-color: transparent;
	color: var(--inoa-accent);
}

.inoa .inoa-resume {
	margin: 0 0 16px;
	font-size: 14px;
}

.inoa-contenu {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
	gap: 32px;
	align-items: start;
}

.inoa-carte {
	position: sticky;
	top: 120px;
	height: 560px;
	overflow: hidden;
	border-radius: 16px;
	background-color: var(--inoa-bord);
}

/* Dark mode: darkened map tiles. */
body.dark .inoa-carte .leaflet-tile-pane {
	filter: invert(1) hue-rotate(180deg) brightness(0.9) contrast(0.9);
}

.inoa-carte .leaflet-popup-content {
	font-family: Kanit, sans-serif;
	font-size: 13px;
	line-height: 1.4;
}

.inoa-table {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
	background: transparent;
}

.inoa .inoa-table th,
.inoa .inoa-table td {
	padding: 12px 10px;
	border: 0;
	border-bottom: 1px solid var(--inoa-accent);
	background: transparent;
	color: var(--inoa-texte);
	font-size: 14px;
	font-weight: 300;
	line-height: 1.45;
	text-align: left;
	vertical-align: top;
}

.inoa .inoa-table tbody tr:hover > * {
	background: transparent;
}

.inoa .inoa-table .inoa-table__nom {
	width: 32%;
	color: var(--inoa-accent);
	font-weight: 500;
	text-transform: uppercase;
	cursor: pointer;
}

.inoa .inoa-table td:nth-child(2) {
	font-weight: 500;
	text-transform: uppercase;
}

.inoa-table td span,
.inoa-table td a {
	display: block;
}

.inoa .inoa-table a {
	color: var(--inoa-texte);
	text-decoration: none;
}

.inoa .inoa-table a:hover {
	color: var(--inoa-accent);
}

.inoa .inoa-table .inoa-itineraire {
	margin-top: 4px;
	color: var(--inoa-accent);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.inoa-distance {
	display: block;
	margin-top: 4px;
	color: var(--inoa-texte);
	font-size: 13px;
	font-weight: 400;
	text-transform: none;
}

.inoa-distance:empty {
	display: none;
}

.inoa-pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px;
	margin-top: 20px;
}

.inoa.inoa .inoa-page {
	min-width: 34px;
	height: 34px;
	padding: 0 8px;
	border: 0;
	border-radius: 17px;
	background: transparent;
	color: var(--inoa-texte);
	font-family: inherit;
	font-size: 14px;
	cursor: pointer;
}

.inoa.inoa .inoa-page:hover {
	background: transparent;
	color: var(--inoa-accent);
}

.inoa.inoa .inoa-page:disabled {
	opacity: 0.3;
	cursor: default;
}

.inoa-points {
	display: inline-flex;
	align-items: center;
	padding: 0 2px;
}

.inoa.inoa .inoa-page.is-active {
	background-color: var(--inoa-accent);
	color: #FFFFFF;
}

/* ---------- Tablet and phone ---------- */

@media (max-width: 1024px) {
	.inoa-logos {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 14px;
	}

	.inoa-contenu {
		grid-template-columns: minmax(0, 1fr);
	}

	/* Map above the list. */
	.inoa-carte {
		position: relative;
		top: auto;
		order: -1;
		height: 320px;
	}
}

@media (max-width: 767px) {
	.inoa.inoa .inoa-onglet,
	.inoa.inoa .inoa-onglet:hover,
	.inoa.inoa .inoa-onglet:focus {
		font-size: 20px;
	}

	.inoa-logos {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}

	.inoa-panneau#magasins {
		padding: 16px;
	}

	.inoa-carte {
		height: 260px;
	}

	.inoa.inoa .inoa-bouton {
		flex: 1 1 auto;
	}

	/* One block per store. */
	.inoa-table,
	.inoa-table tbody,
	.inoa-table tr,
	.inoa .inoa-table th,
	.inoa .inoa-table td {
		display: block;
		width: 100%;
	}

	.inoa-table tr {
		padding: 12px 0;
		border-bottom: 1px solid var(--inoa-accent);
	}

	.inoa .inoa-table th,
	.inoa .inoa-table td {
		padding: 2px 0;
		border-bottom: 0;
	}

	.inoa .inoa-table .inoa-table__nom {
		width: 100%;
	}

	.inoa-table tr[hidden] {
		display: none;
	}
}
