
/* ESOYA — charte validée le 30 septembre 2026.
 * Rôles partagés : H1 / H2 / H3 / introduction / corps / secondaire / repère.
 * Le bandeau d’en-tête conserve intégralement ses règles et ses couleurs.
 */
:root{--font-serif:var(--font-sans);--t1:3rem;--t2:2.25rem;--t3:1.5rem;--lead:1.25rem;--body:1.125rem;--small:1rem;--label:.875rem;--line:#ded7cf}
main,footer{font-family:Montserrat,Arial,sans-serif;font-size:var(--body);line-height:1.65;font-synthesis:none}
body p,body li{font-size:var(--body);line-height:1.65;letter-spacing:0}
body h1,body h2,body h3,body h4{font-family:Montserrat,Arial,sans-serif;font-style:normal;font-weight:600;letter-spacing:-.015em;text-wrap:balance;overflow-wrap:normal}
body h1,body .hero h1{font-size:var(--t1);line-height:1.18;margin:0 0 24px;max-width:none;letter-spacing:-.02em;text-wrap:initial}
body h1 em{font-style:normal;font-weight:600;display:block;margin-top:.2em;color:#fe943d}
body h1 br{display:none}
body h2{font-size:var(--t2);line-height:1.25;margin:0 0 24px}
body h3,body .offer-card h3,body .scan-card h3{font-size:var(--t3);line-height:1.3;margin:0 0 16px}
body main strong,body main b{font-weight:700}
body .section{padding:80px 0}
body .section-heading{max-width:860px;margin-bottom:40px}
body .section-heading p:not(.eyebrow){max-width:68ch;font-size:var(--body);line-height:1.65}
body .eyebrow,body .card-label,body .offer-level{font-size:var(--label);font-weight:600;line-height:1.5;text-transform:none;letter-spacing:0;color:#1f4779;margin-bottom:16px}
body .eyebrow-light,body .offer-featured .offer-level{color:#fff}





body main .button{font-size:1rem;line-height:1.5;font-weight:600;min-height:48px;border-radius:12px;padding:12px 20px}
body main .text-link{font-size:1rem;line-height:1.5;font-weight:600}
body .hero{min-height:0;padding-top:calc(var(--header-height) + 64px);padding-bottom:64px}
body .hero::before{display:none}
body .hero-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:48px;align-items:start}
body .hero-copy{min-width:0}
body .hero-lead{font-size:var(--lead);line-height:1.6;color:#fff;margin:0 0 24px;max-width:62ch}
body .hero-audience{font-size:var(--small);line-height:1.6;color:#fff;margin:0 0 24px;padding:16px}
body .button-row{gap:16px;flex-wrap:wrap}
body .founder-line{margin-top:32px;gap:8px}
body .founder-line p{font-size:var(--label);line-height:1.6;color:#fff}
body .founder-monogram{font-family:Montserrat,Arial,sans-serif;font-size:14px;font-weight:600;flex-shrink:0}
body .hero-dpe-card{max-width:none;padding:32px;border-radius:20px;box-shadow:0 12px 30px #10264026}
body .hero-dpe-card h2{font-size:var(--t3);line-height:1.3;margin:24px 0 16px}
body .hero-dpe-card .card-label{max-width:none}
body .hero-dpe-top{gap:16px;align-items:start}
body .dpe-badge{width:48px;height:45px;flex-shrink:0}
body .hero-dpe-intro,body .hero-dpe-route small{font-size:var(--small);line-height:1.6;color:#625e59}
body .hero-dpe-route strong{font-size:var(--small);line-height:1.5;font-weight:600}
body .hero-dpe-route li{padding:16px 0;gap:16px}
body .hero-dpe-route li>span{font-family:Montserrat,Arial,sans-serif;font-size:var(--label);font-weight:600;color:#1f4779}
body .hero-dpe-signature{font-size:var(--small);line-height:1.6;font-weight:600}
body .trust-grid strong,body .price{font-family:Montserrat,Arial,sans-serif;font-size:var(--t2);line-height:1.25;font-weight:600;letter-spacing:-.015em}
body .trust-grid span,body .price small{font-size:var(--label);line-height:1.5;letter-spacing:0;text-transform:none}
body .trust-grid>div{padding:24px 16px;min-height:0}
body .passage-rail span,body .panorama-note{font-size:var(--small);line-height:1.5}
body .passage-rail strong{font-weight:600}
body .symptom-card{padding:24px}
body .symptom-card p,body .turning-point p{font-size:var(--body);line-height:1.65}
body .panorama-summary,body .scan-introduction-summary{padding:32px;gap:32px}
body .panorama-summary h3,body .scan-introduction h3{font-size:var(--t3);line-height:1.3}
body .scan-introduction-summary{grid-template-columns:minmax(220px,.38fr) minmax(0,1fr)}
body .scan-axis-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
body .scan-axis-list li{font-size:var(--label);line-height:1.5;font-weight:600;min-height:120px;padding:16px;overflow-wrap:anywhere}
body .scan-introduction-action,body .scan-open,body .scan-format,body .scan-detail strong{font-size:var(--label);line-height:1.5;letter-spacing:0;text-transform:none;font-weight:600}
body .scan-detail p,body .scan-card p:not(.card-label){font-size:var(--body);line-height:1.65}
body .scan-card>summary{padding:32px;min-height:0}
body .scan-grid{gap:24px}
body .scan-detail-grid{grid-template-columns:1fr;gap:24px}
body .offers-heading{max-width:none;gap:24px}
body .offer-grid{gap:24px}
body .offer-card{padding:24px;min-height:0;border-radius:20px}
body .offer-card p,body .offer-card li{font-size:var(--small);line-height:1.65}
body .offer-card .offer-level,body .featured-label{font-size:var(--label);line-height:1.5;text-transform:none;letter-spacing:0;font-weight:600}
body .offer-card .price{font-size:var(--t2);line-height:1.25}
body .offer-card .price small{display:block;font-weight:400;margin-top:8px}
body .offer-card li::before{top:10px}
body .offer-featured{transform:none}
body .options-panel summary,body .options-panel summary small,body .delivery-note small{font-size:var(--small);line-height:1.6}
body .options-panel summary small{font-size:var(--label);letter-spacing:0;text-transform:none}
body .options-note{font-size:var(--small);line-height:1.65}
body .closing-section{padding:80px 0}
body .closing-inner h2{font-size:var(--t2);line-height:1.25}
body .closing-inner>p:not(.eyebrow){font-size:var(--body);line-height:1.65;max-width:60ch}
body .site-footer{padding-top:48px}
body .footer-grid{gap:32px}
body .footer-grid p,body .footer-grid a,body .footer-grid strong,body .footer-bottom{font-size:var(--label);line-height:1.65;color:#fff}
body .footer-bottom{gap:16px;flex-wrap:wrap}
body main :focus-visible,body footer :focus-visible{outline:3px solid #1f4779;outline-offset:4px}
body main .section-dark :focus-visible,body .site-footer :focus-visible{outline-color:#fe943d}
@media(max-width:1100px){:root{--t1:2.5rem;--t2:1.875rem;--t3:1.375rem}body .hero-grid{gap:32px}body .offer-grid{grid-template-columns:1fr}body .offer-card{padding:32px}body .scan-introduction-summary{grid-template-columns:1fr}}
@media(max-width:900px){body .hero-grid{grid-template-columns:1fr}body .hero-copy,body .hero-dpe-card{max-width:720px}body .hero-dpe-card{width:100%}body .section{padding:64px 0}}
@media(max-width:620px){:root{--t1:2rem;--t2:1.75rem;--t3:1.375rem;--lead:1.125rem;--body:1rem;--small:.875rem}body main .shell,body footer .shell{width:calc(100% - 40px)}body .hero{padding:calc(var(--header-height) + 40px) 0 48px}body .hero-grid{gap:32px}body .section,body .closing-section{padding:48px 0}body .section-heading{margin-bottom:32px}body .hero-dpe-card,body .panorama-summary,body .scan-introduction-summary,body .offer-card,body .scan-card>summary{padding:24px}body .scan-axis-list{grid-template-columns:1fr 1fr}body .scan-axis-list li:last-child{grid-column:1/-1}body .button-row{align-items:stretch}body .button-row>.button{width:100%}body .passage-rail{display:grid;grid-template-columns:1fr 1fr;gap:16px}body .passage-rail:before{display:none}body .passage-rail span{min-width:0}body .founder-line{flex-wrap:wrap}body .founder-line p{flex-basis:100%}body .footer-grid{grid-template-columns:1fr 1fr;gap:32px 24px}body .footer-grid a{overflow-wrap:anywhere}body .offer-card p,body .offer-card li{font-size:var(--body)}body .hero-dpe-intro,body .hero-dpe-route small{font-size:var(--body)}}

/* Rubriques intérieures, contact et pages légales. */
body h2 em, body h3 em { font-style: normal; font-weight: 600; }
body .subpage-hero h1, body .choice-hero h1 { font-size: var(--t1); line-height: 1.18; }
body .method-intro, body .large-copy, body .choice-lead,
body .subpage-hero p:not(.eyebrow) { font-size: var(--lead); line-height: 1.6; }
body .method-engine-label, body .dpe-definition p:last-child,
body .method-manifesto p, body .case-detail blockquote,
body .entry-offer-action strong { font-size: var(--lead); line-height: 1.6; }
body .section-heading .accent-statement { font-size: var(--t3); line-height: 1.3; font-style: normal; }
body .step-dot, body .person-mark, body .quiz-step-number { font-size: var(--t3); font-weight: 600; }
body .method-step p, body .dpe-cycles p, body .person-copy p,
body .duo-story p, body .case-card summary .case-summary > p,
body .case-detail p, body .case-detail li, body .legal-content p,
body .legal-content li { font-size: var(--body); line-height: 1.65; }
body .method-step .step-deliverable { font-size: var(--small); line-height: 1.6; }
body .case-card h3, body .person-card h3, body .boarding-card h3,
body .quiz-step h3, body .option-grid h3,
body .legal-content h3 { font-size: var(--t3); line-height: 1.3; }
body .step-kicker, body .case-topline, body .case-topline b,
body .case-axis, body .case-multi-label, body .case-scan-tag,
body .case-shift small, body .open-label, body .duo-principles span,
body .questionnaire-promises span, body .axis-name,
body .choice-option, body .choice-saving,
body .choice-compass > span, body .choice-recommendation > span,
body .choice-next-step > div > span {
  font-size: var(--label); line-height: 1.5; font-weight: 600;
  letter-spacing: 0; text-transform: none;
}
body .case-card details[open] .open-label span { font-size: 0; }
body .case-card details[open] .open-label span::after { font-size: var(--label); }
body .case-shift { font-size: var(--small); line-height: 1.6; }
body .case-scan-tag { white-space: normal; }
body .case-grid, body .duo-grid { gap: 24px; }
body .case-card summary { min-height: 0; }
body .case-summary, body .case-detail, body .person-card { padding: 32px; }
body .split-heading, body .duo-heading { max-width: none; }
body .person-copy, body .duo-story { max-width: 68ch; }
body .method-manifesto { margin-top: 40px; padding: 32px; }
body .section-heading p, body .first-step-copy p { max-width: 68ch; }
body .subpage-hero { padding-top: calc(var(--header-height) + 64px); padding-bottom: 64px; }
body .subpage-section { padding: 80px 0; }
body .legal-content { max-width: 72ch; }

/* White text stays on the existing dark surfaces. Do not inherit the blue
 * label color used by cards on white backgrounds. */
body .method-section .card-label, body .method-section .step-kicker,
body .duo-section .card-label, body .boarding-card .card-label {
  color: var(--white);
}
body .questionnaire-intro > p:not(.eyebrow),
body .questionnaire-intro .questionnaire-privacy,
body .questionnaire-promises span { color: #ffffff; }

/* Questionnaire: readable controls without reducing text to fit columns. */
body main input, body main select, body main textarea {
  font-family: var(--font-sans); font-size: 1rem; line-height: 1.6;
}
body .quiz-step label, body .quiz-step legend,
body .choice-panel label, body .choice-panel legend,
body .choice-payment-option { font-size: 1rem; line-height: 1.5; font-weight: 600; }
body .choice-grid label span, body .rating-row label span,
body .quiz-helper, body .field-optional, body .micro-insight,
body .quiz-error, body .choice-counter, body .stage-choices small,
body .questionnaire-privacy, body .quiz-progress > div:first-child,
body .result-grid small, body .result-direction span,
body .result-reading strong, body .transmission-status,
body .transmission-consent, body .copy-status,
body .choice-price-note, body .choice-price span,
body .choice-payment legend, body .choice-payment-option small,
body .choice-privacy, body .choice-footer .shell {
  font-size: var(--label); line-height: 1.6; letter-spacing: 0;
}
body .stage-choices strong, body .axis-statement,
body .result-grid strong, body .result-direction strong { font-size: 1rem; line-height: 1.5; }
body .choice-grid label span, body .rating-row label span { min-height: 48px; }
body .quiz-progress > div:first-child { flex-wrap: wrap; gap: 8px 16px; }
body .quiz-navigation { gap: 16px; flex-wrap: wrap; }
body .questionnaire-shell { gap: 40px; }
body .questionnaire-intro { position: static; }
body .quiz-step h3 { margin-bottom: 24px; }
body .result-grid { gap: 24px; }

/* Choisir mon parcours — same scale, with its existing price and selection logic. */
body .choice-hero { padding: 64px 0; }
body .choice-hero-grid { gap: 48px; align-items: start; }
body .choice-hero h1 em { margin-top: .2em; }
body .choice-main { padding: 80px 0; }
body .choice-offer h2 { min-height: 0; font-size: var(--t3); line-height: 1.3; }
body .choice-compass strong, body .choice-next-step strong { font-size: var(--t3); line-height: 1.3; font-weight: 600; }
body .choice-offer > p, body .choice-offer li,
body .choice-for-whom, body .choice-payment-single { font-size: 1rem; line-height: 1.65; }
body .choice-offer .choice-price-note { font-size: var(--label); }
body .choice-price { flex-wrap: wrap; align-items: baseline; gap: 8px; }
body .choice-price strong { font-size: var(--t2); line-height: 1.25; font-weight: 600; }
body .choice-price span { flex-basis: 100%; }
body .choice-offer, body .choice-panel, body .choice-compass,
body .choice-next-step { border-radius: 20px; }
body .choice-offer { padding: 24px; }
body .choice-cards, body .choice-secondary { gap: 24px; }
body .choice-footer { font-size: var(--label); line-height: 1.65; }

/* Responsive typography changes roles once, instead of per-component scales. */
@media (max-width: 1100px) {
  body .choice-cards, body .choice-hero-grid { grid-template-columns: 1fr; }
  body .choice-hero-grid { gap: 32px; }
  body .offers-heading { grid-template-columns: minmax(0,1fr); }
  body .offers-heading .eyebrow, body .offers-heading h2,
  body .offers-heading > p:not(.eyebrow) { grid-column: auto; grid-row: auto; max-width: 68ch; }
}
@media (max-width: 900px) {
  body .questionnaire-shell, body .first-step-grid { grid-template-columns: 1fr; }
  body .subpage-section, body .choice-main { padding: 64px 0; }
}
@media (max-width: 620px) {
  body .subpage-hero { padding-top: calc(var(--header-height) + 40px); padding-bottom: 48px; }
  body .subpage-section, body .choice-main, body .choice-hero { padding-bottom: 48px; }
  body .subpage-section, body .choice-main, body .choice-hero { padding-top: 48px; }
  body .case-summary, body .case-detail, body .person-card,
  body .method-manifesto, body .esoya-questionnaire, body .quiz-result,
  body .choice-offer { padding: 24px; }
  body .case-meta { padding-right: 0; }
  body .rating-row, body .stage-choices { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body .choice-hero-grid { grid-template-columns: minmax(0,1fr); }
  body .method-heading-main { display: grid; grid-template-columns: minmax(0,1fr); }
  body .method-heading-main h2 { min-width: 0; }
  body .method-intro, body .person-copy, body .duo-story { max-width: 100%; }
}
@media (max-width: 380px) {
  body .choice-grid:not(.rating-row), body .field-grid.two-cols,
  body .scan-axis-list, body .contact-grid { grid-template-columns: minmax(0,1fr); }
  body .footer-grid { grid-template-columns: minmax(0,1fr); }
}
