/* ── RESET & VARIABLES ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --creme:#F2EDE4; --creme2:#EBE4D8; --terre:#C4633A; --terre-clair:#D4845C;
  --olive:#5C6B3A; --olive-fonce:#3D4A26; --sable:#B8A882;
  --brun:#3A2E1E; --blanc:#FAF7F2; --gris:#7A7060;
}
html { scroll-behavior: smooth; }
body { background:var(--creme); color:var(--brun); font-family:'Jost',sans-serif; font-weight:300; overflow-x:hidden; font-size:16px; line-height:1.6; }

/* ── NAV ── */
nav { position:fixed; top:0; left:0; right:0; z-index:200; display:flex; justify-content:space-between; align-items:center; padding:20px 60px; background:rgba(242,237,228,0.96); backdrop-filter:blur(12px); border-bottom:1px solid rgba(184,168,130,0.3); transition:padding 0.3s; }
.nav-logo { font-family:'Cormorant Garamond',serif; font-size:18px; font-weight:400; letter-spacing:2.5px; text-transform:uppercase; color:var(--brun); white-space:nowrap; }
.nav-links { display:flex; gap:32px; list-style:none; }
.nav-links a { font-size:11px; font-weight:400; letter-spacing:2px; text-transform:uppercase; color:var(--gris); text-decoration:none; transition:color 0.2s; white-space:nowrap; }
.nav-links a:hover { color:var(--terre); }
.nav-burger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:4px; background:none; border:none; }
.nav-burger span { display:block; width:24px; height:2px; background:var(--brun); transition:transform 0.3s, opacity 0.3s; }
.nav-burger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.nav-burger.open span:nth-child(2) { opacity:0; }
.nav-burger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.nav-mobile { display:none; position:fixed; top:61px; left:0; right:0; background:rgba(242,237,228,0.98); backdrop-filter:blur(12px); border-bottom:1px solid rgba(184,168,130,0.3); z-index:199; flex-direction:column; padding:16px 24px; }
.nav-mobile.open { display:flex; }
.nav-mobile a { font-size:13px; font-weight:400; letter-spacing:2px; text-transform:uppercase; color:var(--gris); text-decoration:none; padding:16px 0; border-bottom:1px solid rgba(184,168,130,0.2); transition:color 0.2s; }
.nav-mobile a:last-child { border-bottom:none; }
.nav-mobile a:hover { color:var(--terre); }

