/*
Theme Name: Docacert
Theme URI: https://docacert.com
Author: Docacert
Description: Thème du site vitrine Docacert : signature, cachet, horodatage et vérification de documents par API. Thème bloc multilingue (français, anglais, espagnol, allemand) prévu pour Polylang.
Version: 1.1.4
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: docacert
*/

/* ==========================================================================
   Jetons de design
   ========================================================================== */

:root {
	--dc-ink: #0E1A2B;
	--dc-ink-2: #0B1424;
	--dc-slate: #3E4B60;
	--dc-muted: #5A6578;
	--dc-seal: #0B7356;
	--dc-seal-dark: #0A5A44;
	--dc-seal-light: #6FD6AE;
	--dc-mist: #F2F4F7;
	--dc-line: #D8DEE6;
	--dc-line-2: #C9D1DC;
	--dc-line-soft: #E4E8EE;
	--dc-paper: #FFFFFF;
	--dc-code-line: #23314A;
	--dc-code-text: #D8E1EE;
	--dc-sans: Archivo, "Helvetica Neue", Arial, sans-serif;
	--dc-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
	--dc-wrap: 1200px;
	--dc-gutter: clamp(20px, 4vw, 40px);
	--dc-section-y: clamp(64px, 9vw, 112px);
	--dc-radius: 10px;
	--dc-dots: radial-gradient(#E1E6ED 1px, transparent 1.4px);
	--dc-i-signature: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 15.5c2.2-4.6 4.2-7.5 5.6-7.5 1.9 0 .1 6.6 2 6.6 1.4 0 2.3-3.3 3.8-3.3 1.1 0 .9 2.4 2.4 2.4 1 0 2-.9 3.2-2.3'/%3E%3Cpath d='M3 20h18'/%3E%3C/svg%3E");
	--dc-i-seal: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.5 3.5h5v4c0 1.3.9 2.2 2.1 2.6 2.2.7 3.4 2.3 3.4 4.4v1.5H4v-1.5c0-2.1 1.2-3.7 3.4-4.4 1.2-.4 2.1-1.3 2.1-2.6z'/%3E%3Cpath d='M4 20.5h16'/%3E%3C/svg%3E");
	--dc-i-timestamp: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12.5' r='8.5'/%3E%3Cpath d='M12 8v4.5l3 2'/%3E%3Cpath d='M9.5 2.5h5'/%3E%3C/svg%3E");
	--dc-i-verification: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7.5 3v5.5c0 4.6-3.2 8.3-7.5 9.5-4.3-1.2-7.5-4.9-7.5-9.5V6z'/%3E%3Cpath d='M8.5 12l2.5 2.5 4.5-5'/%3E%3C/svg%3E");
	--dc-i-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
	--dc-i-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
	--dc-i-plus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
	--dc-i-code: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8.5 7L3.5 12l5 5'/%3E%3Cpath d='M15.5 7l5 5-5 5'/%3E%3C/svg%3E");
	--dc-i-book: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4.5h6a2 2 0 0 1 2 2V20a1.5 1.5 0 0 0-1.5-1.5H4z'/%3E%3Cpath d='M20 4.5h-6a2 2 0 0 0-2 2V20a1.5 1.5 0 0 1 1.5-1.5H20z'/%3E%3C/svg%3E");
	--dc-i-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5.5' width='18' height='13' rx='1.5'/%3E%3Cpath d='M3.5 6.5l8.5 6.5 8.5-6.5'/%3E%3C/svg%3E");
	--dc-i-key: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8' cy='15' r='4'/%3E%3Cpath d='M11 12l8.5-8.5M16 7l2.5 2.5M14 9l2 2'/%3E%3C/svg%3E");
	--dc-i-webhook: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='6' cy='17' r='2.5'/%3E%3Ccircle cx='18' cy='17' r='2.5'/%3E%3Ccircle cx='12' cy='6' r='2.5'/%3E%3Cpath d='M8.5 17h7M10.7 8.2L7.2 14.8M13.3 8.2l3.5 6.6'/%3E%3C/svg%3E");
	--dc-i-json: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 4c-2 0-2.5 1-2.5 3v2c0 1.5-.8 2.5-2 3 1.2.5 2 1.5 2 3v2c0 2 .5 3 2.5 3'/%3E%3Cpath d='M16 4c2 0 2.5 1 2.5 3v2c0 1.5.8 2.5 2 3-1.2.5-2 1.5-2 3v2c0 2-.5 3-2.5 3'/%3E%3C/svg%3E");
	--dc-i-flask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.5 3.5h5M10.5 3.5v5.5L5 18.5c-.6 1.1.2 2 1.3 2h11.4c1.1 0 1.9-.9 1.3-2L13.5 9V3.5'/%3E%3Cpath d='M7.5 14.5h9'/%3E%3C/svg%3E");
	--dc-i-alert: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 7.5v5.5M12 16.2v.3'/%3E%3C/svg%3E");
	--dc-i-list: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8.5 6.5h11M8.5 12h11M8.5 17.5h11'/%3E%3Cpath d='M4.5 6.5h.01M4.5 12h.01M4.5 17.5h.01'/%3E%3C/svg%3E");
	--dc-i-globe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M3.5 12h17M12 3.5c2.5 2.6 3.5 5.5 3.5 8.5s-1 5.9-3.5 8.5c-2.5-2.6-3.5-5.5-3.5-8.5s1-5.9 3.5-8.5z'/%3E%3C/svg%3E");
	--dc-i-scale: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v16M7 20h10M5 7.5h14M5 7.5l-2.5 6a3 3 0 0 0 5 0zM19 7.5l-2.5 6a3 3 0 0 0 5 0z'/%3E%3C/svg%3E");
	--dc-i-lock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='10.5' width='14' height='10' rx='1.5'/%3E%3Cpath d='M8 10.5V8a4 4 0 0 1 8 0v2.5'/%3E%3C/svg%3E");
}

.dc-ico--signature { --dc-ico: var(--dc-i-signature); }
.dc-ico--seal { --dc-ico: var(--dc-i-seal); }
.dc-ico--timestamp { --dc-ico: var(--dc-i-timestamp); }
.dc-ico--verification { --dc-ico: var(--dc-i-verification); }
.dc-ico--check { --dc-ico: var(--dc-i-check); }
.dc-ico--arrow { --dc-ico: var(--dc-i-arrow); }
.dc-ico--plus { --dc-ico: var(--dc-i-plus); }
.dc-ico--code { --dc-ico: var(--dc-i-code); }
.dc-ico--book { --dc-ico: var(--dc-i-book); }
.dc-ico--mail { --dc-ico: var(--dc-i-mail); }
.dc-ico--key { --dc-ico: var(--dc-i-key); }
.dc-ico--webhook { --dc-ico: var(--dc-i-webhook); }
.dc-ico--json { --dc-ico: var(--dc-i-json); }
.dc-ico--flask { --dc-ico: var(--dc-i-flask); }
.dc-ico--alert { --dc-ico: var(--dc-i-alert); }
.dc-ico--list { --dc-ico: var(--dc-i-list); }
.dc-ico--globe { --dc-ico: var(--dc-i-globe); }
.dc-ico--scale { --dc-ico: var(--dc-i-scale); }
.dc-ico--lock { --dc-ico: var(--dc-i-lock); }

/* ==========================================================================
   Base
   ========================================================================== */

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

body {
	margin: 0;
	font-family: var(--dc-sans);
	color: var(--dc-ink);
	background: var(--dc-paper);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

:focus-visible {
	outline: 2px solid var(--dc-seal);
	outline-offset: 3px;
}

img,
svg {
	max-width: 100%;
}

h1,
h2,
h3,
h4 {
	font-stretch: 106%;
	text-wrap: balance;
}

/* Mots composés allemands (« Datenschutzerklärung ») : césure sur petit écran plutôt que débordement. */
:lang(de) :is(h1, h2, h3, h4) {
	hyphens: auto;
	hyphenate-limit-chars: 12 5 5;
	overflow-wrap: anywhere;
}

p {
	text-wrap: pretty;
}

code,
kbd,
pre,
samp {
	font-family: var(--dc-mono);
}

::selection {
	background: rgba(11, 115, 86, 0.18);
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
	white-space: nowrap;
}

/* Le contenu des pages est composé de sections pleine largeur. */
body .dc-main {
	margin: 0;
	padding: 0;
}

body .dc-main > .wp-block-post-content > *,
body .dc-page > * {
	margin-block: 0;
}

/* ==========================================================================
   Sections et conteneur
   ========================================================================== */

.dc-section {
	padding-block: var(--dc-section-y);
	background: var(--dc-paper);
}

.dc-section--mist {
	background: var(--dc-mist);
	border-block: 1px solid var(--dc-line);
}

.dc-section--mist + .dc-section--mist {
	border-top: 0;
}

.dc-section--ink {
	background: var(--dc-ink);
	color: #FFFFFF;
}

.dc-section--dots {
	background-color: var(--dc-paper);
	background-image: var(--dc-dots);
	background-size: 24px 24px;
}

.dc-container {
	width: 100%;
	max-width: var(--dc-wrap);
	margin-inline: auto;
	padding-inline: var(--dc-gutter);
	display: flex;
	flex-direction: column;
	gap: 48px;
}

body .dc-container > *,
body .dc-head > *,
body .dc-head__titles > * {
	margin-block: 0;
	max-width: none;
}

.dc-head {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.dc-head--split {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr));
	gap: 20px 64px;
	align-items: end;
}

.dc-head__titles {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.dc-head--center {
	align-items: center;
	text-align: center;
}

/* ==========================================================================
   Typographie
   ========================================================================== */

.dc-eyebrow {
	margin: 0;
	font-family: var(--dc-mono);
	font-size: 12.5px;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--dc-seal);
}

.dc-section--ink .dc-eyebrow {
	color: var(--dc-seal-light);
}

.dc-h1 {
	margin: 0;
	font-size: clamp(40px, 5vw, 66px);
	line-height: 1.02;
	font-weight: 650;
	font-stretch: 108%;
	letter-spacing: -0.028em;
	max-width: 18em;
}

.dc-h2 {
	margin: 0;
	font-size: clamp(30px, 3.6vw, 46px);
	line-height: 1.06;
	font-weight: 650;
	font-stretch: 106%;
	letter-spacing: -0.024em;
	max-width: 20em;
}

.dc-h3 {
	margin: 0;
	font-size: 21px;
	line-height: 1.25;
	font-weight: 600;
	font-stretch: 104%;
	letter-spacing: -0.01em;
}

.dc-lead {
	margin: 0;
	max-width: 36em;
	font-size: 18px;
	line-height: 1.6;
	color: var(--dc-slate);
}

.dc-section--ink .dc-lead {
	color: #C5CEDB;
}

.dc-mono {
	font-family: var(--dc-mono);
}

/* ==========================================================================
   Boutons
   ========================================================================== */

.wp-block-buttons {
	gap: 12px;
}

.wp-block-buttons > .wp-block-button {
	margin: 0;
}

body .wp-block-button__link,
.dc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 50px;
	text-decoration: none;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

body .wp-block-button.is-style-outline > .wp-block-button__link {
	padding: 12px 22px;
	border: 1px solid var(--dc-ink);
	background: transparent;
	color: var(--dc-ink);
}

body .wp-block-button.is-style-outline > .wp-block-button__link:hover,
body .wp-block-button.is-style-outline > .wp-block-button__link:focus-visible {
	background: var(--dc-ink);
	color: #FFFFFF;
}

body .dc-section--ink .wp-block-button.is-style-outline > .wp-block-button__link {
	border-color: rgba(255, 255, 255, 0.55);
	color: #FFFFFF;
}

body .dc-section--ink .wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: #FFFFFF;
	color: var(--dc-ink);
}

