/* =========================================================
   LYNEA — Immobilier & Accompagnement
   Design tokens
   ========================================================= */
:root{
  --pine:        #18332D;
  --pine-light:  #234a41;
  --pine-deep:   #101f1b;
  --gold:        #B18A3A;
  --gold-light:  #cba75c;
  --cream:       #F5F1E8;
  --cream-alt:   #ECE4D2;
  --ink:         #1B211F;
  --white:       #FFFFFF;
  --line:        rgba(24,51,45,0.14);
  --line-light:  rgba(245,241,232,0.22);

  --font-display: "Fraunces", "Iowan Old Style", Georgia, serif;
  --font-body:    "Inter", "Helvetica Neue", Arial, sans-serif;

  --radius-arch: 500px 500px 12px 12px;
  --radius-card: 4px;
  --shadow-soft: 0 24px 60px -30px rgba(16,31,27,0.35);
  --shadow-card: 0 18px 40px -24px rgba(16,31,27,0.28);

  --container: 1240px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
html, body{
  max-width:100%;
  overflow-x:hidden;
}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }
input,textarea,select{ font-family:inherit; font-size:1rem; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
}

:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:3px;
}

.container{
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  padding:0 32px;
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-family:var(--font-body);
  font-size:0.72rem;
  font-weight:600;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--gold);
}
.eyebrow::before{
  content:"";
  width:28px;
  height:1px;
  background:var(--gold);
  display:inline-block;
}

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:600;
  line-height:1.08;
  margin:0;
  color:var(--ink);
}
.section-head{
  max-width:640px;
  margin-bottom:56px;
}
.section-head h2{
  margin-top:14px;
  font-size:clamp(2rem, 3.4vw, 2.9rem);
}
.section-head p{
  margin-top:18px;
  font-size:1.05rem;
  color:rgba(27,33,31,0.72);
  max-width:520px;
}
.section-head.light h2,.section-head.light p{ color:var(--cream); }
.section-head.light p{ color:rgba(245,241,232,0.78); }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head.center p{ margin-left:auto; margin-right:auto; }

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:15px 30px;
  font-size:0.85rem;
  font-weight:600;
  letter-spacing:0.05em;
  text-transform:uppercase;
  border-radius:2px;
  border:1px solid transparent;
  background:transparent;
  cursor:pointer;
  transition:transform .35s ease, background .35s ease, color .35s ease, border-color .35s ease;
  white-space:nowrap;
}
.btn:hover{ transform:translateY(-2px); }
.btn-gold{
  background:var(--gold);
  color:var(--pine-deep);
}
.btn-gold:hover{ background:var(--gold-light); }
.btn-outline-light{
  border-color:rgba(245,241,232,0.4);
  color:var(--cream);
}
.btn-outline-light:hover{ border-color:var(--cream); background:rgba(245,241,232,0.08); }
.btn-outline-dark{
  border-color:rgba(27,33,31,0.25);
  color:var(--pine);
}
.btn-outline-dark:hover{ border-color:var(--pine); background:rgba(24,51,45,0.05); }
.btn-pine{
  background:var(--pine);
  color:var(--cream);
}
.btn-pine:hover{ background:var(--pine-light); }

/* =========================================================
   HEADER
   ========================================================= */
.site-header{
  position:sticky;
  top:0;
  z-index:100;
  background:rgba(245,241,232,0.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.site-header .container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-top:10px;
  padding-bottom:10px;
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
}
.brand img{ height:46px; width:46px; border-radius:50%; }
.brand.brand-wordmark img{
  height:64px;
  width:auto;
  border-radius:0;
}
.brand .brand-text{
  display:flex;
  flex-direction:column;
  line-height:1.15;
}
.brand .brand-text strong{
  font-family:var(--font-display);
  font-size:1.15rem;
  letter-spacing:0.06em;
  color:var(--pine);
}
.brand .brand-text span{
  font-size:0.62rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--gold);
}

.main-nav{
  display:flex;
  align-items:center;
  gap:36px;
}
.main-nav a{
  font-size:0.82rem;
  font-weight:500;
  letter-spacing:0.02em;
  color:var(--ink);
  position:relative;
  padding:4px 0;
}
.main-nav a::after{
  content:"";
  position:absolute;
  left:0; bottom:0;
  width:0%;
  height:1px;
  background:var(--gold);
  transition:width .3s ease;
}
.main-nav a:hover::after{ width:100%; }

.header-actions{ display:flex; align-items:center; gap:18px; }
.header-phone{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:0.86rem;
  font-weight:600;
  color:var(--pine);
  white-space:nowrap;
  transition:color .25s ease;
}
.header-phone svg{ width:16px; height:16px; color:var(--gold); flex:none; }
.header-phone:hover{ color:var(--gold); }
.nav-toggle{
  display:none;
  background:none;
  border:none;
  padding:6px;
}
.nav-toggle span{
  display:block;
  width:24px;
  height:2px;
  background:var(--pine);
  margin:5px 0;
  transition:transform .3s ease, opacity .3s ease;
}
.mobile-nav-head{ display:none; }
.nav-close{ display:none; }

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative;
  background:var(--pine);
  overflow:hidden;
}
.hero-grid{
  display:grid;
  grid-template-columns:1.05fr 0.95fr;
  min-height:88vh;
  align-items:stretch;
}
.hero-copy{
  padding:96px 56px 96px 32px;
  max-width:640px;
  margin-left:auto;
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
  z-index:2;
}
.hero-copy .eyebrow{ color:var(--gold-light); }
.hero-copy h1{
  margin-top:22px;
  color:var(--cream);
  font-size:clamp(2.6rem, 4.6vw, 4rem);
  letter-spacing:-0.01em;
}
.hero-copy h1 em{
  font-style:italic;
  color:var(--gold-light);
}
.hero-copy .lede{
  margin-top:24px;
  font-size:1.1rem;
  color:rgba(245,241,232,0.82);
  max-width:480px;
}
.hero-actions{
  display:flex;
  gap:18px;
  margin-top:40px;
  flex-wrap:wrap;
}
.hero-stats{
  display:flex;
  gap:40px;
  margin-top:64px;
  padding-top:32px;
  border-top:1px solid var(--line-light);
  flex-wrap:wrap;
}
.hero-stats div strong{
  display:block;
  font-family:var(--font-display);
  font-size:1.9rem;
  color:var(--gold-light);
}
.hero-stats div span{
  font-size:0.72rem;
  letter-spacing:0.06em;
  color:rgba(245,241,232,0.7);
}
.hero-media{
  position:relative;
}
.hero-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:220px 0 0 0;
}
.hero-media::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:220px 0 0 0;
  background:linear-gradient(180deg, rgba(16,31,27,0) 40%, rgba(16,31,27,0.55) 100%);
}

