/* =========================================================
   NIGMA – Red/Black cinematic theme (intro nélkül)
   Megtartott kulcs elemek: #content, #logo, .menu-container,
   .hero-banner, .overlay, .hero-content, #vrgames, #prices, #footer,
   .vr-card, stb.
   ========================================================= */

:root{
  --bg: #070709;
  --panel: rgba(14, 10, 12, .70);
  --panel2: rgba(12, 8, 10, .55);
  --border: rgba(255, 60, 90, .18);
  --border2: rgba(255, 60, 90, .28);
  --text: rgba(255,255,255,.92);
  --muted: rgba(255,255,255,.74);
  --muted2: rgba(255,255,255,.62);
  --red: #ff214c;
  --red2: #ff3b66;
  --shadow: 0 22px 80px rgba(0,0,0,.70);
  --neon-red: rgba(255, 0, 60, .85);
  --neon-red-soft: rgba(255, 0, 60, .35);
}

*{ box-sizing:border-box; }
html,body{ min-height:100%; }

body{
  background: #070709; /* csak alap szín */
}

/* háttérkép + finom vörös fény, mindig a teljes oldalon */
body::after{
  content:"";
  position: fixed;
  inset: 0;
  z-index: -2;
  background:
    url("../img/background.png") center / cover no-repeat,
    radial-gradient(900px 600px at 20% 10%, rgba(255, 40, 90, .12), transparent 55%),
    radial-gradient(800px 520px at 80% 20%, rgba(255, 40, 90, .08), transparent 60%),
    linear-gradient(180deg, rgba(5,5,7,.55) 0%, rgba(7,7,11,.60) 55%, rgba(4,4,5,.70) 100%);
}

a{ color:inherit; text-decoration:none; }
img{ display:block; max-width:100%; }
p{ color: var(--muted); line-height:1.65; }

/* finom “grain” */
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(2px 2px at 12% 26%, rgba(255,255,255,.10), transparent 60%),
    radial-gradient(1px 1px at 70% 18%, rgba(255,255,255,.08), transparent 60%),
    radial-gradient(1px 1px at 42% 62%, rgba(255,255,255,.06), transparent 60%),
    radial-gradient(1px 1px at 88% 70%, rgba(255,255,255,.08), transparent 60%);
  opacity:.35;
  mix-blend-mode: screen;
}

/* --- NAV --- */
.menu-container.navbar{
  background: rgba(10, 7, 9, .78);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(14px);
  box-shadow: 0 16px 55px rgba(0,0,0,.55);
}

.menu-container .navbar-nav .nav-link{
  color: rgba(255,255,255,.86);
  font-weight: 900;
  letter-spacing: .22px;
  padding: .85rem 1.05rem;
  text-transform: uppercase;
  font-size: 13px;
  opacity:1;
  transform:none;
}

.menu-container .navbar-nav .nav-link:hover{
  color:#fff;
  text-shadow: 0 0 18px var(--neon-red-soft);
}

.menu-container .navbar-toggler{
  border: 1px solid rgba(255, 60, 90, .30);
  box-shadow: 0 10px 30px rgba(0,0,0,.35);
}
.menu-container .navbar-toggler-icon{
  filter: invert(1) grayscale(1) opacity(.9);
}

.btn-book{
  border-radius: 14px;
  padding: .74rem 1.05rem;
  font-weight: 1000;
  letter-spacing: .25px;
  text-transform: uppercase;

  /* tiszta piros */
  border: 1px solid red;
  background: linear-gradient(180deg, red, rgba(34, 20, 23, 0.35));

  color:#fff;
  box-shadow:
    0 16px 45px rgba(0,0,0,.55),
    0 0 18px rgba(255,0,60,.25);

  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.btn-book:hover{
  transform: translateY(-2px);
  border-color: rgba(255, 0, 60, .85);
  box-shadow:
    0 22px 60px rgba(0,0,0,.65),
    0 0 28px rgba(255,0,60,.45);
}

/* --- LOGO --- */
.logo-link{
  display:flex;
  justify-content:center;
  margin-top: 18px;
}
#logo{
  width: min(290px, 68vw);
  opacity: .98;
  filter: drop-shadow(0 22px 70px rgba(0,0,0,.72));
}

/* --- HERO --- */
.hero-banner{
  background:
    url("../img/hero.png") center / cover no-repeat,
    radial-gradient(900px 520px at 12% 30%, rgba(255, 40, 90, .16), transparent 58%),
    radial-gradient(800px 520px at 88% 35%, rgba(255, 40, 90, .10), transparent 60%),
    linear-gradient(135deg, rgba(10,7,9,.45), rgba(6,4,6,.55));
}

.hero-banner .overlay{
  background:
    linear-gradient(90deg, rgba(0,0,0,.50), rgba(0,0,0,.18) 55%, rgba(0,0,0,.55)),
    radial-gradient(900px 600px at 40% 35%, rgba(255, 40, 90, .10), transparent 55%);
}

.hero-content{
  position: relative;
  z-index: 2;
  padding: 56px 46px 24px;
  max-width: 760px;
}
.hero-content h2{
  margin:0;
  font-size: clamp(30px, 4vw, 62px);
  font-weight: 1000;
  text-transform: uppercase;
  line-height: 1.02;
    text-shadow:
    0 0 12px var(--neon-red-soft),
    0 18px 70px rgba(0,0,0,.8);
}
.hero-content h2::after{
  content:"";
  display:block;
  width: 96px;
  height: 4px;
  margin-top: 14px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(255, 60, 90, .98), rgba(255, 60, 90, .15));
  box-shadow: 0 0 22px var(--neon-red-soft);
}

