/* Recentrage 2026-10 : composants ajoutés au-dessus de styles.css (inchangé) */

.skip-link { position: absolute; left: -9999px; top: 0; z-index: 100; padding: 12px 18px; background: var(--ink); color: var(--white); }
.skip-link:focus { left: 12px; top: 12px; }

.section--paper { background: var(--paper); }

/* Accueil : premier écran sans grande image */
.hero2 {
  padding-block: clamp(44px, 7vw, 110px) clamp(56px, 7vw, 100px);
  background: radial-gradient(circle at 85% 10%, rgba(184, 139, 74, 0.18), transparent 34%), var(--black);
  color: var(--white);
}
.hero2__inner { max-width: 1080px; }
.hero2 h1 { font-family: var(--font-display); font-weight: 400; font-size: clamp(2.1rem, 5vw, 4.1rem); line-height: 1.08; letter-spacing: -0.01em; max-width: 18ch; }
.hero2__lead { margin-top: 30px; max-width: 62ch; font-size: clamp(1.02rem, 1.4vw, 1.2rem); line-height: 1.65; color: rgba(255, 253, 248, 0.86); }
.hero2__sub { margin-top: 14px; color: var(--gold-light); font-family: var(--font-display); font-size: 1.15rem; }
.hero2__actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 36px; }

.page-hero { max-width: 980px; }
.interior-hero:has(.page-hero) { padding-block: clamp(48px, 8vw, 120px); }
@media (max-width: 640px) { .hero2 .eyebrow { font-size: 0.62rem; letter-spacing: 0.14em; } .hero2 h1 { font-size: 1.95rem; } }
.page-hero h1 { font-family: var(--font-display); font-weight: 400; font-size: clamp(1.9rem, 4.2vw, 3.4rem); line-height: 1.1; }
.page-hero__lead { margin-top: 26px; max-width: 64ch; font-size: 1.08rem; line-height: 1.65; }
.interior-hero--dark .page-hero__lead { color: rgba(255, 253, 248, 0.82); }

.direct-line { display: flex; flex-wrap: wrap; gap: 8px 22px; align-items: baseline; margin-top: 26px; font-size: 0.95rem; }
.direct-line span { color: rgba(23, 22, 18, 0.62); }
.direct-line a { text-decoration: underline; text-underline-offset: 4px; }
.direct-line--light span { color: rgba(255, 253, 248, 0.6); }
.direct-line--light a { color: var(--white); }
.final-cta .direct-line { justify-content: center; }

.scope-note { margin-top: 26px; padding-left: 14px; border-left: 2px solid var(--gold); font-size: 0.92rem; line-height: 1.5; color: rgba(23, 22, 18, 0.75); max-width: 70ch; }
.scope-note--light { color: rgba(255, 253, 248, 0.78); }

/* Quatre situations */
.situation-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); }
.situation-card { display: flex; flex-direction: column; gap: 14px; padding: 30px 26px 34px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); color: inherit; transition: background 0.2s; }
.situation-card:last-child { border-right: 0; }
.situation-card:hover, .situation-card:focus-visible { background: var(--paper); }
.situation-card span { color: var(--gold-dark); font-size: 0.66rem; letter-spacing: 0.2em; }
.situation-card h3 { font-family: var(--font-display); font-weight: 400; font-size: 1.45rem; line-height: 1.2; }
.situation-card p { color: rgba(23, 22, 18, 0.72); line-height: 1.6; flex: 1; }
.situation-card em { font-style: normal; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.13em; text-transform: uppercase; color: var(--gold-dark); }

/* Étapes */
.steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border-top: 1px solid var(--line); counter-reset: none; }
.steps li { padding: 28px 24px; border-right: 1px solid var(--line); }
.steps li:last-child { border-right: 0; }
.steps span { color: var(--gold-dark); font-size: 0.66rem; letter-spacing: 0.2em; }
.steps h3 { margin-top: 14px; font-family: var(--font-display); font-weight: 400; font-size: 1.25rem; }
.steps p { margin-top: 10px; color: rgba(23, 22, 18, 0.72); line-height: 1.6; }

