/* ═══════════════════════════════════════════
   COULEURS — modifie uniquement ici
═══════════════════════════════════════════ */
:root {
  --color-primary:     #1F4D46;
  --color-primary-mid: #2A6459;
  --color-accent:      #C4933F;
  --color-bg:          #FAFAF8;
  --color-section-alt: #F7EFEB;
  --color-text:        #111827;
  --color-muted:       #6B7280;
  --color-border:      rgba(31,77,70,0.1);
}

/* ═══════════════════════════════════════════
   BASE
═══════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  background: var(--color-bg);
  color: var(--color-text);
  font-family: 'Inter', sans-serif;
  font-weight: 300;
  overflow-x: hidden;
  padding-bottom: 80px;
}
@media (min-width: 768px) { body { padding-bottom: 0; } }

/* ═══════════════════════════════════════════
   ANIMATIONS
═══════════════════════════════════════════ */
@keyframes fadeUp { from{opacity:0;transform:translateY(26px)} to{opacity:1;transform:translateY(0)} }
@keyframes pulse  { 0%,100%{opacity:1} 50%{opacity:.4} }
@keyframes spin   { to{transform:rotate(360deg)} }

.a1{opacity:0;animation:fadeUp .7s ease .1s forwards}
.a2{opacity:0;animation:fadeUp .7s ease .25s forwards}
.a3{opacity:0;animation:fadeUp .7s ease .4s forwards}
.a4{opacity:0;animation:fadeUp .7s ease .55s forwards}
.a5{opacity:0;animation:fadeUp .7s ease .7s forwards}

/* ═══════════════════════════════════════════
   NAV
═══════════════════════════════════════════ */
nav {
  position: fixed; top:0; left:0; right:0; z-index:100;
  padding: .9rem 1.5rem;
  display: flex; justify-content:space-between; align-items:center;
  background: rgba(250,250,248,.95);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--color-border);
}
.nav-brand { display:flex; align-items:center; gap:.5rem; }
.nav-logo-wrap {
  width:34px; height:34px; border-radius:50%;
  background: var(--color-primary);
  display:flex; align-items:center; justify-content:center;
  padding:3px; flex-shrink:0; overflow:hidden;
}
.nav-logo-wrap img { width:100%; height:100%; object-fit:contain; }
.nav-name { font-family:'Playfair Display',serif; font-size:1rem; color:var(--color-primary); }

/* ═══════════════════════════════════════════
   BOUTONS
═══════════════════════════════════════════ */
.btn {
  background: var(--color-primary); color: var(--color-bg);
  border:none; border-radius:100px;
  font-family:'Inter',sans-serif; font-weight:400; letter-spacing:.05em;
  cursor:pointer; text-decoration:none;
  display:inline-flex; align-items:center; gap:.4rem;
  transition: background .2s, transform .15s, box-shadow .2s;
}
.btn:hover { background:var(--color-primary-mid); transform:translateY(-1px); }
.btn:active { transform:translateY(0); }
.btn-sm { font-size:.78rem; padding:.55rem 1.3rem; }
.btn-lg { font-size:.9rem; padding:1rem 2.2rem; box-shadow:0 4px 20px rgba(31,77,70,.2); }
.btn-lg:hover { box-shadow:0 8px 28px rgba(31,77,70,.25); }

/* ═══════════════════════════════════════════
   HERO
═══════════════════════════════════════════ */
.hero {
  min-height: 100svh;
  padding: 7rem 1.5rem 3rem;
  display:flex; flex-direction:column; justify-content:center; align-items:center;
  position:relative; overflow:hidden;
  text-align: center;
}
.hero::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background: linear-gradient(90deg,transparent,var(--color-accent) 35%,var(--color-accent) 65%,transparent);
}
.blob { position:absolute; border-radius:50%; pointer-events:none; }
.blob-1 { background:radial-gradient(ellipse,rgba(31,77,70,.07) 0%,transparent 68%); top:-5%;right:-15%;width:70vw;max-width:480px;aspect-ratio:1; }
.blob-2 { background:radial-gradient(ellipse,rgba(196,147,63,.06) 0%,transparent 68%); bottom:-10%;left:-10%;width:50vw;max-width:320px;aspect-ratio:1; }

