/* ════════════════════════════════════════
   PLANTAE — fiche_complete.css
   À charger APRÈS plant.css et plant_planche.css. Thème : planche d'herbier.
   Version sombre pour les plantes toxiques (body.is-toxic).
   Les fiches complètes utilisent les classes .sec / h2 propres à cette feuille.
════════════════════════════════════════ */
body {
  --fc-card: var(--card, #fff9ee); --fc-line: var(--border, rgba(74,51,32,.2)); --fc-radius: 2px;
  --fc-fd: 'Playfair Display', Georgia, serif; --fc-fb: 'EB Garamond', Georgia, serif; --fc-fl: 'Cormorant SC', 'EB Garamond', serif; --fc-ls: .14em; --fc-tt: none;
  --fc-ink: var(--ink, #1e1208); --fc-ink-2: var(--ink-light, #4a3320); --fc-muted: var(--ink-muted, #7a5c38); --fc-label: var(--gold, #8f6820);
  --fc-accent: var(--accent, #3d6b4a); --fc-accent-bg: rgba(61,107,74,.1); --fc-on-accent: #fbf6e8;
  --fc-cell: rgba(74,51,32,.07); --fc-cell-radius: 2px; --fc-chip: var(--parch, #f4ecd5); --fc-chip-radius: 2px;
  --fc-map-bg: #fbf6e8; --fc-land: var(--parch, #f4ecd5); --fc-land-line: var(--ink-muted, #7a5c38); --fc-pin: #9a2a1e;
  --fc-map-1: #3d6b4a; --fc-map-2: #9a2a1e; --fc-map-3: #8f6820;
  --fc-ok: #3d6b4a; --fc-danger: #9a2a1e; --fc-danger-bg: #f6e2dc;
  --fc-legend-bg: var(--card, #fff9ee); --fc-step-radius: 50%;
  --fc-cal-0: #3d6b4a; --fc-cal-1: #b8862c; --fc-cal-2: #4a2a4a; --fc-cal-3: #9a2a1e; --fc-cal-4: #6a8a3a;
}
body.is-toxic {
  --fc-card: #1a0d0d; --fc-line: rgba(180,60,60,.25); --fc-ink: #f0d8d8; --fc-ink-2: #d4b8b8; --fc-muted: #8a6060; --fc-label: #c07a5a;
  --fc-accent: #e74c3c; --fc-accent-bg: #3d1010; --fc-on-accent: #fff; --fc-cell: rgba(180,60,60,.1); --fc-chip: #140a0a;
  --fc-map-bg: #140a0a; --fc-land: #22100f; --fc-land-line: #8a6060; --fc-map-1: #c07a5a; --fc-danger-bg: #3a1010; --fc-legend-bg: #1a0d0d;
}
body .fc-card { box-shadow: 3px 3px 0 var(--pl-shadow, #e6d6aa); }
body.is-toxic .fc-card { box-shadow: 3px 3px 0 #200f0f; }
/* titres de section des nouvelles parties : mêmes que .section-heading */
.plant-section.fc-sec { margin-bottom: 0; }

/* ════════════════════════════════════════
   Sections « fiche complète » (fiche_complete.php)
   Toutes les classes commencent par fc- : aucune collision
   avec style.css ni avec la feuille de la fiche.
════════════════════════════════════════ */
.fc-sec { scroll-margin-top: 1.5rem; }
.fc-card {
  position: relative; background: var(--fc-card); border: 1px solid var(--fc-line);
  border-radius: var(--fc-radius); padding: 1.1rem 1.2rem; min-width: 0;
}
.fc-sec h3 { font-family: var(--fc-fd); font-weight: 400; font-size: 1.08rem; color: var(--fc-ink); margin: 0 0 .35rem; }
.fc-sec h4, .fc-mapbox .fc-map-ttl {
  font-family: var(--fc-fl); font-weight: 600; font-size: .8rem; letter-spacing: var(--fc-ls);
  text-transform: var(--fc-tt); color: var(--fc-label); margin: 0 0 .6rem;
}
.fc-sec p { margin: 0; }
.fc-note, .fc-map-src { font-size: .84rem; font-style: italic; color: var(--fc-muted); margin-top: .6rem !important; }
.fc-dim { font-family: var(--fc-fl); font-size: .8rem; letter-spacing: .06em; color: var(--fc-accent); margin: .1rem 0 .4rem !important; }
.fc-readmore {
  display: table; margin-top: .55rem; font-family: var(--fc-fl); font-weight: 600; font-size: .8rem; letter-spacing: .06em;
  color: var(--fc-accent); text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 1px;
}
.fc-readmore:hover { opacity: .75; }
.fc-srcline { display: block; margin-top: .5rem; font-size: .78rem; font-style: italic; color: var(--fc-muted); }
.fc-srcline a { color: inherit; }

.fc-sources { margin: 1rem 0 0 !important; padding-top: .8rem; border-top: 1px dashed var(--fc-line); font-size: .8rem; line-height: 1.6; color: var(--fc-muted); }
.fc-sources b { font-family: var(--fc-fl); font-weight: 600; font-size: .74rem; letter-spacing: .1em; text-transform: var(--fc-tt); color: var(--fc-label); margin-right: .4rem; }
.fc-sources a { color: inherit; }
.fc-sa { font-style: italic; }

/* En-tête : noms dans d'autres langues */
.fc-langues { display: flex; flex-wrap: wrap; gap: .3rem 1rem; font-size: .9rem; color: var(--fc-muted); margin: -.4rem 0 1.1rem; }
.fc-langues b { font-family: var(--fc-fl); font-weight: 600; font-size: .74rem; letter-spacing: .1em; text-transform: var(--fc-tt); margin-right: .35rem; }

/* Description : faits et organes */
.fc-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); margin: 1.3rem 0 .4rem; border: 1px solid var(--fc-line); border-radius: var(--fc-radius); overflow: hidden; background: var(--fc-card); }
.fc-facts div { padding: .75rem 1rem; border-right: 1px solid var(--fc-line); border-bottom: 1px solid var(--fc-line); min-width: 0; }
.fc-facts dt { font-family: var(--fc-fl); font-size: .74rem; letter-spacing: .1em; text-transform: var(--fc-tt); color: var(--fc-label); }
.fc-facts dd { margin: 0; font-family: var(--fc-fd); font-size: 1.04rem; color: var(--fc-ink); overflow-wrap: anywhere; }
.fc-organs { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 1rem; margin-top: 1.1rem; }
.fc-organ h4 { color: var(--fc-label); }
.fc-organ p { font-size: .93rem; }

/* Calendrier */
.fc-year { overflow-x: auto; }
.fc-year-grid { display: grid; grid-template-columns: 150px repeat(12, minmax(30px, 1fr)); gap: 3px; min-width: 560px; }
.fc-mh { font-family: var(--fc-fl); font-size: .74rem; color: var(--fc-muted); text-align: center; }
.fc-rl { font-family: var(--fc-fl); font-size: .84rem; color: var(--fc-ink); display: flex; align-items: center; padding-right: .4rem; }
.fc-year-grid i { height: 22px; border-radius: var(--fc-cell-radius); background: var(--fc-cell); }
.fc-year-grid i.on { background: var(--c); opacity: .45; }
.fc-year-grid i.pk { background: var(--c); }

/* Répartition */
.fc-range { display: grid; gap: 1.4rem; }
.fc-mapbox { padding: 3.2rem 1.2rem 1rem; background: var(--fc-map-bg); }
.fc-mapbox .fc-map-ttl { position: absolute; top: 1rem; left: 1.2rem; max-width: calc(100% - 190px); }
.fc-mapsw { position: absolute; top: .7rem; right: .8rem; display: flex; gap: 2px; padding: 2px; border: 1px solid var(--fc-line); border-radius: 999px; background: var(--fc-card); z-index: 2; }
.fc-mapsw button { font: 600 .74rem var(--fc-fl); letter-spacing: .05em; color: var(--fc-muted); background: none; border: none; border-radius: 999px; padding: .22rem .75rem; cursor: pointer; }
.fc-mapsw button[aria-pressed="true"] { background: var(--fc-accent); color: var(--fc-on-accent); }
.fc-mapbox svg { display: block; width: 100%; height: auto; }
.fc-map-fr { max-width: 540px; margin: 0 auto; }
.fc-mapbox .fc-map-w { display: none; }
.fc-mapbox.is-world .fc-map-fr, .fc-mapbox.is-world .fc-k-fr { display: none; }
.fc-mapbox.is-world .fc-map-w { display: block; }
.fc-land { fill: var(--fc-land); stroke: var(--fc-land-line); stroke-width: 1; }
.fc-grid { stroke: var(--fc-line); stroke-width: .5; }
.fc-equator { stroke: var(--fc-muted); stroke-opacity: .5; stroke-dasharray: 2 3; stroke-width: .6; }
.fc-map-txt, .fc-map-ink { fill: var(--fc-muted); color: var(--fc-muted); font-family: var(--fc-fb); font-style: italic; }
.fc-map-ink rect:first-child, .fc-map-ink path { fill: var(--fc-muted); }
.fc-pin { fill: var(--fc-pin); stroke: var(--fc-map-bg); stroke-width: 1.5; }
.fc-lieu { cursor: help; }
.fc-mapkey { display: flex; flex-wrap: wrap; gap: .4rem 1rem; font-size: .82rem; color: var(--fc-muted); margin-top: .6rem; }
.fc-mapkey span { display: inline-flex; align-items: center; gap: .35rem; }
.fc-mapkey i { width: 12px; height: 12px; border-radius: 2px; display: inline-block; }
.fc-land-line { fill: none; stroke: var(--fc-land-line); stroke-width: 1; pointer-events: none; }
.fc-map-w .fc-land, .fc-map-w .fc-land-line { stroke-width: .35; }
.fc-mapkey .fc-k-hach { background: repeating-linear-gradient(45deg, var(--k) 0 2px, transparent 2px 5px) !important; box-shadow: inset 0 0 0 1px var(--k); }
.fc-survol rect { fill: transparent; }
.fc-survol rect:hover { fill: var(--fc-map-1); fill-opacity: .15; }
.fc-mapkey .fc-k-int i { background: linear-gradient(90deg, color-mix(in srgb, var(--fc-map-1) 38%, transparent) 50%, color-mix(in srgb, var(--fc-map-1) 70%, transparent) 50%); width: 26px; }
.fc-mapbox .fc-k-w { display: none; }
.fc-mapbox.is-world .fc-k-w { display: inline; }
.fc-map-src a { color: inherit; }
.fc-mapkey .fc-pin-key { background: var(--fc-pin); }
.fc-range-info { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; align-items: start; }
.fc-chips { display: flex; flex-wrap: wrap; gap: .35rem; }
.fc-chips span { font-size: .88rem; padding: .15rem .7rem; border: 1px solid var(--fc-line); border-radius: var(--fc-chip-radius); background: var(--fc-chip); color: var(--fc-ink-2); }
.fc-chips span.intro { border-style: dashed; color: var(--fc-muted); }
.fc-gauges { display: grid; gap: .65rem; font-size: .86rem; }
.fc-gauge { display: grid; grid-template-columns: 84px 1fr; gap: .2rem .6rem; align-items: center; }
.fc-gauge b { font-family: var(--fc-fl); font-weight: 600; font-size: .78rem; color: var(--fc-muted); }
.fc-gauge .bar { position: relative; height: 10px; border-radius: 999px; background: var(--fc-cell); }
.fc-gauge .bar i { position: absolute; top: 0; bottom: 0; border-radius: 999px; background: var(--fc-accent); }
.fc-gauge .ends { grid-column: 2; display: flex; justify-content: space-between; font-size: .74rem; color: var(--fc-muted); }

/* Identification */
.fc-idg { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 1rem; }
.fc-spec p { font-size: .93rem; line-height: 1.5; }
.fc-confuse { margin-top: 1.2rem; }
.fc-cgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .8rem; }
.fc-cg { padding: .9rem; border: 1px solid var(--fc-line); border-radius: var(--fc-radius); background: var(--fc-chip); text-align: center; min-width: 0; }
.fc-cg b { display: block; font-family: var(--fc-fd); font-weight: 400; font-size: 1rem; color: var(--fc-ink); }
.fc-cg b a { color: inherit; }
.fc-cg i { display: block; font-size: .86rem; color: var(--fc-muted); }
.fc-cg p { font-size: .88rem; margin-top: .3rem !important; }
.fc-cg .v { display: inline-block; margin-top: .45rem; font-family: var(--fc-fl); font-weight: 600; font-size: .74rem; letter-spacing: .06em; padding: .08rem .6rem; border-radius: 999px; border: 1px solid var(--fc-line); }
.fc-cg.me { outline: 2px solid var(--fc-accent); outline-offset: 3px; display: flex; flex-direction: column; justify-content: center; align-items: center; }
.fc-cg.ok .v { color: var(--fc-ok); border-color: var(--fc-ok); }
.fc-cg.prot .v { color: var(--fc-accent); border-color: var(--fc-accent); }
.fc-cg.bad { border-color: var(--fc-danger); background: var(--fc-danger-bg); }
.fc-cg.bad .v { color: #fff; background: var(--fc-danger); border-color: var(--fc-danger); }

/* Place dans la nature */
.fc-food { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .9rem 1.2rem; }
.fc-side { display: flex; flex-direction: column; gap: .9rem; min-width: 160px; flex: 1; }
.fc-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .3rem; }
.fc-col h4 { text-align: center; }
.fc-col li { font-size: .92rem; text-align: center; padding: .22rem .5rem; border-radius: var(--fc-chip-radius); background: var(--fc-chip); border: 1px solid var(--fc-line); }
.fc-col li a { color: inherit; }
.fc-me { text-align: center; padding: 1rem 1.2rem; border: 2px solid var(--fc-accent); border-radius: var(--fc-radius); background: var(--fc-accent-bg); max-width: 220px; }
.fc-me b { display: block; font-family: var(--fc-fd); font-weight: 400; font-style: italic; font-size: 1.05rem; color: var(--fc-ink); }
.fc-me span { font-size: .84rem; font-style: italic; color: var(--fc-muted); }
.fc-arr { color: var(--fc-accent); font-size: 1.4rem; }

/* Savoir-faire */
.fc-howto { display: grid; gap: 1rem; }
.fc-how { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 1rem; }
.fc-n { width: 40px; height: 40px; border-radius: var(--fc-step-radius); background: var(--fc-accent); color: var(--fc-on-accent); display: flex; align-items: center; justify-content: center; font-family: var(--fc-fd); font-size: 1.1rem; }
.fc-how p { font-size: .97rem; }
.fc-rule { display: inline-block; margin-top: .5rem; font-size: .86rem; font-style: italic; color: var(--fc-label); border-left: 2px solid var(--fc-accent); padding-left: .6rem; }

/* Histoire */
.fc-timeline { position: relative; padding-left: 2rem; }
.fc-timeline::before { content: ""; position: absolute; left: .55rem; top: .4rem; bottom: .4rem; width: 2px; background: var(--fc-accent); opacity: .35; }
.fc-tl { position: relative; padding-bottom: 1.4rem; }
.fc-tl::before { content: ""; position: absolute; left: -1.85rem; top: .35rem; width: 14px; height: 14px; border-radius: 50%; background: var(--fc-card); border: 2px solid var(--fc-accent); }
.fc-when { font-family: var(--fc-fl); font-weight: 600; font-size: .82rem; letter-spacing: .1em; color: var(--fc-label); }
.fc-who { font-size: .9rem; color: var(--fc-ink-2); margin-bottom: .2rem !important; }
.fc-tl p { font-size: .97rem; max-width: 66ch; }
.fc-where { font-size: .85rem; font-style: italic; color: var(--fc-muted); }
.fc-feast { display: flex; gap: 1rem; align-items: center; margin-top: .6rem; }
.fc-date { flex-shrink: 0; width: 64px; text-align: center; border: 1px solid var(--fc-label); border-radius: 8px; overflow: hidden; }
.fc-date span { display: block; font-family: var(--fc-fl); font-weight: 600; font-size: .68rem; letter-spacing: .1em; background: var(--fc-label); color: var(--fc-on-accent); padding: .1rem 0; }
.fc-date b { display: block; font-family: var(--fc-fd); font-weight: 400; font-size: 1.5rem; color: var(--fc-ink); line-height: 1.3; }
.fc-feast p { font-size: .96rem; }
.fc-feast-t { font-family: var(--fc-fd); font-weight: 400; color: var(--fc-ink); }

/* Légendes */
.fc-legends { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.2rem; }
.fc-legend { position: relative; padding: 1.3rem 1.3rem 1.1rem; border: 1px solid var(--fc-line); border-radius: var(--fc-radius); background: var(--fc-legend-bg); }
.fc-cult { font-family: var(--fc-fl); font-weight: 600; font-size: .76rem; letter-spacing: .12em; text-transform: var(--fc-tt); color: var(--fc-label); }
.fc-legend h3 { margin: .15rem 0 .45rem; }
.fc-legend p { font-size: .97rem; line-height: 1.72; }
.fc-sym { display: inline-block; margin-top: .45rem; font-size: .86rem; font-style: italic; color: var(--fc-muted); }

/* Conservation */
.fc-cons { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.2rem; }
.fc-iucn { display: grid; grid-template-columns: repeat(8, 1fr); gap: 4px; }
.fc-iucn span { text-align: center; font-family: var(--fc-fl); font-weight: 600; font-size: .78rem; padding: .45rem 0; border-radius: 6px; border: 1px solid var(--fc-line); color: var(--fc-muted); background: var(--fc-chip); }
.fc-iucn span.on { background: var(--fc-ink-2); color: var(--fc-card); border-color: var(--fc-ink-2); }
.fc-iucn span.fc-u-lc { background: #3d7a4a; border-color: #3d7a4a; color: #fff; }
.fc-iucn span.fc-u-nt { background: #9aa63a; border-color: #9aa63a; color: #fff; }
.fc-iucn span.fc-u-vu { background: #d7a32a; border-color: #d7a32a; color: #1e1208; }
.fc-iucn span.fc-u-en { background: #d9682a; border-color: #d9682a; color: #fff; }
.fc-iucn span.fc-u-cr { background: #b82020; border-color: #b82020; color: #fff; }
.fc-iucn span.fc-u-ew, .fc-iucn span.fc-u-ex { background: #1e1a1a; border-color: #1e1a1a; color: #fff; }
.fc-status { margin: .8rem 0 0; }
.fc-status div { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px dotted var(--fc-line); padding-bottom: .35rem; font-size: .93rem; }
.fc-status dt { font-family: var(--fc-fl); font-weight: 600; font-size: .8rem; color: var(--fc-muted); }
.fc-status dd { margin: 0; text-align: right; color: var(--fc-ink); }
.fc-trend { font-family: var(--fc-fd); font-size: 1.1rem; margin-bottom: .8rem !important; }
.fc-trend.down { color: var(--fc-danger); }
.fc-trend.up { color: var(--fc-ok); }
.fc-trend.flat { color: var(--fc-ink-2); }
.fc-threats { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; font-size: .93rem; }
.fc-threats li { display: flex; gap: .6rem; }
.fc-threats li::before { content: ""; flex-shrink: 0; width: 7px; height: 7px; margin-top: .55rem; border-radius: 50%; background: var(--fc-accent); }

/* Le saviez-vous */
.fc-dyk { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 1rem; }
.fc-dyk .fc-card { border-top: 3px solid var(--fc-accent); }
.fc-dyk b { display: block; font-family: var(--fc-fd); font-weight: 400; font-size: 1.25rem; line-height: 1.2; color: var(--fc-accent); margin-bottom: .3rem; }
.fc-dyk p { font-size: .93rem; }

/* Espèces proches */
.fc-near { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: .8rem; }
.fc-near a { display: block; padding: .8rem 1rem; border-radius: var(--fc-radius); background: var(--fc-card); border: 1px solid var(--fc-line); text-decoration: none; transition: transform .18s, border-color .2s; }
.fc-near a:hover { transform: translateX(3px); border-color: var(--fc-accent); }
.fc-near b { display: block; font-family: var(--fc-fd); font-weight: 400; color: var(--fc-ink); }
.fc-near i { display: block; font-size: .86rem; color: var(--fc-muted); }
.fc-near small { display: block; font-family: var(--fc-fl); font-weight: 600; font-size: .74rem; letter-spacing: .05em; color: var(--fc-label); margin-top: .15rem; }

@media (max-width: 700px) {
  .fc-mapbox { padding-top: 4.4rem; }
  .fc-mapbox .fc-map-ttl { max-width: none; right: 1rem; }
  .fc-food { flex-direction: column; }
  .fc-arr { transform: rotate(90deg); }
  .fc-me { max-width: none; width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .fc-near a { transition: none; } }

/* Carte d'identité (colonne de droite) */
.fc-id { margin: 0; }
.fc-id > div { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .55rem 0; border-bottom: 1px dotted var(--fc-line); }
.fc-id dt { font-family: var(--fc-fl); font-size: .76rem; letter-spacing: .12em; font-variant: small-caps; text-transform: var(--fc-tt); color: var(--fc-muted); white-space: nowrap; }
.fc-id dd { margin: 0; text-align: right; font-size: 1rem; color: var(--fc-ink); }
.side-id .fc-sources, .slab .fc-sources { font-size: .72rem; }