/* ===== RESET & VARIABLES ===== */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: hidden; -webkit-text-size-adjust: 100%; }
body { font-family: 'Inter', sans-serif; background: #F2ECCE; color: #275934; overflow-x: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }

:root {
  --vert: #275934;
  --creme: #F2ECCE;
  --noir: #0E0E0E;
  --rose: #F2A2DD;
  --blanc: #FFFFFF;
  --ease: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --px: clamp(20px, 5vw, 80px);
  --py: clamp(64px, 10vw, 140px);
}

/* ===== CURSOR ===== */
@media (hover: hover) and (pointer: fine) {
  body { cursor: none; }
  #cur { width:10px; height:10px; background:var(--vert); border-radius:50%; position:fixed; top:0; left:0; pointer-events:none; z-index:9999; transform:translate(-50%,-50%); transition:width .15s,height .15s; }
  #cur-ring { width:34px; height:34px; border:1.5px solid var(--vert); border-radius:50%; position:fixed; top:0; left:0; pointer-events:none; z-index:9998; transform:translate(-50%,-50%); opacity:.35; }
}

/* ===== NAV ===== */
nav {
  position: fixed; top:0; left:0; right:0; z-index:100;
  padding: 22px var(--px);
  display: flex; justify-content:space-between; align-items:center;
  transition: padding .35s var(--ease), background .35s, border-color .35s;
  border-bottom: 1px solid transparent;
}
nav.scrolled {
  padding: 14px var(--px);
  background: rgba(242,236,206,.95);
  backdrop-filter: blur(14px);
  border-bottom-color: rgba(39,89,52,.1);
}
.nav-logo { font-family:'Bricolage Grotesque',sans-serif; font-size:clamp(17px,2.2vw,22px); font-weight:700; letter-spacing:-.03em; color:var(--vert); }
.nav-logo span { font-weight:400; font-style:italic; }
.nav-links { display:flex; gap:clamp(16px,2.5vw,36px); align-items:center; }
.nav-links a { font-size:13px; font-weight:500; opacity:.6; transition:opacity .2s; }
.nav-links a:hover, .nav-links a.active { opacity:1; }
.nav-cta {
  background:var(--vert) !important; color:var(--creme) !important;
  padding:10px 18px !important; border-radius:2px; opacity:1 !important;
  font-size:11px !important; font-weight:700 !important;
  letter-spacing:.08em !important; text-transform:uppercase;
  transition:background .2s !important; white-space:nowrap;
}
.nav-cta:hover { background:var(--noir) !important; }
@media (max-width:640px) { .nav-hide { display:none; } .nav-links { gap:0; } }

/* ===== PAGE HERO (pages internes) ===== */
.page-hero {
  padding: clamp(120px,16vw,180px) var(--px) clamp(64px,8vw,100px);
  background: var(--vert); color: var(--creme);
  position: relative; overflow: hidden;
}
.page-hero::after {
  content:''; position:absolute; bottom:-80px; right:-80px;
  width:300px; height:300px; border-radius:50%;
  border:1px solid rgba(242,236,206,.07); pointer-events:none;
}
.page-hero-eyebrow { font-size:10px; letter-spacing:.3em; text-transform:uppercase; opacity:.5; margin-bottom:24px; display:flex; align-items:center; gap:12px; }
.page-hero-eyebrow::before { content:''; width:28px; height:1px; background:var(--creme); opacity:.5; }
.page-hero h1 { font-family:'Bricolage Grotesque',sans-serif; font-size:clamp(44px,6vw,88px); font-weight:700; line-height:.92; letter-spacing:-.045em; margin-bottom:24px; }
.page-hero h1 em { font-style:italic; font-weight:400; color:var(--rose); }
.page-hero-sub { font-size:clamp(15px,1.6vw,18px); line-height:1.65; opacity:.75; max-width:560px; }

/* ===== SECTIONS ===== */
.sec { padding:var(--py) var(--px); }
.sec-vert { background:var(--vert); color:var(--creme); }
.sec-noir { background:var(--noir); color:var(--creme); }
.sec-blanc { background:var(--blanc); }

.sec-num { font-size:10px; letter-spacing:.3em; text-transform:uppercase; opacity:.35; margin-bottom:28px; display:flex; align-items:center; gap:12px; }
.sec-num::before { content:''; width:28px; height:1px; background:currentColor; opacity:.5; }

h2 { font-family:'Bricolage Grotesque',sans-serif; font-size:clamp(32px,4.5vw,64px); font-weight:700; line-height:.95; letter-spacing:-.04em; }
h2 em { font-style:italic; font-weight:400; }
h3 { font-family:'Bricolage Grotesque',sans-serif; font-size:clamp(20px,2.2vw,28px); font-weight:700; letter-spacing:-.025em; }

/* ===== TWO-COL ===== */
.two-col { display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,6vw,90px); align-items:start; }
@media (max-width:768px) { .two-col { grid-template-columns:1fr; } }

/* ===== BUTTONS ===== */
.btn { display:inline-flex; align-items:center; gap:10px; padding:clamp(11px,1.4vw,14px) clamp(18px,2.2vw,26px); border-radius:2px; font-size:11px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; transition:background .2s,gap .2s,transform .2s; white-space:nowrap; }
.btn::after { content:'→'; }
.btn-rose { background:var(--rose); color:var(--vert); }
.btn-rose:hover { background:var(--blanc); transform:translateY(-2px); }
.btn-vert { background:var(--vert); color:var(--creme); }
.btn-vert:hover { background:var(--noir); gap:16px; }

