/* ═══════════════════════════════════════════════════════════════
   GIGA MEGA SUPER — UGC · Surcouche de style
   Charge APRÈS style.css : neutralise l'identité rainbow/pride et
   ajoute les quelques composants propres au portfolio UGC.
   Ne touche pas à la structure ni aux effets (nav, hero, ticker,
   scatter parallax) définis dans style.css.
═══════════════════════════════════════════════════════════════ */

:root {
  --accent: #c1602e;
}

/* Neutralise les accents rainbow/pink hérités du magasin */
.nav-mobile::before { background: var(--accent); }
.hero-visual::after { background: var(--accent); }
.ticker span.dot { color: var(--accent); }

/* ── NAV : sans lang-switcher, c'est ".nav-shop" qui pousse le bouton
   contact + le burger vers la droite (le style.css d'origine pousse
   depuis ".lang-switcher", absent ici). ── */
.nav-inner > .nav-shop { margin-left: auto; }

/* ── SOULIGNEMENT ".pu" → couleur d'accent, partout sur ce site.
   Le trait fin (.09em) posé par style.css est pensé pour un mot court
   au milieu d'une phrase ; dès qu'un mot emphasé se retrouve seul sur
   sa ligne (titres multi-lignes, tailles "sec-title" et "giant"), il
   devient une grosse barre pleine largeur qui mord parfois sur la
   ligne suivante — bug visuel signalé à plusieurs reprises. Plutôt que
   de corriger cas par cas, on neutralise le soulignement partout et on
   marque le mot par une couleur d'accent, plus sobre et sans risque. ── */
.pu {
  background-image: none;
  color: var(--accent);
  padding-bottom: 0;
}

/* ── PIXEL TRIP : neutralise les derniers accents rainbow/pink de la
   console rétro (reskin "GayBoy" → contenu, zéro référence pride). ── */
.pr-overlay h3 .rc { background: none; -webkit-text-fill-color: var(--accent); color: var(--accent); }
.gb-hud .gb-lives-val { color: var(--accent); }
.gb-btn-a { border-color: var(--accent); color: var(--accent); }
.gb-joy-fill { background: var(--accent); }
.gb-shape.s3 { border-color: rgba(193,96,46,.18); }
.gb-shape.s4 { border-color: rgba(193,96,46,.16); }

/* ── HERO PLACEHOLDER (en attendant la vidéo définitive) ── */
.hv-placeholder {
  position: absolute; inset: 0;
  background: linear-gradient(200deg, #3c4a4e 0%, #7c8a6e 42%, #d8c9a8 78%, #efe6d3 100%);
}
.hv-placeholder-tag {
  position: absolute; top: 96px; left: 2.2rem;
  display: inline-flex; align-items: center; gap: .5rem;
  border: 1px dashed rgba(255,255,255,.5);
  border-radius: var(--r);
  padding: .45rem .8rem;
  font-family: var(--fb); font-size: .7rem; color: rgba(255,255,255,.85);
  z-index: 2;
}

/* ── SCATTER : tuiles en dégradé (placeholder en attendant les vraies photos) ── */
.cg-t.ph { background-size: cover; }
.cg-fade-note {
  position: absolute; left: 0; right: 0; bottom: 26px; z-index: 3;
  display: flex; justify-content: center; pointer-events: none;
}
.cg-fade-note span {
  pointer-events: auto;
  font-family: var(--fb); font-size: .74rem; color: var(--mut);
  background: #fff; border: 1px solid var(--line); border-radius: var(--r);
  padding: .5rem 1rem; max-width: 480px; text-align: center;
}

/* ── CHIPS (sélecteurs catégorie / budget / délai) ── */
.chip-group { display: flex; gap: .5rem; flex-wrap: wrap; }
.chip-btn {
  font-family: var(--fb); font-size: .8rem; font-weight: 600;
  padding: .6rem 1.05rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff; color: var(--ink);
  transition: background .2s, color .2s, border-color .2s;
}
.chip-btn:hover { border-color: var(--ink); }
.chip-btn.on { background: var(--ink); color: var(--bg); border-color: var(--ink); }

/* ── CARTES FORMAT (section "Pourquoi l'UGC") ── */
.fmt-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.1rem; }
.fmt-card {
  background: #fff; border: 1px solid var(--line); border-radius: 6px;
  padding: 1.5rem 1.3rem; display: flex; flex-direction: column; gap: .55rem;
}
.fmt-card .num { font-family: var(--fh); font-weight: 800; font-size: .78rem; color: var(--accent); }
.fmt-card .ttl { font-family: var(--fh); font-weight: 800; font-size: 1rem; text-transform: uppercase; letter-spacing: -.005em; }
.fmt-card p { font-family: var(--fb); font-size: .87rem; color: var(--mut); line-height: 1.55; margin: 0; }

