/* =============================================================================
   LoveStream 2027 — Partner 1503 — CLIENT FEEDBACK ROUND 1 (override layer)
   -----------------------------------------------------------------------------
   Tento súbor PREPISUJE _partner-656-lovestream-2027-v4.css (načítaný PRED ním).
   Needituj v4 — všetky opravy z klientskeho feedbacku idú sem.
   Scope: .ls-page (landing) a body.idp1503 (košík + ostatné 1503 stránky).
   Registrácia:
     - Views/Event/lovestream.cshtml (za v4 link)
     - Views/Shared/partials/WebPartner_Layoute/WebPartner_Heads.cshtml (blok idp1503)
   ============================================================================= */

/* === TICKET GRID FIXES (07-01) ============================================ */
/* hover orezanie karty, mobil dvojitý vertikálny scroll, orezaný posledný lístok */

/* Koreň problému: v4 .ls-ticket-grid má overflow-x:auto, čo podľa CSS špecifikácie
   vynúti overflow-y:auto. Preto sa hover translateY(-3px) + box-shadow orezáva a na
   mobile vzniká nechcený vertikálny scroll vnútri gridu (kontajner pôsobí nižší).
   Riešenie: explicitne overflow-y:hidden (výška gridu = výška najvyššej karty, takže
   sa nič neoreže) + vertikálny padding pre hover lift. */
.ls-page .ls-ticket-grid {
    overflow-y: hidden;            /* AC-3: zruší nechcený vertikálny posuvník */
    padding-top: 16px;             /* AC-2: priestor pre hover translateY(-3px) */
    padding-bottom: 20px;          /* priestor pre 12px scrollbar + hover tieň */
    scroll-padding-left: 16px;
    scroll-padding-right: 16px;
}

/* AC-4: posledný lístok nech dosadne na PRAVÝ okraj (snap end). Pri 'start' (v4)
   nemá za sebou priestor, takže pri navigácii ostáva jemne orezaný = mŕtvy krok navyše. */
.ls-page .ls-ticket-grid > .ls-card:last-child {
    scroll-snap-align: end;
}

/* === LANDING CHROME (07-02) =============================================== */
/* popis šírka/2 stĺpce, modal X + padding, dropdown počtu (footer/back-to-top → 07-03) */

/* --- Popis podujatia: širší wrapper + 2 stĺpce na desktope (len rozbalené) --- */
.ls-page .ls-description {
    max-width: 980px;           /* v4 = 720px (1 trieda), tu 2 triedy → prebije */
}
@media (min-width: 992px) {
    .ls-page .ls-description:not(.ls-description--collapsed) .ls-description__inner {
        column-count: 2;
        column-gap: 44px;
        text-align: left;       /* justify v úzkych stĺpcoch trhá medzery */
    }
}
/* zbalený stav (.ls-description--collapsed + gradient) ostáva nezmenený */

/* --- Modal "X": otáčanie zo stredu + jemnejšia rotácia --- */
/* Pôvod: _tp-add.css .modal-v2 ... .close-1:hover i { transform: rotate(180deg) }
   (6-triedová špecificita) → potrebné !important. */
body.idp1503 .modal .close-1 i {
    display: inline-block;
    transform-origin: center center !important;
}
body.idp1503 .modal .close-1:hover i {
    transform: rotate(90deg) !important;   /* z 180° → vzdušnejšie */
}

/* --- Modal: väčší vnútorný padding (menej stiesnené) --- */
body.idp1503 .modal-content .modal-body {
    padding: 28px 32px;
}

/* --- Dropdown počtu lístkov: kontrast (proti white-on-white) --- */
body.idp1503 select.form-control,
body.idp1503 .select-count,
body.idp1503 .select-count select {
    background-color: #131311 !important;
    color: #f0ede8 !important;
    border: 1px solid rgba(255,255,255,.18) !important;
}
body.idp1503 select.form-control option,
body.idp1503 .select-count option {
    background-color: #131311;
    color: #f0ede8;
}