/* values strip */
.values-strip{
  background:var(--pine-deep);
  border-top:1px solid var(--line-light);
}
.values-strip .container{
  display:grid;
  grid-template-columns:repeat(4,1fr);
}
.value-item{
  padding:34px 28px;
  border-right:1px solid var(--line-light);
  display:flex;
  align-items:center;
  gap:16px;
}
.value-item:last-child{ border-right:none; }
.value-item svg{ flex:none; width:34px; height:34px; }
.value-item img{ flex:none; width:52px; height:52px; object-fit:contain; }
.value-item strong{
  display:block;
  color:var(--cream);
  font-family:var(--font-display);
  font-size:1rem;
}
.value-item span{
  display:block;
  font-size:0.8rem;
  color:rgba(245,241,232,0.65);
  margin-top:2px;
}

/* =========================================================
   GENERIC SECTIONS
   ========================================================= */
.section{ padding:120px 0; scroll-margin-top:100px; }
.property-detail-section{ padding-top:48px; }
.section.tight{ padding:96px 0; }
.section.on-pine{ background:var(--pine); }
.section.on-alt{ background:var(--cream-alt); }

/* about */
.about-grid{
  display:grid;
  grid-template-columns:0.9fr 1.1fr;
  gap:80px;
  align-items:center;
}
.about-media{ position:relative; }
.about-media img{
  border-radius:var(--radius-arch);
  box-shadow:var(--shadow-soft);
  aspect-ratio:3/4;
  object-fit:cover;
}
.about-media .badge{
  position:absolute;
  bottom:-28px;
  right:-28px;
  max-width:calc(100% - 24px);
  background:var(--gold);
  color:var(--pine-deep);
  padding:22px 26px;
  border-radius:4px;
  font-family:var(--font-display);
  text-align:center;
  box-shadow:var(--shadow-card);
}
.about-media .badge strong{ display:block; font-size:1.7rem; }
.about-media .badge span{ font-size:0.66rem; letter-spacing:0.08em; text-transform:uppercase; }

.about-copy .eyebrow{ margin-bottom:0; }
.about-copy h2{
  margin-top:16px;
  font-size:clamp(1.9rem, 3vw, 2.6rem);
}
.about-copy p{
  margin-top:20px;
  color:rgba(27,33,31,0.75);
  font-size:1.02rem;
  max-width:520px;
}
.zone-list{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:32px;
}
.zone-list li{
  border:1px solid rgba(24,51,45,0.22);
  color:var(--pine);
  font-size:0.8rem;
  letter-spacing:0.03em;
  padding:9px 18px;
  border-radius:30px;
}

/* filters */
.filters{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:40px;
}
.filter-btn{
  border:1px solid rgba(24,51,45,0.22);
  background:transparent;
  color:var(--pine);
  padding:10px 20px;
  border-radius:30px;
  font-size:0.78rem;
  letter-spacing:0.04em;
  transition:all .25s ease;
}
.filter-btn.active,.filter-btn:hover{
  background:var(--pine);
  color:var(--cream);
  border-color:var(--pine);
}
.type-filters{ margin-bottom:16px; }
.type-filters .filter-btn.active{
  background:var(--gold);
  color:var(--pine-deep);
  border-color:var(--gold);
}

/* property cards */
.property-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:32px;
}
.property-card{
  display:block;
  background:var(--white);
  border-radius:var(--radius-card);
  overflow:hidden;
  box-shadow:var(--shadow-card);
  transition:transform .4s ease, box-shadow .4s ease;
}
.property-card:hover{
  transform:translateY(-6px);
  box-shadow:0 30px 60px -26px rgba(16,31,27,0.4);
}
.property-media{
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
  background:var(--cream-alt);
}
.property-media img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .6s ease;
}
.property-card:hover .property-media img{ transform:scale(1.06); }
.property-badge{
  position:absolute;
  top:16px; left:16px;
  background:var(--gold);
  color:var(--pine-deep);
  font-size:0.68rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  padding:7px 14px;
  border-radius:30px;
  font-weight:600;
}
.property-price{
  position:absolute;
  bottom:16px; left:16px;
  background:rgba(16,31,27,0.82);
  color:var(--cream);
  font-family:var(--font-display);
  font-size:1.05rem;
  padding:8px 16px;
  border-radius:4px;
}
.property-price .price-charges{ font-size:0.78rem; color:rgba(245,241,232,0.7); }
.property-price > span{ font-size:0.78rem; color:rgba(245,241,232,0.7); }
.property-body{ padding:24px 24px 26px; }
.property-loc{
  font-size:0.72rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--gold);
}
.property-title{
  margin-top:8px;
  font-size:1.15rem;
  font-family:var(--font-display);
}
.property-desc{
  margin-top:10px;
  font-size:0.88rem;
  color:rgba(27,33,31,0.65);
  line-height:1.55;
}
.property-specs{
  display:flex;
  justify-content:space-between;
  gap:6px;
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid var(--line);
  font-size:0.72rem;
  color:rgba(27,33,31,0.7);
  flex-wrap:nowrap;
  overflow-x:hidden;
}
.property-specs span{ display:flex; align-items:center; gap:4px; flex:none; white-space:nowrap; }
.property-specs svg{ width:13px; height:13px; opacity:0.7; flex:none; }

.empty-state{
  padding:60px 20px;
  text-align:center;
  color:rgba(27,33,31,0.55);
  font-size:0.95rem;
  grid-column:1/-1;
}
.section.on-pine .empty-state{ color:rgba(245,241,232,0.6); }

.section-foot{
  margin-top:52px;
  text-align:center;
}

