:root {
    --ink: #050812;
    --navy: #080d1b;
    --card: #0d1426;
    --card2: #101a31;
    --text: #f4f7ff;
    --muted: #98a4bc;
    --cyan: #35e7ff;
    --blue: #3c7cff;
    --purple: #9457ff;
    --magenta: #e34bff;
    --green: #39e58c;
    --red: #ff5574;
    --line: rgba(125, 151, 200, .18);
    --display: 'Oxanium', sans-serif;
    --body: 'Inter', sans-serif
}

* {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 78px
}

body {
    background: var(--ink);
    color: var(--text);
    font-family: var(--body);
    overflow-x: hidden
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: -1;
    background: radial-gradient(circle at 12% 20%, rgba(44, 119, 255, .08), transparent 28%), radial-gradient(circle at 88% 65%, rgba(148, 87, 255, .07), transparent 25%)
}

a {
    text-decoration: none
}

.site-container {
    max-width: 1240px
}

.section-pad {
    padding: 110px 0
}

.section-alt {
    background: #080c18
}

h1,
h2,
h3,
.brand,
.btn {
    font-family: var(--display)
}

h2 {
    font-size: clamp(2rem, 4vw, 3.4rem);
    font-weight: 700;
    letter-spacing: -.04em
}

h2 span,
h1 span {
    background: linear-gradient(90deg, var(--cyan), #8297ff, var(--purple));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent
}

.eyebrow {
    font: 700 .76rem var(--display);
    letter-spacing: .18em;
    color: var(--cyan)
}

.section-copy,
.section-heading p {
    color: var(--muted);
    line-height: 1.8
}

.section-heading {
    max-width: 700px;
    margin: 0 auto 50px
}

.section-heading h2 {
    margin: .4rem 0 1rem
}

.navbar {
    padding: 14px 0;
    background: rgba(5, 8, 18, .74);
    backdrop-filter: blur(16px);
    border-bottom: 1px solid transparent;
    transition: .3s
}

.navbar.scrolled {
    padding: 9px 0;
    border-color: var(--line);
    background: rgba(5, 8, 18, .94)
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    color: white;
    font-size: 1rem;
    letter-spacing: .06em
}

.brand:hover {
    color: white
}

.brand b {
    color: var(--cyan)
}

.brand-mark {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(53, 231, 255, .4);
    clip-path: polygon(14% 0, 100% 0, 100% 75%, 86% 100%, 0 100%, 0 25%);
    background: linear-gradient(135deg, rgba(53, 231, 255, .16), rgba(148, 87, 255, .15));
    color: var(--cyan);
    font-size: 1.2rem
}

.navbar .nav-link {
    color: #b4bfd2;
    font-size: .76rem;
    font-weight: 700;
    padding: .7rem .55rem !important
}

.navbar .nav-link:hover,
.navbar .nav-link.active {
    color: var(--cyan)
}

.navbar-toggler {
    border-color: var(--line)
}

.btn {
    border-radius: 6px;
    padding: .78rem 1.25rem;
    font-size: .79rem;
    font-weight: 700;
    letter-spacing: .06em;
    transition: .25s
}

.btn-neon {
    color: #041016;
    border: 0;
    background: linear-gradient(120deg, var(--cyan), #5d9cff);
    box-shadow: 0 8px 30px rgba(53, 195, 255, .2)
}

.btn-neon:hover {
    color: #041016;
    transform: translateY(-2px);
    box-shadow: 0 10px 35px rgba(53, 195, 255, .35)
}

.btn-neon:disabled {
    background: #27334b;
    color: #71809a;
    box-shadow: none
}

.btn-ghost {
    color: #eaf2ff;
    border: 1px solid rgba(139, 166, 216, .4);
    background: rgba(16, 25, 47, .45)
}

.btn-ghost:hover {
    color: var(--cyan);
    border-color: var(--cyan);
    background: rgba(53, 231, 255, .06);
    transform: translateY(-2px)
}

.hero {
    position: relative;
    min-height: 780px;
    isolation: isolate
}

.hero-media,
.hero-overlay {
    position: absolute;
    inset: 0
}

.hero-media {
    z-index: -3;
    background: url('../images/banners/nextgen-hero.png') center/cover no-repeat
}

.hero-overlay {
    z-index: -2;
    background: linear-gradient(90deg, #050812 0%, rgba(5, 8, 18, .93) 34%, rgba(5, 8, 18, .38) 67%, rgba(5, 8, 18, .15)), linear-gradient(0deg, #050812 0%, transparent 30%)
}

.hero h1 {
    font-size: clamp(4rem, 8vw, 7.8rem);
    font-weight: 700;
    line-height: .78;
    letter-spacing: -.065em;
    margin: 1rem 0 1.2rem
}

.hero-tagline {
    font: 600 clamp(1rem, 2vw, 1.35rem) var(--display);
    letter-spacing: .28em;
    color: #dbe4f7
}

.hero-copy {
    max-width: 610px;
    color: #a9b5cb;
    font-size: 1.05rem;
    line-height: 1.75
}

.status-pill,
.label-pill {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    padding: .52rem .8rem;
    border: 1px solid rgba(57, 229, 140, .3);
    border-radius: 4px;
    color: var(--green);
    background: rgba(57, 229, 140, .08);
    font: 700 .72rem var(--display);
    letter-spacing: .12em
}

.status-pill span {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--green);
    box-shadow: 0 0 12px var(--green);
    animation: pulse 1.7s infinite
}

.hero-badges {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem
}

.hero-badges span {
    padding: .45rem .7rem;
    border: 1px solid var(--line);
    background: rgba(8, 13, 27, .68);
    color: #bcc8dd;
    border-radius: 4px;
    font-size: .73rem
}

.hero-badges i {
    color: var(--cyan);
    margin-right: .3rem
}

.open-time {
    display: flex;
    align-items: center;
    gap: .8rem
}

.open-time>i {
    font-size: 1.7rem;
    color: var(--cyan)
}

.open-time small,
.open-time strong {
    display: block
}

.open-time small {
    font-size: .64rem;
    letter-spacing: .14em;
    color: var(--muted)
}

.open-time strong {
    font: 600 .95rem var(--display)
}

.scroll-cue {
    position: absolute;
    bottom: 28px;
    left: 50%;
    color: var(--cyan);
    animation: bounce 2s infinite
}

.feature-card {
    height: 100%;
    padding: 28px;
    background: linear-gradient(150deg, rgba(17, 27, 51, .92), rgba(9, 14, 28, .92));
    border: 1px solid var(--line);
    border-radius: 10px;
    transition: .3s
}

.feature-card:hover {
    transform: translateY(-6px);
    border-color: rgba(53, 231, 255, .45);
    box-shadow: 0 16px 35px rgba(0, 0, 0, .25)
}

.feature-card>i {
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    margin-bottom: 35px;
    border-radius: 8px;
    background: rgba(53, 231, 255, .08);
    color: var(--cyan);
    font-size: 1.5rem
}

.feature-card h3,
.why-grid h3,
.offer-card h3 {
    font-size: 1.02rem
}

.feature-card p,
.why-grid p,
.offer-card p {
    color: var(--muted);
    font-size: .85rem;
    line-height: 1.65;
    margin: 0
}

.experience-strip {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    gap: 1rem;
    padding: 22px;
    border: 1px solid var(--line);
    background: rgba(9, 14, 28, .65);
    border-radius: 10px;
    color: #bdc7d9;
    font-size: .82rem
}

.experience-strip i {
    color: var(--purple);
    margin-right: .5rem
}

.games-scroller {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 265px;
    gap: 18px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-color: var(--purple) #111827
}

.game-card {
    scroll-snap-align: start;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 11px;
    overflow: hidden;
    transition: .3s
}

.game-card:hover,
.rental-card:hover {
    transform: translateY(-7px);
    border-color: rgba(53, 231, 255, .4);
    box-shadow: 0 18px 45px rgba(0, 0, 0, .3)
}

.game-art,
.rental-cover {
    height: 315px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    overflow: hidden;
    font: 800 4.5rem var(--display);
    letter-spacing: -.08em;
    text-shadow: 0 5px 25px rgba(0, 0, 0, .5)
}

.game-art::after,
.rental-cover::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(0deg, rgba(4, 7, 14, .7), transparent 55%), repeating-linear-gradient(115deg, transparent 0 25px, rgba(255, 255, 255, .025) 26px 27px)
}

.game-art small,
.rental-cover small {
    font-size: .8rem;
    letter-spacing: .25em;
    z-index: 1
}

.game-art span,
.game-art i,
.rental-cover span,
.rental-cover i {
    z-index: 1
}

.art-fc {
    background: radial-gradient(circle at 70% 20%, #87ffdf, transparent 23%), linear-gradient(145deg, #0a6e73, #0a172c 58%, #301d6d)
}

.art-wwe {
    background: radial-gradient(circle, #ff6478, transparent 8%), linear-gradient(140deg, #171421, #7a1229 55%, #160d18)
}

.art-forza {
    background: linear-gradient(145deg, #ff8b22, #ad164d 40%, #241353)
}

.art-mk {
    background: radial-gradient(circle, #ffb31a, transparent 8%), linear-gradient(145deg, #2c0a0a, #9b1515, #160606)
}

.art-tekken {
    background: linear-gradient(145deg, #411653, #c52366 50%, #121830)
}

.art-cod {
    background: linear-gradient(145deg, #536d65, #17231e 55%, #080c0b)
}

.game-body {
    padding: 22px
}

.genre {
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .14em;
    color: var(--cyan)
}

.game-body h3 {
    font-size: 1rem;
    margin: .55rem 0
}

.game-body p {
    font-size: .75rem;
    color: var(--muted)
}

.game-body a {
    display: flex;
    justify-content: space-between;
    color: #dfe8f8;
    font: 600 .76rem var(--display)
}

.game-body a:hover {
    color: var(--cyan)
}

.booking-shell {
    border: 1px solid rgba(90, 120, 180, .25);
    border-radius: 14px;
    overflow: hidden;
    background: var(--card);
    box-shadow: 0 25px 80px rgba(0, 0, 0, .25)
}

.booking-main {
    padding: 36px
}

.booking-toolbar {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px
}

.booking-toolbar label,
.booking-summary label,
.modal label {
    display: block;
    color: #9eabc0;
    font-size: .7rem;
    font-weight: 700;
    margin-bottom: .45rem
}

.form-control,
.form-select {
    color: white;
    background: #09101f;
    border: 1px solid var(--line);
    border-radius: 6px;
    font-size: .82rem
}

.form-control:focus,
.form-select:focus {
    color: white;
    background: #09101f;
    border-color: var(--cyan);
    box-shadow: 0 0 0 .2rem rgba(53, 231, 255, .1)
}

.form-select {
    --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2398a4bc' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")
}

.setup-tabs {
    display: flex;
    padding: 4px;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: #080e1c
}

.setup-tabs button {
    border: 0;
    border-radius: 4px;
    padding: .6rem 1rem;
    color: var(--muted);
    background: transparent;
    font: 600 .75rem var(--display)
}

.setup-tabs button.active {
    color: #06111a;
    background: var(--cyan)
}

.booking-legend {
    display: flex;
    gap: 18px;
    margin: 28px 0 16px;
    color: var(--muted);
    font-size: .72rem
}

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

.available {
    background: var(--green)
}

.booked {
    background: var(--red)
}

.unavailable {
    background: #657187
}

.slot-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px
}

.slot {
    padding: .85rem .5rem;
    border: 1px solid rgba(57, 229, 140, .25);
    border-radius: 6px;
    color: #d9ffea;
    background: rgba(57, 229, 140, .06);
    font: 600 .78rem var(--display);
    transition: .2s
}

.slot:hover:not(:disabled),
.slot.selected {
    border-color: var(--green);
    background: var(--green);
    color: #04110a;
    transform: translateY(-2px)
}

.slot.booked,
.slot.unavailable {
    cursor: not-allowed
}

.slot.booked {
    color: #e48b9c;
    border-color: rgba(255, 85, 116, .2);
    background: rgba(255, 85, 116, .06)
}

.slot.unavailable {
    color: #657187;
    border-color: #222c3f;
    background: #111827
}

.demo-note {
    display: block;
    color: #657187;
    margin-top: 18px
}

.booking-summary {
    padding: 36px;
    background: linear-gradient(160deg, #111c35, #0a1122)
}

.booking-summary h3 {
    font-size: 1.3rem;
    margin-bottom: 26px
}

.summary-row {
    display: flex;
    justify-content: space-between;
    padding: 13px 0;
    border-bottom: 1px solid var(--line);
    font-size: .78rem
}

.summary-row span {
    color: var(--muted)
}

.summary-row strong {
    font-weight: 600
}

.total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 28px 0
}

.total span {
    font-size: .75rem;
    color: #c7d0df
}

.total small {
    display: block;
    color: #647086;
    margin-top: .25rem
}

.total strong {
    font: 700 1.8rem var(--display);
    color: var(--cyan)
}

.rental-card {
    height: 100%;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 10px;
    overflow: hidden;
    transition: .3s
}

.rental-cover {
    height: 235px;
    font-size: 3.5rem
}

.type-badge {
    padding: .28rem .45rem;
    background: rgba(53, 231, 255, .08);
    color: var(--cyan);
    border: 1px solid rgba(53, 231, 255, .2);
    border-radius: 3px;
    font-size: .59rem;
    font-weight: 700
}

.type-badge.digital {
    color: #c592ff;
    border-color: rgba(148, 87, 255, .25);
    background: rgba(148, 87, 255, .08)
}

.stock {
    font-size: .63rem;
    font-weight: 700
}

.available-text {
    color: var(--green)
}

.rented-text {
    color: var(--red)
}

.rental-card h3 {
    font-size: 1rem;
    margin: 1.15rem 0 .35rem
}

.rental-card p {
    font-size: .75rem;
    color: var(--muted)
}

.rental-price strong {
    font: 700 1.5rem var(--display);
    color: white
}

.rental-price small {
    color: var(--muted)
}

.rental-card .btn {
    margin-top: 1.2rem
}

.legal-note {
    font-size: .7rem;
    color: #667289
}

.tournament-card {
    position: relative;
    padding: 70px;
    border: 1px solid rgba(148, 87, 255, .3);
    border-radius: 16px;
    overflow: hidden;
    background: linear-gradient(120deg, #0d1830, #140e2c)
}

.tournament-bg {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 20% 80%, rgba(53, 231, 255, .12), transparent 28%), radial-gradient(circle at 90% 10%, rgba(227, 75, 255, .16), transparent 30%)
}

.label-pill {
    color: #d4c0ff;
    border-color: rgba(148, 87, 255, .35);
    background: rgba(148, 87, 255, .08)
}

.tournament-card h2 {
    font-size: clamp(2.6rem, 5vw, 4.5rem)
}

.tournament-card p:not(.eyebrow) {
    color: var(--muted);
    max-width: 500px;
    line-height: 1.7
}

.tournament-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px
}

.tournament-stats>div {
    display: flex;
    gap: 13px;
    align-items: center;
    padding: 18px;
    background: rgba(5, 8, 18, .5);
    border: 1px solid var(--line);
    border-radius: 8px
}

.tournament-stats i {
    font-size: 1.35rem;
    color: var(--purple)
}

.tournament-stats span,
.tournament-stats strong {
    display: block
}

.tournament-stats span {
    font-size: .65rem;
    color: var(--muted)
}

.tournament-stats strong {
    margin-top: .2rem;
    color: white;
    font: 600 .75rem var(--display)
}

.cyan {
    color: var(--cyan) !important
}

.green {
    color: var(--green) !important
}

.offer-card {
    height: 100%;
    min-height: 240px;
    padding: 25px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--card);
    transition: .3s
}

.offer-card:hover {
    transform: translateY(-5px);
    border-color: rgba(148, 87, 255, .4)
}

.offer-card.featured {
    background: linear-gradient(145deg, rgba(35, 48, 92, .9), rgba(18, 12, 44, .9));
    border-color: rgba(53, 231, 255, .3)
}

.offer-card>span {
    font-size: .58rem;
    color: var(--cyan);
    letter-spacing: .13em;
    font-weight: 800
}

.offer-card>i {
    display: block;
    font-size: 2rem;
    color: var(--purple);
    margin: 32px 0 22px
}

.snacks {
    padding: 30px 0
}

.snacks-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 48px;
    border-radius: 14px;
    border: 1px solid rgba(53, 231, 255, .22);
    background: linear-gradient(100deg, rgba(10, 26, 49, .95), rgba(25, 13, 50, .95))
}

.snacks-inner h2 {
    font-size: clamp(1.8rem, 4vw, 2.7rem)
}

.snacks-inner p {
    color: var(--muted)
}

.snack-list {
    display: flex;
    flex-wrap: wrap;
    gap: 12px
}

.snack-list span {
    padding: .8rem 1rem;
    border: 1px solid var(--line);
    background: rgba(5, 8, 18, .5);
    border-radius: 7px;
    font-size: .75rem
}

.snack-list i {
    color: var(--cyan);
    margin-right: .35rem
}

.why-grid article {
    position: relative;
    height: 100%;
    padding: 28px;
    border: 1px solid var(--line);
    background: linear-gradient(145deg, rgba(14, 22, 41, .8), rgba(7, 11, 22, .8));
    border-radius: 9px;
    overflow: hidden
}

.why-grid article>span {
    position: absolute;
    right: 15px;
    top: 8px;
    font: 700 3rem var(--display);
    color: rgba(255, 255, 255, .035)
}

.why-grid article>i {
    font-size: 1.8rem;
    color: var(--cyan)
}

.why-grid h3 {
    margin: 25px 0 8px
}

.gallery-grid {
    display: grid;
    grid-template-columns: 1.3fr 1fr 1fr;
    grid-template-rows: 250px 250px;
    gap: 14px
}

.gallery-item {
    position: relative;
    border: 0;
    padding: 0;
    overflow: hidden;
    border-radius: 9px;
    background: #101728
}

.gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: .5s
}

.gallery-item::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(0deg, rgba(4, 6, 14, .85), transparent 65%)
}

.gallery-item span {
    position: absolute;
    left: 18px;
    bottom: 16px;
    z-index: 1;
    color: white;
    font: 600 .76rem var(--display)
}

.gallery-item:hover img {
    transform: scale(1.05)
}

.gallery-lg {
    grid-row: 1/3
}

.gallery-wide {
    grid-column: 2/4
}

.crop-1 img {
    object-position: 80% 90%
}

.crop-2 img {
    object-position: 85% 20%;
    filter: hue-rotate(30deg)
}

.crop-3 img {
    object-position: 60% 38%;
    filter: saturate(.8) hue-rotate(-20deg)
}

.contact-shell {
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden
}

.contact-details {
    padding: 60px;
    background: var(--card)
}

.contact-line {
    display: flex;
    gap: 16px;
    margin-top: 25px
}

.contact-line>i {
    display: grid;
    place-items: center;
    flex: 0 0 42px;
    height: 42px;
    color: var(--cyan);
    background: rgba(53, 231, 255, .07);
    border: 1px solid rgba(53, 231, 255, .14);
    border-radius: 6px
}

.contact-line small,
.contact-line strong {
    display: block
}

.contact-line small {
    font-size: .61rem;
    color: #6f7c92;
    letter-spacing: .1em
}

.contact-line strong {
    font-size: .82rem;
    line-height: 1.7
}

.map-placeholder {
    display: grid;
    place-items: center;
    min-height: 480px;
    text-align: center;
    background: radial-gradient(circle, rgba(53, 231, 255, .1), transparent 28%), linear-gradient(rgba(53, 231, 255, .025) 1px, transparent 1px), linear-gradient(90deg, rgba(53, 231, 255, .025) 1px, transparent 1px), #08101f;
    background-size: auto, 30px 30px, 30px 30px
}

.map-placeholder>div>i {
    font-size: 3rem;
    color: var(--cyan);
    filter: drop-shadow(0 0 18px rgba(53, 231, 255, .5))
}

.map-placeholder h3 {
    margin-top: 1rem
}

.map-placeholder p {
    color: var(--muted)
}

footer {
    padding: 70px 0 26px;
    border-top: 1px solid var(--line);
    background: #040710;
    color: var(--muted)
}

.footer-links {
    display: flex;
    flex-wrap: wrap;
    gap: 18px
}

.footer-links a {
    color: #9ca8bc;
    font-size: .75rem
}

.footer-links a:hover {
    color: var(--cyan)
}

.social {
    display: inline-grid;
    place-items: center;
    width: 40px;
    height: 40px;
    margin-left: 5px;
    color: #bec8d9;
    border: 1px solid var(--line);
    border-radius: 5px
}

.social:hover {
    color: var(--cyan);
    border-color: var(--cyan)
}

footer hr {
    border-color: var(--line);
    margin: 35px 0 22px
}

.floating-whatsapp {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 1030;
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .75rem 1rem;
    color: white;
    background: #1dae5b;
    border-radius: 99px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, .35);
    font-size: .78rem;
    font-weight: 700
}

