/* TransMemo - rubrique /horaires-bus/
   S'appuie sur /decouvrir/site.css (header, hero, boutons, footer).
   Ce fichier n'ajoute que ce qui est propre a la rubrique : panneaux, tableaux, clins d'oeil. */

/* ---------- Hero ---------- */
.hb-note{max-width:760px;margin:20px 0 0;color:#b8c2ca;font-size:15px;line-height:1.7}
.hb-note strong{color:#fff}
.hb-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:34px 0 0}
.hb-actions a:not(.button){color:#fff;font-size:14px;font-weight:750;text-underline-offset:4px}

/* ---------- Panneaux ---------- */
.content-section{position:relative;overflow:hidden}
.panel{position:relative;z-index:1;background:#fff;border:1px solid var(--line);
  border-radius:16px;padding:clamp(22px,3vw,34px);margin:0 0 22px}
.panel:last-child{margin-bottom:0}
.panel>h2{margin:0 0 12px;color:var(--ink);font-size:clamp(21px,2.2vw,28px);
  line-height:1.2;letter-spacing:-.03em;font-weight:780}
.panel>h2::before{content:"";display:block;width:32px;height:3px;margin-bottom:16px;
  border-radius:2px;background:var(--red)}
.panel p{margin:0 0 14px;color:var(--muted);font-size:15.5px;line-height:1.72}
.panel p:last-child{margin-bottom:0}
.panel a{color:var(--red);font-weight:600;text-underline-offset:3px}

/* Liste de liens en cartes */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));
  gap:10px;margin:18px 0 0;padding:0;list-style:none}
.grid a{display:flex;flex-direction:column;gap:5px;padding:15px 17px;background:var(--paper);
  border:1px solid var(--line);border-radius:10px;color:var(--ink)!important;font-size:14px;
  font-weight:750;line-height:1.35;text-decoration:none!important;
  transition:transform .25s cubic-bezier(.22,1,.36,1),box-shadow .25s ease,border-color .2s ease}
.grid small{color:var(--muted);font-size:12px;font-weight:500}
.grid a:hover{border-color:#f0b7bb;transform:translateY(-2px);box-shadow:0 10px 26px rgba(17,24,32,.07)}

/* Acces rapide aux arrets : pastilles */
.panel>nav{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.panel>nav a{display:inline-flex;align-items:center;min-height:40px;padding:0 15px;
  background:var(--paper);border:1px solid var(--line);border-radius:999px;
  color:var(--ink)!important;font-size:13px;font-weight:700;text-decoration:none!important;
  transition:background .2s ease,border-color .2s ease,color .2s ease}
.panel>nav a:hover{background:var(--soft-red);border-color:#f0b7bb;color:var(--red)!important}

/* ---------- Tableaux d'horaires ---------- */
.table-wrap{overflow:auto;margin-top:20px;border:1px solid var(--line);border-radius:12px}
table{border-collapse:collapse;width:100%;background:#fff;font-size:14.5px}
caption{padding:14px 16px;background:var(--paper);border-bottom:1px solid var(--line);
  color:var(--muted);font-size:11px;font-weight:900;letter-spacing:.1em;
  text-transform:uppercase;text-align:left}
th,td{padding:13px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
thead th{background:var(--paper);color:var(--muted);font-size:11px;font-weight:900;
  letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover{background:#fbfbfc}
td:first-child{white-space:nowrap;color:var(--red-dark);font-size:19px;font-weight:850;
  letter-spacing:-.03em}
.muted{color:var(--muted);font-size:14px}

/* ---------- Clins d'oeil ---------- */
.tmx-egg{position:absolute;z-index:0;pointer-events:none;will-change:transform}
.tmx-egg-townsign{right:6%;bottom:-12px;width:138px;opacity:.5;
  transform-origin:50% 100%;animation:tmxSway 6.2s ease-in-out infinite}
@keyframes tmxSway{0%,100%{transform:rotate(-2.2deg)}50%{transform:rotate(2.2deg)}}
.tmx-egg-bus{left:-160px;bottom:26px;width:130px;opacity:.07;
  animation:tmxDrive 30s linear infinite}
@keyframes tmxDrive{0%{transform:translate3d(0,0,0)}50%{transform:translate3d(56vw,-3px,0)}
  100%{transform:translate3d(122vw,0,0)}}
.tmx-egg-bus .wheel{transform-box:fill-box;transform-origin:center;
  animation:tmxRoll 1.2s linear infinite}
@keyframes tmxRoll{to{transform:rotate(360deg)}}

@media(max-width:1000px){.tmx-egg-townsign{width:96px;opacity:.38}}
@media(max-width:620px){.tmx-egg-townsign{display:none}}
@media(prefers-reduced-motion:reduce){.tmx-egg{display:none}}

/* ---------- Impression ---------- */
@media print{
  .tmx-egg,.site-header,.site-footer,.button,.hb-actions,.grid,.breadcrumb{display:none!important}
  .page-hero{padding:0;background:none;color:#000}
  .page-hero h1{color:#000}
  .hb-note,.hero-intro,.eyebrow{color:#000}
  .content-section{padding:0;background:#fff}
  .panel{break-inside:avoid;border:0;padding:0;margin:0 0 18px}
  .table-wrap{overflow:visible;border:0}
}
