:root {

    --bg: #f5f2ec;

    --bg2: #ede9e1;

    --bg3: #e2ddd4;

    --gold: #9a7040;

    --gold-light: #b08040;

    --white: #1a1a16;

    --gray: #6a6a62;

    --gray2: #9a9a90;

    --border: rgba(154,112,64,0.22);

    --font-display: 'Cormorant Garamond', serif;

    --font-body: 'Montserrat', sans-serif;

    --shadow: 0 2px 12px rgba(0,0,0,0.08);

    --input-bg: #fff;

  }















  







  * { 







    margin:0; padding:0; 







    box-sizing:border-box; 







  }







  html { scroll-behavior: smooth; }







  body {







    background: var(--bg); color: var(--white);







    font-family: var(--font-body); font-weight: 300; overflow-x: hidden;







  }















  /* ── NAV ── */







  nav {







    position: fixed; top:0; left:0; right:0; z-index:100;







    display: flex; align-items: center; justify-content: space-between;







    padding: 1.5rem 3rem;







    background: rgba(255,255,255,0.97);







    border-bottom: 1px solid var(--border);







  }







  .nav-logo {







    font-family: var(--font-display); font-size: 1.6rem; font-weight: 300;







    letter-spacing: 0.12em; color: var(--gold); text-decoration: none;







  }







  .nav-logo span { font-style: italic; }







.nav-links {







  display: flex;







  gap: 2.5rem;







  list-style: none;







  align-items: center;







  color: black;







}















.nav-links a {







  text-decoration: none;







  color: var(--white);







  font-size: 0.8rem;







  letter-spacing: 0.22em;







  text-transform: uppercase;







  font-weight: 500;







  opacity: 1;







  transition: opacity 0.3s, color 0.3s;







}















.nav-links a:hover,







