/* Stili aggiuntivi del portfolio — non modificano il template Namari.
   Didascalie galleria, badge "venduto", card dello shop. */

/* --- Hero home: opera verticale mostrata INTERA (contain), su fondo bianco --- */
/* L'immagine è verticale: con `cover` si vedrebbe solo l'ombrello (fascia alta).
   Con `contain` si vede tutta la figura; il fondo bianco si fonde col resto del
   sito e con lo sfondo chiaro del dipinto, l'opera è allineata a destra e il
   testo dell'hero resta a sinistra, leggibile (colore #111 del template). */
#banner.banner-full {
  background-size: contain;
  background-repeat: no-repeat;
  background-position: right center;
  background-color: #fff;
  min-height: 85vh;
}

/* Desktop: l'immagine dell'hero deve stare SOTTO il menu, non dietro.
   1) La barra del menu (#header, alta 71px, in cima) diventa opaca bianca così
      copre l'immagine dietro di sé → vale per tutte le pagine (stesso #header).
   2) Nella home la figura è ancorata in basso e rimpicciolita quel tanto che basta
      perché il suo bordo superiore resti sotto il menu (niente taglio netto). */
@media (min-width: 768px) {
  /* Cornice a larghezza fissa: il sito non si espande con lo schermo e l'immagine
     dell'hero (sfondo di #banner) resta dentro la cornice, vicino al testo. */
  #wrapper {
    max-width: 1080px;
    margin-left: auto;
    margin-right: auto;
  }
  #header:not(.nav-solid) {
    background-color: #fff;
  }
  #banner.banner-full {
    background-position: right bottom;
    background-size: auto 86%;
  }
}
/* Immagine hero inline mostrata SOLO su mobile (sotto il testo). */
.hero-mobile-img {
  display: none;
}

/* Selettore lingua visibile su mobile/tablet: il template nasconde #header aside
   sotto i 1024px, ma lì dentro c'è il selettore lingua. Lo riabilito e lo colloco
   in alto a destra, subito a sinistra dell'hamburger. */
@media (max-width: 1024px) {
  #header .row {
    position: relative;
  }
  #header aside {
    display: block;
  }
  #header aside ul.lang-switcher {
    position: absolute;
    top: 24px;
    right: 56px;
    margin: 0;
    z-index: 50;
  }
}

@media (max-width: 767px) {
  /* Su mobile l'opera verticale come sfondo copriva i testi in OGNI pagina:
     tolgo lo sfondo dell'hero ovunque. Nella home l'opera è mostrata inline
     sotto il testo (.hero-mobile-img) → impilati, niente sovrapposizione. */
  #banner {
    background-image: none;
  }
  #banner.banner-full {
    min-height: 0;
  }
  .hero-mobile-img {
    display: block;
    width: 100%;
    max-width: 340px;
    height: auto;
    margin: 20px auto 0;
  }
  /* Titoli di pagina più piccoli su mobile (tutte le pagine). */
  #banner h1 {
    font-size: 32px;
    line-height: 1.15;
  }
  #banner h2 {
    font-size: 16px;
  }
}

/* --- Logo testuale (monogramma HN + nome) --- */
#logo.text-logo { display: flex; align-items: baseline; }
#logo.text-logo a {
  display: inline-flex;
  align-items: baseline;
  gap: 10px;
  text-decoration: none;
  color: #111;
}
#logo.text-logo .logo-mono {
  font-weight: 800;
  font-size: 30px;
  letter-spacing: 0.02em;
  color: #111;
}
#logo.text-logo .logo-name {
  font-weight: 600;
  font-size: 16px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #111;
}
@media (max-width: 600px) {
  #logo.text-logo .logo-name { display: none; }
}

/* --- Selettore lingua --- */
ul.lang-switcher {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 4px;
}
ul.lang-switcher li { display: inline-block; }
ul.lang-switcher a {
  display: inline-block;
  padding: 2px 7px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: #999;
  text-decoration: none;
  border-radius: 3px;
}
ul.lang-switcher a.active,
ul.lang-switcher a:hover { color: #111; background: rgba(0, 0, 0, 0.06); }

/* --- Lightbox opera: immagine + descrizione --- */
.featherlight .lightbox-art {
  max-width: 860px;
  background: #fff;
  padding: 24px 26px 30px; /* spazio sopra l'immagine e sotto la descrizione */
  box-sizing: border-box;
}
.featherlight .lightbox-art img {
  display: block;
  max-width: 100%;
  max-height: 60vh;
  margin: 0 auto;
}
.featherlight .lightbox-art .lb-caption {
  padding: 18px 0 0;
  text-align: left;
}
.featherlight .lightbox-art .lb-caption h3 {
  margin: 0 0 4px;
  font-size: 22px;
  font-weight: 700;
  color: #222;
}
.featherlight .lightbox-art .lb-meta {
  margin: 0 0 12px;
  font-size: 13px;
  color: #b0884e;
  letter-spacing: 0.03em;
}
.featherlight .lightbox-art .lb-desc {
  margin: 0;
  font-size: 15px;
  line-height: 1.65;
  color: #555;
}

/* --- Galleria --- */
.gallery-item {
  position: relative;
  display: block;
}
.gallery-item img {
  width: 100%;
  height: auto;
  display: block;
}
.gallery-caption {
  display: block;
  margin: 8px 0 26px;
  text-align: center;
}
.gallery-caption .gc-title {
  display: block;
  font-size: 15px;
  font-weight: 600;
  color: #333;
  letter-spacing: 0.03em;
}
.gallery-caption .gc-sub {
  display: block;
  margin-top: 3px;
  font-size: 13px;
  line-height: 1.4;
  color: #888;
}
.gallery-caption .gc-series {
  display: inline-block;
  margin-top: 6px;
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #b0884e;
}

/* --- Gallery a griglia uniforme --- */
/* Sostituisce il layout a float del template: celle uguali → immagini, didascalie
   e spazi tutti allineati, indipendentemente dalle proporzioni delle opere. */
#gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px 26px;
  align-items: start;
}
#gallery .gallery-item {
  width: auto;
  float: none;
  margin: 0;
  padding: 0;
}
#gallery .gallery-item > a {
  display: block;
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: #fff;
}
#gallery .gallery-item > a img {
  width: 100%;
  height: 100%;
  object-fit: contain; /* opera intera, mai ritagliata */
  object-position: center bottom; /* allineata in basso */
}
#gallery .gallery-caption {
  margin: 12px 0 0;
}
@media (max-width: 900px) {
  #gallery { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  #gallery { grid-template-columns: 1fr; gap: 26px; }
}

