/* ============================================
   BILARDOWO REDA - Premium UI System
   ============================================ */

/* --- Fonts (self-hosted) --- */
@font-face{font-family:'Epilogue';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/Epilogue-SemiBold.woff2') format('woff2')}
@font-face{font-family:'Epilogue';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/Epilogue-Bold.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/Manrope-Regular.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/Manrope-Medium.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/Manrope-SemiBold.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/Manrope-Bold.woff2') format('woff2')}

/* --- Tokens --- */
:root{
  --color-primary:#17241d;
  --color-primary-light:#233429;
  --color-primary-glow:#3e5647;
  --color-bg:#0b100d;
  --color-bg-elevated:#111814;
  --color-bg-surface:#18211c;
  --color-bg-soft:#202a24;
  --color-text:#f3efe6;
  --color-text-muted:#afb4aa;
  --color-accent:#c2a06a;
  --color-accent-hover:#d0b17d;
  --color-border:#2b332d;
  --color-border-strong:#414a43;
  --color-error:#d66464;
  --color-success:#61836d;
  --font-heading:'Epilogue',system-ui,sans-serif;
  --font-body:'Manrope',system-ui,sans-serif;
  --header-height:84px;
  --radius-sm:8px;
  --radius:14px;
  --radius-lg:24px;
  --shadow-soft:0 26px 80px rgba(0,0,0,0.34);
  --shadow-card:0 18px 44px rgba(0,0,0,0.24);
  --transition:0.28s ease;
  --max-width:1260px;
}

/* --- Reset --- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:var(--header-height);-webkit-text-size-adjust:100%}
body{
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  color:var(--color-text);
  background:
    radial-gradient(circle at top left,rgba(194,160,106,0.08),transparent 24%),
    radial-gradient(circle at 88% 12%,rgba(62,86,71,0.12),transparent 22%),
    linear-gradient(180deg,rgba(8,11,9,0.94) 0%,rgba(11,16,13,1) 32%,rgba(9,13,11,1) 100%),
    var(--color-bg);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--color-accent);text-decoration:none;transition:color var(--transition),border-color var(--transition),background-color var(--transition),transform var(--transition),opacity var(--transition)}
a:hover{color:var(--color-accent-hover)}
ul,ol{list-style:none}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit;border:none;background:none}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0.01ms !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}
}

/* --- Utility --- */
.visually-hidden,
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{
  position:absolute;
  top:0;
  left:0;
  z-index:2001;
  padding:14px 18px;
  border-radius:0 0 var(--radius-sm) 0;
  background:var(--color-accent);
  color:#11120f;
  font-weight:700;
  transform:translateY(-140%);
}
.skip-link:focus-visible{transform:translateY(0)}
.hidden{display:none !important}
.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 28px}
.section-padding{padding:112px 0}
.surface-section{
  background:
    radial-gradient(circle at 14% 14%,rgba(194,160,106,0.05),transparent 24%),
    linear-gradient(180deg,rgba(18,26,21,0.94),rgba(10,14,12,0.98));
}
.section-wash{
  background:
    radial-gradient(circle at 82% 18%,rgba(62,86,71,0.18),transparent 26%),
    linear-gradient(180deg,rgba(18,27,22,0.96),rgba(10,14,12,1));
}
.section-spotlight{
  background:
    radial-gradient(circle at 18% 24%,rgba(194,160,106,0.08),transparent 22%),
    linear-gradient(180deg,rgba(12,17,14,1),rgba(9,13,11,1));
}
.label-caps{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:11px;
  font-weight:700;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--color-accent);
}
.label-caps::before{
  content:'';
  width:32px;
  height:1px;
  background:currentColor;
  opacity:0.65;
}
.button-full{width:100%}
.section-intro{
  max-width:660px;
  margin:0 auto 34px;
  text-align:center;
}
.section-intro p{max-width:560px;margin:12px auto 0}
.section-shell{
  background:linear-gradient(180deg,rgba(17,24,20,0.88),rgba(12,17,14,0.9));
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
  padding:32px;
  box-shadow:var(--shadow-card);
}
.page-shell{max-width:720px;margin:0 auto}
.subtle-divider{
  width:100%;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(194,160,106,0.45),transparent);
}
.icon-inline{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.icon-xl{width:28px;height:28px}
.icon-badge{
  width:52px;
  height:52px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  border:1px solid rgba(194,160,106,0.28);
  background:rgba(194,160,106,0.08);
  color:var(--color-accent);
}

/* --- Typography --- */
h1,h2,h3,h4{font-family:var(--font-heading);line-height:1.08;color:var(--color-text)}
h1{font-size:clamp(2.8rem,5vw,5rem);font-weight:700;letter-spacing:-0.04em}
h2{font-size:clamp(2rem,3.7vw,3.3rem);font-weight:700;letter-spacing:-0.03em}
h3{font-size:clamp(1.25rem,2.3vw,1.75rem);font-weight:600;letter-spacing:-0.02em}
h4{font-size:1.1rem;font-weight:600;letter-spacing:-0.01em}
p{color:var(--color-text-muted);margin-bottom:1em}
p:last-child{margin-bottom:0}

/* --- Buttons --- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:50px;
  padding:14px 28px;
  border-radius:999px;
  border:1px solid transparent;
  font-size:14px;
  font-weight:700;
  letter-spacing:0.02em;
  line-height:1.2;
  text-align:center;
  transition:transform var(--transition),background-color var(--transition),border-color var(--transition),color var(--transition),box-shadow var(--transition);
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{
  background:linear-gradient(180deg,#d5bd92 0%,var(--color-accent) 100%);
  color:#131411;
  border-color:rgba(215,190,146,0.92);
  box-shadow:0 12px 28px rgba(194,160,106,0.16);
}
.btn-primary:hover{
  color:#131411;
  background:linear-gradient(180deg,#e1cb9f 0%,#ccab74 100%);
  box-shadow:0 16px 34px rgba(194,160,106,0.18);
}
.btn-secondary{
  background:rgba(255,255,255,0.015);
  color:var(--color-text);
  border-color:var(--color-border-strong);
}
.btn-secondary:hover{
  color:var(--color-text);
  border-color:rgba(194,160,106,0.42);
  background:rgba(194,160,106,0.06);
}
.btn-sm{min-height:42px;padding:11px 20px;font-size:13px}

/* --- Header / Nav --- */
.site-header{
  position:fixed;
  top:0;
  left:0;
  right:0;
  height:var(--header-height);
  z-index:1200;
  background:rgba(7,10,8,0.82);
  border-bottom:1px solid rgba(255,255,255,0.07);
  backdrop-filter:blur(16px);
  transition:background-color var(--transition),border-color var(--transition),backdrop-filter var(--transition),box-shadow var(--transition);
}
.home-page .site-header{
  background:linear-gradient(180deg,rgba(6,9,7,0.34),rgba(6,9,7,0.08));
  border-bottom-color:rgba(255,255,255,0.055);
  backdrop-filter:blur(12px);
  box-shadow:none;
}
.home-page .site-header.is-scrolled,
.home-page.menu-open .site-header{
  background:rgba(7,10,8,0.74);
  border-bottom-color:rgba(194,160,106,0.13);
  backdrop-filter:blur(20px);
  box-shadow:0 18px 48px rgba(0,0,0,0.2);
}
.home-page .nav-desktop a{
  color:rgba(243,239,230,0.84);
  text-shadow:0 2px 14px rgba(0,0,0,0.42);
}
.home-page .hamburger{
  background:rgba(7,10,8,0.12);
  border-color:rgba(255,255,255,0.18);
}
.header-inner{
  max-width:var(--max-width);
  height:100%;
  margin:0 auto;
  padding:0 28px;
  display:flex;
  align-items:center;
  gap:20px;
}
.logo{
  display:inline-flex;
  align-items:center;
  min-width:0;
}
.logo img{
  width:auto;
  height:58px;
  object-fit:contain;
}
.nav-desktop{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:24px;
}
.nav-desktop a{
  position:relative;
  padding:10px 0;
  color:rgba(243,239,230,0.74);
  font-size:14px;
  font-weight:600;
  letter-spacing:0.03em;
}
.nav-desktop a::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:4px;
  height:1px;
  background:var(--color-accent);
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform var(--transition),opacity var(--transition);
  opacity:0.7;
}
.nav-desktop a:hover,.nav-desktop a.active{color:var(--color-text)}
.nav-desktop a:hover::after,.nav-desktop a.active::after{transform:scaleX(1)}
.nav-cta{
  margin-left:6px;
  padding-inline:22px;
  color:#131411;
  border-color:rgba(215,190,146,0.9);
  box-shadow:0 12px 28px rgba(194,160,106,0.14);
}
.nav-cta:hover{
  color:var(--color-bg);
  border-color:#e1cb9f;
}
.hamburger{
  display:none;
  margin-left:auto;
  width:46px;
  height:46px;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(194,160,106,0.16);
  border-radius:50%;
}
.hamburger span{
  display:block;
  width:19px;
  height:2px;
  background:var(--color-text);
  border-radius:999px;
  transition:transform var(--transition),opacity var(--transition);
}
.hamburger span + span{margin-top:4px}
.hamburger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.hamburger[aria-expanded="true"] span:nth-child(2){opacity:0}
.hamburger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

.nav-overlay{
  position:fixed;
  inset:0;
  z-index:1100;
  background:rgba(4,7,6,0.72);
  opacity:0;
  visibility:hidden;
  transition:opacity var(--transition),visibility var(--transition);
}
.nav-overlay.is-open{opacity:1;visibility:visible}
.nav-mobile{
  position:fixed;
  top:0;
  right:-100%;
  z-index:1150;
  width:min(360px,88vw);
  height:100vh;
  height:100dvh;
  padding:calc(var(--header-height) + 28px) 28px 28px;
  border-left:1px solid rgba(194,160,106,0.14);
  background:linear-gradient(180deg,#101713,#0b100d);
  box-shadow:var(--shadow-soft);
  overflow-y:auto;
  transition:right var(--transition);
}
.nav-mobile.is-open{right:0}
.nav-mobile a{
  display:block;
  padding:14px 0;
  border-bottom:1px solid rgba(255,255,255,0.06);
  color:var(--color-text);
  font-size:16px;
  font-weight:600;
}
.nav-mobile a:last-child{border-bottom:none}
.mobile-nav-cta{
  margin-top:18px;
  text-align:center;
  border-bottom:none !important;
}
body.menu-open{overflow:hidden}

@media(max-width:980px){
  .nav-desktop,.nav-cta{display:none}
  .hamburger{display:inline-flex}
}

/* --- Hero --- */
.hero{
  position:relative;
  min-height:100vh;
  min-height:100svh;
  display:flex;
  align-items:center;
  overflow:hidden;
  isolation:isolate;
}
.hero::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  z-index:1;
  height:180px;
  background:
    linear-gradient(180deg,rgba(9,13,11,0) 0%,rgba(9,13,11,0.72) 62%,rgba(9,13,11,1) 100%),
    radial-gradient(ellipse at 50% 100%,rgba(194,160,106,0.12),transparent 62%);
  pointer-events:none;
}
.hero-bg{
  position:absolute;
  inset:0;
  z-index:0;
}
.hero-bg img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
}
.hero-bg::after{
  content:'';
  position:absolute;
  inset:0;
  background:
    radial-gradient(ellipse at 21% 50%,rgba(2,5,4,0.9) 0%,rgba(3,6,5,0.66) 34%,rgba(3,6,5,0.2) 58%,transparent 74%),
    linear-gradient(92deg,rgba(3,6,5,0.72) 0%,rgba(4,7,6,0.54) 28%,rgba(5,8,7,0.18) 58%,rgba(5,8,7,0.04) 100%),
    linear-gradient(180deg,rgba(6,9,8,0.18) 0%,rgba(6,9,8,0.02) 28%,rgba(6,9,8,0.16) 62%,rgba(6,9,8,0.78) 100%),
    radial-gradient(ellipse at 50% 50%,transparent 42%,rgba(3,6,5,0.36) 100%);
}
.hero-shell{
  position:relative;
  z-index:2;
  width:100%;
  padding:calc(var(--header-height) + 42px) 0 76px;
}
.hero-content{
  max-width:760px;
  padding:0;
}
.hero-content .label-caps{margin-bottom:18px}
.hero-title{
  max-width:14ch;
  font-size:clamp(3rem,6.2vw,6.15rem);
  line-height:0.98;
  letter-spacing:0;
  text-wrap:balance;
  text-shadow:0 18px 56px rgba(0,0,0,0.66);
}
.hero-word{
  display:inline-block;
  opacity:0;
  transform:translate3d(0,16px,0);
  animation:heroWordReveal 640ms cubic-bezier(0.16,1,0.3,1) forwards;
  animation-delay:var(--word-delay,80ms);
  will-change:opacity,transform;
}
.hero .hero-kicker,
.hero .hero-copy,
.hero .hero-cta,
.hero .hero-highlights{
  opacity:0;
  transform:translate3d(0,18px,0);
  animation:heroElementReveal 720ms cubic-bezier(0.16,1,0.3,1) forwards;
  will-change:opacity,transform;
}
.hero .hero-kicker{animation-delay:0.1s}
.hero .hero-copy{animation-delay:0.38s}
.hero .hero-cta{animation-delay:0.54s}
.hero .hero-highlights{animation-delay:0.7s}
.hero-content p{
  max-width:54ch;
  margin:22px 0 0;
  font-size:clamp(1.02rem,1.45vw,1.16rem);
  line-height:1.75;
  color:rgba(243,239,230,0.86);
  text-shadow:0 10px 30px rgba(0,0,0,0.48);
}
.hero-cta{
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  margin-top:32px;
}
.hero-highlights{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:32px;
}
.hero-highlights li{
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:50px;
  padding:12px 15px;
  border:1px solid rgba(243,239,230,0.12);
  border-radius:999px;
  background:linear-gradient(180deg,rgba(12,18,15,0.56),rgba(8,12,10,0.34));
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.045),0 14px 34px rgba(0,0,0,0.18);
  backdrop-filter:blur(12px);
}
.hero-highlight-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  background:radial-gradient(circle at 30% 30%,#f8edcf 0%,#d7b782 45%,#8b6d41 100%);
  box-shadow:0 0 0 4px rgba(194,160,106,0.08);
}
.hero-highlight-text{
  display:block;
  color:rgba(243,239,230,0.84);
  font-size:13px;
  font-weight:600;
  line-height:1.4;
}
.hero-highlight-text strong{
  color:#f6e5c4;
  font-family:var(--font-heading);
  font-weight:700;
}

