/* ===============================
   Layout général
   =============================== */
body {
  background: linear-gradient(180deg,#0b1220 0%, #08101a 100%);
  font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  color: #0f1724;
  padding: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
}

.passport-wrap {
  width: min(1100px, 95vw);
  display: flex;
  box-shadow: 0 20px 50px rgba(2,6,23,0.7);
  border-radius: 12px;
  overflow: hidden;
  background: #f6f4ef;
}

/* Taille réaliste du passeport sur desktop */
@media (min-width: 1024px) {
  .passport-wrap {
    width: min(900px, 85vw);  /* avant 1100px, maintenant 900px */
    min-height: 550px;
  }
  .side-left,
  .side-right {
    display: flex;
    flex-direction: column;
  }
}

/* ===============================
   Page gauche (profil / infos)
   =============================== */
.side-left {
  position: relative;
  width: 34%;
  background: #efefec;
  padding: 28px;
  border-right: 1px solid rgba(15,23,42,0.06);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
}

.avatar {
  width: 10.5rem;
  height: 10.5rem;
  border-radius: 9999px;
  object-fit: cover;
  box-shadow: 0 8px 20px rgba(2,6,23,0.18);
  border: 6px solid rgba(255,255,255,0.8);
  background: #ddd;
  margin-top: -60px;
}

.passport-title {
  font-weight: 800;
  letter-spacing: 0.06em;
  color: #0e173e;
  margin-top: -10px;
}

.passport-info {
  width: 100%;
  margin-top: 6px;
  background: linear-gradient(180deg, rgba(255,255,255,0.72), rgba(255,255,255,0.9));
  border-radius: 8px;
  padding: 12px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.6);
}

.info-row {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 6px;
  align-items: baseline;
}
.info-label {
  font-size: 0.72rem;
  color: #334155;
  text-transform: uppercase;
  font-weight: 600;
  opacity: 0.8;
  width: 45%;
}
.info-value {
  font-weight: 700;
  color: #07123a;
  text-transform: uppercase;
  text-align: right;
  width: 55%;
}

.info-full {
  display: block;
  width: 100%;
  padding-top: 6px;
  font-size: 0.82rem;
  color: #334155;
}

/* ===============================
   Page droite (contenu années)
   =============================== */
.side-right {
  width: 66%;
  position: relative;
  padding: 28px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Background: texture OR plain */
.side-right.bg-paper {
  background:
    url('../images/paper-texture.jpg') center/cover no-repeat,
    linear-gradient(180deg,#fbf7f0,#f6f2ea);
  background-blend-mode: multiply;
}
.side-right.bg-solid {
  background: linear-gradient(180deg,#fdfcf8,#f8f5ee);
}

/* Onglets */
.tabs { display:flex; gap:10px; align-items:center; }
.tab {
  padding: 8px 12px;
  cursor: pointer;
  border-bottom: 3px solid transparent;
  color: #0f1724;
  font-weight: 700;
  background: transparent;
}
.tab.active { border-color: #0e173e; color: #0e173e; }

/* Grille des tampons/logos */
.stamps-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 30px;
  margin-top: 12px;
  justify-items: center;
}
.stamp {
  width: 88px;
  height: 88px;
  border-radius: 8px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(255,255,255,0.55);
  padding: 8px;
  box-shadow: 0 8px 18px rgba(2,6,23,0.08);
  transition: transform .18s ease, box-shadow .18s ease;
  overflow: hidden;
  object-fit: contain;
}
.stamp img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: .95;
  filter: grayscale(0.03) contrast(0.98);
}
.stamp:hover {
  transform: translateY(-6px) rotate(-3deg);
  box-shadow: 0 18px 36px rgba(2,6,23,0.18);
}

/* Watermark logo */
.passport-watermark {
  position: absolute;
  left: 14px;
  bottom: 14px;
  width: clamp(60px, 8vw, 90px);  /* un peu plus petit */
  opacity: 0.14;
  pointer-events: none;
  filter: saturate(0.8) contrast(0.9);
  color: #07123a;
}

/* Responsive */
@media (max-width: 900px) {
  .passport-wrap { flex-direction: column; width: 95vw; }
  .side-left, .side-right { width: 100%; }
  .passport-watermark { width: 120px; left: 14px; bottom: 12px; }
}

/* ===============================
   Tampons style "visa rond"
   =============================== */
.stamp-round {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  border: 3px dashed #0e173e;
  color: #0e173e;
  background: rgba(255,255,255,0.6);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-family: "Courier New", monospace;
  font-weight: 700;
  font-size: 0.8rem;
  text-transform: uppercase;
  line-height: 1.1;
  position: relative;
  transform: rotate(-5deg);
  opacity: 0.9;
  box-shadow: 0 4px 10px rgba(0,0,0,0.1);
  transition: transform 0.2s ease;
}

.stamp, .stamp-round {
  max-width: 120px;
  max-height: 120px;
}

.stamp-round:hover {
  transform: rotate(2deg) scale(1.05);
  opacity: 1;
}

/* Petite date en bas */
.stamp-date {
  font-size: 0.65rem;
  font-weight: 600;
  margin-top: 6px;
  opacity: 0.8;
}
