:root {
  --bg-primary: #7a361e;
  --bg-secondary: #6b2e18;
  --bg-dark: #5a2615;
  --bg-darker: #4a1f10;
  --text-primary: #ffb27c;
  --text-heading: #ffc08a;
  --text-muted: rgba(255, 178, 124, 0.88);
  --text-subtle: rgba(255, 178, 124, 0.72);
  --accent: #ffc9a8;
  --border: rgba(255, 178, 124, 0.28);
  --border-accent: rgba(255, 178, 124, 0.45);
  --overlay: rgba(74, 31, 16, 0.85);
  --shadow: rgba(74, 31, 16, 0.4);
  font-family: 'Outfit', system-ui, sans-serif;
  line-height: 1.6;
  color: var(--text-primary);
  background-color: var(--bg-primary);
}

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

body {
  min-width: 320px;
  min-height: 100vh;
  overflow-x: hidden;
  background:
    radial-gradient(1100px 520px at 50% -8%, rgba(255, 178, 124, 0.14), transparent 62%),
    radial-gradient(900px 600px at 12% 8%, rgba(255, 178, 124, 0.07), transparent 55%),
    radial-gradient(900px 700px at 100% 100%, rgba(255, 178, 124, 0.06), transparent 55%),
    linear-gradient(168deg, var(--bg-primary) 0%, var(--bg-secondary) 45%, var(--bg-dark) 100%);
  background-attachment: fixed;
}
html { scroll-behavior: smooth; }

a { color: var(--text-primary); text-decoration: none; transition: opacity 0.2s; }
a:hover { opacity: 0.85; }

h1, h2, h3 {
  font-family: 'Quicksand', sans-serif;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--text-heading);
}

.container { max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; }

/* Typo : pas de césure agressive, veuves/orphelines limitées */
body { hyphens: none; -webkit-hyphens: none; }
p, li, .lead, .roster-intro, .hero-description { overflow-wrap: break-word; text-wrap: pretty; }
h1, h2, h3 { text-wrap: balance; }

::selection { background: rgba(255, 178, 124, 0.4); color: var(--bg-darker); }

.btn {
  display: inline-block;
  padding: 0.9rem 2rem;
  font-family: 'Outfit', sans-serif;
  font-weight: 500;
  font-size: 0.95rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-radius: 4px;
  transition: all 0.2s;
  cursor: pointer;
}

.btn-primary {
  background: var(--text-primary);
  color: var(--bg-primary);
  border: 2px solid var(--text-primary);
}

.btn-primary:hover {
  background: transparent;
  color: var(--text-primary);
  opacity: 1;
}

.btn-secondary {
  background: transparent;
  color: var(--text-primary);
  border: 2px solid rgba(255, 178, 124, 0.5);
}

.btn-secondary:hover {
  border-color: var(--text-primary);
  background: rgba(255, 178, 124, 0.15);
  opacity: 1;
}

/* Header */
.header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1000;
  background: rgba(90, 38, 21, 0.95);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border);
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.5rem;
}

.home-link { display: flex; align-items: center; color: var(--text-primary); padding: 4px; transition: transform 0.2s; }
.home-link:hover { opacity: 1; color: var(--text-heading); transform: translateY(-2px); }
.home-icon { width: 28px; height: 28px; display: block; transition: transform 0.2s; }
.home-link:hover .home-icon { transform: translateY(-2px); }
.logo-img, .custom-logo, .custom-logo-link img { height: 88px; width: auto; max-width: none; object-fit: contain; display: block; }
@media (max-width: 768px) { .logo-img, .custom-logo, .custom-logo-link img { height: 60px; } }

.menu-toggle {
  display: none;
  flex-direction: column;
  gap: 6px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  z-index: 1001;
}

.menu-toggle span {
  width: 24px;
  height: 2px;
  background: var(--text-primary);
  transition: all 0.3s;
}