/* sold / realisations */
.sold-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}
/* Réutilise le style des cartes .property-card ; juste pas cliquable
   (simple vitrine, pas de lien vers une fiche) */
.sold-card{ cursor:default; }
.sold-card:hover{ transform:none; box-shadow:var(--shadow-card); }
.sold-card:hover .property-media img{ transform:none; }

/* process */
.process-list{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
}
.process-item{
  padding:0 28px 0 0;
  border-right:1px solid var(--line-light);
  position:relative;
}
.process-item:last-child{ border-right:none; padding-right:0; }
.process-item .num{
  font-family:var(--font-display);
  font-size:0.85rem;
  color:var(--gold-light);
  letter-spacing:0.08em;
}
.process-item h4{
  color:var(--cream);
  margin-top:18px;
  font-size:1.15rem;
}
.process-item p{
  color:rgba(245,241,232,0.68);
  font-size:0.9rem;
  margin-top:12px;
}

/* testimonials */
.testi-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}
.testi-card{
  background:var(--white);
  padding:34px 30px;
  border-radius:var(--radius-card);
  box-shadow:var(--shadow-card);
}
.testi-card .stars{ color:var(--gold); font-size:0.9rem; letter-spacing:2px; }
.testi-card p{
  margin-top:18px;
  font-size:0.96rem;
  color:rgba(27,33,31,0.78);
  line-height:1.65;
}
.testi-card .who{
  margin-top:22px;
  display:flex;
  flex-direction:column;
  font-size:0.82rem;
}
.testi-card .who strong{ font-family:var(--font-display); font-size:0.95rem; }
.testi-card .who span{ color:var(--gold); font-size:0.72rem; letter-spacing:0.04em; text-transform:uppercase; margin-top:2px; }

/* estimation cta */
.estimate-section{
  background:var(--pine);
  border-radius:28px;
  margin:0 auto;
  max-width:var(--container);
  padding:0;
  overflow:hidden;
  display:grid;
  grid-template-columns:1fr 1fr;
}
.estimate-copy{ padding:72px 64px; }
.estimate-copy .eyebrow{ color:var(--gold-light); }
.estimate-copy h2{
  color:var(--cream);
  margin-top:18px;
  font-size:clamp(1.9rem, 2.8vw, 2.5rem);
}
.estimate-copy p{
  color:rgba(245,241,232,0.78);
  margin-top:18px;
  max-width:420px;
}
.estimate-points{ margin-top:28px; display:flex; flex-direction:column; gap:12px; }
.estimate-points li{
  display:flex;
  align-items:center;
  gap:10px;
  color:rgba(245,241,232,0.88);
  font-size:0.9rem;
}
.estimate-points svg{ width:16px; height:16px; color:var(--gold-light); flex:none; }

.estimate-form{
  background:var(--cream);
  padding:72px 56px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.estimate-form h3{
  font-size:1.3rem;
  margin-bottom:24px;
}
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-row.three{ grid-template-columns:1.6fr 0.8fr 1.2fr; }
.form-field{ margin-bottom:16px; display:flex; flex-direction:column; gap:6px; }
.form-field label{
  font-size:0.7rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:rgba(27,33,31,0.6);
}
.form-field input,.form-field select,.form-field textarea{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  border:1px solid rgba(24,51,45,0.25);
  background:var(--white);
  padding:12px 14px;
  border-radius:4px;
  color:var(--ink);
}
.form-field textarea{ resize:vertical; min-height:80px; }
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{
  outline:none;
  border-color:var(--gold);
}
.form-field select:disabled{
  background:var(--cream-alt);
  color:rgba(27,33,31,0.45);
  cursor:not-allowed;
}
.estimate-form .btn{ margin-top:8px; width:100%; }
.form-note{
  margin-top:14px;
  font-size:0.74rem;
  color:rgba(27,33,31,0.5);
}

/* contact */
.contact-grid{
  display:grid;
  grid-template-columns:0.9fr 1.1fr;
  gap:64px;
  align-items:flex-start;
}
.contact-list{ margin-top:32px; display:flex; flex-direction:column; gap:22px; }
.contact-list li{ display:flex; gap:16px; align-items:flex-start; }
.contact-list svg{ flex:none; width:22px; height:22px; color:var(--gold); margin-top:2px; }
.contact-list strong{ display:block; font-size:0.95rem; }
.contact-list span{ display:block; font-size:0.85rem; color:rgba(27,33,31,0.65); margin-top:2px; }

.contact-form-card{
  background:var(--white);
  border-radius:var(--radius-card);
  box-shadow:var(--shadow-card);
  padding:44px 40px;
}
.contact-form-card h3{ font-size:1.25rem; margin-bottom:24px; }
.contact-form-card .btn{ width:100%; margin-top:6px; }

/* =========================================================
   PAGE RECHERCHE SUR MESURE (recherche.html)
   ========================================================= */
.search-form-wrap{
  max-width:760px;
  margin:0 auto;
  background:var(--white);
  border-radius:var(--radius-card);
  box-shadow:var(--shadow-card);
  padding:52px 56px;
}
.search-form-group{
  margin-bottom:40px;
  padding-bottom:36px;
  border-bottom:1px solid var(--line);
}
.search-form-group:last-of-type{ border-bottom:none; margin-bottom:28px; padding-bottom:0; }
.search-form-group h3{
  font-family:var(--font-display);
  font-size:1.15rem;
  margin-bottom:22px;
}
.radio-choice{
  display:flex;
  flex-wrap:wrap;
  gap:24px;
  padding:4px 0 6px;
}
.radio-choice label{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:0.92rem;
  color:var(--ink);
  cursor:pointer;
}
.radio-choice input{ width:16px; height:16px; accent-color:var(--gold); cursor:pointer; }
.search-form .btn{ width:100%; }

/* sélection multiple de codes postaux (chips) */
.cp-multiselect{
  position:relative;
  border:1px solid rgba(24,51,45,0.25);
  background:var(--white);
  border-radius:4px;
  padding:10px 12px;
}
.cp-suggest-wrap{ position:relative; }
.suggest-list{
  position:absolute;
  top:calc(100% + 4px);
  left:0;
  right:0;
  background:var(--white);
  border:1px solid rgba(24,51,45,0.18);
  border-radius:4px;
  box-shadow:var(--shadow-card);
  max-height:240px;
  overflow-y:auto;
  z-index:20;
  list-style:none;
  margin:0;
  padding:4px 0;
}
.suggest-list li{
  padding:9px 14px;
  font-size:0.88rem;
  color:var(--ink);
  cursor:pointer;
}
.suggest-list li:hover{ background:var(--cream-alt); }
.cp-chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:6px;
}
.cp-chips:empty{ display:none; margin:0; }
.cp-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:var(--cream-alt);
  border:1px solid rgba(24,51,45,0.15);
  color:var(--ink);
  font-size:0.82rem;
  padding:6px 8px 6px 12px;
  border-radius:30px;
}
.cp-chip button{
  display:flex;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
  border-radius:50%;
  border:none;
  background:rgba(24,51,45,0.12);
  color:var(--pine);
  font-size:0.95rem;
  line-height:1;
  cursor:pointer;
  transition:background .2s ease;
}
.cp-chip button:hover{ background:var(--gold); color:var(--pine-deep); }
.cp-multiselect input{
  border:none;
  padding:6px 2px;
  width:100%;
}
.cp-multiselect input:focus{ outline:none; }
.cp-multiselect select{
  border:none;
  background:transparent;
  padding:6px 2px;
  width:100%;
  color:var(--ink);
  cursor:pointer;
}
.cp-multiselect select:focus{ outline:none; }

