/* ==========================================================================
   mod_deer_gallery – galerie + lightbox  (v1.11.5)
   Používá tokeny z DEER (typography.css); fallbacky pro jistotu.
   ========================================================================== */

.deer-gallery{
  background:var(--c-forest-400,#23142D);
  color:var(--c-canvas,#DEDFEC);
  border-radius:var(--radius-card,16px);
  padding:clamp(20px,3.5vw,44px);
  font-family:var(--ff-body,"Inter Tight",system-ui,sans-serif);
}
/* odsazení: bez bočního (na celou šířku) / žádné */
.deer-gallery--pad-x0{padding-left:0;padding-right:0}
.deer-gallery--pad-none{padding:0}
.deer-gallery__head{max-width:60ch;margin-bottom:clamp(20px,3vw,32px)}
.deer-gallery__title{
  font-family:var(--ff-head,"Swear Display",Georgia,serif);
  font-weight:var(--typo-w-head,700);
  font-size:var(--typo-h3-fs,clamp(28px,calc(19.4px + 2.38vw),48px));
  line-height:var(--typo-h3-lh,clamp(28px,calc(19.4px + 2.38vw),48px));
  color:var(--c-surface,#F0F3FF);
  margin:0 0 14px;
}
.deer-gallery__lede{
  font-size:var(--typo-b1-fs,16px);
  line-height:var(--typo-b1-lh,24px);
  margin:0;
  color:color-mix(in srgb,var(--c-canvas,#DEDFEC) 85%,transparent);
}

/* mřížka: 2 sloupce dlaždic (2×2) = půlka + 1 velký obrázek = půlka */
.deer-gallery__grid{
  display:grid;
  grid-template-columns:1fr 1fr 2fr;
  grid-template-rows:auto auto;
  gap:12px;
}
/* desktop: pevná mezera 24px */
@media(min-width:992px){
  .deer-gallery__grid{gap:24px}
}

/* dlaždice */
.deer-gallery__item{
  position:relative;display:block;overflow:hidden;margin:0;padding:0;
  border-radius:var(--radius-btn,8px);cursor:pointer;text-decoration:none;
  background:var(--c-forest-300,#392745);border:0;
  min-height:0;min-width:0;
}
.deer-gallery__item--sm{aspect-ratio:1/1}
.deer-gallery__item--lg{grid-column:3;grid-row:1 / 3}
.deer-gallery__item--solo{grid-column:1 / -1;grid-row:auto;aspect-ratio:16/9}

/* varianta: velký obrázek vlevo */
.deer-gallery__grid--left{grid-template-columns:2fr 1fr 1fr}
.deer-gallery__grid--left .deer-gallery__item--lg{grid-column:1}

/* varianta: dva sloupce (4 fotky), pravý sloupec s posunutým předělem */
.deer-gallery__grid--duo{
  display:flex;
  grid-template-columns:none;
  grid-template-rows:none;
  align-items:stretch;
}
.deer-gallery__col{
  flex:1 1 0;min-width:0;
  display:flex;flex-direction:column;gap:inherit;
}
.deer-gallery__item--duo{position:relative;overflow:hidden}
/* levý sloupec: dvě stejné dlaždice určují výšku */
.deer-gallery__grid--duo .deer-gallery__col:first-child .deer-gallery__item--duo{
  flex:0 0 auto;aspect-ratio:4/3;
}
/* pravý sloupec: dopočítá se do stejné výšky, předěl 37,5 / 62,5 */
.deer-gallery__grid--duo .deer-gallery__col:last-child .deer-gallery__item--duo{
  flex:1 1 0;aspect-ratio:auto;min-height:0;
}
.deer-gallery__grid--duo .deer-gallery__col:last-child .deer-gallery__item--duo:first-child{flex-grow:6}
.deer-gallery__grid--duo .deer-gallery__col:last-child .deer-gallery__item--duo:last-child{flex-grow:10}

/* varianta: rovnoměrná mřížka stejných dlaždic */
.deer-gallery__grid--uniform{
  grid-template-columns:repeat(var(--deer-cols,3),1fr);
  grid-template-rows:none;
}

.deer-gallery__item img{
  position:absolute;inset:0;
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .4s cubic-bezier(.2,.8,.2,1);
}
.deer-gallery__item:hover img,
.deer-gallery__item:focus-visible img{transform:scale(1.05)}
.deer-gallery__item::after{
  content:"";position:absolute;inset:0;border-radius:inherit;
  background:linear-gradient(0deg,rgba(35,20,45,.35) 0%,rgba(35,20,45,0) 45%);
  opacity:0;transition:opacity .25s ease;pointer-events:none;
}
.deer-gallery__item:hover::after,
.deer-gallery__item:focus-visible::after{opacity:1}
.deer-gallery__item:focus-visible{outline:2px solid var(--c-grain-400,#C2A361);outline-offset:3px}

/* placka „+X" na poslední dlaždici mřížky */
.deer-gallery__more{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(35,20,45,.55);color:var(--c-surface,#F0F3FF);
  font-family:var(--ff-head,"Swear Display",Georgia,serif);
  font-size:clamp(22px,3vw,34px);font-weight:700;
  -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
  transition:background-color .2s ease;pointer-events:none;
}
.deer-gallery__item:hover .deer-gallery__more{background:rgba(35,20,45,.4)}

/* patička modulu */
.deer-gallery__foot{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  flex-wrap:wrap;margin-top:clamp(18px,2.5vw,28px);
}
.deer-gallery__cta{
  font-family:var(--ff-body,"Inter Tight",sans-serif);
  font-size:var(--typo-btn-fs,12px);line-height:var(--typo-btn-lh,20px);
  font-weight:var(--typo-w-ui,500);letter-spacing:.08em;text-transform:uppercase;
  color:var(--c-canvas,#DEDFEC);text-decoration:none;
  border:1px solid color-mix(in srgb,var(--c-canvas,#DEDFEC) 45%,transparent);
  border-radius:var(--radius-btn,8px);padding:12px 22px;background:transparent;cursor:pointer;
  transition:background-color .15s ease,border-color .15s ease;
}
.deer-gallery__cta:hover{
  background:color-mix(in srgb,var(--c-canvas,#DEDFEC) 12%,transparent);
  border-color:color-mix(in srgb,var(--c-canvas,#DEDFEC) 70%,transparent);
  color:var(--c-canvas,#DEDFEC);
}
.deer-gallery__ig{
  display:inline-flex;align-items:center;gap:8px;
  font-size:var(--typo-b1-fs,16px);text-decoration:none!important;
  color:var(--c-canvas,#DEDFEC)!important;
  transition:color .15s ease;
}
.deer-gallery__ig:hover{color:var(--c-surface,#F0F3FF)!important}
.deer-gallery__ig svg{flex:0 0 auto}
.deer-gallery__ig-text{white-space:nowrap;text-decoration:none}
.deer-gallery__ig-handle{
  white-space:nowrap;
  text-decoration:underline!important;
  text-decoration-color:currentColor;
  text-decoration-thickness:1px;
  text-underline-offset:0.18em;
}

/* tablet a méně: velký obrázek nahoru přes celou šířku, dlaždice 2×2 pod ním */
@media(max-width:820px){
  .deer-gallery__grid,
  .deer-gallery__grid--left,
  .deer-gallery__grid--uniform{
    display:grid;
    grid-template-columns:1fr 1fr;
    grid-template-rows:none;
    grid-auto-rows:auto;
  }
  /* reset všech dlaždic (vyšší specificita než varianty) */
  .deer-gallery__grid .deer-gallery__item{
    grid-column:auto;grid-row:auto;aspect-ratio:1/1;
  }
  /* velký obrázek přes celou šířku – i ve variantě "vlevo" */
  .deer-gallery__grid .deer-gallery__item--lg,
  .deer-gallery__grid .deer-gallery__item--solo{
    grid-column:1 / -1;grid-row:auto;aspect-ratio:16/10;
  }
  /* duo zůstává dvousloupcové (flex) */
  .deer-gallery__grid--duo{display:flex;flex-direction:row}
}
@media(max-width:460px){
  /* duo: sloupce pod sebe, všechny dlaždice stejné */
  .deer-gallery__grid--duo{flex-direction:column}
  .deer-gallery__grid--duo .deer-gallery__col .deer-gallery__item--duo{
    flex:0 0 auto;aspect-ratio:4/3;
  }
  .deer-gallery__foot{flex-direction:column;align-items:stretch;text-align:center}
  .deer-gallery__ig{justify-content:center}
}

/* ==========================================================================
   LIGHTBOX (vkládá se přes JS jednou do <body>)
   ========================================================================== */
.deer-lb{
  position:fixed;inset:0;z-index:9999;
  display:flex;align-items:center;justify-content:center;
  padding:clamp(16px,4vw,48px);
  background:rgba(35,20,45,.92);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease;
}
.deer-lb.is-open{opacity:1;visibility:visible}
.deer-lb__stage{
  position:relative;max-width:1100px;width:100%;z-index:1;
  display:flex;align-items:center;justify-content:center;
}
.deer-lb__img{
  max-width:100%;max-height:82vh;display:block;
  border-radius:var(--radius-card,16px);
  box-shadow:0 20px 60px rgba(0,0,0,.5);
  opacity:0;transform:scale(.98);transition:opacity .25s ease,transform .25s ease;
}
.deer-lb.is-ready .deer-lb__img{opacity:1;transform:scale(1)}
.deer-lb__caption{
  position:absolute;left:0;right:0;bottom:-38px;text-align:center;
  color:color-mix(in srgb,var(--c-canvas,#DEDFEC) 80%,transparent);
  font-size:14px;line-height:22px;
}
.deer-lb__btn{
  display:inline-flex;align-items:center;justify-content:center;z-index:3;
  width:52px;height:52px;border-radius:999px;border:0;cursor:pointer;
  background:color-mix(in srgb,var(--c-canvas,#DEDFEC) 14%,transparent);
  color:var(--c-surface,#F0F3FF);
  transition:background-color .15s ease,transform .05s ease;
}
.deer-lb__btn:hover{background:color-mix(in srgb,var(--c-canvas,#DEDFEC) 26%,transparent)}
.deer-lb__btn:active{transform:scale(.94)}
.deer-lb__btn:focus-visible{outline:2px solid var(--c-grain-400,#C2A361);outline-offset:2px}
.deer-lb__btn svg{width:22px;height:22px}
.deer-lb__close{position:fixed;top:clamp(16px,3vw,28px);right:clamp(16px,3vw,28px)}
.deer-lb__nav{position:fixed;top:50%;transform:translateY(-50%)}
.deer-lb__prev{left:clamp(8px,2vw,24px)}
.deer-lb__next{right:clamp(8px,2vw,24px)}
.deer-lb__nav:active{transform:translateY(-50%) scale(.94)}
.deer-lb__counter{
  position:fixed;bottom:clamp(16px,3vw,28px);left:50%;transform:translateX(-50%);
  color:color-mix(in srgb,var(--c-canvas,#DEDFEC) 75%,transparent);
  font-size:13px;letter-spacing:.06em;font-variant-numeric:tabular-nums;
  background:color-mix(in srgb,var(--c-forest-400,#23142D) 60%,transparent);
  padding:6px 14px;border-radius:999px;
}
@media(max-width:560px){
  .deer-lb__btn{width:44px;height:44px}
  .deer-lb__img{max-height:74vh}
}
@media(prefers-reduced-motion:reduce){
  .deer-gallery__item img,.deer-lb,.deer-lb__img{transition:none}
}