/* ===== CARDS ===== */
.card-grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; }
.card-grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:2px; }
@media (max-width:900px) { .card-grid-3 { grid-template-columns:1fr; } }
@media (max-width:768px) { .card-grid-2 { grid-template-columns:1fr; } }

.card { background:var(--blanc); padding:clamp(28px,4vw,44px) clamp(22px,3.5vw,36px); transition:background .3s,transform .3s; position:relative; overflow:hidden; }
.card:hover { background:var(--creme); transform:translateY(-3px); }
.card-vert { background:rgba(242,236,206,.07); }
.card-vert:hover { background:rgba(242,236,206,.12); }

/* ===== INTRO TEXT ===== */
.intro-text { font-size:clamp(15px,1.5vw,18px); line-height:1.7; opacity:.85; }
.intro-text-sm { font-size:clamp(13px,1.3vw,15px); line-height:1.7; opacity:.75; }

/* ===== PROCESS STEPS ===== */
.steps { display:flex; flex-direction:column; }
.step { padding:clamp(20px,2.5vw,28px) 0; border-top:1px solid rgba(39,89,52,.15); display:flex; gap:20px; }
.step:last-child { border-bottom:1px solid rgba(39,89,52,.15); }
.step-num { font-family:'Bricolage Grotesque',sans-serif; font-size:11px; font-weight:700; color:var(--rose); flex-shrink:0; width:20px; padding-top:3px; }
.step-content h4 { font-family:'Bricolage Grotesque',sans-serif; font-size:clamp(16px,1.8vw,20px); font-weight:700; letter-spacing:-.02em; margin-bottom:6px; }
.step-content p { font-size:13px; line-height:1.65; opacity:.75; }

/* ===== TAGS ===== */
.tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:16px; }
.tag { font-size:9.5px; letter-spacing:.06em; padding:4px 10px; border:1px solid rgba(39,89,52,.2); border-radius:2px; opacity:.7; }
.tag-creme { border-color:rgba(242,236,206,.2); }

/* ===== CTA FINAL ===== */
.cta-final { text-align:center; }
.cta-final h2 { margin-bottom:16px; }
.cta-final p { font-size:clamp(14px,1.5vw,16px); line-height:1.65; opacity:.65; max-width:440px; margin:0 auto 32px; }
.cta-btns { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.cta-note { font-size:11px; opacity:.3; margin-top:14px; }

/* ===== BREADCRUMB ===== */
.breadcrumb { display:flex; align-items:center; gap:8px; font-size:11px; letter-spacing:.05em; opacity:.5; margin-bottom:20px; }
.breadcrumb a { opacity:.7; transition:opacity .2s; }
.breadcrumb a:hover { opacity:1; }
.breadcrumb span { opacity:.4; }

/* ===== FOOTER ===== */
footer { background:var(--noir); color:var(--creme); padding:clamp(48px,7vw,80px) var(--px) clamp(24px,4vw,36px); }
.footer-top { display:grid; grid-template-columns:1fr 1fr 1fr; gap:clamp(24px,5vw,56px); margin-bottom:clamp(36px,5vw,56px); padding-bottom:clamp(36px,5vw,56px); border-bottom:1px solid rgba(255,255,255,.08); }
@media (max-width:640px) { .footer-top { grid-template-columns:1fr 1fr; } .footer-brand { grid-column:1/-1; } }
@media (max-width:400px) { .footer-top { grid-template-columns:1fr; } }
.footer-brand-name { font-family:'Bricolage Grotesque',sans-serif; font-size:clamp(26px,3.5vw,38px); font-weight:700; letter-spacing:-.04em; line-height:1; margin-bottom:10px; }
.footer-brand-name span { font-weight:400; font-style:italic; }
.footer-brand-desc { font-size:13px; line-height:1.65; opacity:.4; max-width:220px; }
.footer-col-title { font-size:9px; letter-spacing:.25em; text-transform:uppercase; opacity:.35; margin-bottom:18px; font-weight:600; }
.footer-list { list-style:none; display:flex; flex-direction:column; gap:9px; }
.footer-list a { font-size:13px; opacity:.55; transition:opacity .2s; }
.footer-list a:hover { opacity:1; }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; }
.footer-copy { font-size:11px; opacity:.25; letter-spacing:.04em; }
.footer-socials { display:flex; gap:18px; }
.footer-socials a { font-size:11px; letter-spacing:.1em; text-transform:uppercase; opacity:.35; transition:opacity .2s; }
.footer-socials a:hover { opacity:1; }

/* ===== REVEAL ===== */
.r { opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease),transform .7s var(--ease); }
.r.v { opacity:1; transform:translateY(0); }
.r1 { transition-delay:.1s; } .r2 { transition-delay:.2s; } .r3 { transition-delay:.3s; }

/* ===== SCROLLBAR ===== */
::-webkit-scrollbar { width:3px; }
::-webkit-scrollbar-track { background:var(--creme); }
::-webkit-scrollbar-thumb { background:var(--vert); border-radius:2px; }

/* ===== MARQUEE ===== */
.marquee-wrap { background:var(--vert); padding:17px 0; overflow:hidden; border-top:1px solid rgba(242,236,206,.08); }
.marquee-track { display:flex; white-space:nowrap; animation:marquee 30s linear infinite; }
.marquee-track:hover { animation-play-state:paused; }
@keyframes marquee { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.marquee-item { font-family:'Bricolage Grotesque',sans-serif; font-size:13px; font-weight:500; letter-spacing:.05em; color:var(--creme); opacity:.55; flex-shrink:0; padding:0 44px; display:flex; align-items:center; gap:44px; }
.marquee-item span { color:var(--rose); font-size:16px; }