.hero-sub{
  margin: 14px 0 0;
  font-size: 16px;
  color: rgba(255,255,255,.82);
  max-width: 60ch;
}

.hero-cta{
  display:flex;
  gap: 12px;
  margin-top: 18px;
  flex-wrap: wrap;
}

.btn-hero{
  display:inline-block;
  padding: 13px 18px;
  border-radius: 16px;
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .25px;
  border: 1px solid red;
  background: linear-gradient(180deg, red, rgba(34, 20, 23, 0.35));
  box-shadow: 0 18px 60px rgba(0,0,0,.62);
  color:#fff;
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.btn-hero:hover{
  transform: translateY(-2px);
  border-color: rgba(255, 140, 170, .70);
  box-shadow: 0 26px 80px rgba(0,0,0,.72);
}

.btn-hero-ghost{
  display:inline-block;
  padding: 13px 18px;
  border-radius: 16px;
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .25px;
  border: 1px solid rgba(255, 60, 90, .25);
  background: rgba(10,7,9,.35);
  box-shadow: 0 18px 60px rgba(0,0,0,.45);
  color: rgba(255,255,255,.92);
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.btn-hero-ghost:hover{
  transform: translateY(-2px);
  border-color: rgba(255, 140, 170, .55);
  box-shadow: 0 26px 80px rgba(0,0,0,.62);
}

/* hero panels */
.hero-panels{
  position: relative;
  z-index: 2;
  width: min(1040px, calc(100% - 28px));
  margin: 12px auto 22px;
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 12px;
  padding: 0 14px 18px;
}

.hero-panel{
  border-radius: 18px;
  padding: 14px 14px;
  background: rgba(12, 8, 10, .62);
  border: 1px solid var(--border);
  box-shadow:
    0 18px 60px rgba(0,0,0,.55),
    0 0 18px var(--neon-red-soft);
  backdrop-filter: blur(10px);
  display:grid;
  grid-template-columns: 48px 1fr;
  gap: 10px;
  align-items:center;
}

.hp-ico{
  width:48px; height:48px;
  border-radius: 16px;
  display:grid; place-items:center;
  border: 1px solid rgba(255, 60, 90, .25);
  background: linear-gradient(180deg, rgba(255, 0, 60, .18), rgba(255, 0, 60, .06));
  box-shadow: 0 14px 45px rgba(0,0,0,.45);
  overflow:hidden;
}
.hp-ico img{
  width: 46px;
  height: 46px;
  object-fit: cover;
  border-radius: 14px;
}

.hp-title{
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .22px;
  font-size: 13px;
  margin-bottom: 2px;
}
.hp-text{
  grid-column: 2 / -1;
  color: rgba(255,255,255,.74);
  font-size: 13px;
  margin-top: -6px;
}

@media (max-width: 900px){
  .hero-content{ padding: 44px 22px 18px; }
  .hero-panels{ grid-template-columns: 1fr; padding-bottom: 10px; }
}

/* --- SECTION PANELS --- */
#welcome, #try, .prices-block{
  width: min(1100px, calc(100% - 28px));
  margin: 18px auto;
  padding: 22px 22px;
  border-radius: 22px;
  background: var(--panel);
  border: 1px solid var(--border);
  box-shadow: 0 18px 60px rgba(0,0,0,.50);
  backdrop-filter: blur(10px);
}

#welcome h1, #try h1, .prices-block h1{
  margin:0 0 12px;
  font-size: clamp(24px, 2.2vw, 34px);
  font-weight: 1000;
  text-transform: uppercase;
  text-shadow: 0 18px 70px rgba(0,0,0,.60);
}
.try-sub{ margin:0; color: rgba(255,255,255,.70); }

.welcome-grid{
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 16px;
}
@media (max-width: 900px){
  .welcome-grid{ grid-template-columns: 1fr; }
}
.welcome-col{
  padding: 16px 16px;
  border-radius: 18px;
  background: var(--panel2);
  border: 1px solid rgba(255, 60, 90, .12);
}
.welcome-note{ margin: 10px 0 0; color: rgba(255,255,255,.72); }
.highlight{
  font-weight: 1000;
  color: rgba(255,255,255,.92);
  text-transform: uppercase;
  letter-spacing: .2px;
}
.features{ margin: 10px 0 14px 18px; padding: 0; }
.features li{ margin: 6px 0; }
.challenge{
  padding: 12px 14px;
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255, 40, 90, .14), rgba(255, 40, 90, .05));
  border: 1px solid rgba(255, 60, 90, .18);
}

/* --- VR cards --- */
#vrgames{
  width: min(1180px, calc(100% - 28px));
  margin: 10px auto 26px;
}

#vrgames h1 {
  padding-top: 40px;
}

