/* ==========================================================================
   TADAGBÉ — Les opportunités (opportunites.html)
   Appels à financement, concours, challenges, hackathons, incubation, pitch.
   Prolonge style.css / pages.css / inscription.css.
   ========================================================================== */

/* ---------- Barre de vue ---------------------------------------------------- */
.opp-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;
  flex-wrap:wrap;margin-bottom:16px}
.opp-vues{display:inline-flex;background:var(--gris);border:1px solid var(--bord);
  border-radius:24px;padding:3px}
.opp-vue{display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border-radius:20px;
  font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:var(--texte-2);transition:background .3s,color .3s}
.opp-vue.is-on{background:var(--vert-fonce);color:#fff}
.opp-vue:not(.is-on):hover{color:var(--vert)}
.opp-compte{font-size:12px;color:var(--texte-3)}

/* ---------- Filtres -------------------------------------------------------- */
.opp-filtres{display:grid;gap:14px;padding:16px 18px;background:var(--gris);
  border-radius:var(--r-lg);margin-bottom:24px}
.opp-fgroupe{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}
.opp-flabel{flex:none;width:66px;padding-top:8px;font-size:10px;font-weight:800;
  letter-spacing:.11em;text-transform:uppercase;color:var(--texte-3)}
.opp-chips{display:flex;flex-wrap:wrap;gap:7px;flex:1;min-width:0}

/* ---------- Cartes --------------------------------------------------------- */
.opp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
/* `display:grid` gagne contre l'attribut hidden : il faut le dire explicitement,
   sinon les deux vues s'affichent en même temps. */
.opp-grid[hidden],.opp-cal[hidden]{display:none}
.opp{display:flex;flex-direction:column;background:#fff;border:1px solid var(--bord);
  border-radius:var(--r-lg);border-top:3px solid var(--c);padding:20px 22px;
  transition:transform .45s var(--ease),box-shadow .45s}
.opp:hover{transform:translateY(-5px);box-shadow:var(--ombre-fort)}
.opp.is-clos{opacity:.62}
.opp.is-clos:hover{transform:none;box-shadow:var(--ombre)}

.opp__hd{display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-bottom:12px}
.opp__type{display:inline-flex;align-items:center;gap:6px;font-size:9.5px;font-weight:800;
  letter-spacing:.09em;text-transform:uppercase;color:var(--c);
  background:color-mix(in srgb,var(--c) 12%,transparent);border-radius:20px;padding:5px 10px}
.opp__titre{font-size:16.5px;line-height:1.25}
.opp__org{display:block;font-size:11.8px;color:var(--texte-3);margin-top:5px}
.opp__res{font-size:12.8px;line-height:1.65;color:var(--texte-2);margin-top:11px}

.opp__meta{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:7px}
.opp__meta li{display:flex;gap:8px;align-items:flex-start;font-size:12px;
  color:var(--texte-2);line-height:1.45}
.opp__meta svg{flex:none;margin-top:2px;color:var(--texte-3)}

.opp__pied{display:flex;gap:9px;flex-wrap:wrap;margin-top:auto;padding-top:16px}
.opp__pied .btn{flex:1;justify-content:center;white-space:nowrap}
.opp__off{flex:1;text-align:center;font-size:11.5px;font-weight:700;color:#A32B25;
  background:#FBEDEB;border-radius:var(--r);padding:10px 12px}

/* Jours restants : l'information qui décide d'agir ou de remettre. */
.opp-jours{flex:none;font-size:10px;font-weight:800;letter-spacing:.06em;
  color:var(--texte-2);background:var(--gris-2);border-radius:20px;padding:4px 9px}
.opp-jours--urgent{color:#A32B25;background:#F7E3E1}
.opp-jours--off{color:var(--texte-3);background:var(--gris-2)}

/* ---------- Vue calendrier ------------------------------------------------- */
.opp-cal{display:grid;gap:26px}
.oppc__nom{font-family:'Archivo',Arial,sans-serif;font-size:15px;text-transform:uppercase;
  letter-spacing:.06em;color:var(--vert-fonce);padding-bottom:9px;
  border-bottom:2px solid var(--or)}
.oppc__liste{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:10px}
.oppc__i{display:flex;align-items:center;gap:16px;background:#fff;
  border:1px solid var(--bord);border-left:3px solid var(--c);border-radius:var(--r);
  padding:13px 16px;transition:transform .35s var(--ease),box-shadow .35s}
.oppc__i:hover{transform:translateX(4px);box-shadow:var(--ombre)}
.oppc__i.is-clos{opacity:.6}
.oppc__date{flex:none;width:52px;text-align:center;background:var(--noir);color:#fff;
  border-radius:9px;padding:8px 0}
.oppc__date b{display:block;font-family:'Archivo',Arial,sans-serif;font-size:17px}
.oppc__date span{display:block;font-size:9px;letter-spacing:.08em;text-transform:uppercase;
  margin-top:2px}
.oppc__txt{flex:1;min-width:0}
.oppc__txt b{display:block;font-family:'Archivo',Arial,sans-serif;font-size:13.5px;
  line-height:1.3}
.oppc__txt span{display:block;font-size:11.6px;color:var(--texte-2);margin-top:3px}
.oppc__act{flex:none;display:flex;align-items:center;gap:11px}

/* ---------- Fiche détaillée ------------------------------------------------ */
.oppd{width:min(760px,94vw);max-height:90vh;border:0;padding:0;border-radius:var(--r-lg);
  overflow:auto;background:#fff;box-shadow:0 40px 90px -30px rgba(0,0,0,.6)}
.oppd::backdrop{background:rgba(6,6,6,.72);backdrop-filter:blur(4px)}
.oppd[open]{animation:calEntre .38s var(--ease) both}
.oppd__x{position:absolute;top:16px;right:18px;z-index:2}

.oppd__hd{position:relative;padding:30px 30px 24px;color:#fff;
  background:linear-gradient(150deg,var(--c),color-mix(in srgb,var(--c) 45%,#0A0A0A))}
.oppd__hd .opp__type{color:#fff;background:rgba(255,255,255,.18)}
.oppd__hd h2{font-size:clamp(19px,2.4vw,26px);line-height:1.15;color:#fff;margin-top:12px}
.oppd__org{display:block;font-size:12.5px;color:rgba(255,255,255,.75);margin-top:7px}

.oppd__corps{padding:24px 30px 30px}
.oppd__res{font-family:'Archivo',Arial,sans-serif;font-size:15px;font-weight:600;
  line-height:1.55;color:var(--texte)}

.oppd__bloc{margin-top:20px;padding-top:18px;border-top:1px solid var(--gris-2)}
.oppd__bloc h4{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:800;
  letter-spacing:.11em;text-transform:uppercase;color:var(--vert)}
.oppd__bloc h4 svg{color:var(--or)}
.oppd__bloc p{font-size:13px;line-height:1.72;color:var(--texte-2);margin-top:9px}
.oppd__bloc--vide p{color:var(--texte-3);font-style:italic}

.oppd__pied{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:24px;
  padding-top:20px;border-top:1px solid var(--bord)}
.oppd__note{font-size:11.8px;color:var(--texte-3);line-height:1.5;flex:1;min-width:180px}

/* ---------- Écrans étroits ------------------------------------------------- */
@media(max-width:1080px){
  .opp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){
  .opp-grid{grid-template-columns:minmax(0,1fr)}
  .opp-flabel{width:100%;padding-top:0}
  .oppc__i{flex-wrap:wrap}
  .oppc__act{width:100%;justify-content:space-between}
  .oppd__hd,.oppd__corps{padding-left:20px;padding-right:20px}
}
@media (prefers-reduced-motion:reduce){.oppd[open]{animation:none}}
