/*
Theme Name: Labo Chabanier Astra Child
Theme URI: https://www.laboratoire-chabanier.fr/
Description: Theme enfant du theme Astra pour le site Laboratoire Chabanier.
Author: SLWD
Author URI: https://www.slwd.fr/
Template: astra
Version: 1.0.0
Text Domain: labo-chabanier-astra-child
*/

@font-face {
	font-family: "Raleway";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("assets/fonts/raleway/raleway-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Raleway";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("assets/fonts/raleway/raleway-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: "Raleway";
	font-style: italic;
	font-weight: 100 900;
	font-display: swap;
	src: url("assets/fonts/raleway/raleway-italic-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Raleway";
	font-style: italic;
	font-weight: 100 900;
	font-display: swap;
	src: url("assets/fonts/raleway/raleway-italic-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
	--labo-font-primary: "Raleway", Arial, sans-serif;
	--lc-header-height: 108px;
}

body,
button,
input,
select,
textarea,
.ast-button,
.button {
	font-family: var(--labo-font-primary);
}

body.lc-mobile-menu-open {
	overflow: hidden;
}

.lc-site-header {
	position: relative;
	z-index: 120;
	background: #18243a;
}

.lc-header-inner {
	width: min(1200px, calc(100% - 40px));
	margin: 0 auto;
}

.lc-header-inner {
	position: relative;
	z-index: 130;
	display: flex;
	align-items: center;
	gap: 36px;
	min-height: auto;
	padding: 5px 0;
}

.lc-offers-wrap {
	width: min(1120px, calc(100% - 40px));
	margin: 0 auto;
}

.lc-header-brand {
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
	text-decoration: none;
}

.lc-header-brand img {
	display: block;
	width: 70px;
	height: auto;
}

.lc-header-nav {
	display: flex;
	justify-content: flex-end;
	flex: 1 1 auto;
	min-width: 0;
}

.lc-header-menu,
.lc-mobile-menu {
	display: flex;
	align-items: center;
	gap: 32px;
	padding: 0;
	margin: 0;
	list-style: none;
}

.lc-header-menu a,
.lc-mobile-menu a {
	color: rgba(255, 255, 255, .54);
	font-size: 15px;
	line-height: 1.2;
	font-weight: 650;
	text-decoration: none;
	transition: color .18s ease;
}

.lc-header-menu a:hover,
.lc-header-menu a:focus,
.lc-header-menu .current-menu-item > a,
.lc-header-menu .current_page_item > a {
	color: #fff;
	outline: 0;
}

.lc-header-actions {
	display: flex;
	align-items: center;
	flex: 0 0 auto;
	gap: 12px;
}

.lc-header-pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	min-height: 28px;
	padding: 6px 12px;
	border-radius: 999px;
	font-size: 13px;
	line-height: 1;
	font-weight: 650;
	text-decoration: none;
	white-space: nowrap;
	transition: box-shadow .18s ease, transform .18s ease;
}

.lc-header-pill:hover,
.lc-header-pill:focus {
	box-shadow: 0 8px 20px rgba(0, 0, 0, .12);
	transform: translateY(-1px);
	outline: 0;
}

.lc-header-pill svg,
.lc-mobile-close svg,
.lc-offers-chevron svg,
.lc-offer-meta svg,
.lc-offer-dialog-lists svg,
.lc-offer-close svg,
.lc-offer-placeholder svg {
	width: 16px;
	height: 16px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.lc-header-pill-light {
	color: #18243a;
	background: #fff;
}

.lc-header-pill-accent {
	color: #fff;
	background: #31c5d8;
}

.lc-header-toggle,
.lc-mobile-close,
.lc-offers-tab,
.lc-offer-card,
.lc-offers-accordion,
.lc-offer-close {
	appearance: none;
	border: 0;
	font: inherit;
	cursor: pointer;
}

.lc-header-toggle {
	display: none;
	position: relative;
	width: 42px;
	height: 42px;
	margin-left: auto;
	padding: 0;
	color: #fff;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0;
	box-shadow: none !important;
	outline: 0;
}

.lc-header-toggle::before {
	content: "";
	position: absolute;
	inset: 13px 10px;
	background: currentColor;
	-webkit-mask: url("/wp-content/uploads/2023/03/Vector-1.svg") center / contain no-repeat;
	mask: url("/wp-content/uploads/2023/03/Vector-1.svg") center / contain no-repeat;
}

.lc-site-header .lc-header-toggle:hover,
.lc-site-header .lc-header-toggle:focus,
.lc-site-header .lc-header-toggle:active,
.lc-site-header .lc-header-toggle[aria-expanded="true"] {
	color: #fff;
	background: transparent !important;
	border-color: transparent !important;
	box-shadow: none !important;
	outline: 0 !important;
}

.lc-mobile-layer {
	position: absolute;
	top: 100%;
	right: 0;
	left: 0;
	z-index: 110;
	height: calc(100dvh - var(--lc-header-height));
	opacity: 0;
	pointer-events: none;
	transition: opacity .34s ease;
}

.lc-mobile-layer.is-open {
	opacity: 1;
	pointer-events: auto;
}

.lc-mobile-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(18, 24, 36, .32);
	backdrop-filter: blur(4px);
}

.lc-mobile-panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	display: flex;
	flex-direction: column;
	width: min(360px, 88vw);
	height: 100%;
	padding: 26px 24px 24px;
	background: #fff;
	box-shadow: -18px 0 54px rgba(18, 24, 36, .16);
	overflow-y: auto;
	transform: translate3d(100%, 0, 0);
	transition: transform .44s cubic-bezier(.22, 1, .36, 1);
	will-change: transform;
}

.lc-mobile-layer.is-open .lc-mobile-panel {
	transform: translate3d(0, 0, 0);
}

.lc-mobile-close {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	padding: 0;
	color: #101520;
	background: transparent;
}

.lc-mobile-nav {
	padding: 0;
}

.lc-mobile-menu {
	align-items: stretch;
	flex-direction: column;
	gap: 0;
}

.lc-mobile-menu li {
	border-bottom: 1px solid #edf0f3;
}

.lc-mobile-menu a {
	display: flex;
	justify-content: space-between;
	padding: 13px 0;
	color: #151a24;
	font-size: 17px;
	font-weight: 720;
}

.lc-mobile-actions {
	display: grid;
	gap: 10px;
	margin-top: auto;
	padding-top: 26px;
}

.lc-mobile-actions .lc-header-pill {
	min-height: 40px;
	font-size: 13px;
}

.lc-offers {
	--lc-ink: #151a24;
	--lc-text: #4f5663;
	--lc-muted: #7d8490;
	--lc-line: #e5e9ee;
	--lc-soft: #f7f9fb;
	--lc-soft-2: #eef8fa;
	--lc-accent: #151a24;
	color: var(--lc-text);
	background: #fff;
}

.lc-offers-hero {
	padding: 46px 0 18px;
	background: #fff;
}

.lc-offers-kicker {
	margin: 0 0 8px;
	color: var(--lc-accent);
	font-size: 12px;
	font-weight: 750;
	letter-spacing: 0;
	text-transform: uppercase;
}

.lc-offers h1 {
	margin: 0;
	color: var(--lc-ink);
	font-size: clamp(34px, 5vw, 54px);
	line-height: 1.04;
	font-weight: 850;
	letter-spacing: 0;
}

.lc-offers-intro {
	max-width: 620px;
	margin: 14px 0 0;
	color: var(--lc-muted);
	font-size: 18px;
	line-height: 1.55;
}

.lc-offers-content {
	padding: 20px 0 72px;
}

.lc-offers button:focus,
.lc-offers button:focus-visible,
.lc-offers [role="tab"]:focus,
.lc-offers [role="tab"]:focus-visible {
	color: inherit !important;
	background-color: inherit !important;
	border-color: var(--lc-line) !important;
	box-shadow: none !important;
	outline: 0 !important;
}

.lc-offers button::-moz-focus-inner {
	border: 0;
}

.lc-offers-tabs {
	display: inline-flex;
	gap: 4px;
	padding: 4px;
	margin: 0 0 32px;
	background: var(--lc-soft);
	border: 1px solid var(--lc-line);
	border-radius: 8px;
}

.lc-offers-tab {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	padding: 8px 15px;
	color: var(--lc-muted);
	background: transparent;
	border-radius: 6px;
	text-align: left;
	transition: color .18s ease, background-color .18s ease, box-shadow .18s ease;
}

.lc-offers-tab:hover,
.lc-offers-tab:focus {
	color: var(--lc-muted);
	background: transparent !important;
	border-color: transparent !important;
	box-shadow: none !important;
	outline: 0 !important;
}

.lc-offers-tab.is-active,
.lc-offers-tab.is-active:hover,
.lc-offers-tab.is-active:focus {
	color: var(--lc-ink);
	background: #fff !important;
	box-shadow: 0 1px 2px rgba(21, 26, 36, .06) !important;
}

.lc-offers-tab span {
	font-size: 15px;
	line-height: 1.15;
	font-weight: 750;
}

.lc-offers-tab small {
	color: currentColor;
	font-size: 12px;
	line-height: 1;
	opacity: .62;
}

.lc-offers-panel[hidden],
.lc-offers-accordion-panel[hidden],
.lc-offer-dialog-lists section[hidden] {
	display: none;
}

.lc-offers-family {
	padding: 0 0 34px;
	border-top: 1px solid var(--lc-line);
}

.lc-offers-family + .lc-offers-family {
	margin-top: 6px;
}

.lc-offers-accordion {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	gap: 20px;
	padding: 22px 0 18px;
	color: var(--lc-ink);
	background: transparent;
	text-align: left;
}

.lc-offers-accordion:hover,
.lc-offers-accordion:focus {
	color: var(--lc-ink);
	background: transparent !important;
	box-shadow: none !important;
	outline: 0 !important;
}

.lc-offers-accordion-main {
	display: inline-flex;
	align-items: center;
	min-width: 0;
	gap: 10px;
	font-size: 25px;
	line-height: 1.12;
	font-weight: 820;
	letter-spacing: 0;
}

.lc-offers-chevron {
	display: inline-grid;
	place-items: center;
	flex: 0 0 28px;
	width: 28px;
	height: 28px;
	color: var(--lc-muted);
	border: 1px solid var(--lc-line);
	border-radius: 50%;
	background: #fff;
}

.lc-offers-chevron svg {
	transition: transform .18s ease;
}

.lc-offers-accordion.is-open .lc-offers-chevron svg {
	transform: rotate(180deg);
}

.lc-offers-count {
	flex: 0 0 auto;
	color: var(--lc-muted);
	font-size: 14px;
	line-height: 1.2;
	font-weight: 650;
}

.lc-offers-accordion-panel {
	padding: 0 0 4px 38px;
}

.lc-offers-subgroup + .lc-offers-subgroup {
	margin-top: 30px;
}

.lc-offers-subgroup h2 {
	margin: 0 0 14px;
	color: var(--lc-ink);
	font-size: 17px;
	line-height: 1.25;
	font-weight: 760;
	letter-spacing: 0;
}

.lc-offers-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}

.lc-offer-card {
	display: grid;
	grid-template-columns: 88px minmax(0, 1fr);
	align-items: center;
	min-width: 0;
	min-height: 112px;
	padding: 12px;
	color: var(--lc-ink);
	background: #fff;
	border: 1px solid var(--lc-line);
	border-radius: 8px;
	text-align: left;
	transition: box-shadow .18s ease, transform .18s ease;
}

.lc-offer-card:hover,
.lc-offer-card:focus-visible {
	color: var(--lc-ink);
	background: #fff !important;
	border-color: var(--lc-line) !important;
	box-shadow: 0 8px 24px rgba(21, 26, 36, .08) !important;
	transform: translateY(-1px);
	outline: 0 !important;
}

.lc-offer-media {
	display: block;
	width: 72px;
	aspect-ratio: 1 / 1;
	background: var(--lc-soft);
	border-radius: 7px;
	overflow: hidden;
}

.lc-offer-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.lc-offer-placeholder {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	color: var(--lc-accent);
}

.lc-offer-placeholder svg {
	width: 28px;
	height: 28px;
}

.lc-offer-body {
	display: grid;
	align-content: center;
	gap: 8px;
	min-width: 0;
}

.lc-offer-title {
	color: var(--lc-ink);
	font-size: 17px;
	line-height: 1.24;
	font-weight: 760;
	letter-spacing: 0;
}

.lc-offer-meta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--lc-muted);
	font-size: 12px;
	line-height: 1.2;
	font-weight: 700;
	text-transform: uppercase;
}

