
@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@400;500;600;700&family=Bebas+Neue&family=Inter:wght@400;500;600;700&display=swap');

:root {
  --background: 0 0% 6%;
  --foreground: 40 30% 92%;
  --card: 0 0% 9%;
  --card-foreground: 40 30% 92%;
  --primary: 42 78% 52%;
  --primary-foreground: 0 0% 6%;
  --secondary: 0 0% 14%;
  --secondary-foreground: 40 20% 88%;
  --muted: 0 0% 12%;
  --muted-foreground: 40 8% 60%;
  --destructive: 0 75% 50%;
  --destructive-foreground: 0 0% 98%;
  /* --red-stage:  0 80% 52%; */
  --red-stage: 0 80% 42%;
  --red-stage-foreground: 0 0% 100%;
  /* --blue-stage: 210 90% 56%; */
  --blue-stage: 210 90% 36%;
  --blue-stage-foreground: 0 0% 100%;
  --border: 0 0% 16%;
  --input: 0 0% 14%;
  --radius: 0px;  /* 4px */
  --link: 210 90% 36%;

  --gradient-stage: radial-gradient(ellipse at top, hsl(42 60% 30% / 0.5), transparent 70%);

  --shadow-gold: 0 8px 40px -8px hsl(42 78% 52% / 0.4);
  --shadow-card: 0 10px 30px -10px hsl(0 0% 0% / 0.8);
}

* { box-sizing: border-box; }
html { background: hsl(var(--background)); scroll-behavior: smooth; }
body {
  margin: 0;
  background: hsl(var(--background));
  color: hsl(var(--foreground));
  font-family: 'Inter', system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  background-image:
    radial-gradient(ellipse 80% 50% at 50% -20%, hsl(42 60% 20% / 0.25), transparent),
    radial-gradient(ellipse 60% 50% at 50% 120%, hsl(0 0% 0% / 0.6), transparent);
  background-attachment: fixed;
}
hr { max-width: 80%; border-color: #292929; border-style: dotted; margin-top: 0.875rem; margin-bottom: 0.875rem; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }
ul { list-style: none; margin: 0; padding: 0; }

h1, h2, h3, h4, .font-display {
  font-family: 'Bebas Neue', 'Oswald', sans-serif;
  letter-spacing: 0.02em;
  margin: 0;
}
.font-condensed { font-family: 'Oswald', sans-serif; }

.text-black { color: hsl(var(--primary-foreground)); }

.text-gold { color: hsl(var(--primary)); }
.bg-gold { background: hsl(var(--primary)); }
.border-gold { border-color: hsl(var(--primary)) !important; }
.shadow-gold { box-shadow: var(--shadow-gold); }

.bg-red-stage { background: hsl(var(--red-stage)); color: hsl(var(--red-stage-foreground)); }
.bg-blue-stage { background: hsl(var(--blue-stage)); color: hsl(var(--blue-stage-foreground)); }
.bg-yard { background: hsl(var(--foreground)); color: black }
.text-red-stage { color: hsl(var(--red-stage)); }
.text-blue-stage { color: hsl(var(--blue-stage)); }

@media (max-width: 380px) {
  .stage-grid p {
    font-size: .75rem;

  }
}

.container { width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 1rem; }
.muted1 { color: hsl(var(--primary)); margin: 0.1rem; }
.muted2 { color: hsl(var(--muted-foreground)); margin: 0.1rem;}

.darken {
  opacity: .6;
}

/* Buttons */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  height: 44px; padding: 0 1.25rem; border-radius: var(--radius);
  font-family: 'Oswald', sans-serif; text-transform: uppercase; letter-spacing: .08em; font-size: .875rem;
  border: 1px solid transparent; transition: all .2s ease; white-space: nowrap;
}
.btn-gold { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); box-shadow: var(--shadow-gold); }
.btn-gold:hover { background: hsl(42 78% 47%); }

.btn-outline { border-color: hsl(var(--border)); background: hsl(var(--background)); color: hsl(var(--foreground));}
.btn-outline:hover { border-color: hsl(var(--primary)); color: hsl(var(--primary)); background: hsl(42 78% 47%); color: hsl(var(--primary-foreground));  box-shadow: var(--shadow-gold);}

.btn-lg { height: 48px; padding: 0 1.75rem; font-size: 1rem; }
.btn-block { width: 100%; }
/* .btn:disabled { opacity: .4; cursor: not-allowed; } */

.btn[disabled]{
  background: hsl(var(--secondary));
  color: hsl(var(--muted-foreground));
  border: 1px solid hsl(var(--border));
  box-shadow: none;
  cursor: not-allowed;
  pointer-events: none;
}

/* Badges */
.badge {
  display: inline-flex; align-items: center; gap: .4rem; padding: .25rem .65rem;
  font-size: .625rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em;
  /* border-radius: var(--radius); */
}
.badge-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: .85;
display: none;
}

/* ============ HEADER ============ */
header.site-header {
  position: sticky; top: 0; z-index: 50;
  backdrop-filter: blur(10px);
  background: hsl(var(--background) / .85);
  border-bottom: 1px solid hsl(var(--border) / .6);
}
.header-inner { display: flex; align-items: center; justify-content: space-between; height: 72px; }
.logo img { height: 44px; width: auto; }
.main-nav { display: none; align-items: center; gap: 1.75rem; }
.main-nav a {
  font-family: 'Oswald', sans-serif; text-transform: uppercase; font-size: .875rem; letter-spacing: .06em;
  color: hsl(var(--foreground) / .8); display: inline-flex; align-items: center; gap: .35rem;
  transition: color .2s;
}
.main-nav a:hover, .main-nav a.active { color: hsl(var(--primary)); }


/* Partner radio logok - fejlec */
.partner-logos {
  display: none;
  align-items: center;
  gap: .65rem;
  padding-right: .9rem;
  margin-left: .4rem;
  margin-left: auto;
 /* border-left: 1px solid hsl(var(--border)); */
}

.partner-logos img {
  height: 40px; width: 40px; object-fit: contain; border-radius: 50%;
  opacity: .7; transition: opacity .2s ease, transform .2s ease;
}
.partner-logos img:hover { opacity: 1; transform: scale(1.08); }
@media (min-width: 1200px) { .partner-logos { display: flex; } }

/* Partner radio logok - mobilmenu */
.mobile-partner-logos {
  display: flex; align-items: center; justify-content: center; gap: 1.25rem;
  margin-top: 1rem; padding-top: 1rem; border-top: 1px solid hsl(var(--border));
}
.mobile-partner-logos img { height: 42px; width: 42px; object-fit: contain; border-radius: 50%; }


.header-actions { display: flex; align-items: center; gap: .75rem; }
.lang-btn {
  font-size: .75rem; font-weight: 600; letter-spacing: .06em; color: hsl(var(--foreground) / .6);
  border: 1px solid hsl(var(--border)); border-radius: var(--radius); padding: .35rem .6rem; background: none;
  display: block;
}
.burger {
  display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px;
  background: none; border: none; color: hsl(var(--foreground));
}
.mobile-menu { display: none; border-top: 1px solid hsl(var(--border)); background: hsl(var(--background) / .97); }
.mobile-menu.open { display: block; }
.mobile-menu .container { padding: 1rem; display: flex; flex-direction: column; gap: .25rem; }
.mobile-menu a {
  font-family: 'Oswald', sans-serif; text-transform: uppercase; letter-spacing: .06em; padding: .8rem .75rem;
  border-radius: var(--radius);
  color: hsl(var(--foreground) / .9); display: flex; align-items: center; gap: .5rem;
}
.mobile-menu a.btn-gold  {
  color: hsl(var(--primary-foreground));
}

.mobile-menu a:hover, .mobile-menu a.active { color: hsl(var(--primary)); background: hsl(var(--secondary)); }

