/*
 * Intégration visuelle du plugin Parcours réparation V6.4.
 *
 * Cette couche est chargée après les styles du plugin. Elle ne masque aucun
 * état, ne change aucune donnée et ne dépend d’aucun identifiant métier : elle
 * aligne uniquement les composants publics sur les tokens du thème V4.
 */

:is(.sosms-scope, .sosms-model-page, .sosms-dynamic-block) {
	--sos-primary: #005c37;
	--sos-accent: #005c37;
	--sos-highlight: #ffe45b;
	--sos-bg: #f4f8f5;
	--sos-surface: #fff;
	--sos-text: #12372b;
	--sos-muted: #49665d;
	--sos-line: #d9e5de;
	--sos-shadow: 0 24px 64px rgb(0 92 55 / 14%);
	--sos-radius: 18px;
	--sms-yellow: #ffe45b;
	--sms-green-deep: #005c37;
	--sms-green-bright: #0ea077;
	--sms-green-leaf: #5b8c30;
	--sms-green-soft: #bdd573;
	--sms-ink: #12372b;
	--sms-muted: #49665d;
	--sms-paper: #fff;
	--sms-mist: #f4f8f5;
	--sms-border: #d9e5de;
	/* 3,42:1 sur blanc et 3,19:1 sur le fond mist : contour de contrôle AA. */
	--sms-control-border: #789087;
	--sms-radius-sm: 0.75rem;
	--sms-radius: 1.125rem;
	--sms-radius-lg: 1.5rem;
	--sms-shadow-sm: 0 8px 24px rgb(0 92 55 / 7%);
	--sms-shadow: 0 24px 64px rgb(0 92 55 / 14%);
	color: var(--sms-ink);
	font-family: "Poppins", "Avenir Next", Avenir, Montserrat, ui-sans-serif, system-ui, sans-serif;
	font-weight: 500;
}

:is(.sosms-scope, .sosms-model-page) *,
:is(.sosms-scope, .sosms-model-page) *::before,
:is(.sosms-scope, .sosms-model-page) *::after {
	box-sizing: border-box;
}

/*
 * Le plugin historique utilisait des valeurs intermédiaires (750/800/850).
 * Le thème les ramène aux deux graisses licenciées de la charte.
 */
:is(.sosms-scope.sosms-scope, .sosms-model-page.sosms-model-page) * {
	font-weight: 500;
}

:is(.sosms-scope.sosms-scope, .sosms-model-page.sosms-model-page) :is(h1, h2, h3, h4, h5, h6, strong, b, button, label, summary),
:is(.sosms-scope, .sosms-model-page) :is(.sosms-eyebrow, .sosms-label, .sosms-model-kicker, .sosms-section-label, .sosms-section-heading > span, .sosms-tier, .sosms-badge, .sosms-offer-choice, .sosms-model-primary, .sosms-model-secondary, .sosms-public-contact-actions a, .sosms-contact-action span, .sosms-other-action span) {
	font-weight: 700;
}

:is(.sosms-scope, .sosms-model-page) :is(button, input, select, textarea) {
	font-family: inherit;
}

:is(.sosms-scope, .sosms-model-page) :where(a, button, input, select, textarea, summary):focus-visible {
	outline: 3px solid var(--sms-yellow);
	outline-offset: 3px;
	box-shadow: 0 0 0 6px var(--sms-green-deep);
}

/* Estimateur. */
.sosms-block-estimator {
	width: 100%;
}

.sosms-block-estimator .sosms-app {
	width: min(100%, 70rem);
	margin-inline: auto;
}

.sosms-block-estimator .sosms-card {
	min-height: 38rem;
	padding: clamp(1.5rem, 5vw, 3.4rem);
	border: 1px solid var(--sms-border);
	border-radius: var(--sms-radius-lg);
	background: var(--sms-paper);
	box-shadow: var(--sms-shadow);
}

.sosms-block-estimator .sosms-card::after {
	top: -11rem;
	right: -10rem;
	width: 23rem;
	height: 23rem;
	background: var(--sms-yellow);
	opacity: 0.38;
}

.sosms-block-estimator .sosms-heading {
	max-width: 43rem;
	margin-block: 1.25rem;
}

.sosms-block-estimator .sosms-heading > span,
.sosms-block-estimator .sosms-step-count,
.sosms-block-estimator .sosms-results button span {
	color: var(--sms-green-deep);
	font-weight: 700;
}

.sosms-block-estimator .sosms-heading h2 {
	color: var(--sms-green-deep);
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.04;
}

.sosms-block-estimator .sosms-heading p,
.sosms-block-estimator .sosms-step-count,
.sosms-block-estimator .sosms-search-meta,
.sosms-block-estimator .sosms-privacy {
	color: var(--sms-muted);
}

.sosms-block-estimator .sosms-progress {
	height: 0.3rem;
	background: color-mix(in srgb, var(--sms-green-deep) 12%, white);
}