.menu-toggle span:nth-child(1).open { transform: rotate(45deg) translate(5px, 5px); }
.menu-toggle span:nth-child(2).open { opacity: 0; }
.menu-toggle span:nth-child(3).open { transform: rotate(-45deg) translate(5px, -5px); }

.nav { display: flex; gap: 2rem; align-items: center; }
/* jamais de puces dans le menu, même si un menu admin sort une liste <ul><li> */
.nav, .nav ul, .nav li { list-style: none; margin: 0; padding: 0; }
.nav ul { display: flex; gap: 2rem; align-items: center; }
.nav li::marker { content: ""; }

.nav-link {
  font-family: 'Outfit', sans-serif;
  font-weight: 500;
  font-size: 0.95rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 0.25rem 0;
  border-bottom: 2px solid transparent;
  transition: border-color 0.2s;
}

.nav-link:hover, .nav-link.active { border-bottom-color: var(--text-primary); opacity: 1; }

/* Semis de pictos (éléments du logo) — fond global + calques de section */
.afd-decor { position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.afd-doodles-layer { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.afd-deco {
  position: absolute;
  display: block;
  color: var(--text-primary);
  opacity: 0.08;
  will-change: transform;
  transform: rotate(var(--rot, 0deg)) translateY(var(--py, 0px));
  animation: afd-float 13s ease-in-out infinite;
}
.afd-deco--dandelion { width: 96px; height: 114px; }
.afd-deco--notes2 { width: 76px; height: 81px; }
.afd-deco--trumpet { width: 108px; height: 63px; }
.afd-deco--note { width: 46px; height: 70px; }
.afd-deco--clef { width: 54px; height: 88px; }
.afd-deco--heart { width: 40px; height: 37px; }

/* Composition : un grand pissenlit qui ancre, des accents petits/moyens (--rot = rotation, --py = parallaxe JS) */
.d-1 { width: 300px; height: 357px; left: -2%;  bottom: -4%; --rot: -6deg;  opacity: 0.05; animation-delay: 0s; }      /* pissenlit XL, ancrage */
.d-2 { width: 120px; height: 128px; right: 3%;  top: 12%;   --rot: 8deg;   opacity: 0.06; animation-delay: -2.5s; }  /* notes, moyen */
.d-3 { width: 88px;  height: 51px;  left: 12%;  top: 60%;   --rot: -4deg;  opacity: 0.05; animation-delay: -4s; }     /* trompette, petit */
.d-4 { width: 40px;  height: 61px;  left: 7%;   top: 22%;   --rot: -12deg; opacity: 0.10; animation-delay: -6.5s; }  /* note, accent */
.d-5 { width: 78px;  height: 127px; right: 4%;  bottom: 13%; --rot: 6deg;  opacity: 0.07; animation-delay: -3s; }     /* clé de sol, moyen */
.d-6 { width: 54px;  height: 58px;  right: 14%; top: 74%;   --rot: 10deg;  opacity: 0.07; animation-delay: -5s; }     /* notes, petit */
.d-7 { width: 34px;  height: 31px;  right: 9%;  top: 40%;   --rot: 0deg;   opacity: 0.11; animation-delay: -7.5s; }  /* cœur, accent */
.d-8 { width: 70px;  height: 84px;  right: 6%;  top: 7%;    --rot: 16deg;  opacity: 0.06; animation-delay: -1s; }     /* petit pissenlit */

@keyframes afd-float {
  0%, 100% { translate: 0 0; }
  50% { translate: 0 -7px; }
}
@media (prefers-reduced-motion: reduce) { .afd-deco { animation: none; } }
/* on allège fortement sur petit écran (perf + lisibilité) */
@media (max-width: 768px) {
  .afd-deco:nth-child(even) { display: none; }
}

/* Reveal au scroll (fondu + léger zoom). Gardé sans flash via .afd-anim posé tôt. */
.afd-anim :is(.artist-card, .projet-card, .pres-card, .artist-section, .contact-person, .contact-pitch, .contact-values, .pres-cta, .news-card) {
  opacity: 0;
  transform: translateY(20px) scale(0.975);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}
.afd-anim :is(.artist-card, .projet-card, .pres-card, .artist-section, .contact-person, .contact-pitch, .contact-values, .pres-cta, .news-card).afd-in {
  opacity: 1;
  transform: none;
}

/* Zoom doux des visuels au survol */
.artist-card-image img, .projet-card-image img { transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1); }
.artist-card:hover .artist-card-image img,
.projet-card:hover .projet-card-image img { transform: scale(1.06); }

/* Skeleton (shimmer pendant le chargement des images / vidéos) */
.afd-skel { position: relative; }
.afd-skel::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(100deg, rgba(255, 178, 124, 0.05) 30%, rgba(255, 178, 124, 0.16) 50%, rgba(255, 178, 124, 0.05) 70%);
  background-size: 220% 100%;
  animation: afd-shimmer 1.4s ease-in-out infinite;
}
@keyframes afd-shimmer { 0% { background-position: 220% 0; } 100% { background-position: -220% 0; } }
@media (prefers-reduced-motion: reduce) { .afd-skel::after { animation: none; opacity: 0.4; } }