/* sélection multiple des provinces (cases à cocher) */
.checkbox-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px 18px;
  padding:4px 0 6px;
}
.checkbox-grid label{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:0.9rem;
  color:var(--ink);
  cursor:pointer;
}
.checkbox-grid input{ width:16px; height:16px; accent-color:var(--gold); cursor:pointer; }

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

@media (max-width: 640px){
  .search-form-wrap{ padding:32px 24px; }
}

/* =========================================================
   PAGE DE PRÉSENTATION D'UN BIEN (property.html)
   ========================================================= */
.back-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:0.82rem;
  color:var(--gold-light);
  margin-bottom:28px;
}
.property-hero{
  background:var(--pine);
  padding:56px 0 48px;
}
.property-hero-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:32px;
  flex-wrap:wrap;
}
.property-hero .eyebrow{ color:var(--gold-light); }
.property-hero h1{
  color:var(--cream);
  margin-top:14px;
  font-size:clamp(1.9rem, 3.2vw, 2.6rem);
  max-width:640px;
}
.property-hero-loc{
  color:rgba(245,241,232,0.7);
  margin-top:10px;
  font-size:0.95rem;
}
.property-hero-price{
  font-family:var(--font-display);
  color:var(--gold-light);
  font-size:2rem;
  white-space:nowrap;
}
.property-hero-price span{ font-size:1rem; color:rgba(245,241,232,0.6); }

.print-brochure-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  margin-bottom:24px;
  background:none;
  border:1px solid rgba(24,51,45,0.25);
  color:var(--pine);
  padding:12px 20px;
  border-radius:4px;
  font-size:0.8rem;
  letter-spacing:0.04em;
  text-transform:uppercase;
  cursor:pointer;
  transition:border-color .3s ease, background .3s ease;
}
.print-brochure-btn:hover{ border-color:var(--gold); background:var(--cream-alt); }
.print-brochure-btn svg{ width:16px; height:16px; flex:none; color:var(--gold); }

.property-gallery{ background:var(--pine); padding-bottom:64px; }
.gallery-with-specs{
  display:flex;
  align-items:flex-start;
  gap:24px;
}
.gallery-with-specs .gallery-mosaic{ flex:0 1 820px; }
.gallery-with-specs .specs-card{
  flex:1;
  min-width:220px;
  align-self:stretch;
  position:static;
  margin-bottom:0;
  background:var(--cream);
  padding:24px 24px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.gallery-with-specs .specs-card h3{ margin-bottom:12px; }
.gallery-with-specs .specs-card .specs-list{ gap:10px; }
.gallery-with-specs .specs-card .specs-list li{ padding-bottom:10px; }

/* Mosaïque : grande photo 4:3 à gauche + 4 petites vignettes à droite.
   Chaque tuile ouvre le carrousel plein écran, où les photos s'affichent
   sans jamais être rognées (mentions légales, etc. toujours visibles). */
.gallery-mosaic{
  display:grid;
  grid-template-columns:1fr 320px;
  gap:12px;
  align-items:stretch;
  max-width:820px;
}
.mosaic-main, .mosaic-tile{
  position:relative;
  display:block;
  border:none;
  padding:0;
  margin:0;
  cursor:pointer;
  overflow:hidden;
  border-radius:var(--radius-card);
  background:var(--pine-deep);
  box-shadow:var(--shadow-soft);
}
.mosaic-main{ aspect-ratio:4/3; }
.mosaic-main img, .mosaic-tile img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .35s ease;
}
.mosaic-main:hover img, .mosaic-tile:hover img{ transform:scale(1.05); }
.mosaic-side{
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:1fr 1fr;
  gap:12px;
  height:100%;
}
.mosaic-more{
  position:absolute;
  inset:0;
  background:rgba(16,31,27,0.6);
  color:var(--cream);
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--font-display);
  font-size:1.3rem;
}