@keyframes heroWordReveal{
  from{
    opacity:0;
    transform:translate3d(0,16px,0);
  }
  to{
    opacity:1;
    transform:translate3d(0,0,0);
  }
}

@keyframes heroElementReveal{
  from{
    opacity:0;
    transform:translate3d(0,18px,0);
  }
  to{
    opacity:1;
    transform:translate3d(0,0,0);
  }
}

@media(prefers-reduced-motion:reduce){
  .hero-word,
  .hero .hero-kicker,
  .hero .hero-copy,
  .hero .hero-cta,
  .hero .hero-highlights,
  .subpage-hero .label-caps,
  .subpage-hero p,
  .reservation-hero .label-caps,
  .reservation-hero h1,
  .reservation-hero p{
    animation:none !important;
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
  }
}

/* --- Section header --- */
.section-header{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  margin-bottom:50px;
}
.section-header .label-caps{margin-bottom:14px}
.section-header p{max-width:580px;margin-top:14px}
.section-note{margin-top:18px}

/* --- Offer / Bento --- */
#oferta{
  position:relative;
  overflow:hidden;
}
#oferta::before{
  content:'';
  position:absolute;
  left:50%;
  top:0;
  width:min(980px,86vw);
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(194,160,106,0.42),transparent);
  transform:translateX(-50%);
}
.offer-section-header{
  margin-bottom:40px;
}
.offer-section-header p{
  max-width:680px;
}
.offer-pillars{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px;
  margin:0 auto 34px;
}
.offer-pillars span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  padding:8px 14px;
  border:1px solid rgba(194,160,106,0.18);
  border-radius:999px;
  background:rgba(194,160,106,0.055);
  color:rgba(243,239,230,0.82);
  font-size:12px;
  font-weight:800;
  letter-spacing:0.12em;
  text-transform:uppercase;
}
.offer-bento{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:22px;
}
.offer-panel{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  border:1px solid rgba(243,239,230,0.09);
  border-radius:26px;
  background:linear-gradient(180deg,rgba(18,26,21,0.98),rgba(9,13,11,0.98));
  box-shadow:var(--shadow-card);
  transition:transform var(--transition),border-color var(--transition),box-shadow var(--transition);
}
.offer-panel:hover{
  transform:translateY(-4px);
  border-color:rgba(194,160,106,0.3);
  box-shadow:0 28px 64px rgba(0,0,0,0.34);
}
.offer-panel-feature{
  min-height:500px;
  display:flex;
}
.offer-panel-feature::after{
  content:'';
  position:absolute;
  inset:0;
  z-index:0;
  background:
    linear-gradient(180deg,rgba(4,7,6,0.03) 0%,rgba(4,7,6,0.18) 30%,rgba(4,7,6,0.78) 76%,rgba(4,7,6,0.96) 100%),
    linear-gradient(90deg,rgba(4,7,6,0.88) 0%,rgba(4,7,6,0.54) 48%,rgba(4,7,6,0.12) 100%),
    radial-gradient(circle at 84% 16%,rgba(194,160,106,0.22),transparent 36%);
}
.offer-panel-feature::before{
  content:'';
  position:absolute;
  inset:1px;
  z-index:1;
  border-radius:25px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.08),inset 0 -1px 0 rgba(194,160,106,0.08);
  pointer-events:none;
}
.offer-panel-media{
  position:absolute;
  inset:0;
  z-index:-1;
}
.offer-panel-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(0.92) contrast(1.05);
  transition:transform 0.75s ease,filter var(--transition);
}
.offer-panel:hover .offer-panel-media img{
  transform:scale(1.035);
  filter:saturate(1) contrast(1.08);
}
.offer-panel-bilard .offer-panel-media img{
  object-position:center 46%;
}
.offer-panel-dart .offer-panel-media img{
  object-position:center center;
}
.offer-panel-body{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  gap:13px;
  width:100%;
  padding:clamp(26px,3vw,34px);
}
.offer-panel-feature .offer-panel-body{
  margin-top:auto;
  justify-content:flex-end;
  min-height:100%;
}
.offer-panel-feature .offer-panel-body > *{
  max-width:470px;
}
.offer-panel-small .offer-panel-body{
  min-height:100%;
}
.offer-panel-small h3{
  min-height:2.2em;
  display:flex;
  align-items:flex-end;
}
.offer-panel h3{
  max-width:14ch;
  text-shadow:0 14px 34px rgba(0,0,0,0.38);
}
.offer-panel-feature h3{
  font-size:clamp(2rem,3.1vw,3.1rem);
}
.offer-panel p{
  max-width:44ch;
  margin:0;
  font-size:16px;
  line-height:1.7;
  color:rgba(243,239,230,0.92);
  text-shadow:0 10px 26px rgba(0,0,0,0.46);
}
.offer-panel-feature p{
  font-size:18px;
  line-height:1.68;
  text-shadow:0 13px 32px rgba(0,0,0,0.62);
}
.offer-panel-kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  width:fit-content;
  padding:7px 12px;
  border-radius:999px;
  border:1px solid rgba(194,160,106,0.26);
  color:#e9d5ae;
  font-size:11px;
  font-weight:800;
  letter-spacing:0.12em;
  text-transform:uppercase;
  background:rgba(8,12,10,0.56);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.055);
  backdrop-filter:blur(10px);
}
.offer-panel-kicker::before{
  content:'';
  width:7px;
  height:7px;
  border-radius:50%;
  background:radial-gradient(circle at 35% 35%,#fff4d8 0%,#d7b782 45%,#8b6d41 100%);
}
.offer-panel-index{
  position:absolute;
  top:24px;
  right:26px;
  color:rgba(194,160,106,0.22);
  font-family:var(--font-heading);
  font-size:clamp(2.4rem,4vw,4.2rem);
  font-weight:700;
  line-height:0.9;
  pointer-events:none;
}
.offer-panel-icon{
  position:absolute;
  top:22px;
  right:24px;
  width:clamp(76px,7vw,116px);
  height:clamp(76px,7vw,116px);
  color:rgba(218,181,112,0.38);
  opacity:0.52;
  pointer-events:none;
}
.offer-panel-icon svg{
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
  filter:drop-shadow(0 18px 34px rgba(0,0,0,0.22));
}
.offer-panel-meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:4px;
}
.offer-panel-meta span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:6px 12px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:999px;
  background:rgba(9,13,11,0.5);
  color:rgba(243,239,230,0.9);
  font-size:12px;
  font-weight:700;
}
.offer-panel .btn{
  margin-top:auto;
  width:fit-content;
}
.offer-panel-feature .btn{
  box-shadow:0 16px 34px rgba(0,0,0,0.22);
  backdrop-filter:blur(10px);
}
.offer-panel-feature .btn-secondary{
  border-color:rgba(255,255,255,0.22);
  background:rgba(10,14,12,0.46);
}
.offer-panel-feature .btn-secondary:hover{
  border-color:rgba(194,160,106,0.42);
  background:rgba(194,160,106,0.12);
}
.offer-panel-bilard,
.offer-panel-dart{
  grid-column:span 6;
}
.offer-panel-small{
  grid-column:span 4;
  min-height:310px;
  background:
    radial-gradient(circle at 86% 12%,rgba(194,160,106,0.1),transparent 26%),
    linear-gradient(180deg,rgba(17,25,20,0.98),rgba(8,12,10,0.98));
}
.offer-panel-small::before{
  content:'';
  position:absolute;
  left:24px;
  right:24px;
  top:0;
  height:1px;
  background:linear-gradient(90deg,rgba(194,160,106,0.5),transparent);
  opacity:0.8;
}
.offer-panel-small::after{
  content:'';
  position:absolute;
  right:-90px;
  bottom:-110px;
  width:260px;
  height:260px;
  background:radial-gradient(circle,rgba(194,160,106,0.1),transparent 66%);
  pointer-events:none;
}
.offer-panel-akademia{
  background:
    radial-gradient(circle at 88% 12%,rgba(62,86,71,0.24),transparent 28%),
    linear-gradient(180deg,rgba(18,28,22,0.98),rgba(8,12,10,0.98));
}
.offer-panel-turnieje{
  background:
    radial-gradient(circle at 88% 12%,rgba(194,160,106,0.13),transparent 28%),
    linear-gradient(180deg,rgba(18,25,20,0.98),rgba(8,12,10,0.98));
}
.offer-panel-imprezy{
  background:
    radial-gradient(circle at 88% 12%,rgba(243,239,230,0.08),transparent 28%),
    linear-gradient(180deg,rgba(18,24,21,0.98),rgba(8,12,10,0.98));
}

/* --- Academy --- */
.akademia-split{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,0.95fr);
  gap:40px;
  align-items:stretch;
}
.akademia-img{
  position:relative;
  overflow:hidden;
  border-radius:28px;
  border:1px solid rgba(194,160,106,0.14);
  background:var(--color-bg-elevated);
  min-height:420px;
}
.akademia-img img{
  width:100%;
  height:100%;
  min-height:420px;
  object-fit:cover;
}
.akademia-info{
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.akademia-info .label-caps{margin-bottom:14px}
.akademia-info h2{max-width:13ch}
.akademia-info p{max-width:52ch;margin-top:16px}
.academy-credential{
  margin-top:24px;
  padding:24px 26px;
  border:1px solid rgba(194,160,106,0.16);
  border-radius:24px;
  background:linear-gradient(180deg,rgba(194,160,106,0.09),rgba(194,160,106,0.03));
}
.academy-credential-label{
  display:block;
  margin-bottom:8px;
  color:var(--color-accent);
  font-size:12px;
  font-weight:700;
  letter-spacing:0.14em;
  text-transform:uppercase;
}
.academy-credential h3{margin-bottom:6px}
.academy-credential p{margin:0;color:rgba(243,239,230,0.78)}
.academy-values{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin-top:24px;
}
.academy-value{
  min-height:182px;
  padding:24px 22px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:24px;
  background:linear-gradient(180deg,rgba(255,255,255,0.025),rgba(255,255,255,0.01));
}
.academy-value-index{
  display:block;
  margin-bottom:16px;
  color:var(--color-accent);
  font-family:var(--font-heading);
  font-size:1.1rem;
}
.academy-value h4{margin-bottom:10px}
.academy-value p{font-size:14px;line-height:1.6}
.akademia-info ul{display:grid;gap:10px;margin-top:22px}
.akademia-info li{
  position:relative;
  padding-left:18px;
  color:var(--color-text-muted);
}
.akademia-info li::before{
  content:'';
  position:absolute;
  top:0.7em;
  left:0;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--color-accent);
}
.academy-gallery{margin-top:24px}