/* Layout */
.main { position: relative; z-index: 1; min-height: calc(100vh - 140px); padding-top: 80px; }

.footer {
  background: var(--bg-darker);
  padding: 2rem 1.5rem;
  text-align: center;
  border-top: 1px solid var(--border);
}

.footer p { font-size: 0.9rem; color: var(--text-muted); margin: 0.25rem 0; }
.footer .tagline { font-size: 0.8rem; color: var(--text-subtle); }

/* Preview banner */
.afd-preview-banner {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 9999;
  background: var(--accent-warm, #f08e50);
  color: var(--bg-darker);
  text-align: center;
  padding: 0.5rem;
  font-size: 0.85rem;
  font-weight: 600;
}

.afd-preview-mode .header { top: 32px; }
.afd-preview-mode .main { padding-top: 112px; }

/* Home */
.home { position: relative; }

.hero { padding: 3rem 0 4.5rem; text-align: center; }
.hero-content { max-width: 1180px; margin: 0 auto; }

.hero-logo-wrap { margin: 0 0 2rem; }
.hero-logo {
  display: block;
  width: min(620px, 88%);
  height: auto;
  margin: 0 auto;
  border-radius: 12px;
  filter: drop-shadow(0 16px 40px rgba(74, 31, 16, 0.5));
}
.hero-description { max-width: 720px; margin-left: auto; margin-right: auto; }
.hero-title { font-size: clamp(2.5rem, 6vw, 4rem); margin-bottom: 0.5rem; }
.hero-tagline {
  font-weight: 300;
  font-size: 1.1rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin-bottom: 2rem;
  opacity: 0.9;
}

.hero-description { font-size: 1.15rem; line-height: 1.8; color: var(--text-muted); margin-bottom: 2.5rem; }
.hero-actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }

.artists-preview {
  position: relative;
  overflow: hidden;
  padding: 4rem 0;
  background: linear-gradient(180deg, rgba(107, 46, 24, 0.65) 0%, rgba(74, 31, 16, 0.55) 100%);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid rgba(74, 31, 16, 0.6);
}
.artists-preview > .container { position: relative; z-index: 1; }
.artists-preview h2 { text-align: center; margin-bottom: 2.5rem; font-size: 2rem; }

.artists-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1.5rem;
  margin-bottom: 2rem;
}

.artist-card {
  display: block;
  background: linear-gradient(160deg, var(--bg-secondary) 0%, var(--bg-darker) 100%);
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 6px 20px rgba(74, 31, 16, 0.35);
  transition: transform 0.2s, box-shadow 0.2s;
}

.artist-card:hover { transform: translateY(-4px); box-shadow: 0 16px 46px var(--shadow); opacity: 1; }