.wp-block-button.dc-arrow > .wp-block-button__link::after,
.dc-link-arrow::after {
	content: "";
	flex: 0 0 18px;
	width: 18px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask: var(--dc-i-arrow) center / contain no-repeat;
	mask: var(--dc-i-arrow) center / contain no-repeat;
}

.dc-btn {
	padding: 10px 18px;
	min-height: 44px;
	border: 1px solid transparent;
	border-radius: 6px;
	background: var(--dc-seal);
	color: #FFFFFF;
	font-family: var(--dc-sans);
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.3;
	cursor: pointer;
}

.dc-btn:hover,
.dc-btn:focus-visible {
	background: var(--dc-seal-dark);
	color: #FFFFFF;
}

.dc-btn--lg {
	min-height: 50px;
	padding: 13px 24px;
	font-size: 16px;
}

.dc-btn--outline {
	background: transparent;
	border-color: var(--dc-ink);
	color: var(--dc-ink);
}

.dc-btn--outline:hover,
.dc-btn--outline:focus-visible {
	background: var(--dc-ink);
	color: #FFFFFF;
}

.dc-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

/* ==========================================================================
   En-tête
   ========================================================================== */

.dc-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(255, 255, 255, 0.96);
	border-bottom: 1px solid var(--dc-line);
	-webkit-backdrop-filter: saturate(1.4) blur(8px);
	backdrop-filter: saturate(1.4) blur(8px);
}

