/* CamAlmanac : papier chaud, encre bleu-vert, safran. Libre Caslon Text (titres, prose) + Work Sans (interface). Feuille unique. */
@font-face{font-family:"Libre Caslon Text";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/libre-caslon-text-400-normal.woff2) format("woff2")}
@font-face{font-family:"Libre Caslon Text";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/libre-caslon-text-400-italic.woff2) format("woff2")}
@font-face{font-family:"Libre Caslon Text";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/libre-caslon-text-700-normal.woff2) format("woff2")}
@font-face{font-family:"Work Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/work-sans-400-normal.woff2) format("woff2")}
@font-face{font-family:"Work Sans";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/work-sans-500-normal.woff2) format("woff2")}
@font-face{font-family:"Work Sans";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/work-sans-600-normal.woff2) format("woff2")}

:root{
  --paper:#F4EFE4; --paper-2:#ECE5D5; --paper-3:#E1D6BF; --card:#FBF8F1;
  --ink:#14383F; --ink-2:#3F5D5E; --ink-3:#6E817C;
  --rule:#CBBE9F; --rule-2:#B3A47F;
  --saffron:#C8891A; --ochre:#94600E; --saffron-wash:#F3E2BC;
  --serif:"Libre Caslon Text",Georgia,"Times New Roman",serif;
  --sans:"Work Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --gutter:max(16px,4vw); --page:74rem; --measure:42rem;
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1rem/1.55 var(--sans);font-variant-numeric:tabular-nums;overflow-wrap:break-word}
img,svg,iframe{max-width:100%}
img{height:auto;display:block}
a{color:var(--ink);text-decoration-color:var(--saffron);text-decoration-thickness:.08em;text-underline-offset:.18em}
a:hover{color:var(--ochre)}
a:focus-visible,button:focus-visible{outline:2px solid var(--saffron);outline-offset:2px}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.15;margin:0 0 .5em;letter-spacing:-.005em}
h1{font-size:clamp(1.75rem,1.4rem + 1.6vw,2.6rem)}
h2{font-size:clamp(1.35rem,1.15rem + .9vw,1.8rem)}
h3{font-size:1.15rem}
p{margin:0 0 1em}
main{display:block;padding-bottom:1rem}
.to-text{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--paper);padding:.5rem 1rem;z-index:5}
.to-text:focus{left:var(--gutter)}
.page{max-width:var(--page);margin:0 auto;padding:0 var(--gutter)}

