/* ==========================================================================
   Astuce PC — elementor.css
   Fait correspondre le balisage des conteneurs et widgets Elementor au système
   de design V3 (tokens.css + style.css). Chargée après le CSS d'Elementor.
   Principe : on pose les classes de la maquette dans Avancé → Classes CSS
   (conteneurs : section, section--dark, services, service… ; widgets : kicker,
   lede, btn--cta, list-check, mount, faq…) et cette feuille fait le reste.
   Toutes les règles sont préfixées par .astuce (classe du <body>) pour gagner
   sur les styles globaux du kit Elementor.
   ========================================================================== */

/* 1. Conteneurs ----------------------------------------------------------- */
.astuce .e-con { --container-widget-width: 100%; --gap: 0px; --padding-block-start: 0px; --padding-inline-end: 0px; --padding-block-end: 0px; --padding-inline-start: 0px; }
/* Les classes de la maquette posées sur un widget (Avancé → Classes CSS) tombent sur son enveloppe : on y neutralise les styles de composant de style.css */
.astuce .elementor-widget.btn--cta, .astuce .elementor-widget.btn--primary, .astuce .elementor-widget.btn--secondary, .astuce .elementor-widget.btn--lg, .astuce .elementor-widget.btn--cta:hover, .astuce .elementor-widget.btn--cta:focus-visible { display: block; background: none; border: 0; box-shadow: none; padding: 0; min-height: 0; transform: none; font-size: inherit; color: inherit; }
.astuce .elementor-widget-heading.kicker { display: block; margin: 0; }
.astuce .elementor-widget-heading.kicker::before { content: none; }
.astuce .elementor-widget-icon-list.list-check li, .astuce .elementor-widget-icon-list.list-dash li { padding-left: 0; }
.astuce .elementor-widget-icon-list.list-check li::before, .astuce .elementor-widget-icon-list.list-check li::after, .astuce .elementor-widget-icon-list.list-dash li::before { content: none; }
.astuce .elementor-widget-accordion.faq { border-top: 0; }
.astuce .elementor-widget-heading.offer__tag .elementor-heading-title { margin: 0; }
.astuce .e-con.contact__aside > .elementor-widget-image { padding: 0; border: 0; background: none; }
.astuce .elementor-widget-text-editor.price, .astuce .elementor-widget-text-editor.lede, .astuce .elementor-widget-text-editor.signature, .astuce .elementor-widget-text-editor.hero__note { display: block; }
.astuce .e-con.section, .astuce .e-con.section--alt, .astuce .e-con.section--brand, .astuce .e-con.section--dark,
.astuce .e-con.hero-dark, .astuce .e-con.hero-split, .astuce .e-con.reassurance, .astuce .e-con.cta-final { padding-inline: var(--gutter); }
.astuce .e-con.section { padding-block: var(--section-y); }
.astuce .e-con.hero-split { padding-block: clamp(var(--space-7), 9vw, var(--space-9)); }
.astuce .e-con.reassurance { padding-block: var(--space-7); }
.astuce .e-con.hero-dark { padding-block: clamp(var(--space-7), 9vw, var(--space-9)) 0; }
.astuce .e-con.boxed { max-width: var(--container); margin-inline: auto; padding: 0; }
/* Grilles et colonnes : la classe active la grille de style.css, on force display pour passer devant --display */
.astuce .e-con.services, .astuce .e-con.parts-grid, .astuce .e-con.steps, .astuce .e-con.programme, .astuce .e-con.offers,
.astuce .e-con.audience, .astuce .e-con.method__list, .astuce .e-con.reassurance-list, .astuce .e-con.booking,
.astuce .e-con.parts, .astuce .e-con.feature, .astuce .e-con.local, .astuce .e-con.contact, .astuce .e-con.delays,
.astuce .e-con.hero-split__grid, .astuce .e-con.landing-hero, .astuce .e-con.method, .astuce .e-con.contact__aside { display: grid; padding: 0; }
.astuce .e-con.actions, .astuce .e-con.hero__actions { display: flex; flex-direction: row; flex-wrap: wrap; gap: var(--space-3); padding: 0; }
.astuce .e-con.hero__actions { margin-top: var(--space-5); }
.astuce .e-con.reassurance-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5) var(--space-4); }
.astuce .e-con.reassurance-list > .e-con { padding-left: var(--space-4); border-left: 1px solid var(--color-rule); }
.astuce .e-con.hero-split__grid { gap: var(--space-6); align-items: center; }
@media (min-width: 48em) { .astuce .e-con.reassurance-list { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-5); } }
@media (min-width: 64em) { .astuce .e-con.hero-split__grid { grid-template-columns: 6fr 5fr; gap: var(--space-8); } }
/* Cartes : conteneurs qui portent les classes service / offer / parts-grid__item / method__item */
.astuce .e-con.service, .astuce .e-con.offer, .astuce .e-con.aside-card { padding: var(--space-5); background: var(--color-surface); border: 1px solid var(--color-rule-card); border-radius: var(--radius-lg); }
.astuce .e-con.parts-grid__item { padding: var(--space-4) 0 0; border-top: 1px solid var(--color-rule); }
.astuce .e-con.parts-grid__item h3.elementor-heading-title { font-size: var(--text-2); margin-bottom: var(--space-2); }
.astuce .e-con.method__item { padding: var(--space-5) 0 0; border-top: 1px solid var(--color-on-dark-rule-strong); }
.astuce .e-con.service--featured, .astuce .e-con.offer--pack, .astuce .e-con.visit { background: var(--color-dark); background-image: var(--glow-hero); border-color: transparent; color: var(--color-on-dark); }
.astuce .e-con.service--featured .elementor-heading-title, .astuce .e-con.offer--pack .elementor-heading-title, .astuce .e-con.visit .elementor-heading-title { color: var(--color-on-dark); }
.astuce .e-con.service--featured .elementor-widget-text-editor, .astuce .e-con.offer--pack .elementor-widget-text-editor, .astuce .e-con.visit .elementor-widget-text-editor { color: var(--color-on-dark-soft); }
.astuce .e-con.hero-dark__media { padding: 0; max-width: var(--container); margin: clamp(3rem, 7vw, 5rem) auto calc(-1 * var(--hero-overlap)); position: relative; z-index: 1; }
.astuce .e-con.hero-dark__media img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radius-lg); box-shadow: var(--shadow-photo); }
@media (min-width: 64em) { .astuce .e-con.hero-dark__media img { aspect-ratio: 2 / 1; border-radius: var(--radius-xl); } }
.astuce .e-con.hero-dark + .e-con.reassurance { padding-top: calc(var(--hero-overlap) + var(--space-7)); }
.astuce .e-con.hero-dark, .astuce .e-con.cta-final { text-align: center; }
.astuce .e-con.hero-dark .elementor-widget-heading .elementor-heading-title { max-width: 20ch; margin-inline: auto; }
.astuce .e-con.hero-dark .elementor-widget-text-editor, .astuce .e-con.cta-final .elementor-widget-text-editor { max-width: 40rem; margin-inline: auto; }
.astuce .e-con.hero-dark .e-con.hero__actions, .astuce .e-con.cta-final .e-con.hero__actions { justify-content: center; }
.astuce .e-con.embed-placeholder { display: grid; place-content: center; text-align: center; }