@media (min-width: 1024px) {
  .main-nav { display: flex; }
  .burger { display: none; }
  .btn-tickets-desktop { display: inline-flex !important; }
}
/* @media (min-width: 640px) { .lang-btn { display: block; } } */

/* ============ FOOTER ============ */
footer {
  padding-bottom: 1rem;
}
footer.site-footer { border-top: 1px solid hsl(var(--border)); margin-top: 6rem; }
/* .footer-grid { display: grid; gap: 3rem; padding: 4rem 0; grid-template-columns: 1fr; } */
.footer-grid { display: grid; gap: 3rem; grid-template-columns: 1fr; padding-top: 4rem; padding-bottom: 4rem; }

.footer-grid h4 { font-size: 1.125rem; letter-spacing: .05em; color: hsl(var(--primary)); margin-bottom: 1rem; font-weight: bold; }
.footer-grid ul { display: flex; flex-direction: column; gap: .5rem; font-size: .875rem; color: hsl(var(--foreground) / .8); }
.footer-grid ul a:hover { color: hsl(var(--primary)); }
.footer-logo { height: 56px; margin-bottom: 1rem; }
.footer-logo-15 { height: 110px; margin-bottom: 1rem; }
.social-title { color: hsl(var(--primary)); margin: 0.1rem; margin-top: 0.875rem}
.social-row { display: flex; gap: .75rem; margin-top: 1rem; }
.social-row a {
  width: 40px; height: 40px; border-radius: var(--radius); border: 1px solid hsl(var(--border));
  display: flex; align-items: center; justify-content: center; color: hsl(var(--foreground) / .7);
}
.social-row a:hover { color: hsl(var(--primary)); border-color: hsl(var(--primary)); }
.contact-line { display: flex; gap: .5rem; font-size: .875rem; color: hsl(var(--foreground) / .8); margin-bottom: .6rem; align-items: flex-start; }
.partners-line { display: flex; gap: .5rem; font-size: .875rem; color: hsl(var(--foreground) / .8); margin-bottom: .6rem; align-items: flex-start; }
.supporters-line { display: flex; gap: .5rem; font-size: .875rem; color: hsl(var(--foreground) / .8); margin-bottom: .6rem; align-items: flex-start; }
@media (min-width: 768px) { .footer-grid { grid-template-columns: repeat(5, 1fr); } }

/* ============ SECTIONS ============ */
/* .section { padding: 5rem 0; } */
.section { padding-top: 5rem; padding-bottom: 5rem; }

.section-sm { padding: 3.5rem 0; }
.page-header { position: relative; border-bottom: 1px solid hsl(var(--border)); background: hsl(var(--card) / .4); overflow: hidden; }
.page-header::before { content:''; position:absolute; inset:0; opacity:.4; background: var(--gradient-stage); }
.page-header .container { position: relative; padding: 1rem 1rem; }

@media (min-width: 768px) { .page-header .container { padding: 2rem 1rem; } }
.kicker { color: hsl(var(--primary)); font-size: .75rem; text-transform: uppercase; letter-spacing: .3em; font-weight: 700; margin-bottom: .75rem; }
.page-header h1 { font-size: 3rem; line-height: 1; }
@media (min-width: 768px) { .page-header h1 { font-size: 5rem; } }
.page-header p { color: hsl(var(--foreground) / .7); margin-top: 1rem; /* max-width: 42rem; */ font-size: 1.05rem; }

.section-heading { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.section-heading h2 { font-size: 2.5rem; line-height: 1; font-weight: 500; }
@media (min-width: 768px) { .section-heading h2 { font-size: 3.5rem; } }
.section-heading .more { font-family:'Oswald',sans-serif; text-transform: uppercase; font-size:.875rem; letter-spacing:.06em; color: hsl(var(--foreground)/.8); }
.section-heading .more:hover { color: hsl(var(--primary)); }

/* ============ HERO (home) ============ */
.hero { position: relative; min-height: 92vh; display: flex; align-items: flex-end; overflow: hidden; }
/* .hero img.bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; } */
.hero video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero video.landscape { display: block; }
.hero video.portail { display: none; }
@media (max-width: 480px) {
  .hero video.landscape { display: none; }
  .hero video.portail { display: block; }
}

.hero .overlay { position: absolute; inset: 0; background: linear-gradient(to bottom, hsl(var(--background)/.4), hsl(var(--background)/.3) 40%, hsl(var(--background)) 100%); }
/* .hero-content { position: relative; z-index: 2; padding: 4rem 0;} */
.hero-content { position: relative; z-index: 2; padding-top: 4rem; padding-bottom: 4rem; }

.hero-content .logo-hero { height: 72px; margin-bottom: 1.5rem; filter: drop-shadow(0 10px 25px rgb(0 0 0 / .5)); }
.hero-content .logo-hero-15 { height: 150px; margin-bottom: 1.5rem; filter: drop-shadow(0 10px 25px rgb(0 0 0 / .5)); }
.hero-content h1 { font-size: 3rem; line-height: .95; margin-bottom: 1.5rem; } /* MINDIG VAN EGY KONCERT */
.pill { display: inline-block; padding: .35rem .85rem; margin-bottom: 1.25rem; border: 1px solid hsl(var(--primary)/.6); color: hsl(var(--primary));
  font-size: .7rem; text-transform: uppercase; letter-spacing: .3em; font-weight: 600; border-radius: var(--radius); }

@media (min-width: 768px) { .hero-content h1 { font-size: 5.5rem; } .pill {font-size: .875rem;} } /* MINDIG VAN EGY KONCERT */
@media (min-width: 1024px) { .hero-content h1 { font-size: 6.5rem; } .pill {font-size: .875rem;} } /* MINDIG VAN EGY KONCERT */
.hero-content .lead { font-size: 1.1rem; color: hsl(var(--foreground)/.8); max-width: 36rem; margin-bottom: 2rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; }

/* ============ EVENT GRID / CARD ============ */
.event-grid { display: grid; gap: 1.25rem; grid-template-columns: 1fr; margin-top: 2.5rem; }
@media (min-width: 640px) { .event-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1280px) { .event-grid.cols-4 { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 1024px) { .event-grid.cols-3 { grid-template-columns: repeat(3, 1fr); } }

.event-card {
  position: relative; overflow: hidden; border-radius: var(--radius); background: hsl(var(--card));
  border: 1px solid hsl(var(--border)); display: flex; flex-direction: column; transition: border-color .25s;
  height: 100%; width: 100%;

}
/* .event-card:hover { border-color: hsl(var(--primary) / .6); } */
/* .event-card:hover .stage-badge { right: -6rem } */
/* .event-card:hover .date-stamp { left: -5rem} */
.event-card:hover .thumb .fade { top: 5rem }
.event-card .thumb { position: relative; aspect-ratio: 960 / 365; overflow: hidden; display: block; }
.event-card .thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .7s; }
.event-card:hover .thumb img { transform: scale(1.05); }
.event-card .thumb .fade { position: absolute; inset: 0; background: linear-gradient(to top, hsl(var(--card)), hsl(var(--card)/.4) 60%, transparent); transition: top .3s ease;}
/* .event-card .date-stamp {
  position: absolute; top: .6rem; left: .6rem; background: hsl(var(--background)/.85); backdrop-filter: blur(4px);
  padding: .35rem .6rem; border-left: 2px solid hsl(var(--primary)); border-radius: var(--radius);
  transition: left .3s ease;
} */
.event-card .date-stamp {
  left: .6rem; background: hsl(var(--background)/.85); backdrop-filter: blur(4px);
  padding: .35rem .6rem; border-left: 2px solid hsl(var(--primary)); border-radius: var(--radius);
  width: 60px;

}

.event-card .date-stamp .day { font-family:'Bebas Neue',sans-serif; font-size: 1.8rem; line-height: 1; color: hsl(var(--primary)); }
.event-card .date-stamp .month { font-size: .6rem; text-transform: uppercase; letter-spacing: .12em; color: hsl(var(--foreground)/.8); margin-top: .1rem;
  border-bottom: 1px dotted hsl(var(--muted-foreground));
  padding-bottom: 3px;
  width: 33px;
  display: inline-block;
}
.event-card .date-stamp .dayname { font-size: .6rem; text-transform: uppercase; letter-spacing: .12em; color: hsl(var(--foreground)/.8); margin-top: .1rem; padding-top: 3px;}
/* .event-card .stage-badge { position: absolute; top: .6rem; right: .6rem; transition: right .3s ease;} */
.event-card .stage-badge { right: .6rem; transition: right .3s ease;}
.event-card .featured-badge { position: absolute; bottom: .6rem; left: .6rem; background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); font-size: .6rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; padding: .2rem .5rem; border-radius: var(--radius); }
.event-card .body { padding: .9rem; display: flex; flex-direction: column; gap: .6rem; flex: 1; }
.event-card h3 { font-size: 1.4rem; line-height: 1.1; }
.event-card h3:hover { color: hsl(var(--primary)); }
.event-card .support { font-size: .875rem; color: hsl(var(--muted-foreground)); margin-top: .2rem; }

