/* Famille « La Fiselerie » : aucun style hors de ces six pages. */
.fiselerie-pages { background: var(--fisel-light); color: var(--fisel-text); }
.fiselerie-pages *,
.fiselerie-pages *::before,
.fiselerie-pages *::after { box-sizing: border-box; }
.fiselerie-pages .fp-inner { width: min(1160px, calc(100% - 40px)); margin-inline: auto; }
.fiselerie-pages .fp-section { padding-block: clamp(28px, 4vw, 48px); }
.fiselerie-pages .fp-section + .fp-section { padding-top: 12px; }
.fiselerie-pages p { margin: 0 0 1.1em; line-height: 1.8; font-size: 1.075rem; }
.fiselerie-pages p:last-child { margin-bottom: 0; }
.fiselerie-pages h1,
.fiselerie-pages h2,
.fiselerie-pages h3 { color: var(--fisel-teal-dark); font-weight: 800; overflow-wrap: anywhere; }
.fiselerie-pages h2 { font-size: clamp(1.7rem, 3vw, 2.6rem); line-height: 1.12; margin: 0 0 24px; }
.fiselerie-pages h3 { font-size: 1.35rem; line-height: 1.25; margin: 0 0 14px; }
.fiselerie-pages .fp-hero { position: relative; isolation: isolate; overflow: hidden; padding: 48px 0; background: var(--fisel-teal-dark); color: #fff; }
.fiselerie-pages .fp-hero::after { content: ""; position: absolute; z-index: -1; right: -80px; bottom: -150px; width: 240px; height: 240px; border: 30px solid var(--fisel-orange); border-radius: 50%; box-shadow: 0 0 0 16px var(--fisel-yellow); pointer-events: none; }
.fiselerie-pages .fp-kicker { color: var(--fisel-yellow); font-weight: 800; font-size: .9rem; letter-spacing: .1em; }
.fiselerie-pages .fp-hero h1 { color: #fff; font-size: clamp(2.6rem, 7vw, 5.4rem); line-height: 1.05; margin: 16px 0; }
.fiselerie-pages .fp-hero p { max-width: 48ch; font-size: clamp(1.1rem, 2vw, 1.35rem); }
.fiselerie-pages .fp-editorial { display: grid; grid-template-columns: .9fr 1.1fr; gap: 40px; }
.fiselerie-pages .fp-editorial > *,
.fiselerie-pages .fp-membership > * { min-width: 0; }
.fiselerie-pages .fp-reading { max-width: 820px; margin-bottom: 32px; }
.fiselerie-pages .fp-activities,
.fiselerie-pages .fp-people,
.fiselerie-pages .fp-equipment { list-style: none; padding: 0; margin: 0; display: grid; gap: 18px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fiselerie-pages .fp-activities li,
.fiselerie-pages .fp-people li,
.fiselerie-pages .fp-equipment li { margin: 0; min-width: 0; }
.fiselerie-pages .fp-activities a,
.fiselerie-pages .fp-activity-label { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 100%; min-height: 130px; padding: 26px; border-radius: 12px 28px 12px 12px; background: var(--fisel-teal-dark); color: #fff; font-size: clamp(1.3rem, 2vw, 1.6rem); font-weight: 800; line-height: 1.2; text-decoration: none; overflow-wrap: anywhere; }
.fiselerie-pages .fp-activities li:nth-child(3n+1) a { background: var(--fisel-orange); color: var(--fisel-teal-dark); }
.fiselerie-pages .fp-activities li:nth-child(3n+2) > * { background: var(--fisel-yellow); color: var(--fisel-teal-dark); }
.fiselerie-pages .fp-activities a:hover { text-decoration: underline; text-underline-offset: .2em; }
.fiselerie-pages .fp-activities a span { flex-shrink: 0; }
.fiselerie-pages .fp-cta { padding: clamp(24px, 4vw, 44px); background: var(--fisel-teal-dark); color: #fff; border-radius: 12px 36px 12px 12px; border-top: 5px solid var(--fisel-yellow); }
.fiselerie-pages .fp-cta h2 { color: #fff; }
.fiselerie-pages .fp-cta p { max-width: 78ch; }
.fiselerie-pages .fisel-btn { max-width: 100%; min-height: 48px; line-height: 1.4; text-align: center; white-space: normal; overflow-wrap: anywhere; transition: background-color .2s ease; }
.fiselerie-pages .fisel-btn-primary { background: var(--fisel-orange); color: var(--fisel-teal-dark); }
.fiselerie-pages .fisel-btn-primary:hover { background: var(--fisel-yellow); color: var(--fisel-teal-dark); transform: none; }
.fiselerie-pages a:focus-visible { outline: 3px solid var(--fisel-teal); outline-offset: 5px; }
.fiselerie-pages .fp-cta a:focus-visible { outline-color: var(--fisel-yellow); }
.fiselerie-pages .fp-note { margin-top: 16px; font-size: .9rem; }
.fiselerie-pages .fp-people { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fiselerie-pages .fp-people li { display: flex; align-items: center; padding: 24px; border-top: 4px solid var(--fisel-teal); border-radius: 8px; background: #fff; color: var(--fisel-teal-dark); font-size: 1.2rem; font-weight: 700; line-height: 1.4; overflow-wrap: anywhere; }
.fiselerie-pages .fp-membership { display: grid; grid-template-columns: 1.3fr 1fr; gap: 40px; align-items: center; }
.fiselerie-pages .fp-membership-action { text-align: center; padding: clamp(24px, 4vw, 44px); background: #fff; border: 2px solid var(--fisel-teal); border-radius: 28px 12px 28px 12px; }
.fiselerie-pages .fp-price { font-size: clamp(4rem, 9vw, 7rem); color: var(--fisel-teal-dark); font-weight: 800; line-height: 1; margin-bottom: 24px; }
.fiselerie-pages .fp-price span { display: block; margin-top: 12px; font-size: 1.25rem; }
.fiselerie-pages .fp-equipment li { display: flex; flex-direction: column; padding: 26px; background: #fff; border-radius: 16px; border-top: 4px solid var(--fisel-teal); }
.fiselerie-pages .fp-equipment-price { margin: auto 0 0; padding-top: 14px; color: var(--fisel-teal-dark); font-size: 1.6rem; font-weight: 800; }
/* Frise : ordre du document conservé, même lorsque les étapes alternent. */
.fiselerie-pages .fp-timeline { position: relative; list-style: none; padding: 0; margin: 0; }
.fiselerie-pages .fp-timeline::before { content: ""; position: absolute; top: 0; bottom: 0; left: calc(50% - 2px); width: 4px; background: var(--fisel-teal); }
.fiselerie-pages .fp-timeline li { position: relative; width: 50%; margin: 0; padding: 0 32px 32px 0; }
.fiselerie-pages .fp-timeline li:nth-child(even) { margin-left: 50%; padding: 0 0 32px 32px; }
.fiselerie-pages .fp-timeline li::before { content: ""; position: absolute; top: 30px; right: -9px; width: 18px; height: 18px; border: 4px solid var(--fisel-light); border-radius: 50%; background: var(--fisel-orange); }
.fiselerie-pages .fp-timeline li:nth-child(even)::before { left: -9px; right: auto; }
.fiselerie-pages .fp-timeline article { padding: clamp(22px, 3vw, 32px); background: #fff; border-radius: 16px; }
.fiselerie-pages .fp-year { font-size: clamp(2rem, 4.5vw, 3.8rem); font-weight: 800; line-height: 1.1; color: var(--fisel-teal); margin-bottom: 18px; overflow-wrap: anywhere; }
.fiselerie-pages .fp-timeline h2 { font-size: clamp(1.4rem, 2.4vw, 1.9rem); }
/* Les logos réutilisent partenaires.css, déjà chargé par le thème. */
.fiselerie-pages.fiselerie-partenaires .fisel-partenaires .container { width: min(1160px, calc(100% - 40px)); padding: 0; }
.fiselerie-pages.fiselerie-partenaires .partenaire { text-align: center; overflow-wrap: anywhere; }
@media (max-width: 1024px) {
    .fiselerie-pages .fp-people { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .fiselerie-pages .fp-activities,
    .fiselerie-pages .fp-equipment { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fiselerie-pages .fp-editorial,
    .fiselerie-pages .fp-membership { gap: 24px; }
}
@media (max-width: 768px) {
    .fiselerie-pages .fp-hero { padding: 34px 0; }
    .fiselerie-pages .fp-editorial,
    .fiselerie-pages .fp-membership { grid-template-columns: minmax(0, 1fr); }
    .fiselerie-pages .fp-people { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fiselerie-pages .fp-timeline::before { left: 7px; }
    .fiselerie-pages .fp-timeline li,
    .fiselerie-pages .fp-timeline li:nth-child(even) { width: 100%; margin-left: 0; padding: 0 0 24px 32px; }
    .fiselerie-pages .fp-timeline li::before,
    .fiselerie-pages .fp-timeline li:nth-child(even)::before { left: 0; right: auto; }
}
@media (max-width: 480px) {
    .fiselerie-pages .fp-activities,
    .fiselerie-pages .fp-people,
    .fiselerie-pages .fp-equipment { grid-template-columns: minmax(0, 1fr); }
    .fiselerie-pages .fisel-btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .fiselerie-pages .fisel-btn { transition: none; }
}

/* Faire ensemble : panneau inchangé, contenu centré et texte aligné à gauche. */
.fiselerie-association [aria-labelledby="association-ensemble"] .fp-cta > .fp-inner {
    width: 100%;
    max-width: 1050px;
    margin-inline: auto;
    text-align: left;
}
.fiselerie-association [aria-labelledby="association-ensemble"] .fp-cta > .fp-inner > p {
    max-width: none;
}

/* Archives de L'histoire : ratios naturels, à l'intérieur des jalons. */
.fiselerie-histoire .fp-archive {
    min-width: 0;
    margin: 24px 0 0;
}
.fiselerie-histoire .fp-archive img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    margin-inline: auto;
    border-radius: 4px;
}
.fiselerie-histoire .fp-archive--vertical img { max-height: 560px; }
.fiselerie-histoire .fp-archive figcaption {
    margin-top: 8px;
    color: var(--fisel-teal-dark);
    font-size: .85rem;
    line-height: 1.5;
}
.fiselerie-histoire .fp-archive-gallery,
.fiselerie-histoire .fp-archive-duo {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: start;
    gap: 16px;
    margin-top: 24px;
}
.fiselerie-histoire .fp-archive-gallery .fp-archive,
.fiselerie-histoire .fp-archive-duo .fp-archive { margin: 0; }
.fiselerie-histoire .fp-archive-gallery { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); }
.fiselerie-histoire .fp-archive-gallery .fp-archive:nth-child(even) { padding-top: 22px; }
.fiselerie-histoire .fp-archive-gallery img { max-height: 230px; box-shadow: 0 3px 8px rgba(18, 59, 67, .1); }
@media (max-width: 768px) {
    .fiselerie-histoire .fp-archive-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fiselerie-histoire .fp-archive-gallery .fp-archive:nth-child(even) { padding-top: 0; }
}
@media (max-width: 480px) {
    .fiselerie-histoire .fp-archive-gallery,
    .fiselerie-histoire .fp-archive-duo { grid-template-columns: minmax(0, 1fr); }
    .fiselerie-histoire .fp-archive-gallery img { max-height: none; }
}
