/* An Bessé Mali — direction artistique 2026 */
:root{
  --vert:#176b3a;
  --vert-f:#0b3f28;
  --vert-p:#edf7f0;
  --or:#c99a2e;
  --t1:#142019;
  --t2:#536057;
  --b:#dfe8e1;
  --gris:#f6f8f5;
  --beige:#f4f0e5;
  --r:16px;
}
body{font-size:16px;line-height:1.75;background:#fbfcfa}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E")}
nav{height:76px;padding:0 clamp(1rem,4vw,4.5rem);background:rgba(255,255,255,.9);backdrop-filter:blur(18px);border-color:rgba(20,32,25,.08);box-shadow:0 6px 30px rgba(11,63,40,.06)}
.n-logo img{height:46px;border-radius:8px}.n-brand{font-size:1.08rem;font-weight:600}.n-links{gap:.35rem}.n-links a{font-size:.78rem;letter-spacing:.01em;padding:.55rem .8rem}.n-cta{border-radius:999px!important;padding:.58rem 1rem!important}
.photo-hero{height:min(880px,calc(100vh - 76px));max-height:none;min-height:650px;border-radius:0 0 32px 32px}
.photo-hero img{animation:hero-cinematic 16s cubic-bezier(.45,0,.35,1) infinite alternate;inset:-4%;width:108%;height:108%;min-width:0;min-height:0;object-fit:cover;object-position:center 38%;transform:scale(1);transform-origin:center 42%;filter:brightness(.68) saturate(1.02);will-change:transform,object-position,filter}
.ph-overlay{background:linear-gradient(90deg,rgba(6,35,22,.92) 0%,rgba(6,35,22,.68) 42%,rgba(6,35,22,.18) 75%),linear-gradient(0deg,rgba(6,35,22,.35),transparent 45%);animation:hero-light 8s ease-in-out infinite alternate}
@keyframes hero-cinematic{
  0%{transform:scale(1) translate3d(0,0,0);object-position:50% 35%;filter:brightness(.66) saturate(1)}
  45%{transform:scale(1.055) translate3d(-1%,1%,0);object-position:48% 44%;filter:brightness(.72) saturate(1.08)}
  100%{transform:scale(1.11) translate3d(1.2%,-1.2%,0);object-position:53% 55%;filter:brightness(.67) saturate(1.04)}
}
@keyframes hero-light{from{opacity:.96}to{opacity:1}}
.ph-text{left:clamp(1.25rem,7vw,7rem);width:min(680px,82%)}
.ph-text h1{font-size:clamp(3rem,6.2vw,5.8rem);line-height:1.02;letter-spacing:-.035em;text-wrap:balance}.ph-sub{font-size:clamp(1rem,1.4vw,1.18rem);max-width:590px}.ph-btn{border-radius:999px;padding:.8rem 1.2rem}
.wrap{max-width:1180px}.s-tag{letter-spacing:.18em}.s-title{font-size:clamp(2rem,4vw,3.45rem);line-height:1.08;letter-spacing:-.025em;text-wrap:balance}.s-sub{font-size:1.03rem;max-width:760px}
section{padding-block:clamp(4.5rem,8vw,8rem)}
.pres-card,.pillier,.vcard,.form-card,.c-card{border-radius:18px;box-shadow:0 14px 40px rgba(11,63,40,.06)}
.pres-card{overflow:hidden}.pres-card img{aspect-ratio:4/4.35;object-fit:cover}.pillier{transition:transform .25s ease,box-shadow .25s ease}.pillier:hover,.vcard:hover{transform:translateY(-5px);box-shadow:0 20px 50px rgba(11,63,40,.11)}
.montage-wrap{border-radius:24px;overflow:hidden;box-shadow:0 25px 65px rgba(6,35,22,.16)}.m-panel{min-height:600px}.terrain-stats{border-radius:18px;overflow:hidden}
.proj-logo img{border-radius:24px;box-shadow:0 25px 65px rgba(11,63,40,.12)}.tag{border-radius:999px}.vision-grid{gap:1rem}.vcard{border:1px solid rgba(23,107,58,.1)}
input,select,textarea{border-radius:10px!important;min-height:48px}.form-submit{border-radius:999px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #e3b94e;outline-offset:3px}
.skip-link{position:fixed;top:10px;left:10px;z-index:10000;background:#fff;color:var(--vert-f);padding:.65rem 1rem;border-radius:8px;transform:translateY(-150%);transition:transform .2s}.skip-link:focus{transform:none}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal.is-visible{opacity:1;transform:none}
@media(max-width:900px){nav{height:66px}.mob-menu{top:66px}.photo-hero{height:720px;min-height:620px;border-radius:0 0 22px 22px}.ph-text{top:auto;bottom:5rem;transform:none}.ph-text h1{font-size:clamp(2.8rem,10vw,4.6rem)}.m-panel{min-height:430px}}
@media(max-width:560px){nav{height:62px}.mob-menu{top:62px}.n-brand{display:none}.photo-hero{height:calc(100svh - 62px);min-height:600px}.ph-text{bottom:3.5rem;width:calc(100% - 2.5rem);left:1.25rem}.ph-text h1{font-size:2.65rem}.ph-sub br{display:none}.ph-btns{display:grid;gap:.7rem}.ph-btn{text-align:center}.ph-scroll{display:none}.terrain-stats{grid-template-columns:1fr}.proj-stats{grid-template-columns:1fr 1fr}.m-panel{min-height:390px}.m-content{padding:1.25rem}.m-h{font-size:1.65rem}}
/* Micro-interactions et apparitions progressives */
.n-logo img{transition:transform .35s ease}.n-logo:hover img{transform:rotate(-2deg) scale(1.04)}
.n-links a{position:relative}.n-links a:not(.n-cta)::after{content:"";position:absolute;left:.8rem;right:.8rem;bottom:.28rem;height:1px;background:var(--vert);transform:scaleX(0);transform-origin:right;transition:transform .25s ease}.n-links a:hover::after,.n-links a[aria-current="true"]::after{transform:scaleX(1);transform-origin:left}
.ph-btn,.btn{transition:transform .25s ease,box-shadow .25s ease,background .25s ease}.ph-btn:hover,.btn:hover{transform:translateY(-2px);box-shadow:0 12px 25px rgba(6,35,22,.18)}
.pres-card{transition:transform .35s ease,box-shadow .35s ease}.pres-card:hover{transform:translateY(-4px);box-shadow:0 24px 55px rgba(11,63,40,.12)}.pres-card img{transition:transform .8s cubic-bezier(.22,1,.36,1)}.pres-card:hover img{transform:scale(1.025)}
.pillier,.vcard,.c-card{transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.pillier:hover,.vcard:hover,.c-card:hover{transform:translateY(-5px);box-shadow:0 20px 50px rgba(11,63,40,.11);border-color:rgba(23,107,58,.25)}
.m-panel img{transition:transform 1.1s cubic-bezier(.22,1,.36,1),filter .6s ease}.m-panel:hover img{transform:scale(1.035);filter:saturate(1.08)}
.ts-item{transition:background .25s ease,transform .25s ease}.ts-item:hover{background:rgba(255,255,255,.07);transform:translateY(-2px)}
.proj-logo img{transition:transform .5s ease,box-shadow .5s ease}.proj-logo:hover img{transform:rotate(1deg) scale(1.015);box-shadow:0 30px 75px rgba(11,63,40,.17)}
.tag{transition:transform .2s ease,background .2s ease}.tag:hover{transform:translateY(-2px);background:var(--vert-p)}
.reveal-item{opacity:0;transform:translateY(15px);transition:opacity .55s ease,transform .55s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0ms)}.is-visible .reveal-item{opacity:1;transform:none}
/* Palette officielle inspirée du logo An Bessé Mali */
:root{--vert:#087634;--vert-f:#004d28;--vert-vif:#35a62f;--vert-p:#edf8ed;--vert-pp:#d9efd8;--jaune:#f0d900;--or:#efa900;--or-c:#f4bd18;--terre:#934900;--terre-p:#f6eee5;--beige:#f7f3e3}
::selection{background:var(--jaune);color:var(--vert-f)}
.n-cta{background:linear-gradient(135deg,var(--vert),var(--vert-vif))!important;box-shadow:0 8px 20px rgba(8,118,52,.18)}
.ph-overlay{background:linear-gradient(90deg,rgba(0,55,29,.94) 0%,rgba(0,77,40,.72) 42%,rgba(8,118,52,.16) 76%),linear-gradient(0deg,rgba(75,35,0,.38),transparent 48%)}
.ph-eyebrow{color:#ffe55a}.ph-eyebrow::before{background:linear-gradient(90deg,var(--jaune),var(--or))}.ph-text h1 em{color:#ffe55a}
.ph-btn-solid,.btn-solid{background:linear-gradient(135deg,var(--vert-vif),var(--vert));border-color:transparent;box-shadow:0 10px 28px rgba(0,77,40,.24)}.ph-btn-ghost{border-color:rgba(255,229,90,.72)}
.s-tag{color:var(--terre)}.s-bar{background:linear-gradient(90deg,var(--vert),var(--vert-vif),var(--jaune),var(--or))}
.pres-card,.pillier,.vcard,.form-card,.c-card{box-shadow:0 14px 40px rgba(0,77,40,.07)}
.tag{border-color:rgba(8,118,52,.22)}.vcard{border-color:rgba(8,118,52,.12)}.vcard:nth-child(2){border-top:3px solid var(--jaune)}.vcard:nth-child(3){border-top:3px solid var(--terre)}
.phase-dot,.v-dot,.m-tag-pip,.m-loc-dot{background:var(--or)}
.form-card{border-top:4px solid transparent;border-image:linear-gradient(90deg,var(--vert),var(--vert-vif),var(--jaune),var(--or),var(--terre)) 1}
footer{background:linear-gradient(145deg,#003f22 0%,#075f2f 72%,#704000 140%)}
.contact-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.form-status:empty{display:none}.form-status{margin:1rem 0;padding:.85rem 1rem;border-radius:10px;font-size:.9rem;font-weight:600}.form-status-success{color:#064e2a;background:#e4f6e8;border:1px solid #90d39d}.form-status-error{color:#7a270e;background:#fff0e9;border:1px solid #efb39f}
.ph-btn-member{color:#17331f;background:linear-gradient(135deg,var(--jaune),var(--or));border-color:transparent;box-shadow:0 12px 28px rgba(239,169,0,.25)}
.ph-btn-member:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(239,169,0,.32)}

/* Photographie officielle — Agri Baguinéda-Camp 2030 */
.sec-projet .proj-logo{position:relative;overflow:hidden;border-radius:24px;background:#eaf3eb;box-shadow:0 25px 65px rgba(11,63,40,.15)}
.sec-projet .proj-logo img{content:url("agri-baguineda-an-besse.png");width:100%;aspect-ratio:4/5;max-height:none;object-fit:cover;object-position:center 40%;padding:0;border:0;border-radius:24px;display:block;filter:saturate(1.03) contrast(1.02);transition:transform .8s cubic-bezier(.22,1,.36,1),filter .5s ease}
.sec-projet .proj-logo::after{content:"Agri Baguinéda-Camp 2030";position:absolute;left:1rem;right:1rem;bottom:1rem;padding:.75rem 1rem;border:1px solid rgba(255,255,255,.3);border-radius:12px;background:rgba(0,55,29,.76);backdrop-filter:blur(10px);color:#fff;font-size:.78rem;font-weight:600;letter-spacing:.04em;transform:translateY(4px);transition:transform .4s ease,background .4s ease}
.sec-projet .proj-logo:hover img{transform:scale(1.025);filter:saturate(1.07) contrast(1.035)}
.sec-projet .proj-logo:hover::after{transform:none;background:rgba(0,55,29,.86)}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal,.reveal-item{opacity:1;transform:none}}

.portal-building{display:flex;align-items:center;gap:.42rem;color:var(--t2);font-size:.78rem;padding:.4rem .55rem;white-space:nowrap;cursor:default}.portal-building small{display:inline-flex;align-items:center;border:1px solid rgba(239,169,0,.38);border-radius:999px;background:#fff8df;color:#704000;padding:.12rem .42rem;font-size:.58rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.portal-building-mobile{justify-content:space-between;padding:.7rem .9rem;font-size:.95rem}

/* Mission de terrain — photographie éditoriale */
.terrain-feature{position:relative;margin:0 auto;max-width:1080px;border-radius:26px;overflow:hidden;background:#fff;box-shadow:0 28px 70px rgba(0,55,29,.16);border:1px solid rgba(8,118,52,.12)}
.terrain-feature-media{aspect-ratio:4/3;overflow:hidden;background:var(--beige)}
.terrain-feature img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform 1.1s cubic-bezier(.22,1,.36,1),filter .7s ease;filter:saturate(1.01) contrast(1.01)}
.terrain-feature:hover img{transform:scale(1.025);filter:saturate(1.07) contrast(1.02)}
.terrain-feature figcaption{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.25rem 1.5rem;border-top:3px solid transparent;border-image:linear-gradient(90deg,var(--vert),var(--vert-vif),var(--jaune),var(--or)) 1}
.terrain-feature figcaption span{color:var(--terre);font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.terrain-feature figcaption strong{color:var(--vert-f);font-family:'Playfair Display',serif;font-size:1.05rem;font-weight:600;text-align:right}
@media(max-width:680px){.terrain-feature{border-radius:18px}.terrain-feature figcaption{align-items:flex-start;flex-direction:column;gap:.35rem;padding:1rem 1.1rem}.terrain-feature figcaption strong{text-align:left;font-size:.98rem}}
@media(prefers-reduced-motion:reduce){.terrain-feature img{transition:none}.terrain-feature:hover img{transform:none}}

.terrain-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;align-items:stretch}.terrain-gallery .terrain-feature{margin:0;max-width:none;height:100%;display:flex;flex-direction:column}.terrain-gallery .terrain-feature-media{aspect-ratio:4/3}.terrain-gallery .terrain-feature figcaption{flex:1}@media(max-width:1050px){.terrain-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.terrain-gallery{grid-template-columns:1fr}}
