/* ==========================================================================
   La Conciergerie des Janots — feuille de style principale
   Palette : encre marine #16242C, or/laiton #B8863F, pierre calcaire #EFE6D3,
             pin-teal #3E6B63, papier #FBF7EE
   Typo : Fraunces (titres) / Jost (texte) / Fraunces italic (accent)
   Signature : silhouette des falaises de Cap Canaille en liseré de section
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,700;1,9..144,500;1,9..144,600&family=Jost:wght@300;400;500;600&display=swap');

:root{
  --terracotta: #B8863F;        /* or / laiton — accent principal (clin d'oeil a la cle du logo) */
  --terracotta-deep: #16242C;   /* encre marine profonde — titres, boutons */
  --rust: #8F6A34;              /* or fonce — hover */
  --ochre: #D2A94C;             /* or clair — accents secondaires, script */
  --olive: #3E6B63;             /* pin-teal — touche mediterraneenne */
  --stone: #EFE6D3;             /* pierre calcaire — fond de section */
  --stone-deep: #E2D3AE;
  --cream: #FBF7EE;             /* papier chaud — fond principal */
  --ink: #1B2A31;               /* texte principal */
  --ink-soft: #5C6B70;          /* texte secondaire */
  --white: #FFFFFF;
  --line: rgba(22,36,44,0.14);
  --shadow: 0 24px 55px rgba(16,26,31,0.16);
  --radius: 4px;
  --max: 1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'Jost', sans-serif;
  font-weight:300;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  background-image:
    radial-gradient(circle at 1px 1px, rgba(22,36,44,0.045) 1px, transparent 0);
  background-size:22px 22px;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{
  font-family:'Fraunces', serif;
  font-optical-sizing:auto;
  font-weight:600;
  color:var(--terracotta-deep);
  margin:0 0 .5em;
  letter-spacing:.005em;
}
p{margin:0 0 1em;}
.script{font-family:'Fraunces', serif; font-style:italic; font-weight:500; color:var(--terracotta);}

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

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:.72rem;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--terracotta);
  font-weight:500;
  margin-bottom:18px;
}
.eyebrow::before{content:'';width:28px;height:1px;background:var(--terracotta);}

.btn{
  display:inline-block;
  padding:16px 34px;
  border:1px solid var(--terracotta-deep);
  color:var(--terracotta-deep);
  font-size:.78rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:500;
  border-radius:var(--radius);
  transition:all .35s ease;
  cursor:pointer;
  background:transparent;
}
.btn:hover{background:var(--terracotta-deep); color:var(--cream);}
.btn-gold{
  border-color:var(--terracotta);
  background:var(--terracotta);
  color:var(--white);
  box-shadow:0 10px 26px rgba(184,134,63,.30);
}
.btn-gold:hover{background:var(--rust); border-color:var(--rust); color:var(--white);}

/* ---------- Teinte photo (unifie les images dans la palette marine) ---------- */
.photo-tint{position:relative; overflow:hidden;}
.photo-tint::after{
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(155deg, rgba(22,36,44,.34) 0%, rgba(62,107,99,.12) 55%, rgba(184,134,63,.10) 100%);
  mix-blend-mode:multiply;
  pointer-events:none;
}

/* ---------- Loader (page d'accueil uniquement) ---------- */
#loader{
  position:fixed; inset:0; z-index:9999;
  background:var(--cream);
  display:flex; align-items:center; justify-content:center;
  transition:opacity .8s ease, visibility .8s ease;
}
#loader.hide{opacity:0; visibility:hidden; pointer-events:none;}
.loader-inner{
  text-align:center;
  width:280px;
}
.loader-inner img{width:150px; margin:0 auto 26px; opacity:0; animation:fadeInLogo 1s ease forwards .15s;}
@keyframes fadeInLogo{to{opacity:1;}}
.loader-track{
  width:100%; height:1px; background:var(--line); position:relative; margin:0 auto 14px;
}
.loader-fill{
  position:absolute; left:0; top:-1px; height:3px; width:0%;
  background:linear-gradient(90deg, var(--terracotta), var(--ochre));
}
.loader-pct{
  font-family:'Fraunces', serif;
  font-size:.85rem;
  letter-spacing:.2em;
  color:var(--terracotta-deep);
}
.loader-tag{
  font-size:.68rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--ink-soft);
  margin-top:10px;
}

body.loading{overflow:hidden;}

/* ---------- Header / nav ---------- */
header.site-header{
  position:sticky; top:0; z-index:500;
  background:var(--cream);
  border-bottom:1px solid var(--line);
  isolation:isolate;
  transform:translateZ(0);
  will-change:transform;
  min-height:68px;
}
.nav-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 20px;
  max-width:var(--max); margin:0 auto;
}
.site-header .brand{
  position:absolute; left:24px; top:50%;
  transform:translateY(-50%);
  display:flex; align-items:center; gap:8px;
}
.site-header .brand img{height:38px; width:38px; object-fit:contain;}
.brand-text{line-height:1.15;}
.brand-text .b1{font-family:'Fraunces', serif; font-size:.86rem; letter-spacing:.05em; color:var(--terracotta-deep); font-weight:600;}
.brand-text .b2{font-family:'Fraunces', serif; font-style:italic; font-weight:500; font-size:1.05rem; color:var(--terracotta); margin-top:-2px;}