.artist-card-image { position: relative; aspect-ratio: 4/3; overflow: hidden; }
.artist-card-image img { width: 100%; height: 100%; object-fit: cover; }
.artist-card-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  font-size: 3.5rem;
  color: rgba(255, 178, 124, 0.35);
  background: radial-gradient(circle at 50% 40%, rgba(255, 178, 124, 0.12), transparent 70%), var(--bg-darker);
}

.countries-badge {
  position: absolute;
  bottom: 0.5rem; right: 0.5rem;
  background: var(--overlay);
  color: var(--text-primary);
  padding: 0.25rem 0.5rem;
  font-size: 0.75rem;
}

.artist-card-content { padding: 1.25rem; }
.artist-card-content h3 { font-size: 1.1rem; margin-bottom: 0.5rem; color: var(--text-heading); }
.artist-card-content p {
  font-size: 0.92rem;
  line-height: 1.55;
  color: var(--text-muted);
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
  hyphens: none;
  -webkit-hyphens: none;
  overflow-wrap: break-word;
  text-wrap: pretty;
}

.view-all { display: block; text-align: center; font-weight: 500; letter-spacing: 0.05em; }
.cta { padding: 4rem 0; text-align: center; }
.cta p { font-size: 1.2rem; margin-bottom: 1.5rem; color: var(--text-muted); }

/* Roster */
.roster-page { padding-bottom: 4rem; }
.roster-header { padding: 3rem 0; text-align: center; }
.roster-header h1 { margin-bottom: 1rem; font-size: 2.5rem; }
.roster-intro { font-size: 1.1rem; line-height: 1.75; color: var(--text-muted); max-width: 760px; margin: 0 auto; }
.roster-section { padding: 2rem 0; }
.roster-section.enfants { background: linear-gradient(180deg, rgba(107, 46, 24, 0.6), rgba(74, 31, 16, 0.5)); border-top: 1px solid var(--border); padding: 3rem 0; }
.roster-section.enfants .roster-intro { text-align: left; margin: 0 0 1.75rem; max-width: 820px; }
.section-title { margin-bottom: 2rem; font-size: 1.75rem; }

/* Artist detail */
.artist-detail { padding: 2rem 0 4rem; }
.back-link { display: inline-block; margin-bottom: 2rem; font-size: 0.95rem; }
.artist-article { max-width: 900px; margin: 0 auto; }
.artist-hero { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; margin-bottom: 3rem; }
.artist-image { border-radius: 12px; overflow: hidden; aspect-ratio: 4/3; }
.artist-image img { width: 100%; height: 100%; object-fit: cover; }
.artist-meta { align-self: center; }
.artist-meta h1 { font-size: 2.25rem; margin-bottom: 0.75rem; }
.countries, .booking { display: block; font-size: 0.9rem; opacity: 0.85; margin-bottom: 0.25rem; }

.artist-tags { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.25rem; }
.artist-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.35rem 0.8rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: rgba(255, 178, 124, 0.06);
  font-size: 0.85rem;
  color: var(--text-muted);
}
.artist-tag svg { width: 15px; height: 15px; opacity: 0.85; flex: none; }
.artist-lead { font-size: 1.15rem; line-height: 1.7; color: var(--text-muted); }

.artist-section { margin-top: 2.75rem; }
.artist-section-title { display: flex; align-items: center; gap: 0.6rem; font-size: 1.4rem; margin-bottom: 1.25rem; }
.artist-section-title svg { width: 24px; height: 24px; color: var(--text-primary); flex: none; }

.artist-video {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%;
  margin-bottom: 2rem;
  border-radius: 12px;
  overflow: hidden;
}

.artist-video iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; }

.lead { font-size: 1.2rem; line-height: 1.7; color: var(--text-muted); margin-bottom: 1.5rem; }
.full-description, .page-body { font-size: 1.05rem; line-height: 1.8; color: var(--text-muted); }
.full-description p, .page-body p { margin-bottom: 1rem; }