/* Carrousel plein écran */
.lightbox{
  position:fixed;
  inset:0;
  background:rgba(10,16,14,0.96);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:18px;
  z-index:500;
  opacity:0;
  visibility:hidden;
  transition:opacity .25s ease;
  padding:24px;
}
.lightbox.open{ opacity:1; visibility:visible; }
.lightbox-frame{
  position:relative;
  width:min(90vw, 1140px);
  max-height:calc(100vh - 90px);
  aspect-ratio:4/3;
  display:flex;
  align-items:center;
  justify-content:center;
}
.lightbox-frame img{
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  object-fit:contain;
  border-radius:4px;
}
.lightbox-close{
  position:absolute;
  top:20px;
  right:24px;
  background:none;
  border:none;
  color:var(--cream);
  font-size:2.2rem;
  line-height:1;
  cursor:pointer;
  z-index:2;
}
.lightbox-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:52px;
  height:52px;
  border-radius:50%;
  background:rgba(245,241,232,0.1);
  border:1px solid rgba(245,241,232,0.3);
  color:var(--cream);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:background .25s ease;
  z-index:2;
}
.lightbox-nav:hover{ background:rgba(245,241,232,0.2); }
.lightbox-nav svg{ width:22px; height:22px; }
.lightbox-nav.prev{ left:-64px; }
.lightbox-nav.prev svg{ transform:rotate(180deg); }
.lightbox-nav.next{ right:-64px; }
.lightbox-counter{
  position:absolute;
  bottom:14px;
  left:50%;
  transform:translateX(-50%);
  background:rgba(16,31,27,0.65);
  color:var(--cream);
  font-size:0.78rem;
  letter-spacing:0.04em;
  padding:6px 16px;
  border-radius:30px;
  z-index:2;
}

.property-detail-grid{
  display:grid;
  grid-template-columns:1.6fr 1fr;
  gap:64px;
  align-items:flex-start;
}
.property-detail-main h2{ font-size:1.5rem; margin-bottom:20px; }
.property-detail-desc{
  color:rgba(27,33,31,0.78);
  font-size:1rem;
  line-height:1.75;
}
.property-detail-desc p{ margin:0 0 16px; }

/* groupes de caractéristiques détaillées */
.spec-group{ margin-top:44px; padding-top:36px; border-top:1px solid var(--line); }
.spec-group-toggle{
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  background:none;
  border:none;
  padding:0;
  margin-bottom:20px;
  cursor:pointer;
  text-align:left;
}
.spec-group-toggle h3{ font-size:1.2rem; margin:0; font-family:var(--font-display); }
.spec-group-toggle svg{
  width:20px;
  height:20px;
  color:var(--gold);
  flex:none;
  transition:transform .25s ease;
}
.spec-group.collapsed .spec-group-toggle svg{ transform:rotate(-90deg); }
.spec-group.collapsed .spec-group-toggle{ margin-bottom:0; }
.spec-group-content{
  overflow:hidden;
  max-height:2000px;
  opacity:1;
  transition:max-height .35s ease, opacity .3s ease;
}
.spec-group.collapsed .spec-group-content{
  max-height:0;
  opacity:0;
  transition:max-height .35s ease, opacity .2s ease;
}
.spec-group-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:2px 28px;
}
.spec-group-grid li{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  font-size:0.9rem;
  padding:12px 0;
  border-bottom:1px solid var(--line);
}
.spec-item-label{
  display:flex;
  align-items:center;
  gap:10px;
  color:rgba(27,33,31,0.55);
  min-width:0;
}
.spec-item-label svg{ width:16px; height:16px; color:var(--gold); flex:none; }
.spec-item-value{ font-weight:600; color:var(--ink); text-align:right; flex:none; }

/* pictogramme PEB officiel (Région wallonne) */
.peb-scale{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin:4px 0 24px;
}
.peb-row{
  display:flex;
  align-items:center;
  gap:12px;
}
.peb-arrow{
  height:29px;
  display:flex;
  align-items:center;
  padding-left:14px;
  color:#fff;
  font-family:var(--font-body);
  font-weight:700;
  font-size:0.8rem;
  letter-spacing:0.02em;
  clip-path:polygon(0 0, calc(100% - 16px) 0, 100% 50%, calc(100% - 16px) 100%, 0 100%);
  transition:filter .2s ease;
}
.peb-row.active .peb-arrow{
  height:36px;
  font-size:0.88rem;
  box-shadow:inset 0 0 0 2px var(--ink);
}
.peb-value{
  font-weight:700;
  font-size:0.85rem;
  color:var(--ink);
  white-space:nowrap;
}

/* pastille PEB en forme de flèche (cartes de biens, résumé rapide) */
.peb-chip{
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  padding-left:4px;
  font-family:var(--font-body);
  font-weight:700;
  color:#fff;
  line-height:1;
  flex:none;
  clip-path:polygon(0 0, 65% 0, 100% 50%, 65% 100%, 0 100%);
}
.property-specs .peb-chip{ width:28px; height:16px; font-size:0.6rem; }
.specs-list .peb-chip{ width:32px; height:20px; font-size:0.7rem; padding-left:5px; }
.spec-item-value .peb-chip{ width:32px; height:20px; font-size:0.7rem; padding-left:5px; }
.print-fields .peb-chip{ width:32px; height:20px; font-size:0.7rem; padding-left:5px; }

/* documents téléchargeables */
.doc-list{ display:flex; flex-direction:column; gap:10px; }
.doc-list a{
  display:flex;
  align-items:center;
  gap:12px;
  padding:15px 18px;
  background:var(--white);
  border-radius:4px;
  box-shadow:var(--shadow-card);
  font-size:0.9rem;
  color:var(--ink);
  transition:transform .25s ease;
}
.doc-list a:hover{ transform:translateX(4px); }
.doc-list a span{ flex:1; }
.doc-list svg{ width:18px; height:18px; color:var(--gold); flex:none; }
.doc-list a svg:last-child{ color:rgba(27,33,31,0.4); width:16px; height:16px; }

/* carte de localisation */
.location-map{
  border-radius:var(--radius-card);
  overflow:hidden;
  box-shadow:var(--shadow-card);
  aspect-ratio:16/9;
}
.location-map iframe{ width:100%; height:100%; border:0; }
.location-note{
  margin-top:10px;
  font-size:0.8rem;
  color:rgba(27,33,31,0.55);
  font-style:italic;
}

.specs-card{
  background:var(--white);
  border-radius:var(--radius-card);
  box-shadow:var(--shadow-card);
  padding:32px 28px;
  position:sticky;
  top:100px;
  margin-bottom:20px;
}
.specs-card h3{ font-size:1.05rem; margin-bottom:18px; }
.specs-list{ display:flex; flex-direction:column; gap:14px; }
.specs-list li{
  display:flex;
  align-items:center;
  gap:12px;
  font-size:0.9rem;
  color:rgba(27,33,31,0.78);
  padding-bottom:14px;
  border-bottom:1px solid var(--line);
}
.specs-list li:last-child{ border-bottom:none; padding-bottom:0; }
.specs-list svg{ width:18px; height:18px; color:var(--gold); flex:none; }