nav.main-nav{
  position:absolute; left:50%; top:50%;
  transform:translate(-50%, -50%);
  display:flex; justify-content:center;
}
nav.main-nav ul{list-style:none; display:flex; gap:15px; margin:0; padding:0; flex-wrap:nowrap;}
nav.main-nav a{
  font-size:.66rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--terracotta-deep); font-weight:500; position:relative; padding-bottom:6px;
  white-space:nowrap;
}
nav.main-nav a::after{
  content:''; position:absolute; left:0; bottom:0; height:1px; width:0;
  background:var(--terracotta); transition:width .3s ease;
}
nav.main-nav a:hover::after, nav.main-nav a.active::after{width:100%;}
nav.main-nav a.active{color:var(--terracotta);}

.nav-cta{
  position:absolute; right:24px; top:50%; transform:translateY(-50%);
  display:flex; align-items:center; gap:14px;
}
.nav-cta .phone{font-size:.74rem; letter-spacing:.04em; color:var(--terracotta-deep); display:flex; align-items:center; gap:8px; white-space:nowrap;}

.lang-flags{display:flex; align-items:center; gap:6px;}
.flag-btn{
  display:flex; align-items:center; justify-content:center; padding:0; border:none;
  background:none; cursor:pointer; opacity:.45; transition:opacity .25s ease, transform .25s ease;
  line-height:0;
}
.flag-btn img{width:20px; height:auto; border-radius:2px; display:block; box-shadow:0 0 0 1px rgba(22,36,44,.12);}
.flag-btn:hover{opacity:.8;}
.flag-btn.active{opacity:1; transform:translateY(-1px);}
.burger{display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none;}
.burger span{width:24px; height:1px; background:var(--terracotta-deep);}

.mobile-nav{display:none;}

/* ---------- Banniere pleine largeur ---------- */
.top-banner{width:100%; line-height:0; overflow:hidden; position:relative; isolation:isolate;}
.top-banner img{width:100%; height:auto; display:block;}
.top-banner::after{
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(155deg, rgba(22,36,44,.28) 0%, rgba(62,107,99,.08) 55%, rgba(184,134,63,.08) 100%);
  mix-blend-mode:multiply;
}

/* ---------- Bloc de titre "carte flottante" sous la banniere ---------- */
.page-title-block{
  position:relative;
  z-index:2;
  max-width:900px;
  margin:-56px auto 0;
  background:var(--cream);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  border-radius:var(--radius);
  text-align:center;
  padding:48px 40px 44px;
}
.page-title-block.plain{
  background:transparent;
  border:none;
  box-shadow:none;
  margin-top:0;
  padding:64px 32px 56px;
}
.page-title-block .eyebrow{justify-content:center;}
.page-title-block h1{font-size:clamp(1.9rem, 3.6vw, 2.8rem); max-width:760px; margin:0 auto 18px; text-wrap:balance;}
.page-title-block h1 .h1-line{display:block; text-wrap:balance;}
@media (min-width:761px){ .page-title-block h1 .h1-keep{white-space:nowrap;} .page-title-block h1:has(.h1-keep){max-width:900px;} }
.page-title-block .hero-subtitle{font-family:'Fraunces',serif; font-style:italic; font-weight:500; color:var(--terracotta); font-size:clamp(1.1rem, 2vw, 1.4rem); line-height:1.4; max-width:640px; margin:-4px auto 18px; text-wrap:balance;}
.page-title-block p.lead{max-width:560px; margin:0 auto; color:var(--ink-soft); font-size:1rem;}

/* ---------- Boutons du hero (accueil) ---------- */
.hero-btns{display:flex; gap:18px; justify-content:center; flex-wrap:wrap;}

/* ---------- Bande photo immersive (respiration entre sections) ---------- */
.photo-band{position:relative; height:340px; overflow:hidden; isolation:isolate;}
.photo-band img{width:100%; height:100%; object-fit:cover;}
.photo-band .band-caption{
  position:absolute; left:0; right:0; bottom:0;
  padding:30px 32px;
  background:linear-gradient(0deg, rgba(16,26,31,.68), transparent);
  color:var(--white);
  font-family:'Fraunces', serif;
  font-style:italic;
  font-weight:500;
  font-size:1.5rem;
  text-align:center;
}

/* ---------- Cliff divider (signature : silhouette du Cap Canaille) ---------- */
.cliff-divider{width:100%; display:block; line-height:0; margin-top:34px;}
.cliff-divider svg{width:100%; height:auto; display:block;}

/* ---------- Sections ---------- */
section{padding:100px 0;}
.section-head{max-width:640px; margin:0 auto 60px; text-align:center;}
.section-head p{color:var(--ink-soft);}
.bg-stone{
  background:
    radial-gradient(circle at 20% 10%, rgba(184,134,63,.07), transparent 40%),
    radial-gradient(circle at 80% 90%, rgba(62,107,99,.08), transparent 40%),
    var(--stone);
}