.nav-links a.active {







  opacity: 1;







  color: var(--gold);







}







  .nav-admin-btn {







    background: transparent; border: 1px solid var(--border);







    color: var(--gold); padding: 0.45rem 1.1rem; font-size: 0.65rem;







    letter-spacing: 0.2em; text-transform: uppercase; cursor: pointer;







    transition: all 0.3s; font-family: var(--font-body);







  }







  .nav-admin-btn:hover { background: var(--gold); color: var(--bg); border-color: var(--gold); }







  .nav-admin-btn.logout { color: #e07070; border-color: rgba(224,112,112,0.3); }







  .nav-admin-btn.logout:hover { background: #e05555; color: #fff; border-color: #e05555; }















  /* ── PAGE HEADER ── */







  .page-header {







    padding: 8rem 3rem 4rem;







    max-width: 1200px; margin: 0 auto;







    display: flex; align-items: flex-end; justify-content: space-between;







    flex-wrap: wrap; gap: 2rem;







  }







  .section-label { font-size: 0.6rem; letter-spacing: 0.35em; text-transform: uppercase; color: var(--gold); margin-bottom: 1rem; }







  .page-title { font-family: var(--font-display); font-size: clamp(2.5rem,5vw,4rem); font-weight: 300; line-height: 1.1; }







  .page-title em { font-style: italic; color: var(--gold-light); }















  /* ── FILTERS ── */







  .gallery-controls {







    max-width: 1200px; margin: 0 auto;







    padding: 0 3rem 2.5rem;







    display: flex; align-items: center; gap: 1rem; flex-wrap: nowrap; overflow-x: auto;







    border-bottom: 1px solid var(--border);







  }







  .filter-btn {







    background: transparent; border: 1px solid var(--border);







    color: var(--gray); padding: 0.45rem 1.2rem;







    font-size: 0.62rem; letter-spacing: 0.2em; text-transform: uppercase;







    cursor: pointer; font-family: var(--font-body); transition: all 0.3s;







  }







  .filter-btn:hover, .filter-btn.active { border-color: var(--gold); color: var(--gold); }







  .gallery-count {







    margin-left: auto; font-size: 0.62rem; letter-spacing: 0.15em;







    text-transform: uppercase; color: var(--gray2);







  }















  /* ── CATEGORY GRID ── */

  #cat-overview {
    max-width: 1200px;
    margin: 0 auto;
    padding: 2.5rem 3rem 5rem;
  }

  .cat-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }

  @media (max-width: 900px) {
    .cat-grid { grid-template-columns: repeat(2, 1fr); }
    #cat-overview { padding: 2rem 1.5rem 4rem; }
  }

  @media (max-width: 580px) {
    .cat-grid { grid-template-columns: 1fr; }
    #cat-overview { padding: 1.5rem 1rem 3rem; }
  }

  .cat-card {
    position: relative;
    cursor: pointer;
    overflow: hidden;
    aspect-ratio: 3/2;
    min-height: 280px;
    background: var(--bg2);
    border: 1px solid var(--border);
    transition: box-shadow 0.3s;
  }

  .cat-card:hover {
    box-shadow: 0 8px 32px rgba(0,0,0,0.18);
  }

  .cat-card:hover .cat-card-img {
    transform: scale(1.06);
  }

  .cat-card:hover .cat-card-overlay {
    background: rgba(10,10,8,0.58);
  }

  .cat-card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.55s cubic-bezier(0.25,0.46,0.45,0.94);
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
  }

  .cat-card-gradient {
    width: 100%;
    height: 100%;
    transition: transform 0.55s cubic-bezier(0.25,0.46,0.45,0.94);
  }

  .cat-card-overlay {
    position: absolute;
    inset: 0;
    background: rgba(10,10,8,0.42);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    padding: 1.6rem 1.4rem 1.4rem;
    transition: background 0.35s;
  }

  .cat-card-label {
    font-family: var(--font-body);
    font-size: 0.62rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 0.4rem;
  }

  .cat-card-title {
    font-family: var(--font-display);
    font-size: 2rem;
    font-weight: 400;
    color: #f5f2ec;
    text-align: center;
    line-height: 1.2;
    margin-bottom: 0.6rem;
    text-shadow: 0 2px 8px rgba(0,0,0,0.4);
  }

  .cat-card-desc {
    font-family: var(--font-body);
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    color: rgba(245,242,236,0.82);
    text-align: center;
    line-height: 1.6;
    max-width: 85%;
  }

  .cat-card-count {
    margin-top: 0.85rem;
    font-family: var(--font-body);
    font-size: 0.6rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--gold);
    border: 1px solid rgba(200,169,110,0.4);
    padding: 0.28rem 0.9rem;
  }

  /* Admin edit button on cat-card */
  .cat-card-edit-btn {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 10;
    background: rgba(10,10,8,0.75);
    border: 1px solid rgba(200,169,110,0.5);
    color: var(--gold);
    font-family: var(--font-body);
    font-size: 0.62rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    padding: 0.38rem 0.8rem;
    cursor: pointer;
    backdrop-filter: blur(4px);
    transition: background 0.2s, color 0.2s;
    display: none;
  }

  .admin-mode .cat-card-edit-btn {
    display: block;
  }

  .cat-card-edit-btn:hover {
    background: var(--gold);
    color: #0a0a08;
  }

  /* Freccia back in modalità filtrata */
  .gallery-back-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: transparent;
    border: 1px solid var(--border);
    color: var(--gray);
    font-family: var(--font-body);
    font-size: 0.62rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    padding: 0.45rem 1.1rem;
    cursor: pointer;
    transition: all 0.3s;
    margin-right: 0.5rem;
  }

  .gallery-back-btn:hover {
    border-color: var(--gold);
    color: var(--gold);
  }

  /* ── MASONRY ── */







  .gallery-wrap { max-width: 1200px; margin: 0 auto; padding: 2.5rem 3rem 6rem; }







  .gallery-masonry { display: flex; gap: 10px; align-items: flex-start; }







  .gallery-col { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 10px; }







  @media(max-width:900px){

    .gallery-masonry { flex-wrap: wrap; }

    .gallery-col { flex: 1 1 calc(50% - 5px); min-width: calc(50% - 5px); }

  }



  @media(max-width:580px){

    .gallery-col { flex: 1 1 100%; min-width: 100%; }

  }















































































  .gallery-item {







  break-inside: avoid;







  margin-bottom: 0;







  position: relative;







  overflow: hidden;







  cursor: pointer;







  display: block;







}















.gallery-thumb {







  width: 100%;







  display: block;







  transition: transform 0.65s cubic-bezier(0.25,0.46,0.45,0.94),







              filter 0.4s;







  filter: saturate(0.8) brightness(0.88);







}















.gallery-item:hover .gallery-thumb {







  transform: scale(1.05);







  filter: saturate(1.05) brightness(1);







}















