/* Genesis Lettres & Philo v2 : labos génériques, hubs, filtres, courants, grammaire */
/* ---------- labos génériques (lp-labs2.js) ---------- */
.g-intro{font-size:16px;line-height:1.5;color:#424245;margin:0 0 14px;max-width:46em}
.g-sort,.g-quiz,.g-order,.g-tr,.g-match,.g-slide,.g-scan,.g-chrono,.g-guess{display:grid;gap:14px;min-width:0}
.g-card{min-width:0}
.g-fb{margin-top:10px}.g-fb:empty{display:none}
.g-fb.lp-msg{margin-top:10px}
.g-opts{display:flex;flex-wrap:wrap;gap:8px}
.g-opts .btn{text-align:left;line-height:1.3;border-radius:16px;padding:11px 16px}
.btn.right{background:#2e9d5b!important;color:#fff!important}
.btn.wrong{opacity:.45;text-decoration:line-through}
.g-q{font:700 19px/1.3 var(--display);letter-spacing:-.02em;margin:2px 0 4px;text-wrap:balance}
.g-bins{display:grid;gap:12px}
@media (max-width:700px){.g-bins{grid-template-columns:minmax(0,1fr)!important}}
.st-bin ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.st-bin li{font-size:13.5px;line-height:1.35;background:#f5f5f7;border-radius:10px;padding:7px 10px}
.st-bin li.x{background:#fff4e5}
.st-n{font:700 12px var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--violet)}
.st-card .g-fb{text-align:left}
.g-unit{display:block;color:var(--ink3);margin-top:2px}
.g-bar{margin:10px 0}
.g-pool{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.g-chip{border:0;background:#fff;border-radius:14px;padding:10px 14px;font:500 15px/1.35 var(--body);text-align:left;color:var(--ink);cursor:pointer;box-shadow:0 0 0 1px rgba(0,0,0,.07);transition:transform .15s,box-shadow .15s;max-width:100%}
.g-chip:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px rgba(0,0,0,.09)}
.g-chip.used{display:none}
.g-chip.bad{animation:shake .35s;box-shadow:0 0 0 2px #e0452f}
.g-chip.hint{box-shadow:0 0 0 3px var(--violet);animation:gpulse 1.2s ease infinite}
@keyframes gpulse{50%{box-shadow:0 0 0 6px rgba(142,68,216,.25)}}
.g-list{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:8px;counter-reset:gl}
.g-li{counter-increment:gl;background:#fff;border-radius:16px;padding:12px 16px 12px 52px;position:relative;animation:exfade .4s ease}
.g-li::before{content:counter(gl);position:absolute;left:14px;top:12px;width:26px;height:26px;border-radius:50%;background:var(--violet);color:#fff;font:700 13px/26px var(--body);text-align:center}
.g-li b{font-size:15.5px}.g-li p{margin:2px 0 0;font-size:14.5px;line-height:1.45;color:#424245}
.g-tabs{display:flex;flex-wrap:wrap;gap:8px}
.g-var{font-size:19px!important;line-height:1.6;background:#faf8ff;border-radius:14px;padding:14px 18px!important;margin:6px 0!important;min-height:3.4em}
.g-find{display:grid;gap:10px;margin-top:6px}
.g-find[hidden]{display:none}
.g-hint{margin:0}
.g-match .hg-col button{font:500 15.5px/1.35 var(--body)}
.g-track{position:relative;padding:14px 0}
.g-track .zone{position:absolute;top:50%;height:12px;margin-top:-6px;border-radius:99px;background:rgba(31,157,85,.35);pointer-events:none}
.g-track input[type=range]{position:relative;width:100%;margin:0;background:transparent;accent-color:var(--violet)}
.g-ends{display:flex;justify-content:space-between;gap:12px;font-size:14px;font-weight:600;color:var(--ink3)}
.g-ends span{max-width:48%}.g-ends span:last-child{text-align:right}
.g-vers{font:italic 600 clamp(19px,2.4vw,26px)/1.35 Georgia,"Times New Roman",serif;color:#2b2b2e;margin:4px 0 8px;text-wrap:balance}
.g-syl{display:flex;flex-wrap:wrap;align-items:center;gap:6px 0;margin:6px 0 4px}
.g-sy{padding:7px 9px;background:#f5f5f7;border-radius:9px;font:600 17px var(--body);transition:background .3s}
.g-sy.a{background:#ede1fa}.g-sy.b{background:#e1edfb}
.g-cut{width:16px;height:34px;border:0;background:transparent;position:relative;cursor:pointer;padding:0}
.g-cut::after{content:"";position:absolute;left:7px;top:4px;bottom:4px;width:2px;border-radius:2px;background:#d2d2d7;transition:.15s}
.g-cut:hover::after{background:var(--violet);left:6px;width:4px}
.g-cut.bad{animation:shake .35s}.g-cut.bad::after{background:#e0452f}
.g-cut.right::after{background:var(--violet);width:5px;left:5.5px}
.g-field{position:relative;height:210px;border-radius:22px;background:#f5f5f7;overflow:hidden;border:2px dashed #d2d2d7;transition:background .4s,border-color .4s}
.g-field.on{background:linear-gradient(135deg,#f6f1ff,#eaf3fe);border-color:#c9b3ee}
.g-star{position:absolute;width:46px;height:46px;border:0;border-radius:50%;background:#fff;color:#e8a317;font:700 26px/1 var(--body);box-shadow:0 6px 18px rgba(0,0,0,.14);cursor:pointer;animation:gstar .25s ease}
@keyframes gstar{from{transform:scale(.3);opacity:0}}
.g-cmp{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;text-align:center}
.g-cmp div{background:#f5f5f7;border-radius:16px;padding:14px 8px;display:grid;gap:2px}
.g-cmp small{font-size:12.5px;color:var(--ink3)}.g-cmp b{font:800 26px var(--display);letter-spacing:-.03em;color:var(--violet)}
.g-end{display:grid;gap:12px;margin-top:14px;min-width:0}
.g-end .lp-quote{margin-top:4px}
.lr-lien{color:var(--link);font-weight:600;white-space:nowrap}
.obs{display:block;font-size:14px;color:var(--ink3);margin-top:4px;font-weight:400}

/* ---------- navigation v2 ---------- */
.ca-nav a.nv-hub{font-weight:600}
.ca-nav a.nv-hub[aria-current]{color:var(--violet)}
.ca-brand{white-space:nowrap}

/* ---------- hubs : portes, filtres, cartes denses ---------- */
.lp-doors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:10px}
@media (max-width:760px){.lp-doors{grid-template-columns:minmax(0,1fr)}}
.lp-door{display:grid;gap:8px;align-content:end;min-height:260px;padding:clamp(22px,3vw,34px);border-radius:30px;text-decoration:none;color:var(--ink);position:relative;overflow:hidden;background:var(--tile);isolation:isolate;transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s}
.lp-door:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(0,0,0,.12)}
.lp-door img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;object-position:70% 40%}
.lp-door::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(255,252,246,.95) 0%,rgba(255,252,246,.78) 42%,rgba(255,252,246,0) 78%)}
.lp-door .k{font:600 13px var(--body);color:var(--gold);letter-spacing:.02em}
.lp-door h3{font-size:clamp(28px,3.4vw,40px);line-height:1.05;letter-spacing:-.04em}
.lp-door p{font-size:16px;color:#3a3a3c;line-height:1.45;margin:0;max-width:30em}
.lp-door .go{color:var(--link);font-weight:600;font-size:15px}
.lp-door .n{font:800 13px var(--body);color:#fff;background:var(--violet);border-radius:99px;padding:3px 10px;justify-self:start}
.lp-filters{display:grid;gap:10px;margin:0 0 22px}
.lp-fl{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.lp-fl>span{font:600 12px var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);margin-right:4px}
.lp-fl button{border:0;border-radius:99px;background:var(--tile);padding:8px 14px;font:500 14.5px var(--body);color:var(--ink);cursor:pointer;transition:background .2s}
.lp-fl button:hover{background:#e8e8ed}
.lp-fl button[aria-pressed=true]{background:var(--ink);color:#fff}
.lp-fl button.bac[aria-pressed=true]{background:var(--violet)}
.lp-cards.dense{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
@media (max-width:1060px){.lp-cards.dense{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.lp-cards.dense{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}
@media (max-width:420px){.lp-cards.dense{grid-template-columns:minmax(0,1fr)}}
.lp-cards.dense .lp-c{border-radius:22px}
.lp-cards.dense .lp-c .tx{padding:14px 16px 18px;gap:4px}
.lp-cards.dense .lp-c h3{font-size:clamp(19px,1.7vw,23px)}
.lp-cards.dense .lp-c p{font-size:14px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.lp-cards.dense .lp-c .lab-n{font-size:13px}
.lp-c[hidden]{display:none}
.lp-c .im.ph{display:grid;place-items:center;background:linear-gradient(135deg,#f1e8fb,#e9e1d3)}
.lp-c .im.ph b{font:800 clamp(38px,5vw,60px) var(--display);color:var(--violet);opacity:.45;letter-spacing:-.05em}
.lp-c .im{position:relative}
.lp-badge{position:absolute;left:10px;top:10px;background:var(--violet);color:#fff;font:700 11px var(--body);padding:4px 10px;border-radius:99px;letter-spacing:.02em;z-index:1}
.lp-niv{position:absolute;left:10px;bottom:10px;background:rgba(255,255,255,.92);color:var(--ink);font:700 11px var(--body);padding:4px 9px;border-radius:99px;z-index:1}
.lp-empty{padding:30px;text-align:center;color:var(--ink3);background:var(--tile);border-radius:22px}
/* frise chronologique des cartes (rail) */
.lp-rail{display:flex;gap:0;overflow-x:auto;padding:30px 4px 18px;margin-top:20px;scroll-snap-type:x proximity;position:relative}
.lp-rail::before{content:"";position:absolute;left:0;right:0;top:52px;height:2px;background:#d2d2d7}
.lp-rail a{flex:none;width:118px;display:grid;justify-items:center;gap:4px;text-decoration:none;color:var(--ink);scroll-snap-align:center;position:relative;padding-top:2px}
.lp-rail a i{width:14px;height:14px;border-radius:50%;background:var(--violet);box-shadow:0 0 0 4px #fff;margin:10px 0 2px;position:relative}
.lp-rail a.l i{background:var(--gold)}
.lp-rail a small{font-size:12px;color:var(--ink3);font-variant-numeric:tabular-nums;order:-1}
.lp-rail a b{font-size:13.5px;text-align:center;line-height:1.2;letter-spacing:-.01em}
.lp-rail a:hover b{color:var(--violet)}

/* ---------- courants : frise + labo ---------- */
.cr-wrap{display:grid;gap:18px;grid-template-columns:minmax(0,1fr)}
.cr-wrap>*{min-width:0}
.cr-axis{position:relative;background:var(--tile);border-radius:26px;padding:18px 16px 14px;overflow-x:auto}
.cr-grid{position:relative}
.cr-ticks{position:relative;height:22px;font-size:11.5px;color:var(--ink3);font-variant-numeric:tabular-nums;margin-bottom:8px;border-bottom:1px solid #dcdce1}
.cr-ticks span{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap}
.cr-ln{position:absolute;top:0;bottom:0;width:1px;background:#e3e3e8}
.cr-lanes{position:relative}
.cr-bar.b{background:linear-gradient(90deg,#fdf1de,#eaf3fe)}
.cr-bar.b[aria-pressed=true]{background:var(--violet)}
.cr-bar.dim{opacity:.28}
.cr-leg{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px}
.cr-leg button{border:0;border-radius:99px;background:var(--tile);padding:7px 14px;font:600 14px var(--body);color:var(--ink);cursor:pointer}
.cr-leg button[aria-pressed=true]{background:var(--ink);color:#fff}
.cr-leg i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:-1px}
.cr-d2{display:flex;flex-wrap:wrap;gap:8px}
.cr-bar.seen:not([aria-pressed=true])::after{content:"✓";margin-left:6px;color:var(--green)}
.cr-lane{position:relative;height:36px}
.cr-bar{position:absolute;height:30px;top:3px;border:0;border-radius:99px;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.1);font:600 13px var(--body);color:var(--ink);padding:0 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:transform .15s,box-shadow .2s,background .2s;text-align:left}
.cr-bar:hover{transform:translateY(-1px);box-shadow:0 0 0 2px color-mix(in srgb,var(--violet) 45%,transparent)}
.cr-bar[aria-pressed=true]{background:var(--violet);color:#fff;box-shadow:none}
.cr-bar.p{background:#eaf3fe}.cr-bar.l{background:#fdf1de}.cr-bar.p[aria-pressed=true],.cr-bar.l[aria-pressed=true]{background:var(--violet)}
.cr-detail{background:#fff;border-radius:24px;padding:clamp(20px,3vw,30px);display:grid;gap:14px;box-shadow:0 0 0 1px rgba(0,0,0,.06)}
.cr-detail h3{font-size:clamp(26px,3vw,36px);letter-spacing:-.04em}
.cr-d{font:700 13px var(--body);color:var(--gold)}
.cr-detail .grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:760px){.cr-detail .grid2{grid-template-columns:minmax(0,1fr)}}
.cr-tags{display:flex;flex-wrap:wrap;gap:8px}
.cr-tags a,.cr-tags span{background:var(--tile);border-radius:99px;padding:6px 13px;font-size:14px;color:var(--ink);text-decoration:none}
.cr-tags a{color:var(--link);font-weight:600}
.cr-tags a:hover{background:#e8e8ed}
.cr-mk{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.cr-mk li{padding-left:18px;position:relative;font-size:15px;line-height:1.45}
.cr-mk li::before{content:"";position:absolute;left:0;top:.6em;width:8px;height:8px;border-radius:50%;background:var(--violet)}
.cr-lab{display:grid;gap:14px}
.cr-txt{font:500 clamp(18px,2vw,21px)/1.65 Georgia,"Times New Roman",serif;background:#faf8ff;border-left:4px solid var(--violet);border-radius:0 16px 16px 0;padding:16px 20px;margin:0}
.cr-txt mark{background:#fff3c4;border-radius:5px;padding:0 3px;cursor:pointer;color:inherit}
.cr-txt mark.on{background:#ffd23f}
.cr-txt small{display:block;font:13px var(--body);font-style:normal;color:var(--ink3);margin-top:8px}
.cr-clue{background:#fff;border-radius:16px;padding:12px 16px;font-size:15px;line-height:1.45;min-height:3em}
.cr-opts{display:flex;flex-wrap:wrap;gap:8px}
/* courants et autres arts */
.cr-tabs{display:inline-flex;gap:2px;background:var(--tile);border-radius:99px;padding:4px;justify-self:start;max-width:100%}
.cr-tabs button{border:0;background:transparent;border-radius:99px;padding:9px 18px;font:600 15px var(--body);color:var(--ink3);cursor:pointer;white-space:nowrap}
.cr-tabs button[aria-selected=true]{background:#fff;color:var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.12)}
.cr-pane{display:grid;gap:14px}
.cr-pane[hidden]{display:none}
.cr-pills{display:flex;flex-wrap:wrap;gap:8px}
.cr-pills button,.cr-lnl button{border:0;border-radius:99px;background:var(--tile);padding:8px 16px;font:600 14px var(--body);color:var(--ink);cursor:pointer;text-align:left}
.cr-pills button[aria-pressed=true],.cr-lnl button[aria-pressed=true]{background:var(--blue);color:#fff}
.cr-lien{margin:0;font-size:16px;line-height:1.55;color:#424245}
.cr-oes{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:12px}
.cr-oe{margin:0;background:var(--tile);border-radius:22px;overflow:hidden;display:grid;align-content:start}
.cr-oe .im{display:grid;place-items:center;background:#ececf0;height:240px;padding:10px;overflow:hidden}
.cr-oe img{max-width:100%;max-height:220px;width:auto;height:auto;object-fit:contain;border-radius:6px}
.cr-oe figcaption{padding:14px 16px 16px;display:grid;gap:4px}
.cr-oe.noimg figcaption{padding:18px 18px 20px}
.cr-oe figcaption b{font-size:17px;letter-spacing:-.02em;line-height:1.25}
.cr-oe .m{font-size:13.5px;color:var(--ink3)}
.cr-oe p{margin:6px 0 0;font-size:15px;line-height:1.45}
.cr-oe small{font-size:12px;color:var(--ink3);margin-top:6px;line-height:1.35}
.cr-ec{justify-self:start;font-weight:600;font-size:14px;margin-top:6px}
.cr-xs{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.cr-x{background:#fff;border-radius:18px;padding:16px 18px;box-shadow:0 0 0 1px rgba(0,0,0,.08);display:grid;gap:6px;align-content:start}
.cr-x b{font-size:15px;color:var(--violet)}
.cr-x p{margin:0;font-size:15px;line-height:1.5}
.cr-x small{font-size:12.5px;color:var(--ink3)}
.cr-view{background:#fff;border-radius:24px;padding:clamp(18px,3vw,28px);box-shadow:0 0 0 1px rgba(0,0,0,.06);display:grid;gap:12px}
.cr-ch-t{margin:0;font-size:clamp(20px,2.4vw,26px);letter-spacing:-.03em}
.cr-chain{list-style:none;margin:0;padding:0;display:grid}
.cr-st{position:relative;padding:0 0 18px 30px;display:grid;gap:6px}
.cr-st::before{content:"";position:absolute;left:6px;top:22px;bottom:-4px;width:2px;background:#e3e3e8}
.cr-st:last-child{padding-bottom:4px}
.cr-st:last-child::before{display:none}
.cr-st::after{content:"";position:absolute;left:0;top:5px;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid #c7c7cc}
.cr-st.lit::after{border-color:var(--violet)}
.cr-st p{margin:0;font-size:16px;line-height:1.5}
.cr-pill{justify-self:start;background:var(--tile);border-radius:99px;padding:3px 12px;font:700 12.5px var(--body);color:var(--ink3)}
.cr-st.lit .cr-pill{background:#f1e8fb;color:var(--violet)}
.cr-ch-x{margin:0;font-size:16px;color:#424245;line-height:1.55}
.cr-src{font-size:12.5px;color:var(--ink3)}
.cr-lnl{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.cr-lnl button{background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.1)}
.cr-lnl button:hover{box-shadow:0 0 0 2px color-mix(in srgb,var(--violet) 45%,transparent)}
.cr-lnl button[aria-pressed=true]{background:var(--blue);color:#fff;box-shadow:none}
.cr-go{border:0;background:var(--tile);color:var(--link);border-radius:99px;padding:6px 13px;font:600 14px var(--body);cursor:pointer}
.cr-go:hover{background:#e8e8ed}
.cr-ch-c{align-items:center}
.cr-fig{margin:0;background:var(--tile);border-radius:22px;display:grid;overflow:hidden}
.cr-fig img{justify-self:center;width:auto;height:auto;max-width:100%;max-height:min(52vh,440px);object-fit:contain;padding:12px}
.cr-figc{display:grid;gap:3px}
.cr-figc:not(:empty){padding:12px 16px 16px;background:#fff}
.cr-figc small{font-size:12px;color:var(--ink3)}
.cr-rep{display:block;margin-top:6px}
.cr-cred{margin:18px 0}
.cr-cred summary{cursor:pointer;font-weight:600}
.cr-cred ul{margin:10px 0 0;padding-left:18px;font-size:13.5px;color:var(--ink3);display:grid;gap:3px}
@media (max-width:560px){.cr-tabs button{padding:9px 12px;font-size:14px}.cr-oe .im{height:210px}.cr-oe img{max-height:190px}}

/* ---------- grammaire du bac ---------- */
.gr-bar{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.gr-bar a{background:var(--tile);border-radius:99px;padding:7px 14px;font-size:14px;color:var(--ink);text-decoration:none}
.gr-bar a[aria-current]{background:var(--ink);color:#fff}
.gr-sent{font:500 clamp(20px,2.4vw,26px)/1.7 Georgia,"Times New Roman",serif;background:#fff;border-radius:22px;padding:20px 24px;margin:0;box-shadow:0 0 0 1px rgba(0,0,0,.06)}
.gr-sent small{display:block;font:13px var(--body);color:var(--ink3);margin-top:6px}
.gr-seg{display:inline;border:0;background:transparent;font:inherit;color:inherit;padding:2px 3px;margin:0 -1px;border-radius:8px;cursor:pointer;border-bottom:2px dotted #c7c7cc;transition:background .2s}
.gr-seg:hover{background:#f1e8fb}
.gr-seg.sel{background:#e3effd;border-bottom-color:var(--blue)}
.gr-seg.gone{opacity:.2;text-decoration:line-through}
.gr-seg.moved{background:#fff3c4}
.gr-seg.found{background:#e3f6ea;border-bottom-color:var(--green)}
.gr-tests{display:flex;flex-wrap:wrap;gap:8px}
.gr-tests .btn{font-size:14.5px}
.gr-obs{background:#fff;border-radius:16px;padding:12px 16px;min-height:3em;font-size:15px;line-height:1.5;color:#424245}
.gr-obs.ok{background:#eaf7ef;color:#14532d}
.gr-obs.ko{background:#fff4e5;color:#7a4300}
.gr-steps{counter-reset:gs;display:grid;gap:8px;list-style:none;margin:0;padding:0}
.gr-steps li{counter-increment:gs;position:relative;padding:12px 14px 12px 50px;background:#fff;border-radius:16px;font-size:15px;line-height:1.45}
.gr-steps li::before{content:counter(gs);position:absolute;left:14px;top:11px;width:26px;height:26px;border-radius:50%;background:var(--blue);color:#fff;font:700 13px/26px var(--body);text-align:center}
.gr-steps li b{display:block;font-size:15.5px}
.gr-timer{font:800 clamp(34px,5vw,52px)/1 var(--display);letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:var(--violet)}
.gr-timer.late{color:#e0452f}
.gr-model{background:#f6f1ff;border-radius:18px;padding:14px 18px;font-size:15.5px;line-height:1.55;color:#2d1f45}
.gr-model p{margin:0 0 8px}.gr-model p:last-child{margin:0}
.gr-self{display:grid;gap:8px}
.gr-self label{display:flex;gap:10px;align-items:flex-start;background:#fff;border-radius:14px;padding:10px 14px;font-size:15px;line-height:1.4;cursor:pointer}
.gr-self input{margin-top:3px;accent-color:var(--violet);width:18px;height:18px;flex:none}
.gr-tbl{width:100%;border-collapse:collapse;font-size:14.5px;background:#fff;border-radius:16px;overflow:hidden}
.gr-tbl th{background:var(--tile);text-align:left;font-size:12.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink3);padding:9px 12px}
.gr-tbl td{padding:9px 12px;border-top:1px solid #f0f0f3;vertical-align:top;line-height:1.4}
.gr-tbl td:first-child{font-weight:600;white-space:nowrap}
.gr-scroll{overflow-x:auto;border-radius:16px}
.lp-fam-h.center{justify-items:center;text-align:center;margin-left:auto;margin-right:auto}

/* ---------- bandeau bac 2027, vignettes ---------- */
.lp-b27{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;background:#f1e8fb;color:#4b1f7a;border-radius:20px;padding:14px 20px;margin:18px 0 0;font-size:15px;line-height:1.45}
.lp-b27 b{font:700 12px var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--violet)}
.ot-ph{display:block;width:100%;aspect-ratio:4/3;background:linear-gradient(135deg,#f1e8fb,#e9e1d3)}
.lp-fl small{font-size:12px;opacity:.6;margin-left:2px}

.univ{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;width:100%;margin-bottom:6px}
.univ .k{font-weight:600;color:var(--ink);margin-right:4px}
.univ a{color:var(--link);text-decoration:none}.univ a:hover{text-decoration:underline}.univ a[aria-current]{color:var(--ink);font-weight:600}
/* ---- grammaire : compléments ---- */
.gr-seg.tg{border-bottom:2px dotted var(--blue)}
.gr-panel{display:grid;gap:12px;margin-top:14px}
.gr-focus{margin:0;font-size:15px;color:var(--ink3)}.gr-focus b{color:var(--ink)}
.gr-tests .btn.done{box-shadow:inset 0 0 0 1.5px var(--blue)}
.gr-lab{display:block;font:700 12px var(--body);letter-spacing:.05em;text-transform:uppercase;color:var(--ink3);margin-bottom:4px}
.gr-res{display:block;font:500 clamp(17px,2vw,20px)/1.55 Georgia,"Times New Roman",serif;margin-bottom:6px;color:inherit}
.gr-note{display:block}
.gr-q{background:#fff;border-radius:18px;padding:14px 18px;display:grid;gap:10px}
.gr-q h4{margin:0;font-size:17px;line-height:1.4}
.gr-win{margin:0;background:#eaf7ef;color:#14532d;border-radius:12px;padding:10px 14px;line-height:1.5}
.gr-count{margin:10px 2px 0;font-size:13.5px;color:var(--ink3)}
.gr-tabs{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.gr-tabs button{border:0;border-radius:99px;background:var(--tile);padding:8px 16px;font:600 14.5px var(--body);color:var(--ink);cursor:pointer}
.gr-tabs button[aria-selected=true]{background:var(--ink);color:#fff}
.gr-pick{margin-bottom:14px}
.gr-oral{display:grid}
.gr-case{display:grid;gap:12px}
.gr-ticket{display:grid;gap:10px;background:#fff;border-radius:22px;padding:16px 18px;box-shadow:0 0 0 1px rgba(0,0,0,.06)}
.gr-ticket .gr-sent{box-shadow:none;padding:0;background:transparent;border-radius:0}
.gr-qq{margin:0;display:grid;gap:2px;font-size:17px;line-height:1.45}
.gr-lien{font-size:14px;color:var(--link);text-decoration:none;font-weight:600}
.gr-ctrl{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:4px 0 0}
.gr-more{display:flex;flex-wrap:wrap;gap:8px}
.gr-more .btn[aria-pressed=true]{box-shadow:inset 0 0 0 1.5px var(--violet)}
.gr-slot{display:grid;gap:12px}
.gr-slot[hidden]{display:none}
.gr-self .lp-k,.gr-model .lp-k{display:block;margin-bottom:6px}
.gr-bar{margin-top:6px}
.lp-c.gr-c .im.ph b{font-size:64px}
.gr-panel[hidden],.gr-q[hidden],.gr-slot[hidden]{display:none}
.lp-fam .grid2 .card{background:var(--tile)}

/* portes avec image : image en haut, texte dessous (lisibilité) */
.lp-door.has-im{display:flex;flex-direction:column;padding:0;gap:0;min-height:0;align-content:normal}
.lp-door.has-im::after{display:none}
.lp-door.has-im .im{display:block;aspect-ratio:16/7;overflow:hidden;background:#e9e3d6}
.lp-door.has-im .im img{position:static;inset:auto;z-index:auto;width:100%;height:100%;object-fit:cover;object-position:68% 45%;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.lp-door.has-im:hover .im img{transform:scale(1.04)}
.lp-door.has-im .tx{display:grid;gap:8px;padding:20px clamp(22px,3vw,34px) 26px;align-content:start}
@media (prefers-reduced-motion:reduce){.lp-door.has-im:hover .im img{transform:none}}

/* pages jumelles (philosophe / écrivain) + liens vers les analyses */
.lp-twin{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:12px;margin:0 0 18px}
@media (max-width:760px){.lp-twin{grid-template-columns:minmax(0,1fr)}}
.lp-twin-a{display:grid;gap:4px;align-content:center;background:var(--tile);border-radius:24px;padding:20px 24px;text-decoration:none;color:var(--ink);transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s}
.lp-twin-a:hover{transform:translateY(-3px);box-shadow:0 14px 36px rgba(0,0,0,.1)}
.lp-twin-a .k{font:600 12.5px var(--body);letter-spacing:.04em;color:var(--violet);text-transform:uppercase}
.lp-twin-a b{font:700 24px/1.1 var(--display);letter-spacing:-.03em}
.lp-twin-a small{font-size:14.5px;line-height:1.45;color:#424245}
.lp-twin-a .go{color:var(--link);font-weight:600;font-size:15px;margin-top:4px}
.lp-twin-xs{display:grid;gap:12px}
.lp-twin-x{display:grid;gap:2px;align-content:center;background:var(--tile);border-radius:20px;padding:14px 20px;font-weight:600;font-size:15px;color:var(--link);text-decoration:none;transition:transform .3s cubic-bezier(.2,.8,.2,1)}
.lp-twin-x small{font:600 12px var(--body);letter-spacing:.04em;color:var(--ink3);text-transform:uppercase}
.lp-twin-x:hover{transform:translateY(-2px)}

/* v17 : « Au bac, tu pourrais tomber sur… » en tête des pages de philosophes, retour au bilan */
.lp-bq{background:var(--tile);border-radius:30px;padding:clamp(20px,3.2vw,38px);margin:8px 0 28px}
.lp-bq-h{display:grid;gap:6px;margin-bottom:20px}
.lp-bq-h .eb{font:600 17px var(--display);color:var(--gold);letter-spacing:-.01em}
.lp-bq-h h2{font-size:clamp(30px,4vw,48px);line-height:1.04}
.lp-bq-h p{color:var(--ink3);max-width:46em;margin:6px 0 0;font-size:clamp(16px,1.5vw,18px)}
.lp-bq-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:12px}
.lp-bq-c{background:#fff;border-radius:24px;padding:20px 20px 18px;display:grid;gap:12px;align-content:start}
.lp-bq-c ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.lp-bq-n{font:700 12px var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--violet)}
.lp-bq-q{appearance:none;border:0;width:100%;text-align:left;cursor:pointer;display:flex;gap:11px;align-items:flex-start;background:var(--tile);color:var(--ink);border-radius:16px;padding:12px 14px;font:inherit;transition:background .2s,box-shadow .2s,transform .2s}
.lp-bq-q::before{content:"";flex:none;width:18px;height:18px;margin-top:3px;border-radius:50%;box-shadow:inset 0 0 0 1.6px #b9b9c0;background:#fff;transition:background .2s,box-shadow .2s}
.lp-bq-q:hover{background:#ececf0}
.lp-bq-q:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.lp-bq-q[aria-pressed=true]{background:#f1e8fb;box-shadow:inset 0 0 0 1.5px var(--violet)}
.lp-bq-q[aria-pressed=true]::before{background:var(--violet);box-shadow:inset 0 0 0 4px #f1e8fb,0 0 0 1.6px var(--violet)}
.lp-bq-t{font:500 clamp(17px,1.6vw,19px)/1.38 Georgia,"Times New Roman",serif}
.lp-bq-c.txt{background:#fff;box-shadow:inset 0 0 0 1.5px #e3d5f5}
.lp-bq-x{margin:0;display:grid;gap:4px}
.lp-bq-tt{font:600 clamp(18px,1.7vw,20px)/1.3 var(--display);letter-spacing:-.02em}
.lp-bq-x span{font-size:15px;color:var(--ink3);line-height:1.45}
.lp-bq-x span.h{margin-top:8px;font-size:14px;color:var(--ink4)}
.lp-bq-f{margin:16px 2px 0;display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;font-size:15px;color:#424245}
.lp-bq-f a{font-weight:600;white-space:nowrap}
.lp-bq-s{margin:6px 2px 0;font-size:13.5px;color:var(--ink4)}
.lp-bqb .lp-bq-chips{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:8px;margin:2px 0 14px}
.lp-bq-q.sm{background:#fff;padding:10px 13px}
.lp-bq-q.sm:hover{background:#f7f7f9}
.lp-bq-q.sm[aria-pressed=true]{background:#f1e8fb}
.lp-bq-q.sm .lp-bq-t{font-size:16.5px}
.lp-bq-ans{background:#fff;border-radius:22px;padding:18px 20px;display:grid;gap:8px;border-left:4px solid var(--violet)}
.lp-bq-ans h4{font-size:20px}
.lp-bq-ans p{margin:0;color:#2d2d30;line-height:1.55}
@media (prefers-reduced-motion:reduce){.lp-bq-q{transition:none}}