.lc-offer-meta svg {
	width: 14px;
	height: 14px;
	color: var(--lc-accent);
}

.lc-offer-dialog {
	width: min(900px, calc(100% - 34px));
	max-height: min(820px, calc(100dvh - 34px));
	padding: 0;
	border: 0;
	border-radius: 8px;
	box-shadow: 0 22px 64px rgba(21, 26, 36, .18);
	overflow: auto;
}

.lc-offer-dialog::backdrop {
	background: rgba(21, 26, 36, .28);
	backdrop-filter: blur(4px);
}

.lc-offer-close {
	position: sticky;
	top: 18px;
	left: calc(100% - 50px);
	z-index: 2;
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	margin: 18px 18px -50px auto;
	color: #000;
	background: transparent;
	border-radius: 0;
}

.lc-offer-close:hover,
.lc-offer-close:focus {
	color: #000;
	background: transparent !important;
	box-shadow: none !important;
	outline: 0 !important;
}

.lc-offer-close:focus-visible {
	outline: 1px solid #000 !important;
	outline-offset: 4px;
}

.lc-offer-dialog-grid {
	display: grid;
	grid-template-columns: minmax(260px, 38%) 1fr;
	gap: 32px;
	padding: 38px;
}

.lc-offer-dialog-media {
	align-self: start;
	position: sticky;
	top: 28px;
	border-radius: 8px;
	overflow: hidden;
	background: var(--lc-soft);
}

.lc-offer-dialog-media img {
	display: block;
	width: 100%;
	aspect-ratio: 1.28 / 1;
	object-fit: cover;
}

.lc-offer-dialog-content h2 {
	margin: 0 44px 14px 0;
	color: var(--lc-ink);
	font-size: clamp(28px, 4vw, 38px);
	line-height: 1.08;
	font-weight: 850;
	letter-spacing: 0;
}

.lc-offer-dialog-description {
	margin: 0 0 20px;
	color: var(--lc-muted);
	font-size: 18px;
	line-height: 1.55;
}

.lc-offer-dialog-time {
	margin: 0 0 20px;
	color: var(--lc-accent);
	font-size: 13px;
	line-height: 1.3;
	font-weight: 800;
	text-transform: uppercase;
}

.lc-offer-dialog-tags {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-bottom: 26px;
}

.lc-offer-dialog-tags span {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 32px;
	padding: 6px 11px;
	color: var(--lc-ink);
	background: var(--lc-soft);
	border: 1px solid var(--lc-line);
	border-radius: 999px;
	font-size: 14px;
	line-height: 1.15;
	font-weight: 650;
}