/* ── HERO ── */
.hero { min-height:100vh; display:grid; grid-template-columns:1.1fr 0.9fr; padding-top:61px; overflow:hidden; }
.hero-left { background:var(--olive-fonce); display:flex; flex-direction:column; justify-content:center; padding:80px 64px; position:relative; overflow:hidden; }
.hero-left::before { content:''; position:absolute; top:-60px; right:-60px; width:320px; height:320px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cpath d='M100 10 C60 10 20 50 20 100 C20 150 60 190 100 190 C100 190 100 100 100 10Z' fill='none' stroke='%23ffffff' stroke-width='0.8' opacity='0.1'/%3E%3Cpath d='M100 10 C140 10 180 50 180 100 C180 150 140 190 100 190 C100 190 100 100 100 10Z' fill='none' stroke='%23ffffff' stroke-width='0.8' opacity='0.1'/%3E%3C/svg%3E") center/contain no-repeat; pointer-events:none; }
.hero-eyebrow { font-size:10px; letter-spacing:4px; text-transform:uppercase; color:var(--sable); margin-bottom:28px; opacity:0; animation:fadeUp 0.9s ease forwards 0.2s; }
.hero-name { font-family:'Cormorant Garamond',serif; font-size:clamp(44px,5vw,76px); font-weight:300; color:var(--creme); line-height:1.0; margin-bottom:6px; opacity:0; animation:fadeUp 0.9s ease forwards 0.4s; }
.hero-name em { font-style:italic; color:var(--terre-clair); }
.hero-role { font-size:11px; letter-spacing:2.5px; text-transform:uppercase; color:rgba(242,237,228,0.45); margin-bottom:44px; opacity:0; animation:fadeUp 0.9s ease forwards 0.6s; }
.hero-tagline { font-size:15px; line-height:1.85; color:rgba(242,237,228,0.72); max-width:380px; padding-left:18px; border-left:1px solid var(--terre-clair); opacity:0; animation:fadeUp 0.9s ease forwards 0.8s; }
.hero-tagline strong { color:var(--creme); font-weight:400; }
.hero-right { background:var(--creme2); display:flex; flex-direction:column; justify-content:center; padding:80px 60px 80px 72px; gap:48px; position:relative; overflow:hidden; }
.hero-right::after { content:''; position:absolute; bottom:-50px; right:-50px; width:260px; height:260px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cpath d='M100 10 C60 10 20 50 20 100 C20 150 60 190 100 190 C100 190 100 100 100 10Z' fill='none' stroke='%235C6B3A' stroke-width='1' opacity='0.18'/%3E%3Cpath d='M100 10 C140 10 180 50 180 100 C180 150 140 190 100 190 C100 190 100 100 100 10Z' fill='none' stroke='%235C6B3A' stroke-width='1' opacity='0.18'/%3E%3C/svg%3E") center/contain no-repeat; pointer-events:none; }
.kpi { opacity:0; animation:fadeLeft 0.7s ease forwards; position:relative; z-index:1; }
.kpi:nth-child(1){animation-delay:0.6s} .kpi:nth-child(2){animation-delay:0.8s} .kpi:nth-child(3){animation-delay:1.0s}
.kpi-value { font-family:'Cormorant Garamond',serif; font-size:clamp(44px,5vw,60px); font-weight:300; color:var(--terre); line-height:1; margin-bottom:8px; }
.kpi-label { font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--gris); padding-left:14px; border-left:1px solid var(--sable); }

/* ── SECTIONS ── */
section { padding:100px 60px; width:100%; }
.section-inner { max-width:1200px; margin:0 auto; }
.section-eyebrow { font-size:10px; letter-spacing:4px; text-transform:uppercase; color:var(--terre); margin-bottom:14px; }
.section-title { font-family:'Cormorant Garamond',serif; font-size:clamp(32px,4vw,54px); font-weight:300; line-height:1.1; margin-bottom:56px; color:var(--brun); }
.section-title em { font-style:italic; color:var(--olive); }

/* ── PARCOURS ── */
.parcours { background:var(--olive-fonce); }
.parcours .section-title { color:var(--creme); }
.parcours .section-eyebrow { color:var(--sable); }
.parcours .section-title em { color:var(--terre-clair); }
.timeline { position:relative; max-width:100%; }
.timeline::before { content:''; position:absolute; left:0; top:0; bottom:0; width:1px; background:linear-gradient(to bottom,transparent,rgba(196,99,58,0.4) 5%,rgba(196,99,58,0.4) 95%,transparent); transform:scaleY(0); transform-origin:top; transition:transform 1.4s ease 0.3s; }
.timeline.visible::before { transform:scaleY(1); }
.timeline-item { display:grid; grid-template-columns:1fr; gap:12px; padding:36px 0 36px 32px; border-bottom:1px solid rgba(242,237,228,0.07); position:relative; opacity:0; transform:translateY(20px); transition:opacity 0.7s ease,transform 0.7s ease; }
.timeline-item.visible { opacity:1; transform:translateY(0); }
.timeline-item::before { content:''; position:absolute; left:-6px; top:44px; width:12px; height:12px; border-radius:50%; background:var(--terre); border:2px solid var(--olive-fonce); z-index:1; }
.tl-period { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--terre-clair); line-height:1.4; margin-bottom:4px; }
.tl-tag { display:inline-block; font-size:10px; letter-spacing:1.5px; text-transform:uppercase; color:var(--terre-clair); border:1px solid rgba(196,99,58,0.35); padding:3px 10px; margin-bottom:10px; }
.tl-content h3 { font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:400; color:var(--creme); margin-bottom:10px; line-height:1.3; }
.tl-content p { font-size:14px; line-height:1.85; color:rgba(242,237,228,0.58); max-width:680px; }

