@import url('https://fonts.googleapis.com/css2?family=Newsreader:ital,wght@0,400;0,500;0,600;1,500&family=Work+Sans:wght@400;500;600&display=swap');
* { box-sizing: border-box; }
html, body { margin: 0; background: #F6F8FA; }
a { text-decoration: none; }
body { font-family: 'Work Sans', sans-serif; color:#101E2C; }

.nav-link { color: #1E2E3E; font-family: 'Work Sans', sans-serif; font-size: 15px; font-weight: 500; white-space: nowrap; }
.nav-link:hover { color: #1E69B4; }
.nav-link.active { color: #1E69B4; font-weight: 600; }
.foot-link { color: #55677A; font-family: 'Work Sans', sans-serif; font-size: 14px; }
.foot-link:hover { color: #1E69B4; }
.card-link { color: #1E69B4; }
.card-link:hover { text-decoration: underline; }
.social-icon { color: #55677A; }
.social-icon:hover { color: #1E69B4; }

.om-scrollbar { scrollbar-width: thin; scrollbar-color: rgba(0,0,0,.25) transparent; }
.om-scrollbar::-webkit-scrollbar { height: 6px; }
.om-scrollbar::-webkit-scrollbar-track { background: transparent; }
.om-scrollbar::-webkit-scrollbar-thumb { background: rgba(0,0,0,.25); border-radius: 3px; }

    * { box-sizing: border-box; }
    body { margin: 0; background: #F6F8FA; }
    a { text-decoration: none; }
    .nav-link { color: #1E2E3E; font-family: 'Work Sans', sans-serif; font-size: 15px; font-weight: 500; white-space: nowrap; }
    .nav-link:hover { color: #1E69B4; }
    .nav-link.active { color: #1E69B4; font-weight: 600; }
    .foot-link { color: #55677A; font-family: 'Work Sans', sans-serif; font-size: 14px; }
    .foot-link:hover { color: #1E69B4; }
    table.hours { border-collapse: collapse; width: 100%; }
    table.hours th, table.hours td { padding: 5px 6px; font-size: 12.5px; text-align: center; }
    table.hours thead th { background:#102A43; color:#F6F8FA; font-weight:600; padding:7px 6px; }
    table.hours tbody tr:nth-child(odd) td { background:#EAF4FF; }
    table.hours tbody tr:nth-child(even) td { background:#FBEAE4; }
    table.hours td.date { font-weight:600; color:#102A43; background:#FFFFFF !important; }
    table.periods { border-collapse: collapse; width: 100%; }
    table.periods th, table.periods td { padding: 10px 14px; font-size: 13.5px; text-align:left; border-bottom:1px solid #FFFFFF; }
    table.periods thead th { background:#102A43; color:#F6F8FA; font-weight:600; text-align:center; }
    table.periods td.espece { background:#F6F8FA; color:#102A43; font-weight:600; }
    table.periods td.cat1 { background:#FBEAE4; color:#5C2E22; }
    table.periods td.cat2 { background:#EAF4FF; color:#123A5E; }
    table.periods td.interdit { background:#E7E2DA; color:#4A4335; font-weight:600; text-align:center; }

/* ---- lightbox (click-to-enlarge images, full original size) ---- */
.lightbox-trigger { cursor: zoom-in; }
.lightbox { display:none; position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(15,30,45,0.92); z-index:9999; align-items:center; justify-content:center; padding:40px; }
.lightbox:target { display:flex; }
.lightbox img { max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; box-shadow:0 20px 60px rgba(0,0,0,0.5); }
.lightbox-close { position:absolute; top:24px; right:32px; color:#F6F8FA; font-size:36px; font-weight:300; line-height:1; text-decoration:none; }
.lightbox-close:hover { color:#F0B400; }

/* ---- lightbox panel (text popups, e.g. mentions légales) ---- */
.lightbox-panel { background:#FFFFFF; max-width:560px; width:100%; max-height:85vh; overflow-y:auto; padding:40px; position:relative; box-shadow:0 20px 60px rgba(0,0,0,0.5); }
.lightbox-panel h2 { font-family:'Newsreader',serif; font-size:22px; font-weight:600; color:#102A43; margin:0 0 20px 0; }
.lightbox-panel h3 { font-family:'Work Sans',sans-serif; font-size:13px; font-weight:600; color:#1E69B4; text-transform:uppercase; letter-spacing:0.05em; margin:20px 0 6px 0; }
.lightbox-panel p { font-size:14px; line-height:1.6; color:#33475B; margin:0 0 4px 0; }
.lightbox-panel .lightbox-close { position:absolute; top:14px; right:18px; color:#55677A; font-size:28px; font-weight:300; line-height:1; text-decoration:none; }
.lightbox-panel .lightbox-close:hover { color:#1E69B4; }

/* ---- responsive home: toggle desktop / mobile artboards ---- */
.mobile-view { display: none; }
@media (max-width: 680px) {
  .desktop-view { display: none; }
  .mobile-view { display: block; }
  /* safety net: prevent any inline flex row from forcing horizontal overflow on narrow screens */
  .mobile-view { overflow-x: hidden; }
  .mobile-view img, .mobile-view iframe, .mobile-view svg { max-width: 100%; }
  .mobile-view [style*="display:flex"] { flex-wrap: wrap; }
  /* data tables (hours, periods) scroll horizontally instead of squeezing/breaking the page */
  .mobile-view table.hours, .mobile-view table.periods { display: block; width: auto; max-width: 100%; overflow-x: auto; white-space: nowrap; -webkit-overflow-scrolling: touch; }
  .mobile-view table.hours th, .mobile-view table.hours td,
  .mobile-view table.periods th, .mobile-view table.periods td { white-space: nowrap; }
}