.gallery-overlay {







  position: absolute;







  inset: 0;







  background: linear-gradient(to top, rgba(245,242,236,0.85) 0%, transparent 55%);







  opacity: 0;







  transition: opacity 0.4s;







  display: flex;







  align-items: flex-end;







  padding: 1.4rem;

  pointer-events: none;

}















.gallery-item:hover .gallery-overlay {







  opacity: 1;







}















.gallery-meta h3 {







  font-family: var(--font-display);







  font-size: 1.25rem;







  font-weight: 300;







  margin-bottom: 0.2rem;







}















.gallery-meta span {







  font-size: 0.58rem;







  letter-spacing: 0.22em;







  text-transform: uppercase;







  color: var(--gold);







}















/* ── HERO SLIDE TOGGLE ── */















.slide-indicator {







  position: absolute;







  top: 0.6rem;







  left: 0.6rem;







  z-index: 5;







  display: none;







}















body.admin-mode .slide-indicator {







  display: flex;







}















.slide-toggle-btn {







  background: rgba(255,255,255,0.85);







  border: 1px solid rgba(201,169,110,0.4);







  color: var(--gray);







  width: auto;







  height: 26px;







  padding: 0 0.6rem;







  font-size: 0.56rem;







  letter-spacing: 0.15em;







  text-transform: uppercase;







  cursor: pointer;







  display: flex;







  align-items: center;







  gap: 0.3rem;







  transition: all 0.2s;







  font-family: var(--font-body);







}















.slide-toggle-btn.on {







  background: rgba(201,169,110,0.18);







  border-color: var(--gold);







  color: var(--gold);







}















.slide-toggle-btn:hover {







  border-color: var(--gold);







  color: var(--gold);







}















/* ── HERO SLIDE BADGE ── */















.hero-slide-badge {







  position: absolute;







  top: 0.6rem;







  left: 0.6rem;







  z-index: 4;







  background: var(--gold);







  color: var(--bg);







  font-size: 0.52rem;







  letter-spacing: 0.15em;







  text-transform: uppercase;







  padding: 0.2rem 0.5rem;







  pointer-events: none;







  display: none;







}















body.admin-mode .gallery-item[data-hero="1"] .hero-slide-badge {







  display: block;







}















/* ── ADMIN BADGE ── */















.admin-badge {







  display: none;







  position: fixed;







  bottom: 1.5rem;







  left: 1.5rem;







  z-index: 500;







  background: var(--bg2);







  border: 1px solid var(--gold);







  padding: 0.6rem 1.2rem;







  font-size: 0.6rem;







  letter-spacing: 0.2em;







  text-transform: uppercase;







  color: var(--gold);







}















.admin-badge.visible {







  display: block;







}















/* ── ADMIN TOOLBAR ── */















#admin-toolbar {







  display: none;







  background: var(--bg2);







  border-bottom: 2px solid var(--gold);







  padding: 0.6rem 1.5rem;







  position: sticky;







  top: 72px;







  z-index: 90;







  align-items: center;







  gap: 0.5rem;







  flex-wrap: wrap;

  row-gap: 0.4rem;







}















#admin-toolbar.visible {







  display: flex;







}















.toolbar-label {







  font-size: 0.6rem;







  letter-spacing: 0.25em;







  text-transform: uppercase;







  color: var(--gold);







  margin-right: 0.5rem;







}















.toolbar-hint {







  font-size: 0.65rem;







  letter-spacing: 0.12em;







  color: var(--gray2);







  margin-left: auto;







}















/* ── BUTTONS ── */















.btn-sm {







  background: transparent;







  border: 1px solid var(--border);







  color: var(--white);







  padding: 0.4rem 1rem;







  font-size: 0.6rem;







  letter-spacing: 0.18em;







  text-transform: uppercase;







  cursor: pointer;







  font-family: var(--font-body);







  transition: all 0.3s;







}















.btn-sm1 {







  background: transparent;







  border: 1px solid var(--border);







  color: white;







  padding: 0.4rem 1rem;







  font-size: 0.6rem;







  letter-spacing: 0.18em;







  text-transform: uppercase;







  cursor: pointer;







  font-family: var(--font-body);







  transition: all 0.3s;







}







.btn-sm1:hover{















  background-color: var(--gold);







}