/* --- Tournament --- */
.tournament-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,0.72fr);
  gap:22px;
  align-items:stretch;
}
.tournament-layout-public{
  grid-template-columns:1fr;
  align-items:start;
}
.tournament-list{
  display:grid;
  gap:18px;
}
.tournament-layout-public .tournament-list{
  grid-template-columns:1fr;
  width:100%;
  max-width:980px;
  margin:0 auto;
}
.tournament-layout-homepage .tournament-list{
  max-width:1040px;
}
.tournament-layout-homepage .tournament-list.is-single{
  margin:0 auto;
}
.tournaments-page .tournament-layout-public .tournament-list{
  grid-template-columns:1fr;
  max-width:980px;
  margin:0 auto;
}
.tournament-card{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  display:grid;
  grid-template-columns:auto auto minmax(0,1fr) auto;
  gap:24px;
  align-items:stretch;
  padding:34px;
  border:1px solid rgba(218,181,112,0.18);
  border-radius:30px;
  background:
    radial-gradient(circle at 82% 18%,rgba(194,160,106,0.06),transparent 24%),
    linear-gradient(180deg,rgba(19,27,23,0.96),rgba(12,17,14,0.98));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.05),
    0 26px 72px rgba(0,0,0,0.3);
}
.tournament-card::before{
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  opacity:0.9;
  pointer-events:none;
}
.tournament-card-bilard::before{
  background:
    radial-gradient(circle at 86% 12%,rgba(218,181,112,0.17),transparent 25%),
    radial-gradient(circle at 12% 86%,rgba(72,112,84,0.16),transparent 30%);
}
.tournament-card-dart::before{
  background:
    radial-gradient(circle at 86% 12%,rgba(218,181,112,0.18),transparent 26%),
    radial-gradient(circle at 12% 86%,rgba(122,58,44,0.18),transparent 30%);
}
.tournament-layout-homepage .tournament-card{
  min-height:300px;
  padding:clamp(30px,3vw,40px);
}
.tournaments-page .tournament-card{
  min-height:260px;
}
.tournament-icon{
  width:70px;
  height:70px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  align-self:start;
  border:1px solid rgba(218,181,112,0.2);
  border-radius:24px;
  background:
    radial-gradient(circle at 30% 24%,rgba(255,255,255,0.08),transparent 34%),
    rgba(218,181,112,0.075);
  color:#d9b673;
  box-shadow:0 18px 40px rgba(0,0,0,0.22);
}
.tournament-icon svg{
  width:42px;
  height:42px;
}
.tournament-icon svg circle,
.tournament-icon svg path{
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.tournament-icon svg .tournament-ball-shine{
  fill:rgba(245,240,231,0.38);
  stroke:none;
}
.tournament-icon svg .tournament-ball-plate{
  fill:rgba(245,240,231,0.92);
  stroke:rgba(218,181,112,0.72);
}
.tournament-icon svg text{
  fill:#151815;
  stroke:none;
  font-family:var(--font-heading);
  font-size:13px;
  font-weight:800;
  text-anchor:middle;
  dominant-baseline:central;
}
.tournament-icon-dart{
  background:
    radial-gradient(circle at 30% 24%,rgba(255,255,255,0.08),transparent 34%),
    rgba(126,66,48,0.16);
}
.tournament-card-completed{
  border-color:rgba(255,255,255,0.07);
  background:
    radial-gradient(circle at 82% 18%,rgba(194,160,106,0.035),transparent 24%),
    linear-gradient(180deg,rgba(18,24,21,0.86),rgba(12,17,14,0.94));
}
.tournament-card-completed .tournament-date{
  border-color:rgba(194,160,106,0.14);
  background:linear-gradient(180deg,rgba(194,160,106,0.07),rgba(194,160,106,0.025));
}
.tournament-date{
  width:128px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  align-items:center;
  padding:20px 16px;
  border-radius:22px;
  border:1px solid rgba(194,160,106,0.2);
  background:linear-gradient(180deg,rgba(194,160,106,0.12),rgba(194,160,106,0.03));
}
.tournament-date-label{
  display:block;
  margin-bottom:14px;
  color:var(--color-accent);
  font-size:11px;
  font-weight:700;
  letter-spacing:0.16em;
  text-transform:uppercase;
}
.tournament-date-day{
  display:block;
  font-family:var(--font-heading);
  font-size:3rem;
  line-height:0.95;
  letter-spacing:-0.06em;
}
.tournament-date-month{
  display:block;
  margin-top:8px;
  color:var(--color-accent);
  font-size:12px;
  font-weight:700;
  letter-spacing:0.24em;
  text-transform:uppercase;
}
.tournament-date-year{
  display:block;
  margin-top:10px;
  color:rgba(243,239,230,0.7);
  font-size:12px;
  font-weight:600;
  letter-spacing:0.1em;
}
.tournament-info{
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.tournament-info h3,.tournament-info h4{
  margin:14px 0 0;
  font-size:clamp(1.45rem,2.4vw,2.35rem);
  line-height:1.08;
}
.tournament-summary{
  margin-top:14px;
  max-width:56ch;
  font-size:16px;
  line-height:1.72;
  color:rgba(243,239,230,0.82);
}
.tournament-badges{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.badge{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:6px 10px;
  border-radius:999px;
  font-size:11px;
  font-weight:700;
  letter-spacing:0.12em;
  text-transform:uppercase;
}
.badge-bilard{
  background:linear-gradient(180deg,rgba(38,72,49,0.96),rgba(22,42,31,0.96));
  border:1px solid rgba(218,181,112,0.34);
  color:#f1debb;
}
.badge-preview{
  background:rgba(194,160,106,0.13);
  border:1px solid rgba(194,160,106,0.34);
  color:var(--color-accent);
}
.badge-dart{
  background:linear-gradient(180deg,rgba(74,35,29,0.92),rgba(30,20,18,0.96));
  border:1px solid rgba(218,181,112,0.36);
  color:#f0d7b4;
}
.badge-completed{
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(194,160,106,0.2);
  color:rgba(243,239,230,0.76);
}
.tournament-meta{
  display:flex;
  flex-wrap:wrap;
  gap:18px;
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,0.07);
}
.tournament-card > .btn{
  align-self:center;
  white-space:nowrap;
}
.meta-item{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--color-text-muted);
  font-size:14px;
}
.empty-state{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:100%;
  padding:34px;
  border:1px dashed rgba(194,160,106,0.18);
  border-radius:28px;
  background:linear-gradient(180deg,rgba(255,255,255,0.02),rgba(255,255,255,0.01));
}
.empty-state-illustration{
  margin-bottom:18px;
  color:var(--color-accent);
  opacity:0.9;
}
.empty-state h3{max-width:14ch}
.empty-state p{max-width:42ch;margin-top:10px}
.empty-state .btn{margin-top:22px;width:fit-content}
.tournament-empty-copy{
  max-width:560px;
  margin:4px auto 0;
  color:rgba(243,239,230,0.72);
  text-align:center;
}
.tournament-actions{
  display:flex;
  justify-content:center;
  margin-top:28px;
}

/* --- Pricing --- */
.pricing-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  max-width:980px;
  margin:0 auto;
}
.pricing-card{
  min-height:230px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:20px;
  padding:28px;
  border:1px solid rgba(194,160,106,0.18);
  border-radius:28px;
  background:
    radial-gradient(circle at 88% 14%,rgba(194,160,106,0.1),transparent 18%),
    linear-gradient(180deg,rgba(23,37,30,0.96),rgba(11,18,15,0.98));
  box-shadow:var(--shadow-card);
}
.pricing-card-feature{
  grid-column:1 / -1;
  min-height:auto;
}
.pricing-card-voucher{
  grid-column:1 / -1;
  width:min(100%,430px);
  min-height:0;
  justify-self:center;
}
.pricing-card-head{
  display:grid;
  gap:10px;
}
.pricing-kicker{
  display:inline-flex;
  align-items:center;
  width:fit-content;
  min-height:28px;
  padding:4px 10px;
  border-radius:999px;
  border:1px solid rgba(194,160,106,0.18);
  background:rgba(194,160,106,0.08);
  color:var(--color-accent);
  font-size:11px;
  font-weight:700;
  letter-spacing:0.12em;
  text-transform:uppercase;
}
.pricing-card h3{
  margin:0;
  font-size:1.35rem;
}
.pricing-card p{
  margin:0;
  color:rgba(243,239,230,0.78);
  font-size:15px;
  line-height:1.7;
}
.pricing-card-heading{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
}
.pricing-split-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.pricing-split-row{
  display:grid;
  gap:10px;
  padding:18px 20px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:20px;
  background:rgba(255,255,255,0.03);
}
.pricing-split-row span{
  color:rgba(243,239,230,0.76);
  font-size:14px;
  font-weight:600;
}
.pricing-split-row strong,
.pricing-card-price strong{
  color:var(--color-text);
  font-family:var(--font-heading);
  font-size:1.7rem;
  letter-spacing:-0.04em;
}
.pricing-card-price{
  margin-top:auto;
}
.pricing-card-cta{
  display:flex;
  align-items:flex-end;
}
.pricing-list{
  display:grid;
  gap:14px;
}
.pricing-row{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:20px;
  align-items:center;
  padding:26px 28px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:26px;
  background:
    radial-gradient(circle at 92% 12%,rgba(194,160,106,0.05),transparent 18%),
    linear-gradient(180deg,rgba(17,24,20,0.98),rgba(12,17,14,0.98));
  box-shadow:var(--shadow-card);
}
.pricing-row-ball{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:58px;
  height:58px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,0.18);
  box-shadow:
    inset -10px -12px 20px rgba(0,0,0,0.24),
    inset 8px 10px 18px rgba(255,255,255,0.08),
    0 14px 24px rgba(0,0,0,0.18);
}
.pricing-row-ball::before{
  content:'';
  position:absolute;
  top:10px;
  left:12px;
  width:18px;
  height:14px;
  border-radius:50%;
  background:rgba(255,255,255,0.34);
  filter:blur(1px);
}
.pricing-row-ball span{
  position:relative;
  z-index:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  border-radius:50%;
  background:rgba(252,250,245,0.96);
  color:#121512;
  font-family:var(--font-heading);
  font-size:0.92rem;
  font-weight:700;
  box-shadow:inset 0 -1px 3px rgba(0,0,0,0.16);
}
.pricing-row-ball-1{background:radial-gradient(circle at 30% 28%,#ffeaa2 0%,#f7cf5a 32%,#c89210 100%)}
.pricing-row-ball-2{background:radial-gradient(circle at 30% 28%,#b9dcff 0%,#5da7ff 34%,#18488a 100%)}
.pricing-row-ball-3{background:radial-gradient(circle at 30% 28%,#ffd3cb 0%,#df5444 34%,#7e1a12 100%)}
.pricing-row-ball-4{background:radial-gradient(circle at 30% 28%,#e0cfff 0%,#9160d7 34%,#44206f 100%)}
.pricing-row h3{
  font-size:1.2rem;
  margin-bottom:4px;
}
.pricing-row p{margin-top:4px;font-size:14px}
.pricing-row-bilard{
  grid-template-columns:auto minmax(0,1fr);
  align-items:start;
  border-color:rgba(194,160,106,0.2);
  background:
    radial-gradient(circle at 88% 14%,rgba(194,160,106,0.1),transparent 18%),
    linear-gradient(180deg,rgba(19,27,23,0.98),rgba(12,17,14,0.98));
}
.pricing-rate-list{
  display:grid;
  gap:10px;
  margin-top:14px;
}
.pricing-rate{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:14px 16px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:18px;
  background:rgba(255,255,255,0.03);
}
.pricing-rate span{
  color:rgba(243,239,230,0.82);
  font-size:14px;
  font-weight:600;
}
.pricing-rate strong{
  color:var(--color-text);
  font-family:var(--font-heading);
  font-size:1.1rem;
  letter-spacing:-0.03em;
}
.pricing-row-price{
  text-align:right;
  white-space:nowrap;
}
.pricing-row-price strong{
  display:block;
  font-family:var(--font-heading);
  font-size:2rem;
  letter-spacing:-0.04em;
  color:var(--color-text);
}
.pricing-helper{
  max-width:560px;
  margin:22px auto 0;
  text-align:center;
  color:var(--color-text-muted);
  font-size:14px;
}
.pricing-actions{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:12px;
  margin-top:28px;
}
.pricing-row-voucher{
  grid-template-columns:auto minmax(0,1.2fr) auto;
  gap:18px;
  border-color:rgba(194,160,106,0.24);
  background:
    radial-gradient(circle at 84% 18%,rgba(194,160,106,0.12),transparent 18%),
    linear-gradient(180deg,rgba(20,28,23,0.98),rgba(12,17,14,0.98));
}
.pricing-row-ball-5{background:radial-gradient(circle at 30% 28%,#f3e3bc 0%,#cfab6a 34%,#6e4a17 100%)}
.pricing-row-voucher h3{
  display:flex;
  align-items:center;
  gap:10px;
}
.pricing-pill{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:4px 10px;
  border-radius:999px;
  border:1px solid rgba(194,160,106,0.22);
  background:rgba(194,160,106,0.08);
  color:var(--color-accent);
  font-size:11px;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
}
.pricing-row-copy{
  display:grid;
  gap:10px;
}
.pricing-row-copy p{
  margin:0;
  font-size:14px;
}
.pricing-row-cta{
  display:grid;
  justify-items:end;
  gap:8px;
}
.pricing-row-cta small{
  font-size:12px;
  color:rgba(243,239,230,0.68);
}
.pricing-inline-note{
  margin-top:20px;
  font-size:14px;
  color:rgba(243,239,230,0.82);
}

.pricing-premium{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(18px,2vw,26px);
  max-width:1040px;
  margin:0 auto;
}
.pricing-premium--compact .pricing-premium-card{
  padding:clamp(24px,2.7vw,30px);
}
.pricing-premium--page{
  gap:clamp(20px,2.2vw,30px);
}
.pricing-premium-card{
  position:relative;
  overflow:hidden;
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:22px;
  padding:clamp(24px,3vw,34px);
  border:1px solid rgba(218,181,112,0.22);
  border-radius:28px;
  background:
    radial-gradient(circle at 85% 10%, rgba(218, 181, 112, 0.14), transparent 34%),
    linear-gradient(145deg, rgba(17, 34, 26, 0.94), rgba(6, 13, 10, 0.98));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.05),
    0 26px 70px rgba(0, 0, 0, 0.28);
  transition:transform var(--transition),border-color var(--transition),box-shadow var(--transition);
}
.pricing-premium-card.has-pricing-accent{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(116px,142px);
  grid-template-areas:
    "main icon"
    "footer footer";
  align-items:start;
  column-gap:clamp(28px,3.4vw,44px);
  row-gap:24px;
}
.pricing-premium-card:hover{
  transform:translateY(-3px);
  border-color:rgba(218,181,112,0.32);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.06),
    0 30px 78px rgba(0,0,0,0.34);
}
.pricing-premium-card::before{
  content:"";
  position:absolute;
  right:-80px;
  top:-80px;
  width:210px;
  height:210px;
  background:radial-gradient(circle, rgba(218,181,112,0.16), transparent 68%);
  pointer-events:none;
}
.pricing-card-icon{
  position:relative;
  grid-area:icon;
  justify-self:end;
  z-index:1;
  width:132px;
  height:132px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(218,181,112,0.2);
  border-radius:30px;
  background:
    radial-gradient(circle at 34% 24%,rgba(245,240,231,0.08),transparent 34%),
    linear-gradient(180deg,rgba(218,181,112,0.11),rgba(218,181,112,0.035));
  color:#d8b46a;
  opacity:0.78;
  box-shadow:0 22px 54px rgba(0,0,0,0.28);
  pointer-events:none;
}
.pricing-card-icon svg{
  width:76px;
  height:76px;
}
.pricing-card-icon svg circle,
.pricing-card-icon svg path{
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.pricing-card-icon .pricing-icon-highlight{
  fill:rgba(245,240,231,0.36);
  stroke:none;
}
.pricing-card-icon .pricing-icon-plate{
  fill:rgba(245,240,231,0.92);
  stroke:rgba(218,181,112,0.72);
}
.pricing-card-icon text{
  fill:#151815;
  stroke:none;
  font-family:var(--font-heading);
  font-size:14px;
  font-weight:800;
  text-anchor:middle;
  dominant-baseline:central;
}
.pricing-card-icon--dart{
  background:
    radial-gradient(circle at 34% 24%,rgba(245,240,231,0.08),transparent 34%),
    linear-gradient(180deg,rgba(126,66,48,0.18),rgba(218,181,112,0.045));
}
.pricing-card-icon--venue,
.pricing-card-icon--voucher{
  color:#ead39d;
}
.pricing-premium-card--feature .pricing-card-icon{
  width:154px;
  height:154px;
}
.pricing-premium-card--feature .pricing-card-icon svg{
  width:88px;
  height:88px;
}
.has-pricing-accent .pricing-premium-copy{
  padding-right:0;
}
.pricing-premium-card--feature,
.pricing-premium-card--voucher{
  grid-column:1 / -1;
}
.pricing-premium-card--voucher .pricing-premium-main{
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
}
.pricing-premium-main,
.pricing-premium-copy{
  position:relative;
  z-index:1;
  min-width:0;
}
.has-pricing-accent .pricing-premium-main,
.has-pricing-accent > .pricing-premium-copy{
  grid-area:main;
}
.pricing-premium-main{
  display:grid;
  gap:22px;
}
.pricing-premium-copy{
  display:grid;
  gap:12px;
}
.pricing-premium-heading{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
}
.pricing-premium-kicker{
  display:inline-flex;
  align-items:center;
  width:fit-content;
  padding:7px 11px;
  border-radius:999px;
  border:1px solid rgba(218,181,112,0.24);
  background:rgba(218,181,112,0.08);
  color:#d9b673;
  font-size:11px;
  font-weight:800;
  letter-spacing:0.12em;
  text-transform:uppercase;
}
.pricing-premium-card h3{
  margin:0;
  font-size:clamp(1.72rem,2.45vw,2.5rem);
}
.pricing-premium-card p{
  margin:0;
  max-width:54ch;
  color:rgba(245,240,231,0.78);
  font-size:16px;
  line-height:1.7;
}
.pricing-premium-badge{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:5px 11px;
  border-radius:999px;
  border:1px solid rgba(218,181,112,0.24);
  background:rgba(255,255,255,0.04);
  color:#f5f0e7;
  font-size:11px;
  font-weight:800;
  letter-spacing:0.12em;
  text-transform:uppercase;
}
.pricing-premium-meta{
  display:inline-flex;
  align-items:center;
  width:fit-content;
  min-height:42px;
  padding:10px 14px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,0.09);
  background:rgba(255,255,255,0.035);
  color:#f1debb;
  font-family:var(--font-heading);
  font-size:clamp(1.1rem,1.8vw,1.35rem);
  letter-spacing:-0.03em;
}
.pricing-rate-tiles{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(2,minmax(150px,1fr));
  gap:14px;
  max-width:620px;
}
.pricing-rate-tile{
  display:grid;
  gap:12px;
  border:1px solid rgba(255,255,255,0.09);
  border-radius:20px;
  background:rgba(255,255,255,0.035);
  padding:18px;
}
.pricing-rate-tile > span{
  color:rgba(245,240,231,0.72);
  font-size:13px;
  font-weight:800;
  letter-spacing:0.08em;
  text-transform:uppercase;
}
.pricing-premium-price{
  display:flex;
  align-items:flex-end;
  gap:10px;
  flex-wrap:wrap;
  min-width:0;
}
.pricing-premium-price strong{
  font-family:var(--font-heading);
  font-size:clamp(34px,4vw,52px);
  line-height:0.95;
  letter-spacing:-0.05em;
  color:#f5f0e7;
}
.pricing-premium-price span{
  color:rgba(245,240,231,0.72);
  font-size:20px;
  font-weight:800;
}
.pricing-premium-footer{
  grid-area:footer;
  position:relative;
  z-index:1;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
  margin-top:auto;
}
.pricing-premium-footer .btn{
  margin-left:auto;
}
.pricing-note{
  margin-top:22px;
  text-align:center;
  color:rgba(245,240,231,0.68);
  font-size:14px;
}
.pricing-premium-actions{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:12px;
  margin-top:28px;
}
#cennik{
  padding-bottom:56px;
}
#galeria{
  padding-top:56px;
}
.pricing-final-cta{
  max-width:900px;
  margin:42px auto 0;
  padding:clamp(28px,3.2vw,38px);
  text-align:center;
  border:1px solid rgba(218,181,112,0.22);
  border-radius:28px;
  background:
    radial-gradient(circle at 82% 12%, rgba(218,181,112,0.12), transparent 24%),
    linear-gradient(145deg, rgba(17, 34, 26, 0.94), rgba(6, 13, 10, 0.98));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.05),
    0 26px 70px rgba(0,0,0,0.24);
}
.pricing-final-cta .label-caps{
  justify-content:center;
  margin-bottom:14px;
}
.pricing-final-cta h2{
  font-size:clamp(1.8rem,3vw,2.8rem);
}
.pricing-final-cta p{
  max-width:56ch;
  margin:14px auto 0;
  color:rgba(245,240,231,0.76);
}
.pricing-final-actions{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:12px;
  margin-top:26px;
}

/* --- Gallery --- */
.gallery-mosaic{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  grid-auto-rows:84px;
  gap:16px;
  grid-auto-flow:dense;
}
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.gallery-item{
  position:relative;
  overflow:hidden;
  border-radius:26px;
  border:1px solid rgba(194,160,106,0.1);
  background:var(--color-bg-elevated);
}
.gallery-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 0.7s ease,filter var(--transition);
}
.gallery-item::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(10,14,12,0) 42%,rgba(10,14,12,0.2) 100%);
  opacity:0;
  transition:opacity var(--transition);
}
.gallery-item:hover img{transform:scale(1.03)}
.gallery-item:hover::after{opacity:1}
.gallery-item--feature{grid-column:span 5;grid-row:span 5}
.gallery-item--tall{grid-column:span 4;grid-row:span 5}
.gallery-item--square{grid-column:span 3;grid-row:span 5}
.gallery-item--wide{grid-column:span 4;grid-row:span 4}
.gallery-item--medium{grid-column:span 4;grid-row:span 4}

/* --- Reviews --- */
.reviews-shell{
  display:grid;
  gap:28px;
}
.reviews-header{
  margin-bottom:0;
}
.reviews-label{
  gap:9px;
}
.reviews-label::before{
  display:none;
}
.reviews-label img,
.google-review-link img{
  width:22px;
  height:22px;
  object-fit:contain;
  filter:saturate(0.96);
}
.reviews-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.reviews-nav{
  display:flex;
  align-items:center;
  gap:10px;
}
.reviews-nav-btn{
  width:48px;
  height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,0.12);
  border-radius:50%;
  background:rgba(255,255,255,0.03);
  color:var(--color-text);
  transition:border-color var(--transition),background-color var(--transition),transform var(--transition),opacity var(--transition);
}
.reviews-nav-btn:hover:not(:disabled){
  transform:translateY(-1px);
  border-color:rgba(194,160,106,0.42);
  background:rgba(194,160,106,0.08);
}
.reviews-nav-btn:disabled{
  opacity:0.45;
  cursor:not-allowed;
}
.reviews-carousel{
  overflow:hidden;
}
.reviews-track{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(320px,1fr);
  gap:18px;
  overflow-x:auto;
  padding-bottom:8px;
  scrollbar-width:none;
  scroll-snap-type:x mandatory;
  scroll-padding-left:0;
}
.reviews-track::-webkit-scrollbar{
  display:none;
}
.reviews-track::-webkit-scrollbar-thumb{
  background:rgba(194,160,106,0.28);
  border-radius:999px;
}
.review-card{
  min-height:100%;
  display:flex;
  flex-direction:column;
  gap:14px;
  padding:28px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:28px;
  background:
    radial-gradient(circle at 86% 12%,rgba(194,160,106,0.08),transparent 18%),
    linear-gradient(180deg,rgba(17,24,20,0.98),rgba(12,17,14,0.98));
  box-shadow:var(--shadow-card);
  scroll-snap-align:start;
}
.review-card h3{
  font-size:1.2rem;
}
.review-card p{
  color:rgba(243,239,230,0.82);
}
.review-card .review-rating{
  color:#e3c278 !important;
  font-size:1rem;
  letter-spacing:0.14em;
  text-shadow:0 0 18px rgba(227,194,120,0.18);
}
.review-source{
  margin-top:auto;
  color:rgba(243,239,230,0.64);
  font-size:12px;
  font-weight:700;
  letter-spacing:0.14em;
  text-transform:uppercase;
}

/* --- FAQ --- */
.faq-list{max-width:860px;margin:0 auto}
.faq-item{border-bottom:1px solid rgba(255,255,255,0.08)}
.faq-question{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  min-height:70px;
  padding:20px 0;
  text-align:left;
  color:var(--color-text);
  font-size:16px;
  font-weight:600;
}
.faq-question::after{
  content:'+';
  color:var(--color-accent);
  font-family:var(--font-heading);
  font-size:1.8rem;
  line-height:1;
}
.faq-item.is-open .faq-question::after{content:'-'}
.faq-answer{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows var(--transition);
}
.faq-item.is-open .faq-answer{grid-template-rows:1fr}
.faq-answer-inner{
  overflow:hidden;
  padding-right:28px;
  color:var(--color-text-muted);
}
.faq-item.is-open .faq-answer-inner{padding-bottom:22px}

/* --- Contact --- */
.contact-grid{
  display:grid;
  grid-template-columns:minmax(0,0.95fr) minmax(0,1.05fr);
  gap:28px;
  align-items:start;
}
.contact-stack{
  display:grid;
  gap:18px;
}
.contact-panel,.contact-form-panel{
  padding:28px;
  border:1px solid rgba(194,160,106,0.12);
  border-radius:28px;
  background:linear-gradient(180deg,rgba(17,24,20,0.98),rgba(12,17,14,0.98));
  box-shadow:var(--shadow-card);
}
.contact-callout{
  padding:32px;
  border:1px solid rgba(194,160,106,0.22);
  border-radius:28px;
  background:linear-gradient(180deg,rgba(194,160,106,0.1),rgba(194,160,106,0.04));
}
.contact-callout .label-caps{margin-bottom:16px}
.contact-callout h3{margin-bottom:14px}
.contact-phone{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-heading);
  font-size:clamp(1.65rem,3vw,2.2rem);
  letter-spacing:-0.04em;
  color:var(--color-text);
}
.contact-phone:hover{color:var(--color-accent-hover)}
.contact-detail{
  display:grid;
  gap:10px;
}
.contact-detail h4{font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:var(--color-accent)}
.contact-detail p,.contact-detail a{font-size:15px;color:var(--color-text-muted)}
.contact-detail a:hover{color:var(--color-accent)}
.contact-manager{font-size:13px;color:var(--color-text-muted)}
.contact-map-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:8px;
}
.social-links{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}
.social-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:42px;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid var(--color-border-strong);
  color:var(--color-text);
}
.social-link-icon{
  width:46px;
  height:46px;
  justify-content:center;
  padding:0;
  border-radius:50%;
  background:linear-gradient(180deg,rgba(255,255,255,0.045),rgba(255,255,255,0.015));
}
.social-icon{
  width:19px;
  height:19px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.social-icon path{
  fill:currentColor;
  stroke:none;
}
.social-link:hover{
  color:var(--color-text);
  border-color:rgba(194,160,106,0.36);
  background:rgba(194,160,106,0.08);
}

/* --- Forms --- */
.form-shell-header{margin-bottom:24px}
.form-shell-header h2{font-size:clamp(1.6rem,2.4vw,2.2rem)}
.form-shell-header p{margin-top:8px}
.form-group{margin-bottom:18px}
.form-group label{
  display:block;
  margin-bottom:8px;
  color:var(--color-text);
  font-size:14px;
  font-weight:600;
}
.form-row{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.form-group input,.form-group textarea,.form-group select{
  width:100%;
  min-height:50px;
  padding:13px 16px;
  border:1px solid var(--color-border);
  border-radius:16px;
  background:rgba(255,255,255,0.02);
  color:var(--color-text);
  transition:border-color var(--transition),background-color var(--transition),box-shadow var(--transition);
}
.form-group select{
  background-color:#101714;
  color:var(--color-text);
  color-scheme:dark;
}
.form-group select option{
  background-color:#101714;
  color:#f3efe6;
}
.form-group select option:checked{
  background-color:#2a332d;
  color:#f1debb;
}
.form-group textarea{min-height:128px;resize:vertical}
.form-group input::placeholder,.form-group textarea::placeholder,.form-group select:invalid{color:rgba(175,180,170,0.7)}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{
  border-color:rgba(194,160,106,0.5);
  background:rgba(255,255,255,0.03);
  outline:none;
  box-shadow:0 0 0 4px rgba(194,160,106,0.08);
}
.form-group input[aria-invalid="true"],.form-group textarea[aria-invalid="true"],.form-group select[aria-invalid="true"]{
  border-color:rgba(214,100,100,0.8);
  box-shadow:0 0 0 4px rgba(214,100,100,0.08);
}
.form-error{
  min-height:1.25em;
  margin-top:6px;
  color:var(--color-error);
  font-size:13px;
}
.form-helper{
  display:block;
  margin-top:8px;
  color:rgba(243,239,230,0.68);
  font-size:13px;
}
.field-counter{
  display:block;
  margin-top:8px;
  text-align:right;
  color:rgba(243,239,230,0.62);
  font-size:12px;
}
.checkbox-list{
  display:grid;
  gap:12px;
}
.checkbox-item{
  padding:16px 18px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:18px;
  background:rgba(255,255,255,0.018);
  transition:border-color var(--transition),background-color var(--transition),box-shadow var(--transition);
}
.checkbox-item.has-error{
  border-color:rgba(214,100,100,0.7);
  box-shadow:0 0 0 4px rgba(214,100,100,0.08);
}
.checkbox-label{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:12px;
  align-items:flex-start;
  cursor:pointer;
}
.checkbox-label input{
  width:18px;
  height:18px;
  margin-top:4px;
  accent-color:var(--color-accent);
}
.checkbox-copy{
  display:grid;
  gap:4px;
}
.checkbox-copy span{
  color:var(--color-text);
  font-size:14px;
  font-weight:600;
}
.checkbox-copy small{
  color:rgba(243,239,230,0.7);
  font-size:13px;
}
.inline-status{
  display:none;
  margin-top:18px;
  padding:14px 16px;
  border:1px solid transparent;
  border-radius:16px;
  font-size:14px;
  line-height:1.5;
}
.inline-status.is-visible{display:block}
.inline-status.is-info{
  border-color:rgba(194,160,106,0.24);
  background:rgba(194,160,106,0.08);
  color:var(--color-text);
}
.inline-status.is-error{
  border-color:rgba(214,100,100,0.38);
  background:rgba(214,100,100,0.08);
  color:#f1d3d3;
}

/* --- Footer --- */
.site-footer{
  margin-top:0;
  border-top:1px solid rgba(255,255,255,0.08);
  background:
    radial-gradient(circle at 20% 8%,rgba(194,160,106,0.06),transparent 18%),
    linear-gradient(180deg,rgba(16,23,19,0.98),rgba(8,11,9,1));
}
.site-footer .container{padding-top:52px;padding-bottom:28px}
.footer-grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) repeat(3,minmax(0,1fr));
  gap:28px;
  margin-bottom:28px;
}
.footer-brand img{height:56px;width:auto}
.footer-brand p{
  max-width:340px;
  margin-top:18px;
  font-size:14px;
}
.footer-col h4{
  margin-bottom:14px;
  color:var(--color-text);
  font-size:12px;
  font-weight:700;
  letter-spacing:0.16em;
  text-transform:uppercase;
}
.footer-col a{
  display:block;
  padding:5px 0;
  color:var(--color-text-muted);
  font-size:14px;
}
.footer-col a:hover{color:var(--color-accent)}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,0.06);
}
.footer-bottom p,.footer-bottom a{
  color:var(--color-text-muted);
  font-size:13px;
}

