@charset "UTF-8";
/* site.css — assemblé le 27/07/2026. Ne pas éditer à la main. */

/* ===================== Polices ===================== */
/* DM Sans — auto-hébergée (aucun appel à Google, conforme RGPD) */
@font-face{font-family:'DM Sans';font-style:italic;font-weight:100 900;
  font-display:swap;src:url('../fonts/dmsans-rp2wp2ywxg089uriczasexd86j3t9jz86mvyykk58vxh.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'DM Sans';font-style:italic;font-weight:100 900;
  font-display:swap;src:url('../fonts/dmsans-rp2wp2ywxg089uriczasexd86j3t9jz86mvyyky58q.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:100 900;
  font-display:swap;src:url('../fonts/dmsans-rp2yp2ywxg089urii5-g4vlh9vod8cmcqbu0-k4.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:100 900;
  font-display:swap;src:url('../fonts/dmsans-rp2yp2ywxg089urii5-g4vlh9vod8cmcqbu6-k6h9q.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}

/* ===================== Base ===================== */
/* =============================================================
   Base — beauvoisine.fr
   Remplace le CSS généré par WordPress (thème + blocs + admin).
   Écrit à la main, chaque règle a une raison d'être.
   ============================================================= */

:root{
  /* palette relevée sur l'en-tête et le pied de page existants */
  --marine:#1a2744;
  --or:#cf9854;
  --or-fonce:#bd863f;
  --teal:#00555a;
  --gris:#7a8699;
  --texte:#2b3244;
  --texte-doux:#555b66;
  --bord:#e2e5ea;
  --fond-doux:#f5f6f8;

  --police:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
  /* variables attendues par le CSS personnalisé (définies autrefois par le thème) */
  --font-body:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
  --font-heading:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
  --color-primary:#00555a;
  --color-accent:#cf9854;
  --color-text:#2b3244;

  --largeur:1070px;
  --gouttiere:24px;
}

/* ---------- remise à zéro ---------- */
*,*::before,*::after{box-sizing:border-box}
html{margin:0;padding:0;-webkit-text-size-adjust:100%}
body{margin:0;padding:0;font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;font-size:17px;line-height:1.65;
  color:var(--texte);background:#fff;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{margin:0}
ul[class],ol[class]{list-style:none;margin:0;padding:0}
img,picture,video,canvas,svg,iframe{display:block;max-width:100%;height:auto}
input,button,textarea,select{font:inherit;color:inherit}
button{cursor:pointer}
table{border-collapse:collapse;max-width:100%}
a{color:var(--teal)}
a:hover{color:var(--marine)}
:focus-visible{outline:2px solid var(--or);outline-offset:2px}

/* lien d'évitement, visible seulement au clavier */
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.screen-reader-text:focus{position:static!important;width:auto;height:auto;margin:0;
  clip:auto;padding:10px 16px;background:var(--marine);color:#fff}

/* ---------- structure de page ---------- */
.site.grid-container{max-width:var(--largeur);margin:0 auto;padding:0 var(--gouttiere)}
.site-content,.content-area,.site-main,article,.inside-article{display:block}
.entry-header{margin:38px 0 22px}
.entry-title{font-size:2.35rem;line-height:1.2;font-weight:700;color:var(--marine);margin:0}

/* ---------- typographie du contenu ---------- */
.entry-content{padding-bottom:56px}
.entry-content p{margin:0 0 1.25em}
.entry-content h2{font-size:1.7rem;line-height:1.25;font-weight:700;color:var(--marine);
  margin:1.9em 0 .6em}
.entry-content h3{font-size:1.3rem;line-height:1.3;font-weight:700;color:var(--marine);
  margin:1.6em 0 .5em}
.entry-content h4{font-size:1.08rem;font-weight:700;color:var(--marine);margin:1.4em 0 .4em}
.entry-content ul,.entry-content ol{margin:0 0 1.25em;padding-left:1.4em}
.entry-content li{margin-bottom:.4em}
.entry-content li > ul,.entry-content li > ol{margin:.4em 0}
.entry-content a{color:var(--teal);text-decoration:underline;text-underline-offset:2px}
.entry-content a:hover{color:var(--marine)}
.entry-content strong,.entry-content b{font-weight:700;color:var(--marine)}
.entry-content blockquote{margin:1.6em 0;padding:2px 0 2px 20px;
  border-left:3px solid var(--or);color:var(--texte-doux);font-style:italic}
.entry-content hr{border:0;border-top:1px solid var(--bord);margin:2.2em 0}
.entry-content figure{margin:1.6em 0}
.entry-content img{border-radius:4px}
.entry-content code{background:var(--fond-doux);padding:1px 5px;border-radius:3px;font-size:.9em}
.entry-content > :first-child{margin-top:0}

@media (max-width:782px){
  body{font-size:16px}
  .entry-title{font-size:1.8rem}
  .entry-content h2{font-size:1.4rem}
  .entry-content h3{font-size:1.15rem}
  .entry-header{margin:26px 0 18px}
}

/* ===================== CSS personnalisé ===================== */
/* (Le CSS du plugin WordPress « Simple Custom CSS and JS » a été retiré :
   il contenait des balises HTML brutes qui cassaient le parsing CSS et
   neutralisaient les variables des simulateurs, plus un @import Google
   Fonts contraire à l'autonomie du site. Il ne stylait que des éléments
   disparus — nav.primary-menu — et des polices non utilisées.) */

/* ===================== Simulateurs ===================== */
/* =========================================
   Beauvoisine Simulators — Compact & Mobile-First
   ========================================= */

:root {
    --bv-primary: #00555a;      /* teal du site */
    --bv-primary-dark: #003d41;
    --bv-accent: #cf9854;       /* or du site */
    --bv-success: #10b981;
    --bv-danger: #dc3545;
    --bv-warn: #f59e0b;
    --bv-bg: #fff;
    --bv-bg-soft: #f8fafc;
    --bv-bg-soft-2: #f1f5f9;
    --bv-border: #e2e8f0;
    --bv-border-strong: #cbd5e1;
    --bv-text: #0f172a;
    --bv-text-soft: #475569;
    --bv-text-muted: #64748b;
    --bv-radius: 10px;
    --bv-radius-sm: 6px;
    --bv-shadow: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);
    --bv-shadow-lg: 0 4px 12px -2px rgba(15, 23, 42, .08), 0 2px 4px rgba(15, 23, 42, .04);
}

/* --- Container --- */
.beauvoisine-simulator-container {
    max-width: 880px;
    margin: 1.25rem auto;
    font-family: var(--police, system-ui, sans-serif);
    color: var(--bv-text);
    font-size: 14px;
    line-height: 1.5;
    box-sizing: border-box;
}

.beauvoisine-simulator-container *,
.beauvoisine-simulator-container *::before,
.beauvoisine-simulator-container *::after {
    box-sizing: border-box;
}

.beauvoisine-simulator-container h3 {
    font-size: 1.15rem;
    font-weight: 700;
    margin: 0 0 .75rem;
    color: var(--bv-text);
    letter-spacing: -.01em;
}

.beauvoisine-simulator-container h4 {
    font-size: .95rem;
    font-weight: 600;
    margin: .75rem 0 .5rem;
    color: var(--bv-text-soft);
    text-transform: uppercase;
    letter-spacing: .03em;
}

/* --- Grid & Layout --- */
.beauvoisine-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
    gap: 14px;
    align-items: start;
}

.beauvoisine-col-form {
    border: 1px solid var(--bv-border);
    padding: 14px;
    border-radius: var(--bv-radius);
    background-color: var(--bv-bg);
    box-shadow: var(--bv-shadow);
    min-width: 0;
}

.beauvoisine-col-result {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* Inputs grid inside form (2 cols on desktop) */
.beauvoisine-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 12px;
}

.beauvoisine-form-grid .beauvoisine-form-group.full {
    grid-column: 1 / -1;
}

/* --- Form Group --- */
.beauvoisine-form-group {
    margin-bottom: 10px;
    min-width: 0;
}

.beauvoisine-form-grid .beauvoisine-form-group {
    margin-bottom: 0;
}

.beauvoisine-form-group label {
    display: block;
    font-weight: 500;
    margin-bottom: 4px;
    color: var(--bv-text-soft);
    font-size: .82rem;
}

/* --- Inputs --- */
.beauvoisine-input,
.beauvoisine-simulator-container select,
.beauvoisine-simulator-container input[type="text"],
.beauvoisine-simulator-container input[type="number"],
.beauvoisine-simulator-container input[type="email"] {
    width: 100%;
    padding: 7px 10px;
    border: 1px solid var(--bv-border-strong);
    border-radius: var(--bv-radius-sm);
    font-size: .9rem;
    font-family: inherit;
    color: var(--bv-text);
    background: var(--bv-bg);
    transition: border-color .15s, box-shadow .15s;
    -webkit-appearance: none;
    appearance: none;
    min-height: 36px;
}

.beauvoisine-input:focus,
.beauvoisine-simulator-container select:focus,
.beauvoisine-simulator-container input:focus {
    border-color: var(--bv-primary);
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 85, 90, .15);
}

.beauvoisine-input[type="number"]::-webkit-outer-spin-button,
.beauvoisine-input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.beauvoisine-input[type="number"] {
    -moz-appearance: textfield;
}

/* Input with suffix (€, %, etc) */
.beauvoisine-input-suffix {
    position: relative;
}

.beauvoisine-input-suffix .beauvoisine-input {
    padding-right: 28px;
}

.beauvoisine-input-suffix::after {
    content: attr(data-suffix);
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--bv-text-muted);
    font-size: .85rem;
    pointer-events: none;
}

/* Radio / checkbox row */
.beauvoisine-radio-group {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.beauvoisine-radio-group label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 6px 10px;
    border: 1px solid var(--bv-border);
    border-radius: var(--bv-radius-sm);
    cursor: pointer;
    background: var(--bv-bg-soft);
    font-size: .85rem;
    font-weight: 500;
    color: var(--bv-text-soft);
    margin: 0;
    transition: all .15s;
}

.beauvoisine-radio-group label:hover {
    background: var(--bv-bg-soft-2);
    border-color: var(--bv-border-strong);
}

.beauvoisine-radio-group input[type="radio"],
.beauvoisine-radio-group input[type="checkbox"] {
    margin: 0;
    accent-color: var(--bv-primary);
}

/* --- Range sliders --- */
.beauvoisine-input-wrapper {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.beauvoisine-slider-value {
    font-weight: 700;
    color: var(--bv-primary);
    font-size: .9rem;
    min-width: 56px;
    text-align: right;
}

.beauvoisine-range {
    width: 100%;
    -webkit-appearance: none;
    appearance: none;
    background: transparent;
    cursor: pointer;
    height: 24px;
    padding: 0;
    margin: 0;
}

.beauvoisine-range:focus {
    outline: none;
}

.beauvoisine-range::-webkit-slider-runnable-track {
    width: 100%;
    height: 4px;
    background: var(--bv-border);
    border-radius: 4px;
}

.beauvoisine-range::-moz-range-track {
    width: 100%;
    height: 4px;
    background: var(--bv-border);
    border-radius: 4px;
}

.beauvoisine-range::-webkit-slider-thumb {
    height: 16px;
    width: 16px;
    border-radius: 50%;
    background: var(--bv-primary);
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    margin-top: -6px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .25);
    transition: transform .1s;
}

.beauvoisine-range::-webkit-slider-thumb:hover,
.beauvoisine-range::-webkit-slider-thumb:active {
    transform: scale(1.15);
}

.beauvoisine-range::-moz-range-thumb {
    height: 16px;
    width: 16px;
    border: none;
    border-radius: 50%;
    background: var(--bv-primary);
    cursor: pointer;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .25);
}

/* --- Buttons --- */
.beauvoisine-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 14px;
    font-size: .9rem;
    font-weight: 600;
    text-align: center;
    border: 1px solid transparent;
    border-radius: var(--bv-radius-sm);
    cursor: pointer;
    font-family: inherit;
    transition: background-color .15s, transform .05s, box-shadow .15s;
    min-height: 36px;
}

.beauvoisine-btn:hover {
    opacity: .94;
}

.beauvoisine-btn:active {
    transform: translateY(1px);
}

.beauvoisine-btn-primary {
    background-color: var(--bv-primary);
    color: #fff;
}

.beauvoisine-btn-primary:hover {
    background-color: var(--bv-primary-dark);
    opacity: 1;
}

.beauvoisine-btn-secondary {
    background-color: var(--bv-bg-soft-2);
    color: var(--bv-text-soft);
    border-color: var(--bv-border);
}

.beauvoisine-btn-secondary:hover {
    background-color: var(--bv-border);
    opacity: 1;
}

.beauvoisine-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 10px;
}

