﻿/* ==========================================================================
   MK Pub Entertainment - Shared Stylesheet
   Website by Sitebound - sitebound.co.uk
   Base design system extracted from the original single-page site,
   extended with multi-page + events/gallery/admin components.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&family=Fredoka+One&display=swap');

    /* Self-hosted Ravie â€” loads on all devices including mobile */
    @font-face {
      font-family: 'Ravie';
      src: url('/fonts/ravie.woff2') format('woff2'),
           url('/fonts/ravie.ttf')   format('truetype');
      font-weight: normal;
      font-style: normal;
      font-display: swap;
    }

/* â”€â”€ CUSTOM PROPERTIES â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
    :root {
      --purple:      #1a0533;
      --magenta:     #e91e8c;
      --magenta-dim: #c71677;
      --gold:        #d4890f;
      --gold-dim:    #b8770d;
      --dark:        #0d0d0d;
      --card:        #ffffff;
      --card-2:      #f5f4f9;
      --off-white:   #f0f0f0;
      --text-body:   #1a1a2e;
      --text-muted:  rgba(26,26,46,0.58);
      --glow-m:      rgba(233,30,140,0.25);
      --glow-g:      rgba(212,137,15,0.25);
      --nav-h:       68px;
    }

    /* â”€â”€ RESET â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    html { scroll-behavior: smooth; }

    body {
      font-family: 'DM Sans', sans-serif;
      background: #ffffff;
      color: var(--text-body);
      overflow-x: hidden;
      line-height: 1.65;
    }

    img { display: block; max-width: 100%; height: auto; }

    /* â”€â”€ SKIP LINK â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
    .skip-link {
      position: absolute;
      top: -120%;
      left: 1rem;
      padding: 0.5rem 1.25rem;
      background: var(--magenta);
      color: #fff;
      font-weight: 600;
      font-size: 0.9rem;
      border-radius: 0 0 6px 6px;
      z-index: 9999;
      transition: top 0.2s;
      text-decoration: none;
    }
    .skip-link:focus { top: 0; }

    /* â”€â”€ NAVIGATION â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
    .nav {
      position: fixed;
      inset: 0 0 auto 0;
      height: var(--nav-h);
      z-index: 900;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 0 2.5rem;
      background: rgba(255,255,255,0.97);
      backdrop-filter: blur(14px);
      -webkit-backdrop-filter: blur(14px);
      border-bottom: 1px solid rgba(0,0,0,0.08);
      transition: background 0.3s;
    }

    .nav-logo {
      display: flex;
      align-items: center;
      text-decoration: none;
      flex-shrink: 0;
    }
    .nav-logo svg { width: 100%; height: 100%; display: block; }
    .nav-logo-inner { width: 223px; height: 55px; display: block; }

    .nav-links {
      display: flex;
      align-items: center;
      gap: 2.5rem;
      list-style: none;
    }
    .nav-links a {
      color: rgba(26,26,46,0.7);
      text-decoration: none;
      font-size: 0.82rem;
      font-weight: 600;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      transition: color 0.2s;
      position: relative;
    }
    .nav-links a::after {
      content: '';
      position: absolute;
      bottom: -4px; left: 0;
      width: 0; height: 2px;
      background: var(--magenta);
      transition: width 0.25s;
      border-radius: 2px;
    }
    .nav-links a:hover { color: var(--text-body); }
    .nav-links a:hover::after { width: 100%; }

    .nav-links .cta {
      background: var(--magenta);
      color: #fff !important;
      padding: 0.5rem 1.4rem;
      border-radius: 4px;
      transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
      box-shadow: 0 3px 16px var(--glow-m);
    }
    .nav-links .cta::after { display: none; }
    .nav-links .cta:hover {
      background: var(--magenta-dim);
      transform: translateY(-1px);
      box-shadow: 0 5px 22px var(--glow-m);
    }

    /* Hamburger */
    .hamburger {
      display: none;
      flex-direction: column;
      gap: 5px;
      cursor: pointer;
      background: none;
      border: none;
      padding: 6px;
      z-index: 1000;
    }
    .hamburger span {
      display: block;
      width: 24px; height: 2px;
      background: var(--text-body);
      border-radius: 2px;
      transition: transform 0.3s, opacity 0.3s;
    }
    .hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .hamburger.open span:nth-child(2) { opacity: 0; }
    .hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

    /* â”€â”€ HERO â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
    .hero {
      position: relative;
      height: 100dvh;
      min-height: 620px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      overflow: hidden;
      padding: 0 1.5rem;
      background: radial-gradient(ellipse 90% 80% at 50% 35%, #f0e8ff 0%, #f9f5ff 55%, #ffffff 100%);
    }

    /* subtle noise overlay */
    .hero::after {
      content: '';
      position: absolute;
      inset: 0;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23noise)' opacity='0.035'/%3E%3C/svg%3E");
      pointer-events: none;
      z-index: 1;
    }

    #particle-canvas {
      position: absolute;
      inset: 0;
      width: 100%; height: 100%;
      pointer-events: none;
      z-index: 0;
    }

    .hero-content {
      position: relative;
      z-index: 2;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 1.5rem;
      margin-top: -4rem; /* sit above visual centre; overridden on mobile below */
    }

    .hero-logo {
      width: clamp(260px, 45vw, 420px);
      aspect-ratio: 1270 / 313;
    }
    .hero-logo svg { width: 100%; height: 100%; display: block; }

    .hero-brand-name {
      font-family: 'Ravie', 'Fredoka One', cursive;
      font-size: clamp(2rem, 6vw, 3.8rem);
      letter-spacing: 0.05em;
      color: var(--text-body);
      opacity: 0.92;
      margin-top: 0.25rem;
      margin-bottom: 0.5rem;
    }

    .hero-services {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 0.5rem 1rem;
      margin-bottom: 1.25rem;
    }
    .hero-services span {
      font-family: 'Ravie', 'Fredoka One', cursive;
      font-size: clamp(0.85rem, 2vw, 1rem);
      font-weight: 400;
      letter-spacing: 0.04em;
      text-transform: none;
      color: var(--gold);
      border: 1px solid rgba(245,166,35,0.4);
      border-radius: 2rem;
      padding: 0.3rem 0.9rem;
    }

    .hero h1 {
      font-family: 'Bebas Neue', cursive;
      font-size: clamp(3.5rem, 10vw, 7rem);
      letter-spacing: 0.06em;
      color: var(--text-body);
      line-height: 1;
    }

    .hero-sub {
      font-size: clamp(0.95rem, 2.2vw, 1.2rem);
      color: rgba(26,26,46,0.65);
      max-width: 520px;
      margin-top: -0.4rem;
    }

    .hero-ctas {
      display: flex;
      gap: 1rem;
      flex-wrap: wrap;
      justify-content: center;
      margin-top: 0.5rem;
    }

    /* â”€â”€ BUTTONS â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
    .btn-primary {
      display: inline-block;
      padding: 0.9rem 2.5rem;
      background: var(--magenta);
      color: #fff;
      font-family: 'DM Sans', sans-serif;
      font-weight: 700;
      font-size: 0.9rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      text-decoration: none;
      border-radius: 4px;
      border: none;
      cursor: pointer;
      box-shadow: 0 4px 22px var(--glow-m);
      transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
    }
    .btn-primary:hover {
      background: var(--magenta-dim);
      transform: translateY(-2px) scale(1.03);
      box-shadow: 0 8px 32px rgba(233,30,140,0.55);
    }

    .btn-outline {
      display: inline-block;
      padding: 0.9rem 2.5rem;
      background: transparent;
      color: var(--gold);
      font-family: 'DM Sans', sans-serif;
      font-weight: 700;
      font-size: 0.9rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      text-decoration: none;
      border-radius: 4px;
      border: 2px solid var(--gold);
      box-shadow: 0 4px 22px var(--glow-g);
      transition: background 0.2s, color 0.2s, transform 0.2s, box-shadow 0.2s;
    }
    .btn-outline:hover {
      background: var(--gold);
      color: var(--dark);
      transform: translateY(-2px) scale(1.03);
      box-shadow: 0 8px 32px rgba(245,166,35,0.5);
    }


    /* â”€â”€ SECTION COMMONS â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
    section { padding: 6rem 2rem; }

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

    .eyebrow {
      display: inline-block;
      font-size: 0.72rem;
      font-weight: 700;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--magenta);
      margin-bottom: 0.8rem;
    }

    .section-title {
      font-family: 'Bebas Neue', cursive;
      font-size: clamp(2.6rem, 6vw, 5rem);
      letter-spacing: 0.05em;
      line-height: 1;
      color: var(--text-body);
      margin-bottom: 1.25rem;
    }
    .section-title .m  { color: var(--magenta); }
    .section-title .g  { color: var(--gold); }

    .section-center { text-align: center; }

    /* horizontal neon rule */
    .neon-rule {
      width: 60px; height: 3px;
      background: linear-gradient(to right, var(--magenta), var(--gold));
      border-radius: 2px;
      margin: 0 auto 0;
    }
    .neon-rule.left { margin-left: 0; }

    /* â”€â”€ WHAT WE DO â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
    .services { background: #f7f6fb; }

    .services-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
      gap: 1.5rem;
      margin-top: 3.5rem;
    }

    .service-card {
      background: #ffffff;
      border-radius: 10px;
      padding: 2.75rem 2.25rem;
      position: relative;
      overflow: hidden;
      border-top: 3px solid var(--magenta);
      box-shadow: 0 2px 16px rgba(26,26,46,0.06);
      transition: transform 0.3s, box-shadow 0.3s;
    }
    .service-card.gold-border { border-top-color: var(--gold); }

    .service-card::before {
      content: '';
      position: absolute;
      inset: 0;
      background: radial-gradient(ellipse 100% 60% at 50% 0%, rgba(233,30,140,0.08) 0%, transparent 70%);
      opacity: 0;
      transition: opacity 0.35s;
      pointer-events: none;
    }
    .service-card.gold-border::before {
      background: radial-gradient(ellipse 100% 60% at 50% 0%, rgba(245,166,35,0.1) 0%, transparent 70%);
    }
    .service-card:hover {
      transform: translateY(-8px);
      box-shadow: 0 24px 60px rgba(233,30,140,0.18), 0 4px 24px rgba(26,26,46,0.08);
    }
    .service-card.gold-border:hover {
      box-shadow: 0 24px 60px rgba(212,137,15,0.18), 0 4px 24px rgba(26,26,46,0.08);
    }
    .service-card:hover::before { opacity: 1; }

    .service-icon {
      font-size: 3.25rem;
      margin-bottom: 1.5rem;
      display: block;
      line-height: 1;
    }

    .service-card h3 {
      font-family: 'Ravie', 'Fredoka One', cursive;
      letter-spacing: 0.03em;
      font-size: 2rem;
      letter-spacing: 0.06em;
      color: var(--text-body);
      margin-bottom: 0.85rem;
    }

    .service-card p {
      font-size: 0.95rem;
      color: var(--text-muted);
      line-height: 1.75;
    }

    /* â”€â”€ VIDEO SHOWCASE â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
    .videos {
      background: #eeeaf8;
      position: relative;
      overflow: hidden;
    }
    .videos::before {
      content: '';
      position: absolute;
      top: 0; left: 10%; right: 10%;
      height: 1px;
      background: linear-gradient(to right, transparent, rgba(233,30,140,0.4), transparent);
    }
    .videos::after {
      content: '';
      position: absolute;
      bottom: 0; left: 10%; right: 10%;
      height: 1px;
      background: linear-gradient(to right, transparent, rgba(212,137,15,0.3), transparent);
    }

    .video-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
      gap: 1.5rem;
      margin-top: 3.5rem;
    }

    .video-item { display: flex; flex-direction: column; gap: 0.85rem; }

    /* 16:9 ratio via padding-bottom trick */
    .video-wrapper {
      position: relative;
      padding-bottom: 56.25%;
      height: 0;
      overflow: hidden;
      border-radius: 8px;
      border: 1px solid rgba(233,30,140,0.25);
      background: #ddd8ee;
      box-shadow: 0 8px 32px rgba(26,26,46,0.12);
      transition: box-shadow 0.3s, border-color 0.3s;
    }
    .video-wrapper:hover {
      border-color: rgba(233,30,140,0.55);
      box-shadow: 0 12px 44px var(--glow-m);
    }
    .video-wrapper iframe,
    .video-wrapper video {
      position: absolute;
      top: 0; left: 0;
      width: 100%; height: 100%;
      border: none;
      background: #0d0d0d;
    }

    /* Coming-soon slot â€” same wrapper, styled interior */
    .video-coming-soon {
      position: absolute;
      inset: 0;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 0.9rem;
      background: linear-gradient(145deg, #1a0533 0%, #2a0d45 100%);
    }
    .video-coming-soon .vcs-icon {
      width: 52px;
      height: 52px;
      border-radius: 50%;
      border: 2px solid rgba(233,30,140,0.5);
      display: flex;
      align-items: center;
      justify-content: center;
      color: rgba(233,30,140,0.7);
    }
    .video-coming-soon .vcs-icon svg { width: 24px; height: 24px; }
    .video-coming-soon .vcs-label {
      font-family: var(--font-body);
      font-size: 0.82rem;
      font-weight: 600;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: rgba(240,230,255,0.55);
    }

    .video-caption {
      text-align: center;
      font-size: 0.88rem;
      color: rgba(26,26,46,0.55);
      font-weight: 500;
    }

    /* â”€â”€ GALLERY â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
    .gallery { background: #f4f3f9; overflow: hidden; padding-bottom: 5rem; }

    .gallery-track-wrap {
      position: relative;
      overflow: hidden;
      margin-top: 3rem;
    }
    /* fade edges */
    .gallery-track-wrap::before,
    .gallery-track-wrap::after {
      content: '';
      position: absolute;
      top: 0; bottom: 0;
      width: 100px;
      z-index: 2;
      pointer-events: none;
    }
    .gallery-track-wrap::before { left: 0;  background: linear-gradient(to right, #f4f3f9, transparent); }
    .gallery-track-wrap::after  { right: 0; background: linear-gradient(to left,  #f4f3f9, transparent); }

    .gallery-track {
      display: flex;
      gap: 1.25rem;
      width: max-content;
      animation: marquee 60s linear infinite;
    }
    .gallery-track:hover { animation-play-state: paused; }

    @keyframes marquee {
      from { transform: translateX(0); }
      to   { transform: translateX(calc(-19 * 310px - 18 * 1.25rem)); }
    }

    .gallery-item {
      flex: 0 0 310px;
      height: 210px;
      border-radius: 10px;
      position: relative;
      overflow: hidden;
      cursor: pointer;
    }
    .gallery-item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.35s ease; }
    .gallery-item:hover img { transform: scale(1.06); }

    /* â”€â”€ LIGHTBOX â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
    .lightbox {
      display: none;
      position: fixed;
      inset: 0;
      z-index: 9999;
      background: rgba(10,4,20,0.92);
      backdrop-filter: blur(6px);
      -webkit-backdrop-filter: blur(6px);
      align-items: center;
      justify-content: center;
      padding: 1.5rem;
    }
    .lightbox.open { display: flex; }
    .lightbox-img {
      max-width: min(90vw, 1100px);
      max-height: 85vh;
      border-radius: 10px;
      box-shadow: 0 24px 80px rgba(0,0,0,0.7);
      object-fit: contain;
      animation: lb-in 0.25s ease;
    }
    @keyframes lb-in {
      from { opacity: 0; transform: scale(0.94); }
      to   { opacity: 1; transform: scale(1); }
    }
    .lightbox-close {
      position: fixed;
      top: 1.25rem;
      right: 1.5rem;
      width: 44px;
      height: 44px;
      border-radius: 50%;
      background: rgba(255,255,255,0.12);
      border: 1px solid rgba(255,255,255,0.25);
      color: #fff;
      font-size: 1.4rem;
      line-height: 1;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: background 0.2s;
    }
    .lightbox-close:hover { background: rgba(233,30,140,0.5); }
    .lightbox-nav {
      position: fixed;
      top: 50%;
      transform: translateY(-50%);
      width: 48px;
      height: 48px;
      border-radius: 50%;
      background: rgba(255,255,255,0.12);
      border: 1px solid rgba(255,255,255,0.25);
      color: #fff;
      font-size: 1.5rem;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: background 0.2s;
      user-select: none;
    }
    .lightbox-nav:hover { background: rgba(233,30,140,0.5); }
    .lightbox-prev { left: 1.25rem; }
    .lightbox-next { right: 1.25rem; }
    .lightbox-counter {
      position: fixed;
      bottom: 1.25rem;
      left: 50%;
      transform: translateX(-50%);
      color: rgba(255,255,255,0.6);
      font-family: var(--font-body);
      font-size: 0.85rem;
      letter-spacing: 0.08em;
    }

    /*
      TODO: Replace these gradient placeholders with real images:
        <img src="/images/gallery/quiz-night-the-crown.webp"
             alt="Pub quiz night at The Crown"
             width="310" height="210" loading="lazy">
      Use WebP at 310Ã—210px, under 80KB each.
      Duplicate the set below for the seamless loop.
    */
    .gallery-caption {
      position: absolute;
      bottom: 0; left: 0; right: 0;
      background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, transparent 100%);
      padding: 1.5rem 1rem 0.85rem;
      font-size: 0.83rem;
      font-weight: 600;
      color: #fff;
      letter-spacing: 0.03em;
    }

    /* â”€â”€ TESTIMONIALS â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
    .testimonials {
      background: #ffffff;
      position: relative;
      overflow: hidden;
    }
    .testimonials::before {
      content: '';
      position: absolute;
      top: 0; left: 10%; right: 10%;
      height: 1px;
      background: linear-gradient(to right, transparent, rgba(212,137,15,0.35), transparent);
    }

    .testimonials-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
      gap: 1.5rem;
      margin-top: 3.5rem;
    }

    .tcard {
      background: #f7f6fb;
      border-radius: 10px;
      padding: 2.25rem 1.75rem 2rem;
      border-left: 4px solid var(--gold);
      position: relative;
      transition: transform 0.3s, box-shadow 0.3s;
    }
    .tcard:hover {
      transform: translateY(-5px);
      box-shadow: 0 20px 50px rgba(212,137,15,0.12), 0 4px 20px rgba(26,26,46,0.06);
    }

    .tcard-mark {
      font-family: 'Bebas Neue', cursive;
      font-size: 6rem;
      line-height: 0.75;
      color: var(--gold);
      opacity: 0.18;
      position: absolute;
      top: 1.5rem; left: 1.5rem;
      pointer-events: none;
      user-select: none;
    }

    .tcard-body {
      font-size: 0.95rem;
      color: rgba(26,26,46,0.7);
      line-height: 1.8;
      font-style: italic;
      padding-top: 2.5rem;
      margin-bottom: 1.5rem;
    }

    .tcard-author {
      font-weight: 700;
      font-size: 0.9rem;
      color: var(--gold);
    }
    .tcard-venue {
      font-size: 0.8rem;
      color: rgba(26,26,46,0.4);
      margin-top: 0.2rem;
    }

    /* â”€â”€ BOOKING â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
    .booking {
      background: #f0ecff;
      position: relative;
      overflow: hidden;
    }
    .booking::before {
      content: '';
      position: absolute;
      top: 0; left: 10%; right: 10%;
      height: 1px;
      background: linear-gradient(to right, transparent, rgba(233,30,140,0.3), transparent);
    }

    .booking-grid {
      display: grid;
      grid-template-columns: 1fr 1.1fr;
      gap: 5rem;
      align-items: start;
    }

    .booking-info .section-title { margin-bottom: 0.75rem; }
    .booking-info p {
      color: rgba(26,26,46,0.65);
      font-size: 0.97rem;
      line-height: 1.8;
      margin-bottom: 2.25rem;
    }

    .contact-row {
      display: flex;
      align-items: center;
      gap: 1rem;
      margin-bottom: 1.1rem;
    }
    .contact-icon {
      width: 44px; height: 44px;
      background: rgba(233,30,140,0.12);
      border: 1px solid rgba(233,30,140,0.22);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.1rem;
      flex-shrink: 0;
    }
    .contact-row a {
      color: var(--text-body);
      text-decoration: none;
      font-weight: 500;
      font-size: 0.95rem;
      transition: color 0.2s;
    }
    .contact-row a:hover { color: var(--magenta); }

    /* Form */
    .booking-form {
      display: flex;
      flex-direction: column;
      gap: 1.1rem;
      background: rgba(255,255,255,0.85);
      border: 1px solid rgba(233,30,140,0.15);
      border-radius: 12px;
      padding: 2.5rem 2rem;
      box-shadow: 0 4px 24px rgba(26,26,46,0.07);
    }

    .form-row-2 {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 1rem;
    }

    .fg { display: flex; flex-direction: column; gap: 0.45rem; }

    .fg label {
      font-size: 0.78rem;
      font-weight: 700;
      letter-spacing: 0.07em;
      text-transform: uppercase;
      color: rgba(26,26,46,0.55);
    }

    .fg input,
    .fg select,
    .fg textarea {
      background: #ffffff;
      border: 1px solid rgba(26,26,46,0.15);
      border-radius: 6px;
      padding: 0.78rem 1rem;
      color: var(--text-body);
      font-family: 'DM Sans', sans-serif;
      font-size: 0.95rem;
      outline: none;
      width: 100%;
      transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
    }
    .fg input::placeholder,
    .fg textarea::placeholder { color: rgba(26,26,46,0.32); }

    .fg input:focus,
    .fg select:focus,
    .fg textarea:focus {
      border-color: var(--magenta);
      background: rgba(233,30,140,0.04);
      box-shadow: 0 0 0 3px rgba(233,30,140,0.1);
    }

    .fg select {
      appearance: none;
      cursor: pointer;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpath fill='%231a1a2e' fill-opacity='0.5' d='M6 7L0 0h12z'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 1rem center;
      padding-right: 2.5rem;
    }
    .fg select option { background: #ffffff; color: var(--text-body); }

    .fg textarea { resize: vertical; min-height: 120px; }

    .btn-submit {
      padding: 0.95rem 2rem;
      margin-top: 0.25rem;
    }

    .form-note {
      font-size: 0.76rem;
      color: rgba(26,26,46,0.38);
      text-align: center;
    }

    /* â”€â”€ FOOTER â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
    footer {
      background: #120828;
      padding: 4.5rem 2rem 2.25rem;
      border-top: 1px solid rgba(233,30,140,0.12);
    }

    .footer-inner { max-width: 1200px; margin: 0 auto; }

    .footer-top {
      display: grid;
      grid-template-columns: 1.4fr 1fr 1fr;
      gap: 3rem;
      margin-bottom: 3rem;
    }

    .footer-logo { display: inline-block; }
    .footer-logo-inner {
      width: 162px;
      aspect-ratio: 1270 / 313;
      opacity: 0.85;
      display: block;
    }
    .footer-logo svg { width: 100%; height: 100%; display: block; }

    .footer-tagline {
      font-size: 0.88rem;
      color: rgba(240,240,240,0.35);
      font-style: italic;
      margin-top: 0.6rem;
      margin-bottom: 1.2rem;
    }

    .footer-socials {
      display: flex;
      gap: 0.75rem;
    }
    /* TODO: Replace href="#" with actual social media profile URLs */
    .social-btn {
      width: 40px; height: 40px;
      border-radius: 50%;
      background: rgba(255,255,255,0.05);
      border: 1px solid rgba(255,255,255,0.1);
      display: flex;
      align-items: center;
      justify-content: center;
      color: rgba(240,240,240,0.5);
      text-decoration: none;
      transition: background 0.2s, color 0.2s, border-color 0.2s, transform 0.2s;
    }
    .social-btn:hover {
      background: var(--magenta);
      color: #fff;
      border-color: var(--magenta);
      transform: translateY(-2px);
    }
    .social-btn svg { width: 17px; height: 17px; }

    .footer-col-title {
      font-size: 0.7rem;
      font-weight: 700;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--magenta);
      margin-bottom: 1rem;
    }

    .footer-nav-list { list-style: none; display: flex; flex-direction: column; gap: 0.55rem; }
    .footer-nav-list a {
      color: rgba(240,240,240,0.45);
      text-decoration: none;
      font-size: 0.9rem;
      transition: color 0.2s;
    }
    .footer-nav-list a:hover { color: var(--off-white); }

    .footer-addr { font-style: normal; display: flex; flex-direction: column; gap: 0.5rem; }
    .footer-addr a {
      color: rgba(240,240,240,0.45);
      text-decoration: none;
      font-size: 0.9rem;
      transition: color 0.2s;
    }
    .footer-addr a:hover { color: var(--off-white); }

    .footer-bottom {
      border-top: 1px solid rgba(255,255,255,0.06);
      padding-top: 1.75rem;
      text-align: center;
    }
    .footer-copy {
      font-size: 0.78rem;
      color: rgba(240,240,240,0.2);
    }

    /* â”€â”€ SCROLL REVEAL â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
    .reveal {
      opacity: 0;
      transform: translateY(28px);
      transition: opacity 0.65s ease, transform 0.65s ease;
    }
    .reveal.visible { opacity: 1; transform: translateY(0); }
    .delay-1 { transition-delay: 0.12s; }
    .delay-2 { transition-delay: 0.22s; }
    .delay-3 { transition-delay: 0.34s; }

    /* â”€â”€ RESPONSIVE â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
    @media (max-width: 1024px) {
      .services-grid     { grid-template-columns: repeat(2, 1fr); }
      .video-grid        { grid-template-columns: 1fr 1fr; }
      .testimonials-grid { grid-template-columns: repeat(2, 1fr); }
      .booking-grid      { grid-template-columns: 1fr; gap: 3rem; }
      .footer-top        { grid-template-columns: 1fr 1fr; }
    }

    @media (max-width: 768px) {
      :root { --nav-h: 60px; }
      section { padding: 4rem 1.25rem; }

      .hamburger { display: flex; }
      .nav-logo-inner { width: 120px; height: 30px; }

      /* Remove backdrop-filter so position:fixed children aren't trapped
         inside the nav's stacking context (they'd only show 60px tall) */
      .nav {
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        background: rgba(255,255,255,0.99);
        padding: 0 1rem 0 0.75rem;
      }

      .nav-links {
        display: none;
        position: fixed;
        top: var(--nav-h);
        left: 0; right: 0; bottom: 0;
        flex-direction: column;
        gap: 1.75rem;
        background: rgba(255, 255, 255, 0.99);
        padding: 3rem 2rem;
        overflow-y: auto;
        z-index: 899;
        border-top: 1px solid rgba(0,0,0,0.06);
      }
      .nav-links.open { display: flex; }
      .nav-links a { font-size: 1.2rem; color: rgba(26,26,46,0.8); }
      .nav-links .cta {
        align-self: flex-start;
        padding: 0.75rem 2rem;
      }

      .services-grid     { grid-template-columns: 1fr; }
      .video-grid        { grid-template-columns: 1fr; }
      .testimonials-grid { grid-template-columns: 1fr; }
      .form-row-2        { grid-template-columns: 1fr; }
      .footer-top        { grid-template-columns: 1fr; gap: 2rem; }

      .hero-ctas { flex-direction: column; align-items: center; }
      .hero-ctas .btn-primary,
      .hero-ctas .btn-outline { width: 260px; text-align: center; }

      /* Reset desktop upward shift â€” centre naturally on mobile */
      .hero-content { margin-top: 0; }
    }

    @media (max-width: 480px) {
      .booking-form { padding: 1.75rem 1.25rem; }
    }


/* ==========================================================================
   MK PUB ENTERTAINMENT — V2 EXTENSIONS (events, subpages, gallery, admin)
   ========================================================================== */

/* ── SUBPAGE HERO (events / gallery / contact) ─────────────────────────── */
.subpage-hero {
  position: relative;
  padding: calc(var(--nav-h) + 5rem) 1.5rem 4rem;
  text-align: center;
  overflow: hidden;
  background: radial-gradient(ellipse 90% 90% at 50% 0%, #2a0d45 0%, #1a0533 55%, #120828 100%);
  color: #fff;
}
.subpage-hero::after {
  content: '';
  position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  pointer-events: none;
}
.subpage-hero .container { position: relative; z-index: 1; }
.subpage-hero .eyebrow { color: var(--magenta); }
.subpage-hero h1 {
  font-family: 'Bebas Neue', cursive;
  font-size: clamp(2.8rem, 8vw, 5.5rem);
  letter-spacing: 0.05em;
  line-height: 1;
  margin-bottom: 1rem;
}
.subpage-hero h1 .m { color: var(--magenta); }
.subpage-hero h1 .g { color: var(--gold); }
.subpage-hero p {
  max-width: 620px;
  margin: 0 auto;
  color: rgba(240,240,240,0.72);
  font-size: clamp(0.98rem, 2vw, 1.15rem);
}
.subpage-hero .neon-rule { margin-top: 1.75rem; }

/* ── EVENTS ────────────────────────────────────────────────────────────── */
.events { background: #ffffff; position: relative; overflow: hidden; }
.events::before {
  content: '';
  position: absolute; top: 0; left: 10%; right: 10%;
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(233,30,140,0.35), transparent);
}

.events-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 1.5rem;
  margin-top: 3.5rem;
}

.event-card {
  display: flex;
  flex-direction: column;
  background: #ffffff;
  border: 1px solid rgba(26,26,46,0.09);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 16px rgba(26,26,46,0.06);
  transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s;
}
.event-card:hover {
  transform: translateY(-6px);
  border-color: rgba(233,30,140,0.35);
  box-shadow: 0 24px 55px rgba(233,30,140,0.16), 0 4px 22px rgba(26,26,46,0.08);
}

.event-card-media {
  position: relative;
  aspect-ratio: 16 / 9;
  background: linear-gradient(145deg, #1a0533 0%, #2a0d45 100%);
  overflow: hidden;
}
.event-card-media img { width: 100%; height: 100%; object-fit: cover; }
.event-card-media .event-type-chip {
  position: absolute; top: 0.9rem; left: 0.9rem;
  background: rgba(233,30,140,0.95);
  color: #fff;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.32rem 0.75rem;
  border-radius: 2rem;
}

/* Date badge (used when no image, overlaps media otherwise) */
.event-date-badge {
  position: absolute; top: 0.9rem; right: 0.9rem;
  background: rgba(255,255,255,0.96);
  border-radius: 8px;
  padding: 0.45rem 0.7rem;
  text-align: center;
  line-height: 1;
  box-shadow: 0 4px 14px rgba(0,0,0,0.25);
}
.event-date-badge .d { font-family: 'Bebas Neue', cursive; font-size: 1.7rem; color: var(--magenta); display: block; }
.event-date-badge .mo { font-size: 0.62rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-body); display: block; }

.event-card-body { padding: 1.6rem 1.5rem 1.75rem; display: flex; flex-direction: column; gap: 0.6rem; flex: 1; }
.event-card-body h3 {
  font-family: 'Ravie', 'Fredoka One', cursive;
  font-size: 1.35rem;
  letter-spacing: 0.03em;
  color: var(--text-body);
  line-height: 1.25;
}
.event-meta { display: flex; flex-direction: column; gap: 0.4rem; margin: 0.2rem 0 0.4rem; }
.event-meta .row { display: flex; align-items: center; gap: 0.55rem; font-size: 0.88rem; color: var(--text-muted); }
.event-meta .row svg { width: 16px; height: 16px; flex-shrink: 0; color: var(--magenta); }
.event-card-body p.event-desc { font-size: 0.92rem; color: var(--text-muted); line-height: 1.7; }
.event-card-footer { margin-top: auto; padding-top: 1.1rem; }

.event-when-strip {
  display: inline-flex; align-items: baseline; gap: 0.5rem;
  background: rgba(233,30,140,0.08);
  border: 1px solid rgba(233,30,140,0.18);
  border-radius: 8px;
  padding: 0.5rem 0.85rem;
  align-self: flex-start;
}
.event-when-strip .full-date { font-weight: 700; color: var(--magenta); font-size: 0.9rem; }
.event-when-strip .time { color: var(--text-muted); font-size: 0.85rem; }

/* section CTA row */
.section-cta { text-align: center; margin-top: 3rem; }

/* ── LOADING / EMPTY STATES ────────────────────────────────────────────── */
.state-msg {
  grid-column: 1 / -1;
  text-align: center;
  padding: 3rem 1rem;
  color: var(--text-muted);
  font-size: 0.98rem;
}
.skeleton {
  grid-column: auto;
  border-radius: 12px;
  min-height: 320px;
  background: linear-gradient(100deg, #f0eef7 30%, #f8f7fc 50%, #f0eef7 70%);
  background-size: 220% 100%;
  animation: shimmer 1.3s ease-in-out infinite;
}
@keyframes shimmer { from { background-position: 180% 0; } to { background-position: -20% 0; } }

/* ── FULL GALLERY PAGE GRID ────────────────────────────────────────────── */
.gallery-page { background: #f4f3f9; }
.gallery-grid-page {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1.1rem;
  margin-top: 3.25rem;
}
.gallery-grid-page .gallery-item {
  flex: none;
  width: 100%;
  height: 240px;
  border-radius: 10px;
  box-shadow: 0 2px 14px rgba(26,26,46,0.08);
}

/* ── STANDALONE CONTACT PAGE ───────────────────────────────────────────── */
.contact-page { background: #f0ecff; }
.contact-page .booking-grid { margin-top: 1rem; }

/* ── ADMIN PANEL ───────────────────────────────────────────────────────── */
.admin-body { background: #f4f3f9; min-height: 100vh; }
.admin-shell { max-width: 1000px; margin: 0 auto; padding: 2rem 1.25rem 5rem; }
.admin-header {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem;
  padding: 1.25rem 0 1.75rem; border-bottom: 1px solid rgba(26,26,46,0.1); margin-bottom: 2rem;
}
.admin-header h1 { font-family: 'Bebas Neue', cursive; font-size: 2rem; letter-spacing: 0.04em; color: var(--text-body); }
.admin-header .badge { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--magenta); }

.admin-tabs { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 1.75rem; }
.admin-tab {
  padding: 0.6rem 1.25rem; border-radius: 8px; border: 1px solid rgba(26,26,46,0.12);
  background: #fff; color: var(--text-muted); font-weight: 600; font-size: 0.88rem; cursor: pointer;
  transition: all 0.2s;
}
.admin-tab:hover { border-color: var(--magenta); color: var(--text-body); }
.admin-tab.active { background: var(--magenta); color: #fff; border-color: var(--magenta); box-shadow: 0 4px 16px var(--glow-m); }

.admin-panel { display: none; }
.admin-panel.active { display: block; }

.admin-card {
  background: #fff; border: 1px solid rgba(26,26,46,0.09); border-radius: 12px;
  padding: 1.75rem; margin-bottom: 1.5rem; box-shadow: 0 2px 14px rgba(26,26,46,0.05);
}
.admin-card h2 { font-family: 'Bebas Neue', cursive; font-size: 1.5rem; letter-spacing: 0.03em; margin-bottom: 1.25rem; color: var(--text-body); }

.admin-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.admin-form .fg.full { grid-column: 1 / -1; }
.admin-form .btn-primary { grid-column: 1 / -1; justify-self: start; }

.admin-list { display: flex; flex-direction: column; gap: 0.75rem; }
.admin-item {
  display: flex; align-items: center; gap: 1rem; padding: 0.85rem 1rem;
  border: 1px solid rgba(26,26,46,0.1); border-radius: 10px; background: #fafaff;
}
.admin-item .thumb { width: 72px; height: 54px; border-radius: 6px; object-fit: cover; background: #eee; flex-shrink: 0; }
.admin-item .info { flex: 1; min-width: 0; }
.admin-item .info strong { display: block; font-size: 0.95rem; color: var(--text-body); }
.admin-item .info span { font-size: 0.82rem; color: var(--text-muted); }
.admin-item .actions { display: flex; gap: 0.4rem; flex-shrink: 0; }
.btn-mini {
  padding: 0.4rem 0.8rem; border-radius: 6px; border: 1px solid rgba(26,26,46,0.15);
  background: #fff; font-size: 0.8rem; font-weight: 600; cursor: pointer; color: var(--text-body);
  transition: all 0.15s;
}
.btn-mini:hover { border-color: var(--magenta); color: var(--magenta); }
.btn-mini.danger:hover { border-color: #d33; color: #d33; }

.admin-login {
  max-width: 400px; margin: 8vh auto 0; background: #fff; border-radius: 14px;
  padding: 2.5rem 2rem; box-shadow: 0 12px 44px rgba(26,26,46,0.12); text-align: center;
}
.admin-login h1 { font-family: 'Bebas Neue', cursive; font-size: 2.2rem; letter-spacing: 0.04em; margin-bottom: 0.5rem; }
.admin-login p { color: var(--text-muted); font-size: 0.9rem; margin-bottom: 1.75rem; }
.admin-login .fg { text-align: left; margin-bottom: 1rem; }

.admin-msg { padding: 0.85rem 1rem; border-radius: 8px; font-size: 0.88rem; margin-bottom: 1rem; display: none; }
.admin-msg.show { display: block; }
.admin-msg.ok { background: rgba(26,122,58,0.1); color: #1a7a3a; border: 1px solid rgba(26,122,58,0.25); }
.admin-msg.err { background: rgba(211,51,51,0.08); color: #b32020; border: 1px solid rgba(211,51,51,0.25); }

.upload-drop {
  grid-column: 1 / -1;
  border: 2px dashed rgba(233,30,140,0.3); border-radius: 12px; padding: 2rem;
  text-align: center; color: var(--text-muted); cursor: pointer; transition: all 0.2s; background: #fafaff;
}
.upload-drop:hover, .upload-drop.drag { border-color: var(--magenta); background: rgba(233,30,140,0.04); }
.upload-drop strong { color: var(--magenta); }
.upload-preview { max-height: 140px; border-radius: 8px; margin: 0.75rem auto 0; display: none; }

@media (max-width: 640px) {
  .admin-form { grid-template-columns: 1fr; }
}

/* Dynamic marquee: track holds two identical sets, shift exactly one (-50%) */
@keyframes marquee-50 { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.gallery-track.auto { animation-name: marquee-50; }


/* ── LOGO IMAGES (height-only, width auto — preserve aspect ratio) ──────── */
.nav-logo-img    { height: 38px; width: auto; display: block; }
.hero-logo-img   { height: clamp(70px, 12vw, 112px); width: auto; display: block; }
.footer-logo-img { height: 40px; width: auto; display: block; opacity: 0.9; }
@media (max-width: 768px) { .nav-logo-img { height: 30px; } }