/* 2. Titres et textes ----------------------------------------------------- */
.astuce .elementor-heading-title { font-family: var(--font-display); font-weight: var(--weight-black); letter-spacing: var(--tracking-display); line-height: var(--leading-tight); color: var(--brand-900); margin: 0 0 var(--space-4); text-wrap: balance; }
.astuce h1.elementor-heading-title { font-size: clamp(var(--text-5), 6vw, var(--text-7)); }
.astuce .hero-dark h1.elementor-heading-title { font-size: clamp(var(--text-5), 6vw, var(--text-8)); color: var(--color-on-dark); }
.astuce h2.elementor-heading-title { font-size: clamp(var(--text-4), 4.5vw, var(--text-6)); }
.astuce h3.elementor-heading-title { font-size: var(--text-3); letter-spacing: -0.02em; line-height: 1.15; }
.astuce h4.elementor-heading-title { font-size: var(--text-2); font-weight: var(--weight-bold); letter-spacing: -0.01em; line-height: var(--leading-snug); margin-bottom: var(--space-3); }
.astuce .section--dark .elementor-heading-title, .astuce .hero-dark .elementor-heading-title, .astuce .cta-final .elementor-heading-title { color: var(--color-on-dark); }
.astuce .elementor-widget-heading.kicker .elementor-heading-title { display: inline-flex; align-items: center; gap: 0.75rem; margin: 0 0 var(--space-4); font-size: var(--text-1); font-weight: var(--weight-bold); letter-spacing: var(--tracking-caps); line-height: 1.3; text-transform: uppercase; color: var(--brand-600); max-width: none; }
.astuce .elementor-widget-heading.kicker .elementor-heading-title::before { content: ""; flex: none; width: 1.75rem; height: 3px; border-radius: 2px; background: var(--gradient-line); }
.astuce .section--dark .elementor-widget-heading.kicker .elementor-heading-title, .astuce .hero-dark .elementor-widget-heading.kicker .elementor-heading-title, .astuce .cta-final .elementor-widget-heading.kicker .elementor-heading-title { color: var(--brand-200); }
.astuce .elementor-widget-heading.steps__value .elementor-heading-title { margin-bottom: var(--space-3); font-size: var(--text-5); letter-spacing: -0.03em; line-height: 1.05; color: var(--brand-800); }
.astuce .elementor-widget-heading.reassurance__value .elementor-heading-title { font-size: var(--text-5); letter-spacing: -0.03em; line-height: 1.05; color: var(--brand-800); margin-bottom: var(--space-2); }
.astuce .elementor-widget-heading.price .elementor-heading-title { font-size: var(--text-3); letter-spacing: -0.02em; line-height: 1.2; color: var(--brand-800); margin: var(--space-2) 0 0; }
.astuce .elementor-widget-heading.offer__price .elementor-heading-title { font-size: var(--text-6); letter-spacing: -0.03em; line-height: 1; margin: var(--space-2) 0; }
.astuce .elementor-widget-heading.reviews__score .elementor-heading-title { font-size: var(--text-8); letter-spacing: -0.04em; line-height: 1; text-align: center; }
.astuce .e-con.cta-final { background: var(--color-bg); color: var(--color-text); }
.astuce .e-con.cta-final > .e-con { padding: var(--space-7) var(--gutter); background: var(--color-dark); background-image: var(--glow-hero); color: var(--color-on-dark); border-radius: var(--radius-xl); }
.astuce .hero-dark :focus-visible, .astuce .section--dark :focus-visible, .astuce .site-footer :focus-visible, .astuce .service--featured :focus-visible, .astuce .offer--pack :focus-visible, .astuce .visit :focus-visible, .astuce .cta-final > .e-con :focus-visible { outline-color: var(--electric-400); }
.astuce .e-con.contact__aside h2.elementor-heading-title, .astuce .e-con.contact__aside h3.elementor-heading-title, .astuce .visit h2.elementor-heading-title { font-size: var(--text-3); letter-spacing: -0.02em; line-height: 1.15; margin-bottom: var(--space-3); }
.astuce .elementor-widget-text-editor { font-family: var(--font-text); font-size: var(--text-1); line-height: var(--leading-body); color: var(--color-text); }
.astuce .elementor-widget-text-editor p { margin: 0 0 var(--space-4); }
.astuce .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.astuce .elementor-widget-text-editor.lede { font-size: var(--text-2); line-height: 1.5; max-width: var(--measure); color: var(--color-text-soft); }
.astuce .elementor-widget-text-editor.text-soft, .astuce .elementor-widget-text-editor.hero__note, .astuce .elementor-widget-text-editor.meta__label, .astuce .elementor-widget-text-editor.reassurance__label { color: var(--color-text-soft); }
.astuce .elementor-widget-text-editor.hero__note { margin-top: var(--space-4); }
.astuce .elementor-widget-text-editor.signature { font-family: var(--font-display); font-weight: var(--weight-bold); font-size: var(--text-2); color: var(--brand-800); }
.astuce .section--dark .elementor-widget-text-editor, .astuce .hero-dark .elementor-widget-text-editor, .astuce .cta-final .elementor-widget-text-editor { color: var(--color-on-dark); }
.astuce .section--dark .elementor-widget-text-editor.lede, .astuce .hero-dark .elementor-widget-text-editor.lede, .astuce .cta-final .elementor-widget-text-editor.lede, .astuce .hero-dark .elementor-widget-text-editor.hero__note { color: var(--color-on-dark-soft); }
.astuce .section--dark .elementor-widget-text-editor a, .astuce .hero-dark .elementor-widget-text-editor a { color: var(--color-on-dark); }

