.esti-programok-page {
  position: relative;
  overflow: hidden;
  background: var(--color-ink-950);
}

.esti-programok-page ul { list-style: none !important; }

.esti-programok-page a:focus-visible,
.esti-programok-page button:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
}

.ep-hero { position: relative; padding-top: clamp(5rem, 10vw, 8.5rem); }
.ep-hero::before,
.ep-planning__glow,
.ep-closing__glow {
  position: absolute;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(139, 92, 246, .26) 0%, rgba(79, 70, 229, .12) 38%, transparent 70%);
  content: "";
  filter: blur(28px);
  pointer-events: none;
}
.ep-hero::before { width: 42rem; height: 42rem; top: -14rem; right: -13rem; opacity: .75; }

.ep-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 4rem);
}
.ep-hero__copy { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-4); max-width: 31rem; }
.ep-hero__copy > * { margin: 0; }
.ep-hero__copy h1 { max-width: 12ch; }
.ep-hero__copy .lead { max-width: 35rem; }
.ep-hero__support { max-width: 34rem; }
.ep-hero__actions { width: 100%; margin-top: var(--space-2); }
.ep-fact-strip { display: flex; width: 100%; min-width: 0; align-items: flex-start; gap: var(--space-3); margin-top: var(--space-2); padding: var(--space-3) var(--space-4); border: var(--border-subtle); border-radius: var(--radius-md); background: var(--color-glass-800); backdrop-filter: blur(18px) saturate(125%); }
.ep-fact-strip p { margin: 0; color: var(--color-text-secondary); font-size: var(--text-meta); line-height: var(--leading-meta); }
.ep-fact-strip__dot { width: .5rem; min-width: .5rem; height: .5rem; margin-top: .38rem; border-radius: var(--radius-full); background: var(--color-warm-copper); box-shadow: 0 0 0 4px rgba(201, 138, 87, .12); }
.ep-hero__media { position: relative; width: 100%; min-width: 0; margin: 0; overflow: hidden; border: var(--border-accent); border-radius: var(--radius-xl); aspect-ratio: 16 / 9; box-shadow: var(--shadow-deep); }
.ep-hero__media::after { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(9, 10, 15, .35), transparent 54%), linear-gradient(180deg, transparent 48%, rgba(9, 10, 15, .38)); content: ""; pointer-events: none; }
.ep-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 58% center; transition: transform var(--transition-slow); }
.ep-hero__media:hover img { transform: scale(1.03); }

.ep-section-intro { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.ep-section-intro > * { margin: 0; }
.ep-section-intro p:not(.eyebrow) { color: var(--color-text-secondary); }
.ep-layers__intro { max-width: 38.75rem; }
.ep-layers__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-6); margin-top: var(--space-12); }
.ep-layer { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-4); padding: clamp(1.5rem, 3vw, 2.5rem); border: var(--border-subtle); border-radius: var(--radius-lg); background: var(--color-glass-800); box-shadow: var(--shadow-deep); backdrop-filter: blur(18px) saturate(125%); transition: border-color var(--transition-base), background-color var(--transition-base); }
.ep-layer > * { margin: 0; }
.ep-layer:hover { border-color: rgba(139, 92, 246, .62); background: rgba(27, 29, 43, .88); }
.ep-layer--dinner { grid-column: 1; grid-row: 1; border-top: 2px solid rgba(201, 138, 87, .58); }
.ep-layer--mood { grid-column: 2; grid-row: 1; background: linear-gradient(180deg, rgba(139, 92, 246, .12), var(--color-glass-800) 30%); }
.ep-layer--poker { grid-column: 1 / 3; grid-row: 2; padding-right: min(15%, 9rem); background: linear-gradient(90deg, rgba(201, 138, 87, .07), var(--color-glass-800) 48%, rgba(9, 10, 15, .1)); }
.ep-card-kicker { color: var(--color-warm-copper); font-family: var(--font-heading); font-size: var(--text-label); font-weight: 600; letter-spacing: .14em; line-height: var(--leading-label); text-transform: uppercase; }
.ep-layer p:not(.ep-card-kicker) { max-width: 65ch; }
.ep-layer--mood p:not(.ep-card-kicker) { max-width: 48ch; }

