html,
body {
    overflow-x: hidden;
}

:root {
  --bg: #1d1812;
  --fg: #f5ecd8;
  --muted: #b8aa8e;
  --card: #221c14;
  --card-2: #1a150f;
  --border: rgba(212,161,74,0.28);
  --gold: #d4a14a;
  --gold-soft: #edc66d;
  --gold-deep: #8b6b20;
  --gradient-gold: linear-gradient(135deg,#edc66d 0%,#d4a14a 45%,#80531d 100%);
  --gradient-shine: linear-gradient(120deg,transparent 30%,rgba(237,198,109,0.5) 50%,transparent 70%);
  --shadow-gold: 0 10px 40px -10px rgba(128,83,29,0.6);
  --shadow-deep: 0 30px 60px -20px rgba(0,0,0,0.8);
  --font-display: 'Bebas Neue', Impact, sans-serif;
  --font-body: 'Inter', system-ui, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font-body);
  background-image:
    radial-gradient(ellipse at top, rgba(128,83,29,0.35), transparent 60%),
    radial-gradient(circle at 1px 1px, rgba(245,236,216,0.04) 1px, transparent 0);
  background-size: auto, 24px 24px;
  min-height: 100vh;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }

h1, h2, h3, h4 { font-family: var(--font-display); letter-spacing: .02em; margin: 0; font-weight: 400; }

.container { max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; }

.text-gold {
  background: var(--gradient-gold);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
}
.muted { color: var(--muted); }
.small { font-size: .8rem; }


.event-gallery{
    padding:60px 0;
}

.gallery-slider{
    display:flex;
    align-items:center;
    gap:20px;
}

.photos-grid{
    flex:1;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:15px;
}

.photos-grid img{
    width:100%;
    height:250px;
    object-fit:cover;
    border-radius:16px;
    cursor:pointer;
    transition:.3s;
}

.photos-grid img:hover{
    transform:scale(1.03);
}

#toggle-photos{

margin-bottom: 30px;
}

.sale-card {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 16px;
    overflow: hidden;
    text-align: center;

    max-width: 250px;
    margin: 0 auto;

    padding-bottom: 20px;
}

.sale-image {
    width: 100%;
    height: 250px;
    object-fit: cover;
}

.sale-card h3 {
    margin: 15px 10px 10px;
}

.sale-price {
    color: var(--gold);
    font-size: 1.3rem;
    font-weight: bold;
    margin-bottom: 15px;
}



@media(max-width:900px){

    .photos-grid{
        grid-template-columns:repeat(2,1fr);
    }

}

@media (max-width: 768px) {

    .gallery-slider {
        display: flex;
        flex-direction: column;
        gap: 15px;
    }

    .photos-grid {
        width: 100%;
        grid-template-columns: 1fr;
    }

    .photos-grid img {
        width: 100%;
        height: auto;
        max-height: 400px;
    }

    .gallery-nav {
        width: 60px;
        height: 60px;
        font-size: 24px;
    }

}


.map-wrap {
  margin-top: 24px;
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 20px 40px rgba(0,0,0,.3);
}

/* Header */
.site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 50;
  background: rgba(29,24,18,0.7);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(212,161,74,0.18);
}
.nav { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.5rem; }
.brand { display: flex; align-items: center; gap: .75rem; }
.brand img { height: 48px; width: auto; }
.brand-name {
  font-family: var(--font-display); font-size: 1.25rem; letter-spacing: .3em;
  background: var(--gradient-gold); -webkit-background-clip: text; background-clip: text; color: transparent;
}
@media (max-width: 640px) { .brand-name { display: none; } }
.links { display: flex; gap: 2rem; font-size: .8rem; text-transform: uppercase; letter-spacing: .2em; color: var(--muted); }
.links a:hover { color: var(--fg); }
@media (max-width: 768px) { .links { display: none; } }