.sosms-block-estimator .sosms-progress i {
	background: var(--sms-green-deep);
}

.sosms-block-estimator .sosms-loader {
	border-color: var(--sms-border);
	border-top-color: var(--sms-green-deep);
}

.sosms-block-estimator :is(.sosms-search, .sosms-form-grid input, .sosms-other-workflow textarea, [data-callback-form] input) {
	border-color: var(--sms-control-border);
	border-radius: var(--sms-radius-sm);
	background: var(--sms-paper);
	color: var(--sms-ink);
	font-weight: 500;
}

.sosms-block-estimator :is(.sosms-search, .sosms-form-grid input, .sosms-other-workflow textarea, [data-callback-form] input):focus {
	border-color: var(--sms-green-deep);
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--sms-green-bright) 22%, transparent);
}

.sosms-block-estimator .sosms-search::placeholder,
.sosms-block-estimator textarea::placeholder {
	color: var(--sms-muted);
	opacity: 0.9;
}

.sosms-block-estimator :is(.sosms-brands button, .sosms-families button, .sosms-results button, .sosms-repair-grid button, .sosms-store-list button) {
	border-color: var(--sms-control-border);
	border-radius: var(--sms-radius-sm);
	background: var(--sms-paper);
	color: var(--sms-green-deep);
}

.sosms-block-estimator :is(.sosms-families button, .sosms-results button, .sosms-repair-grid button, .sosms-store-list button):hover {
	border-color: var(--sms-green-deep);
	box-shadow: var(--sms-shadow-sm);
}

.sosms-block-estimator .sosms-brands button:hover,
.sosms-block-estimator .sosms-brands button.active {
	border-color: var(--sms-green-deep);
	background: var(--sms-green-deep);
	color: var(--sms-paper);
}

.sosms-block-estimator .sosms-brands button.active b {
	background: var(--sms-yellow);
	color: var(--sms-green-deep);
}

.sosms-block-estimator :is(.sosms-selection, .sosms-help, .sosms-contact-block) {
	border-radius: var(--sms-radius-sm);
	background: var(--sms-mist);
}

.sosms-block-estimator .sosms-repair-grid button i,
.sosms-block-estimator .sosms-store-list button > i,
.sosms-block-estimator .sosms-help-toggle span {
	background: color-mix(in srgb, var(--sms-green-soft) 28%, white);
	color: var(--sms-green-deep);
}

.sosms-block-estimator .sosms-repair-grid button.is-other {
	border: 2px dashed var(--sms-green-deep);
	background: color-mix(in srgb, var(--sms-yellow) 32%, white);
}

.sosms-block-estimator .sosms-repair-grid button.is-other div > span {
	color: var(--sms-green-deep);
	font-weight: 700;
}

.sosms-block-estimator :is(.sosms-primary, [data-callback-form] .sosms-primary) {
	min-height: 3.6rem;
	border: 2px solid var(--sms-green-deep);
	border-radius: var(--sms-radius-sm);
	background: var(--sms-green-deep);
	color: var(--sms-paper);
	font-weight: 700;
	box-shadow: 0 8px 20px rgb(0 92 55 / 16%);
}

.sosms-block-estimator :is(.sosms-primary, [data-callback-form] .sosms-primary):hover:not(:disabled) {
	border-color: var(--sms-green-deep);
	background: var(--sms-yellow);
	color: var(--sms-green-deep);
}

.sosms-block-estimator .sosms-primary span {
	color: currentcolor;
}

.sosms-block-estimator .sosms-success {
	border-color: color-mix(in srgb, var(--sms-green-deep) 24%, transparent);
	background: color-mix(in srgb, var(--sms-green-soft) 18%, white);
}

.sosms-block-estimator :is(.sosms-ready > i, .sosms-success > i, .sosms-other-sent i) {
	background: var(--sms-yellow);
	color: var(--sms-green-deep);
	font-weight: 700;
}

.sosms-block-estimator .sosms-offers {
	gap: 0.8rem;
}

.sosms-block-estimator .sosms-offer-card {
	border-color: var(--sms-control-border);
	border-radius: var(--sms-radius);
	background: var(--sms-paper);
	color: var(--sms-ink);
}

.sosms-block-estimator .sosms-offer-card:hover,
.sosms-block-estimator .sosms-offer-card.selected {
	border-color: var(--sms-green-deep);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--sms-green-bright) 18%, transparent);
}

.sosms-block-estimator .sosms-offer-card.featured {
	border: 3px solid var(--sms-green-deep);
	background: var(--sms-paper);
	box-shadow: none;
	transform: none;
}

.sosms-block-estimator :is(.sosms-badge, .sosms-inline-quality-grid article > em) {
	background: var(--sms-green-deep);
	color: var(--sms-paper);
	font-weight: 700;
}

