/* ==========================================================
   Pagina "I vostri scatti" (foto.html).
   Usa i token e i componenti di styles.css; qui solo le aggiunte.
   ========================================================== */

/* ---------- Testata ---------- */

.foto-testata {
  position: relative;
  display: grid;
  place-items: center;
  min-height: min(100svh, 940px);   /* alta tutto schermo, come la copertina del sito */
  padding: clamp(300px, 36vh, 360px) var(--gutter) 80px;   /* spazio per il filo con le polaroid */
  color: var(--avorio);
  text-align: center;
  overflow: hidden;
}
.foto-menu { justify-content: space-between; }
.foto-menu__casa img { width: 34px; height: auto; }
.foto-testata__centro { position: relative; z-index: 2; display: grid; justify-items: center; max-width: 620px; }
.foto-testata__titolo {
  margin: 10px 0 18px;
  font-family: "Hello Diandra", cursive;
  font-size: clamp(3.75rem, 11vw, 7.5rem);
  line-height: 1.2;
  color: var(--avorio);   /* v3: come i nomi in copertina */
  white-space: nowrap;
}
.foto-testata__testo { max-width: 46ch; opacity: .9; }
.foto-stato {
  margin-top: 28px;
  padding: 10px 18px;
  border: 1px solid color-mix(in srgb, var(--avorio) 50%, transparent);
  font: 400 .72rem/1.4 var(--font-testo);
  letter-spacing: .18em;
  text-transform: uppercase;
}
.foto-stato:empty { display: none; }