/* ── PORTFOLIO : grille de vignettes verticales ── */
.pf-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; flex-wrap: wrap; }
.pf-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1.1rem; margin-top: 2.4rem; }
.pf-card {
  position: relative; border-radius: 10px; overflow: hidden;
  aspect-ratio: 9 / 16;
  box-shadow: 0 18px 30px -18px rgba(16,16,16,.35);
  transition: transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s;
  cursor: pointer;
}
.pf-card:hover, .pf-card:focus-visible {
  transform: scale(1.12);
  z-index: 5;
  box-shadow: 0 30px 50px -16px rgba(16,16,16,.5);
}
.pf-card:hover .cap, .pf-card:focus-visible .cap { padding-bottom: 1.1rem; }
.pf-card .tag {
  position: absolute; top: 10px; left: 10px; z-index: 2;
  font-family: var(--fb); font-size: .62rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  color: #fff; background: rgba(16,16,16,.55); padding: .3rem .6rem; border-radius: 999px;
}
.pf-card .play {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); z-index: 2;
  width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,.28);
  display: flex; align-items: center; justify-content: center;
}
.pf-card .cap {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: .9rem .8rem;
  background: linear-gradient(0deg, rgba(0,0,0,.72), rgba(0,0,0,0));
}
.pf-card .cap .t { font-family: var(--fh); font-weight: 800; font-size: .82rem; color: #fff; text-transform: uppercase; margin: 0; }
.pf-card .cap .s { font-family: var(--fb); font-size: .72rem; color: rgba(255,255,255,.85); margin: .2rem 0 0; }

/* ── MÉTHODE (page à propos) : 4 étapes ── */
.method-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--line); border-radius: 4px; overflow: hidden; }
.method-step { background: var(--bg); padding: 1.5rem 1.4rem; }
.method-step .num { font-family: var(--fh); font-weight: 800; font-size: .78rem; color: var(--accent); }
.method-step .ttl { font-family: var(--fh); font-weight: 800; font-size: .95rem; text-transform: uppercase; margin: .5rem 0 0; }
.method-step p { font-family: var(--fb); font-size: .84rem; color: var(--mut); line-height: 1.5; margin: .35rem 0 0; }

/* ── PLACEHOLDER PHOTO (about) ── */
.photo-placeholder {
  width: 100%; aspect-ratio: 4/3; border-radius: 6px;
  background: linear-gradient(155deg,#d9dee0,#6f8189);
  position: relative;
}
.photo-placeholder span {
  position: absolute; bottom: 14px; left: 14px;
  font-family: var(--fb); font-size: .68rem; color: rgba(255,255,255,.9);
  background: rgba(16,16,16,.45); padding: .35rem .7rem; border-radius: 999px;
}

@media (max-width: 900px) {
  .fmt-grid { grid-template-columns: repeat(2, 1fr); }
  .pf-grid { grid-template-columns: repeat(3, 1fr); }
  .method-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .fmt-grid { grid-template-columns: 1fr; }
  .pf-grid { grid-template-columns: repeat(2, 1fr); }
  .method-grid { grid-template-columns: 1fr; }
}

/* ── GALERIE MÉDIA (grille cliquable, "bibliothèque média") ── */
.media-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1rem; }
.media-item {
  position: relative; border-radius: 8px; overflow: hidden; aspect-ratio: 1;
  cursor: pointer; border: none; padding: 0;
  transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s;
  box-shadow: 0 10px 22px -14px rgba(16,16,16,.35);
}
.media-item:hover, .media-item:focus-visible { transform: scale(1.06); z-index: 2; box-shadow: 0 22px 36px -16px rgba(16,16,16,.45); }
.media-item .play-badge {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
  width: 34px; height: 34px; border-radius: 50%; background: rgba(255,255,255,.3);
  display: flex; align-items: center; justify-content: center;
}
@media (max-width: 900px) { .media-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .media-grid { grid-template-columns: repeat(2, 1fr); } }

