/*
Theme Name:   LMP Conseils - Astra Child
Theme URI:    https://www.lmp-conseils.fr/
Description:  Thème enfant d'Astra reproduisant le design du site LMP Conseils
Author:       LMP Conseils
Author URI:   https://www.lmp-conseils.fr/
Template:     astra
Version:      1.0.0
Text Domain:  lmp-astra-child
*/

/* ===================================================
   VARIABLES & RESET
=================================================== */
:root {
  --color-primary:     #1a3a5c;   /* bleu marine navigation */
  --color-accent:      #c0392b;   /* rouge/orange liens actifs */
  --color-accent-hover:#e74c3c;
  --color-bg:          #ffffff;
  --color-bg-light:    #f4f6f8;
  --color-sidebar-bg:  #eef1f4;
  --color-text:        #333333;
  --color-text-light:  #666666;
  --color-border:      #d0d8e0;
  --font-main:         Arial, Helvetica, sans-serif;
  --font-heading:      Arial, Helvetica, sans-serif;
}

/* ===================================================
   TYPOGRAPHIE GÉNÉRALE
=================================================== */
/* Fond et texte de base mesurés dans le CSS d'origine (thème Inspiration) :
   body { font-size:13px; font-family:Arial; line-height:1.5em; color:#666666;
          background:url(bg_light.png) #f9f9f9; }
   Le préfixe « html » surpasse les règles de couleur de fond d'Astra. */
html body,
html body.ast-separate-container {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 13px;
  line-height: 1.5em;
  color: #666666;
  background: url(images/ancien/bg_light.png) #f9f9f9;
}


/* ===================================================
   EN-TÊTE ET MENU (reproduction du thème Inspiration)
   Valeurs mesurées dans stylesheets/light/styles.css et ddsmoothmenu.css
   de l'ancien site. Le balisage vient de template-parts/lmp-header.php.
   Les images sont dans images/ancien/.
=================================================== */
/* Astra met aussi la classe « clear » sur div.entry-content : il faut l'exclure,
   sinon tout le texte de la page est écrasé à une hauteur de 0. */
.clear:not(.entry-content) {
  display: block;
  clear: both;
  height: 0 !important;
  overflow: hidden;
}
.entry-content.clear::after {
  content: "";
  display: block;
  clear: both;
}

/* Bandeau du menu */
.mainnav_full {
  width: 100%;
  padding-top: 5px;
  background: url(images/ancien/main_nav_bg.gif) bottom repeat-x #F8F8F8;
  border-bottom: 1px solid #fff;
}
#MainNav {
  width: 960px;
  min-height: 80px;
  position: relative;
  z-index: 1000;
  margin: 0 auto;
  /* Ajouté : le bandeau doit englober le logo et le menu flottants. */
  display: flow-root;
}

/* Logo */
#MainNav a.logo {
  width: auto;
  height: auto;
  margin: 18px 60px 10px 0;
  display: block;
  outline: none;
  float: left;
  font: bold 2em/1em "Arial Narrow", Arial, Helvetica, sans-serif;
  color: #2b2b2b;
  text-decoration: none;
}
/* Astra aligne les images au milieu ; l'ancien theme laissait l'alignement par defaut,
   d'ou une boite de logo plus haute de 3,75 px. */
#MainNav a.logo img {
  vertical-align: baseline;
}
#MainNav a.logo:hover {
  color: #5b5b5b;
  text-decoration: none;
}

/* Menu */
#menu {
  float: right;
  position: relative;
  z-index: 1001;
  padding-top: 10px;
  font-size: 13px;
}
#menu li {
  width: auto;
  margin: 0 1px 0 0;
  padding: 0;
  float: left;
  font: bold 1.2em/1.1em Arial, Helvetica, sans-serif;
  background: none;
  position: relative;
}
#menu li a {
  width: auto;
  height: 37px;
  margin: 0;
  padding: 15px 18px 10px;
  position: relative;
  float: left;
  color: #232323;
  text-decoration: none;
  z-index: 1000;
}
#MainNav li .menuslide {
  position: absolute;
  z-index: 999;
  width: 100%;
  height: 62px;
  background: url(images/ancien/menu_slide.gif) top repeat-x #404041;
  display: none;
  margin-top: -40px;
  top: 40px;
  left: 0;
}
#MainNav li li .menuslide {
  position: absolute;
  width: 0;
  height: 0;
  background: none;
  display: none;
  margin-top: 0;
  top: 0;
  left: 0;
}
/* Astra impose box-sizing:border-box à tous les éléments ; l'ancien CSS est en
   content-box : le lien de premier niveau fait 37 + 15 + 10 = 62 px de haut. */