/* Anti « texte bleu » (bulletproof) : neutralise TOUTE couleur collée depuis
   Word/Google Docs (color ET -webkit-text-fill-color) ou choisie via les présets
   WordPress, pour garder la teinte chaude du thème dans tous les contenus.
   On force d'abord tout en hérité, puis on réaffirme titres et liens. */
.page-body, .full-description, .pres-extra, .entry-content, .page-content,
.lead, .roster-intro, .hero-description, .artist-description, .projet-description {
  color: var(--text-muted) !important;
  -webkit-text-fill-color: var(--text-muted) !important;
}
.page-body *, .full-description *, .pres-extra *, .entry-content *, .page-content *,
.lead *, .roster-intro *, .hero-description *, .artist-description *, .projet-description * {
  color: inherit !important;
  -webkit-text-fill-color: inherit !important;
  background-color: transparent !important;
}
/* les liens restent dans la teinte d'accent */
.page-body a, .full-description a, .pres-extra a, .entry-content a, .page-content a,
.lead a, .roster-intro a, .hero-description a {
  color: var(--text-primary) !important;
  -webkit-text-fill-color: var(--text-primary) !important;
}
/* les titres gardent leur teinte de titre */
.page-body :is(h1,h2,h3,h4,h5,h6), .full-description :is(h1,h2,h3,h4,h5,h6),
.pres-extra :is(h1,h2,h3,h4,h5,h6), .entry-content :is(h1,h2,h3,h4,h5,h6),
.page-content :is(h1,h2,h3,h4,h5,h6) {
  color: var(--text-heading) !important;
  -webkit-text-fill-color: var(--text-heading) !important;
}

.artist-contact {
  margin-top: 2.75rem;
  padding: 2rem 2.25rem;
  background: linear-gradient(160deg, var(--bg-secondary), var(--bg-darker));
  border: 1px solid var(--border);
  border-radius: 14px;
}
.artist-contact h2 { font-size: 1.25rem; margin-bottom: 0.4rem; }
.artist-contact > p { color: var(--text-muted); margin-bottom: 1.1rem; }
.artist-contact .contact-lines a:hover { text-decoration: underline; opacity: 1; }

/* Présentation */
.presentation-hero { padding: 3.5rem 0 1rem; text-align: center; }
.presentation-hero h1 { font-size: 2.75rem; margin-bottom: 0.75rem; }
.presentation-hero .lead { font-size: 1.25rem; color: var(--text-muted); max-width: 640px; margin: 0 auto; }
.presentation-content { padding: 2.5rem 0 4rem; }

.pres-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.75rem;
  margin-bottom: 3rem;
}

.pres-card {
  padding: 2.25rem 2rem;
  background: linear-gradient(160deg, var(--bg-secondary), var(--bg-darker));
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: 0 8px 26px rgba(74, 31, 16, 0.32);
}
.pres-card h2 { font-size: 1.3rem; margin-bottom: 0.9rem; }
.pres-card p { color: var(--text-muted); line-height: 1.75; }

.pres-icon {
  display: block;
  margin-bottom: 1.1rem;
  color: var(--text-primary);
  line-height: 0;
}
.pres-icon svg { width: 52px; height: 52px; stroke-width: 1.5; }

.pres-list { list-style: none; display: grid; gap: 0.7rem; }
.pres-list li { color: var(--text-muted); line-height: 1.6; }

.pres-extra { max-width: 760px; margin: 0 auto 2.5rem; }

.pres-cta {
  text-align: center;
  padding: 2.5rem;
  border-radius: 16px;
  background: linear-gradient(160deg, rgba(107, 46, 24, 0.5), rgba(74, 31, 16, 0.4));
  border: 1px solid var(--border);
}
.pres-cta p { font-size: 1.2rem; color: var(--text-muted); margin-bottom: 1.25rem; }

/* Pages */
.page-content { padding: 2rem 0 4rem; }
.page-header { margin-bottom: 2rem; text-align: center; }
.page-header h1 { font-size: 2.5rem; }