/* --- Cookie banner --- */
.cookie-banner{
  position:fixed;
  left:22px;
  right:22px;
  bottom:22px;
  z-index:1300;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
  padding:18px 20px;
  border:1px solid rgba(194,160,106,0.18);
  border-radius:24px;
  background:rgba(14,20,16,0.96);
  box-shadow:var(--shadow-soft);
  transform:translateY(calc(100% + 32px));
  transition:transform var(--transition);
}
.cookie-banner.is-visible{transform:translateY(0)}
.cookie-banner p{
  max-width:720px;
  font-size:14px;
}
.cookie-btns{display:flex;gap:10px;flex-wrap:wrap}

/* --- Demo / Reservation mockup --- */
.demo-badge{
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:42px;
  padding:10px 16px;
  border:1px solid rgba(194,160,106,0.24);
  border-radius:999px;
  background:rgba(194,160,106,0.08);
  color:var(--color-accent);
  font-size:13px;
  font-weight:700;
  letter-spacing:0.04em;
}
.demo-badge svg{width:18px;height:18px}
.subpage-hero{
  padding:calc(var(--header-height) + 52px) 0 64px;
  background:
    radial-gradient(circle at 50% 0%,rgba(194,160,106,0.08),transparent 22%),
    linear-gradient(180deg,rgba(18,27,22,0.92),rgba(10,14,12,0.98));
  border-bottom:1px solid rgba(255,255,255,0.06);
}
.subpage-hero .container{
  display:grid;
  gap:14px;
  justify-items:center;
  text-align:center;
}
.subpage-hero-split .container{
  grid-template-columns:minmax(0,1.02fr) minmax(0,0.98fr);
  align-items:center;
  justify-items:stretch;
  text-align:left;
}
.subpage-hero .label-caps{justify-content:center;margin-bottom:12px}
.subpage-hero p{max-width:620px;margin:14px auto 0}
.subpage-hero .label-caps,
.subpage-hero p{
  opacity:0;
  transform:translate3d(0,16px,0);
  animation:heroElementReveal 680ms cubic-bezier(0.16,1,0.3,1) forwards;
}
.subpage-hero .label-caps{animation-delay:80ms}
.subpage-hero p{animation-delay:280ms}
.subpage-hero-split .label-caps{justify-content:flex-start}
.subpage-hero-split p{max-width:58ch;margin:14px 0 0}
.tournaments-hero{
  position:relative;
  min-height:clamp(560px,76vh,820px);
  display:grid;
  align-items:end;
  padding:calc(var(--header-height) + 96px) 0 118px;
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(ellipse at 50% 34%,rgba(218,181,112,0.2),transparent 40%),
    linear-gradient(180deg,rgba(4,7,6,0.3) 0%,rgba(4,7,6,0.12) 34%,rgba(6,10,8,0.7) 100%),
    linear-gradient(90deg,rgba(4,7,6,0.68) 0%,rgba(4,7,6,0.28) 50%,rgba(4,7,6,0.46) 100%),
    url('/turnieje-hero.webp') center center / cover no-repeat;
}
.tournaments-hero::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:34%;
  background:linear-gradient(180deg,transparent,rgba(9,13,11,0.96));
  z-index:0;
  pointer-events:none;
}
.tournaments-hero .container{
  position:relative;
  z-index:1;
  justify-items:center;
  max-width:var(--max-width);
  text-align:center;
}
.tournaments-hero .label-caps{
  justify-content:center;
}
.tournaments-hero h1{
  max-width:12ch;
  font-size:clamp(3.2rem,6.4vw,6.5rem);
  line-height:0.98;
  letter-spacing:0;
  text-shadow:0 18px 54px rgba(0,0,0,0.66);
}
.tournaments-hero p{
  max-width:58ch;
  margin:18px auto 0;
  color:rgba(243,239,230,0.88);
  text-shadow:0 12px 32px rgba(0,0,0,0.58);
}
.reservation-hero{
  position:relative;
  min-height:clamp(460px,62vh,660px);
  display:grid;
  align-items:center;
  padding:calc(var(--header-height) + 88px) 0 112px;
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(ellipse at 31% 46%,rgba(194,160,106,0.16) 0%,rgba(194,160,106,0.04) 35%,transparent 62%),
    linear-gradient(180deg,rgba(3,5,4,0.36) 0%,rgba(5,8,7,0.16) 46%,rgba(7,10,8,0.76) 100%),
    linear-gradient(90deg,rgba(3,5,4,0.72) 0%,rgba(6,10,8,0.42) 42%,rgba(7,12,9,0.2) 100%),
    url('/Rezerwacje-hero.webp') center 50% / cover no-repeat;
}
.reservation-hero::after{
  content:'';
  position:absolute;
  inset:auto 0 0;
  height:36%;
  background:linear-gradient(180deg,transparent,rgba(9,13,11,0.92));
  pointer-events:none;
  z-index:0;
}
.reservation-hero .container{
  position:relative;
  z-index:1;
  max-width:var(--max-width);
  justify-items:start;
  text-align:left;
}
.reservation-hero .label-caps{
  justify-content:flex-start;
  margin-bottom:18px;
  text-shadow:0 10px 30px rgba(0,0,0,0.46);
  opacity:0;
  transform:translateY(14px);
  animation:heroElementReveal 680ms cubic-bezier(.19,1,.22,1) forwards;
}
.reservation-hero h1{
  max-width:12.5ch;
  margin:0;
  font-size:clamp(3.1rem,6vw,6rem);
  line-height:1.02;
  letter-spacing:0;
  text-wrap:balance;
  text-shadow:0 18px 54px rgba(0,0,0,0.62);
}
.reservation-hero p{
  max-width:680px;
  margin:22px 0 0;
  color:rgba(243,239,230,0.88);
  font-size:clamp(1rem,1.45vw,1.22rem);
  line-height:1.65;
  text-shadow:0 12px 34px rgba(0,0,0,0.58);
  opacity:0;
  transform:translateY(16px);
  animation:heroElementReveal 760ms cubic-bezier(.19,1,.22,1) 160ms forwards;
}
.breadcrumb{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:8px;
  margin-bottom:22px;
  font-size:13px;
  color:var(--color-text-muted);
}
.breadcrumb a{color:var(--color-text-muted)}
.breadcrumb a:hover{color:var(--color-accent)}

