/* ─── LAVANDIS CONCIERGERIE — SHARED STYLES ─── */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&family=Jost:wght@300;400;500&display=swap');

:root {
  --vert: #809B59;
  --vert-light: #A8C27A;
  --vert-pale: #EBF0E2;
  --or: #C4955A;
  --or-dark: #8B6534;
  --pierre: #F6F5F0;
  --pierre-dark: #E4E2D8;
  --feuille: #5C7A40;
  --texte: #1E2418;
  --texte-light: #5A6348;
  --blanc: #FDFCF8;
  --noir: #111a0c;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Jost',sans-serif; background:var(--blanc); color:var(--texte); overflow-x:hidden; }

/* NAV */
nav { position:fixed; top:0; left:0; right:0; z-index:1000; padding:18px 48px; display:flex; align-items:center; justify-content:space-between; transition:all 0.4s ease; background:transparent; }
nav.scrolled { background:rgba(253,250,245,0.96); backdrop-filter:blur(12px); box-shadow:0 1px 30px rgba(42,34,24,0.08); padding:12px 48px; }
.nav-logo { font-family:'Cormorant Garamond',serif; font-size:1.5rem; font-weight:600; color:var(--blanc); letter-spacing:0.05em; text-decoration:none; transition:color 0.3s; }
nav.scrolled .nav-logo { color:var(--texte); }
.nav-links { display:flex; gap:28px; list-style:none; }
.nav-links a { font-size:0.75rem; font-weight:400; letter-spacing:0.12em; text-transform:uppercase; color:rgba(255,255,255,0.9); text-decoration:none; transition:color 0.3s; position:relative; }
.nav-links a::after { content:''; position:absolute; bottom:-2px; left:0; right:0; height:1px; background:var(--or); transform:scaleX(0); transition:transform 0.3s; }
.nav-links a:hover::after { transform:scaleX(1); }
nav.scrolled .nav-links a { color:var(--texte-light); }
.nav-cta { background:var(--or) !important; color:var(--blanc) !important; padding:8px 20px !important; border-radius:2px; font-weight:500 !important; }
.nav-cta:hover { background:var(--or-dark) !important; }
.nav-cta::after { display:none !important; }
nav.scrolled .nav-cta { color:var(--blanc) !important; }
.mobile-menu-btn { display:none; background:none; border:none; cursor:pointer; padding:8px; flex-direction:column; gap:5px; }
.mobile-menu-btn span { display:block; width:24px; height:1px; background:var(--blanc); transition:all 0.3s; }
nav.scrolled .mobile-menu-btn span { background:var(--texte); }
@media(max-width:900px){ .mobile-menu-btn{display:flex;} .nav-links{display:none;} nav{padding:16px 24px;} nav.scrolled{padding:12px 24px;} }
.mobile-menu { display:none; position:fixed; inset:0; background:var(--noir); z-index:999; flex-direction:column; align-items:center; justify-content:center; gap:32px; }
.mobile-menu.open { display:flex; }
.mobile-menu a { font-family:'Cormorant Garamond',serif; font-size:2rem; color:var(--blanc); text-decoration:none; font-weight:300; transition:color 0.3s; }
.mobile-menu a:hover { color:var(--vert-light); }
.mobile-close { position:absolute; top:24px; right:24px; background:none; border:none; color:var(--blanc); font-size:2rem; cursor:pointer; line-height:1; }

/* HERO */
.page-hero { height:60vh; min-height:420px; position:relative; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.page-hero-bg { position:absolute; inset:0; background:linear-gradient(160deg,#0e1a0a 0%,#1a2a10 50%,#0f1a0b 100%); z-index:1; }
.page-hero-img { position:absolute; inset:0; z-index:2; background-size:cover; background-position:center; opacity:0.42; filter:saturate(1.2) brightness(0.95); }
.page-hero-overlay { position:absolute; inset:0; z-index:3; background:linear-gradient(180deg,rgba(10,18,6,0.55) 0%,rgba(10,18,6,0.25) 50%,rgba(10,18,6,0.75) 100%); }
.page-hero-content { position:relative; z-index:4; text-align:center; color:var(--blanc); max-width:800px; padding:0 24px; }
.page-hero-zone { font-size:0.65rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--vert-light); margin-bottom:16px; display:inline-block; background:rgba(128,155,89,0.18); padding:5px 16px; border-radius:20px; border:1px solid rgba(168,194,122,0.3); }
.page-hero-title { font-family:'Cormorant Garamond',serif; font-size:clamp(2.2rem,5vw,4rem); font-weight:300; line-height:1.1; margin-bottom:16px; }
.page-hero-title em { font-style:italic; color:var(--vert-light); }
.page-hero-sub { font-size:0.95rem; font-weight:300; color:rgba(255,255,255,0.75); max-width:520px; margin:0 auto 32px; line-height:1.7; }
.breadcrumb { position:absolute; bottom:24px; left:50%; transform:translateX(-50%); z-index:4; font-size:0.72rem; color:rgba(255,255,255,0.5); letter-spacing:0.1em; }
.breadcrumb a { color:rgba(255,255,255,0.5); text-decoration:none; }
.breadcrumb a:hover { color:var(--vert-light); }

/* BUTTONS */
.btn-primary { background:var(--or); color:var(--blanc); padding:14px 32px; font-size:0.8rem; letter-spacing:0.15em; text-transform:uppercase; font-weight:500; border:none; cursor:pointer; text-decoration:none; display:inline-block; transition:all 0.3s; border-radius:2px; }
.btn-primary:hover { background:var(--or-dark); transform:translateY(-2px); }
.btn-secondary { background:transparent; color:var(--vert); padding:13px 31px; font-size:0.8rem; letter-spacing:0.15em; text-transform:uppercase; font-weight:400; border:1px solid var(--vert); cursor:pointer; text-decoration:none; display:inline-block; transition:all 0.3s; border-radius:2px; }
.btn-secondary:hover { background:var(--vert); color:var(--blanc); }

/* SECTIONS */
.section-label { font-size:0.68rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--vert); margin-bottom:16px; display:block; }
.section-title { font-family:'Cormorant Garamond',serif; font-size:clamp(2rem,3.5vw,3.2rem); font-weight:300; line-height:1.15; color:var(--texte); }
.section-title em { font-style:italic; color:var(--vert); }
.section-desc { font-size:0.93rem; font-weight:300; color:var(--texte-light); line-height:1.8; }
.section-header { text-align:center; margin-bottom:56px; padding:0 24px; }
.section-header .section-desc { max-width:520px; margin:16px auto 0; }

/* VILLAGE PAGE LAYOUT */
.village-content { max-width:1100px; margin:0 auto; padding:80px 40px; display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; }
.village-intro p { font-size:0.95rem; line-height:1.85; color:var(--texte-light); font-weight:300; margin-bottom:16px; }
.village-intro h2 { font-family:'Cormorant Garamond',serif; font-size:1.8rem; font-weight:300; margin-bottom:24px; color:var(--texte); }
.village-intro blockquote { font-family:'Cormorant Garamond',serif; font-size:1.2rem; font-style:italic; color:var(--vert); border-left:2px solid var(--vert); padding-left:20px; margin:24px 0; line-height:1.5; }
.village-features-box { background:var(--pierre); border-radius:4px; padding:32px; margin-top:32px; }
.village-features-box h3 { font-family:'Cormorant Garamond',serif; font-size:1.2rem; margin-bottom:16px; color:var(--texte); }
.feature-list { list-style:none; display:flex; flex-direction:column; gap:10px; }
.feature-list li { display:flex; align-items:center; gap:10px; font-size:0.88rem; color:var(--texte-light); }
.feature-dot { width:6px; height:6px; border-radius:50%; background:var(--vert); flex-shrink:0; }
.village-sidebar { display:flex; flex-direction:column; gap:24px; }
.village-img-main { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:4px; box-shadow:16px 16px 50px rgba(30,36,24,0.15); }
.village-cta-box { background:var(--noir); border-radius:4px; padding:32px; color:var(--blanc); position:relative; overflow:hidden; }
.village-cta-box::before { content:''; position:absolute; inset:0; background:linear-gradient(135deg,rgba(128,155,89,0.12) 0%,transparent 60%); pointer-events:none; }
.village-cta-box h3 { font-family:'Cormorant Garamond',serif; font-size:1.4rem; font-weight:300; margin-bottom:12px; position:relative; }
.village-cta-box p { font-size:0.85rem; color:rgba(255,255,255,0.6); line-height:1.7; margin-bottom:20px; font-weight:300; position:relative; }
.village-cta-box .btn-primary { width:100%; text-align:center; display:block; position:relative; }
.village-cta-phone { display:flex; align-items:center; gap:10px; margin-top:16px; font-size:0.85rem; color:var(--vert-light); text-decoration:none; position:relative; }

/* SERVICES SECTION ON VILLAGE PAGES */
.village-services { padding:80px 0; background:var(--noir); }
.village-services .section-title { color:var(--blanc); }
.village-services .section-label { color:var(--vert-light); }
.services-mini-grid { max-width:1100px; margin:40px auto 0; padding:0 40px; display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:16px; }
.service-mini { background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.06); padding:28px 24px; border-radius:2px; transition:background 0.3s; }
.service-mini:hover { background:rgba(128,155,89,0.1); }
.service-mini-icon { font-size:1.4rem; margin-bottom:12px; }
.service-mini h4 { font-family:'Cormorant Garamond',serif; font-size:1.1rem; color:var(--blanc); margin-bottom:8px; font-weight:400; }
.service-mini p { font-size:0.82rem; color:rgba(255,255,255,0.45); line-height:1.7; font-weight:300; }

/* AUTRES VILLAGES */
.autres-villages { padding:80px 0; background:var(--pierre); }
.villages-grid-small { max-width:1100px; margin:40px auto 0; padding:0 40px; display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:12px; }
.village-pill { display:flex; align-items:center; gap:10px; padding:14px 18px; background:var(--blanc); border-radius:3px; text-decoration:none; color:var(--texte); font-size:0.85rem; transition:all 0.3s; border:1px solid var(--pierre-dark); }
.village-pill:hover { background:var(--vert); color:var(--blanc); border-color:var(--vert); transform:translateY(-2px); }
.village-pill-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }

