:root {
  --blue: #0038B8;
  --blue-dark: #002a8a;
  --white: #FFFFFF;
  --stone: #EDE3CF;
  --cream: #F8F3E8;
  --ink: #1d2433;
  --muted: #6b6457;
  --line: #E2D5BA;
  --radius: 4px;
  --shadow: 0 1px 2px rgba(60, 45, 20, .12);
  --serif: 'Source Serif 4', Georgia, serif;
  --hebrew: 'Frank Ruhl Libre', 'Source Serif 4', serif;
  --script: 'Playball', cursive;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--white); color: var(--ink); font: 17px/1.55 var(--serif); padding-block-end: 44px; }
:lang(he), [dir="rtl"] body { font-family: var(--hebrew); }
a { color: var(--blue); }
img { max-width: 100%; height: auto; }
h1, h2, h3 { line-height: 1.25; font-weight: 600; }
h1 { font-size: 1.9rem; margin-block: .2em .6em; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* Bandes du drapeau */
.band { height: 14px; background: var(--blue); }
.band-top { border-block-end: 6px solid var(--white); }
.band-bottom { border-block-start: 6px solid var(--white); }

/* En-tête */
.site-header { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; padding: 10px 20px; max-width: 1180px; margin: 0 auto; }
.brand img { display: block; height: 64px; width: auto; }
.site-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 18px; margin-inline-start: auto; font-family: system-ui, sans-serif; font-size: .92rem; }
.site-nav a { text-decoration: none; color: var(--ink); padding: 6px 0; border-block-end: 2px solid transparent; }
.site-nav a[aria-current="page"], .site-nav a:hover { border-color: var(--blue); color: var(--blue); }
.lang-switch { display: flex; gap: 10px; padding-inline-start: 14px; border-inline-start: 1px solid var(--line); }
.lang-switch a[aria-current="true"] { font-weight: 700; }
.nav-toggle, .nav-toggle-label { display: none; }
@media (max-width: 820px) {
  .nav-toggle-label { display: block; margin-inline-start: auto; cursor: pointer; padding: 10px; }
  .burger, .burger::before, .burger::after { display: block; width: 22px; height: 2px; background: var(--ink); position: relative; content: ""; }
  .burger::before { position: absolute; top: -7px; } .burger::after { position: absolute; top: 7px; }
  .site-nav { display: none; width: 100%; flex-direction: column; align-items: stretch; margin: 0; }
  .nav-toggle:checked ~ .site-nav { display: flex; }
  .site-nav a { padding: 10px 0; border-block-end: 1px solid var(--line); }
  .lang-switch { border: 0; padding: 10px 0; }
}

/* Mise en page */
.site-main { min-height: 50vh; }
.page { max-width: 1180px; margin: 0 auto; padding: 24px 20px 40px; }
.narrow { max-width: 760px; }
.stone {
  background-color: var(--stone);
  background-image: radial-gradient(rgba(120, 95, 55, .07) 1px, transparent 1.5px), radial-gradient(rgba(255, 255, 255, .35) 1px, transparent 1.5px);
  background-size: 7px 7px, 11px 11px; background-position: 0 0, 3px 5px;
}
.stone-section { padding: 28px 0 36px; }
.script { font-family: var(--script); font-weight: 400; }

