/* Official identity and October menu. Existing immersive pages retain their art direction. */
:root { --header-height: 96px; --paper: #eeeae1; --night: #0c110e; }
.site-header { background: rgba(8,14,10,.94); border-bottom: 0; }
.brand { width: 150px; background: transparent; border: 0; box-shadow: none; filter: none; }
.brand__official { display: block; width: 100%; height: auto; background: transparent; box-shadow: none; filter: none; mix-blend-mode: normal; }
.main-nav { gap: clamp(.8rem,1.6vw,1.6rem); }
.main-nav a { font-size: .72rem; padding: .8rem 0; }
button, input { font-family: inherit; }
button { -webkit-tap-highlight-color: transparent; }
[hidden] { display: none !important; }
.menu-panel, .gallery-panel { scrollbar-width: none; -ms-overflow-style: none; }
.menu-panel::-webkit-scrollbar, .gallery-panel::-webkit-scrollbar { width: 0; height: 0; }
.home-beat { text-wrap: balance; }
.aperitivo-menu-link, .editorial-link {
  display: inline-flex; align-items: center; justify-content: center; min-height: 44px;
  padding: .8rem 1.3rem; border: 1px solid rgba(244,241,232,.5); border-radius: 999px;
  background: transparent; color: var(--cream); font-size: .72rem; font-weight: 600;
  letter-spacing: .09em; line-height: 1.3; text-decoration: none; text-transform: uppercase; cursor: pointer;
  transition: border-color .2s, color .2s, background .2s;
}
.aperitivo-menu-link { margin-top: 1.3rem; }
.editorial-link:hover, .aperitivo-menu-link:hover { color: var(--leaf); border-color: var(--leaf); background: rgba(66,245,43,.06); }
.gallery-panel.is-active { display: block; background: #0c110e; }
.gallery-panel .gallery-slide--first { position: relative; min-height: calc(82svh - var(--header-height)); }
.gallery-panel .gallery-slide--first .section-photo { position: absolute; width: 100%; height: 100%; object-fit: cover; object-position: center 48%; filter: brightness(1.18); }
.gallery-panel .gallery-slide--first .gallery-copy { position: relative; z-index: 2; min-height: calc(82svh - var(--header-height)); padding-top: 4rem; }
.gallery-editorial { width: min(100% - 5rem,1260px); margin: auto; padding: 4.5rem 0; }
.gallery-editorial__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1.5rem; margin-bottom: 2rem; }
.gallery-editorial h3 { margin: 0; font: 400 clamp(2.25rem,4vw,3.8rem)/1.12 var(--serif); letter-spacing: -.03em; }
.gallery-editorial p { max-width: 25rem; margin: .85rem 0 0; color: rgba(244,241,232,.65); line-height: 1.7; }
.gallery-grid { display: grid; grid-template-columns: 1.12fr .88fr 1.12fr .88fr; align-items: start; gap: 1rem; }
.gallery-tile { display: block; width: 100%; padding: 0; border: 0; background: transparent; color: var(--paper); text-align: left; cursor: zoom-in; }
.gallery-tile:nth-child(even) { margin-top: 4.5rem; }
.gallery-tile__image { display: block; overflow: hidden; border-radius: 1.2rem; background: #151c17; }
.gallery-tile img { display: block; width: 100%; height: auto; aspect-ratio: 3/4; object-fit: cover; transition: transform .7s cubic-bezier(.2,.6,.3,1); }
.gallery-tile:hover img { transform: scale(1.04); }
.gallery-tile span:last-child { display: block; padding: 1rem .1rem; font: 400 1.25rem/1.3 var(--serif); }
.gallery-source { margin-top: 2.5rem; }
.gallery-lightbox { width: min(94vw,1100px); max-height: 94dvh; padding: 1rem; border: 1px solid rgba(244,241,232,.2); border-radius: 1.2rem; background: #101611; color: var(--cream); box-shadow: 0 1rem 5rem #0008; }
.gallery-lightbox::backdrop { background: rgba(0,0,0,.88); backdrop-filter: blur(8px); }
.gallery-lightbox[open] { animation: reveal-up .18s ease-out both; }
.lightbox-head, .lightbox-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.lightbox-head { margin-bottom: .9rem; }
.lightbox-head p { margin: 0; font-size: .85rem; color: rgba(244,241,232,.7); }
.gallery-lightbox img { display: block; width: 100%; max-height: 72dvh; object-fit: contain; }
.gallery-lightbox button { min-height: 44px; padding: .5rem .7rem; border: 0; background: transparent; color: var(--cream); font: inherit; font-size: .8rem; cursor: pointer; }
.gallery-lightbox button:hover { color: var(--leaf); }
.lightbox-count { color: var(--leaf); font-size: .75rem; }
.contact-hours { margin: 1.3rem 0 0; color: rgba(244,241,232,.75); font-size: .9rem; }
.contact-hours strong { color: var(--cream); font-weight: 500; }
.reveal-visible { animation: reveal-up .6s ease both; }
@keyframes reveal-up { from { opacity: .25; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 1000px) {
  .gallery-editorial { width: calc(100% - 3rem); }
  .gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.4rem; }
  .gallery-tile:nth-child(even) { margin-top: 3rem; }
}
@media (max-width: 760px) {
  :root { --header-height: 114px; }
  .header-inner { width: calc(100% - 1.4rem); gap: .2rem; padding: .3rem 0; }
  .brand { width: 115px; }
  .main-nav { grid-template-columns: repeat(6,minmax(0,1fr)); gap: 0; }
  .main-nav a { padding: .65rem 0 .5rem; font-size: .62rem; letter-spacing: .015em; }
  .gallery-panel .gallery-slide--first, .gallery-panel .gallery-slide--first .gallery-copy { min-height: calc(90svh - var(--header-height)); }
  .gallery-editorial { width: calc(100% - 2.4rem); padding: 3rem 0; }
  .gallery-grid { gap: .85rem; }
  .gallery-tile:nth-child(even) { margin-top: 2.5rem; }
  .gallery-tile span:last-child { font-size: 1.1rem; padding-top: .7rem; }
  .gallery-lightbox { padding: .65rem; }
  .lightbox-head p { max-width: 70%; }
}
@media (max-width: 360px) {
  .main-nav a { font-size: .54rem; }
}
@media (prefers-reduced-motion: reduce) {
  .gallery-tile img, .editorial-link, .aperitivo-menu-link { transition: none; }
  .reveal-visible { animation: none; }
  .gallery-lightbox[open] { animation: none; }
}