.reservation-intro{
  display:grid;
  justify-items:center;
  max-width:760px;
  margin:0 auto 34px;
  text-align:center;
}
.reservation-note{
  max-width:620px;
  margin:12px auto 0;
  font-size:14px;
}
.reservation-preview{
  margin-bottom:40px;
  padding:34px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:32px;
  background:
    radial-gradient(circle at 88% 12%,rgba(194,160,106,0.08),transparent 20%),
    linear-gradient(180deg,rgba(17,24,20,0.98),rgba(12,17,14,0.98));
  box-shadow:var(--shadow-card);
}
.reservation-preview-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:26px;
  margin-bottom:28px;
}
.reservation-preview-copy{
  max-width:620px;
}
.reservation-preview-copy h2{
  margin-top:12px;
  max-width:14ch;
}
.reservation-preview-copy p{
  max-width:56ch;
  margin-top:14px;
}
.reservation-preview-status{
  max-width:280px;
  display:grid;
  gap:12px;
  justify-items:start;
}
.reservation-preview-status p{
  font-size:14px;
  margin:0;
}
.reservation-preview-grid{
  display:grid;
  grid-template-columns:minmax(260px,320px) minmax(0,1fr);
  gap:22px;
}
.preview-sidebar,
.preview-stage{
  padding:24px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:24px;
  background:rgba(255,255,255,0.018);
}
.preview-field + .preview-field{
  margin-top:22px;
}
.preview-label{
  display:block;
  margin-bottom:12px;
  color:var(--color-accent);
  font-size:12px;
  font-weight:700;
  letter-spacing:0.14em;
  text-transform:uppercase;
}
.preview-toggle{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.preview-toggle-btn,
.preview-resource{
  width:100%;
  min-height:46px;
  padding:12px 14px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:16px;
  background:rgba(255,255,255,0.02);
  color:var(--color-text);
  text-align:left;
  cursor:pointer;
  font-size:14px;
  font-weight:600;
  transition:border-color var(--transition),background-color var(--transition),transform var(--transition),opacity var(--transition),color var(--transition);
}
.preview-toggle-btn:hover,
.preview-resource:hover,
.slot:hover{
  transform:translateY(-1px);
}
.preview-toggle-btn.is-active,
.preview-resource.is-active{
  border-color:rgba(194,160,106,0.34);
  background:linear-gradient(180deg,rgba(194,160,106,0.12),rgba(194,160,106,0.05));
}
.preview-resource-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.preview-resource.is-dim{
  opacity:0.52;
}
.preview-summary{
  display:grid;
  gap:8px;
  margin-top:24px;
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,0.07);
}
.preview-summary p{
  margin:0;
  font-size:14px;
}
.preview-summary strong{
  color:var(--color-text);
}
.preview-stage-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  margin-bottom:18px;
}
.preview-stage-copy h3{
  margin-top:10px;
}
.preview-stage-copy p{
  max-width:44ch;
  margin-top:10px;
}
.preview-meta-chips{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:flex-end;
}
.preview-meta-chip{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:6px 12px;
  border-radius:999px;
  border:1px solid rgba(194,160,106,0.2);
  background:rgba(194,160,106,0.06);
  color:rgba(243,239,230,0.82);
  font-size:12px;
  font-weight:600;
}
.preview-legend{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:18px;
}
.preview-legend-item{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--color-text-muted);
  font-size:13px;
}
.preview-legend-dot{
  width:10px;
  height:10px;
  border-radius:50%;
}
.preview-legend-dot.is-accent{background:#d6b67e}
.preview-legend-dot.is-default{background:#5a6d60}
.preview-legend-dot.is-muted{background:#353d38}
.preview-slots{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.slot{
  min-height:74px;
  padding:14px 14px 12px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:18px;
  background:rgba(255,255,255,0.02);
  color:var(--color-text);
  text-align:left;
  cursor:pointer;
  transition:border-color var(--transition),background-color var(--transition),transform var(--transition),opacity var(--transition);
}
.slot.is-accent{
  border-color:rgba(194,160,106,0.34);
  background:linear-gradient(180deg,rgba(194,160,106,0.14),rgba(194,160,106,0.05));
}
.slot.is-selected{
  border-color:rgba(214,182,126,0.72);
  background:linear-gradient(180deg,rgba(214,182,126,0.2),rgba(214,182,126,0.08));
  box-shadow:0 12px 24px rgba(0,0,0,0.16);
}
.slot.is-muted{
  background:rgba(255,255,255,0.012);
  color:rgba(243,239,230,0.78);
}
.slot.is-selected .slot-status{
  color:rgba(243,239,230,0.92);
}
.slot-time{
  display:block;
  font-family:var(--font-heading);
  font-size:1rem;
  color:var(--color-text);
}
.slot-status{
  display:block;
  margin-top:8px;
  font-size:12px;
  color:rgba(243,239,230,0.68);
}
.preview-caption{
  margin-top:18px;
  font-size:13px;
  color:rgba(243,239,230,0.7);
}

.reservation-payment-demo{
  margin-bottom:40px;
  padding:34px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:32px;
  background:
    radial-gradient(circle at 86% 14%,rgba(62,86,71,0.16),transparent 20%),
    linear-gradient(180deg,rgba(17,24,20,0.98),rgba(12,17,14,0.98));
  box-shadow:var(--shadow-card);
}
.reservation-payment-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:22px;
  margin-bottom:26px;
}
.reservation-payment-header p{
  max-width:60ch;
  margin-top:12px;
}
.reservation-payment-shell{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,0.86fr);
  gap:22px;
}
.reservation-payment-fields{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.reservation-payment-field{
  display:grid;
  gap:10px;
}
.reservation-payment-field.is-wide{
  grid-column:1 / -1;
}
.reservation-payment-field label{
  color:var(--color-text);
  font-size:14px;
  font-weight:600;
}
.reservation-demo-type{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.reservation-demo-kind,
.amount-preset{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:11px 16px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:999px;
  background:rgba(255,255,255,0.02);
  color:var(--color-text);
  font-size:14px;
  font-weight:600;
  transition:border-color var(--transition),background-color var(--transition),transform var(--transition),color var(--transition),box-shadow var(--transition);
}
.reservation-demo-kind:hover,
.amount-preset:hover{
  transform:translateY(-1px);
}
.reservation-demo-kind.is-active,
.amount-preset.is-active{
  border-color:rgba(194,160,106,0.34);
  background:linear-gradient(180deg,rgba(194,160,106,0.12),rgba(194,160,106,0.05));
  box-shadow:0 12px 24px rgba(0,0,0,0.12);
}
.reservation-demo-summary,
.voucher-summary-card{
  padding:24px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:24px;
  background:rgba(255,255,255,0.018);
}
.reservation-demo-summary{
  display:grid;
  gap:14px;
}
.reservation-demo-summary-row,
.voucher-summary-row{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
  padding-bottom:12px;
  border-bottom:1px solid rgba(255,255,255,0.07);
}
.reservation-demo-summary-row:last-of-type,
.voucher-summary-row:last-of-type{
  border-bottom:none;
  padding-bottom:0;
}
.reservation-demo-summary strong,
.voucher-summary-row strong{
  color:var(--color-text);
}
.reservation-demo-cta{
  width:100%;
  opacity:0.64;
  cursor:not-allowed;
}
.reservation-demo-note{
  font-size:13px;
  color:rgba(243,239,230,0.7);
}

.reservation-section{
  padding-top:82px;
}
.reservation-checkout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px,360px);
  gap:26px;
  align-items:start;
}
.reservation-builder-card,
.reservation-summary-card{
  border:1px solid rgba(255,255,255,0.08);
  border-radius:28px;
  background:
    linear-gradient(180deg,rgba(18,26,21,0.97),rgba(11,16,13,0.98)),
    var(--color-bg-elevated);
  box-shadow:var(--shadow-card);
}
.reservation-builder-card{
  padding:38px;
}
.reservation-summary-card{
  position:sticky;
  top:calc(var(--header-height) + 24px);
  align-self:start;
  max-height:calc(100vh - var(--header-height) - 36px);
  overflow:auto;
  overscroll-behavior:contain;
  padding:24px;
  background:
    linear-gradient(180deg,rgba(18,26,21,0.92),rgba(12,17,14,0.96)),
    var(--color-bg-elevated);
}
.reservation-step + .reservation-step{
  margin-top:34px;
  padding-top:34px;
  border-top:1px solid rgba(194,160,106,0.13);
}
.reservation-step .label-caps{
  white-space:nowrap;
}
.reservation-step h2{
  margin-top:12px;
  font-size:clamp(1.72rem,2.1vw,2.35rem);
  line-height:1.12;
  letter-spacing:0;
}
.reservation-summary-card h2{
  margin-top:10px;
  font-size:clamp(1.32rem,1.8vw,1.6rem);
  line-height:1.16;
  letter-spacing:0;
}
.reservation-step-copy{
  margin-top:10px;
  max-width:none;
  color:rgba(243,239,230,0.76);
  font-size:15px;
  line-height:1.65;
}
.reservation-minimum-copy{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  margin-top:14px;
  padding:10px 14px;
  border:1px solid rgba(230,197,139,0.26);
  border-radius:14px;
  background:rgba(194,160,106,0.11);
  color:rgba(255,250,238,0.94);
  font-size:clamp(1rem,1.18vw,1.08rem);
  font-weight:800;
  line-height:1.45;
  box-shadow:0 16px 36px rgba(0,0,0,0.18);
}
.reservation-step-note{
  margin-top:18px;
  padding:12px 14px;
  border:1px solid rgba(194,160,106,0.14);
  border-radius:16px;
  background:rgba(194,160,106,0.045);
  font-size:14px;
  color:rgba(243,239,230,0.74);
}
.reservation-step-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:18px 24px;
}
.reservation-step-head > div:first-child{
  flex:1 1 430px;
  min-width:0;
}
.reservation-step .form-group{
  margin-top:18px;
}
.reservation-step form{
  margin-top:20px;
}
.reservation-type-toggle{
  display:inline-grid;
  grid-template-columns:repeat(2,minmax(128px,1fr));
  gap:8px;
  margin-top:18px;
  padding:6px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:18px;
  background:rgba(255,255,255,0.035);
}
.reservation-type-button{
  min-height:46px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  padding:12px 20px;
  border:1px solid transparent;
  border-radius:14px;
  background:transparent;
  color:rgba(243,239,230,0.74);
  font-weight:800;
  letter-spacing:0.02em;
  cursor:pointer;
  transition:background-color var(--transition),border-color var(--transition),color var(--transition),box-shadow var(--transition),transform var(--transition);
}
.reservation-type-icon{
  width:22px;
  height:22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
}
.reservation-type-icon svg{
  width:22px;
  height:22px;
}
.reservation-type-icon circle,
.reservation-type-icon path{
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.reservation-type-button[data-reservation-type="bilard"] .reservation-type-icon circle:nth-of-type(2){
  fill:rgba(255,255,255,0.18);
}
.reservation-type-button:hover{
  color:var(--color-text);
  border-color:rgba(194,160,106,0.28);
  background:rgba(194,160,106,0.06);
}
.reservation-type-button:focus-visible{
  outline:none;
  box-shadow:0 0 0 4px rgba(194,160,106,0.14);
}
.reservation-type-button.is-active,
.reservation-type-button[aria-pressed="true"]{
  color:#141007;
  border-color:rgba(230,197,139,0.7);
  background:linear-gradient(135deg,#e7c985,#b9904f);
  box-shadow:0 14px 26px rgba(194,160,106,0.18);
}
.reservation-slot-resource-list{
  display:grid;
  gap:16px;
  margin-top:24px;
}
.reservation-slot-resource-card{
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
  align-items:stretch;
  position:relative;
  overflow:hidden;
  padding:16px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:22px;
  background:
    linear-gradient(135deg,rgba(255,255,255,0.045),rgba(255,255,255,0.014)),
    rgba(7,11,9,0.38);
  box-shadow:0 14px 34px rgba(0,0,0,0.16);
}
.reservation-slot-resource-card.has-thumbnail{
  grid-template-columns:180px minmax(0,1fr);
  gap:0;
  min-height:190px;
  padding:0;
}
.reservation-slot-resource-media{
  position:relative;
  align-self:stretch;
  min-height:100%;
  height:100%;
  overflow:hidden;
  border:0;
  border-radius:22px 0 0 22px;
  background:rgba(255,255,255,0.04);
  isolation:isolate;
  margin-right:0;
  width:100%;
}
.reservation-slot-resource-media::after{
  content:'';
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(90deg, rgba(0,0,0,0) 0%, rgba(5,14,10,0.25) 55%, rgba(5,14,10,0.80) 100%);
  pointer-events:none;
}
.reservation-slot-resource-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.reservation-slot-resource-card[data-resource-type="dart"] .reservation-slot-resource-media img,
.reservation-slot-resource-card[data-resource-type="darts"] .reservation-slot-resource-media img{
  object-position:58% center;
}
.reservation-slot-resource-body{
  min-width:0;
}
.reservation-slot-resource-card.has-thumbnail .reservation-slot-resource-body{
  position:relative;
  z-index:1;
  padding:20px;
  background:transparent;
}
.reservation-slot-resource-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin-bottom:12px;
  padding-bottom:10px;
  border-bottom:1px solid rgba(255,255,255,0.07);
}
.reservation-slot-resource-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
  min-width:0;
}
.reservation-slot-resource-title h3{
  min-width:0;
  font-size:1.12rem;
  letter-spacing:0;
}
.reservation-slot-resource-title p{
  flex:0 0 auto;
  margin:0;
  padding:5px 10px;
  border:1px solid rgba(194,160,106,0.2);
  border-radius:999px;
  background:rgba(194,160,106,0.07);
  color:rgba(243,239,230,0.82);
  font-size:12px;
  font-weight:700;
  line-height:1.25;
}
.reservation-slot-row{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(110px,1fr));
  gap:8px;
  width:100%;
}
.reservation-slot-button{
  min-height:60px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
  gap:6px;
  padding:10px 10px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:14px;
  background:rgba(255,255,255,0.02);
  color:var(--color-text);
  text-align:left;
  transition:border-color var(--transition),background-color var(--transition),transform var(--transition),opacity var(--transition),box-shadow var(--transition);
}
.reservation-slot-button:hover:not([disabled]){
  transform:translateY(-1px);
  border-color:rgba(194,160,106,0.42);
  box-shadow:0 10px 22px rgba(0,0,0,0.18);
}
.reservation-slot-button.is-available{
  border-color:rgba(111,148,122,0.58);
  background:linear-gradient(180deg,rgba(97,131,109,0.18),rgba(97,131,109,0.08));
}
.reservation-slot-button.is-selected{
  border-color:rgba(214,182,126,0.82);
  background:linear-gradient(180deg,rgba(194,160,106,0.34),rgba(194,160,106,0.15));
  box-shadow:0 12px 26px rgba(0,0,0,0.22),inset 0 0 0 1px rgba(243,239,230,0.06);
}
.reservation-slot-button.is-blocked,
.reservation-slot-button.is-closed{
  cursor:not-allowed;
  opacity:0.84;
}
.reservation-slot-button.is-blocked{
  border-color:rgba(214,100,100,0.46);
  background:rgba(214,100,100,0.1);
}
.reservation-slot-button.is-closed{
  border-color:rgba(111,118,113,0.38);
  background:rgba(255,255,255,0.03);
}
.reservation-slot-button.is-available .reservation-slot-status,
.reservation-slot-button.is-selected .reservation-slot-status{
  color:rgba(243,239,230,0.84);
}
.reservation-slot-button.is-blocked .reservation-slot-status{
  color:#f0c1c1;
}
.reservation-slot-button.is-closed .reservation-slot-status{
  color:rgba(243,239,230,0.56);
}
.reservation-slot-button[disabled]{
  pointer-events:none;
}
.reservation-slot-time{
  color:var(--color-text);
  font-family:var(--font-heading);
  font-size:0.94rem;
  line-height:1;
  letter-spacing:0;
}
.reservation-slot-status{
  color:rgba(243,239,230,0.72);
  font-size:9.5px;
  font-weight:700;
  letter-spacing:0.06em;
  text-transform:uppercase;
  line-height:1.15;
}
.reservation-legend{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
  max-width:420px;
}
.reservation-legend-item{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:30px;
  padding:5px 9px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:999px;
  background:rgba(255,255,255,0.025);
  color:rgba(243,239,230,0.72);
  font-size:12px;
  font-weight:600;
  line-height:1;
}
.reservation-legend-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  box-shadow:0 0 0 3px rgba(255,255,255,0.035);
}
.reservation-legend-dot.is-available{background:#6f947a}
.reservation-legend-dot.is-selected{background:#d6b67e}
.reservation-legend-dot.is-blocked{background:#d66464}
.reservation-legend-dot.is-closed{background:#6f7671}
.reservation-closed-message{
  margin-top:18px;
  padding:14px 16px;
  border:1px solid rgba(214,100,100,0.24);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(214,100,100,0.1),rgba(214,100,100,0.045));
  color:#f1d3d3;
  font-size:14px;
}
.reservation-loading{
  grid-column:1 / -1;
  padding:24px;
  border:1px dashed rgba(194,160,106,0.3);
  border-radius:18px;
  background:rgba(194,160,106,0.05);
  color:rgba(243,239,230,0.82);
  text-align:center;
}
.reservation-summary-card .voucher-summary-list{
  gap:14px;
  margin-top:20px;
}
.reservation-summary-card .voucher-summary-row{
  display:grid;
  gap:6px;
  padding-bottom:14px;
}
.reservation-summary-card .voucher-summary-row span{
  color:rgba(243,239,230,0.58);
  font-size:12px;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
}
.reservation-summary-card .voucher-summary-row strong{
  max-width:none;
  text-align:left;
  font-size:15px;
  line-height:1.45;
}
.reservation-summary-selection-list{
  display:grid;
  gap:7px;
  max-width:none;
  margin:0;
  padding:0;
  text-align:left;
}
.reservation-summary-selection-list li{
  color:var(--color-text);
  font-weight:600;
  line-height:1.45;
}
.reservation-summary-selection-item{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  padding:10px 0;
  border-bottom:1px solid rgba(255,255,255,0.08);
}
.reservation-summary-selection-item:last-child{
  border-bottom:0;
}
.reservation-summary-selection-copy{
  display:grid;
  gap:3px;
  min-width:0;
}
.reservation-summary-selection-copy strong{
  overflow-wrap:anywhere;
}
.reservation-summary-selection-copy small{
  color:rgba(243,239,230,0.66);
  font-size:12px;
  font-weight:700;
}
.reservation-summary-remove{
  min-height:34px;
  border:1px solid rgba(255,255,255,0.14);
  border-radius:999px;
  background:rgba(255,255,255,0.04);
  color:var(--color-text);
  cursor:pointer;
  font:inherit;
  font-size:12px;
  font-weight:800;
  padding:6px 10px;
}
.reservation-summary-remove:hover,
.reservation-summary-remove:focus-visible{
  border-color:rgba(214,182,126,0.6);
  outline:none;
}
.reservation-summary-card .voucher-summary-total{
  margin-top:18px;
  padding-top:18px;
}
.reservation-summary-card .voucher-summary-total span{
  color:rgba(243,239,230,0.66);
  font-size:13px;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
}
.reservation-summary-card .voucher-summary-total strong{
  font-size:clamp(1.85rem,2.7vw,2.2rem);
  letter-spacing:0;
}
.reservation-summary-card .btn{
  min-height:52px;
  margin-top:22px;
}

/* --- Vouchers --- */
.voucher-hero{
  position:relative;
  min-height:clamp(560px,78vh,820px);
  display:grid;
  align-items:center;
  padding:calc(var(--header-height) + 94px) 0 116px;
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(ellipse at 28% 42%,rgba(218,181,112,0.2),transparent 36%),
    linear-gradient(90deg,rgba(4,7,6,0.76) 0%,rgba(4,7,6,0.5) 36%,rgba(4,7,6,0.12) 70%,rgba(4,7,6,0.28) 100%),
    linear-gradient(180deg,rgba(4,7,6,0.14) 0%,rgba(4,7,6,0.08) 38%,rgba(7,11,9,0.72) 100%),
    url('/assets/img/voucher-hero.webp') center center / cover no-repeat;
}
.voucher-hero::after{
  content:'';
  position:absolute;
  inset:auto 0 0;
  height:34%;
  z-index:0;
  background:linear-gradient(180deg,transparent,rgba(9,13,11,0.96));
  pointer-events:none;
}
.voucher-hero .container{
  position:relative;
  z-index:1;
  justify-items:start;
  text-align:left;
}
.voucher-hero-copy{
  max-width:620px;
}
.voucher-hero .label-caps{
  justify-content:flex-start;
  text-shadow:0 10px 30px rgba(0,0,0,0.54);
}
.voucher-hero h1{
  max-width:12ch;
  font-size:clamp(3.1rem,6vw,6.1rem);
  line-height:1.02;
  letter-spacing:0;
  text-shadow:0 18px 54px rgba(0,0,0,0.66);
}
.voucher-hero p{
  max-width:58ch;
  margin:20px 0 0;
  color:rgba(243,239,230,0.9);
  font-size:clamp(1rem,1.42vw,1.18rem);
  line-height:1.68;
  text-shadow:0 12px 34px rgba(0,0,0,0.6);
}
.voucher-hero-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-start;
  gap:12px;
  margin-top:28px;
}
.voucher-highlights{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-start;
  gap:12px;
  margin-top:26px;
}
.voucher-highlight{
  display:inline-flex;
  align-items:center;
  min-height:42px;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid rgba(194,160,106,0.2);
  background:rgba(194,160,106,0.08);
  color:rgba(243,239,230,0.88);
  font-size:13px;
  font-weight:600;
}
.steps-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  margin-top:34px;
}
.step-card{
  padding:28px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:26px;
  background:linear-gradient(180deg,rgba(17,24,20,0.96),rgba(12,17,14,0.98));
  box-shadow:var(--shadow-card);
}
.step-number{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  margin-bottom:18px;
  border-radius:50%;
  border:1px solid rgba(194,160,106,0.24);
  background:rgba(194,160,106,0.08);
  color:var(--color-accent);
  font-family:var(--font-heading);
  font-size:1rem;
}
.step-card h3{
  margin-bottom:10px;
}
.scope-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px;
}
.scope-card{
  padding:30px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:28px;
  background:linear-gradient(180deg,rgba(17,24,20,0.98),rgba(12,17,14,0.98));
  box-shadow:var(--shadow-card);
}
.scope-card.is-warning{
  border-color:rgba(194,160,106,0.2);
  background:
    radial-gradient(circle at 84% 18%,rgba(194,160,106,0.08),transparent 18%),
    linear-gradient(180deg,rgba(20,28,23,0.98),rgba(12,17,14,0.98));
}
.scope-card ul{
  display:grid;
  gap:12px;
  margin-top:20px;
  list-style:none;
}
.scope-card li{
  position:relative;
  padding-left:24px;
  color:var(--color-text-muted);
}
.scope-card li::before{
  content:'';
  position:absolute;
  top:10px;
  left:0;
  width:10px;
  height:10px;
  border-radius:50%;
  background:var(--color-accent);
}
.scope-card.is-warning li::before{
  background:#d66464;
}
.voucher-layout{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(320px,0.92fr);
  gap:24px;
  align-items:start;
}
.payment-status-layout{
  max-width:760px;
  margin:0 auto;
  grid-template-columns:minmax(0,1fr);
}
.voucher-form-card{
  padding:30px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:30px;
  background:linear-gradient(180deg,rgba(17,24,20,0.98),rgba(12,17,14,0.98));
  box-shadow:var(--shadow-card);
}
.voucher-form-section + .voucher-form-section{
  margin-top:30px;
  padding-top:28px;
  border-top:1px solid rgba(255,255,255,0.07);
}
.voucher-form-section h3{
  margin-bottom:10px;
}
.voucher-section-helper{
  margin:0 0 18px;
  color:rgba(243,239,230,0.72);
  font-size:14px;
}
.amount-presets{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:14px;
}
.voucher-summary-card{
  position:sticky;
  top:calc(var(--header-height) + 24px);
}
.payment-status-card{
  position:static;
  padding:32px;
  border-radius:30px;
  background:
    radial-gradient(circle at 86% 12%,rgba(194,160,106,0.08),transparent 18%),
    linear-gradient(180deg,rgba(17,24,20,0.98),rgba(12,17,14,0.98));
  box-shadow:var(--shadow-card);
}
.voucher-summary-card h3{
  margin-bottom:10px;
}
.voucher-summary-list{
  display:grid;
  gap:12px;
  margin-top:22px;
}
.voucher-summary-total{
  margin-top:16px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,0.07);
}
.voucher-summary-total strong{
  display:block;
  margin-top:8px;
  color:var(--color-text);
  font-family:var(--font-heading);
  font-size:1.9rem;
  letter-spacing:-0.04em;
}
.voucher-preview-surface{
  margin-top:24px;
  padding:24px;
  border:1px solid rgba(194,160,106,0.2);
  border-radius:24px;
  background:
    radial-gradient(circle at 86% 12%,rgba(194,160,106,0.14),transparent 20%),
    linear-gradient(180deg,rgba(194,160,106,0.08),rgba(194,160,106,0.03));
}
.voucher-preview-surface h4{
  margin:12px 0 8px;
}
.voucher-preview-tag{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:4px 10px;
  border-radius:999px;
  background:rgba(17,24,20,0.5);
  color:var(--color-text);
  font-size:12px;
  font-weight:700;
  letter-spacing:0.05em;
  text-transform:uppercase;
}
.voucher-preview-recipient{
  color:var(--color-text);
  font-family:var(--font-heading);
  font-size:1.3rem;
  letter-spacing:-0.03em;
}
.voucher-preview-message{
  color:rgba(243,239,230,0.84);
  font-size:15px;
  line-height:1.75;
}
.summary-note{
  margin-top:18px;
  font-size:13px;
  color:rgba(243,239,230,0.72);
}
.invoice-note{
  padding:28px;
  border:1px solid rgba(194,160,106,0.18);
  border-radius:28px;
  background:
    radial-gradient(circle at 86% 14%,rgba(194,160,106,0.1),transparent 18%),
    linear-gradient(180deg,rgba(17,24,20,0.98),rgba(12,17,14,0.98));
  box-shadow:var(--shadow-card);
}
.thankyou-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:12px;
}
.thankyou-summary{
  margin:24px auto 0;
  padding:24px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:24px;
  background:linear-gradient(180deg,rgba(17,24,20,0.98),rgba(12,17,14,0.98));
  text-align:left;
}
.thankyou-summary h2{
  font-size:1.55rem;
}
.thankyou-summary-grid{
  display:grid;
  gap:12px;
  margin-top:18px;
}

