  :root{
    --ink:#111;
    --ink-soft:#555;
    --line:#ddd;
  }
  *{ box-sizing:border-box; }
  body{
    margin:0;
    background:#fff;
    color:var(--ink);
    font-family:Georgia, 'Times New Roman', serif;
    font-size:17px;
    line-height:1.6;
  }
  .wrap{ max-width:760px; margin:0 auto; padding:0 24px; }
  a{ color:var(--ink); }

  header{
    display:flex; align-items:center; justify-content:space-between;
    padding:22px 24px;
    border-bottom:1px solid var(--line);
  }
  .site-name{ font-size:17px; font-weight:bold; }
  .nav-right{ display:flex; align-items:center; gap:22px; }
  nav.nav-links{ display:flex; gap:18px; }
  nav.nav-links a{ font-size:14px; text-decoration:none; }
  nav.nav-links a:hover{ text-decoration:underline; }
  #lang-toggle{
    background:none; border:1px solid var(--ink); color:var(--ink);
    font-family:inherit; font-size:12.5px;
    padding:4px 10px; cursor:pointer;
  }
  #lang-toggle:hover{ background:var(--ink); color:#fff; }
  #mobile-menu-toggle{
    display:none; background:none; border:none; font-size:22px; cursor:pointer; padding:0 0 0 4px;
  }
  #mobile-menu{
    display:none; flex-direction:column;
    border-bottom:1px solid var(--line); padding:6px 24px 14px;
  }
  #mobile-menu.open{ display:flex; }
  #mobile-menu a{ padding:11px 0; border-top:1px solid var(--line); font-size:15px; text-decoration:none; color:var(--ink); }
  #mobile-menu a:first-child{ border-top:none; }

  h1{ font-size:26px; margin:0 0 6px; }
  h2{ font-size:15px; margin:0 0 26px; text-transform:uppercase; letter-spacing:0.03em; color:var(--ink-soft); font-weight:normal; }
  h3{ font-size:17px; margin:0 0 4px; }

  section{ padding:56px 0; border-bottom:1px solid var(--line); }
  section:last-of-type{ border-bottom:none; }

  .hero p{ max-width:56ch; color:var(--ink-soft); margin-top:4px; }
  .hero-portrait{ margin-top:26px; max-width:260px; }
  .hero-portrait img{ width:100%; display:block; }
  .bio-layout{ display:grid; grid-template-columns:0.8fr 1.2fr; gap:40px; align-items:start; }
  .bio-portrait img{ width:100%; display:block; }

  p{ margin:0 0 16px; max-width:64ch; }
  p:last-child{ margin-bottom:0; }

  .plate{ margin-bottom:44px; }
  .plate:last-child{ margin-bottom:0; }
  .plate img{ width:100%; display:block; cursor:zoom-in; }
  .plate.wide .plate-inner{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  .plate-cap{ margin-top:10px; font-size:14.5px; color:var(--ink-soft); }
  .plate-cap .t{ color:var(--ink); font-style:italic; }
  .year-marker{ font-family:Georgia, serif; font-size:22px; font-weight:bold; margin:36px 0 18px; padding-top:20px; border-top:1px solid var(--line); }
  .year-marker:first-child{ border-top:none; padding-top:0; margin-top:0; }

  .catalogue-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:28px 18px; margin-bottom:8px; }
  .catalogue-grid .plate{ margin-bottom:0; }
  .catalogue-grid .plate img{ aspect-ratio:1/1; object-fit:cover; }
  .catalogue-grid .plate-cap{ display:none; }

  .carousel{ position:relative; width:100%; aspect-ratio:4/3; overflow:hidden; background:#f2f2f2; }
  .carousel-arrow{
    position:absolute; top:50%; transform:translateY(-50%);
    background:rgba(255,255,255,0.35); color:#fff;
    border:none; width:44px; height:44px; border-radius:50%;
    font-size:26px; line-height:1; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    transition:background 0.2s ease;
  }
  .carousel-arrow:hover{ background:rgba(255,255,255,0.6); }
  .carousel-arrow-prev{ left:14px; }
  .carousel-arrow-next{ right:14px; }
  .lightbox-arrow{ position:fixed; top:50%; transform:translateY(-50%); background:rgba(0,0,0,0.35); z-index:110; }
  .lightbox-arrow:hover{ background:rgba(0,0,0,0.55); }
  .lightbox-arrow-prev{ left:24px; }
  .lightbox-arrow-next{ right:24px; }
  .carousel-track{ display:flex; height:100%; transition:transform 0.7s ease; }
  .carousel-track .c-slide{ flex:0 0 100%; height:100%; }
  .carousel-track .c-slide img{ width:100%; height:100%; object-fit:cover; display:block; cursor:zoom-in; }
  .carousel-cap{ margin-top:12px; font-size:14.5px; color:var(--ink-soft); min-height:1.6em; }
  .carousel-cap .t{ color:var(--ink); font-style:italic; }

  .expo-cols{ display:grid; grid-template-columns:1fr 1fr; gap:0 50px; }
  .expo-layout{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:40px; align-items:start; }
  .expo-image img{ width:100%; display:block; cursor:zoom-in; }
  .expo-row{ display:flex; gap:16px; padding:8px 0; font-size:15px; }
  .expo-year{ color:var(--ink-soft); width:96px; flex:none; }

  .links-list{ margin-top:6px; }
  .links-list div{ margin-bottom:8px; font-size:15px; }

  .news-item{ padding:18px 0; border-top:1px solid var(--line); }
  .news-item:first-child{ border-top:none; padding-top:0; }
  .news-date{ font-size:13.5px; color:var(--ink-soft); }
  .news-item h3{ margin-top:2px; }
  .news-item p{ font-size:15px; color:var(--ink-soft); }

  /* ---- lightbox ---- */
  #lightbox{
    position:fixed; inset:0; z-index:100;
    background:#ffffff;
    display:none; overflow-y:auto;
    padding:60px 24px;
  }
  #lightbox.open{ display:block; }
  #lightbox .lb-inner{ max-width:820px; margin:0 auto; }
  #lightbox img{ width:100%; display:block; }
  #lightbox .lb-cap{ margin-top:16px; font-size:15px; color:var(--ink-soft); }
  #lightbox .lb-cap .t{ color:var(--ink); font-style:italic; }
  #lightbox-close{
    position:fixed; top:20px; right:24px;
    background:none; border:1px solid var(--ink); color:var(--ink);
    font-family:inherit; font-size:14px; padding:6px 12px; cursor:pointer;
  }
  #lightbox-close:hover{ background:var(--ink); color:#fff; }

  footer{ padding:44px 0; }
  .foot-links{ display:flex; gap:20px; flex-wrap:wrap; margin-top:6px; }
  .foot-note{ margin-top:34px; font-size:13px; color:var(--ink-soft); }

  [data-en]{ display:none !important; }
  body.lang-en [data-fr]{ display:none !important; }
  body.lang-en span[data-en]{ display:inline !important; }
  body.lang-en :is(h1,h2,h3,p,div)[data-en]{ display:block !important; }

  @media (max-width: 900px) and (min-width: 621px){
    .catalogue-grid{ grid-template-columns:repeat(3, 1fr); }
  }

  @media (max-width: 620px){
    header{ padding:16px 18px; }
    .wrap{ padding:0 18px; }
    .plate.wide .plate-inner{ grid-template-columns:1fr; }
    .catalogue-grid{ grid-template-columns:repeat(2, 1fr); gap:20px 12px; }
    .expo-cols{ grid-template-columns:1fr; }
    .expo-layout{ grid-template-columns:1fr; }
    .bio-layout{ grid-template-columns:1fr; }
    nav.nav-links{ display:none; }
    #mobile-menu-toggle{ display:inline-block; }
  }