body.admin-bar .dc-header {
	top: 32px;
}

@media (max-width: 782px) {
	body.admin-bar .dc-header {
		top: 46px;
	}
}

@media (max-width: 600px) {
	body.admin-bar .dc-header {
		top: 0;
	}
}

.dc-header__inner {
	max-width: var(--dc-wrap);
	margin-inline: auto;
	padding: 12px var(--dc-gutter);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 32px;
}

.dc-logo {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	color: var(--dc-ink);
	text-decoration: none;
}

.dc-logo:hover {
	color: var(--dc-ink);
}

.dc-logo__mark {
	flex: 0 0 auto;
}

.dc-logo__word {
	font-size: 22px;
	font-weight: 650;
	font-stretch: 116%;
	letter-spacing: -0.02em;
	line-height: 1;
}

.dc-logo--light,
.dc-logo--light:hover {
	color: #FFFFFF;
}

.dc-header__menu {
	display: flex;
	flex: 1 1 auto;
	align-items: center;
	justify-content: space-between;
	gap: 8px 32px;
}

.dc-nav ul,
.dc-lang ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
}

.dc-nav ul {
	gap: 0 28px;
}

.dc-nav a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--dc-ink);
	text-decoration: none;
	font-size: 15px;
	font-weight: 500;
}

.dc-nav a:hover {
	color: var(--dc-seal);
}

.dc-nav a[aria-current="page"] {
	text-decoration: underline;
	text-decoration-color: var(--dc-seal);
	text-decoration-thickness: 2px;
	text-underline-offset: 8px;
}

.dc-header__actions {
	display: flex;
	align-items: center;
	gap: 16px;
}

.dc-lang ul {
	gap: 4px;
}

.dc-lang a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 32px;
	min-height: 44px;
	font-family: var(--dc-mono);
	font-size: 12.5px;
	font-weight: 500;
	color: var(--dc-muted);
	text-decoration: none;
}

.dc-lang a:hover {
	color: var(--dc-ink);
}

.dc-lang a[aria-current] {
	color: var(--dc-ink);
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 6px;
}

.dc-nav-toggle {
	display: none;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	padding: 8px 14px;
	border: 1px solid var(--dc-line-2);
	border-radius: 6px;
	background: #FFFFFF;
	color: var(--dc-ink);
	font: 600 14px/1 var(--dc-sans);
	cursor: pointer;
}

.dc-nav-toggle__icon {
	position: relative;
	width: 18px;
	height: 12px;
	border-top: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
}

.dc-nav-toggle__icon::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 3px;
	border-top: 2px solid currentColor;
}

.dc-header.is-open .dc-nav-toggle__icon {
	border-color: transparent;
}

.dc-header.is-open .dc-nav-toggle__icon::before,
.dc-header.is-open .dc-nav-toggle__icon::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 3px;
	border-top: 2px solid currentColor;
	transform: rotate(45deg);
}