.btn-sm:hover {







  border-color: var(--gold);







  color: var(--gold);







}















.btn-sm.primary {







  background: var(--gold);







  color: var(--bg);







  border-color: var(--gold);







}















.btn-sm.primary:hover {







  background: var(--gold-light);







}















.btn-sm.danger {







  color: #e07070;







  border-color: rgba(224,112,112,0.3);







}















.btn-sm.danger:hover {







  background: #e05555;







  color: #fff;







  border-color: #e05555;







}















/* ── ADMIN ITEM ACTIONS ── */















.admin-item-actions {







  position: absolute;







  top: 0.6rem;







  right: 0.6rem;







  z-index: 5;







  display: none;







  gap: 0.3rem;







}















body.admin-mode .admin-item-actions {







  display: flex;







}















body.admin-mode .gallery-item {







  cursor: grab;







}















body.admin-mode .gallery-item.dragging {







  opacity: 0.4;







  cursor: grabbing;







}















body.admin-mode .gallery-item.drag-over {







  outline: 2px dashed var(--gold);







  outline-offset: 2px;







}

/* In admin-mode i bottoni ✎ ✕ devono ricevere i click senza interferenze dall'overlay */
body.admin-mode .gallery-overlay {
  pointer-events: none;
}
body.admin-mode .admin-item-actions {
  z-index: 10;
}
















.act-btn {







  background: rgba(255,255,255,0.85);







  border: none;







  color: var(--white);







  width: 30px;







  height: 30px;







  font-size: 0.78rem;







  cursor: pointer;







  display: flex;







  align-items: center;







  justify-content: center;







  transition: all 0.2s;







}















.act-btn:hover {







  background: var(--gold);







  color: var(--bg);







}















.act-btn.del:hover {







  background: #e05555;







}















/* ── LIGHTBOX ── */















#lightbox {







  display: none;







  position: fixed;







  inset: 0;







  z-index: 1000;







  background: rgba(255,255,255,0.97);







  align-items: center;







  justify-content: center;







  flex-direction: column;







}















#lightbox.open {







  display: flex;







}















#lb-prev,







#lb-next {







  position: absolute;







  top: 50%;







  transform: translateY(-50%);







  background: none;







  border: none;







  color: var(--white);







  font-size: 2rem;







  cursor: pointer;







  opacity: 0.4;







  transition: opacity 0.3s;







  padding: 1rem;







}















#lb-prev {







  left: 2rem;







}















#lb-next {







  right: 2rem;







}















#lb-prev:hover,







#lb-next:hover {







  opacity: 1;







}















.lb-close {







  position: absolute;







  top: 1.5rem;







  right: 1.5rem;







  background: none;







  border: none;







  color: var(--white);







  font-size: 1.4rem;







  cursor: pointer;







  opacity: 0.5;







  transition: opacity 0.3s;







}















.lb-close:hover {







  opacity: 1;







}















#lb-img {







  max-width: 88vw;







  max-height: 80vh;







  min-height: 200px;







  min-width: 200px;







  display: flex;







  align-items: center;







  justify-content: center;







  border: 1px solid var(--border);







  transition: opacity 0.3s;







}







#lb-img img {



  display: block;



  max-width: 88vw;



  max-height: 80vh;



  width: auto;



  height: auto;



  object-fit: contain;



}















.lb-caption {







  margin-top: 1.2rem;







  text-align: center;







}















.lb-caption h3 {







  font-family: var(--font-display);







  font-size: 1.5rem;







  font-weight: 300;







}















.lb-caption span {







  font-size: 0.6rem;







  letter-spacing: 0.22em;







  text-transform: uppercase;







  color: var(--gold);







}















/* ── MODALS ── */















#add-modal,







#edit-modal,







#newcat-modal,







#deletecat-modal {







  display: none;







  position: fixed;







  inset: 0;







  z-index: 3000;







  background: rgba(245,242,236,0.96);







  backdrop-filter: blur(10px);







  align-items: center;







  justify-content: center;







}















#add-modal.open,







#edit-modal.open {







  display: flex;







}















/* #add-modal-news ha stile inline – escluso dal gruppo */
/* #edit-modal appartiene al gruppo modal foto (sfondo chiaro) */
#newcat-modal,
#deletecat-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 3000;
  background: rgba(10,10,8,0.94);
  backdrop-filter: blur(10px);
  align-items: center;
  justify-content: center;
}

