/**
 * CLECOD service pages: Dépannage (10), Réparation (11), Contact (13).
 *
 * Page-scoped refinements only. The HighRev visual DNA remains unchanged:
 * square geometry, red/black/white palette, flat surfaces and hairline rules.
 */

:is(body.page-id-10, body.page-id-11, body.page-id-13) {
	--clecod-service-gutter: clamp(20px, 4.2vw, 72px);
	--clecod-section-space: clamp(72px, 6vw, 96px);
	--clecod-section-space-compact: clamp(56px, 5vw, 80px);
	--clecod-focus-color: #e20100;
	--clecod-muted-text: #5f5f5f;
}

/*
 * The sections below are top-level Elementor containers. Neutralize the
 * shared full-bleed offset so their content remains aligned to the page grid.
 */
:is(body.page-id-10, body.page-id-11, body.page-id-13) .elementor > .e-con.e-parent.clecod-service-features,
:is(body.page-id-10, body.page-id-11, body.page-id-13) .elementor > .e-con.e-parent.clecod-service-faq,
:is(body.page-id-10, body.page-id-11, body.page-id-13) .elementor > .e-con.e-parent.clecod-service-cta {
	width: 100% !important;
	margin-right: 0;
	margin-left: 0;
}

/* Restore an intentional vertical rhythm through Elementor's own variables. */
:is(body.page-id-10, body.page-id-11, body.page-id-13) .elementor > .e-con.e-parent.clecod-service-intro {
	--padding-top: var(--clecod-section-space-compact);
	--padding-bottom: var(--clecod-section-space-compact);
	padding-top: var(--clecod-section-space-compact) !important;
	padding-bottom: var(--clecod-section-space-compact) !important;
}

:is(body.page-id-10, body.page-id-11, body.page-id-13) .elementor > .e-con.e-parent.clecod-service-features,
:is(body.page-id-10, body.page-id-11, body.page-id-13) .elementor > .e-con.e-parent.clecod-service-faq {
	--padding-top: var(--clecod-section-space);
	--padding-bottom: var(--clecod-section-space);
	padding-top: var(--clecod-section-space) !important;
	padding-bottom: var(--clecod-section-space) !important;
}

:is(body.page-id-10, body.page-id-11, body.page-id-13) .elementor > .e-con.e-parent.clecod-service-process {
	--padding-top: var(--clecod-section-space);
	--padding-bottom: var(--clecod-section-space);
	padding-top: var(--clecod-section-space) !important;
	padding-bottom: var(--clecod-section-space) !important;
}

:is(body.page-id-10, body.page-id-11, body.page-id-13) .elementor > .e-con.e-parent.clecod-service-cta {
	--padding-top: var(--clecod-section-space-compact);
	--padding-bottom: var(--clecod-section-space-compact);
	padding-top: var(--clecod-section-space-compact) !important;
	padding-bottom: var(--clecod-section-space-compact) !important;
}

/* Hero: preserve HighRev's photographic split while tightening hierarchy. */
:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-hero .qodef-m-title {
	max-width: 27ch;
	margin-bottom: 0;
	letter-spacing: -0.025em;
	text-wrap: balance;
}

:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-hero > .elementor-widget-text-editor {
	width: min(100%, 720px);
	max-width: 720px;
}

:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-hero > .elementor-widget-text-editor p {
	margin: 0;
	color: #e0e0e0;
	font-size: 17px;
	line-height: 1.65;
	text-wrap: pretty;
}

:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-actions {
	--gap: 18px;
	--row-gap: 18px;
	--column-gap: 18px;
	gap: 18px !important;
	margin-top: 30px;
	padding: 0 !important;
}

:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-actions .qodef-button {
	min-height: 48px;
	white-space: nowrap;
}

/* Complete keyboard and active feedback without changing the button recipe. */
:is(body.page-id-10, body.page-id-11, body.page-id-13) .qodef-button:focus-visible,
:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-contact-detail a:focus-visible,
:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-contact-emergency a:focus-visible,
:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-related-links a:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

:is(body.page-id-10, body.page-id-11, body.page-id-13) .qodef-accordion .qodef-accordion-title:focus-visible {
	outline: 2px solid var(--clecod-focus-color);
	outline-offset: -2px;
}

:is(body.page-id-10, body.page-id-11, body.page-id-13) .qodef-button:active,
:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-contact-detail a:active,
:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-contact-emergency a:active,
:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-related-links a:active {
	transform: translateY(1px);
}

/* Intro and supporting copy: readable measure and consistent neutral contrast. */
:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-intro .elementor-widget-text-editor {
	max-width: 68ch;
}

:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-intro .elementor-widget-text-editor p {
	color: var(--clecod-muted-text);
	font-size: 16px;
	line-height: 1.72;
	text-wrap: pretty;
}

/* Keep feature cards as one continuous technical HighRev grid. */
:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-grid {
	gap: 1px;
}

:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-card h3 {
	text-wrap: balance;
}

:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-card p {
	text-wrap: pretty;
}

:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-process-step {
	padding-top: 24px;
	padding-bottom: 24px;
}

:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-checks {
	gap: 1px;
}

:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-checks span {
	padding-top: 17px;
	padding-bottom: 17px;
}

:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-cta > .elementor-widget-text-editor p {
	color: #cfcfcf;
}

/* Shared footer newsletter: target size and corrected heading styling. */
:is(body.page-id-10, body.page-id-11, body.page-id-13) #qodef-page-content-bottom #block-29 h3 {
	margin: 0;
	font-size: 18px;
	line-height: 20px;
	text-transform: uppercase;
}

:is(body.page-id-10, body.page-id-11, body.page-id-13) #qodef-page-content-bottom .qodef-m-newsletter-two button[type="submit"] {
	min-height: 44px;
	padding: 0 8px !important;
}

/*
 * Elementor's responsive min-height variable otherwise overrides the visual
 * panel height. Set both the variable and the property.
 */
:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-image-panel {
	--min-height: 570px;
	min-height: 570px !important;
	padding: 0 !important;
}

/* Contact page: stronger scan path, explicit labels and a compact form grid. */
body.page-id-13 .clecod-contact-details {
	gap: 1px;
}

body.page-id-13 .clecod-contact-detail {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-start;
	min-height: 170px;
	padding: 30px;
}

body.page-id-13 .clecod-contact-detail small {
	margin-bottom: 11px;
	letter-spacing: 0.06em;
}

body.page-id-13 .clecod-contact-detail strong {
	text-wrap: pretty;
}

body.page-id-13 .clecod-contact-detail a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	margin-top: 4px;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

body.page-id-13 .clecod-contact-form .qodef-standard-form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px 18px;
}

body.page-id-13 .clecod-contact-form .qodef-input-holder {
	min-width: 0;
	margin: 0;
}

body.page-id-13 .clecod-contact-form .clecod-input--message {
	grid-column: 1 / -1;
}

body.page-id-13 .clecod-contact-form label {
	display: block;
	margin-bottom: 9px;
	color: #202020;
	font-family: var(--clecod-font-display);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: 0.035em;
	text-transform: uppercase;
}

body.page-id-13 .clecod-contact-form label .clecod-required {
	color: var(--clecod-focus-color);
}

body.page-id-13 .clecod-contact-form .wpcf7-form-control-wrap {
	display: block;
	margin-top: 0;
}

body.page-id-13 .clecod-contact-form .qodef-standard-form input:not([type="submit"]),
body.page-id-13 .clecod-contact-form .qodef-standard-form textarea,
body.page-id-13 .clecod-contact-form .qodef-standard-form select {
	width: 100%;
	min-height: 54px;
	padding: 14px 16px;
	border: 1px solid #c9c9c9;
	border-radius: 0;
	background-color: #fff;
	color: #202020;
	font-size: 15px;
	line-height: 1.5;
	box-shadow: none;
	box-sizing: border-box;
}

body.page-id-13 .clecod-contact-form .qodef-standard-form textarea {
	min-height: 170px;
	resize: vertical;
}

body.page-id-13 .clecod-contact-form .qodef-standard-form select {
	padding-top: 0;
	padding-bottom: 0;
}

body.page-id-13 .clecod-contact-form .qodef-standard-form input::placeholder,
body.page-id-13 .clecod-contact-form .qodef-standard-form textarea::placeholder {
	color: #646464;
	opacity: 1;
}

body.page-id-13 .clecod-contact-form .qodef-standard-form input:not([type="submit"]):focus-visible,
body.page-id-13 .clecod-contact-form .qodef-standard-form textarea:focus-visible,
body.page-id-13 .clecod-contact-form .qodef-standard-form select:focus-visible {
	border-color: var(--clecod-focus-color);
	outline: 2px solid var(--clecod-focus-color);
	outline-offset: 2px;
}

body.page-id-13 .clecod-contact-form .qodef-standard-form input[type="submit"] {
	grid-column: 1 / -1;
	width: max-content;
	min-width: 190px;
	min-height: 50px;
	margin: 2px 0 0;
	white-space: nowrap;
}

body.page-id-13 .clecod-contact-form .wpcf7-spinner {
	align-self: center;
	margin: 0;
}

body.page-id-13 .clecod-contact-form .wpcf7-not-valid-tip {
	margin-top: 7px;
	color: #9c0000;
	font-size: 13px;
	line-height: 1.45;
}

body.page-id-13 .clecod-contact-form .wpcf7-response-output {
	grid-column: 1 / -1;
	margin: 0;
	padding: 14px 16px;
	border-width: 1px;
	font-size: 14px;
	line-height: 1.5;
}

body.page-id-13 .clecod-contact-emergency {
	margin-top: 22px;
}

body.page-id-13 .clecod-contact-emergency a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
}

