/* Oratorio — page « Glossaire » (#glossaire) et mots annotés dans les autres pages (js/glossaire.js) */

/* ---------- en-tête et recherche ---------- */
.glo-search{position:relative;margin-top:4px}
.glo-search svg{position:absolute;left:14px;top:50%;width:19px;height:19px;transform:translateY(-50%);fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round;pointer-events:none}
.glo-search input{box-sizing:border-box;width:100%;font:inherit;font-size:17px;color:var(--ink);background:var(--ground);border:1.5px solid var(--line);border-radius:999px;padding:11px 16px 11px 42px;outline:none;-webkit-appearance:none;appearance:none}
.glo-search input::placeholder{color:var(--muted)}
.glo-search input:focus-visible{border-color:var(--red)}

/* ---------- index alphabétique ---------- */
.glo-index{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.glo-index button{appearance:none;min-width:38px;height:38px;padding:0 6px;border-radius:50%;border:1px solid var(--line);background:var(--paper);color:var(--red);font-family:var(--display);font-weight:700;font-size:17px;line-height:1;cursor:pointer;transition:border-color .15s ease,transform .15s ease}
.glo-index button:hover{border-color:var(--red)}
.glo-index button:active{transform:scale(.94)}
.glo-index button:disabled{color:var(--muted);opacity:.4;cursor:default;border-color:var(--line);transform:none}
.glo-index button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.glo-count{margin:-10px 0 0;text-align:center;font-family:var(--sc);font-weight:700;letter-spacing:.08em;font-size:13.5px;color:var(--muted)}

/* ---------- liste ---------- */
.glo-list{display:flex;flex-direction:column;gap:16px}
.glo-lettre{background:var(--paper);border-radius:var(--r);box-shadow:var(--shadow);padding:18px clamp(18px,5vw,32px) 8px}
.glo-l{margin:0 0 4px;font-family:var(--display);font-weight:700;font-size:30px;line-height:1;color:var(--red)}
.glo-lettre dl{margin:0}
.glo-entree{padding:14px 0;border-top:1px solid var(--line);border-radius:var(--r-sm)}
.glo-entree:first-child{border-top:0}
.glo-entree dt{font-family:var(--display);font-weight:650;font-size:20px;line-height:1.25;color:var(--ink);overflow-wrap:anywhere}
.glo-entree dt.glo-latin{font-style:italic}
.glo-entree dd{margin:6px 0 0;display:flex;flex-direction:column;gap:8px;font-size:17px;line-height:1.55}
.glo-entree dd p{margin:0;max-width:62ch;overflow-wrap:break-word}
.glo-voir{font-size:15px;color:var(--muted)}
.glo-voir span:first-child{font-family:var(--sc);font-weight:700;letter-spacing:.06em;color:var(--gold)}
.glo-voir a{color:var(--red);font-weight:700;text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--red) 35%,transparent)}
.glo-voir a:hover{border-bottom-color:var(--red)}
.glo-voir a:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:3px}
.glo-sep{color:var(--line)}
.glo-vide{text-align:center;color:var(--muted);margin:0}
.glo-entree.glo-vu{background:var(--sun-soft);box-shadow:0 0 0 10px var(--sun-soft)}
@media (prefers-reduced-motion:no-preference){
  .glo-entree{transition:background-color 1.2s ease,box-shadow 1.2s ease}
}

/* ---------- mot annoté dans une page ---------- */
.glo-mot{appearance:none;-webkit-appearance:none;display:inline;margin:0;padding:0;border:0;border-radius:2px;background:none;font:inherit;color:inherit;letter-spacing:inherit;line-height:inherit;text-align:inherit;text-transform:inherit;vertical-align:baseline;cursor:pointer;
  text-decoration:underline dotted color-mix(in srgb,var(--gold) 80%,transparent);text-decoration-thickness:2px;text-underline-offset:3px;-webkit-tap-highlight-color:transparent}
.glo-mot:hover,.glo-mot[aria-expanded="true"]{text-decoration-style:solid;text-decoration-color:var(--gold);background:var(--sun-soft)}
.glo-mot:focus-visible{outline:2px solid var(--gold);outline-offset:1px}

/* ---------- bulle de définition ---------- */
.glo-pop{position:absolute;z-index:60;box-sizing:border-box;max-width:calc(100vw - 24px);padding:14px 16px 12px;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:var(--r-sm);box-shadow:0 18px 40px -16px rgba(30,15,30,.45);font-family:var(--body);text-align:left;outline:none}
.glo-pop::before{content:"";position:absolute;top:-7px;left:calc(var(--glo-fleche,50%) - 7px);width:12px;height:12px;background:var(--paper);border-left:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg)}
.glo-pop.glo-pop-haut::before{top:auto;bottom:-7px;transform:rotate(225deg)}
.glo-pop:focus-visible{box-shadow:0 0 0 2px var(--gold),0 18px 40px -16px rgba(30,15,30,.45)}
.glo-pop-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.glo-pop-t{margin:0;font-family:var(--display);font-weight:700;font-size:18px;line-height:1.25;color:var(--red)}
.glo-pop-t[lang="la"]{font-style:italic}
.glo-pop-x{appearance:none;flex:none;width:30px;height:30px;margin:-4px -6px 0 0;display:grid;place-items:center;border:0;border-radius:50%;background:var(--soft);color:var(--red);font:inherit;font-size:20px;line-height:1;cursor:pointer}
.glo-pop-x:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.glo-pop-d{margin:8px 0 10px;font-size:16px;line-height:1.5;max-height:45vh;overflow-y:auto}
.glo-pop-lien{display:inline-block;font-family:var(--sc);font-weight:700;letter-spacing:.06em;font-size:14.5px;color:var(--red);text-decoration:none;padding:4px 0}
.glo-pop-lien:hover{text-decoration:underline}
.glo-pop-lien:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:3px}