.event-card .meta-row { display: flex; align-items: center; gap: .6rem; font-size: .7rem; color: hsl(var(--muted-foreground)); }
.event-card .meta-row span.genre { padding: .15rem .5rem; border: 1px solid hsl(var(--border)); border-radius: var(--radius); text-transform: uppercase; letter-spacing: .06em; }

.event-card .center-row {
  display: flex;
  flex-direction: column;
  justify-content: flex-start; /* felülre igazítás */
  flex: 1;                     /* kitölti a maradék helyet */
  padding-top: .75rem;
}
.event-card .top-row { display: flex; justify-content: space-between; align-items: center; margin-top: 0; margin-bottom: auto;   padding-top: .75rem; gap: .5rem; }

.event-card .bottom-row { display: flex; align-items: center; justify-content: space-between; margin-top: 0; font-size: .700rem; padding-top: 0; gap: .5rem; color: rgb(161, 156, 145) }

.event-card .price-label { font-size: .625rem; text-transform: uppercase; letter-spacing: .12em; color: hsl(var(--muted-foreground)); }
.event-card .price { font-family:'Bebas Neue',sans-serif; font-size: 1.15rem; }
.event-card .price span { font-size: .625rem; color: hsl(var(--muted-foreground)); }
.status-available { color: #34d399; font-size: .7rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; }
.status-soon, .status-warning { color: hsl(var(--primary)); font-size: .7rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; }
.status-danger { color: hsl(var(--destructive)); font-size: .7rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; }
.event-card .actions { display: flex; flex-direction: column; gap: .35rem; }
.event-card .actions .btn { height: 36px; font-size: .75rem; }

/* Compact variant (month list) */
.event-compact { display: flex; align-items: center; gap: 1rem; padding: .75rem; border-radius: var(--radius); border: 1px solid hsl(var(--border)); background: hsl(var(--card)); transition: border-color .2s, background .2s; }
.event-compact:hover { /* border-color: hsl(var(--primary)/.6); */ background: hsl(var(--secondary)); }
.event-compact:hover .title {
  color: hsl(var(--primary));
}
.event-compact:hover .btn-outline { border-color: hsl(var(--primary)); color: hsl(var(--primary)); background: hsl(42 78% 47%); color: hsl(var(--primary-foreground));  box-shadow: var(--shadow-gold);}

.view-calendar .month-title {
  margin-top: 2rem;
  margin-bottom: .5rem;
}
.event-compact .d { text-align: center; min-width: 50px; padding: .3rem 0; border-right: 1px solid hsl(var(--border)); padding-right: 1rem; }
.event-compact .d .day { font-family:'Bebas Neue',sans-serif; font-size: 1.5rem; color: hsl(var(--primary)); line-height: 1; }
.event-compact .d .month { font-size: .625rem; text-transform: uppercase; letter-spacing: .12em; color: hsl(var(--muted-foreground)); margin-top: .25rem; }
.event-compact .d .dayname { font-size: .625rem; text-transform: uppercase; letter-spacing: .12em; color: hsl(var(--muted-foreground)); margin-top: .25rem;
  border-top: 1px dotted hsl(var(--muted-foreground)); padding-top: 3px; }
.event-compact .mid { flex: 1; min-width: 0; }
.event-compact .mid .title { font-family:'Bebas Neue',sans-serif; font-size: 1.15rem; letter-spacing:.02em; }
.event-compact .mid .sub { font-size: .7rem; color: hsl(var(--muted-foreground)); }
.event-compact .mid .status { display: none;  }
.event-compact .mid .status-sm { display: block; color: hsl(var(--muted-foreground)); }

.event-compact .right { display: none; text-align: right; }
.event-compact .right .status { margin-bottom: .25rem; color: hsl(var(--muted-foreground)); }
.event-compact .right-sm { display: block; text-align: right;  }
.event-compact .right .p { font-size: .875rem; font-weight: 600; }
.event-compact .right-sm .p { font-size: .875rem; font-weight: 600; }
.compact-grid { display: grid; gap: .75rem; margin-top: 2.5rem; }
@media (min-width: 768px) { .compact-grid { grid-template-columns: repeat(2, 1fr); } }

@media (min-width: 480px) {
  .event-compact .right { display: block; }
  .event-compact .right-sm { display: none; }
  .event-compact .mid .status { display: block;}
  .event-compact .mid .status-sm { display: none; }

}

/* ============ EVENT SLIDER (home featured) ============ */
.slider { position: relative; }
.slider-track {
  /* display: flex; gap: 1.25rem; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; */
  display: flex; gap: 1.25rem; overflow-x: auto; scroll-snap-type: x proximity; scroll-behavior: smooth;

  padding-bottom: .5rem; margin: 0 -1rem; padding-left: 1rem; padding-right: 1rem;
  -ms-overflow-style: none; scrollbar-width: none;
}
.slider-track::-webkit-scrollbar { display: none; }
.slider-track.no-snap { scroll-snap-type: none; }

.slide {
  scroll-snap-align: start; flex: 0 0 auto; width: 78%; display: flex;
}
@media (min-width: 640px) { .slide { width: calc((100% - 1.25rem) / 2); } .slider-track { margin: 0; padding-left: 0; padding-right: 0; } }
@media (min-width: 1024px) { .slide { width: calc((100% - 2.5rem) / 3); } }

/* .slide { scroll-snap-align: start; flex: 0 0 auto; width: 78%; }

@media (min-width: 640px) {
  .slide { width: calc((100% - 1.25rem) / 2); }
  .slider-track { margin: 0; padding-left: 0; padding-right: 0; }
}
@media (min-width: 1024px) {
    .slide { width: calc((100% - 2 * 1.25rem) / 3); }
}
*/

.slider-btn {
  display: none; position: absolute; top: 50%; transform: translateY(-50%); width: 42px; height: 42px;
  border-radius: 50%; background: hsl(var(--background)/.9); border: 1px solid hsl(var(--border));
  align-items: center; justify-content: center; color: hsl(var(--foreground)/.8); box-shadow: var(--shadow-card); z-index: 10;
}
.slider-btn:hover { color: hsl(var(--primary)); border-color: hsl(var(--primary)/.6); }
.slider-btn.prev { left: -1rem; }
.slider-btn.next { right: -1rem; }
@media (min-width: 768px) { .slider-btn { display: flex; } }


/* ============ STAGE CARDS (home) ============ */
.stage-grid { display: grid; gap: 1.25rem; margin-top: 2.5rem; }
@media (min-width: 768px) { .stage-grid { grid-template-columns: repeat(2, 1fr); } }
.stage-card { position: relative; display: block; aspect-ratio: 4/3; overflow: hidden; border-radius: var(--radius); border: 1px solid hsl(var(--border)); }
@media (min-width: 768px) { .stage-card { aspect-ratio: 16/10; } }
.stage-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .7s; }
.stage-card:hover img { transform: scale(1.05); }
.stage-card .fade { position: absolute; inset: 0; background: linear-gradient(to top, hsl(var(--background)), hsl(var(--background)/.6), transparent); }
.stage-card .info { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 1.5rem; }
.stage-card h3 { font-size: 3rem; line-height: 1; margin-bottom: .5rem; }
.stage-card h3.text-red-stage { color:hsl(var(--red-stage)) }
.stage-card h3.text-blue-stage { color:hsl(var(--blue-stage)) }
.stage-card p { color: hsl(var(--foreground)/.8); max-width: 28rem; margin-bottom: .5rem; }
.stage-card .cap { font-size: .7rem; text-transform: uppercase; letter-spacing: .12em; color: hsl(var(--primary)); font-weight: 700; }