/* Positioning statement */
.positioning{
  display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center;
}
.positioning .tag-list{display:flex; flex-wrap:wrap; gap:10px; margin-top:24px;}
.positioning .tag-list span{
  font-size:.7rem; letter-spacing:.09em; text-transform:uppercase;
  border-left:2px solid var(--terracotta); padding:6px 14px; color:var(--terracotta-deep);
  background:rgba(255,255,255,.5);
}
.positioning figure{
  margin:0;
  border:1px solid var(--line);
  padding:36px;
  background:var(--white);
  box-shadow:var(--shadow);
  border-radius:var(--radius);
}
.positioning figure img{width:100%;}

/* Services grid */
.grid-6{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;}
.grid-6.cols-2{grid-template-columns:repeat(2,1fr);}
.svc-card{background:var(--cream); padding:44px 38px; transition:background .3s ease;}
.svc-card:hover{background:var(--white);}
.svc-card .icon{width:44px; height:44px; margin-bottom:22px; color:var(--terracotta);}
.svc-card h3{font-size:1.12rem; margin-bottom:12px;}
.svc-card p{color:var(--ink-soft); font-size:.92rem; margin:0;}

/* About teaser / full */
.about-split{display:grid; grid-template-columns:.85fr 1.15fr; gap:70px; align-items:center;}
.about-split .portrait{position:relative;}
.about-split .portrait img{border-radius:50%; width:280px; height:280px; object-fit:cover; border:1px solid var(--terracotta); padding:10px; margin:0 auto; background:var(--white);}
.about-split .signature{margin-top:18px; text-align:center; font-family:'Fraunces',serif; font-style:italic; font-weight:500; font-size:1.5rem; color:var(--terracotta);}
.about-split h2 span{display:block; font-family:'Fraunces',serif; font-style:italic; font-weight:500; color:var(--terracotta); font-size:1.7rem;}

.stats-row{display:flex; gap:50px; margin-top:34px; flex-wrap:wrap;}
.stats-row .stat b{display:block; font-family:'Fraunces',serif; font-size:2rem; color:var(--terracotta);}
.stats-row .stat span{display:block; max-width:200px; font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft);}

/* Quote band */
.quote-band{text-align:center; padding:90px 32px; background:linear-gradient(160deg, var(--terracotta-deep), #0D171C); color:var(--white);}
.quote-band .script{font-size:2.2rem; display:block; margin-bottom:8px; color:var(--ochre);}
.quote-band p.sub{color:rgba(255,255,255,.65); font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; margin:0;}

/* Contact CTA band */
.cta-band{
  background:var(--stone);
  padding:70px 32px;
  text-align:center;
}
.cta-band h2{margin-bottom:14px;}
.cta-band p{color:var(--ink-soft); max-width:520px; margin:0 auto 30px;}

/* Footer */
footer{background:#101A1F; color:rgba(255,255,255,.68); padding:70px 0 28px;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1.1fr; gap:50px;}
footer h4{color:var(--white); font-size:.85rem; letter-spacing:.1em; text-transform:uppercase; margin-bottom:20px; font-family:'Jost',sans-serif; font-weight:500;}
footer .brand{margin-bottom:16px;}
footer .brand-text .b1{color:var(--white);}
footer p{font-size:.86rem; color:rgba(255,255,255,.55);}
footer ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:12px;}
footer ul a{font-size:.86rem; color:rgba(255,255,255,.68); transition:color .25s;}
footer ul a:hover{color:var(--ochre);}
.footer-bottom{
  max-width:var(--max); margin:50px auto 0; padding:24px 32px 0;
  border-top:1px solid rgba(255,255,255,.1);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;
  font-size:.75rem; color:rgba(255,255,255,.42);
}

/* ---------- Services page detail ---------- */
.svc-detail{display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; padding:80px 0;}
.svc-detail:nth-child(even) .svc-media{order:2;}
.svc-detail .num{
  display:inline-flex; align-items:center; gap:10px;
  font-size:.72rem; letter-spacing:.24em; text-transform:uppercase;
  color:var(--terracotta); font-weight:500;
}
.svc-detail .num::before{content:'';width:28px;height:1px;background:var(--terracotta);}
.svc-detail .svc-media{
  background:var(--stone); border:1px solid var(--line); aspect-ratio:4/3; display:flex; align-items:center; justify-content:center;
  border-radius:var(--radius);
}
.svc-detail .svc-media svg{width:38%; color:var(--terracotta);}
.svc-detail .svc-media img{width:100%; height:100%; object-fit:cover; border-radius:var(--radius);}
.svc-detail ul{margin:18px 0 0; padding-left:18px; color:var(--ink-soft); font-size:.92rem;}
.svc-detail li{margin-bottom:8px;}

/* ---------- Nos biens (page biens.html) ---------- */
.property-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:34px;}
.property-card{background:var(--white); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); display:flex; flex-direction:column;}
.property-card img{width:100%; height:220px; object-fit:cover; display:block;}
.property-card .property-body{padding:26px 24px 28px; display:flex; flex-direction:column; flex:1;}
.property-card h3{margin-bottom:6px; font-size:1.1rem;}
.property-card p{color:var(--ink-soft); font-size:.9rem;}
.property-card .property-tags{display:flex; flex-wrap:wrap; gap:8px; margin:14px 0 18px;}
.property-card .property-tags span{font-size:.68rem; letter-spacing:.05em; text-transform:uppercase; background:var(--stone); padding:5px 10px; border-radius:3px; color:var(--terracotta-deep);}
.property-card .btn{margin-top:auto; align-self:flex-start;}
.property-meta{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 18px; margin:0 0 12px;}
.property-price{font-size:.9rem; color:var(--ink-soft);}
.property-price b{font-weight:500; color:var(--terracotta-deep); font-variant-numeric:tabular-nums;}
.property-rating{display:flex; align-items:center; gap:8px; font-size:.9rem;}
.property-rating .stars{color:var(--terracotta); letter-spacing:.12em; line-height:1;}
.property-rating b{font-weight:500; color:var(--terracotta-deep);}
.property-rating .rating-max{color:var(--ink-soft); margin-left:-6px;}
.placeholder-badge{align-self:flex-start; font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--terracotta); background:rgba(184,134,63,.12); padding:4px 10px; border-radius:3px; display:inline-block; margin-bottom:12px;}
@media (max-width:980px){.property-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:760px){.property-grid{grid-template-columns:1fr;}}

