/* ===== Full-screen lock ===== */
html.cdmtv-lock, body.cdmtv-lock{
  margin:0!important; padding:0!important;
  overflow:hidden!important; height:100%!important;
}

/* Root – 100vw × 100vh bez scrollu */
.cdmtv-root{
  position:fixed; top:0; right:0; bottom:0; left:0;
  width:100vw; height:100vh;
  display:-ms-grid; display:grid;
  background:#000; color:#fff; z-index:9999;
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,"Helvetica Neue",sans-serif;
  --slider-size: 1080px;
  --status-h: 110px;
}

/* Portrait: vertical stack */
.cdmtv-root.portrait{
  grid-template-columns: 1fr;
  grid-template-rows: var(--slider-size) 1fr;
  grid-template-areas:
    "slider"
    "menucontainer";
}

/* Landscape: slider left, menu+status right */
.cdmtv-root.landscape{
  grid-template-columns: var(--slider-size) 1fr;
  grid-template-rows: 1fr;
  grid-template-areas:
    "slider menucontainer";
}

/* No status bar */
.cdmtv-root.landscape.no-status{
  grid-template-rows: 1fr;
  grid-template-areas:
    "slider menucontainer";
}
.cdmtv-root.portrait.no-status{
  grid-template-rows: var(--slider-size) 1fr;
  grid-template-areas:
    "slider"
    "menucontainer";
}

/* reset */
.cdmtv-root{ padding:0 !important; }
.cdmtv-root, .cdmtv-root *{ box-sizing:border-box; }

/* ===== SLIDER - 1:1 ===== */
.cdmtv-slider{
  grid-area: slider;
  position:relative;
  overflow:hidden;
  background:#000;
}

#cdmtv-swiper-wrapper{
  position:relative;
  width:100%; height:100%;
}

.cdmtv-slide{
  width:100%; height:100%;
}

.cdmtv-slide img{
  width:100%; height:100%; object-fit:cover; display:block;
}

/* Watermark */
.cdmtv-watermark{
  position:absolute; z-index:3; opacity:var(--wm-opacity,.9);
  width:var(--wm-size,220px); pointer-events:none;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.35));
  transform-origin:center center;
}
.cdmtv-watermark.is-hidden{ display:none; }
.cdmtv-watermark.top-left{ top:var(--wm-off,24px); left:var(--wm-off,24px); }
.cdmtv-watermark.top-right{ top:var(--wm-off,24px); right:var(--wm-off,24px); }
.cdmtv-watermark.bottom-left{ bottom:var(--wm-off,24px); left:var(--wm-off,24px); }
.cdmtv-watermark.bottom-right{ bottom:var(--wm-off,24px); right:var(--wm-off,24px); }

/* ===== MENU CONTAINER ===== */
.cdmtv-menu-container{
  grid-area: menucontainer;
  display:-webkit-flex; display:flex;
  -webkit-flex-direction:column; flex-direction:column;
  overflow:hidden;
}

/* ===== MENU ===== */
.cdmtv-menu{
  -webkit-flex:1; flex:1;
  overflow: hidden;
  background:#111;
  position: relative;
}

/* ===== STATUS BAR inside container ===== */
.cdmtv-status{
  -webkit-flex-shrink:0; flex-shrink:0;
  display:-webkit-flex; display:flex;
  -webkit-align-items:center; align-items:center;
  -webkit-justify-content:flex-start; justify-content:flex-start;
  gap: 12px;
  padding: 0 20px;
  position: relative;
  text-align:center; text-transform:uppercase;
  letter-spacing:6px; font-weight:800; line-height: var(--status-h, 110px); color:#fff;
  text-shadow: 0 0 6px rgba(0,0,0,.55);
  background:#ba0101;
  overflow: hidden;
}

/* Default font sizes for TV board (px; overridden by PHP/JS from settings) */
.cdmtv-menu .trm-menu{
  --fz-category: 18px;
  --fz-title: 14px;
  --fz-desc: 12px;
  --fz-price: 14px;
  --fz-legend: 11px;
}

.cdmtv-menu .trm-section h3{
  font-size: 18px;
}

/* Disable hover effects on TV board */
.cdmtv-menu .trm-card{
  transition: none !important;
}
.cdmtv-menu .trm-card:hover{
  transform: none !important;
  box-shadow: none !important;
  border: none !important;
}
.cdmtv-menu .trm-ico{
  transition: none !important;
  cursor: default !important;
}
.cdmtv-menu .trm-ico:hover{
  transform: none !important;
}
.cdmtv-menu .trm-ico::after{
  display: none !important;
}
.cdmtv-menu .trm-legend-item{
  transition: none !important;
}
.cdmtv-menu .trm-legend-item:hover{
  border-color: var(--border) !important;
  background: #f9fafb !important;
}