/* @media (min-width: ) and (max-width: ÉRTÉK) { */
@media (min-width: 768px ) and (max-width: 930px){
  .stage-card .info { justify-content: flex-start;  }
  .stage-card p { margin-top: auto; }
  .stage-card h3.text-blue-stage { color: hsl(210deg 92.02% 56.09%); }
}

@media (min-width: 0px ) and (max-width: 420px){
  .stage-card .info { justify-content: flex-start;  }
  .stage-card p { margin-top: auto; }
  .stage-card h3.text-blue-stage { color: hsl(210deg 92.02% 56.09%); }

}

/* ============ PLAN / INFO CARDS ============ */
.info-grid { display: grid; gap: 1.25rem; margin-top: 2.5rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .info-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .info-grid.cols-3 { grid-template-columns: repeat(3, 1fr); } }
.info-card { padding: 1.5rem; border: 1px solid hsl(var(--border)); border-radius: var(--radius); background: hsl(var(--card)/.6); transition: border-color .2s; }
.info-card:hover { border-color: hsl(var(--primary)/.6); }
.info-card .icon { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; border-radius: var(--radius); background: hsl(var(--primary)/.1); color: hsl(var(--primary)); margin-bottom: 1rem; }
.info-card h3 { font-size: 1.25rem; letter-spacing: .04em; margin-bottom: .5rem; }
.info-card p { font-size: .875rem; color: hsl(var(--muted-foreground)); line-height: 1.6; margin: 0; }
.info-card a { color: hsl(var(--primary)); }

/* ============ NEWSLETTER ============ */
.newsletter { position: relative; overflow: hidden; border-radius: var(--radius); border: 1px solid hsl(var(--primary)/.4); background: linear-gradient(135deg, hsl(var(--card)), hsl(var(--background))); padding: 2rem; }
@media (min-width: 768px) { .newsletter { padding: 3.5rem; } }
.newsletter-grid { position: relative; display: grid; gap: 2rem; align-items: center; }
@media (min-width: 768px) { .newsletter-grid { grid-template-columns: 1fr 1fr; } }
.newsletter h2 { font-size: 2.25rem; line-height: 1.2; margin-bottom: .75rem; }
@media (min-width: 768px) { .newsletter h2 { font-size: 3rem; } }

.newsletter-form { display: flex; flex-direction: column; gap: .9rem; }

.newsletter-check { display: flex; align-items: flex-start; gap: .6rem; cursor: pointer; }
.newsletter-check input[type="checkbox"] {
  width: 18px; height: 18px; flex-shrink: 0; margin-top: 2px;
  accent-color: hsl(var(--primary));
  cursor: pointer;
}
.newsletter-check span { font-size: .8rem; line-height: 1.5; color: hsl(var(--foreground)/.75); }
.newsletter-check span a { color: hsl(var(--primary)); text-decoration: underline; }

/* ============ FORM ELEMENTS ============ */
input, textarea, select {
  width: 100%; background: hsl(var(--secondary)); border: 1px solid hsl(var(--border)); color: hsl(var(--foreground));
  border-radius: var(--radius); padding: 0 .9rem; height: 44px; font-family: inherit; font-size: .9rem;
}
textarea { padding: .7rem .9rem; height: auto; resize: vertical; }
input:focus, textarea:focus, select:focus { outline: none; border-color: hsl(var(--primary)); box-shadow: 0 0 0 2px hsl(var(--primary)/.3); }
label.field-label { font-size: .625rem; text-transform: uppercase; letter-spacing: .1em; color: hsl(var(--muted-foreground)); font-weight: 700; display: block; margin-bottom: .3rem; }