/* Filter bar */
.filters-bar{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:38px; position:relative; z-index:30;}
.filter-btn{background:var(--white); border:1px solid var(--line); border-radius:999px; padding:11px 20px; font-size:.76rem; letter-spacing:.03em; color:var(--terracotta-deep); cursor:pointer; transition:border-color .2s, background .2s; font-family:'Jost',sans-serif;}
.filter-btn:hover{border-color:var(--terracotta);}
.filter-btn.active{border-color:var(--terracotta); background:rgba(184,134,63,.08);}
.filter-btn.filter-more{background:var(--terracotta-deep); color:var(--white); border-color:var(--terracotta-deep);}
.filter-btn.filter-more:hover{background:#0D171C;}
.filter-wrap{position:relative;}
.filter-panel{position:absolute; top:calc(100% + 10px); left:0; background:var(--white); border:1px solid var(--line); box-shadow:var(--shadow); border-radius:var(--radius); padding:22px; width:270px; display:none;}
.filter-panel.open{display:block;}
.filter-panel label{display:block; font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; color:var(--terracotta-deep); margin-bottom:6px;}
.filter-panel input, .filter-panel select{width:100%; padding:9px 12px; border:1px solid var(--line); border-radius:var(--radius); font-family:'Jost',sans-serif; font-size:.85rem; margin-bottom:14px; background:var(--white); color:var(--ink);}
.filter-panel .row2{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
.filter-panel .amenities label{display:flex; align-items:center; gap:8px; font-size:.85rem; text-transform:none; letter-spacing:0; color:var(--ink); margin-bottom:10px; font-weight:400;}
.filter-panel .amenities input[type=checkbox]{width:auto; margin:0;}
.filter-apply{background:var(--terracotta); color:var(--white); border:none; padding:10px 20px; border-radius:var(--radius); font-size:.75rem; text-transform:uppercase; letter-spacing:.05em; cursor:pointer; width:100%;}
.filter-apply:hover{background:var(--rust);}
.filter-note{font-size:.72rem; color:var(--ink-soft); margin-top:2px; margin-bottom:14px; line-height:1.4;}
.filters-reset{background:none; border:none; color:var(--ink-soft); font-size:.76rem; text-decoration:underline; cursor:pointer; align-self:center;}
.filters-empty{text-align:center; color:var(--ink-soft); padding:40px 20px; display:none;}
.filters-empty.show{display:block;}

/* Two-column layout: listings + map */
.biens-layout{display:block;}
.biens-category{font-family:'Fraunces', serif; font-size:1.3rem; color:var(--terracotta-deep); margin:0 0 20px; padding-bottom:10px; border-bottom:1px solid var(--line);}
.biens-list + .biens-category{margin-top:50px;}
.biens-list{display:grid; grid-template-columns:1fr 1fr; gap:34px;}
.biens-list .property-card{flex-direction:column;}
.biens-list .property-card img{width:100%; height:320px; flex-shrink:0;}
.biens-list .property-card .property-body{flex:1;}
.biens-map{position:sticky; top:96px; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); background:var(--white);}
.biens-map iframe{width:100%; height:460px; border:0; display:block;}
.biens-map .map-caption{padding:14px 18px; font-size:.8rem; color:var(--ink-soft); border-top:1px solid var(--line);}
.biens-map .map-caption b{color:var(--terracotta-deep);}
.property-card--selected{outline:2px solid var(--terracotta); outline-offset:-1px;}
.map-locate{font-size:.72rem; padding:12px 18px;}
@media (max-width:980px){
  .biens-layout{grid-template-columns:1fr;}
  .biens-map{position:static; order:-1;}
  .biens-list .property-card{flex-direction:column;}
  .biens-list .property-card img{width:100%; height:220px;}
}
@media (max-width:600px){
  .biens-list{grid-template-columns:1fr;}
  .filter-panel{width:calc(100vw - 64px); left:0;}
}
/* ---------- Contact page ---------- */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:70px;}
.contact-info .item{display:flex; gap:16px; margin-bottom:30px;}
.contact-info .item .icon{width:20px; height:20px; color:var(--terracotta); flex-shrink:0; margin-top:3px;}
.contact-info .item b{display:block; color:var(--terracotta-deep); font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; margin-bottom:4px;}
form.devis-form{display:flex; flex-direction:column; gap:18px;}
form.devis-form label{font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--terracotta-deep); margin-bottom:6px; display:block;}
form.devis-form input, form.devis-form select, form.devis-form textarea{
  width:100%; padding:14px 16px; border:1px solid var(--line); background:var(--white);
  font-family:'Jost',sans-serif; font-size:.9rem; color:var(--ink); border-radius:var(--radius);
}
form.devis-form textarea{resize:vertical; min-height:110px;}
form.devis-form .row2{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
.form-note{font-size:.78rem; color:var(--ink-soft); margin-top:6px;}

/* ---------- Services propriétaires : grille sans photos ---------- */
.owner-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;}
.owner-card{background:var(--cream); padding:48px 44px; display:flex; flex-direction:column;}
.owner-card h2{font-size:1.45rem; margin:10px 0 14px;}
.owner-card > p{color:var(--ink-soft); font-size:.95rem;}
.owner-card .num{display:inline-flex; align-items:center; gap:10px; font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; color:var(--terracotta); font-weight:500;}
.owner-card .num::before{content:''; width:28px; height:1px; background:var(--terracotta);}
.owner-card ul{list-style:none; margin:8px 0 0; padding:18px 0 0; border-top:1px solid var(--line); display:grid; gap:10px;}
.owner-card li{position:relative; padding-left:22px; font-size:.92rem; color:var(--ink);}
.owner-card li::before{content:''; position:absolute; left:0; top:.72em; width:10px; height:1px; background:var(--terracotta);}
@media (max-width:860px){ .owner-grid{grid-template-columns:1fr;} .owner-card{padding:36px 26px;} }

