/* ==========================================================================
   content.css : gabarits « affiche » du thème v2 pour le blog, les méthodes,
   le contact, l'à-propos, l'animateur, Yoan et le glossaire.
   S'appuie sur shell.css (jetons, .btn, .eyebrow, .h2, .section, .steps,
   .faq, .about, .field, .chips) et pages.css (.aff-hero, .aff-card, .aff-prose).
   Toutes les classes propres sont préfixées ct-.
   ========================================================================== */

/* ---------- Reset léger des pages sans CSS Maritime (body.ns-no-maritime, cf. functions.php) ---------- */
body.ns-no-maritime { margin: 0; background: var(--sand); color: var(--ink); font-family: var(--f-body); font-size: clamp(16px, 1.05vw + 10px, 18px); line-height: 1.55; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: clip; }
body.ns-no-maritime img, body.ns-no-maritime svg, body.ns-no-maritime video { display: block; max-width: 100%; }
body.ns-no-maritime img { height: auto; }
body.ns-no-maritime a { color: inherit; text-decoration-thickness: 1.5px; text-underline-offset: .2em; }
body.ns-no-maritime button, body.ns-no-maritime input, body.ns-no-maritime textarea, body.ns-no-maritime select { font: inherit; color: inherit; }
body.ns-no-maritime button { cursor: pointer; }
body.ns-no-maritime { --ct-reset: 1; }
:where(body.ns-no-maritime) :where(h1, h2, h3, h4, p, ul, ol, dl, dd, figure) { margin: 0; }
:where(body.ns-no-maritime) :where(ul, ol) { padding: 0; }
body.ns-no-maritime .aff-prose :is(ul, ol), body.ns-no-maritime .ct-prose :is(ul, ol) { padding-left: 1.3em; }
html { scroll-padding-top: 100px; }

/* rail de chapitres injecté par le script Maritime du parent : inutile ici */
body.ns-no-maritime .scroll-prog { display: none !important; }

/* ---------- Héros commun ---------- */
.ct-hero { position: relative; overflow: hidden; padding: calc(var(--header-h, 92px) + 44px) 0 56px; background: var(--sand); }
.ct-hero__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: clamp(28px, 4vw, 64px); align-items: center; }
.ct-hero__grid--solo { grid-template-columns: minmax(0, 1fr); }
.ct-hero__title { margin: 14px 0 18px; max-width: 16ch; font-size: clamp(40px, 5.4vw, 88px); }
.ct-hero__title--long { max-width: 20ch; font-size: clamp(36px, 4.6vw, 72px); }
.ct-hero__lead { font-size: clamp(18px, 1.5vw, 22px); line-height: 1.5; max-width: 58ch; color: var(--ink-soft); }
.ct-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.ct-hero__meta { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 22px; font-family: var(--f-mono); font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); }
.ct-hero__meta span::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--coral); margin-right: 8px; vertical-align: 1px; }
.ct-hero__media { position: relative; justify-self: end; width: min(100%, 420px); }
.ct-hero__media img { display: block; width: 100%; height: auto; border: 2px solid var(--ink); border-radius: 999px 999px 30px 30px; box-shadow: var(--shadow-flat); background: var(--green); }
.ct-hero__media::before { content: ""; position: absolute; z-index: -1; inset: 8% -8% -6% 10%; border-radius: 999px 999px 30px 30px; background: repeating-linear-gradient(90deg, var(--sun) 0 22px, var(--cream) 22px 44px); border: 2px solid var(--ink); }
.ct-breadcrumb { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; padding: 0; list-style: none; font-family: var(--f-mono); font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); }
.ct-breadcrumb a { color: var(--ink); text-decoration: none; border-bottom: 1.5px solid var(--coral); }
.ct-breadcrumb li + li::before { content: "/"; margin-right: 8px; color: var(--coral); }

/* badge tournant (sticker) */
.ct-badge { position: absolute; right: clamp(16px, 4vw, 56px); top: calc(var(--header-h, 92px) + 20px); width: clamp(96px, 9vw, 140px); aspect-ratio: 1; display: grid; place-items: center; z-index: 2; pointer-events: none; }
.ct-badge > svg:first-child { position: absolute; inset: 0; width: 100%; height: 100%; animation: ct-spin 18s linear infinite; }
.ct-badge text { font-family: var(--f-mono); font-size: 15.5px; font-weight: 500; letter-spacing: .12em; fill: var(--ink); }
.ct-badge__icon { position: relative; width: 34%; height: 34%; color: var(--coral); }
@keyframes ct-spin { to { transform: rotate(360deg); } }