/* 3. Boutons -------------------------------------------------------------- */
.astuce .elementor-widget-button .elementor-button { display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem; min-height: var(--control-h); padding: 0.75rem 1.75rem; border: 1.5px solid transparent; border-radius: var(--radius-pill); background: var(--brand-700); font-family: var(--font-display); font-size: var(--text-1); font-weight: var(--weight-bold); line-height: 1.2; color: var(--paper-50); fill: currentColor; box-shadow: none; transition: background-color 0.15s, border-color 0.15s, color 0.15s, box-shadow 0.15s, transform 0.15s; }
.astuce .elementor-widget-button .elementor-button:hover, .astuce .elementor-widget-button .elementor-button:focus-visible { background: var(--brand-900); color: var(--paper-50); }
.astuce .elementor-widget-button.btn--cta .elementor-button { background: var(--gradient-cta); color: var(--paper-50); box-shadow: var(--glow-cta); }
.astuce .section--dark .elementor-widget-button.btn--cta .elementor-button, .astuce .hero-dark .elementor-widget-button.btn--cta .elementor-button, .astuce .cta-final .elementor-widget-button.btn--cta .elementor-button, .astuce .service--featured .elementor-widget-button.btn--cta .elementor-button, .astuce .offer--pack .elementor-widget-button.btn--cta .elementor-button, .astuce .visit .elementor-widget-button.btn--cta .elementor-button { background: var(--gradient-cta-on-dark); border-color: rgba(250, 249, 247, 0.35); }
.astuce .site-header .elementor-widget-button .elementor-button { box-shadow: none; }
.astuce .elementor-widget-button.btn--cta .elementor-button:hover, .astuce .elementor-widget-button.btn--cta .elementor-button:focus-visible { background: var(--gradient-cta-hover); transform: translateY(-1px); }
.astuce .elementor-widget-button.btn--secondary .elementor-button { background: transparent; border-color: var(--color-rule-strong); color: var(--brand-800); }
.astuce .elementor-widget-button.btn--secondary .elementor-button:hover, .astuce .elementor-widget-button.btn--secondary .elementor-button:focus-visible { background: var(--brand-50); border-color: var(--brand-700); color: var(--brand-800); }
.astuce .section--dark .elementor-widget-button.btn--secondary .elementor-button, .astuce .hero-dark .elementor-widget-button.btn--secondary .elementor-button, .astuce .cta-final .elementor-widget-button.btn--secondary .elementor-button, .astuce .offer--pack .elementor-widget-button.btn--secondary .elementor-button, .astuce .visit .elementor-widget-button.btn--secondary .elementor-button { border-color: rgba(250, 249, 247, 0.55); color: var(--paper-50); background: transparent; }
.astuce .section--dark .elementor-widget-button.btn--primary .elementor-button, .astuce .offer--pack .elementor-widget-button.btn--primary .elementor-button, .astuce .visit .elementor-widget-button.btn--primary .elementor-button, .astuce .service--featured .elementor-widget-button.btn--primary .elementor-button { background: var(--paper-50); border-color: var(--paper-50); color: var(--brand-900); }
.astuce .elementor-widget-button.btn--lg .elementor-button { min-height: 4rem; padding: 1rem 2.25rem; font-size: var(--text-2); }
.astuce .elementor-widget-button .elementor-button-content-wrapper { gap: 0.6rem; }
.astuce .elementor-widget-button .elementor-button:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .astuce .elementor-widget-button .elementor-button { transition: none; transform: none !important; } }

