/* =========================================================
   Heaume — Feuille de style consolidée
   (fusion custom.css + estate.css, dédupliquée)

   Couleurs
   --------
   Sable  #CAC6AD / #E0DDD1

   Craie : #F6F3EE
Sable : #E7DED1
Pierre : #D1C2A8
Or Sable : #B49A68
Bronze : #9A7E52
Terre : #6F5B44
Graphite #2F2B27
Pierre Bleue : #65747A
   ========================================================= */

/* ---------------------------------------------------------
   1. Base / reset
   --------------------------------------------------------- */
   * {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
  }
  
  html,
  body {
    width: 100%;
    height: 100%;
    background-color: #F6F3EE !important;
  }
  
  body {
    position: relative;
    font-feature-settings: 'lnum' 1; /* chiffres alignés */
  }
  
  /* ---------------------------------------------------------
     2. Helpers carte / affichage
     --------------------------------------------------------- */
  .hidemap { display: block; height: 1px; overflow: hidden; }
  .showmap { display: block; height: auto; }
  
  .page-id-121 .elementor-element-34dba754 { display: none; }
  
  /* ---------------------------------------------------------
     3. Tooltip & vignette (carte immeubles)
     --------------------------------------------------------- */
  .estatetooltip {
    display: block;
    position: absolute;
    padding: 10px;
    border: 1px solid #9A7E52;
    border-radius: 5px;
    background-color: #9A7E52;
    color: #F6F3EE;
    font-size: 16px;
    opacity: 1;
    z-index: 9999999;
  }
  
  .bathumb {
    display: block;
    position: absolute;
    width: 300px;
    height: 169px;
    padding: 0;
    border: 1px solid #9A7E52;
    border-radius: 5px;
    background-color: #9A7E52;
    overflow: hidden;
    opacity: 1;
    z-index: 9999999;
  }
  
  .bathumb img.desaturate { filter: grayscale(100%); }
  
  /* Boutons bâtiment actifs */
  #batimentouest.active,
  #batimentest.active { background-color: #CAC6AD; }
  
  .selection-btn-bat {
    position: absolute;
    top: 124px;
    left: auto;
    right: auto;
    justify-content: center;
    z-index: 9999999;
  }
  
  /* ---------------------------------------------------------
     4. Icône scroll (souris animée)
     --------------------------------------------------------- */
  .container {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
  }
  
  .field {
    display: flex;
    align-items: center;
    justify-content: space-around;
    width: 40px;
  }
  
  .mouse {
    position: relative;
    width: 40px;
    height: 70px;
    border: 2px solid #CAC6AD;
    border-radius: 60px;
  }
  
  .mouse::before {
    content: '';
    position: absolute;
    top: 10px;
    left: 50%;
    width: 12px;
    height: 12px;
    transform: translateX(-50%);
    border-radius: 50%;
    background-color: #CAC6AD;
    opacity: 1;
    animation: wheel 2s infinite;
  }
  
  @keyframes wheel {
    to { top: 60px; opacity: 0; }
  }
  
  /* ---------------------------------------------------------
     5. Sélecteurs & overlays réservation (image maps)
     --------------------------------------------------------- */
  .themap { position: relative !important; }
  
  .selector-block,
  .selector-block-est,
  .selector-block-ouest {
    position: relative;
    margin: 0 auto;
    padding: 0;
  }
  
  /* Image de base (usemap) : remplit le conteneur */
  .selector-block-est img[usemap],
  .selector-block-ouest img[usemap] {
    display: block;
    width: 100% !important;
    height: auto !important;
    max-width: none !important;
  }
  
  /* Overlays réservation calés sur l'image de base */
  .selector-block-est img.reservation,
  .selector-block-ouest img.reservation {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: auto !important;
    max-width: none !important;
    pointer-events: none;
    z-index: 10;
  }
  
  /* Overlay réservation générique (masqué par défaut) */
  body img.reservation {
    display: none;
    position: absolute !important;
    top: 0;
    left: 0;
    right: 0;
    margin: 0 auto;
    width: 100% !important;
    z-index: 10;
  }
  
  .top-button-map,
  area { z-index: 999999999 !important; }
  
  /* ---------------------------------------------------------
     6. Single appartement
     --------------------------------------------------------- */