.vr-card{
  height:100%;
  border-radius: 22px;
  overflow:hidden;
  background: rgba(12, 8, 10, .62);
  border: 1px solid rgba(255, 60, 90, .16);
  box-shadow: 0 18px 60px rgba(0,0,0,.56);
  backdrop-filter: blur(10px);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.vr-card:hover{
  transform: translateY(-4px);
  border-color: rgba(255, 120, 150, .30);
  box-shadow: 0 26px 86px rgba(0,0,0,.72);
}

.vr-thumb{
  position:relative;
  height: 240px;
  overflow:hidden;
  background:#09060a;
}
.vr-thumb img{
  width:100%; height:100%;
  object-fit:cover;
  filter: contrast(1.04) saturate(1.08) brightness(.92);
  transform: scale(1.03);
  transition: transform .35s ease;
}
.vr-card:hover .vr-thumb img{ transform: scale(1.08); }

.vr-title{
  position:absolute;
  left:14px; right:14px; bottom:14px;
  margin:0;
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(0,0,0,.58);

  backdrop-filter: blur(10px);
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .35px;
  text-shadow: 0 14px 50px rgba(0,0,0,.75);
  font-size: 16px;
}
.vr-title span{ color: red; }

.vr-body{ padding: 18px 18px 10px; }
.vr-lead{ margin:0 0 12px; color: rgba(255,255,255,.82); }

details summary{
  cursor:pointer;
  user-select:none;
  list-style:none;
  font-weight: 1000;
  color: red;
  margin-top: 8px;
  text-transform: uppercase;
  letter-spacing: .2px;
  font-size: 13px;
}
details summary::-webkit-details-marker{ display:none; }
details summary::after{
  content:"▼";
  display:inline-block;
  margin-left: 8px;
  font-size: 12px;
  opacity:.75;
  transform: translateY(-1px);
}
details[open] summary::after{ content:"▲"; }

.vr-more{
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(8,5,7,.62);
  border: 1px solid rgba(255, 60, 90, .12);
  color: rgba(255,255,255,.78);
}

.chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 7px 10px;
  margin: 6px 8px 0 0;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 1000;
  letter-spacing: .2px;
  color: rgba(255,255,255,.92);
  background: linear-gradient(180deg, rgba(255, 40, 90, .14), rgba(255, 40, 90, .05));
  border: 1px solid rgba(255, 60, 90, .16);
}

.vr-actions{ padding: 14px 18px 18px; }

.btn-ghost{
  display:inline-block;
  width:100%;
  text-align:center;
  border-radius: 16px;
  padding: 12px 14px;
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .3px;
  border: 1px solid red;
  background: rgba(10,7,9,.28);
  color: rgba(255,255,255,.95);
  box-shadow: 0 14px 45px rgba(0,0,0,.50);
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.btn-ghost:hover{
  transform: translateY(-2px);
  border-color: rgba(255, 140, 170, .55);
  box-shadow: 0 22px 62px rgba(0,0,0,.66);
}

.mid-cta{
  margin: 18px auto 0;
  display:flex;
  justify-content:center;
}

/* --- Prices --- */
.prices-wrapper{
  margin-top: 14px;
  overflow-x:auto;
  border-radius: 18px;
  border: 1px solid rgba(255, 60, 90, .14);
  background: rgba(8,5,7,.50);
}

.prices-table{
  width:100%;
  border-collapse: collapse;
  min-width: 420px;
}
.prices-table th, .prices-table td{
  padding: 14px 14px;
  text-align:left;
  border-bottom: 1px solid rgba(255, 60, 90, .10);
}
.prices-table thead th{
  font-weight: 1000;
  letter-spacing: .2px;
  text-transform: uppercase;
  background: linear-gradient(180deg, rgba(255, 40, 90, .18), rgba(255, 40, 90, .05));
}
.prices-table tbody tr:hover{ background: rgba(255, 40, 90, .06); }

/* --- Payments bootstrap cards --- */
#payments .card{
  border-radius: 22px !important;
  background: rgba(12, 8, 10, .62) !important;
  border: 1px solid rgba(255, 60, 90, .14) !important;
  box-shadow: 0 18px 60px rgba(0,0,0,.56) !important;
  backdrop-filter: blur(10px);
}
#payments .text-secondary{ color: rgba(255,255,255,.62) !important; }
#payments i{
  color: red;
  text-shadow: 0 0 18px rgba(255, 60, 90, .22);
}

#payments .card:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 40px rgba(255,0,60,.5);
}