.hero-logo {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.hero-logo > img {
    width: 220px;
    margin-bottom: 20px;
}

.hero-cards {
    display: flex;
    gap: 20px;
    justify-content: center;
    align-items: flex-start;
}

@media (max-width: 768px) {

  .container {
    padding-left: 10px;
    padding-right: 10px;
  }
 .card {
    padding: 1rem;
  }
    .hero-cards {
        flex-direction: column;
    }

}

/* Buttons */
.btn-gold {
  display: inline-flex; align-items: center; gap: .5rem;
  background: var(--gradient-gold);
  color: #1d1812; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
  padding: .85rem 1.5rem; border-radius: .6rem; border: 0; cursor: pointer;
  font-size: .9rem; font-family: var(--font-body);
  box-shadow: var(--shadow-gold);
  transition: transform .2s, filter .2s;
}
.btn-gold.small { padding: .55rem 1rem; font-size: .75rem; }
.btn-gold:hover { transform: translateY(-2px) rotate(-.5deg); filter: brightness(1.08); }
.btn-gold:active { transform: translateY(0); }

.btn-ghost {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .85rem 1.5rem; border-radius: .6rem;
  border: 1px solid rgba(212,161,74,0.5); color: var(--gold);
  text-transform: uppercase; letter-spacing: .15em; font-size: .8rem; font-weight: 600;
  transition: background .2s;
}
.btn-ghost:hover { background: rgba(212,161,74,0.1); }

/* Stamp */
.stamp {
  display: inline-flex; align-items: center; gap: .35rem;
  padding: .25rem .65rem; border: 1px dashed rgba(237,198,109,0.6);
  border-radius: 999px; color: var(--gold); font-size: .7rem;
  text-transform: uppercase; letter-spacing: .15em; font-weight: 600;
}

/* Hero */
.hero { position: relative; min-height: 100vh; display: flex; align-items: center; padding: 7rem 0 4rem; overflow: hidden; }
.hero-bg { position: absolute; inset: 0; z-index: -1; }
.hero-bg img { width: 100%; height: 100%; object-fit: cover; opacity: .5; }
.hero-fade { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(29,24,18,.4), rgba(29,24,18,.6), var(--bg)); }
.hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }

@media (max-width: 768px) {
  .hero-grid {
    grid-template-columns: 1fr;
  }

  .hero-logo {
    display: block;
    justify-self: center;
    margin-top: 2rem;
  }

.hero-logo > img{
width: 180px;
margin: 0 auto;
}
  .game-of-month {
    max-width: 320px;
  }
}

.hero-cards {
    display: flex;
    gap: 10px;
    align-items: stretch;
}

.hero-cards .game-of-month {
    width: 280px;
    display: flex;
    flex-direction: column;
}

.game-month-img {
    width: 100%;
    min-height: 250px;
    object-fit: fill;
    border-radius: 12px;
}

.game-cover {
    width: 100%;
    height: 250px;
    object-fit: cover;
    border-radius: 12px;
    margin-bottom: 15px;
}

.game-of-month .btn-gold {
    margin-top: auto;
}

.hero-cards .game-of-month {
    width: 280px;
    min-height: 500px;
    display: flex;
    flex-direction: column;
}

.closure-notice {
background: rgba(180, 0, 0, 0.15);
border: 3px solid #ff2b2b;
color: #fff;
text-align: center;
font-weight: 700;
font-size: 1.1rem;
padding: 15px 20px;
margin: 90px auto 20px;
max-width: 1200px;
border-radius: 12px;
box-shadow: 0 0 20px rgba(255, 43, 43, 0.3);
}

.hero h1 { font-size: clamp(3rem, 8vw, 6rem); line-height: .95; margin-top: 1.5rem; }
.hero h1 span { display: block; }
.lede { margin-top: 1.5rem; font-size: 1.1rem; color: var(--muted); max-width: 32rem; text-align: left }
.cta-row { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; }
.hero-logo { position: relative; justify-self: end; }
.hero-logo img { width: 320px; filter: drop-shadow(0 25px 50px rgba(0,0,0,.5)); position: relative; }
.hero-logo-glow {
  position: absolute; inset: -1.5rem;
  background: radial-gradient(circle, rgba(212,161,74,0.4), transparent 65%);
  filter: blur(40px); border-radius: 50%;
}


/* --- PLAY ON SITE --- */

.play-on-site{
    padding:120px 0 80px;
}

.play-title{
    font-size:4rem;
    margin:20px 0;
}

.play-date-controls{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:15px;
    margin:40px 0;
}

.play-date-controls input{
    background:#1a150f;
    color:white;
    border:1px solid var(--border);
    border-radius:10px;
    padding:12px;
}

/* Легенда */

.seat-legend{
    display:flex;
    justify-content:center;
    gap:30px;
    flex-wrap:wrap;
    margin-bottom:40px;
}

.legend-dot{
    width:16px;
    height:16px;
    border-radius:50%;
    display:inline-block;
    margin-right:8px;
}