/* ---------- Nos formules (accueil) ---------- */
.formula-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;}
.formula-card{background:var(--cream); padding:40px 34px 44px; display:flex; flex-direction:column;}
.formula-card--prestige{background:#F1F3F2;}
.formula-num{font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; color:var(--terracotta); font-weight:500;}
.formula-card h3{font-size:1.9rem; text-transform:uppercase; letter-spacing:.02em; margin:6px 0 2px;}
.formula-tag{font-family:'Fraunces',serif; font-style:italic; color:var(--ink-soft); margin:0 0 22px;}
.formula-rate{display:flex; align-items:baseline; gap:10px; padding:16px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin-bottom:20px;}
.formula-rate b{font-family:'Fraunces',serif; font-weight:600; font-size:2.6rem; line-height:1; color:var(--terracotta); font-variant-numeric:tabular-nums;}
.formula-rate span{font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:var(--terracotta-deep); font-weight:500;}
.formula-for{color:var(--ink-soft); font-size:.93rem; margin-bottom:22px;}
.formula-label{font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--terracotta); font-weight:500; margin-bottom:10px;}
.formula-card ul{list-style:none; margin:0; padding:0; display:grid; gap:8px;}
.formula-card li{position:relative; padding-left:20px; font-size:.9rem; line-height:1.5;}
.formula-card li::before{content:''; position:absolute; left:0; top:.72em; width:9px; height:1px; background:var(--terracotta);}
.formula-notes{text-align:center; margin-top:34px;}
.formula-notes p{color:var(--ink-soft); font-size:.86rem; margin:0 0 6px;}
.formula-notes .formula-notes-main{color:var(--terracotta-deep); font-weight:500; font-size:.95rem;}
.formula-links{margin-top:14px !important;}
.formula-links a{color:var(--terracotta); border-bottom:1px solid currentColor;}
@media (max-width:980px){ .formula-grid{grid-template-columns:1fr;} .formula-card{padding:34px 26px;} }

/* ---------- Surveillance & Intendance : déroulement des visites ---------- */
.visit-steps-section{padding:40px 0 20px;}
.visit-steps{list-style:none; margin:0; padding:0; counter-reset:step; display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;}
.visit-steps li{counter-increment:step; background:var(--white); padding:34px 28px 30px;}
.visit-steps li::before{content:counter(step); display:grid; place-items:center; width:38px; height:38px; border-radius:50%; border:1px solid var(--terracotta); color:var(--terracotta); font-family:'Fraunces',serif; font-weight:600; margin-bottom:18px;}
.visit-steps h3{font-size:1.02rem; margin-bottom:8px;}
.visit-steps p{color:var(--ink-soft); font-size:.9rem; margin:0;}
.compare-card ul{list-style:none; margin:14px 0 0; padding:14px 0 0; border-top:1px solid var(--line); display:grid; gap:8px;}
.compare-card li{position:relative; padding-left:20px; font-size:.9rem;}
.compare-card li::before{content:''; position:absolute; left:0; top:.72em; width:9px; height:1px; background:var(--terracotta);}
.compare-card--current{background:var(--white);}
.compare-label{font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--terracotta); font-weight:500; margin-bottom:10px;}
@media (max-width:980px){ .visit-steps{grid-template-columns:1fr 1fr;} }
@media (max-width:600px){ .visit-steps{grid-template-columns:1fr;} .visit-steps li{padding:26px 22px;} }