/* ── PHILOSOPHIE ── */
.philosophie { background:var(--creme); }
.philo-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--creme2); border:1px solid var(--creme2); }
.philo-card { background:var(--blanc); padding:40px 24px; border-top:2px solid transparent; transition:border-color 0.3s,transform 0.3s; opacity:0; transform:translateY(20px); }
.philo-card.visible { opacity:1; transform:translateY(0); }
.philo-card:hover { border-color:var(--terre); transform:translateY(-3px); }
.philo-card:nth-child(2){transition-delay:0.08s} .philo-card:nth-child(3){transition-delay:0.16s} .philo-card:nth-child(4){transition-delay:0.24s} .philo-card:nth-child(5){transition-delay:0.32s}
.philo-icon { font-size:24px; margin-bottom:16px; display:block; }
.philo-card h3 { font-family:'Cormorant Garamond',serif; font-size:18px; font-weight:400; color:var(--olive-fonce); margin-bottom:10px; line-height:1.3; }
.philo-card p { font-size:13px; line-height:1.8; color:var(--gris); }

/* ── COMPÉTENCES ── */
.competences { background:var(--creme2); }
.comp-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:2px; background:var(--sable); }
.comp-card { padding:52px 48px; position:relative; overflow:hidden; opacity:0; transform:translateY(20px); transition:opacity 0.6s ease,transform 0.6s ease; }
.comp-card.visible { opacity:1; transform:translateY(0); }
.comp-card:nth-child(2){transition-delay:0.1s} .comp-card:nth-child(3){transition-delay:0.2s} .comp-card:nth-child(4){transition-delay:0.3s}
.comp-card:nth-child(1){background:var(--olive-fonce)} .comp-card:nth-child(2){background:var(--creme)} .comp-card:nth-child(3){background:var(--terre)} .comp-card:nth-child(4){background:var(--brun)}
.comp-num { font-family:'Cormorant Garamond',serif; font-size:88px; font-weight:300; line-height:1; position:absolute; top:8px; right:16px; opacity:0.07; color:white; pointer-events:none; }
.comp-card:nth-child(2) .comp-num { color:var(--brun); }
.comp-tag { font-size:10px; letter-spacing:2.5px; text-transform:uppercase; margin-bottom:16px; display:block; }
.comp-card:nth-child(1) .comp-tag{color:var(--sable)} .comp-card:nth-child(2) .comp-tag{color:var(--terre)} .comp-card:nth-child(3) .comp-tag{color:rgba(242,237,228,0.7)} .comp-card:nth-child(4) .comp-tag{color:var(--sable)}
.comp-card h3 { font-family:'Cormorant Garamond',serif; font-size:24px; font-weight:300; line-height:1.25; margin-bottom:14px; }
.comp-card:nth-child(1) h3,.comp-card:nth-child(3) h3,.comp-card:nth-child(4) h3{color:var(--creme)} .comp-card:nth-child(2) h3{color:var(--olive-fonce)}
.comp-card p { font-size:14px; line-height:1.8; }
.comp-card:nth-child(1) p,.comp-card:nth-child(3) p,.comp-card:nth-child(4) p{color:rgba(242,237,228,0.62)} .comp-card:nth-child(2) p{color:var(--gris)}

/* ── PROGRAMMES ── */
.programmes { background:var(--creme); }
.prog-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.prog-card { background:var(--blanc); padding:44px 32px; border-top:2px solid var(--creme2); transition:border-color 0.3s,transform 0.3s,box-shadow 0.3s; opacity:0; transform:translateY(20px); }
.prog-card.visible { opacity:1; transform:translateY(0); }
.prog-card:hover { border-color:var(--terre); transform:translateY(-4px); box-shadow:0 12px 40px rgba(58,46,30,0.08); }
.prog-card:nth-child(2){transition-delay:0.1s} .prog-card:nth-child(3){transition-delay:0.2s}
.prog-badge { display:inline-block; font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--blanc); background:var(--olive); padding:5px 14px; margin-bottom:20px; }
.prog-card:nth-child(2) .prog-badge{background:var(--terre)} .prog-card:nth-child(3) .prog-badge{background:var(--olive-fonce)}
.prog-card h3 { font-family:'Cormorant Garamond',serif; font-size:21px; font-weight:400; color:var(--brun); margin-bottom:16px; line-height:1.3; }
.prog-volume { font-family:'Cormorant Garamond',serif; font-size:36px; font-weight:300; color:var(--terre); line-height:1; margin-bottom:4px; }
.prog-volume-label { font-size:10px; letter-spacing:1.5px; text-transform:uppercase; color:var(--sable); margin-bottom:24px; }
.prog-card ul { list-style:none; display:flex; flex-direction:column; gap:10px; }
.prog-card ul li { font-size:13.5px; color:var(--gris); line-height:1.6; padding-left:16px; position:relative; }
.prog-card ul li::before { content:'·'; position:absolute; left:0; color:var(--terre); font-size:20px; line-height:1.1; }