/* --- Filtro serie della Gallery --- */
.gallery-filter {
  padding-top: 20px !important;
  padding-bottom: 0 !important;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}
.gallery-filter .filter-btn {
  background: none;
  border: 1px solid #ddd;
  color: #777;
  padding: 6px 16px;
  font-size: 13px;
  letter-spacing: 0.04em;
  border-radius: 3px;
  cursor: pointer;
  transition: all 0.2s ease;
}
.gallery-filter .filter-btn:hover {
  color: #222;
  border-color: #b0884e;
}
.gallery-filter .filter-btn.active {
  background: #b0884e;
  border-color: #b0884e;
  color: #fff;
}
.badge-sold {
  position: absolute;
  top: 12px;
  left: 12px;
  background: #b03a2e;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 2px;
}

/* --- About: ritratto artista --- */
/* head_small.jpg è stretto (175×400): lo ingrandisco e lo allineo a destra
   della colonna, così sta più vicino al testo. */
.about-portrait {
  display: block;
  width: 100%;
  max-width: 300px;
  height: auto;
  margin-left: auto;
  margin-right: 0;
}
@media (max-width: 480px) {
  .about-portrait {
    margin: 0 auto; /* su mobile centrata */
  }
}

/* --- Shop --- */
.shop-grid { margin-top: 20px; }
.shop-card { margin-bottom: 40px; }
.shop-card img { width: 100%; height: auto; display: block; }
.shop-card .shop-meta {
  margin-top: 10px;
  text-align: center;
}
.shop-card .shop-title {
  font-weight: 600;
  margin: 6px 0 2px;
}
.shop-card .shop-price {
  color: #b0884e;
  font-weight: 600;
  margin-bottom: 10px;
}
.shop-card .shop-detail {
  color: #999;
  font-size: 13px;
}

/* Note editoriali / segnaposto da sostituire con contenuti reali (o da Directus). */
.placeholder-note {
  background: #fff7e6;
  border: 1px dashed #d9b25a;
  color: #8a6d1f;
  padding: 10px 14px;
  border-radius: 4px;
  font-size: 13px;
  margin: 0 auto 24px;
  max-width: 720px;
}

/* Intro dello Shop */
.shop-intro { max-width: 720px; margin-left: auto; margin-right: auto; }

/* --- Shop: stato vuoto (cornice decorativa senza immagine) --- */
.shop-empty {
  text-align: center;
  padding: 10px 0 4px;
}
.empty-frame {
  position: relative;
  max-width: 440px;
  min-height: 320px;
  aspect-ratio: 4 / 5;
  margin: 8px auto 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 34px;
  background: #fbf8f2;                 /* avorio tenue */
  border: 6px solid #efe6d3;          /* cornice esterna chiara */
  box-shadow: 0 12px 34px rgba(0, 0, 0, 0.08);
}
.empty-frame::before {                /* filo dorato interno (passe-partout) */
  content: "";
  position: absolute;
  inset: 10px;
  border: 1px solid #c9ad74;
  pointer-events: none;
}
.empty-frame-text {
  font-style: italic;
  font-size: 18px;
  line-height: 1.5;
  color: #8a7a5c;
  max-width: 22ch;
}
.empty-subtitle {
  color: #777;
  font-size: 15px;
  max-width: 560px;
  margin: 0 auto 18px;
}

/* --- Shop: servizi su commissione --- */
.services-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 34px 26px;
  margin-top: 16px;
}
.service-card {
  display: flex;
  flex-direction: column;
  text-align: center;
  padding: 0 4px;
}
.service-title {
  margin: 0 0 10px;
  font-size: 18px;
  font-weight: 600;
}
.service-desc {
  color: #666;
  font-size: 14px;
  line-height: 1.65;
  margin: 0 0 14px;
  flex: 1 1 auto;              /* descrizioni di lunghezza diversa → link allineati in basso */
}
.service-link {
  color: #b0884e;
  font-weight: 600;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  margin-top: auto;
}
.service-link:hover { color: #8a6d1f; }

@media only screen and (max-width: 980px) {
  .services-grid { grid-template-columns: repeat(2, 1fr); }
}
@media only screen and (max-width: 560px) {
  .services-grid { grid-template-columns: 1fr; max-width: 340px; margin-left: auto; margin-right: auto; }
}

/* --- Shop: contatto --- */
#shop-contact .contact-body {
  font-size: 17px;
  margin: 0 auto 22px;
  max-width: 620px;
}
#shop-contact .contact-body a {
  color: #b0884e;
  font-weight: 600;
}

@media only screen and (max-width: 767px) {
  .empty-frame { max-width: 300px; min-height: 260px; padding: 24px; }
  .empty-frame-text { font-size: 16px; }
}