.hero-content { position:relative; z-index:2; width:100%; max-width:700px; }
.hero-desc { margin-left:auto; margin-right:auto; }
.cta-row { justify-content:center; }

.eyebrow {
  display:inline-flex; align-items:center; gap:.45rem;
  border:1px solid var(--color-primary); border-radius:100px;
  padding:.35rem .9rem;
  font-size:.68rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--color-primary); margin-bottom:1.8rem;
}
.eyebrow-dot { width:6px;height:6px;background:var(--color-primary);border-radius:50%;animation:pulse 2s ease infinite; }

h1 {
  font-family:'Playfair Display',serif;
  font-size:clamp(2.6rem,9vw,8rem);
  font-weight:400; line-height:1.02;
  color:var(--color-primary); margin-bottom:1.2rem;
}
h1 em { font-style:italic; color:var(--color-accent); }

.hero-desc { font-size:clamp(.88rem,2.5vw,.98rem); line-height:1.75; color:var(--color-muted); max-width:460px; margin-bottom:2.2rem; }
.cta-row { display:flex; align-items:center; gap:1.5rem; flex-wrap:wrap; margin-bottom:2.4rem; }
.price-note { font-size:.82rem; color:var(--color-muted); }
.price-note strong { color:var(--color-text); font-weight:500; }

/* ═══════════════════════════════════════════
   STRIP INFOS
═══════════════════════════════════════════ */
.strip {
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:1px; border:1px solid var(--color-border); border-radius:12px;
  overflow:hidden; background:var(--color-border); max-width:520px;
  margin: 0 auto;
}
@media(min-width:480px){ .strip{ grid-template-columns:repeat(4,1fr); } }
.strip-cell { background:var(--color-bg); padding:.85rem 1rem; text-align:left; }
.strip-label { font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; color:var(--color-muted); display:block; margin-bottom:.2rem; }
.strip-val { font-family:'Playfair Display',serif; font-size:1rem; color:var(--color-primary); }

/* ═══════════════════════════════════════════
   SECTIONS
═══════════════════════════════════════════ */
.section { padding:4rem 1.5rem; }
@media(min-width:768px){ .section{ padding:5.5rem 2.5rem; } }
.section-inner { max-width:700px; margin:0 auto; }
.section-alt { background:var(--color-section-alt); }

.section-tag {
  font-size:.62rem; letter-spacing:.25em; text-transform:uppercase;
  color:var(--color-accent); margin-bottom:2rem;
  display:flex; align-items:center; gap:.6rem;
}
.section-tag::after { content:''; flex:1; max-width:36px; height:1px; background:var(--color-accent); opacity:.4; }

h2 { font-family:'Playfair Display',serif; font-size:clamp(1.7rem,5vw,2.6rem); font-weight:400; line-height:1.15; color:var(--color-primary); margin-bottom:.5rem; }
h2 em { font-style:italic; }

/* ═══════════════════════════════════════════
   PROGRAMME
═══════════════════════════════════════════ */
.prog { display:flex; flex-direction:column; margin-top:1.8rem; }
.prog-item {
  display:grid; grid-template-columns:2rem 1fr; gap:1.2rem;
  padding:1.5rem 0; border-bottom:1px solid var(--color-border);
  opacity:0; transform:translateY(16px);
  transition: opacity .5s ease, transform .5s ease;
}
.prog-item.visible { opacity:1; transform:translateY(0); }
.prog-arrow { font-family:'Playfair Display',serif; font-size:1.3rem; color:var(--color-accent); padding-top:.1rem; }
.prog-title { font-family:'Playfair Display',serif; font-size:1.1rem; color:var(--color-primary); margin-bottom:.3rem; }
.prog-desc { font-size:.87rem; line-height:1.7; color:var(--color-muted); }