#add-modal-news.open,
#edit-modal.open,
#newcat-modal.open,
#deletecat-modal.open {
  display: flex;
}















.modal-box {







  background: var(--bg2);







  border: 1px solid var(--border);







  padding: 2.5rem;







  width: 100%;







  max-width: 500px;







}















.modal-box h3 {







  font-family: var(--font-display);







  font-size: 1.6rem;







  font-weight: 300;







  margin-bottom: 0.3rem;







  color: var(--gold);







}















.modal-box h3.danger {







  color: #e07070;







}















.modal-box p {







  font-size: 0.7rem;







  color: var(--gray);







  letter-spacing: 0.12em;







  text-transform: uppercase;







  margin-bottom: 2rem;







}















.form-grid {







  display: grid;







  grid-template-columns: 1fr 1fr;







  gap: 1rem;







}















.form-group {







  display: flex;







  flex-direction: column;







  gap: 0.4rem;







}















.form-group.full {







  grid-column: 1/-1;







}















.form-group label {







  font-size: 0.6rem;







  letter-spacing: 0.22em;







  text-transform: uppercase;







  color: var(--gold);







}















.form-group input,







.form-group select,







.form-group textarea {







  background: var(--bg3);







  border: 1px solid var(--border);







  color: var(--white);







  padding: 0.75rem 1rem;







  font-family: var(--font-body);







  font-size: 0.82rem;







  outline: none;







  transition: border-color 0.3s;







}































  .form-group input:focus,







.form-group select:focus,







.form-group textarea:focus {







  border-color: rgba(201,169,110,0.5);







}















.form-group select option {







  background: var(--bg3);







}















.modal-actions {







  display: flex;







  gap: 1rem;







  margin-top: 1.5rem;







}















.btn-gold {







  background: transparent;







  border: 1px solid var(--gold);







  color: var(--gold);







  padding: 0.8rem 2rem;







  font-family: var(--font-body);







  font-size: 0.65rem;







  letter-spacing: 0.25em;







  text-transform: uppercase;







  cursor: pointer;







  transition: all 0.3s;







}















.btn-gold:hover {







  background: var(--gold);







  color: var(--bg);







}















.btn-gold.danger {







  border-color: #e07070;







  color: #e07070;







}















.btn-gold.danger:hover {







  background: #e05555;







  color: #fff;







  border-color: #e05555;







}















/* upload area in modal */







.upload-zone {







  border: 1px dashed var(--border);







  padding: 2rem 1rem;







  text-align: center;







  cursor: pointer;







  transition: all 0.3s;







  position: relative;







  overflow: hidden;







  grid-column: 1/-1;







  margin-bottom: 0.5rem;







}















.upload-zone:hover {







  border-color: rgba(201,169,110,0.5);







  background: rgba(201,169,110,0.03);







}















.upload-zone input[type="file"] {







  position: absolute;







  inset: 0;







  opacity: 0;







  cursor: pointer;







}















.upload-zone p {







  font-size: 0.72rem;







  color: var(--gray);







}















.upload-zone strong {







  display: block;







  font-size: 0.78rem;







  color: var(--white);







  font-weight: 400;







  margin-bottom: 0.3rem;







}















/* upload area in modal news */







.upload-zone-news {







  border: 1px dashed var(--border);







  padding: 2rem 1rem;







  text-align: center;







  cursor: pointer;







  transition: all 0.3s;







  position: relative;







  overflow: hidden;







  grid-column: 1/-1;







  margin-bottom: 0.5rem;







}















.upload-zone-news:hover {







  border-color: rgb(255, 255, 255);







  background: rgba(201,169,110,0.03);







}















.upload-zone-news input[type="file"] {







  position: absolute;







  inset: 0;







  opacity: 0;







  cursor: pointer;







}















.upload-zone-news p {







  font-size: 0.72rem;







  color: var(--gray);







}















.upload-zone-news strong {







  display: block;







  font-size: 0.78rem;







  color: var(--white);







  font-weight: 400;







  margin-bottom: 0.3rem;







}















/* warning box */







.warning-box {







  background: rgba(224,112,112,0.08);







  border: 1px solid rgba(224,112,112,0.3);







  padding: 0.8rem 1rem;







  font-size: 0.7rem;







  color: #e07070;







  letter-spacing: 0.1em;







  line-height: 1.6;







}















