/* ============================================================
   LE CALENDRIER — grille, détail, convertisseur, registre
   ============================================================ */

/* ---- en-tête du mois ---- */
.cal-tete{display:flex;align-items:center;justify-content:center;gap:24px;margin-bottom:6px}
.cal-titre{text-align:center;min-width:min(300px,60vw)}
.cal-titre h2{font-family:var(--display);font-size:clamp(22px,3.4vw,30px);font-weight:700;margin:0;line-height:1.2}
.cal-heb{font-family:var(--util);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--or);margin:4px 0 0}
.cal-fl{background:var(--parch-2);border:1px solid var(--trait);color:var(--encre-2);
  font-size:22px;line-height:1;width:40px;height:40px;border-radius:2px;cursor:pointer;transition:.2s}
.cal-fl:hover{border-color:var(--or);color:var(--or-fonce)}
.cal-outils{display:flex;gap:8px;justify-content:center;margin:14px 0 22px;flex-wrap:wrap}
.puce.mini{font-size:10px;padding:5px 10px;margin-top:8px}

/* ---- la grille ---- */
.cal-grille{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;
  background:var(--trait);border:1px solid var(--trait)}
.cal-nom-jour{background:var(--parch-3);padding:9px 4px;text-align:center;
  font-family:var(--util);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--faible)}
.cal-nom-jour.chabbat{color:var(--or-fonce);font-weight:700}

.cal-case{position:relative;background:var(--parch-2);border:0;min-height:118px;padding:6px 6px 7px;
  text-align:left;font:inherit;cursor:pointer;display:flex;flex-direction:column;gap:2px;transition:.15s;overflow:hidden}