.lc-offer-dialog-tags span:first-child::before {
	content: "";
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background: linear-gradient(180deg, #f7f7f7 0%, #b9bec7 52%, #f7f7f7 100%);
	box-shadow: inset 0 0 0 1px rgba(21, 26, 36, .05);
}

.lc-offer-dialog-lists {
	display: grid;
	gap: 24px;
}

.lc-offer-dialog-lists h3 {
	display: flex;
	align-items: center;
	gap: 9px;
	margin: 0 0 12px;
	color: var(--lc-ink);
	font-size: 19px;
	line-height: 1.22;
	font-weight: 780;
	letter-spacing: 0;
}

.lc-offer-dialog-lists h3 svg {
	width: 25px;
	height: 25px;
}

.lc-offer-dialog-lists ul {
	margin: 0;
	padding-left: 36px;
	color: var(--lc-muted);
	font-size: 16px;
	line-height: 1.55;
}

body.lc-offer-dialog-open {
	overflow: hidden;
}

.lc-site-footer {
	color: #fff;
	background: #18243a;
}

.lc-footer-main {
	padding: 74px 0 54px;
}

.lc-footer-inner,
.lc-footer-bottom-inner {
	width: min(1200px, calc(100% - 40px));
	margin: 0 auto;
}

.lc-footer-inner {
	display: grid;
	grid-template-columns: 1.25fr .9fr .9fr 1.1fr;
	gap: 64px;
	align-items: start;
}

.lc-footer-brand a,
.lc-footer-column a {
	color: inherit;
	text-decoration: none;
}

.lc-footer-brand img {
	display: block;
	width: 150px;
	height: auto;
}

.lc-footer-column h2 {
	margin: 0 0 24px;
	color: #fff;
	font-size: 16px;
	line-height: 1.2;
	font-weight: 800;
	letter-spacing: 0;
}

.lc-footer-column ul {
	display: grid;
	gap: 16px;
	padding: 0;
	margin: 0;
	list-style: none;
}

.lc-footer-column a {
	color: rgba(255, 255, 255, .84);
	font-size: 15px;
	line-height: 1.35;
	font-weight: 500;
	transition: color .18s ease;
}

.lc-footer-column a:hover,
.lc-footer-column a:focus {
	color: #fff;
	outline: 0;
}

.lc-footer-contact a {
	display: grid;
	grid-template-columns: 30px minmax(0, 1fr);
	align-items: center;
	gap: 8px;
}

.lc-footer-contact svg {
	width: 14px;
	height: 14px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.lc-footer-contact a::before {
	content: "";
	grid-column: 1;
	grid-row: 1;
	width: 30px;
	height: 30px;
	border: 1px solid rgba(255, 255, 255, .15);
	border-radius: 50%;
}

.lc-footer-contact svg {
	grid-column: 1;
	grid-row: 1;
	justify-self: center;
}

.lc-footer-contact span {
	grid-column: 2;
}

.lc-footer-bottom {
	background: #31c5d8;
}

.lc-footer-bottom-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	min-height: 64px;
}

.lc-footer-bottom p {
	margin: 0;
	color: #fff;
	font-size: 14px;
	line-height: 1.35;
	font-weight: 500;
}

.lc-footer-bottom a {
	color: #2560bb;
	text-decoration: none;
}

@media (max-width: 1180px) {
	.lc-header-inner {
		gap: 24px;
	}

	.lc-header-menu {
		gap: 22px;
	}

	.lc-header-actions {
		gap: 8px;
	}

	.lc-header-pill {
		padding-inline: 10px;
		font-size: 12px;
	}
}

@media (max-width: 1040px) {
	:root {
		--lc-header-height: 86px;
	}

	.lc-header-inner {
		min-height: 86px;
	}

	.lc-header-nav,
	.lc-header-actions {
		display: none;
	}

	.lc-header-toggle {
		display: block;
	}

	.lc-offers-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.lc-footer-inner {
		grid-template-columns: 1fr 1fr;
		gap: 44px 56px;
	}
}

@media (max-width: 840px) {
	.lc-offer-dialog-grid {
		grid-template-columns: 1fr;
		gap: 26px;
		padding: 32px;
	}

	.lc-offer-dialog-media {
		position: static;
		width: 50%;
	}

	.lc-footer-main {
		padding: 52px 0 42px;
	}

	.lc-footer-inner {
		grid-template-columns: 1fr;
		gap: 34px;
	}

	.lc-footer-brand img {
		width: 100px;
	}

	.lc-footer-column h2 {
		margin-bottom: 16px;
	}

	.lc-footer-column ul {
		gap: 12px;
	}
}

@media (max-width: 700px) {
	.lc-header-inner,
	.lc-offers-wrap {
		width: min(100% - 28px, 1200px);
	}

	.lc-offers-hero {
		padding: 38px 0 14px;
	}

	.lc-offers-intro {
		font-size: 17px;
	}

	.lc-offers-tabs {
		display: grid;
		grid-template-columns: 1fr;
		width: 100%;
	}

	.lc-offers-tab {
		justify-content: space-between;
	}

	.lc-offers-accordion-main {
		font-size: 22px;
	}

	.lc-offers-accordion-panel {
		padding-left: 0;
	}

	.lc-offers-grid {
		grid-template-columns: 1fr;
	}

	.lc-offer-card {
		grid-template-columns: 78px minmax(0, 1fr);
		min-height: 96px;
	}

	.lc-offer-media {
		width: 64px;
	}

	.lc-offer-dialog-content h2 {
		margin-right: 28px;
	}

	.lc-offer-dialog-lists h3 {
		font-size: 16px;
	}

	.lc-offer-dialog-description {
		font-size: 14px;
	}

	.lc-offer-dialog-tags span {
		font-size: 12px;
	}

	.lc-offer-dialog-lists ul {
		padding-left: 28px;
		font-size: 14px;
	}

	.lc-footer-inner,
	.lc-footer-bottom-inner {
		width: min(100% - 28px, 1200px);
	}

	.lc-footer-main {
		padding: 44px 0 36px;
	}

	.lc-footer-bottom-inner {
		align-items: flex-start;
		flex-direction: column;
		justify-content: center;
		min-height: 82px;
		gap: 6px;
	}
}

@media (max-width: 520px) {
	.lc-mobile-panel {
		width: min(340px, 90vw);
		padding: 24px 22px 22px;
	}

	.lc-mobile-menu a {
		padding: 12px 0;
		font-size: 16px;
	}

	.lc-mobile-nav {
		padding-top: 0;
	}

	.lc-mobile-actions .lc-header-pill {
		min-height: 38px;
		font-size: 12px;
	}
}

@media (max-width: 460px) {
	.lc-offers-accordion {
		align-items: flex-start;
		flex-direction: column;
		gap: 8px;
	}

	.lc-offer-dialog {
		width: calc(100% - 18px);
		max-height: calc(100dvh - 18px);
	}

	.lc-offer-dialog-grid {
		padding: 22px;
	}
}

/* ==========================================================================
   Page Contact (Gutenberg)
   ========================================================================== */
/* Shared design tokens for the custom Gutenberg pages (Contact, Notre métier). */
.lc-contact,
.lc-metier,
.lc-metier-hero,
.lc-galerie,
.lc-qsn,
.lc-qsn-hero,
.lc-qsn-team,
.lc-home,
.lc-home-hero,
.lc-home-intro,
.lc-home-cfao,
.lc-home-contact,
.lc-legal,
.lc-404 {
	--lc-navy: #1b273f;
	--lc-ink: #12171f;
	--lc-border: rgba(123, 128, 139, 0.46);
	--lc-soft: #f7f9fb;
	--lc-btn-bg: #01cbe0;
	--lc-btn-bg-hover: #03b6c9;
	font-family: var(--labo-font-primary);
}

.lc-contact {
	--lc-contact-navy: var(--lc-navy);
	--lc-contact-ink: var(--lc-ink);
	--lc-contact-border: var(--lc-border);
	--lc-contact-soft: var(--lc-soft);
	/* Where the navy background stops. 50% + equal vertical padding below
	   makes it land exactly on the middle of the card, at any card height. */
	--lc-contact-fill: 50%;
	--lc-contact-pad: 80px;
	position: relative;
	font-family: var(--labo-font-primary);
	padding-block: var(--lc-contact-pad);
}

/* Full-width navy band over the top half of a section. Shared by the Contact
   card and the Notre métier hero. 50% height + equal vertical padding makes it
   stop exactly on the middle of the block it sits behind. */
.lc-contact::before,
.lc-metier-hero::before,
.lc-qsn-hero::before,
.lc-home-hero::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: var(--lc-contact-fill, 50%);
	background-color: var(--lc-navy);
	z-index: 0;
}

/* The white container that sits on top of the navy background. */
.lc-contact__card {
	position: relative;
	z-index: 1;
	max-width: 1140px;
	margin-inline: auto;
	padding: 70px;
	gap: 50px;
	background: #fff;
	border-radius: 10px;
	box-shadow: 0 17px 15px rgba(0, 0, 0, 0.1);
}

/* Astra's page-builder template forces `max-width: none` on direct children
   of a full-width block; this higher-specificity rule keeps the content boxed. */
.ast-page-builder-template .entry-content[ast-blocks-layout] > .lc-contact > .lc-contact__card,
.ast-page-builder-template .entry-content[ast-blocks-layout] > .lc-metier > *,
.ast-page-builder-template .entry-content[ast-blocks-layout] > .lc-metier-hero > *,
.ast-page-builder-template .entry-content[ast-blocks-layout] > .lc-galerie > *,
.ast-page-builder-template .entry-content[ast-blocks-layout] > .lc-qsn > *,
.ast-page-builder-template .entry-content[ast-blocks-layout] > .lc-qsn-hero > *,
.ast-page-builder-template .entry-content[ast-blocks-layout] > .lc-qsn-team > *,
.ast-page-builder-template .entry-content[ast-blocks-layout] > .lc-home > *,
.ast-page-builder-template .entry-content[ast-blocks-layout] > .lc-home-hero > *,
.ast-page-builder-template .entry-content[ast-blocks-layout] > .lc-home-intro > *,
.ast-page-builder-template .entry-content[ast-blocks-layout] > .lc-home-cfao > *,
.ast-page-builder-template .entry-content[ast-blocks-layout] > .lc-home-contact > * {
	max-width: 1140px;
	margin-inline: auto;
}

/* …except the feature bands. .lc-metier is already full-bleed (alignfull =
   100vw), so the feature only needs to drop the 1140 cap and fill its parent
   edge to edge. Its inner content stays boxed at 1140px (.lc-metier__feature-inner). */
.ast-page-builder-template .entry-content[ast-blocks-layout] > .lc-metier > .lc-metier__feature {
	max-width: none;
	margin-inline: 0;
}

/* Astra pads every top-level block (incl. left/right) via
   --wp--custom--ast-default-block-*-padding. Drop the side padding on our
   sections so the full-bleed feature backgrounds reach the screen edges. */
.ast-page-builder-template .entry-content[ast-blocks-layout] > .lc-metier,
.ast-page-builder-template .entry-content[ast-blocks-layout] > .lc-metier-hero,
.ast-page-builder-template .entry-content[ast-blocks-layout] > .lc-qsn-hero,
.ast-page-builder-template .entry-content[ast-blocks-layout] > .lc-home-hero {
	padding-left: 0;
	padding-right: 0;
}

/* Boxed content keeps a gutter as the viewport approaches 1140px (the feature
   is not targeted here, so it keeps bleeding to the edges). */
@media (max-width: 1180px) {
	.lc-metier__title,
	.lc-metier__lead,
	.lc-metier__material {
		padding-inline: 20px;
	}
}

.lc-contact__col {
	flex-basis: 0;
	flex-grow: 1;
}

/* Vertical rhythm between stacked widgets, matching the original spacing. */
.lc-contact__col > * {
	margin-top: 16px;
	margin-bottom: 0;
}

.lc-contact__col > *:first-child {
	margin-top: 0;
}

.lc-contact__col > * + .lc-contact__title {
	margin-top: 32px;
}