.dc-header.is-open .dc-nav-toggle__icon::before {
	transform: rotate(-45deg);
}

@media (max-width: 959px) {
	.dc-nav-toggle {
		display: inline-flex;
	}

	.dc-header__menu {
		flex-basis: 100%;
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
		padding-bottom: 16px;
	}

	.js .dc-header__menu {
		display: none;
	}

	.js .dc-header.is-open .dc-header__menu {
		display: flex;
	}

	.dc-nav ul {
		flex-direction: column;
		gap: 0;
	}

	.dc-nav li {
		border-bottom: 1px solid var(--dc-line);
	}

	.dc-nav a {
		width: 100%;
		min-height: 52px;
		font-size: 17px;
	}

	.dc-header__actions {
		flex-wrap: wrap;
		justify-content: space-between;
	}
}

/* ==========================================================================
   Pied de page
   ========================================================================== */

.dc-footer {
	background: var(--dc-ink);
	color: #C5CEDB;
}

.dc-footer__inner {
	max-width: var(--dc-wrap);
	margin-inline: auto;
	padding: 72px var(--dc-gutter) 32px;
	display: flex;
	flex-direction: column;
	gap: 48px;
}

.dc-footer__top {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 48px 64px;
}

.dc-footer__brand {
	flex: 1 1 260px;
	max-width: 340px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.dc-footer__brand p {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
	color: #9AA8BC;
}

.dc-footer__cols {
	flex: 2 1 520px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 32px;
}

.dc-footer__title {
	margin: 0 0 4px;
	font-family: var(--dc-mono);
	font-size: 11.5px;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #8FA0B8;
}

.dc-footer ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.dc-footer__col a {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	color: #C5CEDB;
	text-decoration: none;
	font-size: 15px;
}

.dc-footer__col a:hover {
	color: #FFFFFF;
	text-decoration: underline;
	text-underline-offset: 4px;
}

.dc-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding-top: 24px;
	border-top: 1px solid var(--dc-code-line);
	font-size: 13.5px;
	color: #9AA8BC;
}

.dc-footer__bottom p {
	margin: 0;
}

.dc-footer .dc-lang ul {
	gap: 4px 12px;
}

.dc-footer .dc-lang a {
	min-width: 0;
	font-size: 12.5px;
	color: #9AA8BC;
}

.dc-footer .dc-lang a:hover,
.dc-footer .dc-lang a[aria-current] {
	color: #FFFFFF;
}

/* ==========================================================================
   Héros de l'accueil
   ========================================================================== */

.dc-hero {
	position: relative;
	overflow: hidden;
	padding-block: clamp(56px, 8vw, 104px) clamp(72px, 9vw, 120px);
	background-color: var(--dc-paper);
	background-image: var(--dc-dots);
	background-size: 24px 24px;
	border-bottom: 1px solid var(--dc-line);
}

body .dc-hero__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(460px, 100%), 1fr));
	gap: 64px;
	align-items: center;
}

.dc-hero__text {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 28px;
}

body .dc-hero__text > * {
	margin-block: 0;
}

.dc-hero .dc-lead {
	max-width: 34em;
	font-size: 19px;
	line-height: 1.55;
}

/* Illustration : requête d'API + document scellé. */
.dc-visual {
	margin: 0;
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	grid-template-rows: auto 72px auto;
	padding-top: 40px;
}

.dc-visual__code {
	grid-column: 3 / 13;
	grid-row: 1 / 3;
	background: var(--dc-ink-2);
	border: 1px solid var(--dc-code-line);
	border-radius: var(--dc-radius);
	overflow: hidden;
	box-shadow: 0 32px 64px -32px rgba(14, 26, 43, 0.55);
}

.dc-visual__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 16px;
	border-bottom: 1px solid var(--dc-code-line);
	font-family: var(--dc-mono);
	font-size: 12px;
	color: #C5CEDB;
}

.dc-visual__bar span {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.dc-visual__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--dc-seal-light);
}

.dc-visual__status {
	color: var(--dc-seal-light);
}

.dc-visual__code pre {
	margin: 0;
	padding: 20px 20px 104px;
	font-size: 13px;
	line-height: 1.75;
	color: var(--dc-code-text);
	white-space: pre;
	overflow-x: auto;
	background: none;
}

.dc-visual__cert {
	position: relative;
	z-index: 1;
	grid-column: 1 / 11;
	grid-row: 2 / 4;
	padding: 24px 24px 20px;
	background: #FFFFFF;
	border: 1px solid var(--dc-line);
	border-radius: var(--dc-radius);
	box-shadow: 0 28px 56px -28px rgba(14, 26, 43, 0.45);
}

.dc-seal {
	position: absolute;
	top: -54px;
	right: -16px;
	width: 112px;
	height: 112px;
	transform: rotate(-14deg);
}

.dc-visual__file {
	display: flex;
	align-items: center;
	gap: 14px;
	padding-right: 72px;
}

.dc-visual__file div {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.dc-visual__file strong {
	font-size: 15.5px;
	font-weight: 600;
	overflow-wrap: anywhere;
}

.dc-visual__file span {
	font-family: var(--dc-mono);
	font-size: 12px;
	color: var(--dc-muted);
}

.dc-visual__cert dl {
	margin: 20px 0 0;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 10px 20px;
	align-items: baseline;
	font-size: 14px;
}

.dc-visual__cert dt {
	font-family: var(--dc-mono);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--dc-muted);
}