.ep-flow__intro { max-width: 36.25rem; }
.ep-flow__grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 4fr) minmax(0, 3fr); gap: var(--space-4); margin-top: var(--space-12); position: relative; }
.ep-flow__grid::before { position: absolute; top: 2.05rem; right: 7%; left: 7%; height: 1px; background: linear-gradient(90deg, transparent, rgba(139, 92, 246, .54), transparent); content: ""; }
.ep-step { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(2.8rem, auto) minmax(0, 1fr); min-width: 0; align-content: start; gap: var(--space-4); padding: var(--space-6); border: var(--border-subtle); border-radius: var(--radius-lg); background: rgba(19, 21, 30, .66); }
.ep-step--two { margin-top: -1.5rem; padding: var(--space-8); border-color: rgba(201, 138, 87, .3); background: rgba(23, 24, 35, .88); }
.ep-step__number { color: var(--color-warm-copper); font-family: var(--font-heading); font-size: 1.2rem; font-weight: 600; letter-spacing: -.03em; line-height: 1; }
.ep-step__content { display: flex; min-width: 0; flex-direction: column; gap: var(--space-3); }
.ep-step__content > * { margin: 0; }
.ep-step__content h3 { font-size: clamp(1.25rem, 2vw, 1.5rem); }

.ep-dining__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; gap: clamp(2rem, 6vw, 5rem); }
.ep-dining__media { position: relative; width: 100%; min-width: 0; margin: 0; overflow: hidden; border: var(--border-accent); border-radius: var(--radius-xl); aspect-ratio: 4 / 5; box-shadow: var(--shadow-deep); }
.ep-dining__media::after { position: absolute; inset: 0; background: linear-gradient(145deg, rgba(79, 70, 229, .2), transparent 26%, rgba(9, 10, 15, .34)); content: ""; pointer-events: none; }
.ep-dining__media img { width: 100%; height: 100%; object-fit: cover; object-position: center top; transition: transform var(--transition-slow); }
.ep-dining__media:hover img { transform: scale(1.03); }
.ep-dining__copy { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-4); max-width: 35.625rem; }
.ep-dining__copy > * { margin: 0; }
.ep-dining__copy .lead { max-width: 36ch; }
.ep-dining__secondary { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-4); max-width: 33rem; margin-top: var(--space-2); }
.ep-dining__secondary > * { margin: 0; }

.ep-rule__intro { max-width: 39rem; }
.ep-rule__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: var(--space-6); margin-top: var(--space-12); }
.ep-rule-card,
.ep-rule-cta { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-4); padding: var(--space-6); border: var(--border-subtle); border-radius: var(--radius-lg); background: var(--color-glass-800); box-shadow: var(--shadow-deep); backdrop-filter: blur(18px) saturate(125%); }
.ep-rule-card > *, .ep-rule-cta > * { margin: 0; }
.ep-rule-card--chips { position: relative; overflow: hidden; }
.ep-chip-arc { position: absolute; width: 8rem; height: 8rem; right: -3rem; bottom: -4rem; border: 14px dotted rgba(201, 138, 87, .27); border-radius: 50%; transform: rotate(17deg); }
.ep-rule-cta { justify-content: center; border-color: rgba(139, 92, 246, .42); background: linear-gradient(145deg, rgba(139, 92, 246, .15), var(--color-glass-800)); transition: border-color var(--transition-base), background-color var(--transition-base); }
.ep-rule-cta:hover { border-color: rgba(139, 92, 246, .62); background: rgba(37, 31, 59, .85); }
.ep-rule-cta .button { width: 100%; }

