/*
 * Spirit Rider — ajustements du thème.
 * Le thème d'origine était utilisé en version sombre (.ds). Le site est
 * désormais en version claire (.ls) partout, sauf le hero de l'accueil.
 * Ce fichier est chargé en dernier et ne modifie que ce qui est nécessaire.
 */

/* ---------- Réglages généraux ---------- */

body {
	background-color: #fff;
	color: #6a6a6a;
}

.sr-requis {
	color: #d0021b;
}

/* ---------- En-tête et bandeau de contact ---------- */

.page_topline {
	border-bottom: 1px solid #e8e8e8;
}

.page_topline .media-body {
	font-size: 13px;
	line-height: 20px;
}

.page_header.ls {
	background-color: #fff;
	border-bottom: 1px solid #e8e8e8;
}

/* Le logo de marque est blanc (conçu pour fond sombre) : sur l'en-tête clair,
   on le pose sur une pastille foncée plutôt que de retoucher le fichier. */
.page_header .logo {
	display: inline-block;
	background: #262626;
	padding: 9px 16px;
	border-radius: 3px;
	line-height: 0;
}

.page_header .logo img {
	max-height: 34px;
	width: auto;
}

.page_header .mainmenu > li > a {
	color: #262626;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	padding: 12px 16px;
	display: inline-block;
}

.page_header .mainmenu > li > a:hover,
.page_header .mainmenu > li.active > a {
	color: #249dd6;
}

.page_header .mainmenu > li {
	display: inline-block;
}

@media (max-width: 991px) {
	.page_header .mainmenu {
		padding-top: 80px;
		text-align: center;
	}

	.page_header .mainmenu > li {
		display: block;
	}

	.page_header .mainmenu > li > a {
		color: #fff;
		font-size: 18px;
		padding: 14px 0;
	}
}

/* ---------- Hero de l'accueil ---------- */

.sr-hero {
	position: relative;
	overflow: hidden;
	background-color: #1b1b1b;
}

.sr-hero-slides {
	position: absolute;
	inset: 0;
}

.sr-hero-slide {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	opacity: 0;
	transition: opacity 1.2s ease-in-out;
}

.sr-hero-slide.is-active {
	opacity: 1;
}

/* Voile sombre : garantit la lisibilité du texte blanc sur les photos. */
.sr-hero-slides::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.55), rgba(0, 0, 0, 0.65));
}

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

.sr-hero-logo {
	max-width: 260px;
	height: auto;
}

.sr-hero h1 {
	font-size: 38px;
	line-height: 1.25;
}

@media (max-width: 767px) {
	.sr-hero h1 {
		font-size: 24px;
	}

	.sr-hero-logo {
		max-width: 170px;
	}
}

.sr-hero-actions .theme_button {
	margin: 6px 4px;
}

.sr-hero-dots {
	position: absolute;
	z-index: 3;
	bottom: 24px;
	left: 0;
	right: 0;
	text-align: center;
}

.sr-hero-dots button {
	width: 11px;
	height: 11px;
	margin: 0 5px;
	padding: 0;
	border: 2px solid #fff;
	border-radius: 50%;
	background: transparent;
	cursor: pointer;
}

.sr-hero-dots button.is-active {
	background: #fff;
}

/* ---------- Carrousels ---------- */

.sr-carousel {
	position: relative;
}

.sr-carousel-viewport {
	overflow: hidden;
}

.sr-carousel-track {
	display: flex;
	transition: transform 0.45s ease;
}

.sr-carousel-item {
	flex: 0 0 auto;
	padding: 0 15px;
}

.sr-carousel-nav {
	text-align: center;
	margin-top: 26px;
}

.sr-carousel-nav button {
	width: 40px;
	height: 40px;
	margin: 0 5px;
	border: 1px solid #d5d5d5;
	background: #fff;
	color: #262626;
	border-radius: 50%;
	cursor: pointer;
	transition: all 0.2s ease;
}