.lc-contact .lc-contact__title {
	margin: 20px 0 0 0;
	font-family: var(--labo-font-primary);
	font-size: 20px;
	font-weight: 800;
	line-height: 1.3;
	color: var(--lc-contact-ink);
}

.lc-contact .lc-contact__text {
	font-size: 15px;
	font-weight: 500;
	line-height: 1.75;
	color: var(--lc-contact-ink);
}

/* --- Icon system ---------------------------------------------------------
   Icons live in CSS, not in the content: each element sets `--lc-icon` to an
   SVG and the shared ::before paints it with the current text colour. Add a
   new icon by defining `--lc-icon` on a selector — nothing to edit in the page.
   ------------------------------------------------------------------------- */
.lc-contact__line::before,
.lc-contact__disclosure > summary::before,
.lc-contact__btn--map .wp-block-button__link::before,
.lc-contact__btn--upload .wp-block-button__link::before,
.lc-metier__label::before {
	content: "";
	flex: none;
	width: 1.1em;
	height: 1.1em;
	background-color: var(--lc-icon-color, currentColor);
	-webkit-mask: var(--lc-icon) no-repeat center / contain;
	mask: var(--lc-icon) no-repeat center / contain;
	transition: transform 0.25s ease;
}

.lc-contact__line--phone {
	--lc-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M22%2016.92v3a2%202%200%200%201-2.18%202%2019.79%2019.79%200%200%201-8.63-3.07%2019.5%2019.5%200%200%201-6-6%2019.79%2019.79%200%200%201-3.07-8.67A2%202%200%200%201%204.11%202h3a2%202%200%200%201%202%201.72c.13.96.36%201.9.7%202.81a2%202%200%200%201-.45%202.11L8.09%209.91a16%2016%200%200%200%206%206l1.27-1.27a2%202%200%200%201%202.11-.45c.91.34%201.85.57%202.81.7A2%202%200%200%201%2022%2016.92Z%27%2F%3E%3C%2Fsvg%3E");
}

.lc-contact__line--address,
.lc-contact__btn--map .wp-block-button__link {
	--lc-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M20%2010c0%205-8%2012-8%2012S4%2015%204%2010a8%208%200%201%201%2016%200Z%27%2F%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2710%27%20r%3D%273%27%2F%3E%3C%2Fsvg%3E");
}

.lc-contact__disclosure > summary,
.lc-contact__btn--upload .wp-block-button__link {
	--lc-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%2016V4%27%2F%3E%3Cpath%20d%3D%27m7%209%205-5%205%205%27%2F%3E%3Cpath%20d%3D%27M5%2020h14%27%2F%3E%3C%2Fsvg%3E");
}

/* --- Buttons (native Button block + the disclosure toggle share a look) --- */
.lc-contact .lc-contact__btn .wp-block-button__link,
.lc-contact__disclosure > summary {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	width: fit-content;
	padding: 14px 26px;
	font-size: 15px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
	list-style: none;
	transition: transform 0.2s ease, background-color 0.2s ease,
		color 0.2s ease, border-color 0.2s ease;
}

.lc-contact__disclosure > summary::-webkit-details-marker {
	display: none;
}

/* Ghost toggle / button — "Envoi d'empreintes optiques". */
.lc-contact__disclosure > summary,
.lc-contact .lc-contact__btn--ghost .wp-block-button__link {
	color: var(--lc-contact-navy);
	background: #fff;
	border: 2px solid var(--lc-contact-border);
	border-radius: 40px;
}

/* Solid button — "M'y rendre". */
.lc-contact .lc-contact__btn--map .wp-block-button__link {
	color: var(--lc-navy);
	background-color: var(--lc-btn-bg);
	border: 2px solid var(--lc-btn-bg);
	border-radius: 28px;
}

.lc-contact .lc-contact__btn .wp-block-button__link:hover,
.lc-contact__disclosure > summary:hover {
	transform: translateY(-2px);
}

.lc-contact__disclosure > summary:hover,
.lc-contact .lc-contact__btn--ghost .wp-block-button__link:hover {
	border-color: var(--lc-contact-navy);
}

.lc-contact .lc-contact__btn .wp-block-button__link:hover::before,
.lc-contact__disclosure > summary:hover::before {
	transform: rotate(15deg);
}

/* --- "Envoi d'empreintes" disclosure panel ------------------------------- */
.lc-contact__disclosure {
	margin-top: 16px;
}

.lc-contact__disclosure[open] > summary {
	margin-bottom: 16px;
}

.lc-contact .lc-contact__panel {
	padding: 24px;
	background: var(--lc-contact-soft);
	border: 1px solid var(--lc-contact-border);
	border-radius: 14px;
}

.lc-contact .lc-contact__panel-title {
	margin: 0 0 8px;
	font-size: 17px;
	font-weight: 800;
	color: var(--lc-contact-ink);
}

.lc-contact .lc-contact__panel > p {
	font-size: 14px;
	line-height: 1.6;
	color: var(--lc-contact-ink);
}

.lc-contact .lc-contact__solution {
	gap: 14px;
}

.lc-contact .lc-contact__solution-logo {
	flex: none;
	margin: 0;
}

.lc-contact .lc-contact__solution-logo img {
	width: 48px;
	height: auto;
}

.lc-contact .lc-contact__solution-text {
	margin: 0;
	font-size: 14px;
	line-height: 1.45;
	color: var(--lc-contact-navy);
}

.lc-contact .lc-contact__solution-text strong {
	color: var(--lc-contact-ink);
}

.lc-contact .lc-contact__email-note {
	margin: 4px 0 0;
}

.lc-contact .lc-contact__email-note a {
	color: var(--lc-contact-navy);
	font-weight: 700;
}

/* --- Coordinates lines (icon + text) ------------------------------------- */
.lc-contact .lc-contact__line {
	position: relative;
	padding-left: 28px;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.55;
	color: var(--lc-contact-ink);
}

.lc-contact .lc-contact__line::before {
	position: absolute;
	left: 0;
	top: 0.2em;
	color: var(--lc-contact-navy);
}

.lc-contact .lc-contact__line a {
	color: inherit;
	text-decoration: none;
}

.lc-contact .lc-contact__line a:hover {
	text-decoration: underline;
}

/* --- Map ------------------------------------------------------------------ */
.lc-contact__map iframe {
	display: block;
	width: 100%;
	height: 320px;
	border: 0;
	border-radius: 12px;
	box-shadow: 0 15px 15px rgba(0, 0, 0, 0.1);
}

@media (max-width: 840px) {
	.lc-contact {
		--lc-contact-pad: 50px;
	}

	.lc-contact__card {
		padding: 30px;
		gap: 30px;
	}
}

@media (max-width: 520px) {
	.lc-contact__card {
		padding: 22px;
		border-radius: 8px;
	}
}

/* ==========================================================================
   Page Notre métier (Gutenberg)
   Reuses the shared tokens (--lc-navy/ink/border/soft) and the icon system.
   ========================================================================== */
.lc-metier {
	position: relative;
	padding-block: 30px 70px;
	color: var(--lc-ink);
}

/* Hero band section — its navy ::before is shared with the Contact card.
   Equal vertical padding + 50% band height => navy stops mid-hero card. */
.lc-metier-hero {
	position: relative;
	padding-block: 60px;
	color: var(--lc-ink);
}

.lc-metier-hero > * {
	position: relative;
	z-index: 1;
}

/* Rhythm between the main sections. */
.lc-metier > * + * {
	margin-top: 72px;
}

.lc-metier__hero-title,
.lc-metier__title,
.lc-metier__subtitle,
.lc-metier__feature-title {
	font-family: var(--labo-font-primary);
	font-weight: 800;
	line-height: 1.25;
	color: var(--lc-ink);
}

.lc-metier .lc-metier__text {
	font-size: 15px;
	font-weight: 500;
	line-height: 1.75;
	color: var(--lc-ink);
}

/* --- Hero card (floats on the navy band, like the Contact card) ----------- */
.lc-metier__hero {
	padding: 56px 60px 60px;
	border-radius: 14px;
	background-color: #fff;
	background-image: linear-gradient(
			90deg,
			#fff 30%,
			rgba(255, 255, 255, 0.55) 60%,
			rgba(255, 255, 255, 0) 100%
		),
		url("/wp-content/uploads/2024/11/admin-ajax-6-min-1.png");
	background-repeat: no-repeat, no-repeat;
	background-position: center, right center;
	background-size: cover, cover;
	box-shadow: 0 17px 15px rgba(0, 0, 0, 0.1);
}

.lc-metier-hero .lc-metier__hero-title {
	margin: 0 0 18px;
	max-width: 620px;
	font-size: 30px;
}

.lc-metier-hero .lc-metier__hero-text {
	margin: 0 0 28px;
	max-width: 560px;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.75;
	color: var(--lc-ink);
}

/* --- Badges --------------------------------------------------------------- */
.lc-metier__badges {
	max-width: 640px;
	gap: 24px;
}

.lc-metier__badge {
	display: flex;
	align-items: center;
	gap: 14px;
}