/* bloc contact rapide (téléphone / e-mail) sur la fiche bien */
.contact-mini-card{
  background:var(--pine);
  color:var(--cream);
  border-radius:var(--radius-card);
  padding:26px 26px 20px;
  margin-bottom:20px;
}
.contact-mini-card h3{ color:var(--cream); font-size:0.98rem; margin-bottom:14px; }
.contact-line{
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--cream);
  font-size:0.92rem;
  padding:9px 0;
  border-top:1px solid var(--line-light);
}
.contact-line:first-of-type{ border-top:none; }
.contact-line svg{ width:17px; height:17px; color:var(--gold-light); flex:none; }

/* footer */
.site-footer{
  background:var(--pine-deep);
  color:rgba(245,241,232,0.75);
  padding:80px 0 32px;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:48px;
  padding-bottom:56px;
  border-bottom:1px solid var(--line-light);
}
.footer-brand .brand{ margin-bottom:18px; }
.footer-brand .brand-text strong{ color:var(--cream); }
.footer-brand .brand.brand-wordmark img{ width:280px; max-width:100%; height:auto; }
.footer-brand p{
  font-size:0.88rem;
  max-width:280px;
  color:rgba(245,241,232,0.6);
}
.footer-social{ display:flex; gap:12px; margin-top:22px; }
.footer-social a{
  width:36px; height:36px;
  border:1px solid var(--line-light);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  transition:border-color .3s ease, background .3s ease;
}
.footer-social a:hover{ border-color:var(--gold); background:rgba(177,138,58,0.12); }
.footer-social svg{ width:15px; height:15px; }
.footer-col h5{
  color:var(--cream);
  font-family:var(--font-body);
  font-size:0.78rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  margin-bottom:20px;
}
.footer-col ul{ display:flex; flex-direction:column; gap:12px; }
.footer-col a{ font-size:0.88rem; transition:color .3s ease; }
.footer-col a:hover{ color:var(--gold-light); }
.footer-compliance{
  padding-top:32px;
  font-size:0.74rem;
  line-height:1.6;
  color:rgba(245,241,232,0.4);
}
.footer-bottom{
  padding-top:28px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:0.78rem;
  color:rgba(245,241,232,0.45);
  flex-wrap:wrap;
  gap:12px;
}
.footer-legal-links a{ color:rgba(245,241,232,0.45); transition:color .25s ease; }
.footer-legal-links a:hover{ color:var(--gold-light); }

/* =========================================================
   PAGES LÉGALES (mentions-legales.html, vie-privee.html, cookies.html)
   ========================================================= */
.legal-content{
  max-width:760px;
  margin:0 auto;
}
.legal-content h2{
  font-size:1.3rem;
  margin-top:44px;
  margin-bottom:16px;
}
.legal-content h2:first-child{ margin-top:0; }
.legal-content p{
  color:rgba(27,33,31,0.78);
  font-size:0.98rem;
  line-height:1.75;
  margin:0 0 16px;
}
.legal-content ul{
  margin:0 0 16px;
  padding-left:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.legal-content ul li{
  color:rgba(27,33,31,0.78);
  font-size:0.98rem;
  line-height:1.6;
  padding-left:20px;
  position:relative;
}
.legal-content ul li::before{
  content:"";
  position:absolute;
  left:0; top:10px;
  width:6px; height:6px;
  border-radius:50%;
  background:var(--gold);
}
.legal-content a{ color:var(--pine); text-decoration:underline; text-underline-offset:2px; }
.legal-content strong{ color:var(--ink); }
.legal-content .legal-updated{
  font-size:0.82rem;
  color:rgba(27,33,31,0.5);
  margin-bottom:36px;
}
.legal-content .legal-placeholder{
  background:var(--cream-alt);
  border-left:3px solid var(--gold);
  padding:2px 16px;
  border-radius:2px;
}
.legal-content table{
  width:100%;
  border-collapse:collapse;
  margin:0 0 16px;
  font-size:0.92rem;
}
.legal-content th, .legal-content td{
  text-align:left;
  padding:10px 14px;
  border-bottom:1px solid var(--line);
  color:rgba(27,33,31,0.78);
}
.legal-content th{
  font-family:var(--font-display);
  color:var(--ink);
  font-weight:600;
}

/* reveal on scroll */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .8s ease, transform .8s ease; }
.reveal.is-visible{ opacity:1; transform:none; }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width: 1080px){
  .property-grid,.sold-grid,.testi-grid{ grid-template-columns:repeat(2,1fr); }
  .process-list{ grid-template-columns:repeat(2,1fr); row-gap:40px; }
  .process-item{ border-right:none; padding-right:0; }
  .about-grid{ grid-template-columns:1fr; }
  .about-media{ max-width:480px; }
  .estimate-section{ grid-template-columns:1fr; border-radius:20px; }
  .estimate-form{ padding:56px 40px; }
  .estimate-copy{ padding:56px 40px 24px; }
  .contact-grid{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr 1fr; row-gap:40px; }
  .property-detail-grid{ grid-template-columns:1fr; }
  .specs-card{ position:static; }
}

