/*
Theme Name: Perraudeau Courtage
Theme URI: https://perraudeau-courtage.fr
Author: Perraudeau Courtage
Description: Thème enfant de Twenty Twenty-Five pour Perraudeau Courtage (courtier en assurance de personnes). Source : dépôt Perraudeau_Courtage, dossier site/theme/perraudeau.
Template: twentytwentyfive
Version: 1.0.0
Requires at least: 6.6
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: perraudeau
*/

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
a { text-underline-offset: .18em; text-decoration-thickness: 1px; }
::selection { background: var(--wp--preset--color--ambre); color: var(--wp--preset--color--encre); }
.screen-reader-text:focus { background: #fff; padding: 1rem; z-index: 100000; }
:focus-visible { outline: 3px solid var(--wp--preset--color--ambre); outline-offset: 2px; }

/* ---------- En-tête ---------- */
.pc-header { position: sticky; top: 0; z-index: 50; background: #fff; border-bottom: 1px solid var(--wp--preset--color--ligne); }
.admin-bar .pc-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .pc-header { top: 46px; } }
.pc-logo a { display: flex; align-items: center; gap: .65rem; text-decoration: none; color: var(--wp--preset--color--marine); }
.pc-logo svg { width: 42px; height: 42px; flex: none; }
.pc-logo .pc-logo-txt { display: flex; flex-direction: column; line-height: 1; }
.pc-logo .pc-logo-nom { font-family: var(--wp--preset--font-family--fraunces); font-weight: 600; font-size: 1.32rem; letter-spacing: -.01em; }
.pc-logo .pc-logo-sous { font-size: .64rem; letter-spacing: .32em; text-transform: uppercase; color: var(--wp--preset--color--sauge); margin-top: .3rem; font-weight: 700; }
.pc-header .wp-block-navigation { font-size: .95rem; font-weight: 600; }
.pc-header .wp-block-navigation a:hover { color: var(--wp--preset--color--sauge); }
.pc-header .wp-block-navigation .wp-block-navigation-item.pc-nav-contact > a { background: var(--wp--preset--color--marine); color: #fff; padding: .6rem 1.1rem; border-radius: 10px; }
.pc-header .wp-block-navigation .wp-block-navigation-item.pc-nav-contact > a:hover { background: var(--wp--preset--color--sauge); color: #fff; }
.pc-header .wp-block-navigation__submenu-container { border-radius: 12px; border: 1px solid var(--wp--preset--color--ligne) !important; box-shadow: 0 18px 40px rgba(14,42,71,.12); padding: .5rem !important; min-width: 260px !important; }
.pc-header .wp-block-navigation__submenu-container a { padding: .55rem .8rem !important; border-radius: 8px; }
.pc-header .wp-block-navigation__submenu-container a:hover { background: var(--wp--preset--color--creme); }

/* ---------- Sections ---------- */
.pc-section { padding-block: clamp(3.5rem, 7vw, 6.5rem); }
.pc-eyebrow { font-size: .78rem !important; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--wp--preset--color--sauge); margin-bottom: .6rem !important; }
.pc-fond-marine .pc-eyebrow, .pc-hero .pc-eyebrow { color: var(--wp--preset--color--ambre); }
.pc-lead { font-size: clamp(1.05rem, 1.5vw, 1.2rem); color: var(--wp--preset--color--gris); max-width: 46rem; }
.pc-fond-marine .pc-lead, .pc-hero .pc-lead { color: #C9D6E3; }
.pc-centre { text-align: center; }
.pc-centre .pc-lead { margin-inline: auto; }
.pc-fond-creme { background: var(--wp--preset--color--creme); }
.pc-fond-marine { background: var(--wp--preset--color--marine); color: #fff; }
.pc-fond-marine h1, .pc-fond-marine h2, .pc-fond-marine h3 { color: #fff; }

/* Hero */
.pc-hero { position: relative; overflow: hidden; background: radial-gradient(1200px 600px at 85% -10%, #1C4A73 0%, rgba(28,74,115,0) 60%), linear-gradient(160deg, #0E2A47 0%, #0B2139 100%); color: #fff; }
.pc-hero::after { content: ""; position: absolute; right: -120px; bottom: -160px; width: 520px; height: 520px; border-radius: 50%; border: 70px solid rgba(233,162,59,.08); pointer-events: none; }
.pc-hero h1 { color: #fff; }
.pc-hero h1 em { font-style: normal; color: var(--wp--preset--color--ambre); }
.pc-hero .wp-block-columns { position: relative; z-index: 1; }
.pc-hero-photo img { border-radius: 22px; box-shadow: 0 30px 70px rgba(0,0,0,.35); aspect-ratio: 4/5; object-fit: cover; object-position: 50% 20%; }
.pc-hero-page { padding-block: clamp(3rem, 6vw, 5.5rem); }
.pc-points { list-style: none; padding: 0; margin: 1.6rem 0 0; display: flex; flex-wrap: wrap; gap: .6rem 1.4rem; font-size: .95rem; color: #DCE6F0; }
.pc-points li { display: flex; align-items: center; gap: .45rem; }
.pc-points li::before { content: ""; width: 18px; height: 18px; flex: none; border-radius: 50%; background: var(--wp--preset--color--sauge-clair) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E2A47' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7'/%3E%3C/svg%3E") center/12px no-repeat; }
.pc-fil { font-size: .85rem; color: #A9BCCF; margin-bottom: 1rem !important; }
.pc-fil a { color: #A9BCCF; }

/* Boutons */
.wp-block-button .wp-block-button__link { border-radius: 10px; font-weight: 700; padding: .9rem 1.5rem; transition: transform .15s ease, background-color .15s ease, box-shadow .15s ease; }
.wp-block-button .wp-block-button__link:hover { transform: translateY(-1px); }
.pc-btn-ambre .wp-block-button__link { background: var(--wp--preset--color--ambre); color: var(--wp--preset--color--encre); box-shadow: 0 10px 24px rgba(233,162,59,.28); }
.pc-btn-ambre .wp-block-button__link:hover { background: #F2B65A; }
.pc-btn-contour .wp-block-button__link { background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,.45); }
.pc-btn-contour .wp-block-button__link:hover { border-color: #fff; }
.pc-btn-marine .wp-block-button__link { background: var(--wp--preset--color--marine); color: #fff; }
.pc-btn-marine .wp-block-button__link:hover { background: var(--wp--preset--color--sauge); }

/* Cartes */
.pc-cartes { gap: 1.25rem !important; }
.pc-carte { background: #fff; border: 1px solid var(--wp--preset--color--ligne); border-radius: 18px; padding: 1.8rem !important; height: 100%; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; position: relative; }
.pc-carte:hover { transform: translateY(-3px); box-shadow: 0 20px 44px rgba(14,42,71,.10); border-color: #CFD8E0; }
.pc-carte h3 { font-size: 1.22rem !important; margin: .9rem 0 .5rem !important; }
.pc-carte p { color: var(--wp--preset--color--gris); font-size: .97rem; }
.pc-carte .pc-lien { font-weight: 700; color: var(--wp--preset--color--marine); text-decoration: none; }
.pc-carte .pc-lien::after { content: " →"; transition: margin .15s; }
.pc-carte:hover .pc-lien::after { margin-left: .25rem; }
.pc-carte a.pc-lien::before { content: ""; position: absolute; inset: 0; border-radius: 18px; }
.pc-ico { width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; background: var(--wp--preset--color--creme); color: var(--wp--preset--color--sauge); }
.pc-ico svg { width: 24px; height: 24px; }
.pc-fond-creme .pc-carte { border-color: #E8E3D7; }
.pc-wrap-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }

/* Étapes */
.pc-etapes { counter-reset: etape; display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.pc-etape { counter-increment: etape; padding: 1.6rem; border-radius: 18px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); }
.pc-etape::before { content: counter(etape, decimal-leading-zero); display: block; font-family: var(--wp--preset--font-family--fraunces); font-size: 2rem; color: var(--wp--preset--color--ambre); margin-bottom: .6rem; }
.pc-etape h3 { font-size: 1.15rem !important; margin: 0 0 .4rem !important; color: #fff; }
.pc-etape p { color: #C9D6E3; font-size: .95rem; margin: 0; }

/* Listes à coches */
.pc-coches { list-style: none; padding-left: 0 !important; }
.pc-coches li { position: relative; padding-left: 2rem; margin-bottom: .7rem; }
.pc-coches li::before { content: ""; position: absolute; left: 0; top: .2em; width: 20px; height: 20px; border-radius: 50%; background: var(--wp--preset--color--sauge) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7'/%3E%3C/svg%3E") center/12px no-repeat; }

/* Encadrés */
.pc-encadre { border-radius: 18px; padding: 1.8rem !important; background: #fff; border: 1px solid var(--wp--preset--color--ligne); }
.pc-encadre-ambre { background: #FFF7E8; border-color: #F3DDB3; }
.pc-encadre-sauge { background: #EEF6F3; border-color: #CFE5DC; }
.pc-encadre h3 { margin-top: 0 !important; font-size: 1.2rem !important; }
.pc-chiffre { font-family: var(--wp--preset--font-family--fraunces); font-size: 2.4rem !important; line-height: 1; color: var(--wp--preset--color--marine); margin: 0 0 .4rem !important; }

/* Photo */
.pc-photo img { border-radius: 22px; box-shadow: 0 24px 60px rgba(14,42,71,.18); }
.pc-signature { font-family: var(--wp--preset--font-family--fraunces); font-size: 1.15rem; color: var(--wp--preset--color--marine); }

/* FAQ */
.pc-faq .wp-block-details { border-bottom: 1px solid var(--wp--preset--color--ligne); padding: 1.15rem 0; }
.pc-faq .wp-block-details summary { font-weight: 700; font-size: 1.06rem; cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 1rem; color: var(--wp--preset--color--marine); }
.pc-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.pc-faq .wp-block-details summary::after { content: "+"; font-size: 1.5rem; line-height: 1; color: var(--wp--preset--color--sauge); transition: transform .2s; }
.pc-faq .wp-block-details[open] summary::after { transform: rotate(45deg); }
.pc-faq .wp-block-details > :not(summary) { color: var(--wp--preset--color--gris); margin-top: .7rem; }

/* Bandeau d'appel */
.pc-appel { border-radius: 26px; padding: clamp(2rem, 5vw, 3.5rem) !important; background: linear-gradient(135deg, #0E2A47 0%, #18496E 100%); color: #fff; position: relative; overflow: hidden; }
.pc-appel::after { content: ""; position: absolute; right: -60px; top: -60px; width: 260px; height: 260px; border-radius: 50%; background: rgba(233,162,59,.12); }
.pc-appel h2 { color: #fff; }
.pc-appel p { color: #C9D6E3; }
.pc-appel > * { position: relative; z-index: 1; }

/* Tableau */
.pc-tableau table { border-collapse: separate; border-spacing: 0; width: 100%; border: 1px solid var(--wp--preset--color--ligne); border-radius: 14px; overflow: hidden; font-size: .95rem; }
.pc-tableau th { background: var(--wp--preset--color--marine); color: #fff; text-align: left; font-weight: 700; }
.pc-tableau th, .pc-tableau td { padding: .85rem 1rem; border: 0; border-bottom: 1px solid var(--wp--preset--color--ligne); vertical-align: top; }
.pc-tableau tr:last-child td { border-bottom: 0; }
.pc-tableau tbody tr:nth-child(even) td { background: #FAF8F3; }
.wp-block-table.pc-tableau { overflow-x: auto; }

/* Pages légales / texte long */
.pc-texte { max-width: 50rem; }
.pc-texte h2 { font-size: 1.5rem !important; margin-top: 2.4rem !important; }
.pc-texte h3 { font-size: 1.15rem !important; margin-top: 1.6rem !important; }
.pc-texte p, .pc-texte li { color: #33475B; }
.pc-maj { font-size: .9rem; color: var(--wp--preset--color--gris); }

/* Contact */
.pc-coord p { margin: 0 0 .9rem; }
.pc-coord strong { display: block; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--wp--preset--color--sauge); }
.pc-coord a { color: var(--wp--preset--color--marine); font-weight: 700; text-decoration: none; }
.pc-form { background: #fff; border-radius: 22px; padding: clamp(1.4rem, 3vw, 2.4rem) !important; border: 1px solid var(--wp--preset--color--ligne); box-shadow: 0 24px 60px rgba(14,42,71,.08); }
.pc-form .ff-el-input--label label { font-weight: 700; color: var(--wp--preset--color--marine); font-size: .92rem; }
.pc-form .ff-el-form-control { border-radius: 10px !important; border: 1.5px solid #D8DEE4 !important; padding: .75rem .9rem !important; font-family: inherit; font-size: 1rem !important; }
.pc-form .ff-el-form-control:focus { border-color: var(--wp--preset--color--sauge) !important; box-shadow: 0 0 0 3px rgba(31,111,92,.15) !important; }
.pc-form .ff_list_inline .ff-el-form-check { margin-right: 1rem; }
.pc-form .ff-btn-submit { font-family: inherit; font-weight: 700 !important; padding: .95rem 1.6rem !important; }
.pc-form .ff-message-success { border-radius: 14px; border: 1px solid #CFE5DC; background: #EEF6F3; padding: 1.4rem; }

/* Blog */
.pc-blog-vide { padding: 2.5rem !important; border: 1.5px dashed #D5CFC1; border-radius: 18px; text-align: center; color: var(--wp--preset--color--gris); }
.wp-block-post-template.is-layout-grid { gap: 1.5rem; }
.pc-article-carte { background: #fff; border: 1px solid var(--wp--preset--color--ligne); border-radius: 18px; overflow: hidden; height: 100%; }
.pc-article-carte .wp-block-post-featured-image img { aspect-ratio: 16/9; object-fit: cover; }

/* ---------- Pied de page ---------- */
.pc-footer { background: #0A1E33; color: #AFC0D1; font-size: .94rem; }
.pc-footer a { color: #DCE6F0; text-decoration: none; }
.pc-footer a:hover { color: var(--wp--preset--color--ambre); }
.pc-footer h4 { color: #fff; font-family: var(--wp--preset--font-family--manrope); font-size: .8rem !important; letter-spacing: .16em; text-transform: uppercase; margin-bottom: 1rem !important; }
.pc-footer ul { list-style: none; padding: 0; margin: 0; }
.pc-footer li { margin-bottom: .55rem; }
.pc-footer .pc-logo a { color: #fff; }
.pc-footer .pc-logo .pc-logo-sous { color: var(--wp--preset--color--sauge-clair); }
.pc-footer-legal { border-top: 1px solid rgba(255,255,255,.1); font-size: .82rem; color: #8399AE; }
.pc-footer-legal p { color: #8399AE; }

/* ---------- Mobile ---------- */
@media (max-width: 781px) {
  .pc-hero-photo { max-width: 340px; margin-inline: auto; }
  .pc-hero::after { display: none; }
  .pc-hero .wp-block-buttons { flex-direction: column; align-items: stretch; }
  .pc-hero .wp-block-button { width: 100%; }
  .pc-hero .wp-block-button__link { width: 100%; text-align: center; }
  .pc-footer .wp-block-columns { gap: 2rem; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }

/* Étapes sur fond clair */
.pc-etapes-clair .pc-etape { background: var(--wp--preset--color--creme); border-color: #E8E3D7; }
.pc-etapes-clair .pc-etape h3 { color: var(--wp--preset--color--marine); }
.pc-etapes-clair .pc-etape p { color: var(--wp--preset--color--gris); }
.pc-texte-page { padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.pc-texte-page h2 { font-size: 1.45rem !important; margin-top: 2.2rem !important; }
.pc-texte-page li, .pc-texte-page p { color: #33475B; }
.pc-encadre .pc-ico { margin-bottom: .6rem; }
.pc-carte, .pc-etape, .pc-encadre { box-sizing: border-box; }
.pc-grille-3 { grid-template-columns: repeat(3, 1fr); }
.pc-grille-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1080px) { .pc-grille-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 900px) { .pc-grille-3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .pc-grille-3, .pc-grille-4 { grid-template-columns: 1fr; } }
.wp-block-post-content > .pc-section, .wp-block-post-content > .pc-hero, main > .pc-hero, main > .pc-section { margin-block: 0 !important; }
/* Bandeau de chiffres clés (accueil, approche) */
.pc-chiffres { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; text-align: center; }
.pc-chiffre strong { display: block; font-family: var(--wp--preset--font-family--fraunces); font-size: clamp(1.8rem, 3vw, 2.4rem); font-weight: 600; color: var(--wp--preset--color--marine); line-height: 1.1; }
.pc-chiffre span { display: block; margin-top: .35rem; font-size: .95rem; color: var(--wp--preset--color--gris); }
@media (max-width: 900px) { .pc-chiffres { grid-template-columns: repeat(2, 1fr); row-gap: 2rem; } }
/* Citation en exergue (approche) */
.pc-citation { margin: 1.5rem 0 0; padding: 2rem 2.2rem; border-left: 4px solid var(--wp--preset--color--ambre); background: var(--wp--preset--color--creme); border-radius: 0 18px 18px 0; }
.pc-citation p { font-family: var(--wp--preset--font-family--fraunces); font-size: clamp(1.25rem, 2.2vw, 1.6rem); line-height: 1.4; color: var(--wp--preset--color--marine); margin: 0; }
.pc-citation cite { display: block; margin-top: 1rem; font-style: normal; font-size: .9rem; font-weight: 600; color: var(--wp--preset--color--sauge); }
/* Menu plus serré sur les écrans moyens (8 entrées) */
@media (min-width: 600px) and (max-width: 1240px) { .pc-header .wp-block-navigation { font-size: .88rem; } .pc-header .wp-block-navigation__container { gap: .95rem !important; } .pc-header .pc-nav-contact > a { padding: .5rem .8rem !important; } }
/* Contact : encadré rendez-vous sous les coordonnées */
.pc-coord + .pc-encadre { margin-top: 2rem; }
/* Contact : petite photo ronde dans l'encadré rendez-vous */
.pc-photo-ronde { margin: 0 0 1rem !important; }
.pc-photo-ronde img { width: 88px !important; height: 88px; border-radius: 50%; object-fit: cover; box-shadow: 0 10px 30px rgba(14,42,71,.15); }

/* ---------- Menu mobile (sous 1060 px) ---------- */
.pc-mnav { display: none; }
@media (max-width: 1060px) {
  .pc-header .pc-nav-bureau { display: none !important; }
  .pc-mnav { display: block; }
  .pc-header { padding-block: .7rem !important; }
  .pc-header .pc-logo svg { width: 38px; height: 38px; }
  .pc-header .pc-logo .pc-logo-nom { font-size: 1.18rem; }
  .pc-header .pc-logo .pc-logo-sous { font-size: .58rem; }
}
.pc-mnav-btn { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 5px; width: 46px; height: 46px; padding: 0; border: 1px solid var(--wp--preset--color--ligne); border-radius: 12px; background: #fff; cursor: pointer; }
.pc-mnav-btn span { display: block; width: 20px; height: 2px; border-radius: 2px; background: var(--wp--preset--color--marine); transition: transform .25s, opacity .2s; }
.pc-mnav-btn[aria-expanded="true"] { background: var(--wp--preset--color--creme); }
.pc-mnav-btn[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.pc-mnav-btn[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.pc-mnav-btn[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.pc-mnav-panneau { position: fixed; left: 0; right: 0; bottom: 0; top: 70px; overflow-y: auto; background: #fff; padding: .5rem 1.25rem 2rem; border-top: 1px solid var(--wp--preset--color--ligne); animation: pc-mnav-entree .2s ease-out; }
.pc-mnav-panneau[hidden] { display: none; }
@keyframes pc-mnav-entree { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
html.pc-menu-ouvert, html.pc-menu-ouvert body { overflow: hidden; }
.pc-mnav-panneau summary, .pc-mnav-lien { display: flex; justify-content: space-between; align-items: center; padding: 1.05rem .25rem; border-bottom: 1px solid var(--wp--preset--color--ligne); font-size: 1.12rem; font-weight: 700; color: var(--wp--preset--color--marine); text-decoration: none; cursor: pointer; list-style: none; }
.pc-mnav-panneau summary::-webkit-details-marker { display: none; }
.pc-mnav-panneau summary::after { content: ""; width: 9px; height: 9px; border-right: 2px solid var(--wp--preset--color--sauge); border-bottom: 2px solid var(--wp--preset--color--sauge); transform: rotate(45deg) translateY(-3px); transition: transform .2s; }
.pc-mnav-panneau details[open] summary::after { transform: rotate(-135deg) translateY(-3px); }
.pc-mnav-lien::after { content: "→"; font-weight: 500; color: var(--wp--preset--color--sauge); }
.pc-mnav-panneau ul { list-style: none; margin: .6rem 0 .9rem; padding: .4rem; background: var(--wp--preset--color--creme); border-radius: 14px; }
.pc-mnav-panneau li a { display: block; padding: .8rem .9rem; border-radius: 10px; font-size: 1rem; font-weight: 600; color: var(--wp--preset--color--marine); text-decoration: none; }
.pc-mnav-panneau li a:active, .pc-mnav-panneau li a:hover { background: #fff; color: var(--wp--preset--color--sauge); }
.pc-mnav-bas { margin-top: 1.6rem; text-align: center; }
.pc-mnav-contact { display: block; padding: 1rem; border-radius: 12px; background: var(--wp--preset--color--marine); color: #fff !important; font-weight: 700; font-size: 1.05rem; text-decoration: none; }
.pc-mnav-bas p { margin: .7rem 0 0; font-size: .9rem; color: var(--wp--preset--color--gris); }

/* ---------- Blog : cartes d'articles (toute la carte est cliquable) ---------- */
.pc-article-carte { position: relative; display: flex; flex-direction: column; box-shadow: 0 2px 10px rgba(14,42,71,.04); transition: transform .2s, box-shadow .2s, border-color .2s; }
.pc-article-carte:hover { transform: translateY(-4px); box-shadow: 0 22px 50px rgba(14,42,71,.12); border-color: #D5CFC1; }
.pc-article-carte::before { content: ""; display: block; height: 5px; background: linear-gradient(90deg, var(--wp--preset--color--marine), var(--wp--preset--color--sauge)); }
.pc-article-corps { flex: 1; display: flex; flex-direction: column; gap: .8rem; }
.pc-article-carte .wp-block-post-terms { position: relative; z-index: 1; margin: 0; }
.pc-article-carte .wp-block-post-terms a { display: inline-block; padding: .3rem .7rem; border-radius: 999px; background: #EAF3EF; color: var(--wp--preset--color--sauge); font-size: .74rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; }
.pc-article-carte .wp-block-post-terms a:hover { background: var(--wp--preset--color--sauge); color: #fff; }
.pc-article-carte .wp-block-post-title { margin: 0; font-size: 1.28rem !important; line-height: 1.3; }
.pc-article-carte .wp-block-post-title a { color: var(--wp--preset--color--marine); text-decoration: none; }
.pc-article-carte .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; }
.pc-article-carte:hover .wp-block-post-title a { color: var(--wp--preset--color--sauge); }
.pc-article-carte .wp-block-post-excerpt { margin: 0; }
.pc-article-carte .wp-block-post-excerpt__excerpt { margin: 0; font-size: .97rem; line-height: 1.6; color: var(--wp--preset--color--gris); }
.pc-article-pied { margin-top: auto !important; padding-top: 1rem; border-top: 1px solid var(--wp--preset--color--ligne); display: flex; justify-content: space-between; align-items: center; font-size: .85rem; }
.pc-article-pied .wp-block-post-date { color: var(--wp--preset--color--gris); margin: 0; }
.pc-article-pied .pc-article-lire { margin: 0; font-weight: 700; color: var(--wp--preset--color--sauge); }
.pc-article-carte:hover .pc-article-lire { color: var(--wp--preset--color--marine); }
@media (max-width: 1000px) { .wp-block-post-template.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 640px) { .wp-block-post-template.is-layout-grid { grid-template-columns: 1fr !important; } }
.pc-mnav-panneau summary:focus-visible, .pc-mnav-lien:focus-visible { outline-offset: -3px; border-radius: 10px; }

/* Simulateur d'assurance emprunteur (assets/simulateur.js) */
.pc-sim { background: #fff; border: 1px solid var(--wp--preset--color--ligne); border-radius: 18px; padding: 1.8rem; box-sizing: border-box; }
.pc-sim fieldset { border: 0; padding: 0; margin: 0 0 1.6rem; }
.pc-sim legend { font-family: var(--wp--preset--font-family--fraunces); font-size: 1.25rem; color: var(--wp--preset--color--marine); margin-bottom: .8rem; }
.pc-sim-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; align-items: end; }
.pc-sim label { display: flex; flex-direction: column; gap: .35rem; font-size: .95rem; font-weight: 600; color: var(--wp--preset--color--encre); }
.pc-sim input:not([type="radio"]):not([type="checkbox"]), .pc-sim select { font: inherit; font-weight: 400; padding: .7rem .8rem; border: 1px solid var(--wp--preset--color--ligne); border-radius: 10px; background: #fff; }
.pc-sim-choix { display: flex; gap: 1.2rem; align-items: center; font-weight: 600; flex-wrap: wrap; }
.pc-sim-choix label { flex-direction: row; align-items: center; font-weight: 400; }
.pc-sim-piege { position: absolute !important; left: -9999px; }
.pc-sim-bouton { font: inherit; font-weight: 700; border: 0; border-radius: 999px; padding: .95rem 1.8rem; cursor: pointer; background: var(--wp--preset--color--ambre); color: var(--wp--preset--color--encre); box-shadow: 0 10px 24px rgba(233,162,59,.28); }
.pc-sim-bouton:disabled { opacity: .6; cursor: wait; }
.pc-sim-titre { font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: .8rem; color: var(--wp--preset--color--sauge); margin: 0 0 .4rem; }
.pc-sim-ecran h2 { font-family: var(--wp--preset--font-family--fraunces); font-size: clamp(1.6rem, 4vw, 2.3rem); line-height: 1.2; color: var(--wp--preset--color--marine); margin: 0 0 .5rem; }
.pc-sim-eco { color: #1E7F4F; white-space: nowrap; background: linear-gradient(transparent 62%, rgba(233,162,59,.35) 62%); }
.pc-sim-sous { color: var(--wp--preset--color--gris); margin: 0 0 1.6rem; }
.pc-sim-barres { display: grid; gap: 1rem; margin: 0 0 1.8rem; }
.pc-sim-barre { display: grid; grid-template-columns: 1fr; gap: .3rem; }
.pc-sim-barre-tete { display: flex; justify-content: space-between; align-items: baseline; gap: .8rem; flex-wrap: wrap; font-weight: 600; font-size: .9rem; }
.pc-sim-barre-tete b { font-size: 1.05rem; color: var(--wp--preset--color--marine); white-space: nowrap; }
.pc-sim-barre-nous .pc-sim-barre-tete b { color: #1E7F4F; }
.pc-sim-barre-val { display: block; height: 1.4rem; border-radius: 8px; transform-origin: left; transform: scaleX(0); transition: transform .9s cubic-bezier(.2,.8,.2,1); }
.pc-sim-barre-ref .pc-sim-barre-val { background: #9AA5B1; }
.pc-sim-barre-nous .pc-sim-barre-val { background: linear-gradient(90deg, #1E7F4F, #2FA36B); color: #fff; transition-delay: .35s; }
.pc-sim-anime .pc-sim-barre-val { transform: scaleX(1); }
.pc-sim-barre-total { font-size: .85rem; color: var(--wp--preset--color--gris); }
.pc-sim-etapes { counter-reset: e; list-style: none; padding: 0; margin: 0 0 1.6rem; display: grid; gap: .7rem; }
.pc-sim-etapes li { counter-increment: e; position: relative; padding-left: 2.6rem; line-height: 1.45; }
.pc-sim-etapes li::before { content: counter(e); position: absolute; left: 0; top: -.1rem; width: 1.8rem; height: 1.8rem; border-radius: 50%; background: var(--wp--preset--color--ambre); color: var(--wp--preset--color--encre); font-weight: 700; display: grid; place-items: center; }
.pc-sim-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.2rem; }
.pc-sim-actions span { font-size: .9rem; color: var(--wp--preset--color--gris); }
.pc-sim-note { font-size: .8rem; color: var(--wp--preset--color--gris); margin-top: 1.4rem; }
.pc-sim-tel { display: inline-block; white-space: nowrap; font-weight: 700; border-radius: 999px; padding: .95rem 1.8rem; background: var(--wp--preset--color--ambre); color: var(--wp--preset--color--encre) !important; text-decoration: none; box-shadow: 0 10px 24px rgba(233,162,59,.28); }
.pc-sim-erreur { color: #B42318; font-weight: 600; }
.pc-sim [hidden] { display: none !important; }
/* Simulateur arrêt de travail (assets/simulateur-arret.js) */
.pc-sim-perte { color: #B42318; white-space: nowrap; background: linear-gradient(transparent 62%, rgba(180,35,24,.15) 62%); }
.pc-sim-jauge { display: block; height: 1.4rem; border-radius: 8px; background: #E4E7EB; overflow: hidden; }
.pc-sim-arret .pc-sim-barre-val { height: 100%; border-radius: 8px; background: linear-gradient(90deg, #1D4E89, #3C7BC4); }
.pc-sim-manque { color: #B42318; font-weight: 700; }
.pc-sim-remarque { font-size: .88rem; background: #FFF6E5; border-left: 3px solid var(--wp--preset--color--ambre); padding: .6rem .8rem; border-radius: 6px; }
/* Simulateurs en 2 étapes (assets/simulateur-etapes.js) */
.pc-sim-progression { font-size: .8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--wp--preset--color--sauge); margin: 0 0 1rem; }
.pc-sim-intro { font-size: 1.05rem; margin: 0 0 1.2rem; }
.pc-sim-boutons { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.4rem; }
.pc-sim-retour { font: inherit; font-size: .9rem; background: none; border: 0; padding: 0; color: var(--wp--preset--color--gris); text-decoration: underline; cursor: pointer; }
.pc-sim-mention { font-size: .8rem; color: var(--wp--preset--color--gris); margin-top: 1rem; }
/* Simulateur mutuelle et prévoyance d'entreprise (assets/simulateur-ccn.js) */
.pc-sim-ccn { position: relative; }
.pc-sim-ccn-choisie { font-size: .8rem; font-weight: 700; color: #1E7F4F; }
.pc-sim-suggestions { list-style: none; margin: .3rem 0 0; padding: 0; border: 1px solid var(--wp--preset--color--ligne); border-radius: 10px; max-height: 18rem; overflow-y: auto; background: #fff; }
.pc-sim-suggestions button { display: block; width: 100%; text-align: left; font: inherit; font-size: .9rem; padding: .6rem .8rem; background: none; border: 0; border-bottom: 1px solid var(--wp--preset--color--ligne); cursor: pointer; }
.pc-sim-suggestions button:hover { background: #F4F6F8; }
.pc-sim-suggestions small { color: var(--wp--preset--color--gris); white-space: nowrap; }
.pc-sim-siret { margin-top: 1rem; font-size: .9rem; }
.pc-sim-siret summary { cursor: pointer; color: var(--wp--preset--color--marine); font-weight: 600; }
.pc-sim-siret .pc-sim-grille { margin-top: .8rem; }
.pc-sim-cout { color: #1D4E89; white-space: nowrap; }
.pc-sim-obligations { display: grid; gap: .8rem; margin: 0 0 1.4rem; }
.pc-sim-obligation { border: 1px solid var(--wp--preset--color--ligne); border-left: 4px solid var(--wp--preset--color--marine); border-radius: 10px; padding: .8rem 1rem; }
.pc-sim-obligation h3 { font-size: 1rem; margin: 0 0 .3rem; color: var(--wp--preset--color--marine); }
.pc-sim-obligation p { margin: 0; font-size: .92rem; }

/* Page /simulateurs/ et blocs « simulateur » des pages d'offre : cartes façon blog (carte entière cliquable) */
.pc-sim-cartes { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 1.5rem; }
.pc-sim-carte { position: relative; display: flex; flex-direction: column; gap: .7rem; background: #fff; border: 1px solid var(--wp--preset--color--ligne); border-radius: 18px; overflow: hidden; padding: 1.6rem 1.5rem 1.3rem; box-sizing: border-box; box-shadow: 0 2px 10px rgba(14,42,71,.04); transition: transform .2s, box-shadow .2s, border-color .2s; }
.pc-sim-carte::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 5px; background: linear-gradient(90deg, var(--wp--preset--color--marine), var(--wp--preset--color--sauge)); }
.pc-sim-carte:hover { transform: translateY(-4px); box-shadow: 0 22px 50px rgba(14,42,71,.12); border-color: #D5CFC1; }
.pc-sim-carte-tag { align-self: flex-start; padding: .3rem .7rem; border-radius: 999px; background: #EAF3EF; color: var(--wp--preset--color--sauge); font-size: .74rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.pc-sim-carte h3 { margin: 0; font-size: 1.28rem !important; line-height: 1.3; }
.pc-sim-carte h3 a { color: var(--wp--preset--color--marine); text-decoration: none; }
.pc-sim-carte h3 a::after { content: ""; position: absolute; inset: 0; }
.pc-sim-carte:hover h3 a { color: var(--wp--preset--color--sauge); }
.pc-sim-carte p { margin: 0; font-size: .97rem; line-height: 1.6; color: var(--wp--preset--color--gris); }
.pc-sim-carte-pied { margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--wp--preset--color--ligne); display: flex; justify-content: space-between; align-items: center; gap: .6rem; font-size: .85rem; color: var(--wp--preset--color--gris); }
.pc-sim-carte-publics { display: flex; flex-wrap: wrap; gap: .35rem; }
.pc-sim-carte-public { padding: .15rem .55rem; border-radius: 999px; background: var(--wp--preset--color--creme, #F6F3EC); font-size: .76rem; font-weight: 600; color: var(--wp--preset--color--marine); }
.pc-sim-carte-lancer { white-space: nowrap; font-weight: 700; color: var(--wp--preset--color--sauge); }
.pc-sim-carte:hover .pc-sim-carte-lancer { color: var(--wp--preset--color--marine); }
.pc-fond-creme .pc-sim-carte { border-color: #E8E3D7; }
.pc-sim-vers-page { margin-top: 1.6rem; font-weight: 600; }
.pc-sim-vers-page a { color: var(--wp--preset--color--marine); }
.pc-sim-carte-tete { display: flex; align-items: center; gap: .8rem; }
/* Simulateurs de besoins : priorité de chaque point */
.pc-sim-badge { display: inline-block; vertical-align: middle; margin-right: .4rem; padding: .15rem .55rem; border-radius: 999px; font-family: var(--wp--preset--font-family--manrope, inherit); font-size: .7rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; background: #E4E7EB; color: var(--wp--preset--color--encre); }
.pc-sim-priorite-1 { border-left-color: #B42318; }
.pc-sim-priorite-1 .pc-sim-badge { background: #FDECEA; color: #B42318; }
.pc-sim-priorite-2 { border-left-color: var(--wp--preset--color--ambre); }
.pc-sim-priorite-2 .pc-sim-badge { background: #FFF6E5; color: #8A5A12; }
.pc-sim-priorite-3 { border-left-color: #9AA5B1; }
.pc-sim-niveau-choisi .pc-sim-barre-tete span { color: var(--wp--preset--color--marine); font-weight: 800; }
.pc-sim-niveau-choisi .pc-sim-barre-val { background: linear-gradient(90deg, #1E7F4F, #2FA36B) !important; }
.pc-sim-periode { font-size: 1.05rem; margin: 1.4rem 0 .6rem; color: var(--wp--preset--color--sauge); text-transform: uppercase; letter-spacing: .05em; }
.pc-sim-prevoyance { border-left-color: #1E7F4F; margin: 0 0 1.6rem; }
.pc-sim-prevoyance h3 { color: #1E7F4F; }

/* Page /simulateurs/ : filtre par public sans JavaScript (boutons radio + :has) */
.pc-sim-filtre { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: 1.8rem; font-weight: 600; color: var(--wp--preset--color--marine); }
.pc-sim-filtre label { cursor: pointer; padding: .45rem 1rem; border: 1px solid var(--wp--preset--color--ligne); border-radius: 999px; background: #fff; font-weight: 600; transition: background .2s, color .2s; }
.pc-sim-filtre input { position: absolute; opacity: 0; pointer-events: none; }
.pc-sim-filtre label:has(input:checked) { background: var(--wp--preset--color--marine); border-color: var(--wp--preset--color--marine); color: #fff; }
.pc-sim-filtre label:has(input:focus-visible) { outline: 2px solid var(--wp--preset--color--sauge); outline-offset: 2px; }
.pc-section:has(input[value="particulier"]:checked) .pc-sim-carte:not([data-publics~="particulier"]),
.pc-section:has(input[value="professionnel"]:checked) .pc-sim-carte:not([data-publics~="professionnel"]),
.pc-section:has(input[value="entreprise"]:checked) .pc-sim-carte:not([data-publics~="entreprise"]) { display: none; }
/* Tableau de prix d'un simulateur (expatrié : 4 niveaux) */
.pc-sim-tableau { width: 100%; border-collapse: collapse; margin: .6rem 0 .9rem; font-size: .95rem; border: 0 !important; }
.pc-sim-tableau th, .pc-sim-tableau td { padding: .55rem .7rem; text-align: left; border: 0 !important; border-bottom: 1px solid var(--wp--preset--color--ligne) !important; }
.pc-sim-tableau th { font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; color: var(--wp--preset--color--gris); }
.pc-sim-tableau td:not(:first-child) { font-weight: 700; white-space: nowrap; }
.pc-sim-ligne-conseil td { background: #EAF3EF; }
.pc-sim-tableau small { font-weight: 400; color: var(--wp--preset--color--gris); }
/* Simulateur entreprise : résumé des obligations en une ligne chacune, détail replié */
.pc-sim-resume { list-style: none; margin: 1.2rem 0; padding: 0; display: grid; gap: .5rem; }
.pc-sim-resume li { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .8rem 1rem; border-radius: 12px; background: #fff; border: 1px solid var(--wp--preset--color--ligne); }
.pc-sim-resume li span { font-size: .8rem; font-weight: 700; padding: .2rem .7rem; border-radius: 999px; white-space: nowrap; }
.pc-sim-oui span { background: #EAF3EF; color: #1E7F4F; }
.pc-sim-conseil span { background: #FDF3E1; color: #9A6200; }
.pc-sim-detail { margin: 1rem 0 1.4rem; }
.pc-sim-detail summary { cursor: pointer; font-weight: 700; color: var(--wp--preset--color--sauge); }
.pc-sim-detail[open] summary { margin-bottom: 1rem; }
/* Expatrié : bloc CFE, besoins en plus petit sous le prix */
.pc-sim-cfe { border-left-color: #1D4E89; margin: 0 0 1.6rem; }
.pc-sim-intertitre { margin: 1.6rem 0 .8rem; font-size: 1.1rem !important; color: var(--wp--preset--color--marine); }
.pc-sim-petits .pc-sim-obligation { padding: .8rem 1rem; }
.pc-sim-petits .pc-sim-obligation h3 { font-size: .98rem !important; }
.pc-sim-petits .pc-sim-obligation p { font-size: .88rem; line-height: 1.5; }