.lc-metier-hero .lc-metier__badge-logo {
	flex: none;
	margin: 0;
}

.lc-metier-hero .lc-metier__badge-logo img {
	width: 56px;
	height: auto;
}

.lc-metier-hero .lc-metier__badge-text {
	margin: 0;
	font-size: 14px;
	line-height: 1.4;
	color: var(--lc-ink);
}

.lc-metier-hero .lc-metier__badge-text strong {
	display: block;
}

/* --- "Des matériaux de qualité" intro ------------------------------------ */
.lc-metier .lc-metier__title {
	margin: 0 auto;
	font-size: 26px;
	text-align: center;
}

.lc-metier .lc-metier__lead {
	max-width: 760px;
	margin: 16px auto 0;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.7;
	text-align: center;
	color: var(--lc-ink);
}

.lc-metier__lead + .lc-metier__material {
	margin-top: 48px;
}

/* --- Material rows -------------------------------------------------------- */
.lc-metier__material {
	gap: 44px;
	align-items: center;
}

.lc-metier .lc-metier__photo {
	margin: 0;
}

.lc-metier .lc-metier__photo img {
	width: 100%;
	height: auto;
	border-radius: 12px;
	box-shadow: 0 15px 25px rgba(0, 0, 0, 0.12);
}

.lc-metier .lc-metier__subtitle {
	margin: 0 0 12px;
	font-size: 26px;
}

.lc-metier__material-body > * + * {
	margin-top: 10px;
}

/* Avantages / Inconvénients labels — icons reuse the shared mask system. */
.lc-metier .lc-metier__label {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 18px 0 4px;
	font-size: 15px;
	font-weight: 700;
	color: var(--lc-ink);
}

.lc-metier__label--pro {
	--lc-icon: url("/wp-content/uploads/2023/06/checkmark.svg");
	--lc-icon-color: #1f9d57;
}

.lc-metier__label--con {
	--lc-icon: url("/wp-content/uploads/2023/06/cancel-circle.svg");
	--lc-icon-color: #d0473f;
}

.lc-metier__label::before {
	width: 1.25em;
	height: 1.25em;
}

/* The checkmark glyph is inset inside its 32×32 viewBox while the cancel glyph
   fills it; enlarge the box so the check circle matches the cross visually. */
.lc-metier__label--pro::before {
	width: 1.55em;
	height: 1.55em;
}

/* --- Feature sections (CFAO, Artisanat) -----------------------------------
   The faded photo bleeds to the full viewport width (see the full-bleed rule
   in the Astra override above); the text stays boxed at 1140px via the inner
   wrapper, with the copy itself capped at 620px and pinned left / right.      */
.lc-metier__feature {
	padding-block: 64px;
	background-repeat: no-repeat;
	background-size: cover;
}

.lc-metier__feature-inner {
	max-width: 1140px;
	margin-inline: auto;
}

.lc-metier__feature--cfao {
	background-image: linear-gradient(
			90deg,
			#fff 32%,
			rgba(255, 255, 255, 0.45) 62%,
			rgba(255, 255, 255, 0) 100%
		),
		url("/wp-content/uploads/2024/11/admin-ajax-5-min-1.png");
	background-position: center, right center;
}

.lc-metier__feature--artisanat {
	background-image: linear-gradient(
			270deg,
			#fff 32%,
			rgba(255, 255, 255, 0.45) 62%,
			rgba(255, 255, 255, 0) 100%
		),
		url("/wp-content/uploads/2024/11/admin-ajax-4-min-1.png");
	background-position: center, left center;
}

.lc-metier .lc-metier__feature-body {
	max-width: 620px;
}

.lc-metier__feature--artisanat .lc-metier__feature-body {
	margin-left: auto;
	text-align: right;
}

.lc-metier .lc-metier__feature-title {
	margin: 0;
	font-size: 28px;
}

.lc-metier .lc-metier__feature-subtitle {
	margin: 4px 0 0;
	font-size: 16px;
	font-weight: 700;
	color: var(--lc-navy);
}

.lc-metier .lc-metier__feature-text {
	margin: 20px 0 0;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.8;
	color: var(--lc-ink);
}

/* --- Responsive ----------------------------------------------------------- */
@media (max-width: 840px) {
	.lc-metier {
		padding-block: 24px 40px;
	}

	.lc-metier-hero {
		padding-block: 40px 20px;
	}

	.lc-metier > * + * {
		margin-top: 48px;
	}

	.lc-metier__hero {
		padding: 32px 24px;
		background-image: none;
		background-color: var(--lc-soft);
	}

	.lc-metier__feature {
		padding-block: 40px;
		background-image: none;
		background-color: var(--lc-soft);
	}

	.lc-metier-hero .lc-metier__hero-title,
	.lc-metier-hero .lc-metier__hero-text {
		max-width: none;
	}

	.lc-metier__material {
		gap: 24px;
	}

	.lc-metier .lc-metier__feature-body {
		max-width: none;
		padding: 0 20px;
	}

	.lc-metier__feature--artisanat .lc-metier__feature-body {
		margin-left: 0;
		text-align: left;
	}
}

/* ==========================================================================
   Page Galerie (Gutenberg + shortcode [slwd_galerie])
   ========================================================================== */
.lc-galerie {
	position: relative;
	padding-block: 50px 80px;
	font-family: var(--labo-font-primary);
}

.lc-galerie .lc-galerie__title {
	margin: 0 0 40px;
	font-family: var(--labo-font-primary);
	font-size: 30px;
	font-weight: 800;
	line-height: 1.2;
	color: var(--lc-navy);
}

@media (max-width: 840px) {
	.lc-galerie {
		padding-block: 30px 50px;
	}

	.lc-galerie .lc-galerie__title {
		font-size: 25px;
		margin-bottom: 28px;
	}
}

/* ==========================================================================
   Page Qui sommes-nous (Gutenberg)
   Reuses shared tokens + the navy hero band; team via [slwd_staff].
   ========================================================================== */

/* --- Hero: white card on the navy half-band (like Contact / Notre métier) - */
.lc-qsn-hero {
	position: relative;
}
.lc-qsn-hero > * {
	position: relative;
	z-index: 1;
}
.lc-qsn__hero-card {
	max-width: 1140px;
	margin-inline: auto;
	padding: 48px 52px;
	gap: 40px;
	background: #fff;
	border-radius: 14px;
	box-shadow: 0 17px 15px rgba(0, 0, 0, 0.1);
}
.lc-qsn-hero .lc-qsn__hero-title {
	margin: 0 0 16px;
	font-family: var(--labo-font-primary);
	font-size: 30px;
	font-weight: 800;
	line-height: 1.2;
	color: var(--lc-ink);
}
.lc-qsn-hero .lc-qsn__hero-text {
	margin: 0 0 24px;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.7;
	color: var(--lc-ink);
}
.lc-qsn__badge {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 26px;
}
.lc-qsn-hero .lc-qsn__badge-logo {
	flex: none;
	margin: 0;
}
.lc-qsn-hero .lc-qsn__badge-logo img {
	width: 56px;
	height: auto;
}
.lc-qsn-hero .lc-qsn__badge-text {
	margin: 0;
	font-size: 14px;
	line-height: 1.4;
	color: var(--lc-ink);
}
.lc-qsn-hero .lc-qsn__badge-text strong {
	display: block;
}
.lc-qsn__hero-collage {
	gap: 14px;
	margin: 0;
}
.lc-qsn-hero .lc-qsn__hero-img {
	margin: 0 0 14px;
}
.lc-qsn-hero .lc-qsn__hero-img:last-child {
	margin-bottom: 0;
}
.lc-qsn-hero .lc-qsn__hero-img img {
	width: 100%;
	border-radius: 12px;
	box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}
.lc-qsn-hero .lc-qsn__hero-img--tall img {
	height: 100%;
	object-fit: cover;
}

/* --- Buttons (native, navy solid / ghost) -------------------------------- */
.lc-qsn__btns {
	gap: 12px;
	margin-top: 4px;
}
.lc-qsn .lc-qsn__btn .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	padding: 14px 24px;
	font-size: 15px;
	font-weight: 600;
	line-height: 1;
	border-radius: 999px;
	text-decoration: none;
	transition: transform 0.2s ease, background-color 0.2s ease,
		color 0.2s ease, border-color 0.2s ease;
}
.lc-qsn .lc-qsn__btn--solid .wp-block-button__link {
	color: var(--lc-navy);
	background-color: var(--lc-btn-bg);
	border: 2px solid var(--lc-btn-bg);
}
.lc-qsn .lc-qsn__btn--ghost .wp-block-button__link {
	color: var(--lc-navy);
	background-color: #fff;
	border: 2px solid var(--lc-border);
}
.lc-qsn .lc-qsn__btn .wp-block-button__link:hover {
	transform: translateY(-2px);
}
.lc-qsn .lc-qsn__btn--ghost .wp-block-button__link:hover {
	border-color: var(--lc-navy);
}

