/* Fiches du programme. Les composants sont isolés de la navigation du site. */
.th-page {
  --th-ink: #19273d;
  --th-blue: #254dc2;
  --th-muted: #526071;
  --th-line: #d6dce3;
  --th-tint: #f0f4fa;
  color: var(--th-ink);
  width: min(100% - 64px, 1168px);
  margin: 0 auto;
  padding: 39px 0 72px;
  font-family: Arial, Helvetica, sans-serif;
}
.th-page *, .th-page *::before, .th-page *::after { box-sizing: border-box }
.th-page a, .th-page button, .th-page input { -webkit-tap-highlight-color: transparent }
.th-page button, .th-page input { font: inherit }
.th-page button { cursor: pointer }
.th-page :is(a,button,input,[tabindex]):focus-visible { outline: 3px solid var(--th-blue); outline-offset: 4px }
.th-page :is(h1,h2,h3,p,ol) { margin: 0 }
.th-page .th-back, .th-page .th-inline { color: var(--th-blue); text-decoration: none; font-size: .92rem; font-weight: 650 }
.th-back { display: inline-flex; gap: 8px; align-items: center; min-height: 32px }
.th-back:hover, .th-inline:hover, .th-pdf:hover { text-decoration: underline; text-underline-offset: 3px }
.th-intro { padding: 33px 0 29px; max-width: 850px }
.th-kicker, .th-section-no, .th-card-meta, .th-neighbours small {
  color: var(--th-blue);
  font-family: Arial, Helvetica, sans-serif;
  font-size: .71rem; font-weight: 700; line-height: 1.45; letter-spacing: .115em; text-transform: uppercase;
}
.th-kicker span { color: #8998b0; margin: 0 .5rem }
.th-page h1 { font-family: Georgia, 'Times New Roman', serif; color: var(--th-ink); font-weight: 500; font-size: clamp(2.55rem,5.3vw,4.5rem); letter-spacing: -.047em; line-height: 1.04; padding: .16em 0 .22em }
.th-intro > p { max-width: 710px; color: var(--th-muted); font-size: 1.1rem; line-height: 1.6 }
.th-tools { margin: 4px 0 17px }
.th-search {
  display: flex; align-items: center; gap: 12px; max-width: 616px; height: 49px; padding: 0 16px;
  border: 1px solid #b8c4d3; background: #fff; color: var(--th-muted); border-radius: 5px;
}
.th-search:focus-within { border-color: var(--th-blue); outline: 2px solid #8ea6f0 }
.th-search svg { flex: none }
.th-search input { display:block; min-width:0; width:100%; height:100%; background:transparent; border:0; outline:none !important; color:var(--th-ink); font-size:1rem; box-shadow:none }
.th-groups { display:flex; gap:8px; flex-wrap:wrap; margin:18px 0 8px }
.th-groups button { line-height:1.25; font-size:.91rem; border:1px solid var(--th-line); background:transparent; color:var(--th-ink); padding:9px 13px; border-radius:30px }
.th-groups button:hover { border-color:var(--th-blue); color:var(--th-blue) }
.th-groups button[aria-pressed=true] { background:var(--th-ink); border-color:var(--th-ink); color:#fff }
.th-results-head { min-height:48px; display:flex; align-items:center; justify-content:space-between; gap:12px; border-bottom:1px solid var(--th-line); margin-bottom:17px }
.th-count { color:var(--th-muted); font-size:.89rem }
.th-reset { border:0; background:none; color:var(--th-blue); padding:8px 0; font-size:.87rem !important; text-decoration:underline; text-underline-offset:3px }
.th-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px }
.th-page .th-card { text-decoration:none; color:var(--th-ink) }
.th-card { display:flex; flex-direction:column; min-width:0; padding:22px; background:#fff; border:1px solid var(--th-line); border-radius:6px; transition:border-color .16s, box-shadow .16s }
.th-card:hover { border-color:#94a8d2; box-shadow:0 4px 14px #20385b0c }
.th-card-meta { display:flex; flex-wrap:wrap; align-items:center; gap:9px; font-size:.63rem; min-height:22px }
.th-card-meta > span { border:1px solid #cbd6f0; border-radius:3px; padding:2px 6px; letter-spacing:.025em; font-size:.72rem; background:#f3f6ff }
.th-card h2 { font-family:Georgia,serif; font-size:clamp(1.4rem,2.2vw,1.72rem); font-weight:500; line-height:1.19; letter-spacing:-.026em; margin:15px 0 9px }
.th-card p { color:var(--th-muted); font-size:.95rem; line-height:1.5; flex:1 }
.th-read { display:flex; justify-content:space-between; align-items:center; border-top:1px solid #e0e5ed; padding-top:13px; margin-top:18px; font-size:.82rem; font-weight:700; color:var(--th-blue) }
.th-card:hover .th-read svg { transform:translateX(2px) }
.th-empty { padding:26px; border:1px dashed #aabbcf; grid-column:1/-1; max-width:700px; border-radius:5px }
.th-empty p { margin-top:8px; color:var(--th-muted) }
.th-detail-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(230px,285px); gap:clamp(25px,5vw,70px); align-items:start }
.th-main { min-width:0 }
.th-tabs { display:flex; gap:clamp(12px,3vw,32px); border-bottom:1px solid var(--th-line) }
.th-tabs button { border:0; border-bottom:3px solid transparent; background:none; padding:15px 1px 11px; color:var(--th-muted); font-weight:650; font-size:.94rem }
.th-tabs button[aria-selected=true] { border-color:var(--th-blue); color:var(--th-blue) }
.th-content { padding:25px 0 12px }
.th-page .th-content > h2, .th-pensions h3, .th-side h2 { font-family:Georgia,serif; font-size:clamp(1.6rem,2.8vw,2.05rem); line-height:1.22; letter-spacing:-.027em; font-weight:500 }
.th-lead, .th-choices p, .th-timeline p, .th-full-section p, .th-pensions p { line-height:1.62; color:#344156; font-size:1.02rem }
.th-content .th-lead { margin-top:15px }
.th-choices { list-style:none; padding:0; margin:22px 0 0 !important }
.th-choices li { display:flex; gap:15px; border-top:1px solid var(--th-line); padding:16px 0 }
.th-choices li>span { color:var(--th-blue); font-family:Georgia,serif; font-size:1.25rem; margin-top:3px }
.th-side { margin-top:5px; padding:23px 18px; border-top:3px solid var(--th-blue); background:var(--th-tint); border-radius:0 0 5px 5px }
.th-side-icon { color:var(--th-blue); margin-bottom:15px }
.th-side h2 { font-size:1.48rem; margin:9px 0 12px }
.th-side p { color:var(--th-muted); font-size:.93rem; line-height:1.52 }
.th-side .th-inline { display:block; margin-top:13px; line-height:1.4 }
.th-page .th-pdf { display:flex; gap:8px; align-items:center; margin-top:17px; color:var(--th-blue); font-size:.86rem; font-weight:700; line-height:1.4; text-decoration:none }
.th-pdf svg { flex-shrink:0 }
.th-page .th-note { font-size:.88rem; line-height:1.55; color:var(--th-muted); margin:13px 0 }
.th-timeline { padding:1px 0 0 0; list-style:none; margin:20px 0 !important }
.th-timeline li { padding:0 0 20px 22px; position:relative; border-left:1px solid #b3c7e3 }
.th-timeline li:before { content:""; position:absolute; height:9px; width:9px; border-radius:50%; top:.45rem; left:-5px; background:var(--th-blue) }
.th-timeline strong { color:var(--th-blue); line-height:1.5; font-size:1.02rem }
.th-timeline p { margin-top:5px }
.th-timeline li:last-child { padding-bottom:2px }
.th-full-section { margin:26px 0; border-top:1px solid var(--th-line); padding:17px 0 0 }
.th-full-section h3 { font:500 1.5rem/1.24 Georgia,serif; letter-spacing:-.02em; margin:5px 0 12px }
.th-full-section p+p { margin-top:12px }
.th-pensions { margin-top:18px; background:#f3f6fa; border-radius:5px; padding:22px }
.th-pensions h3 { font-size:1.67rem; margin:9px 0 }
.th-table-scroll { overflow:auto; max-width:100%; margin-top:15px; border:1px solid #d7dfe8; border-radius:4px }
.th-page table { width:100%; border-collapse:collapse; font-size:.91rem; text-align:left; color:var(--th-ink); line-height:1.4 }
.th-page th, .th-page td { padding:10px 11px; border:0; border-bottom:1px solid #d4dee9 }
.th-page thead th { background:#23364f; color:#fff; font-weight:650 }
.th-page tbody th { font-weight:600 }
.th-page tbody tr:nth-child(odd) { background:#fff }
.th-page tbody tr:nth-child(even) { background:#f4f7fa }
.th-neighbours { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:40px; border-top:1px solid var(--th-line); padding-top:17px }
.th-neighbours a { color:var(--th-ink); text-decoration:none; padding:9px 0; display:flex; flex-direction:column; gap:6px; align-items:flex-start }
.th-neighbours a:last-child { text-align:right; align-items:flex-end }
.th-neighbours a:hover span { color:var(--th-blue); text-decoration:underline; text-underline-offset:4px }
.th-neighbours small { font-size:.64rem }
.th-neighbours span { font-family:Georgia,serif; font-size:1.2rem; line-height:1.25 }
.th-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0 }
@media(max-width:900px){
  .th-grid { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .th-page { width:calc(100% - 40px) }
  .th-detail-layout { grid-template-columns:minmax(0,1fr) 215px; gap:23px }
}
@media(max-width:680px){
  .th-page { width:calc(100% - 36px); padding:20px 0 42px }
  .th-intro { padding:22px 0 20px }
  .th-intro > p { font-size:1rem; line-height:1.5 }
  .th-groups { gap:6px; margin-top:13px }
  .th-groups button { font-size:.83rem; padding:9px 11px }
  .th-grid { grid-template-columns:1fr; gap:11px }
  .th-card { padding:17px 18px }
  .th-card h2 { font-size:1.55rem; margin:8px 0 }
  .th-card p { font-size:.94rem }
  .th-read { padding-top:10px; margin-top:11px }
  .th-detail-layout { display:block }
  .th-side { margin-top:22px }
  .th-tabs { gap:15px }
  .th-tabs button { font-size:.88rem }
  .th-pensions { padding:16px 13px }
  .th-page td, .th-page th { padding:8px 6px; font-size:.83rem }
  .th-neighbours { margin-top:24px }
  .th-kicker { font-size:.64rem }
}
@media (prefers-reduced-motion: reduce) {
  .th-card { transition:none }
  .th-card:hover .th-read svg { transform:none }
}

.th-chart { display: block; width: 100%; height: auto; }

.th-input-label { display:block; margin:0 0 8px; color:var(--th-ink); font-weight:650; font-size:.94rem }
.th-groups button,.th-back,.th-reset { min-height:44px }
.th-card-meta > span { border:0; border-right:1px solid var(--th-line); border-radius:0; padding:0 9px 0 0; background:transparent; font-weight:600; text-transform:none }
.th-side > .th-inline { display:block; margin:0; padding:13px 0; border-top:1px solid var(--th-line); line-height:1.45 }
.th-side > .th-pdf { margin:6px 0; min-height:44px }
.th-side > .th-inline:last-child { padding-bottom:3px }