/* filo con le polaroid appese */
.filo {
  position: absolute;
  left: 0;
  right: 0;
  top: 78px;
  height: 120px;
  pointer-events: none;
}
.filo__linea { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.filo__linea path { fill: none; stroke: color-mix(in srgb, var(--avorio) 70%, transparent); stroke-width: 1.2px; vector-effect: non-scaling-stroke; }
.appesa {
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: clamp(96px, 11vw, 150px);
  padding: 8px 8px 26px;
  background: #fff;
  box-shadow: 0 18px 28px -14px rgba(0, 0, 0, .5);
  transform-origin: 50% -6px;           /* oscilla appesa alla molletta */
  transform: translateX(-50%) rotate(var(--r));
  opacity: 0;
  animation: appendi 1.1s cubic-bezier(.2, .8, .3, 1) var(--d) forwards;
}
/* la molletta di legno */
.appesa::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -12px;
  width: 9px;
  height: 24px;
  transform: translateX(-50%);
  border-radius: 2px;
  background: linear-gradient(90deg, #C9A77A, #E3C9A0 50%, #B98F5E);
  box-shadow: 0 2px 3px rgba(0, 0, 0, .3);
}
.appesa__foto { display: block; aspect-ratio: 4 / 5; background: var(--grana), #FBF8F1; overflow: hidden; }
.appesa__foto img { width: 100%; height: 100%; object-fit: contain; padding: 14% 6%; }
@keyframes appendi {
  0%   { opacity: 0; transform: translateX(-50%) translateY(-60px) rotate(calc(var(--r) * -2)); }
  45%  { opacity: 1; transform: translateX(-50%) translateY(0) rotate(calc(var(--r) * 1.8)); }
  75%  { transform: translateX(-50%) rotate(calc(var(--r) * .6)); }
  100% { opacity: 1; transform: translateX(-50%) rotate(var(--r)); }
}
@media (prefers-reduced-motion: reduce) {
  .appesa { animation: none; opacity: 1; }
}
.foto-testata .mazzo { z-index: 1; }

/* ---------- Attesa ---------- */

.foto-attesa[hidden] { display: none; }

/* ---------- Come funzionerà (foto degli sposi in polaroid + tre passi) ---------- */

.foto-passi {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(40px, 7vw, 110px);
  max-width: 1160px;
  margin: 0 auto;
  padding: clamp(72px, 10vw, 128px) var(--gutter);
}
/* la foto in una cornice bianca da istantanea, leggermente inclinata */
.foto-passi__foto {
  margin: 0;
  padding: 12px 12px 54px;
  background: #fff;
  box-shadow: 0 30px 50px -24px rgba(0, 0, 0, .45);
  transform: rotate(-3deg);
}
.foto-passi__foto img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 40%; }
.foto-passi__lista { display: grid; gap: 30px; margin: 0; padding: 0; list-style: none; }
.foto-passi__lista li { display: grid; grid-template-columns: 48px 1fr; column-gap: 20px; align-items: start; }
.foto-passi__numero {
  grid-row: span 2;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border: 1px solid var(--bordeaux);
  border-radius: 50%;
  font-family: var(--font-display);
  font-size: 1.375rem;
  color: var(--bordeaux);
}
.foto-passi h3 { font: 500 .8rem/1.5 var(--font-testo); letter-spacing: .2em; text-transform: uppercase; margin: 4px 0 4px; }
.foto-passi p { color: var(--testo-tenue); max-width: 40ch; }

/* ---------- Caricamento ---------- */

.foto-carica { padding: clamp(72px, 10vw, 128px) var(--gutter); }
.foto-carica__scheda {
  position: relative;
  max-width: 600px;
  margin: 0 auto;
  padding: clamp(32px, 6vw, 56px) clamp(22px, 6vw, 56px);
  background: var(--grana), var(--carta);
  box-shadow: 0 30px 60px -20px rgba(64, 72, 49, .3);
  text-align: center;
}
.foto-carica__nota { color: var(--testo-tenue); margin: -10px 0 28px; }
.foto-carica__form { display: grid; gap: 22px; text-align: left; }
.foto-carica__zona {
  display: grid;
  justify-items: center;
  gap: 10px;
  padding: 36px 20px;
  border: 1px dashed var(--salvia);
  text-align: center;
  cursor: pointer;
  transition: background-color .2s, border-color .2s;
}
.foto-carica__zona:hover { background: color-mix(in srgb, var(--cipria) 18%, transparent); border-color: var(--bordeaux); }
.foto-carica__zona input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.foto-carica__zona:focus-within { outline: 1px solid var(--bordeaux); outline-offset: 4px; }
.foto-carica__icona img { width: 64px; height: auto; filter: drop-shadow(0 4px 5px rgba(0, 0, 0, .3)); }
.foto-carica__invito { font: 400 .78rem/1.4 var(--font-testo); letter-spacing: .2em; text-transform: uppercase; color: var(--bordeaux); }
.foto-carica__dettaglio { font-size: .8125rem; color: var(--testo-tenue); }
.foto-carica__form .bottone { justify-self: center; }

/* bloccato prima dell'apertura e dopo la chiusura */
.foto-carica.bloccato .foto-carica__form { opacity: .45; pointer-events: none; filter: grayscale(.4); }

.foto-carica__elenco { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.foto-carica__elenco:empty { display: none; }
.foto-carica__elenco li { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; font-size: .875rem; }
.foto-carica__elenco progress { grid-column: 1 / -1; width: 100%; height: 4px; accent-color: var(--bordeaux); }

/* ---------- Galleria ---------- */

.foto-galleria__vuota { max-width: 44ch; margin: -8px auto 8px; color: var(--testo-tenue); }
.foto-galleria__vuota:empty { display: none; }
.polaroid--vuota span {
  display: block;
  aspect-ratio: 4 / 5;
  background: var(--grana), color-mix(in srgb, var(--lino) 70%, #fff);
}

/* ---------- Footer ---------- */

.foto-footer { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 18px; }
.foto-footer__torna { color: var(--avorio); }

/* ---------- Telefono ---------- */

@media (max-width: 820px) {
  .foto-passi { grid-template-columns: 1fr; }
  .foto-passi__foto { width: min(82%, 340px); justify-self: center; }
  .foto-testata { padding-bottom: 150px; min-height: min(100svh, 760px); }
  .foto-testata { padding-top: 270px; }
  .filo { top: 96px; height: 80px; }
  .appesa { width: 84px; padding: 5px 5px 16px; }
  .appesa--2, .appesa--4 { display: none; }
  .appesa--1 { --x: 17% !important; }
  .appesa--5 { --x: 83% !important; }
}