.fee-box { display: flex; justify-content: space-between; align-items: flex-end; gap: 30px; margin-top: 56px; padding: 34px; background: var(--white); border: 1px solid var(--line); }
.fee-box h3 { font-family: var(--font-display); font-weight: 400; font-size: 1.6rem; margin-bottom: 14px; }
.fee-box p + p { margin-top: 10px; }
.fee-box p { max-width: 70ch; line-height: 1.6; }
.fee-box .eyebrow { margin-bottom: 14px; }

/* Listes */
.check-list, .limit-list { list-style: none; margin: 0; padding: 0; }
.check-list li, .limit-list li { position: relative; padding: 14px 0 14px 28px; border-bottom: 1px solid var(--line); line-height: 1.6; }
.check-list li::before { content: ""; position: absolute; left: 0; top: 24px; width: 12px; height: 1px; background: var(--gold); }
.limit-list li::before { content: ""; position: absolute; left: 0; }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 7vw, 110px); }
.limits, .faq { display: grid; grid-template-columns: minmax(240px, 0.6fr) 1.4fr; gap: clamp(40px, 7vw, 110px); }
.limits h2, .faq h2, .two-col h2 { font-family: var(--font-display); font-weight: 400; font-size: clamp(1.6rem, 3vw, 2.4rem); line-height: 1.15; }

.faq details { border-bottom: 1px solid var(--line); padding: 18px 0; }
.faq summary { cursor: pointer; font-family: var(--font-display); font-size: 1.15rem; list-style-position: outside; }
.faq details p { margin-top: 12px; color: rgba(23, 22, 18, 0.75); line-height: 1.65; max-width: 70ch; }

.independence__grid--text { grid-template-columns: 1fr; max-width: 820px; }

.other-situations { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 20px; margin-top: 34px; font-size: 0.92rem; }
.other-situations span { color: rgba(23, 22, 18, 0.6); }
.other-situations a { text-decoration: underline; text-underline-offset: 4px; }