/* News */
.news-page { padding-bottom: 4rem; }
.news-header { padding: 3rem 0 2rem; text-align: center; }
.news-header h1 { font-size: 2.5rem; margin-bottom: 0.5rem; }
.news-header p { color: var(--text-muted); }
.news-grid { display: grid; gap: 2rem; max-width: 700px; margin: 0 auto 3rem; }
.news-card {
  padding: 2rem;
  background: var(--bg-secondary);
  border-radius: 12px;
  border-left: 4px solid var(--border-accent);
}

.news-date { font-size: 0.85rem; color: var(--text-subtle); margin-bottom: 0.5rem; display: block; }
.news-card h2 { font-size: 1.25rem; margin-bottom: 0.75rem; }
.news-card h2 a { color: var(--text-heading); }
.news-card p { color: var(--text-muted); }
.news-contact { text-align: center; color: var(--text-subtle); }

/* Vidéos multiples (artistes & projets) */
.artist-videos { display: grid; gap: 1.5rem; margin-bottom: 2rem; }

/* Projets - archive */
.projets-page { padding-bottom: 4rem; }
.projets-header { padding: 3rem 0; text-align: center; }
.projets-header h1 { margin-bottom: 1rem; font-size: 2.5rem; }
.projets-intro { font-size: 1.1rem; color: var(--text-muted); max-width: 600px; margin: 0 auto; }
.projets-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2rem;
}

.projet-card {
  display: block;
  width: 360px;
  max-width: 100%;
  background: linear-gradient(160deg, var(--bg-secondary) 0%, var(--bg-darker) 100%);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 6px 20px rgba(74, 31, 16, 0.35);
  transition: transform 0.2s, box-shadow 0.2s;
}

.projet-card:hover { transform: translateY(-4px); box-shadow: 0 16px 46px var(--shadow); opacity: 1; }
.projet-card-image { position: relative; aspect-ratio: 16/9; overflow: hidden; background: var(--bg-secondary); }
.projet-card-image img { width: 100%; height: 100%; object-fit: cover; }

.projet-badge {
  position: absolute;
  top: 0.75rem; left: 0.75rem;
  background: var(--overlay);
  color: var(--text-primary);
  padding: 0.25rem 0.75rem;
  border-radius: 4px;
  font-size: 0.8rem;
  font-weight: 600;
}

.projet-card-content { padding: 1.5rem; }
.projet-card-content h2 { font-size: 1.35rem; margin-bottom: 0.75rem; color: var(--text-heading); }
.projet-card-content p { font-size: 0.95rem; color: var(--text-muted); margin-bottom: 0.75rem; }
.projet-partner { display: block; font-size: 0.85rem; color: var(--text-subtle); font-style: italic; }

/* Projets - fiche */
.projet-detail { padding: 2rem 0 4rem; }
.projet-article { max-width: 900px; margin: 0 auto; }
.projet-hero { margin-bottom: 2.5rem; }
.projet-image { border-radius: 12px; overflow: hidden; margin-bottom: 1.5rem; }
.projet-image img { width: 100%; height: auto; display: block; }
.projet-meta h1 { font-size: 2.25rem; margin-bottom: 0.5rem; }
.projet-year { display: inline-block; font-weight: 600; color: var(--text-heading); margin-right: 1rem; }
.projet-meta .projet-partner { display: inline; }
.projet-videos { margin-top: 2.5rem; }
.projet-videos h2 { font-size: 1.5rem; margin-bottom: 1.5rem; }

/* Contact */
.contact-page { padding-bottom: 4rem; }
.contact-header { padding: 3rem 0 2rem; text-align: center; }
.contact-header h1 { font-size: 2.5rem; margin-bottom: 0.5rem; }
.contact-header p { color: var(--text-muted); }
.contact-layout {
  display: grid;
  grid-template-columns: 340px 1fr;
  gap: 2rem;
  align-items: stretch;
  max-width: 980px;
  margin: 0 auto;
}
.contact-person, .contact-pitch { display: flex; flex-direction: column; }
.contact-person { justify-content: center; }
.contact-pitch { justify-content: center; }