/* --- Thank you / 404 / Legal --- */
.thankyou,.page-404{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:calc(var(--header-height) + 20px) 24px 40px;
}
.thankyou-content,.page-404 > div{
  max-width:560px;
  text-align:center;
}
.thankyou-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:92px;
  height:92px;
  margin-bottom:24px;
  border-radius:50%;
  border:1px solid rgba(194,160,106,0.22);
  background:rgba(194,160,106,0.08);
  color:var(--color-accent);
}
.thankyou-icon svg{width:38px;height:38px;stroke:currentColor;fill:none;stroke-width:1.85;stroke-linecap:round;stroke-linejoin:round}
.thankyou-content h1{margin-bottom:14px;font-size:clamp(2rem,4vw,3rem)}
.thankyou-content p{margin-bottom:26px}
.page-404 h1{
  margin-bottom:8px;
  color:var(--color-accent);
  font-size:clamp(4rem,12vw,7rem);
  line-height:0.95;
}
.page-404 h2{margin-bottom:14px}
.page-404 p{margin-bottom:24px}
.legal-content{
  max-width:820px;
  margin:0 auto;
}
.legal-content h2{margin:34px 0 14px;font-size:1.45rem}
.legal-content h3{margin:26px 0 10px;font-size:1.15rem}
.legal-content p,.legal-content li{
  font-size:15px;
  line-height:1.8;
}
.legal-content ul{
  margin:14px 0;
  padding-left:22px;
  list-style:disc;
}
.legal-content li{
  margin-bottom:8px;
  color:var(--color-text-muted);
}
.todo-placeholder{
  margin:14px 0;
  padding:14px 16px;
  border:1px dashed rgba(194,160,106,0.35);
  border-radius:18px;
  background:rgba(194,160,106,0.06);
  color:var(--color-accent);
  font-size:14px;
}
.legal-meta{
  margin-top:32px;
  color:var(--color-text-muted);
  font-size:13px;
}