/* --- Generic content sections -------------------------------------------- */
.lc-qsn {
	position: relative;
	font-family: var(--labo-font-primary);
	padding-block: 56px;
}
.lc-qsn > * + * {
	margin-top: 56px;
}
.lc-qsn .lc-qsn__title {
	margin: 0;
	font-family: var(--labo-font-primary);
	font-size: 26px;
	font-weight: 800;
	line-height: 1.25;
	color: var(--lc-ink);
	text-align: center;
}
.lc-qsn > .lc-qsn__lead {
	max-width: 820px;
	margin: 14px auto 0;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.7;
	color: var(--lc-ink);
	text-align: center;
}
.lc-qsn .lc-qsn__timeline {
	margin: 8px auto 0;
}
.lc-qsn .lc-qsn__timeline img {
	border-radius: 12px;
}

/* Trust cards */
.lc-qsn__trust {
	gap: 24px;
	margin-top: 32px;
}
.lc-qsn__trust-card {
	padding: 28px;
	background: var(--lc-soft);
	border: 1px solid var(--lc-border);
	border-radius: 14px;
}
.lc-qsn .lc-qsn__trust-title {
	margin: 0 0 12px;
	font-size: 18px;
	font-weight: 800;
	color: var(--lc-ink);
}
.lc-qsn .lc-qsn__trust-text {
	margin: 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--lc-ink);
}

/* Certification */
.lc-qsn__cert {
	gap: 40px;
	padding: 36px;
	background: var(--lc-soft);
	border-radius: 16px;
}
.lc-qsn .lc-qsn__cert-img img {
	border-radius: 12px;
}
.lc-qsn .lc-qsn__cert-title {
	margin: 0 0 14px;
	font-size: 20px;
	font-weight: 800;
	line-height: 1.3;
	color: var(--lc-navy);
}
.lc-qsn .lc-qsn__cert-text {
	margin: 0;
	font-size: 15px;
	line-height: 1.7;
	color: var(--lc-ink);
}

/* "Comment nous trouver" */
.lc-qsn .lc-qsn__find-title {
	margin-bottom: 16px;
	text-align: left;
}
.lc-qsn__find-body > * + * {
	margin-top: 14px;
}
.lc-qsn .lc-qsn__text {
	font-size: 15px;
	font-weight: 500;
	line-height: 1.6;
	color: var(--lc-ink);
}
.lc-qsn .lc-qsn__hours {
	font-size: 15px;
	font-weight: 500;
	line-height: 1.9;
	color: var(--lc-ink);
}
.lc-qsn__map iframe {
	display: block;
	width: 100%;
	height: 340px;
	border: 0;
	border-radius: 12px;
	box-shadow: 0 15px 15px rgba(0, 0, 0, 0.1);
}

/* --- Team section (full-bleed light grey) -------------------------------- */
.lc-qsn-team {
	font-family: var(--labo-font-primary);
	padding-block: 60px;
	background: #ededf0;
}
.lc-qsn-team .lc-qsn-team__stat {
	margin: 0 0 6px;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--lc-navy);
}
.lc-qsn-team .lc-qsn-team__title {
	margin: 0;
	font-size: 28px;
	font-weight: 800;
	color: var(--lc-ink);
}
.lc-qsn-team .lc-qsn-team__lead {
	max-width: 720px;
	margin: 14px auto 36px;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.7;
	color: var(--lc-ink);
}
.lc-qsn-team .lc-qsn-team__contact {
	margin: 36px 0 0;
	font-size: 15px;
	color: var(--lc-ink);
}
.lc-qsn-team .lc-qsn-team__contact a {
	color: var(--lc-navy);
	font-weight: 700;
}

/* --- Responsive ----------------------------------------------------------- */
@media (max-width: 840px) {
	.lc-qsn__hero-card {
		padding: 28px 24px;
		gap: 24px;
	}
	.lc-qsn,
	.lc-qsn-team {
		padding-block: 40px;
	}
	.lc-qsn > * + * {
		margin-top: 40px;
	}
	.lc-qsn__cert {
		padding: 24px;
		gap: 22px;
	}
}

/* ==========================================================================
   Page d'accueil (Gutenberg)
   Reuses shared tokens + navy hero band; team reuses .lc-qsn-team.
   ========================================================================== */

/* --- Hero (white card on the navy half-band) ----------------------------- */
.lc-home-hero {
	position: relative;
}
.lc-home-hero > * {
	position: relative;
	z-index: 1;
}
.lc-home-hero__card {
	max-width: 1140px;
	margin-inline: auto;
	padding: 52px 56px;
	background-color: #fff;
	background-image: linear-gradient(
			90deg,
			#fff 36%,
			rgba(255, 255, 255, 0.6) 58%,
			rgba(255, 255, 255, 0) 100%
		),
		url("/wp-content/uploads/2024/01/photo-site3.png");
	background-repeat: no-repeat, no-repeat;
	background-position: center, right center;
	background-size: cover, cover;
	border-radius: 14px;
	box-shadow: 0 17px 15px rgba(0, 0, 0, 0.1);
}
.lc-home-hero__body {
	max-width: 560px;
}
.lc-home-hero .lc-home-hero__title {
	margin: 0 0 16px;
	font-family: var(--labo-font-primary);
	font-size: 32px;
	font-weight: 800;
	line-height: 1.15;
	color: var(--lc-ink);
}
.lc-home-hero .lc-home-hero__text {
	margin: 0 0 22px;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.7;
	color: var(--lc-ink);
}
.lc-home-hero .lc-home-hero__img img {
	width: 100%;
	border-radius: 14px;
	box-shadow: 0 14px 30px rgba(0, 0, 0, 0.12);
}
.lc-home-stats {
	gap: 32px;
	margin-bottom: 22px;
}
.lc-home-hero .lc-home-stat__num {
	margin: 0;
	font-size: 30px;
	font-weight: 800;
	line-height: 1;
	color: var(--lc-navy);
}
.lc-home-hero .lc-home-stat__label {
	margin: 4px 0 0;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.3;
	color: #7b808b;
}
.lc-home-badge {
	align-items: center;
	gap: 12px;
	margin-bottom: 26px;
}
.lc-home-hero .lc-home-badge__logo {
	flex: none;
	margin: 0;
}
.lc-home-hero .lc-home-badge__logo img {
	width: 54px;
	height: auto;
}
.lc-home-hero .lc-home-badge__text {
	margin: 0;
	font-size: 13px;
	line-height: 1.4;
	color: var(--lc-ink);
}
.lc-home-hero .lc-home-badge__text strong {
	display: block;
}

/* --- Buttons ------------------------------------------------------------- */
.lc-home__btns {
	gap: 12px;
	margin-bottom: 20px;
}
.lc-home-hero .lc-home__btn .wp-block-button__link,
.lc-home .lc-home__btn .wp-block-button__link,
.lc-home-intro .lc-home__btn .wp-block-button__link,
.lc-home-cfao .lc-home__btn .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	padding: 13px 24px;
	font-size: 15px;
	font-weight: 600;
	line-height: 1;
	border-radius: 999px;
	text-decoration: none;
	transition: transform 0.2s ease, background-color 0.2s ease,
		color 0.2s ease, border-color 0.2s ease;
}
.lc-home__btn--solid .wp-block-button__link {
	color: var(--lc-navy);
	background-color: var(--lc-btn-bg);
	border: 2px solid var(--lc-btn-bg);
}
.lc-home__btn--ghost .wp-block-button__link {
	color: var(--lc-navy);
	background-color: #fff;
	border: 2px solid var(--lc-border);
}
.lc-home__btn--light .wp-block-button__link {
	color: var(--lc-navy);
	background-color: #fff;
	border: 2px solid #fff;
}
.lc-home__btn .wp-block-button__link:hover {
	transform: translateY(-2px);
}
.lc-home__btn--ghost .wp-block-button__link:hover {
	border-color: var(--lc-navy);
}
/* "En savoir plus" link-style */
.lc-home-intro .lc-home__btn--link .wp-block-button__link,
.lc-home .lc-home__btn--link .wp-block-button__link {
	padding: 0;
	color: var(--lc-navy);
	background: transparent;
	border: 0;
	border-radius: 0;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 4px;
}
.lc-home__btn--link .wp-block-button__link:hover {
	transform: none;
	color: #01cbe0;
}

/* --- Generic sections ---------------------------------------------------- */
.lc-home,
.lc-home-intro,
.lc-home-contact {
	font-family: var(--labo-font-primary);
	padding-block: 60px;
}
.lc-home-intro {
	background: var(--lc-soft);
}
.lc-home-contact {
	background: #ededf1;
}
.lc-home .lc-home__title,
.lc-home-intro .lc-home__title,
.lc-home-contact .lc-home__title {
	margin: 0;
	font-family: var(--labo-font-primary);
	font-size: 28px;
	font-weight: 800;
	line-height: 1.25;
	color: var(--lc-ink);
}
.lc-home .lc-home__lead,
.lc-home-intro .lc-home__lead,
.lc-home-contact .lc-home__lead {
	max-width: 820px;
	margin: 16px auto 0;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.7;
	color: var(--lc-ink);
}