.dc-visual__cert dd {
	margin: 0;
}

.dc-visual__cert dd.dc-mono {
	font-size: 13px;
}

@media (max-width: 600px) {
	.dc-visual {
		grid-template-rows: auto 56px auto;
	}

	.dc-visual__code {
		grid-column: 1 / 13;
	}

	.dc-visual__code pre {
		padding-bottom: 80px;
	}

	.dc-visual__cert {
		grid-column: 1 / 13;
		margin-inline: 12px;
	}

	.dc-seal {
		top: -44px;
		right: -6px;
		width: 88px;
		height: 88px;
	}

	.dc-visual__file {
		padding-right: 52px;
	}
}

.dc-visual__ok {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 18px 0 0;
	padding-top: 16px;
	border-top: 1px dashed var(--dc-line-2);
	font-size: 14px;
	font-weight: 600;
	color: var(--dc-seal);
}

/* ==========================================================================
   Bandeau des normes
   ========================================================================== */

.dc-strip {
	border-bottom: 1px solid var(--dc-line);
	background: var(--dc-paper);
}

body .dc-strip .dc-container {
	gap: 0;
}

.dc-strip__list {
	list-style: none;
	margin: 0;
	padding: 18px 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px 32px;
	font-family: var(--dc-mono);
	font-size: 12.5px;
	letter-spacing: 0.03em;
	color: var(--dc-slate);
}

body .dc-strip__list > li {
	margin: 0;
}

/* ==========================================================================
   Icônes
   ========================================================================== */

.dc-ico::before {
	content: "";
	display: block;
	width: 32px;
	height: 32px;
	background-color: var(--dc-seal);
	-webkit-mask: var(--dc-ico) center / contain no-repeat;
	mask: var(--dc-ico) center / contain no-repeat;
}

.dc-section--ink .dc-ico::before {
	background-color: var(--dc-seal-light);
}

/* ==========================================================================
   Cartes produits (grille à filets)
   ========================================================================== */

.dc-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(480px, 100%), 1fr));
	gap: 1px;
	background: var(--dc-line);
	border: 1px solid var(--dc-line);
	border-radius: var(--dc-radius);
	overflow: hidden;
}

body .dc-cards > * {
	margin: 0;
}

.dc-card {
	--dc-pad: clamp(28px, 3vw, 40px);
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: var(--dc-pad);
	background: #FFFFFF;
}

body .dc-card > * {
	margin-block: 0;
}

.dc-card.dc-ico::before {
	position: absolute;
	top: var(--dc-pad);
	left: var(--dc-pad);
}

.dc-card .dc-endpoint {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	min-height: 32px;
}

.dc-card .dc-h3 {
	margin-top: 12px;
	font-size: 23px;
	line-height: 1.2;
}

.dc-card p {
	max-width: 32em;
	font-size: 16px;
	line-height: 1.6;
	color: var(--dc-slate);
}

body .dc-card .dc-card__result {
	display: flex;
	align-items: center;
	gap: 8px;
	max-width: none;
	margin-top: 8px;
	padding-top: 16px;
	border-top: 1px solid var(--dc-line-soft);
	font-family: var(--dc-mono);
	font-size: 12.5px;
	color: var(--dc-slate);
}

.dc-card__result::before {
	content: "";
	flex: 0 0 14px;
	width: 14px;
	height: 14px;
	background-color: var(--dc-seal);
	-webkit-mask: var(--dc-i-arrow) center / contain no-repeat;
	mask: var(--dc-i-arrow) center / contain no-repeat;
}

.dc-endpoint {
	margin: 0;
}

.dc-endpoint code {
	display: inline-block;
	padding: 5px 9px;
	border: 1px solid var(--dc-line);
	border-radius: 4px;
	background: var(--dc-mist);
	color: var(--dc-ink);
	font-family: var(--dc-mono);
	font-size: 12.5px;
	line-height: 1.4;
}

.dc-more {
	margin: 0;
	font-weight: 600;
}

.dc-more a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	text-decoration: none;
}

.dc-more a::after {
	content: "";
	width: 18px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask: var(--dc-i-arrow) center / contain no-repeat;
	mask: var(--dc-i-arrow) center / contain no-repeat;
}

/* ==========================================================================
   Étapes
   ========================================================================== */

.dc-steps {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
	gap: 32px;
}

body .dc-steps > * {
	margin: 0;
}

.dc-step {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding-top: 24px;
	border-top: 2px solid var(--dc-ink);
}

body .dc-step > * {
	margin-block: 0;
}

.dc-step__num {
	font-family: var(--dc-mono);
	font-size: 13px;
	font-weight: 600;
	color: var(--dc-seal);
}

.dc-step p:not(.dc-step__num) {
	font-size: 16px;
	line-height: 1.6;
	color: var(--dc-slate);
}

/* ==========================================================================
   Deux colonnes (texte + illustration)
   ========================================================================== */

body .dc-split {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(440px, 100%), 1fr));
	gap: 56px;
	align-items: center;
}

body .dc-split--top {
	align-items: start;
}

.dc-split__text {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 24px;
	min-width: 0;
}

body .dc-split__text > *,
body .dc-split > * {
	margin-block: 0;
}