/* ---------- Services propriétaires : rôles et formules ---------- */
.role-legend{display:flex; justify-content:center; flex-wrap:wrap; gap:10px; margin-top:18px;}
.role-badge{display:inline-block; align-self:flex-start; font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; font-weight:500; padding:5px 11px; border-radius:3px; margin-bottom:16px;}
.role-legend .role-badge{margin-bottom:0;}
.role-badge--direct{background:rgba(22,36,44,.08); color:var(--terracotta-deep);}
.role-badge--coord{background:rgba(62,107,99,.14); color:var(--olive);}
.owner-card-note{font-size:.84rem !important; color:var(--terracotta) !important; margin:16px 0 0;}
.formula-details{border:1px dashed var(--stone-deep); border-radius:var(--radius); padding:16px 18px; min-height:150px; background:rgba(255,255,255,.5);}
.formula-details p{color:var(--ink-soft); font-size:.88rem; margin:0;}
.formula-extras{display:grid; grid-template-columns:1fr 1.3fr; gap:14px 40px; align-items:start; margin-top:34px; padding:30px 34px; background:var(--white); border:1px solid var(--line); border-radius:var(--radius);}
.formula-extras h3{font-size:1.15rem; margin-bottom:6px;}
.formula-extras > div > p{color:var(--ink-soft); font-size:.9rem; margin:0;}
.extras-list{margin:0; display:grid; gap:0;}
.extras-list div{display:flex; justify-content:space-between; gap:16px; padding:10px 0; border-bottom:1px dashed var(--line);}
.extras-list div:last-child{border-bottom:0;}
.extras-list dt{font-weight:400;}
.extras-list dd{margin:0; font-weight:500; color:var(--terracotta-deep); text-align:right; font-variant-numeric:tabular-nums;}
.extras-note{grid-column:1 / -1; font-size:.84rem; color:var(--ink-soft); margin:0;}
.formula-basis{text-align:center; font-size:.9rem; color:var(--terracotta-deep); font-weight:500; margin:26px auto 0; max-width:640px;}
.formula-basis a{color:var(--terracotta); border-bottom:1px solid currentColor;}
@media (max-width:760px){ .formula-extras{grid-template-columns:1fr; padding:24px 20px;} .extras-list div{flex-direction:column; gap:2px;} .extras-list dd{text-align:left;} }

/* ---------- Nos locations : présentation type annonces ---------- */
.search-bar{display:grid; grid-template-columns:repeat(2,1fr) auto; gap:14px; align-items:end; background:var(--white); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); padding:20px 22px;}
.search-field label{display:block; font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--terracotta-deep); font-weight:500; margin-bottom:6px;}
.search-field select, .search-field input{width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:var(--radius); background:var(--white); color:var(--ink); font-family:'Jost',sans-serif; font-size:.9rem;}
.search-submit{padding:13px 28px;}
.search-note{font-size:.78rem; color:var(--ink-soft); margin:10px 0 0; text-align:center;}
.results-head{display:flex; justify-content:space-between; align-items:baseline; gap:16px; margin:40px 0 18px; padding-bottom:12px; border-bottom:1px solid var(--line);}
.results-count{font-family:'Fraunces',serif; font-size:1.25rem; color:var(--terracotta-deep); margin:0;}
.listing[hidden]{display:none !important;}
.listing-photo{position:relative;}
.biens-list .listing-photo:not(.carousel) img{width:100%; height:auto; aspect-ratio:3 / 2; object-fit:cover; display:block;}
.listing-type{position:absolute; left:14px; top:14px; background:var(--terracotta-deep); color:var(--white); font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; padding:6px 11px; border-radius:3px;}
.listing-loc{font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--terracotta); margin-bottom:6px;}
.listing-avail{display:inline-block; align-self:flex-start; font-size:.72rem; letter-spacing:.06em; padding:5px 10px; border-radius:3px; margin:2px 0 8px;}
.listing-avail.is-free{background:rgba(62,107,99,.14); color:var(--olive);}
.listing-avail.is-unknown{background:rgba(184,134,63,.12); color:var(--rust);}
.listing-head{display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap; margin:4px 0 16px;}
.listing-price b{font-family:'Fraunces',serif; font-size:1.45rem; font-weight:600; color:var(--terracotta-deep); font-variant-numeric:tabular-nums;}
.listing-price span{font-size:.85rem; color:var(--ink-soft); margin-left:6px;}
.listing-price--none{font-size:.9rem; color:var(--ink-soft);}
.listing-rating{font-size:.8rem; letter-spacing:.04em; color:var(--terracotta-deep); font-weight:500; white-space:nowrap;}
.listing-capacity-note{font-size:.82rem !important; color:var(--ink-soft); margin:-6px 0 14px;}
.listing-stars{color:var(--terracotta); letter-spacing:.12em; font-size:.9rem;}
.listing-specs{display:flex; flex-wrap:wrap; margin:0 0 16px; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.listing-specs div{flex:1 1 0; min-width:80px; padding:10px 12px 10px 0;}
.listing-specs div + div{padding-left:14px; border-left:1px solid var(--line);}
.listing-specs dt{font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft);}
.listing-specs dd{margin:2px 0 0; font-family:'Fraunces',serif; font-size:1.1rem; font-weight:600; color:var(--terracotta-deep); font-variant-numeric:tabular-nums;}
.listing-actions{display:flex; flex-wrap:wrap; gap:10px; margin-top:auto;}
.listing-actions--compact{margin-top:6px;}
.biens-list .listing .listing-actions .btn{padding:10px 16px; font-size:.7rem; letter-spacing:.1em;}
.listing .property-tags{margin:4px 0 22px;}
.biens-list .listing .btn{margin-top:0; align-self:auto; padding:14px 20px;}
@media (max-width:900px){ .search-bar{grid-template-columns:1fr 1fr;} .search-submit{grid-column:1 / -1;} }
@media (max-width:600px){ .search-bar{grid-template-columns:1fr; padding:18px;} .listing-actions .btn{flex:1 1 100%; text-align:center;} }