.sosms-block-estimator :is(.sosms-tier, .sosms-offer-choice, .sosms-contact-action span, .sosms-inline-quality-grid dt) {
	color: var(--sms-green-deep);
	font-weight: 700;
}

.sosms-block-estimator .sosms-contact-actions {
	gap: 0.65rem;
}

.sosms-block-estimator :is(.sosms-contact-action, .sosms-other-action) {
	border-color: var(--sms-control-border);
	border-radius: var(--sms-radius-sm);
	background: var(--sms-paper);
	color: var(--sms-green-deep);
	text-decoration: none;
}

.sosms-block-estimator :is(.sosms-contact-action, .sosms-other-action):hover {
	border-color: var(--sms-green-deep);
	box-shadow: var(--sms-shadow-sm);
}

.sosms-block-estimator [data-callback-form] {
	border-color: var(--sms-control-border);
	border-radius: var(--sms-radius);
	background: var(--sms-paper);
}

.sosms-block-estimator :is(.sosms-inline-compare, .sosms-inline-quality-grid article) {
	border-color: var(--sms-border);
	background: var(--sms-paper);
}

.sosms-block-estimator .sosms-inline-compare-panel {
	background: var(--sms-mist);
}

.sosms-block-estimator .sosms-inline-quality-grid article.is-recommended {
	border: 3px solid var(--sms-green-deep);
	background: var(--sms-paper);
	box-shadow: none;
	transform: none;
}

.sosms-block-estimator :is(.sosms-empty, .sosms-block-fallback, .sosms-plugin-fallback) {
	border-color: var(--sms-green-bright);
	border-radius: var(--sms-radius);
	background: color-mix(in srgb, var(--sms-green-soft) 18%, white);
}

.sosms-block-estimator .sosms-error {
	border-left-color: #9f241b;
	background: #fff1f0;
	color: #7d1b14;
}

/* Annuaires et blocs dynamiques sans contexte. */
:is(.sosms-block-model-directory, .sosms-block-store-directory) :is(.sosms-directory, .sosms-store-directory) {
	padding-block: clamp(3.5rem, 7vw, 6rem);
}

:is(.sosms-block-model-directory, .sosms-block-store-directory) .sosms-directory-grid a {
	border-color: var(--sms-control-border);
	border-radius: var(--sms-radius-sm);
	background: var(--sms-paper);
	color: var(--sms-green-deep);
}

:is(.sosms-block-model-directory, .sosms-block-store-directory) .sosms-directory-grid a:hover {
	border-color: var(--sms-green-deep);
	box-shadow: var(--sms-shadow-sm);
}

.sms-estimator-page-section {
	padding-block: clamp(1.5rem, 4vw, 3rem);
}

.sms-model-directory-link,
.sms-models-return {
	padding-block: clamp(1rem, 2.5vw, 1.75rem);
}

.sms-supported-brands {
	padding-block: clamp(2.5rem, 6vw, 4.5rem);
	padding-inline: var(--sms-gutter);
	border-block: 1px solid var(--sms-border);
}

.sms-supported-brands > .wp-block-group {
	display: grid;
	gap: 0.9rem;
}

.sms-supported-brands h2 {
	max-width: 24ch;
	margin: 0;
	color: var(--sms-green-deep);
	font-size: clamp(1.85rem, 3.3vw, 2.8rem);
	line-height: 1.08;
}

.sms-supported-brands p:not(.sms-eyebrow) {
	max-width: 72ch;
}

.sms-supported-brands .sosms-dynamic-block {
	margin-block: 0.25rem;
}

.sms-supported-brands .sosms-public-brand-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
}

.sms-supported-brands .sosms-public-brand-list span {
	border: 1px solid var(--sms-green-deep);
	background: var(--sms-mist);
	color: var(--sms-green-deep);
}

.sms-supported-brands .wp-block-buttons {
	margin-top: 0.35rem;
}

.sms-model-directory-link p {
	margin: 0;
	color: var(--sms-green-deep);
	font-weight: 500;
}

.sms-models-directory-page {
	padding-block: clamp(2rem, 5vw, 4rem);
}

.sms-models-directory-page .sosms-block-model-directory .sosms-directory {
	padding-block: 0;
}

.sosms-model-directory .sosms-directory-tools {
	margin-bottom: clamp(0.75rem, 2vw, 1.5rem);
	padding: clamp(1.1rem, 3vw, 2rem);
	border: 1px solid var(--sms-border);
	border-radius: var(--sms-radius);
	background: var(--sms-paper);
}

.sosms-model-directory .sosms-directory-search {
	max-width: 46rem;
	color: var(--sms-green-deep);
}

.sosms-model-directory .sosms-directory-search input {
	border: 2px solid var(--sms-control-border);
	border-radius: 999px;
	background: #fff;
}

.sosms-model-directory .sosms-directory-search input:focus-visible {
	outline: 3px solid var(--sms-yellow);
	outline-offset: 2px;
	border-color: var(--sms-green-deep);
}

