/* ==========================================================
   CARTA · VISOR AUTOMÁTICO DE FOTOGRAFÍAS
   Se activa únicamente en títulos con data-image no vacío.
========================================================== */

.dish-photo-trigger{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  padding:0;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:zoom-in;
  transition:color .2s ease;
}

.dish-photo-trigger::after{
  content:"";
  position:absolute;
  right:0;
  bottom:-.22em;
  left:0;
  height:1px;
  border-radius:999px;
  background:var(--gold);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .22s ease;
}

.dish-photo-trigger__icon{
  display:inline-grid;
  place-items:center;
  width:1.8em;
  height:1.8em;
  flex:0 0 auto;
  border:1.5px solid var(--gold);
  border-radius:50%;
  background:rgba(185,137,77,.12);
  color:var(--gold);
  font-family:var(--sans);
  font-size:.68em;
  font-weight:900;
  line-height:1;
  opacity:1;
  box-shadow:0 3px 10px rgba(185,137,77,.16);
  transition:
    transform .2s ease,
    background-color .2s ease,
    color .2s ease,
    box-shadow .2s ease;
}

.dish-photo-trigger:hover,
.dish-photo-trigger:focus-visible{
  color:var(--gold);
}

.dish-photo-trigger:hover::after,
.dish-photo-trigger:focus-visible::after{
  transform:scaleX(1);
}

.dish-photo-trigger:hover .dish-photo-trigger__icon,
.dish-photo-trigger:focus-visible .dish-photo-trigger__icon{
  background:var(--gold);
  color:var(--green-dark);
  transform:translateY(-1px) scale(1.08);
  box-shadow:0 5px 14px rgba(185,137,77,.24);
}

.dish-photo-trigger:focus-visible{
  outline:3px solid rgba(185,137,77,.25);
  outline-offset:5px;
  border-radius:4px;
}

/* El título mantiene su aspecto cuando no hay fotografía. */
[data-image=""]{
  cursor:inherit;
}

/* Modal */
.dish-lightbox{
  position:fixed;
  inset:0;
  z-index:1000;
  display:grid;
  place-items:center;
  padding:clamp(16px,3vw,40px);
  visibility:hidden;
  opacity:0;
  transition:opacity .22s ease,visibility 0s linear .22s;
}

.dish-lightbox.is-open{
  visibility:visible;
  opacity:1;
  transition-delay:0s;
}

.dish-lightbox__backdrop{
  position:absolute;
  inset:0;
  border:0;
  background:rgba(8,18,13,.84);
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
  cursor:zoom-out;
}

.dish-lightbox__dialog{
  position:relative;
  z-index:1;
  width:min(100%,1080px);
  max-height:calc(100dvh - 32px);
  overflow:auto;
  border:1px solid rgba(255,255,255,.16);
  border-radius:20px;
  background:#101d17;
  box-shadow:0 30px 90px rgba(0,0,0,.42);
  transform:translateY(12px) scale(.985);
  transition:transform .24s ease;
}

.dish-lightbox.is-open .dish-lightbox__dialog{
  transform:none;
}

.dish-lightbox__figure{
  margin:0;
}

.dish-lightbox__image-wrap{
  display:grid;
  place-items:center;
  min-height:min(68vh,720px);
  background:#0b1510;
}

.dish-lightbox__image{
  display:block;
  width:100%;
  max-height:72vh;
  object-fit:contain;
}

.dish-lightbox__caption{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:18px 22px;
  color:rgba(255,255,255,.88);
  font-family:var(--serif);
  font-size:clamp(1.1rem,2vw,1.45rem);
}

.dish-lightbox__close{
  position:absolute;
  top:14px;
  right:14px;
  z-index:2;
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  padding:0;
  border:1px solid rgba(255,255,255,.28);
  border-radius:50%;
  background:rgba(10,20,15,.72);
  color:#fff;
  font-size:1.45rem;
  line-height:1;
  cursor:pointer;
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  transition:
    background-color .2s ease,
    color .2s ease,
    transform .2s ease;
}

.dish-lightbox__close:hover,
.dish-lightbox__close:focus-visible{
  background:var(--gold);
  color:var(--green-dark);
  transform:scale(1.05);
}

.dish-lightbox__close:focus-visible{
  outline:3px solid rgba(255,255,255,.45);
  outline-offset:3px;
}

body.has-dish-lightbox{
  overflow:hidden;
}

@media(max-width:620px){
  .dish-photo-trigger{
    gap:.5rem;
  }

  .dish-photo-trigger__icon{
    width:1.75em;
    height:1.75em;
    font-size:.66em;
  }

  .dish-lightbox{
    padding:10px;
  }

  .dish-lightbox__dialog{
    border-radius:15px;
  }

  .dish-lightbox__image-wrap{
    min-height:50vh;
  }

  .dish-lightbox__caption{
    padding:15px 16px;
  }

  .dish-lightbox__close{
    top:10px;
    right:10px;
  }
}

@media(prefers-reduced-motion:reduce){
  .dish-photo-trigger,
  .dish-photo-trigger::after,
  .dish-photo-trigger__icon,
  .dish-lightbox,
  .dish-lightbox__dialog,
  .dish-lightbox__close{
    transition:none;
  }
}