/* RESET */
* { margin:0; padding:0; box-sizing:border-box; }

/* LAYOUT BASE */
html, body {
  height:100%;
  font-family:'Roboto', sans-serif;
  background:#fff;
  color:#000;
  display:flex;
  flex-direction:column;
  align-items:center;
  overflow-x:hidden;
}

/* LOGO */
.topbar {
  width:100%;
  height:100px;
  display:flex;
  justify-content:center;
  align-items:center;
  position:relative;
  z-index:100;
  pointer-events: none;
  
}
.logo {
  font-size:3rem;
  display:flex;
  align-items:center;
  gap:.2em;
  font-family:'Lato', sans-serif;
  font-weight:300;
  pointer-events: auto;
  background-color: white;
}
.plus-wrapper { width:1em; height:1em; display:flex; align-items:center; }
.plus-rotator {
  width:10vw; height:10vw;
  display:flex; justify-content:center; align-items:center;
  transform:rotate(45deg) scale(1.455);
  transition:transform .6s ease;
}
.plus-rotator.rotated { transform:rotate(135deg) scale(1.455); }
.plus-svg line { stroke:#000; stroke-width:10; }

/* IMAGE */
.gallery-wrapper {
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  overflow:hidden;
}
.gallery-wrapper img {
  width:55vw;
  height:75vh;
  object-fit:cover;
}

/* MENU */
.menu-bar {
  position:relative;
  width:100%;
  height:3rem;
  margin:1.5rem 0;
  background-color: white;
}
.menu-bar span, .menu-bar a {
  position:absolute;
  top:0;
  font-size:1.2rem;
  font-weight:700;
  cursor:pointer;
  user-select:none;
  transform:translateX(-50%);
  transition:left .4s ease;
  text-decoration:none;
  color:inherit;
}

/* PANEL */
.panel {
  position:fixed;
  left:0;
  bottom:-100%;
  width:100%;
  height:100vh;
  background:#fff;
  z-index:50;
  overflow-y:auto;
  display:flex;
  flex-direction:column;
  scrollbar-width:none;
  scrollbar-gutter: stable;
  transition:bottom .6s ease;
}
.panel::-webkit-scrollbar { display:none; }
.panel.active { bottom:0; }

/* PANEL TITLE */
.panel-title {
  position:sticky;
  top:0;
  z-index:1;
  display:block;
  border-bottom:2px solid #000;
  background-color: white;
  height: 100px;
  min-height: 100px;
  max-height: 100px;
  line-height: 100px;
  overflow: hidden;
  font-size:1.2rem;
  font-weight:700;
  padding:0 1rem;
}
.panel-title span {
  position:absolute;
  top:50%;
  transform:translate(-50%, -50%);
  cursor:pointer;
  transition:color .4s ease;
}
.panel-title .inactive { color:#ccc; }
.panel-title .active { color:#000; }

/* TABLE — DESKTOP */
.project-header, .project-row {
  display:grid;
  grid-template-columns:1.2fr 4fr 2fr 2fr 1.5fr 1.5fr;
  gap:1.5rem;
  padding:.6rem 1.25rem;
}
.project-header { border-bottom:2px solid #000; font-weight:700; }
.project-row { border-bottom:1px solid #000; }
.project-row.bold {
  grid-column:1/-1;
  font-weight:700;
  text-align:center;
  white-space: nowrap;
  padding: .6rem 0 .6rem 1.25rem;
}

/* TEXT */
.panel-content p {
  font-size:1.2rem;
  line-height:1.6;
  max-width:80ch;
  margin:0 auto;
  padding:.6rem 1rem;
}
.panel-content.agence p { text-align:center; }

/* Portrait block */
.portrait {
  width:100%;
  display:flex;
  justify-content:center;
  margin:1rem 0;
}
.portrait img {
  max-width:320px;
  width:50%;
  height:auto;
  object-fit:cover;
}

/* Harmonisation typographique agence + projets */
.panel-content p,
.project-row,
.project-header {
  font-size: 1rem;
  line-height: 1.6;
}

/* -------------------------------------- */
/* RESPONSIVE — TABLETTES */
@media (max-width: 992px) {
  .gallery-wrapper img {
    width:75vw;
    height:65vh;
  }
  .logo { font-size:2.5rem; }
}

.email { position: absolute; }

/* RESPONSIVE — MOBILES */
@media (max-width: 600px) {

  .topbar { height:80px; }
  .logo { font-size:2rem; }

  .gallery-wrapper img {
    width:90vw;
    height:55vh;
    
    .email {
    top: -100px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
  }

  .menu-bar {
    height:2.5rem;
    margin:1rem 0;
  }
  .menu-bar span {
    font-size:1rem;
  }

  .panel-title {
    height:3rem;
    font-size:1rem;
  }

  /* Table → Cartes verticales */
  .project-header { display:none; }

  .project-row {
    display:flex;
    flex-direction:column;
    gap:.2rem;
    padding:1rem;
    border-bottom:1px solid #000;
  }

  .project-row > div::before {
    font-weight:700;
    display:block;
    opacity:.6;
    margin-bottom:.1rem;
  }

  .project-row > div:nth-child(1)::before { content:"Année"; }
  .project-row > div:nth-child(2)::before { content:"Programme"; }
  .project-row > div:nth-child(3)::before { content:"Architecte"; }
  .project-row > div:nth-child(4)::before { content:"Maître d’ouvrage"; }
  .project-row > div:nth-child(5)::before { content:"Localisation"; }
  .project-row > div:nth-child(6)::before { content:"Statut"; }

  .project-row.bold {
    padding:1rem;
    font-size:1rem;
  }

  .panel-content p {
    font-size:1.05rem;
    padding:1rem;
  }
}
