/******* Do not edit this file *******
Simple Custom CSS and JS - by Silkypress.com
Saved: Nov 04 2026 | 08:04:43 */
/*
NOTE.radio V2 — SINGLE EVENT — TARGET VISUAL STYLES
Version: 6.5.2
Date: 2026-09-18
Status: CURRENT — DOC-RECONCILED / TARGET LAYOUT v5.1 COMPATIBLE

Designed for:
- Elementor template: #41418 / current TARGET LAYOUT v5.1 semantic-ID state
- Data Bridge: NTR V2 SINGLE EVENT — Elementor Data Bridge v3.6
- Global NTR V2 Light / Dark token system

Purpose:
- visually align Single Event with the approved reference composition;
- keep Elementor as owner of macro page geometry;
- keep NOTE Event / NOTE Tickets / WooCommerce as data owners;
- runtime behaviour owned by Single Event Runtime v3.1;
- no business-data JS;
- no vendor overrides;
- no fabricated data.


Changelog v6.5.2:
- adds presentation rules for the new Data Bridge v3.6 external ticket-sales card;
- external ticket cards reuse the existing ticket surface/button tokens but use a simple vertical body so they do not inherit the price/quantity grid geometry of NOTE Tickets variants;
- supports external-only ticket sections and mixed NOTE Tickets + external-sales sections;
- no existing NOTE Tickets card, Sponsor/VIP, responsive grid or purchase-control rule is removed.

Changelog v6.5.1:
- documentation/header reconciliation only;
- current Data Bridge reference corrected to v3.5;
- current Runtime owner reference corrected to v3.1;
- current Elementor target noted as #41418 / v5.1 semantic-ID state;
- no CSS selectors, declarations or runtime behaviour changed.

Changelog v6.5:
- HOTFIX for the v6.4 first-render invisible generic ticket controls;
- removes the circular fallback `--ntr-event-primary -> --ntr-accent -> --ntr-event-primary`;
- when an event SOURCE palette has not arrived yet, Single Event now falls back to a concrete safe NTR orange instead of an invalid CSS-variable cycle;
- generic ticket CTA/info/quantity controls therefore remain visible even during palette transport;
- once Data Bridge v3.5 SOURCE tokens arrive, the exact Light palette / contrast-safe Dark palette replaces the fallback automatically;
- all layout, direct-cart, Sponsor/VIP and organizer rules remain unchanged.

Changelog v6.4:
- fixes event palette rendering on first Pro.Radio AJAX/soft navigation by consuming source tokens attached directly to the `.ntr-v2-event` root by Data Bridge v3.4;
- introduces explicit effective event palette mapping:
  Light = exact NOTE Tickets Theme Engine palette;
  Dark = WCAG-safe brightened primary / secondary / accent variants supplied by Data Bridge v3.4;
- dark mode no longer trusts a dark poster-derived accent blindly against NTR V2 dark surfaces;
- event primary foreground token is used on primary CTA backgrounds, preventing white-on-light contrast regressions after dark-mode brightening;
- all existing responsive layout, tickets, organizer, gallery and direct-cart rules remain unchanged.

Changelog v6.3:
- SAFE replacement built from v6.1, not from broken v6.2;
- Organizer contact CTA becomes clean text-only: no pill, no icon, no underline on hover;
- keeps NOTE Event/event-primary colour ownership;
- hover is limited to a subtle opacity change; focus keeps accessibility outline;
- restores and preserves ALL organizer-dialog, venue, partners and lower sidebar styles accidentally removed in v6.2;
- no Runtime, Data Bridge or NOTE Tickets logic changed.

Changelog v6.1:
- Organizer contact CTA gets a compact pill treatment instead of a plain underlined text link;
- keeps NOTE Event/event-primary colour ownership unchanged;
- adds a subtle envelope cue, tinted background/border, stronger spacing and hover/focus feedback;
- organizer name/logo geometry and contact dialog logic remain unchanged.

Changelog v6.0:
- responsive navigation CTA contract:
  desktop (>1024px): both "Kup bilet" and "O wydarzeniu" controls are hidden in HERO/ACTIONS and SUMMARY;
  tablet/mobile (<=1024px): both control pairs remain available as navigation aids;
- tablet SUMMARY becomes a single-column card: poster uses 100% width and both buttons sit underneath it;
- mobile keeps the same one-column summary behavior;
- `#bilety` gets scroll margin so the anchor lands below the sticky header;
- no ticket-card purchase logic, quantity UI, Sponsor/VIP styling or adaptive ticket grid behavior changed.

Changelog v5.9:
- Related Events keeps the 3-column system through tablet widths (>=768px), instead of dropping to 2 columns;
- Related Events now uses the same accepted adaptive remainder rule as the 3-column desktop ticket grid:
  1 card = 100%, 2 = 50/50, 3 = 33/33/33, 4 = 3 + 100%, 5 = 3 + 50/50, 6 = 3 + 3, etc.;
- mobile (<768px) remains one related-event card per row at 100%;
- ticket-grid rules from v5.8 are unchanged;
- visual/layout-only change; no Data Bridge, Runtime or NOTE Tickets logic changed.

Changelog v5.8 — OPTIONAL COMPACT RESPONSIVE TEST:
- keeps all v5.7 adaptive-grid rules unchanged;
- on mobile, ticket cards no longer reserve equal title/card height because every card occupies its own 100% row;
- on tablet, only a lone full-width card in the final row drops the title-height reserve;
- paired tablet cards and all desktop rows keep the existing alignment reserve;
- no ticket names, quantity, cart, popup or NOTE Tickets business logic changed;
- safe rollback: replace v5.8 with the accepted v5.7 owner if the compact look is not preferred.

Changelog v5.7:
- adaptive ticket-grid remainder distribution;
- desktop keeps a maximum of 3 cards per row, but the final incomplete row now fills the full width:
  1 remaining card = 100%, 2 remaining cards = 50/50, 3 cards = 33/33/33;
- examples: 4 variants = 3 + 100%; 5 variants = 3 + 50/50; 6 variants = 3 + 3;
- tablet keeps 2 columns and an odd final card expands to 100%;
- mobile remains one card per row at 100%;
- visual/layout-only change; no ticket names, cart logic, quantity logic or NOTE Tickets business logic changed.

Changelog v5.6:
- final compact alignment pass for ticket cards;
- title reserve reduced from 3 lines to 2 lines because current longest ticket names fit within two lines at this card width;
- keeps price + quantity rows aligned while removing excess vertical whitespace from Standard/Sponsor cards;
- no text truncation, no variant-name changes, no runtime/cart logic changes.

Changelog v5.5:
- aligns quantity selectors and prices across ticket cards without changing any variant/product names;
- ticket title now spans the full card width and reserves a consistent three-line visual zone;
- quantity selector sits on the same row as the price, using the right-hand free space;
- price is forced to stay on one line (prevents values such as £200.00 from wrapping);
- long titles may still expand naturally when needed; no truncation and no text rewriting;
- visual-only change: Data Bridge v3.2 and Runtime v3.1 remain unchanged.

Changelog v5.4:
- visual polish only; no business logic changes;
- quantity selector is anchored more deliberately in the free right-hand space of each ticket card;
- selector gets a clearer segmented-control treatment with larger touch targets;
- info and purchase buttons are normalized to 44px height;
- spacing is balanced between title/price/quantity and the bottom action row;
- Sponsor/VIP quantity controls continue to inherit their semantic accent;
- desktop/tablet/mobile keep the same direct-cart behavior introduced in v5.3.

Changelog v5.3:
- adds the Single Event direct-cart quantity UI for simple NOTE Tickets variants;
- quantity selector occupies the previously unused right-hand area of each ticket card body;
- bottom action row remains visually simple: information button + full primary "Kup bilet" CTA;
- direct purchase CTA is styled as a real button and includes busy/disabled states;
- quantity controls are touch-friendly, keyboard accessible and inherit Sponsor/VIP accent colors;
- card feedback appears only for NOTE Tickets validation/network errors;
- party_size/advanced NOTE Tickets picker fallback cards remain unchanged.

Changelog v5.2:
- adds a circular ticket information control to the left of the primary ticket CTA when the canonical ticket/variant description exists;
- information button opens the native "Sprawdź korzyści" ticket dialog rendered by Data Bridge v3.1;
- always-visible ticket descriptions are removed by the Data Bridge so the cards remain compact;
- ticket action row keeps the primary purchase CTA flexible while the information control stays circular;
- dialog inherits the event palette and Sponsor/VIP ticket accent when applicable;
- popup preserves canonical description HTML including paragraphs, lists and links;
- no WooCommerce / NOTE Tickets business data is changed.

Changelog v4.6:
- adds adaptive typography for EVENT TITLE — DYNAMIC POST TITLE;
- titles that already fit in one or two lines keep the existing CSS size;
- only titles that would exceed two lines are progressively reduced by Runtime v2.5;
- title rendering is capped at two lines as a final safety guard;
- responsive desktop/tablet/mobile base sizes remain owned by the existing CSS rules.


Changelog v4.4:
- fixes the Organizer contact control selector: the live button is `.ntr-v2-event-organizer-card__contact`;
- keeps the Organizer name typography unchanged;
- forces "NAPISZ DO ORGANIZATORA" to remain on one line and scale down with the available copy-column width;
- removes internal logo padding so the uploaded logo can use the full logo viewport;
- forces the logo viewport and image canvas to permanent white for transparent logos;
- organizer logo fills the fixed white logo window proportionally with `object-fit: cover`; top/bottom or side edges may be cropped, but the artwork is never stretched.


Changelog v4.2:
- adds a dedicated `is-event-no-tickets` presentation state owned by Runtime v2.4;
- when the canonical ticket CTA says "Brak biletów", hides ACTION — PRIMARY TICKET, SUMMARY — PRIMARY CTA and the complete Bilety section;
- preserves ACTION — DETAILS and Utility Bar and reflows them so no empty grid slot remains;
- does not affect "Wyprzedane": sold-out CTA/section remain visible and retain the SOLD OUT presentation;
- no NOTE Event / NOTE Tickets business data is changed.

Changelog v4.1:
- adds the "Napisz do organizatora" control below the canonical Organizer Profile name;
- adds an NTR V2 native dialog/form surface for Imię, Nazwisko, e-mail, optional phone and message;
- popup and send action inherit NOTE Event palette tokens; no organizer e-mail is displayed or embedded by CSS/presentation;
- form remains responsive: paired name fields on wider layouts, one column on mobile;
- success/error states remain inside the dialog and do not navigate away;
- all v4.0 Organizer Profile logo/name behavior and previous Single Event styling remain unchanged.

Changelog v4.0:
- Organizer card now consumes the canonical NOTE Event Organizer Profile name and optional logo;
- uploaded logos use contain-fit and are never forced into the historical circular avatar crop;
- profile name is the only public text in the card; WordPress account description/avatar styling is retired;
- legacy/unassigned Organizer wrappers continue to disappear through the existing empty-wrapper rule;
- no global Shared UI file is modified.

Changelog v3.5:
- preserves the full v3.4 baseline and all earlier sold-out / feature popup work;
- ABOUT preview and popup normalize content font size while preserving bold/underline/italic/heading emphasis;
- ABOUT preview text is fully clickable and the WIĘCEJ > control is an event-colour pill;
- preserves editor headings, font sizes, bold, underline, italics, links, lists, inline styles/classes and paragraph structure;
- replaces line-clamp typography flattening with a pure visual max-height clip for the formatted preview;
- "Więcej" remains the only overlay control and opens the full formatted description;
- no global Shared UI file is modified.

Historical baseline v3.3:
- preserves the full v3.2 Single Event baseline;
- refines HERO SIDEBAR SUMMARY CTA appearance;
- applies subtle disabled fade for sold-out CTAs without overriding NOTE Event colours;
- adds SOLD OUT badge overlay on the sidebar summary image when ticket state is unavailable;
- SOLD OUT badge colours are selected dynamically from the full NOTE Event palette for maximum WCAG contrast;
- fixes the local width conflict caused by global Shared UI button wrappers;
- both sidebar CTA wrappers and buttons now use the full available card width;
- primary and secondary CTA share equal height, radius and typography;
- primary keeps the event colour; secondary uses the NTR surface system;
- Attractions / Rules pills are fitted to a single visual row by Runtime v1.4;
- "+ więcej" is a real control opening the matching section popup;
- ABOUT continuation keeps native editor formatting; preview is visually limited to the 8-line region with a real "Więcej" dialog control;
- feature pill and "+ więcej" typography is increased by 2px (11px -> 13px);
- feature popup reuses section-specific tint/border styling;
- existing hover behaviour is preserved unchanged;
- no global Shared UI file is modified.

Supersedes:
- NOTE.radio V2 — SINGLE EVENT v2.9 — CTA RIGHT ICON

Notes:
- AGE / PROGRAM / CONTACT / QUOTE / SAVE / SHARE remain intentionally absent
  until canonical data contracts exist.
- Sidebar venue photo is not fabricated when no canonical venue image exists.
*/


/* ======================================================
   00. PAGE / ROOT
   ====================================================== */

.ntr-v2-event {
    position: relative !important;
    isolation: isolate !important;

    width: 100% !important;
    min-width: 0 !important;

    color: var(--ntr-text-primary) !important;

    background:
        radial-gradient(
            circle at 8% 11%,
            color-mix(
                in srgb,
                var(--ntr-event-primary, var(--ntr-accent)) 10%,
                transparent
            ),
            transparent 24%
        ),
        radial-gradient(
            circle at 92% 20%,
            color-mix(
                in srgb,
                var(--ntr-event-secondary, var(--ntr-accent)) 8%,
                transparent
            ),
            transparent 25%
        ),
        var(--ntr-page-bg)
        !important;

    font-family: "Outfit", sans-serif !important;
}


.ntr-v2-event,
.ntr-v2-event * {
    box-sizing: border-box !important;
    min-width: 0;
}


.ntr-v2-event img {
    max-width: 100%;
}


/* ======================================================
   00A. EVENT PALETTE — EFFECTIVE LIGHT / DARK MAPPING
   Data owner: NOTE Tickets Theme Engine.
   Transport owner: Data Bridge v3.5.
   ====================================================== */

