/* Ajustements WordPress + Elementor. La palette de la version HTML est conservée. */
html {
  scroll-behavior: smooth;
}

body:not(.wp-admin) {
  margin: 0;
  color: var(--ink);
  background: var(--cream);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 17px;
  line-height: 1.7;
}

body.elementor-page {
  margin: 0;
  color: var(--ink);
  background: var(--cream);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 17px;
  line-height: 1.7;
}

/*
 * Elementor enveloppe chaque section HTML dans un conteneur doté de 10 px
 * de padding. La version HTML de référence n'a pas ce cadre : les fonds
 * doivent toucher les bords du viewport et seul .container limite le contenu.
 */
body.elementor-page #page > .elementor > .e-con {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  --padding-top: 0;
  --padding-right: 0;
  --padding-bottom: 0;
  --padding-left: 0;
}

body.elementor-page #page > .elementor > .e-con > .elementor-widget {
  width: 100%;
  max-width: none;
}

.elementor-page .reveal {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

.elementor-page .elementor-widget-text-editor,
.elementor-page .elementor-widget-text-editor p:last-child {
  margin-bottom: 0;
}

.elementor-page .elementor-widget-text-editor > .elementor-widget-container > section,
.elementor-page .elementor-widget-text-editor > .elementor-widget-container > nav {
  width: 100%;
}

.lumenia-elementor-block,
.lumenia-elementor-block > .e-con-inner {
  display: block !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.lumenia-elementor-block > .elementor-widget,
.lumenia-elementor-block > .e-con-inner > .elementor-widget {
  width: 100%;
  max-width: none;
}

.lumenia-header,
header .elementor-49 > .e-con {
  position: sticky;
  z-index: 1000;
  top: 0;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 8px 30px rgba(31, 24, 69, .07);
  backdrop-filter: blur(14px);
}

.lumenia-header > .e-con-inner,
header .elementor-49 > .e-con > .e-con-inner {
  width: min(1180px, calc(100% - 40px));
  margin-inline: auto;
}

.lumenia-header .hfe-site-logo-img,
header .elementor-49 .hfe-site-logo-img {
  width: 66px !important;
  height: 66px !important;
  max-width: 66px !important;
  max-height: 66px !important;
  object-fit: contain;
}

header .elementor-49 .elementor-widget-site-logo {
  flex: 0 0 70px;
}

header .elementor-49 .elementor-widget-navigation-menu {
  flex: 1 1 auto;
}

header .elementor-49 .elementor-widget-button {
  flex: 0 0 auto;
}

.lumenia-header .menu-item a.hfe-menu-item,
header .elementor-49 .menu-item a.hfe-menu-item {
  color: var(--navy);
  font-weight: 700;
}

.lumenia-header .menu-item a.hfe-menu-item:hover,
.lumenia-header .current-menu-item > a.hfe-menu-item,
header .elementor-49 .menu-item a.hfe-menu-item:hover,
header .elementor-49 .current-menu-item > a.hfe-menu-item {
  color: var(--purple);
}

.lumenia-header .elementor-button,
header .elementor-49 .elementor-button {
  min-height: 46px;
  border-radius: 999px;
  background: var(--purple);
  color: #fff;
  font-weight: 800;
}

.lumenia-footer,
footer .elementor-51 > .e-con {
  background: #111735;
  color: rgba(255, 255, 255, .84);
}

.lumenia-footer > .e-con-inner,
footer .elementor-51 > .e-con > .e-con-inner {
  width: min(1180px, calc(100% - 40px));
  margin-inline: auto;
}

.lumenia-footer h2,
.lumenia-footer h3,
.lumenia-footer strong,
.lumenia-footer a,
footer .elementor-51 h2,
footer .elementor-51 h3,
footer .elementor-51 strong,
footer .elementor-51 a {
  color: #fff;
}

.lumenia-footer a:hover,
footer .elementor-51 a:hover {
  color: #f5bc5e;
}

.lumenia-footer a,
footer .elementor-51 a {
  overflow-wrap: anywhere;
}

.lumenia-footer ul,
footer .elementor-51 ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.lumenia-footer li + li,
footer .elementor-51 li + li {
  margin-top: 10px;
}

/*
 * Footer WordPress aligné sur le footer HTML : trois colonnes lisibles,
 * titres compacts et liens légaux intégrés dans le même fond sombre.
 */
body.ehf-footer #colophon {
  overflow: hidden;
  background: #111735;
  color: #cbcbd9;
}

body.ehf-footer #colophon .elementor-51 > .e-con > .e-con:first-of-type > .e-con-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(150px, .7fr) minmax(240px, 1fr);
  gap: 80px;
  align-items: start;
  width: min(1180px, calc(100% - 40px));
  margin-inline: auto;
  padding: 0;
}

body.ehf-footer #colophon .elementor-51 > .e-con > .e-con:first-of-type > .e-con-inner > .elementor-widget {
  width: auto;
  min-width: 0;
  max-width: none;
  align-self: start;
}