/* Listes à coches et à puces. */
.dc-checklist,
.dc-bullets {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

body .dc-checklist > li,
body .dc-bullets > li {
	position: relative;
	margin: 0;
	padding-left: 32px;
	font-size: 16px;
	line-height: 1.5;
}

.dc-checklist > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 2px;
	width: 20px;
	height: 20px;
	background-color: var(--dc-seal);
	-webkit-mask: var(--dc-i-check) center / contain no-repeat;
	mask: var(--dc-i-check) center / contain no-repeat;
}

.dc-bullets > li::before {
	content: "";
	position: absolute;
	left: 6px;
	top: 9px;
	width: 7px;
	height: 7px;
	border: 1.5px solid var(--dc-seal);
	transform: rotate(45deg);
}

.dc-section--ink .dc-checklist > li {
	color: #E3E8EF;
}

.dc-section--ink .dc-checklist > li::before {
	background-color: var(--dc-seal-light);
}

/* ==========================================================================
   Exemples de code
   ========================================================================== */

.dc-code {
	min-width: 0;
	margin: 0;
	background: var(--dc-ink-2);
	border: 1px solid var(--dc-code-line);
	border-radius: var(--dc-radius);
	overflow: hidden;
	color: var(--dc-code-text);
}

.dc-code__tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	padding: 8px;
	border-bottom: 1px solid var(--dc-code-line);
}

.dc-code__tabs[hidden] {
	display: none;
}

.dc-code__tab {
	min-height: 44px;
	padding: 10px 14px;
	border: 0;
	border-radius: 6px;
	background: transparent;
	color: #9AA8BC;
	font-family: var(--dc-mono);
	font-size: 12.5px;
	font-weight: 500;
	line-height: 1;
	cursor: pointer;
}

.dc-code__tab:hover {
	color: #FFFFFF;
}

.dc-code__tab[aria-selected="true"] {
	background: #1C2A40;
	color: #FFFFFF;
	font-weight: 600;
}

.dc-code__panel[hidden] {
	display: none;
}

.dc-code__label {
	margin: 0;
	padding: 14px 20px 0;
	font-family: var(--dc-mono);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #8FA0B8;
}

.dc-code.is-tabbed .dc-code__panel .dc-code__label {
	display: none;
}

.dc-code pre {
	margin: 0;
	padding: 20px;
	background: none;
	border: 0;
	color: var(--dc-code-text);
	font-family: var(--dc-mono);
	font-size: 13px;
	line-height: 1.75;
	white-space: pre;
	overflow-x: auto;
	tab-size: 4;
}

.dc-code.is-tabbed pre {
	min-height: 300px;
}

.dc-code__resp {
	padding: 16px 20px 20px;
	border-top: 1px solid var(--dc-code-line);
	overflow-x: auto;
}

.dc-code__resp .dc-code__label {
	padding: 0 0 6px;
}

.dc-code__resp pre {
	padding: 0;
	min-height: 0;
}

.dc-code.is-tabbed .dc-code__resp pre {
	min-height: 0;
}

.dc-tok-k {
	color: #A9C7FF;
}

.dc-tok-s {
	color: #7FDDB8;
}

.dc-tok-n {
	color: #F2C47A;
}

.dc-tok-p {
	color: #8FA0B8;
}

body .wp-block-code {
	margin: 0;
	border: 1px solid var(--dc-code-line);
	white-space: pre;
	overflow-x: auto;
}

body .wp-block-code code {
	font-family: var(--dc-mono);
	white-space: pre;
}

/* ==========================================================================
   Encadrés (conformité, principes)
   ========================================================================== */

.dc-boxes {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
	gap: 24px;
}

body .dc-boxes > * {
	margin: 0;
}

.dc-box {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 14px;
	padding: 32px 28px;
	background: #FFFFFF;
	border: 1px solid var(--dc-line);
	border-radius: var(--dc-radius);
}

body .dc-box > * {
	margin-block: 0;
}

.dc-box .dc-h3 {
	margin-top: 6px;
}

.dc-box p:not(.dc-stamp) {
	font-size: 16px;
	line-height: 1.6;
	color: var(--dc-slate);
}

.dc-box.dc-ico::before {
	width: 28px;
	height: 28px;
}

.dc-stamp {
	display: inline-block;
	padding: 4px 8px;
	border: 1.5px solid var(--dc-seal);
	border-radius: 3px;
	font-family: var(--dc-mono);
	font-size: 11.5px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--dc-seal);
}

/* ==========================================================================
   Questions fréquentes
   ========================================================================== */

body .dc-faq {
	display: flex;
	flex-wrap: wrap;
	flex-direction: row;
	gap: 40px 64px;
}

.dc-faq__head {
	flex: 1 1 300px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

body .dc-faq__head > * {
	margin-block: 0;
}

.dc-faq__list {
	flex: 999 1 560px;
	min-width: 0;
	border-top: 1px solid var(--dc-line-2);
}

body .dc-faq__list > * {
	margin-block: 0;
}

body .wp-block-details {
	margin: 0;
	border-bottom: 1px solid var(--dc-line-2);
}

.wp-block-details summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	min-height: 44px;
	padding: 22px 0;
	list-style: none;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.35;
	cursor: pointer;
}

.wp-block-details summary::-webkit-details-marker {
	display: none;
}

.wp-block-details summary::after {
	content: "";
	flex: 0 0 20px;
	height: 20px;
	background-color: var(--dc-ink);
	-webkit-mask: var(--dc-i-plus) center / contain no-repeat;
	mask: var(--dc-i-plus) center / contain no-repeat;
	transition: transform 0.2s ease;
}