/* ---------- Plateformes de diffusion (services propriétaires) ---------- */
.platforms{margin:4px 0 18px; padding:16px 0 14px; border-top:1px solid var(--line);}
.owner-card .platforms-title{font-family:'Jost',sans-serif; font-size:.68rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); margin:0 0 12px;}
.owner-card ul.platforms-logos{list-style:none; margin:0; padding:0; border:0; display:grid; grid-template-columns:repeat(3,1fr); gap:10px;}
.owner-card ul.platforms-logos li{padding:0; display:flex; align-items:center; justify-content:center; height:52px; background:transparent; border:0;}
.owner-card ul.platforms-logos li::before{content:none;}
.owner-card ul.platforms-logos li{height:60px;}
.platforms-logos img{display:block; width:auto; max-width:76%; object-fit:contain;}
.platforms-logos .logo-airbnb{height:40px;}
.platforms-logos .logo-abritel{height:26px;}
.platforms-logos .logo-booking{height:19px;}
@media (max-width:480px){ .owner-card ul.platforms-logos{gap:8px;} .owner-card ul.platforms-logos li{height:52px;} .platforms-logos img{max-width:84%;} .platforms-logos .logo-airbnb{height:34px;} .platforms-logos .logo-abritel{height:auto; max-height:22px;} .platforms-logos .logo-booking{height:auto; max-height:16px;} }

/* ---------- Carrousel photos (Nos locations) ---------- */
.carousel{position:relative; aspect-ratio:3 / 2; background:var(--stone); overflow:hidden;}
.carousel-track{list-style:none; margin:0; padding:0; display:flex; height:100%; overflow-x:hidden; touch-action:pan-y; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none; overscroll-behavior-x:contain;}
.carousel-track::-webkit-scrollbar{display:none;}
.carousel-track:focus-visible{outline:2px solid var(--terracotta); outline-offset:-2px;}
.carousel-slide{flex:0 0 100%; height:100%; scroll-snap-align:start; scroll-snap-stop:always;}
.biens-list .listing .carousel-slide img{width:100%; height:100%; object-fit:cover; display:block;}
.carousel-btn{position:absolute; top:50%; transform:translateY(-50%); width:40px; height:40px; border-radius:50%; border:0; background:rgba(251,247,238,.92); color:var(--terracotta-deep); font-size:1.6rem; line-height:1; display:grid; place-items:center; cursor:pointer; box-shadow:0 4px 14px rgba(16,26,31,.18); transition:opacity .2s, background .2s;}
.carousel-btn span{margin-top:-3px;}
.carousel-btn:hover{background:var(--white);}
.carousel-btn:focus-visible{outline:2px solid var(--terracotta); outline-offset:2px;}
.carousel-btn:disabled{opacity:0; pointer-events:none;}
.carousel-prev{left:12px;} .carousel-next{right:12px;}
.carousel-count{position:absolute; right:12px; bottom:12px; background:rgba(22,36,44,.72); color:var(--white); font-size:.72rem; letter-spacing:.08em; padding:4px 10px; border-radius:999px; font-variant-numeric:tabular-nums;}
@media (max-width:600px){ .carousel-btn{width:34px; height:34px; font-size:1.35rem;} }
@media (prefers-reduced-motion:reduce){ .carousel-track{scroll-behavior:auto;} }