/* --- Results Box --- */
.beauvoisine-result-box {
    margin-top: 12px;
    padding: 14px;
    background-color: var(--bv-bg);
    border: 1px solid var(--bv-border);
    border-radius: var(--bv-radius);
    box-shadow: var(--bv-shadow);
}

.beauvoisine-col-result .beauvoisine-result-box,
.beauvoisine-col-form .beauvoisine-result-box {
    margin-top: 0;
}

.beauvoisine-result-box--highlight {
    background: linear-gradient(135deg, #eef6ff 0%, #f0f7ff 100%);
    border-color: #bfdbfe;
}

.beauvoisine-result-box--success {
    background: #ecfdf5;
    border-color: #a7f3d0;
}

.beauvoisine-result-box--warn {
    background: #fffbeb;
    border-color: #fde68a;
}

.beauvoisine-result-item {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 10px;
    padding: 7px 0;
    border-bottom: 1px solid var(--bv-bg-soft-2);
}

.beauvoisine-result-item:first-child {
    padding-top: 0;
}

.beauvoisine-result-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.beauvoisine-result-label {
    font-weight: 500;
    color: var(--bv-text-muted);
    font-size: .85rem;
    min-width: 0;
}

.beauvoisine-result-value {
    font-weight: 700;
    color: var(--bv-text);
    font-size: 1rem;
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.beauvoisine-result-value--lg {
    font-size: 1.35rem;
    color: var(--bv-primary);
}

.beauvoisine-result-value--xl {
    font-size: 1.6rem;
    color: var(--bv-primary);
}

/* Hero result — single key number */
.beauvoisine-result-hero {
    text-align: center;
    padding: 14px;
    background: linear-gradient(135deg, #eef6ff 0%, #e0efff 100%);
    border: 1px solid #bfdbfe;
    border-radius: var(--bv-radius);
    margin-bottom: 12px;
}

.beauvoisine-result-hero-label {
    display: block;
    font-size: .8rem;
    color: var(--bv-text-soft);
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-bottom: 4px;
}

.beauvoisine-result-hero-value {
    display: block;
    font-size: 1.8rem;
    font-weight: 800;
    color: var(--bv-primary);
    font-variant-numeric: tabular-nums;
    letter-spacing: -.02em;
}

.beauvoisine-result-hero-sub {
    display: block;
    font-size: .82rem;
    color: var(--bv-text-muted);
    margin-top: 4px;
}

/* Comparison — 2/3 columns of results */
.beauvoisine-comparison {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.beauvoisine-comparison--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.beauvoisine-comparison-item {
    padding: 10px;
    background: var(--bv-bg-soft);
    border: 1px solid var(--bv-border);
    border-radius: var(--bv-radius-sm);
    text-align: center;
}

.beauvoisine-comparison-item-label {
    display: block;
    font-size: .75rem;
    color: var(--bv-text-muted);
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-bottom: 4px;
}

.beauvoisine-comparison-item-value {
    display: block;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--bv-text);
    font-variant-numeric: tabular-nums;
}

/* --- Section (grouped fields) --- */
.beauvoisine-section {
    padding: 10px 12px;
    background: var(--bv-bg-soft);
    border: 1px solid var(--bv-border);
    border-radius: var(--bv-radius-sm);
    margin-bottom: 10px;
}

.beauvoisine-section:last-child {
    margin-bottom: 0;
}

.beauvoisine-section-title {
    font-size: .75rem;
    font-weight: 700;
    color: var(--bv-text-soft);
    text-transform: uppercase;
    letter-spacing: .06em;
    margin: 0 0 8px;
}

/* --- Chart wrapper --- */
.beauvoisine-chart-wrap {
    position: relative;
    width: 100%;
    height: 280px;
    background: var(--bv-bg);
    border: 1px solid var(--bv-border);
    border-radius: var(--bv-radius);
    padding: 10px;
    box-shadow: var(--bv-shadow);
}

.beauvoisine-chart-wrap canvas {
    max-width: 100%;
    height: 100% !important;
    width: 100% !important;
}

/* --- Table --- */
.beauvoisine-table {
    width: 100%;
    border-collapse: collapse;
    font-size: .85rem;
    margin-top: 10px;
}

.beauvoisine-table th,
.beauvoisine-table td {
    padding: 8px 10px;
    text-align: right;
    border-bottom: 1px solid var(--bv-border);
}

.beauvoisine-table th:first-child,
.beauvoisine-table td:first-child {
    text-align: left;
}

.beauvoisine-table th {
    background: var(--bv-bg-soft);
    font-weight: 600;
    color: var(--bv-text-soft);
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.beauvoisine-table tr:last-child td {
    border-bottom: none;
}

.beauvoisine-table tr.total td {
    font-weight: 700;
    background: var(--bv-bg-soft);
}

/* --- Helpers --- */
.beauvoisine-text-success {
    color: var(--bv-success) !important;
}

.beauvoisine-text-danger {
    color: var(--bv-danger) !important;
}

.beauvoisine-text-primary {
    color: var(--bv-primary) !important;
}

.beauvoisine-text-warn {
    color: var(--bv-warn) !important;
}

.beauvoisine-text-muted {
    color: var(--bv-text-muted) !important;
}

.beauvoisine-note {
    font-size: .8rem;
    color: var(--bv-text-muted);
    margin: 6px 0 0;
    line-height: 1.45;
}

.beauvoisine-hr {
    border: none;
    border-top: 1px solid var(--bv-border);
    margin: 10px 0;
}

/* Toggle/details summary */
.beauvoisine-details {
    margin-top: 10px;
    border: 1px solid var(--bv-border);
    border-radius: var(--bv-radius-sm);
    background: var(--bv-bg);
    overflow: hidden;
}

.beauvoisine-details>summary {
    padding: 8px 12px;
    cursor: pointer;
    font-weight: 600;
    font-size: .85rem;
    color: var(--bv-primary);
    background: var(--bv-bg-soft);
    list-style: none;
    user-select: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

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

.beauvoisine-details>summary::after {
    content: "▾";
    transition: transform .15s;
    color: var(--bv-text-muted);
    font-size: .75rem;
}

.beauvoisine-details[open]>summary::after {
    transform: rotate(180deg);
}

.beauvoisine-details>summary+* {
    padding: 10px 12px;
}

/* --- Mobile breakpoints --- */
@media (max-width: 820px) {
    .beauvoisine-grid {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .beauvoisine-chart-wrap {
        height: 240px;
    }
}

@media (max-width: 560px) {
    .beauvoisine-simulator-container {
        font-size: 13.5px;
        margin: .75rem auto;
    }

    .beauvoisine-simulator-container h3 {
        font-size: 1.05rem;
    }

    .beauvoisine-col-form {
        padding: 12px;
    }

    .beauvoisine-form-grid {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .beauvoisine-comparison,
    .beauvoisine-comparison--3 {
        grid-template-columns: 1fr;
    }

    .beauvoisine-result-box {
        padding: 12px;
    }

    .beauvoisine-result-value--xl {
        font-size: 1.4rem;
    }

    .beauvoisine-result-hero-value {
        font-size: 1.55rem;
    }

    .beauvoisine-chart-wrap {
        height: 220px;
        padding: 8px;
    }

    .beauvoisine-result-item {
        flex-wrap: wrap;
        gap: 2px 10px;
    }

    .beauvoisine-result-value {
        white-space: normal;
    }

    .beauvoisine-radio-group label {
        flex: 1 1 auto;
        min-width: calc(50% - 3px);
        justify-content: center;
    }
}

/* =========================================
   Encarts (inchangé, juste harmonisé)
   ========================================= */
.encart {
    --encart-radius: 12px;
    --encart-gap: 10px;
    --encart-pad: 12px;
    position: relative;
    margin: 14px 0;
    border-radius: var(--encart-radius);
    padding: var(--encart-pad);
    display: flex;
    gap: var(--encart-gap);
    align-items: flex-start;
    border: 1px solid transparent;
    font-size: .92rem;
    line-height: 1.5;
}

.encart .encart-badge {
    flex: 0 0 26px;
    height: 26px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    line-height: 1;
    color: #fff;
}

.encart .encart-body {
    min-width: 0;
    flex: 1;
}

.encart .encart-title {
    margin: 0 0 4px 0;
    font-weight: 600;
    font-size: .95rem;
}

.encart .encart-content :first-child {
    margin-top: 0;
}

.encart .encart-content :last-child {
    margin-bottom: 0;
}

.encart--info {
    background: #eff6ff;
    border-color: #bfdbfe;
}

.encart--info .encart-badge {
    background: #2563eb;
}

.encart--attention {
    background: #fff7ed;
    border-color: #fed7aa;
}

.encart--attention .encart-badge {
    background: #f59e0b;
}

.encart--success {
    background: #f0fdf4;
    border-color: #bbf7d0;
}

.encart--success .encart-badge {
    background: #10b981;
}

.encart:focus-within {
    outline: 2px solid #3b82f6;
    outline-offset: 2px;
    border-color: #93c5fd;
}

/* =========================================
   Buy vs Rent Simulator
   ========================================= */
.bvr-input-category {
    border: 1px solid var(--bv-border);
    padding: 12px;
    border-radius: var(--bv-radius-sm);
    margin-bottom: 10px;
    background: var(--bv-bg-soft);
}

.bvr-input-category h4 {
    margin: 0 0 8px;
    font-size: .8rem;
    font-weight: 700;
    color: var(--bv-text-soft);
    text-transform: uppercase;
    letter-spacing: .05em;
}

.bvr-inputs-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.bvr-button {
    background: var(--bv-primary);
    color: #fff;
    border: none;
    padding: 10px 18px;
    font-size: .95rem;
    font-weight: 600;
    border-radius: var(--bv-radius-sm);
    cursor: pointer;
    transition: background .2s;
    width: 100%;
    min-height: 40px;
}

.bvr-button:hover {
    background: var(--bv-primary-dark);
}

.bvr-summary {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-top: 14px;
}

.bvr-summary>div {
    padding: 12px;
    background: var(--bv-bg);
    border: 1px solid var(--bv-border);
    border-radius: var(--bv-radius-sm);
    text-align: center;
}

.bvr-chart {
    max-width: 100%;
    margin: 14px 0;
    position: relative;
    height: 280px;
}

.bvr-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 10px;
    font-size: .85rem;
}

.bvr-table th,
.bvr-table td {
    border-bottom: 1px solid var(--bv-border);
    padding: 7px 8px;
    text-align: right;
}

.bvr-table th:first-child,
.bvr-table td:first-child {
    text-align: left;
}

.bvr-table th {
    background: var(--bv-bg-soft);
    font-size: .75rem;
    text-transform: uppercase;
    color: var(--bv-text-soft);
}

.bvr-toggle-btn {
    background: none;
    border: 1px solid var(--bv-border);
    color: var(--bv-primary);
    font-size: .88rem;
    font-weight: 600;
    cursor: pointer;
    margin: 12px 0 6px;
    padding: 6px 10px;
    border-radius: var(--bv-radius-sm);
    transition: all .15s;
}

.bvr-toggle-btn:hover {
    background: var(--bv-bg-soft);
}

.bvr-toggle-btn:focus {
    outline: 2px solid var(--bv-primary);
    outline-offset: 1px;
}

.bvr-details {
    display: none;
    margin-bottom: 14px;
    overflow-x: auto;
}

@media (max-width: 768px) {

    .bvr-inputs-grid,
    .bvr-summary {
        grid-template-columns: 1fr;
    }

    .bvr-chart {
        height: 240px;
    }

    .bvr-table {
        font-size: .78rem;
    }

    .bvr-table th,
    .bvr-table td {
        padding: 6px 5px;
    }
}

/* =========================================
   Droits de Donation (sddm-*)
   ========================================= */
.sddm-outer {
    width: 100%;
    display: flex;
    justify-content: center;
}

.sddm-wrap {
    width: 100%;
    max-width: 880px;
    margin: 1rem auto;
    color: var(--bv-text);
    font-family: system-ui, -apple-system, sans-serif;
    font-size: 14px;
}

#sdd-min,
#sdd-min * {
    box-sizing: border-box;
    font-size: 13px;
    line-height: 1.45;
}

#sdd-min .sddm-title {
    font-size: 1.05rem;
    margin: 0 0 10px;
    font-weight: 700;
}

.sddm-card {
    background: #fff;
    border-radius: var(--bv-radius);
    box-shadow: var(--bv-shadow);
    padding: 14px;
    border: 1px solid var(--bv-border);
}

.sddm-row {
    display: grid;
    grid-template-columns: 1fr 140px;
    gap: 10px;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid var(--bv-bg-soft-2);
}

.sddm-row:last-of-type {
    border-bottom: none;
}

.sddm-row label {
    color: var(--bv-text-soft);
    font-weight: 500;
}

.sddm-input {
    display: flex;
    align-items: center;
    gap: 6px;
}

.sddm-input input,
.sddm-input select {
    width: 100%;
    border: 1px solid var(--bv-border-strong);
    border-radius: var(--bv-radius-sm);
    padding: 7px 10px;
    font-family: inherit;
    font-size: .88rem;
    min-height: 34px;
}

.sddm-amount {
    position: relative;
}

.sddm-amount input {
    padding-right: 26px;
}

.sddm-eur {
    position: absolute;
    right: 10px;
    color: var(--bv-text-muted);
    font-size: .85rem;
}

.sddm-read .sddm-value {
    font-weight: 700;
    color: var(--bv-text);
    text-align: right;
    width: 100%;
}

.sddm-strong {
    font-size: 1.1rem;
    color: var(--bv-primary);
}

.sddm-actions {
    display: flex;
    gap: 6px;
    justify-content: flex-end;
    margin-top: 10px;
    flex-wrap: wrap;
}

.sddm-btn {
    background: var(--bv-primary);
    color: #fff;
    border: none;
    border-radius: var(--bv-radius-sm);
    padding: 8px 14px;
    font-size: .88rem;
    font-weight: 600;
    cursor: pointer;
    transition: opacity .2s;
    min-height: 36px;
}

.sddm-btn:hover {
    opacity: .92;
}

.sddm-muted {
    background: var(--bv-text-muted);
}

.sddm-breakdown {
    margin-top: 14px;
    overflow-x: auto;
}

.sddm-breakdown table {
    width: 100%;
    border-collapse: collapse;
}

.sddm-breakdown th,
.sddm-breakdown td {
    border-bottom: 1px solid var(--bv-border);
    padding: 7px 8px;
    text-align: right;
    font-size: .82rem;
}

.sddm-breakdown th {
    background: var(--bv-bg-soft);
    font-weight: 600;
    color: var(--bv-text-soft);
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.sddm-breakdown th:first-child,
.sddm-breakdown td:first-child {
    text-align: left;
}

.sddm-note {
    font-size: .78rem;
    color: var(--bv-text-muted);
    margin: 6px 2px;
}

@media (max-width: 720px) {
    .sddm-row {
        grid-template-columns: 1fr;
        gap: 5px;
        padding: 10px 0;
    }

    .sddm-read .sddm-value {
        text-align: left;
    }

    .sddm-actions {
        justify-content: stretch;
    }

    .sddm-actions .sddm-btn {
        flex: 1;
    }

    .sddm-breakdown th,
    .sddm-breakdown td {
        padding: 6px 4px;
        font-size: .78rem;
    }
}

/* ===================== Composants cso ===================== */
/* ===========================================
   CSO Shortcodes — Frontend Styles
   =========================================== */

/* ---- Generic box ---- */
.cso-box {
    margin: 24px 0;
    padding: 0;
    border-radius: 6px;
    border: 1px solid #e0e0e0;
    overflow: hidden;
    font-size: 15px;
    line-height: 1.6;
}

.cso-box-header {
    padding: 12px 18px;
    font-size: 15px;
    letter-spacing: 0.01em;
}

.cso-box-icon {
    margin-right: 4px;
}

.cso-box-content {
    padding: 14px 18px 16px;
    background: #fff;
}

.cso-box-content p:first-child { margin-top: 0; }
.cso-box-content p:last-child { margin-bottom: 0; }

/* ---- Attention (orange/red) ---- */
.cso-box-attention {
    border-color: #e8a838;
}
.cso-box-attention .cso-box-header {
    background: #fef3e2;
    color: #8a5d00;
    border-bottom: 1px solid #f0d9a8;
}
.cso-box-attention .cso-box-content {
    background: #fffcf6;
}

/* ---- Bon à savoir (green) ---- */
.cso-box-bon-a-savoir {
    border-color: #4caf50;
}
.cso-box-bon-a-savoir .cso-box-header {
    background: #e8f5e9;
    color: #2e7d32;
    border-bottom: 1px solid #c8e6c9;
}
.cso-box-bon-a-savoir .cso-box-content {
    background: #f9fdf9;
}

/* ---- Exemple (blue) ---- */
.cso-box-exemple {
    border-color: #42a5f5;
}
.cso-box-exemple .cso-box-header {
    background: #e3f2fd;
    color: #1565c0;
    border-bottom: 1px solid #bbdefb;
}
.cso-box-exemple .cso-box-content {
    background: #f8fbff;
}

/* ---- À retenir (purple) ---- */
.cso-box-a-retenir {
    border-color: #ab47bc;
}
.cso-box-a-retenir .cso-box-header {
    background: #f3e5f5;
    color: #7b1fa2;
    border-bottom: 1px solid #e1bee7;
}
.cso-box-a-retenir .cso-box-content {
    background: #fdf8fe;
}

/* ---- CTA (dark / branded) ---- */
.cso-box-cta {
    border-color: #1a3a5c;
    text-align: center;
}
.cso-box-cta .cso-box-header {
    background: #1a3a5c;
    color: #fff;
    border-bottom: none;
}
.cso-box-cta .cso-box-content {
    background: #f4f8fc;
    padding-bottom: 8px;
}
.cso-box-button {
    padding: 8px 18px 18px;
    background: #f4f8fc;
    text-align: center;
}
.cso-btn-cta {
    display: inline-block;
    padding: 12px 28px;
    background: #1a3a5c;
    color: #fff !important;
    text-decoration: none !important;
    border-radius: 5px;
    font-weight: 600;
    font-size: 15px;
    transition: background 0.2s;
}
.cso-btn-cta:hover {
    background: #264d73;
    color: #fff !important;
}

/* ---- Loi / référence juridique ---- */
.cso-box-loi {
    border-color: #78909c;
}
.cso-box-loi .cso-box-header {
    background: #eceff1;
    color: #37474f;
    border-bottom: 1px solid #cfd8dc;
    font-style: italic;
}
.cso-box-loi .cso-box-content {
    background: #fafbfc;
    font-style: italic;
    color: #455a64;
}

/* ---- Chiffre clé ---- */
.cso-box-chiffre {
    border-color: #ff7043;
}
.cso-box-chiffre .cso-box-header {
    background: #fbe9e7;
    color: #bf360c;
    border-bottom: 1px solid #ffccbc;
}
.cso-box-chiffre .cso-box-content {
    background: #fffaf8;
}

/* ---- Témoignage ---- */
.cso-temoignage {
    margin: 24px 0;
    padding: 20px 24px;
    background: #f9f9f9;
    border-left: 4px solid #90a4ae;
    border-radius: 0 6px 6px 0;
    font-style: normal;
    position: relative;
}
.cso-temoignage::before {
    content: "\201C";
    font-size: 48px;
    color: #cfd8dc;
    position: absolute;
    top: -4px;
    left: 12px;
    font-family: Georgia, serif;
    line-height: 1;
}
.cso-temoignage .cso-temoignage-content {
    padding-left: 28px;
}
.cso-temoignage .cso-temoignage-content p {
    margin: 0 0 8px;
    font-size: 15px;
    line-height: 1.65;
    color: #444;
}
.cso-temoignage .cso-temoignage-content p:last-child {
    margin-bottom: 0;
}
.cso-temoignage-auteur {
    display: block;
    margin-top: 12px;
    padding-left: 28px;
    font-style: normal;
    font-weight: 600;
    color: #607d8b;
    font-size: 14px;
}

/* ---- FAQ ---- */
.cso-faq {
    margin: 32px 0;
}
.cso-faq-title {
    margin-bottom: 16px;
}
.cso-faq-item {
    margin-bottom: 12px;
    border: 1px solid #e8e8e8;
    border-radius: 6px;
    overflow: hidden;
}
.cso-faq-question {
    margin: 0;
    padding: 14px 18px;
    background: #f5f5f5;
    font-size: 16px;
    font-weight: 600;
    color: #333;
    cursor: default;
    border-bottom: 1px solid #e8e8e8;
}
.cso-faq-answer {
    padding: 14px 18px;
    background: #fff;
}
.cso-faq-answer p:first-child { margin-top: 0; }
.cso-faq-answer p:last-child { margin-bottom: 0; }

/* ---- Small images (cso-img-small) ---- */
.cso-img-small {
    display: block;
    max-width: 320px;
    margin: 24px auto;
    text-align: center;
}
.cso-img-small img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
    border-radius: 6px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.cso-img-small figcaption {
    font-size: 13px;
    color: #666;
    margin-top: 6px;
    font-style: italic;
    text-align: center;
}

/* ---- Responsive ---- */
@media (max-width: 600px) {
    .cso-box { margin: 16px 0; }
    .cso-box-header { padding: 10px 14px; font-size: 14px; }
    .cso-box-content { padding: 12px 14px; font-size: 14px; }
    .cso-temoignage { padding: 16px; }
    .cso-temoignage::before { font-size: 36px; left: 8px; }
    .cso-temoignage .cso-temoignage-content { padding-left: 20px; }
    .cso-temoignage-auteur { padding-left: 20px; }
    .cso-btn-cta { padding: 10px 20px; font-size: 14px; }
    .cso-img-small { max-width: 240px; }
}

/* ===================== Encarts ===================== */
/* ==========================================================================
   Encarts — beauvoisine.fr
   Styles des blocs [bonasavoir], [attention] et [avantagefiscal].

   Ces blocs sont présents 686 fois dans le site et n'avaient aucun style.
   Palette reprise de l'en-tête et du pied de page existants.

   Utilisable tel quel dans WordPress (Apparence > Personnaliser > CSS
   additionnel), et repris ensuite dans la migration.
   ========================================================================== */

:root {
  --bv-navy:   #1a2744;
  --bv-or:     #cf9854;
  --bv-gris:   #7a8699;
  --bv-teal:   #00555a;
  --bv-clair:  #f5f5f5;
  --bv-bord:   #e0e0e0;
}

/* --------------------------------------------------------------- structure */

.encart {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  margin: 28px 0;
  padding: 18px 20px;
  border: 1px solid var(--bv-bord);
  border-left: 4px solid var(--bv-gris);
  border-radius: 6px;
  background: #fbfbfc;
  font-size: 0.97rem;
  line-height: 1.65;
}

.encart-badge {
  flex: 0 0 26px;
  width: 26px;
  height: 26px;
  margin-top: 1px;
  border-radius: 50%;
  background: var(--bv-gris);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  line-height: 26px;
  text-align: center;
  font-family: Georgia, 'Times New Roman', serif;
  user-select: none;
}

.encart-body   { flex: 1 1 auto; min-width: 0; }

.encart-title {
  margin: 0 0 6px;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--bv-gris);
}

.encart-content   { color: #2b3244; }
.encart-content > :first-child { margin-top: 0; }
.encart-content > :last-child  { margin-bottom: 0; }
.encart-content p { margin: 0 0 10px; }
.encart-content ul,
.encart-content ol { margin: 10px 0; padding-left: 20px; }
.encart-content li { margin-bottom: 5px; }
.encart-content a { color: var(--bv-navy); text-decoration: underline; }

/* --------------------------------------------------------------- variantes */

/* [bonasavoir] — information utile */
.encart--info              { border-left-color: var(--bv-navy); background: #f7f8fb; }
.encart--info .encart-badge{ background: var(--bv-navy); font-style: italic; }
.encart--info .encart-title{ color: var(--bv-navy); }

/* [attention] — point de vigilance */
.encart--attention              { border-left-color: var(--bv-or); background: #fdf8f1; }
.encart--attention .encart-badge{ background: var(--bv-or); font-family: inherit; }
.encart--attention .encart-title{ color: #a3712f; }

/* [avantagefiscal] — gain ou avantage */
.encart--success              { border-left-color: var(--bv-teal); background: #f2f8f8; }
.encart--success .encart-badge{ background: var(--bv-teal); font-family: inherit; font-size: 14px; }
.encart--success .encart-title{ color: var(--bv-teal); }

/* --------------------------------------------------------------- mobile */

@media (max-width: 600px) {
  .encart { padding: 15px 16px; gap: 11px; font-size: 0.94rem; }
  .encart-badge { flex-basis: 22px; width: 22px; height: 22px;
                  line-height: 22px; font-size: 13px; }
}

/* --------------------------------------------------------------- impression */

@media print {
  .encart { break-inside: avoid; background: none; border-color: #999; }
}

/* ===================== Composants ===================== */

/* ---------------- barre du logo ---------------- */
.topbar{background:#fff;border-bottom:1px solid var(--bord)}
.topbar-inner{max-width:1400px;margin:0 auto;padding:10px var(--gouttiere);
  display:flex;align-items:center;justify-content:space-between;gap:20px}
.topbar-logo{display:block;flex:0 0 auto;line-height:0;padding:0;margin:0}
.topbar-logo img{height:56px;width:auto;display:block}
.topbar-cta{position:relative;overflow:hidden;isolation:isolate;flex:0 0 auto;
  display:inline-flex;align-items:center;padding:10px 22px;border-radius:8px;
  background:var(--or);color:#fff;font-size:.82rem;font-weight:700;
  text-decoration:none;white-space:nowrap;transition:background .15s}
.topbar-cta:hover,.topbar-cta:focus-visible{background:var(--or-fonce);color:#fff;text-decoration:none}
.topbar-cta::after{content:"";position:absolute;top:0;left:-60%;width:50%;height:100%;
  background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.45) 50%,rgba(255,255,255,0) 100%);
  transform:skewX(-18deg);pointer-events:none;animation:brillance 3.4s ease-in-out infinite}
@keyframes brillance{0%,72%{left:-60%}100%{left:130%}}
@media (prefers-reduced-motion:reduce){.topbar-cta::after{animation:none}}
@media (max-width:640px){
  .topbar-inner{padding:8px 16px;gap:12px}
  .topbar-logo img{height:42px}
  .topbar-cta{padding:9px 14px;font-size:.75rem}
}

/* ---------------- navigation ---------------- */
.nav{background:var(--teal);position:relative;z-index:50}
ul.nav-menu{display:flex;flex-wrap:wrap;max-width:1400px;margin:0 auto;
  padding:0 16px;list-style:none;gap:2px}
.nav-item{position:static}
.nav-link{display:flex;align-items:center;gap:6px;padding:14px 16px;background:none;
  border:0;color:#fff;font-size:.94rem;font-weight:500;text-decoration:none;
  cursor:pointer;font-family:inherit;line-height:1.3}
.nav .nav-menu a.nav-link,.nav .nav-menu a.nav-link:link,.nav .nav-menu a.nav-link:visited,
.nav .nav-menu a.nav-link:hover,.nav .nav-menu a.nav-link:focus,
.nav .nav-menu a.nav-link:active{color:#fff;text-decoration:none}
.nav-link:hover,.nav-link:focus-visible{background:rgba(255,255,255,.12);outline:none}
.nav-link:focus-visible{box-shadow:inset 0 0 0 2px var(--or)}
.nav-caret{width:0;height:0;border:4px solid transparent;border-top-color:currentColor;
  margin-top:3px;transition:transform .15s}
.nav-has-sub[data-ouvert="1"] .nav-caret{transform:rotate(180deg)}
.nav-panel{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;
  border-top:3px solid var(--or);box-shadow:0 12px 32px rgba(0,0,0,.14);padding:24px 0}
.nav-has-sub[data-ouvert="1"] .nav-panel{display:block}
.nav-cols{max-width:1400px;margin:0 auto;padding:0 24px;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:22px 30px}
.nav-cat{margin:0 0 8px;font-size:.74rem;font-weight:700;letter-spacing:.07em;
  text-transform:uppercase;color:var(--gris)}
.nav-cat a{color:var(--marine);text-decoration:none}
.nav-cat a:hover{text-decoration:underline}
.nav-col ul{list-style:none;margin:0;padding:0}
.nav-cols ul[class]{padding:0}
.nav-col li{margin:0 0 3px}
.nav-col a{display:block;padding:3px 0;color:var(--texte);font-size:.88rem;
  line-height:1.4;text-decoration:none}
.nav-col a:hover,.nav-col a:focus-visible{color:var(--teal);text-decoration:underline;outline:none}
.nav-toggle{display:none;align-items:center;gap:9px;width:100%;padding:14px 16px;
  background:none;border:0;color:#fff;font:inherit;font-size:1rem;cursor:pointer}
.nav-toggle span{position:relative;width:20px;height:2px;background:#fff}
.nav-toggle span::before,.nav-toggle span::after{content:"";position:absolute;left:0;
  width:20px;height:2px;background:#fff}
.nav-toggle span::before{top:-6px}
.nav-toggle span::after{top:6px}

@media (min-width:1001px){
  ul.nav-menu{justify-content:space-between;gap:0;padding:0 var(--gouttiere)}
  .nav-item{flex:0 1 auto}
  .nav-link{padding:14px 10px;text-align:center}
  .nav-item:first-child .nav-link{padding-left:0}
  .nav-item:last-child .nav-link{padding-right:0}
}
@media (max-width:1000px){
  .nav-toggle{display:flex}
  ul.nav-menu{display:none;flex-direction:column;padding:0 0 10px}
  .nav[data-ouvert="1"] ul.nav-menu{display:flex}
  .nav-item{width:100%}
  .nav-link{width:100%;justify-content:space-between;padding:12px 20px}
  .nav-panel{position:static;padding:4px 0 12px;background:rgba(255,255,255,.07);
    border-top:0;border-left:3px solid var(--or);box-shadow:none}
  .nav-cols{grid-template-columns:1fr;gap:16px;padding:0 20px}
  .nav-cat{color:var(--or)}
  .nav-cat a,.nav-col a{color:#fff}
}
@media print{.nav,.topbar-cta{display:none}}

/* ---------------- pied de page ---------------- */
/* Le pied de page est stylé par les classes pied-* ci-dessous : plus
   aucune remise à zéro globale des marges, qui écrasait leurs espacements. */
.site-footer ul,.site-footer ol{margin:0;padding-left:0;list-style:none}
.site-footer li{margin:0 0 8px;line-height:1.55}
.site-footer p{line-height:1.55}
.site-footer h3,.site-footer h4{line-height:1.3}
.site-footer a{text-decoration:none}
.site-footer a:hover{text-decoration:underline}
.site-footer img{margin:0}
.site-footer div::before,.site-footer div::after,
.site-footer section::before,.site-footer section::after,
.topbar div::before,.topbar div::after{content:none!important;display:none!important}

/* placement explicite des grilles du pied de page */
.site-footer div[style*="repeat(4,1fr)"]>*:nth-child(1){grid-area:1/1!important}
.site-footer div[style*="repeat(4,1fr)"]>*:nth-child(2){grid-area:1/2!important}
.site-footer div[style*="repeat(4,1fr)"]>*:nth-child(3){grid-area:1/3!important}
.site-footer div[style*="repeat(4,1fr)"]>*:nth-child(4){grid-area:1/4!important}
.site-footer div[style*="1fr 1fr"]>*:nth-child(1){grid-area:1/1!important}
.site-footer div[style*="1fr 1fr"]>*:nth-child(2){grid-area:1/2!important}
.site-footer div[style*="1fr 1fr"]>*:nth-child(3){grid-area:2/1!important}
.site-footer div[style*="1fr 1fr"]>*:nth-child(4){grid-area:2/2!important}
@media (max-width:900px){
  .site-footer div[style*="repeat(4,1fr)"]{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .site-footer div[style*="repeat(4,1fr)"]>*:nth-child(3){grid-area:2/1!important}
  .site-footer div[style*="repeat(4,1fr)"]>*:nth-child(4){grid-area:2/2!important}
}
@media (max-width:600px){
  .site-footer div[style*="repeat(4,1fr)"],
  .site-footer div[style*="1fr 1fr"]{grid-template-columns:1fr!important}
  .site-footer div[style*="repeat(4,1fr)"]>*,
  .site-footer div[style*="1fr 1fr"]>*{grid-area:auto!important}
}

/* ---------------- filet de sécurité ---------------- */
html,body{overflow-x:hidden}


/* ------------------------------------------------------------
   Livre « Indemnisation & Patrimoine »
   Couverture reproduite en pur CSS (aucune image).
   ------------------------------------------------------------ */
.livre-couv{display:flex;flex-direction:column;justify-content:flex-start;text-align:center;
  background:var(--marine);color:#fff;aspect-ratio:210/297;width:min(300px,100%);
  padding:14% 9% 10%;border-radius:3px;border-bottom:5px solid var(--or);
  box-shadow:0 14px 34px rgba(26,39,68,.30);font-size:16px}
.livre-couv-auteur{font-size:.72em;letter-spacing:.35em;text-transform:uppercase;
  color:#dfe4ee;margin:0 0 12%}
.livre-couv-titre{font-family:Georgia,'Times New Roman',serif;font-weight:700;
  font-size:1.7em;line-height:1.22;letter-spacing:.03em;margin:0;display:block}
.livre-couv-titre .et{color:var(--or)}
.livre-couv-sstitre{font-size:.78em;line-height:1.55;color:#e8ecf4;margin:12% 0 0;display:block}
.livre-couv-edition{font-size:.66em;line-height:1.6;color:#c5cddd;margin:auto 0 0;display:block;padding-top:10%}
.livre-couv--mini{font-size:8px;width:110px;border-bottom-width:3px;
  box-shadow:0 6px 14px rgba(26,39,68,.28);justify-content:center;padding:10% 6%}
.livre-couv--mini .livre-couv-auteur{font-size:.62em;letter-spacing:.22em;margin:0 0 12%;white-space:nowrap}
.livre-couv--mini .livre-couv-titre{font-size:1.32em}
.livre-couv--mini .livre-couv-sstitre,
.livre-couv--mini .livre-couv-edition{display:none}   /* illisibles à cette taille */
a .livre-couv{transition:transform .15s ease,box-shadow .15s ease}
a:hover .livre-couv{transform:translateY(-3px);box-shadow:0 18px 40px rgba(26,39,68,.38)}

/* Vignette du livre dans le méga-menu.
   Sélecteur renforcé : .nav-col a{display:block} est plus spécifique
   qu'une simple classe et écrasait le flex. */
.nav-col a.nav-livre{display:flex;align-items:center;gap:14px;text-decoration:none;
  margin-top:4px;padding:4px 0}
.nav-livre-texte{font-size:.86rem;line-height:1.45;color:var(--texte);max-width:210px}
.nav-livre-texte strong{display:block;margin-bottom:4px}
.nav-col a.nav-livre:hover{text-decoration:none}
.nav-col a.nav-livre:hover .nav-livre-texte{color:var(--teal)}

/* Page du livre */
.livre-page{display:grid;grid-template-columns:300px minmax(0,1fr);gap:44px;align-items:start;margin:8px 0 34px}
.livre-page .livre-couv{position:sticky;top:24px}
.livre-page-texte p:first-child{margin-top:0}
@media (max-width:760px){
  .livre-page{grid-template-columns:1fr;gap:28px}
  .livre-page .livre-couv{position:static;margin:0 auto}
}

/* Vidéo de présentation */
.video-presentation{margin:26px 0 6px}
.video-presentation video{display:block;width:100%;max-width:760px;margin:0 auto;
  border-radius:10px;box-shadow:0 10px 28px rgba(26,39,68,.18);background:#000}

/* ===================== Page d'accueil ===================== */
/* =============================================================
   Page d'accueil
   ============================================================= */

body.accueil .entry-header{display:none}          /* le H1 est dans le héros */
.accueil-hors-conteneur{}

/* ---------- héros ---------- */
.hero{padding:52px 0 44px;border-bottom:1px solid var(--bord)}
.hero h1,.entry-content .hero h1{font-size:2.6rem;line-height:1.15;font-weight:700;
  color:var(--marine);margin:0 0 22px;max-width:20ch}
.hero-chapo{font-size:1.22rem;line-height:1.6;color:var(--texte);max-width:56ch;margin:0 0 30px}
.hero-chapo strong{color:var(--marine)}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:18px}
.hero-note{font-size:.9rem;color:var(--gris);margin:0}

.bouton{display:inline-flex;align-items:center;justify-content:center;
  padding:13px 26px;border-radius:8px;font-size:.97rem;font-weight:700;
  text-decoration:none!important;transition:background .15s,color .15s,border-color .15s}
.bouton--or{background:var(--or);color:#fff}
.bouton--or:hover{background:var(--or-fonce);color:#fff}
.bouton--fin{background:#fff;color:var(--teal);border:1.5px solid var(--teal)}
.bouton--fin:hover{background:var(--teal);color:#fff}

/* ---------- sections communes ---------- */
.entry-content section{padding:46px 0;border-bottom:1px solid var(--bord)}
.entry-content section:last-child{border-bottom:0}
.entry-content section > h2{margin-top:0;margin-bottom:22px}

/* ---------- les trois portes ---------- */
.portes-grille{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.porte{display:flex;flex-direction:column;gap:9px;padding:24px 22px 20px;
  background:#fff;border:1px solid var(--bord);border-top:3px solid var(--teal);
  border-radius:8px;text-decoration:none!important;color:inherit;
  transition:box-shadow .18s,transform .18s,border-top-color .18s}
.porte:hover{box-shadow:0 10px 26px rgba(26,39,68,.10);transform:translateY(-2px);
  border-top-color:var(--or)}
.porte-quoi{font-size:.74rem;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--gris)}
.porte-phrase{font-size:1.09rem;font-weight:700;line-height:1.35;color:var(--marine)}
.porte-detail{font-size:.9rem;color:var(--texte-doux);line-height:1.5;flex:1}
.porte-lien{font-size:.9rem;font-weight:700;color:var(--teal)}
.porte-lien::after{content:" →"}
.portes-autre{margin:20px 0 0;font-size:.95rem;color:var(--texte-doux)}

/* ---------- les trois raisons ---------- */
.pourquoi-grille{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.raison-num{display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:50%;background:var(--marine);color:#fff;
  font-weight:700;font-size:1rem;margin-bottom:12px}
.entry-content .raison h3{margin:0 0 8px;font-size:1.1rem;color:var(--marine)}
.entry-content .raison p{margin:0;font-size:.96rem;color:var(--texte-doux);line-height:1.6}

/* ---------- simulateur ---------- */
.entry-content .simu{background:var(--fond-doux);margin-inline:calc(50% - 50vw);
  padding-block:46px;padding-inline:calc(50vw - 50%)}
.simu-chapo{max-width:62ch;margin:0 0 26px;color:var(--texte-doux)}
.simu-note{margin:18px 0 0;font-size:.87rem;color:var(--gris);max-width:70ch}

/* ---------- méthode ---------- */
.methode-corps{max-width:64ch}
.methode-phrase{margin-top:22px!important;padding:16px 20px;border-left:4px solid var(--or);
  background:#fdf8f1;font-size:1.08rem;font-weight:700;color:var(--marine)}

/* ---------- suite ---------- */
.suite p{max-width:64ch}
.lien-fleche{font-weight:700;color:var(--teal);text-decoration:none!important}
.lien-fleche::after{content:" →"}
.lien-fleche:hover{text-decoration:underline!important}

/* ---------- limites ---------- */
.limites-grille{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.limites-col{padding:22px 24px;border-radius:8px;border:1px solid var(--bord)}
.limites-col--oui{background:#f2f8f8;border-color:#cfe3e3}
.limites-col--non{background:#fafbfc}
.entry-content .limites-col h3{margin:0 0 12px;font-size:1rem;letter-spacing:.03em;
  text-transform:uppercase;font-size:.82rem;color:var(--gris)}
.entry-content .limites-col--oui h3{color:var(--teal)}
.entry-content .limites-col ul{margin:0;padding-left:1.15em}
.entry-content .limites-col li{margin-bottom:7px;font-size:.95rem;line-height:1.5}
.limites-note{margin:22px 0 0;padding:16px 20px;background:#fff;border:1px dashed var(--gris);
  border-radius:8px;font-size:.95rem;color:var(--texte-doux)}
.limites-note strong{color:var(--marine)}

/* ---------- association ---------- */
.entry-content .avf{background:var(--marine);color:#e8ecf3;margin-inline:calc(50% - 50vw);
  padding-block:46px;padding-inline:calc(50vw - 50%)}
.entry-content .avf h2{color:#fff}
.avf p{max-width:64ch;color:#c9d2e0}
.entry-content .avf-regles{margin:18px 0 0;padding:0;list-style:none;max-width:70ch}
.entry-content .avf-regles li{position:relative;padding-left:26px;margin-bottom:10px;
  font-size:.97rem;line-height:1.55}
.entry-content .avf-regles li::before{content:"✓";position:absolute;left:0;top:0;
  color:var(--or);font-weight:700}
.avf-regles strong{color:#fff}

/* ---------- final ---------- */
.final p{max-width:60ch}
.final-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:22px!important}

/* ---------- cadre réglementaire ---------- */
.cadre{font-size:.84rem;color:var(--gris);line-height:1.6}
.cadre p{margin:0 0 8px}
.cadre a{color:var(--gris)}
.cadre-mention{font-style:italic}

/* ---------- adaptation ---------- */
@media (max-width:900px){
  .portes-grille,.pourquoi-grille{grid-template-columns:1fr}
  .limites-grille{grid-template-columns:1fr}
  .hero h1,.entry-content .hero h1{font-size:2rem;max-width:none}
  .hero-chapo{font-size:1.08rem}
  .hero{padding:34px 0 32px}
  .entry-content section{padding:34px 0}
}
@media (max-width:520px){
  .bouton{width:100%}
  .hero h1,.entry-content .hero h1{font-size:1.7rem}
}

/* phrase de public, sous le chapô */
.hero-public{margin:0 0 26px;font-size:1rem;color:var(--texte-doux);
  padding-left:14px;border-left:3px solid var(--or)}
.hero-public strong{color:var(--marine)}

/* hiérarchie des portes : l'accident domine */
.porte--principale{border-top-width:4px;border-top-color:var(--or);
  background:linear-gradient(180deg,#fbfaf7 0%,#fff 60%);padding:28px 28px 24px;margin-bottom:26px}
.porte--principale .porte-quoi{color:var(--or-fonce)}
.porte--principale .porte-phrase{font-size:1.42rem;line-height:1.3}
.porte--principale .porte-detail{font-size:.97rem;max-width:74ch}
.porte--principale .porte-lien{font-size:.97rem}
.portes-intro{margin:0 0 12px;font-size:.82rem;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--gris)}
.porte--secondaire{padding:20px 22px 18px;border-top-color:var(--gris)}
.porte--secondaire .porte-phrase{font-size:1rem}
.porte--secondaire .porte-detail{font-size:.87rem}
.porte--secondaire:hover{border-top-color:var(--teal)}
.portes-grille{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:900px){
  .portes-grille{grid-template-columns:1fr}
  .porte--principale .porte-phrase{font-size:1.15rem}
}

/* ---------- pages de hub ---------- */
.hub-chapo{font-size:1.1rem;color:var(--texte-doux);max-width:62ch;margin:0 0 8px}
.hub-compte{font-size:.85rem;color:var(--gris);margin:0 0 30px}
.hub-cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:28px 34px}
.entry-content .hub-bloc h2{margin:0 0 10px;font-size:.82rem;letter-spacing:.07em;
  text-transform:uppercase;color:var(--gris);border-bottom:1px solid var(--bord);padding-bottom:7px}
.entry-content .hub-bloc ul{margin:0;padding:0;list-style:none}
.entry-content .hub-bloc li{margin:0 0 5px}
.entry-content .hub-bloc a{font-size:.93rem;line-height:1.45;text-decoration:none}
.entry-content .hub-bloc a:hover{text-decoration:underline}
.hub-retour{margin-top:38px!important;padding-top:20px;border-top:1px solid var(--bord)}
/* 5 colonnes de pied de page */
.site-footer div[style*="repeat(5,1fr)"]{display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;align-items:start}
.site-footer div[style*="repeat(5,1fr)"]>*:nth-child(1){grid-area:1/1!important}
.site-footer div[style*="repeat(5,1fr)"]>*:nth-child(2){grid-area:1/2!important}
.site-footer div[style*="repeat(5,1fr)"]>*:nth-child(3){grid-area:1/3!important}
.site-footer div[style*="repeat(5,1fr)"]>*:nth-child(4){grid-area:1/4!important}
.site-footer div[style*="repeat(5,1fr)"]>*:nth-child(5){grid-area:1/5!important}
@media (max-width:1000px){
  .site-footer div[style*="repeat(5,1fr)"]{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .site-footer div[style*="repeat(5,1fr)"]>*{grid-area:auto!important}
}

/* en-tête de panneau : lien « tout voir » vers la page de section */
/* panneaux à nombre de colonnes fixe : elles occupent toute la largeur
   au lieu de laisser une piste vide à droite (cf. .nav-col--tete qui
   empêche auto-fit d'effondrer la piste inutilisée). */
@media (min-width:1001px){
  .nav-cols--4{grid-template-columns:repeat(4,minmax(0,1fr))}
}

.nav-col--tete{grid-column:1/-1;margin-bottom:-8px}
.nav-col--tete .nav-cat{color:var(--teal);font-size:.8rem}
.nav-col--tete .nav-cat a{color:var(--teal)}
.nav-col--tete .nav-cat a::after{content:" →"}

/* entre 1001 et 1240 px, les libellés plus longs doivent tenir sur une ligne */
@media (min-width:1001px) and (max-width:1240px){
  .nav-link{font-size:.85rem;padding:13px 4px}
  ul.nav-menu{padding:0 16px}
}

/* colonnes de réponse courte : centrées, pas coupées */

/* ===================== Tableaux ===================== */
/* Règle unique. Un tableau de données a besoin de plus de place que la
   colonne de texte : il déborde symétriquement, sans jamais dépasser l'écran. */
.entry-content table{
  display:table;table-layout:auto;border-collapse:collapse;
  margin:28px auto;font-size:.9rem;background:#fff;
  border:1px solid var(--bord);border-radius:6px;
  width:100%;max-width:100%}
.entry-content thead th,.entry-content table tr:first-child th{
  background:#f4f6f8;color:var(--marine);font-weight:700;font-size:.78rem;
  letter-spacing:.03em;text-transform:uppercase;text-align:left;
  padding:11px 13px;border-bottom:2px solid #d8dde3;vertical-align:middle}
.entry-content td,.entry-content th{
  padding:10px 13px;border-bottom:1px solid #eceff3;text-align:left;
  vertical-align:top;line-height:1.45;white-space:normal}
.entry-content tbody tr:last-child td{border-bottom:0}
.entry-content tbody tr:nth-child(even){background:#fafbfc}
.entry-content tbody tr:hover{background:#f4f8f8}
.entry-content table p{margin:0}
.entry-content table td:first-child{font-weight:600;color:var(--marine)}

/* au-delà de 1240 px de fenêtre, le tableau prend la place disponible */


/* petits écrans : défilement horizontal plutôt qu'un tableau écrasé */
@media (max-width:760px){
  .entry-content table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;
    width:100%;margin-left:0;margin-right:0}
  .entry-content thead th{white-space:nowrap}
  .entry-content td:first-child{min-width:170px}
  .entry-content td,.entry-content th{padding:9px 11px;font-size:.87rem}
}

/* La classe cso-img de l'extension bride les figures à 320 px.
   Elle est prévue pour des images, pas pour des tableaux. */
.entry-content figure.wp-block-table,
.entry-content figure.wp-block-table.cso-img{
  width:100%!important;max-width:none!important;margin:28px 0;padding:0;float:none}
.entry-content figure.wp-block-table > table{margin:0 auto}
@media (min-width:1240px){
  .entry-content figure.wp-block-table{width:calc(100% + 180px)!important;
    margin-left:-90px;margin-right:-90px}
}
@media (min-width:1480px){
  .entry-content figure.wp-block-table{width:calc(100% + 300px)!important;
    margin-left:-150px;margin-right:-150px}
}
@media (max-width:760px){
  .entry-content figure.wp-block-table{width:100%!important;margin-left:0;margin-right:0}
}

/* accroche de l'en-tête : dit ce qu'on fait sur les 250 pages
   où le visiteur arrive sans passer par l'accueil */
.topbar-accroche{flex:1 1 auto;margin:0;padding:0 24px;text-align:center;
  font-size:.9rem;line-height:1.35;color:var(--gris);font-weight:400}
.topbar-accroche strong{color:var(--marine);font-weight:600}
@media (max-width:1100px){.topbar-accroche{font-size:.8rem;padding:0 14px}}
@media (max-width:860px){.topbar-accroche{display:none}}

.topbar-accroche-2{display:block;margin-top:2px;font-size:.78rem;color:var(--gris);
  letter-spacing:.01em}
@media (max-width:1200px){.topbar-accroche-2{display:none}}

/* les cinq colonnes du pied de page démarrent exactement à la même hauteur */
.site-footer div[style*="repeat(5,1fr)"] > *{align-self:start;margin:0;padding:0}
.site-footer div[style*="repeat(5,1fr)"] > * > :first-child{margin-top:0!important}
.site-footer div[style*="repeat(5,1fr)"] > * > div:first-child{
  font-size:1rem;font-weight:700;margin:0 0 16px;color:#222;line-height:1.3;min-height:1.3em}
/* flex sur chaque colonne : supprime les fusions de marges qui décalaient les titres */


/* Un nœud de texte vide en tête de colonne créait une ligne fantôme de 27 px.
   font-size:0 sur la colonne la supprime ; les enfants reprennent leur taille. */
.site-footer div[style*="repeat(5,1fr)"] > *{font-size:0;line-height:0;align-self:start}
.site-footer div[style*="repeat(5,1fr)"] > * > *{font-size:1rem;line-height:1.55}
.site-footer div[style*="repeat(5,1fr)"] > * li,
.site-footer div[style*="repeat(5,1fr)"] > * a,
.site-footer div[style*="repeat(5,1fr)"] > * span,
.site-footer div[style*="repeat(5,1fr)"] > * p{font-size:.9rem;line-height:1.55}
.site-footer div[style*="repeat(5,1fr)"] > * > div:first-child{font-size:1rem;line-height:1.3}

/* ---------- section FAQ du pied de page : resserrer ---------- */
.site-footer section[style*="f5f5f5"]{padding:36px 0 40px!important}
.site-footer section[style*="f5f5f5"] h3{margin:0 0 24px!important}
.site-footer div[style*="1fr 1fr"]{gap:26px 44px!important;align-items:start!important}
.site-footer div[style*="1fr 1fr"] > *{align-self:start}
.site-footer div[style*="1fr 1fr"] h4{margin:0 0 6px!important;line-height:1.35}
.site-footer div[style*="1fr 1fr"] p{margin:0!important}
/* le bloc « Vous avez d'autres questions » */
.site-footer section[style*="f5f5f5"] div[style*="text-align:center"][style*="margin-top"]{
  margin-top:30px!important}

/* Mêmes lignes fantômes que dans le pied de page : les nœuds de texte vides
   entre les blocs créaient des espaces de 26 px un peu partout dans la FAQ. */
.site-footer div[style*="1fr 1fr"],
.site-footer div[style*="1fr 1fr"] > *,
.site-footer section[style*="f5f5f5"] > div{font-size:0;line-height:0}
.site-footer div[style*="1fr 1fr"] h4{font-size:1.05rem;line-height:1.35;margin:0 0 6px!important}
.site-footer div[style*="1fr 1fr"] p{font-size:.95rem;line-height:1.55;margin:0!important}
.site-footer section[style*="f5f5f5"] h3{font-size:1.6rem;line-height:1.25}
.site-footer section[style*="f5f5f5"] > div > div:last-child{font-size:1.35rem;line-height:1.4}
.site-footer section[style*="f5f5f5"] a{font-size:1rem;line-height:1.4}

/* mention de mise à jour en pied de page de contenu */
.entry-content .page-mention{margin-top:38px;padding-top:16px;border-top:1px solid var(--bord);
  font-size:.84rem;color:var(--gris);line-height:1.55}
.entry-content ol{margin:0 0 1.25em;padding-left:1.4em}
.entry-content ol li{margin-bottom:.5em}

/* ================= formulaire de contact ================= */
.contact-colonnes{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);
  gap:44px;align-items:start;margin:26px 0 10px}
.contact-form-zone h2,.contact-aparte h2{margin-top:0}
.contact-aparte{background:var(--fond-doux);border:1px solid var(--bord);
  border-radius:8px;padding:22px 24px;font-size:.95rem}
.contact-aparte h3{font-size:1rem;margin:22px 0 8px}
.contact-aparte p{margin:0 0 14px}
.contact-etapes{margin:0 0 16px;padding-left:20px}
.contact-etapes li{margin-bottom:7px}
.contact-rappel{color:var(--texte-doux);font-size:.88rem;border-top:1px solid var(--bord);
  padding-top:14px;margin-top:18px}

.form-contact{margin:0 0 8px}
.form-ligne{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
.form-champ{margin:0 0 18px}
.form-champ label{display:block;margin:0 0 6px;font-weight:600;font-size:.92rem;color:var(--marine)}
.form-requis{color:var(--or-fonce)}
.form-option{font-weight:400;color:var(--gris);font-size:.85rem}
.form-aide{margin:-2px 0 8px;font-size:.87rem;color:var(--texte-doux);font-weight:400}
.form-contact input[type="text"],.form-contact input[type="email"],
.form-contact input[type="tel"],.form-contact select,.form-contact textarea{
  width:100%;padding:11px 13px;border:1px solid var(--bord);border-radius:6px;
  background:#fff;color:var(--texte);font-size:.97rem;line-height:1.45;
  transition:border-color .15s,box-shadow .15s}
.form-contact textarea{resize:vertical;min-height:130px}
.form-contact input:focus,.form-contact select:focus,.form-contact textarea:focus{
  outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(0,85,90,.13)}
.form-contact input[aria-invalid="true"],.form-contact select[aria-invalid="true"],
.form-contact textarea[aria-invalid="true"]{border-color:#b3261e;background:#fffafa}

.form-consentement label{display:flex;gap:10px;align-items:flex-start;
  font-weight:400;font-size:.92rem;color:var(--texte);cursor:pointer}
.form-consentement input{flex:0 0 auto;width:17px;height:17px;margin-top:2px;accent-color:var(--teal)}

.form-erreur{display:block;margin-top:6px;font-size:.86rem;color:#b3261e;font-weight:500}
.form-erreur--global{margin:0 0 18px;padding:12px 15px;border-radius:6px;
  border:1px solid #f0c4c0;background:#fdf3f2}

.form-bouton{display:inline-block;padding:13px 30px;border:0;border-radius:6px;
  background:var(--or);color:#fff;font-size:1rem;font-weight:700;cursor:pointer;
  text-decoration:none;transition:background .15s}
.form-bouton:hover,.form-bouton:focus-visible{background:var(--or-fonce);color:#fff}

.form-rgpd{margin:18px 0 0;font-size:.83rem;line-height:1.6;color:var(--texte-doux)}
.form-rgpd a{color:var(--marine)}

.form-ok,.form-echec{padding:22px 24px;border-radius:8px;margin:0 0 20px}
.form-ok{border:1px solid #bcd9cf;background:#f2f9f6}
.form-echec{border:1px solid #f0c4c0;background:#fdf3f2}
.form-ok h2,.form-echec h2{margin:0 0 10px;font-size:1.25rem}
.form-ok p:last-child,.form-echec p:last-child{margin-bottom:0}

.form-piege{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

@media (max-width:880px){
  .contact-colonnes{grid-template-columns:1fr;gap:30px}
  .form-ligne{grid-template-columns:1fr}
}

/* ------------------------------------------------------------
   Pied de page (ex-styles inline de bas.php)
   ------------------------------------------------------------ */

/* FAQ — affichée sur l'accueil et la page contact */
.pied-faq{background:#f5f5f5;padding:56px 0 64px;color:#333;line-height:1.6}
.pied-faq-inner{max-width:1140px;margin:0 auto;padding:0 24px}
.pied-faq-titre{text-align:center;font-size:1.6rem;font-weight:900;margin:0 0 40px}
.pied-faq-grille{display:grid;grid-template-columns:1fr 1fr;gap:40px 48px;max-width:960px;margin:0 auto}
.pied-faq-grille h4{font-size:1.05rem;font-weight:800;margin:0 0 12px}
.pied-faq-grille p{color:#333;font-size:.95rem;margin:0}
.pied-faq-cta{text-align:center;margin-top:48px;font-weight:900;font-size:1.35rem}
.pied-faq-cta a{display:inline-block;margin-top:12px;padding:12px 36px;background:#00555a;color:#fff;font-size:1rem;font-weight:700;border-radius:6px;text-decoration:none}
.pied-faq-cta a:hover{text-decoration:none;opacity:.92}

/* Partenaires */
.pied-partenaires{background:#fff;padding:48px 20px 40px;text-align:center}
.pied-partenaires-inner{max-width:1100px;margin:0 auto}
.pied-partenaires-titre{font-size:12px;font-weight:700;letter-spacing:2px;color:#7a8699;text-transform:uppercase;margin-bottom:30px}
.pied-partenaires-grille{display:grid;grid-template-columns:repeat(4,1fr);gap:36px 32px;align-items:start}
.pied-partenaires-grille>a{text-align:center;text-decoration:none}
.pied-partenaires-grille>a:hover{text-decoration:none}
.pied-partenaire-logo{height:60px;display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.pied-partenaire-logo img{max-height:60px;max-width:100%;object-fit:contain;display:block}
.pied-partenaire-logo img.pied-partenaire-logo--petit{max-height:40px}
.pied-partenaire-nom{font-size:14px;font-weight:600;color:#1a2744;margin-bottom:9px}
.pied-partenaire-texte{font-size:12px;color:#7a8699;line-height:1.6}

/* Coordonnées et mentions */
.pied{background:#fff;border-top:2px solid #e0e0e0;padding:44px 0 0;line-height:1.6}
.pied-inner{max-width:1140px;margin:0 auto;padding:0 24px}
.pied-logo{margin:0 0 36px}
.pied-logo img{height:52px;width:auto;display:block}
.pied-cols{display:grid;grid-template-columns:repeat(5,1fr);gap:36px 32px}
.pied-col-titre{font-size:1rem;font-weight:700;margin-bottom:20px;color:#222}
.pied-cols a{color:#555;font-size:.9rem;text-decoration:none}
.pied-cols a:hover{text-decoration:underline}
.pied-cols li{margin:0 0 12px;line-height:1.6}
.pied-cols li span{color:#555;font-size:.9rem}
.pied-reglementaire{color:#555;font-size:.82rem;line-height:1.7;margin:0}
.pied-cols a.pied-cta{display:inline-block;padding:10px 28px;background:#cf9854;color:#fff;font-size:.95rem;font-weight:700;border-radius:6px;text-decoration:none}
.pied-cols a.pied-cta:hover{text-decoration:none;opacity:.92}
.pied-copyright{margin-top:52px;border-top:1px solid #e0e0e0;padding:26px 24px;text-align:center;font-size:.82rem;color:#555}
.pied-copyright p{margin:0}

/* Adaptation mobile (les styles inline d'origine n'en avaient pas) */
@media (max-width:880px){
  .pied-faq-grille{grid-template-columns:1fr}
  .pied-partenaires-grille{grid-template-columns:1fr 1fr}
  .pied-cols{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  .pied-partenaires-grille{grid-template-columns:1fr}
  .pied-cols{grid-template-columns:1fr}
}

/* ---- Le cabinet : la personne derrière ---- */
.cabinet{max-width:840px;margin:0 auto;padding:54px var(--gouttiere)}
.cabinet-corps{display:grid;grid-template-columns:180px minmax(0,1fr);gap:32px;align-items:start}
.cabinet-corps--sans-photo{display:block}
.cabinet-photo img{width:100%;border-radius:10px;display:block}
.cabinet-texte p{margin:0 0 16px}
.cabinet-texte p:last-child{margin-bottom:0}
@media (max-width:640px){.cabinet-corps{grid-template-columns:1fr}}

/* ---- Le livre : teaser d'accueil ---- */
.livre-accueil{background:var(--fond-doux);padding:54px var(--gouttiere)}
.livre-accueil-inner{max-width:840px;margin:0 auto;display:grid;
  grid-template-columns:220px minmax(0,1fr);gap:40px;align-items:center}
.livre-accueil-inner .livre-couv{font-size:12px;width:220px}
.livre-accueil-texte h2{margin-top:0}
.livre-accueil-texte .bouton{margin-top:8px}
@media (max-width:700px){
  .livre-accueil-inner{grid-template-columns:1fr;gap:26px}
  .livre-accueil-inner .livre-couv{margin:0 auto}
}

/* ------------------------------------------------------------
   Bandeau de consentement (mesure d'audience)
   ------------------------------------------------------------ */
.consentement{position:fixed;left:16px;right:16px;bottom:16px;z-index:1000;
  max-width:520px;margin:0 auto;background:var(--marine);color:#fff;
  border-radius:10px;padding:18px 20px;box-shadow:0 12px 34px rgba(0,0,0,.30)}
.consentement-texte{margin:0 0 14px;font-size:.92rem;line-height:1.55}
.consentement-texte a{color:#e8d5b5;text-decoration:underline}
.consentement-boutons{display:flex;gap:10px;flex-wrap:wrap}
.consentement-btn{flex:1 1 auto;padding:10px 18px;border-radius:6px;border:0;
  font:inherit;font-size:.92rem;font-weight:700;cursor:pointer}
.consentement-btn--ok{background:var(--or);color:#fff}
.consentement-btn--ok:hover{background:var(--or-fonce)}
.consentement-btn--non{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.45)}
.consentement-btn--non:hover{border-color:#fff}

/* ------------------------------------------------------------
   Signature de l'auteur en fin d'article
   ------------------------------------------------------------ */
.signature{margin:44px 0 8px;padding:20px 24px;border-left:3px solid var(--or);
  background:var(--fond-doux);border-radius:0 8px 8px 0}
.signature p{margin:0 0 6px}
.signature p:last-child{margin-bottom:0}
.signature-nom{font-size:1rem;color:var(--marine)}
.signature-bio{font-size:.9rem;line-height:1.6;color:var(--texte-doux)}
.signature-maj{font-size:.82rem;color:var(--gris)}

/* ------------------------------------------------------------
   FAQ de fin de page (fonction faq())
   ------------------------------------------------------------ */
.faq-page{margin:44px 0 8px;padding:28px 30px;background:var(--fond-doux);border-radius:10px}
.faq-page>h2{margin:0 0 20px;font-size:1.35rem}
.faq-item{padding:16px 0;border-top:1px solid var(--bord)}
.faq-item:first-of-type{border-top:0;padding-top:0}
.faq-item h3{margin:0 0 8px;font-size:1.02rem;color:var(--marine)}
.faq-item p{margin:0;line-height:1.65;color:var(--texte-doux)}
@media (max-width:640px){.faq-page{padding:22px 20px}}

/* ------------------------------------------------------------
   Ligne de sources en fin d'article. Discrète, mais lisible :
   c'est ce qui permet au lecteur — et aux moteurs — de vérifier
   un chiffre ou une référence légale.
   ------------------------------------------------------------ */
.sources{margin:28px 0 0;padding-top:12px;border-top:1px solid var(--bord);
  font-size:.82rem;line-height:1.6;color:var(--gris)}