/* --- Reveal --- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity 0.6s ease,transform 0.6s ease}
.reveal.is-visible{opacity:1;transform:translateY(0)}

/* --- Responsive --- */
@media(max-width:1100px){
  .hero-content{max-width:620px}
  .offer-panel-bilard,.offer-panel-dart{grid-column:span 6}
  .offer-panel-small{grid-column:span 6}
  .gallery-item--feature,.gallery-item--tall,.gallery-item--wide,.gallery-item--square,.gallery-item--medium{grid-column:span 6}
  .steps-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .subpage-hero-split .container{grid-template-columns:1fr}
  .reservation-checkout,
  .voucher-layout,
  .reservation-payment-shell{grid-template-columns:1fr}
  .reservation-summary-card,
  .voucher-summary-card{position:static}
  .reservation-summary-card{max-height:none;overflow:visible}
}

@media(max-width:960px){
  .section-padding{padding:94px 0}
  #cennik{padding-bottom:52px}
  #galeria{padding-top:52px}
  .hero{
    min-height:100vh;
    min-height:100svh;
  }
  .hero-shell{padding-bottom:60px}
  .hero-content{max-width:600px}
  .hero-highlights{max-width:560px}
  .akademia-split,.tournament-layout,.contact-grid{grid-template-columns:1fr}
  .academy-values{grid-template-columns:1fr}
  .pricing-premium{
    grid-template-columns:1fr;
    max-width:680px;
  }
  .pricing-premium-card--feature,
  .pricing-premium-card--voucher{
    grid-column:auto;
  }
  .pricing-premium-card--voucher .pricing-premium-main{
    grid-template-columns:1fr;
  }
  .pricing-premium-card.has-pricing-accent{
    grid-template-columns:minmax(0,1fr) 96px;
  }
  .pricing-rate-tiles{grid-template-columns:1fr}
  .pricing-grid{
    grid-template-columns:1fr;
    max-width:640px;
  }
  .pricing-card-feature,
  .pricing-card-voucher{
    grid-column:auto;
    width:100%;
    justify-self:stretch;
  }
  .pricing-split-list{grid-template-columns:1fr}
  .pricing-row{grid-template-columns:auto minmax(0,1fr)}
  .pricing-row-price{grid-column:2;text-align:left}
  .pricing-row-voucher{grid-template-columns:1fr}
  .pricing-row-cta{justify-items:start}
  .pricing-row-bilard{grid-template-columns:1fr}
  .pricing-rate{padding:12px 14px}
  .reviews-toolbar{align-items:flex-start;flex-direction:column}
  .pricing-card-icon{
    width:96px;
    height:96px;
  }
  .pricing-card-icon svg{
    width:58px;
    height:58px;
  }
  .pricing-premium-card--feature .pricing-card-icon{
    width:108px;
    height:108px;
  }
  .pricing-premium-card--feature .pricing-card-icon svg{
    width:64px;
    height:64px;
  }
  .has-pricing-accent .pricing-premium-copy{
    padding-right:0;
  }
  .reservation-step-head{display:grid}
  .reservation-legend{justify-content:flex-start}
  .reservation-hero{
    min-height:clamp(420px,58vh,580px);
    padding:calc(var(--header-height) + 74px) 0 88px;
    background-position:center center;
  }
  .voucher-hero{
    min-height:clamp(500px,70vh,660px);
    padding:calc(var(--header-height) + 72px) 0 88px;
    background-position:62% center;
  }
  .reservation-preview-header,
  .reservation-preview-grid{grid-template-columns:1fr;display:grid}
  .reservation-preview-status{max-width:none}
  .preview-stage-top{display:grid}
  .preview-meta-chips{justify-content:flex-start}
  .reservation-payment-header{display:grid}
  .scope-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:768px){
  .container{padding:0 20px}
  .header-inner{padding:0 20px}
  .logo img{height:46px}
  .pricing-premium-card{
    min-height:0;
    gap:20px;
  }
  .pricing-premium-actions,
  .pricing-final-actions{
    width:100%;
  }
  .pricing-premium-actions .btn,
  .pricing-final-actions .btn{
    width:100%;
  }
  .pricing-premium-footer .btn{
    margin-left:0;
  }
  .pricing-card{min-height:0}
  .pricing-card-price strong,
  .pricing-split-row strong{font-size:1.5rem}
  .hero{
    min-height:100vh;
    min-height:100svh;
    align-items:center;
  }
  .hero-shell{padding:calc(var(--header-height) + 28px) 0 42px}
  .hero-bg img{object-position:66% center}
  .hero-bg::after{
    background:
      radial-gradient(ellipse at 28% 50%,rgba(3,6,5,0.9) 0%,rgba(3,6,5,0.64) 44%,rgba(3,6,5,0.18) 72%,transparent 100%),
      linear-gradient(92deg,rgba(4,7,6,0.74) 0%,rgba(5,8,7,0.52) 48%,rgba(5,8,7,0.16) 100%),
      linear-gradient(180deg,rgba(8,11,9,0.14) 0%,rgba(8,11,9,0.24) 42%,rgba(8,11,9,0.84) 100%);
  }
  .hero-title{
    max-width:12.8ch;
    font-size:clamp(2.38rem,10.8vw,3.25rem);
    line-height:1.05;
  }
  .hero-content p{
    max-width:36ch;
    margin-top:16px;
  }
  .hero-cta{
    gap:10px;
    margin-top:22px;
  }
  .hero-cta,.pricing-actions,.cookie-btns{width:100%}
  .hero-cta .btn,.pricing-actions .btn,.cookie-btns .btn{width:100%}
  .hero-highlights{
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
    margin-top:22px;
  }
  .hero .hero-highlights li{
    min-height:42px;
    padding:10px 14px;
  }
  .subpage-hero-split .container{
    gap:24px;
    justify-items:start;
    text-align:left;
  }
  .reservation-hero{
    min-height:430px;
    padding:calc(var(--header-height) + 58px) 0 74px;
    background-position:center center;
  }
  .reservation-hero h1{
    font-size:clamp(2.45rem,10vw,4rem);
  }
  .reservation-hero p{
    font-size:1rem;
  }
  .voucher-hero{
    min-height:470px;
    padding:calc(var(--header-height) + 58px) 0 76px;
    background-position:64% center;
  }
  .voucher-hero h1{
    font-size:clamp(2.35rem,10vw,4rem);
  }
  .voucher-hero p{
    max-width:35ch;
    font-size:1rem;
  }
  .offer-bento,.gallery-mosaic{grid-template-columns:1fr}
  .offer-panel-bilard,.offer-panel-dart,.offer-panel-small,.gallery-item--feature,.gallery-item--tall,.gallery-item--wide,.gallery-item--square,.gallery-item--medium{grid-column:auto;grid-row:auto}
  .offer-panel-feature{min-height:380px}
  .offer-panel-small{min-height:292px}
  .offer-panel-feature .offer-panel-body > *{max-width:100%}
  .offer-panel-feature h3{font-size:clamp(2rem,9vw,2.55rem)}
  .offer-pillars{justify-content:flex-start}
  .gallery-mosaic{grid-auto-rows:auto}
  .gallery-grid{grid-template-columns:1fr}
  .gallery-item,.gallery-item--feature,.gallery-item--tall,.gallery-item--wide,.gallery-item--square,.gallery-item--medium{aspect-ratio:4/3}
  .tournament-card{grid-template-columns:1fr;justify-items:start}
  .tournament-date{
    width:100%;
    display:grid;
    grid-template-columns:auto auto auto 1fr;
    align-items:center;
    justify-items:start;
    gap:10px;
  }
  .tournament-date-label{
    grid-column:1/-1;
    margin-bottom:0;
  }
  .tournament-date-day{font-size:2.3rem}
  .tournament-date-month,.tournament-date-year{margin-top:0}
  .empty-state .btn{width:100%}
  .pricing-row{
    grid-template-columns:1fr;
    gap:12px;
    text-align:left;
  }
  .pricing-row-price{grid-column:auto}
  .pricing-rate{
    align-items:flex-start;
    flex-direction:column;
  }
  .reviews-track{
    grid-auto-columns:minmax(280px,86vw);
  }
  .reviews-nav{display:none}
  .form-row{grid-template-columns:1fr}
  .reservation-builder-card,
  .reservation-summary-card{padding:24px}
  .reservation-slot-resource-card.has-thumbnail{
    grid-template-columns:1fr;
    min-height:0;
  }
  .reservation-slot-resource-card.has-thumbnail .reservation-slot-resource-body{
    padding:18px;
    background:linear-gradient(180deg,rgba(7,11,9,0.82),rgba(7,11,9,0.2));
  }
  .reservation-slot-resource-media{
    min-height:150px;
    height:150px;
    width:100%;
    margin-right:0;
    border-radius:22px 22px 0 0;
  }
  .reservation-slot-resource-media::after{
    background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(5,14,10,0.16) 48%,rgba(5,14,10,0.62) 100%);
  }
  .reservation-slot-resource-head{display:grid}
  .reservation-slot-resource-title{align-items:flex-start;flex-direction:column}
  .reservation-summary-selection-list,
  .reservation-summary-card .voucher-summary-row strong{
    max-width:none;
  }
  .reservation-payment-fields,
  .steps-grid{grid-template-columns:1fr}
  .preview-resource-grid,
  .preview-slots{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-grid,.footer-bottom{grid-template-columns:1fr;flex-direction:column;align-items:flex-start}
  .cookie-banner{
    left:14px;
    right:14px;
    bottom:14px;
  }
  .site-footer .container{padding-top:36px}
}