/* --- 3 feature cards ----------------------------------------------------- */
.lc-home-cards {
	gap: 28px;
	margin-top: 40px;
}
.lc-home-card {
	padding: 0;
	background: #fff;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 14px 30px rgba(0, 0, 0, 0.07);
}
.lc-home-intro .lc-home-card__img {
	margin: 0;
}
.lc-home-intro .lc-home-card__img img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}
.lc-home-intro .lc-home-card__title {
	margin: 22px 24px 10px;
	font-size: 20px;
	font-weight: 800;
	line-height: 1.2;
	color: var(--lc-ink);
}
.lc-home-intro .lc-home-card__text {
	margin: 0 24px;
	font-size: 14px;
	line-height: 1.6;
	color: var(--lc-ink);
}
.lc-home-card .lc-home__btns {
	margin: 16px 24px 26px;
}

/* --- Partners ------------------------------------------------------------ */
.lc-home-partners {
	gap: 34px 46px;
	margin-top: 36px;
	align-items: center;
}
.lc-home .lc-home-partners__logo {
	flex: 0 0 auto;
	margin: 0;
}
.lc-home .lc-home-partners__logo img {
	width: auto;
	max-width: 132px;
	max-height: 50px;
	object-fit: contain;
	filter: grayscale(1);
	opacity: 0.65;
	transition: filter 0.2s ease, opacity 0.2s ease;
}
.lc-home .lc-home-partners__logo:hover img {
	filter: grayscale(0);
	opacity: 1;
}

/* --- Sectors ------------------------------------------------------------- */
.lc-home-sectors {
	gap: 30px;
	margin-top: 40px;
}
.lc-home-sector {
	padding: 24px;
	background: #edeef1;
	border-radius: 16px;
}
.lc-home-sector__cover {
	margin: 0;
}
.lc-home-sector__cover img {
	width: 100%;
	height: 120px;
	object-fit: cover;
	border-radius: 12px;
}
.lc-home .lc-home-sector__title {
	margin: 18px 0 8px;
	font-size: 22px;
	font-weight: 800;
	color: var(--lc-ink);
}
.lc-home .lc-home-sector__text {
	margin: 0 0 16px;
	font-size: 14px;
	line-height: 1.55;
	color: var(--lc-ink);
}
.lc-home-sector__thumbs {
	gap: 12px;
	margin-top: 4px;
}
.lc-home-sector__thumb {
	margin: 0;
}
.lc-home-sector__thumb img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 10px;
}

/* --- CFAO band ----------------------------------------------------------- */
.lc-home-cfao {
	font-family: var(--labo-font-primary);
	padding-block: 56px;
	background-color: var(--lc-navy);
	background-image: url("/wp-content/uploads/2023/06/cfao-min.png");
	background-repeat: no-repeat;
	background-position: right center;
	background-size: auto 100%;
}
.lc-home-cfao .lc-home-cfao__title,
.lc-home-cfao .lc-home-cfao__text,
.lc-home-cfao .lc-home__btns {
	position: relative;
}
.lc-home-cfao .lc-home-cfao__title {
	margin: 0 0 12px;
	font-size: 26px;
	font-weight: 800;
	color: #fff;
}
.lc-home-cfao .lc-home-cfao__text {
	margin: 0 0 22px;
	font-size: 16px;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.85);
}

/* --- Contact ------------------------------------------------------------- */
.lc-home-contact__grid {
	gap: 36px;
	margin-top: 36px;
	align-items: stretch;
}
.lc-home-contact__form,
.lc-home-contact__info {
	padding: 30px;
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 14px 30px rgba(0, 0, 0, 0.06);
}
.lc-home-contact .lc-home-contact__line {
	margin: 0 0 18px;
	font-size: 15px;
	line-height: 1.5;
	color: var(--lc-ink);
}
.lc-home-contact .lc-home-contact__line strong {
	display: block;
	margin-bottom: 2px;
	color: var(--lc-navy);
}
.lc-home-contact .lc-home-contact__line a {
	color: var(--lc-ink);
	text-decoration: none;
}
.lc-home-contact .lc-home-contact__line a:hover {
	text-decoration: underline;
}

/* --- Responsive ---------------------------------------------------------- */
@media (max-width: 840px) {
	.lc-home-hero__card {
		padding: 28px 24px;
		gap: 26px;
	}
	/* La carte du héros est full-bleed (section sans padding latéral) : on lui
	   redonne une gouttière de 20px sur tablette/mobile. !important + spécificité
	   (0,2,0) pour battre les `margin-inline: auto` du conteneur de bloc WP et de
	   la règle de centrage Astra/1140. */
	.lc-home-hero .lc-home-hero__card,
	.lc-metier-hero .lc-metier__hero,
	.lc-qsn-hero .lc-qsn__hero-card {
		margin-left: 20px !important;
		margin-right: 20px !important;
	}
	.lc-home,
	.lc-home-intro,
	.lc-home-contact,
	.lc-home-cfao {
		padding-block: 40px;
	}
	.lc-home-stats {
		gap: 24px;
	}
}
@media (max-width: 600px) {
	.lc-home-partners {
		gap: 15px 15px;
	}
	.lc-home .lc-home-partners__logo img {
		max-width: 104px;
		max-height: 42px;
	}
}

/* --- Accueil : icônes (réassurance + boutons) ---------------------------- */
.lc-home-stat {
	padding-left: 0;
}
.lc-home-stat::before {
	content: "";
	display: block;
	width: 30px;
	height: 30px;
	margin-bottom: 10px;
	background-color: var(--lc-navy);
	-webkit-mask: var(--lc-icon) no-repeat center / contain;
	mask: var(--lc-icon) no-repeat center / contain;
}

.lc-home-stat--teeth {
	--lc-icon: url("/wp-content/uploads/2023/05/tooth-2.svg");
}
.lc-home-stat--exp {
	--lc-icon: url("/wp-content/uploads/2023/05/shield-1.svg");
}

/* Button leading icons */
.lc-home__btn--mail .wp-block-button__link::before,
.lc-home__btn--upload .wp-block-button__link::before {
	content: "";
	flex: none;
	width: 1.1em;
	height: 1.1em;
	margin-right: 9px;
	background-color: currentColor;
	-webkit-mask: var(--lc-icon) no-repeat center / contain;
	mask: var(--lc-icon) no-repeat center / contain;
}
.lc-home__btn--mail .wp-block-button__link {
	--lc-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%272%27%20y%3D%274%27%20width%3D%2720%27%20height%3D%2716%27%20rx%3D%272%27%2F%3E%3Cpath%20d%3D%27m22%207-8.97%205.7a1.94%201.94%200%200%201-2.06%200L2%207%27%2F%3E%3C%2Fsvg%3E");
}
.lc-home__btn--upload .wp-block-button__link {
	--lc-icon: url("/wp-content/uploads/2023/05/tooth-1.svg");
}

/* Button trailing arrow (En savoir plus / Voir les références / CFAO) */
.lc-home__btn--link .wp-block-button__link::after,
.lc-home__btn--light .wp-block-button__link::after,
.lc-home__btn--arrow .wp-block-button__link::after {
	content: "";
	flex: none;
	width: 1em;
	height: 1em;
	margin-left: 8px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M5%2012h14%27%2F%3E%3Cpath%20d%3D%27m12%205%207%207-7%207%27%2F%3E%3C%2Fsvg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M5%2012h14%27%2F%3E%3Cpath%20d%3D%27m12%205%207%207-7%207%27%2F%3E%3C%2Fsvg%3E") no-repeat center / contain;
	transition: transform 0.2s ease;
}
.lc-home__btn--link .wp-block-button__link:hover::after,
.lc-home__btn--light .wp-block-button__link:hover::after,
.lc-home__btn--arrow .wp-block-button__link:hover::after {
	transform: translateX(3px);
}

/* ==========================================================================
   Pages légales (RGPD) — modèle template-legal.php
   ========================================================================== */