.floating-whatsapp:hover {
    color: white;
    transform: translateY(-2px)
}

.floating-whatsapp i {
    font-size: 1.15rem
}

.scroll-top {
    position: fixed;
    right: 25px;
    bottom: 82px;
    z-index: 1029;
    width: 40px;
    height: 40px;
    border: 1px solid var(--line);
    border-radius: 6px;
    color: var(--cyan);
    background: #0c1425;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: .25s
}

.scroll-top.show {
    opacity: 1;
    visibility: visible;
    transform: none
}

.modal-content {
    color: white;
    background: #0d1426;
    border: 1px solid rgba(53, 231, 255, .25);
    border-radius: 12px
}

.modal-header {
    border-bottom-color: var(--line)
}

.modal-body {
    padding: 28px
}

.modal-icon {
    display: grid;
    place-items: center;
    width: 70px;
    height: 70px;
    margin: 0 auto 20px;
    color: var(--cyan);
    font-size: 2rem;
    background: rgba(53, 231, 255, .08);
    border: 1px solid rgba(53, 231, 255, .2);
    border-radius: 50%
}

.rental-meta {
    display: flex;
    gap: 8px;
    margin-bottom: 20px
}

.rental-meta span {
    font-size: .62rem;
    padding: .3rem .5rem;
    border: 1px solid var(--line);
    border-radius: 3px;
    color: var(--muted)
}