/* ═══════════════════════════════════════════
   INFOS PRATIQUES
═══════════════════════════════════════════ */
.infos-grid { display:grid; gap:2.5rem; }
@media(min-width:768px){ .infos-grid{ grid-template-columns:1fr 1fr; align-items:start; } }
.infos-list { list-style:none; display:flex; flex-direction:column; gap:.85rem; margin-top:1.2rem; }
.infos-list li { display:flex; align-items:flex-start; gap:.85rem; font-size:.88rem; color:var(--color-muted); line-height:1.5; }
.infos-list li span:first-child { color: var(--color-accent); font-size:1rem; }
.deadline {
  margin-top:1.6rem; padding:.9rem 1.1rem;
  background:rgba(196,147,63,.12);
  border-left:2px solid var(--color-accent);
  border-radius:0 8px 8px 0;
  font-size:.82rem; color:var(--color-text); line-height:1.6;
}
.deadline strong { font-weight:500; color:var(--color-primary); }

/* ═══════════════════════════════════════════
   FOOTER CTA
═══════════════════════════════════════════ */
.footer-cta { padding:4rem 1.5rem 3rem; text-align:center; }
.spots-row { display:flex; align-items:center; justify-content:center; gap:.7rem; font-size:.78rem; color:var(--color-muted); margin-bottom:1.4rem; }
.spots-bar { width:60px; height:4px; background:var(--color-border); border-radius:10px; overflow:hidden; }
.spots-fill { height:100%; width:0; background:var(--color-accent); border-radius:10px; transition:width 1.4s cubic-bezier(.4,0,.2,1); }
.footer-quote { font-family:'Playfair Display',serif; font-style:italic; font-size:clamp(1.4rem,4vw,2.1rem); color:var(--color-primary); line-height:1.35; max-width:540px; margin:0 auto 2rem; }

/* ═══════════════════════════════════════════
   FOOTER BAS
═══════════════════════════════════════════ */
.footer-bottom {
  padding:1.4rem 1.5rem;
  display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:1rem;
  border-top:1px solid var(--color-border);
  font-size:.68rem; color:var(--color-muted); letter-spacing:.08em; text-align:center;
}
.footer-bottom a { color:var(--color-muted); text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.footer-bottom a:hover { color:var(--color-primary); }

/* ═══════════════════════════════════════════
   MODALE MENTIONS LÉGALES
═══════════════════════════════════════════ */
.modal-overlay {
  display:none; position:fixed; inset:0; z-index:200;
  background:rgba(0,0,0,.45); backdrop-filter:blur(4px);
  align-items:center; justify-content:center; padding:1.5rem;
}
.modal-overlay.open { display:flex; }
.modal {
  background:var(--color-bg); border-radius:16px;
  max-width:560px; width:100%; max-height:85vh;
  overflow-y:auto; padding:2rem 1.8rem; position:relative;
}
.modal-close { position:absolute; top:1rem; right:1rem; background:none; border:none; cursor:pointer; font-size:1.3rem; color:var(--color-muted); }
.modal h3 { font-family:'Playfair Display',serif; font-size:1.4rem; color:var(--color-primary); margin-bottom:1.4rem; }
.modal h4 { font-size:.75rem; letter-spacing:.15em; text-transform:uppercase; color:var(--color-accent); margin:1.4rem 0 .5rem; }
.modal p { font-size:.88rem; line-height:1.75; color:var(--color-muted); }
.modal a { color:var(--color-primary); }

/* ═══════════════════════════════════════════
   STICKY CTA — mobile uniquement
═══════════════════════════════════════════ */
.sticky-cta {
  position:fixed; bottom:0; left:0; right:0; z-index:90;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:.9rem 1.5rem;
  background:rgba(250,250,248,.97);
  backdrop-filter:blur(12px);
  border-top:1px solid var(--color-border);
}
.sticky-label { font-size:.78rem; line-height:1.4; }
.sticky-label strong { display:block; font-weight:500; color:var(--color-primary); font-size:.88rem; }
@media(min-width:768px){ .sticky-cta{ display:none; } }
