@media (max-width: 1100px) and (hover: none) and (pointer: coarse) {
  html { scrollbar-gutter: auto; }
  body { min-width: 0; overflow-x: hidden; }

  #navigation {
    position: sticky;
    top: 0;
    left: auto;
    width: 100%;
    height: auto;
    min-height: 0;
    margin: 0;
    background-color: #fff;
    z-index: 30;
  }
  #navigation .lmenu {
    float: none;
    box-sizing: border-box;
    width: max-content;
    max-width: 100%;
    height: 58px;
    padding: 0 34px 0 16px;
    line-height: 58px;
    background-position: right center;
  }
  #navigation .rmenu {
    float: none;
    width: 100%;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  #navigation .rmenu::-webkit-scrollbar { display: none; }
  #navigation .rmenu ul {
    display: flex;
    float: none;
    width: max-content;
    min-width: 100%;
  }
  #navigation .rmenu li { float: none; flex: 0 0 auto; }
  #navigation .rmenu li a,
  #navigation .rmenu li.actif {
    box-sizing: border-box;
    display: block;
    height: 48px;
    margin: 0;
    padding: 0 14px;
    font-size: 14px;
    line-height: 44px;
    letter-spacing: 1px;
    white-space: nowrap;
  }

  #content,
  #content2 {
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    padding: 20px 16px 40px;
  }
  #content2 .left {
    position: sticky;
    top: 106px;
    z-index: 20;
    float: none;
    box-sizing: border-box;
    width: calc(100% + 32px);
    margin: -20px -16px 0;
    background: #fff;
  }
  #tmenu {
    position: static;
    display: flex;
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    overflow-x: auto;
    white-space: nowrap;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  #tmenu::-webkit-scrollbar { display: none; }
  #tmenu li { flex: 0 0 auto; }
  #tmenu li a { padding: 12px 14px; line-height: 22px; }
  #content2 .right,
  #content2 .bio2 {
    float: none;
    box-sizing: border-box;
    width: 100%;
    margin: 0;
  }
  #content2 .right { padding-top: 22px; }
  #content2 .accroche,
  #content2 .texte,
  #content2 .vues,
  #content2 .blocperso {
    box-sizing: border-box;
    max-width: 100%;
    width: calc(100vw - 32px);
    overflow-wrap: anywhere;
  }
  #content2 .texte { text-align: left; }
  #content2 .accroche[id] { scroll-margin-top: 174px; }
  #content2 img,
  #content img { max-width: 100%; height: auto; }
  #content2 iframe {
    display: block;
    max-width: 100%;
  }
  #content2 .slideshow-container {
    box-sizing: border-box;
    width: 100%;
    height: auto;
    aspect-ratio: 744 / 600;
  }
  #content .contact {
    float: none;
    box-sizing: border-box;
    width: 100%;
    height: auto;
    margin: 0;
  }
  #content .contact img[usemap] { width: 100%; }

  .works-layout {
    box-sizing: border-box;
    display: block;
    width: 100%;
    min-height: 0;
    margin: 0;
    padding: 0 12px 28px;
  }
  .works-layout .left {
    position: sticky;
    top: 106px;
    z-index: 20;
    float: none;
    box-sizing: border-box;
    width: calc(100% + 24px);
    margin: 0 -12px;
    background: #fff;
  }
  #gallery {
    display: flex;
    width: 100%;
    height: auto;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  #gallery::-webkit-scrollbar { display: none; }
  #gallery li { flex: 0 0 auto; }
  #gallery li a { padding: 10px 14px; white-space: nowrap; }
  .works-layout #content {
    box-sizing: content-box;
    width: 750px;
    min-height: 700px;
    margin: 10px 0 0;
    padding: 0 0 30px;
    zoom: var(--work-scale, 1);
  }
  .works-layout .work-panel .titre { font-size: 28px; }
  .works-layout .work-panel .legende { font-size: 22px; }
  #photo-viewer { max-width: calc(100vw - 16px); }
}

@media (max-width: 600px) and (hover: none) and (pointer: coarse) {
  #navigation .lmenu { height: 52px; font-size: 20px; line-height: 52px; }
  #navigation .rmenu { overflow: visible; }
  #navigation .rmenu ul {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%;
    min-width: 0;
  }
  #navigation .rmenu li { min-width: 0; }
  #navigation .rmenu li a,
  #navigation .rmenu li.actif {
    height: 37px;
    padding: 0 5px;
    font-size: 12px;
    line-height: 33px;
    text-align: center;
    letter-spacing: 0;
  }
  #content2 .left,
  .works-layout .left { top: 126px; }
  #content2 .date,
  #content2 .expo { float: none; width: 100%; }
  #content2 .date { font-weight: bold; }
  #content2 iframe { width: 100%; aspect-ratio: 16 / 9; height: auto; }
  #content2 iframe.video-portrait {
    width: min(100%, 338px);
    aspect-ratio: 9 / 16;
    height: auto;
  }
}