#menu ul.ddsmoothmenu > li > a {
  box-sizing: content-box;
}
#menu li a.selected,
#menu li a:hover {
  color: #fff;
}
#menu li.current-menu-item a,
#menu li.current-menu-parent a,
#menu li.current_page_parent a {
  color: #fff;
  background: url(images/ancien/menu_slide.gif) top repeat-x #404041;
}
#menu li.current-menu-item a:hover,
#menu li.current-menu-parent a:hover,
#menu li.current_page_parent a:hover,
#menu li a:hover.selected {
  text-decoration: none;
}
.menu_description {
  display: block;
  font: 10px Arial, Helvetica, sans-serif;
  color: #BEBEBE;
}

/* Astra ajoute une flèche (span.dropdown-menu-toggle) et un bouton
   (button.ast-menu-toggle) aux éléments ayant un sous-menu ; l'ancien menu
   n'en a pas. */
#menu .dropdown-menu-toggle,
#menu .ast-menu-toggle {
  display: none;
}

/* Équivalent de la règle générale d'origine « ul, ol { list-style:none } » */
#menu ul,
#menu li {
  list-style: none;
}

/* Menu déroulant (ddsmoothmenu.css d'origine) */
#menu ul.ddsmoothmenu {
  margin: 0;
  padding: 0;
  list-style: none;
  float: left;
  position: relative;
  z-index: 10000;
}
#menu ul.ddsmoothmenu li {
  position: relative;
  display: inline;
  float: left;
}
#menu ul.ddsmoothmenu li li {
  width: auto;
  font: 11px Arial, Helvetica, sans-serif !important;
  margin: 0;
  padding: 0;
}
#menu ul.ddsmoothmenu li li a {
  width: 130px;
  height: auto;
  float: none;
  display: block;
  text-align: left;
  color: #fff;
  text-shadow: none;
  margin: 0;
  padding: 6px 18px;
  text-decoration: none;
  background: none;
  position: relative;
  border-bottom: 1px solid #EEEEEE;
}
#menu ul.ddsmoothmenu li li a:link,
#menu ul.ddsmoothmenu li li a:visited {
  color: #888888;
  background: url(images/ancien/submenu_px.gif) top repeat-x #fff;
}
#menu ul.ddsmoothmenu li li a.selected,
#menu ul.ddsmoothmenu li li a:hover {
  color: #fff;
  background: #4E4E4F;
}
#menu ul.ddsmoothmenu li ul {
  border-top: 1px solid #EEEEEE;
  margin: 0;
  padding: 0;
  position: absolute;
  left: 0;
  display: none;
  visibility: hidden;
  background: #E3E3E3;
}
#menu ul.ddsmoothmenu li ul li {
  display: list-item;
  float: none;
}

/* Déduit, non mesuré : dans l'ancien site, l'apparition de la barre sombre
   (.menuslide) et du sous-menu est commandée par du JavaScript (ddsmoothmenu
   et le script du thème), que je n'ai pas examiné. Ici, le survol CSS. */
#menu > ul > li:hover > .menuslide {
  display: block;
}
#menu ul.ddsmoothmenu li:hover > ul {
  display: block;
  visibility: visible;
  top: 100%;
}

/* Bannière orange à motif, avec ombres haute et basse */
.header_full {
  width: 100%;
  position: relative;
  z-index: 10;
  background-position: top center;
  background-repeat: no-repeat;
}
.header_full.sample_01 {
  background-image: url(images/ancien/patterns/pattern_01.jpg);
  background-color: #ff7b00;
}
.header_full #header {
  width: 960px;
  margin: 0 auto;
  position: relative;
}
.head_top_shadow {
  width: 100%;
  height: 11px;
  position: absolute;
  top: 0;
  left: 0;
  background: url(images/ancien/head_px_top.png) top repeat-x;
}
.head_bot_shadow {
  width: 100%;
  height: 12px;
  position: absolute;
  bottom: 0;
  left: 0;
  background: url(images/ancien/head_px_bot.png) top repeat-x;
}
/* Accueil (body#main d'origine) : bannière haute ; autres pages (body#sp) : basse */
body.home .header_full { margin-bottom: 110px; }
body.home .header_full #header { min-height: 399px; }
body:not(.home) .header_full { margin-bottom: 0; }
body:not(.home) .header_full #header { min-height: 179px; }