/* Override menu card colors for TV board - no border/outline (only padding from settings) */
.cdmtv-root .cdmtv-menu .trm-card{
  color: var(--trm-ink, #111827);
  border: none !important;
  box-shadow: none !important;
  /* Single-column grid so title+price row and description row both use full width - !important so theme/other CSS cannot override */
  display: grid !important;
  grid-template-columns: 1fr !important;
}
.cdmtv-menu .trm-title{
  color: var(--trm-ink, #111827);
}
.cdmtv-menu .trm-desc{
  color: var(--trm-muted, #6b7280);
}
/* Justify text naturally: adjust word spacing + hyphenation to avoid large gaps */
.cdmtv-root .cdmtv-menu .trm-desc{
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}
/* Description full width below title+price row (second row of card) */
.cdmtv-root .cdmtv-menu .trm-card .trm-desc.trm-desc-full{
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  grid-column: 1 !important;
  box-sizing: border-box;
  margin-top: 10px;
}

/* Portrait: absolute positioning for full height columns */
.cdmtv-root.portrait .cdmtv-menu .trm-menu{
  column-gap: 12px;
  column-fill: auto;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  height: 100%;
  padding: 8px;
}

/* Landscape: full height columns */
.cdmtv-root.landscape .cdmtv-menu .trm-menu{
  column-gap: 12px;
  column-fill: auto;
  height: 100%;
  padding: 8px;
}

.cdmtv-menu .trm-section{
  break-inside: auto;
}

.cdmtv-root .cdmtv-menu .trm-card{
  break-inside: avoid;
}

/* ===== STATUS BAR states ===== */
.cdmtv-status.is-open{ background:#274e13; }
.cdmtv-status.is-closing-soon{ background:#e69138; }
.cdmtv-status.is-closed{ background:#ba0101; }

/* Status flag */
.cdmtv-status-flag{
  position: relative !important;
  left: 0 !important;
  margin-right: auto;
  width: 40px !important;
  height: 40px !important;
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  display: inline-block !important;
  background-size: cover !important;
  background-position: center !important;
  flex-shrink: 0;
}

/* Status text stays centered */
.cdmtv-status-text{
  flex: 1;
  text-align: center;
}
.cdmtv-status-flag ~ .cdmtv-status-text{
  margin-right: 52px;
}

/* Status countdown */
.cdmtv-status-countdown{
  position: absolute;
  right: 20px;
  font-size: 20px;
  font-weight: 600;
  opacity: 0.7;
  min-width: 30px;
  text-align: right;
}

/* Ken Burns Animation */
@keyframes kenburns {
  0% { transform: scale(1) translate(0, 0); }
  50% { transform: scale(1.1) translate(-2%, -2%); }
  100% { transform: scale(1) translate(0, 0); }
}

/* ===== SPECIAL MENU ===== */
.trm-special-menu{
  padding: 20px;
  overflow-y: auto;
}

/* Force single column for special menu - override all column rules */
.cdmtv-root .cdmtv-menu .trm-menu.trm-special-menu,
.cdmtv-root.portrait .cdmtv-menu .trm-menu.trm-special-menu,
.cdmtv-root.landscape .cdmtv-menu .trm-menu.trm-special-menu{
  columns: auto !important;
  column-count: 1 !important;
  column-gap: 0 !important;
  column-fill: auto !important;
}

/* Portrait: absolute positioning for full height */
.cdmtv-root.portrait .trm-special-menu{
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  height: 100%;
}

/* Landscape: full height */
.cdmtv-root.landscape .trm-special-menu{
  height: 100%;
}

.trm-special-menu .trm-section{
  break-inside: auto;
  margin-bottom: 14px;
}

.trm-special-menu .trm-card{
  break-inside: avoid;
}

.trm-special-menu .trm-special-header{
  text-align: center;
  padding: 20px;
  margin-bottom: 14px;
  border-bottom: 1px solid var(--trm-accent, #BBA46D);
  column-span: all;
}

.trm-special-menu .trm-special-title{
  font-size: 2rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .03em;
  color: var(--trm-accent, #BBA46D);
  margin: 0;
}

.trm-special-menu .trm-special-footer{
  margin-top: auto;
  padding: 30px 20px;
  border-top: 1px solid var(--trm-accent, #BBA46D);
  column-span: all;
  text-align: center;
}

.trm-special-menu .trm-special-price{
  font-size: 2.25rem;
  font-weight: 700;
  color: var(--trm-price, #931F1D);
  text-align: center;
}

.trm-special-menu .trm-cat{
  text-align: center;
  margin-bottom: 14px;
}

.trm-special-menu .trm-special-item{
  text-align: center;
  margin-bottom: 16px;
}

.trm-special-menu .trm-title{
  font-size: var(--fz-title);
  font-weight: 700;
  margin-bottom: 6px;
  text-align: center;
}

.trm-special-menu .trm-desc{
  font-size: var(--fz-desc);
  font-style: italic;
  color: var(--trm-muted, #6b7280);
  text-align: center;
  max-width: 800px;
  margin: 0 auto;
}

/* ===== A3 SLIDER ===== */
.cdmtv-a3-slide{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
}

.cdmtv-a3-slide img{
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* Hide cookie banners on TV */
[class*="cookie"],
[id*="cookie"],
[class*="consent"],
[id*="consent"],
[class*="gdpr"],
[id*="gdpr"] {
    display: none !important;
}