/* ── CONTACT ── */
.contact { background:var(--brun); display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; padding:100px 60px; position:relative; overflow:hidden; }
.contact::before { content:''; position:absolute; top:-100px; right:-100px; width:380px; height:380px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cpath d='M100 10 C60 10 20 50 20 100 C20 150 60 190 100 190 C100 190 100 100 100 10Z' fill='none' stroke='%23C4633A' stroke-width='0.8' opacity='0.18'/%3E%3Cpath d='M100 10 C140 10 180 50 180 100 C180 150 140 190 100 190 C100 190 100 100 100 10Z' fill='none' stroke='%23C4633A' stroke-width='0.8' opacity='0.18'/%3E%3C/svg%3E") center/contain no-repeat; pointer-events:none; }
.contact-left h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(36px,4.5vw,60px); font-weight:300; color:var(--creme); line-height:1.05; margin-bottom:20px; }
.contact-left h2 em { font-style:italic; color:var(--terre-clair); }
.contact-left p { font-size:15px; line-height:1.8; color:rgba(242,237,228,0.55); }
.contact-links { display:flex; flex-direction:column; gap:12px; position:relative; z-index:1; }
.contact-link { display:flex; align-items:center; gap:18px; padding:18px 24px; border:1px solid rgba(184,168,130,0.2); text-decoration:none; transition:border-color 0.3s,background 0.3s; }
.contact-link:hover { border-color:var(--terre); background:rgba(196,99,58,0.07); }
.contact-icon { font-size:18px; width:30px; text-align:center; flex-shrink:0; }
.contact-info { display:flex; flex-direction:column; gap:3px; min-width:0; }
.contact-label { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:rgba(184,168,130,0.6); }
.contact-value { font-size:14px; color:var(--creme); font-weight:300; overflow-wrap:break-word; word-break:break-all; }

/* ── FOOTER ── */
footer { background:var(--olive-fonce); padding:28px 60px; display:flex; justify-content:space-between; align-items:center; }
.footer-brand { font-family:'Cormorant Garamond',serif; font-size:16px; font-weight:400; letter-spacing:2px; text-transform:uppercase; color:var(--creme); }
.footer-copy { font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:rgba(184,168,130,0.5); }