/* ---------- Formule mise en avant + preuve Villa L'Amalié (services propriétaires) ---------- */
.formula-card--featured{position:relative; background:var(--white); box-shadow:inset 0 3px 0 var(--terracotta); padding-top:58px;}
.formula-badge{position:absolute; top:18px; left:34px; font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; font-weight:500; color:var(--terracotta-deep); background:var(--terracotta); padding:5px 12px; border-radius:999px;}
.formula-note{font-size:.8rem; color:var(--ink-soft); margin:18px 0 0; padding-top:12px; border-top:1px dashed var(--line); line-height:1.5;}
.proof-section{padding-top:90px; padding-bottom:90px;}
.proof-split{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center;}
.proof-photo{margin:0; border:1px solid var(--line); padding:18px; background:var(--white); box-shadow:var(--shadow); border-radius:var(--radius);}
.proof-photo img{width:100%; height:auto; aspect-ratio:3 / 2; object-fit:cover; object-position:center bottom; border-radius:calc(var(--radius) + 2px);}
.proof-facts{font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; color:var(--terracotta-deep); font-weight:500; margin-bottom:16px;}
.proof-split p:not(.proof-facts){color:var(--ink-soft);}
@media (max-width:980px){ .proof-split{grid-template-columns:1fr; gap:34px;} .formula-badge{left:26px;} }
@media (max-width:760px){ .proof-section{padding-top:60px; padding-bottom:60px;} .proof-photo{padding:12px;} }

/* ---------- Caractéristiques en pictogrammes (Nos locations) ---------- */
.listing-features{list-style:none; margin:0 0 16px; padding:12px 0; display:flex; flex-wrap:wrap; align-items:center; gap:10px 22px; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.listing-features li{display:inline-flex; align-items:center; gap:8px; color:var(--terracotta-deep); line-height:1;}
.listing-features svg{flex:none; color:var(--terracotta-deep);}
.listing-features .lf-val{font-size:1rem; font-weight:400; color:var(--ink); font-variant-numeric:tabular-nums; white-space:nowrap;}
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
@media (max-width:480px){ .listing-features{gap:10px 18px;} }

/* ---------- Responsive ---------- */
@media (max-width:1300px){
  nav.main-nav{display:none;}
  .nav-cta .phone{display:none;}
  .burger{display:flex;}

  .mobile-nav{
    display:block; position:fixed; inset:0 0 0 auto; width:80%; max-width:340px;
    background:linear-gradient(160deg, var(--terracotta-deep), #0D171C); color:var(--white); z-index:800; transform:translateX(100%);
    transition:transform .4s ease; padding:100px 34px 40px; overflow-y:auto;
  }
  .mobile-nav.open{transform:translateX(0);}
  .mobile-nav ul{list-style:none; padding:0; display:flex; flex-direction:column; gap:22px;}
  .mobile-nav a{font-family:'Fraunces',serif; font-size:1.05rem; line-height:1.3; color:var(--white); display:block;}
  .mobile-nav a.active{color:var(--ochre);}
  .mobile-nav-bottom{margin-top:34px; display:flex; align-items:center; justify-content:space-between; gap:16px;}
  .mobile-nav .phone{font-size:.85rem; color:var(--ochre); display:block; margin:0;}
  .mobile-nav .lang-flags{gap:10px;}
  .mobile-nav .flag-btn{opacity:.6;}
  .mobile-nav .flag-btn.active{opacity:1;}
  .nav-scrim{position:fixed; inset:0; background:rgba(16,26,31,.5); z-index:700; opacity:0; visibility:hidden; transition:opacity .3s;}
  .nav-scrim.open{opacity:1; visibility:visible;}
}
@media (max-width:980px){
  .positioning, .about-split, .svc-detail, .contact-grid{grid-template-columns:1fr; gap:40px;}
  .svc-detail:nth-child(even) .svc-media{order:0;}
  .grid-6, .grid-6.cols-2{grid-template-columns:1fr 1fr;}
  .footer-grid{grid-template-columns:1fr 1fr; gap:36px;}
  .photo-band{height:240px;}
}
@media (max-width:760px){
  .grid-6, .grid-6.cols-2{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr; gap:34px;}
  form.devis-form .row2{grid-template-columns:1fr;}
  .photo-band{height:200px;}

  .wrap{padding:0 22px;}
  section{padding:64px 0;}
  .page-title-block{margin:-40px 16px 0; padding:36px 24px 34px;}
  .page-title-block.plain{margin:0; padding:36px 22px 30px;}
  .svc-detail{padding:50px 0; gap:32px;}
  .svc-card{padding:32px 26px;}
  .positioning figure{padding:22px;}
  .about-split .portrait img{width:220px; height:220px;}
  .stats-row{gap:30px;}
  .quote-band{padding:60px 22px;}
  .quote-band .script{font-size:1.7rem;}
  .cta-band{padding:50px 22px;}
  .photo-band .band-caption{font-size:1.15rem; padding:22px;}
  footer{padding:50px 0 24px;}
}
@media (max-width:480px){
  .hero-btns{flex-direction:column; align-items:stretch;}
  .hero-btns .btn{text-align:center;}
  .stats-row{gap:22px 34px;}
  .about-split .portrait img{width:180px; height:180px;}
  .page-title-block{margin:-28px 12px 0; padding:30px 20px 28px;}
  .page-title-block.plain{margin:0; padding:30px 18px 26px;}
}
@media (max-width:400px){
  .nav-row{padding:12px 14px;}
  .site-header .brand{gap:6px; margin-right:8px;}
  .site-header .brand img{height:32px; width:32px;}
  .brand-text .b1{font-size:.66rem; letter-spacing:.03em;}
  .brand-text .b2{font-size:.84rem;}
  .nav-cta{gap:8px;}
  .lang-flags{gap:4px;}
  .flag-btn img{width:17px;}
}