/* === KOŠÍK (07-03) ======================================================== */
/* tmavá téma košíka, kontrast platby/vyzdvihnutia, bordery, medzery */
/* (biela medzera nad footerom + footer + back-to-top → 07-04) */

/* --- Task 0: ROOT PREMENNÉ — override svetlej témy na tmavú (scoped 1503) ---
   Niektoré farby sú poháňané root premennými s !important (nedajú sa prebiť
   selektorom) — preto ich predefinujeme tu. Cascade: definícia na body.idp1503
   prebije :root pre celý obsah stránky.
   Zdroje hodnôt: _tp-add.less :root, payment-methods-1.css.
   - --tp-link-color #2196f3 (modrá) → svetločervená (modro-červený text v košíku)
   - --cell--bg-color #ecf8ff / --cell--border dashed #ade1ff → vybraná platba bola svetlomodrá
   - --table--primary-color #ade1ff / --label-color #2d2d2d → svetlé bunky / tmavý label */
body.idp1503 {
    --tp-link-color: #ff5a5a;
    --cell--bg-color: rgba(255,255,255,.06);
    --cell--border: 1px solid rgba(255,255,255,.18);
    --cell--border-transparent: 1px solid transparent;
    --table--primary-color: rgba(255,255,255,.18);
    --label-color: rgba(255,255,255,.82);
    --td--bg-color: transparent;
    --tp-modal-header-v2-bg: #0d0d0b;
    --PW-footer-bg: #070706;          /* footer zladený s témou (bol #1A1A1A) */
}

/* --- Task 1: biele pozadia, medzery, header overlap, duplicitné bordery --- */
/* Tmaviť LEN nezaštýlované panely (.panel bez .panel-kosik). v4 už tmaví
   .panel-kosik aj .well — tie NEprepisovať (inak by sme ich rovnakou špecificitou
   splostili na transparent, lebo náš súbor sa načíta neskôr). */
body.idp1503 .panel:not(.panel-kosik) {
    background: #131311;
    border: 1px solid rgba(255,255,255,.13);
    color: rgba(255,255,255,.82);
}
/* medzery medzi sekciami */
body.idp1503 .panel-kosik {
    margin-bottom: 24px;
}
/* header nech nezasahuje do prvej sekcie */
body.idp1503 .detail-nakupu {
    margin-top: 16px;
}
/* duplicitné bordery: .table-bordered + v4 .table borders → ponechať len v4 oddeľovače */
body.idp1503 .panel-kosik .table-bordered,
body.idp1503 .panel-kosik .table-bordered > tbody > tr > td,
body.idp1503 .panel-kosik .table-bordered > tbody > tr > th,
body.idp1503 .panel-kosik .table-bordered > thead > tr > th {
    border: none;
}

/* --- Task 2: kontrast platby a vyzdvihnutia (black-on-black / white-on-white) --- */
body.idp1503 .sposob-platby,
body.idp1503 .sposob-vyzdvihnutia {
    color: rgba(255,255,255,.82);
}
body.idp1503 .payment-item {
    background: #131311;
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 8px;
    margin-bottom: 10px;
}
body.idp1503 .payment-label {
    color: #fff;
}
body.idp1503 .payment-description,
body.idp1503 .sposob-platby .text-muted {
    color: rgba(255,255,255,.5);
}
body.idp1503 .payment-item .expand-icon {
    color: rgba(255,255,255,.6);
}
body.idp1503 .sposob-vyzdvihnutia label,
body.idp1503 .sposob-vyzdvihnutia .h4,
body.idp1503 .sposob-vyzdvihnutia p {
    color: rgba(255,255,255,.85);
}
/* logá platobných brán (img/.payment-logo/.logo-badge) zámerne NEdotknuté */

/* --- Task 3: zjednotiť modro-červený text info o lístku --- */
body.idp1503 .panel-kosik .table,
body.idp1503 .panel-kosik .table td,
body.idp1503 .panel-kosik .table th {
    color: rgba(255,255,255,.82);
}
body.idp1503 .panel-kosik .text-primary,
body.idp1503 .panel-kosik .text-info {
    color: rgba(255,255,255,.82) !important;
}