/* 4. Listes à icônes ------------------------------------------------------ */
.astuce .elementor-widget-icon-list.list-check .elementor-icon-list-item, .astuce .elementor-widget-icon-list.list-dash .elementor-icon-list-item { align-items: flex-start; gap: 0.9rem; }
.astuce .elementor-widget-icon-list.list-check .elementor-icon-list-items .elementor-icon-list-item + .elementor-icon-list-item { margin-top: var(--space-3); }
.astuce .elementor-widget-icon-list.list-check .elementor-icon-list-icon { flex: none; display: grid; place-items: center; width: 1.85rem; height: 1.85rem; border-radius: 50%; background: var(--brand-600); }
.astuce .section--dark .elementor-widget-icon-list.list-check .elementor-icon-list-icon, .astuce .offer--pack .elementor-widget-icon-list.list-check .elementor-icon-list-icon, .astuce .visit .elementor-widget-icon-list.list-check .elementor-icon-list-icon { background: var(--brand-500); }
.astuce .elementor-widget-icon-list.list-check .elementor-icon-list-icon svg { width: 0.95rem; height: 0.95rem; fill: var(--paper-50); }
.astuce .elementor-widget-icon-list.list-check .elementor-icon-list-icon i { font-size: 0.95rem; color: var(--paper-50); }
.astuce .elementor-widget-icon-list.list-dash .elementor-icon-list-icon { flex: none; width: 1.25rem; height: 3px; margin-top: 0.75em; border-radius: 2px; background: var(--brand-300); overflow: hidden; }
.astuce .elementor-widget-icon-list.list-dash .elementor-icon-list-icon svg, .astuce .elementor-widget-icon-list.list-dash .elementor-icon-list-icon i { display: none; }
.astuce .elementor-widget-icon-list .elementor-icon-list-text { font-family: var(--font-text); font-size: var(--text-1); line-height: var(--leading-body); color: var(--color-text); padding-left: 0; }
.astuce .section--dark .elementor-widget-icon-list .elementor-icon-list-text, .astuce .offer--pack .elementor-widget-icon-list .elementor-icon-list-text, .astuce .visit .elementor-widget-icon-list .elementor-icon-list-text { color: var(--color-on-dark); }