.legend-dot.free{
    background:#2e9d47;
}

.legend-dot.social{
    background:#d0a821;
}

.legend-dot.busy{
    background:#d53939;
}

/* МАСА */

.table-layout{
    position:relative;
    width:900px;
    height:450px;
    margin:60px auto;
}

.play-table::after{
    content:"ХОД";
    position:absolute;

    top:50%;
    left:50%;

    transform:translate(-50%,-50%);

    width:550px;
    height:220px;

    border-radius:30px;

    background:linear-gradient(
        135deg,
        #8b6b20,
        #6f5117
    );

    border:3px solid var(--gold);

    box-shadow:
        0 0 40px rgba(212,161,74,.25),
        inset 0 0 15px rgba(255,255,255,.05);
}


/* СТОЛОВЕ */

.seat{
    position:absolute;

    width:85px;
    height:85px;

    border:none;
    border-radius:50%;

    color:#fff;
    font-size:28px;
    font-weight:bold;

    cursor:pointer;

    transition:.2s;
}

.seat.free{
    background:#2e9d47;
    box-shadow:0 0 25px rgba(46,157,71,.55);
}

.seat.social{
    background:#d0a821;
    box-shadow:0 0 25px rgba(208,168,33,.55);
}

.seat.busy{
    background:#d53939;
    box-shadow:0 0 25px rgba(213,57,57,.55);
}

.seat:hover{
    transform:scale(1.08);
}

/* ГОРЕН РЕД */

.chair1{
    top:20px;
    left:200px;
}

.chair2{
    top:20px;
    left:407px;
}

.chair3{
    top:20px;
    left:614px;
}

/* ДОЛЕН РЕД */

.chair4{
    bottom:20px;
    left:200px;
}

.chair5{
    bottom:20px;
    left:407px;
}

.chair6{
    bottom:20px;
    left:614px;
}

@media (max-width:768px){

    .table-layout{
        width:100%;
        height:360px;
    }

    .play-table{
        width:280px;
        height:130px;
    }

    .seat{
        width:55px;
        height:55px;
        font-size:18px;
    }

    .chair1{ left:15%; top:20px; }
    .chair2{ left:43%; top:20px; }
    .chair3{ left:71%; top:20px; }

    .chair4{ left:15%; bottom:20px; }
    .chair5{ left:43%; bottom:20px; }
    .chair6{ left:71%; bottom:20px; }
}

/* Gallery */

.hidden {
    display: none !important;
}

.gallery.hidden {
    display: none;
}

#toggle-gallery {
    display: block;
    width: 100%;
    max-width: 400px;
    margin: 30px auto;
    font-size: 1.1rem;
    padding: 18px;
    text-align: center;

    animation: pulse 2s infinite;
}

@keyframes pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(212,161,74,.7);
    }
    70% {
        box-shadow: 0 0 0 20px rgba(212,161,74,0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(212,161,74,0);
    }
}

.gallery { padding: 6rem 0; }
.gallery-head { display: flex; flex-direction: column; gap: 1.5rem; justify-content: space-between; margin-bottom: 3rem; }
@media (min-width: 768px) { .gallery-head { flex-direction: row; align-items: flex-end; } }
.gallery-head h2 { font-size: clamp(2.5rem, 5vw, 3.75rem); margin-top: 1rem; }
.search-wrap { position: relative; width: 100%; max-width: 20rem; }
.search-icon { position: absolute; left: .85rem; top: 50%; transform: translateY(-50%); color: var(--muted); pointer-events: none; }
#search {
  width: 100%; padding: .85rem 1rem .85rem 2.4rem;
  background: var(--card); border: 1px solid var(--border); color: var(--fg);
  border-radius: .6rem; font-size: .9rem; font-family: var(--font-body);
}
#search:focus { outline: none; border-color: var(--gold); }

.categories { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 2.5rem; }
.cat-btn {
  padding: .4rem 1rem; border-radius: 999px; font-size: .7rem;
  text-transform: uppercase; letter-spacing: .15em; cursor: pointer;
  border: 1px solid var(--border); background: transparent; color: var(--muted);
  font-family: var(--font-body); transition: all .2s;
}
.cat-btn:hover { color: var(--fg); border-color: var(--gold); }
.cat-btn.active { background: var(--gold); color: #1d1812; border-color: var(--gold); }
.marquee-mask { mask-image: linear-gradient(90deg, transparent, black 5%, black 95%, transparent); }

.grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 640px) { .grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .grid { grid-template-columns: 1fr 1fr 1fr; } }