/* ===================================================
   SLIDER ACCUEIL (reproduction de Nivo Slider 2.0 ; valeurs de nivo-slider.css)
   Le fond translucide (slider_bg.png, 1240 x 500) est posé sur .SliderBg dans l'en-tête.
=================================================== */
.SliderBg { box-sizing: content-box; width: 952px; height: 392px; overflow: hidden; padding: 39px 144px 69px; position: absolute; top: 42px; left: 50%; margin-left: -620px; background: url(images/ancien/slider_bg.png) 0 0 no-repeat; }
.lmp-slider { position: relative; width: 952px; height: 392px; overflow: hidden; margin: 0 auto; background: #fff no-repeat 0 0; }
.lmp-slider .lmp-slide { position: absolute; top: 0; left: 0; z-index: 60; display: none; width: 952px; height: 392px; margin: 0; padding: 0; border: 0; }
.lmp-slider .lmp-slide.is-active { display: block; }
.lmp-slider .lmp-slide img { display: block; width: 952px; height: 392px; max-width: none; margin: 0; }
.lmp-slider .nivo-slice { display: block; position: absolute; top: 0; z-index: 50; }
.lmp-slider .nivo-caption { position: absolute; left: 10px; bottom: 10px; z-index: 89; width: 300px; background: #000; color: #fff; opacity: 0.8; border-radius: 4px; }
.lmp-slider .nivo-caption p { width: 280px; margin: 10px; padding: 0; overflow: hidden; transition: opacity 0.6s linear; }
.lmp-slider .nivo-caption .slider_title { display: block; font: normal 22px Arial, Verdana, Helvetica, sans-serif; color: #fff; line-height: 0.818em; margin-bottom: 0.818em; }
.lmp-slider .nivo-caption .btn { float: left; display: block; margin: 0.5em 20px 5px 0; }
.lmp-slider .nivo-directionNav a { position: absolute; top: 45%; z-index: 99; width: 53px; height: 60px; overflow: hidden; text-indent: -9999px; cursor: pointer; }
.lmp-slider a.nivo-prevNav { left: 10px; background: url(images/ancien/nav_left.png) 0 0 no-repeat; }
.lmp-slider a.nivo-prevNav:hover { background-position: 0 -60px; }
.lmp-slider a.nivo-nextNav { right: 10px; background: url(images/ancien/nav_right.png) 0 0 no-repeat; }
.lmp-slider a.nivo-nextNav:hover { background-position: 0 -60px; }
.lmp-slider .nivo-controlNav { position: absolute; bottom: 0; left: 50%; z-index: 100; display: flex; padding: 7px 0 0 10px; background: #fff; border-radius: 4px 4px 0 0; transform: translate(-50%, 100%); transition: transform 0.2s ease; }
.lmp-slider:hover .nivo-controlNav,
.lmp-slider:focus-within .nivo-controlNav { transform: translate(-50%, 0); }
.lmp-slider .nivo-controlNav a { display: block; width: 16px; height: 15px; margin-right: 10px; overflow: hidden; text-indent: -9999px; cursor: pointer; background: url(images/ancien/bullets.png) -20px 0 no-repeat; }
.lmp-slider .nivo-controlNav a.active { background-position: 0 0; }
.lmp-slider:not(.is-multi) .nivo-directionNav,
.lmp-slider:not(.is-multi) .nivo-controlNav { display: none; }

/* ===================================================
   BARRE D'ACCROCHE DE L'ACCUEIL (#featured_top_line de l'ancien site)
=================================================== */
#featured_top_line { box-sizing: content-box; width: 940px; height: 50px; position: relative; z-index: 1000; margin: -15px auto 20px; padding: 20px 10px; background: url(images/ancien/featured_bg.png) center bottom no-repeat; }
html body #content #featured_top_line h2 { margin: 19.5px 0 0.818em; padding: 0; font: 22px Arial, Verdana, Helvetica, sans-serif; color: #232323; line-height: 0.818em; text-align: center; }
#featured_top_line .clear { clear: both; height: 0; overflow: hidden; }

/* ===================================================
   CONTENU DE L'ACCUEIL (reproduction : .content_wrapper > #content, trois colonnes)
   Mesures prises sur l'ancien accueil : colonnes de 286,67 px séparées de 50 px
   (autoColumn(50) du thème d'origine, remplacé ici par flex), hauteurs égales,
   texte de 12 px, interligne 19,5 px, filet de 960 px.
=================================================== */
/* Le conteneur d'Astra est en flex : sans cette largeur, le bloc se réduit à son contenu et se cale à gauche. */
html body.home #content .lmp-home { width: 100%; }
.lmp-home .content_wrapper { box-sizing: content-box; width: 960px; min-height: 300px; margin: 0 auto; padding: 58.5px 0; }
.lmp-home .lmp-content { width: 960px; font-size: 12px; line-height: 19.5px; color: #666; }
.lmp-home .auto-row-1 { display: flex; justify-content: space-between; width: 960px; }
.lmp-home .auto-column { box-sizing: content-box; flex: 0 0 286.67px; width: 286.67px; }
.lmp-home .auto-column img { display: block; float: left; width: 32px; height: 32px; margin: 0 20px 5px 0; }
html body #content .lmp-home .auto-column h2 { clear: none; margin: 0 0 0.818em; padding: 5px 0 0; font: 22px Arial, Verdana, Helvetica, sans-serif; color: #232323; line-height: 0.818em; }
.lmp-home .auto-column .clear { display: block; clear: both; height: 0; overflow: hidden; }
.lmp-home .auto-column .btn { display: inline-block; }
html body.home #content .lmp-home .hr { width: 960px; height: 2px; overflow: hidden; margin: 2.944em 0; background: url(images/ancien/hr_960.png) 0 0 no-repeat; }

/* ===================================================
   CONTENU PAGES INTÉRIEURES (reproduction du thème Inspiration, phase 2a)
   Valeurs mesurées dans stylesheets/light/styles.css (lignes 7-47, 111-130, 265-282).
   Le cadre est porté par #content : width 940 + padding 45 = 1030 px, largeur de
   l'image subpage_content_bg.png. Astra impose border-box, d'où content-box ici.
=================================================== */
body:not(.home) #content.site-content {
  box-sizing: content-box;
  width: 940px;
  min-height: 320px;
  margin: -107px auto 0;
  padding: 45px;
  position: relative;
  z-index: 20;
  background: url(images/ancien/subpage_content_bg.png) 0 0 no-repeat;
}
body:not(.home) #content.site-content > .ast-container {
  display: block;
  max-width: none;
  width: auto;
  margin: 0;
  padding: 0;
}
body:not(.home) #content #primary {
  width: 100%;
  margin: 0;
  padding: 0;
}
body:not(.home) #content .ast-article-single,
body:not(.home) #content .ast-article-single .entry-content {
  margin: 0;
  padding: 0;
  background: none;
}
#content { font-size: 12px; }
/* Pages interieures : 13 px comme le corps de l'ancien site (12 px seulement sur l'accueil). */
body:not(.home) #content { font-size: 13px; }

/* Titre de page : div.PageTitle > h1 */
/* L'en-tête d'Astra reste affiché, vide, quand son titre est coupé : on le masque. */
html body.page #content .entry-header {
  display: none;
}
html body #content .PageTitle {
  min-height: 57px;
  padding: 5px 0 15px;
  margin: 0;
  position: relative;
}
html body #content h1.entry-title {
  font: 36px Arial, Helvetica, sans-serif;
  color: #FD7500;
  line-height: 0.5em;
  margin: 0 0 0.5em;
  padding: 0;
  border: 0;
}
html body #content h2 { font: 22px Arial, Verdana, Helvetica, sans-serif; color: #232323; line-height: 0.818em; margin: 0 0 0.818em; }
html body #content h3 { font: 20px Arial, Verdana, Helvetica, sans-serif; color: #292A2A; line-height: 0.9em; margin: 0 0 0.9em; }
html body #content h4 { font: 16px Arial, Helvetica, sans-serif; color: #232323; line-height: 1.125em; margin: 0 0 1.125em; }
/* Filet <hr> : style par defaut du navigateur comme sur l'ancien site (2 px avec la bordure
   en relief, 0,5 em de marge) ; Astra le reduit a 1 px avec 1,5 em de marge basse. */