/* --- Task 3b: skutočná košíková tabuľka je .table-responsive-v2 (var-driven --cell--*) ---
   Premenné (--cell--bg-color, --cell--border, --table--primary-color) sú prepísané v Task 0,
   ale komponent nemá var na farbu textu buniek → default tmavý text by ostal tmavý-na-tmavom.
   Preto explicitne nastavíme svetlú farbu textu. */
body.idp1503 .table-responsive-v2,
body.idp1503 .table-responsive-v2 td,
body.idp1503 .table-responsive-v2 th,
body.idp1503 .table-responsive-v2 td[data-heading]::before {
    color: rgba(255,255,255,.85);
}
body.idp1503 .table-responsive-v2 thead th {
    color: rgba(255,255,255,.5);
}

/* --- Task 3c: modrý text — názov podujatia a badgery v košíku --- */
body.idp1503 .GAeventNameBasket,
body.idp1503 .GAeventNameBasket strong {
    color: #fff;
}
body.idp1503 .badger-grey {
    color: rgba(255,255,255,.72);
}

/* --- Task 3d: spodné súhlasné/právne linky = default Bootstrap modrá (nie --tp-link-color) ---
   Všetky sú vnútri <label> v .terms-accept .potvrd-podmienky (vrátane voľného právneho odseku). */
body.idp1503 .terms-accept a,
body.idp1503 .potvrd-podmienky a,
body.idp1503 .checkbox a,
body.idp1503 label a {
    color: #ff5a5a;
}
/* zladiť farbu radio/checkbox akcentu s témou (boli modré) */
body.idp1503 input[type="radio"],
body.idp1503 input[type="checkbox"] {
    accent-color: #ff5a5a;
}

/* --- Task 4: tmavé pozadie body/html (biele plochy okolo a medzi sekciami) --- */
html:has(body.idp1503) {
    background-color: #070706;
}
body.idp1503 {
    background-color: #070706 !important;
}

/* --- Task 5: horný prepínač "kúpiť/rezervovať" — aktívna modrá (Bootstrap nav-pills) → brand --- */
body.idp1503 #selRezPlatba > li.active > a,
body.idp1503 #selRezPlatba > li.active > a:hover,
body.idp1503 #selRezPlatba > li.active > a:focus {
    background-color: #FF0000;
    border-color: #FF0000;
    color: #fff;
}

/* --- Task 6: hlavné tlačidlo "Zaplatiť" — žltá/oranžová (.zaplatit-btn) → brand červená --- */
body.idp1503 .basket-controls .zaplatit-btn,
body.idp1503 .basket-controls .zaplatit-btn:hover,
body.idp1503 .basket-controls .zaplatit-btn:focus,
body.idp1503 .basket-controls .zaplatit-btn:active {
    background-color: #FF0000 !important;
    border-color: #FF0000 !important;
    color: #fff !important;
}

/* --- Task 6b: tlačidlá Prihlásenie / Rezervovať — modré → brand červená --- */
body.idp1503 .basket-controls .prihlasit-btn,
body.idp1503 .basket-controls .prihlasit-btn:hover,
body.idp1503 .basket-controls .prihlasit-btn:focus,
body.idp1503 .basket-controls .rezervovat-btn,
body.idp1503 .basket-controls .rezervovat-btn:hover,
body.idp1503 .basket-controls .rezervovat-btn:focus {
    background-color: #FF0000 !important;
    border-color: #FF0000 !important;
    color: #fff !important;
}
body.idp1503 .basket-controls .rezervovat-btn:disabled,
body.idp1503 .basket-controls .rezervovat-btn[disabled] {
    opacity: .5;
}

/* --- Task 7: odsadenie obsahu košíka od fixnej navigácie (vrch bol skrytý) ---
   .kosik wrapper existuje len na stránke košíka → :has() scopuje offset len sem
   (landing hero pod transparentným navom ostáva nedotknutý). */
