/* declarationcultuelle.fr — compléments de style au theme.json */

:root {
	--dqc-bleu: var(--wp--preset--color--bleu);
	--dqc-nuit: var(--wp--preset--color--nuit);
	--dqc-gris: var(--wp--preset--color--bleu-gris);
	--dqc-ivoire: var(--wp--preset--color--ivoire);
	--dqc-or: var(--wp--preset--color--or);
	--dqc-ligne: var(--wp--preset--color--ligne);
	--dqc-pale: var(--wp--preset--color--bleu-pale);
	--dqc-radius: 6px;
}

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: #d6e4f0; }

/* Accessibilité : lien d'évitement et focus visible */
.skip-link:focus { background: #fff; color: var(--dqc-nuit); padding: .75rem 1rem; z-index: 1000; }
:where(a, button, input, summary):focus-visible { outline: 2px solid var(--dqc-or); outline-offset: 2px; }

/* ---------- Bandeau d'indépendance ---------- */
.dqc-bandeau {
	background: var(--dqc-nuit);
	color: #d9e2ec;
	font-size: .8125rem;
	letter-spacing: .01em;
}
.dqc-bandeau p { margin: 0; }
.dqc-bandeau strong { color: #fff; font-weight: 600; }

/* ---------- En-tête ---------- */
.dqc-header { border-bottom: 1px solid var(--dqc-ligne); background: #fff; }
.dqc-header .wp-block-site-title a { color: var(--dqc-nuit); }
.dqc-logo-sous-titre { font-size: .75rem; color: var(--dqc-gris); margin: 0; letter-spacing: .02em; }
.dqc-header .wp-block-navigation a { text-decoration: none; }
.dqc-header .wp-block-navigation a:hover { color: var(--dqc-bleu); text-decoration: underline; text-underline-offset: 6px; }
@media (min-width: 782px) {
	.dqc-header .wp-block-navigation .wp-block-navigation-item.current-menu-item > a,
	.dqc-header .wp-block-navigation .current-menu-ancestor > a { box-shadow: inset 0 -2px 0 var(--dqc-or); }
}

/* ---------- Fil d'Ariane ---------- */
.dqc-ariane ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem; font-size: .8125rem; color: var(--dqc-gris); }
.dqc-ariane li + li::before { content: "›"; margin: 0 .4rem 0 .15rem; color: #9fb3c8; }
.dqc-ariane a { color: var(--dqc-gris); text-decoration: none; }
.dqc-ariane a:hover { text-decoration: underline; }

/* ---------- Encadrés éditoriaux ---------- */
.is-style-essentiel,
.is-style-vigilance,
.is-style-pratique,
.is-style-regle,
.is-style-sources {
	border-radius: var(--dqc-radius);
	padding: 1.25rem 1.5rem !important;
	margin-block: 2rem;
}
.is-style-essentiel > :first-child,
.is-style-vigilance > :first-child,
.is-style-pratique > :first-child,
.is-style-regle > :first-child,
.is-style-sources > :first-child { margin-top: 0; }

.is-style-essentiel,
.is-style-vigilance,
.is-style-pratique,
.is-style-regle { position: relative; }

.is-style-essentiel::before,
.is-style-vigilance::before,
.is-style-pratique::before,
.is-style-regle::before {
	display: block;
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	margin-bottom: .6rem;
}

.is-style-essentiel { background: var(--dqc-pale); border-left: 3px solid var(--dqc-bleu); }
.is-style-essentiel::before { content: "L’essentiel"; color: var(--dqc-bleu); }

.is-style-vigilance { background: var(--wp--preset--color--alerte-pale); border-left: 3px solid var(--dqc-or); }
.is-style-vigilance::before { content: "Point de vigilance"; color: #8a6d2b; }

.is-style-pratique { background: var(--dqc-ivoire); border: 1px solid var(--dqc-ligne); }
.is-style-pratique::before { content: "En pratique"; color: var(--dqc-gris); }
.is-style-pratique.dqc-retour::before { content: "Retour d’expérience"; }
.is-style-pratique.dqc-terrain::before { content: "Ce que nous constatons sur le terrain"; }
.is-style-pratique.dqc-exemple::before { content: "Exemple pratique"; }

.is-style-regle { background: #fff; border: 1px solid var(--dqc-ligne); border-top: 3px solid var(--dqc-nuit); font-family: var(--wp--preset--font-family--serif); }
.is-style-regle::before { content: "Ce que dit le texte"; color: var(--dqc-nuit); font-family: var(--wp--preset--font-family--sans); }

.is-style-sources { background: var(--dqc-ivoire); border-top: 1px solid var(--dqc-ligne); font-size: .9375rem; }
.is-style-sources ul { padding-left: 1.1rem; }
.is-style-sources li { margin-bottom: .4rem; }

/* ---------- Cartes ---------- */
.is-style-carte {
	background: #fff;
	border: 1px solid var(--dqc-ligne);
	border-radius: var(--dqc-radius);
	padding: 1.5rem !important;
	height: 100%;
	transition: border-color .15s, box-shadow .15s;
}
.is-style-carte:hover { border-color: #9fb3c8; box-shadow: 0 6px 20px rgba(16, 42, 67, .06); }
.is-style-carte h3 { margin-top: 0; }

/* ---------- CTA sobre ---------- */
.is-style-cta {
	border: 1px solid var(--dqc-ligne);
	border-left: 3px solid var(--dqc-or);
	border-radius: var(--dqc-radius);
	padding: 1.25rem 1.5rem !important;
	background: #fff;
}
.is-style-cta p { margin: 0; }

.wp-block-button.is-style-secondaire .wp-block-button__link {
	background: transparent;
	color: var(--dqc-bleu);
	border: 1px solid var(--dqc-bleu);
}
.wp-block-button.is-style-secondaire .wp-block-button__link:hover { background: var(--dqc-pale); }

/* ---------- Listes ---------- */
ul.is-style-checklist { list-style: none; padding-left: 0; }
ul.is-style-checklist li { position: relative; padding-left: 1.9rem; margin-bottom: .55rem; }
ul.is-style-checklist li::before {
	content: ""; position: absolute; left: 0; top: .35em;
	width: 1.05rem; height: 1.05rem; border: 1.5px solid var(--dqc-bleu); border-radius: 3px;
}
ul.is-style-checklist li::after {
	content: ""; position: absolute; left: .36rem; top: .5em;
	width: .3rem; height: .55rem; border: solid var(--dqc-bleu); border-width: 0 2px 2px 0; transform: rotate(45deg);
}

ol.is-style-etapes { list-style: none; counter-reset: etape; padding-left: 0; }
ol.is-style-etapes > li { counter-increment: etape; position: relative; padding-left: 3rem; margin-bottom: 1.1rem; min-height: 2.2rem; }
ol.is-style-etapes > li::before {
	content: counter(etape); position: absolute; left: 0; top: 0;
	width: 2.1rem; height: 2.1rem; border-radius: 50%;
	background: var(--dqc-nuit); color: #fff; font-weight: 600; font-size: .95rem;
	display: flex; align-items: center; justify-content: center;
}

/* ---------- FAQ (blocs Détails) ---------- */
.wp-block-details summary { cursor: pointer; font-weight: 600; color: var(--dqc-nuit); list-style: none; padding-right: 2rem; position: relative; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; position: absolute; right: .25rem; top: -.05rem; font-size: 1.3rem; font-weight: 400; color: var(--dqc-gris); }
.wp-block-details[open] summary::after { content: "–"; }
.wp-block-details > :not(summary) { margin-top: .75rem; }

/* ---------- Tableaux ---------- */
.wp-block-table table { border-collapse: collapse; width: 100%; }
.wp-block-table th { background: var(--dqc-ivoire); color: var(--dqc-nuit); text-align: left; font-weight: 600; }
.wp-block-table th, .wp-block-table td { border: 1px solid var(--dqc-ligne); padding: .6rem .75rem; vertical-align: top; }
.wp-block-table { overflow-x: auto; }

/* ---------- Sommaire ---------- */
.dqc-sommaire { border: 1px solid var(--dqc-ligne); border-radius: var(--dqc-radius); padding: 1rem 1.25rem; font-size: .9375rem; }
.dqc-sommaire ol { margin: .25rem 0 0; padding-left: 1.2rem; }

/* ---------- Méta article ---------- */
.dqc-meta { font-size: .875rem; color: var(--dqc-gris); }
.dqc-meta a { color: var(--dqc-gris); }

/* ---------- Surtitre ---------- */
.dqc-surtitre { font-size: .75rem !important; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--dqc-or); margin-bottom: .5rem; }

/* ---------- Pied de page ---------- */
.dqc-footer { background: var(--dqc-nuit); color: #bcccdc; font-size: .9rem; }
.dqc-footer a { color: #d9e2ec; text-decoration: none; }
.dqc-footer a:hover { color: #fff; text-decoration: underline; }
.dqc-footer h2, .dqc-footer h3 { color: #fff; font-size: 1rem; font-family: var(--wp--preset--font-family--sans); }
.dqc-footer ul { list-style: none; padding: 0; }
.dqc-footer li { margin-bottom: .4rem; }
.dqc-footer .dqc-mention { border-top: 1px solid #334e68; font-size: .8125rem; color: #9fb3c8; }

/* ---------- Mobile ---------- */
@media (max-width: 781px) {
	.dqc-hero h1 { font-size: 2rem; }
	.is-style-essentiel, .is-style-vigilance, .is-style-pratique, .is-style-regle, .is-style-sources { padding: 1rem 1.1rem !important; }
}

/* ---------- Impression (checklists) ---------- */
@media print {
	.dqc-header, .dqc-footer, .dqc-bandeau, .is-style-cta, .wp-block-buttons { display: none !important; }
	body { font-size: 11pt; color: #000; }
	a { color: #000; }
}

/* ---------- En-tête sur deux niveaux ---------- */
.dqc-header-nav { border-top: 1px solid var(--dqc-ligne); }
.dqc-header-nav .wp-block-navigation-item__content { padding: .7rem 0; display: inline-block; }
.dqc-header-cta .wp-block-button__link { white-space: nowrap; }
@media (max-width: 781px) {
	.dqc-logo-sous-titre { display: none; }
	.dqc-header-cta, .dqc-hide-mobile { display: none !important; }
	.dqc-recherche { display: none; }
	.dqc-header-nav { border-top: 0; position: absolute; right: clamp(1rem, 4vw, 2rem); top: .85rem; padding: 0 !important; }
	.dqc-header { position: relative; }
	.dqc-header-haut { padding-right: 2.5rem; }
}
.dqc-recherche .wp-block-search__label { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.dqc-recherche .wp-block-search__button { background: transparent; color: var(--dqc-bleu); border: 1px solid var(--dqc-ligne); padding: .55rem; }
.dqc-recherche .wp-block-search__button:hover { background: var(--dqc-pale); }

/* ---------- Calculateur ---------- */
.dqc-calculateur { background: #fff; border: 1px solid var(--dqc-ligne); border-top: 3px solid var(--dqc-bleu); border-radius: var(--dqc-radius); padding: 1.5rem; }
.dqc-calculateur label { display: block; font-weight: 600; color: var(--dqc-nuit); margin-bottom: .5rem; }
.dqc-calc-ligne { display: flex; flex-wrap: wrap; gap: .75rem; }
.dqc-calculateur input[type=date] { font: inherit; padding: .6rem .75rem; border: 1px solid #9fb3c8; border-radius: 4px; min-width: 12rem; color: var(--dqc-nuit); }
.dqc-calculateur button { cursor: pointer; font: inherit; font-weight: 600; font-size: .9rem; padding: .65rem 1.2rem; border-radius: 4px; border: 1px solid var(--dqc-bleu); background: var(--dqc-bleu); color: #fff; }
.dqc-calculateur .dqc-calc-ics { background: transparent; color: var(--dqc-bleu); }
.dqc-calc-resultat { margin-top: 1.25rem; }
.dqc-calc-resultat table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.dqc-calc-resultat th, .dqc-calc-resultat td { text-align: left; padding: .55rem .6rem; border-bottom: 1px solid var(--dqc-ligne); vertical-align: top; }
.dqc-calc-resultat th { font-weight: 500; color: var(--dqc-gris); width: 58%; }
.dqc-calc-etat { background: var(--dqc-pale); padding: .75rem 1rem; border-radius: 4px; margin-top: 1rem; }
.dqc-calc-note { font-size: .8125rem; color: var(--dqc-gris); }

/* ---------- Accueil ---------- */
.dqc-actu a { color: #fff; }
.dqc-actu a:hover { color: #d9e2ec; }
.dqc-actu p { color: #d9e2ec; }
.dqc-reperes { list-style: none; padding-left: 0; }
.dqc-reperes li { padding: .45rem 0; border-bottom: 1px solid var(--dqc-ligne); font-size: .95rem; }
.dqc-reperes li:last-child { border-bottom: 0; }
.dqc-reperes strong { color: var(--dqc-nuit); }
@media (min-width: 900px) {
	ol.dqc-etapes-grille { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1.5rem; }
	ol.dqc-etapes-grille > li { padding-left: 0; padding-top: 3rem; margin: 0; font-size: .95rem; }
	ol.dqc-etapes-grille > li::before { top: 0; }
}