html body #content hr {
  height: 0;
  margin: 0.5em 0;
  border: 1px inset gray;
  background: none;
}
/* Plan du site : tableau brut dans un h4, comme l'ancien site (styles par defaut du navigateur :
   pas de bordure, 2 px entre les cellules, 1 px de remplissage). Astra ajoute bordures, marges
   et remplissage aux tableaux : on les retire. */
html body #content h4 table {
  width: auto;
  margin: 0;
  border: 0;
  border-collapse: separate;
  border-spacing: 2px;
  background: none;
}
html body #content h4 table tr,
html body #content h4 table td {
  border: 0;
  padding: 1px;
  background: none;
  text-align: left;
  vertical-align: inherit;
}
html body #content h5,
html body #content h6 { font: bold 14px Arial, Helvetica, sans-serif; color: #232323; line-height: 1.286em; margin: 0 0 1.286em; }
html body #content h2 a { color: #232323; text-decoration: none; }
html body #content h2 a:hover { color: #B1B1B1; text-decoration: none; }

/* Textes, liens, listes, sélection */
html body #content p { margin: 0 0 1.5em; padding: 0; }
html body #content a { color: #818181; outline: none; text-decoration: underline; }
html body #content a:hover { color: #000; text-decoration: none; }
::selection { background: #ff6400; color: #fff; }
::-moz-selection { background: #ff6400; color: #fff; }
html body #content ul,
html body #content ol { margin: 0; padding: 0 0 0.75em; list-style: none; }
html body #content ul li,
html body #content ol li { margin: 0; padding: 0.75em 0; }

/* Séparateur : div.hr */
.hr {
  width: 940px;
  height: 2px;
  overflow: hidden;
  margin: 2.944em 0;
  background: url(images/ancien/hr_940.png) 0 0 no-repeat;
}

/* Boutons : .btn */
.btn {
  display: block;
  margin-top: 0.5em;
  padding: 7px 12px;
  border: 1px solid transparent;
  border-radius: 5px;
  font-size: 12px;
  line-height: 1em;
  text-align: center;
  color: #fff;
  background: url(images/ancien/btn_px.gif) top repeat-x #3c3c3c;
}
.btn:hover,
.btn:focus {
  color: #000;
  border: 1px solid #000;
  background: #DEDEDE;
}
/* Le lien générique de #content (gris, souligné) l'emporte sur .btn : on rétablit le bouton */
html body #content a.btn { color: #fff; text-decoration: none; }
html body #content a.btn:hover,
html body #content a.btn:focus { color: #000; text-decoration: none; }

/* Références : rangées à deux colonnes séparées par un filet (div.auto-row + div.hr).
   Mesures prises sur les captures de l'ancien site (échelle 1:1) : image de 240 px de
   large pour toutes les références (hauteur proportionnelle), texte à 334 px du bord
   gauche du contenu, retour à la ligne du texte vers 250 px (déduit). */
html body #content .lmp-refs-list {
  margin: 0;
  padding: 0;
}
html body #content .lmp-refs-list .lmp-ref {
  display: grid;
  grid-template-columns: 334px 250px;
  align-items: start;
  margin: 0;
  padding: 0;
}
/* Image a 85 % de la colonne de 285 px (242,25 px), comme l'ancien site ; 5,4 px sous l'image,
   espace de bas de ligne d'une image en ligne (rangees de 136 et 126 px mesurees). */