.gallery-modal img {
    width: 100%;
    max-height: 80vh;
    object-fit: contain;
    background: #040711
}

.reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .7s ease, transform .7s ease
}

.reveal.visible {
    opacity: 1;
    transform: none
}

@keyframes pulse {
    50% {
        opacity: .4;
        box-shadow: 0 0 4px var(--green)
    }
}

@keyframes bounce {
    50% {
        transform: translateY(8px)
    }
}

@media(max-width:1199.98px) {
    .navbar-collapse {
        margin-top: 12px;
        padding: 15px;
        background: #090f1e;
        border: 1px solid var(--line);
        border-radius: 8px
    }

    .navbar .nav-link {
        padding: .55rem !important
    }
}

@media(max-width:991.98px) {
    .section-pad {
        padding: 80px 0
    }

    .hero {
        min-height: 740px
    }

    .hero-overlay {
        background: linear-gradient(90deg, rgba(5, 8, 18, .97), rgba(5, 8, 18, .7)), linear-gradient(0deg, #050812, transparent 45%)
    }

    .tournament-card {
        padding: 45px
    }

    .snacks-inner {
        align-items: flex-start;
        flex-direction: column;
        gap: 30px
    }

    .contact-details {
        padding: 40px
    }

    .map-placeholder {
        min-height: 350px
    }

    .gallery-grid {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 320px 220px 220px
    }

    .gallery-lg {
        grid-column: 1/3;
        grid-row: auto
    }

    .gallery-wide {
        grid-column: 1/3
    }

    .booking-summary {
        border-top: 1px solid var(--line)
    }
}

@media(max-width:767.98px) {
    .section-pad {
        padding: 68px 0
    }

    .hero {
        min-height: 820px
    }

    .hero h1 {
        font-size: 3.85rem
    }

    .hero-tagline {
        font-size: .88rem;
        letter-spacing: .18em
    }

    .feature-card {
        padding: 20px
    }

    .feature-card>i {
        margin-bottom: 24px
    }

    .feature-card h3 {
        font-size: .85rem
    }

    .feature-card p {
        font-size: .74rem
    }

    .booking-main,
    .booking-summary {
        padding: 24px
    }

    .booking-toolbar {
        align-items: stretch;
        flex-direction: column
    }

    .setup-tabs {
        width: 100%
    }

    .setup-tabs button {
        flex: 1
    }

    .slot-grid {
        grid-template-columns: repeat(3, 1fr)
    }

    .tournament-card {
        padding: 30px 22px
    }

    .tournament-stats {
        grid-template-columns: 1fr
    }

    .snacks-inner {
        padding: 30px 24px
    }

    .snack-list span {
        flex: 1 1 45%
    }

    .gallery-grid {
        display: flex;
        flex-direction: column
    }

    .gallery-item {
        height: 230px
    }

    .gallery-lg {
        height: 330px
    }

    .contact-details {
        padding: 32px 24px
    }

    .floating-whatsapp span {
        display: none
    }

    .floating-whatsapp {
        width: 50px;
        height: 50px;
        justify-content: center;
        padding: 0
    }

    .games-scroller {
        grid-auto-columns: 245px
    }
}

@media(max-width:420px) {
    .hero h1 {
        font-size: 3.35rem
    }

    .hero .btn-lg {
        width: 100%
    }

    .hero-badges span {
        font-size: .65rem
    }

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

    .booking-legend {
        gap: 10px;
        font-size: .65rem
    }

    .feature-card {
        padding: 17px
    }

    .feature-card>i {
        width: 44px;
        height: 44px
    }

    .contact-details .btn {
        width: 100%
    }
}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior: auto
    }

    .reveal {
        opacity: 1;
        transform: none;
        transition: none
    }

    .status-pill span,
    .scroll-cue {
        animation: none
    }
}