/* 5. Images --------------------------------------------------------------- */
.astuce .elementor-widget-image img { width: 100%; height: auto; object-fit: cover; }
.astuce .elementor-widget-image.mount img, .astuce .elementor-widget-image.hero-split__media img { border-radius: var(--radius-lg); }
.astuce .elementor-widget-image.hero-split__media img { aspect-ratio: 4 / 3; }
.astuce .elementor-widget-image.ratio-4-3 img { aspect-ratio: 4 / 3; }
.astuce .elementor-widget-image.ratio-3-2 img { aspect-ratio: 3 / 2; }
.astuce .elementor-widget-image.ratio-4-5 img { aspect-ratio: 4 / 5; }
.astuce .elementor-widget-image.service__media img { aspect-ratio: 4 / 3; border-radius: var(--radius-md); }
.astuce .elementor-widget-image figcaption, .astuce .elementor-widget-image .widget-image-caption { padding: var(--space-3) var(--space-1) 0; text-align: left; font-size: var(--text-1); color: var(--color-text-soft); }
@media (min-width: 64em) { .astuce .elementor-widget-image.mount img, .astuce .elementor-widget-image.hero-split__media img { border-radius: var(--radius-xl); } .astuce .elementor-widget-image.hero-split__media img { aspect-ratio: 4 / 5; } }

/* 6. Accordéon (FAQ) ------------------------------------------------------ */
.astuce .elementor-widget-accordion.faq .elementor-accordion { max-width: 52rem; border-top: 1px solid var(--color-rule); }
.astuce .elementor-widget-accordion.faq .elementor-accordion-item { border: 0; border-bottom: 1px solid var(--color-rule); }
.astuce .elementor-widget-accordion.faq .elementor-tab-title { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); min-height: 4.5rem; padding: var(--space-3) 0; border: 0; font-family: var(--font-display); font-size: var(--text-2); font-weight: var(--weight-bold); letter-spacing: -0.01em; line-height: 1.3; color: var(--brand-900); }
.astuce .elementor-widget-accordion.faq .elementor-tab-title .elementor-accordion-icon { order: 2; width: 2.25rem; height: 2.25rem; display: grid; place-items: center; border-radius: 50%; background: var(--brand-50); color: var(--brand-700); }
.astuce .elementor-widget-accordion.faq .elementor-tab-title a { color: inherit; }
.astuce .elementor-widget-accordion.faq .elementor-tab-content { padding: 0 0 var(--space-4); border: 0; max-width: var(--measure); font-size: var(--text-1); line-height: var(--leading-body); }