@media (max-width: 860px){
  .main-nav{
    position:fixed;
    top:0; left:0; right:0; bottom:0;
    height:100dvh;
    background:var(--cream);
    flex-direction:column;
    align-items:flex-start;
    padding:0 28px 36px;
    gap:0;
    transform:translateX(100%);
    transition:transform .4s ease;
    overflow-y:auto;
    z-index:200;
  }
  .main-nav.open{ transform:translateX(0); }
  .mobile-nav-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    width:100%;
    padding:20px 0;
    margin-bottom:8px;
    border-bottom:1px solid var(--line);
  }
  .mobile-nav-head .brand img{ height:38px; width:38px; }
  .mobile-nav-head .brand.brand-wordmark img{ height:46px; width:auto; }
  .nav-close{
    display:flex;
    align-items:center;
    justify-content:center;
    width:38px; height:38px;
    background:none;
    border:none;
    font-size:1.6rem;
    line-height:1;
    color:var(--pine);
  }
  .main-nav a{
    font-size:1.05rem;
    width:100%;
    padding:16px 0;
    border-bottom:1px solid var(--line);
  }
  .main-nav a::after{ display:none; }
  .nav-toggle{ display:block; position:relative; z-index:201; }
  .nav-toggle.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .nav-toggle.open span:nth-child(2){ opacity:0; }
  .nav-toggle.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  .hero-grid{ grid-template-columns:1fr; min-height:auto; }
  .hero-copy{ margin:0; max-width:none; padding:64px 24px 40px; }
  .hero-media{ height:60vh; order:-1; }
  .hero-media img,.hero-media::before{ border-radius:0 0 120px 0; }
  .values-strip .container{ grid-template-columns:1fr; }
  .value-item{ border-right:none !important; border-bottom:1px solid var(--line-light); }
  .value-item:last-child{ border-bottom:none; }
  .section{ padding:80px 0; }
  .property-grid,.sold-grid,.testi-grid{ grid-template-columns:1fr; }
  .process-list{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr; }
  .container{ padding:0 20px; }
  .form-row,.form-row.three{ grid-template-columns:1fr; }
  .property-hero{ padding-top:40px; }
  .property-hero-head{ flex-direction:column; align-items:flex-start; }
  .contact-form-card{ padding:32px 24px; }
  .spec-group-grid{ grid-template-columns:1fr; }
  .gallery-with-specs{ flex-direction:column; }
  .gallery-mosaic{ grid-template-columns:1fr; width:100%; max-width:100%; }
  .gallery-with-specs .gallery-mosaic{ flex:none; }
  .gallery-with-specs .specs-card{ width:100%; }
  .mosaic-side{ grid-template-columns:repeat(4, 1fr); grid-template-rows:none; }
  .mosaic-tile{ aspect-ratio:1/1; }
  .lightbox-frame{ width:100%; }
  .lightbox-nav{ width:42px; height:42px; }
  .lightbox-nav.prev{ left:8px; }
  .lightbox-nav.next{ right:8px; }

  /* En-tête : le bloc logo ne doit jamais forcer toute la ligne à
     s'élargir — sinon le bouton + le hamburger sont poussés hors champ
     avant même de pouvoir passer à la ligne. */
  .brand{ min-width:0; }
  .brand .brand-text{ min-width:0; }
  .brand .brand-text span{ display:none; } /* sous-titre décoratif, superflu sur mobile */
  .site-header .brand.brand-wordmark img{ height:46px; }

  /* Si la marque + le bouton + le hamburger ne tiennent pas sur une
     ligne, le bouton "Estimation gratuite" passe à la ligne du dessous
     plutôt que de disparaître. */
  .site-header .container{
    flex-wrap:wrap;
    row-gap:10px;
  }
  .header-actions{
    width:100%;
    justify-content:space-between;
    gap:12px;
  }
  .header-actions .btn{
    flex:1;
    text-align:center;
  }
  .header-phone{ display:none; } /* déjà accessible via le menu et le footer sur mobile */
}

body.nav-open{ overflow:hidden; }

/* =========================================================
   BANNIÈRE DE CONSENTEMENT COOKIES (Google Analytics)
   ========================================================= */
.cookie-banner{
  position:fixed;
  left:20px;
  right:20px;
  bottom:20px;
  z-index:300;
  max-width:640px;
  margin:0 auto;
  background:var(--pine);
  color:var(--cream);
  border-radius:12px;
  box-shadow:0 24px 60px -20px rgba(16,31,27,0.55);
  padding:24px 26px;
  display:flex;
  flex-direction:column;
  gap:16px;
  transform:translateY(140%);
  transition:transform .45s ease;
}
.cookie-banner.visible{ transform:translateY(0); }
.cookie-banner p{
  margin:0;
  font-size:0.88rem;
  line-height:1.55;
  color:rgba(245,241,232,0.88);
}
.cookie-banner a{ color:var(--gold-light); text-decoration:underline; text-underline-offset:2px; }
.cookie-banner-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}
.cookie-banner-actions .btn{ flex:1; min-width:140px; }
.cookie-banner-actions #cookie-decline{
  opacity:0.55;
  border-color:rgba(245,241,232,0.25);
}
.cookie-banner-actions #cookie-decline:hover{
  opacity:0.85;
}

.cookie-manage-link{
  background:none;
  border:none;
  padding:0;
  font-size:inherit;
  color:inherit;
  text-decoration:underline;
  text-underline-offset:2px;
  cursor:pointer;
}

@media (max-width:640px){
  .cookie-banner{ left:12px; right:12px; bottom:12px; padding:20px; }
  .cookie-banner-actions{ flex-direction:column; }
  .cookie-banner-actions .btn{ width:100%; }
}

/* =========================================================
   IMPRESSION — "Brochure" du bien (Ctrl+P / Enregistrer en PDF)
   Transforme la fiche du bien en document propre à imprimer :
   masque tout ce qui est interactif (menu, formulaires, carte...),
   force l'ouverture de toutes les sections repliées, et adapte les
   couleurs pour rester lisible et sobre en encre.
   ========================================================= */

/* Accroche affichée dans l'en-tête, uniquement à l'impression */
.print-tagline{ display:none; }

/* Bloc "photo + coup d'œil + contact", généré uniquement pour
   l'impression : invisible à l'écran, affiché en 2 colonnes au print. */
.print-intro{ display:none; }

/* Planche avec les photos restantes (toutes sauf la 1ère, déjà affichée
   en grand dans .print-intro), placée en toute fin de la brochure. */
.print-gallery-rest{ display:none; }
.print-details{ display:none; }