body.ehf-footer #colophon .elementor-51 > .e-con > .e-con:first-of-type > .e-con-inner > .elementor-widget:first-child h2 {
  margin: 10px 0 15px;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 24px;
  line-height: 1.15;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body.ehf-footer #colophon .elementor-51 > .e-con > .e-con:first-of-type > .e-con-inner > .elementor-widget:not(:first-child) h2 {
  margin: 10px 0 15px;
  color: #fff;
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
  font-size: 14px;
  line-height: 1.35;
  letter-spacing: .12em;
  text-transform: uppercase;
}

body.ehf-footer #colophon .elementor-51 > .e-con > .e-con:last-of-type {
  display: none;
}

body.ehf-footer #colophon .footer-legal-extension {
  display: grid;
  gap: 14px;
  width: min(1180px, calc(100% - 40px));
  margin: 42px auto 0;
  padding: 22px 0 26px;
  border-top: 1px solid rgba(255, 255, 255, .12);
  color: #cbcbd9;
  font-size: 13px;
  line-height: 1.55;
}

body.ehf-footer #colophon .footer-legal-links {
  justify-content: flex-start;
  gap: 10px 22px;
}

body.ehf-footer #colophon .footer-legal-links a {
  color: #fff;
  text-decoration: none;
}

body.ehf-footer #colophon .footer-legal-links a:hover {
  color: #f5bc5e;
  text-decoration: underline;
}

body.ehf-footer #colophon .lumenia-copyright {
  margin: 0;
  color: #cbcbd9;
}

.fluentform {
  margin-top: 16px;
}

.fluentform .ff-el-input--label label {
  color: var(--navy);
  font-weight: 800;
}

.fluentform input:not([type="checkbox"]),
.fluentform select,
.fluentform textarea {
  min-height: 50px;
  border: 1px solid #d9d4e3 !important;
  border-radius: 12px !important;
  background: #fff !important;
  color: var(--ink) !important;
}

.fluentform textarea {
  min-height: 160px;
}

.fluentform .ff-btn-submit {
  min-height: 50px;
  border: 0;
  border-radius: 999px;
  background: var(--purple) !important;
  color: #fff !important;
  font-weight: 800;
  padding-inline: 26px;
}

.fluentform .ff-btn-submit:hover {
  background: var(--navy) !important;
}

.fluentform .ff-el-is-error .text-danger {
  color: #a51d3e;
}

@media (max-width: 1024px) {
  .lumenia-header > .e-con-inner,
  .lumenia-footer > .e-con-inner,
  header .elementor-49 > .e-con > .e-con-inner,
  footer .elementor-51 > .e-con > .e-con-inner {
    width: min(100% - 28px, 1180px);
  }

  .lumenia-header .hfe-nav-menu__toggle {
    color: var(--navy);
  }

  header .elementor-49 > .e-con > .e-con > .e-con-inner {
    display: flex;
    flex-flow: row nowrap !important;
    align-items: center;
    justify-content: space-between;
    width: 100%;
  }

  header .elementor-49 .elementor-widget-navigation-menu {
    flex: 0 0 auto;
    width: 64px !important;
    max-width: 64px;
    margin-left: auto;
  }

  header .elementor-49 .hfe-nav-menu__toggle {
    margin: 0 0 0 auto;
  }

  header .elementor-49 .elementor-widget-button {
    display: none;
  }

  body.ehf-footer #colophon .elementor-51 > .e-con > .e-con:first-of-type > .e-con-inner {
    grid-template-columns: 1fr 1fr;
    gap: 38px 54px;
    width: min(100% - 28px, 1180px);
  }

  body.ehf-footer #colophon .elementor-51 > .e-con > .e-con:first-of-type > .e-con-inner > .elementor-widget:first-child {
    grid-column: 1 / -1;
  }

  body.ehf-footer #colophon .footer-legal-extension {
    width: min(100% - 28px, 1180px);
  }
}

@media (max-width: 700px) {
  body:not(.wp-admin),
  body.elementor-page {
    font-size: 16px;
  }

  body.ehf-footer #colophon .elementor-51 > .e-con {
    padding-block: 52px 24px;
  }

  body.ehf-footer #colophon .elementor-51 > .e-con > .e-con:first-of-type > .e-con-inner {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  body.ehf-footer #colophon .elementor-51 > .e-con > .e-con:first-of-type > .e-con-inner > .elementor-widget:first-child {
    grid-column: auto;
  }

  body.ehf-footer #colophon .footer-legal-extension {
    margin-top: 30px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}