/* WordPress integration */
.admin-bar .navbar{top:32px}.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.screen-reader-text:focus{position:fixed!important;z-index:100000;top:8px;left:8px;width:auto;height:auto;padding:12px 18px;clip:auto;background:#fff;color:#050812;border-radius:4px}.brand-logo,.brand-logo img{display:block;max-width:190px;max-height:52px;width:auto;height:auto}.game-art-image img,.rental-cover.game-art-image img{width:100%;height:100%;object-fit:cover}.footer-menu{display:flex;flex-wrap:wrap;gap:18px;padding:0;margin:0;list-style:none}.footer-menu a{color:#9ca8bc;font-size:.75rem}.footer-menu a:hover{color:var(--cyan)}.content-area{min-height:70vh;padding-top:160px}.narrow-content{max-width:900px}.content-header{margin-bottom:40px}.content-header h1{font-size:clamp(2.5rem,6vw,4.8rem);font-family:var(--display);font-weight:700}.content-card{padding:28px;margin-bottom:20px;border:1px solid var(--line);border-radius:10px;background:var(--card)}.content-card h2{font-size:1.25rem}.content-card a{color:var(--text)}.content-card a:hover{color:var(--cyan)}.content-card img,.content-featured img{max-width:100%;height:auto;border-radius:8px}.content-featured{margin-bottom:36px}.entry-content,.entry-summary,.archive-description{color:#bdc7d9;line-height:1.8}.entry-content a{color:var(--cyan);text-decoration:underline}.entry-content h2,.entry-content h3{margin-top:1.5em}.nav-links{display:flex;justify-content:center;gap:8px;margin-top:32px}.page-numbers{padding:.55rem .8rem;color:#dce5f5;border:1px solid var(--line);border-radius:4px}.page-numbers.current,.page-numbers:hover{color:#07111b;background:var(--cyan)}.nextgen-core-booking{min-height:180px}.navbar .sub-menu{position:absolute;min-width:210px;padding:10px;margin:0;list-style:none;background:#090f1e;border:1px solid var(--line);border-radius:7px;opacity:0;visibility:hidden;transform:translateY(8px);transition:.2s}.navbar .menu-item-has-children{position:relative}.navbar .menu-item-has-children:hover>.sub-menu,.navbar .menu-item-has-children:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}.navbar .sub-menu a{display:block;padding:.55rem;color:#b4bfd2;font-size:.76rem}.navbar .sub-menu a:hover{color:var(--cyan)}
@media(max-width:782px){.admin-bar .navbar{top:46px}}
@media(max-width:600px){.admin-bar .navbar.scrolled{top:0}}
@media(max-width:1199.98px){.navbar .sub-menu{position:static;display:block;padding-left:15px;border:0;opacity:1;visibility:visible;transform:none;background:transparent}}

/* Elementor full-width content retains the NextGen header and foundation. */
.elementor-homepage{min-height:70vh;overflow:hidden}.elementor-homepage>.elementor{width:100%}.elementor-editor-active .reveal{opacity:1;transform:none}.elementor-page .content-area{padding-top:100px}