html body #content .lmp-refs-list .lmp-ref img {
  display: block;
  width: 242.25px;
  max-width: 100%;
  height: auto;
  margin: 0 0 5.4px;
}
html body #content .lmp-refs-list .lmp-ref figcaption {
  margin: 0;
  padding: 0;
  font-size: 13px;
  line-height: 1.5em;
  color: #666;
  text-align: left;
}
html body #content .lmp-refs-list .lmp-ref:not(:last-child)::after {
  content: "";
  display: block;
  grid-column: 1 / -1;
  width: 940px;
  max-width: 100%;
  height: 2px;
  overflow: hidden;
  margin: 2.944em 0;
  background: url(images/ancien/hr_940.png) 0 0 no-repeat;
}
@media (max-width: 768px) {
  html body #content .lmp-refs-list .lmp-ref { grid-template-columns: 1fr; }
  html body #content .lmp-refs-list .lmp-ref figcaption { margin-top: 0.5em; }
}

/* Images encadrées : img.pic */
img.pic {
  display: block;
  border: 4px solid #fff;
  border-radius: 5px;
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.8);
}

/* ===================================================
   COLONNE LATÉRALE ET FIL D'ARIANE (phase 2c)
   Valeurs mesurées dans stylesheets/light/styles.css (lignes 111-113, 255-260, 285-287) :
   contenu 620 px, colonne 275 px + 20 px de marge intérieure, filet à gauche.
=================================================== */
html body.ast-right-sidebar #content #primary {
  float: left;
  width: 620px;
  margin: 0;
  padding: 0;
  border: 0;
}
html body.ast-right-sidebar #content #secondary {
  box-sizing: content-box;
  float: right;
  width: 275px;
  min-height: 320px;
  position: relative;
  margin: 0;
  padding: 0 0 0 20px;
  border: 0;
  background: url(images/ancien/sidebar_separator_right.png) top left no-repeat;
}
html body.ast-right-sidebar #content #secondary::after {
  position: absolute;
  content: " ";
  bottom: -30px;
  left: 0;
  width: 8px;
  height: 30px;
  background: url(images/ancien/sidebar_separator_right_after.png) 0 0 no-repeat;
}
body:not(.home) #content.site-content > .ast-container::after {
  content: "";
  display: block;
  clear: both;
}
html body #content #secondary,
html body #content #secondary .textwidget,
html body #content #secondary p {
  font-size: 13px;
  line-height: 1.5em;
  color: #666;
}
html body #content #secondary p { margin: 0 0 1.5em; padding: 0; }
/* Valeurs de widgets.css (lignes 40-57) : widget de 275 px, marge basse de 3 em, titre à
   0,45 em, liens gris #666 puis noirs au survol. */