@media(max-width:520px){
  .section-padding{padding:72px 0}
  #cennik{padding-bottom:42px}
  #galeria{padding-top:42px}
  .site-header{height:74px}
  :root{--header-height:74px}
  .pricing-premium-heading,
  .pricing-premium-footer{
    align-items:flex-start;
  }
  .pricing-card-icon,
  .pricing-premium-card--feature .pricing-card-icon{
    width:76px;
    height:76px;
    border-radius:14px;
    opacity:0.62;
  }
  .pricing-card-icon svg,
  .pricing-premium-card--feature .pricing-card-icon svg{
    width:46px;
    height:46px;
  }
  .pricing-premium-card.has-pricing-accent{
    grid-template-columns:1fr;
    grid-template-areas:
      "icon"
      "main"
      "footer";
  }
  .pricing-card-icon{
    justify-self:start;
  }
  .has-pricing-accent .pricing-premium-copy{
    padding-right:0;
  }
  .pricing-premium-price strong{
    font-size:clamp(30px,11vw,40px);
  }
  .pricing-rate-tile{
    padding:16px;
  }
  .pricing-rate-tiles{
    grid-template-columns:1fr;
  }
  .pricing-final-cta{
    margin-top:32px;
  }
  .pricing-card-heading{align-items:flex-start}
  .pricing-split-row{
    gap:8px;
    padding:16px;
  }
  .voucher-highlights{width:100%}
  .hero-shell{padding-top:calc(var(--header-height) + 18px);padding-bottom:30px}
  .hero-bg img{object-position:68% center}
  .hero-content{transform:translateY(-24px)}
  .hero-content .label-caps{margin-bottom:14px}
  .hero-title{
    max-width:12.5ch;
    font-size:clamp(2.08rem,10.4vw,2.78rem);
  }
  .hero-content p{font-size:0.96rem}
  .reservation-builder-card,
  .reservation-summary-card,
  .hero-highlights li,.contact-callout,.contact-panel,.contact-form-panel,.section-shell,.reservation-preview,.preview-sidebar,.preview-stage,.reservation-payment-demo,.voucher-form-card,.voucher-summary-card,.scope-card,.step-card,.invoice-note{padding:22px}
  .reservation-hero{
    min-height:390px;
    padding:calc(var(--header-height) + 44px) 0 62px;
    background-position:center center;
  }
  .reservation-hero .label-caps{margin-bottom:14px}
  .reservation-hero h1{
    font-size:clamp(2.16rem,10vw,3rem);
    line-height:1.06;
  }
  .reservation-hero p{
    max-width:34ch;
    margin-top:16px;
  }
  .voucher-hero{
    min-height:430px;
    padding:calc(var(--header-height) + 48px) 0 66px;
    background-position:66% center;
  }
  .voucher-hero h1{
    font-size:clamp(2.06rem,10vw,3rem);
    line-height:1.06;
  }
  .voucher-hero p{
    margin-top:16px;
  }
  .reservation-slot-resource-card{
    gap:12px;
  }
  .reservation-slot-resource-card.has-thumbnail{
    grid-template-columns:1fr;
    min-height:0;
  }
  .reservation-slot-resource-card.has-thumbnail .reservation-slot-resource-body{padding:14px}
  .reservation-slot-resource-media{
    min-height:130px;
    height:130px;
    border-radius:20px 20px 0 0;
  }
  .hero .hero-highlights li{padding:10px 13px}
  .offer-pillars{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    width:100%;
  }
  .offer-pillars span{
    padding:8px 9px;
    font-size:10px;
    letter-spacing:0.1em;
  }
  .offer-panel-body{padding:24px}
  .offer-panel-index{
    top:22px;
    right:22px;
    font-size:2.5rem;
  }
  .tournament-card,.pricing-row,.pricing-card{padding:22px}
  .akademia-img{min-height:320px}
  .akademia-img img{min-height:320px}
  .voucher-hero-actions .btn,
  .thankyou-actions .btn{width:100%}
  .amount-presets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .amount-preset{width:100%}
  .voucher-highlight{width:100%;justify-content:center}
  .voucher-summary-row{
    display:grid;
  }
  .reservation-slot-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .reservation-slot-button{min-height:62px}
  .preview-toggle,
  .preview-resource-grid,
  .preview-slots{grid-template-columns:1fr}
}