/* --- Footer --- */
#footer{
  margin-top: 40px;
  padding: 34px 0 18px;
  background: linear-gradient(180deg, rgba(4,4,6,0), rgba(4,4,6,.82) 18%, rgba(2,2,3,.98));
  border-top: 1px solid rgba(255, 60, 90, .12);
}
.footer-container{
  width: min(1180px, calc(100% - 28px));
  margin:0 auto;
  display:grid;
  grid-template-columns: 1.25fr 1fr 1fr;
  gap: 18px;
}
@media (max-width: 900px){
  .footer-container{ grid-template-columns: 1fr; }
}
.footer-col{
  padding: 16px 16px;
  border-radius: 22px;
  background: rgba(12, 8, 10, .48);
  border: 1px solid rgba(255, 60, 90, .12);
  box-shadow: 0 18px 60px rgba(0,0,0,.48);
  backdrop-filter: blur(10px);
}
.footer-logo{
  margin:0 0 8px;
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .6px;
}
.footer-col h3{
  margin:0 0 10px;
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .25px;
  font-size: 14px;
  color: red;
}
.footer-col ul{ margin:0; padding-left: 18px; }
.footer-col a{ color: rgba(255,255,255,.80); }
.footer-col a:hover{ color:#fff; text-shadow: 0 0 18px rgba(255, 60, 90, .18); }
.footer-copy{
  width: min(1180px, calc(100% - 28px));
  margin:16px auto 0;
  text-align:center;
  color: rgba(255,255,255,.58);
  font-size: 13px;
}

/* --- Sticky booking button --- */
.sticky-book{
  position: fixed;
  right: 14px;
  bottom: 14px;
  z-index: 9990;
  display: none;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 999px;
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .25px;
  border: 1px solid rgb(88, 33, 33);
  background: linear-gradient(180deg, red), rgb(119, 31, 31);
  box-shadow: 0 18px 60px rgba(0,0,0,.70);
}
.sticky-book i{ font-size: 18px; color: whitesmoke;}
.sticky-book span{ font-size: 12px; color: whitesmoke;}

@media (max-width: 991px){
  .sticky-book{ display: inline-flex; }
}

/* ===== TEXT CONTRAST FIX ===== */
h1, h2, h3, h4, h5, h6{
  color: rgba(255,255,255,.96);
  text-shadow: 0 10px 40px rgba(0,0,0,.55);
}

p, li{
  color: rgba(255,255,255,.82);
}

/* Bootstrap-os szürkítések felülírása, ha zavaró */
.text-secondary, .text-muted, .small.text-secondary{
  color: rgba(255,255,255,.70) !important;
}

/* a kártyákban a leírás is legyen olvashatóbb */
.vr-lead, .vr-more, .hp-text, .try-sub, .welcome-note{
  color: rgba(255,255,255,.80);
}

.prices-block{
  background: rgba(14, 10, 12, .55) !important; /* eddig kb .70 volt */
}

/* ===== VR GRID ===== */

.vr-section{
  max-width: 1200px;
  margin: 60px auto;
  padding: 0 20px;
}

.vr-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

/* tablet */
@media (max-width: 900px){
  .vr-grid{
    grid-template-columns: repeat(2, 1fr);
  }
}

/* mobil */
@media (max-width: 600px){
  .vr-grid{
    grid-template-columns: 1fr;
  }
}

.vr-card{
  position: relative;
  overflow: hidden;
  border-radius: 18px;
  cursor: pointer;
  background: #000;
  border: 1px solid rgba(255,0,60,0.25);
  transition: transform .25s ease, box-shadow .25s ease;
}

.vr-card img{
  width: 100%;
  height: 320px;
  object-fit: cover;
  filter: brightness(.65);
  transition: transform .4s ease, filter .4s ease;
}

.vr-card:hover img{
  transform: scale(1.05);
  filter: brightness(.9);
}

.vr-card:hover{
  transform: translateY(-6px);
  box-shadow:
  0 25px 60px rgba(0,0,0,.7),
  0 0 30px var(--neon-red-soft);
}

.vr-card-title{
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 18px;
  font-size: 20px;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(to top, rgba(0,0,0,.85), transparent);
  letter-spacing: .5px;
}

.vr-more-games{
  text-align: center;
  margin-top: 35px;
}

.btn-more-games{
  display: inline-block;
  padding: 14px 28px;
  font-size: 15px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #fff;
  border-radius: 40px;
  background: linear-gradient(90deg,  red, rgba(34, 20, 23, 0.35));
  box-shadow: 0 10px 30px rgba(83, 32, 44, 0.35);
  transition: .25s ease;
}

.btn-more-games:hover{
  transform: translateY(-2px);
  box-shadow: 0 18px 40px rgba(34, 20, 23, 0.35);
}

/* ===== HERO PANELS TUNING ===== */
.hp-title{
  color: rgba(255,255,255,.96);
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .35px;
  font-size: 13px;
  text-shadow: 0 0 18px RED, 0 10px 40px rgba(0,0,0,.55);
}

.hp-text{
  color: rgba(255,255,255,.78);
}

.hero-panels{
  padding: 14px;
  border-radius: 22px;
  background: rgba(10,7,9,.30);
  border: 1px solid red;
 box-shadow:
    0 18px 60px rgba(0,0,0,.55),
    0 0 18px var(--neon-red-soft);
}

/* ===== HERO IMAGE FRAMING FIX (desktop) ===== */

/* alap: maradhat mobilon, ahogy most jó */
.hero-banner{
  background-position: center;
}

/* desktopon feljebb toljuk a fókuszt, hogy a fejek látszódjanak */
@media (min-width: 992px){
  .hero-banner{
    background-position: center 20%;
  }
}

/* még szélesebb monitorokon még inkább */
@media (min-width: 1400px){
  .hero-banner{
    background-position: center 12%;
  }
}

.price-section{
  max-width: 1100px;
  margin: 80px auto;
  padding: 0 20px;
}

.price-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

@media (max-width: 900px){
  .price-grid{
    grid-template-columns: 1fr;
  }
}

.price-card{
  position: relative;
  overflow: hidden;

  background:
    radial-gradient(circle at 25% 20%, rgba(92, 56, 64, 0.08), transparent 60%),
    radial-gradient(circle at 80% 85%, rgba(66, 43, 48, 0.05), transparent 70%),
    rgba(10,10,12,.55); /* áttetsző fekete */

  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);

  border-radius: 18px;
  padding: 36px 26px;
  text-align: center;

  border: 1px solid rgba(255,0,60,.22);

  box-shadow:
    0 20px 60px rgba(0,0,0,.65),
    inset 0 0 18px rgba(255,0,60,.05);

  transition: .25s ease;
}

.price-card::before{
  content:"";
  position: absolute;
  top: 0;
  right: -120%;
  width: 120%;
  height: 100%;

  background: linear-gradient(
    120deg,
    transparent 0%,
    rgba(255,0,60,.0) 40%,
    rgba(255,0,60,.25) 50%,
    rgba(255,0,60,.0) 60%,
    transparent 100%
  );

  transform: skewX(-25deg);
  transition: right .55s ease;
}