/* ---- barre du haut : logo, 18+, menu (défile en mobile) ---- */
.bar{background:var(--paper);border-bottom:1px solid var(--rule)}
.bar-in{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.25rem 1rem;padding-top:.7rem}
.bar-mark{line-height:0;justify-self:start}
.bar-mark img{width:150px;height:auto}
.bar-age{justify-self:end;font:600 .72rem/1 var(--sans);border:1.5px solid var(--ink);border-radius:4px;padding:.25rem .35rem}
.bar-nav{grid-column:1/-1;display:flex;gap:1.15rem;overflow-x:auto;scrollbar-width:none;font:500 .92rem/1 var(--sans);margin:0 calc(-1 * var(--gutter));padding:.75rem var(--gutter) .7rem;white-space:nowrap;-webkit-mask-image:linear-gradient(to right,#000 85%,transparent);mask-image:linear-gradient(to right,#000 85%,transparent)}
.bar-nav::-webkit-scrollbar{display:none}
.bar-nav a{text-decoration:none;padding-bottom:.2rem;border-bottom:2px solid transparent}
.bar-nav a:hover,.bar-nav a[aria-current]{border-bottom-color:var(--saffron)}
@media (min-width:980px){
  .bar-in{grid-template-columns:auto auto 1fr;padding-bottom:.7rem}
  .bar-age{order:3}
  .bar-nav{grid-column:auto;order:2;justify-self:end;margin:0;padding:0;overflow:visible;-webkit-mask-image:none;mask-image:none}
}

/* ---- en-têtes compacts, fil d'Ariane, pastilles ---- */
.itinerary{font-size:.84rem;color:var(--ink-2);margin:.9rem 0 0}
.itinerary ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.2rem .5rem}
.itinerary li+li::before{content:"›";margin-right:.5rem;color:var(--rule-2)}
.pagehead{margin:1.1rem 0 1rem}
.itinerary + .pagehead,.itinerary + article .pagehead{margin-top:.4rem}
.pagehead h1{margin:0 0 .3rem}
.top-intro{font:400 1.02rem/1.5 var(--serif);color:var(--ink-2);margin:0 0 .35rem;max-width:44rem}
.top-line{font-size:.92rem;color:var(--ink-2);margin:0}
.top-line b{color:var(--ink);font-weight:600}
.pagehead--article h1{max-width:24ch}
.chips{display:flex;gap:.45rem;overflow-x:auto;scrollbar-width:none;margin:.75rem calc(-1 * var(--gutter)) 0;padding:0 var(--gutter)}
.chips::-webkit-scrollbar{display:none}
.chips a{flex:none;display:inline-flex;gap:.45rem;align-items:baseline;padding:.45rem .8rem;border:1px solid var(--rule-2);border-radius:999px;background:var(--card);text-decoration:none;font:500 .9rem/1.1 var(--sans)}
.chips a span{color:var(--ink-2);font-size:.8rem}
.chips a:hover{border-color:var(--saffron);background:var(--saffron-wash)}
.block{margin-top:2.6rem}
.block > h2{margin-bottom:.8rem}
.note{font-size:.9rem;color:var(--ink-2);margin:.9rem 0;max-width:44rem}
.note--warn{background:var(--saffron-wash);border-radius:6px;padding:.55rem .8rem;color:var(--ink)}

/* ---- grille des rooms : mosaïque à motif fixe (1 case sur 3 double, 3:2 ; les autres 3:4), tailles réservées dès le HTML.
   almanac.js choisit seulement le cadrage : capture du format de la case = plein cadre, sinon image entière sur fond flouté ---- */
.register{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row dense;gap:10px}
@media (min-width:700px){.register{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}}
@media (min-width:1100px){.register{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (min-width:700px){.register--brief{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1100px){.register--brief{grid-template-columns:repeat(6,minmax(0,1fr))}}
.leaf{min-width:0}
.leaf--wide{grid-column:span 2}
.entry-link{position:relative;display:block;height:100%;border-radius:10px;overflow:hidden;background:#0F2226;isolation:isolate;text-decoration:none}
.entry-plate{display:block;position:relative;height:100%;aspect-ratio:3/4;overflow:hidden;background:#0F2226}
.leaf--wide .entry-plate{aspect-ratio:3/2}
.entry-plate::before{content:"";position:absolute;inset:-24px;background:var(--snap) center/cover no-repeat;filter:blur(18px) saturate(1.1);opacity:.85}
.entry-plate img{position:relative;width:100%;height:100%;object-fit:contain;transition:transform .35s ease}
.entry-plate[data-fit="cover"] img{object-fit:cover}
.entry-name{position:absolute;z-index:1;left:8px;bottom:8px;max-width:calc(100% - 16px);padding:.32rem .55rem .28rem;background:rgba(244,239,228,.94);border-radius:6px;color:var(--ink);font:400 1rem/1.15 var(--serif);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 2px 8px rgba(15,34,38,.25)}
.entry-meta{position:absolute;z-index:1;right:8px;top:8px;max-width:calc(100% - 16px);padding:.25rem .5rem;border-radius:999px;background:rgba(15,34,38,.72);color:#F4EFE4;font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.entry-meta b{font-weight:600;color:var(--saffron-wash)}
.entry-meta b::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--saffron);margin-right:.35rem;vertical-align:.1em}
.entry-link:hover .entry-plate img{transform:scale(1.04)}
.entry-link:hover .entry-name{background:#fff}

/* ---- index à points de conduite ---- */
.gazetteer-set{display:grid;gap:2rem 2.5rem;grid-template-columns:minmax(0,1fr)}
@media (min-width:760px){.gazetteer-set{grid-template-columns:repeat(2,minmax(0,1fr))}}
.gazetteer h2,.gazetteer h3{font-size:1.15rem;margin:0 0 .4rem;padding-bottom:.35rem;border-bottom:1px solid var(--rule)}
.gazetteer ul{list-style:none;margin:0;padding:0}
.gazetteer li a{display:flex;align-items:baseline;gap:.4rem;padding:.32rem 0;text-decoration:none}
.gazetteer li a:hover .gazetteer-name{text-decoration:underline;text-decoration-color:var(--saffron)}
.gazetteer-dots{flex:1;min-width:1rem;border-bottom:1px dotted var(--rule-2);transform:translateY(-.3em)}
.gazetteer-n{font-weight:500;color:var(--ink-2);font-size:.88rem}

/* ---- courbe horaire ---- */
.tide{margin:0;background:var(--card);border:1px solid var(--rule);border-radius:8px;padding:1rem .8rem .8rem}
.tide-table{list-style:none;margin:0;padding:0;display:flex;align-items:flex-end;gap:2px;height:9.5rem;border-bottom:1px solid var(--ink)}
.tide-table li{flex:1 1 0;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end}
.tide-bar{display:block;height:calc(var(--v,0) * 100%);min-height:1px;background:var(--ink);opacity:.82}
.tide-table li[data-peak] .tide-bar{background:var(--saffron);opacity:1}
.tide-table li[data-empty] .tide-bar{background:none;border-top:1px dashed var(--rule-2);height:0}
.tide-axis{list-style:none;margin:.3rem 0 0;padding:0;display:flex;gap:2px;font-size:.66rem;color:var(--ink-2)}
.tide-axis li{flex:1 1 0;min-width:0;white-space:nowrap;visibility:hidden}
.tide-axis li:nth-child(6n+1){visibility:visible}
.tide-note{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem 1rem;font-size:.82rem;color:var(--ink-2);margin:.6rem 0 0}
.tide-figures{margin-top:.8rem;font-size:.85rem}
.tide-figures summary{cursor:pointer;color:var(--ink-2)}
.tide-figures table{border-collapse:collapse;margin-top:.5rem;width:100%;max-width:22rem}
.tide-figures th,.tide-figures td{text-align:left;padding:.2rem .5rem;border-bottom:1px solid var(--rule)}
.tide-figures td{text-align:right}

/* ---- habitués ---- */
.muster{list-style:none;margin:0;padding:0;column-gap:2.5rem;counter-reset:regular}
@media (min-width:700px){.muster{columns:2}}
@media (min-width:1100px){.muster{columns:3}}
.muster li{counter-increment:regular;break-inside:avoid;display:flex;align-items:baseline;gap:.5rem;padding:.38rem 0;border-bottom:1px dotted var(--rule-2)}
.muster li::before{content:counter(regular);min-width:1.8rem;font-size:.78rem;color:var(--ink-3);text-align:right}
.muster a{font-family:var(--serif);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.roll-avg{margin-left:auto;font-size:.82rem;color:var(--ink-2);white-space:nowrap}
.cresset{display:inline-flex;align-items:center;gap:.35rem;font:600 .7rem/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ochre);white-space:nowrap}
.cresset::before{content:"";width:.55rem;height:.55rem;border-radius:50%;background:var(--saffron);box-shadow:0 0 0 3px var(--saffron-wash)}

/* ---- fiche performer ---- */
.notice-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.4rem 1rem}
.notice-head h1{margin:0;word-break:break-word}
.status{display:inline-flex;align-items:center;gap:.4rem;font:600 .78rem/1 var(--sans);padding:.4rem .65rem;border-radius:999px;border:1px solid var(--rule-2);color:var(--ink-2)}
.status::before{content:"";width:.5rem;height:.5rem;border-radius:50%;border:1px solid var(--ink-3)}
.status--on{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.status--on::before{background:var(--saffron);border-color:var(--saffron)}
.notice-body{display:grid;gap:2rem;grid-template-columns:minmax(0,1fr)}
@media (min-width:980px){.notice-body--live{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start}}
.abacus{display:grid;grid-template-columns:minmax(0,1fr);margin:0;border-top:1px solid var(--ink)}
@media (min-width:640px){.abacus{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2rem}}
.notice-body--live .abacus{grid-template-columns:minmax(0,1fr)}
.tally-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--rule)}
.abacus dt{font-size:.88rem;color:var(--ink-2)}
.abacus dd{margin:0;font:400 1.15rem/1.3 var(--serif);text-align:right}
.abacus dd small{font:400 .78rem/1 var(--sans);color:var(--ink-2)}
.tally-blank{color:var(--ink-3)}
.notice-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin:1.1rem 0 0}
.seal{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 1.3rem;background:var(--ink);color:var(--paper);font:600 .95rem/1.2 var(--sans);text-decoration:none;border:1px solid var(--ink);box-shadow:3px 3px 0 var(--saffron)}
.seal:hover{background:#0E2A30;color:var(--paper)}
.seal--plain{background:transparent;color:var(--ink);box-shadow:none}
.seal--plain:hover{background:var(--saffron-wash);color:var(--ink)}
.engraving{margin:0}
.plate-frame{position:relative;aspect-ratio:16/10;background:#0F2226;border-radius:12px;overflow:hidden}
.plate-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.plate-veil{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.9rem;padding:1.2rem;text-align:center;background:rgba(244,239,228,.96);color:var(--ink)}
.plate-veil[hidden]{display:none}
.plate-veil p{font:400 1.05rem/1.5 var(--serif);margin:0;max-width:28rem}
.hours-usual{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.hours-usual li{font:400 1.2rem/1.2 var(--serif);padding:.45rem .8rem;background:var(--card);border:1px solid var(--rule);border-radius:6px}
.hours-tz{font-size:.82rem;color:var(--ink-2)}
.hour-grid{list-style:none;margin:.4rem 0 0;padding:0;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:2px}
@media (min-width:700px){.hour-grid{grid-template-columns:repeat(24,minmax(0,1fr))}}
.hour-grid li{position:relative;aspect-ratio:1/1.15;background:var(--card);border:1px solid var(--rule);font-size:.62rem;color:var(--ink-2);display:flex;align-items:flex-end;justify-content:center;padding-bottom:2px;overflow:hidden}
.hour-grid li::before{content:"";position:absolute;inset:0;background:var(--ink);opacity:var(--k,0)}
.hour-grid li span{position:relative}
.hour-grid li[data-dark] span{color:var(--paper)}
.week-row{list-style:none;margin:.8rem 0 0;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.week-row li{text-align:center;padding:.5rem 0 .4rem;border:1px solid var(--rule);background:var(--card);font-size:.75rem;color:var(--ink-2)}
.week-row b{display:block;font:400 1.2rem/1.2 var(--serif);color:var(--ink)}
.week-row li[data-seen]{background:var(--saffron-wash);border-color:var(--saffron)}
.filed{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.45rem}
.filed a{display:inline-block;padding:.35rem .7rem;border:1px solid var(--rule-2);border-radius:999px;text-decoration:none;font-size:.88rem;background:var(--card)}
.filed a:hover{border-color:var(--saffron);background:var(--saffron-wash)}

/* ---- prose ---- */
.essay{max-width:var(--measure);font:400 1.06rem/1.7 var(--serif)}
.essay h2{margin-top:2rem;font-size:1.5rem}
.essay h3{margin-top:1.5rem}
.essay ul,.essay ol{padding-left:1.3rem;margin:0 0 1em}
.essay li{margin-bottom:.35em}
.essay table{border-collapse:collapse;width:100%;font:400 .92rem/1.45 var(--sans);margin:1rem 0;display:block;overflow-x:auto}
.essay th,.essay td{border-bottom:1px solid var(--rule);padding:.4rem .6rem;text-align:left}
.essay blockquote{margin:1rem 0;padding-left:1rem;border-left:3px solid var(--saffron);font-style:italic}
.essay code{font-size:.9em;background:var(--paper-2);padding:.05em .3em}
.essay-meta{font-size:.84rem;color:var(--ink-2);display:flex;flex-wrap:wrap;gap:.2rem 1rem;margin:.3rem 0 0}
.queries{max-width:var(--measure)}
.queries details{border-top:1px solid var(--rule);padding:.75rem 0}
.queries details:last-child{border-bottom:1px solid var(--rule)}
.queries summary{cursor:pointer;font:400 1.1rem/1.4 var(--serif)}
.queries details p{margin:.5rem 0 0;color:var(--ink-2)}

/* ---- liste d'articles ---- */
.catalogue{list-style:none;margin:0;padding:0}
.catalogue li{display:grid;grid-template-columns:minmax(0,1fr);gap:.2rem;padding:1.1rem 0;border-bottom:1px solid var(--rule)}
@media (min-width:760px){.catalogue li{grid-template-columns:9rem minmax(0,1fr);column-gap:1.6rem}}
.catalogue-date{font:500 .78rem/1.4 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ochre)}
.catalogue h3{margin:0 0 .25rem;font-size:1.3rem}
.catalogue h3 a{text-decoration:none}
.catalogue h3 a:hover{text-decoration:underline;text-decoration-color:var(--saffron)}
.catalogue p{margin:0;color:var(--ink-2)}

/* ---- statistiques ---- */
.columns-2{display:grid;gap:2rem 2.5rem;grid-template-columns:minmax(0,1fr)}
@media (min-width:820px){.columns-2{grid-template-columns:repeat(2,minmax(0,1fr))}}
.columns-2 h3{font:600 .82rem/1.3 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);margin:0 0 .4rem}
.bars{list-style:none;margin:0;padding:0}
.bars li{display:grid;grid-template-columns:minmax(0,8.5rem) minmax(0,1fr) auto;align-items:center;gap:.6rem;padding:.3rem 0;font-size:.88rem;border-bottom:1px dotted var(--rule)}
.bars span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bars i{display:block;height:.55rem;background:var(--ink);opacity:.8;width:calc(var(--v,0) * 100%)}
.bars b{font-weight:500;min-width:3.5rem;text-align:right}

/* ---- pied ---- */
.pagefoot{border-top:1px solid var(--rule);background:var(--paper-2);font-size:.86rem;color:var(--ink-2);margin-top:3rem}
.foot-in{padding-top:1.6rem;padding-bottom:1.8rem}
.pagefoot p{max-width:46rem;margin:0 0 .9rem}
.pagefoot ul{list-style:none;margin:0 0 .9rem;padding:0;display:flex;flex-wrap:wrap;gap:.35rem 1.2rem}
.foot-c{font-size:.8rem;color:var(--ink-3)}

/* ---- erreur ---- */
.lost{text-align:center;padding:2.5rem 0 1.5rem}
.lost .top-intro{margin:0 auto 1.4rem}
.lost-code{font:400 clamp(3.5rem,3rem + 5vw,6rem)/1 var(--serif);color:var(--saffron);margin:0 0 .5rem}