/* ============ FILTER BAR (programok) ============ */
.filter-bar { position: sticky; top: 72px; z-index: 30; background: hsl(var(--background)/.95); backdrop-filter: blur(10px); border-bottom: 1px solid hsl(var(--border)); }
.filter-bar .container { padding: 1rem; display: flex; flex-direction: column; gap: .75rem; }
.filter-row { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.search-wrap { position: relative; flex: 1; min-width: 100px; }
.search-wrap svg { position: absolute; left: .75rem; top: 50%; transform: translateY(-50%); opacity: .5; }
.search-wrap input { padding-left: 2.25rem; height: 44px; background: hsl(var(--secondary)); }
.chip-group { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
.chip-group .chip-label { display: none; font-size: .625rem; text-transform: uppercase; letter-spacing: .1em; color: hsl(var(--muted-foreground)); font-weight: 700; margin-right: .15rem;}
.chip {
  height: 32px; padding: 0 .65rem; border-radius: var(--radius); font-size: .75rem; text-transform: uppercase;
  letter-spacing: .06em; font-family: 'Oswald', sans-serif; border: 1px solid hsl(var(--border)); background: transparent;
  color: hsl(var(--foreground)/.7); display: inline-flex; align-items: center; gap: .35rem; white-space: nowrap;
}
.chip:hover { color: hsl(var(--primary)); border-color: hsl(var(--primary)/.6); }
.chip.active { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); border-color: hsl(var(--primary)); }
.chip.active.red { background: hsl(var(--red-stage)); border-color: hsl(var(--red-stage)); color: #fff; }
.chip.active.blue { background: hsl(var(--blue-stage)); border-color: hsl(var(--blue-stage)); color: #fff; }
.divider-v { width: 1px; height: 24px; background: hsl(var(--border)); display: none; }
@media (min-width: 768px) { .divider-v { display: block; } }
@media (min-width: 480px) {
  .chip-group .chip-label {
    display: block;
  }

 }
select.chip-select { height: 44px; width: auto; min-width: 110px; border-radius: var(--radius); font-size: .75rem; text-transform: uppercase; font-family:'Oswald',sans-serif; padding: 0 .5rem; }
select.chip-select .chip-select-optgroup {
  color: hsl(var(--primary));
  letter-spacing: 3px;
  font-size: 1rem;
}
select.chip-select .chip-select-optgroup option {
    color: hsl(var(--foreground));
}

.results-count { font-size: .875rem; color: hsl(var(--muted-foreground)); margin-bottom: 1.5rem; }
.results-count b { color: hsl(var(--primary)); }
.clear-filters { margin-left: auto; display: inline-flex; align-items: center; gap: .3rem; font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: hsl(var(--muted-foreground)); background: none; border: none; }
.clear-filters:hover { color: hsl(var(--primary)); }
.view-toggle { display: flex; align-items: center; gap: .25rem; border: 1px solid hsl(var(--border)); border-radius: var(--radius); padding: .25rem; background: hsl(var(--secondary)); }
.view-toggle button { height: 34px; padding: 0 .7rem; border-radius: var(--radius); border: none; background: none; color: hsl(var(--foreground)/.7); font-size: .7rem; text-transform: uppercase; font-family:'Oswald',sans-serif; display: flex; align-items: center; gap: .4rem; }
.view-toggle button.active { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); }
.empty-state { text-align: center; padding: 5rem 0; color: hsl(var(--muted-foreground)); }
.empty-state p.big { font-size: 1.9rem; font-family:'Bebas Neue',sans-serif; color: hsl(var(--foreground)/.6); margin-bottom: .5rem; }

/* ============ EVENT DETAIL HERO ============ */
.event-hero { position: relative; overflow: hidden; padding: 2.5rem 0 2.5rem; }
@media (min-width: 768px) { .event-hero { padding: 4rem 0 2.5rem; } }
.event-hero .hero-bg-blur { position: absolute; inset: 0; z-index: 0; }
.event-hero .hero-bg-blur img { width: 100%; height: 100%; object-fit: cover; filter: blur(10px) brightness(.45) saturate(1.1); transform: scale(1); }
.event-hero .hero-bg-blur .fade { position: absolute; inset: 0; background: linear-gradient(to bottom, hsl(var(--background)/.3), hsl(var(--background)/.9)); }
.event-hero .container { position: relative; z-index: 1; }
.hero-image-frame { max-width: 960px; margin: 0 auto 2.5rem; border-radius: var(--radius); overflow: hidden; border: 1px solid hsl(var(--border)); box-shadow: var(--shadow-card); }
.hero-image-frame img { width: 100%; height: auto; display: block; }
.event-hero-grid { display: grid; gap: 2.5rem; align-items: end; }
@media (min-width: 1024px) { .event-hero-grid { grid-template-columns: 1fr 420px; } }
.back-link { display: inline-flex; align-items: center; gap: .5rem; font-size: .875rem; text-transform: uppercase; letter-spacing: .06em; color: hsl(var(--foreground)/.7); font-family: 'Oswald', sans-serif; margin-bottom: 2rem; }
.back-link:hover { color: hsl(var(--primary)); }
.event-hero h1 { font-size: 3.2rem; line-height: .9; margin-bottom: 1.25rem; }
@media (min-width: 768px) { .event-hero h1 { font-size: 5.5rem; } }
.event-hero .support-line { font-size: 1.15rem; color: hsl(var(--foreground)/.8); margin-bottom: 1.25rem; }
.meta-row-hero { display: flex; flex-wrap: wrap; gap: 1.5rem; font-size: .875rem; }
.event-venue-jump { font-size:.875rem;text-transform:uppercase;letter-spacing:.04em;display:inline-block;margin-top:.75rem; }

.meta-item { display: flex; align-items: center; gap: .6rem; }
.meta-item .ico { width: 36px; height: 36px; border-radius: var(--radius); border: 1px solid hsl(var(--border)); display: flex; align-items: center; justify-content: center; color: hsl(var(--primary)); }
.meta-item .lbl { font-size: .6rem; text-transform: uppercase; letter-spacing: .1em; color: hsl(var(--muted-foreground)); }
.meta-item .val { font-family: 'Oswald', sans-serif; text-transform: uppercase; letter-spacing: .04em; }

/* .ticket-aside { display: none; background: hsl(var(--card)); border: 1px solid hsl(var(--primary)/.4); border-radius: var(--radius); padding: 1.5rem; box-shadow: var(--shadow-gold); } */
.ticket-aside {
  display: none;
  background: hsl(var(--card)); border: 1px solid hsl(var(--primary)/.4); border-radius: var(--radius);
  padding: 1.5rem; box-shadow: var(--shadow-gold);
  width: 360px;
  justify-self: end;
}

@media (min-width: 1024px) { .ticket-aside { display: block; } }
.ticket-aside .lbl { font-size: .7rem; text-transform: uppercase; letter-spacing: .12em; color: hsl(var(--primary)); font-weight: 700; margin-bottom: .6rem; }
.ticket-aside .price { font-size: 2.25rem; margin-bottom: 1rem; }
.ticket-aside .price span { font-size: 1rem; color: hsl(var(--muted-foreground)); }
.ticket-aside .note { font-size: .75rem; color: hsl(var(--muted-foreground)); text-align: center; margin-top: .75rem; }

/* Detail content */
/* .detail-grid { display: grid; gap: 3rem; padding: 4rem 0; } */
/* .detail-grid { display: grid; gap: 3rem; padding-top: 4rem; padding-bottom: 4rem; } */
.detail-grid { display: grid; gap: 3rem; padding-top: 4rem; padding-bottom: 4rem; }
@media (min-width: 1024px) { .detail-grid { grid-template-columns: 1fr 360px; } }
.detail-main { display: flex; flex-direction: column; gap: 3rem; }
.detail-block h2 { font-size: 2rem; display: flex; align-items: center; gap: .75rem; margin-bottom: 1.25rem; }
.detail-block h3 { font-weight: 100; }
@media (min-width: 768px) { .detail-block h2 { font-size: 2.5rem; } }
.detail-block h2 .rule { width: 2rem; height: 1px; background: hsl(var(--primary)); }

/* .detail-block p { color: hsl(var(--foreground)/.8); font-size: 1.05rem; line-height: 1.7; } */
.detail-block p { color: hsl(var(--foreground)/.8); font-size: .875rem; line-height: 1.3 }
/* .detail-block a { color: hsl(var(--link)) }; */
.detail-block img {
  display: inline-block;
}

.detail-description a {
  color: #66afe9;
  transition: color 200ms linear;
}
.detail-description a:hover {
  color: hsl(var(--primary));
  transition: color 200ms linear;
}

.tier-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; border: 1px solid hsl(var(--border)); border-radius: var(--radius); background: hsl(var(--card)); margin-bottom: .5rem; transition: border-color .2s, background .2s; }
.tier-row:hover { border-color: hsl(var(--primary)/.6); background: hsl(var(--secondary)); }
.tier-row .name { font-family: 'Oswald', sans-serif; text-transform: uppercase; letter-spacing: .04em; }
.tier-row .badge-inline { font-size: .6rem; text-transform: uppercase; letter-spacing: .1em; color: hsl(var(--primary)); font-weight: 700; margin-top: .25rem; }
.tier-row .price { font-size: 1.4rem; }
.schedule-item { display: flex; gap: 1.25rem; align-items: baseline; border-bottom: 1px solid hsl(var(--border)/.6); padding-bottom: .75rem; margin-bottom: .75rem; }
.schedule-item .t { font-size: 1.5rem; color: hsl(var(--primary)); width: 5rem; }
.notice-grid { display: grid; gap: .75rem; grid-template-columns: 1fr; font-size: .875rem; }
@media (min-width: 640px) { .notice-grid { grid-template-columns: 1fr 1fr; } }
.notice-item { display: flex; gap: .5rem; padding: .75rem; border: 1px solid hsl(var(--border)); border-radius: var(--radius); background: hsl(var(--card)/.4); }
.map-embed { aspect-ratio: 16/9; border-radius: var(--radius); overflow: hidden; border: 1px solid hsl(var(--border)); }
.map-embed iframe { width: 100%; height: 100%; border: 0; filter: invert(.92) hue-rotate(180deg) saturate(.7) contrast(.95); }
/* .detail-side .card-box { padding: 1.25rem; border: 1px solid hsl(var(--border)); border-radius: var(--radius); background: hsl(var(--card)); } */
.detail-side .card-box { padding: 1.5rem; border: 1px solid hsl(var(--border)); border-radius: var(--radius); background: hsl(var(--card)); }

/* Sticky mobile bar */
.mobile-buy-bar {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 40; border-top: 1px solid hsl(var(--primary)/.5);
  background: hsl(var(--background)/.95); backdrop-filter: blur(10px); padding: .75rem; display: flex; align-items: center; gap: .75rem;
}
@media (min-width: 1024px) { .mobile-buy-bar { display: none; } }
.mobile-buy-bar .grow { flex: 1; }
.mobile-buy-bar .lbl { font-size: .6rem; text-transform: uppercase; letter-spacing: .1em; color: hsl(var(--muted-foreground)); }
.mobile-buy-bar .price { font-size: 1.25rem; }
body.has-mobile-bar { padding-bottom: 80px; }

/* ============ CHECKOUT ============ */
.checkout-grid { display: grid; gap: 2rem; align-items: start; padding: 2rem 0 8rem; }
@media (min-width: 1024px) { .checkout-grid { grid-template-columns: 1fr 400px; gap: 3rem; padding-bottom: 4rem; } }
.checkout-step h2 { font-size: 1.6rem; display: flex; align-items: center; gap: .75rem; margin-bottom: 1rem; }
@media (min-width: 768px) { .checkout-step h2 { font-size: 1.9rem; } }
.checkout-step h2 .step-no { color: hsl(var(--primary)); font-family: 'Oswald', sans-serif; font-size: .875rem; letter-spacing: .1em; }
.checkout-step h2 .rule { width: 1.5rem; height: 1px; background: hsl(var(--primary)); }
.checkout-steps { display: flex; flex-direction: column; gap: 2.5rem; }

.tier-option { width: 100%; text-align: left; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; border: 1px solid hsl(var(--border)); border-radius: var(--radius); background: hsl(var(--card)); margin-bottom: .5rem; }
.tier-option.active { border-color: hsl(var(--primary)); background: hsl(var(--primary)/.05); }
.tier-option .radio { width: 16px; height: 16px; border-radius: 50%; border: 2px solid hsl(var(--muted-foreground)); flex-shrink: 0; margin-top: .2rem; display: flex; align-items: center; justify-content: center; }
.tier-option.active .radio { border-color: hsl(var(--primary)); }
.tier-option.active .radio::after { content: ''; width: 8px; height: 8px; border-radius: 50%; background: hsl(var(--primary)); }
.tier-option .left { display: flex; gap: .75rem; align-items: flex-start; min-width: 0; }
.tier-option .desc { font-size: .75rem; color: hsl(var(--muted-foreground)); margin-top: .25rem; }

.qty-control { display: inline-flex; align-items: center; border: 1px solid hsl(var(--border)); border-radius: var(--radius); background: hsl(var(--card)); }
.qty-control button { width: 44px; height: 44px; background: none; border: none; color: hsl(var(--foreground)/.8); display: flex; align-items: center; justify-content: center; }
.qty-control button:disabled { opacity: .3; }
.qty-control .val { width: 48px; text-align: center; font-family: 'Bebas Neue', sans-serif; font-size: 1.4rem; }

.pay-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; }
.pay-option { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .35rem; padding: 1rem; border: 1px solid hsl(var(--border)); border-radius: var(--radius); background: hsl(var(--card)); min-height: 88px; }
.pay-option.active { border-color: hsl(var(--primary)); background: hsl(var(--primary)/.05); color: hsl(var(--primary)); }
.pay-option .lbl { font-family: 'Oswald', sans-serif; text-transform: uppercase; letter-spacing: .04em; font-size: .875rem; }
.pay-option .sub { font-size: .6rem; text-transform: uppercase; letter-spacing: .1em; color: hsl(var(--muted-foreground)); }
.card-fields { margin-top: 1rem; padding: 1rem; border: 1px solid hsl(var(--border)); border-radius: var(--radius); background: hsl(var(--card)); display: none; }
.card-fields.show { display: block; }
.card-fields .row2 { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin-top: .75rem; }

