/* ── VARIABLES & RESET ── */
:root {
  --blanc: #faf9f6; --blanc-pur: #ffffff; --ivoire: #f4f1ea; --ivoire-fonce: #ede8dc;
  --or: #b8962e; --or-vif: #c9a84c; --or-pale: #e8d5a3;
  --noir: #1a1810; --noir-doux: #2c2a22;
  --gris-chaud: #6b6456; --gris-moyen: #9a9080; --gris-clair: #d4cec2;
  --trait: rgba(184,150,46,0.18);
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { background:var(--blanc); color:var(--noir); font-family:'Montserrat',sans-serif; font-weight:300; overflow-x:hidden; }

/* ── SPLASH ── */
#splash {
  position:fixed; inset:0; z-index:9999; background:var(--noir);
  display:flex; align-items:center; justify-content:center;
  transition:opacity 1s ease, visibility 1s ease;
}
#splash.hidden { opacity:0; visibility:hidden; pointer-events:none; }
#splash video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0.35; }
.splash-content { position:relative; text-align:center; padding:20px; }
.splash-logo {
  font-family:'Cormorant Garamond',serif; font-size:clamp(28px,5vw,60px);
  font-weight:300; letter-spacing:0.2em; color:var(--or-pale); margin-bottom:14px;
  animation:splashUp 1s ease forwards;
}
.splash-tagline {
  font-size:9px; letter-spacing:0.5em; text-transform:uppercase;
  color:rgba(232,213,163,0.5); opacity:0;
  animation:splashUp 1s ease 0.3s forwards;
}
.splash-bar { width:0; height:1px; background:var(--or); margin:28px auto 0; animation:growBar 3.6s ease forwards; }
@keyframes splashUp { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:translateY(0)} }
@keyframes growBar  { from{width:0} to{width:160px} }

/* ── NAV ── */
nav {
  position:fixed; top:0; left:0; width:100%; z-index:100;
  padding:24px 64px; display:flex; align-items:center; justify-content:space-between;
  background:rgba(250,249,246,0.97); border-bottom:1px solid var(--trait); backdrop-filter:blur(8px);
}
.nav-logo { 
  display: flex; 
  align-items: center; 
  text-decoration: none; 
}
.nav-logo img { 
  height: 44px; 
  width: auto; 
}
.nav-logo span { color:var(--or); }
.nav-links { display:flex; gap:40px; list-style:none; }
.nav-links a { font-size:9.5px; letter-spacing:0.28em; text-transform:uppercase; color:var(--gris-chaud); text-decoration:none; transition:color 0.3s; }
.nav-links a:hover, .nav-links a.active { color:var(--or); }
.nav-cta { font-size:9.5px; letter-spacing:0.28em; text-transform:uppercase; color:var(--blanc); background:var(--noir); padding:11px 26px; text-decoration:none; transition:background 0.35s; }
.nav-cta:hover { background:var(--or); }

/* ── PAGE HERO (pages intérieures) ── */
.page-hero {
  min-height:52vh; display:flex; align-items:flex-end;
  padding:120px 64px 70px; position:relative; overflow:hidden;
}
.page-hero img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:saturate(0.7) contrast(1.05); }
.page-hero::after { content:''; position:absolute; inset:0; background:linear-gradient(to top, rgba(250,249,246,0.97) 0%, rgba(250,249,246,0.5) 50%, rgba(250,249,246,0.1) 100%); }
.page-hero-content { position:relative; z-index:1; }
.page-hero-tag { font-size:9px; letter-spacing:0.45em; text-transform:uppercase; color:var(--or); margin-bottom:16px; display:flex; align-items:center; gap:14px; }
.page-hero-tag::before { content:''; width:28px; height:1px; background:var(--or); }
.page-hero-title { font-family:'Cormorant Garamond',serif; font-size:clamp(44px,7vw,90px); font-weight:300; line-height:0.95; color:var(--noir); }
.page-hero-title em { font-style:italic; color:var(--or); display:block; }

/* ── DIVIDER ── */
.divider { display:flex; align-items:center; justify-content:center; padding:50px 0; gap:20px; }
.divider-line { flex:1; max-width:180px; height:1px; background:var(--trait); }
.divider-icon { font-family:'Cormorant Garamond',serif; font-size:18px; color:var(--or); opacity:0.7; }