.sr-carousel-nav button:hover:not(:disabled) {
	background: #249dd6;
	border-color: #249dd6;
	color: #fff;
}

.sr-carousel-nav button:disabled {
	opacity: 0.35;
	cursor: default;
}

.sr-partners .item-media img {
	max-height: 60px;
	width: auto;
	margin: 0 auto;
	opacity: 0.65;
	transition: opacity 0.2s ease;
}

.sr-partners .item-media img:hover {
	opacity: 1;
}

.page_testimonials .blockquote-item {
	background: #fff;
	border: 1px solid #ececec;
	border-left: 3px solid #249dd6;
	padding: 26px 28px;
	text-align: left;
	font-size: 14px;
	line-height: 24px;
	height: 100%;
}

/* ---------- Tuiles (prestations, galerie) ---------- */

.sr-tuile-col {
	padding: 0;
}

.sr-tuile-col .item-media img {
	width: 100%;
	height: 260px;
	object-fit: cover;
	display: block;
}

.sr-liste-prestations {
	columns: 2;
	margin: 10px 0 20px;
	padding-left: 18px;
}

@media (max-width: 600px) {
	.sr-liste-prestations {
		columns: 1;
	}
}

/* ---------- Tableau des tarifs ---------- */

.table.tarif {
	background: #fff;
}

.table.tarif td {
	border-color: #ececec;
	vertical-align: middle;
}

.table.tarif .tarif-header,
.table.tarif tr.tarif-header td {
	background: #262626;
	color: #fff;
	font-weight: 600;
	text-transform: uppercase;
	font-size: 13px;
	letter-spacing: 0.04em;
}

.table.tarif .tarif-smart,
.table.tarif .tarif-medium,
.table.tarif .tarif-ultra {
	text-align: center;
	white-space: nowrap;
	width: 130px;
}

.sr-notes {
	font-size: 13px;
	color: #8a8a8a;
	margin-top: 22px;
}

/* ---------- Formulaire de devis ---------- */

.sr-chapo {
	max-width: 720px;
	margin: 0 auto;
	font-size: 16px;
}

.sr-devis {
	background: #fff;
	border: 1px solid #e8e8e8;
	border-radius: 4px;
	padding: 0;
}

.sr-onglets {
	display: flex;
	border-bottom: 1px solid #e8e8e8;
}

.sr-onglets button {
	flex: 1;
	padding: 18px 12px;
	border: 0;
	background: #f7f7f7;
	color: #6a6a6a;
	font-weight: 600;
	text-transform: uppercase;
	font-size: 13px;
	letter-spacing: 0.04em;
	cursor: pointer;
	transition: all 0.2s ease;
}

.sr-onglets button.is-active {
	background: #fff;
	color: #249dd6;
	box-shadow: inset 0 -3px 0 #249dd6;
}

.sr-etapes {
	display: flex;
	list-style: none;
	margin: 0;
	/* La marge basse se joue ici : un <legend> se place sur le bord haut du
	   <fieldset>, le padding de celui-ci ne l'écarte donc pas du fil d'étapes. */
	padding: 22px 28px 26px;
	gap: 10px;
}

.sr-etapes li {
	display: flex;
	align-items: center;
	gap: 8px;
	flex: 1;
	color: #b0b0b0;
	font-size: 13px;
}

.sr-etape-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	border: 1px solid currentColor;
	font-weight: 600;
	flex: 0 0 auto;
}

.sr-etapes li.is-active {
	color: #249dd6;
	font-weight: 600;
}

.sr-etapes li.is-done {
	color: #4caf50;
}

@media (max-width: 600px) {
	.sr-etape-label {
		display: none;
	}
}

.sr-bloc {
	border: 0;
	padding: 24px 28px 30px;
	margin: 0;
}

.sr-bloc legend {
	border: 0;
	font-size: 20px;
	color: #262626;
	margin-bottom: 20px;
	padding-bottom: 10px;
	width: 100%;
	border-bottom: 1px solid #f0f0f0;
}