.ep-interlude__frame { position: relative; min-width: 0; overflow: hidden; border-radius: var(--radius-xl); background: var(--color-surface); box-shadow: var(--shadow-deep); }
.ep-interlude__media { width: 100%; margin: 0; aspect-ratio: 16 / 9; }
.ep-interlude__media::after { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(9, 10, 15, .75) 0%, rgba(9, 10, 15, .52) 43%, rgba(9, 10, 15, .13) 72%), linear-gradient(0deg, rgba(9, 10, 15, .45), transparent 55%); content: ""; pointer-events: none; }
.ep-interlude__media img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.ep-interlude__copy { position: absolute; z-index: 1; bottom: clamp(1.5rem, 5vw, 4rem); left: clamp(1.5rem, 5vw, 4rem); display: flex; width: min(100% - 3rem, 32.5rem); min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.ep-interlude__copy > * { margin: 0; }
.ep-interlude__copy p:not(.eyebrow) { max-width: 32.5rem; color: var(--color-text-primary); }
.ep-interlude__note { padding: var(--space-4); border: var(--border-subtle); border-radius: var(--radius-md); background: rgba(19, 21, 30, .78); backdrop-filter: blur(18px); }
.ep-interlude__note p { margin: 0; font-size: var(--text-meta); line-height: var(--leading-meta); }

.ep-audience__intro { max-width: 32.5rem; }
.ep-audience__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr) minmax(0, 1fr); align-items: stretch; gap: var(--space-6); margin-top: var(--space-12); }
.ep-audience-card { position: relative; display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-4); padding: var(--space-6); border: var(--border-subtle); border-radius: var(--radius-lg); background: var(--color-glass-800); backdrop-filter: blur(18px) saturate(125%); }
.ep-audience-card > * { margin: 0; }
.ep-audience-card--featured { padding: var(--space-8); border-color: rgba(139, 92, 246, .42); background: linear-gradient(160deg, rgba(139, 92, 246, .11), var(--color-glass-800)); }
.ep-audience-card a { margin-top: auto; }
.ep-corner-mark { width: 1.5rem; height: 1.5rem; border-top: 2px solid var(--color-warm-copper); border-left: 2px solid var(--color-warm-copper); }

.ep-planning__grid { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); min-height: 29rem; }
.ep-planning__panel { position: relative; z-index: 1; display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-6); padding: clamp(1.5rem, 4vw, 3rem); border: var(--border-subtle); border-radius: var(--radius-lg); background: var(--color-glass-800); box-shadow: var(--shadow-deep); backdrop-filter: blur(18px) saturate(125%); }
.ep-planning__panel > * { margin: 0; }
.ep-planning__panel h2 { max-width: 40rem; }
.ep-planning__items { display: grid; width: 100%; min-width: 0; grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
.ep-planning__item { display: grid; grid-template-columns: 2.25rem minmax(0, 1fr); min-width: 0; gap: var(--space-4); padding-top: var(--space-6); border-top: var(--border-subtle); }
.ep-planning__item:first-child { padding-top: 0; border-top: 0; }
.ep-planning__item > span { color: var(--color-warm-copper); font-family: var(--font-heading); font-size: var(--text-meta); font-weight: 600; }
.ep-planning__item > div { display: flex; min-width: 0; flex-direction: column; gap: var(--space-2); }
.ep-planning__item h3, .ep-planning__item p { margin: 0; }
.ep-planning__item h3 { font-size: 1.25rem; }
.ep-planning__action { margin-top: var(--space-2); }
.ep-planning__glow { position: relative; width: 100%; min-width: 0; height: 100%; opacity: .8; }
.ep-planning__glow::before { position: absolute; width: 24rem; height: 24rem; top: 15%; left: -15%; border-radius: 50%; background: radial-gradient(circle, rgba(139, 92, 246, .26), rgba(79, 70, 229, .08) 46%, transparent 70%); content: ""; filter: blur(20px); }

.ep-contact__panel { position: relative; display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); min-height: 34rem; overflow: hidden; border: var(--border-subtle); border-radius: var(--radius-xl); background: linear-gradient(120deg, rgba(29, 25, 28, .9), var(--color-glass-800)); box-shadow: var(--shadow-deep); }
.ep-contact__content { position: relative; z-index: 2; display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-4); padding: clamp(1.5rem, 5vw, 4rem); max-width: 38.75rem; }
.ep-contact__content > * { margin: 0; }
.ep-contact__place { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-2); padding-block: var(--space-4); }
.ep-contact__place > * { margin: 0; }
.ep-contact__place span,
.ep-contact__details span { color: var(--color-warm-copper); font-family: var(--font-heading); font-size: var(--text-label); font-weight: 600; letter-spacing: .14em; line-height: var(--leading-label); text-transform: uppercase; }
.ep-contact__place p:first-of-type { color: var(--color-text-primary); font-size: var(--text-lead); font-weight: 600; line-height: var(--leading-lead); }
.ep-contact__details { display: grid; width: 100%; min-width: 0; grid-template-columns: minmax(0, 1fr); gap: var(--space-3); }
.ep-contact__details a { display: flex; min-width: 0; flex-direction: column; gap: var(--space-1); padding: var(--space-3) 0; border-bottom: var(--border-subtle); text-decoration: none; }
.ep-contact__details strong { overflow-wrap: anywhere; font-size: var(--text-lead); }
.ep-contact__next { max-width: 34rem; }
.ep-contact__actions { width: 100%; }
.ep-contact__map-lines { position: relative; overflow: hidden; min-width: 0; }
.ep-contact__map-lines::before { position: absolute; inset: -20%; background: radial-gradient(circle at 55% 50%, rgba(139, 92, 246, .26), transparent 24%), linear-gradient(130deg, transparent 34%, rgba(201, 138, 87, .2) 35%, transparent 36%), linear-gradient(45deg, transparent 48%, rgba(139, 92, 246, .3) 49%, transparent 50%); content: ""; transform: rotate(-10deg); }
.ep-contact__map-lines span { position: absolute; border: 1px solid rgba(241, 245, 249, .12); border-radius: 50%; }
.ep-contact__map-lines span:nth-child(1) { width: 19rem; height: 19rem; top: 12%; left: 14%; }
.ep-contact__map-lines span:nth-child(2) { width: 25rem; height: 11rem; top: 35%; left: -4%; transform: rotate(-38deg); }
.ep-contact__map-lines span:nth-child(3) { width: 12rem; height: 29rem; top: 2%; right: 12%; transform: rotate(38deg); }

