/* ============================================================
   CHARTE ÉDITORIALE — pages intérieures
   Fond #EFE9DF · blocs #F8F4EC · texte #4A3528 · sauge #8A9A7B (touches)
   Titres Cormorant Garamond · texte Lora · sur-titres DM Sans
   ============================================================ */
:root {
  --bg: #EFE9DF; --block: #F8F4EC; --sage: #8A9A7B; --terra: #C98B6B; --text: #4A3528;
  --line: rgba(74,53,40,.13);
  --head: 'Cormorant Garamond', Georgia, serif;
  --body: 'Lora', Georgia, 'Times New Roman', serif;
  --sans: 'DM Sans', system-ui, sans-serif;
  /* variables des anciennes pages, ramenées à la charte */
  --color-white: #F8F4EC; --color-cream: #F8F4EC; --color-oat: #E6DFD0; --color-taupe: #4A3528;
  --color-warm-grey: #8A7B6C; --color-mocha: #4A3528; --color-coffee: #4A3528; --color-espresso: #4A3528; --color-ink: #4A3528;
  --gold: #8A9A7B; --gold-deep: #4A3528; --brown: #4A3528;
  --font-serif: var(--head); --font-sans: var(--body); --font-script: var(--head); --font-display: var(--head);
}
*, *::before, *::after { font-weight: 400 !important; }
html { scroll-behavior: smooth; }
body { background: var(--bg) !important; background-image: none !important; color: var(--text) !important; font-family: var(--body) !important; font-size: 1.0625rem !important; line-height: 1.75 !important; -webkit-font-smoothing: antialiased; overflow-x: hidden; padding-bottom: 0; }
body::before { content: ''; position: fixed; inset: 0; z-index: 1; pointer-events: none; opacity: .28; mix-blend-mode: multiply; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .29 0 0 0 0 .21 0 0 0 0 .16 0 0 0 .09 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>") !important; }
main { position: relative; z-index: 2; }
:focus-visible { outline: 3px solid var(--sage); outline-offset: 3px; border-radius: 8px; }

/* ---------- typographie ---------- */
h1, h2, h3, h4 { font-family: var(--head) !important; font-weight: 300 !important; letter-spacing: -.012em !important; text-transform: none !important; color: var(--text) !important; font-style: normal; }
h3, h4 { font-weight: 400 !important; }
h1 em, h2 em, h3 em, h4 em { font-style: italic !important; font-weight: 300 !important; text-decoration: none !important; color: inherit !important; }
h1 { font-size: clamp(2.4rem, 6vw, 4rem) !important; line-height: 1.05 !important; }
h2 { font-size: clamp(2rem, 4.8vw, 3.2rem) !important; line-height: 1.08 !important; }
h3 { font-size: clamp(1.5rem, 2.6vw, 1.9rem) !important; line-height: 1.15 !important; }
p, li { text-align: left !important; font-family: var(--body) !important; color: var(--text); }
strong, b { font-weight: 400 !important; }
em { font-style: italic; }
a { color: inherit; }
.eyebrow, .script, .page-header__location, .article-hero__meta, .step-box__duration, .step__time, .tag, .pillar-badge, .service__tag { font-family: var(--sans) !important; font-size: 12px !important; letter-spacing: .2em !important; text-transform: uppercase !important; color: var(--text) !important; font-style: normal !important; line-height: 1.6 !important; background: none !important; padding: 0 !important; border-radius: 0 !important; }
.eyebrow, .script { display: inline-block !important; margin-bottom: .9rem !important; }
.eyebrow::before { content: ''; display: inline-block; width: 30px; height: 1px; background: var(--sage); vertical-align: middle; margin-right: .7rem; }
.divider, hr.divider { width: 36px !important; height: 1px !important; background: var(--sage) !important; border: 0 !important; margin: 1.2rem 0 1.4rem !important; }
.divider--center { margin-left: 0 !important; margin-right: 0 !important; }

/* ---------- pictogrammes supprimés ---------- */
main svg:not(.keep), .botanical, .accent-line, .accent-section-break, .abstract-deco, .brain-art, .brain-frame, .contact-card__icon, .page-header__bot-l, .page-header__bot-r, .article-hero__bot-l, .article-hero__bot-r { display: none !important; }

/* ---------- en-tête fixe ---------- */
.top { position: fixed; inset: 0 0 auto 0; z-index: 100; background: rgba(239,233,223,.94); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid var(--line); }
.top__in { max-width: 1120px; margin: 0 auto; padding: .7rem 1.25rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.brand { display: flex; align-items: center; gap: .7rem; color: var(--text); }
.brand__mark { width: auto; height: 58px; display: block; flex: 0 0 auto; border-radius: 0 !important; }
.brand__txt { display: none; }
.brand__name { display: block; font-family: var(--head); font-size: 15px; letter-spacing: .24em; text-transform: uppercase; line-height: 1.2; }
.brand__txt small { display: block; font-family: var(--head); font-style: italic; font-size: 14px; letter-spacing: .04em; margin-top: .1rem; }
@media (min-width: 560px) { .brand__txt { display: block; } }

/* ---------- boutons ---------- */
.btn, .btn--light, .btn--filled, .btn--gold { display: inline-flex !important; align-items: center; justify-content: center; gap: .6rem; min-height: 52px; padding: .9rem 1.7rem !important; border-radius: 999px !important; background: var(--sage) !important; color: var(--text) !important; font-family: var(--body) !important; font-weight: 500 !important; font-size: 1.1875rem !important; letter-spacing: 0 !important; text-transform: none !important; border: 0 !important; box-shadow: none !important; transition: transform .25s ease, filter .25s ease; }
.btn:hover { transform: translateY(-2px); filter: brightness(.95); background: var(--sage) !important; color: var(--text) !important; }
.btn:active { transform: scale(.98); }
.btn--link { background: none !important; border: 0 !important; border-bottom: 1px solid var(--sage) !important; border-radius: 0 !important; padding: 0 !important; min-height: 0; font-weight: 400 !important; color: var(--text) !important; }

/* ---------- bandeau de titre ---------- */
.page-header, .article-hero { background: transparent !important; background-image: none !important; aspect-ratio: auto !important; min-height: 0 !important; display: block !important; padding: 8rem 0 3rem !important; text-align: left !important; overflow: visible !important; }
.page-header::before, .page-header::after { display: none !important; }
.page-header .container, .article-hero .container { text-align: left !important; max-width: 1120px; }
.page-header h1, .article-hero h1 { text-align: left !important; margin: 0 0 1.2rem !important; max-width: 20ch; }
.page-header__sub, .article-hero__sub { text-align: left !important; font-family: var(--body) !important; font-style: normal !important; font-size: 1.1875rem !important; margin: 0 0 1rem !important; max-width: 56ch !important; color: var(--text) !important; }
.article-hero__meta { display: flex !important; gap: 1.4rem; justify-content: flex-start !important; margin-bottom: 1rem !important; }

/* ---------- sections et blocs ---------- */
section { background: transparent !important; position: relative; padding: 5rem 0 !important; }
.container { max-width: 1120px !important; }
.section-header, .section-header p, .section-header h2, .section-header h3 { text-align: left !important; margin-left: 0 !important; margin-right: 0 !important; max-width: 60ch; }
.section-header { margin-bottom: 2.6rem !important; }
.section-header p { font-family: var(--body) !important; font-style: normal !important; font-size: 1.1875rem !important; }
.signs, .protocol, .tests, .mutuelle, .approach, .human, .method, .pricing, .chapters, .why { background: transparent !important; }

/* anciennes zones sombres : blocs clairs, texte brun */
.background, .cta-section, .protocol, .cta-call, .zone, .day, .cta-buy, .pains, .contact-card { background-color: var(--block) !important; background-image: none !important; color: var(--text) !important; }
.background :not(.btn):not(a), .cta-section :not(.btn):not(a), .cta-call :not(.btn):not(a), .zone :not(.btn):not(a), .day :not(.btn):not(a), .cta-buy :not(.btn):not(a), .pains :not(.btn):not(a), .contact-card :not(.btn):not(a), .protocol :not(.btn):not(a) { color: var(--text) !important; }
.background, .cta-section, .cta-call, .zone, .day, .cta-buy, .pains { border-radius: 32px; margin: 1rem; }
.btn--light { background: var(--sage) !important; }

/* cartes */
.chapter, .pillar, .service, .test, .sign, .offer, .pub, .step-box, .newsletter__inner, .inst-block, .why__item, .article-card, .faq__item, .contact-form, .contact-card, .product__info, .doctolib, .related-card, .signs__card, .what__answers, .test-card, .tool, .protocol__step { background: var(--block) !important; border: 1px solid var(--line) !important; border-radius: 26px !important; box-shadow: none !important; }
.chapter:hover, .pillar:hover, .service:hover, .test:hover, .offer:hover, .step-box:hover { transform: translateY(-2px); }
img { border-radius: 22px; }
.brand__mark, .nav__logo { border-radius: 0 !important; }
.article-card__art { border-radius: 22px !important; }

/* formulaires */
input, select, textarea { background: var(--block) !important; border: 1px solid var(--line) !important; border-radius: 14px !important; color: var(--text) !important; font-family: var(--body) !important; font-size: 1.0625rem !important; padding: .8rem 1rem !important; }
input::placeholder, textarea::placeholder { color: rgba(74,53,40,.55); }
label { font-family: var(--sans) !important; font-size: 12px !important; letter-spacing: .16em; text-transform: uppercase; }

/* listes à puces fines */
ul { list-style: none; }
main li { position: relative; }

/* ---------- pied de page ---------- */
.foot { background: var(--block); border-radius: 32px 32px 0 0; padding: 3rem 0 2rem; margin-top: 3rem; position: relative; z-index: 2; border-top: 1px solid var(--line); }
.foot .wrap { max-width: 1120px; margin: 0 auto; padding: 0 1.25rem; }
.foot__top { display: grid; gap: 1.6rem; margin-bottom: 1.6rem; }
.foot__name { font-family: var(--head); font-size: 1.9rem; color: var(--text); line-height: 1.1; }
.foot p { margin-bottom: .3rem; }
.foot__links { display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; list-style: none; padding: 1.2rem 0; border-top: 1px solid var(--line); font-size: 1rem; }
.foot__links a { border-bottom: 1px solid transparent; transition: border-color .2s ease; }
.foot__links a:hover { border-color: var(--text); }
.legal summary { cursor: pointer; font-size: 1rem; }
.legal p { font-size: 1rem; margin-top: .6rem; max-width: 70ch; }
.foot__copy { margin-top: 1rem; font-size: .95rem; }
@media (min-width: 768px) { .foot__top { grid-template-columns: 1.2fr 1fr; } .wrap { padding: 0 2rem; } }

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition-duration: .01ms !important; } }
.cta-script { color: var(--text) !important; border-bottom: 1px solid var(--sage) !important; font-size: 1.6rem !important; background: none !important; }
/* titres de page quand le « script » joue le rôle de H1 */
h1.script, .page-header:not(:has(h1)) .script { font-family: var(--head) !important; font-size: clamp(2.6rem, 7vw, 4.4rem) !important; letter-spacing: -.012em !important; text-transform: none !important; font-weight: 300 !important; line-height: 1.05 !important; display: block !important; margin: 0 0 1.2rem !important; color: var(--text) !important; }
.contact-badge, .contact__badge { border-color: var(--sage) !important; background: var(--block) !important; }
.offer__title, .pillar__title, .pillar-detail__head, .offer__head { background: #E6DFD0 !important; color: var(--text) !important; }
.offer__title *, .pillar__title * { color: var(--text) !important; }
.contact-card a, .contact-card__row, .contact-card__row *, .cta-section a:not(.btn), .cta-call a:not(.btn), .zone a:not(.btn) { color: var(--text) !important; }

/* ---------- menu de navigation ---------- */
.topnav { display: none; }
.topnav a { font-family: var(--body); font-size: 1rem; color: var(--text); padding: .5rem .8rem; border-radius: 999px; border-bottom: 0; transition: background .2s ease; white-space: nowrap; }
.topnav a:hover { background: var(--block); }
.topnav a[aria-current="page"] { background: var(--block); box-shadow: inset 0 -2px 0 var(--sage); }
.topnav__sep { width: 1px; height: 18px; background: rgba(74,53,40,.2); margin: 0 .3rem; display: none; }
.menu-btn { font-family: var(--body); font-size: 1.0625rem; color: var(--text); padding: .55rem 1.1rem; border-radius: 999px; background: var(--block); border: 1px solid var(--line); min-height: 44px; margin-left: auto; margin-right: .6rem; }
.top.is-open .topnav { display: flex; flex-direction: column; position: absolute; left: 1.25rem; right: 1.25rem; top: calc(100% + .4rem); background: var(--block); border: 1px solid var(--line); border-radius: 24px; padding: .8rem; gap: .1rem; box-shadow: 0 30px 50px -36px rgba(74,53,40,.5); }
.top.is-open .topnav a { padding: .85rem 1rem; font-size: 1.125rem; }
.top.is-open .topnav__sep { display: block; width: auto; height: 1px; margin: .4rem 0; }
@media (min-width: 1320px) {
  .menu-btn { display: none; }
  .topnav { display: flex; align-items: center; gap: .1rem; margin-left: auto; margin-right: 1rem; }
  .topnav__sep { display: block; }
}

.brand__name, .top .btn { white-space: nowrap; }
.topnav a { padding: .5rem .65rem; }

/* ---------- pied de page professionnel ---------- */
.foot { background: var(--block) !important; border-radius: 40px 40px 0 0 !important; padding: 4rem 0 2rem !important; margin-top: 4rem !important; border-top: 1px solid var(--line) !important; position: relative; z-index: 2; }
.foot .wrap { max-width: 1120px; margin: 0 auto; padding: 0 1.25rem; }
.foot__id { display: flex; align-items: center; gap: 1.2rem; flex-wrap: wrap; padding-bottom: 2.2rem; margin-bottom: 2.4rem; border-bottom: 1px solid rgba(138,154,123,.7); }
.foot__logo { width: auto; height: 62px; border-radius: 0 !important; }
.foot__who { flex: 1 1 260px; }
.foot__name { font-family: var(--head); font-size: clamp(1.8rem, 3.4vw, 2.4rem); line-height: 1.05; color: #4A3528; font-weight: 300 !important; }
.foot__role { font-family: var(--sans); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; margin-top: .45rem; color: #4A3528; }
.foot__cols { display: grid; gap: 2.2rem; grid-template-columns: 1fr; }
.foot h4 { font-family: var(--sans) !important; font-size: 12px !important; letter-spacing: .2em !important; text-transform: uppercase !important; margin: 0 0 1rem !important; color: #4A3528 !important; font-weight: 500 !important; }
.foot h4::before { content: ''; display: block; width: 28px; height: 1px; background: var(--sage); margin-bottom: .8rem; }
.foot p, .foot li { margin: 0 0 .4rem !important; font-size: 1.0625rem; color: #4A3528; }
.foot ul { list-style: none; padding: 0; margin: 0; }
.foot a { color: #4A3528; border-bottom: 1px solid transparent; transition: border-color .2s ease; }
.foot a:hover { border-color: #4A3528; }
.foot__link { border-bottom: 1px solid var(--sage) !important; }
.foot .btn { border-bottom: 0 !important; color: #4A3528 !important; }
.foot dl { margin: 0; }
.foot dl div { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px solid var(--line); }
.foot dl div:first-child { padding-top: 0; }
.foot dl div:last-child { border-bottom: 0 !important; padding-bottom: 0; }
.foot dt { font-family: var(--sans); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: #4A3528; }
.foot dd { margin: 0; font-family: var(--head); font-size: 1.55rem; line-height: 1.1; color: #4A3528; font-weight: 400 !important; }
.foot__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem 2rem; margin-top: 2.6rem; padding-top: 1.4rem; border-top: 1px solid var(--line); font-size: 1rem; }
.foot .legal { flex: 1 0 100%; }
.foot .legal summary { cursor: pointer; display: inline-block; border-bottom: 1px solid var(--sage); }
.foot .legal p { max-width: 80ch; margin-top: .8rem !important; }
@media (min-width: 768px) {
  .foot .wrap { padding: 0 2rem; }
  .foot__cols { grid-template-columns: 1fr 1fr; gap: 2.6rem 3rem; }
}
@media (min-width: 1000px) { .foot__cols { grid-template-columns: 1.1fr 1.1fr .8fr 1.2fr; } }

/* ---------- e-book : section produit ---------- */
.product__grid { display: grid !important; grid-template-columns: 1fr !important; gap: 3rem !important; max-width: none !important; align-items: center !important; }
.product__info { order: 1; background: none !important; border: 0 !important; border-radius: 0 !important; padding: 0 !important; box-shadow: none !important; }
.product__cover { order: 2; }
.product__cover img { display: block; width: 100% !important; max-width: 380px !important; height: auto; margin: 0 auto !important; border-radius: 6px !important; transform: none !important; box-shadow: 0 40px 70px -40px rgba(74,53,40,.55) !important; }
.product__info h1 { font-family: var(--head) !important; font-style: normal !important; font-size: clamp(3rem, 8vw, 5.2rem) !important; line-height: .98 !important; margin: 0 0 .6rem !important; max-width: none !important; }
.product__info .product__subtitle { font-family: var(--head) !important; font-style: italic !important; font-size: clamp(1.5rem, 3vw, 2rem) !important; margin: 0 0 1.2rem !important; }
.product__author { font-family: var(--sans) !important; font-size: 12px !important; letter-spacing: .2em !important; text-transform: uppercase !important; margin: 0 0 1.6rem !important; }
.product__author em { font-family: inherit !important; font-style: normal !important; text-transform: uppercase !important; font-size: inherit !important; }
.product__lead { font-family: var(--body) !important; font-style: normal !important; font-size: 1.1875rem !important; max-width: 52ch; margin: 0 0 1.6rem !important; }
.product__lead em { font-style: italic !important; }
.product__meta { display: flex !important; flex-wrap: wrap; gap: 1.4rem 2.4rem; align-items: center; padding: 1.3rem 0 !important; margin: 0 0 1.8rem !important; border-top: 1px solid rgba(138,154,123,.7) !important; border-bottom: 1px solid rgba(138,154,123,.7) !important; }
.product__price { font-family: var(--head) !important; font-size: 3.2rem !important; line-height: 1 !important; color: #4A3528 !important; }
.product__price small { display: block; font-family: var(--sans) !important; font-size: 12px !important; letter-spacing: .2em !important; text-transform: uppercase; margin-top: .5rem; color: #4A3528 !important; }
.product__specs { font-family: var(--sans); font-size: 12px !important; letter-spacing: .2em !important; text-transform: uppercase; color: #4A3528 !important; }
.product__specs span { display: block; margin-bottom: .3rem; }
.product__cta { display: flex !important; flex-direction: row !important; flex-wrap: wrap; align-items: center !important; gap: 1.2rem 1.6rem !important; }
.product__cta .btn--link { border-bottom: 1px solid var(--sage) !important; padding-bottom: 2px !important; }
@media (min-width: 900px) { .product__grid { grid-template-columns: 1.15fr .85fr !important; gap: 5rem !important; } }

/* menu : Cormorant italique */
.topnav a, .menu-btn { font-family: 'Cormorant Garamond', Georgia, serif !important; font-style: italic !important; font-size: 1.22rem !important; letter-spacing: .01em; line-height: 1.1; }
.topnav a { padding: .45rem .75rem !important; }
.top.is-open .topnav a { font-size: 1.5rem !important; }

/* ---------- pied de page : fond distinct (vert sauge profond) ---------- */
.foot { background: #5C6B50 !important; border-top: 0 !important; border-radius: 44px 44px 0 0 !important; margin-top: 6rem !important; padding: 4.5rem 0 2.2rem !important; }
.foot, .foot p, .foot li, .foot a, .foot dt, .foot dd, .foot h4, .foot__name, .foot__role, .foot__bottom, .foot summary, .foot__copy { color: #F8F4EC !important; }
.foot__id { border-bottom-color: rgba(248,244,236,.32) !important; }
.foot h4::before { background: #C9D4BE !important; }
.foot dl div { border-bottom-color: rgba(248,244,236,.25) !important; }
.foot dd { font-size: 1.7rem !important; }
.foot__bottom { border-top-color: rgba(248,244,236,.28) !important; }
.foot__logo { filter: brightness(0) invert(1); opacity: .95; }
.foot a:hover { border-color: #F8F4EC !important; }
.foot__link, .foot .legal summary { border-bottom-color: #C9D4BE !important; }
.foot .btn, .foot .btn:hover { background: #F8F4EC !important; color: #4A3528 !important; }


/* ---------- lierre (identique à l'accueil) ---------- */
.ivy-div { display: block; margin: 1.1rem 0 1.3rem; line-height: 0; }
.ivy-div .sprig { width: 84px; height: auto; max-width: none; overflow: visible; fill: none; stroke: #8A9A7B; stroke-width: 1.1; stroke-linecap: round; stroke-linejoin: round; }
.ivy-div .sp--vein { stroke-width: .6; opacity: .8; }
.ivy-div .sp { stroke-dasharray: 1; stroke-dashoffset: 1; }
.ivy-div.in .sp { animation: iv-draw 1.6s cubic-bezier(.45,0,.2,1) both; animation-delay: calc(.2s + var(--i) * .15s); }
.divider--center + .ivy-div, .section-header .ivy-div { margin-left: 0; }
.has-ivy { position: relative; overflow: visible !important; }
.has-ivy::before { content: ''; position: absolute; inset: -18px; border: 1px solid rgba(138,154,123,.7); border-radius: 999px 999px 40px 40px; pointer-events: none; }
.photo__ivy { max-width: none; position: absolute; left: -18px; top: -18px; width: calc(100% + 36px); height: calc(100% + 36px); pointer-events: none; z-index: 2; overflow: visible; fill: none; stroke: #8A9A7B; stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; }
.photo__ivy .ivh { stroke: #EFE9DF; stroke-width: 3.6; }
.photo__ivy .iv--leaf { fill: none; }
.photo__ivy .iv--vein { stroke-width: .7; opacity: .8; }
.photo__ivy path { vector-effect: non-scaling-stroke; }
.photo__ivy .iv { stroke-dasharray: 1; stroke-dashoffset: 1; }
.has-ivy.in .photo__ivy .iv { animation: iv-draw 2.2s cubic-bezier(.45,0,.2,1) both; animation-delay: calc(.4s + var(--i) * .12s); }
@keyframes iv-draw { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) { .ivy-div .sp, .photo__ivy .iv { animation: none !important; stroke-dashoffset: 0; } }

/* header : respiration entre le nom et le menu */
.top__in { max-width: 1240px; padding-left: 2rem; padding-right: 2rem; gap: 2.5rem; }
.brand { flex-shrink: 0; }
.menu-btn { margin-left: auto; margin-right: 1rem; }
@media (max-width: 640px) { .top__in { padding-left: 1.25rem; padding-right: 1.25rem; gap: 1rem; } }
@media (min-width: 541px) and (max-width: 760px) { .top .btn { display: none; } .menu-btn { margin-right: 0; } }
/* boutons : fond noir, police moderne et lisse */
.btn:not(.btn--link):not(.btn--soft), .btn--light, .btn--filled, .btn--gold { background: #1F1915 !important; color: #F8F4EC !important; font-family: 'DM Sans', 'Jost', system-ui, sans-serif !important; font-weight: 500 !important; letter-spacing: .01em; border: 0 !important; }
.btn:not(.btn--link):not(.btn--soft):hover, .btn--light:hover, .btn--filled:hover, .btn--gold:hover { background: #3A2F27 !important; color: #FFFFFF !important; filter: none; }
.foot .btn, .foot .btn:hover { background: #F8F4EC !important; color: #1F1915 !important; }
/* boutons : fond sauge, police italique raffinée */
.btn:not(.btn--link):not(.btn--soft), .btn--light, .btn--filled, .btn--gold { background: #8A9A7B !important; color: #2B2118 !important; font-family: 'Cormorant Garamond', Georgia, serif !important; font-style: italic !important; font-weight: 400 !important; font-size: 1.35rem !important; letter-spacing: .01em; }
.top .btn { font-size: 1.25rem !important; }
.btn:not(.btn--link):not(.btn--soft):hover, .btn--light:hover, .btn--filled:hover, .btn--gold:hover { background: #7A8A6B !important; color: #1F1915 !important; }
.foot .btn, .foot .btn:hover { background: #F8F4EC !important; color: #1F1915 !important; }
.hero h1 em { color: #8A9A7B; }
/* ===== échelle typographique unique pour tout le site ===== */
body { font-size: 1rem !important; line-height: 1.7 !important; }
h1, .hero h1, h1.script, .page-header:not(:has(h1)) .script { font-size: clamp(1.75rem, 2.6vw, 2.35rem) !important; line-height: 1.12 !important; letter-spacing: 0 !important; }
h2, .h2, .head .h2 { font-size: clamp(1.6rem, 2.3vw, 2.05rem) !important; line-height: 1.15 !important; letter-spacing: 0 !important; }
h3, .step h3, .pick__lbl, .service__title, .offer__title, .price__title { font-size: 1.3rem !important; line-height: 1.2 !important; letter-spacing: 0 !important; }
h4 { font-size: 1.15rem !important; }
p, li, dd, .lede, .hero__sub, .page-header__sub { font-size: 1rem; line-height: 1.7; }
.lede, .page-header__sub, .hero__sub { font-size: 1.02rem !important; }
.step__no { font-size: 3rem !important; }
.qa summary { font-size: 1.15rem !important; }
.pick__lbl small { font-size: .9rem; }
.btn { font-size: 1.2rem !important; }
.foot, .foot p, .foot li, .foot a { font-size: .98rem; }
.foot dd { font-size: 1.2rem; }
.scope li span { font-size: 1.3rem !important; }
.scope li { font-size: 1.05rem !important; }

/* pages légales */
.legal-page { padding: 8rem 0 4rem; }
.legal-page .container { max-width: 760px; }
.legal-page h1 { margin: 0 0 1.5rem !important; }
.legal-page h2 { font-size: 1.4rem !important; margin: 2.2rem 0 .6rem !important; }
.legal-page p, .legal-page li { max-width: 68ch; }
.legal-page ul { padding-left: 1.2rem; }
.legal-page a { border-bottom: 1px solid var(--sage); }
.legal-date { font-size: .92rem; opacity: .75; margin-bottom: 1.5rem; }
.legal-note { background: var(--block); padding: 1rem 1.2rem; border-radius: 14px; }
.legal-links { display: inline-flex; flex-wrap: wrap; gap: .4rem 1.4rem; }
.legal-links a { border-bottom: 0 !important; text-decoration: underline; text-underline-offset: 3px; }
.field--check .check { display: flex; gap: .7rem; align-items: flex-start; font-size: .95rem; }
.field--check input[type=checkbox] { width: 18px; height: 18px; margin-top: .25rem; flex: none; accent-color: #8A9A7B; }
.cta-buy__legal { font-size: .9rem; margin-top: 1rem; }
.cta-buy__legal a { text-decoration: underline; }
@media (max-width: 760px) { .top .btn { display: none; } .menu-btn { margin-right: 0; } }

/* logo AB dans un rond */
.brand__mark { width: 48px !important; height: 48px !important; padding: 8px; object-fit: contain; border: .5px solid rgba(138,154,123,.7) !important; border-radius: 50% !important; background: #F8F4EC !important; box-sizing: border-box; }
/* corps de texte : graisse normale */
.hero__sub, .lede, p { font-weight: 400; }
