:root{
  --noir:#0b0b0c;
  --blanc:#f2f0ea;
  --sale:#c9c3b8;
  --rouge:#b11313;
  --olive:#6b7a3b;
  --gris:#2a2a2c;
  --bord:rgba(242,240,234,.18);
  --ombre:rgba(0,0,0,.55);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Helvetica Neue", sans-serif;
  color:var(--blanc);
  background:var(--noir);
  letter-spacing:.2px;
}

a{color:inherit; text-decoration:none}

/* Layout global (volontairement un peu "cassé") */
.shell{
  min-height:100%;
  display:grid;
  grid-template-columns: 1fr;
}

.topbar{
  position:sticky;
  top:0;
  z-index:10;
  background:rgba(11,11,12,.92);
  border-bottom:1px solid var(--bord);
  backdrop-filter:none;
}

.nav{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  padding:14px 16px 12px;
  max-width:1100px;
  margin:0 auto;
}

.brand{
  display:flex;
  flex-direction:column;
  line-height:1;
}
.brand strong{
  font-size:18px;
  letter-spacing:1.5px;
  text-transform:uppercase;
}
.brand span{
  font-size:12px;
  color:var(--sale);
  margin-top:4px;
}

.navlinks{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
}

.navlinks a{
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:1.2px;
  padding:8px 10px;
  border:1px solid transparent;
}
.navlinks a[aria-current="page"]{
  border-color:var(--bord);
}
.navlinks a:hover{
  border-color:rgba(242,240,234,.25);
}

.main{
  max-width:1100px;
  margin:0 auto;
  padding:26px 16px 64px;
}

/* Typo */
.h1{
  font-family: ui-serif, Georgia, "Times New Roman", serif;
  font-weight:600;
  font-size:42px;
  line-height:1.02;
  letter-spacing:-.2px;
  margin:0 0 12px;
}

.kicker{
  color:var(--sale);
  text-transform:uppercase;
  letter-spacing:1.6px;
  font-size:12px;
  margin:0 0 10px;
}

.p{
  color:rgba(242,240,234,.86);
  font-size:15px;
  line-height:1.55;
  margin:0;
}

.muted{color:var(--sale)}

/* Hero */
.hero{
  display:grid;
  grid-template-columns: 1.3fr .9fr;
  gap:22px;
  align-items:start;
  margin-top:6px;
}

.hero .left{
  border-left:2px solid rgba(242,240,234,.18);
  padding-left:14px;
}

.hero .right{
  border:1px solid var(--bord);
  padding:14px;
  background:rgba(255,255,255,.02);
}

.tagrow{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px;
}

.tag{
  font-size:12px;
  padding:7px 10px;
  border:1px dashed rgba(242,240,234,.25);
  color:rgba(242,240,234,.88);
}

.ctaRow{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:18px;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 12px;
  border:1px solid rgba(242,240,234,.25);
  background:transparent;
  cursor:pointer;
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:1.2px;
}
.btn:hover{border-color:rgba(242,240,234,.45)}
.btn.red{border-color:rgba(177,19,19,.65)}

/* Sections */
.section{
  margin-top:34px;
  display:grid;
  grid-template-columns: .85fr 1.15fr;
  gap:22px;
}

.section .label{
  border-top:1px solid var(--bord);
  padding-top:10px;
}

.section .label h2{
  margin:8px 0 0;
  font-size:15px;
  letter-spacing:1.4px;
  text-transform:uppercase;
  font-weight:600;
}

.panel{
  border:1px solid var(--bord);
  padding:14px;
  background:rgba(255,255,255,.02);
}

/* Cartes événements */
.cards{
  display:grid;
  grid-template-columns: 1fr;
  gap:14px;
}

.card{
  display:grid;
  grid-template-columns: 120px 1fr;
  gap:14px;
  align-items:stretch;
  border:1px solid var(--bord);
  background:rgba(255,255,255,.02);
}

.thumb{
  width:100%;
  height:100%;
  min-height:92px;
  object-fit:cover;
  filter:grayscale(.15) contrast(1.05);
}

.card .body{
  padding:12px 12px 12px 0;
}

.card h3{
  margin:0 0 6px;
  font-size:16px;
  font-weight:650;
}

.meta{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  color:var(--sale);
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:1px;
}

hr.sep{
  border:0;
  border-top:1px solid rgba(242,240,234,.12);
  margin:12px 0;
}

/* Galerie */
.gallery{
  display:grid;
  grid-template-columns: repeat(6, 1fr);
  gap:10px;
}
.gallery img{
  width:100%;
  height:140px;
  object-fit:cover;
  border:1px solid rgba(242,240,234,.14);
  filter:contrast(1.05) saturate(.95);
}
.gallery img:nth-child(1){grid-column:1 / span 3; height:180px}
.gallery img:nth-child(2){grid-column:4 / span 3; height:160px}
.gallery img:nth-child(3){grid-column:1 / span 2}
.gallery img:nth-child(4){grid-column:3 / span 4}

/* About */
.bio{
  display:grid;
  grid-template-columns: 1fr;
  gap:14px;
}

.quote{
  font-family: ui-serif, Georgia, "Times New Roman", serif;
  font-size:20px;
  line-height:1.2;
  border-left:2px solid rgba(177,19,19,.55);
  padding-left:12px;
  color:rgba(242,240,234,.92);
}

.split{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:14px;
}

.list{
  margin:0;
  padding-left:18px;
  color:rgba(242,240,234,.86);
}
.list li{margin:6px 0}

/* Contact */
.form{
  display:grid;
  grid-template-columns: 1fr;
  gap:10px;
}

.field{
  display:grid;
  gap:6px;
}

label{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:1.2px;
  color:var(--sale);
}

input, textarea{
  width:100%;
  padding:10px 10px;
  border:1px solid rgba(242,240,234,.18);
  background:rgba(255,255,255,.02);
  color:var(--blanc);
  outline:none;
}

input:focus, textarea:focus{border-color:rgba(242,240,234,.38)}
textarea{min-height:130px; resize:vertical}

.note{
  font-size:12px;
  color:rgba(242,240,234,.72);
}

.footer{
  max-width:1100px;
  margin:0 auto;
  padding:18px 16px 26px;
  color:rgba(242,240,234,.72);
  border-top:1px solid rgba(242,240,234,.12);
  font-size:12px;
}

/* Responsive */
@media (max-width: 860px){
  .hero{grid-template-columns:1fr}
  .section{grid-template-columns:1fr; gap:14px}
  .split{grid-template-columns:1fr}
  .gallery{grid-template-columns:repeat(2, 1fr)}
  .gallery img{height:160px}
  .gallery img:nth-child(1),
  .gallery img:nth-child(2),
  .gallery img:nth-child(3),
  .gallery img:nth-child(4){grid-column:auto; height:160px}
  .card{grid-template-columns: 110px 1fr}
}

@media (max-width: 420px){
  .h1{font-size:34px}
  .nav{align-items:flex-start}
}
