/* MOBILE UNIQUEMENT. Cette feuille est chargée avec media="(max-width: 767px)".
   Aucun zoom, transform ou écrasement global ne sert à faire tenir la page.
   Le pincement et le zoom d'accessibilité du navigateur restent disponibles. */
@media (max-width: 767px) {
  html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
  html, body { min-width: 0; width: 100%; max-width: 100%; }
  main, main > section { min-width: 0; width: 100%; max-width: 100%; }

  /* Bornes réelles des conteneurs et des images, sans masquer les débordements
     du document. Les compositions validées du Hero, À propos et Actrice restent intactes. */
  .about-layout, .about-biography, .actress-composition,
  .news-carousel, .news-track, .news-card,
  .director-heading, .director-films, .director-film, .director-poster,
  .director-other-projects, .project-carousel, .project-track { min-width: 0; max-width: 100%; }
  .about-portrait picture, .about-portrait-image, .actress-photo img,
  .actress-quotation-image, .news-preview img, .news-photo-link img,
  .director-poster img { min-width: 0; max-width: 100%; }
  .director-poster { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); }
  .director-poster img { min-height: 0; max-height: 100%; object-fit: contain; }

  /* Actualité : dimensions liées à la carte. Le plafond évite des cartes
     disproportionnées en paysage et à 767 px, sans réduire la page entière. */
  .news-carousel { --news-card-width: min(63.2vw, 288px); }
  .news-track { width: 100%; }
  .news-card { flex: 0 0 var(--news-card-width); width: var(--news-card-width); padding: clamp(8.8px, 2.8vw, 12.8px) clamp(8.8px, 2.8vw, 12.8px) clamp(12.8px, 4vw, 18.4px); }
  .news-title { font-size: clamp(28px, 8.96vw, 48px); }
  .news-preview { width: 100%; padding-bottom: 20px; }
  .news-card h3 { margin-bottom: 2.4vw; min-height: 2.24em; display: grid; place-items: center; }
  .news-information { margin-bottom: 4vw; }
  .news-external-link { min-height: 44px; min-width: 44px; display: grid; place-items: center; padding: 5.6px; }
  .news-award { margin-bottom: .8vw; }
  .news-preview img { width: 100%; height: auto; aspect-ratio: 1.42; object-fit: contain; }
  .news-photo { height: calc(var(--news-card-width) * .73417722 + 19.2px); margin: clamp(10.4px, 3.2vw, 14.4px) auto; }
  .news-photo-link { min-width: 0; }
  .news-mobile-picture { display: contents; }
  .news-photo-link img { width: 61%; height: calc(var(--news-card-width) * .62025316); object-fit: contain; }
  .news-photo-link::after { flex-basis: calc(clamp(12.8px, 4vw, 18.4px) + 14.4px); }
  .news-card h3 { font-size: clamp(17px, 4.56vw, 19.2px); }
  .news-information { font-size: clamp(17px, 4.4vw, 18.4px); }
  .news-award { font-size: clamp(22px, 6.4vw, 27.2px); }
  .news-external-link { font-size: clamp(17px, 4.4vw, 18.4px); }

  /* Réalisatrice : deux vraies colonnes. Les affiches conservent toute leur
     surface ; les textes restent lisibles, avec des plafonds en paysage. */
  .director-featured { background-image: url('../images/realisatrice/Background-realisatrice-mobile.webp'); padding: clamp(22px, 7vw, 40px) 0 clamp(26px, 8vw, 46px); }
  .director-title { width: fit-content; max-width: 80%; }
  .director-title-first, .director-title-second { display: block; }
  .director-title-second { margin-left: 25%; }
  .director-title > .director-title-separator { display: none; }
  .director-title { font-size: clamp(28px, 8.96vw, 48px); }
  .director-introduction { font-size: clamp(17px, 5.1vw, 24px); }
  .director-films { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: clamp(16px, 5vw, 28px) clamp(12px, 4vw, 24px) clamp(19px, 6vw, 32px); column-gap: clamp(12px, 4vw, 24px); row-gap: clamp(22px, 7vw, 36px); }
  .director-poster { height: min(55vw, 340px); }
  .director-film h3 { font-size: clamp(16px, 4.6vw, 24px); }
  .director-film-notes { font-size: clamp(14px, 3.9vw, 18px); }
  .director-other-projects > h3 { font-size: clamp(22px, 6.6vw, 32px); }

  /* Taille explicite de chaque vignette à partir de son rapport original.
     Le défilement reste contenu dans le carrousel, sans agrandir le document. */
  .project-carousel { --thumbnail-height: 21.75vw; width: 100%; }
  .project-track { width: 100%; padding-right: 0; gap:4vw; }
  /* Un vrai espace défilant, y compris sur Safari, réserve la marge finale. */
  .project-track::after { content: ""; flex: 0 0 5vw; }
  .project-thumbnail:last-of-type { scroll-snap-align: end; scroll-margin-right: 5vw; }
  .project-thumbnail { flex: 0 0 auto; min-width: 0; height: var(--thumbnail-height); width: calc(var(--thumbnail-height) * var(--project-ratio, 1.77777778)); }
  .project-thumbnail img { display: block; width: 100%; height: 100%; min-width: 0; max-width: 100%; object-fit: contain; }
}

/* Retouches ciblées : cartes compactes, contact et footer mobiles. */
@media(max-width:767px) {
 .news-carousel { --news-card-width:51vw; }
 .news-track { gap:3vw; }
 .news-card { padding:9px 9px 10px; }
 .news-preview { padding-bottom:0; }
 .news-preview img { aspect-ratio:auto; }
 /* Actualité : supprimer les réserves de hauteur et resserrer le rythme vertical. */
 .news-photo { height:calc(var(--news-card-width) * .50 + 8px); margin:6px auto 7px; }
 .news-photo-link img { height:calc(var(--news-card-width) * .48); }
 .news-photo-link::after { flex-basis:7px; }
 .news-card h3 { font-size:16px; line-height:1.08; margin-bottom:4px; min-height:0; }
 .news-information { font-size:16px; line-height:1.17; margin-bottom:3px; }
 .news-award { font-size:clamp(18px,5vw,24px); margin-bottom:2px; }
 .news-external-link { font-size:16px; padding:4px; margin-top:5px; }
 .contact-representation h3 { text-align:center; }
 .contact-representation .contact-socials { justify-content:center; }
 .contact-socials img { filter:url(#contact-night); }
 .contact-socials a:hover img { filter:url(#hero-gold); }
 .contact-submit:disabled { opacity:1; background:#0F1E2E; border-color:#0F1E2E; }
 .contact-submit:hover { background:#9F8F71; border-color:#9F8F71; }
 .site-footer-inner { flex-wrap:nowrap; justify-content:space-between; gap:8px; padding:14px 0; font-size:12px; }
 .site-footer .footer-identity { flex:0 0 auto; display:block; }
 .site-footer .footer-identity p { display:none; }
 .footer-identity img { width:80px; }
 .footer-copyright,.site-footer-inner > a { white-space:nowrap; }
}
