:root{
  --bg:#faf8f4;        /* very light, warm */
  --text:#1f2123;      /* near-black for contrast */
  --muted:#6f6a61;     /* muted taupe for secondary text */
  --line:#e9e3d9;      /* soft divider */
  --accent:#a77a4d;    /* earthy sand/terracotta */
  --sand:#efe7db; /* ajout: beige doux */
  --container:1120px;
  --contact-title-nudge: 2px; /* ajustez 1–4px selon la fonte */
}

*{box-sizing:border-box}
html:focus-within{scroll-behavior:smooth}
html,body{margin:0}
body{
  background:var(--bg);
  color:var(--text);
  font:16px/1.65 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:var(--container);margin:auto;padding:0 20px}

/* Header / nav */
header{
  position:sticky; top:0; z-index:10;
  background:rgba(255,255,255,.9); /* crisper light header */
  backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid var(--line);
}
.nav{display:flex; align-items:center; justify-content:space-between; min-height:64px; gap:18px}
.brand{font-weight:700; letter-spacing:.04em}
.nav a{margin:0 10px; position:relative; padding:8px 0}
.nav a::after{
  content:""; position:absolute; left:0; bottom:-10px; height:2px; width:100%;
  background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .25s ease;
}
.nav a:hover::after{transform:scaleX(1)}
.lang{display:flex; gap:8px}
.lang button, .panel-lang button{
  background:#fff; border:1px solid var(--line); color:var(--muted);
  padding:6px 10px; border-radius:999px; cursor:pointer;
}
.lang button[aria-current="true"],
.panel-lang button[aria-current="true"]{color:var(--text); border-color:var(--accent)}

/* Hero */
.hero{
  padding:72px 0;
  display:grid; grid-template-columns:.8fr 1.2fr; gap:140px; align-items:center;
  border-bottom:1px solid var(--line);
}
.hero h1{margin:.1em 0; font-size:clamp(2rem,6vw,3.25rem); line-height:1.1; letter-spacing:.02em}
.hero p{color:var(--muted); margin:.5rem 0 1.25rem}
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:5px 18px; /* plus compact */
  border-radius:999px;
  border:1px solid var(--accent);
  background:var(--accent); color:#fff;
  font-weight:600;
  text-decoration:none;
  transition:filter .2s ease, transform .02s, background .2s, color .2s, border-color .2s;
}
.btn:hover{filter:brightness(1.05)}
.btn:active{transform:translateY(1px)}
.btn--accent{ background:var(--accent); border-color:var(--accent); color:#fff; }
.btn--sand{ background:var(--sand); border-color:color-mix(in srgb, var(--accent) 20%, var(--sand)); color:var(--text); }
.btn--outline{ background:transparent; border-color:var(--accent); color:var(--accent); }
.btn--ghost{ background:transparent; color:var(--text); border:1px solid var(--line); }
.media{
  width:100%;
  background:#f9f7f3;             /* lighter media placeholder */
  border:1px solid #ece6db;
  border-radius:14px; overflow:hidden; display:block;
}
/* Groupe social (header) */
.social{ display:flex; gap:8px; align-items:center; }
.social__btn{
  width:36px; height:36px;
  display:inline-flex; align-items:center; justify-content:center;
  background:#fff; color:var(--text);
}
.social__btn svg{ display:block; }

/* Sections */
section{padding:64px 0; border-bottom:1px solid var(--line)}
h2{font-size:clamp(1.35rem,3vw,2rem); margin:0 0 18px; letter-spacing:.01em}

/* Resume — stronger section titles + clearer sub-section blocks */
#resume h2{
  font-size: clamp(1.8rem, 4vw, 2.4rem);
  letter-spacing: .02em;
  margin: 0 0 18px;
  position: relative;
}
#resume h2::after{
  content:"";
  display:block;
  width:72px; height:3px;
  margin-top:10px;
  background: var(--accent);
  border-radius:2px;
}

/* Subsection headings: stand out */
h3{
  margin: 34px 0 10px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--text);
  position: relative;
  padding-left: 12px;
}
h3::before{
  content:"";
  position:absolute;
  left:0; top:50%;
  transform: translateY(-50%);
  width:6px; height:18px;
  border-radius:3px;
  background: color-mix(in srgb, var(--accent) 85%, white);
}

/* Subsection content as a soft "card" */
#resume h3 + .credits{
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 14px 16px;
  display: grid;
  gap: 10px;
}

/* Items with subtle separators */
#resume .credits li{
  padding: 8px 0;
  border-bottom: 1px dashed color-mix(in srgb, var(--line) 85%, transparent);
}
#resume .credits li:last-child{ border-bottom: 0; }
#resume .credits strong{ font-weight: 700; }
#resume .credits small{ color: var(--muted); }