#secondary .widget-container {
  width: 275px;
  margin: 0 0 3em;
  padding: 0;
  background: none;
  color: #666;
}
html body #content #secondary .widget-container h3 { margin: 0 0 0.45em; }
html body #content #secondary a { color: #666; text-decoration: none; }
html body #content #secondary a:hover { color: #000; text-decoration: none; }
/* Comme sur l'ancien site : iframe en ligne (alignement par defaut), ce qui laisse 5,3 px sous la
   carte et donne un widget de 455,3 px. Police de la barre laterale : 13 px (ancien site). */
#secondary iframe {
  max-width: 100%;
}
/* Carte Google Maps chargée au clic (consentement, CNIL). Le gabarit remplace l'iframe à
   l'identique : même taille (250 x 450 px), en ligne et calé sur la ligne de base (overflow
   hidden donne à un bloc en ligne la base de son bord bas, comme une iframe), donc la même
   hauteur de colonne latérale. */
html body #content #secondary .lmp-map {
  display: inline-block;
  overflow: hidden;
  box-sizing: border-box;
  width: 250px;
  max-width: 100%;
  height: 450px;
  padding: 150px 20px 0;
  border: 1px solid #d5d3cd;
  background: #ecebe7;
  text-align: center;
}
html body #content #secondary .lmp-map p {
  margin: 0 0 12px;
  font-size: 12px;
  line-height: 1.4em;
}
html body #content #secondary .lmp-map-btn {
  display: block;
  margin: 0 auto;
  padding: 7px 12px;
  border: 1px solid transparent;
  border-radius: 5px;
  font: 12px/1em Arial, Helvetica, sans-serif;
  color: #fff;
  background: url(images/ancien/btn_px.gif) top repeat-x #3c3c3c;
  cursor: pointer;
}
html body #content #secondary .lmp-map-btn:hover,
html body #content #secondary .lmp-map-btn:focus {
  color: #000;
  border: 1px solid #000;
  background: #DEDEDE;
}
html body #content #secondary .lmp-map-btn:focus-visible {
  outline: 2px solid #000;
  outline-offset: 2px;
}

/* Fil d'Ariane : div#breadcrumbs */
html body #content #breadcrumbs {
  width: 940px;
  max-width: 100%;
  margin: 0;
  padding: 0 0 20px;
  font: 11px Arial, Helvetica, sans-serif;
  /* L'ancien CSS mettait text-transform: capitalize ; retiré à la demande de l'utilisateur
     pour que le fil d'Ariane reprenne le titre à l'identique (« ZAC et Lotissements »). */
  color: #808080;
}
html body #content #breadcrumbs a { color: #808080; text-decoration: none; }
html body #content #breadcrumbs a:hover { color: #ff7b00; text-decoration: none; }

/* Séparateur de 610 px quand la colonne latérale est présente */
html body.ast-right-sidebar #content .hr,
html body.ast-right-sidebar #content .lmp-refs-list .lmp-ref:not(:last-child)::after {
  width: 610px;
  background-image: url(images/ancien/hr_610.png);
}

