.cal-view { --cal-ink: #182c49; --cal-blue: #244b88; --cal-muted: #536275; --cal-rule: #d6dbdf; max-width: 1180px; margin: 0 auto; padding: clamp(36px,6vw,85px) clamp(18px,5vw,68px) 82px; color: var(--cal-ink); font-family: Arial, Helvetica, sans-serif; }
.cal-view *, .cal-view *::before, .cal-view *::after { box-sizing: border-box; }
.cal-intro { max-width: 790px; }
.cal-eyebrow, .cal-count, .cal-meta, .cal-links, .cal-filter { font-family: Arial, Helvetica, sans-serif; }
.cal-view .cal-eyebrow { margin: 0 0 .9rem; font-size: .72rem; letter-spacing: .17em; font-weight: 700; color: var(--cal-blue); }
.cal-view h1 { margin: 0; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(2.5rem,5vw,4.9rem); line-height: 1.04; font-weight: 400; letter-spacing: -.05em; }
.cal-intro > p:last-child { font-size: clamp(1.04rem,1.6vw,1.2rem); line-height: 1.62; max-width: 65ch; margin: 1.15rem 0 0; color: var(--cal-muted); }
.cal-tools { display: flex; align-items: flex-end; flex-wrap: wrap; justify-content: space-between; gap: 1.15rem 1.5rem; margin: 2.5rem 0; padding: 0 0 1.45rem; border-bottom: 1px solid var(--cal-rule); }
.cal-years { display: flex; flex-wrap: wrap; gap: .38rem; }
.cal-years button, .cal-filter select, .cal-empty button { font: inherit; color: var(--cal-ink); cursor: pointer; }
.cal-years button { padding: .7rem .85rem; min-height: 42px; background: transparent; border: 1px solid #c3cbd2; border-radius: 3px; font-size: .86rem; font-weight: 600; }
.cal-years button:hover, .cal-empty button:hover { background: #e7edf4; }
.cal-years button[aria-pressed="true"] { color: #fff; background: var(--cal-blue); border-color: var(--cal-blue); }
.cal-filter { display: grid; gap: .35rem; color: var(--cal-muted); font-size: .77rem; font-weight: 600; }
.cal-filter select { height: 42px; max-width: 100%; border-radius: 3px; padding: 0 1.8rem 0 .65rem; border: 1px solid #b7c1cb; background: #fff; font-size: .84rem; }
.cal-period { display: flex; align-items: baseline; gap: 1.2rem; flex-wrap: wrap; }
.cal-period .cal-period-year { margin: 0; color: var(--cal-blue); font: 400 clamp(1.5rem,2.8vw,2.4rem)/1.1 Georgia,serif; letter-spacing: -.04em; }
.cal-period h2 { margin: 0; font: 400 clamp(1.5rem,2.6vw,2.2rem)/1.14 Georgia,serif; letter-spacing: -.035em; }
.cal-period .cal-count { margin: .4rem 0 0; color: var(--cal-muted); font-size: .81rem; line-height: 1.5; }
.cal-items { margin: 2.15rem 0 2.7rem; padding-left: 9px; }
.cal-event { position: relative; border-left: 1px solid #c4cfdb; padding: 0 0 1.85rem 1.75rem; }
.cal-event:last-child { padding-bottom: 0; }
.cal-event::before { content: ''; display: block; position: absolute; top: .48rem; left: -5px; width: 9px; height: 9px; border-radius: 50%; background: var(--cal-blue); box-shadow: 0 0 0 4px #faf9f6; }
.cal-meta { display: flex; align-items: center; gap: .55rem .8rem; flex-wrap: wrap; font-size: .77rem; line-height: 1.4; }
.cal-when { font-weight: 700; color: var(--cal-blue); }
.cal-stage { font-size: .7rem; font-weight: 600; padding: .17rem .48rem; border-radius: 3px; }
.cal-stage--decision { color: #574623; background: #f1eacf; }
.cal-stage--application { color: #27467a; background: #e6edf8; }
.cal-stage--effet { color: #225346; background: #e4eee8; }
.cal-event h3 { margin: .55rem 0 .35rem; font: 400 clamp(1.28rem,2.25vw,1.75rem)/1.22 Georgia,serif; letter-spacing: -.024em; }
.cal-event > p, .cal-trace li { max-width: 77ch; margin: 0; font-size: 1rem; line-height: 1.58; color: #35455b; }
.cal-links { display: flex; flex-wrap: wrap; gap: .4rem 1.35rem; margin: .65rem 0 0; font-size: .8rem; }
.cal-links a, .cal-trace a { color: #244b88; text-decoration: none; font-weight: 650; }
.cal-links a:hover, .cal-trace a:hover { text-decoration: underline; text-underline-offset: .18em; }
.cal-links a + a { color: var(--cal-muted); font-weight: 400; }
.cal-pdf { font-size: .67rem; letter-spacing: .06em; font-weight: 700; margin-left: .12rem; }
.cal-empty { padding: 1.1rem 1.4rem; background: #eef1f4; color: var(--cal-muted); }
.cal-empty p { margin: 0 0 .6rem; }
.cal-empty button { background: #fff; border: 1px solid #b7c1cb; border-radius: 3px; padding: .55rem .75rem; font-size: .85rem; }
.cal-trace { background: #f0f1eb; padding: 1.2rem 1.55rem; border: 1px solid #d8ddd4; }
.cal-trace summary { cursor: pointer; font-size: .76rem; color: var(--cal-blue); font-weight: 650; letter-spacing: .02em; }
.cal-trace summary span { display: block; font: 400 1.45rem/1.22 Georgia,serif; color: var(--cal-ink); letter-spacing: -.02em; margin: .35rem 0 0; }
.cal-trace ol { margin: 1.2rem 0 1rem; padding: 0 0 0 1.3rem; }
.cal-trace li { padding-left: .25rem; margin: 0 0 .7rem; font-size: .92rem; }
.cal-trace li strong { display: block; color: var(--cal-ink); }
.cal-trace a { font-size: .84rem; }
.cal-view :is(button, select, summary, a):focus-visible { outline: 3px solid #b17624; outline-offset: 3px; }
@media (max-width: 660px) {
  .cal-view { padding: 34px 18px 56px; }
  .cal-tools { margin: 1.7rem 0; gap: .8rem; }
  .cal-years { gap: .3rem; }
  .cal-years button { padding: .55rem .67rem; }
  .cal-period { display: block; }
  .cal-period .cal-period-year { margin-bottom: .35rem; }
  .cal-event { padding-left: 1.15rem; }
  .cal-items { margin-top: 1.5rem; }
}

.cal-tools { align-items: start; flex-direction: column; gap: 1.1rem; }
.cal-filters { display: flex; align-items: end; flex-wrap: wrap; gap: .8rem 1.15rem; max-width: 100%; }
.cal-filter select, .cal-years button, .cal-empty button { min-height: 44px; }
.cal-clear { border: 0; background: none; color: var(--cal-blue); text-decoration: underline; text-underline-offset: .2em; min-height: 44px; font-size:.86rem; }
.cal-period-year:empty { display: none; }
.cal-year-group { margin-bottom: 2rem; }
.cal-year-group > h3 { font: 400 1.75rem/1.2 Georgia,serif; color: var(--cal-blue); margin: .4rem 0 1.2rem; }
.cal-compact { padding-bottom:.3rem; }
.cal-compact summary { cursor: pointer; list-style: none; position: relative; padding: 0 2rem .85rem 0; }
.cal-compact summary::-webkit-details-marker { display:none; }
.cal-compact summary::after { content:''; position:absolute; top:1rem; right:.35rem; width:8px; height:8px; border:2px solid var(--cal-blue); border-left:0; border-top:0; transform:rotate(45deg); }
.cal-compact[open] > summary::after { transform:rotate(225deg); }
.cal-compact[open] { padding-bottom:1.25rem; }
.cal-event-title { display:block; margin:.3rem 0 0; font: 400 clamp(1.17rem,2vw,1.52rem)/1.3 Georgia,serif; letter-spacing:-.022em; }
.cal-compact summary:hover .cal-event-title { text-decoration: underline; text-underline-offset: .15em; }
.cal-empty button { margin:.25rem .5rem .25rem 0; }
@media (max-width:660px) {
  .cal-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; width:100%; }
  .cal-filter { min-width:0; }
  .cal-filter select { width:100%; padding-right:.2rem; }
  .cal-clear { justify-self:start; grid-column:1/-1; }
}