.price-card:hover::before{
  right: 120%;
}

.price-card:hover{
  box-shadow:
    0 30px 80px rgba(0,0,0,.85),
    0 0 38px rgba(255,0,60,.35);
}
  

/* középső kiemelés */
.price-card.featured{
  border: 1px solid red;

  box-shadow:
    0 35px 100px rgba(0,0,0,.85),
    0 0 45px red,
    inset 0 0 28px rgba(255,0,60,.14);
}

.price-title{
  display: inline-block;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  font-weight: 800;

  padding: 6px 12px;
  border-radius: 999px;

  color: #fff;
  background: rgba(0,0,0,.6);
  border: 1px solid rgba(255,0,60,.45);

  box-shadow: 0 0 16px rgba(255,0,60,.28);
  margin-bottom: 14px;
}

.price-value{
  font-size: 30px;
  font-weight: 900;
  color: #fff;

  text-shadow:
    0 0 18px red,
    0 12px 40px rgba(0,0,0,.9);
}

.price-sub{
  margin-top: 10px;
  font-size: 16px;
  color: rgba(255,255,255,.65);
}

/* ===== HERO TEXT ALIGNMENT ===== */

.hero-content{
  padding-left: 28px;
  padding-right: 28px;
}

/* nagyobb képernyőn több tér */
@media (min-width: 768px){
  .hero-content{
    padding-left: 40px;
    padding-right: 42px;
  }
}

@media (min-width: 1200px){
  .hero-content{
    padding-left: 80px;
  }
}