/* ── ANIMATIONS ── */
@keyframes fadeUp { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeLeft { from{opacity:0;transform:translateX(24px)} to{opacity:1;transform:translateX(0)} }

/* ── TABLETTE ── */
@media(max-width:1024px){
  nav{padding:18px 32px}
  .hero{grid-template-columns:1fr;min-height:auto}
  .hero-left{padding:72px 40px 56px}
  .hero-right{padding:48px 40px 64px;flex-direction:row;flex-wrap:wrap;gap:36px}
  .philo-grid{grid-template-columns:repeat(3,1fr)}
  .prog-grid{grid-template-columns:1fr 1fr}
  .prog-grid .prog-card:nth-child(3){grid-column:span 2}
  .contact{gap:48px;padding:80px 40px}
  section{padding:80px 40px}
  footer{padding:24px 40px}
}

/* ── MOBILE ── */
@media(max-width:768px){
  nav{padding:16px 24px}
  .nav-links{display:none}
  .nav-burger{display:flex}

  .hero{grid-template-columns:1fr;padding-top:61px}
  .hero-left{padding:52px 24px 44px;min-height:55vh;justify-content:flex-end}
  .hero-name{font-size:clamp(38px,10vw,54px)}
  .hero-role{margin-bottom:28px}
  .hero-tagline{font-size:14px;max-width:100%}
  .hero-right{padding:36px 24px 48px;flex-direction:column;gap:28px}
  .kpi-value{font-size:44px}
  .kpi-label{font-size:10px}

  section{padding:52px 24px}
  .section-title{margin-bottom:32px;font-size:clamp(26px,8vw,38px)}

  .timeline-item{padding:28px 0 28px 28px}
  .tl-period{color:var(--terre-clair);margin-bottom:4px}

  .philo-grid{grid-template-columns:1fr 1fr}
  .philo-card{padding:24px 16px}
  .philo-card h3{font-size:15px}
  .philo-card p{font-size:12px}

  .comp-grid{grid-template-columns:1fr}
  .comp-card{padding:36px 24px}
  .comp-num{font-size:60px}
  .comp-card h3{font-size:22px}

  .prog-grid{grid-template-columns:1fr;gap:12px}
  .prog-grid .prog-card:nth-child(3){grid-column:span 1}
  .prog-card{padding:32px 22px}

  .contact{grid-template-columns:1fr;gap:36px;padding:52px 24px}
  .contact::before{display:none}
  .contact-left h2{font-size:clamp(30px,8vw,44px)}
  .contact-value{font-size:13px}

  footer{padding:22px 24px;flex-direction:column;gap:8px;text-align:center}
}

/* ── TRÈS PETIT MOBILE ── */
@media(max-width:380px){
  .hero-left{padding:40px 18px 32px}
  .hero-right{padding:28px 18px 40px}
  section{padding:44px 18px}
  .philo-grid{grid-template-columns:1fr}
  .contact{padding:44px 18px}
  footer{padding:18px}
}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* ── PROGRAMMES ÉTENDU ── */
.prog-intro { margin-bottom: 48px; max-width: 700px; }
.prog-intro-text { font-size: 16px; line-height: 1.85; color: var(--gris); font-style: italic; }

.prog-label {
  font-size: 10px;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--sable);
  margin-bottom: 20px;
  margin-top: 48px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--creme2);
}

.prog-grid--2 { grid-template-columns: repeat(2, 1fr); margin-bottom: 0; }
.prog-grid--3 { grid-template-columns: repeat(3, 1fr); }

.prog-card--generic { border-top: 2px solid var(--terre); }

.prog-badge--olive { background: var(--olive); }
.prog-badge--terre { background: var(--terre); }
.prog-badge--brun  { background: var(--brun); }

/* Sur mesure */
.prog-custom {
  margin-top: 32px;
  background: var(--olive-fonce);
  padding: 40px 44px;
}

.prog-custom-inner {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 28px;
  align-items: center;
}

.prog-custom-icon {
  font-size: 28px;
  color: var(--terre-clair);
  flex-shrink: 0;
}

.prog-custom h3 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 22px;
  font-weight: 400;
  color: var(--creme);
  margin-bottom: 8px;
  line-height: 1.3;
}

.prog-custom p {
  font-size: 14px;
  line-height: 1.75;
  color: rgba(242,237,228,0.6);
}

.prog-custom-btn {
  display: inline-block;
  font-size: 11px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  font-family: 'Jost', sans-serif;
  font-weight: 400;
  color: var(--creme);
  border: 1px solid rgba(242,237,228,0.3);
  padding: 14px 28px;
  text-decoration: none;
  white-space: nowrap;
  transition: border-color 0.3s, background 0.3s;
  flex-shrink: 0;
}

.prog-custom-btn:hover {
  border-color: var(--terre-clair);
  background: rgba(196,99,58,0.1);
}

/* Responsive programmes */
@media (max-width: 1024px) {
  .prog-grid--2 { grid-template-columns: 1fr 1fr; }
  .prog-grid--3 { grid-template-columns: 1fr 1fr; }
  .prog-grid--3 .prog-card:last-child { grid-column: span 2; }
  .prog-custom-inner { grid-template-columns: auto 1fr; }
  .prog-custom-btn { grid-column: span 2; justify-self: start; }
}

@media (max-width: 768px) {
  .prog-grid--2 { grid-template-columns: 1fr; }
  .prog-grid--3 { grid-template-columns: 1fr; }
  .prog-grid--3 .prog-card:last-child { grid-column: span 1; }
  .prog-custom { padding: 28px 22px; }
  .prog-custom-inner { grid-template-columns: 1fr; gap: 16px; }
  .prog-custom-icon { display: none; }
  .prog-custom-btn { grid-column: span 1; }
  .prog-label { margin-top: 36px; }
}