/* ── LIGHTBOX (visionneuse plein écran, réutilisée par la galerie et le portfolio) ── */
.lightbox { position: fixed; inset: 0; z-index: 950; display: none; align-items: center; justify-content: center; padding: 2rem; }
.lightbox.open { display: flex; }
.lightbox-backdrop { position: absolute; inset: 0; background: rgba(10,10,10,.92); }
.lightbox-dialog { position: relative; z-index: 1; width: min(92vw, 720px); max-height: 90vh; display: flex; flex-direction: column; align-items: center; gap: 1rem; }
.lightbox-close {
  position: absolute; top: -46px; right: 0; background: none; border: none;
  color: #fff; font-size: 1.5rem; cursor: pointer; padding: .4rem; line-height: 1;
}
.lightbox-media-wrap { position: relative; width: 100%; display: flex; align-items: center; justify-content: center; }
.lightbox-nav {
  position: absolute; top: 50%; transform: translateY(-50%);
  background: rgba(255,255,255,.12); border: none; color: #fff;
  width: 44px; height: 44px; border-radius: 50%; font-size: 1.4rem; cursor: pointer;
  display: flex; align-items: center; justify-content: center; transition: background .2s;
  z-index: 2;
}
.lightbox-nav:hover { background: rgba(255,255,255,.25); }
.lightbox-nav.prev { left: -6px; } .lightbox-nav.next { right: -6px; }
@media (max-width: 760px) { .lightbox-nav.prev { left: 4px; } .lightbox-nav.next { right: 4px; } }
.lightbox-panel {
  width: 100%; border-radius: 10px; overflow: hidden; position: relative;
  box-shadow: 0 40px 70px -20px rgba(0,0,0,.6);
}
.lightbox-panel.portrait { aspect-ratio: 9/16; max-height: 74vh; width: auto; margin: 0 auto; }
.lightbox-panel.landscape { aspect-ratio: 4/3; }
.lightbox-placeholder-label {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  text-align: center; padding: 1.5rem;
}
.lightbox-placeholder-label .tag {
  font-family: var(--fb); font-size: .68rem; color: rgba(255,255,255,.75);
  text-transform: uppercase; letter-spacing: .1em;
  background: rgba(0,0,0,.3); padding: .5rem .9rem; border-radius: 999px;
}
.lightbox-caption { color: #fff; text-align: center; }
.lightbox-caption .t { font-family: var(--fh); font-weight: 800; text-transform: uppercase; font-size: .95rem; margin: 0; }
.lightbox-caption .s { font-family: var(--fb); font-size: .8rem; color: rgba(255,255,255,.7); margin: .3rem 0 0; }
.lightbox-dots { display: flex; gap: .4rem; flex-wrap: wrap; justify-content: center; max-width: 100%; }
.lightbox-dot { width: 7px; height: 7px; border-radius: 50%; background: rgba(255,255,255,.3); border: none; cursor: pointer; padding: 0; }
.lightbox-dot.on { background: #fff; }

/* ── VIDÉO DE PRÉSENTATION (section "On se présente") ── */
.intro-video {
  position: relative;
  max-width: 880px;
  margin: 0 auto;
  aspect-ratio: 16 / 9;
  border-radius: 10px;
  overflow: hidden;
  background: linear-gradient(155deg,#3c4a4e 0%,#7c8a6e 55%,#d8c9a8 100%);
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 30px 60px -24px rgba(16,16,16,.4);
  cursor: pointer;
}
.intro-video-tag {
  position: absolute; top: 16px; left: 16px;
  font-family: var(--fb); font-size: .7rem; color: rgba(255,255,255,.85);
  border: 1px dashed rgba(255,255,255,.5); border-radius: var(--r);
  padding: .4rem .8rem;
}
.intro-video-play {
  width: 74px; height: 74px; border-radius: 50%;
  background: rgba(255,255,255,.22);
  display: flex; align-items: center; justify-content: center;
  transition: background .25s, transform .25s;
}
.intro-video:hover .intro-video-play { background: rgba(255,255,255,.32); transform: scale(1.06); }

/* ── PROSE (mentions légales) : le bloc était collé à gauche avec un grand
   vide à droite sur les écrans larges (max-width:780px, non centré).
   On centre le bloc et on l'élargit légèrement. ── */
.prose {
  max-width: 860px;
  margin-left: auto;
  margin-right: auto;
}

/* ── MÉDIA RÉEL (uploadé via l'admin) dans les tuiles portfolio / galerie ── */
.pf-card .real-media, .media-item .real-media {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1;
}