/* ---------- Sections ---------- */
:where(.ct-section) { --bg: var(--sand); }
.ct-section { position: relative; padding-block: clamp(64px, 8vw, 120px); background: var(--bg, var(--sand)); }
.ct-section--tight { padding-block: clamp(40px, 5vw, 72px); }
.ct-section--paper { --bg: var(--paper); }
.ct-section--ink { --bg: var(--ink); color: var(--cream); }
.ct-section--ink .h2, .ct-section--ink .eyebrow { color: var(--cream); }
.ct-section--ink .h2 em { color: var(--sun); }
.ct-section--ink .section-head__lead { color: rgba(255, 249, 240, .8); }
.ct-section--sun { --bg: var(--sun); }
.ct-h2 { font-size: clamp(32px, 4.2vw, 64px); }
.ct-h3 { font-family: var(--f-display); font-weight: 700; font-size: clamp(22px, 2.1vw, 30px); line-height: 1.1; letter-spacing: -.02em; font-variation-settings: "SOFT" 100, "WONK" 1; }
.ct-h3 em { font-style: italic; font-weight: 400; color: var(--coral-deep); }
.ct-lead { font-size: clamp(18px, 1.4vw, 21px); line-height: 1.55; max-width: 62ch; color: var(--ink-soft); }

/* ---------- Cartes ---------- */
.ct-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; }
.ct-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ct-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ct-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ct-card { position: relative; display: flex; flex-direction: column; gap: 10px; padding: 24px 24px 26px; background: var(--cream); color: var(--ink); border: 2px solid var(--ink); border-radius: var(--r-m); box-shadow: var(--shadow-flat); text-decoration: none; transition: transform .2s var(--ease), box-shadow .2s var(--ease); }
a.ct-card:hover, .ct-card--link:hover { transform: translate(-3px, -3px); box-shadow: 9px 9px 0 var(--ink); }
.ct-card__tag { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--coral-ink); }
.ct-card__title { font-family: var(--f-display); font-weight: 700; font-size: 23px; line-height: 1.12; letter-spacing: -.02em; font-variation-settings: "SOFT" 100, "WONK" 1; }
.ct-card__title a { color: inherit; text-decoration: none; }
.ct-card__title a::after { content: ""; position: absolute; inset: 0; }
.ct-card__text { font-size: 15.5px; line-height: 1.55; color: var(--ink-soft); flex: 1; }
.ct-card__facts { font-family: var(--f-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-soft); }
.ct-card__more { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; color: var(--coral-ink); }
.ct-card__more svg { width: 16px; height: 16px; }
.ct-card--sun { background: var(--sun); }
.ct-card--ink { background: var(--ink); color: var(--cream); }
.ct-card--ink .ct-card__text { color: rgba(255, 249, 240, .8); }
.ct-card--ink .ct-card__tag, .ct-card--ink .ct-card__more { color: var(--sun); }
.ct-card__num { position: absolute; top: -16px; left: 20px; display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--sun); border: 2px solid var(--ink); font-family: var(--f-display); font-weight: 800; font-size: 18px; }
.ct-card--num { padding-top: 32px; }
.ct-card__list { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; font-size: 15.5px; }
.ct-card__list li { position: relative; padding-left: 22px; }
.ct-card__list li::before { content: ""; position: absolute; left: 0; top: .5em; width: 10px; height: 10px; border-radius: 50%; background: var(--coral); }
.ct-card--ink .ct-card__list li::before { background: var(--sun); }
.ct-card--sun .ct-card__list li::before { background: var(--ink); }

/* ---------- Faits (durée, groupe...) ---------- */
.ct-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin: 0; padding: 0; }
.ct-facts div { padding: 16px 18px; background: var(--cream); border: 2px solid var(--ink); border-radius: 20px; }
.ct-facts dt { font-family: var(--f-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--coral-ink); }
.ct-facts dd { margin: 6px 0 0; font-family: var(--f-display); font-weight: 700; font-size: clamp(18px, 1.6vw, 24px); line-height: 1.12; letter-spacing: -.02em; }
.ct-facts dd small { display: block; margin-top: 4px; font-family: var(--f-body); font-weight: 500; font-size: 14px; line-height: 1.35; color: var(--ink-soft); }