.sr-bloc label {
	font-weight: 400;
	color: #6a6a6a;
	font-size: 13px;
}

.sr-bloc .col-sm-4,
.sr-bloc .col-sm-6 {
	margin-bottom: 16px;
}

.sr-groupe {
	margin-bottom: 26px;
}

.sr-groupe h4 {
	font-size: 15px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #262626;
	margin-bottom: 12px;
}

.sr-cases,
.sr-radios {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.sr-cases label,
.sr-radios label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 9px 14px;
	border: 1px solid #e0e0e0;
	border-radius: 3px;
	cursor: pointer;
	font-size: 13px;
	transition: all 0.15s ease;
	background: #fff;
}

.sr-cases label:hover,
.sr-radios label:hover {
	border-color: #249dd6;
}

.sr-cases label.is-checked,
.sr-radios label.is-checked {
	border-color: #249dd6;
	background: #eaf6fc;
	color: #17698f;
	font-weight: 600;
}

.sr-cases input,
.sr-radios input {
	margin: 0;
}

.sr-consentement {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 13px;
	cursor: pointer;
}

.sr-consentement input {
	margin-top: 3px;
}

.sr-pot-de-miel {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.sr-actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 26px;
	padding-top: 20px;
	border-top: 1px solid #f0f0f0;
}

.sr-actions .theme_button:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

.sr-aide {
	font-size: 12px;
	color: #9a9a9a;
}

.sr-erreur {
	margin-top: 16px;
	padding: 12px 16px;
	border-left: 3px solid #d0021b;
	background: #fdf0f1;
	color: #a40215;
	font-size: 13px;
}

.sr-merci-icone {
	font-size: 64px;
	color: #4caf50;
	margin-bottom: 20px;
	display: block;
}

/* ---------- Back-office ---------- */

.sr-admin {
	min-height: 100vh;
	background: #f4f5f7;
	font-size: 14px;
}

.sr-admin-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 26px;
	background: #262626;
	color: #fff;
}

.sr-admin-marque {
	color: #fff;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.sr-admin-marque span {
	font-weight: 300;
	opacity: 0.6;
}

.sr-admin-header nav {
	display: flex;
	align-items: center;
	gap: 18px;
}

.sr-admin-header a,
.sr-admin-header button {
	color: #ddd;
	background: none;
	border: 0;
	cursor: pointer;
	font-size: 13px;
}

.sr-admin-header a:hover,
.sr-admin-header button:hover {
	color: #fff;
}

.sr-admin-main {
	max-width: 1100px;
	margin: 0 auto;
	padding: 30px 20px 60px;
}

.sr-admin-barre {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 14px;
	margin-bottom: 22px;
}

.sr-admin-barre h1 {
	font-size: 22px;
	margin: 0;
}

.sr-admin-filtres button {
	border: 1px solid #d8dade;
	background: #fff;
	padding: 7px 14px;
	margin-left: 6px;
	border-radius: 3px;
	cursor: pointer;
	font-size: 13px;
}

.sr-admin-filtres button.is-active {
	background: #262626;
	border-color: #262626;
	color: #fff;
}

.sr-admin-liste {
	list-style: none;
	padding: 0;
	margin: 0;
}

.sr-admin-carte {
	background: #fff;
	border: 1px solid #e3e5e9;
	border-radius: 4px;
	margin-bottom: 10px;
	overflow: hidden;
}

.sr-admin-carte.statut-nouveau {
	border-left: 3px solid #249dd6;
}

.sr-admin-carte.statut-traite {
	border-left: 3px solid #4caf50;
}

.sr-admin-carte.statut-archive {
	border-left: 3px solid #c4c7cc;
	opacity: 0.7;
}

.sr-admin-entete {
	display: flex;
	align-items: center;
	gap: 14px;
	width: 100%;
	padding: 14px 18px;
	background: none;
	border: 0;
	text-align: left;
	cursor: pointer;
	flex-wrap: wrap;
}

.sr-admin-vehicule {
	color: #6a6a6a;
}