/* ===== JATEKOK PAGE HERO ===== */
.page-hero{
  width: min(1200px, calc(100% - 28px));
  margin: 14px auto 18px;
  border-radius: 26px;
  overflow:hidden;
  border: 1px solid rgba(255,0,60,.18);
  box-shadow: 0 22px 80px rgba(0,0,0,.70);
  background:
    radial-gradient(900px 520px at 18% 30%, rgba(255,0,60,.18), transparent 60%),
    radial-gradient(800px 520px at 86% 35%, rgba(255,0,60,.10), transparent 62%),
    rgba(0,0,0,.35);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.page-hero-inner{
  padding: 44px 34px;
  max-width: 860px;
}

.page-title{
  margin:0;
  font-size: clamp(26px, 3.3vw, 52px);
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .4px;
  color: rgba(255,255,255,.96);
  text-shadow: 0 18px 70px rgba(0,0,0,.75);
}

.page-lead{
  margin: 14px 0 0;
  color: rgba(255,255,255,.80);
  line-height: 1.65;
  max-width: 70ch;
}

.page-cta{
  display:flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 18px;
}

/* wrapper spacing */
.games-wrap{
  width: min(1180px, calc(100% - 28px));
  margin: 10px auto 26px;
}

/* NAV logo center */
.nav-logo{
  margin: 0 22px;
}

.nav-logo-img{
  height: 38px;
  width: auto;
  display: block;
  filter: drop-shadow(0 0 10px rgba(255,0,60,.35));
  transition: transform .2s ease, filter .2s ease;
}

.nav-logo-img:hover{
  transform: scale(1.08);
  filter: drop-shadow(0 0 18px rgba(255,0,60,.55));
}

@media (max-width: 991px){
  .nav-logo{
    margin: 10px 0;
    display: none;
  }

  .nav-logo-img{
    height: 32px;
  }
}

.nav-link{
  padding: .6rem .9rem;
}

/* ==============================
   AJÁNDÉKUTALVÁNY – FORM STYLING
   ============================== */

.voucher-block{
  width: min(920px, calc(100% - 28px));
  margin: 22px auto 40px;
  padding: 26px 22px;
  border-radius: 22px;

  /* üveges fekete + piros fény, NEM bordó */
  background:
    radial-gradient(circle at 18% 12%, rgba(255,0,60,.10), transparent 55%),
    radial-gradient(circle at 82% 88%, rgba(255,0,60,.06), transparent 60%),
    rgba(10,10,12,.55);

  border: 1px solid rgba(255,0,60,.18);
  box-shadow: 0 22px 80px rgba(0,0,0,.70);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.voucher-block h1{
  margin: 0 0 10px;
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .35px;
  color: rgba(255,255,255,.96);
  text-shadow: 0 14px 55px rgba(0,0,0,.70);
}

.voucher-block p{
  margin: 0;
  color: rgba(255,255,255,.80);
  line-height: 1.65;
}

/* Honeypot */
.hp-field{
  position:absolute;
  left:-9999px;
  top:-9999px;
  opacity:0;
}

/* Form layout */
.voucher-form{
  margin-top: 16px;
}

/* Label */
.voucher-form .form-label{
  color: rgba(255,255,255,.86);
  font-weight: 800;
  letter-spacing: .2px;
  margin-bottom: 6px;
}

/* Inputs base */
.voucher-form .form-control,
.voucher-form .form-select,
.voucher-form textarea{
  border-radius: 16px;
  background: rgba(0,0,0,.40);
  border: 1px solid rgba(255,0,60,.18);
  color: rgba(255,255,255,.92);

  box-shadow: inset 0 0 18px rgba(0,0,0,.35);
}

.voucher-form .form-control::placeholder,
.voucher-form textarea::placeholder{
  color: rgba(255,255,255,.50);
}

.voucher-form .input-group .form-control{
  border-radius: 16px;
}

/* Input group: két név mező szépen összeérjen */
.voucher-form .input-group .form-control:first-child{
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.voucher-form .input-group .form-control:last-child{
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border-left: 0;
}

/* Focus: tiszta piros glow */
.voucher-form .form-control:focus,
.voucher-form .form-select:focus,
.voucher-form textarea:focus{
  outline: none;
  border-color: rgba(255,0,60,.60);
  box-shadow:
    0 0 0 .22rem rgba(255,0,60,.18),
    0 0 22px rgba(255,0,60,.20),
    inset 0 0 18px rgba(0,0,0,.30);
  background: rgba(0,0,0,.46);
  color: rgba(255,255,255,.95);
}

/* HR + alcím */
.voucher-block hr{
  border-color: rgba(255,0,60,.18);
  opacity: 1;
}
.voucher-block h5{
  color: rgba(255,255,255,.92) !important;
  font-weight: 1000;
  letter-spacing: .25px;
  text-transform: uppercase;
}

/* Voucher type fieldset */
.voucher-type{
  border-radius: 18px;
  padding: 14px 14px;
  background: rgba(0,0,0,.28);
  border: 1px solid rgba(255,0,60,.16);
}

.voucher-type legend{
  float: none;
  width: auto;
  padding: 0 10px;
  margin: 0 0 10px;
  font-size: 13px;
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .35px;
  color: rgba(255,255,255,.86);
}

/* Radios/checkbox */
.voucher-type .form-check-label,
.voucher-form .form-check-label{
  color: rgba(255,255,255,.82);
}

.voucher-type .form-check-input,
.voucher-form .form-check-input{
  background-color: rgba(0,0,0,.55);
  border-color: rgba(255,0,60,.35);
}
.voucher-type .form-check-input:checked,
.voucher-form .form-check-input:checked{
  background-color: rgb(255,0,60);
  border-color: rgba(255,0,60,.75);
}
.voucher-type .form-check-input:focus,
.voucher-form .form-check-input:focus{
  box-shadow: 0 0 0 .22rem rgba(255,0,60,.18);
  border-color: rgba(255,0,60,.70);
}

/* Conditional block (ship addr) */
.conditional{
  border-radius: 18px;
  padding: 14px 14px;
  background:
    radial-gradient(circle at 20% 20%, rgba(255,0,60,.08), transparent 60%),
    rgba(0,0,0,.26);
  border: 1px solid rgba(255,0,60,.16);
}

.hidden{ display:none !important; }

/* small hint */
.char-hint{
  margin-top: 6px;
  font-size: 12px;
  color: rgba(255,255,255,.58);
  text-align: right;
}

/* A text-danger most túl agresszív lehet; kicsit finomítjuk, de marad piros */
.voucher-block .text-danger{
  color: rgba(255,60,60,.92) !important;
}

/* Submit button */
.voucher-btn{
  display: inline-block;
  border: 1px solid rgba(255,0,60,.55);
  background: linear-gradient(180deg, rgba(255,0,60,.85), rgba(255,0,60,.35));
  color: #fff;

  font-weight: 1000;
  letter-spacing: .35px;
  text-transform: uppercase;

  padding: 12px 22px;
  border-radius: 16px;

  box-shadow:
    0 16px 45px rgba(0,0,0,.55),
    0 0 18px rgba(255,0,60,.22);

  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.voucher-btn:hover{
  transform: translateY(-2px);
  border-color: rgba(255,0,60,.85);
  box-shadow:
    0 22px 60px rgba(0,0,0,.68),
    0 0 26px rgba(255,0,60,.35);
}

.voucher-btn:active{
  transform: translateY(0);
}

/* Message box */
#voucherMsg{
  border-radius: 16px;
  padding: 12px 14px;
  border: 1px solid rgba(255,0,60,.18);
  background: rgba(0,0,0,.26);
  color: rgba(255,255,255,.86);
}

/* ==============================
   FOGLALÁS – BOOKING UI STYLING
   (piros-fekete, üveges, átlátható)
   ============================== */

/* Oldalcím */
#booking{
  width: min(1200px, calc(100% - 28px));
  margin: 26px auto 8px;
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .35px;
  color: rgba(255,255,255,.96);
  text-shadow: 0 14px 55px rgba(0,0,0,.75);
}

/* Step szekciók */
.booking-section{
  width: min(1200px, calc(100% - 28px));
  margin: 14px auto 22px;
  padding: 18px 0 0;
}

.booking-section h2{
  margin: 0 0 10px;
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .28px;
  color: rgba(255,255,255,.94);
  text-shadow: 0 12px 45px rgba(0,0,0,.70);
  font-size: clamp(18px, 2.2vw, 22px);
}

/* kiválasztott játék / összegzés szövegek */
#selectedGameDisplay,
#selectedSummary{
  color: rgba(255,255,255,.86) !important;
  text-shadow: 0 10px 35px rgba(0,0,0,.7);
}

/* A Bootstrap text-info túl világos-kék, ne menjen el kékbe */
.text-info{
  color: rgba(255,255,255,.86) !important;
}

/* Üveges kártya keret */
.booking-card{
  border-radius: 22px;
  border: 1px solid rgba(255,0,60,.18);
  background:
    radial-gradient(circle at 18% 12%, rgba(255,0,60,.10), transparent 55%),
    radial-gradient(circle at 82% 88%, rgba(255,0,60,.06), transparent 60%),
    rgba(10,10,12,.55);

  box-shadow: 0 22px 80px rgba(0,0,0,.70);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

/* Label */
.booking-card .form-label{
  color: rgba(255,255,255,.86);
  font-weight: 800;
  letter-spacing: .2px;
  margin-bottom: 6px;
}

/* Inputs */
.booking-card .form-control,
.booking-card .form-select,
.booking-card textarea{
  border-radius: 16px;
  background: rgba(0,0,0,.40);
  border: 1px solid rgba(255,0,60,.18);
  color: rgba(255,255,255,.92);
  box-shadow: inset 0 0 18px rgba(0,0,0,.35);
}

.booking-card .form-control::placeholder,
.booking-card textarea::placeholder{
  color: rgba(255,255,255,.50);
}

/* Focus: tiszta piros */
.booking-card .form-control:focus,
.booking-card .form-select:focus,
.booking-card textarea:focus{
  outline: none;
  border-color: rgba(255,0,60,.60);
  box-shadow:
    0 0 0 .22rem rgba(255,0,60,.18),
    0 0 22px rgba(255,0,60,.20),
    inset 0 0 18px rgba(0,0,0,.30);
  background: rgba(0,0,0,.46);
  color: rgba(255,255,255,.95);
}

/* HR + alcím */
.booking-card hr{
  border-color: rgba(255,0,60,.18);
  opacity: 1;
}

.booking-card h5{
  color: rgba(255,255,255,.92) !important;
  font-weight: 1000;
  letter-spacing: .25px;
  text-transform: uppercase;
}

/* Checkbox */
.booking-card .form-check-label{
  color: rgba(255,255,255,.80);
  line-height: 1.5;
}

.booking-card .form-check-input{
  background-color: rgba(0,0,0,.55);
  border-color: rgba(255,0,60,.35);
}

.booking-card .form-check-input:checked{
  background-color: rgb(255,0,60);
  border-color: rgba(255,0,60,.75);
}

.booking-card .form-check-input:focus{
  box-shadow: 0 0 0 .22rem rgba(255,0,60,.18);
  border-color: rgba(255,0,60,.70);
}

/* Gombok egységesítése */
#backToStep1,
#backToStep2,
#newBookingBtn{
  border-radius: 16px;
  font-weight: 900;
  letter-spacing: .22px;
  text-transform: uppercase;
  border: 1px solid rgba(255,0,60,.22) !important;
  color: rgba(255,255,255,.90) !important;
  background: rgba(0,0,0,.22) !important;
  box-shadow: 0 14px 45px rgba(0,0,0,.50);
}

#backToStep1:hover,
#backToStep2:hover,
#newBookingBtn:hover{
  transform: translateY(-1px);
  border-color: rgba(255,0,60,.55) !important;
  box-shadow: 0 18px 55px rgba(0,0,0,.65), 0 0 20px rgba(255,0,60,.22);
}

