/* Oratorio — onglet Saints (js/saints.js). Couleurs : uniquement les tokens de style.css. */

/* ---------- introduction et recherche ---------- */
.saints-search{display:flex;flex-direction:column;gap:6px;margin-top:4px}
.saints-search-label{font-family:var(--sc);font-weight:700;letter-spacing:.1em;font-size:13.5px;color:var(--muted)}
.saints-search input{font:inherit;font-size:16px;color:var(--ink);background:var(--ground);border:1px solid var(--line);border-radius:999px;padding:8px 16px;width:100%;min-width:0}
.saints-search input::placeholder{color:var(--muted)}
.saints-search input:focus-visible{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold)}

/* ---------- sections par degré ---------- */
.saints-rank{display:flex;flex-direction:column;gap:12px}
.saints-rank-title{font-family:var(--display);font-weight:400;font-size:24px;line-height:1.2;margin:6px 0 0;display:flex;align-items:baseline;gap:10px}
.saints-rank-title .count{font-family:var(--sc);font-weight:700;font-size:14px;letter-spacing:.08em;color:var(--gold)}
.saints-rank-note{margin:0;font-size:15px;line-height:1.5;color:var(--muted);font-style:italic}

/* Grille des figures avec portrait */
.saints-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:12px}
.saint-card{appearance:none;font:inherit;color:var(--ink);text-align:left;cursor:pointer;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm);padding:0;overflow:hidden;display:flex;flex-direction:column;min-width:0}
.saint-card:hover{border-color:var(--red)}
.saint-card:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.saint-card-img{display:block;aspect-ratio:3/4;background:var(--soft);overflow:hidden}
.saint-card-img img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 20%}
.saint-card-text{display:flex;flex-direction:column;gap:2px;padding:10px 12px 12px}
.saint-card-name{font-family:var(--display);font-size:18px;line-height:1.2;overflow-wrap:anywhere}
.saint-card-dates{font-size:14px;color:var(--red);font-variant-numeric:lining-nums}
.saint-card-desc{font-size:13.5px;line-height:1.4;color:var(--muted)}
.saint-card-feast{margin-top:4px;font-family:var(--sc);font-weight:700;letter-spacing:.06em;font-size:13px;color:var(--gold)}

/* Liste compacte des figures sans portrait */
.saints-list{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden}
.saint-row{appearance:none;font:inherit;color:var(--ink);text-align:left;cursor:pointer;background:transparent;border:0;border-top:1px solid var(--line);padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.saint-row:first-child{border-top:0}
.saint-row:hover{background:var(--soft)}
.saint-row:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.saint-row-text{display:flex;flex-direction:column;min-width:0}
.saint-row-name{font-family:var(--display);font-size:18px;line-height:1.25}
.saint-row-dates{font-size:14px;color:var(--muted);line-height:1.4}
.saint-row-arrow{color:var(--red);font-size:24px;line-height:1;flex:none}

.saints-none{margin:0;text-align:center;color:var(--muted);font-style:italic}
.saints-foot{margin:0;text-align:center;font-size:13px;color:var(--muted)}
.saints-foot a{color:var(--red)}

/* ---------- fiche plein écran ---------- */
html.saint-sheet-open,html.saint-sheet-open body{overflow:hidden}
.saint-sheet{position:fixed;inset:0;z-index:30;background:var(--ground);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:0 16px calc(40px + env(safe-area-inset-bottom,0px))}
.saint-sheet:focus{outline:none}
.saint-sheet-bar{position:sticky;top:0;z-index:1;max-width:880px;margin:0 auto;display:flex;justify-content:flex-end;padding:calc(10px + env(safe-area-inset-top,0px)) 0 6px;pointer-events:none}
.saint-sheet-close{pointer-events:auto;appearance:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--paper);color:var(--ink);font-size:18px;cursor:pointer;display:grid;place-items:center;box-shadow:0 6px 16px -12px rgba(40,20,40,.5)}
.saint-sheet-close:hover{border-color:var(--red);color:var(--red)}
.saint-sheet-close:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.saint-sheet-body{max-width:880px;margin:0 auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm);padding:24px clamp(18px,5vw,36px) 28px;display:flex;flex-direction:column;gap:14px}
.saint-portrait{margin:0 auto;max-width:280px;width:100%}
.saint-portrait img{display:block;width:100%;height:auto;border-radius:var(--r-sm);border:1px solid var(--line)}
.saint-head{display:flex;flex-direction:column;gap:4px;text-align:center}
.saint-head h2{font-family:var(--display);font-weight:400;font-size:clamp(26px,6vw,32px);line-height:1.15;margin:0;text-wrap:balance}
.saint-dates{margin:0;color:var(--muted);font-size:15.5px;line-height:1.45}
.saint-feast{margin:0;font-family:var(--sc);font-weight:700;letter-spacing:.08em;color:var(--red);font-size:14.5px}
.saint-bio{display:flex;flex-direction:column;gap:12px;font-size:17.5px;line-height:1.6}
.saint-bio p{margin:0}
.saint-nobio{margin:0;color:var(--muted);font-style:italic;font-size:15.5px}
.saint-prayer{background:var(--soft);border-left:3px solid var(--red);border-radius:var(--r-sm);padding:12px 16px}
.saint-prayer h3{margin:0 0 6px;font-family:var(--sc);font-weight:700;font-weight:400;letter-spacing:.08em;font-size:14px;color:var(--red)}
.saint-prayer p{margin:0;font-family:var(--display);font-size:18.5px;line-height:1.5}
.saint-credit{margin:0;font-size:14px;line-height:1.5;color:var(--muted)}
.saint-h{margin:6px 0 0;font-family:var(--sc);font-weight:700;font-weight:400;letter-spacing:.12em;font-size:14px;color:var(--gold)}
.saint-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.saint-links a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--ground);color:var(--ink);text-decoration:none;font-size:15.5px;line-height:1.35}
.saint-links a:hover{border-color:var(--red)}
.saint-links a:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.saint-links a > span:first-child{min-width:0;overflow-wrap:anywhere}
.saint-links small{display:block;font-size:13px;color:var(--muted)}
.saint-links a > span:last-child{color:var(--red);flex:none}