/* ---------- Puces / chips (liens) ---------- */
.ct-chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.ct-chips a, .ct-chips span { display: inline-flex; align-items: center; padding: 10px 16px; border-radius: 999px; border: 2px solid var(--ink); background: var(--cream); color: var(--ink); font-weight: 700; font-size: 15px; text-decoration: none; box-shadow: 3px 3px 0 var(--ink); transition: transform .3s var(--ease-back), box-shadow .3s; }
.ct-chips a:hover { transform: translate(-1px, -1px); box-shadow: 4px 4px 0 var(--ink); }
.ct-chips a.is-active, .ct-chips a[aria-current="page"] { background: var(--ink); color: var(--cream); transform: translate(3px, 3px); box-shadow: 0 0 0 var(--ink); }
.ct-chips--mono a, .ct-chips--mono span { font-family: var(--f-mono); font-weight: 500; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; padding: 8px 14px; }
.ct-trust { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 22px 0 0; padding: 0; list-style: none; font-size: 15px; font-weight: 600; }
.ct-trust li { display: inline-flex; align-items: center; gap: 8px; }
.ct-trust svg { width: 22px; height: 22px; padding: 4px; border-radius: 50%; background: var(--sun); color: var(--ink); border: 1.5px solid var(--ink); }

/* ---------- Blog ---------- */
.ct-feature { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); background: var(--cream); border: 2px solid var(--ink); border-radius: var(--r-l); box-shadow: 10px 10px 0 var(--sea); overflow: hidden; }
.ct-feature__media { position: relative; min-height: 320px; }
.ct-feature__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ct-feature__body { display: flex; flex-direction: column; gap: 14px; padding: clamp(24px, 3.4vw, 48px); border-left: 2px solid var(--ink); }
.ct-feature__title { font-family: var(--f-display); font-weight: 750; font-size: clamp(28px, 3vw, 44px); line-height: 1.04; letter-spacing: -.03em; font-variation-settings: "SOFT" 100, "WONK" 1; }
.ct-feature__title a { color: inherit; text-decoration: none; }
.ct-feature__excerpt { font-size: 17px; line-height: 1.6; color: var(--ink-soft); }
.ct-feature__meta { font-family: var(--f-mono); font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); }
.ct-feature__stamp { position: absolute; top: 18px; left: 18px; padding: 8px 14px; border-radius: 999px; background: var(--sun); border: 2px solid var(--ink); font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; rotate: -3deg; }
.ct-blog-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 18px 32px; margin-bottom: 28px; }
.ct-blog-head .h2 { margin-top: 8px; }
.ct-empty { padding: 32px; border: 2px dashed var(--ink); border-radius: var(--r-m); font-size: 17px; }
.ct-start { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.ct-author { display: grid; grid-template-columns: 120px 1fr; gap: 24px; align-items: center; padding: 24px; background: var(--cream); border: 2px solid var(--ink); border-radius: var(--r-m); box-shadow: var(--shadow-flat); max-width: 760px; }
.ct-author img { width: 120px; height: 150px; object-fit: cover; object-position: 50% 20%; border: 2px solid var(--ink); border-radius: 999px 999px 18px 18px; }
.ct-author p { margin: 6px 0 0; color: var(--ink-soft); font-size: 15.5px; }
.ct-author strong { font-family: var(--f-display); font-size: 22px; letter-spacing: -.02em; }
.ct-author a { color: var(--coral-ink); font-weight: 700; }

/* ---------- Méthodes ---------- */
.ct-family { margin-top: clamp(36px, 5vw, 64px); }
.ct-family__head { display: flex; align-items: center; gap: 18px; margin-bottom: 22px; }
.ct-family__head::after { content: ""; flex: 1; height: 2px; background: var(--ink); opacity: .25; }
.ct-family__head .ct-h3 { margin: 0; }
.ct-match { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.ct-match li { padding: 18px 20px; border-radius: 20px; background: var(--cream); border: 2px solid var(--ink); font-size: 15.5px; line-height: 1.5; color: var(--ink-soft); }
.ct-match strong { display: block; color: var(--ink); font-size: 17px; margin-bottom: 4px; }
.ct-match a { color: var(--coral-ink); font-weight: 700; }
.ct-steps { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.ct-steps .step__num { font-size: clamp(60px, 6vw, 96px); }
.ct-deliv { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px; align-items: start; }
.ct-prose-wide { max-width: 820px; }

/* ---------- Contact ---------- */
.ct-contact { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(28px, 4vw, 60px); align-items: start; }
.ct-form { padding: clamp(22px, 3vw, 40px); background: var(--cream); border: 2px solid var(--ink); border-radius: 30px; box-shadow: 10px 10px 0 var(--sea); }
.ct-form .field { margin-top: 16px; }
.ct-form .field:first-of-type { margin-top: 0; }
.ct-form .field__label { font-weight: 700; font-size: 14.5px; }
.ct-form .field select { width: 100%; min-height: 52px; padding: 12px 16px; border: 2px solid var(--ink); border-radius: 14px; background: #fff; font: inherit; font-size: 16px; color: var(--ink); }
.ct-form .field select:focus, .ct-form .field input:focus, .ct-form .field textarea:focus { outline: none; box-shadow: 0 0 0 4px color-mix(in srgb, var(--sun) 70%, transparent); }
.ct-form details { margin-top: 18px; }
.ct-form summary { cursor: pointer; font-family: var(--f-mono); font-size: 13.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); list-style: none; display: inline-flex; align-items: center; gap: 8px; }
.ct-form summary::-webkit-details-marker { display: none; }
.ct-form summary::before { content: "+"; display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; border: 2px solid var(--ink); font-weight: 700; color: var(--ink); }
.ct-form details[open] summary::before { content: "–"; }
.ct-form .btn { width: 100%; margin-top: 22px; }
.ct-form__note { margin: 12px 0 0; text-align: center; font-size: 13.5px; color: var(--ink-soft); }
.ct-form__title { margin: 6px 0 20px; }
.ct-req { color: var(--coral); }
.ct-success { text-align: center; }
.ct-success__icon { display: inline-grid; place-items: center; width: 72px; height: 72px; margin-bottom: 14px; border-radius: 50%; background: var(--sun); border: 2px solid var(--ink); color: var(--ink); }
.ct-success__icon svg { width: 34px; height: 34px; }
.ct-aside { display: grid; gap: 18px; }
.ct-direct { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.ct-direct li { display: grid; gap: 4px; }
.ct-direct small { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--coral-ink); }
.ct-direct a { font-family: var(--f-display); font-weight: 700; font-size: clamp(22px, 2vw, 30px); letter-spacing: -.02em; color: var(--ink); text-decoration: none; }
.ct-direct a:hover { color: var(--coral-deep); }
.ct-direct p { margin: 0; font-size: 15.5px; color: var(--ink-soft); }
.ct-next { margin: 0; padding: 0; list-style: none; counter-reset: ct; display: grid; gap: 12px; }
.ct-next li { position: relative; padding-left: 46px; font-size: 15.5px; color: var(--ink-soft); counter-increment: ct; }
.ct-next li::before { content: counter(ct, decimal-leading-zero); position: absolute; left: 0; top: -2px; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: var(--sun); border: 2px solid var(--ink); font-family: var(--f-display); font-weight: 800; font-size: 14px; color: var(--ink); }
.ct-next strong { display: block; color: var(--ink); }
.ct-card--ink .ct-next li { color: rgba(255, 249, 240, .8); }
.ct-card--ink .ct-next strong { color: var(--cream); }
.ct-card--ink .ct-next li::before { background: var(--sun); border-color: var(--cream); }

/* ---------- À propos / Yoan ---------- */
.ct-portrait { position: relative; max-width: 440px; }
.ct-portrait::before { content: ""; position: absolute; z-index: 0; inset: 7% -7% -6% 9%; border-radius: 999px 999px 30px 30px; background: repeating-linear-gradient(90deg, var(--sun) 0 22px, var(--cream) 22px 44px); border: 2px solid var(--ink); }
.ct-portrait img { position: relative; z-index: 1; display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 25%; border: 2px solid var(--ink); border-radius: 999px 999px 30px 30px; background: var(--green); }
.ct-compare { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.ct-price { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.ct-price__amount { font-family: var(--f-display); font-weight: 800; font-size: clamp(30px, 2.6vw, 40px); letter-spacing: -.03em; line-height: 1; }
.ct-price__unit { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); }
.ct-card--featured { background: var(--sun); }
.ct-links { display: grid; gap: 12px; max-width: 680px; margin: 0; padding: 0; list-style: none; }
.ct-links a { display: flex; align-items: center; gap: 16px; padding: 16px 20px; background: var(--cream); border: 2px solid var(--ink); border-radius: 20px; color: var(--ink); text-decoration: none; box-shadow: 4px 4px 0 var(--ink); transition: transform .2s var(--ease), box-shadow .2s var(--ease); }
.ct-links a:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 var(--ink); }
.ct-links strong { display: block; font-family: var(--f-display); font-size: 19px; letter-spacing: -.01em; }
.ct-links span { font-size: 14px; color: var(--ink-soft); }
.ct-links svg { width: 22px; height: 22px; flex: none; color: var(--coral); }
.ct-links div { flex: 1; }

/* ---------- Glossaire ---------- */
.ct-letters { position: sticky; top: calc(var(--header-h, 92px) - 16px); z-index: 5; padding: 12px 0; background: var(--sand); }
.ct-gloss { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 24px; padding: clamp(28px, 4vw, 48px) 0; border-top: 2px solid var(--ink); scroll-margin-top: calc(var(--header-h, 92px) + 60px); }
.ct-gloss__letter { font-family: var(--f-display); font-style: italic; font-weight: 400; font-size: clamp(64px, 8vw, 112px); line-height: .8; color: var(--coral-deep); font-variation-settings: "SOFT" 100, "WONK" 1; position: sticky; top: calc(var(--header-h, 92px) + 56px); align-self: start; }
.ct-dl { margin: 0; display: grid; gap: 22px; max-width: 820px; }
.ct-dl > div { scroll-margin-top: calc(var(--header-h, 92px) + 60px); padding: 20px 22px; background: var(--cream); border: 2px solid var(--ink); border-radius: 20px; }
.ct-dl dt { font-family: var(--f-display); font-weight: 700; font-size: 23px; letter-spacing: -.02em; line-height: 1.1; }
.ct-dl dt a { color: inherit; text-decoration: none; }
.ct-dl dt a:hover::after { content: " #"; color: var(--coral); }
.ct-dl dd { margin: 10px 0 0; font-size: 16px; line-height: 1.6; color: var(--ink-soft); }
.ct-dl dd a { color: var(--coral-ink); font-weight: 700; }
.ct-dl .ct-card__more { margin-top: 10px; }

/* ---------- Utilitaires ---------- */
.ct-mt { margin-top: clamp(24px, 3vw, 40px); }
.ct-center { text-align: center; }
.ct-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.ct-note { font-family: var(--f-mono); font-size: 12.5px; letter-spacing: .06em; color: var(--ink-soft); }
.ct-prose { max-width: 760px; font-size: clamp(17px, 1.05vw + 10px, 19px); line-height: 1.7; }
.ct-prose > * + * { margin-top: 1.1em; }
.ct-prose strong { background: linear-gradient(transparent 62%, color-mix(in srgb, var(--sun) 70%, transparent) 62%); }
.ct-prose a { color: var(--coral-ink); text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: .2em; }
.ct-prose h2 { font-family: var(--f-display); font-weight: 750; font-variation-settings: "WONK" 1, "SOFT" 100; font-size: clamp(28px, 3vw, 40px); line-height: 1.08; letter-spacing: -.03em; margin-top: 1.6em; }
.ct-prose h2 em { font-style: italic; font-weight: 400; color: var(--coral-deep); }
.ct-prose ul li::marker { color: var(--coral); }

/* ---------- Réactif ---------- */
@media (max-width: 1240px) {
  .ct-start, .ct-price { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ct-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
  .ct-hero { padding-top: calc(var(--header-h, 84px) + 24px); }
  .ct-hero__grid { grid-template-columns: 1fr; }
  .ct-hero__media { justify-self: start; width: min(100%, 300px); }
  .ct-badge { display: none; }
  .ct-contact, .ct-compare, .ct-match, .ct-deliv, .ct-grid--3, .ct-grid--2 { grid-template-columns: 1fr; }
  .ct-feature { grid-template-columns: 1fr; }
  .ct-feature__body { border-left: 0; border-top: 2px solid var(--ink); }
  .ct-feature__media { min-height: 240px; }
  .ct-gloss { grid-template-columns: 1fr; gap: 10px; }
  .ct-gloss__letter { position: static; font-size: 56px; }
}
@media (max-width: 760px) {
  .ct-hero { padding-bottom: 36px; }
  .ct-hero__title { max-width: none; }
  .ct-start, .ct-price, .ct-grid--4 { grid-template-columns: 1fr; }
  .ct-author { grid-template-columns: 1fr; }
  .ct-author img { width: 96px; height: 120px; }
  .ct-form { box-shadow: var(--shadow-flat); }
  .ct-hero__actions .btn { width: 100%; }
  .ct-letters { position: static; }
}
@media (prefers-reduced-motion: reduce) {
  .ct-badge > svg:first-child { animation: none; }
  a.ct-card:hover, .ct-links a:hover, .ct-chips a:hover { transform: none; }
}

/* Erreurs de formulaire : message précis, champ fautif marqué */
.ct-form__error { margin: 0 0 14px; padding: 12px 16px; border: 1.5px solid var(--coral); border-radius: 12px; background: color-mix(in srgb, var(--coral) 10%, var(--sand)); color: var(--coral-deep, #B02A22); font-weight: 600; font-size: 15px; }
.ct-form input.is-invalid, .ct-form textarea.is-invalid, .ct-form select.is-invalid { border-color: var(--coral); box-shadow: 0 0 0 4px color-mix(in srgb, var(--coral) 25%, transparent); }