.sr-admin-date {
	margin-left: auto;
	color: #9a9a9a;
	font-size: 12px;
}

.sr-badge {
	display: inline-block;
	padding: 3px 9px;
	border-radius: 3px;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.sr-badge.type-devis {
	background: #eaf6fc;
	color: #17698f;
}

.sr-badge.type-rdv {
	background: #fff3e0;
	color: #a35a00;
}

.sr-badge.statut-nouveau {
	background: #e8f4fd;
	color: #17698f;
}

.sr-badge.statut-traite {
	background: #e9f7ea;
	color: #2e7d32;
}

.sr-badge.statut-archive {
	background: #eeeff1;
	color: #6a6a6a;
}

.sr-admin-detail {
	padding: 4px 18px 18px;
	border-top: 1px solid #f0f1f3;
}

.sr-admin-detail dl {
	margin: 14px 0 0;
}

.sr-admin-detail dt {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #9a9a9a;
	margin-top: 12px;
}

.sr-admin-detail dd {
	margin: 3px 0 0;
	color: #262626;
}

.sr-admin-detail ul {
	margin: 4px 0 0;
	padding-left: 18px;
}

.sr-admin-message {
	white-space: pre-wrap;
}

.sr-admin-actions {
	margin-top: 18px;
	display: flex;
	gap: 8px;
}

.sr-admin-actions button {
	border: 1px solid #d8dade;
	background: #fff;
	padding: 7px 16px;
	border-radius: 3px;
	cursor: pointer;
	font-size: 13px;
}

.sr-admin-actions button:disabled {
	opacity: 0.4;
	cursor: default;
}

.sr-admin-vide {
	background: #fff;
	border: 1px solid #e3e5e9;
	border-radius: 4px;
	padding: 40px;
	text-align: center;
	color: #6a6a6a;
}

.sr-admin-login {
	max-width: 340px;
	margin: 90px auto;
	background: #fff;
	border: 1px solid #e3e5e9;
	border-radius: 4px;
	padding: 32px;
}

.sr-admin-login h1 {
	font-size: 20px;
	margin: 0 0 22px;
}

.sr-admin-login label {
	display: block;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #9a9a9a;
	margin-bottom: 6px;
}

.sr-admin-login input {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #d8dade;
	border-radius: 3px;
	margin-bottom: 18px;
}

.sr-admin-login button {
	width: 100%;
	padding: 11px;
	border: 0;
	border-radius: 3px;
	background: #262626;
	color: #fff;
	font-weight: 600;
	cursor: pointer;
}

.sr-admin-login button:disabled {
	opacity: 0.6;
}

/* Le thème ne révèle le titre des tuiles qu'au survol : sur un écran tactile,
   il ne s'affichait donc jamais. On l'y montre en permanence. */
@media (hover: none) {
	.gallery-item.content-absolute .item-content {
		opacity: 1;
		transform: none;
	}
}

/* ---------- Back-office : édition des contenus ---------- */

.sr-admin-fil {
	font-size: 12px;
	color: #9a9a9a;
	margin-bottom: 14px;
}

.sr-admin-fil span {
	margin: 0 4px;
}

.sr-admin-intro {
	color: #6a6a6a;
	margin: -12px 0 22px;
}

.sr-contenu-lien {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 16px 18px;
	color: inherit;
}

.sr-contenu-lien:hover {
	background: #fafbfc;
	color: inherit;
}

.sr-contenu-texte {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.sr-contenu-texte span {
	color: #8a8a8a;
	font-size: 13px;
}

.sr-editeur {
	background: #fff;
	border: 1px solid #e3e5e9;
	border-radius: 4px;
	padding: 24px;
}

.sr-champ {
	display: block;
	margin-bottom: 18px;
}

.sr-champ-label {
	display: block;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #7a7a7a;
	margin-bottom: 5px;
	font-weight: 600;
}

.sr-champ-aide {
	display: block;
	font-size: 12px;
	color: #9a9a9a;
	margin-bottom: 6px;
	text-transform: none;
	letter-spacing: 0;
	font-weight: 400;
}

.sr-editeur .form-control {
	width: 100%;
	padding: 9px 12px;
	border: 1px solid #d8dade;
	border-radius: 3px;
	font-size: 14px;
	background: #fff;
	color: #262626;
	height: auto;
}

.sr-editeur textarea.form-control {
	line-height: 1.5;
}

.sr-champ-image {
	display: flex;
	align-items: center;
	gap: 12px;
}

.sr-champ-image img {
	height: 42px;
	width: auto;
	border: 1px solid #e3e5e9;
	border-radius: 3px;
	background: #f4f5f7;
}

.sr-apercu-vide {
	font-size: 12px;
	color: #b0b0b0;
	white-space: nowrap;
}

.sr-objet {
	display: block;
}

.sr-liste {
	border: 1px solid #e8eaed;
	border-radius: 4px;
	padding: 16px;
	margin-bottom: 20px;
	background: #fbfcfd;
}

.sr-liste-entete {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin-bottom: 12px;
	flex-wrap: wrap;
}

.sr-compteur {
	background: #e8eaed;
	color: #6a6a6a;
	border-radius: 10px;
	padding: 1px 9px;
	font-size: 11px;
	font-weight: 700;
}

.sr-element {
	background: #fff;
	border: 1px solid #e3e5e9;
	border-radius: 3px;
	margin-bottom: 7px;
}

.sr-element > summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 14px;
	cursor: pointer;
	list-style: none;
}

.sr-element > summary::-webkit-details-marker {
	display: none;
}

.sr-element[open] > summary {
	border-bottom: 1px solid #eef0f2;
	background: #fafbfc;
}

.sr-element-titre {
	font-weight: 600;
	color: #262626;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.sr-element-outils {
	display: flex;
	gap: 4px;
	flex: 0 0 auto;
}

.sr-element-corps {
	padding: 16px 14px 4px;
}

.sr-btn-icone {
	width: 26px;
	height: 26px;
	border: 1px solid #dcdee2;
	background: #fff;
	border-radius: 3px;
	cursor: pointer;
	color: #6a6a6a;
	line-height: 1;
	font-size: 14px;
	padding: 0;
}

.sr-btn-icone:hover {
	background: #f0f1f3;
	color: #262626;
}

.sr-btn-danger:hover {
	background: #fdf0f1;
	border-color: #f0b6bc;
	color: #a40215;
}

.sr-ligne-texte {
	display: flex;
	gap: 6px;
	margin-bottom: 6px;
}

.sr-lien-action {
	background: none;
	border: 0;
	padding: 4px 0;
	color: #249dd6;
	font-size: 13px;
	cursor: pointer;
}

.sr-lien-action:hover {
	text-decoration: underline;
}

.sr-lien-action:disabled {
	color: #b0b0b0;
	cursor: default;
	text-decoration: none;
}

.sr-prix-triple {
	display: flex;
	gap: 8px;
}

.sr-prix-triple label {
	flex: 1;
	margin: 0;
}

.sr-prix-triple span {
	display: block;
	font-size: 10px;
	letter-spacing: 0.05em;
	color: #9a9a9a;
	margin-bottom: 3px;
}

.sr-editeur-barre {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid #eef0f2;
	flex-wrap: wrap;
}

.sr-a-droite {
	margin-left: auto;
}

.sr-btn-principal {
	background: #262626;
	color: #fff;
	border: 0;
	border-radius: 3px;
	padding: 11px 26px;
	font-weight: 600;
	cursor: pointer;
}

.sr-btn-principal:disabled {
	opacity: 0.4;
	cursor: default;
}

.sr-succes {
	margin-top: 16px;
	padding: 12px 16px;
	border-left: 3px solid #4caf50;
	background: #eef8ef;
	color: #2e7d32;
	font-size: 13px;
}

.sr-editeur .sr-erreur ul {
	margin: 8px 0 0;
	padding-left: 18px;
}