.ep-closing__panel { position: relative; overflow: hidden; padding: clamp(2rem, 6vw, 4.5rem) var(--space-6); border: var(--border-subtle); border-bottom-color: rgba(201, 138, 87, .5); border-radius: var(--radius-lg); background: var(--color-glass-800); text-align: center; box-shadow: var(--shadow-deep); backdrop-filter: blur(18px) saturate(125%); }
.ep-closing__glow { width: 28rem; height: 15rem; bottom: -11rem; left: 50%; opacity: .8; transform: translateX(-50%); }
.ep-closing__content { position: relative; z-index: 1; display: flex; width: min(100%, 35rem); min-width: 0; flex-direction: column; align-items: center; gap: var(--space-4); margin-inline: auto; }
.ep-closing__content > * { margin: 0; }
.ep-closing__content h2 { max-width: 16ch; }
.ep-closing__content p { max-width: 35rem; }

@media (max-width: 61.25rem) {
  .ep-hero__grid { grid-template-columns: minmax(0, 45fr) minmax(0, 55fr); gap: var(--space-6); }
  .ep-hero__copy { max-width: 28rem; }
  .ep-hero__media { min-height: 20rem; }
  .ep-flow__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ep-flow__grid::before { display: none; }
  .ep-step--three { grid-column: 1 / 3; }
  .ep-step--two { margin-top: 0; }
}

@media (max-width: 58.125rem) {
  .ep-audience__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ep-audience-card:nth-child(3) { grid-column: 1 / 3; }
}

@media (max-width: 57.5rem) {
  .ep-rule__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ep-rule-cta { grid-column: 1 / 3; }
  .ep-rule-cta .button { width: auto; }
  .ep-planning__grid { grid-template-columns: minmax(0, 9fr) minmax(0, 3fr); }
}

@media (max-width: 56.25rem) {
  .ep-layers__grid { grid-template-columns: minmax(0, 60fr) minmax(0, 40fr); gap: var(--space-4); }
  .ep-layer { padding: var(--space-6); }
  .ep-dining__grid { grid-template-columns: minmax(0, 42fr) minmax(0, 58fr); gap: var(--space-6); }
}