/* Submit gomb (btn-danger helyett Nigma piros) */
#submitButton{
  border-radius: 16px;
  font-weight: 1000;
  letter-spacing: .35px;
  text-transform: uppercase;
  padding: 12px 18px;

  border: 1px solid rgba(255,0,60,.55) !important;
  background: linear-gradient(180deg, rgba(255,0,60,.85), rgba(255,0,60,.35)) !important;
  box-shadow: 0 16px 45px rgba(0,0,0,.55), 0 0 18px rgba(255,0,60,.22);
}

#submitButton:hover:enabled{
  transform: translateY(-2px);
  box-shadow: 0 22px 60px rgba(0,0,0,.68), 0 0 26px rgba(255,0,60,.35);
  border-color: rgba(255,0,60,.85) !important;
}

#submitButton:disabled{
  opacity: .45;
  cursor: not-allowed;
  filter: saturate(.9);
  box-shadow: 0 12px 30px rgba(0,0,0,.55);
}

/* Time slot gombok (JS generálja, ezért általánosan célzunk) */
#timeSlots{
  gap: 10px;
}

#timeSlots button{
  border-radius: 999px;
  padding: 10px 14px;
  font-weight: 900;
  letter-spacing: .2px;
  text-transform: uppercase;

  border: 1px solid rgba(255,0,60,.25);
  background: rgba(0,0,0,.30);
  color: rgba(255,255,255,.92);
  box-shadow: 0 12px 35px rgba(0,0,0,.55);
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

#timeSlots button:hover{
  transform: translateY(-1px);
  border-color: rgba(255,0,60,.55);
  box-shadow: 0 18px 55px rgba(0,0,0,.70), 0 0 18px rgba(255,0,60,.18);
}

/* Ha a JS ad 'selected/active' class-t, ezt szépen kiemeli */
#timeSlots button.selected,
#timeSlots button.active{
  border-color: rgba(255,0,60,.85);
  background: rgba(255,0,60,.18);
  box-shadow: 0 18px 55px rgba(0,0,0,.70), 0 0 26px rgba(255,0,60,.30);
}

/* Step 1 játék kártyák (JS tölti: #gameSelection) */
#gameSelection{
  gap: 4px;
}

/* Ha a JS bootstrap colokba rakja, ez akkor is működik */
#gameSelection .game-card,
#gameSelection .card{
  border-radius: 22px;
  border: 1px solid rgba(255,0,60,.18);
  background: rgba(10,10,12,.55);
  box-shadow: 0 18px 60px rgba(0,0,0,.65);
  overflow: hidden;
}