/* Menu: keep animated underline, remove text-decoration on hover */
.nav a:hover{ text-decoration: none; }

/* Resume: no bullets + grid pairing of sections */
#resume .credits{
  list-style: none;
  padding: 0;
  margin: 0;
}

/* Resume forced 2-col masonry */
#resume .resume-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px 32px;
  grid-auto-flow: dense; /* permet de remplir les “trous” plus haut */
}
#resume .resume-grid.masonry{
  grid-auto-rows: 8px; /* activé seulement quand le JS a calculé les spans */
}
#resume .resume-block{
  margin: 0;
  min-height: 1px;
}
#resume .resume-block[data-col="1"]{ grid-column: 1; }
#resume .resume-block[data-col="2"]{ grid-column: 2; }

@media (max-width: 900px){
  #resume .resume-grid{
    grid-template-columns: 1fr;
  }
  #resume .resume-block{ grid-column: 1 !important; }
}

/* Assure une colonne unique à l’intérieur de chaque bloc */
#resume .resume-block .credits{ display: grid; grid-template-columns: 1fr; }

/* Base grid utilities (used by Reels and Headshots) */
.grid{ display:grid; gap:16px; }

/* Headshots: responsive thumbnails grid */
.grid.headshots{ grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); }

/* Media blocks (reels/headshots) */
figure{
  margin:0;
  border:1px solid var(--line);
  border-radius:12px;
  overflow:hidden;
  background:#fff;
}
figure iframe{
  width:100%;
  aspect-ratio:16/9;
  border:0;
  display:block;
}
figure img{ width:100%; height:auto; display:block; }
figure figcaption{
  padding:10px 12px;
  color:var(--muted);
  font-size:.92rem;
}

/* Contact form */
form{ display:grid; gap:12px; max-width:640px; }
label span{ display:block; margin:0 0 6px; color:var(--text); }
input, textarea{
  width:100%;
  padding:12px 14px;
  border-radius:10px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--text);
}
input:focus, textarea:focus{ outline:2px solid color-mix(in srgb, var(--accent) 35%, transparent); }
.muted{ color:var(--muted); }

/* Headshots: 2 colonnes */
.headshots-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  align-items: start;
}
@media (min-width: 900px){
  .headshots-grid{ grid-template-columns: 1fr 1fr; gap: 32px; }
}
.headshots-grid .col > h3{
  margin: 0 0 12px;
  font-size: .95rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted, #667085);
}

/* HOME hero: packshot gauche / contenu droite */
.home-hero{
  display:grid; gap:24px; align-items:center;
  grid-template-columns: 1fr;
  margin: 24px 0 40px;
}
@media (min-width: 900px){
  .home-hero{ grid-template-columns:.8fr 1.2fr; gap:32px; }
}
.home-hero__media img{ width:100%; height:auto; display:block; border-radius:12px; }
.home-hero__content .intro{ margin:12px 0 16px; }

/* Reel principal large */
.video-embed{ position:relative; padding-top:56.25%; border-radius:12px; overflow:hidden; background:#000; }
.video-embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.reel-hero{ margin: 24px 0 40px; }

/* Grille 2 colonnes (reels secondaires) */
.grid-2{ display:grid; grid-template-columns: 1fr; gap:16px; }
@media (min-width: 900px){ .grid-2{ grid-template-columns: 1fr 1fr; gap:20px; } }
.video-embed--thumb{ padding-top:56.25%; }

/* Contact layout */
#contact .contact-grid{
  display:grid;
  grid-template-areas:
    "title  visual"
    "main   visual";
  grid-template-columns: 1fr minmax(280px, 380px);
  gap: 12px 32px;
  align-items:start;
}
#contact .contact-title{ grid-area:title; margin:0 0 8px; }
#contact .contact-main{ grid-area:main; }
#contact .contact-visual{ grid-area:visual; margin:0; align-self:start;
  border:1px solid var(--line,#e5e7eb); border-radius:12px; overflow:hidden; background:#fff;
}
#contact .contact-visual img{ display:block; width:100%; height:auto; }