.contact-person {
  padding: 2.5rem 2rem;
  text-align: center;
  background: linear-gradient(160deg, var(--bg-secondary), var(--bg-darker));
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(74, 31, 16, 0.4);
}

.contact-avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 92px;
  height: 92px;
  margin: 0 auto 1.25rem;
  border-radius: 50%;
  font-family: 'Quicksand', sans-serif;
  font-weight: 700;
  font-size: 2rem;
  letter-spacing: 0.04em;
  color: var(--bg-darker);
  background: radial-gradient(circle at 35% 30%, #ffd2ad, var(--text-primary));
  box-shadow: inset 0 -6px 14px rgba(74, 31, 16, 0.25), 0 8px 20px rgba(74, 31, 16, 0.35);
}

.contact-person-name { font-size: 1.5rem; margin-bottom: 0.25rem; }
.contact-person-role { color: var(--text-subtle); font-size: 0.95rem; margin-bottom: 1.75rem; }

.contact-lines { list-style: none; display: grid; gap: 0.85rem; text-align: left; }
.contact-lines li { display: flex; align-items: center; gap: 0.75rem; }
.contact-lines svg { width: 22px; height: 22px; flex: none; color: var(--text-primary); opacity: 0.85; }
.contact-lines a { font-size: 1.05rem; word-break: break-word; }
.contact-lines a:hover { text-decoration: underline; opacity: 1; }

.contact-pitch {
  padding: 2.5rem;
  background: linear-gradient(160deg, rgba(107, 46, 24, 0.55), rgba(74, 31, 16, 0.45));
  border: 1px solid var(--border);
  border-radius: 16px;
}
.contact-pitch h2 { font-size: 1.6rem; margin-bottom: 1rem; }
.contact-pitch .lead { margin-bottom: 1.5rem; }
.contact-pitch .btn { margin-top: 0.5rem; }

.contact-values {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2.5rem;
  max-width: 980px;
  margin: 3rem auto 0;
  padding-top: 2.25rem;
  border-top: 1px solid var(--border);
}
.contact-values li { display: flex; flex-direction: column; align-items: center; gap: 0.7rem; text-align: center; color: var(--text-muted); font-size: 0.95rem; }
.contact-values svg {
  width: 26px; height: 26px;
  padding: 13px;
  box-sizing: content-box;
  color: var(--text-heading);
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, rgba(255, 201, 168, 0.28), rgba(255, 178, 124, 0.10));
  border: 1px solid var(--border-accent);
}

/* Doodles */
.doodles-container { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.doodle-note, .doodle-heart { position: absolute; font-size: 2rem; opacity: 0.08; color: var(--text-primary); }
.doodle-note { top: 15%; right: 25%; }
.note-2 { bottom: 30%; left: 20%; font-size: 1.5rem; }
.doodle-heart { top: 40%; right: 10%; font-size: 1.2rem; }

@media (max-width: 1024px) {
  .pres-grid { grid-template-columns: 1fr; }
  .contact-layout { grid-template-columns: 1fr; max-width: 520px; }
}

@media (max-width: 768px) {
  .menu-toggle { display: flex; }
  .nav {
    position: fixed;
    top: 0; right: 0; bottom: 0;
    width: 280px;
    flex-direction: column;
    justify-content: center;
    gap: 2rem;
    background: var(--bg-secondary);
    transform: translateX(100%);
    transition: transform 0.3s;
    padding: 5rem 2rem 2rem;
    box-shadow: -10px 0 30px var(--shadow);
  }
  .nav.open { transform: translateX(0); }
  .artist-hero { grid-template-columns: 1fr; }
  .doodle-note, .doodle-heart { display: none; }
}

@media (max-width: 640px) {
  .artists-grid { grid-template-columns: 1fr; }
}