/* ── TOAST ── */







.toast {







  position: fixed;







  bottom: 2rem;







  right: 2rem;







  background: var(--bg3);







  border: 1px solid var(--gold);







  color: var(--gold);







  padding: 0.8rem 1.5rem;







  font-size: 0.72rem;







  letter-spacing: 0.15em;







  z-index: 9999;







  opacity: 0;







  transition: opacity 0.4s;







  pointer-events: none;







}















.toast.show {







  opacity: 1;







}















/* ── EMPTY STATE ── */







.empty-state {







  text-align: center;







  padding: 5rem 2rem;







  display: none;







}















.empty-state.visible {







  display: block;







}















.empty-state p {







  font-family: var(--font-display);







  font-style: italic;







  font-size: 1.4rem;







  color: var(--gray);







}















/* ── THEME TOGGLE ── */







.theme-toggle {







  display: flex;







  align-items: center;







  gap: 0.5rem;







  margin-left: auto;







}















.theme-toggle-label {







  font-size: 0.6rem;







  letter-spacing: 0.18em;







  text-transform: uppercase;







  color: var(--gray);







}















.theme-switch {







  position: relative;







  width: 44px;







  height: 22px;







  cursor: pointer;







}















.theme-switch input {







  opacity: 0;







  width: 0;







  height: 0;







}















.theme-switch-track {







  position: absolute;







  inset: 0;







  background: var(--bg3);







  border: 1px solid var(--border);







  border-radius: 11px;







  transition: background 0.3s, border-color 0.3s;







}















.theme-switch input:checked + .theme-switch-track {







  background: rgba(201,169,110,0.15);







  border-color: var(--gold);







}















.theme-switch-thumb {







  position: absolute;







  top: 3px;







  left: 3px;







  width: 14px;







  height: 14px;







  border-radius: 50%;







  background: var(--gray);







  transition: transform 0.3s, background 0.3s;







  pointer-events: none;







}















.theme-switch input:checked ~ .theme-switch-thumb {







  transform: translateX(22px);







  background: var(--gold);







}















.theme-icons {







  font-size: 0.8rem;







  display: flex;







  gap: 0.3rem;







  align-items: center;







  color: var(--gray);







}















/* anim */







.reveal {







  opacity: 0;







  transform: translateY(20px);







  transition: opacity 0.7s, transform 0.7s;







}















.reveal.visible {







  opacity: 1;







  transform: translateY(0);







}















/* ── NEWS MANAGEMENT extra styles ── */















.news-img-row {







  transition: background 0.2s;







}















.news-img-row:hover {







  background: rgba(201,169,110,0.04);







}















.news-modal-section {







  border: 1px solid var(--border);







  padding: 1rem;







  margin-top: 1rem;







}















.news-modal-section-label {







  font-size: 0.58rem;







  letter-spacing: 0.25em;







  text-transform: uppercase;







  color: var(--gold);







  margin-bottom: 0.7rem;







  display: block;







}















.news-add-img-btn {







  display: flex;







  align-items: center;







  gap: 0.5rem;







  background: transparent;







  border: 1px dashed var(--border);







  color: var(--gray);







  padding: 0.6rem 1rem;







  font-size: 0.65rem;







  letter-spacing: 0.18em;







  text-transform: uppercase;







  cursor: pointer;







  font-family: var(--font-body);







  transition: all 0.3s;







  position: relative;







  overflow: hidden;







  width: 100%;







  justify-content: center;







  margin-top: 0.6rem;







}















.news-add-img-btn:hover {







  border-color: var(--gold);







  color: var(--gold);







}















.news-add-img-btn input[type="file"] {







  position: absolute;







  inset: 0;







  opacity: 0;







  cursor: pointer;







}















/* wider news modals */







#add-modal-news .modal-box,







#edit-news-modal .modal-box {







  max-width: 620px;







  max-height: 88vh;







  overflow-y: auto;







}















#delete-news-modal .modal-box {







  max-width: 440px;







}















/* scrollbar for modal */







#add-modal-news .modal-box::-webkit-scrollbar,







#edit-news-modal .modal-box::-webkit-scrollbar {







  width: 4px;







}















#add-modal-news .modal-box::-webkit-scrollbar-track,







