/* ===== OFFSHORE — pagina foto (stesso sistema della landing) ===== */
:root {
  --navy-deep: #0D2134;
  --white: #FFFFFF;
  --oro: #C9A86A;
  --font-mono: "Space Mono", monospace;
  --edge: clamp(20px, 4vw, 48px);
}

* { box-sizing: border-box; }
body {
  margin: 0;
  background: var(--navy-deep);
  color: var(--white);
  font-family: var(--font-mono);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--oro); outline-offset: 4px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}

/* ---- testata ---- */
.head {
  text-align: center;
  padding: clamp(40px, 8vh, 72px) var(--edge) 8px;
  max-width: 720px;
  margin: 0 auto;
}
.head__mark { display: inline-block; }
.head__mark img { width: 64px; margin: 0 auto 28px; }
.head__title {
  margin: 0;
  font-size: clamp(26px, 6vw, 44px);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.15;
}
.head__sub {
  margin: 10px 0 0;
  font-size: 13px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  opacity: 0.85;
}
.head__coord {
  margin: 6px 0 0;
  font-size: 11px;
  letter-spacing: 0.22em;
  opacity: 0.6;
}
.head__coord span { color: var(--oro); }
.head__rule {
  border: 0;
  border-top: 1px solid var(--oro);
  width: 56px;
  margin: 26px auto;
  opacity: 0.9;
}
.head__note {
  margin: 0 0 6px;
  font-size: 13px;
  line-height: 1.7;
  opacity: 0.75;
}
.head__all {
  display: inline-block;
  margin: 18px 0 4px;
  padding: 13px 26px;
  background: var(--white); color: var(--navy-deep);
  text-decoration: none;
  font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase;
  transition: background 0.2s ease;
}
.head__all:hover, .head__all:focus-visible { background: var(--oro); }

/* ---- scelta edizione ---- */
.editions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 18px;
  padding: 30px var(--edge) 10px;
  max-width: 1060px;
  margin: 0 auto;
}
.edition {
  display: block;
  text-decoration: none;
}
.edition img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  background: rgba(255, 255, 255, 0.04);
}
.edition__label {
  display: block;
  text-align: center;
  padding: 16px 8px 18px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.14em;
  border-bottom: 1px solid transparent;
  transition: border-color 0.2s ease;
}
.edition:hover .edition__label,
.edition:focus-visible .edition__label { border-bottom-color: var(--oro); }
.edition:hover img { opacity: 0.88; }

/* ---- griglia ---- */
.grid {
  columns: 3 320px;
  gap: 10px;
  padding: 26px var(--edge) 10px;
  max-width: 1400px;
  margin: 0 auto;
}
.grid a {
  display: block;
  margin: 0 0 10px;
  break-inside: avoid;
}
.grid img {
  width: 100%;
  height: auto;
  background: rgba(255, 255, 255, 0.04);
}
.grid a:hover img { opacity: 0.88; }

/* ---- lightbox ---- */
.lightbox[hidden] { display: none; }
.lightbox {
  position: fixed; inset: 0;
  z-index: 10;
  background: rgba(13, 33, 52, 0.96);
  display: flex; align-items: center; justify-content: center;
}
.lightbox__img {
  max-width: calc(100vw - 32px);
  max-height: calc(100svh - 110px);
  width: auto; height: auto;
  margin-bottom: 40px;
}
.lightbox__btn {
  position: absolute;
  background: none; border: 0;
  color: var(--white);
  font-family: var(--font-mono);
  font-size: 30px; line-height: 1;
  padding: 14px;
  cursor: pointer;
  opacity: 0.8;
}
.lightbox__btn:hover { opacity: 1; }
.lightbox__close { top: 10px; right: 12px; }
.lightbox__prev { left: 4px; top: 50%; transform: translateY(-50%); }
.lightbox__next { right: 4px; top: 50%; transform: translateY(-50%); }
.lightbox__dl {
  position: absolute;
  bottom: 22px; left: 50%;
  transform: translateX(-50%);
  background: var(--white); color: var(--navy-deep);
  text-decoration: none;
  font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase;
  padding: 12px 26px;
  transition: background 0.2s ease;
}
.lightbox__dl:hover, .lightbox__dl:focus-visible { background: var(--oro); }

/* ---- footer ---- */
.foot {
  text-align: center;
  padding: 36px var(--edge) 44px;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.foot a {
  text-decoration: none;
  opacity: 0.85;
  padding-bottom: 3px;
  border-bottom: 1px solid transparent;
  transition: opacity 0.2s ease, border-color 0.2s ease;
}
.foot a:hover, .foot a:focus-visible { opacity: 1; border-bottom-color: var(--oro); }
.foot__dot { color: var(--oro); margin: 0 10px; }
