@font-face { font-family: "Zen Kaku Gothic New"; font-weight: 400; src: url("fonts/zen-kaku-gothic-new-latin-400-normal.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Zen Kaku Gothic New"; font-weight: 700; src: url("fonts/zen-kaku-gothic-new-latin-700-normal.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Gloock"; src: url("fonts/gloock-latin-400-normal.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Shippori Mincho"; font-weight: 700; src: url("fonts/shippori-mincho-latin-700-normal.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Big Shoulders Display"; font-weight: 800; src: url("fonts/big-shoulders-display-latin-800-normal.woff2") format("woff2"); font-display: swap; }

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 72px; }
body { margin: 0; font: 400 1.0625rem/1.5 "Zen Kaku Gothic New", system-ui, sans-serif; }
img { display: block; max-width: 100%; height: auto; }
h1, h2, h3, p, ul, table { margin: 0; }
ul { padding: 0; list-style: none; }
a { color: inherit; text-underline-offset: .2em; }
small { display: block; font-size: .875rem; line-height: 1.3; opacity: .82; }
.visuel-cache { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.maquette { margin: 0; padding: 6px 16px; background: #FFD84D; color: #16120F; font-size: .8125rem; font-weight: 700; text-align: center; line-height: 1.35; }
.maquette a { font-weight: 700; }
.horaires-table { width: 100%; border-collapse: collapse; }
.horaires-table th, .horaires-table td { padding: 8px 4px; text-align: left; font-weight: 400; vertical-align: top; }
.horaires-table th { font-weight: 700; white-space: nowrap; padding-right: 16px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
