/* Le Web est à vous — ajustements propres à WordPress (blocs natifs, éditeur). Le design commun est dans site.css. */

/* Remises à zéro des styles par défaut des blocs */
.wp-site-blocks { padding: 0; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
main figure.wp-block-image, .editor-styles-wrapper figure.wp-block-image { margin: 0; }
.wp-block-image img { height: auto; }
.wp-block-details summary { cursor: pointer; }
a:where(:not(.wp-element-button)) { text-decoration: none; }
.prose a, .link { text-decoration: underline; text-decoration-color: var(--coral); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.admin-bar .hd { top: 32px; }
@media (max-width: 782px) { .admin-bar .hd { top: 46px; } }

/* Apparitions au défilement sur les blocs natifs (classe « reveal ») */
.js .reveal { opacity: 0; transform: translateY(28px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.js .reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .js .reveal { opacity: 1; transform: none; transition: none; } }

/* Espacements de sections */
.section-tight { padding-bottom: clamp(30px, 5vw, 60px); }
.section-tight-lg { padding-bottom: clamp(80px, 10vw, 140px); }
.ph-after, .err-actions { padding-bottom: clamp(80px, 10vw, 140px); }
.ph-after { margin-top: calc(-1 * clamp(30px, 5vw, 60px)); }

/* Cartes d'offre (blocs Groupe) — poignées de sélection au survol dessinées en arrière-plan */
.offer { position: relative; display: flex; flex-direction: column; gap: 14px; padding: clamp(26px, 3vw, 36px); background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); transition: transform .5s var(--ease), box-shadow .5s var(--ease), border-color .3s; }
.offer::after {
	content: ''; position: absolute; inset: -5px; pointer-events: none; opacity: 0; transform: scale(.98); transition: opacity .25s, transform .35s var(--ease);
	background:
		linear-gradient(var(--white) 0 0) 1.5px 1.5px / 7px 7px no-repeat,
		linear-gradient(var(--white) 0 0) calc(100% - 1.5px) 1.5px / 7px 7px no-repeat,
		linear-gradient(var(--white) 0 0) 1.5px calc(100% - 1.5px) / 7px 7px no-repeat,
		linear-gradient(var(--white) 0 0) calc(100% - 1.5px) calc(100% - 1.5px) / 7px 7px no-repeat,
		linear-gradient(var(--coral) 0 0) 0 0 / 10px 10px no-repeat,
		linear-gradient(var(--coral) 0 0) 100% 0 / 10px 10px no-repeat,
		linear-gradient(var(--coral) 0 0) 0 100% / 10px 10px no-repeat,
		linear-gradient(var(--coral) 0 0) 100% 100% / 10px 10px no-repeat;
}
.offer:hover { transform: translateY(-6px); box-shadow: 0 30px 60px -36px rgba(16,38,74,.45); border-color: var(--coral); }
.offer:hover::after { opacity: 1; transform: none; }
.offer.featured { background: var(--ink-deep); border-color: var(--ink-deep); color: #dfe6f2; }
.offer.featured h3, .offer.featured .offer-price, .offer.featured .offer-price strong { color: var(--white); }
.offer.featured .offer-pitch, .offer.featured .offer-note { color: #b9c5d9; }
.offer.featured li::before { background: var(--coral); }
.offer .offer-flag { position: absolute; top: -16px; right: 24px; margin: 0; padding: 4px 12px; background: var(--coral); color: var(--ink-deep); border-radius: 6px; transform: rotate(3deg); font-size: 1.25rem; }
.offer .offer-pitch { color: var(--muted); font-size: 1.02rem; min-height: 3.2em; }
.offer .offer-price { display: flex; align-items: baseline; gap: 6px; color: var(--muted); font-weight: 600; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.offer.featured .offer-price { border-color: rgba(255,255,255,.16); color: #b9c5d9; }
.offer .offer-price strong { font: 700 clamp(2.2rem, 3.4vw, 2.9rem)/1 var(--display); letter-spacing: -.04em; color: var(--ink); }
.offer .offer-note { margin-top: -6px; color: var(--coral-ink); font-weight: 600; }
.offer.featured .offer-note { color: var(--coral); }
.offer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; font-size: 1rem; }
.offer li { position: relative; padding-left: 22px; }
.offer li::before { content: ''; position: absolute; left: 0; top: .62em; width: 10px; height: 2px; background: var(--ink); }

/* Témoignages (blocs Groupe) */
.quotes { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(300px, 30%); gap: 22px; margin-top: 40px; padding-bottom: 10px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: var(--coral) transparent; }
.quote .quote-text { font: 600 clamp(1.2rem, 1.7vw, 1.45rem)/1.3 var(--display); color: var(--white); letter-spacing: -.015em; }
@media (max-width: 860px) { .quotes { grid-auto-columns: 84%; } }

/* Légendes manuscrites des images */
.has-hand figcaption { font: 600 1.6rem/1 var(--hand); color: var(--coral-ink); margin: 0; }
.about-photo figcaption { position: absolute; right: -40px; top: 20px; font-size: 1.7rem; transform: rotate(8deg); }
.about-photo, .bio-photo, .pay-photo { position: relative; }
.bio-photo img, .about-photo img { width: min(100%, 325px); }
.bio-photo figcaption { position: absolute; left: -24px; bottom: 30px; font-size: 1.8rem; transform: rotate(-6deg); background: var(--paper); padding: 0 8px; }
.pay-photo figcaption { position: absolute; right: 14px; bottom: -36px; transform: rotate(-3deg); }
.facts-photo figcaption { font-size: .95rem; color: var(--muted); margin-top: 12px; text-align: left; }
.steps-photo { margin-top: 18px !important; }

/* Méthode en 4 étapes (blocs Groupe) */
.steps .step { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 20px; padding: 32px 0; border-top: 1px solid rgba(255,255,255,.16); }
.steps .step:last-child { border-bottom: 1px solid rgba(255,255,255,.16); }
.steps .steps-n { font: 700 3rem/.9 var(--display); color: var(--coral); letter-spacing: -.05em; }
.steps .step h3 { margin-bottom: 8px; }
@media (max-width: 860px) { .steps .step { grid-template-columns: 64px 1fr; } .steps .steps-n { font-size: 2.2rem; } }

/* Formulaire : message d'erreur */
.contact .form-error { padding: 12px 16px; border-radius: 10px; background: #fff1ec; color: var(--coral-ink); font-weight: 600; }

/* Pages légales et articles : contenu en blocs */
.prose .wp-block-table { margin: 0; overflow-x: auto; }
.prose .wp-block-table thead { border-bottom: 0; }
.prose .wp-block-table th, .prose .wp-block-table td { border: 0; border-bottom: 1px solid var(--line); }
.legal-in .prose { min-width: 0; }

/* Éditeur : animations à plat, sans hauteur de défilement */
.editor-styles-wrapper { background: var(--paper); }
.lwav-editor-preview .bs { height: auto; }
.lwav-editor-preview .bs-sticky { position: static; height: auto; padding-block: 60px; }
.lwav-editor-preview .hero-cursor { display: none; }
.lwav-editor-preview .hd { position: relative; }
.editor-styles-wrapper .reveal { opacity: 1; transform: none; }

/* Logos clients : hauteur fixe, largeur selon le logo (WordPress ajoute des attributs width/height) */
.clients img { height: 44px; width: auto; max-width: 160px; object-fit: contain; }
.clients a { display: block; }
@media (max-width: 760px) { .clients img { height: 32px; } }
