/* Catégorie Kalimba : « Le voyage du kalimba ». Palette terre et nuit, propre à cette page. */
.kal{--nuit:#120e26;--nuit2:#2a1b3d;--ocre:#d98b3a;--terre:#7a3b1d;--sable:#f6e7cc;--or:#f2c063;--bois1:#a0612f;--bois2:#6e3a1a;--ink:#2a1a10;--mute:#7b5d47;
	font-family:Archivo,system-ui,sans-serif;color:var(--ink);background:var(--sable);border-radius:18px;overflow:hidden;margin:0 0 30px}
.kal *{box-sizing:border-box}
.kal-h1,.kal-h2{font-family:Fraunces,Georgia,serif;font-weight:700;letter-spacing:-.01em;margin:0}
.kal-h2{font-size:clamp(26px,3.4vw,36px);color:var(--terre);margin-bottom:8px}
.kal .kal-h2-dark{color:var(--terre)}
.kal-lead{color:var(--mute);margin:0 0 18px;max-width:70ch}
.kal section{padding:clamp(22px,4vw,48px) clamp(16px,4vw,48px)}

/* Ciel de nuit et kalimba */
.kal .kal-hero{position:relative;color:var(--sable);text-align:center;padding-bottom:clamp(30px,5vw,60px);
	background:linear-gradient(180deg,var(--nuit) 0%,var(--nuit2) 55%,#6b2f22 88%,var(--terre) 100%)}
.kal-sky{position:absolute;inset:0;pointer-events:none;opacity:.9;
	background-image:radial-gradient(1.5px 1.5px at 12% 18%,#fff,transparent),radial-gradient(1px 1px at 28% 8%,#fff,transparent),radial-gradient(1.5px 1.5px at 44% 26%,#ffe9b0,transparent),
	radial-gradient(1px 1px at 63% 12%,#fff,transparent),radial-gradient(2px 2px at 78% 22%,#fff,transparent),radial-gradient(1px 1px at 90% 9%,#ffe9b0,transparent),
	radial-gradient(1px 1px at 8% 40%,#fff,transparent),radial-gradient(1.5px 1.5px at 94% 44%,#fff,transparent),radial-gradient(1px 1px at 52% 6%,#fff,transparent);
	animation:kal-twinkle 6s ease-in-out infinite alternate}
@keyframes kal-twinkle{from{opacity:.55}to{opacity:1}}
.kal-hero>*{position:relative}
.kal-kick{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--or);margin:0 0 10px;font-weight:700}
.kal .kal-h1{font-size:clamp(38px,6.5vw,72px);line-height:1;color:#fff8ea}
.kal-intro{max-width:62ch;margin:16px auto 30px;font-size:17px;color:#e9d9c0}
.kal-inst{display:flex;justify-content:center}
.kal-board{position:relative;width:min(100%,640px);padding:18px 18px 70px;border-radius:26px 26px 120px 120px;
	background:radial-gradient(ellipse at 50% 0%,#c27a40,transparent 60%),linear-gradient(90deg,var(--bois2),var(--bois1) 20%,#b7733b 50%,var(--bois1) 80%,var(--bois2));
	box-shadow:0 30px 60px rgba(0,0,0,.45),inset 0 2px 0 rgba(255,255,255,.18)}
.kal-bridge{position:absolute;left:8%;right:8%;top:58%;height:10px;border-radius:5px;background:linear-gradient(#e8e2d8,#9d968c);box-shadow:0 3px 6px rgba(0,0,0,.4)}
.kal-hole{position:absolute;left:50%;bottom:20px;width:46px;height:46px;margin-left:-23px;border-radius:50%;background:radial-gradient(#1b0d06 55%,#3a1d0d)}
.kal-tines{position:relative;display:flex;align-items:flex-start;justify-content:center;gap:4px;height:240px}
.kal .kal-tine{position:relative;flex:1 1 0;max-width:30px;height:var(--len);min-height:40%;border:0;border-radius:0 0 14px 14px;cursor:pointer;padding:0;
	background:linear-gradient(90deg,#9c9a96,#f4f2ee 45%,#c9c6c0 60%,#8d8a85);box-shadow:0 4px 6px rgba(0,0,0,.35);
	display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:2px;padding-bottom:8px;transition:transform .08s,background .15s;font:inherit;color:#3b2a1d;text-transform:none;letter-spacing:0}
.kal .kal-tine:hover{background:linear-gradient(90deg,#b49b6c,#fff6dc 45%,#e7cf98 60%,#a58b5b)}
.kal .kal-tine.is-on{transform:translateY(4px);background:linear-gradient(90deg,#d98b3a,#ffe2a6 45%,#f2c063 60%,#c27a2c);box-shadow:0 0 22px rgba(242,192,99,.9)}
.kal .kal-tine.is-next{animation:kal-pulse .9s ease-in-out infinite}
@keyframes kal-pulse{0%,100%{box-shadow:0 0 0 0 rgba(242,192,99,.0)}50%{box-shadow:0 0 0 6px rgba(242,192,99,.75),0 0 26px rgba(242,192,99,.9)}}
.kal-tine-n{font-size:13px;font-weight:800;line-height:1}
.kal-tine-l{font-size:9.5px;font-weight:700;opacity:.75}
.kal-num{position:relative;display:inline-block}
.kal-num i{position:absolute;left:50%;top:-.75em;transform:translateX(-50%);font-style:normal;font-size:.6em;letter-spacing:-.1em;line-height:1}
.kal-hint{font-size:13.5px;color:#d8c4a6;max-width:66ch;margin:22px auto 0}
@media(max-width:600px){.kal-tines{gap:2px;height:200px}.kal-tine-l{display:none}.kal-tine-n{font-size:11px}.kal-board{padding:14px 10px 60px}}

/* Carnet de voyage : défilement horizontal, papier et pointillés */
.kal-carnet{background:var(--sable) repeating-linear-gradient(0deg,transparent 0 31px,rgba(122,59,29,.06) 31px 32px)}
.kal-route{list-style:none;margin:0;padding:10px 4px 18px;display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;position:relative}
.kal-route:before{content:"";position:absolute;left:30px;right:30px;top:30px;border-top:3px dashed var(--ocre);opacity:.6}
.kal-stop{position:relative;flex:0 0 min(78%,280px);scroll-snap-align:start;margin:0;padding:52px 18px 18px;border-radius:14px;background:#fffaf0;box-shadow:0 8px 20px rgba(122,59,29,.12);transform:rotate(-.6deg)}
.kal-stop:nth-child(even){transform:rotate(.7deg)}
.kal-pin{position:absolute;top:12px;left:16px;width:36px;height:36px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--ocre);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center}
.kal-pin span{transform:rotate(45deg)}
.kal-when{margin:0;font-family:Fraunces,Georgia,serif;font-weight:700;color:var(--ocre);font-size:20px}
.kal-when small{display:block;font-family:Archivo,sans-serif;font-size:12.5px;color:var(--mute);font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.kal-stop h3{font-family:Fraunces,Georgia,serif;font-size:19px;margin:8px 0 6px;color:var(--ink)}
.kal-stop p{margin:0;font-size:14.5px;line-height:1.55;color:#4a3324}

/* Premiers airs */
.kal-airs{background:linear-gradient(180deg,#f3dfbd,var(--sable))}
.kal-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.kal .kal-air{border:2px solid var(--terre);background:transparent;color:var(--terre);border-radius:999px;padding:8px 16px;font:inherit;font-weight:700;cursor:pointer;text-transform:none;letter-spacing:0;box-shadow:none}
.kal .kal-air[aria-selected=true]{background:var(--terre);color:#fff8ea}
.kal-score{background:#fffaf0;border-radius:14px;padding:16px;box-shadow:inset 0 0 0 1px rgba(122,59,29,.15)}
.kal-origin{margin:0 0 10px;font-weight:700}.kal-origin span{color:var(--mute);font-weight:400}
.kal-cells{display:flex;flex-wrap:wrap;gap:6px}
.kal-cell{min-width:34px;height:42px;padding:10px 6px 0;border-radius:8px;background:var(--sable);text-align:center;font-weight:800;font-size:18px;color:var(--terre);transition:background .12s,color .12s}
.kal-cell.is-on{background:var(--ocre);color:#fff}
.kal-cell.is-done{opacity:.45}
.kal-hold{font-weight:400;color:var(--mute);margin-left:2px}
.kal-ctrl{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px}
.kal .kal-btn{border:0;border-radius:10px;padding:11px 18px;font:inherit;font-weight:800;cursor:pointer;background:var(--terre);color:#fff8ea;text-transform:none;letter-spacing:0;box-shadow:none}
.kal .kal-btn:hover{background:var(--ocre)}
.kal .kal-you{background:var(--ocre)}
.kal-msg{margin:0;font-weight:700;color:var(--terre)}

/* Vitrine incluse : on garde ses styles, sur fond clair */
.kal .kal-shop{background:#fff;padding-top:clamp(22px,4vw,40px)}
.kal-shop .zk-vitrine{padding:0;margin:0;background:transparent}

/* Escales */
.kal-escales{background:var(--sable)}
.kal-esc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:16px;margin-top:14px}
.kal-esc{background:#fffaf0;border-radius:14px;overflow:hidden;box-shadow:0 8px 20px rgba(122,59,29,.1);display:flex;flex-direction:column}
.kal-esc-img{display:block;aspect-ratio:16/10;background:linear-gradient(135deg,var(--ocre),var(--terre))}
.kal-esc-img img{width:100%;height:100%;object-fit:cover;display:block}
.kal-esc-b{padding:14px 16px 18px}
.kal-esc-k{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ocre)}
.kal-esc h3{font-family:Fraunces,Georgia,serif;font-size:18px;margin:6px 0;line-height:1.25}
.kal-esc h3 a{color:var(--ink);text-decoration:none}.kal-esc h3 a:hover{color:var(--ocre)}
.kal-esc p{margin:0;font-size:14.5px;color:var(--mute)}
.kal a:focus-visible,.kal button:focus-visible{outline:3px solid var(--or);outline-offset:2px}
@media(prefers-reduced-motion:reduce){.kal-sky,.kal .kal-tine.is-next{animation:none}}
.kal-now{min-height:1.5em;margin:16px auto 0;font-weight:800;color:var(--or);font-size:16px}

/* Liens et notes */
.kal-more{margin:16px 0 0;font-weight:800}.kal-more a{color:var(--terre);text-decoration:none;border-bottom:2px solid var(--ocre)}.kal-more a:hover{color:var(--ocre)}
.kal-note8{margin:10px 0 0;font-size:14px;color:var(--mute)}

/* Kalimba 8 lames : seules les lames do4 à do5 restent */
.kal.is-8 .kal-tine[data-in8="0"]{display:none}
.kal.is-8 .kal-tines{gap:8px}
.kal.is-8 .kal-tine{max-width:42px}
.kal.is-8 .kal-board{width:min(100%,420px)}
.kal-ver{display:inline-flex;gap:0;margin:0 0 18px;border:2px solid var(--or);border-radius:999px;overflow:hidden}
.kal .kal-v{border:0;background:transparent;color:#f6e7cc;padding:7px 16px;font:inherit;font-weight:800;cursor:pointer;text-transform:none;letter-spacing:0;box-shadow:none}
.kal .kal-v[aria-pressed=true]{background:var(--or);color:var(--nuit)}

/* Page d'un air : bloc intégré à l'article */
.kal.kal-embed{margin:24px 0 30px;border-radius:16px}
.kal .kal-hero-s{padding:22px 14px 30px}
.kal-embed .kal-tines{height:210px}
.kal-embed .kal-airs{padding:20px clamp(14px,3vw,24px) 24px}
.kal-embed .kal-score{margin-top:0}

/* Hub des partitions */
.kal.kal-hubw{background:transparent;border-radius:0;overflow:visible}
.kal .kal-hub{padding:0}
.kal-filters{display:grid;gap:8px;margin:0 0 10px}
.kal-frow{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.kal-frow>span{font-size:13px;font-weight:800;color:var(--mute);min-width:64px}
.kal .kal-f{border:2px solid #e4cfae;background:#fffaf0;color:var(--ink);border-radius:999px;padding:6px 14px;font:inherit;font-size:14px;font-weight:700;cursor:pointer;text-transform:none;letter-spacing:0;box-shadow:none}
.kal .kal-f:hover{border-color:var(--ocre)}
.kal .kal-f[aria-pressed=true]{background:var(--terre);border-color:var(--terre);color:#fff8ea}
.kal-count{color:var(--mute);font-size:14px;margin:6px 0 12px}
.kal-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:14px}
.kal a.kal-card{display:flex;flex-direction:column;gap:6px;padding:18px;border-radius:16px;text-decoration:none;color:var(--ink);background:linear-gradient(160deg,#fffaf0,#f6e7cc);box-shadow:0 8px 20px rgba(122,59,29,.1);border:1px solid #ecd9b8;transition:transform .15s}
.kal a.kal-card:hover{transform:translateY(-3px)}
.kal a.kal-card[hidden]{display:none}
.kal-card-k{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ocre)}
.kal-card b{font-family:Fraunces,Georgia,serif;font-size:21px;line-height:1.15}
.kal-card small{color:var(--mute);font-size:13.5px}
.kal-card-cells{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0}
.kal-card-cells .kal-cell{min-width:26px;height:32px;padding-top:7px;font-size:14px;background:#fff}
.kal-card-cells i{font-style:normal;color:var(--mute);align-self:flex-end}
.kal-card-lvl{color:var(--ocre);letter-spacing:.15em;font-size:13px}
.kal-card em{font-style:normal;font-weight:800;color:var(--terre);margin-top:auto}

/* Impression : seulement la partition */
@media print{
	body *{visibility:hidden}
	.kal-embed .kal-score,.kal-embed .kal-score *{visibility:visible}
	.kal-embed .kal-score{position:absolute;left:0;top:0;width:100%;box-shadow:none}
	.kal-cell{background:#fff !important;border:1px solid #999;color:#000 !important}
}