.sosms-model-directory .sosms-directory-filters button {
	border-color: var(--sms-control-border);
	background: var(--sms-mist);
	color: var(--sms-green-deep);
}

.sosms-model-directory .sosms-directory-filters button:hover,
.sosms-model-directory .sosms-directory-filters button[aria-pressed="true"] {
	border-color: var(--sms-green-deep);
	background: var(--sms-green-deep);
	color: #fff;
}

.sosms-model-directory .sosms-directory-group {
	padding: clamp(1rem, 3vw, 1.75rem);
	border-radius: var(--sms-radius);
	background: #fff;
}

.sosms-model-directory .sosms-directory-group h2 {
	margin: 0 0 1rem;
	color: var(--sms-green-deep);
	font-size: clamp(1.6rem, 3vw, 2.3rem);
}

.sosms-model-directory .sosms-directory-grid a {
	display: flex;
	min-height: 5.4rem;
	flex-direction: column;
	justify-content: center;
	gap: 0.2rem;
	border: 1px solid var(--sms-control-border);
	background: var(--sms-mist);
}

.sosms-model-directory .sosms-directory-grid a span {
	color: #49665d;
	font-size: 0.9rem;
}

.sosms-model-directory .sosms-directory-empty {
	border-color: var(--sms-control-border);
	background: var(--sms-yellow);
	color: var(--sms-green-deep);
}

:is(.sosms-block-model-directory, .sosms-block-store-directory) .sosms-location-grid article {
	border-color: var(--sms-border);
	border-radius: var(--sms-radius);
	background: var(--sms-yellow);
	box-shadow: none;
}

:is(.sosms-block-model-directory, .sosms-block-store-directory) .sosms-location-grid article:nth-child(even) {
	background: var(--sms-green-soft);
}

/* Pages appareil, réparation et atelier fournies par les blocs V6.4. */
.sms-service-template {
	gap: 0;
}

.sms-service-template > .sosms-dynamic-block {
	width: 100%;
	max-width: none;
	margin-block: 0 !important;
	padding-block: 0;
}

.sms-service-template > :is(.sosms-block-service-offers, .sosms-block-quality-comparator, .sosms-block-service-information, .sosms-block-service-faq, .sosms-block-related-repairs),
.sms-service-template > :is(.sosms-block-quality-comparator, .sosms-block-related-repairs) > * {
	width: 100%;
	max-width: none;
	margin-inline: 0;
}

.sms-service-template > :is(.sosms-block-quality-comparator, .sosms-block-related-repairs) {
	background: transparent;
}

.sms-service-template :is(.sosms-service-estimator, .sosms-quality-section, .sosms-service-information, .sosms-service-faq, .sosms-related-repairs) {
	padding-block: clamp(2.75rem, 5vw, 4.75rem);
}

:is(.sosms-block-model-hero, .sosms-block-service-hero) :is(.sosms-model-hero, .sosms-service-hero) {
	background: var(--sms-yellow);
	color: var(--sms-ink);
}

:is(.sosms-block-model-hero, .sosms-block-service-hero) :is(.sosms-model-hero, .sosms-service-hero) :is(h1, p, .sosms-service-intro) {
	color: var(--sms-green-deep);
}

:is(.sosms-block-model-hero, .sosms-block-service-hero) .sosms-breadcrumbs,
:is(.sosms-block-model-hero, .sosms-block-service-hero) .sosms-breadcrumbs a,
:is(.sosms-block-model-hero, .sosms-block-service-hero) .sosms-model-kicker {
	color: var(--sms-green-deep);
}

.sosms-block-model-hero .sosms-device-signpost {
	border-color: var(--sms-border);
	background: var(--sms-paper);
	box-shadow: var(--sms-shadow-sm);
}

.sosms-block-model-hero .sosms-device-signpost :is(span, li) {
	color: var(--sms-green-deep);
}

.sosms-block-model-hero .sosms-device-signpost li {
	border-top-color: var(--sms-border);
}

.sosms-block-model-hero .sosms-device-signpost li b {
	background: var(--sms-green-deep);
	color: var(--sms-yellow);
}

/*
 * Page appareil : une seule gouttière, des cartes compactes et aucun bandeau
 * vide lorsque la page WordPress ne possède pas encore de corps éditorial.
 */
.sms-model-template > .sosms-block-model-repairs {
	width: 100%;
	max-width: none;
	margin-block: 0 !important;
	padding-block: 0;
	background: color-mix(in srgb, var(--sms-yellow) 16%, var(--sms-paper));
}

.sms-model-template .sosms-model-repairs {
	padding-block: clamp(2.5rem, 5vw, 4.5rem);
}

.sms-model-template .sosms-repair-choice-grid {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
}

.sms-model-template .sosms-repair-choice-grid > a {
	display: grid;
	min-height: 0;
	grid-template-columns: 48px minmax(0, 1fr);
	align-content: start;
	gap: 0 0.875rem;
	padding: 1.25rem;
}