.game-of-month{
    margin-top:20px;
    background:rgba(15,15,15,.85);
    border:2px solid #d4af37;
    border-radius:16px;
    padding:12px;
    text-align:center;
    max-width:280px;
    margin-left:auto;
    margin-right:auto;
    box-shadow:0 0 20px rgba(212,175,55,.25);
}

.game-month-badge{
    display:inline-block;
    background:#d4af37;
    color:#111;
    font-weight:700;
    padding:6px 12px;
    border-radius:999px;
    margin-bottom:10px;
}

.game-month-img{
    width:100%;
    border-radius:12px;
    display:block;
}

.game-month-text{
    margin-top:12px;
    color:#fff;
    font-size:1rem;
    line-height:1.4;
}

.game-month-text strong{
    color:#d4af37;
    font-size:1.15rem;
}



.card-game {
  position: relative;
  background: linear-gradient(180deg, #251e15, #19130d);
  border: 1px solid rgba(128,83,29,0.3);
  border-radius: 1rem; padding: 1.5rem;
  display: flex; flex-direction: column;
  overflow: hidden;
  transition: transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s, border-color .3s;
}
.card-game::before {
  content: ""; position: absolute; inset: 0;
  background: var(--gradient-shine);
  transform: translateX(-100%); transition: transform .8s;
  pointer-events: none;
}
.card-game:hover { transform: translateY(-6px) rotate(-.4deg); border-color: rgba(237,198,109,0.7); box-shadow: var(--shadow-gold), var(--shadow-deep); }
.card-game:hover::before { transform: translateX(100%); }

.card-title { font-size: 1.5rem; line-height: 1.1; }
.card-code { font-size: .7rem; color: var(--muted); letter-spacing: .15em; margin-top: .25rem; }
.card-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin: 1rem 0; }
.card-desc { font-size: .85rem; color: var(--muted); margin: 0 0 1.25rem;
  display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
.stats { margin-top: auto; display: grid; grid-template-columns: repeat(3,1fr); gap: .75rem;
  padding-top: 1rem; border-top: 1px solid rgba(212,161,74,0.2); font-size: .7rem; text-align: center; }
.stat-icon { color: var(--gold); font-size: .9rem; }
.stat-val { font-family: var(--font-display); font-size: 1.1rem; }
.stat-label { font-size: .55rem; text-transform: uppercase; letter-spacing: .2em; color: var(--muted); margin-top: .25rem; }
.status { margin-top: 1rem; text-align: center; font-size: .7rem; text-transform: uppercase; letter-spacing: .15em; font-weight: 600; color: var(--muted); }
.status.free { color: var(--gold); }

.empty { text-align: center; padding: 5rem 1rem; color: var(--muted); }

/* Contact */
.contact { padding: 6rem 0; position: relative; }
.contact::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(to bottom, transparent, rgba(80,55,25,0.25), transparent);
}

.contact-grid { display: grid; grid-template-columns: 1fr; gap: 3rem; max-width: 1000px; margin: 0 auto; }
@media (min-width: 768px) { .contact-grid { grid-template-columns: 1fr 1fr; } }
.contact h2 { font-size: clamp(2.5rem, 5vw, 3.75rem); margin-top: 1rem; }
.info { list-style: none; padding: 0; margin: 2.5rem 0 0; display: flex; flex-direction: column; gap: 1rem; font-size: .9rem; color: var(--muted); }
.info li { display: flex; align-items: center; gap: .75rem; }
.info a:hover { color: var(--fg); }

.contact-grid-new { display: grid; grid-template-columns: 1fr; gap: 3rem; max-width: 1000px; margin: 0 auto; }
@media (min-width: 768px) { .contact-grid { grid-template-columns: 2fr 2fr; } }
.contact h2 { font-size: clamp(2.5rem, 5vw, 3.75rem); margin-top: 1rem; }
.info { list-style: none; padding: 0; margin: 2.5rem 0 0; display: flex; flex-direction: column; gap: 1rem; font-size: .9rem; color: var(--muted); }
.info li { display: flex; align-items: center; gap: .75rem; }
.info a:hover { color: var(--fg); }