/* ── COMMON ELEMENTS ── */
.section-label { font-size:9px; letter-spacing:0.45em; text-transform:uppercase; color:var(--or); margin-bottom:18px; display:flex; align-items:center; gap:14px; }
.section-label::before { content:''; width:28px; height:1px; background:var(--or); }
.section-title { font-family:'Cormorant Garamond',serif; font-size:clamp(34px,4.5vw,56px); font-weight:300; line-height:1.08; color:var(--noir); margin-bottom:28px; }
.section-title em { font-style:italic; color:var(--or); }
.section-text { font-size:13px; line-height:2; color:var(--gris-chaud); margin-bottom:16px; }
.tagline-band { background:var(--noir); padding:50px 64px; text-align:center; }
.tagline-band p { font-family:'Cormorant Garamond',serif; font-size:clamp(20px,3vw,32px); font-style:italic; color:var(--or-pale); letter-spacing:0.04em; line-height:1.5; }

/* ── BUTTONS ── */
.btn-primary { font-size:9.5px; letter-spacing:0.32em; text-transform:uppercase; background:var(--noir); color:var(--blanc); padding:15px 38px; text-decoration:none; font-weight:400; transition:all 0.35s; position:relative; overflow:hidden; display:inline-block; }
.btn-primary::before { content:''; position:absolute; inset:0; background:var(--or); transform:translateX(-100%); transition:transform 0.4s ease; }
.btn-primary:hover::before { transform:translateX(0); }
.btn-primary span { position:relative; }
.btn-secondary { font-size:9.5px; letter-spacing:0.28em; text-transform:uppercase; color:var(--gris-chaud); text-decoration:none; display:inline-flex; align-items:center; gap:12px; transition:color 0.3s; }
.btn-secondary::after { content:''; width:30px; height:1px; background:currentColor; transition:width 0.3s; }
.btn-secondary:hover { color:var(--or); }
.btn-secondary:hover::after { width:50px; }
.arrow-link { display:inline-flex; align-items:center; gap:12px; font-size:9px; letter-spacing:0.3em; text-transform:uppercase; color:var(--or); text-decoration:none; transition:gap 0.3s; }
.arrow-link::after { content:'→'; }
.arrow-link:hover { gap:18px; }

/* ── AVIS ── */
.section-avis { padding:110px 64px; background:var(--blanc); text-align:center; }
.avis-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:60px; }
.avis-card { padding:40px 36px; text-align:left; border:1px solid var(--gris-clair); transition:all 0.3s; background:var(--blanc-pur); }
.avis-card:hover { border-color:var(--or-pale); box-shadow:0 8px 40px rgba(184,150,46,0.08); }
.avis-stars { color:var(--or); font-size:11px; letter-spacing:3px; margin-bottom:20px; }
.avis-text { font-family:'Cormorant Garamond',serif; font-size:18px; font-style:italic; line-height:1.75; color:var(--noir-doux); margin-bottom:22px; }
.avis-author { font-size:9px; letter-spacing:0.22em; text-transform:uppercase; color:var(--gris-moyen); }