body.idp1503:has(.kosik) {
    padding-top: 90px;
}

/* --- Task 8: border-radius tlačidiel zladený s detailom podujatia (--r = 12px) --- */
body.idp1503 #selRezPlatba > li > a,
body.idp1503 .basket-controls .btn,
body.idp1503 .panel-kosik .btn,
body.idp1503 .kosik .btn {
    border-radius: 12px;
}

/* --- Task 9: stránka úspešnej rezervácie (.panel-kosik.rezervacia) — vzdušnejší layout --- */
/* viac vnútorného priestoru (obsah bol natlačený na okraje) */
body.idp1503 .panel-kosik.rezervacia .panel-body {
    padding: 30px 36px;
}
/* vertikálny rytmus: ikona → nadpis → lead */
body.idp1503 .panel-kosik.rezervacia .text-success .fa {
    margin-bottom: 20px;
}
body.idp1503 .panel-kosik.rezervacia h2.pager {
    margin: 0 0 16px;
    line-height: 1.25;
}
/* lead stmaviť na svetlý (bol celý zelený) — lepšia hierarchia, ✓ ikona + nadpis ostávajú zelené */
body.idp1503 .panel-kosik.rezervacia .short-info .lead {
    color: rgba(255,255,255,.7);
    font-weight: 400;
    margin-bottom: 0;
}
/* sekcia "Ako ďalej?" — oddelenie a rytmus */
body.idp1503 .panel-kosik.rezervacia .detail-info {
    padding-top: 26px;
}
body.idp1503 .panel-kosik.rezervacia .detail-info h3 {
    margin: 0 0 14px;
}
body.idp1503 .panel-kosik.rezervacia p.expire {
    margin-top: 18px;
}
body.idp1503 .panel-kosik.rezervacia p.control {
    margin-top: 24px;
    margin-bottom: 4px;
}
/* primárna akcia výraznejšia — plné brand tlačidlo namiesto ghost */
body.idp1503 .panel-kosik.rezervacia .control .btn {
    background-color: #FF0000;
    border-color: #FF0000;
    color: #fff;
}
body.idp1503 .panel-kosik.rezervacia .control .btn:hover,
body.idp1503 .panel-kosik.rezervacia .control .btn:focus {
    background-color: #cc0000;
    border-color: #cc0000;
    color: #fff;
}

/* === GLOBÁLNY CHROME (07-04) ============================================== */
/* back-to-top .cd-top farba + footer čitateľnosť/zarovnanie */

/* --- Task 1: back-to-top .cd-top — modrá → brand (šípka SVG zachovaná) --- */
body.idp1503 .cd-top {
    background-color: #FF0000;          /* z #2196F3; mení len color, ponecháva arrow.svg */
}
body.idp1503 .cd-top:hover {
    background-color: #cc0000;          /* z bielej */
    opacity: 1;
}