/* 7. Formulaires (Elementor Pro) ----------------------------------------- */
.astuce .elementor-widget-form.form { max-width: 40rem; }
.astuce .elementor-widget-form .elementor-field-group { margin-bottom: var(--space-4); }
.astuce .elementor-widget-form .elementor-field-label { display: block; margin-bottom: var(--space-2); font-size: var(--text-1); font-weight: var(--weight-semibold); color: var(--color-text); }
.astuce .elementor-widget-form .elementor-field-group .elementor-field { min-height: var(--control-h); padding: 0.75rem 1.25rem; border: 1.5px solid var(--color-rule-strong); border-radius: var(--radius-md); background: var(--paper-50); color: var(--brand-900); font-size: var(--text-1); }
.astuce .elementor-widget-form .elementor-field-group .elementor-field:focus { border-color: var(--electric-500); outline: 3px solid var(--color-focus); outline-offset: 2px; }
.astuce .elementor-widget-form textarea.elementor-field { min-height: 10rem; }
.astuce .elementor-widget-form .elementor-field-type-acceptance .elementor-field-subgroup label { font-weight: var(--weight-regular); font-size: var(--text-1); display: flex; gap: var(--space-3); align-items: center; min-height: var(--tap-min); }
.astuce .elementor-widget-form .elementor-field-type-acceptance input[type="checkbox"] { width: 1.75rem; height: 1.75rem; accent-color: var(--brand-700); }
.astuce .elementor-widget-form .elementor-field-group.elementor-error .elementor-field { border-color: var(--error-600); }
.astuce .elementor-widget-form .elementor-message { padding: var(--space-4); border: 2px solid var(--ok-600); border-radius: var(--radius-md); background: var(--ok-50); font-size: var(--text-1); font-weight: var(--weight-semibold); color: var(--brand-900); }
.astuce .elementor-widget-form .elementor-message.elementor-message-danger, .astuce .elementor-widget-form .elementor-help-inline { border-color: var(--error-600); background: transparent; color: var(--error-600); font-size: var(--text-1); font-weight: var(--weight-semibold); }
.astuce .elementor-widget-form .elementor-button[type="submit"] { min-height: 4rem; padding: 1rem 2.25rem; border-radius: var(--radius-pill); background: var(--brand-900); font-family: var(--font-display); font-size: var(--text-2); font-weight: var(--weight-bold); color: var(--paper-50); }