/* Navigation WordPress native et blog — brief maître 2026 */
.elementor-location-header{display:none!important}
.lumenia-native-header .main-nav>li{list-style:none}
.lumenia-native-header .main-nav>li>a{display:block;text-decoration:none}
.lumenia-native-header .menu-item-has-children{position:relative}
.lumenia-native-header .sub-menu{position:absolute;top:calc(100% + 13px);left:-18px;z-index:10;min-width:270px;margin:0;padding:13px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow);list-style:none;opacity:0;visibility:hidden;transform:translateY(7px);transition:.2s}
.lumenia-native-header .menu-item-has-children:hover>.sub-menu,.lumenia-native-header .menu-item-has-children:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}
.lumenia-native-header .sub-menu a{display:block;padding:10px 12px;border-radius:9px;text-decoration:none}.lumenia-native-header .sub-menu a:hover{background:#f4eef7}
body:not(.wp-admin):not(.elementor-page) .site-main{width:min(1180px,calc(100% - 40px));max-width:1180px;margin-inline:auto;padding:70px 24px}body:not(.wp-admin):not(.elementor-page) .site-main .page-header,body:not(.wp-admin):not(.elementor-page) .site-main article{max-width:860px;margin-inline:auto}
.site-main .page-title,.site-main .entry-title{font-family:Georgia,serif;color:var(--navy)}.site-main .entry-title{font-size:clamp(36px,5vw,64px);line-height:1.05}
.site-main .entry-title a{text-decoration:none}.site-main .entry-content{font-size:18px;line-height:1.75}.site-main .entry-content h2{margin-top:48px;font-family:Georgia,serif;font-size:clamp(28px,3vw,39px);color:var(--navy)}
.site-main article+article{margin-top:34px;padding-top:34px;border-top:1px solid var(--line)}
.lumenia-post-cta{margin-top:55px;padding:34px;border-radius:26px;background:#f4eef7}.lumenia-post-cta h2{margin-top:0!important}
@media(max-width:980px){.lumenia-native-header .main-nav>li>a{padding:9px}.lumenia-native-header .sub-menu{position:static;display:none;min-width:0;margin:4px 0 8px 12px;opacity:1;visibility:visible;transform:none;box-shadow:none}.lumenia-native-header .menu-item-has-children.open>.sub-menu{display:block}}

/* Pages locales multi-villes 2026 */
.local-page-hero .local-card{min-height:390px}.local-services-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.local-services-grid .service-card,.local-services-grid .service-card:nth-child(4),.local-services-grid .service-card:last-child{display:flex;grid-column:auto;flex-direction:column;min-height:340px}.local-services-grid .service-card .text-link{margin-top:auto}.local-focus{font-size:13px;font-weight:750;color:var(--purple)}
.local-why .section-heading>p{color:#c8c7d5}.local-proof{background:#fff}.local-proof .split>div{padding:35px;border:1px solid var(--line);border-radius:26px}
.local-faq .faq-grid,.local-home-seo .faq-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.local-faq .faq-grid article,.local-home-seo .faq-grid article{padding:28px;border-radius:22px;background:#fff}.local-faq .faq-grid article:last-child:nth-child(odd),.local-home-seo .faq-grid article:last-child:nth-child(odd){grid-column:1/-1}.local-faq h3,.local-home-seo h3{margin-top:0;font-family:Georgia,serif;font-size:23px;color:var(--navy)}
.zone-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.zone-card{display:flex;flex-direction:column;min-height:280px;padding:28px;border:1px solid var(--line);border-radius:24px;background:#fff}.zone-card h3{margin:18px 0 10px;font-family:Georgia,serif;font-size:31px;color:var(--navy)}.zone-card h3 a{text-decoration:none}.zone-card .text-link{margin-top:auto}.zone-main{background:linear-gradient(135deg,#f4eef7,#fff7e8)}.zones-link{margin-top:32px;text-align:center}
@media(max-width:980px){.local-services-grid,.zone-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.local-services-grid,.local-faq .faq-grid,.local-home-seo .faq-grid,.zone-grid{grid-template-columns:1fr}.local-faq .faq-grid article:last-child:nth-child(odd),.local-home-seo .faq-grid article:last-child:nth-child(odd){grid-column:auto}.local-page-hero .local-card{min-height:320px}}

/* Headers Elementor Lorient et national — correction Hello Elementor */
body.ehf-header #masthead {
  margin: 0;
  padding: 0;
}

body.ehf-header #masthead .elementor > .e-con {
  max-width: none;
  padding: 0;
}

body.ehf-header #masthead .site-header {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

body.ehf-header #masthead .site-header .header-inner {
  width: min(calc(100% - 40px), 1180px);
  max-width: 1180px;
  margin-inline: auto;
  flex-wrap: nowrap;
}

body.ehf-header #masthead .site-header .menu-toggle {
  display: none;
}

body.ehf-header #masthead .site-header .main-nav > a,
body.ehf-header #masthead .site-header .nav-group > a {
  color: var(--ink);
}

body.ehf-header #masthead .site-header .main-nav > a.button,
body.ehf-header #masthead .site-header .main-nav > a.button:visited,
body.ehf-header #masthead .site-header .main-nav > a.button:hover {
  color: #fff;
}

body.ehf-header #masthead .site-header .submenu-toggle {
  min-width: 0;
  padding: 5px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--purple);
  line-height: 1;
}

@media (max-width: 1350px) and (min-width: 981px) {
  body.ehf-header #masthead .header-lorient .button-small {
    display: none;
  }
}

@media (max-width: 980px) {
  body.ehf-header #masthead .site-header .header-inner {
    width: min(100% - 28px, 1180px);
  }

  body.ehf-header #masthead .site-header .menu-toggle {
    display: block;
  }
}