@media (min-width: 768px) and (max-width: 1024px) {
	:is(body.page-id-10, body.page-id-11, body.page-id-13) {
		--clecod-section-space: clamp(64px, 8vw, 80px);
		--clecod-section-space-compact: clamp(56px, 7vw, 70px);
	}

	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-hero .qodef-m-title {
		font-size: clamp(48px, 5.6vw, 58px) !important;
		line-height: 0.99 !important;
	}

	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-stats {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-stat {
		min-height: 120px;
		padding: 27px 24px;
		border-right: 1px solid #393939;
		border-bottom: 0;
	}

	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-stat:last-child {
		border-right: 0;
	}

	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-card {
		min-height: 210px;
		padding: 34px 28px 30px;
	}

	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-process {
		--row-gap: 48px;
		row-gap: 48px !important;
	}

	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-image-panel {
		--min-height: clamp(390px, 52vw, 490px);
		min-height: clamp(390px, 52vw, 490px) !important;
	}

	body.page-id-13 .clecod-contact-details {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	body.page-id-13 .clecod-service-process > .clecod-service-image-panel {
		order: 2;
	}

	body.page-id-13 .clecod-service-process > .e-con:not(.clecod-service-image-panel) {
		order: 1;
	}
}

@media (max-width: 767px) {
	:is(body.page-id-10, body.page-id-11, body.page-id-13) {
		--clecod-section-space: clamp(56px, 16vw, 64px);
		--clecod-section-space-compact: clamp(48px, 14vw, 58px);
	}

	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-hero {
		--min-height: 560px;
		min-height: 560px !important;
	}

	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-hero::before {
		background: rgba(0, 0, 0, 0.8);
	}

	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-hero .qodef-m-title {
		max-width: 100%;
		font-size: clamp(35px, 10.4vw, 40px) !important;
		line-height: 1 !important;
	}

	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-hero > .elementor-widget-text-editor {
		max-width: 38ch;
	}

	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-hero > .elementor-widget-text-editor p {
		font-size: 15px;
		line-height: 1.55;
	}

	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-actions {
		--flex-direction: column;
		--align-items: stretch;
		--gap: 12px;
		--row-gap: 12px;
		flex-direction: column !important;
		align-items: stretch;
		gap: 12px !important;
		width: 100%;
		margin-top: 24px;
	}

	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-actions > .elementor-element,
	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-actions .qodef-button {
		width: 100%;
		box-sizing: border-box;
	}

	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-actions .qodef-button {
		justify-content: center;
	}

	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-stat {
		min-height: 112px;
		padding: 25px 24px;
	}

	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-stat strong {
		font-size: 26px;
	}

	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-card {
		min-height: 0;
		padding: 28px 24px 27px;
	}

	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-card h3 {
		margin-top: 16px;
		margin-bottom: 9px;
		font-size: 20px;
	}

	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-card p {
		font-size: 14px;
		line-height: 1.55;
	}

	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-process {
		--row-gap: 40px;
		row-gap: 40px !important;
	}

	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-process-step {
		grid-template-columns: 38px 1fr;
		gap: 14px;
		padding-top: 21px;
		padding-bottom: 21px;
	}

	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-checks span {
		padding: 15px 17px;
	}

	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-image-panel {
		--min-height: clamp(280px, 82vw, 360px);
		min-height: clamp(280px, 82vw, 360px) !important;
		background-position: center 45% !important;
	}

	body.page-id-13 .clecod-contact-details,
	body.page-id-13 .clecod-contact-form .qodef-standard-form {
		grid-template-columns: 1fr;
	}

	body.page-id-13 .clecod-contact-detail {
		min-height: 0;
		padding: 25px 24px;
	}

	body.page-id-13 .clecod-contact-form .clecod-input--message,
	body.page-id-13 .clecod-contact-form .qodef-standard-form input[type="submit"],
	body.page-id-13 .clecod-contact-form .wpcf7-response-output {
		grid-column: 1;
	}

	body.page-id-13 .clecod-contact-form .qodef-standard-form input[type="submit"] {
		width: 100%;
	}

	body.page-id-13 .clecod-service-process > .clecod-service-image-panel {
		order: 2;
	}

	body.page-id-13 .clecod-service-process > .e-con:not(.clecod-service-image-panel) {
		order: 1;
	}
}

@media (max-width: 390px) {
	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-service-hero .qodef-m-title {
		font-size: 34px !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	:is(body.page-id-10, body.page-id-11, body.page-id-13) .qodef-button,
	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-contact-detail a,
	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-contact-emergency a,
	:is(body.page-id-10, body.page-id-11, body.page-id-13) .clecod-related-links a,
	:is(body.page-id-10, body.page-id-11, body.page-id-13) .qodef-accordion .qodef-accordion-title,
	body.page-id-13 .clecod-contact-form .qodef-standard-form input,
	body.page-id-13 .clecod-contact-form .qodef-standard-form textarea,
	body.page-id-13 .clecod-contact-form .qodef-standard-form select {
		transition: none !important;
	}
}