/* 8. Menu de navigation (Elementor Pro) ---------------------------------- */
.astuce .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item { display: flex; align-items: center; min-height: 3rem; padding: 0 1rem; border-radius: var(--radius-pill); font-family: var(--font-display); font-size: var(--text-1); font-weight: var(--weight-semibold); color: var(--brand-900); }
.astuce .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover, .astuce .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:focus-visible { background: var(--brand-50); color: var(--brand-900); }
.astuce .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.elementor-item-active { background: var(--brand-50); font-weight: var(--weight-bold); color: var(--brand-700); }
.astuce .elementor-widget-nav-menu .elementor-menu-toggle { min-width: var(--tap-min); min-height: var(--tap-min); border: 1.5px solid var(--color-rule-strong); border-radius: var(--radius-pill); color: var(--brand-900); }
.astuce .elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item { min-height: var(--control-h); font-size: var(--text-1); font-family: var(--font-display); font-weight: var(--weight-semibold); color: var(--brand-900); }
.astuce .e-con.site-header { position: sticky; top: 0; z-index: 50; background: var(--color-bg); border-bottom: 1px solid var(--color-rule); padding: var(--space-2) var(--gutter); min-height: 4.5rem; }
.astuce .e-con.site-footer { position: relative; background: var(--color-dark); color: var(--color-on-dark); padding: var(--space-8) var(--gutter) var(--space-5); }
.astuce .e-con.site-footer::before { content: ""; position: absolute; inset: 0 0 auto; height: 3px; background: var(--gradient-line); }
.astuce .e-con.site-footer .elementor-heading-title { font-size: var(--text-1); font-weight: var(--weight-bold); letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--brand-200); margin-bottom: var(--space-3); }
.astuce .e-con.site-footer .elementor-widget-text-editor, .astuce .e-con.site-footer address { color: var(--color-on-dark-soft); }
.astuce .e-con.site-footer a { color: var(--color-on-dark); text-decoration-color: var(--brand-300); }
.astuce .e-con.site-footer .elementor-nav-menu--main { flex-direction: column; }
.astuce .e-con.site-footer .elementor-nav-menu--main .elementor-item { min-height: 2.75rem; padding: 0; border-radius: 0; color: var(--color-on-dark); font-family: var(--font-text); font-weight: var(--weight-regular); text-decoration: underline; text-decoration-color: var(--brand-300); background: none; }
.astuce .e-con.site-footer .hours th, .astuce .e-con.site-footer .hours td { border-bottom-color: var(--color-rule-dark); }

/* 9. Divers --------------------------------------------------------------- */
.astuce .elementor-widget-shortcode .big-phone, .astuce .elementor-widget-text-editor .big-phone { font-size: clamp(var(--text-4), 4vw, var(--text-6)); }
.astuce .elementor-widget-html .stars { justify-content: center; }
.astuce .elementor-widget-html table.hours, .astuce .elementor-widget-shortcode table.hours { width: 100%; }
.astuce .e-con.delays__table { padding: var(--space-4); background: var(--paper-50); border: 1px solid var(--color-rule-card); border-radius: var(--radius-lg); }

/* 10. Compléments après mise en préprod -------------------------------- */
.astuce .e-con.feature__meta { display: flex; flex-direction: row; flex-wrap: wrap; gap: var(--space-4) var(--space-6); margin-block: var(--space-5); padding: var(--space-4) 0; border-block: 1px solid var(--color-rule); }
.astuce .e-con.feature__meta > .e-con { --width: auto; width: auto; flex: 0 0 auto; padding: 0; }
.astuce .e-con.programme { counter-reset: prog; }
.astuce .e-con.programme > .e-con { counter-increment: prog; display: flex; flex-direction: row; align-items: flex-start; gap: var(--space-3); padding: var(--space-4) 0 0; border-top: 1px solid var(--color-rule); }
.astuce .e-con.programme > .e-con > .e-con { flex: 1 1 0; min-width: 0; width: auto; --width: auto; }
.astuce .e-con.programme > .e-con::before { content: counter(prog); position: static; inset: auto; flex: none; display: inline-grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: var(--brand-600); color: var(--paper-50); font-family: var(--font-display); font-size: var(--text-2); font-weight: var(--weight-black); }
.astuce .e-con.programme > .e-con > .e-con { padding: 0; }
.astuce .e-con.programme h3.elementor-heading-title { font-size: var(--text-2); margin-bottom: var(--space-1); }
.astuce .e-con.steps > .e-con { padding-left: var(--space-4); border-left: 1px solid var(--color-rule); }
.astuce .e-con.method__item > .e-con, .astuce .e-con.service > .e-con, .astuce .e-con.offer > .e-con { padding: 0; }
.astuce table.hours, .astuce table.hours th, .astuce table.hours td { border: 0; background: none; }
.astuce table.hours th, .astuce table.hours td { padding: 0.6rem 0; border-bottom: 1px solid var(--color-rule); text-align: left; }
.astuce .site-footer table.hours th, .astuce .site-footer table.hours td { border-bottom-color: var(--color-rule-dark); }
.astuce .e-con.contact__aside > .elementor-widget-image, .astuce .e-con.contact__aside > .elementor-widget-image > .elementor-widget-container { padding: 0; border: 0; background: none; border-radius: 0; }
.astuce .elementor-widget-text-editor .field__hint { color: var(--color-text-soft); }
