/* Hélios Atelier Web : ajustements de la copie statique de Lisa Paunovitch Design (12/10).
   Chargée après les feuilles Elementor (même spécificité, donc elle l'emporte). Chaque bloc dit pourquoi il existe.
   Les corrections issues de la critique visuelle sont dans la section 7. */

/* 1. Animations d'entrée. Les blocs glissaient depuis les bords (slideInLeft, slideInRight, slideInDown),
      effet daté qui faisait aussi déborder la page en largeur le temps de l'animation. Remplacées par un simple
      fondu, sans mouvement, pour les textes et les blocs qui en contiennent (retour de Denis du 13/10 : moins de
      mouvement sur les textes au défilement) ; les photos et vidéos gardent une légère montée. Aucune animation
      si le visiteur a demandé à les réduire. */
@keyframes helios-fondu {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes helios-apparition {
  from { opacity: 0; transform: translate3d(0, 20px, 0); }
  to { opacity: 1; transform: none; }
}
.elementor-element.animated {
  animation-name: helios-fondu !important;
  animation-duration: .6s !important;
  animation-timing-function: ease-out !important;
  animation-fill-mode: both !important;
}
.elementor-element:is(.elementor-widget-image, .elementor-widget-video, .elementor-widget-image-gallery).animated {
  animation-name: helios-apparition !important;
  animation-duration: .8s !important;
  animation-timing-function: cubic-bezier(.16, 1, .3, 1) !important;
}
/* titres sans aucune animation au défilement (retour de Denis du 13/10) : ni le titre, ni son filet, ni le bloc
   animé qui les contient (sinon le titre apparaîtrait en fondu avec lui) */
.elementor-element:is(.elementor-widget-heading, .elementor-widget-divider).elementor-invisible,
.elementor-element.elementor-invisible:has(.elementor-widget-heading) { visibility: visible !important; }
.elementor-element:is(.elementor-widget-heading, .elementor-widget-divider).animated,
.elementor-element.animated:has(.elementor-widget-heading) { animation: none !important; }
@media (prefers-reduced-motion: reduce) {
  .elementor-element.animated { animation: none !important; }
  .elementor-invisible { visibility: visible !important; }
}

/* 2. Sélecteur de langue à drapeaux ronds (modèle FlowLink) : bouton rond au drapeau de la langue
      affichée, menu au survol, au focus clavier ou au toucher (classe .ouvert posée par lisa.js). */
.helios-langues { display: flex; align-items: center; }
.helios-langue { position: relative; margin-left: 12px; }
/* sélecteurs préfixés : le kit Elementor (.elementor-kit-306 button) et le thème (button:hover) colorent
   tous les boutons en jaune puis en rose au survol, avec une spécificité supérieure à une seule classe */
.helios-langue .helios-langue-bouton {
  display: flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; padding: 0; margin: 0;
  border: 1px solid rgba(115, 99, 87, .35); border-radius: 50%;
  background: #fff; color: inherit; cursor: pointer; overflow: hidden;
  transition: border-color .25s, box-shadow .25s;
}
.helios-langue .helios-langue-bouton:hover,
.helios-langue .helios-langue-bouton:focus,
.helios-langue .helios-langue-bouton:focus-visible,
.helios-langue.ouvert .helios-langue-bouton {
  background: #fff; border-color: #736357; box-shadow: 0 0 0 3px rgba(115, 99, 87, .14); outline: none;
}
.helios-drapeau { display: block; flex: 0 0 22px; width: 22px; height: 22px; border-radius: 50%; overflow: hidden; }
.helios-drapeau svg { display: block; width: 100%; height: 100%; }
.helios-langue-menu {
  position: absolute; top: calc(100% + 10px); right: 0; z-index: 10000;
  display: flex; flex-direction: column; gap: 2px;
  min-width: 176px; padding: 6px;
  background: #fff; border: 1px solid #e4dfd8; border-radius: 10px;
  box-shadow: 0 18px 45px rgba(48, 40, 34, .16);
  opacity: 0; visibility: hidden; transform: translateY(-4px);
  transition: opacity .2s, transform .2s, visibility .2s;
}
.helios-langue-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
.helios-langue:hover .helios-langue-menu,
.helios-langue:focus-within .helios-langue-menu,
.helios-langue.ouvert .helios-langue-menu { opacity: 1; visibility: visible; transform: none; }
.helios-langue-menu a {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 10px; border-radius: 6px;
  font-family: "Manjari", sans-serif; font-size: 14px; line-height: 1.2; letter-spacing: .02em;
  text-transform: none; color: #30362E !important; text-decoration: none;
}
.helios-langue-menu a:hover, .helios-langue-menu a:focus-visible { background: #f4f1ec; outline: none; }
.helios-langue-menu a[aria-current] { background: var(--helios-fond); font-weight: 700; }
.helios-coche { flex: 0 0 13px; width: 13px; height: 13px; margin-left: auto; color: #736357; }

/* 3. Pied de page. Le bandeau légal était écrit en 7 px sur ordinateur et 6 px sur mobile : illisible.
      Les liens légaux n'existaient pas sur mobile, ils sont ajoutés au bloc copyright. */
.elementor-266 .elementor-element.elementor-element-d3726ba,
.elementor-266 .elementor-element.elementor-element-ec1930f {
  font-size: 11px; line-height: 1.9; letter-spacing: 1.3px; text-transform: uppercase;
}
.elementor-266 .elementor-element.elementor-element-98b5b32 .elementor-heading-title {
  font-size: 11px; line-height: 2; letter-spacing: 1px; text-transform: uppercase;
}
.elementor-266 .elementor-element.elementor-element-98b5b32 > .elementor-widget-container { margin: 14px 0 0; }
.elementor-266 .elementor-element-d3726ba a,
.elementor-266 .elementor-element-ec1930f a,
.elementor-266 .elementor-element-98b5b32 a {
  color: inherit; text-decoration: none; border-bottom: 1px solid transparent; transition: border-color .2s;
}
.elementor-266 .elementor-element-d3726ba a:hover,
.elementor-266 .elementor-element-ec1930f a:hover,
.elementor-266 .elementor-element-98b5b32 a:hover { border-bottom-color: currentColor; }
.helios-sep { display: inline-block; margin: 0 .55em; opacity: .55; }
@media (max-width: 767px) {
  .elementor-266 .elementor-element.elementor-element-da85d8b .elementor-heading-title { font-size: 13px; line-height: 1.5; }
  .elementor-266 .elementor-element.elementor-element-12590d9 .elementor-icon-list-item > .elementor-icon-list-text,
  .elementor-266 .elementor-element.elementor-element-12590d9 .elementor-icon-list-item > a { font-size: 13px; }
}

/* 4. Pages juridiques (mentions légales, politique de confidentialité, en français et en anglais). */
.helios-legal { max-width: 820px; margin: 0 auto; padding: 72px 24px 96px; color: #4a4a4a; font-family: "Manjari", sans-serif; font-size: 16px; line-height: 1.7; }
.helios-legal-surtitre { margin: 0 0 10px; font-family: "Champagne Limousine", sans-serif; font-size: 12px; letter-spacing: 3px; text-transform: uppercase; color: #736357; }
.helios-legal h1, .helios-legal h2 { text-transform: none; letter-spacing: 0; }
.helios-legal h1 { margin: 0 0 14px; font-family: "Playfair Display", serif; font-size: clamp(32px, 5vw, 46px); font-weight: 400; line-height: 1.15; color: #222; }
.helios-legal-chapo { margin: 0 0 48px; font-size: 18px; color: #6b6b6b; }
.helios-legal-section { padding: 28px 0; border-top: 1px solid #e4dfd8; }
.helios-legal-section h2 { display: flex; align-items: baseline; gap: 14px; margin: 0 0 12px; font-family: "Playfair Display", serif; font-size: 22px; font-weight: 400; color: #222; }
.helios-legal-num { font-family: "Champagne Limousine", sans-serif; font-size: 12px; letter-spacing: 2px; color: #736357; }
.helios-legal p { margin: 0 0 10px; }
.helios-legal a { color: #736357; text-decoration: underline; text-underline-offset: 3px; }
.helios-legal-maj { margin-top: 32px; font-size: 14px; color: #8a8a8a; }
.helios-a-completer { padding: 12px 16px; border-left: 3px solid #F08420; background: #FFF4E8; color: #7a4a14; font-size: 15px; }

/* 5. Photos supprimées du serveur d'origine (Domaine de Dolomieu) : le bloc est masqué tant que le fichier
      manque. habillage.py retire la classe tout seul dès que la photo est remise à son adresse. */
.helios-photo-attendue { display: none !important; }

/* 6. H1 ajouté quand aucun titre visible ne nomme la page (lu par les moteurs et les lecteurs d'écran). */
.helios-h1-cache { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* 7. Critique visuelle (12/10) : correctifs globaux. Chacun a été relevé indépendamment sur plusieurs pages
      (accueil, prestations, portfolio, page projet, à propos, journal) et contre-vérifié sur les captures. */

/* 7.1 Menu. La graisse 300 demandée n'existe pas : seule la coupe 100 (Thin) de Manjari est chargée, d'où des
       liens filiformes à environ 3:1 de contraste. La page active était soulignée en beige sur blanc (invisible).
       Deux gabarits d'en-tête : 2229 (toutes les pages) et 170 (accueil anglais), mêmes réglages, autres identifiants. */
:is(.elementor-2229, .elementor-170) .elementor-element:is(.elementor-element-a4b0ccc, .elementor-element-2ad8dec, .elementor-element-5bc8d8d, .elementor-element-401b789, .elementor-element-33dde43, .elementor-element-6a9aebe, .elementor-element-6f197e1, .elementor-element-c53d2c8) .elementor-nav-menu .elementor-item { font-weight: 400; }
:is(.elementor-2229, .elementor-170) .elementor-element:is(.elementor-element-a4b0ccc, .elementor-element-2ad8dec, .elementor-element-33dde43, .elementor-element-6a9aebe) .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:after { background-color: #736357; }
:is(.elementor-2229, .elementor-170) .elementor-element:is(.elementor-element-a4b0ccc, .elementor-element-2ad8dec, .elementor-element-33dde43, .elementor-element-6a9aebe) .elementor-nav-menu--main .elementor-item.elementor-item-active { color: #222; }

/* 7.2 Tablette (768 à 1024 px) : l'en-tête de bureau se repliait en deux burgers qui ouvraient chacun une moitié
       du menu. On sert l'en-tête mobile, qui montre toutes les entrées en texte. */
@media (min-width: 768px) and (max-width: 1024px) {
  :is(.elementor-2229, .elementor-170) .elementor-element:is(.elementor-element-d4a6d6e, .elementor-element-541d50a) { display: none !important; }
  :is(.elementor-2229, .elementor-170) .elementor-element:is(.elementor-element-8857eea, .elementor-element-203d199).elementor-hidden-tablet { display: block !important; }
  :is(.elementor-2229, .elementor-170) .elementor-element:is(.elementor-element-61f9d80, .elementor-element-89976e0) img { height: 72px; }
  /* chaque menu tient sur une ligne dans la colonne de droite (menus de l'en-tête mobile écrits en 15 px tracké 3,3 px) */
  :is(.elementor-2229, .elementor-170) .elementor-element:is(.elementor-element-5bc8d8d, .elementor-element-401b789, .elementor-element-6f197e1, .elementor-element-c53d2c8) .elementor-nav-menu .elementor-item { font-size: 13px; letter-spacing: 1.6px; word-spacing: 0; }
}
@media (max-width: 1024px) {
  :is(.elementor-2229, .elementor-170) .elementor-element:is(.elementor-element-401b789, .elementor-element-c53d2c8) > .elementor-widget-container { margin: 0; }
}

/* 7.3 Mobile : en-tête de 208 px, collant (désactivé dans le HTML par habillage.py), menu en 10 px. */
@media (max-width: 767px) {
  :is(.elementor-2229, .elementor-170) .elementor-element:is(.elementor-element-5bc8d8d, .elementor-element-401b789, .elementor-element-6f197e1, .elementor-element-c53d2c8) .elementor-nav-menu .elementor-item { font-size: 12.5px; letter-spacing: 1.6px; word-spacing: 0; }
  :is(.elementor-2229, .elementor-170) .elementor-element:is(.elementor-element-5bc8d8d, .elementor-element-401b789, .elementor-element-6f197e1, .elementor-element-c53d2c8) .elementor-nav-menu--main .elementor-item { padding-top: 8px; padding-bottom: 8px; }
  :is(.elementor-2229, .elementor-170) .elementor-element:is(.elementor-element-401b789, .elementor-element-c53d2c8) > .elementor-widget-container { margin-top: -6px; }
}

/* 7.4 Texte courant : les blocs de texte étaient en 13 px (moins sur certaines pages), justifiés sans césure,
       avec des rivières de blancs dans les colonnes étroites. Classe posée par habillage.py sur les blocs longs. */
.elementor .helios-texte-long :is(p, li) { font-size: max(15px, 1em); line-height: 1.7; }
/* texte justifié (48 blocs déclarés en justify dans les feuilles Elementor) : aligné à gauche, avec césure */
.elementor .helios-justifie, .elementor .helios-justifie :is(p, li) { text-align: start !important; -webkit-hyphens: manual; hyphens: manual; overflow-wrap: break-word; }

/* 7.5 Témoignages : citations en 11 px, flèches du carrousel à 2:1 de contraste (seul accès à 5 avis sur 8). */
.elementor .elementor-element.elementor-widget-testimonial-carousel .elementor-testimonial__text { font-size: 14px; line-height: 1.65; letter-spacing: .2px; }
.elementor .elementor-element.elementor-widget-testimonial-carousel .elementor-testimonial__name { font-size: 14px; }
.elementor .elementor-element.elementor-widget-testimonial-carousel .elementor-testimonial__title { font-size: 12px; font-weight: 400; }
.elementor .elementor-element.elementor-widget-testimonial-carousel .elementor-swiper-button {
  display: flex; align-items: center; justify-content: center; width: 40px; height: 40px;
  border-radius: 50%; background: #fff; color: #736357; opacity: 1; box-shadow: 0 1px 4px rgba(48, 40, 34, .12);
}
.elementor .elementor-element.elementor-widget-testimonial-carousel .elementor-swiper-button.swiper-button-disabled { opacity: .35; }

/* 7.6 Vidéos : bouton lecture fixé à 170 px sur tous les écrans (il couvrait les trois quarts de la vignette sur mobile). */
main.site-main .elementor-widget-video.elementor-element .elementor-custom-embed-play i { font-size: clamp(56px, 9vw, 120px); opacity: .9; text-shadow: 0 2px 14px rgba(0, 0, 0, .35); }

/* 7.7 Pied de page : coordonnées en #78716E sur beige (3,94:1, sous le seuil AA) passées au taupe de l'identité
       (4,73:1) ; nom en Cinzel, police hors identité chargée pour cette seule ligne, remplacé par Champagne Limousine. */
.elementor-266 .elementor-element:is(.elementor-element-ad95ace, .elementor-element-c128b22, .elementor-element-da85d8b) .elementor-heading-title { color: #736357; }
.elementor-266 .elementor-element:is(.elementor-element-ad34e60, .elementor-element-12590d9) .elementor-icon-list-text { color: #736357; }
.elementor-266 .elementor-element.elementor-element-ad95ace .elementor-heading-title { font-family: "Champagne Limousine", sans-serif; font-size: 13px; font-weight: 400; letter-spacing: .2em; text-transform: uppercase; }
.elementor-266 .elementor-element.elementor-element-c128b22 .elementor-heading-title { font-size: 15px; line-height: 1.5; }
.elementor-266 .elementor-element:is(.elementor-element-ad34e60, .elementor-element-12590d9) .elementor-icon-list-item > a { color: inherit; }
@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-266 .elementor-element.elementor-element-ad34e60 .elementor-icon-list-text { white-space: nowrap; }
}
@media (max-width: 767px) {
  .elementor-266 .elementor-element.elementor-element-85e0579 { --icon-size: 16px; --icon-padding: .7em; }
}

/* 7.8 Journal : étiquette de catégorie (le lien vers les anciennes pages de catégorie est retiré). */
.helios-categorie { display: inline-block; }

/* 8. Mise en page tablette et mobile, par motifs repérés par habillage.py (pages françaises et anglaises). */

/* 8.1 Bloc « texte + photo » : empilé sous 1025 px, photo d'abord, texte sur toute la largeur. Sur tablette, la
       photo en largeur garde son format (plafonnée à 640 px de haut, recadrée seulement au-delà : les planches
       d'ambiance perdaient les bords de leur cadre) ; une photo en hauteur ou presque carrée (helios-duo-portrait) s'affiche entière,
       centrée, plutôt que rognée de moitié pour remplir la largeur. */
@media (max-width: 1024px) {
  .elementor-section.helios-duo > .elementor-container { flex-direction: column !important; flex-wrap: nowrap; }
  .elementor-section.helios-duo > .elementor-container > .elementor-column { width: 100% !important; max-width: 100%; }
  .elementor-section.helios-duo > .elementor-container > .helios-duo-image { order: -1; }
  .elementor-section.helios-duo > .elementor-container > .elementor-column > .elementor-element-populated { margin-left: 0 !important; margin-right: 0 !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-section.helios-duo .helios-duo-image .elementor-widget-image a { display: block; }
  .elementor-section.helios-duo .helios-duo-image .elementor-widget-image img { width: 100%; height: auto !important; max-height: min(640px, 72vw); object-fit: cover; }
  .elementor-section.helios-duo .helios-duo-image.helios-duo-portrait .elementor-widget-image img { width: auto; max-width: 100%; height: min(680px, 88vw) !important; max-height: none; }
  .elementor-section.helios-duo > .elementor-container > .elementor-column:not(.helios-duo-image) > .elementor-element-populated { padding: 48px 64px !important; }
}

/* 8.2 Témoignages : colonne réglée à 50 % sur tablette, la moitié droite de l'écran restait vide. */
@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-column.helios-col-temoignages { width: 100% !important; }
}

/* 8.3 Portfolio (FR 1503, EN 3386). Bouton « Découvrir » en blanc sur taupe à 59 % (2,5:1) : contour taupe lisible.
       Vignettes à 270 px de haut quelle que soit la largeur (rendus rognés) : format 3:2 partout. Tablette : deux
       colonnes au lieu de trois colonnes de 195 px. Dernière carte, seule sur sa rangée : centrée. */
:is(.elementor-1503, .elementor-3386) .elementor-element.elementor-widget-button .elementor-button.elementor-button-link {
  background-color: transparent; color: #736357; border: 1px solid #736357; border-radius: 0;
  font-size: 12px; letter-spacing: .2em; line-height: 1; padding: 15px 26px; transition: background-color .25s, color .25s;
}
:is(.elementor-1503, .elementor-3386) .elementor-element.elementor-widget-button .elementor-button.elementor-button-link:hover,
:is(.elementor-1503, .elementor-3386) .elementor-element.elementor-widget-button .elementor-button.elementor-button-link:focus-visible {
  background-color: #736357; color: #fff;
}
:is(.elementor-1503, .elementor-3386) .elementor-element.elementor-widget-image.imt img { width: 100%; height: auto !important; aspect-ratio: 3 / 2; object-fit: cover; }
:is(.elementor-1503, .elementor-3386) .elementor-col-33:not(:has(.elementor-widget)) { display: none; }
:is(.elementor-1503, .elementor-3386) .elementor-section > .elementor-container { justify-content: center; }
:is(.elementor-1503, .elementor-3386) .elementor-col-33 .elementor-widget-text-editor :is(b, strong) { font-weight: inherit; }
@media (min-width: 768px) and (max-width: 1024px) {
  /* une seule grille de deux colonnes pour toutes les cartes (les sept rangées Elementor de trois cartes
     donnaient sinon une alternance de rangées de deux et d'une carte) */
  :is(.elementor-1503, .elementor-3386) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; padding: 0 24px; }
  :is(.elementor-1503, .elementor-3386) > .elementor-section:first-child { grid-column: 1 / -1; }
  :is(.elementor-1503, .elementor-3386) > .elementor-section:not(:first-child),
  :is(.elementor-1503, .elementor-3386) > .elementor-section:not(:first-child) > .elementor-container { display: contents; }
  :is(.elementor-1503, .elementor-3386) > .elementor-section:not(:first-child) .elementor-col-33 { width: 100% !important; margin-bottom: 40px; }
}

/* 8.4 Accueil (FR 1583, EN 3366). Bandeau « Notre dernière réalisation » : voile uniforme à 50 % qui éteignait
       toute la photo, remplacé par un dégradé sous le texte ; bouton « Découvrez » en blanc à 3,4:1, passé en plein. */
@media (min-width: 768px) {
  :is(.elementor-1583, .elementor-3366) .elementor-element.elementor-element-895e3fc > .elementor-background-overlay {
    background-color: transparent; background-image: linear-gradient(90deg, rgba(34, 34, 34, .72) 0%, rgba(34, 34, 34, .45) 45%, rgba(34, 34, 34, .1) 100%); opacity: 1;
  }
}
:is(.elementor-1583, .elementor-3366) .elementor-element.elementor-element-bc19f32 .elementor-button {
  background-color: #fff; color: #222; border: 1px solid #fff; font-size: 13px; letter-spacing: 3px; padding: 14px 28px; transition: background-color .25s, color .25s;
}
:is(.elementor-1583, .elementor-3366) .elementor-element.elementor-element-bc19f32 .elementor-button:hover,
:is(.elementor-1583, .elementor-3366) .elementor-element.elementor-element-bc19f32 .elementor-button:focus-visible { background-color: transparent; color: #fff; }
.elementor-1583 .elementor-element.elementor-element-7e3d9fa { color: #736357; }
.elementor-1583 .elementor-element.elementor-element-d0019b2 { line-height: 1.3; }
@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-1583 .elementor-element:is(.elementor-element-68768f5, .elementor-element-96c5a5d) { width: 100% !important; }
}

/* 8.5 Focus clavier visible partout (les liens du menu n'avaient aucun contour au focus). */
.elementor-kit-306 a:focus-visible, .elementor-kit-306 button:focus-visible, .elementor-kit-306 [role="button"]:focus-visible { outline: 2px solid #736357 !important; outline-offset: 3px; }

/* 8.6 Photos à hauteur imposée sans recadrage : elles étaient écrasées (galeries d'articles en 500 px de haut).
       Les règles Elementor qui fixent déjà object-fit (logos en contain) sont plus spécifiques et restent intactes. */
.elementor-widget-image img { object-fit: cover; }

/* 8.7 Titres saisis en casse française que le kit passait en capitales à chaque mot. */
.helios-casse { text-transform: none; }
html[lang^="fr"] body.single-post h1.elementor-heading-title { text-transform: none; }

/* 8.8 Articles : encart du titre avec les marges du bureau à toutes les largeurs (titre à un mot par ligne sur
       tablette), suite de lecture en fin d'article. */
@media (max-width: 1024px) {
  body.single-post [data-elementor-type="wp-post"] > .elementor-top-section:first-child > .elementor-container > .elementor-column:first-child > .elementor-element-populated { padding: 40px 32px !important; }
}
/* mobile : l'étiquette de rubrique remontée de 28 px par une marge négative collait au haut de l'encart (12 px au-dessus,
   40 px dessous), l'encart s'arrêtait à 12 px du bord droit et le texte de l'article courait à 10 px des bords */
@media (max-width: 767px) {
  body.single-post [data-elementor-type="wp-post"] > .elementor-top-section:first-child > .elementor-container > .elementor-column:first-child > .elementor-element-populated { margin-right: 0 !important; }
  body.single-post [data-elementor-type="wp-post"] > .elementor-top-section:first-child > .elementor-container > .elementor-column:first-child > .elementor-element-populated > .elementor-element:first-child > .elementor-widget-container { margin-top: 0 !important; }
  body.single-post [data-elementor-type="wp-post"] > .elementor-top-section:not(:first-child) .elementor-widget-text-editor > .elementor-widget-container { padding-left: 14px !important; padding-right: 14px !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  body.single-post [data-elementor-type="wp-post"] > .elementor-top-section:not(:first-child) .elementor-widget-text-editor > .elementor-widget-container { padding-left: 22px !important; padding-right: 22px !important; }
}
.helios-fin-article { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 32px; max-width: 1000px; margin: 24px auto 72px; padding: 28px 24px 0; border-top: 1px solid #e4dfd8; }
.helios-fin-article a { font-family: "Champagne Limousine", sans-serif; font-size: 13px; letter-spacing: .18em; text-transform: uppercase; color: #736357; text-decoration: none; padding: 10px 0; border-bottom: 1px solid transparent; transition: border-color .2s; }
.helios-fin-article a:hover, .helios-fin-article a:focus-visible { border-bottom-color: currentColor; }

/* 8.9 Pied de page sur tablette : colonnes 25/50/25 d'ordinateur (numéro coupé, icônes sur trois rangées),
       bandeau légal sur deux colonnes qui coupaient les mots. */
.elementor-266 .elementor-element:is(.elementor-element-d3726ba, .elementor-element-ec1930f, .elementor-element-98b5b32) { -webkit-hyphens: manual; hyphens: manual; }
@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-266 .elementor-element.elementor-element-e552f4e { width: 40%; }
  .elementor-266 .elementor-element.elementor-element-85a16f8 { width: 26%; }
  .elementor-266 .elementor-element.elementor-element-995e43f { width: 34%; }
  /* le logo était figé à 234 × 132 px en object-fit:cover : dans une colonne plus étroite, il était rogné */
  .elementor-266 .elementor-element.elementor-element-9145efb img { width: 100% !important; max-width: 200px; height: auto !important; object-fit: contain !important; }
  .elementor-266 .elementor-element.elementor-element-5584f9d { width: 100%; max-width: 100%; --grid-column-gap: 6px; --grid-row-gap: 10px; --icon-padding: .55em; }
  .elementor-266 .elementor-element.elementor-element-c16964e .elementor-column { width: 100% !important; }
  .elementor-266 .elementor-element:is(.elementor-element-d3726ba, .elementor-element-ec1930f) { text-align: center; }
  .elementor-266 .elementor-element.elementor-element-ec1930f > .elementor-widget-container { padding: 0; }
}

/* 8.10 Appel à prendre contact : déplacé dans le pied de page le 13/10, voir 10.3. */

/* 8.11 Prestations (FR 1496, EN 3376). Mobile : chapeau dans une colonne de 226 px (marges d'ordinateur jamais
       annulées), étapes 2 et 4 restées alignées à droite. Tablette : texte des étapes collé aux photos. Titre de page
       et titres d'étapes de taille presque égale. */
@media (max-width: 767px) {
  :is(.elementor-1496, .elementor-3376) .elementor-element.elementor-element-25fcaa9 > .elementor-element-populated { margin: 0; --e-column-margin-right: 0px; --e-column-margin-left: 0px; padding: 36px 24px 8px; }
  :is(.elementor-1496, .elementor-3376) .elementor-element.elementor-element-4095306 > .elementor-widget-container { margin-top: 0; }
  :is(.elementor-1496, .elementor-3376) .elementor-element:is(.elementor-element-9839583, .elementor-element-6648438, .elementor-element-7a15a55, .elementor-element-5c1e389) { text-align: left; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  :is(.elementor-1496, .elementor-3376) .elementor-element:is(.elementor-element-6896689e, .elementor-element-52eb718d, .elementor-element-20ba2d3, .elementor-element-6edf22e) > .elementor-element-populated { padding: 56px 40px; }
}
.elementor-1496 .elementor-element.elementor-element-636b183 .elementor-heading-title,
.elementor-3376 .elementor-element.elementor-element-72dd22e .elementor-heading-title { font-size: 44px; line-height: 1.15; }
:is(.elementor-1496, .elementor-3376) .elementor-element:is(.elementor-element-e693737, .elementor-element-9839583, .elementor-element-2a2ebe4, .elementor-element-7a15a55) .elementor-heading-title { font-size: 28px; line-height: 1.25; }
@media (max-width: 1024px) {
  .elementor-1496 .elementor-element.elementor-element-636b183 .elementor-heading-title,
  .elementor-3376 .elementor-element.elementor-element-72dd22e .elementor-heading-title { font-size: 38px; }
  :is(.elementor-1496, .elementor-3376) .elementor-element:is(.elementor-element-e693737, .elementor-element-9839583, .elementor-element-2a2ebe4, .elementor-element-7a15a55) .elementor-heading-title { font-size: 26px; }
}
@media (max-width: 767px) {
  .elementor-1496 .elementor-element.elementor-element-636b183 .elementor-heading-title,
  .elementor-3376 .elementor-element.elementor-element-72dd22e .elementor-heading-title { font-size: 32px; }
  :is(.elementor-1496, .elementor-3376) .elementor-element:is(.elementor-element-e693737, .elementor-element-9839583, .elementor-element-2a2ebe4, .elementor-element-7a15a55) .elementor-heading-title { font-size: 24px; }
}

/* 8.12 Contact (FR 1513, EN 3391). Mobile : formulaire dans une colonne de 210 px (marges d'ordinateur), photo
        d'escalier de 750 px de haut entre la carte et le formulaire. Champs sans étiquette, saisie forcée en
        capitales espacées de 13 px (illisible, et zoom automatique sur iPhone sous 16 px). */
@media (max-width: 767px) {
  :is(.elementor-1513, .elementor-3391) .elementor-element.elementor-element-2c1e9da > .elementor-element-populated { margin: 0; --e-column-margin-left: 0px; padding: 36px 24px 40px; }
  :is(.elementor-1513, .elementor-3391) .elementor-element.elementor-element-8d4f166.elementor-widget-image img { height: 200px !important; object-fit: cover; object-position: center 55%; }
  :is(.elementor-1513, .elementor-3391) .elementor-element.elementor-element-11603a6 { font-size: 16px; line-height: 1.6; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  :is(.elementor-1513, .elementor-3391) .elementor-element.elementor-element-2c1e9da > .elementor-element-populated { margin-left: 24px; --e-column-margin-left: 24px; padding: 40px; }
}
@media (max-width: 1024px) {
  :is(.elementor-1513 .elementor-element-a0b5c3c, .elementor-3391 .elementor-element-6e73439) > .elementor-element-populated { box-shadow: none; }
}
:is(.elementor-1513, .elementor-3391) .elementor-element.elementor-element-11603a6 { font-size: 17px; line-height: 1.65; max-width: 620px; }
:is(.elementor-1513, .elementor-3391) .elementor-element.elementor-element-4bf018f .elementor-field-group .elementor-field { font-size: 16px; letter-spacing: .2px; text-transform: none; }
:is(.elementor-1513, .elementor-3391) .elementor-element.elementor-element-4bf018f .elementor-field-group .elementor-field::placeholder { color: transparent; }
:is(.elementor-1513, .elementor-3391) .elementor-element.elementor-element-4bf018f .elementor-field-group > label.helios-label {
  display: block; width: 100%; margin: 0 0 2px; padding: 0; font-family: "Champagne Limousine", sans-serif; font-size: 12px; font-weight: 400; letter-spacing: 2px; text-transform: uppercase; color: #736357;
}
:is(.elementor-1513, .elementor-3391) .elementor-element.elementor-element-4bf018f .elementor-button[type="submit"] {
  font-family: "Champagne Limousine", sans-serif; font-size: 13px; font-weight: 400; letter-spacing: 4px; min-height: 48px; padding: 12px 44px;
  background-color: #736357; border-color: #736357; color: #fff; transition: background-color .25s, border-color .25s;
}
:is(.elementor-1513, .elementor-3391) .elementor-element.elementor-element-4bf018f .elementor-button[type="submit"]:hover,
:is(.elementor-1513, .elementor-3391) .elementor-element.elementor-element-4bf018f .elementor-button[type="submit"]:focus-visible { background-color: #30362E; border-color: #30362E; color: #fff; }
.elementor-1513 .elementor-element.elementor-element-78fbfe6 .elementor-heading-title,
.elementor-3391 .elementor-element.elementor-element-b46cb0b .elementor-heading-title { font-family: "Champagne Limousine", sans-serif; font-size: 15px; font-weight: 400; line-height: 1.5; letter-spacing: 3px; color: #736357; }
:is(.elementor-1513 .elementor-element-01c745b, .elementor-3391 .elementor-element-8e519b1) a { color: #736357; text-decoration: underline; text-decoration-color: rgba(115, 99, 87, .45); text-underline-offset: 3px; }
.elementor-1513 .elementor-element.elementor-element-fc6fc2c { display: none; }

/* 9. Revue de non-régression (13/10, chaque page comparée au site d'origine à trois largeurs). */

/* 9.1 Pied : le bandeau légal touchait le bas de la page (le titre retiré sous le pied lui donnait de l'air) ;
       sur mobile, le bloc copyright prenait la largeur de sa plus longue ligne et restait calé à gauche. */
@media (min-width: 1025px) { .elementor-266 .elementor-element.elementor-element-c16964e { padding-bottom: 22px; } }
@media (max-width: 767px) {
  .elementor-266 .elementor-element.elementor-element-98b5b32 { width: 100% !important; max-width: 100% !important; }
  .elementor-266 .elementor-element.elementor-element-4dc4e3b { padding-bottom: 20px; }
}

/* 9.2 Blocs « texte + photo » empilés : la colonne photo gardait la marge de 100 px prévue quand elle venait après
       le texte (trou sous l'en-tête), la photo 98 % de largeur, une image en position absolue (accueil anglais) se
       posait sur le texte, et les filets tirés vers le haut en % mordaient sur les titres sur tablette. */
@media (max-width: 1024px) {
  .elementor-section.helios-duo > .elementor-container > .helios-duo-image > .elementor-element-populated { padding-top: 0 !important; padding-bottom: 0 !important; }
  .elementor-section.helios-duo .helios-duo-image .elementor-widget-image { width: 100% !important; max-width: 100% !important; }
  .elementor-section.helios-duo .helios-duo-image .elementor-absolute { position: relative !important; top: auto !important; left: auto !important; right: auto !important; }
  .elementor-section.helios-duo .elementor-widget-divider > .elementor-widget-container { margin-top: 0 !important; }
}
@media (max-width: 767px) {
  .elementor-section.helios-duo .helios-duo-image .elementor-absolute img { height: auto !important; }
}
/* sur ordinateur, la photo d'un bloc texte + photo s'aligne sur le haut du texte (le texte agrandi la décalait) */
@media (min-width: 1025px) {
  .elementor-section.helios-duo > .elementor-container > .helios-duo-image > .elementor-widget-wrap { align-content: flex-start; align-items: flex-start; }
}

/* 9.3 Témoignages : la bordure des cartes tombait au bord de la zone masquée du carrousel (droite, puis bas sur
       mobile). Un pixel de marge intérieure la remet dedans. */
.elementor .elementor-element.elementor-widget-testimonial-carousel .elementor-main-swiper { padding: 1px; }

/* 9.4 Accueil : bandeau « Notre dernière réalisation » sur mobile, le surtitre fin passait sur les lampes. */
@media (max-width: 767px) {
  :is(.elementor-1583, .elementor-3366) .elementor-element.elementor-element-895e3fc > .elementor-background-overlay {
    background-color: transparent; background-image: linear-gradient(180deg, rgba(34, 34, 34, .7) 0%, rgba(34, 34, 34, .5) 55%, rgba(34, 34, 34, .35) 100%); opacity: 1;
  }
}


/* 9.6 Accueils : la photo « Bienvenue » restait à sa hauteur fixe (700 px, 625 px en anglais) alors que le bloc de
       texte, en 15 px, est devenu plus haut : vide blanc sous la photo. Sur ordinateur, elle remplit sa colonne. */
@media (min-width: 1025px) {
  .elementor-1583 .elementor-element.elementor-element-270dfa5 > .elementor-widget-wrap { position: relative; }
  .elementor-1583 .elementor-element.elementor-element-9e95ebf { position: absolute !important; inset: 0; margin: 0; }
  .elementor-1583 .elementor-element.elementor-element-9e95ebf > .elementor-widget-container { height: 100%; }
  .elementor-1583 .elementor-element.elementor-element-9e95ebf img { width: 100%; height: 100% !important; object-fit: cover; }
  .elementor-3366 .elementor-element.elementor-element-7edc9f5 { bottom: 0; }
  .elementor-3366 .elementor-element.elementor-element-7edc9f5 > .elementor-widget-container { height: 100%; }
  .elementor-3366 .elementor-element.elementor-element-7edc9f5 img { height: 100% !important; }
}

/* 9.7 CGV : certains paragraphes courts restaient en 12 px à côté des autres passés en 15 px. */
.elementor-2089 .elementor-widget-text-editor :is(p, li) { font-size: max(15px, 1em); line-height: 1.7; }

/* 9.8 Fin d'article : flèche dessinée (le caractère « ← » se lisait comme un tiret dans la police du site). */
.helios-fin-article a { display: inline-flex; align-items: center; gap: 8px; }
.helios-fleche { flex: 0 0 auto; }

/* 9.9 Rangées de photos (une photo par colonne, repérées par habillage.py, format de chaque photo en --helios-r) :
       chaque colonne prend une largeur proportionnelle au format de sa photo, donc toutes les photos de la rangée
       ont la même hauteur, entières. Elementor leur imposait 400 à 500 px de haut : écrasées sur l'origine, puis
       recadrées jusqu'à la moitié de leur largeur (planches d'ambiance réduites à « AM », texture d'un article
       coupée), avec des vides sous la voisine restée à son format. Sous 768 px, elles s'empilent à leur format. */
@media (min-width: 768px) {
  .elementor-section.helios-rangee > .elementor-container > .elementor-column { flex: var(--helios-r, 1) 1 0% !important; width: auto !important; max-width: none !important; min-width: 0; padding-left: 10px; padding-right: 10px; }
  /* la marge intérieure passe de l'enfant à la colonne : comptée à part par flex, elle ne fausse plus les hauteurs */
  .elementor-section.helios-rangee > .elementor-container > .elementor-column > .elementor-element-populated { padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important; }
  .elementor-section.helios-rangee .elementor-widget-image, .elementor-section.helios-rangee .elementor-widget-image > .elementor-widget-container { width: 100% !important; max-width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; padding-left: 0 !important; padding-right: 0 !important; }
  .elementor-section.helios-rangee .elementor-widget-image a { display: block; }
  .elementor-section.helios-rangee .elementor-widget-image img { width: 100% !important; max-width: 100% !important; height: auto !important; max-height: none !important; }
}

/* 9.10 Prestations : le texte de la 4e étape (168 signes, sous le seuil des blocs longs) restait en 13 px à côté
        des trois autres passées en 15 px. Numéros de téléphone jamais coupés en fin de ligne. */
:is(.elementor-1496, .elementor-3376) .elementor-element.elementor-element-5c1e389,
:is(.elementor-1496, .elementor-3376) .elementor-element.elementor-element-5c1e389 :is(p, li) { font-size: 15px; line-height: 1.7; }
a[href^="tel:"] { white-space: nowrap; }

/* 10. Retours de Denis du 13/10. */

/* 10.1 En-tête collé (ordinateur) : le logo empilé, réduit par le module d'en-tête collant, laissait une barre de
        91 px (112 px en 1920). Logo en ligne, monogramme à gauche du texte (composé par habillage.py depuis le logo
        d'origine) : barre de 60 px. Le module fixe en ligne la largeur des images et la hauteur minimale, d'où les
        !important. */
/* masqué hors état collé : la règle d'Elementor qui affiche les images de widget (display: inline-block) est plus
   spécifique qu'une simple classe, d'où la sélection complète et le !important */
.elementor-widget-image img.helios-logo-ligne { display: none !important; }
@media (min-width: 1025px) {
  .she-header .elementor-widget-image img.helios-logo-ligne { display: inline-block !important; width: auto !important; height: 40px !important; max-width: 100% !important; object-fit: contain !important; animation: helios-logo-fondu .35s ease; }
  .she-header .elementor-widget-image img:not(.helios-logo-ligne) { display: none !important; }
  .she-header > .elementor-container { min-height: 60px !important; }
  .she-header .elementor-column:has(.helios-logo-ligne) > .elementor-widget-wrap { align-content: center; align-items: center; }
}
@keyframes helios-logo-fondu { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .she-header .elementor-widget-image img.helios-logo-ligne { animation: none; } }

/* 10.2 Accueils (FR 1583, EN 3366) : 72 px de blanc entre le bandeau « Notre dernière réalisation » et « Notre
        savoir-faire » ; la citation flottait sous les témoignages, sur le même blanc : elle passe sur fond gris avec
        de l'air, les vidéos passent sur fond blanc (alternance blanc, gris, blanc jusqu'au pied). */
:is(.elementor-1583, .elementor-3366) .elementor-element.elementor-element-895e3fc { margin-bottom: 0 !important; }
.elementor-1583 .elementor-element.elementor-element-383af55,
.elementor-3366 .elementor-element.elementor-element-872581e { background-color: var(--helios-fond) !important; padding-top: 96px !important; padding-bottom: 96px !important; }
.elementor-1583 .elementor-element.elementor-element-45756a6,
.elementor-3366 .elementor-element.elementor-element-ddbbc36 { background-color: transparent !important; background-image: none !important; margin-top: 0 !important; padding-top: 80px !important; }
@media (max-width: 767px) {
  .elementor-1583 .elementor-element.elementor-element-383af55,
  .elementor-3366 .elementor-element.elementor-element-872581e { padding-top: 64px !important; padding-bottom: 64px !important; }
  .elementor-1583 .elementor-element.elementor-element-45756a6,
  .elementor-3366 .elementor-element.elementor-element-ddbbc36 { padding-top: 56px !important; }
}

/* 10.3 Pied de page : l'appel « Parlons de votre lieu » formait un bloc de 470 px au-dessus du pied. Il prend la
        colonne du milieu (habillage.py), le logo passe à droite au-dessus des icônes. Tablette : appel sur toute la
        largeur, coordonnées et logo en dessous. Mobile : appel en tête du pied. */
.helios-pied-appel { width: 100%; text-align: center; }
.helios-pied-appel .helios-pied-surtitre { margin: 0 0 10px; font-family: "Champagne Limousine", sans-serif; font-size: 13px; line-height: 1.5; letter-spacing: .25em; text-transform: uppercase; color: #736357; }
.helios-pied-appel h2.helios-pied-titre { margin: 0 0 12px; font-family: "Playfair Display", serif; font-size: 30px; font-weight: 400; line-height: 1.2; letter-spacing: .3px; text-transform: none; color: #30362E; text-wrap: balance; }
.helios-pied-appel .helios-pied-texte { max-width: 440px; margin: 0 auto 22px; font-family: "Manjari", sans-serif; font-size: 15px; line-height: 1.6; color: #5f5953; text-wrap: balance; }
.helios-pied-appel a.helios-pied-bouton { display: inline-block; padding: 15px 30px 13px; background: #736357; color: #fff; font-family: "Champagne Limousine", sans-serif; font-size: 13px; letter-spacing: .2em; text-transform: uppercase; text-decoration: none; transition: background-color .25s; }
.helios-pied-appel a.helios-pied-bouton:hover, .helios-pied-appel a.helios-pied-bouton:focus-visible { background: #30362E; color: #fff; }
.elementor-266 .elementor-element.elementor-element-a171997 { padding-top: 48px !important; padding-bottom: 32px !important; }
.elementor-266 .elementor-element.elementor-element-995e43f > .elementor-widget-wrap { flex-direction: column; flex-wrap: nowrap; align-items: center; align-content: center; gap: 22px; }
.elementor-266 .elementor-element.elementor-element-995e43f > .elementor-widget-wrap > .elementor-element { margin-bottom: 0; }
.elementor-266 .elementor-element.elementor-element-9145efb { width: auto; }
.elementor-266 .elementor-element.elementor-element-9145efb img { width: 190px !important; max-width: 100%; height: auto !important; object-fit: contain !important; }
.elementor-266 .elementor-element.elementor-element-85a16f8 > .elementor-widget-wrap { align-content: center; align-items: center; }
@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-266 .elementor-element.elementor-element-a171997 > .elementor-container { flex-wrap: wrap; }
  .elementor-266 .elementor-element.elementor-element-85a16f8 { order: -1; width: 100% !important; }
  .elementor-266 .elementor-element.elementor-element-85a16f8 > .elementor-widget-wrap { padding-bottom: 36px; }
  .elementor-266 .elementor-element:is(.elementor-element-e552f4e, .elementor-element-995e43f) { width: 50% !important; }
  .helios-pied-appel h2.helios-pied-titre { font-size: 28px; }
}
@media (max-width: 767px) {
  .elementor-266 .elementor-element.elementor-element-52325c3 .helios-pied-appel { padding: 28px 16px 32px; margin-bottom: 8px; border-bottom: 1px solid rgba(115, 99, 87, .25); }
  .helios-pied-appel h2.helios-pied-titre { font-size: 26px; }
}

/* 10.4 Hero des accueils : le bandeau « Notre dernière réalisation » remonte en tête de page (habillage.py) et
        reçoit la signature du studio (H1 et lieux). Hiérarchie : le studio d'abord, en grand, puis le projet, en
        légende des photos qui défilent, en bas du hero. Les marges négatives d'Elementor, réglées pour l'ancien
        bandeau, sont remises à zéro. */
.elementor-section.helios-hero { margin: 0 !important; padding: 0 !important; background-size: cover; background-position: center; }
.elementor-section.helios-hero > .elementor-container { min-height: clamp(560px, calc(100vh - 130px), 860px); max-width: 1281px; }
.elementor-section.helios-hero > .elementor-container > .elementor-column > .elementor-widget-wrap { flex-direction: column; flex-wrap: nowrap; align-items: flex-start; align-content: flex-start; padding: clamp(64px, 11vh, 120px) 40px clamp(48px, 7vh, 80px) !important; }
.elementor-section.helios-hero .elementor-widget-wrap > .elementor-element { width: 100%; max-width: 640px; margin: 0 !important; }
.elementor-section.helios-hero .elementor-widget-wrap > .elementor-element > .elementor-widget-container { margin: 0 !important; padding: 0 !important; }
.elementor-section.helios-hero > .elementor-background-overlay { background-image: linear-gradient(90deg, rgba(34, 34, 34, .74) 0%, rgba(34, 34, 34, .5) 45%, rgba(34, 34, 34, .12) 100%), linear-gradient(0deg, rgba(34, 34, 34, .35) 0%, rgba(34, 34, 34, 0) 45%) !important; background-color: transparent !important; opacity: 1 !important; }
.elementor-section.helios-hero .elementor-element.helios-hero-titre .elementor-heading-title { font-family: "Playfair Display", serif; font-size: clamp(40px, 4.2vw, 60px); font-weight: 400; line-height: 1.12; letter-spacing: .2px; text-transform: lowercase; color: #fff; text-align: start; text-wrap: balance; }
.elementor-section.helios-hero .elementor-element.helios-hero-titre .elementor-heading-title::first-letter { text-transform: uppercase; }
.elementor-section.helios-hero .elementor-element.helios-hero-lieux { margin-top: 22px !important; text-align: start; font-family: "Champagne Limousine", sans-serif; font-size: 14px; line-height: 1.6; letter-spacing: .3em; text-transform: uppercase; color: #fff; }
.elementor-section.helios-hero .elementor-element.helios-hero-lieux p { margin: 0; }
.elementor-section.helios-hero .elementor-element.helios-hero-projet { margin-top: auto !important; padding-top: 56px; font-family: "Champagne Limousine", sans-serif; font-size: 13px; letter-spacing: .25em; text-transform: uppercase; color: rgba(255, 255, 255, .85); }
.elementor-section.helios-hero .elementor-element.helios-hero-projet p { margin: 0 0 10px; }
/* noms propres et casse française : le thème mettait une majuscule à chaque mot (« Domaine De Dolomieu ») */
.elementor-section.helios-hero .elementor-element:is(.elementor-element-fa50ad4, .elementor-element-b7b4c67, .elementor-element-2f5263f) .elementor-heading-title { text-transform: none; }
.elementor-section.helios-hero .elementor-element.elementor-element-fa50ad4 .elementor-heading-title { font-size: 32px; font-weight: 400; line-height: 1.2; letter-spacing: .3px; color: #fff; }
.elementor-section.helios-hero .elementor-element:is(.elementor-element-b7b4c67, .elementor-element-2f5263f) { margin-top: 6px !important; }
.elementor-section.helios-hero .elementor-element:is(.elementor-element-b7b4c67, .elementor-element-2f5263f) .elementor-heading-title { font-family: "Manjari", sans-serif; font-size: 16px; font-weight: 400; line-height: 1.5; letter-spacing: .04em; color: rgba(255, 255, 255, .88); }
.elementor-section.helios-hero .elementor-element.elementor-element-6920c7c { display: none; }
.elementor-section.helios-hero .elementor-element.elementor-element-bc19f32 { margin-top: 24px !important; }
/* « Bienvenue » suit désormais le hero : 29 px d'écart en français (72 en anglais), uniformisés */
.elementor-1583 .elementor-element.elementor-element-41bb865, .elementor-3366 .elementor-element.elementor-element-f52b340 { margin-top: 80px !important; }
@media (max-width: 767px) { .elementor-1583 .elementor-element.elementor-element-41bb865, .elementor-3366 .elementor-element.elementor-element-f52b340 { margin-top: 48px !important; } }
/* mobile : une seule photo fixe, plus légère (1 024 px), sans diaporama (ses photos ne sont alors pas téléchargées) */
@media (max-width: 767px) {
  .elementor-section.helios-hero { background-image: var(--helios-hero-mobile) !important; }
  .elementor-section.helios-hero .elementor-background-slideshow { display: none !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-section.helios-hero > .elementor-container { min-height: clamp(520px, 66vh, 720px); }
  .elementor-section.helios-hero > .elementor-container > .elementor-column > .elementor-widget-wrap { padding: 72px 32px 48px !important; }
  .elementor-section.helios-hero .elementor-element.helios-hero-titre .elementor-heading-title { font-size: 44px; }
}
@media (max-width: 767px) {
  .elementor-section.helios-hero > .elementor-container { min-height: 0; }
  .elementor-section.helios-hero > .elementor-container > .elementor-column > .elementor-widget-wrap { padding: 56px 24px 44px !important; }
  .elementor-section.helios-hero > .elementor-background-overlay { background-image: linear-gradient(180deg, rgba(34, 34, 34, .72) 0%, rgba(34, 34, 34, .5) 50%, rgba(34, 34, 34, .72) 100%) !important; }
  .elementor-section.helios-hero .elementor-element.helios-hero-titre .elementor-heading-title { font-size: 34px; }
  .elementor-section.helios-hero .elementor-element.helios-hero-lieux { font-size: 12px; letter-spacing: .22em; }
  .elementor-section.helios-hero .elementor-element.helios-hero-projet { padding-top: 48px; }
  .elementor-section.helios-hero .elementor-element.elementor-element-fa50ad4 .elementor-heading-title { font-size: 26px; }
}

/* 10.5 Couleur d'accent : l'orange du logo (#ED7222, celui de « DESIGN » et des trois points) pour les survols,
        le menu et les filets sous les titres. Jamais pour du texte au repos : 3:1 de contraste sur blanc. */
:root { --helios-orange: #ED7222; --helios-fond: #F0E8DD; }
:is(.elementor-2229, .elementor-170) .elementor-nav-menu .elementor-item:hover,
:is(.elementor-2229, .elementor-170) .elementor-nav-menu .elementor-item:focus-visible { color: var(--helios-orange) !important; }
:is(.elementor-2229, .elementor-170) .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:before,
:is(.elementor-2229, .elementor-170) .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:after { background-color: var(--helios-orange) !important; }
.elementor-button:hover, .elementor-button:focus-visible,
.helios-pied-appel a.helios-pied-bouton:hover, .helios-pied-appel a.helios-pied-bouton:focus-visible { background-color: var(--helios-orange) !important; border-color: var(--helios-orange) !important; color: #fff !important; }
.elementor-button:hover .elementor-button-text, .elementor-button:focus-visible .elementor-button-text { color: #fff !important; }
.elementor-widget-divider { --divider-color: var(--helios-orange) !important; }
.elementor-widget-text-editor a:hover, .helios-fin-article a:hover, .helios-fin-article a:focus-visible,
.elementor-266 a:hover, .elementor-266 a:focus-visible { color: var(--helios-orange) !important; }
.elementor-266 .elementor-social-icon:hover i { color: var(--helios-orange) !important; }
.elementor-266 .elementor-social-icon:hover svg { fill: var(--helios-orange) !important; }
.helios-langue-menu a:hover, .helios-langue-menu a:focus-visible { color: var(--helios-orange); }

/* 10.6 Pages projet : toutes les photos du déroulé à la largeur de la page (sections helios-galerie, repérées par
        habillage.py). Sur ordinateur, certaines sections étaient restées à la largeur par défaut du thème (1 050 px
        au lieu de 1 200), une image réglée à 82 % de sa colonne, d'autres rétrécies par leur lien de visionneuse :
        710 à 1 030 px de large au lieu de 1 180. Photo seule à son format, plafonnée pour qu'une photo en hauteur ne
        dépasse pas l'écran. */
@media (min-width: 768px) {
  .elementor-section.helios-galerie > .elementor-container { max-width: 1200px !important; }
}
.elementor-section.helios-galerie:not(.helios-rangee) .elementor-widget-image,
.elementor-section.helios-galerie:not(.helios-rangee) .elementor-widget-image > .elementor-widget-container { width: 100% !important; max-width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; }
.elementor-section.helios-galerie:not(.helios-rangee) .elementor-widget-image a { display: block; }
.elementor-section.helios-galerie:not(.helios-rangee) .elementor-widget-image img { width: 100% !important; max-width: 100% !important; height: auto !important; max-height: min(900px, 92vh) !important; object-fit: cover; }

/* 10.7 Accueils, « Notre savoir-faire » : photos plus hautes à largeur inchangée, en deux retours de Denis du 13/10
        (226 → 290 → 370 px sur ordinateur, 226 → 260 → 330 px sur tablette, format 3:2 → 5:4 → carré sur mobile). */
@media (min-width: 1025px) {
  :is(.elementor-1583, .elementor-3366) .elementor-element:is(.elementor-element-147e2ff, .elementor-element-cb8806f, .elementor-element-8b126ab, .elementor-element-ab7d019) img { height: 370px !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  :is(.elementor-1583, .elementor-3366) .elementor-element:is(.elementor-element-147e2ff, .elementor-element-cb8806f, .elementor-element-8b126ab, .elementor-element-ab7d019) img { height: 330px !important; }
}
@media (max-width: 767px) {
  :is(.elementor-1583, .elementor-3366) .elementor-element:is(.elementor-element-147e2ff, .elementor-element-cb8806f, .elementor-element-8b126ab, .elementor-element-ab7d019) img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
}

/* 11. Page contact refondue (13/10, construite par habillage.py). Le formulaire suit directement le titre, le type de
       lieu se choisit sur des photos des chantiers de Lisa, le point orange du logo marque le choix. À droite : les
       moyens de joindre le studio et sa méthode en quatre étapes (portrait retiré à la demande de Denis, gardé en
       vignette près du titre sur tablette et mobile). Témoignage client en bandeau. Même pied que les autres pages :
       son bouton « Prendre contact » mène au formulaire de la page. */
.helios-ct { --ct-encre: #30362E; --ct-texte: #5f5953; --ct-taupe: #736357; --ct-lin: var(--helios-fond); --ct-trait: #b9b1a6;
  box-sizing: border-box; max-width: 1200px; margin: 0 auto; padding: 72px 40px 0; display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: 80px;
  font-family: "Manjari", sans-serif; font-size: 16px; line-height: 1.7; color: var(--ct-texte); }
.helios-ct *, .helios-ct *::before, .helios-ct *::after { box-sizing: border-box; }
.helios-ct h1, .helios-ct h2, .helios-ct h3, .helios-ct p, .helios-ct ol, .helios-ct figure, .helios-ct fieldset, .helios-ct legend { margin: 0; padding: 0; }
.helios-ct h1 { font-family: "Playfair Display", serif; font-size: 52px; font-weight: 400; line-height: 1.08; letter-spacing: -.01em; color: var(--ct-encre); text-transform: none; text-wrap: balance; }
.helios-ct-chapo { margin-top: 22px !important; max-width: 34em; font-size: 18px; line-height: 1.65; }
.helios-ct-langues { margin-top: 10px !important; font-size: 15px; color: var(--ct-taupe); }
.helios-ct-avatar { display: none; }
.helios-insecable { white-space: nowrap; }
/* le kit impose sa police aux étiquettes de formulaire */
.helios-ct label, .helios-ct-tuile-nom, .helios-ct-autre span { font-family: "Manjari", sans-serif !important; font-weight: 400; letter-spacing: 0 !important; text-transform: none !important; }
.helios-ct-tuile:has(input:checked) .helios-ct-tuile-nom { font-weight: 700 !important; }

.helios-ct-form { margin-top: 56px; }
.helios-ct-lieux { border: 0; min-width: 0; }
.helios-ct-lieux legend { margin-bottom: 18px; font-family: "Playfair Display", serif; font-size: 24px; line-height: 1.3; color: var(--ct-encre); }
.helios-ct-tuiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.helios-ct-tuile { position: relative; display: block; cursor: pointer; }
.helios-ct-tuile input, .helios-ct-autre input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.helios-ct-tuile img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; transition: opacity .25s, filter .25s; }
.helios-ct-tuile-nom { display: block; margin-top: 10px; font-size: 15px; line-height: 1.35; color: var(--ct-encre); }
.helios-ct-tuile::after { content: ""; position: absolute; top: 10px; right: 10px; width: 12px; height: 12px; border-radius: 50%; background: #ED7222; box-shadow: 0 0 0 3px #fff; opacity: 0; transform: scale(.4); transition: opacity .2s, transform .2s; }
.helios-ct-tuile:hover img { filter: brightness(1.06); }
.helios-ct-tuile:has(input:checked)::after { opacity: 1; transform: none; }
.helios-ct-tuile:has(input:checked) img { box-shadow: 0 0 0 2px var(--ct-encre); }
.helios-ct-lieux:has(input:checked) .helios-ct-tuile:not(:has(input:checked)) img { opacity: .55; }
.helios-ct-tuile:has(input:focus-visible) img, .helios-ct-autre:has(input:focus-visible) span { outline: 2px solid var(--ct-taupe); outline-offset: 3px; }
.helios-ct-autre { position: relative; display: inline-flex; align-items: center; gap: 10px; margin-top: 18px; cursor: pointer; font-size: 15px; color: var(--ct-encre); }
.helios-ct-autre span::before { content: ""; display: inline-block; vertical-align: -2px; width: 14px; height: 14px; margin-right: 10px; border: 1px solid var(--ct-trait); border-radius: 50%; background: #fff; }
.helios-ct-autre:has(input:checked) span::before { border-color: #ED7222; background: #ED7222; box-shadow: inset 0 0 0 3px #fff; }

.helios-ct-champs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 32px; margin-top: 44px; }
.helios-ct-champ label { display: block; margin-bottom: 4px; font-size: 14px; line-height: 1.4; color: var(--ct-encre); }
/* le kit Elementor stylise toutes les balises button et tous les champs (.elementor-kit-306 input…, spécificité 0,3,1) :
   les propriétés qui comptent sont donc forcées ici */
.helios-ct-champ input, .helios-ct-champ textarea { display: block; width: 100%; border: 0 !important; border-bottom: 1px solid var(--ct-trait) !important; border-radius: 0 !important; background: transparent !important; padding: 10px 0 8px !important; font-family: "Manjari", sans-serif !important; font-size: 17px !important; font-weight: 400 !important; line-height: 1.5 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--ct-encre) !important; box-shadow: none; transition: border-color .2s, box-shadow .2s; }
.helios-ct-champ textarea { min-height: 150px; padding: 14px 16px !important; border: 1px solid var(--ct-trait) !important; resize: vertical; }
.helios-ct-champ textarea::placeholder { color: #9b9287; }
.helios-ct-champ input:focus, .helios-ct-champ textarea:focus { outline: none; border-color: var(--ct-taupe) !important; box-shadow: inset 0 -1px 0 var(--ct-taupe); }
.helios-ct-champ textarea:focus { box-shadow: inset 0 0 0 1px var(--ct-taupe); }
.helios-ct-large { grid-column: 1 / -1; }
.helios-ct-pot { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.helios-ct-envoi { margin-top: 32px; }
.helios-ct .helios-ct-bouton { display: inline-block; border: 1px solid var(--ct-taupe) !important; border-radius: 0 !important; padding: 17px 34px 15px !important; background: var(--ct-taupe) !important; color: #fff !important; font-family: "Champagne Limousine", sans-serif !important; font-size: 13px !important; font-weight: 400 !important; line-height: 1.4 !important; letter-spacing: .2em !important; text-transform: uppercase !important; cursor: pointer; transition: background-color .25s, border-color .25s; }
.helios-ct .helios-ct-bouton:hover, .helios-ct .helios-ct-bouton:focus-visible { background: var(--helios-orange) !important; border-color: var(--helios-orange) !important; }
.helios-ct .helios-ct-bouton:focus-visible { outline: 2px solid var(--ct-encre); outline-offset: 3px; }
.helios-ct .helios-form-note { max-width: 36em; }
/* résultat de l'envoi (helios/lisa.js) et widget anti-robot, qui ne s'affiche qu'en cas de doute */
.helios-ct .helios-ct-bouton:disabled { opacity: .6; cursor: progress; }
.helios-ct .helios-ct-statut { max-width: 36em; margin: 20px 0 16px !important; padding: 14px 18px !important; border-left: 3px solid var(--ct-taupe); background: var(--helios-fond); color: var(--ct-encre); font-size: 16px; line-height: 1.5; }
.helios-ct .helios-ct-statut.est-ok { border-left-color: var(--helios-orange); }
.helios-ct .helios-ct-statut.est-erreur { border-left-color: #a33a2a; }
.helios-ct-form .cf-turnstile { margin-top: 20px; }

.helios-ct-cote h2 { font-family: "Playfair Display", serif; font-size: 24px; font-weight: 400; line-height: 1.3; color: var(--ct-encre); text-transform: none; letter-spacing: 0; }
.helios-ct-joindre { padding: 32px 32px 30px; background: var(--ct-lin); }
.helios-ct-joindre h2 { margin-bottom: 14px; }
.helios-ct-tel { display: inline-block; font-family: "Playfair Display", serif; font-size: 28px; line-height: 1.3; color: var(--ct-encre); text-decoration: none; white-space: nowrap; transition: color .2s; }
.helios-ct-mail { display: block; margin-top: 6px; font-size: 16px; color: var(--ct-taupe); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.helios-ct-tel:hover, .helios-ct-tel:focus-visible, .helios-ct-mail:hover, .helios-ct-mail:focus-visible { color: var(--helios-orange); }
.helios-ct-adresse { margin-top: 18px !important; font-size: 15px; line-height: 1.6; }
.helios-ct-zones { margin-top: 14px !important; font-family: "Champagne Limousine", sans-serif; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--ct-taupe); }
.helios-ct-etapes { margin-top: 48px; }
.helios-ct-etapes ol { list-style: none; counter-reset: etape; margin-top: 20px; }
.helios-ct-etapes li { counter-increment: etape; position: relative; padding-left: 48px; }
.helios-ct-etapes li + li { margin-top: 22px; }
.helios-ct-etapes li::before { content: counter(etape); position: absolute; left: 0; top: -6px; font-family: "Playfair Display", serif; font-size: 30px; line-height: 1; color: var(--ct-taupe); }
.helios-ct-etapes h3 { font-family: "Manjari", sans-serif; font-size: 16px; font-weight: 700; line-height: 1.4; color: var(--ct-encre); text-transform: none; letter-spacing: 0; }
.helios-ct-etapes p { margin-top: 4px !important; font-size: 15px; line-height: 1.6; }

/* sur blanc : en gris, le bandeau se fondait dans le pied de page, gris lui aussi */
.helios-ct-avis { max-width: 1120px; margin: 96px auto 0; padding: 80px 24px 96px; background: #fff; border-top: 1px solid #e4dfd8; text-align: center; }
.helios-ct-avis blockquote { max-width: 760px; margin: 0 auto; padding: 0; border: 0; }
.helios-ct-avis p { margin: 0; font-family: "Playfair Display", serif; font-size: 26px; font-style: italic; line-height: 1.45; color: #30362E; text-wrap: balance; }
.helios-ct-avis footer { margin-top: 20px; font-size: 14px; letter-spacing: .04em; color: #736357; }

@media (max-width: 1024px) {
  .helios-ct { grid-template-columns: minmax(0, 1fr); padding: 56px 32px 0; }
  .helios-ct-cote { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; margin-top: 64px; }
  .helios-ct-joindre, .helios-ct-etapes { margin-top: 0; }
  .helios-ct-intro { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 20px; align-items: center; }
  .helios-ct .helios-ct-avatar { display: block; width: 72px; height: 72px; border-radius: 50%; object-fit: cover; object-position: 72% 30%; }
  .helios-ct-intro h1 { grid-column: 2; }
  .helios-ct-chapo, .helios-ct-langues { grid-column: 1 / -1; }
  .helios-ct h1 { font-size: 44px; }
}
@media (max-width: 767px) {
  .helios-ct { padding: 40px 20px 0; }
  .helios-ct h1 { font-size: 34px; }
  .helios-ct-intro { column-gap: 16px; }
  .helios-ct .helios-ct-avatar { width: 60px; height: 60px; }
  .helios-ct-chapo { font-size: 17px; }
  .helios-ct-form { margin-top: 40px; }
  .helios-ct-lieux legend { font-size: 21px; }
  .helios-ct-tuiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .helios-ct-champs { grid-template-columns: minmax(0, 1fr); gap: 22px; margin-top: 36px; }
  .helios-ct-bouton { width: 100%; }
  .helios-ct-cote { grid-template-columns: minmax(0, 1fr); gap: 40px; margin-top: 56px; }
  .helios-ct-joindre { padding: 26px 22px; }
  .helios-ct-tel { font-size: 25px; }
  .helios-ct-avis { margin: 64px 20px 0; padding: 56px 4px 64px; }
  .helios-ct-avis p { font-size: 21px; }
}
@media (prefers-reduced-motion: reduce) { .helios-ct * { transition: none !important; } }

/* 12. Titres français en casse française (demande Denis du 13/10) : le kit Elementor met une majuscule à chaque mot
       (règle posée sur le corps de page et sur h1 et h2, héritée partout). Retirée sur les pages françaises, première
       lettre des titres en majuscule (plusieurs sont saisis en minuscules). Les titres saisis avec des noms de lieux en
       minuscules sont corrigés dans le texte par habillage.py. Pages anglaises inchangées : casse de titre à l'anglaise. */
html[lang^="fr"] .elementor-kit-306, html[lang^="fr"] .elementor-kit-306 h1, html[lang^="fr"] .elementor-kit-306 h2 { text-transform: none; }
html[lang^="fr"] .elementor-heading-title::first-letter { text-transform: uppercase; }

/* 13. Mobile et tablette, retours de Denis du 16/10 : menu plein écran, sections trop hautes, défauts d'affichage. */

/* 13.1 En-tête sous 1025 px : les six entrées du menu en deux rangées de texte (230 px de haut) laissent la place au
        logo en ligne et à un bouton menu (posés par habillage.py) ; l'en-tête passe à 73 px (81 sur tablette) et reste en haut de l'écran
        au défilement, pour que le menu soit toujours à portée de pouce. */
.helios-burger { display: none; }
@media (max-width: 1024px) {
  body > header.elementor-location-header { position: sticky; top: 0; z-index: 990; background: #fff; }
  :is(.elementor-2229, .elementor-170) .elementor-element:is(.elementor-element-52e3752, .elementor-element-eab063a) { display: none !important; }
  :is(.elementor-2229, .elementor-170) .elementor-element:is(.elementor-element-8857eea, .elementor-element-203d199) { position: relative; padding-top: 0 !important; }
  :is(.elementor-2229, .elementor-170) .elementor-element:is(.elementor-element-c658c82, .elementor-element-39e3761) { margin-top: 0 !important; }
  :is(.elementor-2229, .elementor-170) .elementor-element:is(.elementor-element-a588767, .elementor-element-b4a7133) { width: 100% !important; }
  :is(.elementor-2229, .elementor-170) .elementor-element:is(.elementor-element-a588767, .elementor-element-b4a7133) > .elementor-widget-wrap { padding: 14px 76px 14px 20px !important; }
  :is(.elementor-2229, .elementor-170) .elementor-element:is(.elementor-element-61f9d80, .elementor-element-89976e0) { text-align: left; }
  :is(.elementor-2229, .elementor-170) .elementor-element:is(.elementor-element-61f9d80, .elementor-element-89976e0) img:not(.helios-logo-ligne) { display: none !important; }
  :is(.elementor-2229, .elementor-170) .elementor-element:is(.elementor-element-61f9d80, .elementor-element-89976e0) img.helios-logo-ligne { display: block !important; width: auto !important; height: 36px !important; max-width: 100% !important; object-fit: contain; }
  :is(.elementor-2229, .elementor-170) .helios-burger { display: block; position: absolute; top: 10px; right: 12px; }
  /* filet orange sous l'en-tête : 20 px de marge au-dessus, inutiles une fois les menus retirés */
  :is(.elementor-2229, .elementor-170) .elementor-element:is(.elementor-element-da905c2, .elementor-element-7448ab0) > .elementor-widget-container { margin-top: 0 !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  :is(.elementor-2229, .elementor-170) .elementor-element:is(.elementor-element-a588767, .elementor-element-b4a7133) > .elementor-widget-wrap { padding: 18px 96px 18px 32px !important; }
  :is(.elementor-2229, .elementor-170) .elementor-element:is(.elementor-element-61f9d80, .elementor-element-89976e0) img.helios-logo-ligne { height: 40px !important; }
  :is(.elementor-2229, .elementor-170) .helios-burger { top: 16px; right: 24px; }
}
/* bouton menu et bouton de fermeture : deux traits fins, le second plus court (la fermeture les croise). Sélecteurs
   préfixés : le kit et le thème colorent tous les boutons (voir 2). */
:is(.elementor-2229, .elementor-170) .helios-burger,
.helios-menu .helios-menu-fermer {
  width: 44px; height: 44px; padding: 0; margin: 0; border: 0; border-radius: 50%;
  background: transparent; color: #30362E; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
:is(.elementor-2229, .elementor-170) .helios-burger:is(:hover, :focus, :active),
.helios-menu .helios-menu-fermer:is(:hover, :focus, :active) { background: rgba(115, 99, 87, .1); color: #30362E; }
:is(.elementor-2229, .elementor-170) .helios-burger:focus-visible,
.helios-menu .helios-menu-fermer:focus-visible { outline: 2px solid #736357; outline-offset: 2px; }
.helios-burger span, .helios-menu-fermer span {
  position: absolute; left: 9px; width: 26px; height: 1.5px; border-radius: 1px; background: currentColor;
}
.helios-burger { position: relative; }
.helios-burger span:first-child { top: 17px; }
.helios-burger span:last-child { top: 25px; left: 17px; width: 18px; }
.helios-menu .helios-menu-fermer { position: relative; flex: 0 0 44px; }
.helios-menu-fermer span { top: 21px; transition: transform .35s cubic-bezier(.2, .7, .2, 1); }
.helios-menu.est-ouvert .helios-menu-fermer span:first-child { transform: rotate(45deg); }
.helios-menu.est-ouvert .helios-menu-fermer span:last-child { transform: rotate(-45deg); }

/* 13.2 Menu plein écran : fond grège des sections du site, entrées en Playfair (la police des titres), rubrique en
        cours marquée du filet orange des titres. Coordonnées et langue en bas, à portée de pouce. */
.helios-menu {
  position: fixed; inset: 0; z-index: 100000; display: flex; flex-direction: column;
  background: var(--helios-fond); color: #30362E; overflow-y: auto; overscroll-behavior: contain;
  opacity: 0; transition: opacity .26s ease;
}
.helios-menu[hidden] { display: none; }
.helios-menu.est-ouvert { opacity: 1; }
html.helios-menu-ouvert, html.helios-menu-ouvert body { overflow: hidden; }
@media (min-width: 1025px) { .helios-menu { display: none !important; } }
.helios-menu-haut {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  min-height: 64px; padding: 10px 12px 10px 20px; box-sizing: border-box;
}
.helios-menu-logo { display: block; line-height: 0; }
.helios-menu-logo img { display: block; width: auto; height: 36px; max-width: 100%; }
.helios-menu-nav { padding: 7vh 28px 32px; }
.helios-menu-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.helios-menu-nav a {
  display: inline-flex; align-items: center; gap: 16px; padding: 7px 0;
  font-family: "Playfair Display", serif; font-size: 34px; font-weight: 400; line-height: 1.15; letter-spacing: .2px;
  color: #30362E; text-decoration: none; text-underline-offset: 7px; text-decoration-thickness: 1px;
  opacity: 0; transform: translateY(12px);
  transition: opacity .45s ease, transform .45s cubic-bezier(.2, .7, .2, 1);
}
.helios-menu.est-ouvert .helios-menu-nav a { opacity: 1; transform: none; }
.helios-menu-nav li:nth-child(2) a { transition-delay: .04s; }
.helios-menu-nav li:nth-child(3) a { transition-delay: .08s; }
.helios-menu-nav li:nth-child(4) a { transition-delay: .12s; }
.helios-menu-nav li:nth-child(5) a { transition-delay: .16s; }
.helios-menu-nav li:nth-child(6) a { transition-delay: .2s; }
.helios-menu-nav li:nth-child(7) a { transition-delay: .24s; }
.helios-menu-nav a:hover, .helios-menu-nav a:focus-visible { text-decoration-line: underline; text-decoration-color: var(--helios-orange); outline: none; }
.helios-menu-nav a[aria-current] { color: #736357; }
.helios-menu-nav a[aria-current]::before { content: ""; flex: 0 0 22px; height: 1px; background: var(--helios-orange); }
.helios-menu-bas {
  margin: auto 28px 0; padding: 22px 0 calc(26px + env(safe-area-inset-bottom));
  border-top: 1px solid rgba(115, 99, 87, .28); display: flex; flex-direction: column; gap: 18px;
}
.helios-menu-langues { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.helios-menu-langues a {
  display: inline-flex; align-items: center; gap: 10px; min-height: 44px;
  font-family: "Champagne Limousine", sans-serif; font-size: 13px; letter-spacing: .18em; text-transform: uppercase;
  color: #736357; text-decoration: none;
}
.helios-menu-langues a[aria-current] { color: #30362E; }
.helios-menu-langues a:not([aria-current]) .helios-drapeau { opacity: .75; }
.helios-menu-langues a:hover, .helios-menu-langues a:focus-visible { color: #30362E; outline: none; text-decoration: underline; text-decoration-color: var(--helios-orange); text-underline-offset: 5px; }
.helios-menu-coord { display: flex; flex-direction: column; gap: 6px; margin: 0; font-family: "Manjari", sans-serif; font-size: 16px; line-height: 1.5; }
.helios-menu-coord a { color: #5f5953; text-decoration: none; padding: 4px 0; }
.helios-menu-coord a:first-child { font-family: "Playfair Display", serif; font-size: 20px; color: #30362E; }
.helios-menu-coord a:hover, .helios-menu-coord a:focus-visible { color: #30362E; text-decoration: underline; text-decoration-color: var(--helios-orange); text-underline-offset: 4px; outline: none; }
@media (min-width: 768px) and (max-width: 1024px) {
  .helios-menu-haut { min-height: 76px; padding: 16px 24px 16px 32px; }
  .helios-menu-logo img { height: 40px; }
  .helios-menu-nav { padding: 9vh 64px 40px; }
  .helios-menu-nav a { font-size: 46px; }
  .helios-menu-bas { margin: auto 64px 0; padding-bottom: calc(40px + env(safe-area-inset-bottom)); flex-direction: row; justify-content: space-between; align-items: flex-end; }
}
@media (max-height: 560px) {
  .helios-menu-nav { padding-top: 16px; }
  .helios-menu-nav a { font-size: 26px; padding: 4px 0; }
}
@media (prefers-reduced-motion: reduce) {
  .helios-menu, .helios-menu-nav a, .helios-menu-fermer span { transition: none !important; }
  .helios-menu-nav a { transform: none; }
}

/* 13.3 Accueils, « Notre savoir-faire » (FR 1583, EN 3366, mêmes identifiants) : quatre photos carrées pleine largeur
        sur mobile (2 150 px de section) et quatre colonnes de 330 px de haut sur tablette. Mobile : grille de deux
        sur deux, photos en 4:5. Tablette : quatre colonnes en 3:4. Titres sur deux lignes réservées, pour que les
        filets dessous restent alignés (« Conception de meubles » passe à la ligne). */
@media (max-width: 1024px) {
  :is(.elementor-1583, .elementor-3366) .elementor-element-bdf40a8 > .elementor-container { flex-wrap: wrap; }
  :is(.elementor-1583, .elementor-3366) .elementor-element-bdf40a8 .elementor-element:is(.elementor-element-147e2ff, .elementor-element-cb8806f, .elementor-element-8b126ab, .elementor-element-ab7d019) img { width: 100% !important; height: auto !important; aspect-ratio: 3 / 4; object-fit: cover; }
  /* la 3e photo avait 2 % de marge à gauche dans le réglage d'origine : plus étroite, donc plus basse que ses voisines */
  :is(.elementor-1583, .elementor-3366) .elementor-element-bdf40a8 .elementor-element:is(.elementor-element-147e2ff, .elementor-element-cb8806f, .elementor-element-8b126ab, .elementor-element-ab7d019) > .elementor-widget-container { margin-bottom: 0; padding: 0 !important; }
  :is(.elementor-1583, .elementor-3366) .elementor-element-bdf40a8 .elementor-element:is(.elementor-element-147e2ff, .elementor-element-cb8806f, .elementor-element-8b126ab, .elementor-element-ab7d019) { margin-bottom: 14px; }
  :is(.elementor-1583, .elementor-3366) .elementor-element-bdf40a8 .elementor-widget-heading { margin-bottom: 12px; }
  /* filet sous chaque titre : il était remonté de 10 px et touchait les titres sur deux lignes (2 px) ; 12 px partout */
  :is(.elementor-1583, .elementor-3366) .elementor-element-bdf40a8 .elementor-widget-heading > .elementor-widget-container { margin-bottom: 0 !important; }
  :is(.elementor-1583, .elementor-3366) .elementor-element-bdf40a8 .elementor-widget-divider > .elementor-widget-container { margin-top: 0 !important; }
  :is(.elementor-1583, .elementor-3366) .elementor-element-bdf40a8 .elementor-widget-heading .elementor-heading-title { min-height: 2.7em; line-height: 1.35 !important; text-wrap: balance; }
}
@media (max-width: 767px) {
  :is(.elementor-1583, .elementor-3366) .elementor-element-d75e203 { padding-bottom: 28px !important; }
  :is(.elementor-1583, .elementor-3366) .elementor-element-bdf40a8 > .elementor-container { padding: 0 9px; }
  :is(.elementor-1583, .elementor-3366) .elementor-element-bdf40a8 > .elementor-container > .elementor-column { width: 50% !important; }
  :is(.elementor-1583, .elementor-3366) .elementor-element-bdf40a8 > .elementor-container > .elementor-column > .elementor-widget-wrap { padding: 6px 6px 18px !important; }
  :is(.elementor-1583, .elementor-3366) .elementor-element-bdf40a8 .elementor-element:is(.elementor-element-147e2ff, .elementor-element-cb8806f, .elementor-element-8b126ab, .elementor-element-ab7d019) img { aspect-ratio: 4 / 5; }
  :is(.elementor-1583, .elementor-3366) .elementor-element-bdf40a8 .elementor-widget-heading .elementor-heading-title { font-size: 14px !important; letter-spacing: 1px !important; line-height: 1.35 !important; }
}

/* 13.4 Accueils, « Bienvenue » : sur tablette, la photo gardait sa hauteur d'ordinateur (676 px pour 451 de large),
        calée à droite, avec un vide blanc à sa gauche : pleine largeur en 16:10. Sous 1025 px, la marge sous le bloc
        laissait une bande blanche entre deux fonds grèges (le texte de « Bienvenue » et « Notre savoir-faire »). */
@media (min-width: 768px) and (max-width: 1024px) {
  :is(.elementor-1583, .elementor-3366) .elementor-element:is(.elementor-element-41bb865, .elementor-element-f52b340) .elementor-widget-image img { width: 100% !important; height: auto !important; aspect-ratio: 16 / 10; object-fit: cover; }
}
@media (max-width: 1024px) {
  :is(.elementor-1583, .elementor-3366) .elementor-element:is(.elementor-element-41bb865, .elementor-element-f52b340) { margin-bottom: 0 !important; }
}

/* 13.5 Listes de lieux (« Résidence privée • hôtel • restaurant • spa », « Les Alpes • Genève… ») : chaque lieu est
        insécable et chaque puce collée au lieu qui la précède (habillage.py), la ligne ne se coupe plus au milieu
        d'un lieu. Sous 768 px, la liste de « Bienvenue », trop longue pour une ligne, passe sur deux lignes égales :
        la puce du milieu devient le retour à la ligne (« Résidence privée • hôtel » / « restaurant • spa »). */
.helios-lieu { white-space: nowrap; }
@media (max-width: 767px) {
  .helios-lieux-coupe > .helios-lieux-sep:nth-child(4) { display: block; height: 0; overflow: hidden; }
}
/* 13.8 Accueils, « Nos clients parlent de nous » : le titre touchait le bas du fond grège au-dessus (15 px d'écart). */
@media (max-width: 1024px) {
  :is(.elementor-1583, .elementor-3366) .elementor-element:is(.elementor-element-b2a3281, .elementor-element-043243d) { padding-top: 56px !important; }
}

/* 13.6 Accueils mobile : l'espaceur de 50 px sous les vidéos s'ajoutait à la marge du bloc, 100 px de blanc avant le
        pied de page. */
@media (max-width: 767px) {
  :is(.elementor-1583, .elementor-3366) .elementor-widget-spacer .elementor-spacer-inner { height: 0 !important; }
}

/* 13.7 Journal : la grille donnait à chaque rangée la hauteur de la plus haute (grid-auto-rows: 1fr), d'où 100 px de
        vide sous les titres courts, rangée après rangée sur mobile. Chaque rangée prend sa propre hauteur. */
@media (max-width: 1024px) {
  .pwgd-post-grid-cols-grid .pwgd-post-grid-content { grid-auto-rows: auto; }
}

/* 13.9 Accueils, vidéos (retour de Denis du 16/10) : le filet orange sous « Château, hôtel de luxe – Rhône-Alpes »
        est remonté par une marge négative réglée pour un sous-titre sur deux lignes ; dès que le sous-titre tient
        sur une ligne (téléphones de 414 px et plus), le filet barrait le texte. Il suit maintenant le sous-titre,
        14 px dessous. Sur ordinateur, le sous-titre collait au titre. */
@media (max-width: 1024px) {
  :is(.elementor-1583, .elementor-3366) .elementor-element:is(.elementor-element-45756a6, .elementor-element-ddbbc36) .elementor-inner-section .elementor-widget-divider > .elementor-widget-container { margin-top: 0 !important; }
  :is(.elementor-1583, .elementor-3366) .elementor-element:is(.elementor-element-45756a6, .elementor-element-ddbbc36) .elementor-inner-section .elementor-widget-text-editor { margin-bottom: 14px !important; }
}
/* ordinateur : le sous-titre, remonté de 30 px, collait au titre (3 px d'écart) ; 11 px */
@media (min-width: 1025px) {
  :is(.elementor-1583, .elementor-3366) .elementor-element:is(.elementor-element-45756a6, .elementor-element-ddbbc36) .elementor-inner-section .elementor-widget-text-editor > .elementor-widget-container { margin-top: -22px !important; }
}

/* 13.10 Portfolio, cartes (retour de Denis du 16/10) : titre, lieu et bouton étaient rapprochés par des marges
        négatives ; sur mobile, le lieu chevauchait le bas du titre (« Maison familiale » / « Rhône-Alpes »).
        Sous 1025 px, espacements positifs : photo, 16 px, titre, 6 px, lieu, 18 px, bouton. */
@media (max-width: 1024px) {
  :is(.elementor-1503, .elementor-3386) .elementor-col-33 .elementor-widget-image.imt { margin-bottom: 16px !important; }
  :is(.elementor-1503, .elementor-3386) .elementor-col-33 :is(.elementor-widget-heading, .elementor-widget-text-editor, .elementor-widget-button) > .elementor-widget-container { margin-top: 0 !important; margin-bottom: 0 !important; }
  :is(.elementor-1503, .elementor-3386) .elementor-col-33 .elementor-widget-heading { margin-bottom: 6px !important; }
  :is(.elementor-1503, .elementor-3386) .elementor-col-33 .elementor-widget-text-editor { margin-bottom: 18px !important; }
}

/* 13.11 Accueils, citation (retour de Denis du 16/10) : « Coco Chanel » était remonté d'une marge négative de
         10 % de la largeur sur mobile, si bien que le filet orange touchait ou barrait le nom (5 px d'écart à 430 px,
         moins encore sur certains écrans). Sous 1025 px, le nom suit le filet à 18 px, comme sur ordinateur. */
@media (max-width: 1024px) {
  :is(.elementor-1583, .elementor-3366) .elementor-element:is(.elementor-element-0ee42b7, .elementor-element-b5813a3) { margin-bottom: 4px !important; }
  :is(.elementor-1583, .elementor-3366) .elementor-element:is(.elementor-element-58a8b19, .elementor-element-6ea9a22) > .elementor-widget-container { margin-top: 0 !important; }
}

/* 13.12 Balayage du 16/10 (chevauchements mesurés sur les 68 pages, de 390 à 1440 px). Les deux derniers défauts
         venaient, eux aussi, de marges négatives réglées pour l'ordinateur et appliquées à la tablette :
         - pied de page à 1024 px : « Rhône-Alpes » remonté de 39 px chevauchait « Lisa Paunovitch Design » ;
         - articles à 1024 px : le titre remonté de 46 px recouvrait l'étiquette « Conseils déco ». */
@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-266 .elementor-element.elementor-element-c128b22 > .elementor-widget-container { margin-top: -26px !important; }
  body.single-post [data-elementor-type="wp-post"] > .elementor-top-section:first-child .elementor-widget-heading > .elementor-widget-container { margin-top: -24px !important; }
}

/* 14. Retours du 19/10 (Lisa et Denis). */

/* 14.1 Fonds : le gris clair des sections (#EAE9E5, couleur globale du kit Elementor) passe au beige #F0E8DD, de même
        luminosité, donc mêmes contrastes pour tous les textes posés dessus (taupe 4,7:1, encre 10:1). Une seule
        valeur, --helios-fond (10.5), reprise par le kit, le menu plein écran, la page contact et le sélecteur de langue ;
        le fond du savoir-faire des accueils était écrit en dur dans sa feuille. */
.elementor-kit-306 { --e-global-color-bba8159: var(--helios-fond) !important; }
:is(.elementor-1583, .elementor-3366) .elementor-element.elementor-element-d75e203:not(.elementor-motion-effects-element-type-background) { background-color: var(--helios-fond) !important; }

/* 14.2 Galerie du Domaine de Dolomieu (dolomieu.py) : les 19 photos envoyées par Lisa, en rangées à hauteur égale.
        Chaque photo prend une largeur proportionnelle à son format (--r = largeur / hauteur), donc toutes sont
        entières et alignées en haut comme en bas. Sur mobile, chaque photo en largeur occupe toute la largeur et les
        photos en hauteur vont par deux, côte à côte. */
.helios-galerie-dolomieu { max-width: 1180px; margin: 24px auto 72px; padding: 0 20px; display: flex; flex-direction: column; gap: 16px; }
.helios-gd-rangee { display: flex; gap: 16px; }
.helios-gd-photo { flex: var(--r) 1 0; min-width: 0; margin: 0; }
.helios-gd-photo a { display: block; line-height: 0; }
.helios-gd-photo img { display: block; width: 100%; height: auto; }
.helios-gd-photo a:focus-visible { outline: 2px solid #736357; outline-offset: 3px; }
@media (max-width: 767px) {
  .helios-galerie-dolomieu { margin: 16px auto 48px; padding: 0 14px; gap: 10px; }
  .helios-gd-rangee { flex-wrap: wrap; gap: 10px; }
  .helios-gd-photo { flex: 1 1 100%; }
  .helios-gd-photo.helios-gd-hauteur { flex: 1 1 calc(50% - 5px); }
}

/* 14.3 Visionneuse photo : l'en-tête collant d'ordinateur (z-index 9 999, son menu des langues 10 000) passait
        au-dessus de la visionneuse (9 999) : le menu se lisait par-dessus le compteur et les boutons. */
.dialog-widget.elementor-lightbox { z-index: 100001 !important; }
.helios-gd-credit { margin: 2px 0 0; text-align: right; font-size: 12px; line-height: 1.5; letter-spacing: .04em; color: #736357; }