@media print{
  @page{ margin:1.5cm; }

  * {
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
    box-shadow:none !important;
    text-shadow:none !important;
  }

  body{ background:#fff; color:#000; }

  /* Éléments purement interactifs ou hors-sujet à l'impression */
  .cookie-banner,
  .nav-toggle, .main-nav, .header-actions,
  .back-link, .no-print,
  .property-gallery,
  .lightbox,
  .contact-form-card,
  .specs-card, .contact-mini-card,
  .site-footer,
  .no-print-section,
  .spec-group-toggle svg{
    display:none !important;
  }

  /* En-tête : logo centré, accroche centrée en dessous */
  .site-header{ position:static; box-shadow:none; border-bottom:2px solid var(--gold); }
  .site-header .container{
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:6px;
    padding:16px 0;
  }
  .print-tagline{
    display:block;
    font-family:var(--font-display);
    font-style:italic;
    color:var(--pine);
    font-size:0.95rem;
  }

  /* Bandeau titre : fond blanc, texte foncé (illisible en vert sur imprimante) */
  .property-hero{ background:#fff; padding:24px 0 0; border:none; }
  .property-hero .eyebrow{ color:var(--gold); }
  .property-hero h1{ color:var(--ink); margin-top:6px; }
  .property-hero-loc{ color:rgba(27,33,31,0.7); margin-top:4px; }
  .property-hero-price{
    color:var(--pine);
    text-align:right;
    font-size:1.6rem;
    margin-top:14px;
  }
  .property-hero-price span{ color:rgba(27,33,31,0.5); }
  /* Empilement simple (catégorie/réf, titre, adresse, prix) plutôt que
     côte à côte — évite aussi tout souci d'alignement avec flex/wrap. */
  .property-hero-head{ display:block !important; }

  /* Photo principale + "en un coup d'œil" + contact, côte à côte —
     comme la Description passe maintenant en page 2, la photo peut
     occuper beaucoup plus de place sur cette première page. */
  .print-intro{
    display:block;
    background:#fff;
    padding:24px 0 0;
  }
  .print-intro-photo{
    aspect-ratio:4/3;
    overflow:hidden;
    border-radius:4px;
    margin-bottom:24px;
  }
  .print-intro-photo img{ width:100%; height:100%; object-fit:cover; }
  .print-intro-below{
    display:grid;
    grid-template-columns:2fr 0.8fr;
    gap:32px;
    padding-bottom:24px;
  }
  .print-intro-specs h3, .print-intro-contact h3{
    font-family:var(--font-display);
    font-size:1rem;
    color:var(--pine);
    margin:0 0 12px;
  }
  .print-intro-contact{
    background:var(--cream);
    border-left:3px solid var(--gold);
    padding:16px 18px;
    border-radius:4px;
  }
  .print-intro-contact h3{ color:var(--pine); }
  .print-intro-specs .specs-list{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:2px 24px;
  }
  .print-intro-specs .specs-list li{
    color:rgba(27,33,31,0.85);
    border-bottom:1px solid var(--line);
  }
  .print-contact-line{
    display:flex;
    align-items:center;
    gap:10px;
    font-size:0.9rem;
    color:var(--ink);
    margin:0 0 8px;
  }
  .print-contact-line svg{ width:16px; height:16px; color:var(--gold); flex:none; }

  /* Sections de détail : toujours dépliées, jamais coupées en deux pages */
  .spec-group{ padding-top:20px; margin-top:24px; }
  .spec-group-toggle{ cursor:default; margin-bottom:14px; }
  .spec-group-content{
    max-height:none !important;
    opacity:1 !important;
    overflow:visible !important;
    transition:none !important;
  }
  .spec-group.collapsed .spec-group-content{
    max-height:none !important;
    opacity:1 !important;
    transition:none !important;
  }
  .spec-group-grid{ grid-template-columns:repeat(2, 1fr); }

  /* Important : une grille CSS ("display:grid") gère très mal la
     pagination à l'impression — un bloc trop haut pour une page peut être
     purement supprimé plutôt que réparti. On repasse donc ce conteneur
     (et son contenu) en flux normal ("block"), qui se découpe correctement
     entre les pages. */
  .property-detail-grid{ display:block; }
  .property-detail-side{ display:none; } /* déjà vide en impression (specs-card et contact-mini-card masqués) */

  /* Planche des photos restantes, sur sa propre dernière page */
  .print-gallery-rest{
    display:block;
    padding-top:24px;
    break-before:page;
  }
  .print-gallery-rest h3{
    font-family:var(--font-display);
    font-size:1.1rem;
    color:var(--pine);
    margin-bottom:16px;
  }
  .print-gallery-rest-grid{ overflow:hidden; } /* clearfix */
  .print-gallery-rest-item{
    float:left;
    width:31.33%;
    margin:0 3% 12px 0;
    aspect-ratio:4/3;
    overflow:hidden;
    border-radius:4px;
    break-inside:avoid;
  }
  .print-gallery-rest-item:nth-child(3n){ margin-right:0; }
  .print-gallery-rest-item img{ width:100%; height:100%; object-fit:cover; }

  /* Version imprimée de la description + des caractéristiques : mise en
     page volontairement simple (flottants + tableaux, sans grille CSS
     ni JavaScript) pour se paginer correctement quel que soit le nombre
     de pages nécessaires. */
  .print-details{ display:block; padding-top:24px; break-before:page; }
  .print-details h2{ font-size:1.3rem; color:var(--ink); margin-bottom:14px; }
  .print-description{ color:rgba(27,33,31,0.85); line-height:1.6; margin-bottom:28px; }
  .print-groups-grid{ overflow:hidden; break-before:page; padding-top:24px; } /* clearfix + nouvelle page */
  .print-group{
    float:left;
    width:48%;
    margin:0 4% 24px 0;
    break-inside:avoid;
  }
  .print-group:nth-child(2n){ margin-right:0; }
  .print-group h3{
    font-family:var(--font-display);
    font-size:1rem;
    color:var(--pine);
    border-bottom:2px solid var(--gold);
    padding-bottom:6px;
    margin-bottom:8px;
  }
  table.print-fields{ width:100%; border-collapse:collapse; }
  table.print-fields td{
    padding:6px 0;
    border-bottom:1px solid var(--line);
    font-size:0.85rem;
    vertical-align:top;
  }
  table.print-fields td:first-child{ color:rgba(27,33,31,0.55); padding-right:12px; }
  table.print-fields td:last-child{ text-align:right; font-weight:600; color:var(--ink); white-space:nowrap; }

  a{ color:var(--ink); text-decoration:none; }
  .container{ max-width:100%; padding:0 16px; }
}