/* --- Task 2: footer — čitateľnosť textu/liniek + zarovnanie na stred --- */
body.idp1503 .footer-partner { color: rgba(255,255,255,.72); }
/* footer pozadie zladené s telom stránky (#070706) — prebíja inline .footer-partner aj .footer-bottom defaults */
body.idp1503 .footer-partner,
body.idp1503 .footer-2019,
body.idp1503 .footer-partner .link-menu,
body.idp1503 .footer-partner .footer-bottom {
    background: #070706 !important;
}
body.idp1503 .footer-partner h3,
body.idp1503 .footer-partner h4 { color: #fff; }
body.idp1503 .footer-partner a { color: rgba(255,255,255,.78); }
body.idp1503 .footer-partner a:hover { color: #fff; }
body.idp1503 .footer-partner .footer-bottom { color: rgba(255,255,255,.5); }
/* centrovanie (rieši "mobil vpravo" — col-50-perc float) */
body.idp1503 .footer-partner .link-menu,
body.idp1503 .footer-partner .footer-next-info { text-align: center; }
@media (max-width: 767px) {
    body.idp1503 .footer-partner .col-50-perc > li {
        float: none;
        width: 100%;
        text-align: center;
    }
}

/* === TYPOGRAFIA (07-05) =================================================== */
/* Oswald nadpisy / Montserrat telo, veľkosti, filter, medzery v popise */

/* --- Task 1: hero podnadpis + konzistencia nadpisov (Oswald) --- */
/* .ls-hero__festival dedil Montserrat (v4 bez font-family) → zladiť s titulom */
body.idp1503 .ls-hero__festival {
    font-family: 'Oswald', sans-serif;
}
body.idp1503 .ls-page h1,
body.idp1503 .ls-page h2,
body.idp1503 .ls-page h3,
body.idp1503 .ls-page h4,
body.idp1503 .ls-page h5,
body.idp1503 .ls-page h6,
body.idp1503 .ls-section__title,
body.idp1503 .ls-overline {
    font-family: 'Oswald', sans-serif;
}

/* --- Task 2: filter/taby — väčšie písmo (bolo 11px) --- */
body.idp1503 .ls-tab { font-size: 13px; }
body.idp1503 .ls-tab i { font-size: 13px; }

/* --- Task 2b: overline labely — čitateľnejšie (bolo 10px) ---
   12px = eyebrow sweet spot (čitateľné, ostáva podriadené nadpisu). */
body.idp1503 .ls-overline { font-size: 12px; }

/* === KOŠÍK — KROK SPÄŤ (07-07) =========================================== */
body.idp1503 .ls-basket-back-wrap { margin-bottom: 16px; }
body.idp1503 .ls-basket-back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: rgba(255,255,255,.7);
    font-size: 14px;
    text-decoration: none;
    transition: color .15s ease;
}
body.idp1503 .ls-basket-back:hover { color: #fff; }
body.idp1503 .ls-basket-back i { font-size: 12px; }

/* === HERO POZADIE — klientska fotka (day3-40, optimalizované 1920px) ====== */
/* prepisuje v4 .ls-hero__visual (bg-lovestream-2027-1.png) bez editácie v4 */
body.idp1503 .ls-hero__visual {
    background-image: url('/Content/images/partners/sk/lovestream-2027/bg-lovestream-2027-2.jpg');
}

/* --- Task 3: popis — rovnomerné medzery odsekov --- */
body.idp1503 .ls-description p { margin: 0 0 14px; }
body.idp1503 .ls-description p:last-child { margin-bottom: 0; }
body.idp1503 .ls-description br + br { display: none; }   /* zdvojené <br> z CMS */

/* === Phase 8 / 08-02: Jazykový prepínač SK|EN v navigácii + sliding underline === */
body.idp1503 .ls-nav__lang {
    position: relative;
    display: inline-grid;
    grid-template-columns: 1fr 1fr;   /* dva rovnaké stĺpce → presná matematika posunu */
    align-items: center;
    font-family: 'Oswald', sans-serif;
    font-size: 17px;                  /* bolo primalé → zväčšené */
    font-weight: 600;
    letter-spacing: .08em;
    line-height: 1;
}
body.idp1503 .ls-nav__lang-link {
    padding: 2px 18px 9px;            /* väčší klikací priestor + miesto pre čiaru */
    text-align: center;
    color: rgba(255,255,255,.55);
    text-decoration: none;
    transition: color .25s ease;
}
body.idp1503 .ls-nav__lang-link:hover,
body.idp1503 .ls-nav__lang-link:focus-visible { color: #fff; }
body.idp1503 .ls-nav__lang-link.is-active { color: #fff; }

/* sliding underline — jedna čiara, ktorá pláva medzi SK a EN */
body.idp1503 .ls-nav__lang-bar {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 50%;                       /* = jeden stĺpec */
    height: 2px;
    background: var(--red, #e8002d);
    border-radius: 2px;
    transition: transform .3s cubic-bezier(.4, 0, .2, 1);
}
/* default poloha = pod aktívnym jazykom */
body.idp1503 .ls-nav__lang--sk .ls-nav__lang-bar { transform: translateX(0); }
body.idp1503 .ls-nav__lang--en .ls-nav__lang-bar { transform: translateX(100%); }
/* hover: čiara plynule prejde pod hoverovaný jazyk, po odíde sa vráti pod aktívny */
body.idp1503 .ls-nav__lang:has(.ls-nav__lang-link:nth-child(1):hover) .ls-nav__lang-bar { transform: translateX(0); }
body.idp1503 .ls-nav__lang:has(.ls-nav__lang-link:nth-child(2):hover) .ls-nav__lang-bar { transform: translateX(100%); }
/* pri kliknutí (prepnutie jazyka → reload stránky) čiara hneď zmizne — neodskakuje späť */
body.idp1503 .ls-nav__lang.is-switching .ls-nav__lang-bar { opacity: 0; transition: opacity .12s ease; }
@media (prefers-reduced-motion: reduce) {
    body.idp1503 .ls-nav__lang-bar { transition: none; }
}

/* === Phase 8 / 08-02: fa-ticket narovnať na vodorovný + badge čisto nad ikonou === */
body.idp1503 .ls-nav__basket .fa-ticket {
    display: inline-block;
    transform: rotate(45deg);          /* diagonálny lístok → vodorovný (uvoľní roh pre badge) */
}
body.idp1503 .ls-nav__basket-count {
    top: 0;
    right: 0;
    border: 2px solid #1a0f12;         /* tmavý rám oddelí bublinu od ikony aj pri dotyku */
    box-sizing: content-box;
}

/* === DNX-1006: N-miest modal — spinner v brand červenej (global default v _tp-add.less je #2196f3) ===
   Layout/centrovanie stavov #modalVyberPocetMiest20 .nmiest-state je globálne v _tp-add.less.
   Telo modálu je na idp1503 svetlé → text/ikona ostávajú z globálu, meníme len akcent spinnera. */
body.idp1503 #modalVyberPocetMiest20 .nmiest-state .nmiest-spinner {
    border-top-color: var(--red, #e8002d);
}

/* === Variant C: stacked karta (2026 sada — text vpálený v obrázku → info panel POD obrázkom) === */
body.idp1503 .ls-card--stacked .ls-card__body {
    padding: 14px 16px 4px;
}
body.idp1503 .ls-card--stacked .ls-card__body .ls-card__name {
    font-size: 17px;
    line-height: 1.2;
    margin-bottom: 4px;
}
body.idp1503 .ls-card--stacked .ls-card__body .ls-card__meta {
    padding-bottom: 8px;
}
body.idp1503 .ls-card--stacked .ls-card__body .ls-card__info-body {
    font-size: 12px;
    color: var(--faint, #b9b3ad);
    line-height: 1.5;
    margin-bottom: 8px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
body.idp1503 .ls-card--stacked .ls-card__body .ls-card__price {
    font-size: 14px;
    font-weight: 700;
}
/* rovnaká výška kariet v riadku + tlačidlo Kúpiť vždy naspodku (zarovnané) */
body.idp1503 .ls-ticket-grid .ls-card--stacked {
    align-self: stretch;
}
body.idp1503 .ls-card--stacked .ls-card__footer {
    margin-top: auto;
}


/* ================================================================
   HERO — ročník (2027): zvýraznený + nepretržitá jemná animácia
   Markup: <p class="ls-hero__festival ls-hero__festival--year">
             <span class="ls-hero__year">2027</span></p>
   ================================================================ */
body.idp1503 .ls-hero__festival--year {
    font-size: clamp(22px, 4.5vw, 51px);   /* -1/4 oproti clamp(30px, 6vw, 68px) */
    line-height: 1;
    letter-spacing: .1em;   /* polovica pôvodných .2em — bolo príliš roztiahnuté */
    margin-bottom: 26px;
}
body.idp1503 .ls-hero__year {
    display: inline-block;
    /* rovnaké písmo ako nápis LOVESTREAM: .ls-page h1 = Oswald (feedback CSS r.354)
       + .ls-hero__h1 { font-weight: 900 } z v4 → zladené 1:1 */
    font-family: 'Oswald', sans-serif;
    font-weight: 900;
    color: #fff;
    /* variant A "neón": text sa nehýbe, dýcha iba červená žiara okolo číslic */
    text-shadow:
        0 0 6px  rgba(255,255,255,.55),
        0 0 18px rgba(255,0,0,.85),
        0 0 42px rgba(255,0,0,.55);
    animation: ls-year-neon 2.6s ease-in-out infinite;
    will-change: text-shadow;
}
@keyframes ls-year-neon {
    0%, 100% {
        text-shadow: 0 0 5px  rgba(255,255,255,.45),
                     0 0 14px rgba(255,0,0,.65),
                     0 0 30px rgba(255,0,0,.35);
    }
    50% {
        text-shadow: 0 0 9px  rgba(255,255,255,.9),
                     0 0 26px rgba(255,0,0,1),
                     0 0 60px rgba(255,0,0,.7);
    }
}
/* šetrný režim: žiara ostáva, len sa prestane hýbať */
@media (prefers-reduced-motion: reduce) {
    body.idp1503 .ls-hero__year { animation: none; }
}


/* ================================================================
   KARTA — tlačidlo „Kúpiť permanentku" na celú šírku karty
   Footer má padding 10/16/14 → zrušíme ho negatívnym marginom, takže
   tlačidlo sadne na spodnú hranu karty a zaoblí sa spolu s ňou.
   Platí len pre .ls-btn-buy (watchdog / status text zostávajú s paddingom).
   ================================================================ */
/* footer drží tlačidlo naspodku karty — margin: 0 -16px -14px nižšie prepíše
   pôvodný .ls-btn-buy { margin-top: auto }, takže rovnanie presúvame na footer */
body.idp1503 .ls-card--preview .ls-card__footer {
    margin-top: auto;
}
body.idp1503 .ls-card--preview .ls-card__footer > .ls-btn-buy {
    /* POZOR: <button> je form control - pri width:auto sa zmensi na obsah (fit-content),
       aj ked ma display:flex. Preto explicitne 100% + zrusenie horizontalneho paddingu footera. */
    width: calc(100% + 32px);
    margin: 0 -16px -14px;
    min-height: 52px;
    border-left: 0;
    border-right: 0;
    border-bottom: 0;
    border-radius: 0 0 calc(var(--r) - 1px) calc(var(--r) - 1px);
    position: relative;   /* kotva pre srdiečka */
    overflow: visible;
}

/* srdiečka z lsBurstHearts() — renderujú sa do <body>, musia byť nad
   modalom (.modal-backdrop = 1040, .modal = 1050), inak ich klik na Kúpiť schová */
body.idp1503 .ls-btn-heart--over {
    position: fixed;
    z-index: 1060;
}


/* ================================================================
   KARTA — cena ako badge (vpravo hore), viditeľná hneď pri príchode na stránku
   Predtým bola cena len v .ls-card__overlay-hover (zobrazí sa až pri hoveri) —
   pri spustení predaja počas festivalu a na mobile (bez spoľahlivého hoveru)
   tak nebola cena vôbec vidieť. Pozícia vpravo hore dedená z v4 CSS:
   .ls-card--preview .ls-card__img-wrap > .ls-card__badge { position:absolute; top:24px; right:22px; }
   ================================================================ */
body.idp1503 .ls-card--preview .ls-card__img-wrap > .ls-card__badge--price {
    background: linear-gradient(135deg, #ff2e92, #ff6bb3);
    color: #000;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: none;
    padding: 7px 14px;
    box-shadow: 0 4px 14px rgba(255,46,146,.4);
    transition: opacity .18s ease;
}
/* pri hoveri sa badge schová - cena je aj v rozbalenom paneli overlay-hover, nemá zmysel duplikovať */
body.idp1503 .ls-card--preview:hover .ls-card__badge--price {
    opacity: 0;
    pointer-events: none;
}