/* CONTACT MINI */
.contact-mini { padding:80px 0; background:var(--blanc); }
.contact-mini-inner { max-width:700px; margin:0 auto; padding:0 40px; text-align:center; }
.contact-mini-inner .section-title { margin-bottom:12px; }
.contact-mini-inner .section-desc { margin-bottom:32px; }
.contact-mini-ctas { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

/* FOOTER */
footer { background:#0a0f07; padding:48px 40px 32px; }
.footer-inner { max-width:1200px; margin:0 auto; }
.footer-top { display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:48px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,0.06); margin-bottom:32px; }
.footer-brand .logo-text { font-family:'Cormorant Garamond',serif; font-size:1.4rem; font-weight:600; color:var(--blanc); letter-spacing:0.05em; display:block; margin-bottom:12px; }
.footer-brand p { font-size:0.82rem; color:rgba(255,255,255,0.4); line-height:1.7; font-weight:300; }
.footer-col h4 { font-size:0.68rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--vert-light); margin-bottom:16px; }
.footer-col ul { list-style:none; }
.footer-col li { margin-bottom:8px; }
.footer-col a { font-size:0.83rem; color:rgba(255,255,255,0.4); text-decoration:none; transition:color 0.3s; }
.footer-col a:hover { color:var(--blanc); }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; }
.footer-bottom p { font-size:0.75rem; color:rgba(255,255,255,0.25); }
.footer-seo { font-size:0.7rem; color:rgba(255,255,255,0.12); line-height:1.6; margin-top:20px; padding-top:16px; border-top:1px solid rgba(255,255,255,0.04); }

/* ANIMS */
@keyframes fadeUp { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:translateY(0)} }
.reveal { opacity:0; transform:translateY(28px); transition:opacity 0.7s ease,transform 0.7s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }

/* RESPONSIVE */
@media(max-width:900px){
  .village-content { grid-template-columns:1fr; gap:40px; padding:60px 24px; }
  .footer-top { grid-template-columns:1fr; gap:32px; }
  footer { padding:48px 24px 32px; }
  .services-mini-grid, .villages-grid-small { padding:0 24px; }
  .contact-mini-inner { padding:0 24px; }
}