.lc-legal {
	font-family: var(--labo-font-primary);
	padding-block: 56px 80px;
}
.lc-legal-wrap {
	width: min(860px, calc(100% - 40px));
	margin: 0 auto;
}
.lc-legal-head {
	margin-bottom: 36px;
	padding-bottom: 28px;
	border-bottom: 1px solid var(--lc-border);
}
.lc-legal-eyebrow {
	margin: 0 0 8px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #01cbe0;
}
.lc-legal .lc-legal-title {
	margin: 0;
	font-size: 34px;
	font-weight: 800;
	line-height: 1.15;
	color: var(--lc-ink);
}
.lc-legal-updated {
	margin: 12px 0 0;
	font-size: 14px;
	color: #7b808b;
}
.lc-legal-content {
	font-size: 15px;
	line-height: 1.75;
	color: #3c424e;
}
.lc-legal-content h2 {
	margin: 38px 0 14px;
	font-size: 22px;
	font-weight: 800;
	line-height: 1.3;
	color: var(--lc-ink);
}
.lc-legal-content > h2:first-child,
.lc-legal-content > *:first-child h2 {
	margin-top: 0;
}
.lc-legal-content h3 {
	margin: 26px 0 10px;
	font-size: 18px;
	font-weight: 700;
	color: var(--lc-ink);
}
.lc-legal-content h4 {
	margin: 22px 0 8px;
	font-size: 16px;
	font-weight: 700;
	color: var(--lc-ink);
}
.lc-legal-content p {
	margin: 0 0 16px;
}
.lc-legal-content ul,
.lc-legal-content ol {
	margin: 0 0 18px;
	padding-left: 22px;
}
.lc-legal-content li {
	margin-bottom: 6px;
}
.lc-legal-content a {
	color: var(--lc-navy);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.lc-legal-content a:hover {
	color: #01cbe0;
}
.lc-legal-content strong,
.lc-legal-content b {
	color: var(--lc-ink);
}
.lc-legal-content table {
	width: 100%;
	margin: 0 0 22px;
	border-collapse: collapse;
	font-size: 14px;
}
.lc-legal-content th,
.lc-legal-content td {
	padding: 10px 12px;
	border: 1px solid var(--lc-border);
	text-align: left;
	vertical-align: top;
}
.lc-legal-content th {
	background: var(--lc-soft);
	font-weight: 700;
	color: var(--lc-ink);
}
@media (max-width: 600px) {
	.lc-legal {
		padding-block: 36px 56px;
	}
	.lc-legal .lc-legal-title {
		font-size: 27px;
	}
	.lc-legal-content h2 {
		font-size: 20px;
	}
}

/* ==========================================================================
   Page 404
   ========================================================================== */
.lc-404 {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 58vh;
	padding: 70px 20px 90px;
	font-family: var(--labo-font-primary);
	text-align: center;
}
.lc-404-wrap {
	width: min(640px, 100%);
}
.lc-404-icon {
	display: inline-flex;
	width: 74px;
	height: 74px;
	margin-bottom: 18px;
	color: var(--lc-navy);
}
.lc-404-icon svg {
	width: 100%;
	height: 100%;
}
.lc-404-code {
	margin: 0 0 10px;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #01cbe0;
}
.lc-404 .lc-404-title {
	margin: 0 0 14px;
	font-size: 30px;
	font-weight: 800;
	line-height: 1.2;
	color: var(--lc-ink);
}
.lc-404-text {
	max-width: 480px;
	margin: 0 auto 30px;
	font-size: 16px;
	line-height: 1.6;
	color: #7b808b;
}
.lc-404-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin-bottom: 34px;
}
.lc-404-btn {
	display: inline-flex;
	align-items: center;
	padding: 13px 26px;
	font-size: 15px;
	font-weight: 600;
	border-radius: 999px;
	text-decoration: none;
	transition: transform 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}
.lc-404-btn--solid {
	color: var(--lc-navy);
	background: var(--lc-btn-bg);
	border: 2px solid var(--lc-btn-bg);
}
.lc-404-btn--ghost {
	color: var(--lc-navy);
	background: #fff;
	border: 2px solid var(--lc-border);
}
.lc-404-btn:hover {
	transform: translateY(-2px);
}
.lc-404-btn--ghost:hover {
	border-color: var(--lc-navy);
}
.lc-404-search {
	display: flex;
	gap: 8px;
	max-width: 430px;
	margin: 0 auto;
}
.lc-404-search .search-field {
	flex: 1;
	min-width: 0;
	padding: 12px 16px;
	font: inherit;
	font-size: 15px;
	color: var(--lc-ink);
	background: #fff;
	border: 1px solid var(--lc-border);
	border-radius: 10px;
}
.lc-404-search .search-field:focus {
	outline: 0;
	border-color: var(--lc-navy);
	box-shadow: 0 0 0 3px rgba(27, 39, 63, 0.12);
}
.lc-404 .lc-404-search .search-submit,
.lc-404 .lc-404-search .search-submit:hover,
.lc-404 .lc-404-search .search-submit:focus {
	flex: none;
	padding: 12px 22px;
	font: inherit;
	font-weight: 600;
	color: var(--lc-navy);
	background: var(--lc-btn-bg);
	border: 0;
	border-radius: 10px;
	box-shadow: none;
	cursor: pointer;
}
@media (max-width: 480px) {
	.lc-404-wrap {
		padding: 0 20px;
	}
	.lc-404-search {
		flex-direction: column;
	}
	.lc-404 .lc-404-search .search-submit {
		width: 100%;
	}
}

/* Astra ajoute « margin: 4em 0 » sur le conteneur principal #primary, ce qui
   crée un blanc entre le header et la première section (et avant le footer).
   On le retire (sélecteur plus spécifique que le #primary d'Astra). */
body #primary {
	margin: 0;
}

/* Icône SVG (tooth) du bouton « Envoi d'empreintes » dans le header. */
.lc-header-pill-icon {
	flex: none;
	width: 16px;
	height: 16px;
}

/* Hover des boutons : bleu foncé + texte blanc (jamais le bleu d'Astra). */
.lc-home__btn--solid .wp-block-button__link:hover,
.lc-home__btn--ghost .wp-block-button__link:hover,
.lc-qsn .lc-qsn__btn--solid .wp-block-button__link:hover,
.lc-qsn .lc-qsn__btn--ghost .wp-block-button__link:hover,
.lc-contact .lc-contact__btn--map .wp-block-button__link:hover,
.lc-contact .lc-contact__btn--ghost .wp-block-button__link:hover,
.lc-404-btn--solid:hover,
.lc-404-btn--ghost:hover,
.lc-404 .lc-404-search .search-submit:hover,
.lc-404 .lc-404-search .search-submit:focus {
	color: #fff;
	background-color: var(--lc-navy);
	background-image: none;
	border-color: var(--lc-navy);
}

/* Notre métier — robustesse indépendante de l'attribut Astra « ast-blocks-layout »
   (qui peut être absent) : section .lc-metier sans padding latéral, et features
   CFAO / Artisanat en pleine largeur (le contenu interne reste à 1140px). */
.entry-content > .lc-metier,
.entry-content > .lc-metier-hero,
.entry-content > .lc-qsn-hero,
.entry-content > .lc-home-hero {
	padding-left: 0 !important;
	padding-right: 0 !important;
}
.lc-metier > .lc-metier__feature {
	width: 100%;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* Masquer le bouton « retour en haut » d'Astra. */
#ast-scroll-top {
	display: none !important;
}

/* QSN — certification : badge « Je Choisis Le Sourire » superposé à la photo. */
.lc-qsn__cert-stack {
	display: flex;
	align-items: center;
	justify-content: center;
}
.lc-qsn .lc-qsn__cert-stack .lc-qsn__cert-img {
	width: 60%;
	margin: 0;
}
.lc-qsn .lc-qsn__cert-stack .lc-qsn__cert-img img {
	border-radius: 999px;
	box-shadow: 0 12px 26px rgba(0, 0, 0, 0.14);
}
.lc-qsn__cert-img--badge {
	position: relative;
	z-index: 2;
	margin-right: -20%;
}
.lc-qsn__cert-img--photo {
	position: relative;
	z-index: 1;
}

/* ==========================================================================
   OPTIMISATION MOBILE GLOBALE (≤ 600px)
   Typographie resserrée + visuels de référence en 2 colonnes, pour tout le
   site (accueil, métier, qui-sommes-nous, contact, galerie). 100 % sous media
   query : la vue desktop reste strictement inchangée. Les gouttières latérales
   sont déjà assurées par Astra (1.5em ≈ 22px) sur les sections non full-bleed.
   ========================================================================== */
@media (max-width: 600px) {
	/* --- Titres de héros -------------------------------------------------- */
	.lc-home-hero .lc-home-hero__title {
		font-size: 26px;
		line-height: 1.18;
	}
	.lc-metier-hero .lc-metier__hero-title,
	.lc-qsn-hero .lc-qsn__hero-title {
		font-size: 25px;
		line-height: 1.18;
	}
	.lc-home-hero .lc-home-stat__num {
		font-size: 25px;
	}

	/* --- Titres de section ------------------------------------------------ */
	.lc-home-contact .lc-home__title,
	.lc-qsn-team .lc-qsn-team__title {
		font-size: 23px;
	}
	.lc-metier .lc-metier__title,
	.lc-qsn .lc-qsn__title,
	.lc-home-cfao .lc-home-cfao__title,
	.lc-metier .lc-metier__feature-title {
		font-size: 22px;
	}
	.lc-galerie .lc-galerie__title {
		font-size: 24px;
	}
	.lc-home .lc-home-sector__title {
		font-size: 19px;
	}

	/* --- Sous-titres / cartes --------------------------------------------- */
	.lc-home-intro .lc-home-card__title {
		font-size: 18px;
	}

	/* --- Galeries de référence (prothèses) : 2 colonnes ------------------- */
	/* .wp-block-columns passe en 1 colonne pleine largeur sous 781px ; on le
	   force en grille 2 colonnes pour réduire la taille des visuels. La grille
	   ignore le flex-basis:100% !important que WordPress applique aux colonnes. */
	.lc-home-sector__thumbs.wp-block-columns {
		display: grid;
		grid-template-columns: 1fr 1fr 1fr;
		gap: 12px;
	}
	.lc-home-sector__thumbs.wp-block-columns > .wp-block-column {
		width: auto;
	}
}
