/* ============================================================ RÉPERTOIRE / SEARCH PAGE (repertoire.php) Root class: .search-main ============================================================ */ .search-main { flex: 1; min-height: 0; overflow: hidden; padding: 0; } /* ---- 6-column index layout ---- */ /* Equal-width columns except Années (years) = narrower */ .repertoire-index { display: grid; grid-template-columns: minmax(3rem, 0.45fr) minmax(16rem, 1.2fr) minmax(9rem, 1fr) minmax(7rem, 1fr) minmax(8rem, 1fr) minmax(min-content, 1fr); grid-template-rows: auto 1fr; gap: var(--space-s); justify-content: space-between; padding: 0; margin: 0 var(--space-s); height: 100%; } /* ---- Accordion: visible only on mobile (≤ 640px) ---- */ /* Desktop: heading-text visible, toggle hidden */ .rep-accordion__heading-text { /* visible — inherits the h2 styling above */ } .rep-accordion__toggle, .rep-accordion__chevron, .rep-accordion__badge { display: none; } .rep-accordion__panel { display: contents; } /* Each section becomes transparent to the grid so h2+ul sit in the 2-row layout */ .repertoire-col { display: contents; } .repertoire-col > h2 { grid-row: 1; font-family: var(--font-display); font-size: var(--step--1); letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-primary); font-weight: 398; line-height: 1.3; margin: 0; padding: var(--space-xs) 0 var(--space-3xs) 0; border-bottom: 1px solid var(--text-primary); align-self: end; hyphens: auto; word-break: normal; overflow-wrap: break-word; } .repertoire-col > ul { grid-row: 2; overflow-y: auto; overflow-x: hidden; min-height: 0; padding-top: var(--space-2xs); padding-bottom: var(--space-l); padding-left: 0; padding-right: 0; } /* Strip list chrome inside repertoire columns */ .repertoire-col ul { list-style: none; margin: 0; padding: 0; } /* ---- Responsive (≤ 1025px): accordion mode, students as results ---- */ @media (max-width: 1025px) { .repertoire-index { display: flex; flex-direction: column; min-height: 0; height: 100%; overflow-y: hidden; gap: 0; margin: 0; } /* Each column becomes a block-level accordion section */ .repertoire-col { display: block; border-bottom: 1px solid var(--text-primary); } .repertoire-col[data-col="students"] { border-bottom: none; } /* Flex order: years/ap/or/fi first, then keywords, students last */ .repertoire-col[data-col="years"] { order: 0; } .repertoire-col[data-col="ap"] { order: 1; } .repertoire-col[data-col="or"] { order: 2; } .repertoire-col[data-col="fi"] { order: 3; } .repertoire-col[data-col="kw"] { order: 4; } .repertoire-col[data-col="students"] { order: 5; } /* Students column: not an accordion — open results list below filters */ .repertoire-col[data-col="students"] { border-bottom: none; border-top: none; margin-top: 0; padding-top: 0; flex: 1; min-height: 0; display: flex; flex-direction: column; } .repertoire-col[data-col="students"] .rep-accordion__toggle { display: none; } .repertoire-col[data-col="students"] .rep-accordion__heading-text { display: none; } .repertoire-col[data-col="students"] .rep-accordion__panel { display: block; max-height: none; overflow-y: auto; flex: 1; } /* Hide the plain h2 — the toggle button replaces it */ .repertoire-col > h2 { display: block; grid-row: unset; align-self: unset; border-bottom: none; padding: 0; margin: 0; font-size: inherit; line-height: inherit; } /* Hide heading text on mobile (toggle button replaces it) */ .rep-accordion__heading-text { display: none; } /* Accordion toggle: full-width touch target */ .rep-accordion__toggle { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 48px; padding: var(--space-xs) var(--space-s); background: none; border: none; font-family: var(--font-display); font-size: var(--step--2); letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-primary); font-weight: 398; text-align: left; cursor: pointer; } .rep-accordion__toggle:active { background: var(--bg-secondary); } /* Badge: active filter count */ .rep-accordion__badge { display: inline-flex; align-items: center; justify-content: center; min-width: 1.4em; height: 1.4em; padding: 0 0.35em; margin-left: var(--space-2xs); background: var(--accent-primary); color: var(--accent-foreground); border-radius: 99px; font-family: var(--font-body); font-size: var(--step--2); font-weight: 500; letter-spacing: 0; text-transform: none; } /* Chevron: CSS triangle */ .rep-accordion__chevron { display: inline-block; width: 10px; height: 10px; flex-shrink: 0; margin-left: var(--space-2xs); border-right: 2px solid var(--text-secondary); border-bottom: 2px solid var(--text-secondary); transform: rotate(45deg); transition: transform 0.2s; } .rep-accordion__toggle[aria-expanded="true"] .rep-accordion__chevron { transform: rotate(-135deg); } /* Panel: collapsed by default */ .rep-accordion__panel { display: block; max-height: 0; overflow: hidden; transition: max-height 0.3s ease; } .rep-accordion__panel.is-open { max-height: 60vh; overflow-y: auto; } /* Reposition the