.wp-block-details[open] summary::after {
	transform: rotate(45deg);
}

body .wp-block-details > p {
	margin: 0 0 24px;
	max-width: 46em;
	font-size: 16px;
	line-height: 1.65;
	color: var(--dc-slate);
}

/* ==========================================================================
   Appel à l'action encadré (« certificat »)
   ========================================================================== */

.dc-frame {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
	padding: clamp(40px, 6vw, 72px) clamp(24px, 5vw, 72px);
	border: 1px solid var(--dc-ink);
	outline: 1px solid var(--dc-ink);
	outline-offset: 6px;
	border-radius: 2px;
	text-align: center;
	background-color: #FFFFFF;
	background-image: var(--dc-dots);
	background-size: 24px 24px;
}

body .dc-frame > * {
	margin-block: 0;
}

.dc-frame .dc-h2 {
	max-width: 16em;
	font-size: clamp(30px, 3.8vw, 50px);
}

.dc-frame .dc-lead {
	max-width: 34em;
}

.dc-frame .wp-block-buttons {
	justify-content: center;
	padding-top: 8px;
}

/* ==========================================================================
   En-tête des pages intérieures
   ========================================================================== */

.dc-pagehero {
	padding-block: clamp(56px, 7vw, 96px) clamp(48px, 6vw, 80px);
	background-color: var(--dc-paper);
	background-image: var(--dc-dots);
	background-size: 24px 24px;
	border-bottom: 1px solid var(--dc-line);
}

body .dc-pagehero .dc-container {
	gap: 24px;
	align-items: flex-start;
}

.dc-pagehero .dc-lead {
	font-size: 19px;
	line-height: 1.55;
	max-width: 38em;
}

.dc-pagehero .wp-block-buttons {
	padding-top: 4px;
}

/* ==========================================================================
   Détail d'un produit
   ========================================================================== */

body .dc-product {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(440px, 100%), 1fr));
	gap: 40px 64px;
	align-items: start;
}

body .dc-product > * {
	margin: 0;
}

.dc-product__intro {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
}

body .dc-product__intro > * {
	margin-block: 0;
}

.dc-product__intro.dc-ico::before {
	width: 40px;
	height: 40px;
	margin-bottom: 4px;
}

.dc-product__lists {
	display: grid;
	gap: 20px;
}

body .dc-product__lists > * {
	margin: 0;
}

.dc-listbox {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 28px;
	background: #FFFFFF;
	border: 1px solid var(--dc-line);
	border-radius: var(--dc-radius);
}

body .dc-listbox > * {
	margin-block: 0;
}

.dc-listbox__title {
	font-family: var(--dc-mono);
	font-size: 12px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--dc-muted);
}

/* ==========================================================================
   Tableau comparatif
   ========================================================================== */

body .dc-table {
	margin: 0;
	overflow-x: auto;
}

.dc-table table {
	width: 100%;
	min-width: 680px;
	border-collapse: collapse;
	font-size: 15.5px;
	line-height: 1.5;
}

.dc-table thead {
	border-bottom: 0;
}

.dc-table th {
	padding: 14px 16px;
	border: 0;
	border-bottom: 2px solid var(--dc-ink);
	text-align: left;
	font-family: var(--dc-mono);
	font-size: 11.5px;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--dc-muted);
}

.dc-table td {
	padding: 18px 16px;
	border: 0;
	border-bottom: 1px solid var(--dc-line);
	vertical-align: top;
	color: var(--dc-slate);
}

.dc-table td:first-child {
	font-weight: 600;
	color: var(--dc-ink);
}

/* ==========================================================================
   Tarifs
   ========================================================================== */

.dc-prices {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr));
	gap: 24px;
}

body .dc-prices > * {
	margin: 0;
}

.dc-price {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 32px 28px;
	background: #FFFFFF;
	border: 1px solid var(--dc-line);
	border-radius: var(--dc-radius);
}

body .dc-price > * {
	margin-block: 0;
}

.dc-price.dc-ico::before {
	width: 28px;
	height: 28px;
	margin-bottom: 8px;
}

.dc-price__amount {
	font-size: 34px;
	line-height: 1.1;
	font-weight: 650;
	font-stretch: 106%;
	letter-spacing: -0.02em;
	color: var(--dc-ink);
}

.dc-price__unit {
	font-family: var(--dc-mono);
	font-size: 12.5px;
	color: var(--dc-muted);
}

body .dc-price p:last-child {
	margin-top: 8px;
	padding-top: 16px;
	border-top: 1px solid var(--dc-line-soft);
	font-size: 15.5px;
	line-height: 1.6;
	color: var(--dc-slate);
}

/* ==========================================================================
   Démarrage rapide
   ========================================================================== */

.dc-qs {
	display: flex;
	flex-direction: column;
	gap: 48px;
}

body .dc-qs > * {
	margin: 0;
}

body .dc-qs__step {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(380px, 100%), 1fr));
	gap: 24px 56px;
	align-items: start;
	padding-top: 32px;
	border-top: 2px solid var(--dc-ink);
}

body .dc-qs__step > * {
	margin: 0;
}

.dc-qs__text {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

body .dc-qs__text > * {
	margin-block: 0;
}

.dc-qs__text p:not(.dc-step__num) {
	font-size: 16px;
	line-height: 1.6;
	color: var(--dc-slate);
}

/* ==========================================================================
   Cartes de liens
   ========================================================================== */

.dc-linkcards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
	gap: 24px;
}