.summary-card { border: 1px solid hsl(var(--border)); border-radius: var(--radius); background: hsl(var(--card)); overflow: hidden; position: sticky; top: 100px; }
.summary-thumb { position: relative; aspect-ratio: 16/9; }
.summary-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.summary-thumb .fade { position: absolute; inset: 0; background: linear-gradient(to top, hsl(var(--card)), hsl(var(--card)/.6), transparent); }
.summary-thumb .stage-tag { position: absolute; top: .75rem; right: .75rem; }
.summary-thumb .info { position: absolute; bottom: .75rem; left: 1rem; right: 1rem; }
.summary-thumb h2 { font-size: 1.4rem; margin-bottom: .25rem; }
.summary-thumb .date { display: flex; align-items: center; gap: .4rem; font-size: .75rem; color: hsl(var(--foreground)/.8); }
.summary-body { padding: 1.25rem; display: flex; flex-direction: column; gap: .75rem; font-size: .9rem; }
.summary-row { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.summary-total { border-top: 1px solid hsl(var(--border)); padding-top: .75rem; display: flex; align-items: center; justify-content: space-between; }
.summary-total .lbl { font-size: .7rem; text-transform: uppercase; letter-spacing: .1em; color: hsl(var(--muted-foreground)); font-weight: 700; }
.summary-total .val { font-size: 1.9rem; color: hsl(var(--primary)); }

.success-box { max-width: 42rem; margin: 0 auto; text-align: center; border: 1px solid hsl(var(--primary)/.4); background: hsl(var(--card)); border-radius: var(--radius); padding: 2.5rem 1.5rem; box-shadow: var(--shadow-gold); }
.success-icon { width: 64px; height: 64px; border-radius: 50%; background: hsl(var(--primary)/.15); border: 1px solid hsl(var(--primary)); display: flex; align-items: center; justify-content: center; margin: 0 auto 1.5rem; color: hsl(var(--primary)); }
.success-summary { text-align: left; border: 1px solid hsl(var(--border)); border-radius: var(--radius); padding: 1.25rem; background: hsl(var(--background)/.6); margin: 2rem 0; display: flex; flex-direction: column; gap: .5rem; font-size: .9rem; }

/* ============ FAQ / ACCORDION ============ */
.accordion-item { border: 1px solid hsl(var(--border)); border-radius: var(--radius); background: hsl(var(--card)); margin-bottom: .5rem; overflow: hidden; }
.accordion-trigger { width: 100%; text-align: left; padding: 1rem 1.25rem; background: none; border: none; color: hsl(var(--foreground)); font-family: 'Oswald', sans-serif; text-transform: uppercase; letter-spacing: .04em; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.accordion-trigger:hover { color: hsl(var(--primary)); }
.accordion-trigger .chev { transition: transform .2s; flex-shrink: 0; }
.accordion-item.open .chev { transform: rotate(180deg); }
.accordion-content { max-height: 0; overflow: hidden; transition: max-height .25s ease; padding: 0 1.25rem; }
.accordion-item.open .accordion-content { max-height: 300px; padding-bottom: 1.25rem; }
.accordion-content p { color: hsl(var(--foreground)/.7); margin: 0; }

/* ============ CONTACT ============ */
/* .contact-grid { display: grid; gap: 2.5rem; padding: 4rem 0; } */
.contact-grid { display: grid; gap: 2.5rem; padding-top: 4rem; padding-bottom: 4rem; }
.contact-grid a {
  color: hsl(var(--primary));
  transition: color .3s;
}
.contact-grid a:hover {
  color: hsl(var(--foreground));
  transition: color .3s
}

@media (min-width: 1024px) { .contact-grid { grid-template-columns: 1fr 1fr; } }
.contact-cards { display: flex; flex-direction: column; gap: 1rem; }
.contact-card { display: flex; gap: 1rem; padding: 1.25rem; border: 1px solid hsl(var(--border)); border-radius: var(--radius); background: hsl(var(--card)); }
.contact-card .icon { width: 44px; height: 44px; flex-shrink: 0; border-radius: var(--radius); background: hsl(var(--primary)/.1); color: hsl(var(--primary)); display: flex; align-items: center; justify-content: center; }
.contact-card .title { font-size: 1.25rem; margin-bottom: .25rem; }
.contact-form { padding: 1.5rem; border: 1px solid hsl(var(--border)); border-radius: var(--radius); background: hsl(var(--card)); height: fit-content; }
.contact-form h2 { font-size: 1.9rem; margin-bottom: .5rem; }
.form-row2 { display: grid; grid-template-columns: 1fr; gap: .75rem; margin-bottom: .75rem; }
@media (min-width: 640px) { .form-row2 { grid-template-columns: 1fr 1fr; } }
.form-field { margin-bottom: .75rem; }

/* ============ MENU PAGE ============ */
.menu-nav { position: sticky; top: 72px; z-index: 30; background: hsl(var(--background)/.95); backdrop-filter: blur(10px); border-bottom: 1px solid hsl(var(--border)); }
/* .menu-nav .row { display: flex; gap: .4rem; padding: .75rem 1rem; min-width: max-content; } */
.menu-nav a { height: 36px; margin-bottom: .3rem; margin-top: .3rem; margin-right: .75rem; padding: 0 .75rem; border-radius: var(--radius); font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; border: 1px solid hsl(var(--border)); color: hsl(var(--foreground)/.8); display: inline-flex; align-items: center;
  white-space: nowrap; }
.menu-nav-links { display: none; }
.menu-nav a:hover { color: hsl(var(--primary)); border-color: hsl(var(--primary)/.6); }



/* Mobil/tablet: legordulo kategoria-valaszto */
.menu-dropdown { position: relative; }
.menu-dropdown-toggle {
  width: 100%; height: 46px; display: flex; align-items: center; justify-content: space-between;
  padding: 0 1rem; border-radius: var(--radius); border: 1px solid hsl(var(--border)); background: hsl(var(--card));
  color: hsl(var(--foreground)); font-family: 'Oswald', sans-serif; text-transform: uppercase; letter-spacing: .05em; font-size: .85rem;
}
.menu-dropdown-toggle:hover { border-color: hsl(var(--primary)/.6); }
.menu-dropdown-chev { transition: transform .2s; color: hsl(var(--primary)); flex-shrink: 0; }
.menu-dropdown.open .menu-dropdown-chev { transform: rotate(180deg); }
.menu-dropdown-list {
  display: none; position: absolute; top: calc(100% + .5rem); left: 0; right: 0; z-index: 40;
  background: hsl(var(--card)); border: 1px solid hsl(var(--border)); border-radius: var(--radius);
  box-shadow: var(--shadow-card); overflow: hidden;
}
.menu-dropdown.open .menu-dropdown-list { display: block; }
.menu-dropdown-list a {
  display: block; padding: .8rem 1rem; font-size: .85rem; color: hsl(var(--foreground)/.85);
  border-bottom: 1px solid hsl(var(--border)/.6); text-transform: uppercase; letter-spacing: .04em; font-family: 'Oswald', sans-serif;
}
.menu-dropdown-list a:last-child { border-bottom: none; }
.menu-dropdown-list a:hover, .menu-dropdown-list a.active { color: hsl(var(--primary)); background: hsl(var(--secondary)); }

@media (min-width: 768px) {
  .menu-nav-links { display: flex; flex-wrap: wrap; align-items: center; }
  .menu-dropdown { display: none; }
}

/* Vissza a tetejere gomb */
.back-to-top {
  position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 45;
  width: 46px; height: 46px; border-radius: 50%; border: 1px solid hsl(var(--primary)/.5);
  background: hsl(var(--primary)); color: hsl(var(--primary-foreground));
  display: flex; align-items: center; justify-content: center; box-shadow: var(--shadow-gold);
  opacity: 0; visibility: hidden; transform: translateY(8px);
  transition: opacity .2s ease, visibility .2s ease, transform .2s ease;
}
.back-to-top.visible { opacity: 1; visibility: visible; transform: translateY(0); }
.back-to-top:hover { background: hsl(42 78% 47%); }





.menu-sections { column-gap: 2.5rem; padding: 3rem 0; }
@media (min-width: 768px) { .menu-sections { column-count: 2; } }
.menu-section { border: 1px solid hsl(var(--border)); border-radius: var(--radius); background: hsl(var(--card)/.6); padding: 1.5rem; scroll-margin-top: 10rem; break-inside: avoid; margin-bottom: 2.5rem; }

/* .menu-sections { display: grid; gap: 2.5rem; grid-template-columns: 1fr; padding: 3rem 0; align-items: start;} */
/* @media (min-width: 768px) { .menu-sections { grid-template-columns: 1fr 1fr; } } */
/* .menu-section { border: 1px solid hsl(var(--border)); border-radius: var(--radius); background: hsl(var(--card)/.6); padding: 1.5rem; scroll-margin-top: 8rem; } */
.menu-section header { display: flex; align-items: center; gap: .75rem; margin-bottom: 1.25rem; padding-bottom: 1rem; border-bottom: 1px solid hsl(var(--border)); }
.menu-section header .icon { width: 40px; height: 40px; border-radius: var(--radius); background: hsl(var(--primary)/.1); color: hsl(var(--primary)); display: flex; align-items: center; justify-content: center; }
.menu-section header h2 { font-size: 1.6rem; font-weight: normal; }
.menu-item { display: flex; align-items: baseline; gap: .75rem; padding: .7rem 0; border-bottom: 1px solid hsl(var(--border)/.6);

}
.menu-item:last-child { border-bottom: none; }
.menu-item .name-wrap { flex: 1; min-width: 0; display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
/* .menu-item .name-wrap { min-width: 0; align-items: center; gap: .5rem; flex-wrap: wrap; } */
.menu-item .name { font-family: 'Oswald', sans-serif; text-transform: uppercase; letter-spacing: .04em; font-size: .875rem; }
.menu-item .size { font-size: .625rem; /* text-transform: uppercase; */ letter-spacing: .1em; color: hsl(var(--muted-foreground)); }
.menu-item .tag { font-size: .55rem; text-transform: uppercase; letter-spacing: .1em; color: hsl(var(--primary)); font-weight: 700; border: 1px solid hsl(var(--primary)/.4); padding: .1rem .4rem; border-radius: var(--radius); }
.menu-item .dots { flex: 1; border-bottom: 1px dotted hsl(var(--border)/.6); margin-bottom: .25rem; }
.menu-item .price { font-family: 'Bebas Neue', sans-serif; color: hsl(var(--primary)); font-size: 1.05rem; white-space: nowrap; }


/* ============ HELYSZIN STAGE ARTICLE ============ */
.stage-article { display: grid; gap: 1.5rem; align-items: stretch; margin-bottom: 3rem; }
@media (min-width: 768px) { .stage-article { grid-template-columns: 1fr 1fr; } }
.stage-article .img-wrap { position: relative; aspect-ratio: 4/3; border-radius: var(--radius); overflow: hidden; border: 1px solid hsl(var(--border)); }
@media (min-width: 768px) { .stage-article .img-wrap { aspect-ratio: auto; } }
.stage-article .img-wrap img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.stage-article .img-wrap .fade { position: absolute; inset: 0; background: linear-gradient(to top, hsl(var(--background)/.8), transparent); }
.stage-article .img-wrap .tag { position: absolute; top: 1rem; left: 1rem; }
.stage-article .text-col { display: flex; flex-direction: column; justify-content: center; padding: .5rem 0; }
.stage-article h2 { font-size: 3.5rem; line-height: 1; margin-bottom: 1rem; }
@media (min-width: 768px) { .stage-article h2 { font-size: 4.2rem; } }
.stage-article .cap-line { font-size: .7rem; text-transform: uppercase; letter-spacing: .12em; color: hsl(var(--primary)); font-weight: 700; margin-bottom: 1rem; }
.stage-article p.desc { font-size: 1.05rem; color: hsl(var(--foreground)/.8); line-height: 1.7; margin-bottom: 1.25rem; }
.bullet-grid { display: grid; grid-template-columns: 1fr; gap: .5rem; }
@media (min-width: 640px) { .bullet-grid { grid-template-columns: 1fr 1fr; } }
.bullet-grid li { display: flex; align-items: center; gap: .5rem; font-size: .875rem; color: hsl(var(--foreground)/.8); }
.bullet-grid .dot { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; }

/* ============ 404 ============ */
.notfound { min-height: 80vh; display: flex; align-items: center; justify-content: center; text-align: center; }
.notfound h1 { font-size: 5rem; margin-bottom: 1rem; }

.desktop-pay-btn { display: none; }
@media (min-width: 1024px) { .desktop-pay-btn { display: block; } }

.mt-0 { margin-top: 0 !important; }
.text-center { text-align: center; }
.hidden { display: none !important; }
@media (min-width: 768px) { .md-block { display: block !important; } .md-hidden { display: none !important; } }



.transit-links { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1rem; margin-bottom: 1rem; }
.transit-btn {
  display: flex; align-items: flex-start; gap: .75rem; flex: 1; min-width: 190px;
  padding: .8rem 1rem; border: 1px solid hsl(var(--border)); border-radius: var(--radius);
  background: hsl(var(--card)); transition: border-color .2s, background .2s;
}
.transit-btn:hover { border-color: hsl(var(--primary)/.6); background: hsl(var(--secondary)); }
.transit-btn .t-icon {
  width: 36px; height: 36px; flex-shrink: 0; border-radius: var(--radius); background: hsl(var(--primary)/.1);
  color: hsl(var(--primary)); display: flex; align-items: center; justify-content: center;
}
.transit-btn .t-label { font-family: 'Oswald', sans-serif; text-transform: uppercase; letter-spacing: .04em; font-size: .875rem; }
.transit-btn .t-sub { font-size: .68rem; color: hsl(var(--muted-foreground)); margin-top: .1rem; }


/* Itallapon a föccösknél lévő pöttyök */
.dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: 1px solid #c9a56a;
    margin: 0;
    margin-right: 2px;
    padding: 0;
    vertical-align: middle;
}

.dot.filled {
    background: #c9a56a;
}


/* ============ COOKIE BANNER ============ */
.cookie-banner {
  position: fixed; left: 1rem; right: 1rem; bottom: 1rem; z-index: 100;
  max-width: 480px; margin: 0 auto;
  background: hsl(var(--card)); border: 1px solid hsl(var(--primary)/.4); border-radius: var(--radius);
  box-shadow: var(--shadow-card); padding: 1.25rem;
  transform: translateY(150%); opacity: 0; transition: transform .35s ease, opacity .35s ease;
  pointer-events: none;
}
.cookie-banner.visible { transform: translateY(0); opacity: 1; pointer-events: auto; }
.cookie-banner-text { font-size: .85rem; color: hsl(var(--foreground)/.85); line-height: 1.55; margin: 0 0 1rem; }
.cookie-banner-text a {
  color: hsl(var(--primary));
}
.cookie-banner-actions { display: flex; gap: .75rem; justify-content: flex-end; flex-wrap: wrap; }
.btn-sm { height: 38px; padding: 0 1rem; font-size: .8rem; }
@media (min-width: 640px) { .cookie-banner { left: auto; right: 1.5rem; bottom: 1.5rem; width: 420px; } }


.fesztivalFMPopupPlayer {
  display: none;
  position: fixed;
  right: 30px;
  bottom: 10px;
  width: 150px;
  height: 45px;
  max-width: 80px;
  margin-bottom: 20px;
  background-image: url('/img/fesztivalfm_grey.png');
  background-size: cover;
  -webkit-transition: background-image 0.2s ease-in-out;
  transition: background-image 0.2s ease-in-out;

}

.fesztivalFMPopupPlayer:hover {
  background-image: url('/img/fesztivalfm_small.png');
  -webkit-transition: background-image 0.2s ease-in-out;
  transition: background-image 0.2s ease-in-out;

}


/* .fesztivalFMPopupPlayer {
  position: fixed;
  right: 10px;
  bottom: 0px;
  width: 100px;
  max-width: 70px;
  margin-bottom: 20px;

}
.fesztivalFMPopupPlayer img {
  border-radius: 1rem;
  border: 2px solid black;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
 */

.bdpstrockPopupPlayer {
  max-width: 80px;
  right: 10px;
  position:fixed;
  bottom:20px;
  right:30px;
}

.floating-box-gold {
  border-radius: var(--radius);
  /* box-shadow: 0 5px 5px 0 hsl(var(--primary) / 1); */
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.floating-box-gold:hover {
  transform: translateY(-6px);
  /* box-shadow: 0 0 20px 8px hsl(var(--primary) / 0.6); */
}


@media (min-width: 1200px) {
  .fesztivalFMPopupPlayer {
      display: block;
      max-width: none;
      bottom: 30px;

  }

  .bdpstrockPopupPlayer {
    display: block;
    max-width: none;
  }

}

.info-content h3 {
  margin-top: 20px;
  margin-bottom: 10px;
  font-weight: 300;

}

.info-content p {
  margin-bottom: 15px;
  text-align: justify;
}

.info-content ul {
  margin-bottom: 15px;
  /* padding-left: 20px; */
}

.info-content li {
  margin-top: 10px;
  margin-bottom: 5px;
}


.info-content ul li ul {
  margin-bottom: 15px;
  padding-left: 30px;
  list-style-type: disc;
}


.info-content .section-number {
  font-weight: bold;
  color: hsl(var(--primary));
}

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

.footer-partners {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 30px;
  margin-bottom: 1rem;
}
.footer-partners img {
  max-height: 35px;
}

.footer-riders a {
  margin-left: 1rem;
  margin-right: 1rem;
  font-size:1rem;
  margin-top:1.5rem
}

.drink-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 30px;
  margin-bottom: 2rem;
}

.drink-logo img {
  height: 60px;
  padding: 5px;
  background-color: white;
  border-radius: 5px;
  float:left;
}

.footer-supporters {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 30px;
  margin-bottom: 1rem;
}
.footer-supporters img {
  max-height: 70px;
  border-radius: 5px;
  margin-left: 1rem;
  margin-right: 1rem;
}

@media (max-width: 380px) {
  .drink-logo {
    gap: 10px;
  }
  .drink-logo img {
    height: 50px;
  }
  .footer-supporters {
    margin-bottom: 4rem;
  }
  .footer-supporters img {
    max-height: 50px;
  }
}

.privacy_policy_container h2 { margin-top: 1rem; font-weight: 600; text-align: center;}

.privacy_policy_container h3 {
    margin-top: 1rem;
    font-weight: 600;
  }

.privacy_policy_container ul {
    list-style: disc;
  }

.privacy_policy_container li {
    margin-left: 2rem;
  }

.privacy_policy_container .table-container  {
  overflow: auto;
}
.privacy_policy_container table {
    border-collapse: collapse;

  }

.privacy_policy_container th {
    background: #292929;
    border: 1px solid white;
    padding: 10px 3px;
  }

.privacy_policy_container td {
    border: 1px solid white;
    padding: 5px;
    vertical-align: top;
  }

.privacy_policy_container a {
    color: hsl(var(--primary));
  }