.cal-case:hover{background:#FCFBF7}
.cal-case.dehors{background:var(--parch-3);opacity:.45}
.cal-case.chabbat{background:#F7FAFD}
.cal-case.chabbat.dehors{background:var(--parch-3)}

.cal-case .ligne-haut{display:flex;align-items:baseline;justify-content:space-between;gap:4px}
.cal-case .civ{font-family:var(--display);font-size:17px;font-weight:500;color:var(--encre);line-height:1}
.cal-case .heb{font-family:var(--display);direction:rtl;font-size:12.5px;color:var(--or-fonce);line-height:1.1}
.cal-case.chabbat .civ{color:var(--bleu)}
.cal-case .mois-heb{font-family:var(--util);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--or);line-height:1.2}
.cal-case.roch .heb{font-weight:700}
.cal-case.auj{box-shadow:inset 0 0 0 2px var(--or);background:#FFFDF4}
.cal-case.choisi{background:var(--or-pale)}
.cal-case.t-yomtov{background:#FDF4F2}
.cal-case.t-yomtov.dehors,.cal-case.t-jeune.dehors{background:var(--parch-3)}
.cal-case.t-jeune{background:#F4F5F7}
.cal-case.pleine::after{content:none}

/* les fêtes, en bandeaux colorés */
.cal-case .fetes{display:flex;flex-direction:column;gap:2px}
.f{font-family:var(--util);font-size:9px;font-weight:600;line-height:1.3;letter-spacing:.02em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:2px 5px;border-radius:3px;display:block}
.f.yomtov{background:#C0392B;color:#fff}
.f.holhamoed{background:#F6E3C8;color:#8A4B12}
.f.jeune{background:#4A5560;color:#fff}
.f.roch{background:#E3F0E6;color:#1F6B4A}
.f.fete{background:#F3E4B8;color:#7A5A0E}
.f.memoire{background:#E7E3F2;color:#4A3E7A}

/* la paracha et les horaires */
.cal-case .par{font-family:var(--display);font-size:11.5px;font-style:italic;color:var(--bleu);line-height:1.2}
.hz{font-family:var(--util);font-size:11px;font-weight:700;letter-spacing:.01em;line-height:1.3}
.hz.allumage{color:#C2410C}
.hz.allumage::before{content:"◗ ";font-weight:400}
.hz.sortie{color:var(--bleu)}
.hz.sortie::before{content:"✦ ";font-weight:400}

/* les noms des tsadikim, lisibles */
.cal-case .noms{display:flex;flex-direction:column;gap:1px;margin-top:2px;overflow:hidden}
.cal-case .n{font-family:var(--display);font-size:11.5px;line-height:1.28;color:var(--or-fonce);
  overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.cal-case .n.hil{border-left:2px solid var(--or-pale);padding-left:4px}
.cal-case .n.azkara{border-left:2px solid var(--or);padding-left:4px;font-weight:600;color:var(--or)}
.cal-case .n.perso{border-left:2px solid var(--zellige);padding-left:4px;color:var(--zellige)}

/* le choix de la ville */
.cal-ville{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;
  margin:0 0 18px;padding:10px 14px;background:var(--surf-2);border:1px solid var(--trait-fin);border-radius:4px}
.cal-ville label{font-family:var(--util);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faible)}
.cal-ville select{font-family:var(--corps);font-size:14px;color:var(--encre);padding:5px 8px;
  background:var(--parch-2);border:1px solid var(--trait);border-radius:3px}
.cal-rite{display:flex;gap:0}
.cal-rite .puce{border-radius:0}
.cal-rite .puce:first-child{border-radius:3px 0 0 3px}
.cal-rite .puce:last-child{border-radius:0 3px 3px 0;border-left:0}
.cal-rite .puce.on{background:var(--or);color:#fff;border-color:var(--or)}

/* ---- le détail du jour ---- */
#detail{margin-top:26px;border:1px solid var(--or-clair);border-radius:4px;
  background:var(--parch-2);padding:24px 26px}
.det-tete{border-bottom:1px solid var(--trait);padding-bottom:14px;margin-bottom:16px}
.det-civ{font-family:var(--display);font-size:21px;font-weight:700;margin:0 0 3px;
  text-transform:capitalize}
.det-heb{font-size:16px;color:var(--or-fonce);margin:0 0 6px}
.det-heb .hebreu{margin-left:8px}
.det-par{font-family:var(--util);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--or);margin:0 0 4px}
.det-soir{font-size:12.5px;font-style:italic;color:var(--faible);margin:0}
.det-bloc{margin-bottom:16px}
.det-bloc h4{font-family:var(--util);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--faible);margin:0 0 7px}
.det-bloc p{margin:0 0 6px;font-size:15.5px}
.det-bloc .ou{font-family:var(--util);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--faible);margin-left:8px}
.det-bloc.az p .hebreu{color:var(--or-fonce);margin-right:6px}
.det-vide{color:var(--faible);font-style:italic;margin:0}

/* ---- le convertisseur ---- */
.conv{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.conv-cote{border:1px solid var(--trait);border-radius:3px;padding:20px;background:var(--parch-2)}
.conv-cote h3{font-family:var(--util);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--faible);margin:0 0 12px;font-weight:600}
.conv-cote input,.conv-cote select{font-family:var(--corps);font-size:15px;padding:9px 10px;
  border:1px solid var(--trait);border-radius:2px;background:#fff;color:var(--encre);width:100%}
.conv-heb{display:grid;grid-template-columns:70px 1fr 92px;gap:7px}
.conv-res{margin:14px 0 0;font-size:17px;line-height:1.5}
.conv-res b{font-family:var(--display);font-size:20px;font-weight:700}
.conv-res .hebreu{color:var(--or-fonce);margin-left:6px}
.conv-jour{font-family:var(--util);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--faible)}
.conv-non{color:var(--grenat,#7C5A18);font-style:italic}
.conv-note{margin:18px 0 0;font-size:13.5px;font-style:italic;color:var(--encre-3);max-width:74ch}

/* ---- le registre ---- */
.reg{border:1px solid var(--zellige,#4A5560);border-radius:4px;padding:24px 26px;background:var(--parch-2)}
.reg h2{font-family:var(--display);font-size:22px;margin:0 0 8px}
.reg-avis{font-size:13.5px;color:var(--encre-2);margin:0 0 18px;max-width:76ch}
.reg-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:20px}
.reg-form input,.reg-form select{font-family:var(--corps);font-size:14px;padding:8px 10px;
  border:1px solid var(--trait);border-radius:2px;background:#fff}
.reg-form #reg-nom{min-width:170px}
.reg-form #reg-note{min-width:190px;flex:1}
.reg-table{width:100%;border-collapse:collapse;font-size:14.5px}
.reg-table th{font-family:var(--util);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--faible);text-align:left;font-weight:600;padding:0 8px 7px}
.reg-table td{border-top:1px solid var(--trait);padding:9px 8px;vertical-align:top}
.reg-table .hebreu{color:var(--or-fonce);margin-left:5px}
.reg-note{font-size:12.5px;color:var(--faible)}
.reg-src{font-family:var(--util);font-size:10px;letter-spacing:.08em;color:var(--faible)}
.reg-sup{background:none;border:0;color:var(--faible);font-size:19px;line-height:1;cursor:pointer;padding:0 4px}
.reg-sup:hover{color:var(--grenat,#7C5A18)}
.reg-vide{color:var(--faible);font-style:italic}
.reg-outils{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}
.reg-outils .puce{cursor:pointer}

/* ---- téléphone ---- */
@media(max-width:760px){
  .conv{grid-template-columns:1fr}
  .cal-case{min-height:70px;padding:5px 4px}
  .cal-case .civ{font-size:15px}
  .cal-case .heb{font-size:11px}
  .cal-case .m{font-size:7.5px;padding:1px 3px}
  .cal-case .mois-heb{display:none}
  #detail{padding:18px 16px}
  .reg{padding:18px 16px}
  .reg-form input,.reg-form select{width:100%}
}

/* ---- les fêtes et les horaires dans le panneau du jour ---- */
.det-fetes{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0 0}
.det-fetes .f{font-size:11px;padding:3px 8px}
.det-omer{font-family:var(--util);font-size:11px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--faible);margin-top:6px}
.det-bloc.hz h4{color:var(--bleu)}
.hz-lignes{display:flex;flex-wrap:wrap;gap:14px;margin:4px 0}
.hz-lignes .hz{font-size:14px}
.hz .neutre,.hz-lignes .hz.neutre{color:var(--faible);font-weight:500}
.hz-note{font-family:var(--corps);font-size:12px;font-style:italic;color:var(--faible);margin-top:6px}

@media (max-width:640px){
  .cal-case{min-height:86px}
  .cal-case .n{font-size:9.5px;-webkit-line-clamp:1}
  .cal-case .par{font-size:9.5px}
  .hz{font-size:9.5px}
  .f{font-size:7.5px;padding:1px 3px}
  .cal-ville{gap:6px;padding:8px}
}