/* Hero (dernier cours) */
.hero { background: #111; color: #fff; }
.hero-inner { max-width: 1180px; margin: 0 auto; padding: 20px; display: grid; gap: 20px; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); align-items: center; }
.hero h1, .hero .hero-title { font-size: 1.7rem; letter-spacing: .02em; }
.hero .rav { font-family: var(--script); font-size: 1.5rem; opacity: .95; }
.hero .meta { font-family: system-ui, sans-serif; font-size: .9rem; opacity: .8; }
@media (max-width: 820px) { .hero-inner { grid-template-columns: 1fr; } }
.player { position: relative; aspect-ratio: 16 / 9; background: #000; border-radius: var(--radius); overflow: hidden; }
.player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Cartes de cours */
.card { background: var(--cream); border-inline-start: 3px solid var(--blue); border-radius: var(--radius); box-shadow: var(--shadow); }
.card a { color: inherit; text-decoration: none; }
.card h3 { margin: 0; font-size: 1.05rem; }
.card .meta { display: block; font-family: system-ui, sans-serif; font-size: .8rem; color: var(--muted); margin-block-start: 3px; }
.card .excerpt { font-size: .92rem; color: #3b3a36; margin: 6px 0 0; }
.thumb { flex: none; border-radius: 3px; background: #ccc; object-fit: cover; aspect-ratio: 16 / 9; display: block; }
.course-items { display: grid; gap: 10px; }
.view-list .card > a, .view-parasha .card > a { display: flex; gap: 14px; align-items: center; padding: 10px; }
.view-list .thumb { width: 168px; }
.view-parasha .thumb { width: 96px; }
.view-grid { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; }
.view-grid .card > a { display: block; padding: 8px; }
.view-grid .thumb { width: 100%; margin-block-end: 8px; }
.group-title { margin: 18px 0 4px; font-family: system-ui, sans-serif; font-size: .82rem; letter-spacing: .06em; text-transform: uppercase; color: var(--blue); }
.group-title:first-child { margin-block-start: 0; }
@media (max-width: 600px) { .view-list .thumb { width: 112px; } .view-list .excerpt { display: none; } }

/* Barres d'outils */
.toolbar { display: flex; flex-wrap: wrap; gap: 10px 22px; align-items: center; margin-block-end: 16px; font-family: system-ui, sans-serif; font-size: .88rem; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chips a { background: var(--white); border: 1px solid #D8C7A6; border-radius: 14px; padding: 3px 11px; text-decoration: none; color: var(--ink); }
.chips a[aria-current="true"] { background: var(--blue); border-color: var(--blue); color: var(--white); }
.pager { display: flex; justify-content: space-between; margin-block-start: 18px; font-family: system-ui, sans-serif; }
.sentinel { text-align: center; padding: 18px; color: var(--muted); font-family: system-ui, sans-serif; }

/* Page d'un cours */
.course-head { max-width: 980px; margin: 0 auto; padding: 22px 20px 0; }
.course-body { max-width: 980px; margin: 0 auto; padding: 18px 20px 36px; }
.actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 14px 0; }
.btn { display: inline-block; background: var(--blue); color: var(--white); border: 0; border-radius: 20px; padding: 8px 18px; text-decoration: none; font: 600 .92rem system-ui, sans-serif; cursor: pointer; }
.btn:hover { background: var(--blue-dark); }
.btn-ghost { background: var(--white); color: var(--blue); border: 1px solid var(--blue); }
.dedication { background: var(--cream); border-inline-start: 3px solid var(--blue); padding: 10px 14px; font-style: italic; }
.description { white-space: normal; overflow-wrap: anywhere; }
.neighbors { display: flex; justify-content: space-between; gap: 12px; margin-block-start: 26px; font-family: system-ui, sans-serif; }
.tags { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; padding: 0; }
.tags a { background: var(--stone); border-radius: 12px; padding: 2px 10px; text-decoration: none; font-size: .88rem; }

/* Playlists */
.playlist-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }

/* Formulaires */
.form { display: grid; gap: 14px; max-width: 620px; }
.form label { display: grid; gap: 4px; font-family: system-ui, sans-serif; font-size: .9rem; }
.form input[type=text], .form input[type=email], .form input[type=search], .form select, .form textarea {
  font: 16px/1.4 var(--serif); padding: 9px 11px; border: 1px solid #cdbf9f; border-radius: var(--radius); background: var(--white); width: 100%;
}
.form textarea { min-height: 170px; }
.field-error { color: #a4161a; font-size: .85rem; }
.notice { background: #eef3ff; border-inline-start: 3px solid var(--blue); padding: 10px 14px; }
.notice-error { background: #fdecec; border-color: #a4161a; }
.hp { position: absolute; inset-inline-start: -10000px; width: 1px; height: 1px; overflow: hidden; }
.amounts { display: flex; flex-wrap: wrap; gap: 10px; }
.radio-row { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.radio-row label { display: flex; gap: 6px; align-items: center; }

/* Pied de page et barre de soutien */
.site-footer { text-align: center; font-family: system-ui, sans-serif; font-size: .82rem; color: var(--muted); padding: 22px 16px 14px; border-block-start: 1px solid var(--stone); }
.footer-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; }
.support-bar { position: fixed; inset-inline: 0; bottom: 0; z-index: 10; display: flex; justify-content: space-between; align-items: center; gap: 12px;
  padding: 9px 18px calc(9px + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, .97); border-block-start: 1px solid var(--line);
  font: .86rem system-ui, sans-serif; }
.support-bar a { color: var(--blue); text-decoration: none; }
.support-strong { font-weight: 600; }
@media (min-width: 821px) { .support-bar { justify-content: center; gap: 28px; } }
.hero-link { color: inherit; text-decoration: none; }
.meta small, h1 small.meta { font: 400 .9rem system-ui, sans-serif; color: var(--muted); }
.rav-photo { margin: 0 0 18px; }
.rav-photo img { border-radius: var(--radius); width: 100%; object-fit: cover; }
.books { display: grid; gap: 16px; }
.book { display: flex; gap: 18px; padding: 14px; align-items: flex-start; }
.book img { width: 150px; border-radius: 3px; }
@media (max-width: 600px) { .book { flex-direction: column; } }
.admin .support-bar { display: none; }
.admin-table { width: 100%; border-collapse: collapse; font: .9rem system-ui, sans-serif; }
.admin-table th, .admin-table td { border-block-end: 1px solid var(--line); padding: 6px 8px; text-align: start; vertical-align: top; }
.admin-card { padding: 12px 14px; margin-block-end: 12px; }
.inline { display: inline; }
.linklike { background: none; border: 0; color: var(--blue); cursor: pointer; font: inherit; padding: 0; text-decoration: underline; }
fieldset { border: 1px solid var(--line); border-radius: var(--radius); display: grid; gap: 8px; }
.course-groups { display: grid; gap: 22px; }
.course-group .group-title { margin-block-start: 0; }
.group-more { margin: 6px 0 0; font: .88rem system-ui, sans-serif; }

.passages ol { list-style: none; padding: 0; display: grid; gap: 8px; }
.passages li { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: baseline; }
.seek { font: 600 .9rem ui-monospace, Menlo, monospace; background: var(--cream); border-inline-start: 3px solid var(--blue); padding: 1px 8px; border-radius: var(--radius); text-decoration: none; }
.tag { font: .78rem system-ui, sans-serif; background: var(--stone); border-radius: 10px; padding: 1px 8px; text-decoration: none; }

.index-search input[type=search] { font-size: 1.15rem; padding: 14px 16px; }
.cloud { display: flex; flex-wrap: wrap; gap: 10px 18px; align-items: baseline; justify-content: center; line-height: 1.2; padding: 18px 0; }
.cloud a { text-decoration: none; color: var(--blue); }
.cloud a:hover { text-decoration: underline; }
.cloud-1 { font-size: .95rem; opacity: .8; } .cloud-2 { font-size: 1.15rem; } .cloud-3 { font-size: 1.45rem; }
.cloud-4 { font-size: 1.8rem; font-weight: 600; } .cloud-5 { font-size: 2.3rem; font-weight: 600; }
.passage-card > a { display: flex; gap: 14px; align-items: center; padding: 10px; }
.az { columns: 2 220px; padding: 0; list-style: none; }
.az li { break-inside: avoid; padding: 3px 0; }

.excerpts { list-style: none; margin: -4px 0 8px; padding: 0 12px; display: grid; gap: 6px; font-size: .92rem; }
.excerpts li { display: flex; gap: 10px; align-items: baseline; }
.excerpts strong { background: #fff3b0; font-weight: 600; }
.passage-card .seek { flex: 0 0 auto; min-width: 5.2em; text-align: center; }
.toolbar { display: grid; gap: 10px; }
.filter-group { display: grid; gap: 6px; }
.filter-title { font: 600 .82rem system-ui, sans-serif; text-transform: uppercase; letter-spacing: .06em; color: var(--muted, #6b5f4b); margin: 0; }
@media (min-width: 760px) { .toolbar { grid-template-columns: auto 1fr; align-items: start; column-gap: 32px; } }
.footer-langs a[aria-current] { font-weight: 600; }
.consent { display: flex; gap: 8px; align-items: flex-start; font-size: .92rem; }
.consent input { margin-top: 4px; }
.privacy-note { font-size: .82rem; }
.legal h2 { font-size: 1.15rem; margin-top: 1.6em; }
.consent[hidden] { display: none; }

/* Textes */
.texts .lead { color: var(--muted); }
.hok-card { display: flex; flex-direction: column; gap: 4px; padding: 14px 18px; text-decoration: none; color: var(--ink); border-inline-start: 4px solid var(--blue); }
.hok-card strong { font-family: var(--hebrew); font-size: 1.5rem; color: var(--blue); }
.hok-card:hover strong { text-decoration: underline; }
.text-list { list-style: none; padding: 0; margin: 0 0 1.2em; display: grid; gap: 8px; }
.text-item { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; padding: 10px 14px; }
.text-lang { font: 600 .72rem/1 system-ui, sans-serif; letter-spacing: .04em; color: var(--muted); border: 1px solid var(--line); border-radius: 3px; padding: 3px 5px; }
.text-parts { display: flex; flex-wrap: wrap; gap: 6px; width: 100%; }
.text-parts a { padding: 2px 8px; border: 1px solid var(--line); border-radius: 4px; text-decoration: none; background: var(--white); }
.text-parts a:hover { background: var(--blue); color: var(--white); }