@media (max-width: 900px){
  #contact .contact-grid{
    grid-template-areas:
      "title"
      "visual"
      "main";
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

/* Masonry Grid (imbrication) */
#headshots .masonry{ display:grid; grid-template-columns: repeat(auto-fill, minmax(180px,1fr)); grid-auto-rows:2px; grid-auto-flow:dense; gap:16px; }
@media (min-width: 900px){ #headshots .masonry{ grid-template-columns: repeat(auto-fill, minmax(200px,1fr)); } }
#headshots .masonry-item{ grid-row-end:auto; margin:0; border:0; background:transparent; opacity:.001; transform:translateY(6px); transition:opacity .35s ease, transform .35s ease, box-shadow .2s; cursor:zoom-in; }
#headshots .masonry-item.is-loaded{ opacity:1; transform:none; }
#headshots .masonry-item img{ width:100%; height:auto; display:block; border:1px solid var(--line,#e5e7eb); border-radius:12px; background:#fff; }
#headshots .masonry-item:hover{ box-shadow:0 6px 18px rgba(0,0,0,.06); }

/* Lightbox */
.lightbox{ position:fixed; inset:0; display:none; align-items:center; justify-content:center; background:rgba(0,0,0,.85); padding:4vw; z-index:1000; cursor:zoom-out; }
.lightbox.is-open{ display:flex; }
.lightbox__img{ max-width:min(92vw,1400px); max-height:90vh; width:auto; height:auto; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,.6); }
.lightbox__close{ position:absolute; top:14px; right:14px; background:transparent; border:0; color:#fff; font-size:32px; line-height:1; cursor:pointer; }
body.lb-open{ overflow:hidden; }

/* Responsive */
@media (max-width:900px){
  .hero{grid-template-columns:1fr; padding:48px 0}
  .nav > div:nth-child(2){display:flex; flex-wrap:wrap; gap:6px}
}

/* Keep light theme even if system prefers dark */
@media (prefers-color-scheme: dark){
  :root{
    --bg:#faf8f4; --text:#1f2123; --muted:#6f6a61; --line:#e9e3d9;
  }
  header{background:rgba(255,255,255,.9)}
  figure, input, textarea{background:#fff}
  .media{background:#f9f7f3}
}

/* Aligner visuellement le titre sur le haut du visuel */
#contact .contact-title{
  position: relative;
  top: calc(-1 * var(--contact-title-nudge));
  line-height: 1.05; /* réduit la marge haute liée à la ligne */
}
/* Optionnel: désactiver l’ajustement en mobile */
@media (max-width: 900px){
  :root{ --contact-title-nudge: 0px; }
}

/* (Expérimental, sans impact si non supporté) */
#contact .contact-title{
  text-edge: cap alphabetic;
  leading-trim: both;
}

/* Section actions (links to children pages) */
.section-actions{ margin-top: 12px; display: flex; gap: 8px; }

/* Burger */
.nav-toggle{
  appearance:none; -webkit-appearance:none;
  display:none; /* shown by media query */
  background:transparent; border:0; padding:0; margin:0;
  width:40px; height:40px; position:relative; cursor:pointer; color:var(--text,#111);
}
.nav-toggle span{
  position:absolute; left:9px; right:9px; height:2px; background:currentColor;
  border-radius:2px; transform-origin:center; transition:transform .2s ease, opacity .2s ease, top .2s ease;
}
.nav-toggle span:nth-child(1){ top:12px; }
.nav-toggle span:nth-child(2){ top:19px; }
.nav-toggle span:nth-child(3){ top:26px; }
.nav-toggle[aria-expanded="true"] span:nth-child(1){ top:19px; transform:rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ top:19px; transform:rotate(-45deg); }

/* Slide-down panel */
.nav-panel{
  position:fixed; left:0; right:0; z-index:1000; background:#fff;
  border-bottom:1px solid var(--line,#e5e7eb);
  transform:translateY(-8px); opacity:0; visibility:hidden; pointer-events:none;
  transition:transform .2s ease, opacity .2s ease, visibility .2s ease;
}
.nav-panel.open{ transform:translateY(0); opacity:1; visibility:visible; pointer-events:auto; }
.nav-panel .panel-inner{ padding:12px 20px 16px; display:grid; gap:12px; }
.nav-panel nav a{ display:block; padding:10px 0; border-bottom:1px dashed color-mix(in srgb, var(--line,#e5e7eb) 85%, transparent); }
.nav-panel nav a:last-child{ border-bottom:0; }
body.nav-open{ overflow:hidden; }

/* Force burger below 1024px (always) */
@media (max-width: 1024px){
  .nav{ align-items:center; gap:10px; }
  .nav .nav-links{ display:none !important; }
  .lang{ display:none !important; }
  .nav .social{ margin-left:auto; }
  .nav-toggle{ display:inline-flex !important; }
}
@media (min-width: 1025px){
  .nav-panel{ display:none !important; }
  .nav-toggle{ display:none !important; }
}