/* ===================================================
   GALERIE RÉFÉRENCES (page Références, reproduction de l'ancien site)
=================================================== */
html body #content .gallery { width: 956px; margin: 0 0 20px -12px; position: relative; }
html body #content .gallery::after { content: ""; display: block; clear: both; }
html body #content .gallery ul { margin: 0; padding: 0; list-style: none; }
html body #content .gallery li { box-sizing: content-box; width: 214px; height: 194px; overflow: hidden; margin: 0 0 14px 14px; padding: 0; float: left; list-style: none; border: 4px solid #fff; border-radius: 5px; box-shadow: 0 0 4px rgba(0, 0, 0, 0.5); }
html body #content .gallery li:hover,
html body #content .gallery li:focus-within { border-color: #8c8b8b; }
html body #content .gallery li .gallery_item { box-sizing: content-box; width: 184px; height: 164px; padding: 15px; overflow: hidden; position: relative; z-index: 20; background: url(images/ancien/gallery_item_bg.jpg) 0 0 no-repeat; }
html body #content .gallery li .gallery_item .cover { display: block; position: absolute; top: 0; left: 0; z-index: 100; width: 214px; height: 194px; max-width: none; object-fit: cover; pointer-events: none; transition: left 0.9s ease-in-out; }
html body #content .gallery li:hover .gallery_item .cover,
html body #content .gallery li:focus-within .gallery_item .cover { left: 214px; transition-duration: 0.25s; }
html body #content .gallery li .gallery_item h4 { color: #DBDBDB; height: 1.1em; line-height: 1.4em; overflow: hidden; margin: 0 0 10px; padding-bottom: 6px; position: relative; border-bottom: 1px solid #4D4D4D; }
html body #content .gallery li .gallery_item h4::after { width: 100%; content: ""; position: absolute; bottom: 0; left: 0; border-bottom: 1px solid #000; }
html body #content .gallery li .gallery_item p { height: 7.2em; overflow: hidden; margin: 0 0 1.5em; color: #666; }
html body #content .gallery li .gallery_item .btn { position: absolute; bottom: 15px; left: 15px; margin: 0; }

/* ===================================================
   GALERIE RÉFÉRENCES
=================================================== */
.lmp-gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.lmp-gallery-item {
  position: relative;
  overflow: hidden;
}

.lmp-gallery-item img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.lmp-gallery-item:hover img {
  transform: scale(1.05);
}

.lmp-gallery-item .lmp-gallery-label {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(26,58,92,0.82);
  color: #fff;
  padding: 8px 12px;
  font-size: 12px;
  font-family: var(--font-heading);
  font-weight: 600;
}

/* ===================================================
   FORMULAIRES (Contact Form 7, phase 2f)
   Valeurs mesurées dans stylesheets/light/styles.css (lignes 51-55 et 248-253) :
   l'ancien site utilisait déjà Contact Form 7. Les champs sont en content-box comme à
   l'origine : 270 px (texte) et 470 px (zone de message) de contenu, plus 3 px de marge
   intérieure et 1 px de bordure. Le type « email » reçoit la largeur du type « text »
   (déduit : le CF7 de 2013 produisait des champs de type text).
=================================================== */
html body #content input[type="text"],
html body #content input[type="email"],
html body #content input[type="tel"],
html body #content input[type="url"],
html body #content textarea {
  box-sizing: content-box;
  height: auto;
  padding: 3px;
  font: 1em/1.5em Arial, Helvetica, sans-serif;
  color: #666;
  border: 1px solid #BCBCBC;
  border-radius: 4px;
  background: #fff;
  box-shadow: none;
}
html body #content input[type="text"],
html body #content input[type="email"],
html body #content input[type="tel"],
html body #content input[type="url"] {
  width: 270px;
  max-width: 100%;
}
html body #content textarea {
  width: 470px;
  max-width: 100%;
  overflow: hidden;
}
html body #content input[type="text"]:hover,
html body #content input[type="email"]:hover,
html body #content input[type="tel"]:hover,
html body #content input[type="url"]:hover,
html body #content textarea:hover,
html body #content input[type="text"]:focus,
html body #content input[type="email"]:focus,
html body #content input[type="tel"]:focus,
html body #content input[type="url"]:focus,
html body #content textarea:focus {
  background: #f0f0f0;
  border-color: #BCBCBC;
  box-shadow: none;
  outline: none;
}
html body #content .wpcf7 label {
  display: block;
  font-weight: normal;
  color: #666;
}
html body #content input[type="submit"],
html body #content .wpcf7-submit {
  position: relative;
  width: auto;
  padding: 5px 12px;
  cursor: pointer;
  outline: none;
  font: 12px/1.5em Arial, Helvetica, sans-serif;
  text-align: center;
  text-transform: none;
  border: none;
  border-radius: 4px;
  color: #fff;
  background: #454545;
}
html body #content input[type="submit"]:hover,
html body #content input[type="submit"]:focus,
html body #content .wpcf7-submit:hover,
html body #content .wpcf7-submit:focus {
  color: #000;
  padding: 4px 11px;
  border: 1px solid #000;
  background: #DEDEDE;
}
/* Ligne de consentement : texte rouge en permanence sur l'ancien site (rgb(207, 54, 61) releve
   sur capture). Le libelle « Consentement (requis) : » est dans le modele du formulaire. */