body .dc-linkcards > * {
	margin: 0;
}

.dc-linkcard {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 28px;
	background: #FFFFFF;
	border: 1px solid var(--dc-line);
	border-radius: var(--dc-radius);
	transition: border-color 0.15s ease;
}

body .dc-linkcard > * {
	margin-block: 0;
}

.dc-linkcard:hover {
	border-color: var(--dc-ink);
}

.dc-linkcard.dc-ico::before {
	width: 28px;
	height: 28px;
}

.dc-linkcard .dc-h3 a {
	color: var(--dc-ink);
	text-decoration: none;
}

.dc-linkcard .dc-h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.dc-linkcard p {
	font-size: 15.5px;
	line-height: 1.6;
	color: var(--dc-slate);
}

/* ==========================================================================
   Texte courant (pages légales)
   ========================================================================== */

.dc-prose {
	max-width: 760px;
}

body .dc-prose > * {
	margin-block: 0;
}

body .dc-prose > * + * {
	margin-block-start: 16px;
}

body .dc-prose > h2 {
	margin-block-start: 48px;
	font-size: 24px;
	line-height: 1.25;
	font-weight: 650;
	letter-spacing: -0.015em;
}

body .dc-prose > h2:first-child {
	margin-block-start: 0;
}

body .dc-prose > h3 {
	margin-block-start: 32px;
	font-size: 19px;
	font-weight: 600;
}

.dc-prose p,
.dc-prose li {
	font-size: 17px;
	line-height: 1.7;
	color: var(--dc-slate);
}

.dc-prose ul {
	padding-left: 1.3em;
}

.dc-prose li + li {
	margin-top: 6px;
}

.dc-prose strong {
	color: var(--dc-ink);
}

/* ==========================================================================
   Contact
   ========================================================================== */

body .dc-contact {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr));
	gap: 48px 72px;
	align-items: start;
}

@media (min-width: 960px) {
	body .dc-contact {
		grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
	}
}

body .dc-contact > * {
	margin: 0;
}

.dc-aside {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 28px;
	background: var(--dc-mist);
	border: 1px solid var(--dc-line);
	border-radius: var(--dc-radius);
}

body .dc-aside > * {
	margin-block: 0;
}

.dc-aside .dc-bullets a {
	font-weight: 600;
}

.dc-form-wrap {
	scroll-margin-top: 100px;
}

.dc-form {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.dc-form__row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
	gap: 20px;
}

.dc-field {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.dc-field label {
	font-size: 15px;
	font-weight: 600;
	color: var(--dc-ink);
}

.dc-req {
	color: var(--dc-seal);
}

.dc-opt {
	font-weight: 400;
	color: var(--dc-muted);
}

.dc-field input[type="text"],
.dc-field input[type="email"],
.dc-field select,
.dc-field textarea {
	width: 100%;
	min-height: 48px;
	padding: 12px 14px;
	border: 1px solid var(--dc-line-2);
	border-radius: 6px;
	background: #FFFFFF;
	color: var(--dc-ink);
	font: 16px/1.4 var(--dc-sans);
}

.dc-field textarea {
	min-height: 160px;
	resize: vertical;
}

.dc-field input:focus,
.dc-field select:focus,
.dc-field textarea:focus {
	border-color: var(--dc-seal);
	outline: 2px solid rgba(11, 115, 86, 0.25);
	outline-offset: 0;
}

.dc-field [aria-invalid="true"] {
	border-color: #B42318;
}

.dc-field__error {
	margin: 0;
	font-size: 14px;
	font-weight: 500;
	color: #B42318;
}

.dc-field--check {
	display: grid;
	grid-template-columns: 22px minmax(0, 1fr);
	gap: 4px 12px;
	align-items: start;
}

.dc-field--check input {
	width: 20px;
	height: 20px;
	margin: 2px 0 0;
	accent-color: var(--dc-seal);
}

.dc-field--check label {
	font-weight: 400;
	font-size: 15px;
	line-height: 1.5;
	color: var(--dc-slate);
}

.dc-field--check .dc-field__error {
	grid-column: 2;
}

.dc-form__note {
	margin: 0;
	font-size: 13.5px;
	color: var(--dc-muted);
}

.dc-form .dc-btn {
	align-self: flex-start;
}

.dc-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.dc-notice {
	margin: 0 0 24px;
	padding: 18px 20px;
	border-radius: 8px;
	border: 1px solid;
}

.dc-notice p {
	margin: 0;
	font-size: 15.5px;
	line-height: 1.5;
}

.dc-notice__title {
	font-weight: 650;
	margin-bottom: 4px;
}

.dc-notice--ok {
	background: #E8F6F0;
	border-color: #9ED9C0;
	color: #0A4D3A;
}

.dc-notice--error {
	background: #FDECEA;
	border-color: #F3B2AB;
	color: #8A1C12;
}

/* ==========================================================================
   Page 404 et éditeur
   ========================================================================== */

.dc-404 {
	min-height: 50vh;
}

.dc-editor-preview {
	pointer-events: none;
}

/* ==========================================================================
   Préférences d'affichage
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		transition: none !important;
		animation: none !important;
	}
}

@media print {
	.dc-header,
	.dc-footer,
	.dc-visual {
		display: none;
	}
}
