/*
 * Démarches publiques — styles publics.
 * Tout est limité au conteneur .dpub ; la typographie est héritée du thème.
 * Personnalisation : redéfinir les variables --dpub-* (ex. dans le thème ou Oxygen).
 */
.dpub {
	--dpub-accent: #1d3a94;
	--dpub-accent-soft: #eef3fd;
	--dpub-dark: #172b4d;
	--dpub-dark-contrast: #ffffff;
	--dpub-accent-contrast: #ffffff;
	--dpub-text: inherit;
	--dpub-muted: #4b5563;
	--dpub-border: #d1d5db;
	--dpub-surface: #f6f7f9;
	--dpub-card: #ffffff;
	--dpub-surface-strong: #eef1f5;
	--dpub-warning: #9a5b00;
	--dpub-warning-bg: #fff7e6;
	--dpub-danger: #b42318;
	--dpub-danger-bg: #fdecea;
	--dpub-info: #1e4b8f;
	--dpub-info-bg: #eef4fc;
	--dpub-local: #146c43;
	--dpub-local-bg: #edf7f1;
	--dpub-focus: #ff9e1b;
	--dpub-radius: 6px;
	--dpub-space: 1rem;
	--dpub-space-s: .5rem;
	--dpub-space-l: 1.75rem;
	--dpub-max: 75rem;
	color: var(--dpub-text);
	line-height: 1.6;
	max-width: var(--dpub-max);
	overflow-wrap: break-word;
}
.dpub *, .dpub *::before, .dpub *::after { box-sizing: border-box; }
.dpub [hidden] { display: none !important; }
.dpub a { color: var(--dpub-accent); text-decoration: underline; text-underline-offset: .15em; }
.dpub a:hover { text-decoration-thickness: 2px; }
.dpub a:focus-visible, .dpub button:focus-visible, .dpub input:focus-visible, .dpub summary:focus-visible, .dpub [tabindex]:focus-visible {
	outline: 3px solid var(--dpub-focus);
	outline-offset: 2px;
	border-radius: 2px;
}
.dpub-sr-only {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.dpub-h { line-height: 1.3; margin: var(--dpub-space-l) 0 var(--dpub-space-s); }
.dpub h2.dpub-h { font-size: var(--dpub-h2, clamp(1.35rem, 1.1rem + 1vw, 1.7rem)); }
.dpub h3.dpub-h, .dpub h3.dpub-contact__title, .dpub h3.dpub-service__title { font-size: var(--dpub-h3, 1.15rem); }
.dpub h4, .dpub h5, .dpub h6 { font-size: var(--dpub-h4, 1.05rem); }
.dpub p { margin: 0 0 var(--dpub-space-s); }
.dpub ul, .dpub ol { margin: 0 0 var(--dpub-space); padding-left: 1.4em; }
.dpub li { margin-bottom: .25em; }
.dpub-meta, .dpub-source, .dpub-surtitle, .dpub-dates { color: var(--dpub-muted); font-size: .9em; }
.dpub-surtitle { text-transform: uppercase; letter-spacing: .04em; font-size: .8em; margin: 0; }
.dpub-source { font-style: italic; }

/* Boutons */
.dpub-btn {
	display: inline-block; padding: .55em 1.1em; border: 2px solid var(--dpub-accent);
	background: var(--dpub-accent); color: var(--dpub-accent-contrast) !important; border-radius: var(--dpub-radius);
	font: inherit; font-weight: 600; text-decoration: none !important; cursor: pointer; line-height: 1.3;
}
.dpub-btn:hover { filter: brightness(.92); }
.dpub-btn--action { margin: .25em .5em .25em 0; }
.dpub-link-small { font-size: .9em; }

/* Liens externes */
.dpub-ext::after {
	content: ""; display: inline-block; width: .75em; height: .75em; margin-left: .25em; vertical-align: baseline;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 3h7v7h-2V6.4l-9.3 9.3-1.4-1.4L17.6 5H14V3zM5 5h6v2H7v10h10v-4h2v6H5V5z'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 3h7v7h-2V6.4l-9.3 9.3-1.4-1.4L17.6 5H14V3zM5 5h6v2H7v10h10v-4h2v6H5V5z'/%3E%3C/svg%3E") no-repeat center / contain;
}
.dpub-btn.dpub-ext::after { background-color: currentColor; }

/* Fil d'Ariane */
.dpub-breadcrumb ol { list-style: none; padding: 0; margin: 0 0 var(--dpub-space); display: flex; flex-wrap: wrap; font-size: .9em; }
.dpub-breadcrumb + .dpub-title { margin-top: 0; }
.dpub .dpub-title { margin: 0 0 var(--dpub-space); line-height: 1.15; }
.dpub-breadcrumb li { margin: 0; }
.dpub-breadcrumb li + li::before { content: "›"; margin: 0 .5em; color: var(--dpub-muted); }
.dpub-breadcrumb [aria-current] { color: var(--dpub-muted); }

/* Recherche */
.dpub-search { margin: 0 0 var(--dpub-space-l); }
.dpub-search__label { display: block; font-weight: 600; margin-bottom: .35em; }
.dpub-search--large .dpub-search__label { font-size: 1.15em; }
.dpub-search__row { display: flex; gap: .5rem; flex-wrap: wrap; }
.dpub-search input[type="search"] {
	flex: 1 1 16rem; min-width: 0; padding: .6em .8em; font: inherit; color: inherit;
	border: 2px solid var(--dpub-border); border-radius: var(--dpub-radius); background: #fff;
}
.dpub-search input[type="search"]:focus { border-color: var(--dpub-accent); }
.dpub-search__help { color: var(--dpub-muted); font-size: .85em; margin-top: .35em; }
.dpub-results__list { padding-left: 0; list-style: none; }
.dpub-result { padding: var(--dpub-space) 0; border-bottom: 1px solid var(--dpub-border); }
.dpub-result__title { margin: 0 0 .2em; font-size: 1.1em; }
.dpub-result__meta { color: var(--dpub-muted); font-size: .85em; margin: 0 0 .25em; }
.dpub-pagination ul { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem; padding: 0; }
.dpub-pagination a, .dpub-pagination span { display: inline-block; padding: .3em .7em; border: 1px solid var(--dpub-border); border-radius: var(--dpub-radius); }
.dpub-pagination [aria-current] { background: var(--dpub-accent); color: var(--dpub-accent-contrast); border-color: var(--dpub-accent); }

/* Grille thématique */
.dpub-grid { list-style: none; padding: 0; margin-left: 0 !important; margin-right: 0 !important; display: grid; gap: var(--dpub-space); grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); }
.dpub-card { margin: 0 !important; border: 1px solid var(--dpub-border); border-radius: var(--dpub-radius); padding: var(--dpub-space); background: #fff; margin: 0; }
.dpub-card__title { margin: 0 0 .4em; font-size: 1.1em; line-height: 1.3; }
.dpub-card__list { font-size: .9em; color: var(--dpub-muted); padding-left: 1.1em; margin: 0; }
.dpub-links { padding-left: 1.2em; }
.dpub-links--cols { columns: 2 18rem; column-gap: 2rem; }
.dpub-links--cols li { break-inside: avoid; }
.dpub-home-intro { margin-bottom: var(--dpub-space-l); }

/* Encadrés */
.dpub-box, .dpub-notice, .dpub-local {
	border-left: 4px solid var(--dpub-border); background: var(--dpub-surface);
	padding: var(--dpub-space) var(--dpub-space) calc(var(--dpub-space) - var(--dpub-space-s));
	border-radius: 0 var(--dpub-radius) var(--dpub-radius) 0; margin: var(--dpub-space) 0;
}
.dpub-box__title { font-weight: 700; margin-bottom: .35em; }
.dpub-box--attention, .dpub-box--warning { border-color: var(--dpub-warning); background: var(--dpub-warning-bg); }
.dpub-box--asavoir, .dpub-box--anoter, .dpub-box--rappel { border-color: var(--dpub-info); background: var(--dpub-info-bg); }
.dpub-box--exemple, .dpub-box--definition, .dpub-box--consigne { border-color: var(--dpub-muted); }
.dpub-notice--warning { border-color: var(--dpub-warning); background: var(--dpub-warning-bg); }
.dpub-notice--error { border-color: var(--dpub-danger); background: var(--dpub-danger-bg); }
.dpub-notice--info { border-color: var(--dpub-info); background: var(--dpub-info-bg); }
.dpub-local { border-color: var(--dpub-local); background: var(--dpub-local-bg); }
.dpub-local__label { font-weight: 700; color: var(--dpub-local); text-transform: uppercase; font-size: .8em; letter-spacing: .04em; }
.dpub-local__note { font-size: .85em; color: var(--dpub-muted); }

/* Chapitres et étapes */
.dpub-chapter--l1 { margin-top: var(--dpub-space-l); }
.dpub-text { counter-reset: dpub-step; }
.dpub-chapter--step { counter-increment: dpub-step; }
.dpub-chapter--step > .dpub-h::before {
	content: counter(dpub-step); display: inline-flex; align-items: center; justify-content: center;
	min-width: 1.8em; height: 1.8em; margin-right: .5em; border-radius: 50%;
	background: var(--dpub-accent); color: var(--dpub-accent-contrast); font-size: .85em;
}
.dpub-floating-title { margin-top: var(--dpub-space); }

/* Situations et cas */
.dpub-choice { margin: var(--dpub-space) 0 var(--dpub-space-l); }
.dpub-choice__controls { display: none; border: 0; padding: 0; margin: 0 0 var(--dpub-space); min-width: 0; }
.dpub-js .dpub-choice__controls { display: block; }
.dpub-choice__legend { font-weight: 600; margin-bottom: .5em; padding: 0; }
.dpub-choice__options { display: flex; flex-wrap: wrap; gap: .5rem; }
.dpub-choice__option { position: relative; }
.dpub-choice__option input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.dpub-choice__option label {
	display: inline-block; padding: .5em 1em; border: 2px solid var(--dpub-accent); border-radius: var(--dpub-radius);
	cursor: pointer; color: var(--dpub-accent); background: #fff; line-height: 1.35;
}
.dpub-choice--radio .dpub-choice__option label::before {
	content: ""; display: inline-block; width: .9em; height: .9em; margin-right: .5em; vertical-align: -.1em;
	border: 2px solid currentColor; border-radius: 50%;
}
.dpub-choice--radio .dpub-choice__option input:checked + label::before { background: currentColor; box-shadow: inset 0 0 0 2px #fff; }
.dpub-choice__option input:checked + label { background: var(--dpub-accent); color: var(--dpub-accent-contrast); }
.dpub-choice__option input:focus-visible + label { outline: 3px solid var(--dpub-focus); outline-offset: 2px; }
.dpub-choice__prompt { display: none; color: var(--dpub-muted); font-style: italic; }
.dpub-js .dpub-choice__prompt { display: block; }
.dpub-choice__panel { border-left: 3px solid var(--dpub-surface-strong); padding-left: var(--dpub-space); margin-bottom: var(--dpub-space); }
.dpub-choice__panel-title { font-weight: 700; background: var(--dpub-surface-strong); padding: .4em .7em; border-radius: var(--dpub-radius); }
.dpub-choice__panel-kind { color: var(--dpub-muted); font-weight: 400; }
.dpub-js .dpub-choice__panel-title { display: none; }
.dpub-js .dpub-choice__panel { border-left: 0; padding-left: 0; }

/* Personnalisation */
.dpub-personalize { background: var(--dpub-surface); border-radius: var(--dpub-radius); padding: var(--dpub-space); margin: var(--dpub-space) 0 var(--dpub-space-l); }
.dpub-personalize > .dpub-h:first-child { margin-top: 0; }
.dpub-question { border: 0; padding: 0; margin: 0 0 var(--dpub-space); min-width: 0; }
.dpub-question legend { font-weight: 600; padding: 0; margin-bottom: .35em; }
.dpub-choice-opt { display: flex; gap: .5em; align-items: baseline; margin: .2em 0; }
.dpub-choice-opt input { width: 1.1em; height: 1.1em; flex: none; }
.dpub-summary { margin-top: var(--dpub-space); font-weight: 600; }
.dpub-help { color: var(--dpub-muted); font-size: .9em; }
.dpub-steps-choices { list-style: none; padding: 0; display: grid; gap: .5rem; }
.dpub-step-choice { display: block; padding: .6em .9em; border: 2px solid var(--dpub-accent); border-radius: var(--dpub-radius); background: #fff; text-decoration: none !important; }
.dpub-step-choice:hover { background: var(--dpub-info-bg); }
.dpub-steps-recap { border-bottom: 1px solid var(--dpub-border); margin-bottom: var(--dpub-space); }
.dpub-steps-recap__title, .dpub-steps-question { font-weight: 700; }

/* Détails / compléments */
.dpub-details, .dpub-help-details { border: 1px solid var(--dpub-border); border-radius: var(--dpub-radius); margin: var(--dpub-space) 0; }
.dpub-details > summary, .dpub-help-details > summary { cursor: pointer; padding: .95em 1.15em; font-weight: 600; }
.dpub-details__body, .dpub-help-details > :not(summary) { padding: 0 1.15em 1em; }

/* Tableaux */
.dpub-table-wrap { overflow-x: auto; margin: var(--dpub-space) 0; -webkit-overflow-scrolling: touch; }
.dpub-table { border-collapse: collapse; width: 100%; min-width: 28rem; font-size: .95em; }
.dpub-table caption { text-align: left; font-weight: 700; padding-bottom: .4em; }
.dpub-table th, .dpub-table td { border: 1px solid var(--dpub-border); padding: .45em .6em; vertical-align: top; text-align: left; }
.dpub-table thead th, .dpub-table th[scope="col"], .dpub-table th[scope="colgroup"] { background: var(--dpub-surface-strong); }
.dpub-table th[scope="row"] { background: var(--dpub-surface); }
.dpub-table p:last-child, .dpub-table ul:last-child { margin-bottom: 0; }
.dpub-hours { min-width: 0; }

/* Services, contacts, organismes */
.dpub-services { list-style: none; padding: 0; display: grid; gap: var(--dpub-space); grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); }
.dpub-service, .dpub-contact { border: 1px solid var(--dpub-border); border-radius: var(--dpub-radius); padding: var(--dpub-space); margin: var(--dpub-space) 0; background: #fff; }
.dpub-services .dpub-service { margin: 0; height: 100%; }
.dpub-service__type { font-size: .8em; text-transform: uppercase; letter-spacing: .04em; color: var(--dpub-muted); margin: 0; }
.dpub-service__title, .dpub-contact__title { font-size: 1.05em; margin: .2em 0 .5em; line-height: 1.35; }
.dpub-service__actions { margin: .5em 0 0; }
.dpub-local-org { border-left: 4px solid var(--dpub-local); background: var(--dpub-local-bg); padding: var(--dpub-space); margin: var(--dpub-space-s) 0; border-radius: 0 var(--dpub-radius) var(--dpub-radius) 0; }
.dpub-local-org__label { font-weight: 700; color: var(--dpub-local); }
.dpub-org + .dpub-org { border-top: 1px solid var(--dpub-border); padding-top: var(--dpub-space-s); margin-top: var(--dpub-space-s); }
.dpub-local-org--fallback { border: 0; background: none; padding: 0; }
.dpub-facts { display: grid; grid-template-columns: minmax(8rem, max-content) 1fr; gap: .4em 1em; background: var(--dpub-surface); padding: var(--dpub-space); border-radius: var(--dpub-radius); }
.dpub-facts dt { font-weight: 700; }
.dpub-facts dd { margin: 0; }
.dpub-facts dd p:last-child { margin: 0; }
.dpub-actions { list-style: none; padding: 0; }
.dpub-media { margin: var(--dpub-space) 0; padding: var(--dpub-space); border: 1px dashed var(--dpub-border); border-radius: var(--dpub-radius); }
.dpub-media figcaption { font-weight: 700; }
.dpub-value { white-space: nowrap; }
.dpub-math { font-size: .95em; }

/* Glossaire */
.dpub-gloss { text-decoration-style: dotted; }
.dpub-gloss-pop { display: block; margin: .4em 0; padding: .6em .8em; background: var(--dpub-info-bg); border-left: 3px solid var(--dpub-info); border-radius: 0 var(--dpub-radius) var(--dpub-radius) 0; font-size: .95em; }
.dpub-gloss-close { margin-left: .75em; font: inherit; font-size: .85em; background: none; border: 1px solid var(--dpub-info); border-radius: var(--dpub-radius); cursor: pointer; padding: .1em .5em; color: var(--dpub-info); }
.dpub-definitions dt { font-weight: 700; margin-top: var(--dpub-space-s); }
.dpub-definitions dd { margin: 0 0 var(--dpub-space-s); }

/* Provenance */
.dpub-provenance { margin-top: var(--dpub-space-l); padding-top: var(--dpub-space); border-top: 1px solid var(--dpub-border); font-size: .85em; color: var(--dpub-muted); }
.dpub-provenance p { margin-bottom: .3em; }

/* ===== Accueil du portail ===== */
.dpub .dpub-themes, .dpub .dpub-rows, .dpub .dpub-life__list, .dpub .dpub-quick ul { padding-left: 0; margin-left: 0; }
.dpub .dpub-life__list, .dpub .dpub-quick ul { margin-bottom: 0; }
.dpub-icon { width: 1.5em; height: 1.5em; flex: none; vertical-align: middle; }
.dpub-hero { margin: 0 0 var(--dpub-space-l); }
.dpub-hero__eyebrow { color: var(--dpub-accent); font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin: 0 0 .5rem; }
.dpub .dpub-hero__title { font-size: clamp(2.2rem, 1.4rem + 3.2vw, 3.6rem); line-height: 1.05; letter-spacing: -.02em; margin: 0 0 .9rem; }
.dpub-hero__lead { color: var(--dpub-muted); font-size: 1.15rem; margin: 0 0 1.5rem; }
.dpub-search--large { margin-bottom: 1rem; }
.dpub-search--large .dpub-search__row {
	background: var(--dpub-card); border: 1px solid var(--dpub-border); border-radius: calc(var(--dpub-radius) + 2px);
	padding: .35rem; gap: .35rem; flex-wrap: nowrap; box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}
.dpub-search--large .dpub-search__row:focus-within { border-color: var(--dpub-accent); box-shadow: 0 0 0 3px var(--dpub-accent-soft); }
.dpub-search__field { position: relative; flex: 1 1 16rem; min-width: 0; display: flex; }
.dpub-search__icon { position: absolute; left: .9rem; top: 50%; transform: translateY(-50%); color: var(--dpub-text, #111); opacity: .85; pointer-events: none; display: flex; }
.dpub .dpub-search__field input[type="search"] { flex: 1; padding-left: 3rem; }
.dpub-search--large input[type="search"] { border: 0 !important; background: transparent !important; min-height: 3rem; font-size: 1.05rem; }
.dpub-search--large input[type="search"]:focus { outline: none; }
.dpub-search--large .dpub-btn { padding: .75em 2em; white-space: nowrap; }
.dpub-quick { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .9rem; }
.dpub-quick__label { font-weight: 600; font-size: .9rem; margin: 0; }
.dpub-quick ul { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 0; padding: 0; }
.dpub-quick li { margin: 0; }
.dpub-chip {
	display: inline-block; padding: .35em 1em; border: 1px solid var(--dpub-border); border-radius: 999px;
	background: var(--dpub-card); color: var(--dpub-accent) !important; font-size: .85rem; text-decoration: none !important;
}
.dpub-chip:hover { border-color: var(--dpub-accent); background: var(--dpub-accent-soft); }

.dpub-home-section { margin: var(--dpub-space-l) 0; }
.dpub-home-section__head { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: .25rem 1rem; margin-bottom: 1rem; }
.dpub-home-section__head .dpub-h { margin: 0; }
.dpub-home-section__meta { color: var(--dpub-muted); font-size: .85rem; margin: 0; }
.dpub-themes { list-style: none; margin: 0 !important; padding: 0; display: grid; gap: .9rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dpub-theme {
	position: relative; margin: 0 !important; padding: 1.25rem 1.25rem 1rem; background: var(--dpub-card);
	border: 1px solid var(--dpub-border); border-radius: calc(var(--dpub-radius) + 2px); display: flex; flex-direction: column;
	transition: border-color .15s, background-color .15s, box-shadow .15s;
}
.dpub-theme:last-child:nth-child(4n + 3) { grid-column: span 2; }
.dpub-theme:hover, .dpub-theme:focus-within { border-color: var(--dpub-accent); background: var(--dpub-accent-soft); box-shadow: 0 4px 14px rgba(29, 58, 148, .08); }
.dpub-theme__icon { color: var(--dpub-dark); display: flex; margin-bottom: .75rem; }
.dpub-theme__icon .dpub-icon { width: 2.25rem; height: 2.25rem; }
.dpub-theme__corner { position: absolute; top: 1rem; right: 1rem; color: var(--dpub-dark); display: flex; }
.dpub-theme__corner .dpub-icon { width: 1.1rem; height: 1.1rem; }
.dpub .dpub-theme__title { font-family: inherit; font-size: 1.05rem; line-height: 1.3; margin: 0 0 .3rem; font-weight: 700; }
.dpub-theme__link { color: inherit !important; text-decoration: none !important; }
.dpub-theme__link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.dpub-theme__link:focus-visible { outline: none; }
.dpub-theme:focus-within { outline: 3px solid var(--dpub-focus); outline-offset: 2px; }
.dpub-theme__summary { color: var(--dpub-muted); font-size: .85rem; line-height: 1.45; margin: 0 0 .75rem; flex: 1; }
.dpub-theme__more { color: var(--dpub-accent); font-size: .9rem; font-weight: 600; margin: 0; display: flex; align-items: center; gap: .35rem; }
.dpub-theme__more .dpub-icon { width: 1rem; height: 1rem; }

.dpub-life { background: var(--dpub-dark); color: var(--dpub-dark-contrast); border-radius: calc(var(--dpub-radius) + 2px); padding: 1.5rem 1.75rem 1.25rem; margin: var(--dpub-space-l) 0; }
.dpub .dpub-life__title { color: inherit; font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem); margin: 0 0 .25rem; }
.dpub-life__lead { opacity: .85; margin: 0 0 1.1rem; }
.dpub-life__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); }
.dpub-life__list li { margin: 0; padding: .35rem 1.25rem; border-left: 1px solid rgba(255, 255, 255, .25); }
.dpub-life__list li:first-child { border-left: 0; padding-left: 0; }
.dpub-life__list a { color: var(--dpub-dark-contrast) !important; font-weight: 600; text-decoration: none !important; display: inline-flex; align-items: center; gap: .5rem; }
.dpub-life__list a:hover { text-decoration: underline !important; }
.dpub-life__list .dpub-icon { width: 1.1rem; height: 1.1rem; }
.dpub-life a:focus-visible { outline-color: #fff; }

.dpub-home-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 3rem; margin: var(--dpub-space-l) 0; }
.dpub-home-list .dpub-h { margin-top: 0; }
.dpub-rows { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--dpub-border); }
.dpub-rows li { margin: 0; border-bottom: 1px solid var(--dpub-border); }
.dpub-row { display: flex; align-items: center; gap: .9rem; padding: .7rem .25rem; color: inherit !important; text-decoration: none !important; }
.dpub-row:hover { background: var(--dpub-accent-soft); }
.dpub-row:hover .dpub-row__text { text-decoration: underline; }
.dpub-row__icon { display: flex; color: var(--dpub-dark); }
.dpub-row__icon .dpub-icon { width: 1.3rem; height: 1.3rem; }
.dpub-row__text { flex: 1; font-size: .95rem; }
.dpub-row__arrow { display: flex; color: var(--dpub-accent); }
.dpub-row__arrow .dpub-icon { width: 1.1rem; height: 1.1rem; }

.dpub-faq { margin: var(--dpub-space-l) 0; }
.dpub-faq__item { background: var(--dpub-card); border: 1px solid var(--dpub-border); border-radius: calc(var(--dpub-radius) + 2px); margin: 0 0 .6rem; }
.dpub-faq__item > summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.1rem 1.35rem; }
.dpub-faq__item > summary::-webkit-details-marker { display: none; }
.dpub-faq__icon { display: flex; color: var(--dpub-accent); transition: transform .28s cubic-bezier(.2, 0, 0, 1); }
.dpub-faq__icon .dpub-icon { width: 1.2rem; height: 1.2rem; }
.dpub-faq__item[open] .dpub-faq__icon { transform: rotate(45deg); }
/* Fermeture animée (JS) : le <details> reste ouvert jusqu'à la fin de l'animation. */
.dpub-faq__item.dpub-is-closing .dpub-faq__icon { transform: none; }
.dpub-js details { box-sizing: border-box; }
.dpub-faq__body { padding: .1rem 1.35rem 1.35rem; color: var(--dpub-muted); line-height: 1.6; }
.dpub-faq__body > :first-child { margin-top: 0; }
.dpub-faq__body > :last-child { margin-bottom: 0; }

@media (max-width: 60em) {
	.dpub-themes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dpub-theme:last-child:nth-child(4n + 3) { grid-column: auto; }
	.dpub-theme:last-child:nth-child(2n + 1) { grid-column: span 2; }
	.dpub-home-cols { grid-template-columns: 1fr; }
}
@media (max-width: 36em) {
	.dpub-themes { grid-template-columns: 1fr; }
	.dpub-theme:last-child:nth-child(2n + 1) { grid-column: auto; }
	.dpub-search--large .dpub-search__row { flex-wrap: wrap; }
	.dpub-search--large .dpub-btn { width: 100%; }
	.dpub-life__list li, .dpub-life__list li:first-child { border-left: 0; padding: .45rem 0; border-top: 1px solid rgba(255, 255, 255, .2); }
}
@media print {
	.dpub-hero .dpub-quick, .dpub-theme__corner, .dpub-theme__more { display: none !important; }
	.dpub-life { background: none; color: inherit; border: 1px solid #999; }
	.dpub-life__list a { color: inherit !important; }
}

@media (max-width: 40em) {
	.dpub-links--cols { columns: 1; }
	.dpub-facts { grid-template-columns: 1fr; }
	.dpub-choice__options { flex-direction: column; }
	.dpub-choice__option label { display: block; }
}

@media (prefers-reduced-motion: reduce) {
	.dpub * { transition: none !important; animation: none !important; }
}

@media print {
	.dpub-search, .dpub-choice__controls, .dpub-choice__prompt, .dpub-pagination, .dpub-questionnaire__actions, .dpub-gloss-close { display: none !important; }
	.dpub-js .dpub-choice__panel-title { display: block !important; }
	/* Sans sélection, toutes les situations sont imprimées sous leur intitulé. */
	.dpub-choice:not(.dpub-has-selection) > .dpub-choice__panel:not([data-dp-excluded]) { display: block !important; }
	.dpub details > * { display: block !important; }
	.dpub a.dpub-ext[href^="http"]::after { content: " (" attr(href) ")"; background: none; -webkit-mask: none; mask: none; width: auto; height: auto; font-size: .8em; }
	.dpub-table-wrap { overflow: visible; }
	.dpub-card, .dpub-service, .dpub-contact, .dpub-box { break-inside: avoid; }
}

/* ==========================================================================
 * Styles « Swiss design », « Swiss design mono » et « Neo brutalist »
 * (réglage Affichage > Style). Structure commune ; les deux variantes ne
 * redéfinissent que la palette et les tuiles (voir plus bas). Le style « No life » correspond aux règles
 * ci-dessus, sans surcharge.
 * Grille stricte, typographie grotesque serrée, filets fins, aplats de
 * couleurs saturées sans espacement. Couleurs des tuiles choisies pour un
 * contraste d'au moins 3:1 avec le texte blanc en gros caractères gras.
 * ========================================================================== */
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) {
	--dpub-ink: #111111;
	--dpub-accent: #111111;
	--dpub-accent-soft: #e6e6e3;
	--dpub-accent-contrast: #ffffff;
	--dpub-dark: #111111;
	--dpub-muted: #4a4a4a;
	--dpub-border: #111111;
	--dpub-hairline: #bdbdb8;
	--dpub-surface: #f2f2ef;
	--dpub-surface-strong: #e4e4e0;
	--dpub-card: #ffffff;
	--dpub-info-bg: #e3f1fc;
	--dpub-focus: #0b67a6;
	--dpub-radius: 0;
	--dpub-font: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
	--dpub-tile-bg: #e6edf3;
	--dpub-tile-bg-hover: #d7e2ec;
	--dpub-sw-life: #a8d5f7;
	--dpub-sw-life-line: #3a86c8;
	--dpub-sw-tag-1: #f5c84c;
	--dpub-sw-tag-2: #cdb8f5;
	--dpub-sw-1: #d6392b;
	--dpub-sw-2: #0d5c46;
	--dpub-sw-3: #c4840c;
	--dpub-sw-4: #0b67a6;
	--dpub-sw-5: #5b8eaa;
	--dpub-sw-6: #dd6d1f;
	--dpub-sw-7: #7a9436;
	--dpub-sw-8: #0f5a48;
	--dpub-sw-9: #0b5f9a;
	--dpub-sw-10: #4a7a5a;
	--dpub-sw-11: #c9342a;
	--dpub-sw-12: #b77a0a;
	font-family: var(--dpub-font);
	counter-reset: dpub-sec;
}
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) a { color: var(--dpub-ink); text-decoration-thickness: 1px; text-underline-offset: .2em; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-h, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-title { font-family: inherit; font-weight: 700; letter-spacing: -.02em; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-title { letter-spacing: -.035em; line-height: 1; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-breadcrumb li + li::before { content: "/"; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-breadcrumb { font-size: .85em; }

/* Boutons et contrôles */
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-btn { background: var(--dpub-ink); border-color: var(--dpub-ink); color: #fff !important; font-weight: 500; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-btn:hover { filter: none; background: #333; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-search input[type="search"] { border: 1px solid var(--dpub-ink); background: var(--dpub-card); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-search--large .dpub-search__row { border: 1px solid var(--dpub-ink); padding: 0; gap: 0; box-shadow: none; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-search--large .dpub-search__row:focus-within { border-color: var(--dpub-ink); box-shadow: 0 0 0 3px var(--dpub-focus); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-search--large input[type="search"] { min-height: 3.25rem; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-search--large .dpub-btn { border: 0; padding: .75em 1.75em; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-choice__option label, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-step-choice { border-width: 1px; border-color: var(--dpub-ink); color: var(--dpub-ink); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-choice__option input:checked + label { background: var(--dpub-ink); color: #fff; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-step-choice:hover { background: var(--dpub-surface); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-pagination a, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-pagination span { border-color: var(--dpub-ink); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-pagination [aria-current] { background: var(--dpub-ink); color: #fff; border-color: var(--dpub-ink); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-chapter--step > .dpub-h::before { border-radius: 0; background: var(--dpub-sw-1); color: #fff; }

/* Bandeau d'accueil : titre à gauche, introduction à droite */
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-hero { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); column-gap: 3rem; align-items: end; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-hero > * { grid-column: 1 / -1; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-hero__eyebrow, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-hero__title { grid-column: 1; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-hero__lead { grid-column: 2; grid-row: 1 / span 2; align-self: end; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-hero__eyebrow { color: var(--dpub-ink); font-size: .85rem; font-weight: 500; letter-spacing: 0; text-transform: none; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-hero__title { font-family: inherit; font-size: clamp(2.6rem, 1.2rem + 5.5vw, 5.75rem); font-weight: 700; line-height: .92; letter-spacing: -.05em; margin-bottom: 2rem; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-hero__lead { color: var(--dpub-ink); font-size: 1.05rem; line-height: 1.4; margin-bottom: 2rem; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-quick { gap: .5rem 2.25rem; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-quick__label { display: none; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-quick ul { gap: .5rem 2.25rem; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-chip { border: 0; border-radius: 0; background: none; padding: 0; color: var(--dpub-ink) !important; font-size: .95rem; text-decoration: underline !important; text-decoration-thickness: 1px !important; text-underline-offset: .25em; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-chip:hover { background: none; text-decoration-thickness: 2px !important; }

/* Sections numérotées */
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-home-section, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-life, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-home-list, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-faq { counter-increment: dpub-sec; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-home-section__head { border-top: 1px solid var(--dpub-ink); padding-top: .9rem; margin-bottom: 1rem; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-home-section__head .dpub-h::before,
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-life__title::before,
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-home-list > .dpub-h::before,
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-faq > .dpub-h::before {
	content: counter(dpub-sec, decimal-leading-zero); display: inline-block; min-width: 2.5rem; margin-right: .75rem;
	font-size: .85rem; font-weight: 500; letter-spacing: 0; vertical-align: .35em;
}
/* Le numéro forme sa propre colonne : un titre sur deux lignes reste aligné sur son texte. */
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-home-section__head .dpub-h, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-life__title, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-faq > .dpub-h { display: flex; align-items: baseline; line-height: 1.1; text-wrap: balance; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-home-section__head .dpub-h::before, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-life__title::before, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-faq > .dpub-h::before { flex: none; vertical-align: 0; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-home-list > .dpub-h { display: flex; align-items: center; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-home-list > .dpub-h::before { min-width: 0; padding: .3em .7em; border: 1px solid var(--dpub-ink); background: var(--dpub-sw-tag-1); vertical-align: 0; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-home-list + .dpub-home-list > .dpub-h::before { background: var(--dpub-sw-tag-2); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-home-section__meta { color: var(--dpub-muted); }

/* Tuiles de thématique */
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-themes { gap: 0; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme {
	background: var(--dpub-sw, var(--dpub-sw-1)); color: #fff; border: 0; border-radius: 0; box-shadow: none;
	min-height: 14rem; padding: 1.75rem 1.5rem 1.4rem; transition: filter .15s;
}
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme:nth-child(12n + 1) { --dpub-sw: var(--dpub-sw-1); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme:nth-child(12n + 2) { --dpub-sw: var(--dpub-sw-2); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme:nth-child(12n + 3) { --dpub-sw: var(--dpub-sw-3); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme:nth-child(12n + 4) { --dpub-sw: var(--dpub-sw-4); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme:nth-child(12n + 5) { --dpub-sw: var(--dpub-sw-5); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme:nth-child(12n + 6) { --dpub-sw: var(--dpub-sw-6); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme:nth-child(12n + 7) { --dpub-sw: var(--dpub-sw-7); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme:nth-child(12n + 8) { --dpub-sw: var(--dpub-sw-8); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme:nth-child(12n + 9) { --dpub-sw: var(--dpub-sw-9); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme:nth-child(12n + 10) { --dpub-sw: var(--dpub-sw-10); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme:nth-child(12n + 11) { --dpub-sw: var(--dpub-sw-11); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme:nth-child(12n + 12) { --dpub-sw: var(--dpub-sw-12); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme:hover, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme:focus-within { background: var(--dpub-sw, var(--dpub-sw-1)); box-shadow: none; filter: brightness(.9); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme:hover .dpub-theme__link { text-decoration: underline !important; text-decoration-thickness: 2px !important; text-underline-offset: .2em; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme:focus-within { z-index: 1; outline: 3px solid #fff; outline-offset: -9px; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme__icon { color: #fff; align-self: center; margin: 0 0 1.25rem; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme__icon .dpub-icon { width: 5rem; height: 5rem; stroke-width: 1.8; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme__corner, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme__summary { display: none; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme__title { margin: auto 0 0; padding-right: 2.5rem; font-size: 1.3rem; font-weight: 700; line-height: 1.15; letter-spacing: -.01em; }
/* Le thème colore souvent les h3 : le blanc est imposé sur les tuiles. */
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme__title, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme__link { color: #fff !important; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme__more { position: absolute; right: 1.25rem; bottom: 1.4rem; margin: 0; color: #fff; font-size: 0; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme__more .dpub-icon { width: 1.6rem; height: 1.6rem; stroke-width: 1.8; }

/* « Selon votre situation » */
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-life {
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); column-gap: 1.5rem; align-items: start;
	background: var(--dpub-sw-life); color: var(--dpub-ink); border: 1px solid var(--dpub-sw-life-line); border-radius: 0; padding: 1rem 1.25rem;
}
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-life__title, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-life__lead { grid-column: 1; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-life__title { font-weight: 700; letter-spacing: -.02em; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-life__title::before { min-width: 2rem; margin-right: .5rem; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-life__lead { opacity: 1; font-size: .9rem; margin: 0; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-life__list { grid-column: 2; grid-row: 1 / span 2; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); column-gap: 1.25rem; border-left: 1px solid var(--dpub-ink); padding-left: 1.25rem; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-life__list li, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-life__list li:first-child { border: 0; border-bottom: 1px solid var(--dpub-ink); padding: .5rem 0; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-life__list a { color: var(--dpub-ink) !important; font-weight: 400; font-size: .95rem; display: flex; justify-content: space-between; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-life a:focus-visible { outline-color: var(--dpub-focus); }

/* Listes et questions fréquentes */
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-home-cols { gap: 1rem 1.5rem; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-rows { border: 1px solid var(--dpub-ink); background: var(--dpub-card); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-rows li { border-bottom: 1px solid var(--dpub-ink); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-rows li:last-child { border-bottom: 0; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-row { padding: .65rem 1.1rem; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-row:hover { background: var(--dpub-surface); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-row__icon { display: none; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-row__arrow { color: var(--dpub-ink); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-faq__item { border: 0; border-top: 1px solid var(--dpub-ink); border-radius: 0; margin: 0; background: none; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-faq__item:last-of-type { border-bottom: 1px solid var(--dpub-ink); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-faq__item > summary { padding: 1.3rem .75rem; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-faq__body { padding: .1rem 4rem 1.75rem .75rem; color: var(--dpub-ink); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-faq__icon { color: var(--dpub-ink); }

/* Contenus des fiches */
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-card, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-service, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-contact,
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-details, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-help-details { border-color: var(--dpub-ink); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-box, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-notice, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-local, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-local-org { border-left-width: 6px; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-box--attention, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-box--warning { border-color: var(--dpub-sw-3); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-box--asavoir, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-box--anoter, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-box--rappel { border-color: var(--dpub-sw-4); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-service__type, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-surtitle { letter-spacing: 0; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-table th, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-table td { border-color: var(--dpub-hairline); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-table { border-top: 2px solid var(--dpub-ink); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-result { border-bottom-color: var(--dpub-ink); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-provenance { border-top-color: var(--dpub-ink); font-size: .8em; }

@media (max-width: 60em) {
	:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-hero { grid-template-columns: 1fr; }
	:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-hero__lead { grid-column: 1; grid-row: auto; }
	:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-life { grid-template-columns: 1fr; }
	:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-life__list { grid-column: 1; grid-row: auto; border-left: 0; padding-left: 0; margin-top: .75rem; }
}
@media (max-width: 36em) {
	:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme { min-height: 11rem; }
	:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme__icon .dpub-icon { width: 3.5rem; height: 3.5rem; }
}
@media print {
	:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme { background: none; color: inherit; border: 1px solid #999; }
	:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme__icon, :is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-theme__more { color: inherit; }
	:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist) .dpub-life { background: none; }
}

/* Pages intérieures de navigation (thème, sous-thème, dossier) :
   surtitre puis grand titre, sections numérotées, liens en tuiles. */
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist):is(.dpub-view-theme, .dpub-view-soustheme, .dpub-view-dossier) { display: flex; flex-direction: column; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist):is(.dpub-view-theme, .dpub-view-soustheme, .dpub-view-dossier) > * { order: 3; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist):is(.dpub-view-theme, .dpub-view-soustheme, .dpub-view-dossier) > .dpub-breadcrumb { order: 0; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist):is(.dpub-view-theme, .dpub-view-soustheme, .dpub-view-dossier) > .dpub-header { order: 1; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist):is(.dpub-view-theme, .dpub-view-soustheme, .dpub-view-dossier) > .dpub-title { order: 2; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist):is(.dpub-view-theme, .dpub-view-soustheme, .dpub-view-dossier) .dpub-surtitle { color: var(--dpub-muted); font-size: .85rem; font-weight: 600; letter-spacing: .06em; margin: 0 0 .25rem; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist):is(.dpub-view-theme, .dpub-view-soustheme, .dpub-view-dossier) > .dpub-title { font-size: clamp(2.2rem, 1.3rem + 3.5vw, 4rem); letter-spacing: -.04em; line-height: 1.02; margin: 0 0 1.5rem; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist):is(.dpub-view-theme, .dpub-view-soustheme, .dpub-view-dossier) .dpub-section { counter-increment: dpub-sec; border-top: 1px solid var(--dpub-hairline); padding: 1.25rem 0 1.75rem; margin: 0; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist):is(.dpub-view-theme, .dpub-view-soustheme, .dpub-view-dossier) .dpub-section > .dpub-h { display: flex; align-items: baseline; margin: .25rem 0 1.25rem; font-size: clamp(1.4rem, 1.15rem + 1vw, 1.9rem); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist):is(.dpub-view-theme, .dpub-view-soustheme, .dpub-view-dossier) .dpub-section > .dpub-h::before {
	content: counter(dpub-sec, decimal-leading-zero); flex: none; min-width: 3.75rem;
	color: var(--dpub-muted); font-size: 1.05rem; font-weight: 400; letter-spacing: 0;
}
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist):is(.dpub-view-theme, .dpub-view-soustheme, .dpub-view-dossier) .dpub-links { list-style: none; padding: 0; margin: 0 0 var(--dpub-space); columns: auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem 1.5rem; }
/* La tuile est portée par le li : il peut contenir, après le lien, une mention (thème d'origine, format…). */
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist):is(.dpub-view-theme, .dpub-view-soustheme, .dpub-view-dossier) .dpub-links li { margin: 0; display: flex; flex-direction: column; background: var(--dpub-tile-bg); transition: background-color .15s; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist):is(.dpub-view-theme, .dpub-view-soustheme, .dpub-view-dossier) .dpub-links li:hover { background: var(--dpub-tile-bg-hover); }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist):is(.dpub-view-theme, .dpub-view-soustheme, .dpub-view-dossier) .dpub-links li > .dpub-meta { display: block; margin: -.7rem 0 0; padding: 0 1.5rem 1rem; font-size: .85rem; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist):is(.dpub-view-theme, .dpub-view-soustheme, .dpub-view-dossier) .dpub-links a {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex: 1 0 auto;
	padding: 1.1rem 1.5rem; color: var(--dpub-ink); text-decoration: none; font-size: 1.05rem; line-height: 1.35;
}
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist):is(.dpub-view-theme, .dpub-view-soustheme, .dpub-view-dossier) .dpub-links a:hover { text-decoration: underline; text-decoration-thickness: 1px; }
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist):is(.dpub-view-theme, .dpub-view-soustheme, .dpub-view-dossier) .dpub-links a:not(.dpub-ext)::after {
	content: ""; flex: none; width: 1.35rem; height: 1.35rem; background-color: currentColor;
	-webkit-mask: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") no-repeat center / contain;
}
:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist):is(.dpub-view-theme, .dpub-view-soustheme, .dpub-view-dossier) .dpub-links a.dpub-ext::after { flex: none; width: 1rem; height: 1rem; }
@media (max-width: 40em) {
	:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist):is(.dpub-view-theme, .dpub-view-soustheme, .dpub-view-dossier) .dpub-links { grid-template-columns: 1fr; }
	:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist):is(.dpub-view-theme, .dpub-view-soustheme, .dpub-view-dossier) .dpub-section > .dpub-h::before { min-width: 2.75rem; }
}
@media print {
	:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist):is(.dpub-view-theme, .dpub-view-soustheme, .dpub-view-dossier) .dpub-links li { background: none; }
	:is(.dpub--style-swiss, .dpub--style-swissmono, .dpub--style-neobrutalist):is(.dpub-view-theme, .dpub-view-soustheme, .dpub-view-dossier) .dpub-links a { padding: .3rem 0; }
}

/* Page d'un thème : le titre reprend la couleur de sa tuile sur l'accueil
   (classe dpub-tone-N, voir Renderer::theme_tone()). Teintes à 3:1 minimum
   sur fond blanc, suffisant pour ce titre en grands caractères gras. */
:is(.dpub--style-swiss, .dpub--style-neobrutalist).dpub-tone-1 { --dpub-tone: var(--dpub-sw-1); }
:is(.dpub--style-swiss, .dpub--style-neobrutalist).dpub-tone-2 { --dpub-tone: var(--dpub-sw-2); }
:is(.dpub--style-swiss, .dpub--style-neobrutalist).dpub-tone-3 { --dpub-tone: var(--dpub-sw-3); }
:is(.dpub--style-swiss, .dpub--style-neobrutalist).dpub-tone-4 { --dpub-tone: var(--dpub-sw-4); }
:is(.dpub--style-swiss, .dpub--style-neobrutalist).dpub-tone-5 { --dpub-tone: var(--dpub-sw-5); }
:is(.dpub--style-swiss, .dpub--style-neobrutalist).dpub-tone-6 { --dpub-tone: var(--dpub-sw-6); }
:is(.dpub--style-swiss, .dpub--style-neobrutalist).dpub-tone-7 { --dpub-tone: var(--dpub-sw-7); }
:is(.dpub--style-swiss, .dpub--style-neobrutalist).dpub-tone-8 { --dpub-tone: var(--dpub-sw-8); }
:is(.dpub--style-swiss, .dpub--style-neobrutalist).dpub-tone-9 { --dpub-tone: var(--dpub-sw-9); }
:is(.dpub--style-swiss, .dpub--style-neobrutalist).dpub-tone-10 { --dpub-tone: var(--dpub-sw-10); }
:is(.dpub--style-swiss, .dpub--style-neobrutalist).dpub-tone-11 { --dpub-tone: var(--dpub-sw-11); }
:is(.dpub--style-swiss, .dpub--style-neobrutalist).dpub-tone-12 { --dpub-tone: var(--dpub-sw-12); }
:is(.dpub--style-swiss, .dpub--style-neobrutalist)[class*="dpub-tone-"] > .dpub-title { color: var(--dpub-tone); }

/* Jeu d'icônes géométrique des styles Swiss design (Icons::SWISS) : trait
   fin, proportionnel à la taille d'affichage. */
:is(.dpub--style-swiss, .dpub--style-swissmono) .dpub-theme__icon .dpub-icon { stroke-width: 1; }
:is(.dpub--style-swiss, .dpub--style-swissmono) .dpub-theme__more .dpub-icon { stroke-width: 1.25; }
:is(.dpub--style-swiss, .dpub--style-swissmono):is(.dpub-view-theme, .dpub-view-soustheme, .dpub-view-dossier) .dpub-links a:not(.dpub-ext)::after {
	-webkit-mask-image: 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.25' stroke-linecap='butt' stroke-linejoin='miter'%3E%3Cpath d='M3 12h17M14 6l6 6-6 6'/%3E%3C/svg%3E");
	mask-image: 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.25' stroke-linecap='butt' stroke-linejoin='miter'%3E%3Cpath d='M3 12h17M14 6l6 6-6 6'/%3E%3C/svg%3E");
}
@media (max-width: 36em) {
	:is(.dpub--style-swiss, .dpub--style-swissmono) .dpub-theme__icon .dpub-icon { stroke-width: 1.15; }
}

/* ==========================================================================
 * Style « Neo brutalist » : structure Swiss design, tuiles espacées aux tons
 * terreux, grands pictogrammes au trait blanc. Teintes ajustées
 * pour un contraste d'au moins 3:1 avec le texte blanc en gros caractères gras.
 * ========================================================================== */
.dpub--style-neobrutalist {
	--dpub-sw-1: #c0654f;
	--dpub-sw-2: #c4365a;
	--dpub-sw-3: #6a8a40;
	--dpub-sw-4: #b98418;
	--dpub-sw-5: #557a50;
	--dpub-sw-6: #0f8a80;
	--dpub-sw-7: #357f97;
	--dpub-sw-8: #4a8acb;
	--dpub-sw-9: #b08716;
	--dpub-sw-10: #557f63;
	--dpub-sw-11: #d06a2a;
	--dpub-sw-12: #c9532e;
	--dpub-nb-gap: .5rem;
}
.dpub--style-neobrutalist .dpub-themes { gap: var(--dpub-nb-gap); }
.dpub--style-neobrutalist .dpub-theme__icon .dpub-icon { width: 5.5rem; height: 5.5rem; fill: none; stroke: #fff; stroke-width: 1.9; }
.dpub--style-neobrutalist .dpub-theme:focus-within { outline-color: var(--dpub-ink); outline-offset: 3px; }
@media (max-width: 36em) {
	.dpub--style-neobrutalist .dpub-theme__icon .dpub-icon { width: 4rem; height: 4rem; }
}

/* ==========================================================================
 * Style « Swiss design mono » : structure Swiss design en camaïeu de bleus.
 * Tuiles bleu très clair, pictogrammes et textes bleu soutenu.
 * ========================================================================== */
.dpub--style-swissmono {
	--dpub-ink: #0b3d91;
	--dpub-accent: #0b3d91;
	--dpub-border: #0b3d91;
	--dpub-focus: #0b3d91;
	--dpub-hairline: #b9cdea;
	--dpub-surface: #f2f7fd;
	--dpub-surface-strong: #e1ecf9;
	--dpub-info-bg: #eaf2fc;
	--dpub-sw-life: #e3eefb;
	--dpub-sw-life-line: #0b3d91;
	--dpub-sw-tag-1: #cfe0f5;
	--dpub-sw-tag-2: #b5cfee;
	--dpub-sw-1: #e6f0fb;
	--dpub-sw-2: #d6e6f8;
	--dpub-sw-3: #edf4fc;
	--dpub-sw-4: #dce9f9;
	--dpub-sw-5: #d2e3f6;
	--dpub-sw-6: #e9f2fc;
	--dpub-sw-7: #dae8f8;
	--dpub-sw-8: #e3eefa;
	--dpub-sw-9: #d4e5f7;
	--dpub-sw-10: #ebf3fc;
	--dpub-sw-11: #dfebf9;
	--dpub-sw-12: #d8e7f8;
}
.dpub--style-swissmono .dpub-theme { color: var(--dpub-ink); }
.dpub--style-swissmono .dpub-theme__title, .dpub--style-swissmono .dpub-theme__link { color: var(--dpub-ink) !important; }
.dpub--style-swissmono .dpub-theme__icon, .dpub--style-swissmono .dpub-theme__more { color: var(--dpub-ink); }
.dpub--style-swissmono .dpub-theme:hover, .dpub--style-swissmono .dpub-theme:focus-within { filter: brightness(.96); }
.dpub--style-swissmono .dpub-theme:focus-within { outline-color: var(--dpub-ink); }
.dpub--style-swissmono .dpub-chapter--step > .dpub-h::before { background: var(--dpub-ink); }
.dpub--style-swissmono .dpub-box--attention, .dpub--style-swissmono .dpub-box--warning,
.dpub--style-swissmono .dpub-box--asavoir, .dpub--style-swissmono .dpub-box--anoter, .dpub--style-swissmono .dpub-box--rappel { border-color: var(--dpub-ink); }
.dpub--style-swissmono .dpub-btn:hover { background: #082d6b; }
.dpub--style-swissmono { --dpub-tile-bg: #e6f0fb; --dpub-tile-bg-hover: #d4e5f7; }