html body #content .wpcf7 .lmp-consent,
html body #content .wpcf7 .lmp-consent label,
html body #content .wpcf7 .lmp-consent .wpcf7-list-item-label {
  color: #cf363d;
}
/* Une seule ligne : « Consentement (requis) : [case] J'autorise... » */
html body #content .wpcf7 .lmp-consent label,
html body #content .wpcf7 .lmp-consent .wpcf7-form-control-wrap,
html body #content .wpcf7 .lmp-consent .wpcf7-form-control,
html body #content .wpcf7 .lmp-consent .wpcf7-list-item {
  display: inline;
}
/* Ecart d'environ 12 px entre les deux-points et la case, comme sur l'ancien site */
html body #content .wpcf7 .lmp-consent .wpcf7-list-item {
  margin: 0 0 0 0.6em;
}
/* Message d'erreur général : texte rouge comme .wpcf7-validation-errors de l'ancien CSS (le cadre jaune vient du plugin) */
html body #content .wpcf7 form.invalid .wpcf7-response-output { color: #FF0000; }
html body #content .wpcf7-not-valid-tip {
  padding-left: 10px;
  color: #FF0000;
}

/* ===================================================
   PIED DE PAGE (reproduction du thème Inspiration, phase 3a)
   Valeurs mesurées dans stylesheets/light/styles.css (lignes 114-122, 261-262) et dans
   stylesheets/light/widgets.css (lignes 326-396). Largeur de la liste (960 px) relevée
   sur capture : la règle « #fsb .widget-container {width:100px} » y est surchargée.
=================================================== */
.fsb_full {
  width: 100%;
  background: url(images/ancien/fsb.png) top repeat-x;
}
#fsb {
  box-sizing: content-box;
  width: 960px;
  position: relative;
  margin: 0 auto;
  padding: 4.5em 0;
}
#fsb .widget-container {
  float: left;
  width: 960px;
  color: #969696;
}
html body #fsb h3 {
  font: 20px Arial, Verdana, Helvetica, sans-serif;
  color: #dadada;
  line-height: 0.9em;
  margin: 0 0 0.9em;
  padding: 0;
}
html body #fsb a { color: #969696; text-decoration: none; }
html body #fsb a:hover { color: #fff; text-decoration: none; }
#fsb .widget-container ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
#fsb .widget_nav_menu li {
  width: auto;
  margin: 0;
  padding: 0.75em 0 0.75em 15px;
  line-height: 1.474em;
  background: url(images/ancien/fsb_bull.png) 3px 15px no-repeat;
  border-top: 1px dashed rgba(255, 255, 255, 0.2);
}
#fsb .widget_nav_menu li:first-child { border-top: none; }
#fsb .widget_nav_menu li:hover,
#fsb .widget_nav_menu li.current-menu-item {
  background: url(images/ancien/fsb_bull.png) 3px 15px no-repeat rgba(0, 0, 0, 0.2);
}

.footer_full {
  width: 100%;
  border-top: 1px solid #0b0b0a;
  background: url(images/ancien/bg_dark.png) #1c1d20;
}
#footer {
  box-sizing: content-box;
  width: 960px;
  margin: 0 auto;
  padding: 2.5em 0;
  position: relative;
  z-index: 20;
  color: #a1a1a1;
  font-size: 13px;
  line-height: 1.5em;
  text-align: left;
}
#footer a { color: #6a6a6a; text-decoration: none; }
#footer a:hover { color: #a1a1a1; text-decoration: none; }
#footer a.lmp-brand { color: #ff6502; }
#footer p { margin: 0; padding: 0; }
#footer .copy { float: left; }
#footer .social { float: right; }
#footer .clear { clear: both; }

/* Le bouton de retour en haut d'Astra n'existe pas sur l'ancien site. */
#ast-scroll-top { display: none !important; }

/* ===================================================
   RESPONSIVE
=================================================== */
@media (max-width: 768px) {
  .lmp-gallery-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 480px) {
  .lmp-gallery-grid {
    grid-template-columns: 1fr;
  }
}