#edit-news-modal .modal-box::-webkit-scrollbar-track {







  background: transparent;







}















#add-modal-news .modal-box::-webkit-scrollbar-thumb,







#edit-news-modal .modal-box::-webkit-scrollbar-thumb {







  background: var(--border);







  border-radius: 2px;







}















#prova {







    /* width: 20%;  <-- RIMUOVI QUESTA RIGA */







    display: flex;







    align-items: center;







}















#riga {







    display: flex;







    align-items: center;







    width: auto;    /* Assicura che occupi solo lo spazio dell'immagine */







    padding: 0;







    margin: 0;







}















#logo-img {







  width: 40px;     /* regola solo questo */







  height: auto;







  display: block;  /* elimina “spazio fantasma” inline */







  margin: 0;







  padding: 0;







}















.nav-logo {







    font-family: var(--font-display);







    font-size: 1.6rem;







    font-weight: 300;







    letter-spacing: 0.12em;







    color: var(--gold);







    text-decoration: none;







    text-align: left;







    padding-left: 0; /* Forza a zero */







    margin: 0;       /* Rimuove margini esterni */







    line-height: 1;







}















.nav-links1 {







    display: flex;







    align-items: center;







    gap: 10px;      /* Questo controlla lo spazio ESATTO tra immagine e testo */







    list-style: none;







    padding: 0;







    margin: 0;







}m
/* ══════════════════════════════════════════════════
   DESCRIZIONE GALLERIA
══════════════════════════════════════════════════ */

.gallery-description-wrap {
  /* Eredita il padding da gallery-wrap — nessun offset aggiuntivo */
  padding-bottom: 1.2rem;
}

.gallery-description {
  font-family: var(--font-body);
  letter-spacing: 0.06em;
  line-height: 1.7;
  color: var(--white);
  font-size: 1rem;
}

/* Pulsante modifica descrizione: nascosto per default, visibile SOLO in admin-mode */
.gallery-desc-edit-btn {
  display: none !important;
}
body.admin-mode .gallery-desc-edit-btn {
  display: inline-block !important;
  margin-top: 0.6rem;
  background: transparent;
  border: 1px solid var(--border);
  color: var(--gray);
  font-family: var(--font-body);
  font-size: 0.62rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 0.35rem 0.9rem;
  cursor: pointer;
  transition: border-color 0.2s, color 0.2s;
}
body.admin-mode .gallery-desc-edit-btn:hover {
  border-color: var(--gold);
  color: var(--gold);
}

/* Editor descrizione: nascosto per default, accessibile solo in admin-mode */
.gallery-desc-editor {
  display: none;
  padding: 1.2rem 2rem 0.5rem;
  max-width: 860px;
  margin: 0 auto;
  flex-direction: column;
  gap: 0.8rem;
}
body.admin-mode .gallery-desc-editor.open {
  display: flex;
}

.gallery-desc-editor textarea {
  width: 100%;
  background: var(--bg3);
  border: 1px solid var(--border);
  color: var(--white);
  font-family: var(--font-body);
  font-size: 0.85rem;
  padding: 0.8rem 1rem;
  resize: vertical;
  outline: none;
  letter-spacing: 0.04em;
  line-height: 1.6;
  box-sizing: border-box;
  transition: border-color 0.2s;
}
.gallery-desc-editor textarea:focus {
  border-color: var(--gold);
}

.gallery-desc-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: flex-end;
}

.gallery-desc-ctrl-group {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.gallery-desc-ctrl-group label {
  font-family: var(--font-body);
  font-size: 0.6rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gray);
}
.gallery-desc-ctrl-group input[type="text"] {
  background: var(--bg3);
  border: 1px solid var(--border);
  color: var(--white);
  font-family: var(--font-body);
  font-size: 0.78rem;
  padding: 0.4rem 0.7rem;
  outline: none;
}
.gallery-desc-ctrl-group input[type="text"]:focus {
  border-color: var(--gold);
}

.gallery-desc-align-btn.active {
  background: var(--gold);
  color: var(--bg);
  border-color: var(--gold);
}


/* Scroll per modal foto su viewport piccoli */
#add-modal .modal-box,
#edit-modal .modal-box,
#newcat-modal .modal-box,
#deletecat-modal .modal-box {
  max-height: 90vh;
  overflow-y: auto;
}

/* padding responsive gestito da gallery-wrap */