#gameSelection .game-card:hover,
#gameSelection .card:hover{
  border-color: rgba(255,0,60,.45);
  box-shadow: 0 26px 86px rgba(0,0,0,.75), 0 0 24px rgba(255,0,60,.22);
  transform: translateY(-2px);
}

/* Mobil: kicsit több levegő */
@media (max-width: 576px){
  .booking-card{ padding: 18px !important; }
}

/* ===== GAME SELECTION GRID ===== */

#gameSelection{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 22px;
}

/* tablet */
@media (max-width: 992px){
  #gameSelection{
    grid-template-columns: repeat(2, 1fr);
  }
}

/* mobil */
@media (max-width: 576px){
  #gameSelection{
    grid-template-columns: 1fr;
  }
}

/* játék címek */
#gameSelection h3,
#gameSelection h4,
#gameSelection h5,
#gameSelection .card-title{
  color: #ffffff !important;
  font-weight: 900;
  letter-spacing: .25px;
}

#gameSelection .card{
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

#gameSelection .card:hover{
  transform: translateY(-3px);
  border-color: rgba(255,0,60,.45);
  box-shadow:
    0 28px 80px rgba(0,0,0,.75),
    0 0 20px rgba(255,0,60,.25);
}
#gameSelection{
  display: flex;
  flex-direction: row;
  gap: 10px;
  margin-top: 22px;
}

/* ===== STEP1: game cards layout (FLEX) ===== */
#gameSelection{
  display: flex !important;
  flex-wrap: wrap;
  justify-content: flex-start;   /* balra rendez */
  gap: 12px;
  margin-top: 18px;
}

/* kártyák: desktopon 3 egymás mellett */
#gameSelection > *{
  flex: 0 1 320px;           /* min szélesség, ettől lesz "szép" */
  max-width: 360px;
}

/* nagyobb monitoron picit szélesebb lehet */
@media (min-width: 1200px){
  #gameSelection > *{
    flex-basis: 340px;
  }
}

/* mobil: teljes szélesség */
@media (max-width: 576px){
  #gameSelection{
    gap: 10px;
  }
  #gameSelection > *{
    flex-basis: 100%;
    max-width: 100%;
  }
}

#gameSelection .card,
#gameSelection .game-card{
  border-radius: 22px;
}

#gameSelection .card-body{
  padding: 14px 14px 16px;
}

/* ===== Sticky footer layout ===== */

html, body{
  height: 100%;
}

body{
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

/* az oldal tartalma kitölti a rendelkezésre álló helyet */
body > div,
body > section{
  flex: 1 0 auto;
}

/* footer mindig lent */
footer{
  margin-top: auto;
}

.voucher-block{
  width: min(920px, calc(100% - 28px));
  margin: 22px auto 40px;
  padding: 26px 22px;
  border-radius: 22px;

  /* visszafogott sötét háttér */
  background:
    radial-gradient(circle at 20% 15%, rgba(255,255,255,.03), transparent 60%),
    radial-gradient(circle at 85% 85%, rgba(255,255,255,.02), transparent 60%),
    rgba(14,14,16,.65);

  border: 1px solid rgba(255,255,255,.06);
  box-shadow: 0 22px 80px rgba(0,0,0,.70);

  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

/* ===== ÚJ játék badge ===== */

.vr-card{
  position: relative;
}

.vr-card-badge{
  position: absolute;
  top: 12px;
  left: 12px;

  background: linear-gradient(180deg, #ff003c, #b0002a);
  color: #fff;

  font-weight: 900;
  font-size: 12px;
  letter-spacing: .5px;
  text-transform: uppercase;

  padding: 5px 10px;
  border-radius: 999px;

  border: 1px solid rgba(255,255,255,.2);

  box-shadow:
    0 0 12px rgba(255,0,60,.6),
    0 6px 20px rgba(0,0,0,.6);

  z-index: 5;
}

.date-picker-wrap{
  cursor: pointer;
}

.nav-shell {
  position: relative;
  display: flex;
  align-items: center;
}

/* Nyelvváltó */
.language-switcher {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  white-space: nowrap;
  z-index: 1102;
}

.language-switcher a {
  color: #fff;
  text-decoration: none;
  font-weight: 600;
}

.language-switcher a:hover {
  opacity: 0.85;
}

.language-switcher .active {
  text-decoration: underline;
}

/* Desktop */
@media (min-width: 992px) {
  .navbar-toggler {
    display: none;
  }

  .navbar-collapse {
    display: flex !important;
    flex-basis: auto;
    justify-content: center;
    flex-grow: 1;
  }

  .language-switcher {
    position: static;
    margin-left: auto;
  }
}

/* Tablet + mobil */
@media (max-width: 991.98px) {
  .nav-shell {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
  }

  .navbar-toggler {
    order: 1;
    margin-right: 0;
    z-index: 1103;
  }

  .language-switcher {
    order: 2;
    margin-left: auto;
    font-size: 14px;
  }

  /* Ez a kulcs: a lenyíló menü menjen külön sorba */
  .navbar-collapse {
    order: 3;
    width: 100%;
    flex-basis: 100%;
    margin-top: 14px;
  }

  .navbar-collapse.show,
  .navbar-collapse.collapsing {
    display: block;
  }

  .navbar-nav {
    text-align: left;
  }

  .btn-book {
    display: inline-flex;
    justify-content: center;
  }

  /* Mobilon a középső logó gyakran zavaró, ezt el is rejtheted */
  .nav-logo {
    display: none;
  }
}