.spefbloc {
  color: #2F2B27;
}

  .lotline {
    width: 100%;
    clear: both;
    padding: 0;
    line-height: 2.5;
    border-radius: 3px;
    border-bottom: 1px dotted #D1C2A8;
    overflow: hidden;
  }
  
  .haflcol.left  { float: left; width: 65%; }
  .haflcol.right { float: left; width: 35%; text-align: right; }
  
  /* ---------------------------------------------------------
     7. Tableau de prix responsive
     --------------------------------------------------------- */
  .limiter {
    width: 100%;
    margin: 0 auto;
  }
  
  .container-table100 {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    width: 100%;
    padding: 0;
  }
  
  .wrap-table100 { width: 100%; }
  
  .limiter table {
    position: relative;
    width: 100%;
    margin: 0 auto;
    border-collapse: collapse;
    border-spacing: 1px;
    border-radius: 3px;
    background: #F6F3EE;
    font-family: 'Raleway', sans-serif !important;
  }
  
  .limiter table * { position: relative; }
  
  .limiter table td,
  .limiter table th {
    padding-left: 8px;
    border: 0;
    text-align: center;
    font-size: 14px;
    line-height: 1.25;
    vertical-align: middle;
  }
  
  body .limiter table tr {
    height: 50px;
    border: 0;
    border-radius: 3px;
    cursor: pointer !important;
  }
  
  .limiter table tbody tr:last-child { border: 0; }
  .limiter tbody tr { color: #000; }
  .limiter tbody tr:nth-child(even) { background-color: #E0DDD1; }
  .limiter tbody tr:hover { background-color: #9A7E52; color: #F6F3EE; }
  
  /* En-tête de tableau */
  body .limiter table tr.table100-head,
  .table100-head th {
    background: #9A7E52;
    color: #F6F3EE;
    text-transform: uppercase;
    text-align: center;
  }
  body .limiter table tr.table100-head { height: 50px; }
  
  /* Ligne de séparation par immeuble */
  .table100 tr.line-immeuble td.immeuble-head {
    padding: 12px 18px;
    background: #D1C2A8;
    color: #2F2B27;
    font-size: 18px;
    font-weight: 600;
    font-family: montserrat;
    text-align: left;
    text-transform: inherit;
  }
  
  .column1, .column2, .column3, .column4, .column5, .column6, .column7,
  .column8, .column9, .column10, .column11, .column12, .column13 {
    text-align: center;
  }
  
  /* ---------------------------------------------------------
     8. Elementor — overrides ciblés
     --------------------------------------------------------- */
  body .btn-fiche {
    display: flex;
    flex-direction: row !important;
    justify-content: space-between;
    padding: 24px 0 0;
  }
  
  body .btn-download .elementor-icon,
  body .btn-contact .elementor-icon {
    padding: 6px;
    background-color: #9A7E52;
    font-size: 35px;
  }
  
  .elementor-flip-box__back .fa { margin-right: 8px; }
  .elementor-flip-box__back a { color: ##B49A68 !important; }
  .elementor-flip-box__back p { margin-bottom: 4px; line-height: 1.3; }
  .elementor-120 .elementor-element.elementor-element-9a83e9d .elementor-flip-box__back .elementor-flip-box__layer__title {
    margin-bottom: 0;
  }
  
  /* =========================================================
     9. Responsive
     ========================================================= */
  
  /* --- Tablette / mobile : tableau en cartes --- */
  @media screen and (max-width: 992px) {
    .limiter table { display: block; background: #E0DDD1; }
    .limiter table > *,
    .limiter table tr,
    .limiter table td,
    .limiter table th { display: block; }
    .limiter table thead { display: none; }
  
    table tbody > tr:nth-child(odd) > td,
    table tbody > tr:nth-child(odd) > th { background-color: inherit !important; }
    .limiter tbody tr:nth-child(even) { background-color: #F6F3EE; }
  
    .limiter table tbody tr { height: auto; padding: 37px 0; }
    .limiter table tbody tr td { margin-bottom: 4px; }
    .limiter table tbody tr td:last-child { margin-bottom: 0; }
  
    .limiter table td,
    .limiter table th {
      box-sizing: border-box;
      padding-right: 32px;
      border-bottom: 1px dotted #eaeaea;
      text-align: right;
      font-size: 16px;
      line-height: 2;
      vertical-align: middle;
    }
  
    .limiter table tbody tr td.bolder,
    .limiter table tbody tr td.bolder:before { font-weight: 600; }
  
    /* Libellé (data-title) devant chaque cellule — remplace les 13 blocs nth-child */
    .limiter table tbody tr td:before {
      content: attr(data-title);
      position: absolute;
      top: 0;
      left: 32px;
      width: 40%;
      line-height: 60px;
      color: #000;
      text-align: left;
    }
    .limiter table tbody tr:hover td:before { color: #F6F3EE; }
  
    .limiter tbody tr:nth-child(even):hover,
    .limiter tbody tr:nth-child(odd):hover { background-color: #9A7E52 !important; }
  
    .column1, .column2, .column3, .column4, .column5, .column6, .column7,
    .column8, .column9, .column10, .column11, .column12, .column13 {
      width: 100%;
      text-align: left;
    }
  }
  
  /* --- Divers points de rupture --- */
  @media (max-width: 1024px) {
    body .page-id-68 .selection-btn-bat { top: 74px; }
  }
  
  @media screen and (max-width: 768px) {
    .elementor-background-slideshow { margin-top: -24px; }
    body.elementor-274 .elementor-element.elementor-element-1eaa355 > .elementor-widget-container {
      padding: 0 !important;
    }
  }
  
  @media (max-width: 767px) {
    body .elementor-108 .elementor-element.elementor-element-3d55c915 .elementskit-nav-logo > img {
      max-width: 160px;
    }
    body .selection-btn-bat {
      position: relative;
      top: inherit;
      right: inherit;
      padding: 24px;
      justify-content: flex-start;
      z-index: inherit;
    }
  }
   
  @media (max-width: 576px) {
    .container-table100 { padding-left: 15px; padding-right: 15px; }
  }
  
  @media only screen and (max-width: 480px) {
    body .elementor-element-312df32 { margin-top: 70px; }
    body .elementor-328 .elementor-element.elementor-element-63f7cc38 > .elementor-widget-container { padding: 0; }
    body .elementor-element-5c8a663a { margin-top: -69px; }
    body .elementor-328 .elementor-element.elementor-element-4a0fbbb6 .elementor-heading-title { font-size: 36px; }
  }

  /* =========================================================
     10. Separateur
     ========================================================= */

     .separator_b .elementor-icon-box-icon::after {
      content: "";
      position: absolute;
      top: 91px;
      left: 50%;
      transform: translate(-50%, -50%);          /* centré pile sur la ligne */
      width: 100%;                               /* = largeur du trou */
      height: 20px;
      background: url("/wp-content/uploads/croix-full.svg") center no-repeat;
    }
    
  .separator_croix .elementor-icon-box-icon {
    display: flex;
    align-items: center;
    gap: 34px;                       /* espace réservé pour la croix */
    background: url("/wp-content/uploads/croix.svg") center / 26px no-repeat;
    min-height: 44px;                /* hauteur pour que la croix respire */
    --gold: #a1854e;                 /* couleur des lignes, à ajuster */
  }
  
  .separator_croix .elementor-icon-box-icon::before,
  .separator_croix .elementor-icon-box-icon::after {
    content: "";
    flex: 1 1 0;                     /* chaque ligne prend la moitié restante */
    height: 1px;
    background: var(--gold);
  }

    /* =========================================================
     11. Tableau
     ========================================================= */

     .imm-legende{
      --cream:#F6f3ee; --soft:#e7e0d4; --gold:#c8a24e;
      display:grid; grid-template-columns:repeat(2,1fr); gap:30px 48px;
      max-width:760px; margin-inline:auto;
      font-family:'Raleway',sans-serif;
    }
    .imm-legende *{box-sizing:border-box; margin:0;}
    .imm-item{position:relative; padding:44px 28px 34px; text-align:center; overflow:hidden;}
    .imm-num-bg{
      position:absolute; top:-8px; left:50%; transform:translateX(-50%);
      font-size:150px; font-weight:200; line-height:1;
      color:var(--cream); opacity:.2; pointer-events:none; z-index:0;
    }
    .imm-cross{position:relative; z-index:1; color:var(--gold); font-size:22px; line-height:1;}
    .imm-nom, .elementor-kit-24 h3.imm-nom {position:relative; z-index:1; margin-top:14px; font-size:32px; font-weight:300; letter-spacing:.04em; color:var(--cream);}
    .imm-num{display:block; margin:8px 0 18px; font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:var(--cream);}
    .imm-rule{width:46px; height:1px; margin:0 auto 18px; background:var(--cream); opacity:1;}
    .imm-legende p.imm-txt{margin:0; max-width:36ch; margin-inline:auto; font-size:15px; line-height:1.7; font-weight:300; color:var(--cream);}
    .elementor-kit-24 p.imm-txt:last-child { margin-bottom:24px !important; }
    @media(max-width:680px){ .imm-legende{ grid-template-columns:1fr; max-width:360px; } }

    .elementor-kit-24 p, .elementor-kit-24 .pb-regular p:last-child { margin-block-end: 24px !important; }
    .elementor-kit-24 p:last-child { margin-block-end: 42px !important; }
    .elementor-kit-24 footer p, .elementor-kit-24 footer p:last-child { margin-block-end: 14px !important; }

    .parent-pageid-68.elementor-kit-24  h1 {
      font-family: montserrat, sans-serif;
      font-weight: 500;
      font-style: normal;
      font-size: 32px;
      color: #B49A68;
    }


 /* =====================================================
 * Pricelist v2 — 4 blocs immeubles, shade foncé → clair
 * Palette Heaume : Or Sable / Pierre / Sable / Craie
 * À coller dans le CSS custom (Customizer ou Elementor)
 * ===================================================== */

/* Espace entre les blocs : totalement transparent */
.table100 tr.bloc-gap,
.table100 tr.bloc-gap td {
	height: 30px;
	padding: 0;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
}

/* Shade des blocs — 1 = plus foncé … 4 = plus clair
   (démarre à Pierre ; la plus claire reste au-dessus du fond de page Craie) */
.table100 tr.bloc-1 td { background: #D1C2A8; } /* Pierre          */
.table100 tr.bloc-2 td { background: #DCD0BD; } /* Pierre → Sable  */
.table100 tr.bloc-3 td { background: #E7DED1; } /* Sable           */
.table100 tr.bloc-4 td { background: #EFEAE1; } /* Sable → Craie   */

/* Texte : brun profond du site, lisible sur les 4 fonds */
.table100 tr.bloc-1 td,
.table100 tr.bloc-2 td,
.table100 tr.bloc-3 td,
.table100 tr.bloc-4 td {
	color: #2b2621;
}

/* Tête de bloc (nom de l'immeuble) : même shade, un cran plus affirmé */
.table100 tr.line-immeuble td.immeuble-head {
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
}
.table100 tr.line-immeuble.bloc-1 td { background: #c2b295; }
.table100 tr.line-immeuble.bloc-2 td { background: #cfc0a9; }
.table100 tr.line-immeuble.bloc-3 td { background: #d9cdbb; }
.table100 tr.line-immeuble.bloc-4 td { background: #e2dacc; }

/* Hover : léger assombrissement, cohérent sur tous les shades */
.table100 tr.line-app:hover td {
	filter: brightness(.94);
}

/* Lignes vendues (JS pose data-statut + coupe le clic) : estompées */
.table100 tr.line-app[data-statut="sold"] td {
	opacity: .55;
}

.elementor-widget-text-editor b {
  font-size: 22px;
  font-family: montserrat, sans-serif;
font-weight: 600;
font-style: normal;
display: block;
margin-top: 34px;
}

.elementor-widget-text-editor ul {
	padding-left: 0;
	margin-left: 0;
	list-style-position: inside;
}