.card { background: var(--card); border: 1px solid var(--border); border-radius: 1.25rem; padding: 2rem; box-shadow: var(--shadow-deep); }
.card label { display: block; margin-bottom: 1rem; font-size: .7rem; text-transform: uppercase; letter-spacing: .2em; color: var(--muted); }
.req { color: var(--gold); }

.filters-row {
    display: grid;
    gap: 10px;
    margin: 20px 0;
}

.filter-select {
    width: 100%;

    appearance: none;
    -webkit-appearance: none;

    background: rgba(18,18,18,.85);
    color: #e7c069;

    border: 1px solid rgba(231,192,105,.35);
    border-radius: 14px;

    padding: 14px 40px 14px 14px;

    font-size: 15px;
    font-weight: 600;

    backdrop-filter: blur(10px);

    background-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23e7c069' viewBox='0 0 16 16'%3E%3Cpath d='M1.5 5.5L8 12l6.5-6.5z'/%3E%3C/svg%3E");

    background-repeat: no-repeat;
    background-position: right 14px center;

    transition: .25s;
}

.filter-select:hover,
.filter-select:focus {
    border-color: #e7c069;
    box-shadow: 0 0 16px rgba(231,192,105,.25);
    outline: none;
}

.filter-select option {
    background: #1d1d1d;
    color: white;
}

@media (min-width: 900px) {

    .filters-row {
        display: grid;
        grid-template-columns:
            repeat(5, minmax(150px, 1fr));

        gap: 12px;
    }

}
.filter-title {
    margin: 0 0 6px 4px;
    color: #f5d27b;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
}

.card input, .card textarea {
  overflow-y: hidden;
  display: block;
  width: 100%;
  margin-top: .5rem;
  padding: .8rem 1rem;
  background: #1a150f;
  border: 1px solid var(--border);
  border-radius: .6rem;
  color: var(--fg);
  font-family: var(--font-body);
  font-size: .9rem;
  resize: none;
}

.card textarea {
  min-height: 200px;
}

.card input:focus, .card textarea:focus { outline: none; border-color: var(--gold); }
.card .btn-gold { width: 100%; justify-content: center; margin-top: .5rem; }
.card .muted.small { text-align: center; margin: .75rem 0 0; }

.site-footer { border-top: 1px solid rgba(212,161,74,0.2); padding: 2.5rem 0; text-align: center; font-size: .7rem; text-transform: uppercase; letter-spacing: .2em; color: var(--muted); }


.prices {
  padding: 5rem 0;
  text-align: left;
}

.prices-img {

display: block;
  margin: 2rem auto;

  margin-top: 2rem;
  max-width: 100%;
  border-radius: 16px;
  border: 2px solid rgba(255,255,255,0.08);
  box-shadow: 0 20px 40px rgba(0,0,0,0.3);
}

.card-game {
  position: relative;
}

/* Tooltip */


.tooltip {
  font-family: var(--font-body);
  font-size: 0.85rem;
  font-weight: 400;
  line-height: 1.5;
}


.game-title {
  position: relative;
  display: inline-block;
}

.game-title .tooltip {
  position: absolute;
  top: -10px;
  left: 0;

  width: 280px;

  background: #18120d;
  border: 1px solid var(--gold);
  border-radius: 12px;

  padding: 12px;
  color: var(--fg);

  opacity: 0;
  visibility: hidden;

  transform: translateY(10%);
  transition: .2s;

  z-index: 999;
}

.game-desc:hover .tooltip {
  opacity: 1;
  visibility: visible;
}

.hero-logo-glow {
    pointer-events: none;
}

.card-desc-wrap {
  position: relative;
}

.card-desc-tooltip {
  display: none;

  position: absolute;
  top: 100%;
  left: 0;

  width: 280px;

  background: #18120d;
  color: var(--fg);

  border: 1px solid var(--gold);
  border-radius: 10px;

  padding: 12px;
  margin-top: 8px;

  font-size: 0.85rem;
  font-family: var(--font-body);

  z-index: 9999;
}

.card-desc-wrap:hover .card-desc-tooltip {
  display: block;
}

#toggle-gallery {
    position: relative !important;
    z-index: 99999 !important;
    pointer-events: auto !important;
}

.hero,
.hero-bg,
.hero-fade,
.hero-logo,
.hero-logo-glow {
    pointer-events: none;
}

.hero .btn-gold,
.hero .btn-ghost,
.game-of-month,
.game-of-month * {
    pointer-events: auto;
}