.ntr-v2-event {
    /*
     * Concrete local fallback is deliberate.
     * Never fall back from event-primary to --ntr-accent here, because
     * this component also aliases --ntr-accent back to event-primary.
     * That would create a CSS custom-property cycle when SOURCE tokens
     * are temporarily absent during AJAX navigation.
     */
    --ntr-event-fallback-accent: #FF7A00;

    --ntr-event-primary:
        var(
            --ntr-event-primary-source,
            var(--ntr-event-fallback-accent)
        );

    --ntr-event-secondary:
        var(
            --ntr-event-secondary-source,
            var(--ntr-event-primary, #FF7A00)
        );

    --ntr-event-accent:
        var(
            --ntr-event-accent-source,
            var(--ntr-event-primary, #FF7A00)
        );

    --ntr-event-dark:
        var(
            --ntr-event-dark-source,
            #142442
        );

    --ntr-event-light:
        var(
            --ntr-event-light-source,
            #FFF7ED
        );

    --ntr-event-on-primary:
        var(
            --ntr-event-on-primary-source,
            #FFFFFF
        );

    /*
     * Local component alias only. Global Core Tokens are not changed.
     */
    --ntr-accent:
        var(--ntr-event-primary, #FF7A00);

    --ntr-accent-hover:
        color-mix(
            in srgb,
            var(--ntr-event-primary, #FF7A00) 82%,
            #000
        );
}


/*
 * Dark effective state comes from the ONE global Theme Controller.
 */
html[data-ntr-theme-effective="dark"]
.ntr-v2-event {
    --ntr-event-primary:
        var(
            --ntr-event-primary-dark-safe,
            var(--ntr-event-primary-source, #FFB15C)
        );

    --ntr-event-secondary:
        var(
            --ntr-event-secondary-dark-safe,
            var(--ntr-event-secondary-source, var(--ntr-event-primary, #FFB15C))
        );

    --ntr-event-accent:
        var(
            --ntr-event-accent-dark-safe,
            var(--ntr-event-accent-source, var(--ntr-event-primary, #FFB15C))
        );

    --ntr-event-on-primary:
        var(
            --ntr-event-on-primary-dark-safe,
            #07131E
        );

    --ntr-accent:
        var(--ntr-event-primary, #FFB15C);

    --ntr-accent-hover:
        color-mix(
            in srgb,
            var(--ntr-event-primary, #FFB15C) 88%,
            #fff
        );
}


/* ======================================================
   01. BREADCRUMB
   ====================================================== */

.ntr-v2-event
.ntr-v2-event-breadcrumb {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;

    gap: 6px !important;

    padding: 2px 2px 4px !important;

    color: var(--ntr-text-muted) !important;

    font-size: 12px !important;
    line-height: 1.3 !important;
}


.ntr-v2-event
.ntr-v2-event-breadcrumb-path
.elementor-widget-container {
    display: inline-flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;

    gap: 6px !important;
}


.ntr-v2-event
.ntr-v2-event-breadcrumb-path p {
    display: contents !important;
}


.ntr-v2-event
.ntr-v2-event-breadcrumb a {
    color: var(--ntr-text-secondary) !important;
    text-decoration: none !important;
}


.ntr-v2-event
.ntr-v2-event-breadcrumb a:hover {
    color: var(--ntr-event-primary, var(--ntr-accent)) !important;
}


.ntr-v2-event
.ntr-v2-event-breadcrumb-current
.elementor-heading-title {
    margin: 0 !important;

    color: var(--ntr-text-muted) !important;

    font-size: 12px !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
}


/* ======================================================
   02. PAGE GRID
   Macro width is owned by Elementor JSON v5.0.
   ====================================================== */

.ntr-v2-event
.ntr-v2-event-page-grid {
    align-items: flex-start !important;
}


.ntr-v2-event
.ntr-v2-event-main,
.ntr-v2-event
.ntr-v2-event-sidebar {
    min-width: 0 !important;
}


.ntr-v2-event
.ntr-v2-event-sidebar {
    align-self: flex-start !important;
}


/* ======================================================
   03. HERO — MAIN
   ====================================================== */

.ntr-v2-event
.ntr-v2-event-hero-main--target {
    overflow: visible !important;

    background: transparent !important;

    border: 0 !important;
    border-radius: 0 !important;

    box-shadow: none !important;
}


.ntr-v2-event
.ntr-v2-event-identity-row {
    align-items: stretch !important;

    overflow: visible !important;
}


/* Poster */

.ntr-v2-event
.ntr-v2-event-poster {
    align-self: flex-start !important;

    overflow: hidden !important;

    background: var(--ntr-surface) !important;

    border: 1px solid var(--ntr-border) !important;
    border-radius: var(--ntr-radius-lg) !important;

    box-shadow: var(--ntr-shadow-soft) !important;
}


.ntr-v2-event
.ntr-v2-event-poster-media,
.ntr-v2-event
.ntr-v2-event-poster-image,
.ntr-v2-event
.ntr-v2-event-poster-image
.elementor-widget-container {
    width: 100% !important;
}


.ntr-v2-event
.ntr-v2-event-poster-image img {
    display: block !important;

    width: 100% !important;
    aspect-ratio: 3 / 4 !important;

    object-fit: cover !important;
    object-position: center center !important;
}


/* Identity */

.ntr-v2-event
.ntr-v2-event-identity {
    justify-content: flex-start !important;

    padding: 2px 0 0 !important;

    background: transparent !important;

    border: 0 !important;
    border-radius: 0 !important;

    box-shadow: none !important;
}


.ntr-v2-event
.ntr-v2-event-type {
    align-self: flex-start !important;

    width: auto !important;
}


.ntr-v2-event
.ntr-v2-event-type-value
.elementor-heading-title {
    display: inline-flex !important;
    align-items: center !important;

    width: auto !important;

    margin: 0 !important;
    padding: 6px 11px !important;

    color:
        color-mix(
            in srgb,
            var(--ntr-event-primary, var(--ntr-accent)) 78%,
            #17212b
        )
        !important;

    background:
        color-mix(
            in srgb,
            var(--ntr-event-primary, var(--ntr-accent)) 13%,
            var(--ntr-surface)
        )
        !important;

    border:
        1px solid
        color-mix(
            in srgb,
            var(--ntr-event-primary, var(--ntr-accent)) 28%,
            var(--ntr-border)
        )
        !important;

    border-radius: 999px !important;

    font-size: 11px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: .04em !important;
    text-transform: uppercase !important;
}


.ntr-v2-event
.ntr-v2-event-title-value
.elementor-heading-title {
    margin: 0 !important;

    color: var(--ntr-text-primary) !important;

    font-size: var(--ntr-event-title-fit-size, clamp(38px, 4.25vw, 58px)) !important;
    font-weight: 850 !important;
    line-height: .98 !important;
    letter-spacing: -.035em !important;
}

/* Runtime v2.5 only adds this class if even the minimum adaptive
   title size cannot fit the full title into two lines. */
.ntr-v2-event
.ntr-v2-event-title-value
.elementor-heading-title.is-ntr-event-title-clamped {
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    overflow: hidden !important;
    max-height: calc(2em * .98) !important;
}


.ntr-v2-event
.ntr-v2-event-intro-value
.elementor-heading-title {
    margin: 0 !important;

    color: var(--ntr-text-primary) !important;

    font-size: clamp(17px, 1.5vw, 21px) !important;
    font-weight: 720 !important;
    line-height: 1.18 !important;
}


/* Short description / teaser — separate from Dynamic HERO / slogan */

.ntr-v2-event
.ntr-v2-event-teaser {
    width: 100% !important;

    margin-top: 1px !important;
}


.ntr-v2-event
.ntr-v2-event-teaser
.elementor-heading-title,
.ntr-v2-event
.ntr-v2-event-teaser
.elementor-widget-container {
    margin: 0 !important;

    color: var(--ntr-text-secondary) !important;

    font-family: "Outfit", sans-serif !important;
    font-size: 14px !important;
    font-weight: 430 !important;
    line-height: 1.46 !important;
    letter-spacing: 0 !important;
}


.ntr-v2-event
.ntr-v2-event-teaser
.elementor-heading-title {
    max-width: 68ch !important;
}


/* ======================================================
   04. HERO META CARDS
   Approved layout:
   [ICON] [LABEL]
          [VALUE]

   Dynamic NOTE Event palette mapping:
   DATE        = primary
   TIME        = secondary
   LOCATION    = accent
   ====================================================== */

.ntr-v2-event
.ntr-v2-event-meta {
    display: flex !important;
    align-items: stretch !important;

    gap: 8px !important;

    width: 100% !important;

    margin-top: 3px !important;
}


/* Dynamic per-card colour ownership from NOTE Event Theme Engine. */

.ntr-v2-event
.ntr-v2-event-meta-date {
    --ntr-meta-color:
        var(
            --ntr-event-primary,
            var(--ntr-accent)
        );
}


.ntr-v2-event
.ntr-v2-event-meta-time {
    --ntr-meta-color:
        var(
            --ntr-event-secondary,
            var(
                --ntr-event-primary,
                var(--ntr-accent)
            )
        );
}


.ntr-v2-event
.ntr-v2-event-meta-venue {
    --ntr-meta-color:
        var(
            --ntr-event-accent,
            var(
                --ntr-event-primary,
                var(--ntr-accent)
            )
        );
}


/* No extra Elementor wrapper is needed.
   The three existing children are positioned directly with CSS Grid. */

.ntr-v2-event
.ntr-v2-event-meta-card {
    display: grid !important;

    grid-template-columns: 34px minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;

    column-gap: 10px !important;
    row-gap: 2px !important;

    align-items: center !important;
    align-content: center !important;

    min-height: 64px !important;

    padding: 10px 12px !important;

    background:
        color-mix(
            in srgb,
            var(--ntr-meta-color) 7%,
            var(--ntr-surface)
        )
        !important;

    border:
        1px solid
        color-mix(
            in srgb,
            var(--ntr-meta-color) 23%,
            var(--ntr-border)
        )
        !important;

    border-radius: 8px !important;

    box-shadow: none !important;
}


/* ICON — one compact visual anchor on the left. */

.ntr-v2-event
.ntr-v2-event-meta-card
.ntr-v2-event-meta-icon {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;

    align-self: center !important;
    justify-self: center !important;

    width: 34px !important;
    height: 34px !important;

    margin: 0 !important;
}


.ntr-v2-event
.ntr-v2-event-meta-card
.ntr-v2-event-meta-icon
.elementor-widget-container {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 34px !important;
    height: 34px !important;

    margin: 0 !important;

    color: var(--ntr-meta-color) !important;

    background:
        color-mix(
            in srgb,
            var(--ntr-meta-color) 9%,
            transparent
        )
        !important;

    border-radius: 8px !important;
}


.ntr-v2-event
.ntr-v2-event-meta-card
.ntr-v2-event-meta-icon
.elementor-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 22px !important;
    height: 22px !important;

    color: var(--ntr-meta-color) !important;

    font-size: 18px !important;

    background: transparent !important;
}


.ntr-v2-event
.ntr-v2-event-meta-card
.ntr-v2-event-meta-icon
.elementor-icon svg {
    width: 18px !important;
    height: 18px !important;

    fill: currentColor !important;
}


/* LABEL — top-right. */

.ntr-v2-event
.ntr-v2-event-meta-card
.ntr-v2-event-meta-label {
    grid-column: 2 !important;
    grid-row: 1 !important;

    align-self: end !important;

    width: 100% !important;

    margin: 0 !important;
}


.ntr-v2-event
.ntr-v2-event-meta-card
.ntr-v2-event-meta-label
.elementor-heading-title {
    margin: 0 !important;

    color: var(--ntr-text-muted) !important;

    font-family: "Outfit", sans-serif !important;
    font-size: 9px !important;
    font-weight: 760 !important;
    line-height: 1 !important;
    letter-spacing: .055em !important;
    text-transform: uppercase !important;
}


/* VALUE — bottom-right. */

.ntr-v2-event
.ntr-v2-event-meta-card
.ntr-v2-event-meta-value {
    grid-column: 2 !important;
    grid-row: 2 !important;

    align-self: start !important;

    width: 100% !important;

    margin: 0 !important;
}


.ntr-v2-event
.ntr-v2-event-meta-card
.ntr-v2-event-meta-value
.elementor-heading-title {
    margin: 0 !important;

    color: var(--ntr-text-primary) !important;

    font-family: "Outfit", sans-serif !important;
    font-size: 12px !important;
    font-weight: 770 !important;
    line-height: 1.18 !important;
    letter-spacing: -.01em !important;
}


/* Location may naturally use a little more room. */

.ntr-v2-event
.ntr-v2-event-meta-venue
.ntr-v2-event-meta-value
.elementor-heading-title {
    font-size: 11.5px !important;
    line-height: 1.2 !important;
}


/* Subtle hover only on pointer-capable devices. */

@media (hover: hover) and (pointer: fine) {

    .ntr-v2-event
    .ntr-v2-event-meta-card:hover {
        border-color:
            color-mix(
                in srgb,
                var(--ntr-meta-color) 38%,
                var(--ntr-border)
            )
            !important;

        background:
            color-mix(
                in srgb,
                var(--ntr-meta-color) 10%,
                var(--ntr-surface)
            )
            !important;
    }
}




/* ======================================================
   04A. HERO LOCATION — HARD TWO-LINE CAP + MAP LINK

   IMPORTANT:
   The visual two-line limit is CSS-owned and unconditional.
   Short locations remain unchanged because they naturally occupy
   one/two lines. Longer values can never expand the meta card
   beyond two text lines.

   Runtime only decides whether the clipped value should behave
   as a map link. It does NOT decide whether clamping occurs.
   ====================================================== */

.ntr-v2-event
.ntr-v2-event-meta-venue
.ntr-v2-event-location-value,
.ntr-v2-event
.ntr-v2-event-meta-venue
.ntr-v2-event-location-value
.elementor-widget-container {
    min-width: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
}


.ntr-v2-event
.ntr-v2-event-meta-venue
.ntr-v2-event-location-value
.elementor-heading-title {
    display: -webkit-box !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;

    overflow: hidden !important;

    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    line-clamp: 2;

    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;

    text-overflow: ellipsis !important;
}


.ntr-v2-event
.ntr-v2-event-meta-venue
.ntr-v2-event-location-value
.elementor-heading-title.is-ntr-event-location-clickable {
    cursor: pointer !important;
}


.ntr-v2-event
.ntr-v2-event-meta-venue
.ntr-v2-event-location-value
.elementor-heading-title.is-ntr-event-location-clickable:hover {
    color: var(--ntr-event-accent, var(--ntr-accent)) !important;
}


.ntr-v2-event
.ntr-v2-event-meta-venue
.ntr-v2-event-location-value
.elementor-heading-title.is-ntr-event-location-clickable:focus-visible {
    outline:
        2px solid
        color-mix(
            in srgb,
            var(--ntr-event-accent, var(--ntr-accent)) 72%,
            transparent
        )
        !important;

    outline-offset: 3px !important;
    border-radius: 3px !important;
}

/* ======================================================
   05. HERO ACTIONS
   Shared UI conflict-safe contract:

   [ PRIMARY ][ DETAILS ][ FLEXIBLE RESERVE ][ UTILITY ]

   Confirmed global conflict:
   .ntr-v2 .ntr-v2-button.elementor-widget-button {
       width: auto !important;
       align-self: flex-start !important;
   }

   Therefore the left two grid tracks follow the intrinsic
   width of the actual buttons. Their visible gap is 8px.
   ====================================================== */

.ntr-v2-event
.ntr-v2-event-actions {
    display: grid !important;

    grid-template-columns:
        max-content
        max-content
        minmax(0, 1fr)
        max-content
        !important;

    grid-template-rows: auto !important;

    column-gap: 8px !important;
    row-gap: 0 !important;

    align-items: center !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin-top: 2px !important;

    overflow: visible !important;
}


/* Neutralise any Elementor width ownership on direct children. */

.ntr-v2-event
.ntr-v2-event-actions
> .elementor-element {
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;

    flex: none !important;
}


/* ------------------------------------------------------
   LEFT — Primary + Details
   ------------------------------------------------------ */

.ntr-v2-event
.ntr-v2-event-action-primary {
    grid-column: 1 !important;
    grid-row: 1 !important;

    justify-self: start !important;
    align-self: center !important;

    width: max-content !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
}


.ntr-v2-event
.ntr-v2-event-action-details {
    grid-column: 2 !important;
    grid-row: 1 !important;

    justify-self: start !important;
    align-self: center !important;

    width: max-content !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
}


/* Higher specificity than global Shared UI Primitives.
   This is intentional: Single Event owns this local composition. */

.ntr-v2.ntr-v2-event
.ntr-v2-event-actions
.ntr-v2-event-action
.ntr-v2-button.elementor-widget-button,
.ntr-v2.ntr-v2-event
.ntr-v2-event-actions
.ntr-v2-event-action
.ntr-v2-event-action-button.elementor-widget-button {
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;

    align-self: center !important;

    margin: 0 !important;
    padding: 0 !important;
}


.ntr-v2.ntr-v2-event
.ntr-v2-event-actions
.ntr-v2-event-action
.ntr-v2-button.elementor-widget-button
.elementor-button,
.ntr-v2.ntr-v2-event
.ntr-v2-event-actions
.ntr-v2-event-action
.ntr-v2-event-action-button.elementor-widget-button
.elementor-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: auto !important;
    min-width: 0 !important;
    min-height: 42px !important;

    padding:
        9px
        clamp(34px, 2.2vw, 40px)
        9px
        clamp(12px, 1vw, 16px)
        !important;

    color: var(--ntr-event-on-primary, #fff) !important;
    background:
        var(--ntr-event-primary, var(--ntr-accent))
        !important;

    border:
        1px solid
        var(--ntr-event-primary, var(--ntr-accent))
        !important;

    border-radius: 9px !important;

    box-shadow: none !important;

    font-size: clamp(11px, .86vw, 13px) !important;
    font-weight: 780 !important;
    line-height: 1 !important;

    white-space: nowrap !important;

    transition:
        transform .16s ease,
        background .16s ease,
        border-color .16s ease
        !important;
}



/* ------------------------------------------------------
   PRIMARY CTA — second/right icon

   Elementor structure:
   ACTION — PRIMARY TICKET
   ├── ACTION — DYNAMIC TICKET CTA
   └── ACTION — RIGHT ARROW
       class: ntr-v2-event-action-arrow
   ------------------------------------------------------ */

.ntr-v2-event
.ntr-v2-event-action-primary {
    position: relative !important;
}


.ntr-v2-event
.ntr-v2-event-action-primary
.ntr-v2-event-action-arrow {
    position: absolute !important;

    top: 50% !important;
    right: 12px !important;

    z-index: 3 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 16px !important;
    height: 16px !important;
    min-width: 16px !important;
    min-height: 16px !important;

    margin: 0 !important;
    padding: 0 !important;

    transform: translateY(-50%) !important;

    pointer-events: none !important;
}


.ntr-v2-event
.ntr-v2-event-action-primary
.ntr-v2-event-action-arrow
.elementor-widget-container {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 16px !important;
    height: 16px !important;

    margin: 0 !important;
    padding: 0 !important;
}


.ntr-v2-event
.ntr-v2-event-action-primary
.ntr-v2-event-action-arrow
.elementor-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 14px !important;
    height: 14px !important;

    color: var(--ntr-event-on-primary, #fff) !important;

    font-size: 12px !important;
    line-height: 1 !important;

    background: transparent !important;

    border: 0 !important;

    transform: none !important;
}


.ntr-v2-event
.ntr-v2-event-action-primary
.ntr-v2-event-action-arrow
.elementor-icon svg {
    display: block !important;

    width: 12px !important;
    height: 12px !important;

    fill: currentColor !important;
}


.ntr-v2.ntr-v2-event
.ntr-v2-event-actions
.ntr-v2-event-action
.ntr-v2-button--ghost.elementor-widget-button
.elementor-button {
    color: var(--ntr-text-primary) !important;
    background: var(--ntr-surface) !important;

    border-color: var(--ntr-border-strong) !important;
}


@media (hover: hover) and (pointer: fine) {

    .ntr-v2.ntr-v2-event
    .ntr-v2-event-actions
    .ntr-v2-event-action
    .ntr-v2-event-action-button.elementor-widget-button
    .elementor-button:hover {
        transform: translateY(-1px) !important;

        background:
            var(--ntr-accent-hover)
            !important;
    }
}


/* Sold-out / unavailable state — keep NOTE Event colour ownership,
   only fade and neutralise interaction feedback. */

.ntr-v2.ntr-v2-event
.ntr-v2-event-action-primary.is-ticket-disabled
.ntr-v2-event-action-ticket.elementor-widget-button
.elementor-button,
.ntr-v2.ntr-v2-event
.ntr-v2-event-action-primary
.ntr-v2-event-action-ticket.elementor-widget-button
.elementor-button.is-disabled,
.ntr-v2.ntr-v2-event
.ntr-v2-event-action-primary
.ntr-v2-event-action-ticket.elementor-widget-button
.elementor-button[aria-disabled="true"] {
    opacity: .52 !important;

    transform: none !important;
    box-shadow: none !important;

    cursor: default !important;
    pointer-events: none !important;

    transition: opacity .16s ease !important;
}

.ntr-v2.ntr-v2-event
.ntr-v2-event-action-primary.is-ticket-disabled
.ntr-v2-event-action-arrow {
    opacity: .52 !important;
}

@media (hover: hover) and (pointer: fine) {

    .ntr-v2.ntr-v2-event
    .ntr-v2-event-action-primary.is-ticket-disabled
    .ntr-v2-event-action-ticket.elementor-widget-button
    .elementor-button:hover,
    .ntr-v2.ntr-v2-event
    .ntr-v2-event-action-primary
    .ntr-v2-event-action-ticket.elementor-widget-button
    .elementor-button.is-disabled:hover,
    .ntr-v2.ntr-v2-event
    .ntr-v2-event-action-primary
    .ntr-v2-event-action-ticket.elementor-widget-button
    .elementor-button[aria-disabled="true"]:hover {
        transform: none !important;
        background: inherit !important;
        border-color: inherit !important;
    }
}


/* ------------------------------------------------------
   RIGHT — Utility Bar 2
   Column 3 remains the elastic reserve space.
   ------------------------------------------------------ */

.ntr-v2-event
.ntr-v2-event-actions
.ntr-v2-event-actions-utility {
    grid-column: 4 !important;
    grid-row: 1 !important;

    justify-self: end !important;
    align-self: center !important;

    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
}


.ntr-v2-event
.ntr-v2-event-actions
.ntr-v2-event-actions-utility
> .elementor-widget-container {
    display: flex !important;
    justify-content: flex-end !important;

    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
}


.ntr-v2-event
.ntr-v2-event-actions
.ntr-v2-event-actions-utility
.ntr-v2-utility-bar-v2 {
    display: inline-flex !important;
    flex-wrap: nowrap !important;

    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
}


.ntr-v2-event
.ntr-v2-event-actions
.ntr-v2-event-actions-utility
.ntr-v2-utility-bar-v2__module {
    display: inline-flex !important;
    flex-wrap: nowrap !important;

    gap: 6px !important;

    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
}


.ntr-v2-event
.ntr-v2-event-actions
.ntr-v2-event-actions-utility
.ntr-v2-utility-bar-v2__label {
    display: inline-flex !important;
    align-items: center !important;

    flex: 0 1 auto !important;

    min-width: 0 !important;

    margin: 0 2px 0 0 !important;

    color: var(--ntr-text-muted) !important;

    font-family: "Outfit", sans-serif !important;
    font-size: 10px !important;
    font-weight: 760 !important;
    line-height: 1 !important;
    letter-spacing: .04em !important;
    text-transform: uppercase !important;

    white-space: nowrap !important;
}


.ntr-v2-event
.ntr-v2-event-actions
.ntr-v2-event-actions-utility
.ntr-v2-utility-bar-v2__action {
    flex: 0 0 38px !important;

    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;
}


.ntr-v2-event
.ntr-v2-event-actions
.ntr-v2-event-actions-utility
.ntr-v2-utility-bar-v2__icon {
    font-size: 14px !important;
}


/* ------------------------------------------------------
   Narrow desktop / tablet
   Shrink padding and utility controls, not the reserved
   middle track ownership.
   ------------------------------------------------------ */

@media (max-width: 1180px) and (min-width: 768px) {

    .ntr-v2-event
    .ntr-v2-event-actions {
        column-gap: 7px !important;
    }

    .ntr-v2.ntr-v2-event
    .ntr-v2-event-actions
    .ntr-v2-event-action
    .ntr-v2-event-action-button.elementor-widget-button
    .elementor-button {
        min-height: 40px !important;

        padding: 8px 32px 8px 10px !important;

        font-size: 11px !important;
    }

    .ntr-v2-event
    .ntr-v2-event-action-primary
    .ntr-v2-event-action-arrow {
        right: 10px !important;
    }

    .ntr-v2-event
    .ntr-v2-event-actions
    .ntr-v2-event-actions-utility
    .ntr-v2-utility-bar-v2__label {
        font-size: 9px !important;
        letter-spacing: .025em !important;
    }

    .ntr-v2-event
    .ntr-v2-event-actions
    .ntr-v2-event-actions-utility
    .ntr-v2-utility-bar-v2__module {
        gap: 5px !important;
    }

    .ntr-v2-event
    .ntr-v2-event-actions
    .ntr-v2-event-actions-utility
    .ntr-v2-utility-bar-v2__action {
        flex-basis: 36px !important;

        width: 36px !important;
        height: 36px !important;
        min-width: 36px !important;
        min-height: 36px !important;
    }
}


/* ------------------------------------------------------
   Mobile
   ------------------------------------------------------ */

@media (max-width: 767px) {

    .ntr-v2-event
    .ntr-v2-event-actions {
        display: grid !important;

        grid-template-columns: 1fr !important;
        grid-template-rows: auto auto auto !important;

        column-gap: 0 !important;
        row-gap: 8px !important;

        width: 100% !important;
    }

    .ntr-v2-event
    .ntr-v2-event-action-primary {
        grid-column: 1 !important;
        grid-row: 1 !important;

        width: 100% !important;
    }

    .ntr-v2-event
    .ntr-v2-event-action-details {
        grid-column: 1 !important;
        grid-row: 2 !important;

        width: 100% !important;
    }

    .ntr-v2.ntr-v2-event
    .ntr-v2-event-actions
    .ntr-v2-event-action
    .ntr-v2-button.elementor-widget-button,
    .ntr-v2.ntr-v2-event
    .ntr-v2-event-actions
    .ntr-v2-event-action
    .ntr-v2-event-action-button.elementor-widget-button,
    .ntr-v2.ntr-v2-event
    .ntr-v2-event-actions
    .ntr-v2-event-action
    .ntr-v2-event-action-button.elementor-widget-button
    .elementor-button {
        width: 100% !important;
    }

    .ntr-v2-event
    .ntr-v2-event-actions
    .ntr-v2-event-actions-utility {
        grid-column: 1 !important;
        grid-row: 3 !important;

        justify-self: start !important;

        width: 100% !important;
    }

    .ntr-v2-event
    .ntr-v2-event-actions
    .ntr-v2-event-actions-utility
    > .elementor-widget-container {
        justify-content: flex-start !important;

        width: 100% !important;
    }

    .ntr-v2-event
    .ntr-v2-event-actions
    .ntr-v2-event-actions-utility
    .ntr-v2-utility-bar-v2 {
        width: auto !important;
    }

    .ntr-v2-event
    .ntr-v2-event-actions
    .ntr-v2-event-actions-utility
    .ntr-v2-utility-bar-v2__label {
        font-size: 10px !important;
    }
}


/* ======================================================
   06. HIGHLIGHTS
   Reference: compact coloured strips + chips.
   ====================================================== */

.ntr-v2-event
.ntr-v2-event-highlights--compact {
    align-items: stretch !important;
}


.ntr-v2-event
.ntr-v2-event-highlights-card {
    overflow: visible !important;

    background: transparent !important;

    border: 0 !important;
    border-radius: 0 !important;

    box-shadow: none !important;
}


.ntr-v2-event
.ntr-v2-event-feature-card {
    height: 100% !important;

    padding: 14px 15px !important;

    border: 1px solid var(--ntr-border) !important;
    border-radius: var(--ntr-radius-md) !important;

    box-shadow: none !important;
}


.ntr-v2-event
.ntr-v2-event-feature-card--attractions {
    background:
        linear-gradient(
            110deg,
            color-mix(
                in srgb,
                #20c4e8 9%,
                var(--ntr-surface)
            ),
            var(--ntr-surface)
        )
        !important;

    border-color:
        color-mix(
            in srgb,
            #20c4e8 25%,
            var(--ntr-border)
        )
        !important;
}


.ntr-v2-event
.ntr-v2-event-feature-card--rules {
    background:
        linear-gradient(
            110deg,
            color-mix(
                in srgb,
                #ff69c7 9%,
                var(--ntr-surface)
            ),
            var(--ntr-surface)
        )
        !important;

    border-color:
        color-mix(
            in srgb,
            #ff69c7 24%,
            var(--ntr-border)
        )
        !important;
}


.ntr-v2-event
.ntr-v2-event-feature-title {
    margin: 0 0 10px !important;

    color: var(--ntr-text-primary) !important;

    font-size: 15px !important;
    font-weight: 820 !important;
    line-height: 1.1 !important;
}


.ntr-v2-event
.ntr-v2-event-feature-list {
    display: flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;

    gap: 6px !important;

    width: 100% !important;
    min-width: 0 !important;

    overflow: hidden !important;
}


.ntr-v2-event
.ntr-v2-event-feature-item {
    display: inline-flex !important;
    align-items: center !important;

    flex: 0 0 auto !important;

    gap: 6px !important;

    width: auto !important;
    min-width: 0 !important;

    padding: 6px 8px !important;

    background:
        color-mix(
            in srgb,
            var(--ntr-surface) 82%,
            transparent
        )
        !important;

    border: 1px solid var(--ntr-border) !important;
    border-radius: 7px !important;
}


.ntr-v2-event
.ntr-v2-event-feature-item[hidden],
.ntr-v2-event
.ntr-v2-event-feature-more[hidden] {
    display: none !important;
}


.ntr-v2-event
.ntr-v2-event-feature-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    flex: 0 0 24px !important;

    width: 24px !important;
    height: 24px !important;

    color: var(--ntr-event-primary, var(--ntr-accent)) !important;
    background: var(--ntr-surface) !important;

    border-radius: 999px !important;

    font-size: 11px !important;
}


.ntr-v2-event
.ntr-v2-event-feature-copy {
    display: block !important;
    min-width: 0 !important;
}


.ntr-v2-event
.ntr-v2-event-feature-copy strong {
    display: block !important;

    color: var(--ntr-text-primary) !important;

    font-size: 13px !important;
    font-weight: 760 !important;
    line-height: 1.08 !important;

    white-space: nowrap !important;
}


.ntr-v2-event
.ntr-v2-event-feature-copy small {
    display: none !important;
}


.ntr-v2-event
.ntr-v2-event-feature-more {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    flex: 0 0 auto !important;

    min-height: 37px !important;
    padding: 6px 8px !important;

    appearance: none !important;
    -webkit-appearance: none !important;

    color: var(--ntr-event-primary, var(--ntr-accent)) !important;
    background: transparent !important;

    border: 0 !important;
    border-radius: 7px !important;

    box-shadow: none !important;

    font: inherit !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    line-height: 1 !important;

    white-space: nowrap !important;
    cursor: pointer !important;

    transition:
        background .16s ease,
        color .16s ease
        !important;
}


@media (hover: hover) and (pointer: fine) {
    .ntr-v2-event
    .ntr-v2-event-feature-more:hover {
        background:
            color-mix(
                in srgb,
                var(--ntr-event-primary, var(--ntr-accent)) 8%,
                transparent
            )
            !important;
    }
}


.ntr-v2-event
.ntr-v2-event-feature-more:focus-visible,
.ntr-v2-event-feature-dialog__close:focus-visible {
    outline: 2px solid var(--ntr-event-primary, var(--ntr-accent)) !important;
    outline-offset: 2px !important;
}


/* ------------------------------------------------------
   Attractions / Rules popup
   ------------------------------------------------------ */

.ntr-v2-event-feature-dialog {
    width: min(680px, calc(100vw - 28px)) !important;
    max-width: 680px !important;
    max-height: min(78vh, 760px) !important;

    margin: auto !important;
    padding: 0 !important;

    color: var(--ntr-text-primary) !important;
    background: transparent !important;

    border: 0 !important;
    border-radius: var(--ntr-radius-lg) !important;

    box-shadow: none !important;

    overflow: visible !important;
}


.ntr-v2-event-feature-dialog::backdrop {
    background: rgba(4, 10, 16, .66) !important;
    backdrop-filter: blur(4px) !important;
}


.ntr-v2-event-feature-dialog__panel {
    display: flex !important;
    flex-direction: column !important;

    width: 100% !important;
    max-height: min(78vh, 760px) !important;

    padding: 18px !important;

    background: var(--ntr-surface) !important;

    border: 1px solid var(--ntr-border) !important;
    border-radius: var(--ntr-radius-lg) !important;

    box-shadow: 0 22px 60px rgba(4, 10, 16, .24) !important;

    overflow: hidden !important;
}


.ntr-v2-event-feature-dialog--attractions
.ntr-v2-event-feature-dialog__panel {
    background:
        linear-gradient(
            110deg,
            color-mix(in srgb, #20c4e8 9%, var(--ntr-surface)),
            var(--ntr-surface)
        )
        !important;

    border-color:
        color-mix(in srgb, #20c4e8 25%, var(--ntr-border))
        !important;
}


.ntr-v2-event-feature-dialog--rules
.ntr-v2-event-feature-dialog__panel {
    background:
        linear-gradient(
            110deg,
            color-mix(in srgb, #ff69c7 9%, var(--ntr-surface)),
            var(--ntr-surface)
        )
        !important;

    border-color:
        color-mix(in srgb, #ff69c7 24%, var(--ntr-border))
        !important;
}


.ntr-v2-event-feature-dialog__header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;

    gap: 14px !important;

    margin: 0 0 14px !important;
}


.ntr-v2-event-feature-dialog__title {
    margin: 0 !important;

    color: var(--ntr-text-primary) !important;

    font-size: 20px !important;
    font-weight: 820 !important;
    line-height: 1.1 !important;
}


.ntr-v2-event-feature-dialog__close {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    flex: 0 0 38px !important;

    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;

    margin: 0 !important;
    padding: 0 !important;

    appearance: none !important;
    -webkit-appearance: none !important;

    color: var(--ntr-text-primary) !important;
    background: var(--ntr-surface) !important;

    border: 1px solid var(--ntr-border) !important;
    border-radius: 999px !important;

    box-shadow: none !important;

    font: inherit !important;
    font-size: 23px !important;
    font-weight: 500 !important;
    line-height: 1 !important;

    cursor: pointer !important;
}


.ntr-v2-event-feature-dialog__list {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;

    gap: 8px !important;

    overflow: auto !important;
    overscroll-behavior: contain !important;
}


.ntr-v2-event-feature-dialog__item {
    display: flex !important;
    align-items: flex-start !important;

    gap: 9px !important;

    min-width: 0 !important;
    padding: 10px !important;

    background:
        color-mix(in srgb, var(--ntr-surface) 84%, transparent)
        !important;

    border: 1px solid var(--ntr-border) !important;
    border-radius: 9px !important;
}


.ntr-v2-event-feature-dialog__icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    flex: 0 0 30px !important;

    width: 30px !important;
    height: 30px !important;

    color: var(--ntr-event-primary, var(--ntr-accent)) !important;
    background: var(--ntr-surface) !important;

    border-radius: 999px !important;

    font-size: 13px !important;
}


.ntr-v2-event-feature-dialog__copy {
    display: block !important;
    min-width: 0 !important;
}


.ntr-v2-event-feature-dialog__copy strong {
    display: block !important;

    color: var(--ntr-text-primary) !important;

    font-size: 13px !important;
    font-weight: 760 !important;
    line-height: 1.15 !important;
}


.ntr-v2-event-feature-dialog__copy small {
    display: block !important;

    margin-top: 4px !important;

    color: var(--ntr-text-secondary) !important;

    font-size: 12px !important;
    font-weight: 520 !important;
    line-height: 1.35 !important;
}


@media (max-width: 600px) {
    .ntr-v2-event-feature-dialog__panel {
        padding: 14px !important;
    }

    .ntr-v2-event-feature-dialog__list {
        grid-template-columns: 1fr !important;
    }
}


/* ======================================================
   07. SHARED SECTION HEADINGS
   ====================================================== */

.ntr-v2-event
.ntr-v2-section-title
.elementor-heading-title,
.ntr-v2-event
.ntr-v2-event-feature-title {
    position: relative !important;
}


.ntr-v2-event
.ntr-v2-section-title
.elementor-heading-title {
    margin: 0 !important;

    color: var(--ntr-text-primary) !important;

    font-size: 22px !important;
    font-weight: 830 !important;
    line-height: 1.1 !important;
    letter-spacing: -.02em !important;
}


.ntr-v2-event
.ntr-v2-section-title
.elementor-heading-title::after {
    content: "";

    display: block !important;

    width: 30px !important;
    height: 3px !important;

    margin-top: 5px !important;

    background: var(--ntr-event-primary, var(--ntr-accent)) !important;

    border-radius: 999px !important;
}


/* ======================================================
   08. ABOUT
   Reference: open editorial content, not a large card.
   ====================================================== */

.ntr-v2-event
.ntr-v2-event-about-row--target,
.ntr-v2-event
.ntr-v2-event-about-section {
    overflow: visible !important;

    padding: 0 !important;

    background: transparent !important;

    border: 0 !important;
    border-radius: 0 !important;

    box-shadow: none !important;
}


.ntr-v2-event
.ntr-v2-event-about-title {
    margin-bottom: 13px !important;
}


.ntr-v2-event
.ntr-v2-event-about-content,
.ntr-v2-event
.ntr-v2-event-about-content
.elementor-widget-container {
    width: 100% !important;
    min-width: 0 !important;

    /*
     * Intentionally NO typography ownership here.
     * The event description must render exactly with its native/editor markup:
     * headings, font sizes, strong/bold, underline, italics, lists, links,
     * inline styles/classes and paragraph structure are preserved upstream.
     */
}



/* ------------------------------------------------------
   ABOUT — structural continuation + 8-line preview
   Data source: [ntr_v2_event_about]
   ------------------------------------------------------ */

.ntr-v2-event
.ntr-v2-event-about-projection {
    width: 100% !important;
    min-width: 0 !important;
}

.ntr-v2-event
.ntr-v2-event-about-preview {
    position: relative !important;

    width: 100% !important;
    min-width: 0 !important;
}

.ntr-v2-event
.ntr-v2-event-about-preview__text {
    display: block !important;

    /* 8-line visual cap. Font size is normalized below for predictable geometry. */
    max-height: calc(14px * 1.55 * 8) !important;
    overflow: hidden !important;

    color: inherit !important;

    font-size: 14px !important;
    line-height: 1.55 !important;

    overflow-wrap: anywhere !important;

    cursor: pointer !important;
}

/*
 * Preview typography contract:
 * headings and normal copy use the SAME size.
 * Do not reset weight, underline, italics, links or other editor emphasis.
 */
.ntr-v2-event
.ntr-v2-event-about-preview__text :is(
    h1, h2, h3, h4, h5, h6,
    p, div, span, li, blockquote,
    strong, b, em, i, u, a
) {
    font-size: 14px !important;
    line-height: 1.55 !important;
}

.ntr-v2-event
.ntr-v2-event-about-preview__text:focus-visible {
    outline: 2px solid var(--ntr-event-primary, var(--ntr-accent)) !important;
    outline-offset: 4px !important;
    border-radius: 6px !important;
}

.ntr-v2-event
.ntr-v2-event-about-preview.has-more
.ntr-v2-event-about-preview__text {
    padding-right: 0 !important;
}

/* WIĘCEJ > — event-colour pill, no hard-coded event colour. */
.ntr-v2-event
.ntr-v2-event-about-more {
    position: absolute !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: 3 !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-height: 30px !important;

    margin: 0 !important;
    padding: 5px 11px !important;

    appearance: none !important;
    -webkit-appearance: none !important;

    color: var(--ntr-event-primary, var(--ntr-accent)) !important;
    background:
        color-mix(
            in srgb,
            var(--ntr-event-primary, var(--ntr-accent)) 10%,
            var(--ntr-surface)
        )
        !important;

    border: 1px solid var(--ntr-event-primary, var(--ntr-accent)) !important;
    border-radius: 999px !important;

    box-shadow:
        -16px 0 18px var(--ntr-surface),
        0 2px 8px rgba(13, 27, 40, .06)
        !important;

    font-family: "Outfit", sans-serif !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: .02em !important;

    cursor: pointer !important;
}

.ntr-v2-event
.ntr-v2-event-about-more[hidden] {
    display: none !important;
}

@media (hover: hover) and (pointer: fine) {

    .ntr-v2-event
    .ntr-v2-event-about-more:hover {
        background:
            color-mix(
                in srgb,
                var(--ntr-event-primary, var(--ntr-accent)) 16%,
                var(--ntr-surface)
            )
            !important;
    }
}

.ntr-v2-event
.ntr-v2-event-about-more:focus-visible,
.ntr-v2-event
.ntr-v2-event-about-dialog__close:focus-visible {
    outline: 2px solid var(--ntr-event-primary, var(--ntr-accent)) !important;
    outline-offset: 2px !important;
}


/* ABOUT popup — same editorial shell, native formatted post content inside. */

.ntr-v2-event-about-dialog {
    width: min(760px, calc(100vw - 28px)) !important;
    max-width: 760px !important;
    max-height: min(82vh, 820px) !important;

    margin: auto !important;
    padding: 0 !important;

    color: var(--ntr-text-primary) !important;
    background: transparent !important;

    border: 0 !important;
    border-radius: var(--ntr-radius-lg) !important;

    box-shadow: none !important;

    overflow: visible !important;
}

.ntr-v2-event-about-dialog::backdrop {
    background: rgba(4, 10, 16, .66) !important;
    backdrop-filter: blur(4px) !important;
}

.ntr-v2-event-about-dialog__panel {
    display: flex !important;
    flex-direction: column !important;

    width: 100% !important;
    max-height: min(82vh, 820px) !important;

    padding: 18px !important;

    background: var(--ntr-surface) !important;

    border: 1px solid var(--ntr-border) !important;
    border-radius: var(--ntr-radius-lg) !important;

    box-shadow: 0 22px 60px rgba(4, 10, 16, .24) !important;

    overflow: hidden !important;
}

.ntr-v2-event-about-dialog__header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;

    gap: 14px !important;

    margin: 0 0 14px !important;
}

.ntr-v2-event-about-dialog__title {
    margin: 0 !important;

    color: var(--ntr-text-primary) !important;

    font-size: 20px !important;
    font-weight: 820 !important;
    line-height: 1.1 !important;
}

.ntr-v2-event-about-dialog__close {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    flex: 0 0 38px !important;

    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;

    margin: 0 !important;
    padding: 0 !important;

    appearance: none !important;
    -webkit-appearance: none !important;

    color: var(--ntr-text-primary) !important;
    background: var(--ntr-surface-2) !important;

    border: 1px solid var(--ntr-border) !important;
    border-radius: 999px !important;

    box-shadow: none !important;

    font: inherit !important;
    font-size: 23px !important;
    font-weight: 500 !important;
    line-height: 1 !important;

    cursor: pointer !important;
}

.ntr-v2-event-about-dialog__content {
    overflow: auto !important;
    overscroll-behavior: contain !important;

    padding-right: 4px !important;

    font-size: 14px !important;
    line-height: 1.55 !important;

    overflow-wrap: anywhere !important;
}

/* Same-size content typography in popup; retain emphasis/decoration from editor. */
.ntr-v2-event-about-dialog__content :is(
    h1, h2, h3, h4, h5, h6,
    p, div, span, li, blockquote,
    strong, b, em, i, u, a
) {
    font-size: 14px !important;
    line-height: 1.55 !important;
}

@media (max-width: 767px) {

    .ntr-v2-event-about-dialog__panel {
        padding: 15px !important;
    }
}

/* ======================================================
   09. TICKETS
   ====================================================== */

.ntr-v2-event
.ntr-v2-event-tickets--target {
    padding: 0 !important;

    background: transparent !important;

    border: 0 !important;
    border-radius: 0 !important;

    box-shadow: none !important;
}


.ntr-v2-event
.ntr-v2-event-tickets-head {
    margin-bottom: 2px !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-module {
    width: 100% !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-grid {
    display: grid !important;

    /*
     * Six-track desktop grid:
     * - normal card = 2/6 tracks = 33.333%
     * - two cards in final row = 3/6 each = 50/50
     * - one card in final row = 6/6 = 100%
     */
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;

    gap: 10px !important;

    width: 100% !important;
}


@media (min-width: 1025px) {

    .ntr-v2-event
    .ntr-v2-event-ticket-grid
    > .ntr-v2-event-ticket-card {
        grid-column: span 2 !important;
    }

    /*
     * Final row contains one card:
     * totals 1, 4, 7, 10...
     */
    .ntr-v2-event
    .ntr-v2-event-ticket-grid
    > .ntr-v2-event-ticket-card:last-child:nth-child(3n + 1) {
        grid-column: 1 / -1 !important;
    }

    /*
     * Final row contains two cards:
     * totals 2, 5, 8, 11...
     */
    .ntr-v2-event
    .ntr-v2-event-ticket-grid
    > .ntr-v2-event-ticket-card:nth-last-child(2):nth-child(3n + 1),
    .ntr-v2-event
    .ntr-v2-event-ticket-grid
    > .ntr-v2-event-ticket-card:last-child:nth-child(3n + 2) {
        grid-column: span 3 !important;
    }
}


.ntr-v2-event
.ntr-v2-event-ticket-card {
    display: flex !important;
    flex-direction: column !important;

    min-height: 100% !important;

    padding: 14px !important;

    background: var(--ntr-surface) !important;

    border: 1px solid var(--ntr-border) !important;
    border-radius: var(--ntr-radius-md) !important;

    box-shadow: none !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card:hover {
    border-color:
        color-mix(
            in srgb,
            var(--ntr-event-primary, var(--ntr-accent)) 48%,
            var(--ntr-border)
        )
        !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__body {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 96px !important;
    grid-template-areas:
        "icon icon"
        "title title"
        "price quantity"
        "status status"
        !important;

    column-gap: 12px !important;
    row-gap: 0 !important;
    align-content: start !important;

    flex: 1 1 auto !important;
    min-width: 0 !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__icon {
    grid-area: icon !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__body > h3 {
    grid-area: title !important;

    min-width: 0 !important;
    min-height: calc(2 * 1.15em) !important;

    overflow-wrap: anywhere !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__price {
    grid-area: price !important;

    align-self: center !important;

    min-width: 0 !important;

    white-space: nowrap !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__status {
    grid-area: status !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 34px !important;
    height: 34px !important;

    margin-bottom: 10px !important;

    color: var(--ntr-event-primary, var(--ntr-accent)) !important;
    background:
        color-mix(
            in srgb,
            var(--ntr-event-primary, var(--ntr-accent)) 9%,
            var(--ntr-surface)
        )
        !important;

    border-radius: 999px !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card h3 {
    margin: 0 0 8px !important;

    color: var(--ntr-text-primary) !important;

    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__price {
    margin: 0 0 7px !important;

    color: var(--ntr-text-primary) !important;

    font-size: 24px !important;
    font-weight: 850 !important;
    line-height: 1 !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__price del {
    margin-right: 5px !important;

    color: var(--ntr-text-muted) !important;

    font-size: 13px !important;
    font-weight: 600 !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__price ins {
    color: var(--ntr-event-primary, var(--ntr-accent)) !important;
    text-decoration: none !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-price-free {
    color: var(--ntr-event-primary, var(--ntr-accent)) !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__description {
    margin: 0 0 11px !important;

    color: var(--ntr-text-secondary) !important;

    font-size: 12px !important;
    line-height: 1.42 !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__description p {
    margin: 0 0 5px !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__status {
    display: inline-flex !important;
    align-self: flex-start !important;

    margin-top: auto !important;
    padding: 4px 7px !important;

    color: var(--ntr-text-muted) !important;
    background: var(--ntr-surface-2) !important;

    border: 1px solid var(--ntr-border) !important;
    border-radius: 999px !important;

    font-size: 10px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__cta {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 100% !important;
    min-height: 44px !important;

    margin-top: 12px !important;
    padding: 10px 12px !important;

    color: var(--ntr-event-on-primary, #fff) !important;
    background: var(--ntr-event-primary, var(--ntr-accent)) !important;

    border: 1px solid var(--ntr-event-primary, var(--ntr-accent)) !important;
    border-radius: 7px !important;

    font-size: 12px !important;
    font-weight: 790 !important;
    text-decoration: none !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__cta.is-disabled {
    color: var(--ntr-text-muted) !important;
    background: var(--ntr-surface-2) !important;

    border-color: var(--ntr-border) !important;

    cursor: not-allowed !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card.is-sold-out {
    opacity: .72 !important;
}




/* ======================================================
   09A. TICKET SPECIAL TYPES — SPONSOR / VIP
   v5.1

   Semantic classes are emitted by Data Bridge v3.0.
   The treatment is intentionally premium and noticeable
   without turning the cards into loud advertising blocks.
   ====================================================== */

/* ---------- SPONSOR ---------- */

.ntr-v2-event
.ntr-v2-event-ticket-card.is-ticket-sponsor {
    --ntr-ticket-special: #B97810;
    --ntr-ticket-special-strong: #8D5908;

    background:
        linear-gradient(
            145deg,
            color-mix(
                in srgb,
                #F6D98A 22%,
                var(--ntr-surface)
            ),
            color-mix(
                in srgb,
                #FFF4D6 10%,
                var(--ntr-surface)
            )
        )
        !important;

    border-color:
        color-mix(
            in srgb,
            var(--ntr-ticket-special) 58%,
            var(--ntr-border)
        )
        !important;

    box-shadow:
        inset 4px 0 0
            var(--ntr-ticket-special),
        0 7px 18px
            color-mix(
                in srgb,
                var(--ntr-ticket-special) 13%,
                transparent
            )
        !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card.is-ticket-sponsor
.ntr-v2-event-ticket-card__icon {
    color:
        var(--ntr-ticket-special-strong) !important;

    background:
        color-mix(
            in srgb,
            #F6D98A 34%,
            var(--ntr-surface)
        )
        !important;

    box-shadow:
        inset 0 0 0 1px
            color-mix(
                in srgb,
                var(--ntr-ticket-special) 34%,
                transparent
            )
        !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card.is-ticket-sponsor
h3,
.ntr-v2-event
.ntr-v2-event-ticket-card.is-ticket-sponsor
.ntr-v2-event-ticket-card__price,
.ntr-v2-event
.ntr-v2-event-ticket-card.is-ticket-sponsor
.ntr-v2-event-ticket-price-free {
    color:
        var(--ntr-ticket-special-strong) !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card.is-ticket-sponsor
.ntr-v2-event-ticket-card__cta:not(.is-disabled) {
    color:
        #fff !important;

    background:
        linear-gradient(
            135deg,
            #C98B18,
            #9C6308
        )
        !important;

    border-color:
        #9C6308 !important;

    box-shadow:
        0 6px 16px
            rgba(156, 99, 8, .20)
        !important;
}


/* ---------- VIP ---------- */

.ntr-v2-event
.ntr-v2-event-ticket-card.is-ticket-vip {
    --ntr-ticket-special: #7546C8;
    --ntr-ticket-special-strong: #54279F;

    background:
        linear-gradient(
            145deg,
            color-mix(
                in srgb,
                #C9B7F4 20%,
                var(--ntr-surface)
            ),
            color-mix(
                in srgb,
                #EFE8FF 10%,
                var(--ntr-surface)
            )
        )
        !important;

    border-color:
        color-mix(
            in srgb,
            var(--ntr-ticket-special) 58%,
            var(--ntr-border)
        )
        !important;

    box-shadow:
        inset 4px 0 0
            var(--ntr-ticket-special),
        0 7px 18px
            color-mix(
                in srgb,
                var(--ntr-ticket-special) 14%,
                transparent
            )
        !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card.is-ticket-vip
.ntr-v2-event-ticket-card__icon {
    color:
        var(--ntr-ticket-special-strong) !important;

    background:
        color-mix(
            in srgb,
            #C9B7F4 32%,
            var(--ntr-surface)
        )
        !important;

    box-shadow:
        inset 0 0 0 1px
            color-mix(
                in srgb,
                var(--ntr-ticket-special) 32%,
                transparent
            )
        !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card.is-ticket-vip
h3,
.ntr-v2-event
.ntr-v2-event-ticket-card.is-ticket-vip
.ntr-v2-event-ticket-card__price,
.ntr-v2-event
.ntr-v2-event-ticket-card.is-ticket-vip
.ntr-v2-event-ticket-price-free {
    color:
        var(--ntr-ticket-special-strong) !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card.is-ticket-vip
.ntr-v2-event-ticket-card__cta:not(.is-disabled) {
    color:
        #fff !important;

    background:
        linear-gradient(
            135deg,
            #8658D7,
            #5C2CAB
        )
        !important;

    border-color:
        #5C2CAB !important;

    box-shadow:
        0 6px 16px
            rgba(92, 44, 171, .22)
        !important;
}


/* If a ticket contains both VIP and Sponsor wording,
   VIP wins as the dominant visual identity. */

.ntr-v2-event
.ntr-v2-event-ticket-card.is-ticket-sponsor.is-ticket-vip {
    --ntr-ticket-special: #7546C8;
    --ntr-ticket-special-strong: #54279F;

    background:
        linear-gradient(
            145deg,
            color-mix(
                in srgb,
                #C9B7F4 20%,
                var(--ntr-surface)
            ),
            color-mix(
                in srgb,
                #EFE8FF 10%,
                var(--ntr-surface)
            )
        )
        !important;

    border-color:
        color-mix(
            in srgb,
            var(--ntr-ticket-special) 58%,
            var(--ntr-border)
        )
        !important;

    box-shadow:
        inset 4px 0 0
            var(--ntr-ticket-special),
        0 7px 18px
            color-mix(
                in srgb,
                var(--ntr-ticket-special) 14%,
                transparent
            )
        !important;
}


/* Dark mode: retain the identity but avoid neon-like surfaces. */

.ntr-v2-event[data-theme="dark"]
.ntr-v2-event-ticket-card.is-ticket-sponsor {
    --ntr-ticket-special: #E2B452;
    --ntr-ticket-special-strong: #F1CC79;
}


.ntr-v2-event[data-theme="dark"]
.ntr-v2-event-ticket-card.is-ticket-vip {
    --ntr-ticket-special: #A785EB;
    --ntr-ticket-special-strong: #C4ACF5;
}


.ntr-v2-event
.ntr-v2-event-ticket-card.is-ticket-sponsor:hover,
.ntr-v2-event
.ntr-v2-event-ticket-card.is-ticket-vip:hover {
    transform:
        translateY(-1px);

    border-color:
        var(--ntr-ticket-special) !important;

    box-shadow:
        inset 4px 0 0
            var(--ntr-ticket-special),
        0 10px 24px
            color-mix(
                in srgb,
                var(--ntr-ticket-special) 18%,
                transparent
            )
        !important;
}




/* ======================================================
   09B. TICKET INFO / "SPRAWDŹ KORZYŚCI"
   v5.2 — Data Bridge v3.1 + Runtime v3.0
   ====================================================== */

.ntr-v2-event
.ntr-v2-event-ticket-card__actions {
    display: flex !important;
    align-items: stretch !important;

    gap: 9px !important;

    width: 100% !important;

    margin-top: 14px !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__actions
.ntr-v2-event-ticket-card__cta {
    flex: 1 1 auto !important;

    width: auto !important;
    min-width: 0 !important;

    margin-top: 0 !important;

    appearance: none !important;
    -webkit-appearance: none !important;

    cursor: pointer !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__actions
.ntr-v2-event-ticket-card__cta:disabled {
    opacity: .68 !important;
    cursor: wait !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__info {
    --ntr-ticket-info-accent:
        var(
            --ntr-ticket-special,
            var(--ntr-event-primary, var(--ntr-accent))
        );

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    flex: 0 0 44px !important;

    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;

    margin: 0 !important;
    padding: 0 !important;

    color: var(--ntr-ticket-info-accent) !important;
    background:
        color-mix(
            in srgb,
            var(--ntr-ticket-info-accent) 10%,
            var(--ntr-surface)
        )
        !important;

    border: 1px solid
        color-mix(
            in srgb,
            var(--ntr-ticket-info-accent) 58%,
            var(--ntr-border)
        )
        !important;

    border-radius: 999px !important;

    box-shadow: none !important;

    cursor: pointer !important;

    font-family: "Outfit", sans-serif !important;
    font-size: 16px !important;
    font-style: normal !important;
    font-weight: 850 !important;
    line-height: 1 !important;

    transition:
        transform .16s ease,
        background-color .16s ease,
        border-color .16s ease,
        box-shadow .16s ease
        !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__info:hover {
    transform: translateY(-1px) !important;

    color: #fff !important;
    background: var(--ntr-ticket-info-accent) !important;
    border-color: var(--ntr-ticket-info-accent) !important;

    box-shadow:
        0 7px 18px
        color-mix(
            in srgb,
            var(--ntr-ticket-info-accent) 20%,
            transparent
        )
        !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__info:focus-visible {
    outline: 3px solid
        color-mix(
            in srgb,
            var(--ntr-ticket-info-accent) 30%,
            transparent
        )
        !important;
    outline-offset: 2px !important;
}




/* ---------- v5.4 quantity selector — polished right-side control ---------- */

.ntr-v2-event
.ntr-v2-event-ticket-card__quantity {
    --ntr-ticket-qty-accent:
        var(
            --ntr-ticket-special,
            var(--ntr-event-primary, var(--ntr-accent))
        );

    grid-area: quantity !important;

    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    justify-content: center !important;

    justify-self: end !important;
    align-self: center !important;

    gap: 5px !important;

    width: 96px !important;
    min-width: 96px !important;

    margin: 0 !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__quantity-label {
    width: 94px !important;

    color: var(--ntr-text-muted) !important;

    font-size: 9px !important;
    font-weight: 850 !important;
    line-height: 1 !important;
    letter-spacing: .09em !important;
    text-align: center !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__quantity-control {
    display: grid !important;
    grid-template-columns: 30px 34px 30px !important;
    align-items: center !important;

    width: 94px !important;
    min-width: 94px !important;
    height: 38px !important;
    min-height: 38px !important;

    overflow: hidden !important;

    background:
        color-mix(
            in srgb,
            var(--ntr-ticket-qty-accent) 4%,
            var(--ntr-surface)
        )
        !important;

    border: 1px solid
        color-mix(
            in srgb,
            var(--ntr-ticket-qty-accent) 34%,
            var(--ntr-border)
        )
        !important;

    border-radius: 10px !important;

    box-shadow:
        0 1px 2px
        color-mix(
            in srgb,
            var(--ntr-text-primary) 5%,
            transparent
        )
        !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__quantity-step {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 30px !important;
    height: 36px !important;

    margin: 0 !important;
    padding: 0 !important;

    color: var(--ntr-ticket-qty-accent) !important;
    background: transparent !important;

    border: 0 !important;
    border-radius: 0 !important;

    box-shadow: none !important;

    cursor: pointer !important;

    font-family: "Outfit", sans-serif !important;
    font-size: 18px !important;
    font-weight: 750 !important;
    line-height: 1 !important;

    transition:
        color .14s ease,
        background-color .14s ease
        !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__quantity-step:hover {
    color: #fff !important;
    background: var(--ntr-ticket-qty-accent) !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__quantity-step:focus-visible {
    color: #fff !important;
    background: var(--ntr-ticket-qty-accent) !important;

    outline: 2px solid
        color-mix(
            in srgb,
            var(--ntr-ticket-qty-accent) 34%,
            transparent
        )
        !important;
    outline-offset: -2px !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__quantity-step:disabled {
    color: var(--ntr-text-muted) !important;
    background: transparent !important;

    opacity: .35 !important;
    cursor: not-allowed !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__quantity-input {
    width: 34px !important;
    min-width: 34px !important;
    height: 36px !important;

    margin: 0 !important;
    padding: 0 !important;

    color: var(--ntr-text-primary) !important;
    background:
        color-mix(
            in srgb,
            var(--ntr-ticket-qty-accent) 3%,
            var(--ntr-surface)
        )
        !important;

    border: 0 !important;
    border-left: 1px solid var(--ntr-border) !important;
    border-right: 1px solid var(--ntr-border) !important;
    border-radius: 0 !important;

    box-shadow: none !important;
    outline: 0 !important;

    font-family: "Outfit", sans-serif !important;
    font-size: 13px !important;
    font-weight: 850 !important;
    line-height: 1 !important;
    text-align: center !important;

    -moz-appearance: textfield !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__quantity-input::-webkit-outer-spin-button,
.ntr-v2-event
.ntr-v2-event-ticket-card__quantity-input::-webkit-inner-spin-button {
    margin: 0 !important;
    -webkit-appearance: none !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__quantity-input:focus-visible {
    background:
        color-mix(
            in srgb,
            var(--ntr-ticket-qty-accent) 9%,
            var(--ntr-surface)
        )
        !important;

    box-shadow:
        inset 0 0 0 2px
        color-mix(
            in srgb,
            var(--ntr-ticket-qty-accent) 30%,
            transparent
        )
        !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__feedback {
    min-height: 0 !important;

    margin: 0 !important;

    color: #B42318 !important;

    font-size: 11px !important;
    font-weight: 650 !important;
    line-height: 1.35 !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-card__feedback:not(:empty) {
    margin-top: 8px !important;
}


@media (max-width: 767px) {

    .ntr-v2-event
    .ntr-v2-event-ticket-card__body {
        grid-template-columns: minmax(0, 1fr) 96px !important;
        column-gap: 12px !important;
    }

    .ntr-v2-event
    .ntr-v2-event-ticket-card__body > h3 {
        min-height: calc(2 * 1.15em) !important;
    }
}


@media (max-width: 390px) {

    .ntr-v2-event
    .ntr-v2-event-ticket-card__body {
        grid-template-columns: minmax(0, 1fr) 90px !important;
        column-gap: 9px !important;
    }

    .ntr-v2-event
    .ntr-v2-event-ticket-card__body > h3 {
        min-height: calc(2 * 1.15em) !important;
    }

    .ntr-v2-event
    .ntr-v2-event-ticket-card__quantity {
        width: 90px !important;
        min-width: 90px !important;
    }

    .ntr-v2-event
    .ntr-v2-event-ticket-card__quantity-label {
        width: 88px !important;
    }

    .ntr-v2-event
    .ntr-v2-event-ticket-card__quantity-control {
        grid-template-columns: 28px 32px 28px !important;

        width: 88px !important;
        min-width: 88px !important;
    }

    .ntr-v2-event
    .ntr-v2-event-ticket-card__quantity-step {
        width: 28px !important;
    }

    .ntr-v2-event
    .ntr-v2-event-ticket-card__quantity-input {
        width: 32px !important;
        min-width: 32px !important;
    }
}


/* ---------- Native ticket information dialog ---------- */

.ntr-v2-event
.ntr-v2-event-ticket-info-dialog {
    width: min(560px, calc(100vw - 32px)) !important;
    max-width: 560px !important;

    max-height: min(78vh, 720px) !important;

    margin: auto !important;
    padding: 0 !important;

    color: var(--ntr-text-primary) !important;
    background: transparent !important;

    border: 0 !important;

    overflow: visible !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-info-dialog::backdrop {
    background: rgba(5, 13, 21, .66) !important;
    backdrop-filter: blur(5px) !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-info-dialog__panel {
    --ntr-ticket-info-accent:
        var(
            --ntr-ticket-special,
            var(--ntr-event-primary, var(--ntr-accent))
        );

    width: 100% !important;

    max-height: min(78vh, 720px) !important;

    padding: 20px !important;

    color: var(--ntr-text-primary) !important;
    background:
        linear-gradient(
            145deg,
            color-mix(
                in srgb,
                var(--ntr-ticket-info-accent) 7%,
                var(--ntr-surface)
            ),
            var(--ntr-surface)
        )
        !important;

    border: 1px solid
        color-mix(
            in srgb,
            var(--ntr-ticket-info-accent) 32%,
            var(--ntr-border)
        )
        !important;

    border-radius: 16px !important;

    box-shadow:
        0 24px 70px rgba(0, 0, 0, .22)
        !important;

    overflow: auto !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-info-dialog__header {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;

    gap: 18px !important;

    margin-bottom: 16px !important;
    padding-bottom: 14px !important;

    border-bottom: 1px solid
        color-mix(
            in srgb,
            var(--ntr-ticket-info-accent) 22%,
            var(--ntr-border)
        )
        !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-info-dialog__heading {
    min-width: 0 !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-info-dialog__eyebrow {
    display: block !important;

    margin: 0 0 5px !important;

    color: var(--ntr-ticket-info-accent) !important;

    font-size: 10px !important;
    font-weight: 850 !important;
    line-height: 1.15 !important;
    letter-spacing: .09em !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-info-dialog__title {
    margin: 0 !important;

    color: var(--ntr-text-primary) !important;

    font-family: "Outfit", sans-serif !important;
    font-size: 20px !important;
    font-weight: 850 !important;
    line-height: 1.12 !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-info-dialog__close {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    flex: 0 0 34px !important;

    width: 34px !important;
    height: 34px !important;

    margin: -3px -3px 0 0 !important;
    padding: 0 !important;

    color: var(--ntr-text-secondary) !important;
    background: var(--ntr-surface-2) !important;

    border: 1px solid var(--ntr-border) !important;
    border-radius: 999px !important;

    cursor: pointer !important;

    font-size: 20px !important;
    font-weight: 500 !important;
    line-height: 1 !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-info-dialog__close:hover,
.ntr-v2-event
.ntr-v2-event-ticket-info-dialog__close:focus-visible {
    color: #fff !important;
    background: var(--ntr-ticket-info-accent) !important;
    border-color: var(--ntr-ticket-info-accent) !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-info-dialog__content {
    color: var(--ntr-text-secondary) !important;

    font-size: 14px !important;
    line-height: 1.55 !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-info-dialog__content > :first-child {
    margin-top: 0 !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-info-dialog__content > :last-child {
    margin-bottom: 0 !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-info-dialog__content p {
    margin: 0 0 10px !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-info-dialog__content :is(ul, ol) {
    margin: 8px 0 12px 20px !important;
    padding: 0 !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-info-dialog__content li {
    margin: 0 0 6px !important;
}


.ntr-v2-event
.ntr-v2-event-ticket-info-dialog__content a {
    color: var(--ntr-ticket-info-accent) !important;
    font-weight: 750 !important;
}


@media (max-width: 767px) {

    .ntr-v2-event
    .ntr-v2-event-ticket-info-dialog {
        width: calc(100vw - 22px) !important;
    }

    .ntr-v2-event
    .ntr-v2-event-ticket-info-dialog__panel {
        padding: 17px !important;

        border-radius: 14px !important;
    }

    .ntr-v2-event
    .ntr-v2-event-ticket-info-dialog__title {
        font-size: 18px !important;
    }
}


/* ======================================================
   10. GALLERY
   ====================================================== */

.ntr-v2-event
.ntr-v2-event-content-lower--target {
    padding: 0 !important;

    background: transparent !important;

    border: 0 !important;

    box-shadow: none !important;
}


.ntr-v2-event
.ntr-v2-event-gallery-title {
    margin-bottom: 10px !important;
}


.ntr-v2-event
.ntr-v2-event-gallery-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;

    gap: 8px !important;

    width: 100% !important;
}


.ntr-v2-event
.ntr-v2-event-gallery-item {
    display: block !important;

    aspect-ratio: 4 / 3 !important;

    overflow: hidden !important;

    background: var(--ntr-surface-2) !important;

    border: 1px solid var(--ntr-border) !important;
    border-radius: 9px !important;
}


.ntr-v2-event
.ntr-v2-event-gallery-image {
    display: block !important;

    width: 100% !important;
    height: 100% !important;

    object-fit: cover !important;

    transition: transform .2s ease !important;
}


.ntr-v2-event
.ntr-v2-event-gallery-item:hover
.ntr-v2-event-gallery-image {
    transform: scale(1.035) !important;
}


/* ======================================================
   11. RELATED EVENTS — compact horizontal cards
   ====================================================== */

.ntr-v2-event
.ntr-v2-event-related--compact {
    padding: 0 !important;

    background: transparent !important;

    border: 0 !important;

    box-shadow: none !important;
}


.ntr-v2-event
.ntr-v2-event-related-head {
    margin-bottom: 8px !important;
}


.ntr-v2-event
.ntr-v2-event-related-grid {
    display: grid !important;

    /*
     * Six-track adaptive 3-column system:
     * - normal card = 2/6 = 33.333%
     * - final row with 2 cards = 3/6 + 3/6 = 50/50
     * - final row with 1 card = 6/6 = 100%
     */
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;

    gap: 8px !important;

    width: 100% !important;
}


@media (min-width: 768px) {

    .ntr-v2-event
    .ntr-v2-event-related-grid
    > .ntr-v2-event-related-card {
        grid-column: span 2 !important;
    }

    /* Final row contains one card: totals 1, 4, 7, 10... */
    .ntr-v2-event
    .ntr-v2-event-related-grid
    > .ntr-v2-event-related-card:last-child:nth-child(3n + 1) {
        grid-column: 1 / -1 !important;
    }

    /* Final row contains two cards: totals 2, 5, 8, 11... */
    .ntr-v2-event
    .ntr-v2-event-related-grid
    > .ntr-v2-event-related-card:nth-last-child(2):nth-child(3n + 1),
    .ntr-v2-event
    .ntr-v2-event-related-grid
    > .ntr-v2-event-related-card:last-child:nth-child(3n + 2) {
        grid-column: span 3 !important;
    }
}


.ntr-v2-event
.ntr-v2-event-related-card {
    overflow: hidden !important;

    min-height: 76px !important;

    background: var(--ntr-surface) !important;

    border: 1px solid var(--ntr-border) !important;
    border-radius: 9px !important;

    box-shadow: none !important;
}


.ntr-v2-event
.ntr-v2-event-related-card__link {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;

    height: 100% !important;

    color: inherit !important;
    text-decoration: none !important;
}


.ntr-v2-event
.ntr-v2-event-related-card__media {
    display: block !important;

    flex: 0 0 38% !important;

    width: 38% !important;
    min-height: 76px !important;

    overflow: hidden !important;
}


.ntr-v2-event
.ntr-v2-event-related-card__image {
    display: block !important;

    width: 100% !important;
    height: 100% !important;

    object-fit: cover !important;
}


.ntr-v2-event
.ntr-v2-event-related-card__body {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;

    gap: 3px !important;

    flex: 1 1 auto !important;

    padding: 9px 10px !important;
}


.ntr-v2-event
.ntr-v2-event-related-card__body strong {
    color: var(--ntr-text-primary) !important;

    font-size: 12px !important;
    font-weight: 780 !important;
    line-height: 1.18 !important;
}


.ntr-v2-event
.ntr-v2-event-related-card__body span {
    color: var(--ntr-event-primary, var(--ntr-accent)) !important;

    font-size: 10px !important;
    font-weight: 720 !important;
}


/* ======================================================
   12. SIDEBAR — SUMMARY

   Visual target:
   - full-width CTA controls;
   - equal geometry for primary + secondary;
   - compact 44px control height;
   - 8px radius;
   - existing hover behaviour preserved;
   - local specificity intentionally beats Shared UI wrapper width:auto.
   ====================================================== */

.ntr-v2-event
.ntr-v2-event-summary--target {
    overflow: hidden !important;

    padding: 8px !important;

    background: var(--ntr-surface) !important;

    border: 1px solid var(--ntr-border) !important;
    border-radius: var(--ntr-radius-md) !important;

    box-shadow: var(--ntr-shadow-soft) !important;
}


.ntr-v2-event
.ntr-v2-event-summary-media,
.ntr-v2-event
.ntr-v2-event-summary-image,
.ntr-v2-event
.ntr-v2-event-summary-image
.elementor-widget-container {
    width: 100% !important;
}


.ntr-v2-event
.ntr-v2-event-summary-image {
    overflow: hidden !important;

    border-radius: 8px !important;
}


.ntr-v2-event
.ntr-v2-event-summary-image img {
    display: block !important;

    width: 100% !important;
    aspect-ratio: 16 / 11 !important;

    object-fit: cover !important;
    object-position: center center !important;
}


/* SOLD OUT BADGE — sidebar summary image */

.ntr-v2-event
.ntr-v2-event-summary-media {
    position: relative !important;
}

.ntr-v2-event
.ntr-v2-event-summary--target.is-sold-out
.ntr-v2-event-summary-media::after {
    content: "SOLD OUT";

    position: absolute !important;
    top: 12px !important;
    right: 12px !important;
    z-index: 4 !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-height: 28px !important;
    padding: 0 10px !important;

    border-radius: 999px !important;
    border: 1px solid var(--ntr-event-soldout-fg, var(--ntr-event-light, #fff)) !important;

    background: var(--ntr-event-soldout-bg, var(--ntr-event-dark, #0D1B28)) !important;
    color: var(--ntr-event-soldout-fg, var(--ntr-event-light, #fff)) !important;

    box-shadow: 0 8px 18px rgba(13, 27, 40, .18) !important;

    font-family: "Outfit", sans-serif !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;

    pointer-events: none !important;
}


/* CTA CONTAINERS */

.ntr-v2-event
.ntr-v2-event-summary-primary,
.ntr-v2-event
.ntr-v2-event-summary-secondary {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
}


/* Elementor widget wrappers.
   Higher specificity than global:
   .ntr-v2 .ntr-v2-button.elementor-widget-button { width:auto!important; }
*/

.ntr-v2.ntr-v2-event
.ntr-v2-event-summary-primary
.ntr-v2-event-summary-ticket.ntr-v2-button.elementor-widget-button,
.ntr-v2.ntr-v2-event
.ntr-v2-event-summary-secondary
.ntr-v2-event-summary-about.ntr-v2-button.elementor-widget-button {
    display: block !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    align-self: stretch !important;

    margin: 0 !important;
    padding: 0 !important;
}


/* Equal button geometry */

.ntr-v2.ntr-v2-event
.ntr-v2-event-summary-primary
.ntr-v2-event-summary-ticket
.elementor-button,
.ntr-v2.ntr-v2-event
.ntr-v2-event-summary-secondary
.ntr-v2-event-summary-about
.elementor-button {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 44px !important;

    padding: 9px 14px !important;

    border-radius: 8px !important;

    box-shadow: none !important;

    font-family: "Outfit", sans-serif !important;
    font-size: 12px !important;
    font-weight: 760 !important;
    line-height: 1 !important;

    white-space: nowrap !important;
}


/* Primary CTA */

.ntr-v2.ntr-v2-event
.ntr-v2-event-summary-primary
.ntr-v2-event-summary-ticket
.elementor-button {
    color: var(--ntr-event-on-primary, #fff) !important;

    background:
        var(--ntr-event-primary, var(--ntr-accent))
        !important;

    border:
        1px solid
        var(--ntr-event-primary, var(--ntr-accent))
        !important;
}

/* Sold-out / unavailable — do not change NOTE Event colour,
   only create a subtle inactive fade and remove hover feedback. */

.ntr-v2.ntr-v2-event
.ntr-v2-event-summary--target.is-ticket-disabled
.ntr-v2-event-summary-primary
.ntr-v2-event-summary-ticket
.elementor-button,
.ntr-v2.ntr-v2-event
.ntr-v2-event-summary-primary
.ntr-v2-event-summary-ticket
.elementor-button.is-disabled,
.ntr-v2.ntr-v2-event
.ntr-v2-event-summary-primary
.ntr-v2-event-summary-ticket
.elementor-button[aria-disabled="true"] {
    opacity: .52 !important;

    transform: none !important;
    box-shadow: none !important;

    cursor: default !important;
    pointer-events: none !important;

    transition: opacity .16s ease !important;
}


/* Secondary CTA */

.ntr-v2.ntr-v2-event
.ntr-v2-event-summary-secondary
.ntr-v2-event-summary-about
.elementor-button {
    color: var(--ntr-text-primary) !important;

    background: var(--ntr-surface-2) !important;

    border: 1px solid var(--ntr-border) !important;
}


/* Keep icon alignment compact when Elementor Button contains an icon. */

.ntr-v2.ntr-v2-event
.ntr-v2-event-summary-primary
.ntr-v2-event-summary-ticket
.elementor-button-content-wrapper,
.ntr-v2.ntr-v2-event
.ntr-v2-event-summary-secondary
.ntr-v2-event-summary-about
.elementor-button-content-wrapper {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    gap: 8px !important;
}


/* Existing hover logic remains active.
   Only add local colour continuity for the secondary control. */

@media (hover: hover) and (pointer: fine) {

    .ntr-v2.ntr-v2-event
    .ntr-v2-event-summary-secondary
    .ntr-v2-event-summary-about
    .elementor-button:hover {
        color: var(--ntr-event-primary, var(--ntr-accent)) !important;

        background:
            color-mix(
                in srgb,
                var(--ntr-event-primary, var(--ntr-accent)) 7%,
                var(--ntr-surface)
            )
            !important;

        border-color:
            color-mix(
                in srgb,
                var(--ntr-event-primary, var(--ntr-accent)) 30%,
                var(--ntr-border)
            )
            !important;
    }
}


@media (hover: hover) and (pointer: fine) {

    .ntr-v2.ntr-v2-event
    .ntr-v2-event-summary--target.is-ticket-disabled
    .ntr-v2-event-summary-primary
    .ntr-v2-event-summary-ticket
    .elementor-button:hover,
    .ntr-v2.ntr-v2-event
    .ntr-v2-event-summary-primary
    .ntr-v2-event-summary-ticket
    .elementor-button.is-disabled:hover,
    .ntr-v2.ntr-v2-event
    .ntr-v2-event-summary-primary
    .ntr-v2-event-summary-ticket
    .elementor-button[aria-disabled="true"]:hover {
        transform: none !important;
        background: inherit !important;
        border-color: inherit !important;
        color: inherit !important;
    }
}


/* ======================================================
   13. SIDEBAR — SHARED CARDS
   ====================================================== */

.ntr-v2-event
.ntr-v2-event-sidebar-block {
    width: 100% !important;
}


.ntr-v2-event
.ntr-v2-event-side-card {
    width: 100% !important;

    padding: 13px !important;

    background: var(--ntr-surface) !important;

    border: 1px solid var(--ntr-border) !important;
    border-radius: var(--ntr-radius-md) !important;

    box-shadow: none !important;
}


.ntr-v2-event
.ntr-v2-event-side-card
.ntr-v2-section-title {
    margin-bottom: 10px !important;
}


.ntr-v2-event
.ntr-v2-event-side-card
.ntr-v2-section-title {
    color: var(--ntr-text-primary) !important;

    font-size: 18px !important;
    font-weight: 820 !important;
    line-height: 1.1 !important;
}


/* Organizer — NOTE Event Organizer Profile (O5) */

.ntr-v2-event
.ntr-v2-event-organizer-card__body {
    display: flex !important;
    align-items: center !important;

    gap: 12px !important;

    min-width: 0 !important;
}


.ntr-v2-event
.ntr-v2-event-organizer-card__logo-wrap {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    flex: 0 0 auto !important;

    width: 76px !important;
    min-width: 76px !important;
    height: 54px !important;

    padding: 0 !important;

    background: #ffffff !important;
    border: 1px solid var(--ntr-border) !important;
    border-radius: 10px !important;

    overflow: hidden !important;
}


.ntr-v2-event
.ntr-v2-event-organizer-card__logo {
    display: block !important;

    width: 100% !important;
    height: 100% !important;

    max-width: 100% !important;
    max-height: 100% !important;

    object-fit: cover !important;
    object-position: center center !important;

    background: #ffffff !important;

    border: 0 !important;
    border-radius: 0 !important;

    box-shadow: none !important;
}


.ntr-v2-event
.ntr-v2-event-organizer-card__copy {
    flex: 1 1 auto !important;
    min-width: 0 !important;

    container-type: inline-size;
    container-name: ntr-organizer-copy;
}


.ntr-v2-event
.ntr-v2-event-organizer-card__copy strong {
    display: block !important;

    margin: 0 !important;

    color: var(--ntr-text-primary) !important;

    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;

    overflow-wrap: anywhere !important;
}


.ntr-v2-event
.ntr-v2-event-organizer-card__contact {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;

    width: max-content !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin: 7px 0 0 !important;
    padding: 0 !important;

    appearance: none !important;
    -webkit-appearance: none !important;

    color: var(--ntr-event-primary, var(--ntr-accent)) !important;
    background: transparent !important;

    border: 0 !important;
    border-radius: 0 !important;

    box-shadow: none !important;

    font: inherit !important;
    font-size: clamp(9px, 5.2cqw, 11px) !important;
    font-weight: 800 !important;
    line-height: 1.05 !important;
    letter-spacing: .015em !important;

    white-space: nowrap !important;
    word-break: normal !important;
    overflow-wrap: normal !important;

    text-align: left !important;
    text-decoration: none !important;

    cursor: pointer !important;

    transition:
        opacity .14s ease
        !important;
}


.ntr-v2-event
.ntr-v2-event-organizer-card__contact::before {
    content: none !important;
    display: none !important;
}


.ntr-v2-event
.ntr-v2-event-organizer-card__contact:hover {
    color: var(--ntr-event-primary, var(--ntr-accent)) !important;
    text-decoration: none !important;
    opacity: .78 !important;
    transform: none !important;
}


.ntr-v2-event
.ntr-v2-event-organizer-card__contact:focus-visible {
    color: var(--ntr-event-primary, var(--ntr-accent)) !important;
    text-decoration: none !important;

    outline:
        2px solid
        color-mix(
            in srgb,
            var(--ntr-event-primary, var(--ntr-accent)) 30%,
            transparent
        )
        !important;

    outline-offset: 3px !important;

    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}


.ntr-v2-event-organizer-contact-dialog {
    width: min(620px, calc(100vw - 28px)) !important;
    max-width: 620px !important;
    max-height: min(760px, calc(100dvh - 28px)) !important;

    margin: auto !important;
    padding: 0 !important;

    background: transparent !important;
    border: 0 !important;

    overflow: visible !important;
}


.ntr-v2-event-organizer-contact-dialog::backdrop {
    background: rgba(10, 18, 28, .66) !important;
    backdrop-filter: blur(3px) !important;
    -webkit-backdrop-filter: blur(3px) !important;
}


.ntr-v2-event-organizer-contact-dialog__panel {
    width: 100% !important;
    max-height: min(760px, calc(100dvh - 28px)) !important;

    padding: 22px !important;

    background: var(--ntr-surface) !important;
    color: var(--ntr-text-primary) !important;

    border: 1px solid color-mix(
        in srgb,
        var(--ntr-event-primary, var(--ntr-accent)) 42%,
        var(--ntr-border)
    ) !important;
    border-radius: 18px !important;

    box-shadow: 0 22px 60px rgba(0, 0, 0, .24) !important;

    overflow: auto !important;
}


.ntr-v2-event-organizer-contact-dialog__header {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;

    gap: 18px !important;

    margin: 0 0 18px !important;
}


.ntr-v2-event-organizer-contact-dialog__title {
    margin: 0 !important;

    color: var(--ntr-text-primary) !important;

    font-size: 22px !important;
    font-weight: 850 !important;
    line-height: 1.15 !important;
}


.ntr-v2-event-organizer-contact-dialog__intro {
    margin: 7px 0 0 !important;

    color: var(--ntr-text-secondary) !important;

    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.45 !important;
}


.ntr-v2-event-organizer-contact-dialog__intro strong {
    color: var(--ntr-text-primary) !important;
    font-weight: 800 !important;
}


.ntr-v2-event-organizer-contact-dialog__close {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    flex: 0 0 38px !important;

    width: 38px !important;
    height: 38px !important;

    margin: -4px -4px 0 0 !important;
    padding: 0 !important;

    appearance: none !important;
    -webkit-appearance: none !important;

    background: color-mix(in srgb, var(--ntr-surface) 88%, var(--ntr-border)) !important;
    color: var(--ntr-text-primary) !important;

    border: 1px solid var(--ntr-border) !important;
    border-radius: 999px !important;

    font-size: 24px !important;
    font-weight: 500 !important;
    line-height: 1 !important;

    cursor: pointer !important;
}


.ntr-v2-event-organizer-contact-dialog__close:hover,
.ntr-v2-event-organizer-contact-dialog__close:focus-visible {
    border-color: var(--ntr-event-primary, var(--ntr-accent)) !important;
}


.ntr-v2-event-organizer-contact-form {
    display: grid !important;
    gap: 13px !important;

    margin: 0 !important;
}


.ntr-v2-event-organizer-contact-form__grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;

    gap: 12px !important;
}


.ntr-v2-event-organizer-contact-form__field {
    display: grid !important;

    gap: 6px !important;

    min-width: 0 !important;
}


.ntr-v2-event-organizer-contact-form__field label {
    margin: 0 !important;

    color: var(--ntr-text-primary) !important;

    font-size: 13px !important;
    font-weight: 750 !important;
    line-height: 1.25 !important;
}


.ntr-v2-event-organizer-contact-form__optional {
    color: var(--ntr-text-secondary) !important;
    font-size: 12px !important;
    font-weight: 550 !important;
}


.ntr-v2-event-organizer-contact-form__field input,
.ntr-v2-event-organizer-contact-form__field textarea {
    width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 11px 12px !important;

    background: var(--ntr-surface) !important;
    color: var(--ntr-text-primary) !important;

    border: 1px solid var(--ntr-border) !important;
    border-radius: 10px !important;
    outline: 0 !important;
    box-shadow: none !important;

    font: inherit !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
}


.ntr-v2-event-organizer-contact-form__field textarea {
    min-height: 138px !important;
    resize: vertical !important;
}


.ntr-v2-event-organizer-contact-form__field input:focus,
.ntr-v2-event-organizer-contact-form__field textarea:focus {
    border-color: var(--ntr-event-primary, var(--ntr-accent)) !important;
    box-shadow: 0 0 0 3px color-mix(
        in srgb,
        var(--ntr-event-primary, var(--ntr-accent)) 16%,
        transparent
    ) !important;
}


.ntr-v2-event-organizer-contact-form__status {
    min-height: 0 !important;

    margin: 0 !important;

    color: var(--ntr-text-secondary) !important;

    font-size: 13px !important;
    font-weight: 650 !important;
    line-height: 1.4 !important;
}


.ntr-v2-event-organizer-contact-form__status:empty {
    display: none !important;
}


.ntr-v2-event-organizer-contact-form__status.is-error {
    color: #b42318 !important;
}


.ntr-v2-event-organizer-contact-form__status.is-success {
    color: var(--ntr-event-primary, var(--ntr-accent)) !important;
}


.ntr-v2-event-organizer-contact-form__submit {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 100% !important;
    min-height: 44px !important;

    margin: 2px 0 0 !important;
    padding: 10px 18px !important;

    appearance: none !important;
    -webkit-appearance: none !important;

    background: var(--ntr-event-primary, var(--ntr-accent)) !important;
    color: var(--ntr-event-on-primary, #fff) !important;

    border: 1px solid var(--ntr-event-primary, var(--ntr-accent)) !important;
    border-radius: 10px !important;

    box-shadow: none !important;

    font: inherit !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;

    cursor: pointer !important;
}


.ntr-v2-event-organizer-contact-form__submit:hover,
.ntr-v2-event-organizer-contact-form__submit:focus-visible {
    opacity: .9 !important;
}


.ntr-v2-event-organizer-contact-form__submit:disabled {
    opacity: .56 !important;
    cursor: wait !important;
}


.ntr-v2-event-organizer-contact-form__hp {
    position: absolute !important;
    left: -10000px !important;
    top: auto !important;

    width: 1px !important;
    height: 1px !important;

    overflow: hidden !important;
}


@media (max-width: 767px) {
    .ntr-v2-event-organizer-contact-dialog {
        width: calc(100vw - 18px) !important;
        max-height: calc(100dvh - 18px) !important;
    }

    .ntr-v2-event-organizer-contact-dialog__panel {
        max-height: calc(100dvh - 18px) !important;

        padding: 17px !important;

        border-radius: 15px !important;
    }

    .ntr-v2-event-organizer-contact-dialog__title {
        font-size: 20px !important;
    }

    .ntr-v2-event-organizer-contact-form__grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}


/* Venue */

.ntr-v2-event
.ntr-v2-event-venue-card__body {
    display: flex !important;
    align-items: flex-start !important;

    gap: 10px !important;
}


.ntr-v2-event
.ntr-v2-event-side-card__icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    flex: 0 0 36px !important;

    width: 36px !important;
    height: 36px !important;

    color: var(--ntr-event-primary, var(--ntr-accent)) !important;
    background:
        color-mix(
            in srgb,
            var(--ntr-event-primary, var(--ntr-accent)) 8%,
            var(--ntr-surface)
        )
        !important;

    border-radius: 999px !important;
}


.ntr-v2-event
.ntr-v2-event-venue-card__copy strong {
    display: block !important;

    margin-bottom: 3px !important;

    color: var(--ntr-text-primary) !important;

    font-size: 13px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
}


.ntr-v2-event
.ntr-v2-event-venue-card__copy p {
    margin: 0 !important;

    color: var(--ntr-text-secondary) !important;

    font-size: 11px !important;
    line-height: 1.38 !important;
}


.ntr-v2-event
.ntr-v2-event-venue-card__map {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 100% !important;
    min-height: 40px !important;

    margin-top: 10px !important;
    padding: 9px 11px !important;

    color: var(--ntr-event-primary, var(--ntr-accent)) !important;
    background: var(--ntr-surface) !important;

    border: 1px solid var(--ntr-border) !important;
    border-radius: 7px !important;

    font-size: 11px !important;
    font-weight: 760 !important;
    text-decoration: none !important;
}


/* Partners */

.ntr-v2-event
.ntr-v2-event-partners-card__grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;

    gap: 7px !important;
}


.ntr-v2-event
.ntr-v2-event-partners-card__item {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-height: 50px !important;

    padding: 7px !important;

    background: var(--ntr-surface-2) !important;

    border: 1px solid var(--ntr-border) !important;
    border-radius: 7px !important;

    text-decoration: none !important;
}


.ntr-v2-event
.ntr-v2-event-partners-card__item img {
    display: block !important;

    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: 28px !important;

    object-fit: contain !important;
}


.ntr-v2-event
.ntr-v2-event-partners-card__item span {
    color: var(--ntr-text-primary) !important;

    font-size: 10px !important;
    font-weight: 720 !important;
    line-height: 1.15 !important;
    text-align: center !important;
}


/* Empty read-model wrappers disappear. */

.ntr-v2-event
.ntr-v2-event-organizer:not(:has(.ntr-v2-event-organizer-card)),
.ntr-v2-event
.ntr-v2-event-venue:not(:has(.ntr-v2-event-venue-card)),
.ntr-v2-event
.ntr-v2-event-partners:not(:has(.ntr-v2-event-partners-card)),
.ntr-v2-event
.ntr-v2-event-gallery:not(:has(.ntr-v2-event-gallery-grid)),
.ntr-v2-event
.ntr-v2-event-related:not(:has(.ntr-v2-event-related-grid)) {
    display: none !important;
}


/* ======================================================
   14. ACCESSIBILITY
   ====================================================== */

.ntr-v2-event
a:focus-visible,
.ntr-v2-event
button:focus-visible,
.ntr-v2-event
[role="button"]:focus-visible {
    outline:
        3px solid
        color-mix(
            in srgb,
            var(--ntr-event-primary, var(--ntr-accent)) 72%,
            transparent
        )
        !important;

    outline-offset: 3px !important;
}


.ntr-v2-event
.ntr-v2-event-title-value,
.ntr-v2-event
.ntr-v2-event-intro-value,
.ntr-v2-event
.ntr-v2-event-meta-value,
.ntr-v2-event
.ntr-v2-event-ticket-card,
.ntr-v2-event
.ntr-v2-event-side-card,
.ntr-v2-event
.ntr-v2-event-related-card {
    overflow-wrap: anywhere;
}



/* ======================================================
   14A. NAVIGATION CTA VISIBILITY / ANCHOR — v6.0
   ====================================================== */

/*
 * Desktop:
 * these controls duplicate navigation already available in the full layout.
 * Keep Utility Bar and all actual ticket-card purchase controls untouched.
 */
@media (min-width: 1025px) {

    .ntr-v2-event
    .ntr-v2-event-actions
    > .ntr-v2-event-action-primary,
    .ntr-v2-event
    .ntr-v2-event-actions
    > .ntr-v2-event-action-details,
    .ntr-v2-event
    .ntr-v2-event-summary-primary,
    .ntr-v2-event
    .ntr-v2-event-summary-secondary {
        display: none !important;
    }
}


/*
 * The tickets section already owns the Elementor menu anchor `#bilety`.
 * Leave room for the sticky header when navigating from tablet/mobile CTAs.
 */
.ntr-v2-event #bilety {
    scroll-margin-top: 104px !important;
}


/* ======================================================
   15. TABLET
   ====================================================== */

@media (max-width: 1024px) {

    .ntr-v2-event
    .ntr-v2-event-title-value
    .elementor-heading-title {
        font-size: var(--ntr-event-title-fit-size, clamp(34px, 5.5vw, 48px)) !important;
    }

    .ntr-v2-event
    .ntr-v2-event-ticket-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .ntr-v2-event
    .ntr-v2-event-ticket-grid
    > .ntr-v2-event-ticket-card {
        grid-column: auto !important;
    }

    /*
     * Tablet: if the final row contains only one card,
     * let it use the whole row instead of leaving 50% empty.
     */
    .ntr-v2-event
    .ntr-v2-event-ticket-grid
    > .ntr-v2-event-ticket-card:last-child:nth-child(odd) {
        grid-column: 1 / -1 !important;
    }

    .ntr-v2-event
    .ntr-v2-event-gallery-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .ntr-v2-event
    .ntr-v2-event-related-grid {
        /*
         * Keep the same 3-column adaptive system on tablet.
         * Mobile overrides this to a single 100% column below 768px.
         */
        grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    }

    .ntr-v2-event
    .ntr-v2-event-sidebar {
        width: 100% !important;
    }

    .ntr-v2-event
    .ntr-v2-event-summary--target {
        display: flex !important;
        flex-direction: column !important;

        gap: 8px !important;
    }

    .ntr-v2-event
    .ntr-v2-event-summary-media,
    .ntr-v2-event
    .ntr-v2-event-summary-primary,
    .ntr-v2-event
    .ntr-v2-event-summary-secondary {
        width: 100% !important;
        max-width: 100% !important;
    }

    .ntr-v2-event
    .ntr-v2-event-summary-image img {
        width: 100% !important;
    }
}


/* ======================================================
   16. MOBILE
   ====================================================== */

@media (max-width: 767px) {

    .ntr-v2-event
    .ntr-v2-event-actions
    > .ntr-v2-event-action-primary,
    .ntr-v2-event
    .ntr-v2-event-actions
    > .ntr-v2-event-action-details,
    .ntr-v2-event
    .ntr-v2-event-summary-primary,
    .ntr-v2-event
    .ntr-v2-event-summary-secondary {
        display: flex !important;
    }

    .ntr-v2-event {
        background: var(--ntr-page-bg) !important;
    }

    .ntr-v2-event
    .ntr-v2-event-breadcrumb {
        font-size: 11px !important;
    }

    .ntr-v2-event
    .ntr-v2-event-title-value
    .elementor-heading-title {
        font-size: var(--ntr-event-title-fit-size, 34px) !important;
        line-height: 1.01 !important;
    }

    .ntr-v2-event
    .ntr-v2-event-intro-value
    .elementor-heading-title {
        font-size: 17px !important;
    }


    .ntr-v2-event
    .ntr-v2-event-teaser
    .elementor-heading-title,
    .ntr-v2-event
    .ntr-v2-event-teaser
    .elementor-widget-container {
        font-size: 13px !important;
        line-height: 1.45 !important;
    }

    .ntr-v2-event
    .ntr-v2-event-poster-image img {
        aspect-ratio: 4 / 5 !important;
    }

    /* MOBILE ONLY — SOLD OUT overlay on main poster.
       State comes from the ticket CTA label; no extra event data is stored. */

    .ntr-v2-event
    .ntr-v2-event-poster-media {
        position: relative !important;
    }

    .ntr-v2-event.is-event-sold-out
    .ntr-v2-event-poster-media::after {
        content: "SOLD OUT";

        position: absolute !important;
        left: 50% !important;
        top: 50% !important;
        z-index: 6 !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        width: 90% !important;
        min-height: clamp(64px, 20vw, 118px) !important;
        padding: clamp(10px, 3vw, 18px) clamp(12px, 4vw, 22px) !important;

        transform: translate(-50%, -50%) rotate(-4deg) !important;

        color: var(--ntr-event-soldout-fg, var(--ntr-event-light, #fff)) !important;
        background: var(--ntr-event-soldout-bg, var(--ntr-event-dark, var(--ntr-event-primary, var(--ntr-accent)))) !important;

        border: clamp(2px, .8vw, 5px) solid var(--ntr-event-soldout-fg, var(--ntr-event-light, #fff)) !important;
        border-radius: clamp(10px, 3vw, 18px) !important;

        box-shadow: 0 10px 28px rgba(13, 27, 40, .22) !important;

        font-family: "Outfit", sans-serif !important;
        font-size: clamp(34px, 12vw, 72px) !important;
        font-weight: 900 !important;
        line-height: .9 !important;
        letter-spacing: .035em !important;
        text-align: center !important;
        white-space: nowrap !important;

        pointer-events: none !important;
    }

    .ntr-v2-event
    .ntr-v2-event-meta {
        flex-direction: column !important;
    }

    .ntr-v2-event
    .ntr-v2-event-meta-card {
        width: 100% !important;
        min-height: 58px !important;

        grid-template-columns: 32px minmax(0, 1fr) !important;

        padding: 9px 10px !important;
    }

    .ntr-v2-event
    .ntr-v2-event-actions {
        display: grid !important;
        grid-template-columns: 1fr !important;
    }

    .ntr-v2-event
    .ntr-v2-event-action,
    .ntr-v2-event
    .ntr-v2-event-action-button,
    .ntr-v2-event
    .ntr-v2-event-action-button
    .elementor-button {
        width: 100% !important;
    }

    .ntr-v2-event
    .ntr-v2-event-highlights--compact {
        flex-direction: column !important;
    }

    .ntr-v2-event
    .ntr-v2-event-feature-card {
        padding: 13px !important;
    }

    .ntr-v2-event
    .ntr-v2-event-ticket-grid,
    .ntr-v2-event
    .ntr-v2-event-gallery-grid,
    .ntr-v2-event
    .ntr-v2-event-related-grid {
        grid-template-columns: 1fr !important;
    }

    .ntr-v2-event
    .ntr-v2-event-ticket-grid
    > .ntr-v2-event-ticket-card {
        grid-column: 1 / -1 !important;
    }

    .ntr-v2-event
    .ntr-v2-event-related-grid
    > .ntr-v2-event-related-card {
        grid-column: 1 / -1 !important;
    }

    .ntr-v2-event
    .ntr-v2-event-gallery-item {
        aspect-ratio: 16 / 10 !important;
    }

    .ntr-v2-event
    .ntr-v2-event-related-card__media {
        flex-basis: 34% !important;
        width: 34% !important;
    }

    .ntr-v2-event
    .ntr-v2-event-summary--target {
        display: flex !important;
        flex-direction: column !important;
    }

    .ntr-v2-event
    .ntr-v2-event-partners-card__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}



/* ======================================================
   16A. OPTIONAL RESPONSIVE COMPACT TICKET CARDS — v5.8
   ====================================================== */

/*
 * TABLET ONLY (768–1024):
 * when the last row contains one full-width card, it has
 * nothing beside it to align with, so let its title/body
 * size naturally.
 */
@media (min-width: 768px) and (max-width: 1024px) {

    .ntr-v2-event
    .ntr-v2-event-ticket-grid
    > .ntr-v2-event-ticket-card:last-child:nth-child(odd)
    .ntr-v2-event-ticket-card__body > h3 {
        min-height: 0 !important;
    }
}


/*
 * MOBILE:
 * every ticket card is already 100% of its own row.
 * Equal-height title/card reserves are therefore unnecessary.
 */
@media (max-width: 767px) {

    .ntr-v2-event
    .ntr-v2-event-ticket-grid
    > .ntr-v2-event-ticket-card {
        min-height: 0 !important;
        height: auto !important;
    }

    .ntr-v2-event
    .ntr-v2-event-ticket-card__body {
        flex: 0 0 auto !important;
    }

    .ntr-v2-event
    .ntr-v2-event-ticket-card__body > h3 {
        min-height: 0 !important;
    }
}


/* ======================================================
   17. REDUCED MOTION
   ====================================================== */

@media (prefers-reduced-motion: reduce) {

    .ntr-v2-event *,
    .ntr-v2-event *::before,
    .ntr-v2-event *::after {
        scroll-behavior: auto !important;
        transition: none !important;
        animation: none !important;
    }
}
/* ======================================================
   18. EVENT TERM / CATEGORY PILLS
   Runtime splitting is handled by JS v1.1.
   One taxonomy value = one pill.
   ====================================================== */

.ntr-v2-event
.ntr-v2-event-term-pills {
    width: 100% !important;
}


.ntr-v2-event
.ntr-v2-event-term-pills
.elementor-widget-container,
.ntr-v2-event
.ntr-v2-event-term-pills
.elementor-heading-title {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;

    gap: 7px !important;

    width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    background: transparent !important;

    border: 0 !important;
}


.ntr-v2-event
.ntr-v2-event-term-pill {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: auto !important;
    min-height: 29px !important;

    padding: 6px 10px !important;

    color:
        color-mix(
            in srgb,
            var(--ntr-event-primary, var(--ntr-accent)) 84%,
            var(--ntr-text-primary)
        )
        !important;

    background:
        color-mix(
            in srgb,
            var(--ntr-event-primary, var(--ntr-accent)) 10%,
            var(--ntr-surface)
        )
        !important;

    border:
        1px solid
        color-mix(
            in srgb,
            var(--ntr-event-primary, var(--ntr-accent)) 28%,
            var(--ntr-border)
        )
        !important;

    border-radius: 999px !important;

    box-shadow: none !important;

    font-family: "Outfit", sans-serif !important;
    font-size: 11px !important;
    font-weight: 780 !important;
    line-height: 1 !important;
    letter-spacing: .035em !important;
    text-transform: uppercase !important;

    white-space: nowrap !important;
}


.ntr-v2-event
.ntr-v2-event-term-pill:empty {
    display: none !important;
}


/* The original single-value typography is neutralised once JS
   converts the widget content into individual pills. */

.ntr-v2-event
.ntr-v2-event-term-pills[data-ntr-term-pills-ready="1"]
.elementor-heading-title {
    color: inherit !important;

    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
    letter-spacing: normal !important;
    text-transform: none !important;
}


@media (max-width: 767px) {

    .ntr-v2-event
    .ntr-v2-event-term-pills
    .elementor-widget-container,
    .ntr-v2-event
    .ntr-v2-event-term-pills
    .elementor-heading-title {
        gap: 6px !important;
    }

    .ntr-v2-event
    .ntr-v2-event-term-pill {
        min-height: 28px !important;

        padding: 6px 9px !important;

        font-size: 10px !important;
    }
}

/* ======================================================
   v3.7 — MOBILE HERO ACTIONS FULL WIDTH
   Scope: ACTION — PRIMARY TICKET + ACTION — DETAILS only.
   Reason: global/shared Elementor button ownership can keep
   the widget or anchor at intrinsic width on mobile.
   ====================================================== */

@media (max-width: 767px) {

    .ntr-v2.ntr-v2-event
    .ntr-v2-event-actions {
        grid-template-columns: minmax(0, 1fr) !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .ntr-v2.ntr-v2-event
    .ntr-v2-event-actions
    > .ntr-v2-event-action-primary,
    .ntr-v2.ntr-v2-event
    .ntr-v2-event-actions
    > .ntr-v2-event-action-details {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        inline-size: 100% !important;
        max-inline-size: 100% !important;

        justify-self: stretch !important;
        align-self: stretch !important;
        flex-basis: 100% !important;
    }

    .ntr-v2.ntr-v2-event
    .ntr-v2-event-actions
    > .ntr-v2-event-action-primary
    > .ntr-v2-event-action-button.elementor-widget-button,
    .ntr-v2.ntr-v2-event
    .ntr-v2-event-actions
    > .ntr-v2-event-action-details
    > .ntr-v2-event-action-button.elementor-widget-button {
        display: block !important;

        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        inline-size: 100% !important;
        max-inline-size: 100% !important;

        align-self: stretch !important;
        justify-self: stretch !important;
        flex: 1 1 100% !important;
    }

    .ntr-v2.ntr-v2-event
    .ntr-v2-event-actions
    > .ntr-v2-event-action-primary
    > .ntr-v2-event-action-button.elementor-widget-button
    > .elementor-widget-container,
    .ntr-v2.ntr-v2-event
    .ntr-v2-event-actions
    > .ntr-v2-event-action-details
    > .ntr-v2-event-action-button.elementor-widget-button
    > .elementor-widget-container {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .ntr-v2.ntr-v2-event
    .ntr-v2-event-actions
    > .ntr-v2-event-action-primary
    .ntr-v2-event-action-button.elementor-widget-button
    .elementor-button,
    .ntr-v2.ntr-v2-event
    .ntr-v2-event-actions
    > .ntr-v2-event-action-details
    .ntr-v2-event-action-button.elementor-widget-button
    .elementor-button {
        display: flex !important;

        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        inline-size: 100% !important;
        max-inline-size: 100% !important;

        box-sizing: border-box !important;
    }
}



/* v4.0 O5: Organizer card now uses canonical NOTE Event Organizer Profile name + optional non-cropped logo; legacy/unassigned cards remain hidden. */


/* ======================================================
   v4.2 — NO TICKETS UI STATE
   "Brak biletów" means there is no ticketing surface to
   present. This is deliberately different from SOLD OUT.
   ====================================================== */

.ntr-v2.ntr-v2-event.is-event-no-tickets
.ntr-v2-event-action-primary,
.ntr-v2.ntr-v2-event.is-event-no-tickets
.ntr-v2-event-summary-primary,
.ntr-v2.ntr-v2-event.is-event-no-tickets
.ntr-v2-event-tickets--target {
    display: none !important;
}

/* Desktop/tablet: DETAILS takes the first action slot after
   the ticket CTA disappears. */
.ntr-v2.ntr-v2-event.is-event-no-tickets
.ntr-v2-event-action-details {
    grid-column: 1 !important;
}

@media (max-width: 767px) {

    /* Mobile: remove the now-empty first row completely. */
    .ntr-v2.ntr-v2-event.is-event-no-tickets
    .ntr-v2-event-actions {
        grid-template-rows: auto auto !important;
    }

    .ntr-v2.ntr-v2-event.is-event-no-tickets
    .ntr-v2-event-action-details {
        grid-column: 1 !important;
        grid-row: 1 !important;
    }

    .ntr-v2.ntr-v2-event.is-event-no-tickets
    .ntr-v2-event-actions
    .ntr-v2-event-actions-utility {
        grid-column: 1 !important;
        grid-row: 2 !important;
    }
}


/* ======================================================
   18. GALLERY — SINGLE ROW HORIZONTAL SCROLLER
   v5.0

   Goal:
   - gallery never creates a second visual row;
   - all images remain available;
   - native Elementor lightbox contract is unchanged;
   - horizontal scroll works with mouse/trackpad/touch;
   - responsive card width keeps a visible "next item" cue.
   ====================================================== */

.ntr-v2-event
.ntr-v2-event-gallery-grid {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;

    gap: 8px !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    overflow-x: auto !important;
    overflow-y: hidden !important;

    padding: 0 0 8px !important;
    margin: 0 !important;

    scroll-snap-type: x proximity;
    scroll-padding-inline: 0;

    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;

    scrollbar-width: thin;
    scrollbar-color:
        var(--ntr-event-primary, var(--ntr-accent))
        color-mix(
            in srgb,
            var(--ntr-border) 72%,
            transparent
        );
}


.ntr-v2-event
.ntr-v2-event-gallery-grid::-webkit-scrollbar {
    height: 6px;
}


.ntr-v2-event
.ntr-v2-event-gallery-grid::-webkit-scrollbar-track {
    background:
        color-mix(
            in srgb,
            var(--ntr-border) 72%,
            transparent
        );

    border-radius: 999px;
}


.ntr-v2-event
.ntr-v2-event-gallery-grid::-webkit-scrollbar-thumb {
    background:
        var(--ntr-event-primary, var(--ntr-accent));

    border-radius: 999px;
}


.ntr-v2-event
.ntr-v2-event-gallery-item {
    flex: 0 0 calc((100% - 24px) / 4) !important;

    width: calc((100% - 24px) / 4) !important;
    min-width: 0 !important;
    max-width: none !important;

    aspect-ratio: 4 / 3 !important;

    scroll-snap-align: start;
    scroll-snap-stop: normal;
}


@media (max-width: 1024px) {

    .ntr-v2-event
    .ntr-v2-event-gallery-item {
        flex-basis: calc((100% - 16px) / 3) !important;

        width: calc((100% - 16px) / 3) !important;
    }
}


@media (max-width: 767px) {

    .ntr-v2-event
    .ntr-v2-event-gallery-grid {
        gap: 8px !important;

        /* slight right-side peek makes horizontal scrolling obvious */
        padding-right: 28px !important;
    }


    .ntr-v2-event
    .ntr-v2-event-gallery-item {
        flex: 0 0 min(76vw, 260px) !important;

        width: min(76vw, 260px) !important;

        aspect-ratio: 4 / 3 !important;
    }
}

/* ======================================================
   09F. EXTERNAL TICKET SALES — DATA BRIDGE v3.6
   ====================================================== */

.ntr-v2-event
.ntr-v2-event-ticket-card.is-external-ticket
.ntr-v2-event-ticket-card__body {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0 !important;
}

.ntr-v2-event
.ntr-v2-event-ticket-card.is-external-ticket
.ntr-v2-event-ticket-card__kicker {
    display: inline-flex !important;
    margin: 0 0 7px !important;
    color: var(--ntr-event-primary, var(--ntr-accent)) !important;
    font-size: 10px !important;
    font-weight: 850 !important;
    line-height: 1.1 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
}

.ntr-v2-event
.ntr-v2-event-ticket-card.is-external-ticket
.ntr-v2-event-ticket-card__body > h3 {
    min-height: 0 !important;
    margin-bottom: 8px !important;
}

.ntr-v2-event
.ntr-v2-event-ticket-card.is-external-ticket
.ntr-v2-event-ticket-card__body > p {
    margin: 0 !important;
    color: var(--ntr-text-secondary) !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
}

.ntr-v2-event
.ntr-v2-event-ticket-card.is-external-ticket
.ntr-v2-event-ticket-card__actions {
    margin-top: auto !important;
}