.sms-model-template .sosms-repair-choice-grid > a > b > span {
	display: inline;
	min-height: 0;
	margin: 0;
}

.sms-model-template > .sms-model-editorial:empty {
	display: none;
}

.sms-model-template > .sms-directory-band {
	padding-block: clamp(2.75rem, 5vw, 4.75rem);
}

:is(.sosms-block-model-hero, .sosms-block-service-hero) .sosms-model-primary {
	border: 2px solid var(--sms-green-deep);
	background: var(--sms-green-deep);
	color: var(--sms-paper);
}

.sosms-block-service-hero .sosms-model-secondary {
	border: 2px solid var(--sms-green-deep);
	background: transparent;
	color: var(--sms-green-deep);
}

:is(.sosms-block-service-hero, .sosms-service-page) .sosms-service-summary {
	display: inline-flex;
	width: fit-content;
	max-width: min(100%, 42rem);
	min-height: 0;
	align-self: flex-start;
	justify-self: start;
	flex: 0 0 auto;
	flex-wrap: nowrap;
	gap: 1px;
	overflow: hidden;
	padding: 0;
	border: 1px solid var(--sms-border);
	border-radius: var(--sms-radius-sm);
	background: var(--sms-border);
	box-shadow: none;
	backdrop-filter: none;
}

:is(.sosms-block-service-hero, .sosms-service-page) .sosms-service-summary > div {
	display: flex;
	min-width: 0;
	min-height: 0;
	align-items: baseline;
	gap: 0.4rem;
	padding: 0.625rem 0.75rem;
	border: 0;
	background: var(--sms-paper);
	white-space: nowrap;
}

:is(.sosms-block-service-hero, .sosms-service-page) .sosms-service-summary :is(span, strong) {
	display: inline;
}