/* ── FOOTER ── */
footer { padding:44px 64px; background:var(--noir); display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px; }
.footer-logo { font-family:'Cormorant Garamond',serif; font-size:18px; font-weight:300; letter-spacing:0.15em; color:#f0e9d8; }
.footer-logo span { color:var(--or); }
.footer-links { display:flex; gap:28px; flex-wrap:wrap; }
.footer-links a { font-size:9px; letter-spacing:0.25em; text-transform:uppercase; color:rgba(200,191,170,0.6); text-decoration:none; transition:color 0.3s; }
.footer-links a:hover { color:var(--or); }
.footer-copy { font-size:9px; letter-spacing:0.12em; color:rgba(200,191,170,0.35); }

/* ── MODAL ── */
.modal-overlay { position:fixed; inset:0; background:rgba(26,24,16,0.7); z-index:1000; display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity 0.4s; backdrop-filter:blur(4px); }
.modal-overlay.active { opacity:1; pointer-events:all; }
.modal { background:var(--blanc); border:1px solid var(--gris-clair); max-width:580px; width:92%; padding:56px; position:relative; transform:translateY(16px); transition:transform 0.4s; box-shadow:0 30px 80px rgba(26,24,16,0.15); max-height:80vh; overflow-y:auto; }
.modal-overlay.active .modal { transform:translateY(0); }
.modal-close { position:absolute; top:22px; right:22px; font-size:16px; color:var(--gris-moyen); cursor:pointer; background:none; border:none; transition:color 0.3s; }
.modal-close:hover { color:var(--or); }
#modal-heading { font-family:'Cormorant Garamond',serif; font-size:28px; font-weight:300; color:var(--noir); margin-bottom:18px; }
#modal-body { font-size:12px; line-height:2; color:var(--gris-chaud); white-space:pre-line; }


/* ── FOOTER DESTINATIONS ── */
.footer-destinations {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
  font-size: 7.5px;
  width: 100%;
  margin: 12px 0;
  padding: 14px 0;
  border-top: 1px solid rgba(184,150,46,0.12);
  border-bottom: 1px solid rgba(184,150,46,0.12);
}
.footer-destinations a {
  font-size: 8.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(200,191,170,0.45);
  text-decoration: none;
  transition: color 0.3s;
  white-space: nowrap;
}
.footer-destinations a:hover { color: var(--or); }
.footer-destinations a:not(:last-child)::after {
  content: '✦';
  color: var(--or);
  opacity: 0.4;
  margin: 0 12px;
  font-size: 7px;
  vertical-align: middle;
}

@media(max-width:980px){
  .footer-destinations {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding: 16px 0;
  }
  .footer-destinations a:not(:last-child)::after {
    display: none;
  }
}


/* ── BURGER & MENU MOBILE ── */
.burger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  cursor: pointer;
  background: none;
  border: none;
  padding: 6px;
  z-index: 101;
}
.burger span {
  display: block;
  width: 22px;
  height: 1px;
  background: var(--noir);
  transition: all 0.35s ease;
  transform-origin: center;
}
.burger.open span:nth-child(1) { transform: translateY(6px) rotate(45deg); background: var(--or); }
.burger.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.burger.open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); background: var(--or); }

.mobile-menu {
  position: fixed;
  top: 74px; left: 0; width: 100%;
  background: rgba(250,249,246,0.99);
  border-bottom: 1px solid var(--trait);
  z-index: 99;
  backdrop-filter: blur(12px);
  display: flex;
  flex-direction: column;
  padding: 0 28px;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.45s ease, padding 0.45s ease;
}
.mobile-menu.open {
  max-height: 600px;
  padding: 16px 28px 28px;
}
.mobile-menu a {
  font-size: 10px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--gris-chaud);
  text-decoration: none;
  padding: 15px 0;
  border-bottom: 1px solid var(--trait);
  transition: color 0.3s;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.mobile-menu a::after { content: '→'; color: var(--or); opacity: 0; transition: opacity 0.3s; }
.mobile-menu a:hover { color: var(--or); }
.mobile-menu a:hover::after { opacity: 1; }
.mobile-menu a.active { color: var(--or); }
.mobile-menu a:last-child { border-bottom: none; }
.mobile-menu-cta {
  margin-top: 20px;
  font-size: 9px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  background: var(--noir) !important;
  color: var(--blanc) !important;
  padding: 14px 20px !important;
  text-align: center;
  display: block !important;
  border-bottom: none !important;
  transition: background 0.35s !important;
}
.mobile-menu-cta::after { display: none !important; }
.mobile-menu-cta:hover { background: var(--or) !important; }

/* ── RESPONSIVE ── */
@media(max-width:980px){
  nav { padding:18px 28px; } .nav-links { display:none; } .burger { display:flex; } .nav-cta { display:none; }
  .page-hero { padding:100px 28px 50px; }
  .tagline-band { padding:40px 28px; }
  footer { flex-direction:column; text-align:center; padding:36px 28px; }
  .footer-links { justify-content:center; }
  .section-avis { padding:60px 28px; }
  .avis-grid { grid-template-columns:1fr; }
}
