/* POINTS DE RUPTURE CONVOQUÉS : 320px (20rem) et 1200px (75rem) */

/* 
Subway Berlin SC Regular - capitale
font-family: "subway-berlin-sc", sans-serif;
font-weight: 400;
font-style: normal;

Subway Berlin Std Regular - bas de casse
font-family: "subway-berlin-std", sans-serif;
font-weight: 400;
font-style: normal;
*/

@font-face {
    font-family: 'PP Editorial Old Italic';
    src: url('fonts/PPEditorialOld-Italic.eot');
    src: local('fonts/PP Editorial Old Italic'), local('PPEditorialOld-Italic'),
        url('fonts/PPEditorialOld-Italic.eot?#iefix') format('embedded-opentype'),
        url('fonts/PPEditorialOld-Italic.woff2') format('woff2'),
        url('fonts/PPEditorialOld-Italic.woff') format('woff'),
        url('fonts/PPEditorialOld-Italic.ttf') format('truetype'),
        url('fonts/PPEditorialOld-Italic.svg#PPEditorialOld-Italic') format('svg');
    font-weight: normal;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'PP Editorial Old Regular';
    src: url('fonts/PPEditorialOld-Regular.eot');
    src: local('fonts/PP Editorial Old Regular'), local('PPEditorialOld-Regular'),
        url('fonts/PPEditorialOld-Regular.eot?#iefix') format('embedded-opentype'),
        url('fonts/PPEditorialOld-Regular.woff2') format('woff2'),
        url('fonts/PPEditorialOld-Regular.woff') format('woff'),
        url('fonts/PPEditorialOld-Regular.ttf') format('truetype'),
        url('fonts/PPEditorialOld-Regular.svg#PPEditorialOld-Regular') format('svg');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'PP Kyoto Light';
    src: url('fonts/PPKyoto-Light.eot');
    src: local('fonts/PP Kyoto Light'), local('PPKyoto-Light'),
        url('fonts/PPKyoto-Light.eot?#iefix') format('embedded-opentype'),
        url('fonts/PPKyoto-Light.woff2') format('woff2'),
        url('fonts/PPKyoto-Light.woff') format('woff'),
        url('fonts/PPKyoto-Light.ttf') format('truetype'),
        url('fonts/PPKyoto-Light.svg#PPKyoto-Light') format('svg');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'PP Kyoto Medium';
    src: url('fonts/PPKyoto-Medium.eot');
    src: local('fonts/PP Kyoto Medium'), local('PPKyoto-Medium'),
        url('fonts/PPKyoto-Medium.eot?#iefix') format('embedded-opentype'),
        url('fonts/PPKyoto-Medium.woff2') format('woff2'),
        url('fonts/PPKyoto-Medium.woff') format('woff'),
        url('fonts/PPKyoto-Medium.ttf') format('truetype'),
        url('fonts/PPKyoto-Medium.svg#PPKyoto-Medium') format('svg');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'PP Kyoto Medium Italic';
    src: url('fonts/PPKyoto-MediumItalic.eot');
    src: local('fonts/PP Kyoto Medium Italic'), local('PPKyoto-MediumItalic'),
        url('fonts/PPKyoto-MediumItalic.eot?#iefix') format('embedded-opentype'),
        url('fonts/PPKyoto-MediumItalic.woff2') format('woff2'),
        url('vPPKyoto-MediumItalic.woff') format('woff'),
        url('fonts/PPKyoto-MediumItalic.ttf') format('truetype'),
        url('fonts/PPKyoto-MediumItalic.svg#PPKyoto-MediumItalic') format('svg');
    font-weight: 500;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'PP Valve Plain';
    src: url('fonts/PPValve-PlainMedium.eot');
    src: local('fonts/PP Valve Plain Medium'), local('PPValve-PlainMedium'),
        url('fonts/PPValve-PlainMedium.eot?#iefix') format('embedded-opentype'),
        url('fonts/PPValve-PlainMedium.woff2') format('woff2'),
        url('fonts/PPValve-PlainMedium.woff') format('woff'),
        url('fonts/PPValve-PlainMedium.ttf') format('truetype'),
        url('fonts/PPValve-PlainMedium.svg#PPValve-PlainMedium') format('svg');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

:root {
    --noir: #0a0a0a;
    --noir90: #1e1e1e; /*#131313;*/
    --blanc: #ffffff;
    --gris: #aaa4a2;
    --gris50: #c9c9c9;
    --rouge: #ed0842;
    --bleu: #4200ff;
    --jaune: #f7ff26;
    --cyan: #bafef4;
    --rose: #ff0066;
  }

  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

  html { scroll-behavior: smooth; font-size: 1em; }

  body {
    background: var(--blanc);
    color: var(--noir);
    font-family: 'Space Mono', monospace;
    overflow-x: hidden;
  }

  img { max-width: 100%; }

  /* ── NAV ── */
  nav {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 100;
    background: var(--blanc);
    backdrop-filter: blur(12px);
    border-bottom: 1px dotted var(--gris50);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 2rem;
    height: 56px;
  }

  .nav-logo {
    font-family: 'PP Editorial Old Italic', serif;
    font-weight: normal;
    font-style: italic;
    font-size: 0.85rem;
    line-height: 1.15;
    letter-spacing: 0.09em;
    color: var(--rouge);
    white-space: nowrap;
    text-align: center;
  }

  .nav-logo span {
    font-family: 'Sentient-VariableItalic', serif;
  }

  .nav-links {
    font-family: 'PP Kyoto Medium', serif;
    font-weight: 500;
    font-style: normal;
    display: flex;
    gap: 0.15rem;
    list-style: none;
  }

  .nav-links a {
    display: block;
    padding: 0.4rem 0.4rem;
    font-size: 0.7rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--gris50);
    text-decoration: none;
    border: 1px solid transparent;
    transition: color 0.2s, border-color 0.2s;
  }

  .nav-links a:hover,
  .nav-links a.active {
    color: var(--bleu);
    /*border-color: rgba(217, 158, 18, 0.4);*/
  }

  .hamburger {
    display: none;
    flex-direction: column;
    gap: 5px;
    cursor: pointer;
    padding: 4px;
  }
  .hamburger span {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--gris50);
    transition: all 0.3s;
  }

  /* ── MOBILE NAV ── */
  .mobile-menu {
    display: none;
    position: fixed;
    top: 56px; left: 0; right: 0;
    background: rgba(10,10,10,0.98);
    z-index: 99;
    padding: 1.5rem 2rem 2rem;
    border-bottom: 1px solid rgba(240,134,169,0.2);
  }
  .mobile-menu.open { display: block; }
  .mobile-menu a {
    display: block;
    padding: 0.8rem 0;
    font-family: 'PP Kyoto Light';
    font-weight: 300;
    font-style: normal;
    font-size: 0.85rem;
    letter-spacing: 0.05em;
    /*text-transform: uppercase;*/
    color: rgba(245,240,232,0.65);
    text-decoration: none;
    border-bottom: 1px solid rgba(255,255,255,0.07);
    transition: color 0.2s;
  }
  .mobile-menu a:hover { color: var(--rose); }

  /* ── SECTIONS ── */
  section {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    overflow: hidden;
  }

  .label { font-family: 'PP Kyoto Medium', serif; font-weight: 500; font-style: normal; font-size: clamp(1.15rem, 1.059rem + 0.455vw, 1.4rem); font-weight: 300; letter-spacing: 0.03em; color: var(--bleu); margin-top: 2rem; margin-bottom: 3rem; text-align: center;  line-height: 1.15;}
  .supports-tag, .supports-tag2 { font-family: 'PP Kyoto Medium', serif; font-weight: 500; font-style: normal; font-size: clamp(1.15rem, 1.059rem + 0.455vw, 1.4rem); font-weight: 300; letter-spacing: 0.03em; color: var(--bleu); margin-top: 2rem; margin-bottom: 0.2rem; text-align: center; }
  .supports2-tag, .supports3-tag { font-family: 'PP Kyoto Medium', serif; font-weight: 500; font-style: normal; font-size: clamp(1.15rem, 1.059rem + 0.455vw, 1.4rem); font-weight: 300; letter-spacing: 0.03em; color: var(--bleu); margin-top: 5rem; margin-bottom: 0.2rem; text-align: center; }

  .engras, .engras2 { 
    font-family: 'PP Kyoto Light', serif;
    font-weight: 300;
    font-style: normal; 
    font-size: clamp(1rem, 0.891rem + 0.545vw, 1.3rem); 
    text-align: center;
    color: var(--noir90);
    margin-bottom: 2rem;
  }
  .engras-blanc { 
    font-family: 'PP Kyoto Light', serif;
    font-weight: 300;
    font-style: normal; 
    font-size: clamp(1rem, 0.891rem + 0.545vw, 1.3rem); 
    text-align: center;
    color: var(--blanc);
    margin-bottom: 2rem;
  }

  /* ── ENTÊTE ── */
  #entete {
    width: 60vw;
    background: var(--blanc);
    align-items: center;
    justify-content: flex-end;
    padding-bottom: 35vh;
    margin: 0 auto;
  }

  .entete-noms .desktop {
    display: flex;
    gap: 3rem;
    margin-bottom: 7rem;
    font-family: 'PP Kyoto Medium', serif;
    font-weight: 500;
    font-style: normal;
    font-size: clamp(1.2rem, 1.164rem + 0.182vw, 1.3rem);
    line-height: 1.1;
    color: var(--gris);
    text-align: center;
  }
  .entete-noms .mobile{ display: none; }

  .entete-noms span {
    padding: 0px 10px 0px 10px;
  }

  .entete-titre, .concept-titre {
    font-family: 'PP Editorial Old Italic', serif;
    font-size: clamp(2.95rem, 1.441rem + 7.545vw, 7.1rem);
    font-weight: normal;
    font-style: italic;
    line-height: 1;
    letter-spacing: -0.0001em;
    text-align: center;
    color: var(--noir);
  }

  .entete-scroll {
    font-family: 'PP Kyoto Medium', serif;
    font-weight: 500;
    font-style: normal;
    position: absolute;
    bottom: 8rem;
    right: 8vw;
    display: flex;
    align-items: center;
    gap: 0.8rem;
    font-size: 0.55rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--bleu);
    cursor: pointer;
    text-decoration: none;
  }
  .entete-scroll::after {
    content: '';
    display: block;
    width: 1px;
    height: 40px;
    background: linear-gradient(to bottom, var(--bleu), transparent);
    animation: scrollLine 1.6s ease-in-out infinite;
  }
  @keyframes scrollLine {
    0%,100% { opacity: 1; transform: scaleY(1); }
    50% { opacity: 0.3; transform: scaleY(0.5); }
  }

  /* ── INTENTION ── */
  #intention {
    background: var(--blanc);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .intention-text {
    max-width: 760px;
    font-family: 'PP Kyoto Medium', serif;
    font-weight: 500;
    font-style: normal;
    font-size: clamp(1.02rem, 0.918rem + 0.509vw, 1.3rem);
    font-weight: 300;
    line-height: 1.35;
    color: var(--noir90);
    text-align: center;
  }

  /* ── RECHERCHES ── */
  #recherches {
    width: 90vw;
    margin: 0 auto;
    background: var(--blanc);
  }

  .recherches-grid {
    display: grid;
    grid-template-columns: 1fr;
    margin-top: 2rem;
  }

  .recherches {
    width: 60vw;
    background: var(--blanc);
    margin: 0 auto;
    margin-bottom: 1em;
  }
  
  .recherches-card {
    font-family: 'PP Kyoto Medium', serif;
    font-weight: 500;
    font-style: normal;
    font-weight: 400;
    /*background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.06);*/
    padding: 2.5rem 2rem;
    transition: background 0.3s, border-color 0.3s;
    text-align: center;
  }

  /* ── SUPPORTS ── */
  #supports {
    width: 90vw;
    margin: 0 auto;
    background: var(--blanc);
  }

  .supports-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    justify-items: center;
    margin-top: 3rem;
    margin: 0 14rem;
  }

  .supports-card, .supports2-card, .supports3-card {
    max-width: 90%;
    padding: 0.2rem 0.2rem;
    text-align: center;
    transition: border-color 0.3s, transform 0.3s;
  }

  .supports-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.2rem;
  }

  #supports2 {
    background: var(--blanc);
    text-align: center;
    align-items: center;
  }

  #supports2b {
    background: var(--noir);
    text-align: center;
    align-items: center;
  }

  #supports3 {
    background: var(--blanc);
    text-align: center;
    align-items: center;
  }

  /* ── CHOIX DES ÉLÉMENTS ── */
  #choix {
    width: 90vw;
    margin: 0 auto;
    background: var(--blanc);
  }

  .choix-grid, .choix-grid2 {
    display: grid;
    grid-template-columns: 1fr;
    justify-items: center;
    margin-top: 3rem;
    margin: 0 11rem;
  }
  .choix-grid3 {
    display: grid;
    grid-template-columns: 1fr;
    justify-items: center;
    margin-top: 3rem;
    margin: 0 11rem;
    padding-top: 3.5rem;
  }

  .choix-card {
    max-width: 100%;
    padding: 0.2rem 0.2rem;
    text-align: center;
    transition: border-color 0.3s, transform 0.3s;
  }
  .choix-card2 {
    max-width: 70%;
    padding: 0.2rem 0.2rem;
    text-align: center;
    transition: border-color 0.3s, transform 0.3s;
  }
  .choix-card3 {
    max-width: 55%;
    padding: 0.2rem 0.2rem;
    text-align: center;
    transition: border-color 0.3s, transform 0.3s;
  }

  .choix-icon, .choix-icon-p1, .choix-icon-p2 {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.2rem;
  }
  .choix-icon-p1 { display: contents; }
  .choix-icon-p2 { display: none; }

  /* ── FOOTER ── */
  #footer {
    background: var(--blanc);
    align-items: center;
    justify-content: flex-end;
    padding-bottom: 35vh;
  }

  /* ── SCROLL REVEAL ── */
  .reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.7s ease, transform 0.7s ease;
  }
  .reveal.visible {
    opacity: 1;
    transform: none;
  }

  /* ── VIDÉO ── */
  .video-grid {
    width: 50vw;
    display: grid;
    grid-template-columns: 1fr;
    margin: 0 auto;
    margin-top: 0.2rem;
    margin-bottom: 2rem;
  }
  .video-grid-pastille {
    width: 30vw;
    display: grid;
    grid-template-columns: 1fr;
    margin: 0 auto;
    margin-top: 0.2rem;
    margin-bottom: 2rem;
  }

  .video-card-affiche {
    padding: 1.5rem 0.8rem;
    transition: background 0.3s, border-color 0.3s;
    display: flex;
    justify-content: center;
  }
  .video-card-pastille {
    padding: 0.4rem 0.8rem;
    transition: background 0.3s, border-color 0.3s;
    display: flex;
    justify-content: center;
  }

  .video-wrap-affiche, .video-wrap-pastille {
    /*width: 98vw;*/
    overflow: hidden;
    animation: fadeUp 0.7s cubic-bezier(0.16,1,0.3,1) both;
    margin: 0 auto;
  }

  @keyframes fadeUp {
      from { opacity: 0; transform: translateY(20px); }
      to   { opacity: 1; transform: translateY(0); }
  }

  .affiche {
    width: 65%;
    display: block;
    aspect-ratio: 5 / 7.4;
    object-fit: cover;
    margin: 0 auto;
    margin-top: 2rem;
  }

  .pastille {
    width: 65%;
    display: block;
    aspect-ratio: 2 / 2;
    object-fit: cover;
    margin: 0 auto;
    margin-top: 0rem;
  }

  .video-wrap-affiche video {
    display: block;
    border: 1px dotted var(--gris50);
  }



  /* ── RESPONSIVE ── */
  @media (max-width: 768px) {
    section { padding: 1em; }
    nav { padding: 0 1.2rem; }
    .nav-links { display: none; }
    .hamburger { display: flex; }
    #entete { padding-bottom: 55vh; width: 98vw; margin: 0 auto; }
    .entete-noms { gap: 0.5rem; flex-direction: column; align-items: center; padding-top: 5px; margin-bottom: 2rem; line-height: 1.1; }
    .entete-noms .desktop { display: none; }
    .entete-noms .mobile{ display: flex; margin-bottom: 0.5rem; font-family: 'PP Kyoto Medium', serif; font-weight: 500; font-style: normal; font-size: clamp(1.05rem, 0.959rem + 0.455vw, 1.3rem); line-height: 0.8; color: var(--gris); text-align: center; }
    .intention-text { width: 92%; }
    .recherches-grid { grid-template-columns: 1fr; margin-top: 0.4em; margin-bottom: 0rem; gap: 0rem; }
    .recherches { width: 100%; margin-bottom: 1em; }
    #recherches { width: 100vw; height: 100px;}
    #recherches2 { height: 100px;}
    .recherches-card { padding: 1.2rem 1rem; }
    .recherches-num { margin-bottom: 0.1rem;}
    .recherches-titre { margin-bottom: 0.1rem; }
    #supports { width: 98vw; }
    #supports2 { height: 45px;}
    .supports-grid { width: 98vw; display: grid; grid-template-columns: 1fr; margin-top: 3rem; margin: 0 1rem; }
    .supports-card { max-width: 70%; padding: 0.2rem 0.2rem; }
    .supports-tag { margin-top: 5rem; }
    .supports-tag2 { margin-top: 0rem; position: relative; bottom: 50px; }
    .supports2-tag { margin-top: 3rem; }
    .supports2-card { max-width: 70%; margin-bottom: 4rem; }
    .supports3-card { max-width: 90%; padding-bottom: 2rem; }
    .supports3-tag { margin-top: 3rem; }
    .choix-grid { width: 98vw; margin: 0 auto; margin-top: 3rem; margin: 0 0.2rem; }
    .choix-grid2 { width: 98vw; margin: 0 auto; margin-top: 3rem; margin: 0 0.2rem; position: relative; bottom: 40px; }
    .choix-grid3 {  width: 94vw; margin: 0 auto; margin-top: 3rem; margin: 0 0rem; padding-top: 1.5rem; position: relative; right: 4px; }
    .choix-icon-p { width: 98%; }
    .choix-icon-p1 { width: 98%; display: none; }
    .choix-icon-p2 { width: 98%; display: contents; }
    .engras { margin-bottom: 0.5rem; }
    .engras2 { margin-bottom: 0.5rem; position: relative; bottom: 50px; }
    .choix-carda { width: 100%; padding: 0.2rem 0.2rem; position: relative; right: 25px; }
    .choix-cardb { width: 98%; padding: 0.2rem 0.2rem; position: relative; right: 20px; }
    .choix-card2 { max-width: 90%; }
    .choix-card3 { max-width: 90%; }
    .video-grid { width: 100%; margin-bottom: 2rem; }
    .affiche { width: 84%; margin-top: 0.2rem; }
    .video-grid-pastille { width: 60vw; }
    .video-card-pastille { padding: 0.4rem 0.8rem; transition: background 0.3s, border-color 0.3s; display: flex; justify-content: center; }
    .pastille { width: 65%; margin-top: 0rem; }
    .video-card-affiche { padding-top: 0rem; padding-bottom: 1.5rem; padding-left: 0.8rem; padding-right: 0.8rem; }
  }