:is(.sosms-block-service-hero, .sosms-service-page) .sosms-service-summary span {
	margin: 0;
	color: var(--sms-muted);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

:is(.sosms-block-service-hero, .sosms-service-page) .sosms-service-summary strong {
	color: var(--sms-green-deep);
	font-size: 0.88rem;
	line-height: 1.25;
}

:is(.sosms-block-service-hero, .sosms-service-page) .sosms-service-summary small {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

:is(.sosms-block-model-hero, .sosms-block-service-hero) :is(.sosms-model-primary, .sosms-model-secondary):hover {
	background: var(--sms-yellow);
	color: var(--sms-green-deep);
}

:is(.sosms-block-model-repairs, .sosms-block-related-repairs) .sosms-repair-choice-grid > a {
	border-color: var(--sms-control-border);
	border-radius: var(--sms-radius);
	background: var(--sms-paper);
	color: var(--sms-ink);
}

:is(.sosms-block-model-repairs, .sosms-block-related-repairs) .sosms-repair-choice-grid > a:hover {
	border-color: var(--sms-green-deep);
	box-shadow: var(--sms-shadow-sm);
}

:is(.sosms-block-model-repairs, .sosms-block-related-repairs) .sosms-other-repair-card {
	border: 2px dashed var(--sms-green-deep);
	background: color-mix(in srgb, var(--sms-yellow) 32%, white);
}

/*
 * Rythme de la page réparation : aplats très légers, sans dégradé. Le même
 * séquencement couvre le modèle FSE et le gabarit PHP historique du plugin.
 */
:is(.sms-service-template, .sosms-service-page) :is(.sosms-service-estimator, .sosms-quality-section, .sosms-service-information, .sosms-service-faq, .sosms-related-repairs) {
	border-block-start: 1px solid var(--sms-border);
}

:is(.sms-service-template, .sosms-service-page) .sosms-service-estimator {
	background: var(--sms-mist);
}

:is(.sms-service-template, .sosms-service-page) .sosms-quality-section {
	background: color-mix(in srgb, var(--sms-yellow) 18%, var(--sms-paper));
}

:is(.sms-service-template, .sosms-service-page) .sosms-quality-section .sosms-section-heading {
	max-width: 64rem;
}

:is(.sms-service-template, .sosms-service-page) .sosms-quality-section .sosms-section-heading h2 {
	max-width: 60rem;
	font-size: clamp(2rem, 4vw, 3.25rem);
	line-height: 1.08;
	text-wrap: balance;
}

:is(.sms-service-template, .sosms-service-page) .sosms-service-information {
	background: color-mix(in srgb, var(--sms-green-soft) 26%, var(--sms-paper));
}

:is(.sms-service-template, .sosms-service-page) .sosms-service-faq {
	background: var(--sms-paper);
}

:is(.sms-service-template, .sosms-service-page) .sosms-related-repairs {
	background: color-mix(in srgb, var(--sms-yellow) 14%, var(--sms-paper));
}

.sosms-block-quality-comparator .sosms-quality-cards article {
	border-color: var(--sms-border);
	background: var(--sms-paper);
}

.sosms-block-quality-comparator .sosms-quality-cards article.is-recommended {
	border: 3px solid var(--sms-green-deep);
	background: var(--sms-paper);
	box-shadow: none;
	transform: none;
}

.sosms-block-quality-comparator .sosms-quality-cards article > em,
.sosms-block-quality-comparator .sosms-quality-table h3 em {
	background: var(--sms-green-deep);
	color: var(--sms-paper);
	font-weight: 700;
}

.sosms-block-quality-comparator .sosms-quality-compare,
.sosms-block-service-faq .sosms-service-faq details {
	border-color: var(--sms-border);
	background: var(--sms-paper);
}

.sosms-block-quality-comparator .sosms-quality-table article.is-recommended {
	background: var(--sms-paper);
	box-shadow: inset 3px 0 0 var(--sms-green-deep);
}

.sosms-block-service-information .sosms-information-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
	gap: 1rem;
}

.sosms-block-service-information .sosms-information-grid article,
.sosms-block-service-information .sosms-service-editorial {
	border-color: var(--sms-border);
	background: var(--sms-paper);
}

.sosms-block-service-information .sosms-information-grid article {
	min-height: 0;
	padding: 1.25rem;
}

.sosms-block-service-information .sosms-information-grid article > span {
	margin-bottom: 1rem;
	background: var(--sms-green-deep);
	color: var(--sms-yellow);
	font-weight: 700;
}

.sosms-block-service-information .sosms-information-grid h3 {
	margin-bottom: 0.5rem;
	font-size: 1.1rem;
}

.sosms-block-service-information .sosms-service-editorial {
	min-height: 0;
}

.sosms-block-service-information .sosms-service-editorial:empty {
	display: none;
}

.sosms-block-store-details .sosms-store-facts {
	gap: 0.75rem;
	padding: 0;
	background: transparent;
}

.sosms-block-store-details .sosms-store-facts > div {
	min-width: 0;
	min-height: 7.25rem;
	padding: 1.15rem;
	border: 1px solid var(--sms-border);
	border-radius: var(--sms-radius-sm);
	background: var(--sms-paper);
}

.sosms-block-store-details .sosms-store-facts span {
	color: var(--sms-green-deep);
	font-weight: 700;
}

.sosms-block-store-details .sosms-store-facts :is(strong, a) {
	overflow-wrap: anywhere;
}

.sosms-block-store-contacts .sosms-store-contact-block {
	padding: 0;
	background: transparent;
	color: var(--sms-ink);
}

.sosms-block-store-contacts .sosms-store-contact-block h1 {
	max-width: 22ch;
	font-size: clamp(2.35rem, 4.6vw, 3.9rem);
}

.sosms-block-store-contacts .sosms-breadcrumbs,
.sosms-block-store-contacts .sosms-breadcrumbs :is(a, span, strong) {
	color: var(--sms-green-deep) !important;
}

.sosms-block-store-contacts .sosms-store-contact-block :is(h1, p),
.sosms-block-store-contacts .sosms-store-contact-block > div > span {
	color: var(--sms-green-deep);
}

.sosms-block-store-contacts .sosms-public-contact-actions a,
.sosms-model-page .sosms-public-contact-actions a {
	border: 2px solid var(--sms-green-deep);
	background: var(--sms-green-deep);
	color: var(--sms-paper);
	font-weight: 700;
}

.sosms-block-store-contacts .sosms-public-contact-actions a:hover,
.sosms-model-page .sosms-public-contact-actions a:hover {
	background: var(--sms-yellow);
	color: var(--sms-green-deep);
}

/*
 * Garde-fou de contraste. Les feuilles historiques du plugin posaient du
 * texte blanc sur leurs héros foncés. Les héros V4 étant jaunes, ces règles
 * restent autoritaires même si WordPress imprime un style de bloc plus tard.
 */
.sosms-dynamic-block.sosms-model-page.sosms-block-model-hero .sosms-model-hero,
.sosms-dynamic-block.sosms-model-page.sosms-block-service-hero .sosms-service-hero {
	background: var(--sms-yellow) !important;
	color: var(--sms-ink) !important;
}

.sosms-dynamic-block.sosms-model-page.sosms-block-store-contacts .sosms-store-contact-block {
	background: transparent !important;
	color: var(--sms-ink) !important;
}

.sosms-dynamic-block.sosms-model-page.sosms-block-model-hero .sosms-model-hero :is(h1, p, .sosms-model-kicker),
.sosms-dynamic-block.sosms-model-page.sosms-block-service-hero .sosms-service-hero :is(h1, p, .sosms-model-kicker, .sosms-service-intro),
.sosms-dynamic-block.sosms-model-page.sosms-block-store-contacts .sosms-store-contact-block :is(h1, p),
.sosms-dynamic-block.sosms-model-page.sosms-block-store-contacts .sosms-store-contact-block > div > span {
	color: var(--sms-green-deep) !important;
}

/* Page atelier : dense, locale et orientée contact. */
.sms-store-template > .sosms-block-store-details {
	width: 100%;
	max-width: none;
	margin-block: 0 !important;
	padding-block: 0;
}

.sosms-block-store-details .sosms-store-practical,
.sosms-block-store-details .sosms-store-local-service,
.sosms-block-store-details .sosms-store-faq {
	width: min(calc(100% - 2 * var(--sms-gutter)), 1280px);
	margin-inline: auto;
}

.sosms-block-store-details .sosms-store-practical {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(20rem, 0.85fr);
	gap: clamp(1rem, 3vw, 2rem);
	padding-block: clamp(2.5rem, 5vw, 4rem);
}

.sosms-store-practical-main .sosms-section-heading {
	margin-bottom: 1.25rem;
}

.sosms-store-practical-main .sosms-section-heading h2,
.sosms-store-callback h2,
.sosms-store-local-service h2,
.sosms-store-faq h2 {
	margin-block: 0.35rem 0.75rem;
	font-size: clamp(1.8rem, 3vw, 2.65rem);
	line-height: 1.08;
}

.sosms-store-practical-main .sosms-store-facts {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sosms-store-callback {
	align-self: stretch;
	padding: clamp(1.4rem, 3vw, 2rem);
	border-radius: var(--sms-radius);
	background: var(--sms-green-deep);
	color: var(--sms-paper);
}

.sosms-store-callback > div > span {
	color: var(--sms-yellow);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.sosms-store-callback :is(h2, p, label, small, em, a) {
	color: inherit;
}

.sosms-store-callback label em {
	color: var(--sms-yellow);
	opacity: 0.9;
}

.sosms-store-callback form {
	display: grid;
	gap: 0.85rem;
	margin-top: 1.25rem;
}

/* L'attribut HTML `hidden` reste prioritaire après une demande réussie. */
.sosms-store-callback form[hidden] {
	display: none !important;
}

.sosms-store-callback .sosms-form-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
}

.sosms-store-callback .sosms-form-grid .wide {
	grid-column: 1 / -1;
}

.sosms-store-callback label {
	display: grid;
	gap: 0.35rem;
	font-size: 0.8rem;
	font-weight: 700;
}

.sosms-store-callback :is(input, textarea) {
	width: 100%;
	box-sizing: border-box;
	padding: 0.8rem 0.85rem;
	border: 2px solid #789087;
	border-radius: 0.75rem;
	background: var(--sms-paper);
	color: var(--sms-ink);
	font: inherit;
}

.sosms-store-callback textarea {
	resize: vertical;
}

.sosms-store-callback .sosms-primary {
	justify-self: start;
	border-color: var(--sms-yellow);
	background: var(--sms-yellow);
	color: var(--sms-green-deep);
}

.sosms-store-callback .sosms-primary:hover {
	background: var(--sms-paper);
}

.sosms-store-callback .sosms-privacy {
	margin: 0;
	font-size: 0.7rem;
	line-height: 1.45;
	opacity: 0.85;
}

.sosms-store-contact-status {
	min-height: 1.5rem;
	margin: 0.75rem 0 0;
	font-size: 0.85rem;
	font-weight: 700;
}

.sosms-store-contact-status.is-success {
	padding: 1rem;
	border-radius: var(--sms-radius-sm);
	background: var(--sms-yellow);
	color: var(--sms-green-deep);
}

.sosms-block-store-details .sosms-store-local-service {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: center;
	gap: 2rem;
	padding: clamp(2rem, 4vw, 3rem);
	border-radius: var(--sms-radius);
	background: color-mix(in srgb, var(--sms-yellow) 35%, var(--sms-paper));
}

.sosms-store-local-service.has-store-photo {
	grid-template-columns: minmax(0, 1fr) minmax(16rem, 34%);
}

.sosms-store-local-service > div {
	max-width: 48rem;
}

.sosms-store-local-service > div > span {
	color: var(--sms-green-deep);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.sosms-store-local-service p {
	margin-bottom: 0;
}

.sosms-store-local-service .sosms-store-local-copy > a {
	display: inline-flex;
	margin-top: 1.25rem;
	padding: 0.85rem 1rem;
	border: 2px solid var(--sms-green-deep);
	border-radius: 999px;
	color: var(--sms-green-deep);
	font-weight: 700;
	text-decoration: none;
}

.sosms-store-photo {
	margin: 0;
	overflow: hidden;
	border-radius: var(--sms-radius-sm);
	background: var(--sms-paper);
	aspect-ratio: 4 / 3;
}

.sosms-store-photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.sosms-block-store-details .sosms-store-faq {
	padding-block: clamp(2.5rem, 5vw, 4rem);
}

.sosms-store-faq > div:last-child {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
	margin-top: 1.25rem;
}

.sosms-store-faq details {
	padding: 1.15rem;
	border: 1px solid var(--sms-border);
	border-radius: var(--sms-radius-sm);
	background: var(--sms-paper);
}

.sosms-store-faq summary {
	color: var(--sms-green-deep);
	font-weight: 700;
	cursor: pointer;
}

.sosms-store-faq details p {
	margin: 0.75rem 0 0;
}

/* La colonne contact passe sous les informations avant que les cartes ne soient comprimées. */
@media (max-width: 1180px) {
	.sosms-block-store-details .sosms-store-practical {
		grid-template-columns: minmax(0, 1fr);
	}
}

.sosms-dynamic-block.sosms-model-page.sosms-block-model-hero .sosms-breadcrumbs,
.sosms-dynamic-block.sosms-model-page.sosms-block-model-hero .sosms-breadcrumbs :is(a, span, strong),
.sosms-dynamic-block.sosms-model-page.sosms-block-service-hero .sosms-breadcrumbs,
.sosms-dynamic-block.sosms-model-page.sosms-block-service-hero .sosms-breadcrumbs :is(a, span, strong) {
	color: var(--sms-green-deep) !important;
}

.sosms-dynamic-block.sosms-model-page.sosms-block-service-hero .sosms-service-summary {
	border-color: var(--sms-border);
	background: var(--sms-border);
	color: var(--sms-ink);
	backdrop-filter: none;
}

.sosms-dynamic-block.sosms-model-page.sosms-block-service-hero .sosms-service-summary strong {
	color: var(--sms-green-deep);
}

/* Secours visible si le plugin n’a pas de donnée exploitable. */
.sosms-dynamic-block :is(.sosms-block-fallback, .sosms-plugin-fallback) {
	max-width: 47.5rem;
	padding: 1.4rem;
	border: 1px dashed var(--sms-green-bright);
	border-radius: var(--sms-radius-sm);
	background: color-mix(in srgb, var(--sms-green-soft) 18%, white);
	color: var(--sms-ink);
}

.sosms-dynamic-block :is(.sosms-block-fallback, .sosms-plugin-fallback) strong {
	display: block;
	color: var(--sms-green-deep);
	font-weight: 700;
}

.sosms-dynamic-block :is(.sosms-block-fallback, .sosms-plugin-fallback) a {
	color: var(--sms-green-deep);
	font-weight: 700;
	text-underline-offset: 0.2rem;
}

@media (max-width: 782px) {
	.sosms-block-store-details .sosms-store-practical,
	.sosms-block-store-details .sosms-store-local-service {
		display: grid;
		grid-template-columns: 1fr;
	}

	.sosms-store-practical-main .sosms-store-facts,
	.sosms-store-callback .sosms-form-grid,
	.sosms-store-faq > div:last-child {
		grid-template-columns: 1fr;
	}

	.sosms-store-local-copy > a {
		justify-self: start;
	}
	.sosms-block-estimator .sosms-card {
		min-height: 36rem;
		padding: 1.45rem 1.125rem 1.75rem;
	}

	.sosms-block-estimator .sosms-card::after {
		width: 16rem;
		height: 16rem;
	}

	.sosms-block-estimator :is(.sosms-families, .sosms-repair-grid, .sosms-form-grid) {
		grid-template-columns: 1fr;
	}

	.sosms-block-estimator .sosms-offer-card.featured {
		transform: none;
	}

	:is(.sosms-block-model-hero, .sosms-block-service-hero) .sosms-model-hero-grid,
	.sosms-block-store-contacts .sosms-store-contact-block {
		grid-template-columns: 1fr;
	}

	.sosms-block-store-contacts .sosms-public-contact-actions {
		justify-content: flex-start;
	}

	.sosms-block-service-information .sosms-information-grid {
		grid-template-columns: 1fr;
	}

	.sms-model-template .sosms-repair-choice-grid {
		grid-template-columns: 1fr;
	}

	:is(.sosms-block-service-hero, .sosms-service-page) .sosms-service-summary {
		display: grid;
		width: min(100%, 30rem);
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	:is(.sosms-block-service-hero, .sosms-service-page) .sosms-service-summary > div {
		justify-content: center;
		white-space: normal;
	}

	:is(.sms-service-template, .sosms-service-page) .sosms-quality-section .sosms-section-heading h2 {
		max-width: 100%;
		font-size: clamp(1.8rem, 8vw, 2.6rem);
		line-height: 1.12;
	}
}

@media (prefers-reduced-motion: reduce) {
	:is(.sosms-scope, .sosms-model-page) *,
	:is(.sosms-scope, .sosms-model-page) *::before,
	:is(.sosms-scope, .sosms-model-page) *::after {
		scroll-behavior: auto;
		animation-duration: 0.01ms;
		animation-iteration-count: 1;
		transition-duration: 0.01ms;
	}
}