/* Contact */
.contact-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 10px 0 30px; }
.button--whatsapp { background: #1f6f4a; color: #fff; }
.button--whatsapp:hover { background: #185a3c; }
.form-hint, .form-paid, .form-privacy { grid-column: 1 / -1; margin: 0; font-size: 0.88rem; line-height: 1.55; color: rgba(23, 22, 18, 0.7); }
.form-paid { padding: 14px 16px; background: var(--paper); border-left: 2px solid var(--gold); color: var(--ink); }
.form-field small { font-weight: 400; color: rgba(23, 22, 18, 0.55); text-transform: none; letter-spacing: 0; }
.form-field [aria-invalid="true"] { border-color: #a3362a !important; }
.field-error { color: #a3362a; font-size: 0.82rem; }

.site-footer__top { grid-template-columns: 1.2fr 0.7fr 0.7fr; }

@media (max-width: 1100px) {
  .situation-grid, .steps { grid-template-columns: 1fr 1fr; }
  .situation-card:nth-child(2n), .steps li:nth-child(2n) { border-right: 0; }
}
@media (max-width: 820px) {
  .two-col, .limits, .faq { grid-template-columns: 1fr; }
  .fee-box { flex-direction: column; align-items: flex-start; padding: 26px 22px; }
  .site-footer__top { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .situation-grid, .steps { grid-template-columns: 1fr; }
  .situation-card, .steps li { border-right: 0; }
  .hero2__actions .button, .contact-actions .button { width: 100%; justify-content: space-between; }
}

/* ---- Sans filets horizontaux : macaron et losanges dorés à la place (demande du 2 octobre) ---- */
.site-header, .interior-hero, .interior-hero--dark, .mandate-grid, .mandate-card ul, .principle-list, .principle-list > div,
.portrait figcaption, .method-grid, .method-card, .situation-grid, .situation-card, .steps, .steps li,
.check-list li, .limit-list li, .faq details, .fee-box, .mandate-detail, .mandate-detail-grid, .one-off-card, .one-off-grid,
.contact-note, .site-footer__bottom, .text-link, .scope-note, .form-paid { border: 0 !important; }

/* Le surtitre est précédé du macaron au lieu d'un trait */
.eyebrow::before {
  width: 22px; height: 22px; flex: none; border-radius: 50%;
  background: url("../images/grand-sceau.png") center / cover no-repeat;
}

/* Listes : petit losange doré, comme les séparateurs du sceau */
.check-list li, .limit-list li { padding: 9px 0 9px 26px; }
.check-list li::before, .limit-list li::before {
  content: ""; position: absolute; left: 4px; top: 19px; width: 7px; height: 7px;
  background: var(--gold); transform: rotate(45deg);
}
.limit-list li::before { background: transparent; box-shadow: inset 0 0 0 1.5px var(--gold); }
.mandate-card li::before, .mandate-detail li::before { background: var(--gold) !important; transform: rotate(45deg); width: 6px !important; height: 6px !important; }

/* Situations et étapes : cartes claires espacées, sans traits */
.situation-grid, .steps { gap: 18px; }
.situation-card { background: var(--white); }
.situation-card:hover, .situation-card:focus-visible { background: var(--ivory); box-shadow: 0 0 0 1px var(--gold-light) inset; }
.section--paper .steps li { background: rgba(255, 253, 248, 0.6); }
.steps li > span, .situation-card > span, .method-card > span {
  display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%;
  box-shadow: inset 0 0 0 1px var(--gold); color: var(--gold-dark); font-size: 0.66rem; letter-spacing: 0.08em;
}
.method-grid { gap: 18px; }
.faq details { padding: 14px 0; }
.faq details + details { margin-top: 4px; }
.text-link { padding-bottom: 0; }
.scope-note { padding-left: 0; }
.form-paid { background: var(--ivory); }

/* Macaron au-dessus des appels finaux */
.final-cta__inner::before {
  content: ""; width: 64px; height: 64px; margin-bottom: 26px; border-radius: 50%;
  background: url("../images/grand-sceau.png") center / cover no-repeat;
}
.final-cta .eyebrow::before { display: none; }

@media (max-width: 640px) { .situation-grid, .steps, .method-grid { gap: 12px; } }

/* ---- Alignements (contrôle du 2 octobre) : tout le contenu part de la même marge gauche ---- */
.hero2__inner, .page-hero { max-width: none; }
.hero2 h1 { max-width: 20ch; }
.hero2__lead, .hero2__sub, .page-hero__lead, .scope-note { max-width: 64ch; }
.page-hero h1 { max-width: 24ch; }
.independence__grid--text { max-width: none; }
.independence__grid--text .independence__content { max-width: 760px; }
.shell.engagement { max-width: none; margin-inline: auto; }
.engagement > * { max-width: 880px; }
.engagement .seal--engagement { margin-left: 0; }
.engagement::before { display: none; }
@media (max-width: 1100px) { .feature-split__content { padding: 60px 26px; } }
@media (max-width: 820px) { .feature-split__content { padding: 56px 17px; } }
@media (max-width: 540px) { .feature-split__content { padding: 48px 16px; } }

/* Macaron visible sur les fonds sombres : fin cercle doré */
.hero2 .eyebrow::before, .interior-hero--dark .eyebrow::before, .section--ink .eyebrow::before, .feature-split__content .eyebrow::before,
.eyebrow--gold::before, .eyebrow--light::before { box-shadow: 0 0 0 1px var(--gold-light); }

/* Macarons des surtitres sur le même axe vertical que le macaron du logo (54 px, 44 px sous 820 px) */
.eyebrow::before { margin-left: 16px; }
.fee-box .eyebrow::before, .feature-split__content .eyebrow::before, .two-col > div + div .eyebrow::before,
.prose .eyebrow::before, .situation-card .eyebrow::before { margin-left: 0; }
@media (max-width: 820px) { .eyebrow::before { margin-left: 11px; } }
@media (max-width: 820px) { .fee-box .eyebrow::before { margin-left: 0; } }
@media (max-width: 820px) { .two-col > div + div .eyebrow::before, .prose .eyebrow::before, .feature-split__content .eyebrow::before { margin-left: 11px; } }

/* Titres : jamais de coupure de mot ; titre de la colonne contact à taille raisonnable */
h1, h2, h3 { hyphens: manual; -webkit-hyphens: manual; overflow-wrap: normal; }
.contact-intro h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); line-height: 1.15; }
/* Formulaire : tous les textes sur la même marge gauche */
.form-paid { padding: 0; background: none; }
.form-consent input { margin-left: 0; }