@media (max-width: 51.25rem) {
  .ep-interlude__frame { overflow: visible; background: transparent; box-shadow: none; }
  .ep-interlude__media { overflow: hidden; border-radius: var(--radius-xl) var(--radius-xl) 0 0; aspect-ratio: 4 / 5; }
  .ep-interlude__media::after { background: linear-gradient(0deg, rgba(9, 10, 15, .35), transparent 60%); }
  .ep-interlude__copy { position: relative; bottom: auto; left: auto; width: 100%; padding: var(--space-6); border: var(--border-subtle); border-top: 0; border-radius: 0 0 var(--radius-xl) var(--radius-xl); background: var(--color-glass-800); }
  .ep-interlude__copy p:not(.eyebrow) { max-width: none; }
  .ep-contact__panel { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .ep-contact__map-lines { position: absolute; inset: 0; opacity: .3; }
  .ep-contact__content { max-width: none; }
}

@media (max-width: 47.5rem) {
  .ep-hero { padding-top: var(--space-16); }
  .ep-hero__grid { grid-template-columns: minmax(0, 1fr); }
  .ep-hero__copy { grid-row: 1; width: 100%; max-width: none; }
  .ep-hero__copy h1 { max-width: 13ch; font-size: clamp(2.75rem, 12vw, 4.25rem); }
  .ep-hero__media { grid-row: 2; min-height: 0; aspect-ratio: 4 / 5; }
  .ep-hero__media img { object-position: 57% top; }
}

@media (max-width: 43.75rem) {
  .ep-flow__grid { grid-template-columns: minmax(0, 1fr); }
  .ep-step--three { grid-column: 1; }
  .ep-step { padding: var(--space-5, 1.25rem); }
  .ep-planning__grid { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .ep-planning__glow { display: none; }
}

@media (max-width: 42.5rem) {
  .ep-layers__grid,
  .ep-dining__grid,
  .ep-rule__grid,
  .ep-audience__grid { grid-template-columns: minmax(0, 1fr); }
  .ep-layer--dinner, .ep-layer--mood, .ep-layer--poker { grid-column: 1; grid-row: auto; }
  .ep-layer--poker { padding-right: var(--space-6); }
  .ep-rule-cta { grid-column: 1; }
  .ep-rule-cta .button { width: 100%; }
  .ep-dining__media { grid-row: 1; }
  .ep-dining__copy { grid-row: 2; max-width: none; }
  .ep-dining__copy .lead, .ep-dining__secondary { max-width: none; }
  .ep-audience-card:nth-child(3) { grid-column: 1; }
  .ep-audience-card--featured { padding: var(--space-6); }
}

@media (max-width: 40rem) {
  .ep-hero::before { width: 24rem; height: 24rem; top: -8rem; right: -11rem; opacity: .42; filter: blur(20px); }
  .ep-hero__copy, .ep-section-intro, .ep-dining__copy { gap: var(--space-3); }
  .ep-fact-strip { padding: var(--space-3); }
  .ep-layer, .ep-rule-card, .ep-rule-cta, .ep-audience-card { padding: var(--space-6); }
  .ep-step { grid-template-columns: minmax(2.3rem, auto) minmax(0, 1fr); gap: var(--space-3); padding: var(--space-5, 1.25rem); }
  .ep-step__content h3 { font-size: 1.25rem; }
  .ep-interlude__copy { padding: var(--space-5, 1.25rem); }
  .ep-planning__panel { padding: var(--space-5, 1.25rem); }
  .ep-planning__item { grid-template-columns: 1.75rem minmax(0, 1fr); gap: var(--space-3); }
  .ep-contact__content { padding: var(--space-6); }
  .ep-contact__details strong { font-size: 1rem; }
  .ep-closing__panel { padding-inline: var(--space-4); }
  .ep-closing__content { width: 100%; }
  .ep-closing__content .button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .ep-hero__media img,
  .ep-dining__media img { transition: none; }
  .ep-hero__media:hover img,
  .ep-dining__media:hover img { transform: none; }
}